提交 3dae3c3d authored 作者: 王鹏飞's avatar 王鹏飞

updates

上级 98e63c7f
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
"dependencies": { "dependencies": {
"axios": "^0.26.1", "axios": "^0.26.1",
"countup.js": "^2.1.0", "countup.js": "^2.1.0",
"element-plus": "^2.1.2",
"pinia": "^2.0.11", "pinia": "^2.0.11",
"vue": "^3.2.31", "vue": "^3.2.31",
"vue-router": "^4.0.14" "vue-router": "^4.0.14"
...@@ -161,6 +162,22 @@ ...@@ -161,6 +162,22 @@
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@ctrl/tinycolor": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz",
"integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==",
"engines": {
"node": ">=10"
}
},
"node_modules/@element-plus/icons-vue": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-1.1.1.tgz",
"integrity": "sha512-kRL/cWwaynmwi/6ounJxwnj316EHqAqKrl2WTCmcwiDPVqT+Wt1pSK6nAI0zUeLfe/y8NhYMB97+NDEWgNBCqA==",
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/@emmetio/abbreviation": { "node_modules/@emmetio/abbreviation": {
"version": "2.2.3", "version": "2.2.3",
"resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz", "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz",
...@@ -269,6 +286,11 @@ ...@@ -269,6 +286,11 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/@popperjs/core": {
"version": "2.11.4",
"resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.4.tgz",
"integrity": "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg=="
},
"node_modules/@rushstack/eslint-patch": { "node_modules/@rushstack/eslint-patch": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz",
...@@ -290,6 +312,21 @@ ...@@ -290,6 +312,21 @@
"integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
"dev": true "dev": true
}, },
"node_modules/@types/lodash": {
"version": "4.14.180",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.180.tgz",
"integrity": "sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==",
"peer": true
},
"node_modules/@types/lodash-es": {
"version": "4.17.6",
"resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
"integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
"peer": true,
"dependencies": {
"@types/lodash": "*"
}
},
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "16.11.26", "version": "16.11.26",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz",
...@@ -727,6 +764,69 @@ ...@@ -727,6 +764,69 @@
} }
} }
}, },
"node_modules/@vueuse/core": {
"version": "7.7.1",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-7.7.1.tgz",
"integrity": "sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow==",
"dependencies": {
"@vueuse/shared": "7.7.1",
"vue-demi": "*"
},
"peerDependencies": {
"@vue/composition-api": "^1.1.0",
"vue": "^2.6.0 || ^3.2.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
},
"vue": {
"optional": true
}
}
},
"node_modules/@vueuse/core/node_modules/@vueuse/shared": {
"version": "7.7.1",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-7.7.1.tgz",
"integrity": "sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ==",
"dependencies": {
"vue-demi": "*"
},
"peerDependencies": {
"@vue/composition-api": "^1.1.0",
"vue": "^2.6.0 || ^3.2.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
},
"vue": {
"optional": true
}
}
},
"node_modules/@vueuse/core/node_modules/vue-demi": {
"version": "0.12.1",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.1.tgz",
"integrity": "sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.7.0", "version": "8.7.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
...@@ -971,6 +1071,11 @@ ...@@ -971,6 +1071,11 @@
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
"dev": true "dev": true
}, },
"node_modules/async-validator": {
"version": "4.0.7",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.0.7.tgz",
"integrity": "sha512-Pj2IR7u8hmUEDOwB++su6baaRi+QvsgajuFB9j95foM1N2gy5HM4z60hfusIO0fBPG5uLAEl6yCJr1jNSVugEQ=="
},
"node_modules/axios": { "node_modules/axios": {
"version": "0.26.1", "version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
...@@ -1237,6 +1342,11 @@ ...@@ -1237,6 +1342,11 @@
"node": "*" "node": "*"
} }
}, },
"node_modules/dayjs": {
"version": "1.11.0",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.0.tgz",
"integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug=="
},
"node_modules/debug": { "node_modules/debug": {
"version": "4.3.3", "version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
...@@ -1430,6 +1540,28 @@ ...@@ -1430,6 +1540,28 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
"dev": true "dev": true
}, },
"node_modules/element-plus": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.1.2.tgz",
"integrity": "sha512-aG6IDgfEEUTBNbgvtvzOvmM3yo09/E0EDq3l/kDjCUec74q5rnVKvLvKjAVE0CDxVjNZzXd3BghRaBly9HJ6aw==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.0",
"@element-plus/icons-vue": "^1.1.1",
"@popperjs/core": "^2.11.3",
"@vueuse/core": "^7.7.1",
"async-validator": "^4.0.7",
"dayjs": "^1.10.8",
"escape-html": "^1.0.3",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lodash-unified": "^1.0.2",
"memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.1.1"
},
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/emmet": { "node_modules/emmet": {
"version": "2.3.6", "version": "2.3.6",
"resolved": "https://registry.npmjs.org/emmet/-/emmet-2.3.6.tgz", "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.3.6.tgz",
...@@ -1828,8 +1960,7 @@ ...@@ -1828,8 +1960,7 @@
"node_modules/escape-html": { "node_modules/escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
"dev": true
}, },
"node_modules/escape-string-regexp": { "node_modules/escape-string-regexp": {
"version": "4.0.0", "version": "4.0.0",
...@@ -2949,8 +3080,22 @@ ...@@ -2949,8 +3080,22 @@
"node_modules/lodash": { "node_modules/lodash": {
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
"dev": true },
"node_modules/lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"node_modules/lodash-unified": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz",
"integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==",
"peerDependencies": {
"@types/lodash-es": "*",
"lodash": "*",
"lodash-es": "*"
}
}, },
"node_modules/lodash.debounce": { "node_modules/lodash.debounce": {
"version": "4.0.8", "version": "4.0.8",
...@@ -2990,6 +3135,11 @@ ...@@ -2990,6 +3135,11 @@
"sourcemap-codec": "^1.4.8" "sourcemap-codec": "^1.4.8"
} }
}, },
"node_modules/memoize-one": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
},
"node_modules/merge-descriptors": { "node_modules/merge-descriptors": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
...@@ -3140,6 +3290,11 @@ ...@@ -3140,6 +3290,11 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/normalize-wheel-es": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.1.tgz",
"integrity": "sha512-157VNH4CngrcsvF8xOVOe22cwniIR3nxSltdctvQeHZj8JttEeOXffK28jucWfWBXs0QNetAumjc1GiInnwX4w=="
},
"node_modules/npm-run-path": { "node_modules/npm-run-path": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
...@@ -4931,6 +5086,17 @@ ...@@ -4931,6 +5086,17 @@
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
} }
}, },
"@ctrl/tinycolor": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz",
"integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ=="
},
"@element-plus/icons-vue": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-1.1.1.tgz",
"integrity": "sha512-kRL/cWwaynmwi/6ounJxwnj316EHqAqKrl2WTCmcwiDPVqT+Wt1pSK6nAI0zUeLfe/y8NhYMB97+NDEWgNBCqA==",
"requires": {}
},
"@emmetio/abbreviation": { "@emmetio/abbreviation": {
"version": "2.2.3", "version": "2.2.3",
"resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz", "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz",
...@@ -5023,6 +5189,11 @@ ...@@ -5023,6 +5189,11 @@
"fastq": "^1.6.0" "fastq": "^1.6.0"
} }
}, },
"@popperjs/core": {
"version": "2.11.4",
"resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.4.tgz",
"integrity": "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg=="
},
"@rushstack/eslint-patch": { "@rushstack/eslint-patch": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz",
...@@ -5041,6 +5212,21 @@ ...@@ -5041,6 +5212,21 @@
"integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
"dev": true "dev": true
}, },
"@types/lodash": {
"version": "4.14.180",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.180.tgz",
"integrity": "sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==",
"peer": true
},
"@types/lodash-es": {
"version": "4.17.6",
"resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
"integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
"peer": true,
"requires": {
"@types/lodash": "*"
}
},
"@types/node": { "@types/node": {
"version": "16.11.26", "version": "16.11.26",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz",
...@@ -5370,6 +5556,31 @@ ...@@ -5370,6 +5556,31 @@
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },
"@vueuse/core": {
"version": "7.7.1",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-7.7.1.tgz",
"integrity": "sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow==",
"requires": {
"@vueuse/shared": "7.7.1",
"vue-demi": "*"
},
"dependencies": {
"@vueuse/shared": {
"version": "7.7.1",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-7.7.1.tgz",
"integrity": "sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ==",
"requires": {
"vue-demi": "*"
}
},
"vue-demi": {
"version": "0.12.1",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.1.tgz",
"integrity": "sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==",
"requires": {}
}
}
},
"acorn": { "acorn": {
"version": "8.7.0", "version": "8.7.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
...@@ -5563,6 +5774,11 @@ ...@@ -5563,6 +5774,11 @@
} }
} }
}, },
"async-validator": {
"version": "4.0.7",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.0.7.tgz",
"integrity": "sha512-Pj2IR7u8hmUEDOwB++su6baaRi+QvsgajuFB9j95foM1N2gy5HM4z60hfusIO0fBPG5uLAEl6yCJr1jNSVugEQ=="
},
"axios": { "axios": {
"version": "0.26.1", "version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
...@@ -5775,6 +5991,11 @@ ...@@ -5775,6 +5991,11 @@
"integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
"dev": true "dev": true
}, },
"dayjs": {
"version": "1.11.0",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.0.tgz",
"integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug=="
},
"debug": { "debug": {
"version": "4.3.3", "version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
...@@ -5918,6 +6139,25 @@ ...@@ -5918,6 +6139,25 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
"dev": true "dev": true
}, },
"element-plus": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.1.2.tgz",
"integrity": "sha512-aG6IDgfEEUTBNbgvtvzOvmM3yo09/E0EDq3l/kDjCUec74q5rnVKvLvKjAVE0CDxVjNZzXd3BghRaBly9HJ6aw==",
"requires": {
"@ctrl/tinycolor": "^3.4.0",
"@element-plus/icons-vue": "^1.1.1",
"@popperjs/core": "^2.11.3",
"@vueuse/core": "^7.7.1",
"async-validator": "^4.0.7",
"dayjs": "^1.10.8",
"escape-html": "^1.0.3",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lodash-unified": "^1.0.2",
"memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.1.1"
}
},
"emmet": { "emmet": {
"version": "2.3.6", "version": "2.3.6",
"resolved": "https://registry.npmjs.org/emmet/-/emmet-2.3.6.tgz", "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.3.6.tgz",
...@@ -6120,8 +6360,7 @@ ...@@ -6120,8 +6360,7 @@
"escape-html": { "escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
"dev": true
}, },
"escape-string-regexp": { "escape-string-regexp": {
"version": "4.0.0", "version": "4.0.0",
...@@ -6996,8 +7235,18 @@ ...@@ -6996,8 +7235,18 @@
"lodash": { "lodash": {
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
"dev": true },
"lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"lodash-unified": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz",
"integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==",
"requires": {}
}, },
"lodash.debounce": { "lodash.debounce": {
"version": "4.0.8", "version": "4.0.8",
...@@ -7034,6 +7283,11 @@ ...@@ -7034,6 +7283,11 @@
"sourcemap-codec": "^1.4.8" "sourcemap-codec": "^1.4.8"
} }
}, },
"memoize-one": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
},
"merge-descriptors": { "merge-descriptors": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
...@@ -7150,6 +7404,11 @@ ...@@ -7150,6 +7404,11 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true "dev": true
}, },
"normalize-wheel-es": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.1.tgz",
"integrity": "sha512-157VNH4CngrcsvF8xOVOe22cwniIR3nxSltdctvQeHZj8JttEeOXffK28jucWfWBXs0QNetAumjc1GiInnwX4w=="
},
"npm-run-path": { "npm-run-path": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
"dependencies": { "dependencies": {
"axios": "^0.26.1", "axios": "^0.26.1",
"countup.js": "^2.1.0", "countup.js": "^2.1.0",
"element-plus": "^2.1.2",
"pinia": "^2.0.11", "pinia": "^2.0.11",
"vue": "^3.2.31", "vue": "^3.2.31",
"vue-router": "^4.0.14" "vue-router": "^4.0.14"
......
...@@ -16,6 +16,5 @@ import AppHeader from './Header.vue' ...@@ -16,6 +16,5 @@ import AppHeader from './Header.vue'
min-height: 100vh; min-height: 100vh;
background: #f9f8f8 url('https://webapp-pub.ezijing.com/project/saas/bg.png') no-repeat center bottom; background: #f9f8f8 url('https://webapp-pub.ezijing.com/project/saas/bg.png') no-repeat center bottom;
background-size: cover; background-size: cover;
background-attachment: fixed;
} }
</style> </style>
...@@ -3,17 +3,21 @@ import { createPinia } from 'pinia' ...@@ -3,17 +3,21 @@ import { createPinia } from 'pinia'
import App from './App.vue' import App from './App.vue'
import router from './router' import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import modules from './modules' import modules from './modules'
// 公共css // 公共css
import './assets/css/base.css' import './assets/css/base.css'
const app = createApp(App) const app = createApp(App)
// 注册模块 // 注册模块
modules({ router }) modules({ router })
app.use(createPinia()) app.use(createPinia())
app.use(router) app.use(router)
app.use(ElementPlus)
app.mount('#app') app.mount('#app')
<script setup lang="ts"> <script setup lang="ts">
import AppCard from '@/components/base/AppCard.vue' import AppCard from '@/components/base/AppCard.vue'
import CardBoxCell from './CardBoxCell.vue'
defineProps({ data: { type: Object, default: () => ({}) } }) defineProps({ data: { type: Object, default: () => ({}) } })
</script> </script>
...@@ -9,28 +10,12 @@ defineProps({ data: { type: Object, default: () => ({}) } }) ...@@ -9,28 +10,12 @@ defineProps({ data: { type: Object, default: () => ({}) } })
<div class="box"> <div class="box">
<div class="box-left"> <div class="box-left">
<div class="box-row" v-for="(row, index) in data.leftItems" :key="index"> <div class="box-row" v-for="(row, index) in data.leftItems" :key="index">
<div class="box-cell" v-for="(cell, index) in row" :key="index"> <CardBoxCell v-for="(cell, index) in row" :data="cell" :key="index"></CardBoxCell>
<a :href="cell.href" target="_blank">
<div class="box-cell-icon">
<img :src="cell.icon" class="icon-normal" />
<img :src="cell.hoverIcon" class="icon-hover" />
</div>
<div class="box-cell-name">{{ cell.title }}</div>
</a>
</div>
</div> </div>
</div> </div>
<div class="box-right" v-if="data.rightItems"> <div class="box-right" v-if="data.rightItems">
<div class="box-row" v-for="(row, index) in data.rightItems" :key="index"> <div class="box-row" v-for="(row, index) in data.rightItems" :key="index">
<div class="box-cell" v-for="(cell, index) in row" :key="index"> <CardBoxCell v-for="(cell, index) in row" :data="cell" :key="index"></CardBoxCell>
<a :href="cell.href" target="_blank">
<div class="box-cell-icon">
<img :src="cell.icon" class="icon-normal" />
<img :src="cell.hoverIcon" class="icon-hover" />
</div>
<div class="box-cell-name">{{ cell.title }}</div>
</a>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -43,8 +28,7 @@ defineProps({ data: { type: Object, default: () => ({}) } }) ...@@ -43,8 +28,7 @@ defineProps({ data: { type: Object, default: () => ({}) } })
} }
.box-left { .box-left {
flex: 1; flex: 1;
a:hover { .box-cell:hover {
color: #fff;
background-color: #aa1941; background-color: #aa1941;
} }
} }
...@@ -53,8 +37,7 @@ defineProps({ data: { type: Object, default: () => ({}) } }) ...@@ -53,8 +37,7 @@ defineProps({ data: { type: Object, default: () => ({}) } })
margin-left: 20px; margin-left: 20px;
padding-left: 20px; padding-left: 20px;
border-left: 1px dashed #c1c1c1; border-left: 1px dashed #c1c1c1;
a:hover { .box-cell:hover {
color: #fff;
background-color: #136ca8; background-color: #136ca8;
} }
} }
...@@ -64,59 +47,15 @@ defineProps({ data: { type: Object, default: () => ({}) } }) ...@@ -64,59 +47,15 @@ defineProps({ data: { type: Object, default: () => ({}) } })
.box-row + .box-row { .box-row + .box-row {
margin-top: 20px; margin-top: 20px;
} }
.box-cell {
flex: 1;
background-color: #f7f5f5;
border-radius: 20px;
color: #333;
overflow: hidden;
a {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 150px;
&:hover {
.icon-normal {
display: none;
}
.icon-hover {
display: block;
}
}
}
}
.box-cell + .box-cell { .box-cell + .box-cell {
margin-left: 20px; margin-left: 20px;
} }
.box-cell-icon {
height: 46px;
img {
height: 100%;
object-fit: contain;
}
.icon-normal {
display: block;
}
.icon-hover {
display: none;
}
}
.box-cell-name {
margin-top: 18px;
font-size: 16px;
font-weight: 400;
line-height: 28px;
}
.is-blue { .is-blue {
.app-card-hd__title { .app-card-hd__title {
border-color: #136ca8; border-color: #136ca8;
} }
.box-cell { .box-cell:hover {
a:hover { background-color: #136ca8;
color: #fff;
background-color: #136ca8;
}
} }
} }
</style> </style>
<script setup lang="ts">
const props = defineProps({ data: { type: Object, default: () => ({}) } })
function handleClick() {
props.data.onClick && props.data.onClick()
}
</script>
<template>
<div class="box-cell" v-if="data.href">
<a :href="data.href" target="_blank">
<div class="box-cell-icon">
<img :src="data.icon" class="icon-normal" />
<img :src="data.hoverIcon" class="icon-hover" />
</div>
<div class="box-cell-name">{{ data.title }}</div>
</a>
</div>
<div class="box-cell" @click="handleClick" v-else>
<div class="box-cell-icon">
<img :src="data.icon" class="icon-normal" />
<img :src="data.hoverIcon" class="icon-hover" />
</div>
<div class="box-cell-name">{{ data.title }}</div>
</div>
</template>
<style lang="scss">
.box-cell {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: #f7f5f5;
height: 150px;
border-radius: 20px;
color: #333;
cursor: pointer;
a {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: inherit;
width: 100%;
height: 100%;
}
&:hover {
color: #fff;
box-shadow: 1px 3px 18px rgba(0, 0, 0, 0.18);
a {
color: #fff;
}
.icon-normal {
display: none;
}
.icon-hover {
display: block;
}
}
}
.box-cell-icon {
height: 46px;
img {
height: 100%;
object-fit: contain;
}
.icon-normal {
display: block;
}
.icon-hover {
display: none;
}
}
.box-cell-name {
margin-top: 18px;
font-size: 16px;
font-weight: 400;
line-height: 28px;
}
</style>
<script setup lang="ts"> <script setup lang="ts">
import { ElMessage } from 'element-plus'
import Total from '../components/Total.vue' import Total from '../components/Total.vue'
import Card from '../components/Card.vue' import Card from '../components/Card.vue'
const rows = [ const rows = [
...@@ -11,13 +12,17 @@ const rows = [ ...@@ -11,13 +12,17 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_1.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_1.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_1_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_1_hover.png',
title: 'CMS教学资源系统', title: 'CMS教学资源系统',
href: 'https://course.ezijing.com/' onClick() {
ElMessage({ message: '暂未开放' })
}
}, },
{ {
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_2.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_2.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_2_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_2_hover.png',
title: '课程管理中心', title: '课程管理中心',
href: '' onClick() {
ElMessage({ message: '暂未开放' })
}
} }
] ]
], ],
...@@ -27,13 +32,17 @@ const rows = [ ...@@ -27,13 +32,17 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_3.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_3.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_3_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_3_hover.png',
title: '课程学习', title: '课程学习',
href: '' onClick() {
ElMessage({ message: '暂未开放' })
}
}, },
{ {
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_4.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_4.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_4_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_1_4_hover.png',
title: '在线考试', title: '在线考试',
href: '' onClick() {
ElMessage({ message: '暂未开放' })
}
} }
] ]
] ]
...@@ -92,7 +101,9 @@ const rows = [ ...@@ -92,7 +101,9 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_2_7.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_2_7.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_2_7_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_2_7_hover.png',
title: '考试中心', title: '考试中心',
href: 'https://x-exam.ezijing.com' onClick() {
ElMessage({ message: '当前暂无考试' })
}
}, },
{ {
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_2_8.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_2_8.png',
...@@ -113,13 +124,17 @@ const rows = [ ...@@ -113,13 +124,17 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_1.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_1.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_1_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_1_hover.png',
title: '教学管理', title: '教学管理',
href: 'https://x-school.ezijing.com' onClick() {
ElMessage({ message: '暂未开放' })
}
}, },
{ {
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_2.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_2.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_2_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_2_hover.png',
title: '教务管理', title: '教务管理',
href: 'https://x-school.ezijing.com' onClick() {
ElMessage({ message: '暂未开放' })
}
} }
], ],
[ [
...@@ -127,13 +142,13 @@ const rows = [ ...@@ -127,13 +142,13 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_3.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_3.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_3_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_3_hover.png',
title: '题库管理', title: '题库管理',
href: 'https://qa-center.ezijing.com' href: 'https://qa-center.ezijing.com?project_tag=marywood_plus'
}, },
{ {
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_4.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_4.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_4_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_4_hover.png',
title: '考务管理', title: '考务管理',
href: 'https://qa-center.ezijing.com/exam?project_tag=x1' href: 'https://qa-center.ezijing.com/exam?project_tag=marywood_plus'
} }
] ]
], ],
...@@ -143,7 +158,9 @@ const rows = [ ...@@ -143,7 +158,9 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_5.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_5.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_5_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_5_hover.png',
title: '课程学习', title: '课程学习',
href: '' onClick() {
ElMessage({ message: '暂未开放' })
}
} }
], ],
[ [
...@@ -151,7 +168,9 @@ const rows = [ ...@@ -151,7 +168,9 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_6.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_6.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_6_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_3_6_hover.png',
title: '在线考试', title: '在线考试',
href: '' onClick() {
ElMessage({ message: '当前暂无考试' })
}
} }
] ]
] ]
...@@ -166,13 +185,13 @@ const rows = [ ...@@ -166,13 +185,13 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_1.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_1.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_1_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_1_hover.png',
title: '教学管理', title: '教学管理',
href: '' href: 'https://marywood-admin.ezijing.com'
}, },
{ {
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_2.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_2.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_2_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_2_hover.png',
title: '教务管理', title: '教务管理',
href: '' href: 'https://marywood-admin.ezijing.com'
} }
], ],
[ [
...@@ -180,13 +199,13 @@ const rows = [ ...@@ -180,13 +199,13 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_3.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_3.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_3_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_3_hover.png',
title: '题库管理', title: '题库管理',
href: '' href: 'https://qa-center.ezijing.com?project_tag=marywood'
}, },
{ {
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_4.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_4.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_4_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_4_hover.png',
title: '考务管理', title: '考务管理',
href: '' href: 'https://qa-center.ezijing.com/exam?project_tag=marywood'
} }
] ]
], ],
...@@ -196,7 +215,7 @@ const rows = [ ...@@ -196,7 +215,7 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_5.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_5.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_5_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_5_hover.png',
title: '课程学习', title: '课程学习',
href: '' href: 'https://marywood-learning.ezijing.com'
} }
], ],
[ [
...@@ -204,7 +223,9 @@ const rows = [ ...@@ -204,7 +223,9 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_6.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_6.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_6_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_4_6_hover.png',
title: '在线考试', title: '在线考试',
href: '' onClick() {
ElMessage({ message: '暂未开放' })
}
} }
] ]
] ]
...@@ -233,13 +254,13 @@ const rows = [ ...@@ -233,13 +254,13 @@ const rows = [
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_6_1.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_6_1.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_6_1_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_6_1_hover.png',
title: '商业数据分析实验室', title: '商业数据分析实验室',
href: 'https://www.ezijing.com' href: 'http://114.242.229.132:18080/bi'
}, },
{ {
icon: 'https://webapp-pub.ezijing.com/project/saas/icon_6_2.png', icon: 'https://webapp-pub.ezijing.com/project/saas/icon_6_2.png',
hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_6_2_hover.png', hoverIcon: 'https://webapp-pub.ezijing.com/project/saas/icon_6_2_hover.png',
title: '数字化营销平台', title: '数字化营销平台',
href: 'https://x-training.ezijing.com' href: 'https://xtraining.ezijing.com'
} }
] ]
] ]
......
import type { Router } from 'vue-router' import type { Router } from 'vue-router'
import type { Module } from '@/types' import type { AppModule } from '@/types'
export default function ({ router }: { router: Router }) { export default function ({ router }: { router: Router }) {
const modules: Array<Module> = Object.values(import.meta.globEager('./**/index.ts')) const modules: Array<AppModule> = Object.values(import.meta.globEager('./**/index.ts'))
modules.forEach(({ routes = [] }) => { modules.forEach(({ routes = [] }) => {
// 注册路由 // 注册路由
routes.forEach(route => { routes.forEach(route => {
......
...@@ -9,6 +9,6 @@ export interface UserState { ...@@ -9,6 +9,6 @@ export interface UserState {
username: string username: string
} }
export interface Module { export interface AppModule {
routes: Array<RouteRecordRaw> routes: Array<RouteRecordRaw>
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论