feige
2024-02-02 bd40473c9c634005bc7e62e7fc901bcd8b598fa0
1
{"remainingRequest":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\src\\components\\Editor\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\src\\components\\Editor\\index.vue","mtime":1676881540000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\babel.config.js","mtime":1676881540000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\feige\\Desktop\\RuoYi-Vue-master\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJDOi9Vc2Vycy9mZWlnZS9EZXNrdG9wL1J1b1lpLVZ1ZS1tYXN0ZXIvUnVvWWktVnVlLW1hc3Rlci9ydW95aS11aS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiKS5kZWZhdWx0OwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgIl9fZXNNb2R1bGUiLCB7CiAgdmFsdWU6IHRydWUKfSk7CmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIik7CnZhciBfcXVpbGwgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoInF1aWxsIikpOwpyZXF1aXJlKCJxdWlsbC9kaXN0L3F1aWxsLmNvcmUuY3NzIik7CnJlcXVpcmUoInF1aWxsL2Rpc3QvcXVpbGwuc25vdy5jc3MiKTsKcmVxdWlyZSgicXVpbGwvZGlzdC9xdWlsbC5idWJibGUuY3NzIik7CnZhciBfYXV0aCA9IHJlcXVpcmUoIkAvdXRpbHMvYXV0aCIpOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwp2YXIgX2RlZmF1bHQgPSB7CiAgbmFtZTogIkVkaXRvciIsCiAgcHJvcHM6IHsKICAgIC8qIOe8lui+keWZqOeahOWGheWuuSAqLwogICAgdmFsdWU6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiIgogICAgfSwKICAgIC8qIOmrmOW6piAqLwogICAgaGVpZ2h0OiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogbnVsbAogICAgfSwKICAgIC8qIOacgOWwj+mrmOW6piAqLwogICAgbWluSGVpZ2h0OiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogbnVsbAogICAgfSwKICAgIC8qIOWPquivuyAqLwogICAgcmVhZE9ubHk6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvLyDkuIrkvKDmlofku7blpKflsI/pmZDliLYoTUIpCiAgICBmaWxlU2l6ZTogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDUKICAgIH0sCiAgICAvKiDnsbvlnovvvIhiYXNlNjTmoLzlvI/jgIF1cmzmoLzlvI/vvIkgKi8KICAgIHR5cGU6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAidXJsIgogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHVwbG9hZFVybDogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArICIvY29tbW9uL3VwbG9hZCIsCiAgICAgIC8vIOS4iuS8oOeahOWbvueJh+acjeWKoeWZqOWcsOWdgAogICAgICBoZWFkZXJzOiB7CiAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgKDAsIF9hdXRoLmdldFRva2VuKSgpCiAgICAgIH0sCiAgICAgIFF1aWxsOiBudWxsLAogICAgICBjdXJyZW50VmFsdWU6ICIiLAogICAgICBvcHRpb25zOiB7CiAgICAgICAgdGhlbWU6ICJzbm93IiwKICAgICAgICBib3VuZHM6IGRvY3VtZW50LmJvZHksCiAgICAgICAgZGVidWc6ICJ3YXJuIiwKICAgICAgICBtb2R1bGVzOiB7CiAgICAgICAgICAvLyDlt6XlhbfmoI/phY3nva4KICAgICAgICAgIHRvb2xiYXI6IFtbImJvbGQiLCAiaXRhbGljIiwgInVuZGVybGluZSIsICJzdHJpa2UiXSwKICAgICAgICAgIC8vIOWKoOeylyDmlpzkvZMg5LiL5YiS57q/IOWIoOmZpOe6vwogICAgICAgICAgWyJibG9ja3F1b3RlIiwgImNvZGUtYmxvY2siXSwKICAgICAgICAgIC8vIOW8leeUqCAg5Luj56CB5Z2XCiAgICAgICAgICBbewogICAgICAgICAgICBsaXN0OiAib3JkZXJlZCIKICAgICAgICAgIH0sIHsKICAgICAgICAgICAgbGlzdDogImJ1bGxldCIKICAgICAgICAgIH1dLAogICAgICAgICAgLy8g5pyJ5bqP44CB5peg5bqP5YiX6KGoCiAgICAgICAgICBbewogICAgICAgICAgICBpbmRlbnQ6ICItMSIKICAgICAgICAgIH0sIHsKICAgICAgICAgICAgaW5kZW50OiAiKzEiCiAgICAgICAgICB9XSwKICAgICAgICAgIC8vIOe8qei/mwogICAgICAgICAgW3sKICAgICAgICAgICAgc2l6ZTogWyJzbWFsbCIsIGZhbHNlLCAibGFyZ2UiLCAiaHVnZSJdCiAgICAgICAgICB9XSwKICAgICAgICAgIC8vIOWtl+S9k+Wkp+WwjwogICAgICAgICAgW3sKICAgICAgICAgICAgaGVhZGVyOiBbMSwgMiwgMywgNCwgNSwgNiwgZmFsc2VdCiAgICAgICAgICB9XSwKICAgICAgICAgIC8vIOagh+mimAogICAgICAgICAgW3sKICAgICAgICAgICAgY29sb3I6IFtdCiAgICAgICAgICB9LCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IFtdCiAgICAgICAgICB9XSwKICAgICAgICAgIC8vIOWtl+S9k+minOiJsuOAgeWtl+S9k+iDjOaZr+minOiJsgogICAgICAgICAgW3sKICAgICAgICAgICAgYWxpZ246IFtdCiAgICAgICAgICB9XSwKICAgICAgICAgIC8vIOWvuem9kOaWueW8jwogICAgICAgICAgWyJjbGVhbiJdLAogICAgICAgICAgLy8g5riF6Zmk5paH5pys5qC85byPCiAgICAgICAgICBbImxpbmsiLCAiaW1hZ2UiLCAidmlkZW8iXSAvLyDpk77mjqXjgIHlm77niYfjgIHop4bpopEKICAgICAgICAgIF0KICAgICAgICB9LAoKICAgICAgICBwbGFjZWhvbGRlcjogIuivt+i+k+WFpeWGheWuuSIsCiAgICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZE9ubHkKICAgICAgfQogICAgfTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICBzdHlsZXM6IGZ1bmN0aW9uIHN0eWxlcygpIHsKICAgICAgdmFyIHN0eWxlID0ge307CiAgICAgIGlmICh0aGlzLm1pbkhlaWdodCkgewogICAgICAgIHN0eWxlLm1pbkhlaWdodCA9ICIiLmNvbmNhdCh0aGlzLm1pbkhlaWdodCwgInB4Iik7CiAgICAgIH0KICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7CiAgICAgICAgc3R5bGUuaGVpZ2h0ID0gIiIuY29uY2F0KHRoaXMuaGVpZ2h0LCAicHgiKTsKICAgICAgfQogICAgICByZXR1cm4gc3R5bGU7CiAgICB9CiAgfSwKICB3YXRjaDogewogICAgdmFsdWU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcih2YWwpIHsKICAgICAgICBpZiAodmFsICE9PSB0aGlzLmN1cnJlbnRWYWx1ZSkgewogICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB2YWwgPT09IG51bGwgPyAiIiA6IHZhbDsKICAgICAgICAgIGlmICh0aGlzLlF1aWxsKSB7CiAgICAgICAgICAgIHRoaXMuUXVpbGwucGFzdGVIVE1MKHRoaXMuY3VycmVudFZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfQogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHRoaXMuaW5pdCgpOwogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIHRoaXMuUXVpbGwgPSBudWxsOwogIH0sCiAgbWV0aG9kczogewogICAgaW5pdDogZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdmFyIGVkaXRvciA9IHRoaXMuJHJlZnMuZWRpdG9yOwogICAgICB0aGlzLlF1aWxsID0gbmV3IF9xdWlsbC5kZWZhdWx0KGVkaXRvciwgdGhpcy5vcHRpb25zKTsKICAgICAgLy8g5aaC5p6c6K6+572u5LqG5LiK5Lyg5Zyw5Z2A5YiZ6Ieq5a6a5LmJ5Zu+54mH5LiK5Lyg5LqL5Lu2CiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ3VybCcpIHsKICAgICAgICB2YXIgdG9vbGJhciA9IHRoaXMuUXVpbGwuZ2V0TW9kdWxlKCJ0b29sYmFyIik7CiAgICAgICAgdG9vbGJhci5hZGRIYW5kbGVyKCJpbWFnZSIsIGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgX3RoaXMudXBsb2FkVHlwZSA9ICJpbWFnZSI7CiAgICAgICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgICAgX3RoaXMuJHJlZnMudXBsb2FkLiRjaGlsZHJlblswXS4kcmVmcy5pbnB1dC5jbGljaygpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX3RoaXMucXVpbGwuZm9ybWF0KCJpbWFnZSIsIGZhbHNlKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICB0aGlzLlF1aWxsLnBhc3RlSFRNTCh0aGlzLmN1cnJlbnRWYWx1ZSk7CiAgICAgIHRoaXMuUXVpbGwub24oInRleHQtY2hhbmdlIiwgZnVuY3Rpb24gKGRlbHRhLCBvbGREZWx0YSwgc291cmNlKSB7CiAgICAgICAgdmFyIGh0bWwgPSBfdGhpcy4kcmVmcy5lZGl0b3IuY2hpbGRyZW5bMF0uaW5uZXJIVE1MOwogICAgICAgIHZhciB0ZXh0ID0gX3RoaXMuUXVpbGwuZ2V0VGV4dCgpOwogICAgICAgIHZhciBxdWlsbCA9IF90aGlzLlF1aWxsOwogICAgICAgIF90aGlzLmN1cnJlbnRWYWx1ZSA9IGh0bWw7CiAgICAgICAgX3RoaXMuJGVtaXQoImlucHV0IiwgaHRtbCk7CiAgICAgICAgX3RoaXMuJGVtaXQoIm9uLWNoYW5nZSIsIHsKICAgICAgICAgIGh0bWw6IGh0bWwsCiAgICAgICAgICB0ZXh0OiB0ZXh0LAogICAgICAgICAgcXVpbGw6IHF1aWxsCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgICB0aGlzLlF1aWxsLm9uKCJ0ZXh0LWNoYW5nZSIsIGZ1bmN0aW9uIChkZWx0YSwgb2xkRGVsdGEsIHNvdXJjZSkgewogICAgICAgIF90aGlzLiRlbWl0KCJvbi10ZXh0LWNoYW5nZSIsIGRlbHRhLCBvbGREZWx0YSwgc291cmNlKTsKICAgICAgfSk7CiAgICAgIHRoaXMuUXVpbGwub24oInNlbGVjdGlvbi1jaGFuZ2UiLCBmdW5jdGlvbiAocmFuZ2UsIG9sZFJhbmdlLCBzb3VyY2UpIHsKICAgICAgICBfdGhpcy4kZW1pdCgib24tc2VsZWN0aW9uLWNoYW5nZSIsIHJhbmdlLCBvbGRSYW5nZSwgc291cmNlKTsKICAgICAgfSk7CiAgICAgIHRoaXMuUXVpbGwub24oImVkaXRvci1jaGFuZ2UiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7CiAgICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykgewogICAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07CiAgICAgICAgfQogICAgICAgIF90aGlzLiRlbWl0LmFwcGx5KF90aGlzLCBbIm9uLWVkaXRvci1jaGFuZ2UiLCBldmVudE5hbWVdLmNvbmNhdChhcmdzKSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOS4iuS8oOWJjeagoeajgOagvOW8j+WSjOWkp+WwjwogICAgaGFuZGxlQmVmb3JlVXBsb2FkOiBmdW5jdGlvbiBoYW5kbGVCZWZvcmVVcGxvYWQoZmlsZSkgewogICAgICAvLyDmoKHmo4Dmlofku7blpKflsI8KICAgICAgaWYgKHRoaXMuZmlsZVNpemUpIHsKICAgICAgICB2YXIgaXNMdCA9IGZpbGUuc2l6ZSAvIDEwMjQgLyAxMDI0IDwgdGhpcy5maWxlU2l6ZTsKICAgICAgICBpZiAoIWlzTHQpIHsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIlx1NEUwQVx1NEYyMFx1NjU4N1x1NEVGNlx1NTkyN1x1NUMwRlx1NEUwRFx1ODBGRFx1OEQ4NVx1OEZDNyAiLmNvbmNhdCh0aGlzLmZpbGVTaXplLCAiIE1CISIpKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHRydWU7CiAgICB9LAogICAgaGFuZGxlVXBsb2FkU3VjY2VzczogZnVuY3Rpb24gaGFuZGxlVXBsb2FkU3VjY2VzcyhyZXMsIGZpbGUpIHsKICAgICAgLy8g6I635Y+W5a+M5paH5pys57uE5Lu25a6e5L6LCiAgICAgIHZhciBxdWlsbCA9IHRoaXMuUXVpbGw7CiAgICAgIC8vIOWmguaenOS4iuS8oOaIkOWKnwogICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgLy8g6I635Y+W5YWJ5qCH5omA5Zyo5L2N572uCiAgICAgICAgdmFyIGxlbmd0aCA9IHF1aWxsLmdldFNlbGVjdGlvbigpLmluZGV4OwogICAgICAgIC8vIOaPkuWFpeWbvueJhyAgcmVzLnVybOS4uuacjeWKoeWZqOi/lOWbnueahOWbvueJh+WcsOWdgAogICAgICAgIHF1aWxsLmluc2VydEVtYmVkKGxlbmd0aCwgImltYWdlIiwgcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArIHJlcy5maWxlTmFtZSk7CiAgICAgICAgLy8g6LCD5pW05YWJ5qCH5Yiw5pyA5ZCOCiAgICAgICAgcXVpbGwuc2V0U2VsZWN0aW9uKGxlbmd0aCArIDEpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIuWbvueJh+aPkuWFpeWksei0pSIpOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlVXBsb2FkRXJyb3I6IGZ1bmN0aW9uIGhhbmRsZVVwbG9hZEVycm9yKCkgewogICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCLlm77niYfmj5LlhaXlpLHotKUiKTsKICAgIH0KICB9Cn07CmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0Ow=="},{"version":3,"names":["_quill","_interopRequireDefault","require","_auth","name","props","value","type","String","default","height","Number","minHeight","readOnly","Boolean","fileSize","data","uploadUrl","process","env","VUE_APP_BASE_API","headers","Authorization","getToken","Quill","currentValue","options","theme","bounds","document","body","debug","modules","toolbar","list","indent","size","header","color","background","align","placeholder","computed","styles","style","concat","watch","handler","val","pasteHTML","immediate","mounted","init","beforeDestroy","methods","_this","editor","$refs","getModule","addHandler","uploadType","upload","$children","input","click","quill","format","on","delta","oldDelta","source","html","children","innerHTML","text","getText","$emit","range","oldRange","eventName","_len","arguments","length","args","Array","_key","apply","handleBeforeUpload","file","isLt","$message","error","handleUploadSuccess","res","code","getSelection","index","insertEmbed","fileName","setSelection","handleUploadError","exports","_default"],"sources":["src/components/Editor/index.vue"],"sourcesContent":["<template>\n  <div>\n    <el-upload\n      :action=\"uploadUrl\"\n      :before-upload=\"handleBeforeUpload\"\n      :on-success=\"handleUploadSuccess\"\n      :on-error=\"handleUploadError\"\n      name=\"file\"\n      :show-file-list=\"false\"\n      :headers=\"headers\"\n      style=\"display: none\"\n      ref=\"upload\"\n      v-if=\"this.type == 'url'\"\n    >\n    </el-upload>\n    <div class=\"editor\" ref=\"editor\" :style=\"styles\"></div>\n  </div>\n</template>\n\n<script>\nimport Quill from \"quill\";\nimport \"quill/dist/quill.core.css\";\nimport \"quill/dist/quill.snow.css\";\nimport \"quill/dist/quill.bubble.css\";\nimport { getToken } from \"@/utils/auth\";\n\nexport default {\n  name: \"Editor\",\n  props: {\n    /* 编辑器的内容 */\n    value: {\n      type: String,\n      default: \"\",\n    },\n    /* 高度 */\n    height: {\n      type: Number,\n      default: null,\n    },\n    /* 最小高度 */\n    minHeight: {\n      type: Number,\n      default: null,\n    },\n    /* 只读 */\n    readOnly: {\n      type: Boolean,\n      default: false,\n    },\n    // 上传文件大小限制(MB)\n    fileSize: {\n      type: Number,\n      default: 5,\n    },\n    /* 类型(base64格式、url格式) */\n    type: {\n      type: String,\n      default: \"url\",\n    }\n  },\n  data() {\n    return {\n      uploadUrl: process.env.VUE_APP_BASE_API + \"/common/upload\", // 上传的图片服务器地址\n      headers: {\n        Authorization: \"Bearer \" + getToken()\n      },\n      Quill: null,\n      currentValue: \"\",\n      options: {\n        theme: \"snow\",\n        bounds: document.body,\n        debug: \"warn\",\n        modules: {\n          // 工具栏配置\n          toolbar: [\n            [\"bold\", \"italic\", \"underline\", \"strike\"],       // 加粗 斜体 下划线 删除线\n            [\"blockquote\", \"code-block\"],                    // 引用  代码块\n            [{ list: \"ordered\" }, { list: \"bullet\" }],       // 有序、无序列表\n            [{ indent: \"-1\" }, { indent: \"+1\" }],            // 缩进\n            [{ size: [\"small\", false, \"large\", \"huge\"] }],   // 字体大小\n            [{ header: [1, 2, 3, 4, 5, 6, false] }],         // 标题\n            [{ color: [] }, { background: [] }],             // 字体颜色、字体背景颜色\n            [{ align: [] }],                                 // 对齐方式\n            [\"clean\"],                                       // 清除文本格式\n            [\"link\", \"image\", \"video\"]                       // 链接、图片、视频\n          ],\n        },\n        placeholder: \"请输入内容\",\n        readOnly: this.readOnly,\n      },\n    };\n  },\n  computed: {\n    styles() {\n      let style = {};\n      if (this.minHeight) {\n        style.minHeight = `${this.minHeight}px`;\n      }\n      if (this.height) {\n        style.height = `${this.height}px`;\n      }\n      return style;\n    },\n  },\n  watch: {\n    value: {\n      handler(val) {\n        if (val !== this.currentValue) {\n          this.currentValue = val === null ? \"\" : val;\n          if (this.Quill) {\n            this.Quill.pasteHTML(this.currentValue);\n          }\n        }\n      },\n      immediate: true,\n    },\n  },\n  mounted() {\n    this.init();\n  },\n  beforeDestroy() {\n    this.Quill = null;\n  },\n  methods: {\n    init() {\n      const editor = this.$refs.editor;\n      this.Quill = new Quill(editor, this.options);\n      // 如果设置了上传地址则自定义图片上传事件\n      if (this.type == 'url') {\n        let toolbar = this.Quill.getModule(\"toolbar\");\n        toolbar.addHandler(\"image\", (value) => {\n          this.uploadType = \"image\";\n          if (value) {\n            this.$refs.upload.$children[0].$refs.input.click();\n          } else {\n            this.quill.format(\"image\", false);\n          }\n        });\n      }\n      this.Quill.pasteHTML(this.currentValue);\n      this.Quill.on(\"text-change\", (delta, oldDelta, source) => {\n        const html = this.$refs.editor.children[0].innerHTML;\n        const text = this.Quill.getText();\n        const quill = this.Quill;\n        this.currentValue = html;\n        this.$emit(\"input\", html);\n        this.$emit(\"on-change\", { html, text, quill });\n      });\n      this.Quill.on(\"text-change\", (delta, oldDelta, source) => {\n        this.$emit(\"on-text-change\", delta, oldDelta, source);\n      });\n      this.Quill.on(\"selection-change\", (range, oldRange, source) => {\n        this.$emit(\"on-selection-change\", range, oldRange, source);\n      });\n      this.Quill.on(\"editor-change\", (eventName, ...args) => {\n        this.$emit(\"on-editor-change\", eventName, ...args);\n      });\n    },\n    // 上传前校检格式和大小\n    handleBeforeUpload(file) {\n      // 校检文件大小\n      if (this.fileSize) {\n        const isLt = file.size / 1024 / 1024 < this.fileSize;\n        if (!isLt) {\n          this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);\n          return false;\n        }\n      }\n      return true;\n    },\n    handleUploadSuccess(res, file) {\n      // 获取富文本组件实例\n      let quill = this.Quill;\n      // 如果上传成功\n      if (res.code == 200) {\n        // 获取光标所在位置\n        let length = quill.getSelection().index;\n        // 插入图片  res.url为服务器返回的图片地址\n        quill.insertEmbed(length, \"image\", process.env.VUE_APP_BASE_API + res.fileName);\n        // 调整光标到最后\n        quill.setSelection(length + 1);\n      } else {\n        this.$message.error(\"图片插入失败\");\n      }\n    },\n    handleUploadError() {\n      this.$message.error(\"图片插入失败\");\n    },\n  },\n};\n</script>\n\n<style>\n.editor, .ql-toolbar {\n  white-space: pre-wrap !important;\n  line-height: normal !important;\n}\n.quill-img {\n  display: none;\n}\n.ql-snow .ql-tooltip[data-mode=\"link\"]::before {\n  content: \"请输入链接地址:\";\n}\n.ql-snow .ql-tooltip.ql-editing a.ql-action::after {\n  border-right: 0px;\n  content: \"保存\";\n  padding-right: 0px;\n}\n\n.ql-snow .ql-tooltip[data-mode=\"video\"]::before {\n  content: \"请输入视频地址:\";\n}\n\n.ql-snow .ql-picker.ql-size .ql-picker-label::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item::before {\n  content: \"14px\";\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"small\"]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"small\"]::before {\n  content: \"10px\";\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"large\"]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"large\"]::before {\n  content: \"18px\";\n}\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"huge\"]::before,\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"huge\"]::before {\n  content: \"32px\";\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item::before {\n  content: \"文本\";\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n  content: \"标题1\";\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n  content: \"标题2\";\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n  content: \"标题3\";\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n  content: \"标题4\";\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n  content: \"标题5\";\n}\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]::before,\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n  content: \"标题6\";\n}\n\n.ql-snow .ql-picker.ql-font .ql-picker-label::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item::before {\n  content: \"标准字体\";\n}\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=\"serif\"]::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=\"serif\"]::before {\n  content: \"衬线字体\";\n}\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=\"monospace\"]::before,\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=\"monospace\"]::before {\n  content: \"等宽字体\";\n}\n</style>\n"],"mappings":";;;;;;;;;AAoBA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;;;;;;;;;;;;;;;;;;;;eAEA;EACAE,IAAA;EACAC,KAAA;IACA;IACAC,KAAA;MACAC,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;IACAC,MAAA;MACAH,IAAA,EAAAI,MAAA;MACAF,OAAA;IACA;IACA;IACAG,SAAA;MACAL,IAAA,EAAAI,MAAA;MACAF,OAAA;IACA;IACA;IACAI,QAAA;MACAN,IAAA,EAAAO,OAAA;MACAL,OAAA;IACA;IACA;IACAM,QAAA;MACAR,IAAA,EAAAI,MAAA;MACAF,OAAA;IACA;IACA;IACAF,IAAA;MACAA,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;EACA;EACAO,IAAA,WAAAA,KAAA;IACA;MACAC,SAAA,EAAAC,OAAA,CAAAC,GAAA,CAAAC,gBAAA;MAAA;MACAC,OAAA;QACAC,aAAA,kBAAAC,cAAA;MACA;MACAC,KAAA;MACAC,YAAA;MACAC,OAAA;QACAC,KAAA;QACAC,MAAA,EAAAC,QAAA,CAAAC,IAAA;QACAC,KAAA;QACAC,OAAA;UACA;UACAC,OAAA,GACA;UAAA;UACA;UAAA;UACA;YAAAC,IAAA;UAAA;YAAAA,IAAA;UAAA;UAAA;UACA;YAAAC,MAAA;UAAA;YAAAA,MAAA;UAAA;UAAA;UACA;YAAAC,IAAA;UAAA;UAAA;UACA;YAAAC,MAAA;UAAA;UAAA;UACA;YAAAC,KAAA;UAAA;YAAAC,UAAA;UAAA;UAAA;UACA;YAAAC,KAAA;UAAA;UAAA;UACA;UAAA;UACA;UAAA;QAEA;;QACAC,WAAA;QACA5B,QAAA,OAAAA;MACA;IACA;EACA;EACA6B,QAAA;IACAC,MAAA,WAAAA,OAAA;MACA,IAAAC,KAAA;MACA,SAAAhC,SAAA;QACAgC,KAAA,CAAAhC,SAAA,MAAAiC,MAAA,MAAAjC,SAAA;MACA;MACA,SAAAF,MAAA;QACAkC,KAAA,CAAAlC,MAAA,MAAAmC,MAAA,MAAAnC,MAAA;MACA;MACA,OAAAkC,KAAA;IACA;EACA;EACAE,KAAA;IACAxC,KAAA;MACAyC,OAAA,WAAAA,QAAAC,GAAA;QACA,IAAAA,GAAA,UAAAvB,YAAA;UACA,KAAAA,YAAA,GAAAuB,GAAA,iBAAAA,GAAA;UACA,SAAAxB,KAAA;YACA,KAAAA,KAAA,CAAAyB,SAAA,MAAAxB,YAAA;UACA;QACA;MACA;MACAyB,SAAA;IACA;EACA;EACAC,OAAA,WAAAA,QAAA;IACA,KAAAC,IAAA;EACA;EACAC,aAAA,WAAAA,cAAA;IACA,KAAA7B,KAAA;EACA;EACA8B,OAAA;IACAF,IAAA,WAAAA,KAAA;MAAA,IAAAG,KAAA;MACA,IAAAC,MAAA,QAAAC,KAAA,CAAAD,MAAA;MACA,KAAAhC,KAAA,OAAAA,cAAA,CAAAgC,MAAA,OAAA9B,OAAA;MACA;MACA,SAAAnB,IAAA;QACA,IAAA0B,OAAA,QAAAT,KAAA,CAAAkC,SAAA;QACAzB,OAAA,CAAA0B,UAAA,oBAAArD,KAAA;UACAiD,KAAA,CAAAK,UAAA;UACA,IAAAtD,KAAA;YACAiD,KAAA,CAAAE,KAAA,CAAAI,MAAA,CAAAC,SAAA,IAAAL,KAAA,CAAAM,KAAA,CAAAC,KAAA;UACA;YACAT,KAAA,CAAAU,KAAA,CAAAC,MAAA;UACA;QACA;MACA;MACA,KAAA1C,KAAA,CAAAyB,SAAA,MAAAxB,YAAA;MACA,KAAAD,KAAA,CAAA2C,EAAA,0BAAAC,KAAA,EAAAC,QAAA,EAAAC,MAAA;QACA,IAAAC,IAAA,GAAAhB,KAAA,CAAAE,KAAA,CAAAD,MAAA,CAAAgB,QAAA,IAAAC,SAAA;QACA,IAAAC,IAAA,GAAAnB,KAAA,CAAA/B,KAAA,CAAAmD,OAAA;QACA,IAAAV,KAAA,GAAAV,KAAA,CAAA/B,KAAA;QACA+B,KAAA,CAAA9B,YAAA,GAAA8C,IAAA;QACAhB,KAAA,CAAAqB,KAAA,UAAAL,IAAA;QACAhB,KAAA,CAAAqB,KAAA;UAAAL,IAAA,EAAAA,IAAA;UAAAG,IAAA,EAAAA,IAAA;UAAAT,KAAA,EAAAA;QAAA;MACA;MACA,KAAAzC,KAAA,CAAA2C,EAAA,0BAAAC,KAAA,EAAAC,QAAA,EAAAC,MAAA;QACAf,KAAA,CAAAqB,KAAA,mBAAAR,KAAA,EAAAC,QAAA,EAAAC,MAAA;MACA;MACA,KAAA9C,KAAA,CAAA2C,EAAA,+BAAAU,KAAA,EAAAC,QAAA,EAAAR,MAAA;QACAf,KAAA,CAAAqB,KAAA,wBAAAC,KAAA,EAAAC,QAAA,EAAAR,MAAA;MACA;MACA,KAAA9C,KAAA,CAAA2C,EAAA,4BAAAY,SAAA;QAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;UAAAF,IAAA,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;QAAA;QACA9B,KAAA,CAAAqB,KAAA,CAAAU,KAAA,CAAA/B,KAAA,uBAAAwB,SAAA,EAAAlC,MAAA,CAAAsC,IAAA;MACA;IACA;IACA;IACAI,kBAAA,WAAAA,mBAAAC,IAAA;MACA;MACA,SAAAzE,QAAA;QACA,IAAA0E,IAAA,GAAAD,IAAA,CAAApD,IAAA,sBAAArB,QAAA;QACA,KAAA0E,IAAA;UACA,KAAAC,QAAA,CAAAC,KAAA,iEAAA9C,MAAA,MAAA9B,QAAA;UACA;QACA;MACA;MACA;IACA;IACA6E,mBAAA,WAAAA,oBAAAC,GAAA,EAAAL,IAAA;MACA;MACA,IAAAvB,KAAA,QAAAzC,KAAA;MACA;MACA,IAAAqE,GAAA,CAAAC,IAAA;QACA;QACA,IAAAZ,MAAA,GAAAjB,KAAA,CAAA8B,YAAA,GAAAC,KAAA;QACA;QACA/B,KAAA,CAAAgC,WAAA,CAAAf,MAAA,WAAAhE,OAAA,CAAAC,GAAA,CAAAC,gBAAA,GAAAyE,GAAA,CAAAK,QAAA;QACA;QACAjC,KAAA,CAAAkC,YAAA,CAAAjB,MAAA;MACA;QACA,KAAAQ,QAAA,CAAAC,KAAA;MACA;IACA;IACAS,iBAAA,WAAAA,kBAAA;MACA,KAAAV,QAAA,CAAAC,KAAA;IACA;EACA;AACA;AAAAU,OAAA,CAAA5F,OAAA,GAAA6F,QAAA"}]}