{"remainingRequest":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\src\\components\\Editor\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\src\\components\\Editor\\index.vue","mtime":1675221397096},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\babel.config.js","mtime":1675221397043},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1678842086999},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1678842088721},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1678842086999},{"path":"F:\\Workspaces\\ard\\RuoYi-Vue-master-pg\\RuoYi-Vue-master\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1678842089772}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJGOi9Xb3Jrc3BhY2VzL2FyZC9SdW9ZaS1WdWUtbWFzdGVyLXBnL1J1b1lpLVZ1ZS1tYXN0ZXIvcnVveWktdWkvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0LmpzIikuZGVmYXVsdDsKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyIpOwp2YXIgX3F1aWxsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJxdWlsbCIpKTsKcmVxdWlyZSgicXVpbGwvZGlzdC9xdWlsbC5jb3JlLmNzcyIpOwpyZXF1aXJlKCJxdWlsbC9kaXN0L3F1aWxsLnNub3cuY3NzIik7CnJlcXVpcmUoInF1aWxsL2Rpc3QvcXVpbGwuYnViYmxlLmNzcyIpOwp2YXIgX2F1dGggPSByZXF1aXJlKCJAL3V0aWxzL2F1dGgiKTsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KdmFyIF9kZWZhdWx0ID0gewogIG5hbWU6ICJFZGl0b3IiLAogIHByb3BzOiB7CiAgICAvKiDnvJbovpHlmajnmoTlhoXlrrkgKi8KICAgIHZhbHVlOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIKICAgIH0sCiAgICAvKiDpq5jluqYgKi8KICAgIGhlaWdodDogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IG51bGwKICAgIH0sCiAgICAvKiDmnIDlsI/pq5jluqYgKi8KICAgIG1pbkhlaWdodDogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IG51bGwKICAgIH0sCiAgICAvKiDlj6ror7sgKi8KICAgIHJlYWRPbmx5OiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLy8g5LiK5Lyg5paH5Lu25aSn5bCP6ZmQ5Yi2KE1CKQogICAgZmlsZVNpemU6IHsKICAgICAgdHlwZTogTnVtYmVyLAogICAgICBkZWZhdWx0OiA1CiAgICB9LAogICAgLyog57G75Z6L77yIYmFzZTY05qC85byP44CBdXJs5qC85byP77yJICovCiAgICB0eXBlOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogInVybCIKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICB1cGxvYWRVcmw6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyAiL2NvbW1vbi91cGxvYWQiLAogICAgICAvLyDkuIrkvKDnmoTlm77niYfmnI3liqHlmajlnLDlnYAKICAgICAgaGVhZGVyczogewogICAgICAgIEF1dGhvcml6YXRpb246ICJCZWFyZXIgIiArICgwLCBfYXV0aC5nZXRUb2tlbikoKQogICAgICB9LAogICAgICBRdWlsbDogbnVsbCwKICAgICAgY3VycmVudFZhbHVlOiAiIiwKICAgICAgb3B0aW9uczogewogICAgICAgIHRoZW1lOiAic25vdyIsCiAgICAgICAgYm91bmRzOiBkb2N1bWVudC5ib2R5LAogICAgICAgIGRlYnVnOiAid2FybiIsCiAgICAgICAgbW9kdWxlczogewogICAgICAgICAgLy8g5bel5YW35qCP6YWN572uCiAgICAgICAgICB0b29sYmFyOiBbWyJib2xkIiwgIml0YWxpYyIsICJ1bmRlcmxpbmUiLCAic3RyaWtlIl0sCiAgICAgICAgICAvLyDliqDnspcg5pac5L2TIOS4i+WIkue6vyDliKDpmaTnur8KICAgICAgICAgIFsiYmxvY2txdW90ZSIsICJjb2RlLWJsb2NrIl0sCiAgICAgICAgICAvLyDlvJXnlKggIOS7o+eggeWdlwogICAgICAgICAgW3sKICAgICAgICAgICAgbGlzdDogIm9yZGVyZWQiCiAgICAgICAgICB9LCB7CiAgICAgICAgICAgIGxpc3Q6ICJidWxsZXQiCiAgICAgICAgICB9XSwKICAgICAgICAgIC8vIOacieW6j+OAgeaXoOW6j+WIl+ihqAogICAgICAgICAgW3sKICAgICAgICAgICAgaW5kZW50OiAiLTEiCiAgICAgICAgICB9LCB7CiAgICAgICAgICAgIGluZGVudDogIisxIgogICAgICAgICAgfV0sCiAgICAgICAgICAvLyDnvKnov5sKICAgICAgICAgIFt7CiAgICAgICAgICAgIHNpemU6IFsic21hbGwiLCBmYWxzZSwgImxhcmdlIiwgImh1Z2UiXQogICAgICAgICAgfV0sCiAgICAgICAgICAvLyDlrZfkvZPlpKflsI8KICAgICAgICAgIFt7CiAgICAgICAgICAgIGhlYWRlcjogWzEsIDIsIDMsIDQsIDUsIDYsIGZhbHNlXQogICAgICAgICAgfV0sCiAgICAgICAgICAvLyDmoIfpopgKICAgICAgICAgIFt7CiAgICAgICAgICAgIGNvbG9yOiBbXQogICAgICAgICAgfSwgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBbXQogICAgICAgICAgfV0sCiAgICAgICAgICAvLyDlrZfkvZPpopzoibLjgIHlrZfkvZPog4zmma/popzoibIKICAgICAgICAgIFt7CiAgICAgICAgICAgIGFsaWduOiBbXQogICAgICAgICAgfV0sCiAgICAgICAgICAvLyDlr7npvZDmlrnlvI8KICAgICAgICAgIFsiY2xlYW4iXSwKICAgICAgICAgIC8vIOa4hemZpOaWh+acrOagvOW8jwogICAgICAgICAgWyJsaW5rIiwgImltYWdlIiwgInZpZGVvIl0gLy8g6ZO+5o6l44CB5Zu+54mH44CB6KeG6aKRCiAgICAgICAgICBdCiAgICAgICAgfSwKCiAgICAgICAgcGxhY2Vob2xkZXI6ICLor7fovpPlhaXlhoXlrrkiLAogICAgICAgIHJlYWRPbmx5OiB0aGlzLnJlYWRPbmx5CiAgICAgIH0KICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgc3R5bGVzOiBmdW5jdGlvbiBzdHlsZXMoKSB7CiAgICAgIHZhciBzdHlsZSA9IHt9OwogICAgICBpZiAodGhpcy5taW5IZWlnaHQpIHsKICAgICAgICBzdHlsZS5taW5IZWlnaHQgPSAiIi5jb25jYXQodGhpcy5taW5IZWlnaHQsICJweCIpOwogICAgICB9CiAgICAgIGlmICh0aGlzLmhlaWdodCkgewogICAgICAgIHN0eWxlLmhlaWdodCA9ICIiLmNvbmNhdCh0aGlzLmhlaWdodCwgInB4Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0eWxlOwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIHZhbHVlOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmFsKSB7CiAgICAgICAgaWYgKHZhbCAhPT0gdGhpcy5jdXJyZW50VmFsdWUpIHsKICAgICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gdmFsID09PSBudWxsID8gIiIgOiB2YWw7CiAgICAgICAgICBpZiAodGhpcy5RdWlsbCkgewogICAgICAgICAgICB0aGlzLlF1aWxsLnBhc3RlSFRNTCh0aGlzLmN1cnJlbnRWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUKICAgIH0KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB0aGlzLmluaXQoKTsKICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICB0aGlzLlF1aWxsID0gbnVsbDsKICB9LAogIG1ldGhvZHM6IHsKICAgIGluaXQ6IGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHZhciBlZGl0b3IgPSB0aGlzLiRyZWZzLmVkaXRvcjsKICAgICAgdGhpcy5RdWlsbCA9IG5ldyBfcXVpbGwuZGVmYXVsdChlZGl0b3IsIHRoaXMub3B0aW9ucyk7CiAgICAgIC8vIOWmguaenOiuvue9ruS6huS4iuS8oOWcsOWdgOWImeiHquWumuS5ieWbvueJh+S4iuS8oOS6i+S7tgogICAgICBpZiAodGhpcy50eXBlID09ICd1cmwnKSB7CiAgICAgICAgdmFyIHRvb2xiYXIgPSB0aGlzLlF1aWxsLmdldE1vZHVsZSgidG9vbGJhciIpOwogICAgICAgIHRvb2xiYXIuYWRkSGFuZGxlcigiaW1hZ2UiLCBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICAgIF90aGlzLnVwbG9hZFR5cGUgPSAiaW1hZ2UiOwogICAgICAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgICAgIF90aGlzLiRyZWZzLnVwbG9hZC4kY2hpbGRyZW5bMF0uJHJlZnMuaW5wdXQuY2xpY2soKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF90aGlzLnF1aWxsLmZvcm1hdCgiaW1hZ2UiLCBmYWxzZSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgdGhpcy5RdWlsbC5wYXN0ZUhUTUwodGhpcy5jdXJyZW50VmFsdWUpOwogICAgICB0aGlzLlF1aWxsLm9uKCJ0ZXh0LWNoYW5nZSIsIGZ1bmN0aW9uIChkZWx0YSwgb2xkRGVsdGEsIHNvdXJjZSkgewogICAgICAgIHZhciBodG1sID0gX3RoaXMuJHJlZnMuZWRpdG9yLmNoaWxkcmVuWzBdLmlubmVySFRNTDsKICAgICAgICB2YXIgdGV4dCA9IF90aGlzLlF1aWxsLmdldFRleHQoKTsKICAgICAgICB2YXIgcXVpbGwgPSBfdGhpcy5RdWlsbDsKICAgICAgICBfdGhpcy5jdXJyZW50VmFsdWUgPSBodG1sOwogICAgICAgIF90aGlzLiRlbWl0KCJpbnB1dCIsIGh0bWwpOwogICAgICAgIF90aGlzLiRlbWl0KCJvbi1jaGFuZ2UiLCB7CiAgICAgICAgICBodG1sOiBodG1sLAogICAgICAgICAgdGV4dDogdGV4dCwKICAgICAgICAgIHF1aWxsOiBxdWlsbAogICAgICAgIH0pOwogICAgICB9KTsKICAgICAgdGhpcy5RdWlsbC5vbigidGV4dC1jaGFuZ2UiLCBmdW5jdGlvbiAoZGVsdGEsIG9sZERlbHRhLCBzb3VyY2UpIHsKICAgICAgICBfdGhpcy4kZW1pdCgib24tdGV4dC1jaGFuZ2UiLCBkZWx0YSwgb2xkRGVsdGEsIHNvdXJjZSk7CiAgICAgIH0pOwogICAgICB0aGlzLlF1aWxsLm9uKCJzZWxlY3Rpb24tY2hhbmdlIiwgZnVuY3Rpb24gKHJhbmdlLCBvbGRSYW5nZSwgc291cmNlKSB7CiAgICAgICAgX3RoaXMuJGVtaXQoIm9uLXNlbGVjdGlvbi1jaGFuZ2UiLCByYW5nZSwgb2xkUmFuZ2UsIHNvdXJjZSk7CiAgICAgIH0pOwogICAgICB0aGlzLlF1aWxsLm9uKCJlZGl0b3ItY2hhbmdlIiwgZnVuY3Rpb24gKGV2ZW50TmFtZSkgewogICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHsKICAgICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldOwogICAgICAgIH0KICAgICAgICBfdGhpcy4kZW1pdC5hcHBseShfdGhpcywgWyJvbi1lZGl0b3ItY2hhbmdlIiwgZXZlbnROYW1lXS5jb25jYXQoYXJncykpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDkuIrkvKDliY3moKHmo4DmoLzlvI/lkozlpKflsI8KICAgIGhhbmRsZUJlZm9yZVVwbG9hZDogZnVuY3Rpb24gaGFuZGxlQmVmb3JlVXBsb2FkKGZpbGUpIHsKICAgICAgLy8g5qCh5qOA5paH5Lu25aSn5bCPCiAgICAgIGlmICh0aGlzLmZpbGVTaXplKSB7CiAgICAgICAgdmFyIGlzTHQgPSBmaWxlLnNpemUgLyAxMDI0IC8gMTAyNCA8IHRoaXMuZmlsZVNpemU7CiAgICAgICAgaWYgKCFpc0x0KSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCJcdTRFMEFcdTRGMjBcdTY1ODdcdTRFRjZcdTU5MjdcdTVDMEZcdTRFMERcdTgwRkRcdThEODVcdThGQzcgIi5jb25jYXQodGhpcy5maWxlU2l6ZSwgIiBNQiEiKSk7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfSwKICAgIGhhbmRsZVVwbG9hZFN1Y2Nlc3M6IGZ1bmN0aW9uIGhhbmRsZVVwbG9hZFN1Y2Nlc3MocmVzLCBmaWxlKSB7CiAgICAgIC8vIOiOt+WPluWvjOaWh+acrOe7hOS7tuWunuS+iwogICAgICB2YXIgcXVpbGwgPSB0aGlzLlF1aWxsOwogICAgICAvLyDlpoLmnpzkuIrkvKDmiJDlip8KICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgIC8vIOiOt+WPluWFieagh+aJgOWcqOS9jee9rgogICAgICAgIHZhciBsZW5ndGggPSBxdWlsbC5nZXRTZWxlY3Rpb24oKS5pbmRleDsKICAgICAgICAvLyDmj5LlhaXlm77niYcgIHJlcy51cmzkuLrmnI3liqHlmajov5Tlm57nmoTlm77niYflnLDlnYAKICAgICAgICBxdWlsbC5pbnNlcnRFbWJlZChsZW5ndGgsICJpbWFnZSIsIHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyByZXMuZmlsZU5hbWUpOwogICAgICAgIC8vIOiwg+aVtOWFieagh+WIsOacgOWQjgogICAgICAgIHF1aWxsLnNldFNlbGVjdGlvbihsZW5ndGggKyAxKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCLlm77niYfmj5LlhaXlpLHotKUiKTsKICAgICAgfQogICAgfSwKICAgIGhhbmRsZVVwbG9hZEVycm9yOiBmdW5jdGlvbiBoYW5kbGVVcGxvYWRFcnJvcigpIHsKICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcigi5Zu+54mH5o+S5YWl5aSx6LSlIik7CiAgICB9CiAgfQp9OwpleHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDs="},{"version":3,"mappings":";;;;;;;;;AAoBA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;eAEA;EACAA;EACAC;IACA;IACAC;MACAC;MACAC;IACA;IACA;IACAC;MACAF;MACAC;IACA;IACA;IACAE;MACAH;MACAC;IACA;IACA;IACAG;MACAJ;MACAC;IACA;IACA;IACAI;MACAL;MACAC;IACA;IACA;IACAD;MACAA;MACAC;IACA;EACA;EACAK;IACA;MACAC;MAAA;MACAC;QACAC;MACA;MACAC;MACAC;MACAC;QACAC;QACAC;QACAC;QACAC;UACA;UACAC,UACA;UAAA;UACA;UAAA;UACA;YAAAC;UAAA;YAAAA;UAAA;UAAA;UACA;YAAAC;UAAA;YAAAA;UAAA;UAAA;UACA;YAAAC;UAAA;UAAA;UACA;YAAAC;UAAA;UAAA;UACA;YAAAC;UAAA;YAAAC;UAAA;UAAA;UACA;YAAAC;UAAA;UAAA;UACA;UAAA;UACA;UAAA;QAEA;;QACAC;QACArB;MACA;IACA;EACA;EACAsB;IACAC;MACA;MACA;QACAC;MACA;MACA;QACAA;MACA;MACA;IACA;EACA;EACAC;IACA9B;MACA+B;QACA;UACA;UACA;YACA;UACA;QACA;MACA;MACAC;IACA;EACA;EACAC;IACA;EACA;EACAC;IACA;EACA;EACAC;IACAC;MAAA;MACA;MACA;MACA;MACA;QACA;QACAlB;UACA;UACA;YACA;UACA;YACA;UACA;QACA;MACA;MACA;MACA;QACA;QACA;QACA;QACA;QACA;QACA;UAAAmB;UAAAC;UAAAC;QAAA;MACA;MACA;QACA;MACA;MACA;QACA;MACA;MACA;QAAA;UAAAC;QAAA;QACA;MACA;IACA;IACA;IACAC;MACA;MACA;QACA;QACA;UACA;UACA;QACA;MACA;MACA;IACA;IACAC;MACA;MACA;MACA;MACA;QACA;QACA;QACA;QACAH;QACA;QACAA;MACA;QACA;MACA;IACA;IACAI;MACA;IACA;EACA;AACA;AAAA","names":["name","props","value","type","default","height","minHeight","readOnly","fileSize","data","uploadUrl","headers","Authorization","Quill","currentValue","options","theme","bounds","debug","modules","toolbar","list","indent","size","header","color","background","align","placeholder","computed","styles","style","watch","handler","immediate","mounted","beforeDestroy","methods","init","html","text","quill","args","handleBeforeUpload","handleUploadSuccess","handleUploadError"],"sourceRoot":"src/components/Editor","sources":["index.vue"],"sourcesContent":["<template>\r\n <div>\r\n <el-upload\r\n :action=\"uploadUrl\"\r\n :before-upload=\"handleBeforeUpload\"\r\n :on-success=\"handleUploadSuccess\"\r\n :on-error=\"handleUploadError\"\r\n name=\"file\"\r\n :show-file-list=\"false\"\r\n :headers=\"headers\"\r\n style=\"display: none\"\r\n ref=\"upload\"\r\n v-if=\"this.type == 'url'\"\r\n >\r\n </el-upload>\r\n <div class=\"editor\" ref=\"editor\" :style=\"styles\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Quill from \"quill\";\r\nimport \"quill/dist/quill.core.css\";\r\nimport \"quill/dist/quill.snow.css\";\r\nimport \"quill/dist/quill.bubble.css\";\r\nimport { getToken } from \"@/utils/auth\";\r\n\r\nexport default {\r\n name: \"Editor\",\r\n props: {\r\n /* 编辑器的内容 */\r\n value: {\r\n type: String,\r\n default: \"\",\r\n },\r\n /* 高度 */\r\n height: {\r\n type: Number,\r\n default: null,\r\n },\r\n /* 最小高度 */\r\n minHeight: {\r\n type: Number,\r\n default: null,\r\n },\r\n /* 只读 */\r\n readOnly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n // 上传文件大小限制(MB)\r\n fileSize: {\r\n type: Number,\r\n default: 5,\r\n },\r\n /* 类型(base64格式、url格式) */\r\n type: {\r\n type: String,\r\n default: \"url\",\r\n }\r\n },\r\n data() {\r\n return {\r\n uploadUrl: process.env.VUE_APP_BASE_API + \"/common/upload\", // 上传的图片服务器地址\r\n headers: {\r\n Authorization: \"Bearer \" + getToken()\r\n },\r\n Quill: null,\r\n currentValue: \"\",\r\n options: {\r\n theme: \"snow\",\r\n bounds: document.body,\r\n debug: \"warn\",\r\n modules: {\r\n // 工具栏配置\r\n toolbar: [\r\n [\"bold\", \"italic\", \"underline\", \"strike\"], // 加粗 斜体 下划线 删除线\r\n [\"blockquote\", \"code-block\"], // 引用 代码块\r\n [{ list: \"ordered\" }, { list: \"bullet\" }], // 有序、无序列表\r\n [{ indent: \"-1\" }, { indent: \"+1\" }], // 缩进\r\n [{ size: [\"small\", false, \"large\", \"huge\"] }], // 字体大小\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题\r\n [{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色\r\n [{ align: [] }], // 对齐方式\r\n [\"clean\"], // 清除文本格式\r\n [\"link\", \"image\", \"video\"] // 链接、图片、视频\r\n ],\r\n },\r\n placeholder: \"请输入内容\",\r\n readOnly: this.readOnly,\r\n },\r\n };\r\n },\r\n computed: {\r\n styles() {\r\n let style = {};\r\n if (this.minHeight) {\r\n style.minHeight = `${this.minHeight}px`;\r\n }\r\n if (this.height) {\r\n style.height = `${this.height}px`;\r\n }\r\n return style;\r\n },\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (val !== this.currentValue) {\r\n this.currentValue = val === null ? \"\" : val;\r\n if (this.Quill) {\r\n this.Quill.pasteHTML(this.currentValue);\r\n }\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n mounted() {\r\n this.init();\r\n },\r\n beforeDestroy() {\r\n this.Quill = null;\r\n },\r\n methods: {\r\n init() {\r\n const editor = this.$refs.editor;\r\n this.Quill = new Quill(editor, this.options);\r\n // 如果设置了上传地址则自定义图片上传事件\r\n if (this.type == 'url') {\r\n let toolbar = this.Quill.getModule(\"toolbar\");\r\n toolbar.addHandler(\"image\", (value) => {\r\n this.uploadType = \"image\";\r\n if (value) {\r\n this.$refs.upload.$children[0].$refs.input.click();\r\n } else {\r\n this.quill.format(\"image\", false);\r\n }\r\n });\r\n }\r\n this.Quill.pasteHTML(this.currentValue);\r\n this.Quill.on(\"text-change\", (delta, oldDelta, source) => {\r\n const html = this.$refs.editor.children[0].innerHTML;\r\n const text = this.Quill.getText();\r\n const quill = this.Quill;\r\n this.currentValue = html;\r\n this.$emit(\"input\", html);\r\n this.$emit(\"on-change\", { html, text, quill });\r\n });\r\n this.Quill.on(\"text-change\", (delta, oldDelta, source) => {\r\n this.$emit(\"on-text-change\", delta, oldDelta, source);\r\n });\r\n this.Quill.on(\"selection-change\", (range, oldRange, source) => {\r\n this.$emit(\"on-selection-change\", range, oldRange, source);\r\n });\r\n this.Quill.on(\"editor-change\", (eventName, ...args) => {\r\n this.$emit(\"on-editor-change\", eventName, ...args);\r\n });\r\n },\r\n // 上传前校检格式和大小\r\n handleBeforeUpload(file) {\r\n // 校检文件大小\r\n if (this.fileSize) {\r\n const isLt = file.size / 1024 / 1024 < this.fileSize;\r\n if (!isLt) {\r\n this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n handleUploadSuccess(res, file) {\r\n // 获取富文本组件实例\r\n let quill = this.Quill;\r\n // 如果上传成功\r\n if (res.code == 200) {\r\n // 获取光标所在位置\r\n let length = quill.getSelection().index;\r\n // 插入图片 res.url为服务器返回的图片地址\r\n quill.insertEmbed(length, \"image\", process.env.VUE_APP_BASE_API + res.fileName);\r\n // 调整光标到最后\r\n quill.setSelection(length + 1);\r\n } else {\r\n this.$message.error(\"图片插入失败\");\r\n }\r\n },\r\n handleUploadError() {\r\n this.$message.error(\"图片插入失败\");\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style>\r\n.editor, .ql-toolbar {\r\n white-space: pre-wrap !important;\r\n line-height: normal !important;\r\n}\r\n.quill-img {\r\n display: none;\r\n}\r\n.ql-snow .ql-tooltip[data-mode=\"link\"]::before {\r\n content: \"请输入链接地址:\";\r\n}\r\n.ql-snow .ql-tooltip.ql-editing a.ql-action::after {\r\n border-right: 0px;\r\n content: \"保存\";\r\n padding-right: 0px;\r\n}\r\n\r\n.ql-snow .ql-tooltip[data-mode=\"video\"]::before {\r\n content: \"请输入视频地址:\";\r\n}\r\n\r\n.ql-snow .ql-picker.ql-size .ql-picker-label::before,\r\n.ql-snow .ql-picker.ql-size .ql-picker-item::before {\r\n content: \"14px\";\r\n}\r\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"small\"]::before,\r\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"small\"]::before {\r\n content: \"10px\";\r\n}\r\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"large\"]::before,\r\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"large\"]::before {\r\n content: \"18px\";\r\n}\r\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=\"huge\"]::before,\r\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"huge\"]::before {\r\n content: \"32px\";\r\n}\r\n\r\n.ql-snow .ql-picker.ql-header .ql-picker-label::before,\r\n.ql-snow .ql-picker.ql-header .ql-picker-item::before {\r\n content: \"文本\";\r\n}\r\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]::before,\r\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\r\n content: \"标题1\";\r\n}\r\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]::before,\r\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\r\n content: \"标题2\";\r\n}\r\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]::before,\r\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\r\n content: \"标题3\";\r\n}\r\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]::before,\r\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\r\n content: \"标题4\";\r\n}\r\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]::before,\r\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\r\n content: \"标题5\";\r\n}\r\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]::before,\r\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\r\n content: \"标题6\";\r\n}\r\n\r\n.ql-snow .ql-picker.ql-font .ql-picker-label::before,\r\n.ql-snow .ql-picker.ql-font .ql-picker-item::before {\r\n content: \"标准字体\";\r\n}\r\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=\"serif\"]::before,\r\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=\"serif\"]::before {\r\n content: \"衬线字体\";\r\n}\r\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=\"monospace\"]::before,\r\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=\"monospace\"]::before {\r\n content: \"等宽字体\";\r\n}\r\n</style>\r\n"]}]}
|