提交 79724b62 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 2502a080
......@@ -108,6 +108,7 @@
"useAttrs": true,
"useBase64": true,
"useBattery": true,
"useBluetooth": true,
"useBreakpoints": true,
"useBroadcastChannel": true,
"useBrowserLocation": true,
......@@ -154,6 +155,7 @@
"useGamepad": true,
"useGeolocation": true,
"useIdle": true,
"useImage": true,
"useInfiniteScroll": true,
"useIntersectionObserver": true,
"useInterval": true,
......
......@@ -109,6 +109,7 @@ declare global {
const useAttrs: typeof import('vue')['useAttrs']
const useBase64: typeof import('@vueuse/core')['useBase64']
const useBattery: typeof import('@vueuse/core')['useBattery']
const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
......@@ -155,6 +156,7 @@ declare global {
const useGamepad: typeof import('@vueuse/core')['useGamepad']
const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
const useIdle: typeof import('@vueuse/core')['useIdle']
const useImage: typeof import('@vueuse/core')['useImage']
const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
const useInterval: typeof import('@vueuse/core')['useInterval']
......
......@@ -10,11 +10,12 @@
"dependencies": {
"@tinymce/tinymce-vue": "^5.0.0",
"@vant/area-data": "^1.3.1",
"@vueuse/head": "^0.7.6",
"axios": "^0.27.2",
"blueimp-md5": "^2.19.0",
"countup.js": "^2.2.0",
"dayjs": "^1.11.3",
"element-plus": "^2.2.5",
"element-plus": "^2.2.6",
"pinia": "^2.0.14",
"qs": "^6.10.5",
"vue": "^3.2.37",
......@@ -32,9 +33,9 @@
"chalk": "^5.0.1",
"eslint": "^8.17.0",
"eslint-plugin-vue": "^9.1.1",
"sass": "^1.52.3",
"sass": "^1.53.0",
"typescript": "~4.7.3",
"unplugin-auto-import": "^0.8.8",
"unplugin-auto-import": "^0.9.0",
"vite": "^2.9.12",
"vite-plugin-checker": "^0.4.6",
"vue-tsc": "^0.37.9"
......@@ -356,6 +357,11 @@
"integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
"dev": true
},
"node_modules/@types/web-bluetooth": {
"version": "0.0.14",
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz",
"integrity": "sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A=="
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.28.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz",
......@@ -745,12 +751,13 @@
}
},
"node_modules/@vueuse/core": {
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-8.6.0.tgz",
"integrity": "sha512-VirzExCm/N+QdrEWT7J4uSrvJ5hquKIAU9alQ37kUvIJk9XxCLxmfRnmekYc1kz2+6BnoyuKYXVmrMV351CB4w==",
"version": "8.7.5",
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-8.7.5.tgz",
"integrity": "sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==",
"dependencies": {
"@vueuse/metadata": "8.6.0",
"@vueuse/shared": "8.6.0",
"@types/web-bluetooth": "^0.0.14",
"@vueuse/metadata": "8.7.5",
"@vueuse/shared": "8.7.5",
"vue-demi": "*"
},
"funding": {
......@@ -770,9 +777,9 @@
}
},
"node_modules/@vueuse/core/node_modules/@vueuse/shared": {
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-8.6.0.tgz",
"integrity": "sha512-Y/IVywZo7IfEoSSEtCYpkVEmPV7pU35mEIxV7PbD/D3ly18B3mEsBaPbtDkNM/QP3zAZ5mn4nEkOfddX4uwuIA==",
"version": "8.7.5",
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-8.7.5.tgz",
"integrity": "sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw==",
"dependencies": {
"vue-demi": "*"
},
......@@ -817,10 +824,18 @@
}
}
},
"node_modules/@vueuse/head": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/@vueuse/head/-/head-0.7.6.tgz",
"integrity": "sha512-cOWqCkT3WiF5oEpw+VVEWUJd9RLD5rc7DmnFp3cePsejp+t7686uKD9Z9ZU7Twb7R/BI8iexKTmXo9D/F3v6UA==",
"peerDependencies": {
"vue": ">=3"
}
},
"node_modules/@vueuse/metadata": {
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-8.6.0.tgz",
"integrity": "sha512-F+CKPvaExsm7QgRr8y+ZNJFwXasn89rs5wth/HeX9lJ1q8XEt+HJ16Q5Sxh4rfG5YSKXrStveVge8TKvPjMjFA==",
"version": "8.7.5",
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-8.7.5.tgz",
"integrity": "sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg==",
"funding": {
"url": "https://github.com/sponsors/antfu"
}
......@@ -1473,13 +1488,13 @@
"dev": true
},
"node_modules/element-plus": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.5.tgz",
"integrity": "sha512-Kl0yn/PQca5YQo3M3NPBP4Xl71NQuMtDx5zNXZGVyl5FjdMujXiFB9SXKYGDUCgFU3d/Rl14vB4Fpmcl2Iz+Hw==",
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.6.tgz",
"integrity": "sha512-N9G4yWSxDt1YtreCJgt7UaSsXKuR4Fzb3ThzlBjbGDYDhcHijsrLL3qkdLZgeoSB13LRyr9pgP1ljNXdaYGa+g==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.0.5",
"@floating-ui/dom": "^0.5.2",
"@floating-ui/dom": "^0.5.3",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
......@@ -3073,9 +3088,9 @@
}
},
"node_modules/mlly": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-0.5.2.tgz",
"integrity": "sha512-4GTELSSErv6ZZJYU98fZNuIBJcXSz+ktHdRrCYEqU1m6ZlebOCG0jwZ+IEd9vOrbpYsVBBMC5OTrEyLnKRcauQ==",
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-0.5.3.tgz",
"integrity": "sha512-im69tuLD9EJh9fc9TZRpJEFvsBcGMez7glUCWDcHWWCKzhvPmNvyaYjp/+h0qJJN/Xovrs//GzGjOOKmFw4Gog==",
"dev": true,
"dependencies": {
"pathe": "^0.2.0",
......@@ -3433,28 +3448,16 @@
}
},
"node_modules/pkg-types": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-0.3.2.tgz",
"integrity": "sha512-eBYzX/7NYsQEOR2alWY4rnQB49G62oHzFpoi9Som56aUr8vB8UGcmcIia9v8fpBeuhH3Ltentuk2OGpp4IQV3Q==",
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-0.3.3.tgz",
"integrity": "sha512-6AJcCMnjUQPQv/Wk960w0TOmjhdjbeaQJoSKWRQv9N3rgkessCu6J0Ydsog/nw1MbpnxHuPzYbfOn2KmlZO1FA==",
"dev": true,
"dependencies": {
"jsonc-parser": "^3.0.0",
"mlly": "^0.3.6",
"pathe": "^0.2.0"
"mlly": "^0.5.3",
"pathe": "^0.3.0"
}
},
"node_modules/pkg-types/node_modules/mlly": {
"version": "0.3.19",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-0.3.19.tgz",
"integrity": "sha512-zMq5n3cOf4fOzA4WoeulxagbAgMChdev3MgP6K51k7M0u2whTXxupfIY4VVzws4vxkiWhwH1rVQcsw7zDGfRhA==",
"dev": true
},
"node_modules/pkg-types/node_modules/pathe": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz",
"integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==",
"dev": true
},
"node_modules/platform": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
......@@ -3761,9 +3764,9 @@
"dev": true
},
"node_modules/sass": {
"version": "1.52.3",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.52.3.tgz",
"integrity": "sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==",
"version": "1.53.0",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz",
"integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
......@@ -4163,9 +4166,9 @@
}
},
"node_modules/unimport": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/unimport/-/unimport-0.2.9.tgz",
"integrity": "sha512-5SLmZZL2rwaNOQa/yTGaG0QI0meRhb6MDdIlS9s1uHPSYO6Gfzr7ugl5Rf35/CJioW6wYiNJsN9dru5JMzaD8w==",
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/unimport/-/unimport-0.3.0.tgz",
"integrity": "sha512-RxvfvKBY+CyBmIuYSuBeosSiudgcVakdhVofy5mO5sJ3purQRc5yjLw0Lir7MKHnqe6XT1++8flgAvpxu1UkqQ==",
"dev": true,
"dependencies": {
"@rollup/pluginutils": "^4.2.1",
......@@ -4173,7 +4176,7 @@
"fast-glob": "^3.2.11",
"local-pkg": "^0.4.1",
"magic-string": "^0.26.2",
"mlly": "^0.5.2",
"mlly": "^0.5.3",
"pathe": "^0.3.0",
"scule": "^0.2.1",
"strip-literal": "^0.4.0",
......@@ -4255,16 +4258,16 @@
}
},
"node_modules/unplugin-auto-import": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.8.8.tgz",
"integrity": "sha512-cVZ79zMR1v4VCZ9emFTUnltmazCc2B4hObyVrxJdlgJ2sK8qub6JfjFt38rCF6MVEddkHiWCU6wZR1qbdqe+ig==",
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.9.0.tgz",
"integrity": "sha512-6h32xuwfpXQwXN9lAZtEDbb8rNGdBn/zg/H8HoXHtnm63t67zL2NDLxb0S3rJugKrQdhHhxaLgckN3gB36TnXw==",
"dev": true,
"dependencies": {
"@antfu/utils": "^0.5.2",
"@rollup/pluginutils": "^4.2.1",
"local-pkg": "^0.4.1",
"magic-string": "^0.26.2",
"unimport": "^0.2.7",
"unimport": "^0.3.0",
"unplugin": "^0.7.0"
},
"engines": {
......@@ -4649,9 +4652,9 @@
}
},
"node_modules/webpack-virtual-modules": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz",
"integrity": "sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==",
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz",
"integrity": "sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==",
"dev": true
},
"node_modules/which": {
......@@ -5013,6 +5016,11 @@
"integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
"dev": true
},
"@types/web-bluetooth": {
"version": "0.0.14",
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz",
"integrity": "sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A=="
},
"@typescript-eslint/eslint-plugin": {
"version": "5.28.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz",
......@@ -5284,19 +5292,20 @@
"requires": {}
},
"@vueuse/core": {
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-8.6.0.tgz",
"integrity": "sha512-VirzExCm/N+QdrEWT7J4uSrvJ5hquKIAU9alQ37kUvIJk9XxCLxmfRnmekYc1kz2+6BnoyuKYXVmrMV351CB4w==",
"version": "8.7.5",
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-8.7.5.tgz",
"integrity": "sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==",
"requires": {
"@vueuse/metadata": "8.6.0",
"@vueuse/shared": "8.6.0",
"@types/web-bluetooth": "^0.0.14",
"@vueuse/metadata": "8.7.5",
"@vueuse/shared": "8.7.5",
"vue-demi": "*"
},
"dependencies": {
"@vueuse/shared": {
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-8.6.0.tgz",
"integrity": "sha512-Y/IVywZo7IfEoSSEtCYpkVEmPV7pU35mEIxV7PbD/D3ly18B3mEsBaPbtDkNM/QP3zAZ5mn4nEkOfddX4uwuIA==",
"version": "8.7.5",
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-8.7.5.tgz",
"integrity": "sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw==",
"requires": {
"vue-demi": "*"
}
......@@ -5309,10 +5318,16 @@
}
}
},
"@vueuse/head": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/@vueuse/head/-/head-0.7.6.tgz",
"integrity": "sha512-cOWqCkT3WiF5oEpw+VVEWUJd9RLD5rc7DmnFp3cePsejp+t7686uKD9Z9ZU7Twb7R/BI8iexKTmXo9D/F3v6UA==",
"requires": {}
},
"@vueuse/metadata": {
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-8.6.0.tgz",
"integrity": "sha512-F+CKPvaExsm7QgRr8y+ZNJFwXasn89rs5wth/HeX9lJ1q8XEt+HJ16Q5Sxh4rfG5YSKXrStveVge8TKvPjMjFA=="
"version": "8.7.5",
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-8.7.5.tgz",
"integrity": "sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg=="
},
"acorn": {
"version": "8.7.1",
......@@ -5817,13 +5832,13 @@
"dev": true
},
"element-plus": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.5.tgz",
"integrity": "sha512-Kl0yn/PQca5YQo3M3NPBP4Xl71NQuMtDx5zNXZGVyl5FjdMujXiFB9SXKYGDUCgFU3d/Rl14vB4Fpmcl2Iz+Hw==",
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.6.tgz",
"integrity": "sha512-N9G4yWSxDt1YtreCJgt7UaSsXKuR4Fzb3ThzlBjbGDYDhcHijsrLL3qkdLZgeoSB13LRyr9pgP1ljNXdaYGa+g==",
"requires": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.0.5",
"@floating-ui/dom": "^0.5.2",
"@floating-ui/dom": "^0.5.3",
"@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
"@types/lodash": "^4.14.182",
"@types/lodash-es": "^4.17.6",
......@@ -6962,9 +6977,9 @@
}
},
"mlly": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-0.5.2.tgz",
"integrity": "sha512-4GTELSSErv6ZZJYU98fZNuIBJcXSz+ktHdRrCYEqU1m6ZlebOCG0jwZ+IEd9vOrbpYsVBBMC5OTrEyLnKRcauQ==",
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-0.5.3.tgz",
"integrity": "sha512-im69tuLD9EJh9fc9TZRpJEFvsBcGMez7glUCWDcHWWCKzhvPmNvyaYjp/+h0qJJN/Xovrs//GzGjOOKmFw4Gog==",
"dev": true,
"requires": {
"pathe": "^0.2.0",
......@@ -7224,28 +7239,14 @@
}
},
"pkg-types": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-0.3.2.tgz",
"integrity": "sha512-eBYzX/7NYsQEOR2alWY4rnQB49G62oHzFpoi9Som56aUr8vB8UGcmcIia9v8fpBeuhH3Ltentuk2OGpp4IQV3Q==",
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-0.3.3.tgz",
"integrity": "sha512-6AJcCMnjUQPQv/Wk960w0TOmjhdjbeaQJoSKWRQv9N3rgkessCu6J0Ydsog/nw1MbpnxHuPzYbfOn2KmlZO1FA==",
"dev": true,
"requires": {
"jsonc-parser": "^3.0.0",
"mlly": "^0.3.6",
"pathe": "^0.2.0"
},
"dependencies": {
"mlly": {
"version": "0.3.19",
"resolved": "https://registry.npmjs.org/mlly/-/mlly-0.3.19.tgz",
"integrity": "sha512-zMq5n3cOf4fOzA4WoeulxagbAgMChdev3MgP6K51k7M0u2whTXxupfIY4VVzws4vxkiWhwH1rVQcsw7zDGfRhA==",
"dev": true
},
"pathe": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz",
"integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==",
"dev": true
}
"mlly": "^0.5.3",
"pathe": "^0.3.0"
}
},
"platform": {
......@@ -7460,9 +7461,9 @@
"dev": true
},
"sass": {
"version": "1.52.3",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.52.3.tgz",
"integrity": "sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==",
"version": "1.53.0",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz",
"integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==",
"dev": true,
"requires": {
"chokidar": ">=3.0.0 <4.0.0",
......@@ -7760,9 +7761,9 @@
}
},
"unimport": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/unimport/-/unimport-0.2.9.tgz",
"integrity": "sha512-5SLmZZL2rwaNOQa/yTGaG0QI0meRhb6MDdIlS9s1uHPSYO6Gfzr7ugl5Rf35/CJioW6wYiNJsN9dru5JMzaD8w==",
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/unimport/-/unimport-0.3.0.tgz",
"integrity": "sha512-RxvfvKBY+CyBmIuYSuBeosSiudgcVakdhVofy5mO5sJ3purQRc5yjLw0Lir7MKHnqe6XT1++8flgAvpxu1UkqQ==",
"dev": true,
"requires": {
"@rollup/pluginutils": "^4.2.1",
......@@ -7770,7 +7771,7 @@
"fast-glob": "^3.2.11",
"local-pkg": "^0.4.1",
"magic-string": "^0.26.2",
"mlly": "^0.5.2",
"mlly": "^0.5.3",
"pathe": "^0.3.0",
"scule": "^0.2.1",
"strip-literal": "^0.4.0",
......@@ -7819,16 +7820,16 @@
}
},
"unplugin-auto-import": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.8.8.tgz",
"integrity": "sha512-cVZ79zMR1v4VCZ9emFTUnltmazCc2B4hObyVrxJdlgJ2sK8qub6JfjFt38rCF6MVEddkHiWCU6wZR1qbdqe+ig==",
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.9.0.tgz",
"integrity": "sha512-6h32xuwfpXQwXN9lAZtEDbb8rNGdBn/zg/H8HoXHtnm63t67zL2NDLxb0S3rJugKrQdhHhxaLgckN3gB36TnXw==",
"dev": true,
"requires": {
"@antfu/utils": "^0.5.2",
"@rollup/pluginutils": "^4.2.1",
"local-pkg": "^0.4.1",
"magic-string": "^0.26.2",
"unimport": "^0.2.7",
"unimport": "^0.3.0",
"unplugin": "^0.7.0"
},
"dependencies": {
......@@ -8118,9 +8119,9 @@
"dev": true
},
"webpack-virtual-modules": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz",
"integrity": "sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==",
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz",
"integrity": "sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==",
"dev": true
},
"which": {
......
......@@ -15,11 +15,12 @@
"dependencies": {
"@tinymce/tinymce-vue": "^5.0.0",
"@vant/area-data": "^1.3.1",
"@vueuse/head": "^0.7.6",
"axios": "^0.27.2",
"blueimp-md5": "^2.19.0",
"countup.js": "^2.2.0",
"dayjs": "^1.11.3",
"element-plus": "^2.2.5",
"element-plus": "^2.2.6",
"pinia": "^2.0.14",
"qs": "^6.10.5",
"vue": "^3.2.37",
......@@ -37,9 +38,9 @@
"chalk": "^5.0.1",
"eslint": "^8.17.0",
"eslint-plugin-vue": "^9.1.1",
"sass": "^1.52.3",
"sass": "^1.53.0",
"typescript": "~4.7.3",
"unplugin-auto-import": "^0.8.8",
"unplugin-auto-import": "^0.9.0",
"vite": "^2.9.12",
"vite-plugin-checker": "^0.4.6",
"vue-tsc": "^0.37.9"
......
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import { createHead } from '@vueuse/head'
import App from './App.vue'
import router from './router'
......@@ -32,5 +33,6 @@ modules({ router })
app.use(createPinia())
app.use(router)
app.use(ElementPlus, { locale: zhCn, size: 'large' })
app.use(createHead())
app.mount('#app')
......@@ -165,8 +165,8 @@ const rows: Record<string, any>[] = [
}
if (user.projects.length === 0) {
ElMessage({ message: '请联系我们完成企业注册' })
} else if (user.hasCompany) {
window.open('/hr/company/view')
// } else if (user.hasCompany) {
// window.open('/hr/company/view')
} else {
window.open('/hr/company/create')
}
......
......@@ -20,3 +20,8 @@ export function getAlumniDetail(params: { id: string }) {
export function getAlumniUserInfo() {
return httpRequest.get('/api/hr/api/v1/alumni-talent/login-user-info')
}
// 验证是否能沟通校友
export function checkInvite(data: { id: string }) {
return httpRequest.post(`/api/hr/api/v1/alumni-talent/${data.id}/check-invite`, data)
}
<script setup lang="ts">
import { ElMessage, ElMessageBox } from 'element-plus'
import { useArea } from '@/composables/useArea'
import { useClasses } from '@/composables/useClasses'
import { sex, projectPrefix, industryCategory, industryCategoryList } from '@/utils/dictionary'
import { getAlumniList } from '../api'
import { getAlumniList, checkInvite } from '../api'
import type { AlumniType } from '../types'
import { useUserStore } from '@/stores/user'
......@@ -87,12 +88,30 @@ const listOptions = computed(() => ({
]
}))
// 搜索
function handleSearch() {
nextTick(() => {
appList.value?.search()
})
}
// 沟通
function handleConcat(row: AlumniType) {
const url = `https://e-saas.ezijing.com/whisper?from_id=${user.user?.id}&to_id=${row.id}`
ElMessageBox.confirm(
`【紫荆教育】尊敬的用户,您好,紫荆教育校友诚邀您参与项目合作机会,请点击如下链接<a href="${url}" target="_blank">${url}</a>,期待您的回复。`,
{ confirmButtonText: '确认发送', dangerouslyUseHTMLString: true }
).then(() => {
checkInvite({ id: row.id })
.then(() => {
ElMessage.success('发送成功')
})
.catch(res => {
ElMessage.error(res.message)
})
})
}
onMounted(() => {
if (!user.projects.length) {
router.replace('/')
......@@ -102,9 +121,6 @@ onMounted(() => {
<template>
<AppList v-bind="listOptions" ref="appList">
<template #table-actions="{ row }">
<router-link :to="`/hr/alumni/view/${row.id}`" target="_blank" style="color: #399ee8">查看</router-link>
</template>
<template #filter-province>
<el-select filterable clearable v-model="provinceValue" @change="handleSearch" style="width: 250px">
<el-option v-for="item in provinceList" :value="item.label" :key="item.code"></el-option>
......@@ -122,6 +138,10 @@ onMounted(() => {
<el-option v-for="item in cityList" :value="item.label" :key="item.code"></el-option>
</el-select>
</template>
<template #table-actions="{ row }">
<router-link :to="`/hr/alumni/view/${row.id}`" target="_blank" style="color: #399ee8">查看</router-link>
<a href="javascript:;" style="color: #399ee8; margin-left: 10px" @click="handleConcat(row)">沟通</a>
</template>
</AppList>
</template>
......
......@@ -34,7 +34,10 @@ const rules = reactive<FormRules>({
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
],
nature: [{ required: true, message: '请选择公司性质', trigger: 'blur' }],
code: [{ required: true, message: '请输入社会统一信用代码', trigger: 'blur' }],
code: [
{ required: true, message: '请输入社会统一信用代码', trigger: 'blur' },
{ pattern: /[\w]{18}/, message: '请输入正确社会统一信用代码', trigger: 'blur' }
],
business_licence: [{ required: true, message: '请上传营业执照附件', trigger: 'change' }]
})
......@@ -45,7 +48,7 @@ function onProvinceChange() {
}
// 审核不通过可以修改
const disabled = computed(() => {
return form.audit_status === 1 || form.audit_status === 3
return form.status === 2 || form.audit_status === 1 || form.audit_status === 3
})
// 提交
......@@ -86,10 +89,12 @@ onMounted(() => {
<p class="company-register__tips">请完成企业信息认证,完成后即可发布职位</p>
<AppCard>
<div class="company-register__status">
<p style="color: #1dc388" v-if="form.audit_status === 1">审核通过</p>
<p style="color: #898989" v-if="form.audit_status === 2">审核不通过</p>
<p style="color: #60b0ea" v-if="form.audit_status === 3">待审核</p>
<p style="color: #f8524b" v-if="form.status === 2">已禁用</p>
<template v-else>
<p style="color: #1dc388" v-if="form.audit_status === 1">审核通过</p>
<p style="color: #898989" v-if="form.audit_status === 2">审核不通过</p>
<p style="color: #60b0ea" v-if="form.audit_status === 3">待审核</p>
</template>
</div>
<el-form
ref="formRef"
......@@ -133,7 +138,7 @@ onMounted(() => {
</el-select>
</el-form-item>
<el-form-item label="社会统一信用代码" prop="code">
<el-input v-model="form.code" placeholder="请输入" />
<el-input v-model="form.code" placeholder="请输入" maxlength="18" />
</el-form-item>
<el-form-item label="营业执照附件" prop="business_licence">
<AppUpload v-model="form.business_licence" accept="image/*" :disabled="disabled"></AppUpload>
......
......@@ -39,7 +39,14 @@ onMounted(() => {
fetchData()
})
let isUploading = $ref(false)
const uploadFileUrl = ref('')
function handleUploadProgress(e: any) {
isUploading = true
if (e.percent === 100) {
isUploading = false
}
}
function handleUploadSuccess(file: any) {
submitResume({ id: props.id, resume: file.raw.url })
.then(() => {
......@@ -70,9 +77,10 @@ function handleUploadSuccess(file: any) {
:disabled="isUploaded"
v-model="uploadFileUrl"
accept="application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"
:on-progress="handleUploadProgress"
@success="handleUploadSuccess"
>
<el-button type="primary" :disabled="isUploaded" style="border-radius: 10px">
<el-button type="primary" :disabled="isUploaded" :loading="isUploading" style="border-radius: 10px">
{{ uploadButtonText }}
</el-button>
</AppUpload>
......
import httpRequest from '@/utils/axios'
// 获取校友的受邀信息
export function getInviteInfo(params: { id: string }) {
return httpRequest.get(`/api/hr/api/v1/message/alumni-invited-info/${params.id}`, { params })
}
import type { RouteRecordRaw } from 'vue-router'
export const routes: Array<RouteRecordRaw> = [
{
path: '/whisper',
component: () => import('./views/Index.vue')
}
]
<script setup lang="ts">
import { useHead } from '@vueuse/head'
import { getInviteInfo } from '../api'
import { projectPrefix } from '@/utils/dictionary'
let windowWidth = $ref(0)
let htmlFontsize = $ref(0)
function resizeRoot() {
windowWidth =
screen.width > 0
? window.innerWidth >= screen.width || window.innerWidth == 0
? screen.width
: window.innerWidth
: window.innerWidth
htmlFontsize = ((windowWidth > 750 ? 750 : windowWidth) / 375) * 50
}
useHead({
meta: [
{
name: `viewport`,
content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover'
}
],
htmlAttrs: computed(() => [{ style: `font-size: ${htmlFontsize}px;` }])
})
const route = useRoute()
const data = reactive({
project_prefix: '',
username: '',
class_name: ''
})
const projectName = computed(() => {
return projectPrefix[data.project_prefix] || data.project_prefix
})
function fetchData() {
getInviteInfo({ id: route.query.to_id as string }).then(res => {
Object.assign(data, res.data.detail)
})
}
onMounted(() => {
fetchData()
resizeRoot()
window.addEventListener('resize', resizeRoot, false)
})
onUnmounted(() => {
window.removeEventListener('resize', resizeRoot, false)
})
</script>
<template>
<div class="invite">
<div class="invite-main">
<p class="t1">
您好:<br />
我是您的紫荆校友,<b>{{ projectName }}</b
>项目<b>{{ data.class_name }}</b
>学员,<b>{{ data.username }}</b>
</p>
<p class="t2">现诚邀您参与我的项目</p>
<p class="t4">参与项目</p>
<p class="t3">*点击后将发送您的联系方式给紫荆校友</p>
</div>
</div>
</template>
<style lang="scss" scoped>
.invite {
position: relative;
max-width: 750px;
margin: 0 auto;
height: 100vh;
background: url('@/assets/images/yao_bg.png') no-repeat center top;
background-size: 100% auto;
}
.invite-main {
width: 4.9rem;
margin: 0 auto;
padding-top: 4.2rem;
.t1 {
height: 3.6rem;
font-size: 0.35rem;
color: #fff;
margin: 0 0.3rem;
b {
font-weight: bold;
}
}
.t2 {
font-size: 0.46rem;
color: #ece4c8;
text-align: center;
}
.t3 {
font-size: 0.24rem;
color: #fff;
text-align: center;
}
.t4 {
width: 3.7rem;
height: 0.85rem;
margin: 1.3rem auto 0.16rem;
font-size: 0.3rem;
color: #b28c43;
line-height: 0.85rem;
text-align: center;
background-color: #fff;
border-radius: 0.2rem;
cursor: pointer;
}
}
</style>
......@@ -28,7 +28,8 @@ export const useUserStore = defineStore({
this.user = res.data
if (this.isLogin) {
const { data: alumniUser } = await getAlumniUserInfo()
this.hasCompany = alumniUser.is_registered_company && alumniUser.company_audit_status === 1
this.hasCompany =
alumniUser.is_registered_company && alumniUser.company_audit_status === 1 && alumniUser.company_status === 1
this.projects = alumniUser.projects
}
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论