Przeglądaj źródła

完善轮播图管理,文章新建编辑

huangtao 3 lat temu
rodzic
commit
0f5925cca5

+ 139 - 142
package-lock.json

@@ -1297,7 +1297,7 @@
     },
     "@nodelib/fs.stat": {
       "version": "1.1.3",
-      "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz",
+      "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz?cache=0&sync_timestamp=1622792655362&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-1.1.3.tgz",
       "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=",
       "dev": true
     },
@@ -1639,7 +1639,7 @@
     },
     "@vue/babel-preset-app": {
       "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.13.tgz?cache=0&sync_timestamp=1620981723230&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fbabel-preset-app%2Fdownload%2F%40vue%2Fbabel-preset-app-4.5.13.tgz",
+      "resolved": "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.13.tgz",
       "integrity": "sha1-y0dTIeTHP38RDawppIwqnLgK/rY=",
       "dev": true,
       "requires": {
@@ -1791,7 +1791,7 @@
     },
     "@vue/cli-plugin-eslint": {
       "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.5.13.tgz",
+      "resolved": "https://registry.nlark.com/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.5.13.tgz?cache=0&sync_timestamp=1623215859183&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-plugin-eslint%2Fdownload%2F%40vue%2Fcli-plugin-eslint-4.5.13.tgz",
       "integrity": "sha1-i68i0NltdnIMdQZka5b09iwFvfo=",
       "dev": true,
       "requires": {
@@ -1820,7 +1820,7 @@
     },
     "@vue/cli-service": {
       "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-service/download/@vue/cli-service-4.5.13.tgz?cache=0&sync_timestamp=1620981723722&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.13.tgz",
+      "resolved": "https://registry.nlark.com/@vue/cli-service/download/@vue/cli-service-4.5.13.tgz",
       "integrity": "sha1-oJ5oSoAWhLbiTlQUrTBlCXDuye0=",
       "dev": true,
       "requires": {
@@ -1884,54 +1884,16 @@
       "dependencies": {
         "acorn": {
           "version": "7.4.1",
-          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1620134156200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
+          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz",
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
-          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
         "camelcase": {
           "version": "5.3.1",
           "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921882890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
           "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
           "dev": true
         },
-        "chalk": {
-          "version": "4.1.1",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995354302&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz",
-          "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
-          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
-          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
-          "dev": true,
-          "optional": true
-        },
         "css-loader": {
           "version": "3.6.0",
           "resolved": "https://registry.nlark.com/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1621865230592&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz",
@@ -1962,13 +1924,6 @@
             "ms": "2.1.2"
           }
         },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
-          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
-          "dev": true,
-          "optional": true
-        },
         "json5": {
           "version": "1.0.1",
           "resolved": "https://registry.nlark.com/json5/download/json5-1.0.1.tgz",
@@ -2009,58 +1964,12 @@
           "requires": {
             "minipass": "^3.1.1"
           }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1622293670728&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
-          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
-        "vue-loader-v16": {
-          "version": "npm:vue-loader@16.2.0",
-          "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.2.0.tgz?cache=0&sync_timestamp=1620717857145&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-loader%2Fdownload%2Fvue-loader-16.2.0.tgz",
-          "integrity": "sha1-BGpTMI3Ufljv4g3ewe3sAnzjtG4=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "chalk": "^4.1.0",
-            "hash-sum": "^2.0.0",
-            "loader-utils": "^2.0.0"
-          },
-          "dependencies": {
-            "json5": {
-              "version": "2.2.0",
-              "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz?cache=0&sync_timestamp=1612146875530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.2.0.tgz",
-              "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=",
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimist": "^1.2.5"
-              }
-            },
-            "loader-utils": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
-              "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "big.js": "^5.2.2",
-                "emojis-list": "^3.0.0",
-                "json5": "^2.1.2"
-              }
-            }
-          }
         }
       }
     },
     "@vue/cli-shared-utils": {
       "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.13.tgz?cache=0&sync_timestamp=1620981722781&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.13.tgz",
+      "resolved": "https://registry.nlark.com/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.13.tgz",
       "integrity": "sha1-rNQPMbR5DxY0KSvapfypXcHg/1A=",
       "dev": true,
       "requires": {
@@ -2337,7 +2246,7 @@
     },
     "acorn": {
       "version": "6.4.2",
-      "resolved": "https://registry.nlark.com/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1620134156200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-6.4.2.tgz",
+      "resolved": "https://registry.nlark.com/acorn/download/acorn-6.4.2.tgz",
       "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=",
       "dev": true
     },
@@ -2369,7 +2278,7 @@
     },
     "ajv": {
       "version": "6.12.6",
-      "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1621517642931&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
+      "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1622991619843&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
       "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
       "requires": {
         "fast-deep-equal": "^3.1.1",
@@ -2412,7 +2321,7 @@
       "dependencies": {
         "type-fest": {
           "version": "0.21.3",
-          "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.21.3.tgz?cache=0&sync_timestamp=1621402383646&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.21.3.tgz",
+          "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.21.3.tgz?cache=0&sync_timestamp=1622543391721&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.21.3.tgz",
           "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=",
           "dev": true
         }
@@ -2441,7 +2350,7 @@
     },
     "ant-design-vue": {
       "version": "1.7.5",
-      "resolved": "https://registry.nlark.com/ant-design-vue/download/ant-design-vue-1.7.5.tgz",
+      "resolved": "https://registry.nlark.com/ant-design-vue/download/ant-design-vue-1.7.5.tgz?cache=0&sync_timestamp=1623136656408&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fant-design-vue%2Fdownload%2Fant-design-vue-1.7.5.tgz",
       "integrity": "sha1-5+0EyzWK3Fa+AsdFPS2wJtLEBeM=",
       "requires": {
         "@ant-design/icons": "^2.1.1",
@@ -2610,7 +2519,7 @@
         },
         "util": {
           "version": "0.10.3",
-          "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz",
+          "resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1622213047493&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.10.3.tgz",
           "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
           "dev": true,
           "requires": {
@@ -2677,7 +2586,7 @@
     },
     "autoprefixer": {
       "version": "9.8.6",
-      "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz",
+      "resolved": "https://registry.nlark.com/autoprefixer/download/autoprefixer-9.8.6.tgz",
       "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=",
       "dev": true,
       "requires": {
@@ -2704,7 +2613,7 @@
     },
     "axios": {
       "version": "0.21.1",
-      "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.21.1.tgz?cache=0&sync_timestamp=1608609188013&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.21.1.tgz",
+      "resolved": "https://registry.nlark.com/axios/download/axios-0.21.1.tgz?cache=0&sync_timestamp=1618847188301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Faxios%2Fdownload%2Faxios-0.21.1.tgz",
       "integrity": "sha1-IlY0gZYvTWvemnbVFu8OXTwJsrg=",
       "requires": {
         "follow-redirects": "^1.10.0"
@@ -2836,7 +2745,7 @@
       "dependencies": {
         "core-js": {
           "version": "2.6.12",
-          "resolved": "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1621970991239&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz",
+          "resolved": "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1622879421799&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz",
           "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw="
         }
       }
@@ -3490,7 +3399,7 @@
     },
     "ci-info": {
       "version": "1.6.0",
-      "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz",
+      "resolved": "https://registry.nlark.com/ci-info/download/ci-info-1.6.0.tgz?cache=0&sync_timestamp=1622180363085&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fci-info%2Fdownload%2Fci-info-1.6.0.tgz",
       "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=",
       "dev": true
     },
@@ -3606,7 +3515,7 @@
         },
         "supports-color": {
           "version": "7.2.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1618561008172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
           "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
           "dev": true,
           "requires": {
@@ -4375,7 +4284,7 @@
     },
     "css-select": {
       "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1618566178339&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz",
+      "resolved": "https://registry.nlark.com/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-2.1.0.tgz",
       "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=",
       "dev": true,
       "requires": {
@@ -4403,7 +4312,7 @@
     },
     "css-what": {
       "version": "3.4.2",
-      "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz",
+      "resolved": "https://registry.nlark.com/css-what/download/css-what-3.4.2.tgz",
       "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=",
       "dev": true
     },
@@ -4415,7 +4324,7 @@
     },
     "cssnano": {
       "version": "4.1.11",
-      "resolved": "https://registry.nlark.com/cssnano/download/cssnano-4.1.11.tgz?cache=0&sync_timestamp=1621620031632&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcssnano%2Fdownload%2Fcssnano-4.1.11.tgz",
+      "resolved": "https://registry.nlark.com/cssnano/download/cssnano-4.1.11.tgz",
       "integrity": "sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk=",
       "dev": true,
       "requires": {
@@ -4427,7 +4336,7 @@
     },
     "cssnano-preset-default": {
       "version": "4.0.8",
-      "resolved": "https://registry.nlark.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz?cache=0&sync_timestamp=1621620031436&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.8.tgz",
+      "resolved": "https://registry.nlark.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz",
       "integrity": "sha1-kgYisfwelaNOiDggPxOXpQTy0/8=",
       "dev": true,
       "requires": {
@@ -4511,7 +4420,7 @@
         },
         "mdn-data": {
           "version": "2.0.14",
-          "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz?cache=0&sync_timestamp=1619049042656&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.14.tgz",
+          "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz",
           "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=",
           "dev": true
         }
@@ -4605,7 +4514,7 @@
         },
         "execa": {
           "version": "3.4.0",
-          "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1606971027153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz",
+          "resolved": "https://registry.nlark.com/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1622825484602&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz",
           "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=",
           "dev": true,
           "requires": {
@@ -4980,7 +4889,7 @@
     },
     "domutils": {
       "version": "1.7.0",
-      "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz",
+      "resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&sync_timestamp=1622995111565&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz",
       "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=",
       "dev": true,
       "requires": {
@@ -5241,7 +5150,7 @@
     },
     "eslint": {
       "version": "6.8.0",
-      "resolved": "https://registry.nlark.com/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1621646990959&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint%2Fdownload%2Feslint-6.8.0.tgz",
+      "resolved": "https://registry.nlark.com/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1622846610677&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint%2Fdownload%2Feslint-6.8.0.tgz",
       "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=",
       "dev": true,
       "requires": {
@@ -5305,7 +5214,7 @@
         },
         "globals": {
           "version": "12.4.0",
-          "resolved": "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz",
+          "resolved": "https://registry.nlark.com/globals/download/globals-12.4.0.tgz",
           "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=",
           "dev": true,
           "requires": {
@@ -5351,7 +5260,7 @@
         },
         "type-fest": {
           "version": "0.8.1",
-          "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1621402383646&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz",
+          "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1622543391721&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz",
           "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=",
           "dev": true
         }
@@ -5394,7 +5303,7 @@
     },
     "eslint-plugin-vue": {
       "version": "6.2.2",
-      "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-6.2.2.tgz",
+      "resolved": "https://registry.nlark.com/eslint-plugin-vue/download/eslint-plugin-vue-6.2.2.tgz",
       "integrity": "sha1-J/7NmjokeJsPER7N1UCp5WGY4P4=",
       "dev": true,
       "requires": {
@@ -5441,7 +5350,7 @@
       "dependencies": {
         "acorn": {
           "version": "7.4.1",
-          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1620134156200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
+          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz",
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         }
@@ -5544,7 +5453,7 @@
     },
     "execa": {
       "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1606971027153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz",
+      "resolved": "https://registry.nlark.com/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1622825484602&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz",
       "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=",
       "dev": true,
       "requires": {
@@ -6224,7 +6133,7 @@
     },
     "globals": {
       "version": "11.12.0",
-      "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz",
+      "resolved": "https://registry.nlark.com/globals/download/globals-11.12.0.tgz",
       "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=",
       "dev": true
     },
@@ -6772,7 +6681,7 @@
     },
     "import-from": {
       "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz",
+      "resolved": "https://registry.nlark.com/import-from/download/import-from-2.1.0.tgz",
       "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
       "dev": true,
       "requires": {
@@ -6965,7 +6874,7 @@
         },
         "supports-color": {
           "version": "7.2.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1618561008172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
           "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
           "dev": true,
           "requires": {
@@ -7810,7 +7719,7 @@
     },
     "mdn-data": {
       "version": "2.0.4",
-      "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1619049042656&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz",
+      "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz",
       "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=",
       "dev": true
     },
@@ -8398,7 +8307,7 @@
     },
     "object-hash": {
       "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/object-hash/download/object-hash-1.3.1.tgz?cache=0&sync_timestamp=1608921025476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-hash%2Fdownload%2Fobject-hash-1.3.1.tgz",
+      "resolved": "https://registry.nlark.com/object-hash/download/object-hash-1.3.1.tgz",
       "integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=",
       "dev": true
     },
@@ -8906,7 +8815,7 @@
     },
     "postcss": {
       "version": "7.0.35",
-      "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1621568858981&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz",
+      "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz",
       "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=",
       "dev": true,
       "requires": {
@@ -8917,7 +8826,7 @@
       "dependencies": {
         "supports-color": {
           "version": "6.1.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1618561008172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
           "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
           "dev": true,
           "requires": {
@@ -8939,7 +8848,7 @@
     },
     "postcss-colormin": {
       "version": "4.0.3",
-      "resolved": "https://registry.nlark.com/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1621620031272&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz",
+      "resolved": "https://registry.nlark.com/postcss-colormin/download/postcss-colormin-4.0.3.tgz",
       "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=",
       "dev": true,
       "requires": {
@@ -9089,7 +8998,7 @@
     },
     "postcss-merge-rules": {
       "version": "4.0.3",
-      "resolved": "https://registry.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1621449818973&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz",
+      "resolved": "https://registry.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz",
       "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=",
       "dev": true,
       "requires": {
@@ -9514,14 +9423,14 @@
     },
     "prettier": {
       "version": "1.19.1",
-      "resolved": "https://registry.nlark.com/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1620594183343&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz",
+      "resolved": "https://registry.nlark.com/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1622888610164&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz",
       "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=",
       "dev": true,
       "optional": true
     },
     "pretty-error": {
       "version": "2.1.2",
-      "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.2.tgz",
+      "resolved": "https://registry.nlark.com/pretty-error/download/pretty-error-2.1.2.tgz",
       "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=",
       "dev": true,
       "requires": {
@@ -11006,7 +10915,7 @@
     },
     "supports-color": {
       "version": "5.5.0",
-      "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1618561008172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
+      "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
       "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
       "dev": true,
       "requires": {
@@ -11105,7 +11014,7 @@
     },
     "terser-webpack-plugin": {
       "version": "1.4.5",
-      "resolved": "https://registry.nlark.com/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1620831017649&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz",
+      "resolved": "https://registry.nlark.com/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz",
       "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=",
       "dev": true,
       "requires": {
@@ -11244,6 +11153,11 @@
         }
       }
     },
+    "throttle-debounce": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-2.3.0.tgz?cache=0&sync_timestamp=1604313880785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-2.3.0.tgz",
+      "integrity": "sha1-/TGGXmZQIHHkEYF+JBRls+nDcuI="
+    },
     "through": {
       "version": "2.3.8",
       "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
@@ -11425,7 +11339,7 @@
     },
     "type-fest": {
       "version": "0.6.0",
-      "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1621402383646&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz",
+      "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1622543391721&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz",
       "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=",
       "dev": true
     },
@@ -11447,7 +11361,7 @@
     },
     "uglify-js": {
       "version": "3.4.10",
-      "resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1621369441167&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz",
+      "resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-3.4.10.tgz",
       "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=",
       "dev": true,
       "requires": {
@@ -11704,7 +11618,7 @@
     },
     "util": {
       "version": "0.11.1",
-      "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz",
+      "resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1622213047493&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.11.1.tgz",
       "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=",
       "dev": true,
       "requires": {
@@ -11751,10 +11665,19 @@
     },
     "uuid": {
       "version": "3.4.0",
-      "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460081656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz",
+      "resolved": "https://registry.nlark.com/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1622213185460&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz",
       "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=",
       "dev": true
     },
+    "v-viewer": {
+      "version": "1.6.4",
+      "resolved": "https://registry.nlark.com/v-viewer/download/v-viewer-1.6.4.tgz?cache=0&sync_timestamp=1626094459396&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fv-viewer%2Fdownload%2Fv-viewer-1.6.4.tgz",
+      "integrity": "sha1-OeNrU0uqs0B2+4FnBManNN4Nxy8=",
+      "requires": {
+        "throttle-debounce": "^2.0.1",
+        "viewerjs": "^1.5.0"
+      }
+    },
     "v8-compile-cache": {
       "version": "2.3.0",
       "resolved": "https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz",
@@ -11794,6 +11717,11 @@
         "extsprintf": "^1.2.0"
       }
     },
+    "viewerjs": {
+      "version": "1.10.0",
+      "resolved": "https://registry.nlark.com/viewerjs/download/viewerjs-1.10.0.tgz",
+      "integrity": "sha1-bc1pO1SN1tfINxsZMTbR6uGAYh8="
+    },
     "vm-browserify": {
       "version": "1.1.2",
       "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1589344261391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz",
@@ -11893,6 +11821,75 @@
         }
       }
     },
+    "vue-loader-v16": {
+      "version": "npm:vue-loader@16.3.3",
+      "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.3.3.tgz",
+      "integrity": "sha1-5EDk6xJ4bhYTi12YthIgjynd9TI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chalk": "^4.1.0",
+        "hash-sum": "^2.0.0",
+        "loader-utils": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.1",
+          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995354302&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz",
+          "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz",
+          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+          "dev": true,
+          "optional": true
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703455199&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "vue-ref": {
       "version": "2.0.0",
       "resolved": "https://registry.npm.taobao.org/vue-ref/download/vue-ref-2.0.0.tgz",
@@ -12130,7 +12127,7 @@
     },
     "webpack": {
       "version": "4.46.0",
-      "resolved": "https://registry.nlark.com/webpack/download/webpack-4.46.0.tgz?cache=0&sync_timestamp=1621407470605&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.46.0.tgz",
+      "resolved": "https://registry.nlark.com/webpack/download/webpack-4.46.0.tgz?cache=0&sync_timestamp=1622151377755&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.46.0.tgz",
       "integrity": "sha1-v5tEBOogoHNgXgoBHRiNd8tq1UI=",
       "dev": true,
       "requires": {
@@ -12215,7 +12212,7 @@
       "dependencies": {
         "acorn": {
           "version": "7.4.1",
-          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1620134156200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
+          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz",
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         }
@@ -12575,7 +12572,7 @@
         },
         "supports-color": {
           "version": "6.1.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1618561008172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
           "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
           "dev": true,
           "requires": {
@@ -12661,7 +12658,7 @@
     },
     "webpack-sources": {
       "version": "1.4.3",
-      "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1603965314165&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz",
+      "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1622110410694&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz",
       "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=",
       "dev": true,
       "requires": {
@@ -12873,7 +12870,7 @@
         },
         "execa": {
           "version": "0.8.0",
-          "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1606971027153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz",
+          "resolved": "https://registry.nlark.com/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1622825484602&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz",
           "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
           "dev": true,
           "requires": {

+ 1 - 0
package.json

@@ -21,6 +21,7 @@
     "nprogress": "^0.2.0",
     "register-service-worker": "^1.7.2",
     "tinymce": "^5.1.0",
+    "v-viewer": "^1.6.4",
     "vue": "^2.6.11",
     "vue-router": "^3.5.1",
     "vuex": "^3.6.2",

+ 3 - 0
src/filters/index.js

@@ -163,6 +163,9 @@ export function formateStringDate(dateString) {
  * @returns 
  */
  export function formateDateToString(date) {
+   if(!date) {
+    return null
+   }
   const noramlDate = new Date(date);
   const year = noramlDate.getFullYear();
   const curMonth = noramlDate.getMonth() + 1;

+ 44 - 21
src/main.js

@@ -1,57 +1,80 @@
-import Vue from 'vue'
-import App from './App.vue'
+import Vue from 'vue';
+import App from './App.vue';
 // 路由
-import router from './router'
+import router from './router';
 // Vue.use(router);
 
 // 使用echarts
-import echarts from 'echarts'
-Vue.prototype.$echarts = echarts
+import echarts from 'echarts';
+Vue.prototype.$echarts = echarts;
 
 // Vuex
-import store from './store'
+import store from './store';
 
 // 全局组件库、组件、样式
-import './styles/index'
+import './styles/index';
 
 // 是否启用PWA
-import './sw/registerServiceWorker'
+import './sw/registerServiceWorker';
 
 // 注册自定义插件
-import './plugins'
+import './plugins';
 
 // 调用共通js
-import './common'
+import './common';
 
 // 共通filters
-import * as filters from './filters'
+import * as filters from './filters';
+
+// 查看大图组件
+import Viewer from 'v-viewer';
+import 'viewerjs/dist/viewer.css';
+Vue.use(Viewer);
+// Viewer.setDefaults({
+//   Options: {
+//     inline: true, // 启用 inline 模式
+//     button: true, // 显示右上角关闭按钮
+//     navbar: true, // 显示缩略图导航
+//     title: true, // 显示当前图片的标题
+//     toolbar: true, // 显示工具栏
+//     tooltip: true, // 显示缩放百分比
+//     movable: true, // 图片是否可移动
+//     zoomable: true, // 图片是否可缩放
+//     rotatable: true, // 图片是否可旋转
+//     scalable: true, // 图片是否可翻转
+//     transition: true, // 使用 CSS3 过度
+//     fullscreen: true, // 播放时是否全屏
+//     keyboard: true, // 是否支持键盘
+//     url: 'data-source', // 设置大图片的 url
+//   },
+// });
 
 // 试题详情组件
-import QuestionDetailDialog from "@/components/common/QuestionDetailDialog";
+import QuestionDetailDialog from '@/components/common/QuestionDetailDialog';
 
-Vue.component('QuestionDetailDialog',QuestionDetailDialog)
+Vue.component('QuestionDetailDialog', QuestionDetailDialog);
 Object.entries(filters).forEach(([key, value]) => {
-  Vue.filter(key, value)
-})
+  Vue.filter(key, value);
+});
 
 Vue.config.productionTip = false;
 
 // 开发时是否使用数据库中的菜单,修改后需要重新登陆
 if (process.env.NODE_ENV !== 'production') {
-  sessionStorage.MenusFromDB = false
+  sessionStorage.MenusFromDB = false;
 }
 
-const $bus = new Vue()
+const $bus = new Vue();
 Object.defineProperties(Vue.prototype, {
   $bus: {
     get() {
-      return $bus
+      return $bus;
     },
   },
-})
+});
 
 new Vue({
   router: router,
   store: store,
-  render: (h) => h(App)
-}).$mount('#app')
+  render: (h) => h(App),
+}).$mount('#app');

+ 15 - 5
src/styles/components/index.less

@@ -15,9 +15,9 @@
     display: flex;
     justify-content: center;
     align-items: flex-end;
-    span{
+    span {
       font-size: 12px;
-      color:@mainColorBlack45;
+      color: @mainColorBlack45;
     }
   }
 }
@@ -190,17 +190,18 @@
   margin-bottom: @paddingMarginVal;
   display: flex;
   justify-content: space-between;
-  .exam-question-edit-row-left { }
+  .exam-question-edit-row-left {
+  }
   .exam-question-edit-row-right {
     .exam-question-edit-search {
       display: flex;
       align-items: center;
       .exam-question-edit-search-title {
         flex-wrap: nowrap;
-white-space: nowrap;
+        white-space: nowrap;
       }
     }
-   }
+  }
   .exam-question-edit-btn {
     margin-left: @paddingMarginVal;
   }
@@ -222,3 +223,12 @@ white-space: nowrap;
   }
 }
 // 基础信息表单布局样式------------end
+
+// v-viewer下方工具栏的旋转功能隐藏
+.viewer-footer {
+  .viewer-toolbar {
+    .viewer-reset {
+      display: none;
+    }
+  }
+}

+ 39 - 50
src/views/articleManagement/articleCarouselUpload.vue

@@ -23,35 +23,42 @@
       <!-- 轮播图列表 -->
       <div class="common-card a-card-margin-top basic-information-box">
         <div class="basic-information-title">轮播图列表</div>
-        <div
+        <viewer
           v-if="carouselList && carouselList.length > 0"
-          class="carousel-list"
+          :images="carouselList"
         >
-          <div
-            :class="{
-              'carousel-item': true,
-              'carousel-item-margin': (index + 1) % 3 !== 0,
-            }"
-            v-for="(item, index) in carouselList"
-            :key="index"
-          >
-            <img class="carousel-item-img" :src="item.url" fit="contain" />
-            <a title="绑定文章">
-              <a-icon
-                class="carousel-item-icon carousel-item-reddit"
-                type="reddit"
-                @click="handleShowDialog(item)"
-              />
-            </a>
-            <a title="删除">
-              <a-icon
-                class="carousel-item-icon carousel-item-delete"
-                type="delete"
-                @click="handleDeleteCarousel(item)"
+          <div class="carousel-list">
+            <div
+              :class="{
+                'carousel-item': true,
+                'carousel-item-margin': (index + 1) % 3 !== 0,
+              }"
+              v-for="(item, index) in carouselList"
+              :key="index"
+            >
+              <img
+                class="carousel-item-img"
+                :src="item.imageUrl"
+                title="点击放大"
+                fit="contain"
               />
-            </a>
+              <a title="绑定文章">
+                <a-icon
+                  class="carousel-item-icon carousel-item-reddit"
+                  type="reddit"
+                  @click="handleShowDialog(item)"
+                />
+              </a>
+              <a title="删除">
+                <a-icon
+                  class="carousel-item-icon carousel-item-delete"
+                  type="delete"
+                  @click="handleDeleteCarousel(item)"
+                />
+              </a>
+            </div>
           </div>
-        </div>
+        </viewer>
         <div v-else class="carousel-list-none">暂无数据</div>
       </div>
     </a-spin>
@@ -60,6 +67,7 @@
         copyright © 浮游科技有限公司出品
       </span>
     </div> -->
+    <!-- 绑定文章弹框 -->
     <a-modal
       class="article-carousel-bind-modal"
       :title="carouselTitle"
@@ -218,28 +226,6 @@ export default {
         },
       ];
       this.getCarouselListFun(); // 查询:轮播图列表
-      // this.carouselList = [
-      //   {
-      //     url:
-      //       'https://jtxt-material-images-public.oss-cn-beijing.aliyuncs.com/d2ccf0b6099f4a7c80a0217705f04c86.png',
-      //     materialId: '',
-      //   },
-      //   {
-      //     url:
-      //       'https://jtxt-material-images-public.oss-cn-beijing.aliyuncs.com/d2ccf0b6099f4a7c80a0217705f04c86.png',
-      //     materialId: '',
-      //   },
-      //   {
-      //     url:
-      //       'https://jtxt-material-images-public.oss-cn-beijing.aliyuncs.com/d2ccf0b6099f4a7c80a0217705f04c86.png',
-      //     materialId: '',
-      //   },
-      //   {
-      //     url:
-      //       'https://jtxt-material-images-public.oss-cn-beijing.aliyuncs.com/d2ccf0b6099f4a7c80a0217705f04c86.png',
-      //     materialId: '',
-      //   },
-      // ];
     },
     // 查询:轮播图列表
     getCarouselListFun() {
@@ -294,10 +280,10 @@ export default {
     },
     // 操作:打开弹框
     handleShowDialog(data) {
-      if (!data || !data.url) {
+      if (!data) {
         return;
       }
-      this.toBindCarouselData = data.url;
+      this.toBindCarouselData = data;
       this.getArticleListFun(); // 查询:文章列表数据
       this.isVisible = true;
     },
@@ -434,7 +420,9 @@ export default {
         onOk() {
           let params = {
             materialId: record.id,
-            imageUrl: that.toBindCarouselData.url,
+            imageUrl: that.toBindCarouselData.url
+              ? that.toBindCarouselData.url
+              : that.toBindCarouselData.imageUrl,
           };
           that.$_http
             .post(that.$_API.INTERFACE_POST_CAROUSELS_ADD, params)
@@ -533,6 +521,7 @@ export default {
         width: 100%;
         height: 300px;
         border: 1px dashed @mainColorBorder;
+        cursor: pointer;
       }
       .carousel-item-icon {
         padding: 3px 3px;

+ 64 - 62
src/views/articleManagement/articleCreate.vue

@@ -162,30 +162,30 @@
 import {
   formatePathParams,
   formateStringDate,
-  formateDateToString
-} from "@/filters";
-import TinymceEditor from "@/components/tinymce/TinymceEditor"; // 富文本编辑组件
+  formateDateToString,
+} from '@/filters';
+import TinymceEditor from '@/components/tinymce/TinymceEditor'; // 富文本编辑组件
 export default {
-  name: "articleCreate",
+  name: 'articleCreate',
   props: {},
   components: {
-    TinymceEditor
+    TinymceEditor,
   },
   data() {
     return {
-      content: "输入内容",
+      content: '输入内容',
       //   展示预览
       previewVisible: false,
-      form: this.$form.createForm(this, { name: "articleCreate" }),
+      form: this.$form.createForm(this, { name: 'articleCreate' }),
       articleParentClassArr: [],
       articleChildClassArr: [],
       engineerTypeArray: [],
       articleParentClass: {},
       articleChildClass: {},
-      engineerType: "",
-      learnDate: "",
-      optionType: "",
-      description: ""
+      engineerType: '',
+      learnDate: '',
+      optionType: '',
+      description: '',
     };
   },
   created() {
@@ -201,20 +201,20 @@ export default {
       await this.getArticleParentClass();
       await this.getEngineersWork();
       let type = this.$route.query.type;
-      this.optionType = type ? type : "create";
+      this.optionType = type ? type : 'create';
       // 判断是新增文章还是编辑文章
-      if ("edit" === type) {
-        console.log("---edit---");
+      if ('edit' === type) {
+        console.log('---edit---');
         await this.getArticleContent();
-      } else if ("create" === type) {
-        console.log("---create---");
+      } else if ('create' === type) {
+        console.log('---create---');
       }
     },
     // 查询文章分类父级
     getArticleParentClass() {
       this.$_http
         .get(this.$_API.INTERFACE_GET_CATEGORIES)
-        .then(res => {
+        .then((res) => {
           this.articleParentClassArr = res.data;
           this.loading = false;
         })
@@ -235,12 +235,12 @@ export default {
             pathParamsData
           )
         )
-        .then(res => {
+        .then((res) => {
           if (res && res.data.length !== 0) {
             this.articleChildClassArr = res.data;
             this.articleChildClass = this.articleChildClassArr[0];
             this.form.setFieldsValue({
-              articleChildClass: this.articleChildClass.name
+              articleChildClass: this.articleChildClass.name,
             });
           }
           this.loading = false;
@@ -253,8 +253,8 @@ export default {
     async getEngineersWork() {
       await this.$_http
         .get(this.$_API.INTERFACE_GET_ENGINEERINGWORK_LIST)
-        .then(res => {
-          this.engineerTypeArray = [{ name: "不限", id: "" }, ...res.data];
+        .then((res) => {
+          this.engineerTypeArray = [{ name: '不限', id: '' }, ...res.data];
           this.engineerType = this.engineerTypeArray[0];
         });
     },
@@ -265,7 +265,7 @@ export default {
       // 子类选项清空
       this.articleChildClassArr = [];
       this.form.setFieldsValue({
-        articleChildClass: ""
+        articleChildClass: '',
       });
       // 获取子类的值
       this.getArticleChildClass();
@@ -283,7 +283,7 @@ export default {
       this.learnDate = dateString;
     },
     handleSubmitBtnFun() {
-      document.getElementById("articleCreateSubmit").click();
+      document.getElementById('articleCreateSubmit').click();
     },
     // 查询文章内容
     getArticleContent() {
@@ -292,8 +292,8 @@ export default {
         .get(
           formatePathParams(this.$_API.INTERFACE_GET_MATERIALS, pathParamsData)
         )
-        .then(res => {
-          console.log("----" + JSON.stringify(res));
+        .then((res) => {
+          console.log('----' + JSON.stringify(res));
           this.initEditArticleForm(res.data);
           this.loading = false;
         })
@@ -302,13 +302,13 @@ export default {
         });
     },
     initEditArticleForm(item) {
-      console.log("--------" + JSON.stringify(item));
+      console.log('--------' + JSON.stringify(item));
       //   文章标题
       this.form.setFieldsValue({
-        name: item.name
+        name: item.name,
       });
       //   文章描述
-      this.description = item.description ? item.description : "";
+      this.description = item.description ? item.description : '';
       // 文章分类-父类:
       this.articleParentClass = item.rootMaterialCategory;
       this.getArticleChildClass(); // 获取子类列表的值
@@ -324,67 +324,68 @@ export default {
           }
         }
       }
-      let learnDate = item.tags.length > 0 ? item.tags[0] : "";
+      let learnDate = item.tags.length > 0 ? item.tags[0] : null;
       // 必学日期
-      this.learnDate = learnDate ? formateStringDate(learnDate) : "";
-      console.log("编辑初始化时间为YYYY-MM-DD", this.learnDate, learnDate);
+      this.learnDate = learnDate ? formateStringDate(learnDate) : null;
+      console.log('编辑初始化时间为YYYY-MM-DD', this.learnDate, learnDate);
       // 文章内容
       this.content = item.contents;
     },
     // 提交表单
     handleSubmit(e) {
       e.preventDefault();
-      if ("create" === this.optionType) {
-        console.log("创建文章");
+      if ('create' === this.optionType) {
+        console.log('创建文章');
         this.createArtical();
-      } else if ("edit" === this.optionType) {
-        console.log("更新文章");
+      } else if ('edit' === this.optionType) {
+        console.log('更新文章');
         this.updateArtical();
       }
     },
     createArtical() {
       this.form.setFieldsValue({
-        articleParentClass: this.articleParentClass.name
+        articleParentClass: this.articleParentClass.name,
       });
       this.form.setFieldsValue({
-        articleChildClass: this.articleChildClass.name
+        articleChildClass: this.articleChildClass.name,
       });
       this.form.setFieldsValue({
-        engineerType: this.engineerType.name
+        engineerType: this.engineerType.name,
       });
       this.form.validateFields((err, values) => {
         if (!err) {
           // 新建文章
           let that = this;
           that.$confirm({
-            title: "新建文章",
+            title: '新建文章',
             content: `确认新建文章吗?`,
-            okText: "确认",
-            cancelText: "取消",
+            okText: '确认',
+            cancelText: '取消',
             onOk() {
               that.loading = true;
               let params = {
                 categoryid: that.articleChildClass.id,
-                engineertypeid: that.engineerType.id
+                engineertypeid: that.engineerType.id,
               };
+              let tag = formateDateToString(that.learnDate);
               let bodyParams = {
                 name: values.name,
                 description: values.description,
-                type: "ARTICLE",
+                type: 'ARTICLE',
                 contents: that.content,
-                tags: [formateDateToString(that.learnDate)],
+                tags: tag ? [tag] : [],
                 engineerTypes: [that.engineerType.id],
-                links: []
+                links: [],
               };
               that.$_http
                 .post(that.$_API.INTERFACE_POST_ADMIN_MATERIALS, bodyParams, {
-                  params
+                  params,
                 })
                 .then(() => {
-                  that.$message.success("新建文章成功");
+                  that.$message.success('新建文章成功');
                 });
             },
-            onCancel() {}
+            onCancel() {},
           });
         }
       });
@@ -396,28 +397,29 @@ export default {
           // 更新文章
           let that = this;
           that.$confirm({
-            title: "更新文章",
+            title: '更新文章',
             content: `确认更新文章吗?`,
-            okText: "确认",
-            cancelText: "取消",
+            okText: '确认',
+            cancelText: '取消',
             onOk() {
               that.loading = true;
               let params = {
                 categoryid: that.articleChildClass.id,
-                engineertypeid: that.engineerType.id
+                engineertypeid: that.engineerType.id,
               };
+              let tag = formateDateToString(that.learnDate);
               let bodyParams = {
                 id: that.$route.query.id,
                 name: values.name,
                 description: values.description,
-                type: "ARTICLE",
+                type: 'ARTICLE',
                 contents: that.content,
-                tags: [formateDateToString(that.learnDate)],
+                tags: tag ? [tag] : [],
                 engineerTypes: [that.engineerType.id],
-                links: []
+                links: [],
               };
               console.log(
-                "保存修改日期格式为YYYYMMDD",
+                '保存修改日期格式为YYYYMMDD',
                 bodyParams.tags,
                 that.learnDate
               );
@@ -429,14 +431,14 @@ export default {
                   ),
                   bodyParams,
                   {
-                    params
+                    params,
                   }
                 )
                 .then(() => {
-                  that.$message.success("更新文章成功");
+                  that.$message.success('更新文章成功');
                 });
             },
-            onCancel() {}
+            onCancel() {},
           });
         }
       });
@@ -448,15 +450,15 @@ export default {
     // 关闭预览
     closepreview() {
       this.previewVisible = false;
-    }
-  }
+    },
+  },
 };
 </script>
 
 <style lang="less"></style>
 
 <style lang="less" scoped>
-@import "~@/styles/common/variable.less";
+@import '~@/styles/common/variable.less';
 .app-container {
   .information-title {
     font-size: 18px;

+ 8 - 0
src/views/examManagement/examAutomaticVolumeFormation.vue

@@ -178,6 +178,7 @@
             <a-input
               v-model="questionInfo.singleNum"
               placeholder="输入数量"
+              type="number"
               :max-length="3"
               style="width: 100px;"
             />
@@ -187,6 +188,7 @@
             <a-input
               v-model="questionInfo.singleGrade"
               placeholder="输入分值"
+              type="number"
               :maxLength="3"
               style="width: 100px;"
             />
@@ -198,6 +200,7 @@
             <a-input
               v-model="questionInfo.multiNum"
               placeholder="输入数量"
+              type="number"
               :maxLength="3"
               style="width: 100px;"
             />
@@ -207,6 +210,7 @@
             <a-input
               v-model="questionInfo.multiGrade"
               placeholder="输入分值"
+              type="number"
               :maxLength="3"
               style="width: 100px;"
             />
@@ -218,6 +222,7 @@
             <a-input
               v-model="questionInfo.trueFalseNum"
               placeholder="输入数量"
+              type="number"
               :maxLength="3"
               style="width: 100px;"
             />
@@ -227,6 +232,7 @@
             <a-input
               v-model="questionInfo.trueFalseGrade"
               placeholder="输入分值"
+              type="number"
               :maxLength="3"
               style="width: 100px;"
             />
@@ -238,6 +244,7 @@
             <a-input
               v-model="questionInfo.gapFillingNum"
               placeholder="输入数量"
+              type="number"
               :maxLength="3"
               style="width: 100px;"
             />
@@ -247,6 +254,7 @@
             <a-input
               v-model="questionInfo.gapFillingGrade"
               placeholder="输入分值"
+              type="number"
               :maxLength="3"
               style="width: 100px;"
             />