diff --git a/.templates/$$var_template/$$var_filename.js b/.templates/$$var_template/$$var_filename.js new file mode 100644 index 0000000..1518755 --- /dev/null +++ b/.templates/$$var_template/$$var_filename.js @@ -0,0 +1,2 @@ +export default function $$var_textInFile() { +} diff --git a/.templates/.editorconfig b/.templates/.editorconfig new file mode 100644 index 0000000..689fb50 --- /dev/null +++ b/.templates/.editorconfig @@ -0,0 +1,21 @@ +# @see https://editorconfig-specification.readthedocs.io/en/latest/ + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 +charset = utf-8 + +# 4 space indentation +[*.py] +indent_style = space +indent_size = 4 + +# Tab indentation (no size specified) +[Makefile] +indent_style = tab diff --git a/.templates/template-sample-react-component/index.jsx b/.templates/template-sample-react-component/index.jsx new file mode 100644 index 0000000..d52bbc7 --- /dev/null +++ b/.templates/template-sample-react-component/index.jsx @@ -0,0 +1,12 @@ +import React from "react"; +import classNames from "classnames/bind"; + +import styles from "./index.scss"; + +const cx = classNames.bind(styles); + +function __templateNameToPascalCase__() { + return
Hello :)
; +} + +export default __templateNameToPascalCase__; diff --git a/.templates/template-sample-react-component/index.scss b/.templates/template-sample-react-component/index.scss new file mode 100644 index 0000000..c2488a6 --- /dev/null +++ b/.templates/template-sample-react-component/index.scss @@ -0,0 +1,3 @@ +.__templateNameToParamCase__ { + display: inline-block; +} diff --git a/.templates/template-sample/index.js b/.templates/template-sample/index.js new file mode 100644 index 0000000..0c0ef38 --- /dev/null +++ b/.templates/template-sample/index.js @@ -0,0 +1,5 @@ +export default function __templateNameToPascalCase__() { + console.log("TemplateName -> __templateName__"); + console.log("TemplateName to ParamCase -> __templateNameToParamCase__"); + console.log("TemplateName to PascalCase -> __templateNameToPascalCase__"); +} diff --git a/index.html b/index.html index cdca06c..8c12c61 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + Ai_面试管理后台 diff --git a/package.json b/package.json index f2d8f8f..facdae3 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "dependencies": { "@arco-design/web-vue": "^2.53.0", "@element-plus/icons-vue": "^2.1.0", + "ant-design-vue": "4.x", "axios": "^1.5.1", "echarts": "^5.4.3", "element-china-area-data": "^6.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dcdef51..07e12bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ dependencies: '@element-plus/icons-vue': specifier: ^2.1.0 version: registry.npmmirror.com/@element-plus/icons-vue@2.1.0(vue@3.3.4) + ant-design-vue: + specifier: 4.x + version: registry.npmmirror.com/ant-design-vue@4.0.7(vue@3.3.4) axios: specifier: ^1.5.1 version: registry.npmmirror.com/axios@1.5.1 @@ -98,6 +101,33 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/@ant-design/colors@6.0.0: + resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz} + name: '@ant-design/colors' + version: 6.0.0 + dependencies: + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + dev: false + + registry.npmmirror.com/@ant-design/icons-svg@4.3.1: + resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz} + name: '@ant-design/icons-svg' + version: 4.3.1 + dev: false + + registry.npmmirror.com/@ant-design/icons-vue@7.0.1(vue@3.3.4): + resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz} + id: registry.npmmirror.com/@ant-design/icons-vue/7.0.1 + name: '@ant-design/icons-vue' + version: 7.0.1 + peerDependencies: + vue: '>=3.0.3' + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@6.0.0 + '@ant-design/icons-svg': registry.npmmirror.com/@ant-design/icons-svg@4.3.1 + vue: registry.npmmirror.com/vue@3.3.4 + dev: false + registry.npmmirror.com/@antfu/utils@0.7.6: resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.6.tgz} name: '@antfu/utils' @@ -152,6 +182,15 @@ packages: dependencies: '@babel/types': registry.npmmirror.com/@babel/types@7.23.0 + registry.npmmirror.com/@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz} + name: '@babel/runtime' + version: 7.23.2 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 + dev: false + registry.npmmirror.com/@babel/types@7.23.0: resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.23.0.tgz} name: '@babel/types' @@ -180,6 +219,18 @@ packages: vue: registry.npmmirror.com/vue@3.3.4 dev: false + registry.npmmirror.com/@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.1.tgz} + name: '@emotion/hash' + version: 0.9.1 + dev: false + + registry.npmmirror.com/@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz} + name: '@emotion/unitless' + version: 0.8.1 + dev: false + registry.npmmirror.com/@esbuild/android-arm64@0.18.20: resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz} name: '@esbuild/android-arm64' @@ -585,6 +636,15 @@ packages: version: 1.5.1 dev: true + registry.npmmirror.com/@simonwep/pickr@1.8.2: + resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz} + name: '@simonwep/pickr' + version: 1.8.2 + dependencies: + core-js: registry.npmmirror.com/core-js@3.33.2 + nanopop: registry.npmmirror.com/nanopop@2.3.0 + dev: false + registry.npmmirror.com/@sxzz/popperjs-es@2.11.7: resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz} name: '@sxzz/popperjs-es' @@ -865,6 +925,40 @@ packages: engines: {node: '>=12'} dev: true + registry.npmmirror.com/ant-design-vue@4.0.7(vue@3.3.4): + resolution: {integrity: sha512-oHTtc1GZkfENZTkt2aDvjaD4yoRsowYvCOmxA6+5AGqm5uz/datdJOXsq9nokIhC+vrAMhk6JQVFZ2hh7eU6Pw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.0.7.tgz} + id: registry.npmmirror.com/ant-design-vue/4.0.7 + name: ant-design-vue + version: 4.0.7 + engines: {node: '>=12.22.0'} + peerDependencies: + vue: '>=3.2.0' + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@6.0.0 + '@ant-design/icons-vue': registry.npmmirror.com/@ant-design/icons-vue@7.0.1(vue@3.3.4) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.9.1 + '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.8.1 + '@simonwep/pickr': registry.npmmirror.com/@simonwep/pickr@1.8.2 + array-tree-filter: registry.npmmirror.com/array-tree-filter@2.1.0 + async-validator: registry.npmmirror.com/async-validator@4.2.5 + csstype: registry.npmmirror.com/csstype@3.1.2 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + dom-align: registry.npmmirror.com/dom-align@1.12.4 + dom-scroll-into-view: registry.npmmirror.com/dom-scroll-into-view@2.0.1 + lodash: registry.npmmirror.com/lodash@4.17.21 + lodash-es: registry.npmmirror.com/lodash-es@4.17.21 + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + scroll-into-view-if-needed: registry.npmmirror.com/scroll-into-view-if-needed@2.2.31 + shallow-equal: registry.npmmirror.com/shallow-equal@1.2.1 + stylis: registry.npmmirror.com/stylis@4.3.0 + throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 + vue: registry.npmmirror.com/vue@3.3.4 + vue-types: registry.npmmirror.com/vue-types@3.0.2(vue@3.3.4) + warning: registry.npmmirror.com/warning@4.0.3 + dev: false + registry.npmmirror.com/anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} name: anymatch @@ -881,6 +975,12 @@ packages: version: 2.0.1 dev: true + registry.npmmirror.com/array-tree-filter@2.1.0: + resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz} + name: array-tree-filter + version: 2.1.0 + dev: false + registry.npmmirror.com/async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz} name: async-validator @@ -1140,6 +1240,13 @@ packages: dependencies: is-what: registry.npmmirror.com/is-what@3.14.1 + registry.npmmirror.com/core-js@3.33.2: + resolution: {integrity: sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.33.2.tgz} + name: core-js + version: 3.33.2 + requiresBuild: true + dev: false + registry.npmmirror.com/cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} name: cross-spawn @@ -1249,6 +1356,18 @@ packages: esutils: registry.npmmirror.com/esutils@2.0.3 dev: true + registry.npmmirror.com/dom-align@1.12.4: + resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz} + name: dom-align + version: 1.12.4 + dev: false + + registry.npmmirror.com/dom-scroll-into-view@2.0.1: + resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz} + name: dom-scroll-into-view + version: 2.0.1 + dev: false + registry.npmmirror.com/eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz} name: eastasianwidth @@ -1976,6 +2095,13 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/is-plain-object@3.0.1: + resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz} + name: is-plain-object + version: 3.0.1 + engines: {node: '>=0.10.0'} + dev: false + registry.npmmirror.com/is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} name: is-stream @@ -2010,6 +2136,12 @@ packages: version: 2.0.0 dev: true + registry.npmmirror.com/js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + dev: false + registry.npmmirror.com/js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} name: js-yaml @@ -2185,6 +2317,15 @@ packages: wrap-ansi: registry.npmmirror.com/wrap-ansi@8.1.0 dev: true + registry.npmmirror.com/loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz} + name: loose-envify + version: 1.4.0 + hasBin: true + dependencies: + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + dev: false + registry.npmmirror.com/lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} name: lru-cache @@ -2321,6 +2462,12 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + registry.npmmirror.com/nanopop@2.3.0: + resolution: {integrity: sha512-fzN+T2K7/Ah25XU02MJkPZ5q4Tj5FpjmIYq4rvoHX4yb16HzFdCO6JxFFn5Y/oBhQ8no8fUZavnyIv9/+xkBBw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanopop/-/nanopop-2.3.0.tgz} + name: nanopop + version: 2.3.0 + dev: false + registry.npmmirror.com/natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz} name: natural-compare @@ -2659,6 +2806,12 @@ packages: picomatch: registry.npmmirror.com/picomatch@2.3.1 dev: true + registry.npmmirror.com/regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz} + name: regenerator-runtime + version: 0.14.0 + dev: false + registry.npmmirror.com/resize-detector@0.3.0: resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz} name: resize-detector @@ -2806,6 +2959,12 @@ packages: lru-cache: registry.npmmirror.com/lru-cache@6.0.0 dev: true + registry.npmmirror.com/shallow-equal@1.2.1: + resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz} + name: shallow-equal + version: 1.2.1 + dev: false + registry.npmmirror.com/shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} name: shebang-command @@ -2931,6 +3090,12 @@ packages: acorn: registry.npmmirror.com/acorn@8.10.0 dev: true + registry.npmmirror.com/stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz} + name: stylis + version: 4.3.0 + dev: false + registry.npmmirror.com/supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} name: supports-color @@ -2963,6 +3128,13 @@ packages: version: 0.2.0 dev: true + registry.npmmirror.com/throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz} + name: throttle-debounce + version: 5.0.0 + engines: {node: '>=12.22'} + dev: false + registry.npmmirror.com/titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz} name: titleize @@ -3291,6 +3463,19 @@ packages: vue: registry.npmmirror.com/vue@2.7.15 dev: false + registry.npmmirror.com/vue-types@3.0.2(vue@3.3.4): + resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz} + id: registry.npmmirror.com/vue-types/3.0.2 + name: vue-types + version: 3.0.2 + engines: {node: '>=10.15.0'} + peerDependencies: + vue: ^3.0.0 + dependencies: + is-plain-object: registry.npmmirror.com/is-plain-object@3.0.1 + vue: registry.npmmirror.com/vue@3.3.4 + dev: false + registry.npmmirror.com/vue-uuid@3.0.0(vue@3.3.4): resolution: {integrity: sha512-+5DP857xVmTHYd00dMC1c1gVg/nxG6+K4Lepojv9ckHt8w0fDpGc5gQCCttS9D+AkSkTJgb0cekidKjTWu5OQQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-uuid/-/vue-uuid-3.0.0.tgz} id: registry.npmmirror.com/vue-uuid/3.0.0 @@ -3324,6 +3509,14 @@ packages: '@vue/server-renderer': registry.npmmirror.com/@vue/server-renderer@3.3.4(vue@3.3.4) '@vue/shared': registry.npmmirror.com/@vue/shared@3.3.4 + registry.npmmirror.com/warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz} + name: warning + version: 4.0.3 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + dev: false + registry.npmmirror.com/webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} name: webpack-sources diff --git a/src/api/interview.js b/src/api/interview.js index 369e83d..ef01063 100644 --- a/src/api/interview.js +++ b/src/api/interview.js @@ -1,12 +1,14 @@ import request from '@/utils/request' +//-------------------logo----------------------------------- +// 根据公司编码查询logo列表 export const useGetLogoList = (encoding) => request.get('interview/get_logoList', { params: { encoding: encoding } }) - +// 添加公司logo export const useAddLogo = ({ name, encoding, image, userId, filename }) => request.post('interview/add_logo', { name, @@ -15,16 +17,18 @@ export const useAddLogo = ({ name, encoding, image, userId, filename }) => userId, filename }) - +// 根据logoID删除公司logo export const useDeleteLogo = (id) => - request.get('interview/delete_logo', { params: { id: id } }) - + request.delete('interview/delete_logo', { params: { id: id } }) +//-------------------------背景图片----------------------------------- +// 根据公司编码查询背景图片列表 export const useGetBackgroundList = (encoding) => request.get('interview/get_backgroundList', { params: { encoding: encoding } }) +// 添加面试背景 export const useAddBackground = ({ name, encoding, image, userId, filename }) => request.post('interview/add_background', { name, @@ -33,23 +37,86 @@ export const useAddBackground = ({ name, encoding, image, userId, filename }) => userId, filename }) +// 根据背景id删除面试背景 export const useDeleteBackground = (id) => - request.get('interview/delete_background', { params: { id: id } }) + request.delete('interview/delete_background', { params: { id: id } }) +//-------------------------------------------面试官形象----------------------------------- +// 根据公司编码查询面试管形象 export const useGetImagesList = (encoding) => request.get('interview/get_imagesList', { params: { encoding: encoding } }) - -export const useAddImage = ({ name, encoding, image, userId, filename }) => +// 添加面试官形象 +export const useAddImage = ({ + name, + encoding, + image, + video, + userId, + filename, + sex +}) => request.post('interview/add_image', { name, encoding, image, + video, userId, - filename + filename, + sex }) +// 根据形象id删除形象图片 export const useDeleteImage = (id) => - request.get('interview/delete_image', { params: { id: id } }) + request.delete('interview/delete_image', { params: { id: id } }) + +//通知面试 +export const addInterviewNotice = ({ + encoding, + jobId, + postId, + selectQuestions, + promote, + inviteUser, + userId, + applicationId, + endTime +}) => + request.post('interview/sendInterviewNotice', { + encoding, + jobId, + postId, + selectQuestions, + promote, + inviteUser, + userId, + applicationId, + endTime + }) + +export const getPostInfoList = (encoding) => + request.get('interview/getPostingInfoList', { + params: { + encoding: encoding + } + }) + +export const getInterviewRecordList = (postId, jobId, encoding, status) => + request.get('/interview/getInterviewRecordList', { + params: { + postId: postId, + jobId: jobId, + encoding: encoding, + status: status + } + }) + +export const agreeUsersPassInterview = (jobId, postId, userList, userId) => + request.post('/interview/agreeUsersPassInterview', { + jobId: jobId, + postId: postId, + userList: userList, + userId: userId + }) diff --git a/src/api/question.js b/src/api/question.js index 540933e..933d906 100644 --- a/src/api/question.js +++ b/src/api/question.js @@ -1,45 +1,47 @@ -import requset from '@/utils/request' - +import request from '@/utils/request' +//------------------------------------题库------------------------------------------- +//根据公司编码获取题库列表 export const useGetTypeList = (encoding) => - requset.get('question/get_typeList', { + request.get('question/get_typeList', { params: { encoding: encoding } }) - +// 搜索题库 export const useSearchType = (name, type, encoding) => - requset.get('question/search_typeName', { + request.get('question/search_typeName', { params: { name: name, type: type, encoding: encoding } }) - +// 根据题库类型获取题库 export const useGetTypeListByType = (encoding, type) => - requset.get('question/get_typeListByType', { + request.get('question/get_typeListByType', { params: { encoding: encoding, type: type } }) +// 添加题库 export const useAddTypeName = (typeName, description, type, encoding, userId) => - requset.post('question/add_typeName', { + request.post('question/add_typeName', { typeName, description, type, encoding, userId }) - +// 根据题库id删除题库 export const useDeleteTypeName = (typeId) => - requset.get('question/delete_type', { + request.delete('question/delete_type', { params: { typeId: typeId } }) - +// 编辑题库 export const useChangeTypeName = ( typeId, typeName, @@ -47,7 +49,7 @@ export const useChangeTypeName = ( type, userId ) => - requset.post('question/change_type', { + request.post('question/change_type', { typeId, typeName, description, @@ -55,61 +57,232 @@ export const useChangeTypeName = ( userId }) +export const useGetTypeById = (id) => + request.get('question/get_typeById', { params: { id: id } }) +//-------------------------------------题目------------------------------------- +// 根据公司编码获取题目列表 export const useGetQuestionList = (encoding) => - requset.get('question/get_questionList', { + request.get('question/get_questionList', { params: { encoding: encoding } }) - +// 搜索题目 export const useSearchQuestion = (name, type, encoding) => - requset.get('question/search_questionList', { + request.get('question/search_questionList', { params: { name: name, type: type, encoding: encoding } }) - +// 添加题目 export const useAddQuestion = ( title, bankId, details, - promote, + answer, encoding, userId ) => - requset.post('question/add_question', { + request.post('question/add_question', { title, bankId, details, - promote, + answer, encoding, userId }) - +// 编辑题目 export const useUpdateQuestion = ( id, title, bankId, details, - promote, + answer, encoding, userId ) => - requset.post('question/update_question', { + request.post('question/update_question', { id, title, bankId, details, - promote, + answer, encoding, userId }) - +// 删除题目 export const useDeleteQuestion = (id) => - requset.get('question/del_question', { + request.delete('question/del_question', { params: { id: id } }) +//---------------------------------题库广场---------------------------- +//获取分享题库列表 +export const useGetSharedQuestionType = () => + request.get('question/get_sharedQuestionType') +// 搜索分享题库 +export const useSearchSharedQuestionType = (searchName) => + request.get('question/search_sharedQuestionType', { + params: { + searchName: searchName + } + }) +// 根据公司编码获取分享题库列表 +export const useGetSharedQuestionTypeByCompany = (encoding) => + request.get('question/get_sharedQuestionType', { + params: { + encoding: encoding + } + }) +// 添加分享题库 +export const useAddSharedQuestionType = ({ + typeName, + type, + description, + userId, + encoding +}) => + request.post('question/add_sharedQuestionBank', { + typeName, + type, + description, + userId, + encoding + }) +// 从分享题库中添加题库到本公司题库下 +export const useAddQuestionTypeFromShare = ({ + SharedBankIds, + userId, + encoding +}) => + request.post('question/add_QuestionBankFromShare', { + SharedBankIds, + userId, + encoding + }) + +//根据 +//-------------------------------------题目广场----------------------------- +// 获取分享题目列表 +export const useGetSharedQuestion = () => + request.get('question/get_sharedQuestion') +// 搜索分享题目 +export const useSearchSharedQuestion = (searchName) => + request.get('question/search_sharedQuestion', { + params: { + searchName: searchName + } + }) +// 根据分享题库id获取分享题目列表 +export const useGetSharedQuestionByBankId = (sharedBankId) => + request.get('question/get_sharedQuestionByBankId', { + params: { + sharedBankId: sharedBankId + } + }) +// 添加分享题目 +export const useAddSharedQuestionList = ({ + sharedBankId, + selectQuestionId, + userId, + encoding +}) => + request.post('question/add_sharedQuestion', { + sharedBankId, + selectQuestionId, + userId, + encoding + }) +// 从分享题目中添加题目到本公司下的题库中 +export const useAddQuestionFromShare = ({ + selectSharedQuestionIds, + bankId, + userId, + encoding +}) => + request.post('question/add_QuestionFromShare', { + selectSharedQuestionIds, + bankId, + userId, + encoding + }) +//---------------------------------我的分享题库--------------------------- +//根据公司编码获取本公司分享的题库 +export const useGetOurSharedQuestionTypeList = (encoding) => + request.get('question/get_OurQuestionTypeList', { + params: { + encoding: encoding + } + }) +//搜索本公司的分享的题库 +export const useSearchOurSharedQuestionType = (encoding, searchName) => + request.get('question/search_OurSharedQuestionType', { + params: { + encoding: encoding, + searchName: searchName + } + }) +//根据分享题库id修改题库信息 +export const useEditOurSharedQuestionType = ({ + id, + typeName, + description, + type, + userId +}) => + request.post('question/edit_OurSharedQuestionType', { + id, + typeName, + description, + type, + userId + }) +//根据分享题库id删除分享题库 +export const useDeleteOurSharedQuestionType = (id) => + request.delete('question/delete_OurSharedQuestionType', { + params: { + id: id + } + }) + +//----------------------------------我的分享题目------------------------- +//根据公司编码获取本公司分享的题目 +export const useGetOurSharedQuestionList = (encoding) => + request.get('question/get_OurQuestionList', { + params: { + encoding: encoding + } + }) +//搜索本公司的分享的题库 +export const useSearchOurSharedQuestion = (encoding, searchName) => + request.get('question/search_OurSharedQuestion', { + params: { + encoding: encoding, + searchName: searchName + } + }) +//根据ID删除本公司下的分享ID +export const useDeleteOurSharedQuestion = (sharedQuestionId) => + request.post('question/delete_OurSharedQuestion', { + sharedQuestionId: sharedQuestionId + }) + +export const useEditOurSharedQuestion = ({ + id, + title, + details, + answer, + bankId, + userId +}) => + request.post('question/update_OurSharedQuestion', { + id, + title, + details, + answer, + bankId, + userId + }) diff --git a/src/api/recruitment.js b/src/api/recruitment.js index da5f928..3f566ca 100644 --- a/src/api/recruitment.js +++ b/src/api/recruitment.js @@ -1,5 +1,6 @@ import request from '@/utils/request' - +//-----------------------------------岗位管理----------------------------- +// 添加岗位 export const useAddJob = ({ address, addressDetail, @@ -34,21 +35,21 @@ export const useAddJob = ({ userId, encoding }) - +// 根据公司编码获取岗位列表 export const useGetJobList = (encoding) => request.get('recruitment/get_jobList', { params: { encoding: encoding } }) - +// 根据岗位id获取岗位详情 export const useGetJobById = (id) => request.get('recruitment/get_jobById', { params: { id: id } }) - +// 编辑岗位 export const useUpdateJob = ({ id, address, @@ -85,20 +86,30 @@ export const useUpdateJob = ({ userId, encoding }) - +// 搜索岗位 +export const useSearchJob = (jobName, jobType, encoding) => + request.get('recruitment/search_job', { + params: { + jobName: jobName, + jobType: jobType, + encoding: encoding + } + }) +// 根据岗位id修改岗位状态 export const useChangeJobStatus = (id, userId) => request.post('recruitment/update_jobStatus', { id, userId }) - +// 根据岗位id删除岗位信息 export const useDelJob = (id) => - request.get('recruitment/delete_job', { + request.delete('recruitment/delete_job', { params: { id: id } }) - +//------------------------------面试设置-------------------------- +// 添加面试设置 export const useAddJobSetting = ({ jobId, imagesId, @@ -123,21 +134,21 @@ export const useAddJobSetting = ({ userId, encoding }) - +// 根据公司编码获取面试设置列表 export const useGetJobSettingList = (encoding) => request.get('recruitment/get_jobSettingList', { params: { encoding: encoding } }) - +// 根据面试设置id删除面试设置 export const useDeleteJobSetting = (id) => - request.get('recruitment/delete_jobJobSetting', { + request.delete('recruitment/delete_jobJobSetting', { params: { id: id } }) - +// 编辑面试设置 export const useUpdateJobSetting = ({ id, jobId, @@ -164,22 +175,7 @@ export const useUpdateJobSetting = ({ userId, encoding }) - -export const useGetCompanyDetail = (encoding) => - request.get('recruitment/get_companyDetail', { - params: { - encoding: encoding - } - }) -export const useSearchJob = (jobName, jobType, encoding) => - request.get('recruitment/search_job', { - params: { - jobName: jobName, - jobType: jobType, - encoding: encoding - } - }) - +// 根据岗位名称搜索面试设置 export const useSearchSettings = (jobName, encoding) => request.get('recruitment/search_setting', { params: { @@ -187,3 +183,128 @@ export const useSearchSettings = (jobName, encoding) => encoding: encoding } }) +//------------------------------公司详情--------------------- +// 根据公司编码获取公司详情 +export const useGetCompanyDetail = (encoding) => + request.get('recruitment/get_companyDetail', { + params: { + encoding: encoding + } + }) +// 修改公司详情 +export const useUploadCompanyDetail = ({ + address, + addressDetail, + companyDetail, + companyName, + creditCode, + encoding, + established, + subImages, + legalRepresentative, + treatment, + registeredCapital, + userId, + subLogo, + type, + staffNumber, + companyAllName +}) => + request.post('recruitment/update_companyDetail', { + address, + addressDetail, + companyDetail, + companyName, + creditCode, + encoding, + established, + images: subImages, + legalRepresentative, + treatment, + registeredCapital, + userId, + type, + companyLogo: subLogo, + staffNumber, + companyAllName + }) +//招聘发布 +export const addJobPosting = ({ + name, + startTime, + endTime, + checkList, + userId, + encoding +}) => + request.post('/recruitment/add_jobPosting', { + name, + startTime, + endTime, + checkList, + userId, + encoding + }) +export const updateJobPosting = ({ + id, + name, + startTime, + endTime, + checkList, + userId, + status +}) => + request.post('/recruitment/update_jobPosting', { + id, + name, + startTime, + endTime, + checkList, + userId, + status + }) + +export const deleteJobPosting = (id) => + request.delete('/recruitment/delete_jobPosting', { + params: { + id: id + } + }) +export const getJobPostingList = (encoding) => + request.get('/recruitment/get_jobPostingList', { + params: { + encoding: encoding + } + }) + +//获取求职者信息 +export const getApplicationList = (encoding, jobId) => + request.get('/recruitment/getApplicationList', { + params: { + encoding: encoding, + jobId: jobId + } + }) + +//搜索求职者 +export const searchApplicationByName = (searchName, encoding) => + request.get('/recruitment/searchApplicationByName', { + params: { + searchName: searchName, + encoding: encoding + } + }) + +export const disagreeApplication = (id) => + request.get('/recruitment/disagreeApplication', { + params: { + id: id + } + }) + +export const getJobSettingByJobId = (jobId) => + request.get('/recruitment/get_jobSettingByJobId', { + params: { + jobId: jobId + } + }) diff --git a/src/api/upload.js b/src/api/upload.js index 33bacd0..b9e7f69 100644 --- a/src/api/upload.js +++ b/src/api/upload.js @@ -1,30 +1,41 @@ import request from '@/utils/request' - +//------------------------图片--------------------- +// 上传图片 export const useUploadPic = (fd) => request.post('upload_picture', fd, { headers: { 'Content-Type': 'multipart/form-data' } }) - +// 根据图片名称删除图片 export const useDeletePic = (imagePath) => - request.get('delete_picture', { + request.delete('delete_picture', { params: { imagePath: imagePath } }) - +// ------------------------------简历------------------- +// 上传简历 export const useUploadResume = (fd) => request.post('upload_resume', fd, { headers: { 'Content-Type': 'multipart/form-data' } }) - +// 根据简历名称删除简历 export const useDeleteResume = (resumePath) => - request.get('delete_resume', { + request.delete('delete_resume', { params: { resumePath: resumePath } }) -export const useUploadCompanyImage = (fd) => - request.post('upload_companyImage', fd, { +// ---------------------------------视频------------------------- +// 上传视频 +export const useUploadVideo = (fd) => + request.post('upload_video', fd, { headers: { 'Content-Type': 'multipart/form-data' } }) +// 根据视频名称删除视频 +export const useDeleteVideo = (videoPath) => + request.delete('delete_video', { + params: { + videoPath: videoPath + } + }) diff --git a/src/api/user.js b/src/api/user.js index ac699b3..27d3b75 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -1,48 +1,50 @@ import request from '@/utils/request.js' - +// 用户登陆 export const adminLogin = ({ phone, encoding, password }) => request.post('admin/login', { phone, encoding, password }) - +// 根据token获取用户信息 export const useGetUserInfo = (token) => request.get('admin/get_userInfo', { params: { token: token } }) - +// 用户登出 export const useAdminLogout = (token) => request.get('admin/logout', { params: { token: token } }) - +// 根据公司编码获取员工列表 export const useGetAdminList = (encoding) => request.get('admin/get_adminList', { params: { encoding: encoding } }) - +// 添加管理员 export const useAddAdmin = (encoding, userId, username, phone, role) => request.post('admin/add_admin', { encoding, userId, username, phone, role }) - +// 删除管理员 export const useDelAdmin = (userId, deleteId) => - request.post('admin/del_admin', { - userId, - deleteId + request.delete('admin/del_admin', { + params: { + userId: userId, + deleteId: deleteId + } }) - +// 更换头像 export const useChangeAvatar = ({ userId, avatar }) => request.post('admin/change_avatar', { userId, avatar }) - +// 重置密码 export const useResetPassword = ({ userId, oldPassword, @@ -55,7 +57,7 @@ export const useResetPassword = ({ Password, resetPassword }) - +// 搜索管理员 export const useSearchAdmin = (name, encoding) => request.get('admin/search_admin', { params: { @@ -63,3 +65,24 @@ export const useSearchAdmin = (name, encoding) => encoding: encoding } }) +// 编辑用户信息 +export const useUploadUserInfo = ({ + userId, + updateId, + username, + age, + email, + sex +}) => + request.post('admin/upload_userInfo', { + userId, + updateId, + username, + age, + email, + sex + }) +//系统管理员修改公司管理员密码||公司管理员修改HR的密码 + +export const useAdminEditPassword = ({ userId, updateUserId, password }) => + request.post('admin/adminEditPassword', { userId, updateUserId, password }) diff --git a/src/upload/C9DEA1DB-1F49-4C1D-B7D4-96E2E72F8B92.png b/src/assets/bankIcon.png similarity index 100% rename from src/upload/C9DEA1DB-1F49-4C1D-B7D4-96E2E72F8B92.png rename to src/assets/bankIcon.png diff --git a/src/main.js b/src/main.js index c6dd323..b37af4d 100644 --- a/src/main.js +++ b/src/main.js @@ -5,11 +5,9 @@ import App from './App.vue' import router from './router' import './assets/main.scss' - const app = createApp(App) app.use(pinia) app.use(router) - app.mount('#app') diff --git a/src/router/index.js b/src/router/index.js index 744a3be..f3779be 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -23,6 +23,10 @@ const router = createRouter({ path: '/question/manager', component: () => import('@/views/question/QuestionManager.vue') }, + { + path: '/question/square', + component: () => import('@/views/question/QuestionSquare.vue') + }, { path: '/home', component: () => import('@/views/home/HomeindexPage.vue') @@ -56,6 +60,10 @@ const router = createRouter({ { path: '/recruitment/companyManagement', component: () => import('@/views/recruitment/CompanyManagement.vue') + }, + { + path: '/recruitment/publicJob', + component: () => import('@/views/recruitment/PublicJob.vue') } ] } diff --git a/src/upload/1192AE4C-586E-4595-8118-E6EFCA22634B.jpg b/src/upload/1192AE4C-586E-4595-8118-E6EFCA22634B.jpg deleted file mode 100644 index ebd7ef8..0000000 Binary files a/src/upload/1192AE4C-586E-4595-8118-E6EFCA22634B.jpg and /dev/null differ diff --git a/src/upload/1E512476-1E21-47CA-B3EF-21963572F806.gif b/src/upload/1E512476-1E21-47CA-B3EF-21963572F806.gif deleted file mode 100644 index 149f3f2..0000000 Binary files a/src/upload/1E512476-1E21-47CA-B3EF-21963572F806.gif and /dev/null differ diff --git a/src/upload/21572682-3F7A-4334-956C-879D1D0659AB.jpg b/src/upload/21572682-3F7A-4334-956C-879D1D0659AB.jpg deleted file mode 100644 index 24b6117..0000000 Binary files a/src/upload/21572682-3F7A-4334-956C-879D1D0659AB.jpg and /dev/null differ diff --git a/src/upload/389067BF-90E8-4970-878E-A01B060D04ED.jpg b/src/upload/389067BF-90E8-4970-878E-A01B060D04ED.jpg deleted file mode 100644 index c209125..0000000 Binary files a/src/upload/389067BF-90E8-4970-878E-A01B060D04ED.jpg and /dev/null differ diff --git a/src/upload/504F682C-96BA-4FEB-B75E-57F1C826D112.jpg b/src/upload/504F682C-96BA-4FEB-B75E-57F1C826D112.jpg deleted file mode 100644 index 0152b0d..0000000 Binary files a/src/upload/504F682C-96BA-4FEB-B75E-57F1C826D112.jpg and /dev/null differ diff --git a/src/upload/63386A46-724E-4DAA-8292-F72501C9D15E.jpg b/src/upload/63386A46-724E-4DAA-8292-F72501C9D15E.jpg deleted file mode 100644 index 1b36f23..0000000 Binary files a/src/upload/63386A46-724E-4DAA-8292-F72501C9D15E.jpg and /dev/null differ diff --git a/src/upload/80754FCE-B3D2-4B17-9A1D-F86346A5EBD5.jpg b/src/upload/80754FCE-B3D2-4B17-9A1D-F86346A5EBD5.jpg deleted file mode 100644 index e9b6546..0000000 Binary files a/src/upload/80754FCE-B3D2-4B17-9A1D-F86346A5EBD5.jpg and /dev/null differ diff --git a/src/upload/81A61BE5-78AC-4B31-99D7-98BC53D06E24.jpg b/src/upload/81A61BE5-78AC-4B31-99D7-98BC53D06E24.jpg deleted file mode 100644 index 1b36f23..0000000 Binary files a/src/upload/81A61BE5-78AC-4B31-99D7-98BC53D06E24.jpg and /dev/null differ diff --git a/src/upload/919C2083-386F-45FE-A740-563DC2591178.jpg b/src/upload/919C2083-386F-45FE-A740-563DC2591178.jpg deleted file mode 100644 index 2ee1383..0000000 Binary files a/src/upload/919C2083-386F-45FE-A740-563DC2591178.jpg and /dev/null differ diff --git a/src/upload/9DA92BF1-0F26-4B8E-8B87-F848A401DA05.jpg b/src/upload/9DA92BF1-0F26-4B8E-8B87-F848A401DA05.jpg deleted file mode 100644 index 24b6117..0000000 Binary files a/src/upload/9DA92BF1-0F26-4B8E-8B87-F848A401DA05.jpg and /dev/null differ diff --git a/src/upload/B0857032-6F26-4918-A92F-2CFCEBB72EDD.jpg b/src/upload/B0857032-6F26-4918-A92F-2CFCEBB72EDD.jpg deleted file mode 100644 index 24b6117..0000000 Binary files a/src/upload/B0857032-6F26-4918-A92F-2CFCEBB72EDD.jpg and /dev/null differ diff --git a/src/upload/B436CBB1-9A8E-439A-8707-E436F6075E6B.jpg b/src/upload/B436CBB1-9A8E-439A-8707-E436F6075E6B.jpg deleted file mode 100644 index c209125..0000000 Binary files a/src/upload/B436CBB1-9A8E-439A-8707-E436F6075E6B.jpg and /dev/null differ diff --git a/src/upload/B9286165-C5E3-492B-90E0-13138A3DF4FA.jpg b/src/upload/B9286165-C5E3-492B-90E0-13138A3DF4FA.jpg deleted file mode 100644 index 0152b0d..0000000 Binary files a/src/upload/B9286165-C5E3-492B-90E0-13138A3DF4FA.jpg and /dev/null differ diff --git a/src/upload/C2F5AB82-7E9D-4D9A-AF42-013F90B15043.jpg b/src/upload/C2F5AB82-7E9D-4D9A-AF42-013F90B15043.jpg deleted file mode 100644 index 6ad5ea2..0000000 Binary files a/src/upload/C2F5AB82-7E9D-4D9A-AF42-013F90B15043.jpg and /dev/null differ diff --git a/src/upload/C39F8D20-7AC8-4CEA-8C17-E240A8C804E3.jpg b/src/upload/C39F8D20-7AC8-4CEA-8C17-E240A8C804E3.jpg deleted file mode 100644 index 2ee1383..0000000 Binary files a/src/upload/C39F8D20-7AC8-4CEA-8C17-E240A8C804E3.jpg and /dev/null differ diff --git a/src/upload/D633E94D-CA2F-4B62-A5A9-DBFEFE3FC1A4.jpg b/src/upload/D633E94D-CA2F-4B62-A5A9-DBFEFE3FC1A4.jpg deleted file mode 100644 index 6ad5ea2..0000000 Binary files a/src/upload/D633E94D-CA2F-4B62-A5A9-DBFEFE3FC1A4.jpg and /dev/null differ diff --git a/src/upload/E4FA7AEC-7D8D-4762-81F1-B71C02BD3A65.jpg b/src/upload/E4FA7AEC-7D8D-4762-81F1-B71C02BD3A65.jpg deleted file mode 100644 index 24b6117..0000000 Binary files a/src/upload/E4FA7AEC-7D8D-4762-81F1-B71C02BD3A65.jpg and /dev/null differ diff --git a/src/upload/F32613A6-2FEC-48CF-BD20-E9D609CFB4FA.gif b/src/upload/F32613A6-2FEC-48CF-BD20-E9D609CFB4FA.gif deleted file mode 100644 index 149f3f2..0000000 Binary files a/src/upload/F32613A6-2FEC-48CF-BD20-E9D609CFB4FA.gif and /dev/null differ diff --git a/src/upload/FA502171-9821-4290-81E5-1EBA072457E7.jpg b/src/upload/FA502171-9821-4290-81E5-1EBA072457E7.jpg deleted file mode 100644 index eb949fd..0000000 Binary files a/src/upload/FA502171-9821-4290-81E5-1EBA072457E7.jpg and /dev/null differ diff --git a/src/upload/picture/0DDACFF0-F9E0-4C3A-BCD9-6AC96EFC4E75.png b/src/upload/picture/0DDACFF0-F9E0-4C3A-BCD9-6AC96EFC4E75.png deleted file mode 100644 index d38f82f..0000000 Binary files a/src/upload/picture/0DDACFF0-F9E0-4C3A-BCD9-6AC96EFC4E75.png and /dev/null differ diff --git a/src/upload/picture/20CDACF5-0181-414E-BB71-323A514D95C8.png b/src/upload/picture/20CDACF5-0181-414E-BB71-323A514D95C8.png deleted file mode 100644 index d408261..0000000 Binary files a/src/upload/picture/20CDACF5-0181-414E-BB71-323A514D95C8.png and /dev/null differ diff --git a/src/upload/picture/335AB4FA-CA4C-4168-B7F5-10FBBB806CFE.png b/src/upload/picture/335AB4FA-CA4C-4168-B7F5-10FBBB806CFE.png deleted file mode 100644 index d38f82f..0000000 Binary files a/src/upload/picture/335AB4FA-CA4C-4168-B7F5-10FBBB806CFE.png and /dev/null differ diff --git a/src/upload/picture/77C7F810-AB2F-428E-96B8-0CF73FB2BED7.png b/src/upload/picture/77C7F810-AB2F-428E-96B8-0CF73FB2BED7.png deleted file mode 100644 index 94347b5..0000000 Binary files a/src/upload/picture/77C7F810-AB2F-428E-96B8-0CF73FB2BED7.png and /dev/null differ diff --git a/src/upload/picture/81BA428B-17DC-45AA-8C8E-CDC03C7B04C7.png b/src/upload/picture/81BA428B-17DC-45AA-8C8E-CDC03C7B04C7.png deleted file mode 100644 index 32a9c3d..0000000 Binary files a/src/upload/picture/81BA428B-17DC-45AA-8C8E-CDC03C7B04C7.png and /dev/null differ diff --git a/src/upload/picture/B252EB9C-1EAC-46D6-95B0-76F05C420F8C.png b/src/upload/picture/B252EB9C-1EAC-46D6-95B0-76F05C420F8C.png deleted file mode 100644 index d38f82f..0000000 Binary files a/src/upload/picture/B252EB9C-1EAC-46D6-95B0-76F05C420F8C.png and /dev/null differ diff --git a/src/upload/picture/DE8FA730-A719-468A-A9EF-907707477393.png b/src/upload/picture/DE8FA730-A719-468A-A9EF-907707477393.png deleted file mode 100644 index d408261..0000000 Binary files a/src/upload/picture/DE8FA730-A719-468A-A9EF-907707477393.png and /dev/null differ diff --git a/src/upload/picture/EAC0A2B6-E5BF-4E79-8F87-AD27AACA269A.png b/src/upload/picture/EAC0A2B6-E5BF-4E79-8F87-AD27AACA269A.png deleted file mode 100644 index d38f82f..0000000 Binary files a/src/upload/picture/EAC0A2B6-E5BF-4E79-8F87-AD27AACA269A.png and /dev/null differ diff --git a/src/utils/request.js b/src/utils/request.js index 3e01bc6..ad15e06 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -2,7 +2,7 @@ import { useUserStore } from '@/stores' import axios from 'axios' import router from '@/router' -const baseURL = 'http://localhost' +const baseURL = 'http://localhost:5380' const instance = axios.create({ baseURL, diff --git a/src/views/home/HomeindexPage.vue b/src/views/home/HomeindexPage.vue index 41a5067..0dfc424 100644 --- a/src/views/home/HomeindexPage.vue +++ b/src/views/home/HomeindexPage.vue @@ -6,19 +6,56 @@ import { CanvasRenderer } from 'echarts/renderers' import VChart, { THEME_KEY } from 'vue-echarts' import { ref, provide } from 'vue' -import { useCompanyStore } from '@/stores' -import { Search } from '@element-plus/icons-vue' -import { useGetJobList } from '@/api/recruitment' +import { useCompanyStore, useUserStore } from '@/stores' +import { + Search, + View, + CloseBold, + ChatDotSquare, + Tickets +} from '@element-plus/icons-vue' +import { + useGetJobList, + getApplicationList, + searchApplicationByName +} from '@/api/recruitment' +import { + getPostInfoList, + getInterviewRecordList, + agreeUsersPassInterview +} from '@/api/interview' import { ElMessage } from 'element-plus' +import DisagreeDialog from './components/DisagreeDialog.vue' +import InviteDialog from './components/InviteDialog.vue' +import ViewResume from './components/ViewResume.vue' + use([TooltipComponent, GridComponent, BarChart, CanvasRenderer]) const companyStore = useCompanyStore() -const activeName = ref() const jobList = ref([]) +const activeJob = ref() +const originalInterviewerList = ref([]) +const isProcess = ref('1') +const ListLoading = ref(false) const getJobList = async () => { + isProcess.value = '1' const res = await useGetJobList(companyStore.encoding) jobList.value = res.data.data - activeName.value = jobList.value[0].id + if (activeJob.value === undefined || activeJob.value === '') { + activeJob.value = jobList.value[0].id + } + interviewerListLoading.value = true + const resinterviewerList = await getApplicationList( + companyStore.encoding, + activeJob.value + ) + originalInterviewerList.value = resinterviewerList.data.data + + console.log(originalInterviewerList.value) + interviewerList.value = resinterviewerList.data.data.filter( + (item) => item.status === 1 + ) + interviewerListLoading.value = false } getJobList() @@ -154,19 +191,194 @@ const option2 = ref({ ] }) -const Agreement = () => { - console.log('同意面试') -} - -const filterApplication = ref('1') const inputName = ref('') -const searchUserName = () => { +const searchUserName = async () => { if (inputName.value) { - console.log('搜索' + inputName.value) + const res = await searchApplicationByName( + inputName.value, + companyStore.encoding + ) + interviewerList.value = res.data.data + inputName.value = '' } else { ElMessage.error('请输入求职者姓名') } } +const inviteDialog = ref() +const handleInvite = (row) => { + console.log(row) + inviteDialog.value.open(row) +} +const disagreeDialog = ref() +const handleDisagree = (row) => { + disagreeDialog.value.open(row) +} + +const interviewerList = ref([]) +const interviewerListLoading = ref(false) + +const handleClick = () => { + getJobList() +} +const viewResume = ref() +const handleViewResume = (row) => { + viewResume.value.open(row) +} + +const handleChange = () => { + console.log(isProcess.value) + + interviewerList.value = originalInterviewerList.value.filter( + (item) => item.status === parseInt(isProcess.value) + ) +} +//第二个页面 +const postintList = ref([]) + +const activePosting = ref('') + +const postFilterJob = ref() + +const postJobList = ref([]) + +const interviewPostList = ref([]) + +const filterRecored = ref('1') + +const getPostListLoading = ref(false) +const getPostintList = async () => { + getPostListLoading.value = true + const res = await getPostInfoList(companyStore.encoding) + postintList.value = res.data.data + activePosting.value = postintList.value[0].postId + postFilterJob.value = postintList.value[0].jobList[0].jobId + postJobList.value = postintList.value[0].jobList + + const resPostList = await getInterviewRecordList( + activePosting.value, + postFilterJob.value, + companyStore.encoding, + parseInt(filterRecored.value) + ) + + interviewPostList.value = resPostList.data.data + + console.log(interviewPostList.value) + + getPostListLoading.value = false +} +getPostintList() + +const selectAgreeUsers = ref([]) + +const handleSelectionChange = (val) => { + if (val.length === 0) { + selectAgreeUsers.value = [] + } + + val.forEach((item) => { + if (selectAgreeUsers.value.indexOf(item.interviewer) === -1) { + selectAgreeUsers.value.push(item.interviewer) + } + }) + if (val.length !== selectAgreeUsers.value.length) { + selectAgreeUsers.value = [] + val.forEach((item) => { + if (selectAgreeUsers.value.indexOf(item.interviewer) === -1) { + selectAgreeUsers.value.push(item.interviewer) + } + }) + } + console.log(selectAgreeUsers.value) +} +const userStore = useUserStore() +const PassInterview = async () => { + if (filterRecored.value === '2') { + ElMessage.error('所勾选的列表已经通过面试啦,请不要重复操作') + return + } + + getPostListLoading.value = true + const res = await agreeUsersPassInterview( + postFilterJob.value, + activePosting.value, + JSON.stringify(selectAgreeUsers.value), + userStore.userInfo.id + ) + + ElMessage.success(res.data.data) + + const resPostList = await getInterviewRecordList( + activePosting.value, + postFilterJob.value, + companyStore.encoding, + parseInt(filterRecored.value) + ) + + interviewPostList.value = resPostList.data.data + + getPostListLoading.value = false +} +const handleRecordChangeStatus = async () => { + getPostListLoading.value = true + const res = await getInterviewRecordList( + activePosting.value, + postFilterJob.value, + companyStore.encoding, + parseInt(filterRecored.value) + ) + interviewPostList.value = res.data.data + + getPostListLoading.value = false +} + +const handleRecordChangeJob = async () => { + filterRecored.value = '1' + getPostListLoading.value = true + + const res = await getInterviewRecordList( + activePosting.value, + postFilterJob.value, + companyStore.encoding, + parseInt(filterRecored.value) + ) + interviewPostList.value = res.data.data + getPostListLoading.value = false +} + +const handleChangePost = async () => { + filterRecored.value = '1' + // postJobList.value = postintList.value.filter( + // (item) => item.postId === activePosting.value + // ) + let choosePostInfo = postintList.value.filter( + (item) => item.postId === activePosting.value + ) + + postJobList.value = choosePostInfo[0].jobList + + postFilterJob.value = postJobList.value[0].jobId + + const resPostList = await getInterviewRecordList( + activePosting.value, + postFilterJob.value, + companyStore.encoding, + parseInt(filterRecored.value) + ) + + interviewPostList.value = resPostList.data.data + + console.log(interviewPostList.value) + + getPostListLoading.value = false +} +const handleDisagreeApplication = (row) => { + console.log(row) +} + +const handleViewRecordDetail = (row) => { + console.log(row) +}