shenbo781 3 years ago
parent
commit
c0209294e4

+ 187
- 154
package-lock.json View File

@@ -1,5 +1,5 @@
{
"name": "etc-project",
"name": "etcProject",
"version": "0.0.0",
"lockfileVersion": 2,
"requires": true,
@@ -11,7 +11,7 @@
"@element-plus/icons-vue": "^1.1.4",
"axios": "^0.27.2",
"babel-polyfill": "^6.26.0",
"element-plus": "^2.1.7",
"element-plus": "^2.2.0",
"file-saver": "^2.0.5",
"fuse.js": "^6.5.3",
"js-cookie": "^3.0.1",
@@ -169,9 +169,9 @@
}
},
"node_modules/@ctrl/tinycolor": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz",
"integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==",
"version": "3.4.1",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz",
"integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==",
"engines": {
"node": ">=10"
}
@@ -223,16 +223,16 @@
}
},
"node_modules/@floating-ui/core": {
"version": "0.6.1",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.1.tgz",
"integrity": "sha512-Y30eVMcZva8o84c0HcXAtDO4BEzPJMvF6+B7x7urL2xbAqVsGJhojOyHLaoQHQYjb6OkqRq5kO+zeySycQwKqg=="
"version": "0.6.2",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.2.tgz",
"integrity": "sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg=="
},
"node_modules/@floating-ui/dom": {
"version": "0.4.2",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.2.tgz",
"integrity": "sha512-2/4vOhMAujkMmGqGX1Gut84phe5MNfk1kGeM+RSTJCpeR0SWR2/RR+/f1r1msOvTQa28wn7HEhxGe71CjYY/vw==",
"version": "0.4.5",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.5.tgz",
"integrity": "sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw==",
"dependencies": {
"@floating-ui/core": "^0.6.1"
"@floating-ui/core": "^0.6.2"
}
},
"node_modules/@humanwhocodes/config-array": {
@@ -291,9 +291,10 @@
}
},
"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=="
"name": "@sxzz/popperjs-es",
"version": "2.11.7",
"resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
},
"node_modules/@rollup/pluginutils": {
"version": "4.1.1",
@@ -320,6 +321,19 @@
"integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0=",
"dev": true
},
"node_modules/@types/lodash": {
"version": "4.14.182",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz",
"integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q=="
},
"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==",
"dependencies": {
"@types/lodash": "*"
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.4.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-5.4.0.tgz",
@@ -577,74 +591,10 @@
"resolved": "https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.22.tgz?cache=0&sync_timestamp=1636948014607&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Fshared%2Fdownload%2F%40vue%2Fshared-3.2.22.tgz",
"integrity": "sha512-qWVav014mpjEtbWbEgl0q9pEyrrIySKum8UVYjwhC6njrKzknLZPvfuYdQyVbApsqr94tf/3dP4pCuZmmjdCWQ=="
},
"node_modules/@vueuse/core": {
"version": "8.2.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-8.2.0.tgz",
"integrity": "sha512-89ZfKtFHz5ynfpWyFVXtK0yePJ2MZqFaOxnGeZn7cIp8KFbPRlu6Wsxi3gBkJNpjq+q9qbEh6MjV7QBvqCQ5Og==",
"dependencies": {
"@vueuse/metadata": "8.2.0",
"@vueuse/shared": "8.2.0",
"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": "8.2.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.2.0.tgz",
"integrity": "sha512-dTw7EJZgZCgG9DoVAiz4LtmKnIFXuE/idUFzvqRAJLjbPiVJc+qQH5kDUdKHI3W1U9t//1mdasQEKONArburiQ==",
"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.4",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.4.tgz",
"integrity": "sha512-ztPDkFt0TSUdoq1ZI6oD730vgztBkiByhUW7L1cOTebiSBqSYfSQgnhYakYigBkyAybqCTH7h44yZuDJf2xILQ==",
"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/@vueuse/metadata": {
"version": "8.2.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.2.0.tgz",
"integrity": "sha512-cbaezEccNuxQC+OiudG9VjZNg9/RbAAHkyuhC6+8Gsgsc+MvDhfn1NrV6NNTaldLlZgJFgUiYOkrf3JGTTTGXQ=="
"version": "8.5.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.5.0.tgz",
"integrity": "sha512-WxsD+Cd+bn+HcjpY6Dl9FJ8ywTRTT9pTwk3bCQpzEhXVYAyNczKDSahk50fCfIJKeWHhyI4B2+/ZEOxQAkUr0g=="
},
"node_modules/acorn": {
"version": "8.6.0",
@@ -758,9 +708,9 @@
}
},
"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=="
"version": "4.1.1",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.1.1.tgz",
"integrity": "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA=="
},
"node_modules/asynckit": {
"version": "0.4.0",
@@ -1127,9 +1077,9 @@
}
},
"node_modules/dayjs": {
"version": "1.11.0",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.0.tgz",
"integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug=="
"version": "1.11.2",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.2.tgz",
"integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw=="
},
"node_modules/debug": {
"version": "4.3.4",
@@ -1207,28 +1157,94 @@
"dev": true
},
"node_modules/element-plus": {
"version": "2.1.7",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.1.7.tgz",
"integrity": "sha512-jamE9F/a2rfAQJwf3kLaDfWXxhjXuAJAvrto76SLJsJfr3iIUAzC849RHdn6h7tNJy9Yanq8GlQAsdBe5lJmrA==",
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.0.tgz",
"integrity": "sha512-zxmAFEAa1T/n09rR+NozXcWl5CjaFtqoaxhFSafag0dgc90tgEHitDXfegdFAl4ahugdNTqu9aLzngx3VhDAtA==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.0",
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^1.1.4",
"@floating-ui/dom": "^0.4.1",
"@popperjs/core": "^2.11.4",
"@vueuse/core": "^8.1.2",
"@floating-ui/dom": "^0.4.5",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.6",
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
"@vueuse/core": "^8.2.6",
"async-validator": "^4.0.7",
"dayjs": "^1.11.0",
"dayjs": "^1.11.1",
"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"
"normalize-wheel-es": "^1.1.2"
},
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/element-plus/node_modules/@vueuse/core": {
"version": "8.5.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-8.5.0.tgz",
"integrity": "sha512-VEJ6sGNsPlUp0o9BGda2YISvDZbhWJSOJu5zlp2TufRGVrLcYUKr31jyFEOj6RXzG3k/H4aCYeZyjpItfU8glw==",
"dependencies": {
"@vueuse/metadata": "8.5.0",
"@vueuse/shared": "8.5.0",
"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/element-plus/node_modules/@vueuse/core/node_modules/@vueuse/shared": {
"version": "8.5.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.5.0.tgz",
"integrity": "sha512-qKG+SZb44VvGD4dU5cQ63z4JE2Yk39hQUecR0a9sEdJA01cx+XrxAvFKJfPooxwoiqalAVw/ktWK6xbyc/jS3g==",
"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/element-plus/node_modules/@vueuse/core/node_modules/vue-demi": {
"version": "0.12.5",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz",
"integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==",
"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/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632751333727&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz",
@@ -3692,9 +3708,9 @@
}
},
"@ctrl/tinycolor": {
"version": "3.4.0",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz",
"integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ=="
"version": "3.4.1",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz",
"integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw=="
},
"@element-plus/icons-vue": {
"version": "1.1.4",
@@ -3737,16 +3753,16 @@
}
},
"@floating-ui/core": {
"version": "0.6.1",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.1.tgz",
"integrity": "sha512-Y30eVMcZva8o84c0HcXAtDO4BEzPJMvF6+B7x7urL2xbAqVsGJhojOyHLaoQHQYjb6OkqRq5kO+zeySycQwKqg=="
"version": "0.6.2",
"resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.2.tgz",
"integrity": "sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg=="
},
"@floating-ui/dom": {
"version": "0.4.2",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.2.tgz",
"integrity": "sha512-2/4vOhMAujkMmGqGX1Gut84phe5MNfk1kGeM+RSTJCpeR0SWR2/RR+/f1r1msOvTQa28wn7HEhxGe71CjYY/vw==",
"version": "0.4.5",
"resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.5.tgz",
"integrity": "sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw==",
"requires": {
"@floating-ui/core": "^0.6.1"
"@floating-ui/core": "^0.6.2"
}
},
"@humanwhocodes/config-array": {
@@ -3793,9 +3809,9 @@
}
},
"@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=="
"version": "npm:@sxzz/popperjs-es@2.11.7",
"resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
},
"@rollup/pluginutils": {
"version": "4.1.1",
@@ -3819,6 +3835,19 @@
"integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0=",
"dev": true
},
"@types/lodash": {
"version": "4.14.182",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz",
"integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q=="
},
"@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==",
"requires": {
"@types/lodash": "*"
}
},
"@typescript-eslint/eslint-plugin": {
"version": "5.4.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-5.4.0.tgz",
@@ -4021,36 +4050,10 @@
"resolved": "https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.22.tgz?cache=0&sync_timestamp=1636948014607&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Fshared%2Fdownload%2F%40vue%2Fshared-3.2.22.tgz",
"integrity": "sha512-qWVav014mpjEtbWbEgl0q9pEyrrIySKum8UVYjwhC6njrKzknLZPvfuYdQyVbApsqr94tf/3dP4pCuZmmjdCWQ=="
},
"@vueuse/core": {
"version": "8.2.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-8.2.0.tgz",
"integrity": "sha512-89ZfKtFHz5ynfpWyFVXtK0yePJ2MZqFaOxnGeZn7cIp8KFbPRlu6Wsxi3gBkJNpjq+q9qbEh6MjV7QBvqCQ5Og==",
"requires": {
"@vueuse/metadata": "8.2.0",
"@vueuse/shared": "8.2.0",
"vue-demi": "*"
},
"dependencies": {
"@vueuse/shared": {
"version": "8.2.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.2.0.tgz",
"integrity": "sha512-dTw7EJZgZCgG9DoVAiz4LtmKnIFXuE/idUFzvqRAJLjbPiVJc+qQH5kDUdKHI3W1U9t//1mdasQEKONArburiQ==",
"requires": {
"vue-demi": "*"
}
},
"vue-demi": {
"version": "0.12.4",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.4.tgz",
"integrity": "sha512-ztPDkFt0TSUdoq1ZI6oD730vgztBkiByhUW7L1cOTebiSBqSYfSQgnhYakYigBkyAybqCTH7h44yZuDJf2xILQ==",
"requires": {}
}
}
},
"@vueuse/metadata": {
"version": "8.2.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.2.0.tgz",
"integrity": "sha512-cbaezEccNuxQC+OiudG9VjZNg9/RbAAHkyuhC6+8Gsgsc+MvDhfn1NrV6NNTaldLlZgJFgUiYOkrf3JGTTTGXQ=="
"version": "8.5.0",
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.5.0.tgz",
"integrity": "sha512-WxsD+Cd+bn+HcjpY6Dl9FJ8ywTRTT9pTwk3bCQpzEhXVYAyNczKDSahk50fCfIJKeWHhyI4B2+/ZEOxQAkUr0g=="
},
"acorn": {
"version": "8.6.0",
@@ -4135,9 +4138,9 @@
"dev": true
},
"async-validator": {
"version": "4.0.7",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.0.7.tgz",
"integrity": "sha512-Pj2IR7u8hmUEDOwB++su6baaRi+QvsgajuFB9j95foM1N2gy5HM4z60hfusIO0fBPG5uLAEl6yCJr1jNSVugEQ=="
"version": "4.1.1",
"resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.1.1.tgz",
"integrity": "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA=="
},
"asynckit": {
"version": "0.4.0",
@@ -4426,9 +4429,9 @@
}
},
"dayjs": {
"version": "1.11.0",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.0.tgz",
"integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug=="
"version": "1.11.2",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.2.tgz",
"integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw=="
},
"debug": {
"version": "4.3.4",
@@ -4489,23 +4492,53 @@
"dev": true
},
"element-plus": {
"version": "2.1.7",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.1.7.tgz",
"integrity": "sha512-jamE9F/a2rfAQJwf3kLaDfWXxhjXuAJAvrto76SLJsJfr3iIUAzC849RHdn6h7tNJy9Yanq8GlQAsdBe5lJmrA==",
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.0.tgz",
"integrity": "sha512-zxmAFEAa1T/n09rR+NozXcWl5CjaFtqoaxhFSafag0dgc90tgEHitDXfegdFAl4ahugdNTqu9aLzngx3VhDAtA==",
"requires": {
"@ctrl/tinycolor": "^3.4.0",
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^1.1.4",
"@floating-ui/dom": "^0.4.1",
"@popperjs/core": "^2.11.4",
"@vueuse/core": "^8.1.2",
"@floating-ui/dom": "^0.4.5",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.6",
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
"@vueuse/core": "^8.2.6",
"async-validator": "^4.0.7",
"dayjs": "^1.11.0",
"dayjs": "^1.11.1",
"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"
"normalize-wheel-es": "^1.1.2"
},
"dependencies": {
"@vueuse/core": {
"version": "8.5.0",
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-8.5.0.tgz",
"integrity": "sha512-VEJ6sGNsPlUp0o9BGda2YISvDZbhWJSOJu5zlp2TufRGVrLcYUKr31jyFEOj6RXzG3k/H4aCYeZyjpItfU8glw==",
"requires": {
"@vueuse/metadata": "8.5.0",
"@vueuse/shared": "8.5.0",
"vue-demi": "*"
},
"dependencies": {
"@vueuse/shared": {
"version": "8.5.0",
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.5.0.tgz",
"integrity": "sha512-qKG+SZb44VvGD4dU5cQ63z4JE2Yk39hQUecR0a9sEdJA01cx+XrxAvFKJfPooxwoiqalAVw/ktWK6xbyc/jS3g==",
"requires": {
"vue-demi": "*"
}
},
"vue-demi": {
"version": "0.12.5",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz",
"integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==",
"requires": {}
}
}
}
}
},
"emoji-regex": {

+ 1
- 1
package.json View File

@@ -12,7 +12,7 @@
"@element-plus/icons-vue": "^1.1.4",
"axios": "^0.27.2",
"babel-polyfill": "^6.26.0",
"element-plus": "^2.1.7",
"element-plus": "^2.2.0",
"file-saver": "^2.0.5",
"fuse.js": "^6.5.3",
"js-cookie": "^3.0.1",

+ 12
- 6
src/crud/components/CRUD.operation.vue View File

@@ -1,19 +1,19 @@
<template>
<div class="as-layout-horizontal">
<!-- CUD 按钮组件 -->
<el-button type="primary" icon="Plus" @click="toAdd"> 新增 </el-button>
<el-button :disabled="DEdit" type="success" icon="Edit" @click="toEdit">
<el-button v-if="processData.crud.add" type="primary" icon="Plus" @click="toAdd"> 新增 </el-button>
<el-button v-if="processData.crud.edit" :disabled="DEdit" type="success" icon="Edit" @click="toEdit">
修改
</el-button>
<el-button :disabled="DDelete" type="danger" icon="Delete" @click="toDelete">
<el-button v-if="processData.crud.delete" :disabled="DDelete" type="danger" icon="Delete" @click="toDelete">
删除
</el-button>
<el-button type="warning" icon="Download"> 导出 </el-button>
<el-button v-if="processData.crud.derive" type="warning" icon="Download"> 导出 </el-button>
<div class="as-weight" />
<!-- 搜索-刷新-->
<el-button-group v-if="child">
<el-button plain :type="SSearch ? 'info' : 'default'" icon="Search" @click="toSearch" />
<el-button icon="Refresh" @click="toRefresh" />
<el-button v-if="processData.crud.search" plain :type="SSearch ? 'info' : 'default'" icon="Search" @click="toSearch" />
<el-button v-if="processData.crud.refresh" type="default" icon="Refresh" @click="toRefresh" />
</el-button-group>
</div>
</template>
@@ -38,6 +38,12 @@ const props = defineProps({
child: { //子类是否显示
default: true,
type: Boolean
},
processData:{
type: Object,
default: function () {
return {}
}
}
})


+ 2
- 2
src/crud/components/Search.operation.vue View File

@@ -1,9 +1,9 @@
<template>
<span>
<div class="as-layout-horizontal">
<slot />
<el-button type="success" icon="search" @click="search">搜索</el-button>
<el-button type="warning" icon="refreshLeft" @click="refreshLeft">重置</el-button>
</span>
</div>
</template>
<script lang="ts" setup>
import { } from 'vue'

+ 17
- 15
src/crud/components/UD.operation.vue View File

@@ -1,6 +1,6 @@
<!-- 默认插槽值 -->
<template>
<el-button v-if="isEdit" size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button v-if="isEdit" type="default" size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<!-- 弹出框提示 trigger="click" -->
<el-popover v-if="isDelete" trigger="click" v-model:visible="scope.row.visible" placement="top" :width="160">
<div>
@@ -8,7 +8,7 @@
<span>是否确认删除该条数据?</span>
</div>
<div class="as-layout-horizontal">
<el-button type="text" @click="scope.row.visible = false" style="width: 100%;">取消</el-button>
<el-button type="default" @click="scope.row.visible = false" style="width: 100%;">取消</el-button>
<el-button type="primary" @click="handleDelete(scope.$index, scope.row)" style="color: #fff;
margin-right: 10px;">确认</el-button>
</div>
@@ -59,25 +59,27 @@ const handleEdit = (idx: number, row: any) => {

//删除弹窗
const hintDelete = (scope: any, data: any) => {
let toolData: any = []
data.forEach((element: any, index: number) => {
if (element.children && element.children.length > 0) {
hintDelete(scope, element.children)
if (props.rowKey) {
if (scope.row[props.rowKey] === element.title) {
element.visible = true
} else {
element.visible = false
}
} else {
if (props.rowKey) {
if (scope.row[props.rowKey] === element.title) {
element.visible = true
} else {
element.visible = false
}
if (scope.$index === index) {
element.visible = true
} else {
if (scope.$index === index) {
element.visible = true
} else {
element.visible = false
}
element.visible = false
}
}
if (element.children && element.children.length > 0) {
hintDelete(scope, element.children)
}
});


}
</script>
<style scoped>

+ 10
- 1
src/crud/config.ts View File

@@ -20,7 +20,7 @@ const field = [ //字段
required: false, //表单是否不能为空(默认false)
type: '', //表单类型(input,select[含选择框],date)
placeholder: '', //表单提示
itemType: '', //表单type
itemType: '', //组件type值
listData: [{ //列表数据
label: '', //标题
value: '' //表单提交值
@@ -36,6 +36,7 @@ const extend = [{
}]

export const defaultOptions: {} = {
tabSize: 'default', // Table 的尺寸 large / default /small (默认default)
search: {}, //搜索字段
searchShow: true, //是否显示搜索模块(默认true)
border: false, //是否添加边框(默认false)
@@ -43,6 +44,14 @@ export const defaultOptions: {} = {
dialogFooter: false, //隐藏弹窗页脚显示 (默认false)
crudShow: true, //是否显示CURD操作栏 (默认true)
crudChildShow: true, //是否显示CURD子操作栏 (默认true)
crud: {
add: true,
edit: false,
delete: false,
derive: false,
search: false,
refresh: true
},
operateShow: true, //是否为表格添加操作栏(默认true)
operateTitle: '', //操作栏标题(默认为"")
operateFixed: false, //操作栏是否固定(默认false)

+ 18
- 11
src/crud/index.vue View File

@@ -8,13 +8,13 @@
</search-operation>
</div>
<!-- CRUD组件 -->
<crud-operation v-if="tableFrom.crudShow" style="margin-bottom: 10px;" @toAdd="toAdd" @toEdit="toEdit" @toDelete="toDelete"
@toRefresh="toRefresh" @toSearch="toSearch" :DEdit="EStart" :DDelete="DStart" :SSearch="SSearch"
:child="tableFrom.crudChildShow">
<crud-operation v-if="tableFrom.crudShow" style="margin-bottom: 10px;" @toAdd="toAdd" @toEdit="toEdit"
@toDelete="toDelete" @toRefresh="toRefresh" @toSearch="toSearch" :DEdit="EStart" :DDelete="DStart"
:SSearch="SSearch" :processData="processData" :child="tableFrom.crudChildShow">
</crud-operation>
<!-- 表单组件 -->
<el-table ref="multipleTableRef" :data="testData" @selection-change="handleSelectionChange"
style="width: 100%; margin: 0 0 0 0" :border="tableFrom.border" :row-key="tableFrom.rowKey">
<el-table ref="multipleTableRef" :size="tableFrom.tabSize" :data="testData" @selection-change="handleSelectionChange"
style="width: 100%;" :border="tableFrom.border" :row-key="tableFrom.rowKey">
<!-- 表头拓展 -->
<el-table-column v-for="(item, index) in tableFrom.extend" :key="index" :type="item.type"
:width="item.width" :label="item.label" />
@@ -40,7 +40,8 @@
<!-- 分页组件 -->
<el-pagination v-if="false" :page-size="20" :pager-count="11" layout="prev, pager, next" :total="1000" />
<!-- 对话框 -->
<el-dialog v-model="dialogFormVisible" :title="tableFrom.titleDialog ? tableFrom.titleDialog : `${title}`">
<el-dialog v-model="dialogFormVisible" width="40%"
:title="tableFrom.titleDialog ? tableFrom.titleDialog : `${title}`">
<!-- 是否自定义Dialog -->
<div v-if="tableFrom.dialogCustom">
<slot name="dialog" :form="form" />
@@ -75,7 +76,7 @@

<template #footer>
<span v-if="!tableFrom.dialogFooter">
<el-button @click="cancel">取消</el-button>
<el-button type="default" @click="cancel">取消</el-button>
<el-button type="primary" @click="affirm(ruleFormRef)">提交</el-button>
</span>
<slot name="footer" />
@@ -240,6 +241,7 @@ const handleSelectionChange = (val: any) => {
//表单提交
const affirm = (formEl: any) => {
if (!formEl) {
emit('submit')
return
}
formEl.validate((valid: any, fields: any) => {
@@ -250,16 +252,20 @@ const affirm = (formEl: any) => {
} else {
testData.value.push(form.value)
}
emit('search', form.value)
index = -1 //重置标识
dialogFormVisible.value = false
multipleTableRef.value.clearSelection() //清空多选
emit('submit', toRaw(form.value))
reset()
} else {
return false
}
})
}

function reset() {
index = -1 //重置标识
dialogFormVisible.value = false
multipleTableRef.value.clearSelection() //清空多选
}

//取消
const cancel = () => {
dialogFormVisible.value = false
@@ -287,6 +293,7 @@ const handleDelete = (idx: any, row: any) => {
defineExpose({
dialogFormVisible,
title,
reset
})
</script>
<style lang="scss">

+ 7
- 2
src/data/menuData.ts View File

@@ -130,10 +130,15 @@ export const list = [
title: '系统管理',
icon: 'Notification',
children: [{
title: '菜单模块',
title: '菜单管理',
path: 'menu',
icon: 'User',
children: []
},{
title: '部门管理',
path: 'department',
icon: 'HomeFilled',
children: []
}]
}
}
];

+ 2
- 2
src/layout/components/Head.vue View File

@@ -19,11 +19,11 @@
<!-- 弹出框提示 -->
<el-popover v-model:visible="visible" placement="bottom" :width="160">
<div class="as-layout-vertical">
<el-button type="text" @click="hint('个人中心')" class="as-text-14px" style="width: 100%"
<el-button type="default" @click="hint('个人中心')" class="as-text-14px" style="width: 100%"
>个人中心</el-button
>
<el-button
type="text"
type="default"
@click="hint('退出登录')"
class="as-text-14px"
style="margin-right: 10px"

+ 9
- 1
src/router/index.ts View File

@@ -21,10 +21,18 @@ const routes: RouteRecordRaw[] = [
key: () => import('@/views/system/home/Home.vue'),
},
},
{
path: '/views/system/department',
name: 'department',
meta: { title: '部门管理', isAuth: true }, //用户自定内容
components: {
key: () => import('@/views/system/department/department.vue'),
},
},
{
path: '/views/system/menu',
name: 'menu',
meta: { title: '菜单模块', isAuth: true }, //用户自定内容
meta: { title: '菜单管理', isAuth: true }, //用户自定内容
components: {
key: () => import('@/views/system/menu/index.vue'),
},

+ 15
- 3
src/utils/offLineData.ts View File

@@ -8,7 +8,11 @@ import Cookies from 'js-cookie'
*/
export function add(key: string, value: any) {
let array: any = JSON.parse(Cookies.get(key) ? Cookies.get(key) + '' : '[]')
array.push(value)
if (array.length === 0) {
array = value
} else {
array.push(value)
}
Cookies.set(key, JSON.stringify(array))
}

@@ -16,8 +20,8 @@ export function add(key: string, value: any) {
* 获取
* @param key
*/
export function get(key: string) {
return JSON.parse(Cookies.get(key) + '')
export function get(key: string) {
return Cookies.get(key) ? JSON.parse(Cookies.get(key) + '') : []
}

/**
@@ -36,4 +40,12 @@ function remove(key: string, value: any) {
*/
function update(key: string, value: any) {

}

/**
* 清空
* @param key
*/
export function empty(key: string) {
Cookies.remove(key)
}

+ 22
- 20
src/views/fancongcong/advancepaymentaccount/advancepaymentaccount.vue View File

@@ -49,21 +49,24 @@
<el-table-column prop="snippet" label="摘要" width="200px" />
<el-table-column label="操作" class="table_btn" width="500px" align="center">
<template v-slot="scope">
<el-tooltip content="拒绝" placement="top">
<el-tooltip content="拒绝" placement="top" v-if="scope.row.status == null">
<el-button type="warning" @click="опровергать(scope.row)">拒绝</el-button>
</el-tooltip>
<el-tooltip content="同意" placement="top">
<el-tooltip content="同意" placement="top" v-if="scope.row.status == null">
<el-button type="warning" @click="agree(scope.row)">同意</el-button>
</el-tooltip>
<el-tooltip content="请输入对公账号" placement="top">
<el-tooltip content="请输入对公账号" placement="top" v-if="scope.row.status == null">
<el-button type="warning" @click="opendialo">请输入对公账号</el-button>
</el-tooltip>
<el-tooltip :content="filterType(scope.row.status)" placement="top" v-if="scope.row.status != null">
<el-button type="primary" @click="opendialo" disabled>{{filterType(scope.row.status)}}</el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<div class="page_box">
<el-pagination :page-size="20" :pager-count="11" layout="prev, pager, next" :total="pageCount"
@current-change="pagechange" />
v-model="pageNo"/>
</div>
<el-dialog v-model="dialogFormVisible" :title="title">
<el-form :model="form">
@@ -148,7 +151,7 @@ let dialogFormVisibles = ref(false)
let pageCount = ref(0) //总页数
let formLabelWidth = '140px'
let form = reactive({
phone: '13078580843', //手机号
phone: '', //手机号
region: '', //验证码
delivery: false, //是否展示详细
number: '', //对公账户资金账户编号
@@ -230,7 +233,7 @@ const tableData = ref([
//事件
//同意申请
const agree = (row) => {
console.log(row.id)
console.log("id",row.id)
dialogFormVisible.value = false;
ElMessageBox.confirm('确定通过这个申请?', '警告', {
confirmButtonText: '确定',
@@ -286,9 +289,9 @@ const опровергать = (row) => {
}
//驳回申请原因
const getMsg = () => {
proxy.$request.post('/advancepayment/confirm', {
proxy.$request.post('reason', {
id: form.data_id,
message: form.data_msg,
reason: form.data_msg,
value: 1
}, {
//baseURL: 'http://localhost:8089',
@@ -324,10 +327,10 @@ const grabble = () => {
proxy.$request
.post('/advancepayment/queryPage',data,{})
.then((res) => {
console.log(res, form.data_id, form.value)
if (res.data.success) {
tableData.value = res.data.result
console.log('res', tableData)
//console.log(res.data,data)
if (res.data.code == 200) {
tableData.value = res.data.data.result
//console.log('res', tableData)
pageCount.value = res.data.pageCount
}
})
@@ -364,6 +367,9 @@ const account = () => {
accountId: form.phone,
//baseURL: 'http://localhost:8089'
}
console.log(data)
return

proxy.$request.post('/advancepayment/account', data,{}).then((res) => {
console.log(res, form.data_id, form.value)
if (res.data.success) {
@@ -383,16 +389,12 @@ const opendialo = (row) => {

//过滤状态
const filterType = (type: Number) => {
if (type == -1) {
return '拒绝'
} else if (type == 0) {
return '待审核'
} else if (type == 1) {
return '密码已修改'
if (type == 1) {
return '审核通过'
} else if (type == 2) {
return '已通过'
return '已驳回'
} else {
return '其他'
return '未审核'
}
}


+ 3
- 3
src/views/fancongcong/corporateaccountManage/corporateaccountManage.vue View File

@@ -71,7 +71,7 @@

<div class="page_box">
<el-pagination :page-size="20" :pager-count="11" layout="prev, pager, next" :total="pageCount"
@current-change="pagechange" />
v-model="pageNo"/>
</div>

<el-dialog v-model="dialogFormVisible" :title="title" :show-close="false">
@@ -186,9 +186,9 @@
//导入模块
import { Search } from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { reactive, ref, getCurrentInstance, onMounted } from 'vue'
import { reactive, ref, getCurrentInstance, onMounted,watch } from 'vue'
import { account } from "@/views/fancongcong/publicJs/account"
console.log(account)
//console.log(account)

//变量定义
let form: any = ref({

+ 165
- 0
src/views/system/department/department.vue View File

@@ -0,0 +1,165 @@
<template>
<crud-template ref="crud" :home-data="field" :tableData="testData" @submit="submit" @handleEdit="handleEdit">
<template #dialog>
<el-form :inline="false" ref="ruleFormRef" :rules="rules" :model="item">

<el-form-item class="as-bold" :label-width="labelWidth" label="名称" prop="title">
<div style="width: 100%">
<el-input v-model="item.title" placeholder="请输入部门名称"></el-input>
</div>
</el-form-item>

<el-form-item class="as-bold" :label-width="labelWidth" label="排序">
<!-- 简单解决sort类型问题 -->
<div v-show="false">
{{ item.sort = Number(item.sort) }}
</div>
<el-input-number class="el-input-number" v-model="item.sort" style="width: 100%;"
controls-position="right">
</el-input-number>
</el-form-item>

<div class="as-layout-horizontal">
<el-form-item class="as-weight as-bold" :label-width="labelWidth" label="顶级部门">
<el-radio-group v-model="item.top">
<el-radio label="是" />
<el-radio label="否" />
</el-radio-group>
</el-form-item>

<el-form-item class="as-weight as-bold" :label-width="labelWidth" label="状态">
<el-radio-group v-model="item.start">
<el-radio label="启用" />
<el-radio label="禁用" />
</el-radio-group>
</el-form-item>
</div>

<el-form-item v-show="item.top === '否'" class="as-bold" :label-width="labelWidth" label="上级部门">
<el-tree-select v-model="item.section" :data="threeData" />
</el-form-item>

</el-form>
</template>
</crud-template>
</template>
<!-- 部门管理模块 -->
<script lang="ts" setup>
// @ts-ignore crudFrom模板
import CrudTemplate from "@/crud/index.vue"
import { add, get, empty } from "@/utils/offLineData"
import { reactive, ref, toRaw } from 'vue'

const labelWidth = '80px'
const initData = [
{
title: '黔通智联',
sort: 1,
start: '启用',
top: '是',
children: [{
title: '部门一',
start: '启用',
top: '否',
sort: 2,
children: []
}]
},
{
title: '世纪恒通',
sort: 3,
start: '启用',
top: '是',
children: [{
title: '部门二',
start: '启用',
top: '否',
sort: 4
}]
}]

const threeData = [
{
value: '黔通智联',
label: '黔通智联',
children: [
{
value: '部门一',
label: '部门一',
children: [],
},
],
}, {
value: '世纪恒通',
label: '世纪恒通',
children: [
{
value: '部门二',
label: '部门二',
children: [],
},
],
},
]

let item = ref({
title: '',
sort: 0,
top: '是',
start: '启用',
section: ''
})

//编辑事件
const handleEdit = (idx: any, row: any) => {
console.log(row);

item.value = toRaw(row)
}

//表单校验
const ruleFormRef: any = ref()
const crud: any = ref()
const rules = reactive({ title: [{ required: true, message: '请输入部门名称', trigger: 'blur' }] })

empty('department')
if (get('department').length === 0) {
add('department', initData)
}
const testData: any = get('department')

const field = {
rowKey: 'title',
searchShow: false,
crudShow: true,
dialogCustom: true,
field: [{
prop: 'title',
label: '名称',
}, {
prop: 'sort',
label: '排序',
}, {
prop: 'start',
label: '状态',
}]
}

const submit = () => {
ruleFormRef.value.validate((valid: any, fields: any) => {
if (valid) {
console.log(item, ruleFormRef);
crud.value.reset()
} else {
return false
}
})
}

</script>
<style scoped>
/*数字文本框文本对齐方式 */
/deep/ .el-input-number .el-input__inner {
text-align: left;
}
</style>

+ 166
- 27
src/views/system/home/Home.vue View File

@@ -1,47 +1,186 @@
<template>
<crud-template :home-data="field" :tableData="testData">
</crud-template>
<div class="as-layout-horizontal">
<div style="width:200px;padding:0 8px 0 8px">
<el-input :prefix-icon="Search" clearable placeholder="输入部门名称搜索" style="width: 200px;margin-bottom: 10px;" />
<el-tree :data="threeData" @node-click="handleNodeClick" />
</div>
<crud-template class="as-weight" ref="crud" :home-data="field" :tableData="testData" @submit="submit"
@handleEdit="handleEdit">
<template #search="{ searchCondition }">
<el-input v-model="searchCondition.fileTwo" clearable placeholder="输入名称或邮箱名称" style="width: 200px;" />
<div>
<el-date-picker class="el-range-editor" v-model="searchCondition.fileOne" type="daterange" range-separator=":"
start-placeholder="开始日期" end-placeholder="结束日期" style="margin: 0 10px 0 10px;" />
</div>
<el-select v-model="searchCondition.fileThree" placeholder="状态" style="width: 80px;margin-right: 10px;">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>

</template>
</crud-template>
</div>
</template>
<script lang="ts" setup>
// @ts-ignore crudFrom模板
import CrudTemplate from "@/crud/index.vue"
import { add, get, empty } from "@/utils/offLineData"
import { reactive, ref, toRaw } from 'vue'
import { Search } from '@element-plus/icons-vue'

const testData: any = [
const labelWidth = '80px'
const topStart = ref(false)
const initData = [
{
title: '黔通智联',
sort: '1',
name: 'test',
nickname: '测试',
sex: '男',
phone: '18888888889',
email: 'test@el-admin.vip',
department: '研发部',
start: '启用',
children: [{
title: '部门一',
start: '启用',
sort: '2'
}]
creationDate: '2020-05-05 11:15:49'
},
{
title: '世纪恒通',
sort: '3',
start: '启用',
children: [{
title: '部门二',
start: '启用',
sort: '4'
}]
}
name: 'admin',
nickname: '管理员',
sex: '男',
phone: '18888888888',
email: 'test@el-admin.vip',
department: '研发部',
start: '禁用',
creationDate: '2018-05-05 11:15:49'
}]

//树数据
const threeData = [
{
value: '黔通智联',
label: '黔通智联',
children: [
{
value: '部门一',
label: '部门一',
children: [],
},
],
}, {
value: '世纪恒通',
label: '世纪恒通',
children: [
{
value: '部门二',
label: '部门二',
children: [],
},
],
},
]

//表单数据
let item = ref({
title: '',
sort: 0,
top: '是',
start: '启用',
section: ''
})

const options = [{
value: 'Option1',
label: '启用',
},
{
value: 'Option2',
label: '禁用',
}]

//树形事件
const handleNodeClick = (event: any) => {
console.log(event);
}

//编辑事件
const handleEdit = (idx: any, row: any) => {
item.value = toRaw(row)
}

//表单校验
const ruleFormRef: any = ref()
const crud: any = ref()
const rules = reactive({ title: [{ required: true, message: '请输入部门名称', trigger: 'blur' }] })

empty('department')
if (get('department').length === 0) {
add('department', initData)
}
const testData: any = get('department')

const field = {
rowKey: 'title',
searchShow: false,
crudShow: false,
searchShow: true,
tabSize: 'small',
dialogCustom: false,
operateWidth: '150', //操作栏宽度
field: [{
prop: 'title',
label: '名称',
prop: 'name',
label: '用户名称',
form: {
type: 'input'
}
}, {
prop: 'nickname',
label: '昵称',
form: {
type: 'input'
}
}, {
prop: 'sex',
label: '性别',
}, {
prop: 'phone',
label: '电话',
form: {
type: 'input',
itemType: 'phone'
}
}, {
prop: 'sort',
label: '排序',
prop: 'email',
label: '邮箱',
form: {
type: 'input'
}
}, {
prop: 'department',
label: '部门',
}, {
prop: 'start',
label: '状态',
}, {
prop: 'creationDate',
label: '创建日期',
form: {
type: 'date'
}
}]
}
</script>

const submit = () => {
ruleFormRef.value.validate((valid: any, fields: any) => {
if (valid) {
console.log(item, ruleFormRef);
crud.value.reset()
} else {
return false
}
})
}

</script>
<style scoped>
/deep/.el-range-editor.el-input__inner {
display: inline-flex;
align-items: center;
padding: 3px 10px;
height: 33px;
width: 300px;
}
</style>

+ 66
- 52
yarn.lock View File

@@ -36,10 +36,10 @@
"@babel/helper-validator-identifier" "^7.15.7"
"to-fast-properties" "^2.0.0"

"@ctrl/tinycolor@^3.4.0":
"integrity" "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ=="
"resolved" "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz"
"version" "3.4.0"
"@ctrl/tinycolor@^3.4.1":
"integrity" "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw=="
"resolved" "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz"
"version" "3.4.1"

"@element-plus/icons-vue@^1.1.4":
"integrity" "sha512-Iz/nHqdp1sFPmdzRwHkEQQA3lKvoObk8azgABZ81QUOpW9s/lUyQVUSh0tNtEPZXQlKwlSh7SPgoVxzrE0uuVQ=="
@@ -76,17 +76,17 @@
"minimatch" "^3.0.4"
"strip-json-comments" "^3.1.1"

"@floating-ui/core@^0.6.1":
"integrity" "sha512-Y30eVMcZva8o84c0HcXAtDO4BEzPJMvF6+B7x7urL2xbAqVsGJhojOyHLaoQHQYjb6OkqRq5kO+zeySycQwKqg=="
"resolved" "https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.1.tgz"
"version" "0.6.1"
"@floating-ui/core@^0.6.2":
"integrity" "sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg=="
"resolved" "https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.2.tgz"
"version" "0.6.2"

"@floating-ui/dom@^0.4.1":
"integrity" "sha512-2/4vOhMAujkMmGqGX1Gut84phe5MNfk1kGeM+RSTJCpeR0SWR2/RR+/f1r1msOvTQa28wn7HEhxGe71CjYY/vw=="
"resolved" "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.2.tgz"
"version" "0.4.2"
"@floating-ui/dom@^0.4.5":
"integrity" "sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw=="
"resolved" "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.5.tgz"
"version" "0.4.5"
dependencies:
"@floating-ui/core" "^0.6.1"
"@floating-ui/core" "^0.6.2"

"@humanwhocodes/config-array@^0.5.0":
"integrity" "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk="
@@ -132,10 +132,10 @@
"@nodelib/fs.scandir" "2.1.5"
"fastq" "^1.6.0"

"@popperjs/core@^2.11.4":
"integrity" "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg=="
"resolved" "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.4.tgz"
"version" "2.11.4"
"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.6":
"integrity" "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
"resolved" "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz"
"version" "2.11.7"

"@rollup/pluginutils@^4.1.0":
"integrity" "sha1-HU2obdTt7RVlalfZM/2iuaCNR+w="
@@ -155,6 +155,18 @@
"resolved" "https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1637266073261&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz"
"version" "7.0.9"

"@types/lodash-es@*", "@types/lodash-es@^4.17.6":
"integrity" "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg=="
"resolved" "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz"
"version" "4.17.6"
dependencies:
"@types/lodash" "*"

"@types/lodash@*", "@types/lodash@^4.14.182":
"integrity" "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q=="
"resolved" "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz"
"version" "4.14.182"

"@typescript-eslint/eslint-plugin@^5.4.0":
"integrity" "sha512-9/yPSBlwzsetCsGEn9j24D8vGQgJkOTr4oMLas/w886ZtzKIs1iyoqFrwsX2fqYEeUwsdBpC21gcjRGo57u0eg=="
"resolved" "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-5.4.0.tgz"
@@ -325,24 +337,24 @@
"resolved" "https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.22.tgz?cache=0&sync_timestamp=1636948014607&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Fshared%2Fdownload%2F%40vue%2Fshared-3.2.22.tgz"
"version" "3.2.22"

"@vueuse/core@^8.1.2":
"integrity" "sha512-89ZfKtFHz5ynfpWyFVXtK0yePJ2MZqFaOxnGeZn7cIp8KFbPRlu6Wsxi3gBkJNpjq+q9qbEh6MjV7QBvqCQ5Og=="
"resolved" "https://registry.npmmirror.com/@vueuse/core/-/core-8.2.0.tgz"
"version" "8.2.0"
"@vueuse/core@^8.2.6":
"integrity" "sha512-VEJ6sGNsPlUp0o9BGda2YISvDZbhWJSOJu5zlp2TufRGVrLcYUKr31jyFEOj6RXzG3k/H4aCYeZyjpItfU8glw=="
"resolved" "https://registry.npmmirror.com/@vueuse/core/-/core-8.5.0.tgz"
"version" "8.5.0"
dependencies:
"@vueuse/metadata" "8.2.0"
"@vueuse/shared" "8.2.0"
"@vueuse/metadata" "8.5.0"
"@vueuse/shared" "8.5.0"
"vue-demi" "*"

"@vueuse/metadata@8.2.0":
"integrity" "sha512-cbaezEccNuxQC+OiudG9VjZNg9/RbAAHkyuhC6+8Gsgsc+MvDhfn1NrV6NNTaldLlZgJFgUiYOkrf3JGTTTGXQ=="
"resolved" "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.2.0.tgz"
"version" "8.2.0"
"@vueuse/metadata@8.5.0":
"integrity" "sha512-WxsD+Cd+bn+HcjpY6Dl9FJ8ywTRTT9pTwk3bCQpzEhXVYAyNczKDSahk50fCfIJKeWHhyI4B2+/ZEOxQAkUr0g=="
"resolved" "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.5.0.tgz"
"version" "8.5.0"

"@vueuse/shared@8.2.0":
"integrity" "sha512-dTw7EJZgZCgG9DoVAiz4LtmKnIFXuE/idUFzvqRAJLjbPiVJc+qQH5kDUdKHI3W1U9t//1mdasQEKONArburiQ=="
"resolved" "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.2.0.tgz"
"version" "8.2.0"
"@vueuse/shared@8.5.0":
"integrity" "sha512-qKG+SZb44VvGD4dU5cQ63z4JE2Yk39hQUecR0a9sEdJA01cx+XrxAvFKJfPooxwoiqalAVw/ktWK6xbyc/jS3g=="
"resolved" "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.5.0.tgz"
"version" "8.5.0"
dependencies:
"vue-demi" "*"

@@ -441,9 +453,9 @@
"version" "2.0.0"

"async-validator@^4.0.7":
"integrity" "sha512-Pj2IR7u8hmUEDOwB++su6baaRi+QvsgajuFB9j95foM1N2gy5HM4z60hfusIO0fBPG5uLAEl6yCJr1jNSVugEQ=="
"resolved" "https://registry.npmmirror.com/async-validator/-/async-validator-4.0.7.tgz"
"version" "4.0.7"
"integrity" "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA=="
"resolved" "https://registry.npmmirror.com/async-validator/-/async-validator-4.1.1.tgz"
"version" "4.1.1"

"asynckit@^0.4.0":
"integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
@@ -705,10 +717,10 @@
dependencies:
"chokidar" ">=2.0.0 <4.0.0"

"dayjs@^1.11.0":
"integrity" "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug=="
"resolved" "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.0.tgz"
"version" "1.11.0"
"dayjs@^1.11.1":
"integrity" "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw=="
"resolved" "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.2.tgz"
"version" "1.11.2"

"debug@^3.2.6":
"integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="
@@ -765,24 +777,26 @@
"resolved" "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.100.tgz"
"version" "1.4.100"

"element-plus@^2.1.7":
"integrity" "sha512-jamE9F/a2rfAQJwf3kLaDfWXxhjXuAJAvrto76SLJsJfr3iIUAzC849RHdn6h7tNJy9Yanq8GlQAsdBe5lJmrA=="
"resolved" "https://registry.npmmirror.com/element-plus/-/element-plus-2.1.7.tgz"
"version" "2.1.7"
"element-plus@^2.2.0":
"integrity" "sha512-zxmAFEAa1T/n09rR+NozXcWl5CjaFtqoaxhFSafag0dgc90tgEHitDXfegdFAl4ahugdNTqu9aLzngx3VhDAtA=="
"resolved" "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.0.tgz"
"version" "2.2.0"
dependencies:
"@ctrl/tinycolor" "^3.4.0"
"@ctrl/tinycolor" "^3.4.1"
"@element-plus/icons-vue" "^1.1.4"
"@floating-ui/dom" "^0.4.1"
"@popperjs/core" "^2.11.4"
"@vueuse/core" "^8.1.2"
"@floating-ui/dom" "^0.4.5"
"@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.6"
"@types/lodash" "^4.14.182"
"@types/lodash-es" "^4.17.6"
"@vueuse/core" "^8.2.6"
"async-validator" "^4.0.7"
"dayjs" "^1.11.0"
"dayjs" "^1.11.1"
"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"
"normalize-wheel-es" "^1.1.2"

"emoji-regex@^8.0.0":
"integrity" "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc="
@@ -1649,7 +1663,7 @@
"resolved" "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz"
"version" "0.1.2"

"normalize-wheel-es@^1.1.1":
"normalize-wheel-es@^1.1.2":
"integrity" "sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png=="
"resolved" "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz"
"version" "1.1.2"
@@ -2168,9 +2182,9 @@
"vue-loader" "^16.0.0-alpha.3"

"vue-demi@*":
"integrity" "sha512-ztPDkFt0TSUdoq1ZI6oD730vgztBkiByhUW7L1cOTebiSBqSYfSQgnhYakYigBkyAybqCTH7h44yZuDJf2xILQ=="
"resolved" "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.4.tgz"
"version" "0.12.4"
"integrity" "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q=="
"resolved" "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz"
"version" "0.12.5"

"vue-eslint-parser@^8.0.1":
"integrity" "sha1-JeCLIKQUVRUx8+GfmZkC4ez0XxM="

Loading…
Cancel
Save