diff --git a/package-lock.json b/package-lock.json index f49e762a..192fa5ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,21 +6,21 @@ "dependencies": { "@ant-design/colors": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-3.2.2.tgz", - "integrity": "sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ==", + "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-3.2.2.tgz?cache=0&sync_timestamp=1596611369344&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Fcolors%2Fdownload%2F%40ant-design%2Fcolors-3.2.2.tgz", + "integrity": "sha1-WtQ9YZ6RHzSI66wwPWBuZqhCOQM=", "requires": { "tinycolor2": "^1.4.1" } }, "@ant-design/icons": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-2.1.1.tgz", - "integrity": "sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w==" + "resolved": "https://registry.npm.taobao.org/@ant-design/icons/download/@ant-design/icons-2.1.1.tgz?cache=0&sync_timestamp=1596529338545&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Ficons%2Fdownload%2F%40ant-design%2Ficons-2.1.1.tgz", + "integrity": "sha1-e5wI3/1PXUHbZn2dvl4BB9C9mko=" }, "@ant-design/icons-vue": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz", - "integrity": "sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg==", + "resolved": "https://registry.npm.taobao.org/@ant-design/icons-vue/download/@ant-design/icons-vue-2.0.0.tgz?cache=0&sync_timestamp=1598869253063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Ficons-vue%2Fdownload%2F%40ant-design%2Ficons-vue-2.0.0.tgz", + "integrity": "sha1-A1f1AQpATp80qHpLQbKgjfaR284=", "requires": { "@ant-design/colors": "^3.1.0", "babel-runtime": "^6.26.0" @@ -1342,18 +1342,18 @@ "dev": true }, "@simonwep/pickr": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.7.2.tgz", - "integrity": "sha512-XHmQKS1k1gUvB4kOj9W3DTpT5SQWDovSm3KuOtmlkHmezkF/WzyraPIk+vwroxESdugfqanJZFvgdj9lzHcEKw==", + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/@simonwep/pickr/download/@simonwep/pickr-1.7.4.tgz", + "integrity": "sha1-sU/NlFiQOIuHDNbbTWx41THyUUE=", "requires": { "core-js": "^3.6.5", - "nanopop": "^1.3.0" + "nanopop": "^2.1.0" }, "dependencies": { "core-js": { "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz?cache=0&sync_timestamp=1589682726446&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz", + "integrity": "sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo=" } } }, @@ -2464,8 +2464,8 @@ }, "loader-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", "dev": true, "optional": true, "requires": { @@ -2604,9 +2604,9 @@ } }, "vue-loader-v16": { - "version": "npm:vue-loader@16.0.0-beta.8", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.0.0-beta.8.tgz", - "integrity": "sha512-oouKUQWWHbSihqSD7mhymGPX1OQ4hedzAHyvm8RdyHh6m3oIvoRF+NM45i/bhNOlo8jCnuJhaSUf/6oDjv978g==", + "version": "npm:vue-loader@16.0.0-beta.9", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.0.0-beta.9.tgz?cache=0&sync_timestamp=1603783106162&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.0.0-beta.9.tgz", + "integrity": "sha1-UlEsthwpaCfJnA1UOYvvhL5ESPw=", "dev": true, "optional": true, "requires": { @@ -2617,8 +2617,8 @@ "dependencies": { "chalk": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", "dev": true, "optional": true, "requires": { @@ -3016,8 +3016,8 @@ }, "add-dom-event-listener": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", - "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", + "resolved": "https://registry.npm.taobao.org/add-dom-event-listener/download/add-dom-event-listener-1.1.0.tgz", + "integrity": "sha1-apLbOg3Qq8JU4JXA8dwUrLuq4xA=", "requires": { "object-assign": "4.x" } @@ -3113,9 +3113,9 @@ } }, "ant-design-vue": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.6.5.tgz", - "integrity": "sha512-FzLrK+JuJUq+g4vd+UjFFi13ZdSsb11EZFapisFXilJxpc1LxqyunZu5AP4nr9vFLs3J4UX2A6q+Rp/Fi6JrLg==", + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/ant-design-vue/download/ant-design-vue-1.7.1.tgz", + "integrity": "sha1-55d/kjl+/rEXM71hMcFv2rz554Q=", "requires": { "@ant-design/icons": "^2.1.1", "@ant-design/icons-vue": "^2.0.0", @@ -3229,8 +3229,8 @@ }, "array-tree-filter": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" + "resolved": "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz", + "integrity": "sha1-hzrAD+yDdJ8lWsjdCDgUtPYykZA=" }, "array-union": { "version": "1.0.2", @@ -3359,8 +3359,8 @@ }, "async-validator": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.4.0.tgz", - "integrity": "sha512-VrFk4eYiJAWKskEz115iiuCf9O0ftnMMPXrOFMqyzGH2KxO7YwncKyn/FgOOP+0MDHMfXL7gLExagCutaZGigA==" + "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-3.4.0.tgz", + "integrity": "sha1-hxs+WUEkv0xOt7zRqeeLRPOwnK4=" }, "asynckit": { "version": "0.4.0", @@ -3498,8 +3498,8 @@ }, "babel-helper-vue-jsx-merge-props": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=" }, "babel-jest": { "version": "26.3.0", @@ -4906,8 +4906,8 @@ }, "classnames": { "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "resolved": "https://registry.npm.taobao.org/classnames/download/classnames-2.2.6.tgz", + "integrity": "sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4=" }, "clean-css": { "version": "4.2.3", @@ -5375,7 +5375,7 @@ }, "component-classes": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz", + "resolved": "https://registry.npm.taobao.org/component-classes/download/component-classes-1.2.6.tgz", "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", "requires": { "component-indexof": "0.0.3" @@ -5389,7 +5389,7 @@ }, "component-indexof": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", + "resolved": "https://registry.npm.taobao.org/component-indexof/download/component-indexof-0.0.3.tgz", "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=" }, "compressible": { @@ -6507,12 +6507,12 @@ }, "dom-align": { "version": "1.12.0", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.0.tgz", - "integrity": "sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA==" + "resolved": "https://registry.npm.taobao.org/dom-align/download/dom-align-1.12.0.tgz?cache=0&sync_timestamp=1589854754211&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-align%2Fdownload%2Fdom-align-1.12.0.tgz", + "integrity": "sha1-VvtxVt8LkQmYMDZNLUj4iWP1opw=" }, "dom-closest": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-closest/-/dom-closest-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/dom-closest/download/dom-closest-0.2.0.tgz", "integrity": "sha1-69n5HRvyLo1vR3h2u80+yQIWwM8=", "requires": { "dom-matches": ">=1.0.1" @@ -6535,13 +6535,13 @@ }, "dom-matches": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-matches/-/dom-matches-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/dom-matches/download/dom-matches-2.0.0.tgz", "integrity": "sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw=" }, "dom-scroll-into-view": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", - "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" + "resolved": "https://registry.npm.taobao.org/dom-scroll-into-view/download/dom-scroll-into-view-2.0.1.tgz", + "integrity": "sha1-DezIUigB/Y0/HGujVadNOCxfmJs=" }, "dom-serializer": { "version": "0.2.2", @@ -9118,7 +9118,7 @@ }, "intersperse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/intersperse/-/intersperse-1.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/intersperse/download/intersperse-1.0.0.tgz", "integrity": "sha1-8lYfsc/vn1J3zDNHoiiGtDUaUYE=" }, "invariant": { @@ -9323,12 +9323,12 @@ }, "is-mobile": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz", - "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==" + "resolved": "https://registry.npm.taobao.org/is-mobile/download/is-mobile-2.2.2.tgz?cache=0&sync_timestamp=1592980494392&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-mobile%2Fdownload%2Fis-mobile-2.2.2.tgz", + "integrity": "sha1-9snF1Q7gElTOBec5vdg18e1OmVQ=" }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, "is-number": { @@ -9485,8 +9485,8 @@ }, "ismobilejs": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", - "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==" + "resolved": "https://registry.npm.taobao.org/ismobilejs/download/ismobilejs-1.1.1.tgz", + "integrity": "sha1-xWygro5Sskyg8iul7zIVot27qg4=" }, "isobject": { "version": "3.0.1", @@ -10427,7 +10427,7 @@ }, "json2mq": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/json2mq/download/json2mq-0.2.0.tgz", "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", "requires": { "string-convert": "^0.2.0" @@ -11618,9 +11618,9 @@ } }, "moment": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", - "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" + "version": "2.29.1", + "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz", + "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" }, "move-concurrently": { "version": "1.0.1", @@ -11659,8 +11659,8 @@ }, "mutationobserver-shim": { "version": "0.3.7", - "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz", - "integrity": "sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ==" + "resolved": "https://registry.npm.taobao.org/mutationobserver-shim/download/mutationobserver-shim-0.3.7.tgz", + "integrity": "sha1-i/YzsMCwKRoRByVe0ywTCIqMW/M=" }, "mute-stream": { "version": "0.0.8", @@ -11706,9 +11706,9 @@ } }, "nanopop": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-1.3.0.tgz", - "integrity": "sha512-DQDhHyPhKLKrXOjVkChsAoWh/WpKuVINDKl4qvFbguqokRJWQBSNSlPzMS+Xy3yBQKeQ39rICMB2asDvdUiVxw==" + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/nanopop/download/nanopop-2.1.0.tgz?cache=0&sync_timestamp=1598256090184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanopop%2Fdownload%2Fnanopop-2.1.0.tgz", + "integrity": "sha1-I0dlE87iQFiIr9LopLVAZrcLnmA=" }, "native-request": { "version": "1.0.7", @@ -12074,8 +12074,8 @@ }, "omit.js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-1.0.2.tgz", - "integrity": "sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ==", + "resolved": "https://registry.npm.taobao.org/omit.js/download/omit.js-1.0.2.tgz", + "integrity": "sha1-kaFPDrqEBm36AVvzDkdMR/MLyFg=", "requires": { "babel-runtime": "^6.23.0" } @@ -13497,8 +13497,8 @@ }, "raf": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "resolved": "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz?cache=0&sync_timestamp=1586264003311&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fraf%2Fdownload%2Fraf-3.4.1.tgz", + "integrity": "sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=", "requires": { "performance-now": "^2.1.0" } @@ -13924,8 +13924,8 @@ }, "resize-observer-polyfill": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" }, "resolve": { "version": "1.17.0", @@ -14339,13 +14339,13 @@ }, "shallow-equal": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", - "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + "resolved": "https://registry.npm.taobao.org/shallow-equal/download/shallow-equal-1.2.1.tgz", + "integrity": "sha1-TBar+lYEOqINBQMk76aJQLDaedo=" }, "shallowequal": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "resolved": "https://registry.npm.taobao.org/shallowequal/download/shallowequal-1.1.0.tgz", + "integrity": "sha1-GI1SHelbkIdAT9TctosT3wrk5/g=" }, "shebang-command": { "version": "1.2.0", @@ -14610,6 +14610,11 @@ "is-plain-obj": "^1.0.0" } }, + "sortablejs": { + "version": "1.12.0", + "resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.12.0.tgz?cache=0&sync_timestamp=1601884638047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsortablejs%2Fdownload%2Fsortablejs-1.12.0.tgz", + "integrity": "sha1-7m1+zjWYwq8P6xVZ2YWV5eo3y9Y=" + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -14908,7 +14913,7 @@ }, "string-convert": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "resolved": "https://registry.npm.taobao.org/string-convert/download/string-convert-0.2.1.tgz", "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" }, "string-length": { @@ -15439,9 +15444,9 @@ "integrity": "sha512-YHsqn1zksQ4CKVvArN7MIUtGx0eV/yl15vzdiwNFwAnOQQwL1+pNSLW4ISVWUN+PrzcnX4ojLgS4kgVCmue7Pw==" }, "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + "version": "1.4.2", + "resolved": "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.2.tgz", + "integrity": "sha1-P2pNEHGtB2dtf6Ry4frECnGdiAM=" }, "tmp": { "version": "0.0.33", @@ -16166,8 +16171,8 @@ }, "vue-ref": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vue-ref/-/vue-ref-2.0.0.tgz", - "integrity": "sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ==" + "resolved": "https://registry.npm.taobao.org/vue-ref/download/vue-ref-2.0.0.tgz", + "integrity": "sha1-SDCE1zKr7RHaeWd4qCZqOvDqGpw=" }, "vue-router": { "version": "3.4.3", @@ -16269,6 +16274,14 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, + "vuedraggable": { + "version": "2.24.2", + "resolved": "https://registry.npm.taobao.org/vuedraggable/download/vuedraggable-2.24.2.tgz", + "integrity": "sha1-zZj67JmQUjhGnptNI1+6Wln7faI=", + "requires": { + "sortablejs": "^1.10.1" + } + }, "vuejs-logger": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/vuejs-logger/-/vuejs-logger-1.5.4.tgz", @@ -16321,8 +16334,8 @@ }, "warning": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "resolved": "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", "requires": { "loose-envify": "^1.0.0" } @@ -17205,4 +17218,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 818757f8..714a1010 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "test:unit": "vue-cli-service test:unit" }, "dependencies": { - "ant-design-vue": "^1.6.5", + "ant-design-vue": "^1.7.1", "axios": "^0.19.2", "dayjs": "^1.8.36", "enquire.js": "^2.1.6", @@ -40,6 +40,7 @@ "vue-filepond": "^6.0.3", "vue-ls": "^3.2.1", "vue-router": "^3.4.3", + "vuedraggable": "^2.24.2", "vuejs-logger": "^1.5.4", "vuex": "^3.5.1" }, @@ -150,4 +151,4 @@ "last 2 versions", "not ie <= 10" ] -} +} \ No newline at end of file diff --git a/src/api/menu.js b/src/api/menu.js index 26137911..9deedca3 100644 --- a/src/api/menu.js +++ b/src/api/menu.js @@ -18,6 +18,16 @@ menuApi.listTree = () => { }) } +menuApi.listTreeByTeam = team => { + return service({ + url: `${baseUrl}/team/tree_view`, + params: { + team: team + }, + method: 'get' + }) +} + menuApi.create = menu => { return service({ url: baseUrl, @@ -26,6 +36,22 @@ menuApi.create = menu => { }) } +menuApi.createBatch = menus => { + return service({ + url: `${baseUrl}/batch`, + data: menus, + method: 'post' + }) +} + +menuApi.updateBatch = menus => { + return service({ + url: `${baseUrl}/batch`, + data: menus, + method: 'put' + }) +} + menuApi.delete = menuId => { return service({ url: `${baseUrl}/${menuId}`, @@ -33,6 +59,14 @@ menuApi.delete = menuId => { }) } +menuApi.deleteBatch = menuIds => { + return service({ + url: `${baseUrl}/batch`, + data: menuIds, + method: 'delete' + }) +} + menuApi.get = menuId => { return service({ url: `${baseUrl}/${menuId}`, diff --git a/src/components/Button/ReactiveButton.vue b/src/components/Button/ReactiveButton.vue index 86b5d2b0..6d1cad4d 100644 --- a/src/components/Button/ReactiveButton.vue +++ b/src/components/Button/ReactiveButton.vue @@ -12,37 +12,37 @@ export default { props: { type: { type: String, - default: 'primary' + default: 'primary', }, icon: { type: String, - default: null + default: null, }, loading: { type: Boolean, - default: false + default: false, }, errored: { type: Boolean, - default: false + default: false, }, text: { type: String, - default: '' + default: '', }, loadedText: { type: String, - default: '' + default: '', }, erroredText: { type: String, - default: '' - } + default: '', + }, }, data() { return { loaded: false, - hasError: false + hasError: false, } }, watch: { @@ -56,9 +56,9 @@ export default { this.loaded = false this.hasError = false this.$emit('callback') - }, 800) + }, 400) } - } + }, }, computed: { computedType() { @@ -78,12 +78,12 @@ export default { return this.hasError ? this.erroredText : this.loadedText } return this.text - } + }, }, methods: { handleClick() { this.$emit('click') - } - } + }, + }, } diff --git a/src/store/modules/option.js b/src/store/modules/option.js index 1b93b8d5..57a049ae 100644 --- a/src/store/modules/option.js +++ b/src/store/modules/option.js @@ -1,7 +1,5 @@ import Vue from 'vue' -import { - OPTIONS -} from '@/store/mutation-types' +import { OPTIONS } from '@/store/mutation-types' import optionApi from '@/api/option' const keys = [ 'blog_url', @@ -13,7 +11,8 @@ const keys = [ 'post_permalink_type', 'archives_prefix', 'path_suffix', - 'default_editor' + 'default_editor', + 'default_menu_team' ] const option = { state: { @@ -26,9 +25,7 @@ const option = { } }, actions: { - refreshOptionsCache({ - commit - }) { + refreshOptionsCache({ commit }) { return new Promise((resolve, reject) => { optionApi .listAllByKeys(keys) diff --git a/src/utils/util.js b/src/utils/util.js index 54639035..c64fdcee 100644 --- a/src/utils/util.js +++ b/src/utils/util.js @@ -1,4 +1,3 @@ - export function triggerWindowResizeEvent() { const event = document.createEvent('HTMLEvents') event.initEvent('resize', true, true) @@ -18,3 +17,18 @@ export function decodeHTML(html) { elem = null return output } + +export function deepClone(source) { + if (!source && typeof source !== 'object') { + throw new Error('error arguments', 'deepClone') + } + const targetObj = source.constructor === Array ? [] : {} + Object.keys(source).forEach(keys => { + if (source[keys] && typeof source[keys] === 'object') { + targetObj[keys] = deepClone(source[keys]) + } else { + targetObj[keys] = source[keys] + } + }) + return targetObj +} diff --git a/src/views/interface/MenuList.vue b/src/views/interface/MenuList.vue index 41173290..41524a18 100644 --- a/src/views/interface/MenuList.vue +++ b/src/views/interface/MenuList.vue @@ -2,390 +2,405 @@ - + + + + - - - - - - - - - - - - - - - - - - - - + - 当前窗口 - 新窗口 - - - - - - - 返回添加 - - - 更多选项 - - - - + + + + + + 新增 + + + + + + 新增分组 + + - - - - - - - - - - {{ item.name }} - - - - - - - - 编辑 - - - 删除 - + + + + + + + + + diff --git a/src/views/interface/components/MenuInternalLinkSelector.vue b/src/views/interface/components/MenuInternalLinkSelector.vue new file mode 100644 index 00000000..0fbd4529 --- /dev/null +++ b/src/views/interface/components/MenuInternalLinkSelector.vue @@ -0,0 +1,377 @@ + + diff --git a/src/views/interface/components/MenuSelectTree.vue b/src/views/interface/components/MenuSelectTree.vue deleted file mode 100644 index 885aa498..00000000 --- a/src/views/interface/components/MenuSelectTree.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/src/views/interface/components/MenuTreeNode.vue b/src/views/interface/components/MenuTreeNode.vue new file mode 100644 index 00000000..01c11d6a --- /dev/null +++ b/src/views/interface/components/MenuTreeNode.vue @@ -0,0 +1,221 @@ + + + diff --git a/src/views/post/CategoryList.vue b/src/views/post/CategoryList.vue index 93897c83..aab5a817 100644 --- a/src/views/post/CategoryList.vue +++ b/src/views/post/CategoryList.vue @@ -145,16 +145,6 @@ @click="form.model = item" >编辑 - - - 添加到菜单 - - 编辑 - - 更多 - - - - 添加到菜单 - - - - - 删除 - - - - + + 删除 + @@ -262,34 +232,33 @@ import { mixin, mixinDevice } from '@/utils/mixin.js' import CategorySelectTree from './components/CategorySelectTree' import categoryApi from '@/api/category' -import menuApi from '@/api/menu' const columns = [ { title: '名称', ellipsis: true, - dataIndex: 'name' + dataIndex: 'name', }, { title: '别名', ellipsis: true, - dataIndex: 'slug' + dataIndex: 'slug', }, { title: '描述', ellipsis: true, - dataIndex: 'description' + dataIndex: 'description', }, { title: '文章数', dataIndex: 'postCount', - scopedSlots: { customRender: 'postCount' } + scopedSlots: { customRender: 'postCount' }, }, { title: '操作', key: 'action', - scopedSlots: { customRender: 'action' } - } + scopedSlots: { customRender: 'action' }, + }, ] export default { @@ -300,7 +269,7 @@ export default { table: { columns, data: [], - loading: false + loading: false, }, form: { model: {}, @@ -309,16 +278,16 @@ export default { rules: { name: [ { required: true, message: '* 分类名称不能为空', trigger: ['change'] }, - { max: 255, message: '* 分类名称的字符长度不能超过 255', trigger: ['change'] } + { max: 255, message: '* 分类名称的字符长度不能超过 255', trigger: ['change'] }, ], slug: [{ max: 255, message: '* 分类别名的字符长度不能超过 255', trigger: ['change'] }], thumbnail: [{ max: 1023, message: '* 封面图链接的字符长度不能超过 1023', trigger: ['change'] }], - description: [{ max: 100, message: '* 分类描述的字符长度不能超过 100', trigger: ['change'] }] - } + description: [{ max: 100, message: '* 分类描述的字符长度不能超过 100', trigger: ['change'] }], + }, }, thumbnailDrawer: { - visible: false - } + visible: false, + }, } }, computed: { @@ -330,7 +299,7 @@ export default { }, isUpdateMode() { return !!this.form.model.id - } + }, }, created() { this.handleListCategories() @@ -340,7 +309,7 @@ export default { this.table.loading = true categoryApi .listAll(true) - .then(response => { + .then((response) => { this.table.data = response.data.data }) .finally(() => { @@ -352,7 +321,7 @@ export default { handleDeleteCategory(id) { categoryApi .delete(id) - .then(response => { + .then((response) => { this.$message.success('删除成功!') this.form.model = {} }) @@ -366,7 +335,7 @@ export default { */ handleCreateOrUpdateCategory() { const _this = this - _this.$refs.categoryForm.validate(valid => { + _this.$refs.categoryForm.validate((valid) => { if (valid) { _this.form.saving = true if (_this.isUpdateMode) { @@ -404,22 +373,13 @@ export default { _this.handleListCategories() } }, - handleCreateMenuByCategory(category) { - const menu = { - name: category.name, - url: `${category.fullPath}` - } - menuApi.create(menu).then(response => { - this.$message.success('添加到菜单成功!') - }) - }, handleSelectThumbnail(data) { this.$set(this.form.model, 'thumbnail', encodeURI(data.path)) this.thumbnailDrawer.visible = false }, handleQueryCategoryPosts(category) { this.$router.push({ name: 'PostList', query: { categoryId: category.id } }) - } - } + }, + }, } diff --git a/src/views/sheet/components/CustomSheetList.vue b/src/views/sheet/components/CustomSheetList.vue index 5605eb94..4addc17d 100644 --- a/src/views/sheet/components/CustomSheetList.vue +++ b/src/views/sheet/components/CustomSheetList.vue @@ -67,16 +67,6 @@ 删除 - - - 添加到菜单 - - 删除 - - 更多 - - - 设置 - - - - 添加到菜单 - - - - + 设置
@@ -343,48 +313,47 @@ import { mixin, mixinDevice } from '@/utils/mixin.js' import SheetSettingDrawer from './SheetSettingDrawer' import TargetCommentDrawer from '../../comment/components/TargetCommentDrawer' import sheetApi from '@/api/sheet' -import menuApi from '@/api/menu' const customColumns = [ { title: '标题', dataIndex: 'title', ellipsis: true, - scopedSlots: { customRender: 'sheetTitle' } + scopedSlots: { customRender: 'sheetTitle' }, }, { title: '状态', className: 'status', dataIndex: 'statusProperty', - scopedSlots: { customRender: 'status' } + scopedSlots: { customRender: 'status' }, }, { title: '评论量', dataIndex: 'commentCount', - scopedSlots: { customRender: 'commentCount' } + scopedSlots: { customRender: 'commentCount' }, }, { title: '访问量', dataIndex: 'visits', - scopedSlots: { customRender: 'visits' } + scopedSlots: { customRender: 'visits' }, }, { title: '发布时间', dataIndex: 'createTime', - scopedSlots: { customRender: 'createTime' } + scopedSlots: { customRender: 'createTime' }, }, { title: '操作', width: '180px', - scopedSlots: { customRender: 'action' } - } + scopedSlots: { customRender: 'action' }, + }, ] export default { name: 'CustomSheetList', mixins: [mixin, mixinDevice], components: { SheetSettingDrawer, - TargetCommentDrawer + TargetCommentDrawer, }, data() { return { @@ -392,7 +361,7 @@ export default { page: 1, size: 10, sort: null, - total: 1 + total: 1, }, queryParam: { page: 0, @@ -400,7 +369,7 @@ export default { sort: null, keyword: null, categoryId: null, - status: null + status: null, }, loading: false, sheetStatus: sheetApi.sheetStatus, @@ -410,21 +379,21 @@ export default { sheetSettingVisible: false, sheetCommentVisible: false, sheets: [], - menu: {} + menu: {}, } }, computed: { formattedSheets() { - return this.sheets.map(sheet => { + return this.sheets.map((sheet) => { sheet.statusProperty = this.sheetStatus[sheet.status] return sheet }) - } + }, }, created() { this.handleListSheets() }, - destroyed: function() { + destroyed() { if (this.sheetSettingVisible) { this.sheetSettingVisible = false } @@ -445,7 +414,7 @@ export default { this.queryParam.sort = this.pagination.sort sheetApi .list(this.queryParam) - .then(response => { + .then((response) => { this.sheets = response.data.data.content this.pagination.total = response.data.data.total }) @@ -461,7 +430,7 @@ export default { handleEditStatusClick(sheetId, status) { sheetApi .updateStatus(sheetId, status) - .then(response => { + .then((response) => { this.$message.success('操作成功!') }) .finally(() => { @@ -471,36 +440,28 @@ export default { handleDeleteClick(sheetId) { sheetApi .delete(sheetId) - .then(response => { + .then((response) => { this.$message.success('删除成功!') }) .finally(() => { this.handleListSheets() }) }, - handleSheetToMenu(sheet) { - this.menu['name'] = sheet.title - this.menu['url'] = `${sheet.fullPath}` - menuApi.create(this.menu).then(response => { - this.$message.success('添加到菜单成功!') - this.menu = {} - }) - }, handleShowSheetSettings(sheet) { - sheetApi.get(sheet.id).then(response => { + sheetApi.get(sheet.id).then((response) => { this.selectedSheet = response.data.data this.selectedMetas = this.selectedSheet.metas this.sheetSettingVisible = true }) }, handleShowSheetComments(sheet) { - sheetApi.get(sheet.id).then(response => { + sheetApi.get(sheet.id).then((response) => { this.selectedSheet = response.data.data this.sheetCommentVisible = true }) }, handlePreview(sheetId) { - sheetApi.preview(sheetId).then(response => { + sheetApi.preview(sheetId).then((response) => { window.open(response.data, '_blank') }) }, @@ -529,7 +490,7 @@ export default { }, onRefreshSheetMetasFromSetting(metas) { this.selectedMetas = metas - } - } + }, + }, }