Просмотр исходного кода

:zap: 通知公告模块增加富文本编辑器

smallchill 6 лет назад
Родитель
Сommit
e7994696e5

+ 69 - 7
package-lock.json

@@ -1,6 +1,6 @@
 {
     "name": "saber-admin",
-    "version": "1.0.0",
+    "version": "2.0.5",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -1733,6 +1733,17 @@
                 "postcss-value-parser": "^3.3.1"
             }
         },
+        "avue-plugin-ueditor": {
+            "version": "0.0.4",
+            "resolved": "https://registry.npm.taobao.org/avue-plugin-ueditor/download/avue-plugin-ueditor-0.0.4.tgz",
+            "integrity": "sha1-5Vd1oTgzcOU3736DjRqMytE2dNs=",
+            "requires": {
+                "axios": "^0.18.0",
+                "vue": "^2.5.17",
+                "vue-quill-editor": "^3.0.6",
+                "vue-router": "^3.0.1"
+            }
+        },
         "aws-sign2": {
             "version": "0.7.0",
             "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
@@ -3548,8 +3559,7 @@
         "deep-equal": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
-            "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
-            "dev": true
+            "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
         },
         "deep-is": {
             "version": "0.1.3",
@@ -4408,8 +4418,7 @@
         "extend": {
             "version": "3.0.2",
             "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-            "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-            "dev": true
+            "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
         },
         "extend-shallow": {
             "version": "3.0.2",
@@ -4521,6 +4530,11 @@
             "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
             "dev": true
         },
+        "fast-diff": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.1.2.tgz",
+            "integrity": "sha1-S2LEK44D3j+EhGC2OQeZIGldAVQ="
+        },
         "fast-glob": {
             "version": "2.2.6",
             "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz",
@@ -7733,8 +7747,7 @@
         "object-assign": {
             "version": "4.1.1",
             "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-            "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-            "dev": true
+            "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
         },
         "object-copy": {
             "version": "0.1.0",
@@ -8036,6 +8049,11 @@
                 "no-case": "^2.2.0"
             }
         },
+        "parchment": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npm.taobao.org/parchment/download/parchment-1.1.4.tgz",
+            "integrity": "sha1-rt7Xq5OP6SHUw0vDOc4RaLwv/eU="
+        },
         "parse-asn1": {
             "version": "5.1.4",
             "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
@@ -8927,6 +8945,41 @@
             "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==",
             "dev": true
         },
+        "quill": {
+            "version": "1.3.6",
+            "resolved": "https://registry.npm.taobao.org/quill/download/quill-1.3.6.tgz",
+            "integrity": "sha1-mfTeH+6FkloNfUFjttgyjyMxek0=",
+            "requires": {
+                "clone": "^2.1.1",
+                "deep-equal": "^1.0.1",
+                "eventemitter3": "^2.0.3",
+                "extend": "^3.0.1",
+                "parchment": "^1.1.4",
+                "quill-delta": "^3.6.2"
+            },
+            "dependencies": {
+                "clone": {
+                    "version": "2.1.2",
+                    "resolved": "http://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz",
+                    "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+                },
+                "eventemitter3": {
+                    "version": "2.0.3",
+                    "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-2.0.3.tgz?cache=0&sync_timestamp=1560950873670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-2.0.3.tgz",
+                    "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
+                }
+            }
+        },
+        "quill-delta": {
+            "version": "3.6.3",
+            "resolved": "https://registry.npm.taobao.org/quill-delta/download/quill-delta-3.6.3.tgz",
+            "integrity": "sha1-sZ/SuJQSMBxg4f8hPY2GDqwPEDI=",
+            "requires": {
+                "deep-equal": "^1.0.1",
+                "extend": "^3.0.2",
+                "fast-diff": "1.1.2"
+            }
+        },
         "randombytes": {
             "version": "2.1.0",
             "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -11294,6 +11347,15 @@
                 "vue-style-loader": "^4.1.0"
             }
         },
+        "vue-quill-editor": {
+            "version": "3.0.6",
+            "resolved": "https://registry.npm.taobao.org/vue-quill-editor/download/vue-quill-editor-3.0.6.tgz",
+            "integrity": "sha1-H4VkYhHWijGoCnLLf0W7LxGbyPs=",
+            "requires": {
+                "object-assign": "^4.1.1",
+                "quill": "^1.3.4"
+            }
+        },
         "vue-router": {
             "version": "3.0.2",
             "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz",

+ 1 - 0
package.json

@@ -11,6 +11,7 @@
     "test:e2e": "vue-cli-service test:e2e"
   },
   "dependencies": {
+    "avue-plugin-ueditor": "^0.0.4",
     "axios": "^0.18.0",
     "babel-polyfill": "^6.26.0",
     "classlist-polyfill": "^1.2.0",

+ 21 - 5
src/views/desk/notice.vue

@@ -29,15 +29,22 @@
                 slot="category">
         <el-tag>{{row.categoryName}}</el-tag>
       </template>
+      <template slot-scope="scope" slot="contentForm">
+        <avue-ueditor v-model="form.content" :upload="upload"></avue-ueditor>
+      </template>
     </avue-crud>
   </basic-container>
 </template>
 
 <script>
+  import AvueUeditor from 'avue-plugin-ueditor';
   import {getList, remove, update, add, getNotice} from "@/api/dept/notice";
   import {mapGetters} from "vuex";
 
   export default {
+    comments: {
+      AvueUeditor
+    },
     data() {
       return {
         form: {},
@@ -49,9 +56,18 @@
           total: 0
         },
         selectionList: [],
+        upload: {
+          action: '/api/blade-resource/oss/endpoint/put-file',
+          props: {
+            res: "data",
+            url: "link",
+          }
+        },
         option: {
-          height:'auto',
-          calcHeight:'350',
+          height: 'auto',
+          calcHeight: 350,
+          dialogWidth: 300,
+          dialogHeight: 530,
           tip: false,
           border: true,
           index: true,
@@ -62,6 +78,7 @@
             {
               label: "通知标题",
               prop: "title",
+              span: 24,
               row: true,
               search: true,
               rules: [{
@@ -73,7 +90,6 @@
             {
               label: "通知类型",
               type: "select",
-              row: true,
               dicUrl: "/api/blade-system/dict/dictionary?code=notice",
               props: {
                 label: "dictValue",
@@ -120,9 +136,9 @@
             {
               label: "通知内容",
               prop: "content",
+              formslot: true,
+              hide: true,
               span: 24,
-              minRows: 6,
-              type: "textarea"
             }
           ]
         },

+ 5 - 5
src/views/flow/follow.vue

@@ -61,8 +61,8 @@
         followBox: false,
         deleteReason: '',
         option: {
-          height:'auto',
-          calcHeight:'350',
+          height: 'auto',
+          calcHeight: 350,
           tip: false,
           border: true,
           index: true,
@@ -162,10 +162,10 @@
       selectionChange(list) {
         this.selectionList = list;
       },
-      currentChange(currentPage){
+      currentChange(currentPage) {
         this.page.currentPage = currentPage;
       },
-      sizeChange(pageSize){
+      sizeChange(pageSize) {
         this.page.pageSize = pageSize;
       },
       onLoad(page, params = {}) {
@@ -184,6 +184,6 @@
 <style>
   .none-border {
     border: 0;
-    background-color: transparent!important;
+    background-color: transparent !important;
   }
 </style>

+ 1 - 1
src/views/flow/manager.vue

@@ -136,7 +136,7 @@
         }],
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/flow/model.vue

@@ -139,7 +139,7 @@
         categoryValue: '',
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/monitor/log/api.vue

@@ -35,7 +35,7 @@
         },
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/monitor/log/error.vue

@@ -35,7 +35,7 @@
         },
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/monitor/log/usual.vue

@@ -35,7 +35,7 @@
         },
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/resource/oss.vue

@@ -65,7 +65,7 @@
         selectionList: [],
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 2 - 2
src/views/system/client.vue

@@ -46,8 +46,8 @@
         },
         selectionList: [],
         option: {
-          height:'auto',
-          calcHeight:'350',
+          height: 'auto',
+          calcHeight: 350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/system/param.vue

@@ -47,7 +47,7 @@
         },
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/system/tenant.vue

@@ -47,7 +47,7 @@
         },
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/system/topmenu.vue

@@ -86,7 +86,7 @@
         menuTreeObj: [],
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/system/user.vue

@@ -93,7 +93,7 @@
         },
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/tool/code.vue

@@ -54,7 +54,7 @@
         },
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/work/claim.vue

@@ -86,7 +86,7 @@
         workBox: false,
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/work/done.vue

@@ -79,7 +79,7 @@
         workBox: false,
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/work/send.vue

@@ -83,7 +83,7 @@
         workBox: false,
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/work/start.vue

@@ -87,7 +87,7 @@
         workBox: false,
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 1 - 1
src/views/work/todo.vue

@@ -86,7 +86,7 @@
         workBox: false,
         option: {
           height:'auto',
-          calcHeight:'350',
+          calcHeight:350,
           tip: false,
           border: true,
           index: true,

+ 66 - 2
yarn.lock

@@ -1388,6 +1388,16 @@ autoprefixer@^9.4.7:
     postcss "^7.0.14"
     postcss-value-parser "^3.3.1"
 
+avue-plugin-ueditor@^0.0.4:
+  version "0.0.4"
+  resolved "https://registry.npm.taobao.org/avue-plugin-ueditor/download/avue-plugin-ueditor-0.0.4.tgz#e55775a1383370e537ef7e838d1a8ccad13674db"
+  integrity sha1-5Vd1oTgzcOU3736DjRqMytE2dNs=
+  dependencies:
+    axios "^0.18.0"
+    vue "^2.5.17"
+    vue-quill-editor "^3.0.6"
+    vue-router "^3.0.1"
+
 aws-sign2@~0.7.0:
   version "0.7.0"
   resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -2045,6 +2055,11 @@ clone@^1.0.2:
   resolved "http://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
   integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
 
+clone@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+  integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+
 co@^4.6.0:
   version "4.6.0"
   resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -3129,6 +3144,11 @@ event-pubsub@4.3.0:
   resolved "http://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e"
   integrity sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=
 
+eventemitter3@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-2.0.3.tgz?cache=0&sync_timestamp=1560950873670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba"
+  integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=
+
 eventemitter3@^3.0.0:
   version "3.1.0"
   resolved "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163"
@@ -3244,7 +3264,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
     assign-symbols "^1.0.0"
     is-extendable "^1.0.1"
 
-extend@~3.0.2:
+extend@^3.0.1, extend@^3.0.2, extend@~3.0.2:
   version "3.0.2"
   resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
   integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=
@@ -3292,6 +3312,11 @@ fast-deep-equal@^2.0.1:
   resolved "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
   integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
 
+fast-diff@1.1.2:
+  version "1.1.2"
+  resolved "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
+  integrity sha1-S2LEK44D3j+EhGC2OQeZIGldAVQ=
+
 fast-glob@^2.2.6:
   version "2.2.6"
   resolved "http://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295"
@@ -5472,7 +5497,7 @@ oauth-sign@~0.9.0:
   resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
   integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=
 
-object-assign@^4.0.1, object-assign@^4.1.0:
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
   version "4.1.1"
   resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
   integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@@ -5730,6 +5755,11 @@ param-case@2.1.x:
   dependencies:
     no-case "^2.2.0"
 
+parchment@^1.1.4:
+  version "1.1.4"
+  resolved "https://registry.npm.taobao.org/parchment/download/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5"
+  integrity sha1-rt7Xq5OP6SHUw0vDOc4RaLwv/eU=
+
 parse-asn1@^5.0.0:
   version "5.1.4"
   resolved "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc"
@@ -6399,6 +6429,27 @@ querystringify@^2.0.0:
   resolved "http://registry.npm.taobao.org/querystringify/download/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef"
   integrity sha1-fe2N+/eHncxg0KZErGdUsoOtF+8=
 
+quill-delta@^3.6.2:
+  version "3.6.3"
+  resolved "https://registry.npm.taobao.org/quill-delta/download/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032"
+  integrity sha1-sZ/SuJQSMBxg4f8hPY2GDqwPEDI=
+  dependencies:
+    deep-equal "^1.0.1"
+    extend "^3.0.2"
+    fast-diff "1.1.2"
+
+quill@^1.3.4:
+  version "1.3.6"
+  resolved "https://registry.npm.taobao.org/quill/download/quill-1.3.6.tgz#99f4de1fee85925a0d7d4163b6d8328f23317a4d"
+  integrity sha1-mfTeH+6FkloNfUFjttgyjyMxek0=
+  dependencies:
+    clone "^2.1.1"
+    deep-equal "^1.0.1"
+    eventemitter3 "^2.0.3"
+    extend "^3.0.1"
+    parchment "^1.1.4"
+    quill-delta "^3.6.2"
+
 randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
   version "2.1.0"
   resolved "http://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -7974,6 +8025,14 @@ vue-loader@^15.6.2:
     vue-hot-reload-api "^2.3.0"
     vue-style-loader "^4.1.0"
 
+vue-quill-editor@^3.0.6:
+  version "3.0.6"
+  resolved "https://registry.npm.taobao.org/vue-quill-editor/download/vue-quill-editor-3.0.6.tgz#1f85646211d68a31a80a72cb7f45bb2f119bc8fb"
+  integrity sha1-H4VkYhHWijGoCnLLf0W7LxGbyPs=
+  dependencies:
+    object-assign "^4.1.1"
+    quill "^1.3.4"
+
 vue-router@^3.0.1:
   version "3.0.2"
   resolved "http://registry.npm.taobao.org/vue-router/download/vue-router-3.0.2.tgz#dedc67afe6c4e2bc25682c8b1c2a8c0d7c7e56be"
@@ -8005,6 +8064,11 @@ vue@^2.5.16:
   resolved "http://registry.npm.taobao.org/vue/download/vue-2.6.7.tgz#254f188e7621d2d19ee28d0c0442c6d21b53ae2d"
   integrity sha1-JU8YjnYh0tGe4o0MBELG0htTri0=
 
+vue@^2.5.17:
+  version "2.6.10"
+  resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.10.tgz#a72b1a42a4d82a721ea438d1b6bf55e66195c637"
+  integrity sha1-pysaQqTYKnIepDjRtr9V5mGVxjc=
+
 vuex@^3.0.1:
   version "3.1.0"
   resolved "http://registry.npm.taobao.org/vuex/download/vuex-3.1.0.tgz#634b81515cf0cfe976bd1ffe9601755e51f843b9"