diff --git a/README.md b/README.md index 1f434e2ad..96b00253d 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,8 @@ - 多页配置 +- 引导页 + - 全局功能 - 三种不同风格 layout 布局 - 动态侧边栏(支持多级路由嵌套) @@ -42,6 +44,9 @@ - 弹窗 - 显示更多 - 详情组件 + - 二维码组件 + - 头像组 + - 文字高亮 - 表格 - 基础表格 diff --git a/mock/role/admin-role.ts b/mock/role/admin-role.ts index 73a83351a..5a28f5202 100644 --- a/mock/role/admin-role.ts +++ b/mock/role/admin-role.ts @@ -50,6 +50,14 @@ export const checkedNodes = [{ 'path': '/components-demo/qrcode', 'title': '二维码组件', 'name': 'QrcodeDemo' + }, { + 'path': '/components-demo/avatars', + 'title': '头像组', + 'name': 'AvatarsDemo' + }, { + 'path': '/components-demo/highlight', + 'title': '文字高亮', + 'name': 'HighlightDemo' }] }, { 'path': '/components-demo/echarts', @@ -99,6 +107,14 @@ export const checkedNodes = [{ 'path': '/components-demo/qrcode', 'title': '二维码组件', 'name': 'QrcodeDemo' +}, { + 'path': '/components-demo/avatars', + 'title': '头像组', + 'name': 'AvatarsDemo' +}, { + 'path': '/components-demo/highlight', + 'title': '文字高亮', + 'name': 'HighlightDemo' }, { 'path': '/table-demo', 'title': '表格', @@ -415,7 +431,7 @@ export const checkedNodes = [{ export const checkedkeys = ['/components-demo', '/components-demo/echarts', '/components-demo/preview', '/components-demo/button', '/components-demo/message', '/components-demo/count-to', '/components-demo/search', '/components-demo/editor', '/components-demo/markdown', '/components-demo/dialog', '/components-demo/more', - '/components-demo/detail', '/components-demo/qrcode', '/table-demo', '/table-demo/basic-table', '/table-demo/page-table', + '/components-demo/detail', '/components-demo/qrcode', '/components-demo/avatars', '/table-demo', '/table-demo/basic-table', '/table-demo/page-table', '/table-demo/stripe-table', '/table-demo/border-table', '/table-demo/state-table', '/table-demo/fixed-header', '/table-demo/fixed-column', '/table-demo/fixed-column-header', '/table-demo/fluid-height', '/table-demo/multi-header', '/table-demo/single-choice', '/table-demo/multiple-choice', '/table-demo/sort-table', diff --git a/mock/role/test-role.ts b/mock/role/test-role.ts index 4af74736b..8e616b9e4 100644 --- a/mock/role/test-role.ts +++ b/mock/role/test-role.ts @@ -105,6 +105,22 @@ export const checkedRoleNodes = [ meta: { title: '二维码组件' } + }, + { + path: 'avatars', + component: 'pages/index/views/components-demo/avatars/index', + name: 'AvatarsDemo', + meta: { + title: '头像组' + } + }, + { + path: 'highlight', + component: 'pages/index/views/components-demo/highlight/index', + name: 'HighlightDemo', + meta: { + title: '文字高亮' + } } ] }, diff --git a/package.json b/package.json index 152f23f38..e734165e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-element-plus-admin-webpack", - "version": "0.1.0", + "version": "0.0.4", "private": true, "scripts": { "serve": "vue-cli-service serve", @@ -20,8 +20,9 @@ "clipboard": "^2.0.6", "core-js": "^3.6.5", "echarts": "^4.9.0", - "element-plus": "1.0.1-beta.26", + "element-plus": "1.0.2-beta.29", "highlight.js": "^10.4.0", + "intro.js": "^3.2.1", "lodash-es": "^4.17.15", "mitt": "^2.1.0", "mockjs": "^1.1.0", @@ -32,8 +33,8 @@ "qs": "^6.9.4", "screenfull": "^5.0.2", "vditor": "^3.7.0", - "vue": "3.0.4", - "vue-router": "4.0.0-rc.6", + "vue": "3.0.5", + "vue-router": "4.0.3", "vuex": "4.0.0-rc.2", "wangeditor": "4.5.4", "web-storage-cache": "^1.1.1" @@ -44,6 +45,7 @@ "@ls-lint/ls-lint": "^1.9.2", "@types/clipboard": "^2.0.1", "@types/echarts": "^4.9.1", + "@types/intro.js": "^3.0.0", "@types/lodash-es": "^4.17.3", "@types/mockjs": "^1.0.3", "@types/nprogress": "^0.2.0", @@ -71,7 +73,7 @@ "eslint-config-prettier": "^6.14.0", "eslint-plugin-prettier": "^3.1.4", "eslint-plugin-vue": "^7.0.0-0", - "husky": "^1.3.1", + "husky": "1.3.1", "less": "^3.0.4", "less-loader": "^5.0.0", "path": "^0.12.7", diff --git a/src/components/Avatars/index.vue b/src/components/Avatars/index.vue new file mode 100644 index 000000000..31e86aa4a --- /dev/null +++ b/src/components/Avatars/index.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/src/components/Avatars/types.ts b/src/components/Avatars/types.ts new file mode 100644 index 000000000..38bb36fb0 --- /dev/null +++ b/src/components/Avatars/types.ts @@ -0,0 +1,5 @@ +export interface DataConfig { + text: string + type?: string + url?: string +} diff --git a/src/components/Detail/index.vue b/src/components/Detail/index.vue index 5caad2d6b..0fc1ec875 100644 --- a/src/components/Detail/index.vue +++ b/src/components/Detail/index.vue @@ -22,7 +22,7 @@ class="detail__content" :style="contentStyleObj" > - + +import { defineComponent, PropType, computed, h } from 'vue' +export default defineComponent({ + name: 'Highlight', + props: { + tag: { + type: String as PropType, + default: 'span' + }, + keys: { + type: Array as PropType, + default: () => [] + }, + color: { + type: String as PropType, + default: '#2d8cf0' + } + }, + emits: ['click'], + setup(props, { emit }) { + const keyNodes = computed(() => { + return props.keys.map(key => { + return h('span', { + onClick: () => { + emit('click', key) + }, + style: { + color: props.color, + cursor: 'pointer' + } + }, key) + }) + }) + + function parseText(text: string) { + props.keys.forEach((key, index) => { + const regexp = new RegExp(key, 'g') + text = text.replace(regexp, `{{${index}}}`) + }) + return text.split(/{{|}}/) + } + + return { + keyNodes, + parseText + } + }, + render(props: any) { + if (!props.$slots.default) return null + const node = props.$slots.default()[0].children + if (!node) { + console.warn('Highlight组件的插槽必须要是文本') + return props.$slots.default()[0] + } + const textArray = props.parseText(node) + const regexp = /^[0-9]*$/ + const nodes = textArray.map((t: any) => { + if (regexp.test(t)) { + return props.keyNodes[Math.floor(t)] || t + } + return t + }) + return h(props.tag, nodes) + } +}) + + + diff --git a/src/components/Logo/index.vue b/src/components/Logo/index.vue index 35827729c..8b8c9049a 100644 --- a/src/components/Logo/index.vue +++ b/src/components/Logo/index.vue @@ -7,7 +7,7 @@ + + diff --git a/src/pages/index/views/components-demo/highlight/index.vue b/src/pages/index/views/components-demo/highlight/index.vue new file mode 100644 index 000000000..d50399ab4 --- /dev/null +++ b/src/pages/index/views/components-demo/highlight/index.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/pages/index/views/example-demo/example-dialog/api.ts b/src/pages/index/views/example-demo/example-dialog/api.ts index 43fd6720d..db8076e36 100644 --- a/src/pages/index/views/example-demo/example-dialog/api.ts +++ b/src/pages/index/views/example-demo/example-dialog/api.ts @@ -1,4 +1,4 @@ -import { fetch } from '_p/index/axios-config/axios' +import { fetch } from '_@/axios-config/axios' interface PropsData { params?: any diff --git a/src/pages/index/views/example-demo/example-page/api.ts b/src/pages/index/views/example-demo/example-page/api.ts index 43fd6720d..db8076e36 100644 --- a/src/pages/index/views/example-demo/example-page/api.ts +++ b/src/pages/index/views/example-demo/example-page/api.ts @@ -1,4 +1,4 @@ -import { fetch } from '_p/index/axios-config/axios' +import { fetch } from '_@/axios-config/axios' interface PropsData { params?: any diff --git a/src/pages/index/views/guide/index.vue b/src/pages/index/views/guide/index.vue new file mode 100644 index 000000000..82a93be8e --- /dev/null +++ b/src/pages/index/views/guide/index.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/pages/index/views/guide/steps.ts b/src/pages/index/views/guide/steps.ts new file mode 100644 index 000000000..4d71cf027 --- /dev/null +++ b/src/pages/index/views/guide/steps.ts @@ -0,0 +1,40 @@ +const steps = [ + { + element: '#sidebar__wrap', + title: '菜单栏', + intro: '以路由的结构渲染的菜单栏', + position: 'right' + }, + { + element: '#hamburger-container', + title: '展开缩收', + intro: '用于展开和缩放菜单栏', + position: 'bottom' + }, + { + element: '#breadcrumb-container', + title: '面包屑', + intro: '用于记录当前路由结构', + position: 'bottom' + }, + { + element: '#screenfull-container', + title: '是否全屏', + intro: '用于设置是否全屏', + position: 'left' + }, + { + element: '#user-container', + title: '用户信息', + intro: '用于展示用户', + position: 'left' + }, + { + element: '#tag-container', + title: '标签页', + intro: '用于记录路由历史记录', + position: 'bottom' + } +] + +export default steps diff --git a/src/pages/index/views/login/api.ts b/src/pages/index/views/login/api.ts index 60925e4f5..6e2ebd17b 100644 --- a/src/pages/index/views/login/api.ts +++ b/src/pages/index/views/login/api.ts @@ -1,4 +1,4 @@ -import { fetch } from '_p/index/axios-config/axios' +import { fetch } from '_@/axios-config/axios' interface PropsData { params?: any diff --git a/src/pages/index/views/login/index.vue b/src/pages/index/views/login/index.vue index 506cdab1b..f50b63346 100644 --- a/src/pages/index/views/login/index.vue +++ b/src/pages/index/views/login/index.vue @@ -60,8 +60,8 @@ import { defineComponent, ref, unref, reactive, watch } from 'vue' import { useRouter } from 'vue-router' import type { RouteRecordRaw } from 'vue-router' -import { permissionStore } from '_p/index/store/modules/permission' -import { appStore } from '_p/index/store/modules/app' +import { permissionStore } from '_@/store/modules/permission' +import { appStore } from '_@/store/modules/app' import wsCache from '@/cache' import { ElNotification } from 'element-plus' diff --git a/src/pages/index/views/role-demo/role/api.ts b/src/pages/index/views/role-demo/role/api.ts index d7cf9f4b2..f11f27949 100644 --- a/src/pages/index/views/role-demo/role/api.ts +++ b/src/pages/index/views/role-demo/role/api.ts @@ -1,4 +1,4 @@ -import { fetch } from '_p/index/axios-config/axios' +import { fetch } from '_@/axios-config/axios' interface PropsData { params?: any diff --git a/src/pages/index/views/role-demo/role/components/InfoWrite.vue b/src/pages/index/views/role-demo/role/components/InfoWrite.vue index 2f1e870a0..e0e838d21 100644 --- a/src/pages/index/views/role-demo/role/components/InfoWrite.vue +++ b/src/pages/index/views/role-demo/role/components/InfoWrite.vue @@ -40,8 +40,8 @@ import path from 'path' import { defineComponent, PropType, ref, reactive, nextTick, unref } from 'vue' import { setRoleApi, getRoleDetApi } from '../api' -import { asyncRouterMap } from '_p/index/router' -import { AppRouteRecordRaw } from '_p/index/router/types' +import { asyncRouterMap } from '_@/router' +import { AppRouteRecordRaw } from '_@/router/types' import { isExternal } from '@/utils/validate' import { Message } from '_c/Message' diff --git a/src/pages/index/views/role-demo/user/api.ts b/src/pages/index/views/role-demo/user/api.ts index 935f37ee9..148175989 100644 --- a/src/pages/index/views/role-demo/user/api.ts +++ b/src/pages/index/views/role-demo/user/api.ts @@ -1,4 +1,4 @@ -import { fetch } from '_p/index/axios-config/axios' +import { fetch } from '_@/axios-config/axios' interface PropsData { params?: any diff --git a/tsconfig.json b/tsconfig.json index cc8ad5785..eae7fb274 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -29,6 +29,12 @@ "_c/*": [ "src/components/*" ], + "_@/*": [ + "src/pages/index/*" + ], + "_v/*": [ + "src/pages/index/views/*" + ], "_p/*": [ "src/pages/*" ] diff --git a/vue.config.js b/vue.config.js index 02c6fa32c..4affca532 100644 --- a/vue.config.js +++ b/vue.config.js @@ -37,8 +37,6 @@ glob.sync('./src/pages/**/main.ts').forEach((entry) => { projectName ? entryPages[projectName] = pages[projectName] : entryPages = pages -const Timestamp = new Date().getTime() - const vueConfig = { pages: entryPages, publicPath: './', @@ -59,7 +57,8 @@ const vueConfig = { config.resolve.alias .set('@', resolve('src')) .set('_c', resolve('src/components')) - .set('_p', resolve('src/pages')) + .set('_@', resolve('src/pages/index')) + .set('_v', resolve('src/pages/index/views')) // .set('_pd1', resolve('src/pages/demo1')) // .set('_pd1v', resolve('src/pages/demo1/views')) @@ -168,20 +167,13 @@ const vueConfig = { }) }, configureWebpack: { - output: { - filename: `js/[name].[hash].${Timestamp}.js`, - chunkFilename: `js/[name].[hash].${Timestamp}.js` - } + }, css: { loaderOptions: { less: { javascriptEnabled: true } - }, - extract: { - filename: `css/[name].[hash].${Timestamp}.css`, - chunkFilename: `css/[name].[hash].${Timestamp}.css` } }, // 跨域代理 diff --git a/yarn.lock b/yarn.lock index 4cb2e7a35..e3a8ff74b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1196,6 +1196,11 @@ dependencies: "@types/node" "*" +"@types/intro.js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/intro.js/-/intro.js-3.0.0.tgz#27ae56f313ebef75c21a957367d1cfcd6b1a6f77" + integrity sha512-XbL3Y3jW82vQlf9L4gGOhnqsV9rM5Hs6LDe9hcXRsJj4j+NH5WnHzbRHfApSfLQGffHyCoKcJDaJbDHVptqLLA== + "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.6" resolved "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz?cache=0&sync_timestamp=1605053861867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" @@ -1686,6 +1691,17 @@ estree-walker "^2.0.1" source-map "^0.6.1" +"@vue/compiler-core@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.5.tgz#a6e54cabe9536e74c6513acd2649f311af1d43ac" + integrity sha512-iFXwk2gmU/GGwN4hpBwDWWMLvpkIejf/AybcFtlQ5V1ur+5jwfBaV0Y1RXoR6ePfBPJixtKZ3PmN+M+HgMAtfQ== + dependencies: + "@babel/parser" "^7.12.0" + "@babel/types" "^7.12.0" + "@vue/shared" "3.0.5" + estree-walker "^2.0.1" + source-map "^0.6.1" + "@vue/compiler-dom@3.0.4": version "3.0.4" resolved "https://registry.npm.taobao.org/@vue/compiler-dom/download/@vue/compiler-dom-3.0.4.tgz#834fd4b15c5698cf9f4505c2bfbccca058a843eb" @@ -1694,6 +1710,14 @@ "@vue/compiler-core" "3.0.4" "@vue/shared" "3.0.4" +"@vue/compiler-dom@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.5.tgz#7885a13e6d18f64dde8ebceec052ed2c102696c2" + integrity sha512-HSOSe2XSPuCkp20h4+HXSiPH9qkhz6YbW9z9ZtL5vef2T2PMugH7/osIFVSrRZP/Ul5twFZ7MIRlp8tPX6e4/g== + dependencies: + "@vue/compiler-core" "3.0.5" + "@vue/shared" "3.0.5" + "@vue/compiler-sfc@^3.0.3": version "3.0.4" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.4.tgz#2119fe1e68d2c268aafa20461c82c139a9adf8e0" @@ -1752,28 +1776,28 @@ resolved "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" integrity sha1-zrkktOyzucQ4ccekKaAvhCPmIas= -"@vue/reactivity@3.0.4": - version "3.0.4" - resolved "https://registry.npm.taobao.org/@vue/reactivity/download/@vue/reactivity-3.0.4.tgz#b6599dd8271a745960a03f05744ccf7991ba5d8d" - integrity sha1-tlmd2CcadFlgoD8FdEzPeZG6XY0= +"@vue/reactivity@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.5.tgz#e3789e4d523d845f9ae0b4d770e2b45594742fd2" + integrity sha512-3xodUE3sEIJgS7ntwUbopIpzzvi7vDAOjVamfb2l+v1FUg0jpd3gf62N2wggJw3fxBMr+QvyxpD+dBoxLsmAjw== dependencies: - "@vue/shared" "3.0.4" + "@vue/shared" "3.0.5" -"@vue/runtime-core@3.0.4": - version "3.0.4" - resolved "https://registry.npm.taobao.org/@vue/runtime-core/download/@vue/runtime-core-3.0.4.tgz#a5b9a001560b1fd8c01a43f68b764c555de7836c" - integrity sha1-pbmgAVYLH9jAGkP2i3ZMVV3ng2w= +"@vue/runtime-core@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.5.tgz#da6331d5f300d5794e9e0ebdc8a8bd72a9e19962" + integrity sha512-Cnyi2NqREwOLcTEsIi1DQX1hHtkVj4eGm4hBG7HhokS05DqpK4/80jG6PCCnCH9rIJDB2FqtaODX397210plXg== dependencies: - "@vue/reactivity" "3.0.4" - "@vue/shared" "3.0.4" + "@vue/reactivity" "3.0.5" + "@vue/shared" "3.0.5" -"@vue/runtime-dom@3.0.4": - version "3.0.4" - resolved "https://registry.npm.taobao.org/@vue/runtime-dom/download/@vue/runtime-dom-3.0.4.tgz#6f81aec545f24511d2c28a315aa3391420b69c68" - integrity sha1-b4GuxUXyRRHSwooxWqM5FCC2nGg= +"@vue/runtime-dom@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.5.tgz#1ce2c9c449e26ab06963da0064096e882a7a8935" + integrity sha512-iilX1KySeIzHHtErT6Y44db1rhWK5tAI0CiJIPr+SJoZ2jbjoOSE6ff/jfIQakchbm1d6jq6VtRVnp5xYdOXKA== dependencies: - "@vue/runtime-core" "3.0.4" - "@vue/shared" "3.0.4" + "@vue/runtime-core" "3.0.5" + "@vue/shared" "3.0.5" csstype "^2.6.8" "@vue/shared@3.0.4": @@ -1781,6 +1805,11 @@ resolved "https://registry.npm.taobao.org/@vue/shared/download/@vue/shared-3.0.4.tgz#6dc50f593bdfdeaa6183d1dbc15e2d45e7c6b8b3" integrity sha1-bcUPWTvf3qphg9HbwV4tRefGuLM= +"@vue/shared@3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0" + integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw== + "@vue/web-component-wrapper@^1.2.0": version "1.2.0" resolved "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1" @@ -3992,10 +4021,10 @@ electron-to-chromium@^1.3.621: resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.622.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.622.tgz#9726bd2e67a5462154750ce9701ca6af07d07877" integrity sha1-lya9LmelRiFUdQzpcBymrwfQeHc= -element-plus@1.0.1-beta.26: - version "1.0.1-beta.26" - resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-1.0.1-beta.26.tgz#f24181aab2569b62ca01e63541209b70d524b8ab" - integrity sha512-nFzkn31AlZ+bXjnAAeXRoewesC57fI6yaUbxZaE+f1maj9ll5dbtiwk6petJhYvjQ3si4fN3A9P/qZA3ZPeyMg== +element-plus@1.0.2-beta.29: + version "1.0.2-beta.29" + resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-1.0.2-beta.29.tgz#0ce640e07a1fdfd89a75bfacb2006a0899a6b316" + integrity sha512-wJKXQS58OXOBzOViQ44LfvauitlSx7HSZ3DAAgShZL3tUTnXX0AQE6w+UISAwql3lp2g93M3Yd+JMNnt8VpAag== dependencies: "@popperjs/core" "^2.4.4" async-validator "^3.4.0" @@ -5372,7 +5401,7 @@ human-signals@^1.1.1: resolved "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha1-xbHNFPUK6uCatsWf5jujOV/k36M= -husky@^1.3.1: +husky@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg== @@ -5558,6 +5587,11 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" +intro.js@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/intro.js/-/intro.js-3.2.1.tgz#fb13f03c13d54aab8485d538a719fe4af0b7bf36" + integrity sha512-empgAlW/vlIEAZWw19rLMR+1J75sw6bvjqrQd9fhgXJnV/ds0bzASil3k5fCWSJeVBKXFbLlWJ3nvtimDmTIFw== + ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz?cache=0&sync_timestamp=1601334312409&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -9962,10 +9996,10 @@ vue-loader@^15.9.2: vue-hot-reload-api "^2.3.0" vue-style-loader "^4.1.0" -vue-router@4.0.0-rc.6: - version "4.0.0-rc.6" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.0-rc.6.tgz#8fa9e2d612c28ccf9b2bfa9421052932808ce24b" - integrity sha512-hVHC8A4/0yku1Z6+oUtX9odeHv78XwDI7putt1hd7os27P7mLabkjArN7f3TI3e/cz17MxAUz5Yp+m8ZE3sPsw== +vue-router@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.3.tgz#8b26050c88b2dec7e27a88835f71046b365823ec" + integrity sha512-AD1OjtVPyQHTSpoRsEGfPpxRQwhAhxcacOYO3zJ3KNkYP/r09mileSp6kdMQKhZWP2cFsPR3E2M3PZguSN5/ww== vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: version "4.1.2" @@ -9980,14 +10014,14 @@ vue-template-es2015-compiler@^1.9.0: resolved "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU= -vue@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.4.tgz#872c65c143f5717bd5387c61613d9f55f4cc0f43" - integrity sha512-2o+AiQF8sAupyhbyl3oxVCl3WCwC/n5NI7VMM+gVQ231qvSB8eI7sCBloloqDJK6yA367EEtmRSeSCf4sxCC+A== +vue@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.5.tgz#de1b82eba24abfe71e0970fc9b8d4b2babdc3fe1" + integrity sha512-TfaprOmtsAfhQau7WsomXZ8d9op/dkQLNIq8qPV3A0Vxs6GR5E+c1rfJS1SDkXRQj+dFyfnec7+U0Be1huiScg== dependencies: - "@vue/compiler-dom" "3.0.4" - "@vue/runtime-dom" "3.0.4" - "@vue/shared" "3.0.4" + "@vue/compiler-dom" "3.0.5" + "@vue/runtime-dom" "3.0.5" + "@vue/shared" "3.0.5" vuex-module-decorators@^1.0.1: version "1.0.1"