From 5d3529a43c2f80c6eff5235c646a446737dcb13c Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期三, 30 七月 2025 14:07:55 +0800 Subject: [PATCH] feat: 页面 --- src/services/api/FlexTask.ts | 63 + src/views/EmploymentManage/EmploymentSignList.vue | 163 ++ src/views/FlexJobManage/constants/columns.ts | 80 + src/views/EmploymentManage/constants/columns.ts | 154 ++ src/hooks/useEvent.ts | 2 src/views/FlexJobManage/components/StaffInfoDialog.vue | 199 +++ src/views/EmploymentManage/EmploymentManage.vue | 249 ++++ src/hooks/index.ts | 1 pnpm-lock.yaml | 289 ++- src/services/api/FlexEnterpriseWoker.ts | 54 src/views/EmploymentManage/AddOrEditEmployment.vue | 19 src/services/api/FlexEnterprise.ts | 108 + src/services/api/User.ts | 11 src/views/EmploymentManage/components/AddOrEditEmploymentView.vue | 201 +++ src/router/index.ts | 108 + src/views/EmploymentManage/EmploymentManageDetail.vue | 10 src/views/FlexJobManage/components/BatchImportDialog.vue | 109 + src/hooks/dic.ts | 54 src/services/api/Common.ts | 15 src/services/api/FlexWorker.ts | 336 +++++ src/services/api/typings.d.ts | 758 ++++++++++++ config/config.ts | 10 src/constants/enum.ts | 24 src/views/EmploymentManage/EmploymentManageArrange.vue | 237 +++ src/views/EmploymentManage/constants/index.ts | 1 src/views/FlexJobManage/FlexJobManage.vue | 350 +++++ src/utils/common/file.ts | 13 src/services/api/index.ts | 8 src/views/FlexJobManage/constants/index.ts | 1 src/services/api/UserResume.ts | 46 package.json | 4 31 files changed, 3,519 insertions(+), 158 deletions(-) diff --git a/config/config.ts b/config/config.ts index 8a42988..4a5b1e7 100644 --- a/config/config.ts +++ b/config/config.ts @@ -4,20 +4,20 @@ /** * @description 缃戦〉title */ - title: '涔愰亣淇濅簯鏈嶅姟', + title: '鐏靛伐浼佷笟瀹㈡埛绔�', errorLog: 'production', - loginFormTitle: '涔愰亣淇濅簯鏈嶅姟', + loginFormTitle: '鐏靛伐浼佷笟瀹㈡埛绔�', }); type AppType = 'one' | 'rz' | 'jx'; const AppSettingMap = { one: { - title: '涔愰亣淇濅簯鏈嶅姟', - loginFormTitle: '涔愰亣淇濅簯鏈嶅姟', - MenuTitle: '涔愰亣淇濅簯鏈嶅姟', + title: '鐏靛伐浼佷笟瀹㈡埛绔�', + loginFormTitle: '鐏靛伐浼佷笟瀹㈡埛绔�', + MenuTitle: '鐏靛伐浼佷笟瀹㈡埛绔�', }, rz: { title: '鑱氬崈淇濈悊璧旂鐞嗗伐鍏�', diff --git a/package.json b/package.json index a009c7f..d522be6 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,7 @@ "version": "1.0.0", "scripts": { "dev": "cross-env vite", - "dev:jx": "cross-env VITE_AppType=jx vite", "build": "cross-env NODE_OPTIONS=--max_old_space_size=16000 vite build", - "build:rz": "cross-env NODE_OPTIONS=--max_old_space_size=16000 VITE_AppType=rz vite build --mode rz", - "build:jx": "cross-env NODE_OPTIONS=--max_old_space_size=16000 VITE_AppType=jx vite build --mode jx", - "build:all": "run-p build build:jx", "build:staging": "cross-env vite build --mode staging", "build:staging:jenkins": "cross-env NODE_OPTIONS=--max_old_space_size=16000 vite build --mode staging", "preview": "vite preview", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 613b3ae..16613f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + overrides: vue: 3.5.11 @@ -17,13 +21,13 @@ version: 1.0.3(@bole-12333/chat-kit@1.0.1)(@tiptap/core@2.1.13)(@tiptap/extension-document@2.1.13)(@tiptap/extension-image@2.1.13)(@tiptap/extension-mention@2.1.13)(@tiptap/extension-paragraph@2.1.13)(@tiptap/extension-placeholder@2.1.13)(@tiptap/extension-text@2.1.13)(@tiptap/pm@2.1.13)(@tiptap/suggestion@2.1.13)(dayjs@1.11.6)(vue@3.5.11) '@bole-core/components': specifier: latest - version: 1.3.2(@bole-core/core@1.0.2)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.9.1)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11) + version: 1.3.10(@bole-core/core@1.0.7)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.9.1)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11) '@bole-core/core': specifier: latest - version: 1.0.2(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5) + version: 1.0.7(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5) '@bole-core/pretty-layout': specifier: latest - version: 1.2.0(@bole-core/core@1.0.2)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@vueuse/core@11.1.0)(element-plus@2.9.1)(fuse.js@6.6.2)(lottie-web@5.10.2)(path-browserify@1.0.1)(path-to-regexp@6.2.1)(pinia@2.2.4)(vue-router@4.4.5)(vue@3.5.11) + version: 1.2.0(@bole-core/core@1.0.7)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@vueuse/core@11.1.0)(element-plus@2.9.1)(fuse.js@6.6.2)(lottie-web@5.10.2)(path-browserify@1.0.1)(path-to-regexp@6.2.1)(pinia@2.2.4)(vue-router@4.4.5)(vue@3.5.11) '@bole-core/sass-utils': specifier: latest version: 0.0.1(element-plus@2.9.1) @@ -44,13 +48,13 @@ version: 4.37.1(vue@3.5.11) '@tencentcloud/call-uikit-vue': specifier: ^3.1.5 - version: 3.1.5(react-native@0.76.5)(react@19.0.0) + version: 3.1.5 '@tencentcloud/chat-uikit-vue': specifier: ^2.0.0 version: 2.0.0(@tiptap/core@2.1.13)(@tiptap/extension-document@2.1.13)(@tiptap/extension-image@2.1.13)(@tiptap/extension-mention@2.1.13)(@tiptap/extension-paragraph@2.1.13)(@tiptap/extension-placeholder@2.1.13)(@tiptap/extension-text@2.1.13)(@tiptap/pm@2.1.13)(@tiptap/suggestion@2.1.13)(react-native@0.76.5)(react@19.0.0)(vue@3.5.11) '@tencentcloud/tui-core': specifier: ^2.0.0 - version: 2.0.0(react-native@0.76.5)(react@19.0.0) + version: 2.0.0 '@videojs-player/vue': specifier: ^1.0.0 version: 1.0.0(@types/video.js@7.3.49)(video.js@7.20.3)(vue@3.5.11) @@ -2117,9 +2121,9 @@ peerDependencies: '@tencentcloud/chat-uikit-engine': '*' lodash: '*' - vue: '*' + vue: 3.5.11 dependencies: - '@tencentcloud/chat-uikit-engine': 2.4.0(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/chat-uikit-engine': 2.4.0 lodash: 4.17.21 vue: 3.5.11(typescript@4.8.4) dev: false @@ -2138,7 +2142,7 @@ '@tiptap/pm': ^2.0.0-beta.220 '@tiptap/suggestion': ^2.0.0-beta.220 dayjs: '*' - vue: '*' + vue: 3.5.11 dependencies: '@bole-12333/chat-kit': 1.0.1(@tencentcloud/chat-uikit-engine@2.4.0)(lodash@4.17.21)(vue@3.5.11) '@tiptap/core': 2.1.13(@tiptap/pm@2.1.13) @@ -2154,8 +2158,8 @@ vue: 3.5.11(typescript@4.8.4) dev: false - /@bole-core/components@1.3.2(@bole-core/core@1.0.2)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.9.1)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11): - resolution: {integrity: sha512-sMCgoaKtJi3nPP3MrMx5cs0IjI0Tbes3YJF1AHN3TItR549aYc+vb+mkU34MjWh7EzqTE40htPxJueAGT6tMWg==} + /@bole-core/components@1.3.10(@bole-core/core@1.0.7)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.9.1)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11): + resolution: {integrity: sha512-SRE33nhD4i8MQVvBGbCGH++RfozRM74ctmkhCOCeCoZnlKSqI/i9UlYVrg1Yre5P9TLjh7vEXmSI4TlALrTNXQ==} peerDependencies: '@bole-core/core': '*' '@bole-core/sass-utils': '*' @@ -2171,10 +2175,10 @@ senin-help: '*' senin-vue: '*' video.js: '*' - vue: '*' + vue: 3.5.11 vue-component-type-helpers: ^2.1.6 dependencies: - '@bole-core/core': 1.0.2(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5) + '@bole-core/core': 1.0.7(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5) '@bole-core/sass-utils': 0.0.1(element-plus@2.9.1) '@element-plus/icons-vue': 2.3.1(vue@3.5.11) '@tanstack/vue-query': 4.37.1(vue@3.5.11) @@ -2192,8 +2196,8 @@ vue-component-type-helpers: 2.1.6 dev: false - /@bole-core/core@1.0.2(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5): - resolution: {integrity: sha512-v5XqgmuaFe1l5tBe9CHytW8UhqI8rh2m8R2J7F2F46XZy5wh7vGfiHshuaooTbfK6ex9A06jcepIWwDOklLs+A==} + /@bole-core/core@1.0.7(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5): + resolution: {integrity: sha512-VICs9m+qAaMvORNcaKSP1Gkr4thhxvwooh2hd7fBmkIYqDitOYmcssBsPno7jjp+5fuZYQ3LwHQ9Vl/whbTpCw==} peerDependencies: '@ywwlmm/openapi': '*' ali-oss: '*' @@ -2204,7 +2208,7 @@ jszip: '*' lodash: '*' senior-request: '*' - vue: '*' + vue: 3.5.11 vue-router: '*' xlsx: '*' xlsx-style: '*' @@ -2224,7 +2228,7 @@ xlsx-style: 0.8.13(patch_hash=6ixwdxwh5a3amidwu6vee22jpi) dev: false - /@bole-core/pretty-layout@1.2.0(@bole-core/core@1.0.2)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@vueuse/core@11.1.0)(element-plus@2.9.1)(fuse.js@6.6.2)(lottie-web@5.10.2)(path-browserify@1.0.1)(path-to-regexp@6.2.1)(pinia@2.2.4)(vue-router@4.4.5)(vue@3.5.11): + /@bole-core/pretty-layout@1.2.0(@bole-core/core@1.0.7)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@vueuse/core@11.1.0)(element-plus@2.9.1)(fuse.js@6.6.2)(lottie-web@5.10.2)(path-browserify@1.0.1)(path-to-regexp@6.2.1)(pinia@2.2.4)(vue-router@4.4.5)(vue@3.5.11): resolution: {integrity: sha512-LvneMdMfGj6dpFR7voQd2F+v02P4zYHGP3BAWKcrTj8BMeWXRt08Sz7qBrhq1F8lidjqi7TCttQbx2cEV1qBEA==} peerDependencies: '@bole-core/core': '*' @@ -2237,10 +2241,10 @@ path-browserify: '*' path-to-regexp: '*' pinia: '*' - vue: '*' + vue: 3.5.11 vue-router: '*' dependencies: - '@bole-core/core': 1.0.2(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5) + '@bole-core/core': 1.0.7(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.9.1)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.1)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5) '@bole-core/sass-utils': 0.0.1(element-plus@2.9.1) '@element-plus/icons-vue': 2.3.1(vue@3.5.11) '@vueuse/core': 11.1.0(vue@3.5.11) @@ -2274,7 +2278,7 @@ resolution: {integrity: sha512-33Cfr0zjbc3Dd8d5b1IgzXRAgXH0c2Gv19VI4snS25V/x9Z41eg769tC+Us1x+vqgQQhgD5YUjLnkpkrQfeMSw==} peerDependencies: qrcode: ^1.5.0 - vue: ^3.0.0 + vue: 3.5.11 dependencies: qrcode: 1.5.4 vue: 3.5.11(typescript@4.8.4) @@ -2922,7 +2926,7 @@ /@element-plus/icons-vue@2.3.1(vue@3.5.11): resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} peerDependencies: - vue: ^3.2.0 + vue: 3.5.11 dependencies: vue: 3.5.11(typescript@4.8.4) dev: false @@ -3300,7 +3304,7 @@ /@iconify/vue@4.0.0(vue@3.5.11): resolution: {integrity: sha512-73z81Yf2HISfehu3qvN9GqL1OnUO7wEMKkiFwVGJ2pqAdGCR8FrVylhRhka+6U+gFLlng0ynnT20svk3jJYwow==} peerDependencies: - vue: '>=3' + vue: 3.5.11 dependencies: '@iconify/types': 2.0.0 vue: 3.5.11(typescript@4.8.4) @@ -4203,7 +4207,7 @@ dependencies: '@babel/core': 7.25.7 postcss: 7.0.39 - postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-less@3.1.4)(postcss-scss@2.1.1)(postcss@7.0.39) transitivePeerDependencies: - supports-color dev: false @@ -4216,7 +4220,7 @@ postcss-syntax: '>=0.36.2' dependencies: postcss: 7.0.39 - postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-less@3.1.4)(postcss-scss@2.1.1)(postcss@7.0.39) remark: 13.0.0 unist-util-find-all-after: 3.0.2 transitivePeerDependencies: @@ -4242,7 +4246,7 @@ resolution: {integrity: sha512-QzCQ94g2oZQcEfI4nfqa6Qr3aFXtXiEH17Jho+QFl73c7epqsWNcyP3ovF1fgJz5jEOE5OYtwgkoaRKIRaSigg==} peerDependencies: '@vue/composition-api': ^1.1.2 - vue: ^2.5.0 || ^3.0.0 + vue: 3.5.11 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -4254,60 +4258,76 @@ vue-demi: 0.13.11(vue@3.5.11) dev: false - /@tencentcloud/call-uikit-vue2.6@3.3.9(react-native@0.76.5)(react@19.0.0)(vue@3.5.11): - resolution: {integrity: sha512-EWXc+wqGXlWSmkR/ucKdwPpe+tOXwtYDL2wUD3C/XW4pmKldtxRIIWIzDzo9upPTeojZMfIIoOC/che7wwE9KQ==} + /@tencentcloud/call-engine-js@3.2.0(react-native@0.76.5)(react@19.0.0): + resolution: {integrity: sha512-IcDgkD2IICHkQh9WkeWsfwL9gecok89wIEFJPTVVFhC7fTLe4obOCI42TV4n+1sREm8BdGkAYvOurGf6CpXCng==} dependencies: '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0) - '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0) + core-js: 3.38.1 + eventemitter3: 4.0.7 + rtc-detect: 0.0.5 + trtc-cloud-js-sdk: 2.9.3 + tuikit-logger: 0.0.4-beta.1 + transitivePeerDependencies: + - react + - react-native + dev: false + + /@tencentcloud/call-uikit-vue2.6@4.0.8(react-native@0.76.5)(react@19.0.0)(vue@3.5.11): + resolution: {integrity: sha512-lRxCQ+V684FahkBWEhHhq1mOXgLJPkt/XEfNayYqQmzP8X01FlxLr+xJshnBbi6Hs6B/R1ak0d5vk8EsniQr1g==} + dependencies: + '@tencentcloud/call-engine-js': 3.2.0(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/tui-core': 2.5.1 '@vue/composition-api': 1.7.2(vue@3.5.11) - tuicall-engine-webrtc: 3.1.6(react-native@0.76.5)(react@19.0.0) transitivePeerDependencies: - react - react-native - vue dev: false - /@tencentcloud/call-uikit-vue2@3.3.9(react-native@0.76.5)(react@19.0.0): - resolution: {integrity: sha512-xAa1eQGoYj6PKoaSLxNXHPXTO5A/ld8A5Oy9Ps3qjEQWaOIkei8cqJfRX5tUJiQSeNJAxME/GrqLueIARshnTg==} + /@tencentcloud/call-uikit-vue2@4.0.8(react-native@0.76.5)(react@19.0.0): + resolution: {integrity: sha512-vwWv/Wd7349EhI1JTCPpL4ZgHFrxAyuU5v8U2aqzElQO3Uv2HHAowr7DkbFfzbAm0oDvcXWBqwBcb7rDvM1h7w==} dependencies: + '@tencentcloud/call-engine-js': 3.2.0(react-native@0.76.5)(react@19.0.0) '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0) - '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0) - tuicall-engine-webrtc: 3.1.6(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/tui-core': 2.5.1 transitivePeerDependencies: - react - react-native dev: false - /@tencentcloud/call-uikit-vue@3.1.5(react-native@0.76.5)(react@19.0.0): + /@tencentcloud/call-uikit-vue@3.1.5: resolution: {integrity: sha512-xblFYyol6rXMYKv5NAy45K/VwGIKPCheqUevjoE3Jt7dVqYQMdlXkbWcjcoY1lVmr2545Ej2QN0Xo+PGAHkD1g==} dependencies: - '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0) - tuicall-engine-webrtc: 3.1.6(react-native@0.76.5)(react@19.0.0) - transitivePeerDependencies: - - react - - react-native + '@tencentcloud/tui-core': 2.5.1 + tuicall-engine-webrtc: 3.1.7 dev: false - /@tencentcloud/call-uikit-vue@3.3.9(react-native@0.76.5)(react@19.0.0): - resolution: {integrity: sha512-fFwQSAU+PVqantxbabRZa268BBBcv+hIX265Ag3ogYcrKq/hEo8XyH7nkjZL8wkQ2hFvnkwUgMMLXVeAgyMsng==} + /@tencentcloud/call-uikit-vue@4.0.8(react-native@0.76.5)(react@19.0.0): + resolution: {integrity: sha512-eRq0yfhojCJYpywJ2WhRf0UI+oNM5EPOc3F6wskkvHasoySp0NdxwlusX3LAq0WevnxCJl3xZD6fPMnzpndqjQ==} dependencies: + '@tencentcloud/call-engine-js': 3.2.0(react-native@0.76.5)(react@19.0.0) '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0) - '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0) - tuicall-engine-webrtc: 3.1.6(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/tui-core': 2.5.1 transitivePeerDependencies: - react - react-native dev: false - /@tencentcloud/chat-uikit-engine@2.4.0(react-native@0.76.5)(react@19.0.0): + /@tencentcloud/chat-uikit-engine@2.4.0: resolution: {integrity: sha512-zE+bygEROaqgeMXXO+X2+2x8JH55mnb9c1sYQVQ507FlFT0maHxEQPOq8/EZBWowUDDlYoWbHh1EBAXEAI3dgA==} dependencies: - '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/chat': 3.5.7 tim-profanity-filter-plugin: 1.1.0 tim-upload-plugin: 1.4.2 - transitivePeerDependencies: - - react - - react-native + dev: false + + /@tencentcloud/chat-uikit-engine@2.5.1: + resolution: {integrity: sha512-++6jXbEtc0HxVD4Zdbse1gp1pbMQfco9/NgQBenLwA38FI+v2kmtt5ccc/xHEMxqAqc671E8dB/zYZQTc1074g==} + dependencies: + '@tencentcloud/chat': 3.5.7 + tim-profanity-filter-plugin: 1.1.0 + tim-upload-plugin: 1.4.2 dev: false /@tencentcloud/chat-uikit-vue@2.0.0(@tiptap/core@2.1.13)(@tiptap/extension-document@2.1.13)(@tiptap/extension-image@2.1.13)(@tiptap/extension-mention@2.1.13)(@tiptap/extension-paragraph@2.1.13)(@tiptap/extension-placeholder@2.1.13)(@tiptap/extension-text@2.1.13)(@tiptap/pm@2.1.13)(@tiptap/suggestion@2.1.13)(react-native@0.76.5)(react@19.0.0)(vue@3.5.11): @@ -4323,12 +4343,12 @@ '@tiptap/pm': ^2.0.0-beta.220 '@tiptap/suggestion': ^2.0.0-beta.220 dependencies: - '@tencentcloud/call-uikit-vue': 3.3.9(react-native@0.76.5)(react@19.0.0) - '@tencentcloud/call-uikit-vue2': 3.3.9(react-native@0.76.5)(react@19.0.0) - '@tencentcloud/call-uikit-vue2.6': 3.3.9(react-native@0.76.5)(react@19.0.0)(vue@3.5.11) - '@tencentcloud/chat-uikit-engine': 2.4.0(react-native@0.76.5)(react@19.0.0) - '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0) - '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.4.0)(vue@3.5.11) + '@tencentcloud/call-uikit-vue': 4.0.8(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/call-uikit-vue2': 4.0.8(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/call-uikit-vue2.6': 4.0.8(react-native@0.76.5)(react@19.0.0)(vue@3.5.11) + '@tencentcloud/chat-uikit-engine': 2.5.1 + '@tencentcloud/tui-core': 2.5.1 + '@tencentcloud/tui-customer-service-plugin': 2.2.6(@tencentcloud/tui-core@2.5.1)(vue@3.5.11) '@tiptap/core': 2.1.13(@tiptap/pm@2.1.13) '@tiptap/extension-document': 2.1.13(@tiptap/core@2.1.13) '@tiptap/extension-image': 2.1.13(@tiptap/core@2.1.13) @@ -4352,15 +4372,19 @@ /@tencentcloud/chat@3.5.2(react-native@0.76.5)(react@19.0.0): resolution: {integrity: sha512-UuGswGE3jaPgAFHA5kMDASI4Vq5p3lzeK9YisN5kkl9dcxh7BKbxTp5qtD8Fy7tj4VcWbytCb6ytCufmThbDXA==} dependencies: - '@tencentcloud/react-native-push': 1.1.0(react-native@0.76.5)(react@19.0.0) - '@tencentcloud/uni-app-push': 1.1.0 + '@tencentcloud/react-native-push': 1.2.0(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/uni-app-push': 1.2.0 transitivePeerDependencies: - react - react-native dev: false - /@tencentcloud/react-native-push@1.1.0(react-native@0.76.5)(react@19.0.0): - resolution: {integrity: sha512-6TvPhNnKrBvd6j9dUwFLpkmV9WkdkaQstNvzdK1nIWQgWCTJGFnyiNDEn8zwN2VZkG+MzjYwNqMcVkMMU9Ao2g==} + /@tencentcloud/chat@3.5.7: + resolution: {integrity: sha512-uxACmaFPqV8jXcORBwVSHc0qgKvnHzRg9kC8kHAqCGbsnsm8525JwFzU6ByckGCNqNWUx/5W70EISYAboLuTvQ==} + dev: false + + /@tencentcloud/react-native-push@1.2.0(react-native@0.76.5)(react@19.0.0): + resolution: {integrity: sha512-/GI4J1LNnbCz1LxJ6WHtYhymoVg8ot5gASJ9o/YczgghynnZf7b9rfe2d8Z43YjhPog9Rx1Jfdqb3WVa8T7w0A==} peerDependencies: react: '*' react-native: '>= 0.75' @@ -4369,46 +4393,40 @@ react-native: 0.76.5(@babel/core@7.25.7)(@babel/preset-env@7.25.8)(react@19.0.0) dev: false - /@tencentcloud/tui-core@2.0.0(react-native@0.76.5)(react@19.0.0): + /@tencentcloud/tui-core@2.0.0: resolution: {integrity: sha512-KBwDFWFV+IGtAZ82uCjRi891nMQcAen0wZHdPUUTSNHaWGjYiwOAHD7yw4gC1c5DYqVYMa3tVA7bSBd/hKVZKg==} dependencies: - '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/chat': 3.5.7 tim-profanity-filter-plugin: 0.9.0 tim-upload-plugin: 1.3.0 - transitivePeerDependencies: - - react - - react-native dev: false - /@tencentcloud/tui-core@2.4.0(react-native@0.76.5)(react@19.0.0): - resolution: {integrity: sha512-OFXHoi8CQlPtWvNRLApg0wonWbW79uoTgAqqffqWO1icx3xDYd2RZDHMzpBexOsE3CHpWokrfXrqiXkpOmYWew==} + /@tencentcloud/tui-core@2.5.1: + resolution: {integrity: sha512-aXZG0INkV9WvFUHgmVQRibCs10r2u/oVb8qAEjW3maytBiLWOJQiK7dzshK9fnfadJAWQ027cpR8lCKz5r5Tlw==} dependencies: - '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/chat': 3.5.7 tim-profanity-filter-plugin: 1.1.0 tim-upload-plugin: 1.4.2 - transitivePeerDependencies: - - react - - react-native dev: false - /@tencentcloud/tui-customer-service-plugin@2.2.6(@tencentcloud/tui-core@2.4.0)(vue@3.5.11): + /@tencentcloud/tui-customer-service-plugin@2.2.6(@tencentcloud/tui-core@2.5.1)(vue@3.5.11): resolution: {integrity: sha512-Xc+Eii7qvptMqW3oONhl0UYKTJhotq0ZKdIVKy5fADMR1745aWwOxql5F0AOikuMR4iXEFQtxy7XvyfYp+o6UQ==} peerDependencies: '@tencentcloud/tui-core': latest '@vue/composition-api': ^1.0.0-rc.1 - vue: ^2.0.0 || >=3.0.0 + vue: 3.5.11 peerDependenciesMeta: '@vue/composition-api': optional: true dependencies: - '@tencentcloud/tui-core': 2.4.0(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/tui-core': 2.5.1 '@tencentcloud/universal-api': 2.4.0 marked: 4.0.0 vue: 3.5.11(typescript@4.8.4) dev: false - /@tencentcloud/uni-app-push@1.1.0: - resolution: {integrity: sha512-9z8zgAxExwuxzuxq1sFK3jmRJOKG/BNL8i9v+a3jVK/R7XL7ROE5EPWh4gRYABb9DC48NK9hwx2RFqPTlbR/xg==} + /@tencentcloud/uni-app-push@1.2.0: + resolution: {integrity: sha512-l+hTZ4IkfgTqVLkDMWaJyAdTSM6HArPZ1PYi/V7j21XwsIJh21bEBGQ6UwojuRlOIbQDuZ32o+ZkjcVn2Gj8HA==} engines: {HBuilderX: ^3.6.8} dev: false @@ -5209,7 +5227,7 @@ peerDependencies: '@types/video.js': 7.x video.js: 7.x - vue: 3.x + vue: 3.5.11 dependencies: '@types/video.js': 7.3.49 video.js: 7.20.3 @@ -5275,7 +5293,7 @@ engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 - vue: ^3.0.0 + vue: 3.5.11 dependencies: '@babel/core': 7.25.7 '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.25.7) @@ -5291,7 +5309,7 @@ engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 - vue: ^3.2.25 + vue: 3.5.11 dependencies: vite: 6.0.6(@types/node@18.7.18)(sass@1.83.0)(terser@5.34.1) vue: 3.5.11(typescript@4.8.4) @@ -5439,7 +5457,7 @@ /@vue/composition-api@1.7.2(vue@3.5.11): resolution: {integrity: sha512-M8jm9J/laYrYT02665HkZ5l2fWTK4dcVg3BsDHm/pfz+MjDYwX+9FUaZyGwEyXEDonQYRCo0H7aLgdklcIELjw==} peerDependencies: - vue: '>= 2.5 < 2.7' + vue: 3.5.11 dependencies: vue: 3.5.11(typescript@4.8.4) dev: false @@ -5567,7 +5585,7 @@ resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==} peerDependencies: '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 + vue: 3.5.11 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -5608,7 +5626,7 @@ resolution: {integrity: sha512-cAZqXexLX6xo+H1N1Mv+wBSSqG4wB+BdjIuHQ50jwlelXCDxSi8gj0K/9nDS+aUZtWh6YMwS6UGCKg58jMVglA==} peerDependencies: '@vue/composition-api': ^1.4.1 - vue: ^2.0.0 || >=3.0.0-rc.0 + vue: 3.5.11 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -5634,7 +5652,7 @@ resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==} peerDependencies: '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 + vue: 3.5.11 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -5732,7 +5750,7 @@ resolution: {integrity: sha512-Xkrdo590AhLHvzyR+U246t6T89nIWHz1weAgMuo8jEA2HS5RiUnsA4U6+iUGaQ2E5c8mYQaeNqzHQXUp9Okbiw==} peerDependencies: '@wangeditor-next/editor': '>=5.1.0' - vue: ^3.0.5 + vue: 3.5.11 dependencies: '@wangeditor-next/editor': 5.3.14 vue: 3.5.11(typescript@4.8.4) @@ -8063,6 +8081,7 @@ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} hasBin: true + requiresBuild: true dev: true optional: true @@ -8145,7 +8164,6 @@ domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 - dev: true /dom-walk@0.1.2: resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} @@ -8180,7 +8198,6 @@ engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - dev: true /domutils@1.7.0: resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} @@ -8202,7 +8219,6 @@ dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dev: true /dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -8269,7 +8285,7 @@ /element-plus@2.9.1(vue@3.5.11): resolution: {integrity: sha512-9Agqf/jt4Ugk7EZ6C5LME71sgkvauPCsnvJN12Xid2XVobjufxMGpRE4L7pS4luJMOmFAH3J0NgYEGZT5r+NDg==} peerDependencies: - vue: ^3.2.0 + vue: 3.5.11 dependencies: '@ctrl/tinycolor': 3.4.1 '@element-plus/icons-vue': 2.3.1(vue@3.5.11) @@ -9200,6 +9216,10 @@ /event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} + dev: false + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false /execa@5.1.1: @@ -10172,7 +10192,6 @@ domhandler: 5.0.3 domutils: 3.0.1 entities: 4.5.0 - dev: true /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} @@ -11076,7 +11095,6 @@ /js-tokens@8.0.0: resolution: {integrity: sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==} - dev: true /js-tokens@9.0.0: resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} @@ -12383,7 +12401,6 @@ resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} @@ -12458,6 +12475,7 @@ /node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + requiresBuild: true dev: true optional: true @@ -13212,7 +13230,6 @@ /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} @@ -13256,7 +13273,7 @@ peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' - vue: ^2.6.14 || ^3.3.0 + vue: 3.5.11 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -13497,7 +13514,7 @@ dependencies: htmlparser2: 3.10.1 postcss: 7.0.39 - postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-less@3.1.4)(postcss-scss@2.1.1)(postcss@7.0.39) dev: false /postcss-html@1.5.0: @@ -13508,7 +13525,6 @@ js-tokens: 8.0.0 postcss: 8.4.18 postcss-safe-parser: 6.0.0(postcss@8.4.18) - dev: true /postcss-image-set-function@7.0.0(postcss@8.4.18): resolution: {integrity: sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==} @@ -13541,7 +13557,7 @@ dependencies: '@babel/core': 7.25.7 postcss: 7.0.39 - postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss-scss@4.0.5)(postcss@8.4.18) transitivePeerDependencies: - supports-color dev: false @@ -13584,7 +13600,7 @@ postcss-syntax: '>=0.36.0' dependencies: postcss: 7.0.39 - postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss-scss@4.0.5)(postcss@8.4.18) remark: 10.0.1 unist-util-find-all-after: 1.0.5 dev: false @@ -13771,7 +13787,6 @@ postcss: ^8.3.3 dependencies: postcss: 8.4.18 - dev: true /postcss-sass@0.3.5: resolution: {integrity: sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==} @@ -13801,7 +13816,6 @@ postcss: ^8.3.3 dependencies: postcss: 8.4.18 - dev: true /postcss-selector-not@8.0.0(postcss@8.4.18): resolution: {integrity: sha512-g/juh7A83GWc3+kWL8BiS3YUIJb3XNqIVKz1kGvgN3OhoGCsPncy1qo/+q61tjy5r87OxBhSY1+hcH3yOhEW+g==} @@ -13861,7 +13875,7 @@ postcss: 8.4.18 dev: true - /postcss-syntax@0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39): + /postcss-syntax@0.36.2(postcss-html@0.36.0)(postcss-less@3.1.4)(postcss-scss@2.1.1)(postcss@7.0.39): resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} peerDependencies: postcss: '>=5.0.0' @@ -13884,10 +13898,34 @@ dependencies: postcss: 7.0.39 postcss-html: 0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39) - postcss-jsx: 0.36.4(postcss-syntax@0.36.2)(postcss@7.0.39) postcss-less: 3.1.4 - postcss-markdown: 0.36.0(postcss-syntax@0.36.2)(postcss@7.0.39) postcss-scss: 2.1.1 + dev: false + + /postcss-syntax@0.36.2(postcss-html@1.5.0)(postcss-scss@4.0.5)(postcss@8.4.18): + resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} + peerDependencies: + postcss: '>=5.0.0' + postcss-html: '*' + postcss-jsx: '*' + postcss-less: '*' + postcss-markdown: '*' + postcss-scss: '*' + peerDependenciesMeta: + postcss-html: + optional: true + postcss-jsx: + optional: true + postcss-less: + optional: true + postcss-markdown: + optional: true + postcss-scss: + optional: true + dependencies: + postcss: 8.4.18 + postcss-html: 1.5.0 + postcss-scss: 4.0.5(postcss@8.4.18) dev: false /postcss-value-parser@3.3.1: @@ -13922,7 +13960,6 @@ nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /postcss@8.4.49: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} @@ -14988,6 +15025,10 @@ resolution: {integrity: sha512-53e/4a4lT96K004mqDnLDE+upNSpBLRMfFgYCeIw3Gvuw9F17nxLP5v8MOVLly4/Epomxkx4SXrOFJJMxD2pIw==} dev: false + /rtc-detect@0.0.5: + resolution: {integrity: sha512-VANIELbaoIkZRj4gyiCCbTM+/ASy0eNgF35jCs+rrGxzYvD7YIBajEbGGZeh+5ZCNAX8/rT8IVRdpuallf174Q==} + dev: false + /run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} @@ -15173,7 +15214,7 @@ file-saver: '*' lodash: '*' semver: '*' - vue: '*' + vue: 3.5.11 xlsx: '*' xlsx-style: '*' dependencies: @@ -15201,7 +15242,7 @@ mitt: '*' semver: '*' senin-help: '*' - vue: '*' + vue: 3.5.11 dependencies: '@tanstack/vue-query': 4.37.1(vue@3.5.11) axios: 1.7.7 @@ -15532,7 +15573,6 @@ /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} @@ -16089,7 +16129,7 @@ postcss-sass: 0.4.4 postcss-scss: 2.1.1 postcss-selector-parser: 6.1.1 - postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-less@3.1.4)(postcss-scss@2.1.1)(postcss@7.0.39) postcss-value-parser: 4.2.0 resolve-from: 5.0.0 slash: 3.0.0 @@ -16196,7 +16236,7 @@ postcss-sass: 0.3.5 postcss-scss: 2.1.1 postcss-selector-parser: 3.1.2 - postcss-syntax: 0.36.2(postcss-html@0.36.0)(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0)(postcss-scss@2.1.1)(postcss@7.0.39) + postcss-syntax: 0.36.2(postcss-html@1.5.0)(postcss-scss@4.0.5)(postcss@8.4.18) postcss-value-parser: 3.3.1 resolve-from: 4.0.0 signal-exit: 3.0.7 @@ -16552,8 +16592,20 @@ trtc-sdk-v5: 5.6.2 dev: false + /trtc-cloud-js-sdk@2.9.3: + resolution: {integrity: sha512-4pZmNNoD1RjmhCIEA1HVRe/NIWDO8+w9hBpy8fJYa2B07la4Xc7QzCHnVZb7JgNoa6f3MVfUuOrtyrMsUMnt/Q==} + dependencies: + trtc-sdk-v5: 5.11.1 + dev: false + /trtc-js-sdk@4.15.19: resolution: {integrity: sha512-FFVvaji65d7+aq5o4hE+5lamvL1CEolNTPavaN7sRzh8Bb5UdDieBL9jV+lfxCnYpJ5lMi1YJt+EynDPX20Asw==} + dependencies: + webrtc-adapter: 8.2.3 + dev: false + + /trtc-sdk-v5@5.11.1: + resolution: {integrity: sha512-7EPZx3UUrvBAU9HynXsIcgI91wYWTYKbEkYUp186EDwgVEzc+v4uDL0427AY1PBI8tgf2ednO4qFk/C8crTSPQ==} dependencies: webrtc-adapter: 8.2.3 dev: false @@ -16636,15 +16688,16 @@ tslib: 1.14.1 typescript: 4.8.4 - /tuicall-engine-webrtc@3.1.6(react-native@0.76.5)(react@19.0.0): - resolution: {integrity: sha512-NdRwZTHbqp4LnDEoRfQDa7Z1oH4g156j27awgy2PYO4dBtm7EjAJLFKZeaZZzErU67uW4EuSBRMeCeFx91JKpQ==} + /tuicall-engine-webrtc@3.1.7: + resolution: {integrity: sha512-MRye9/x/8Gy5aRAfEACLtGhK5RcBLAev7cgCGi7OLNt0Uj28mEJkt1tHs4p7xTQiQj6vcB+7OVTdsxuSq7EmOA==} dependencies: - '@tencentcloud/chat': 3.5.2(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/chat': 3.5.7 rtc-ai-denoiser: 1.1.7 trtc-cloud-js-sdk: 2.5.0 - transitivePeerDependencies: - - react - - react-native + dev: false + + /tuikit-logger@0.0.4-beta.1: + resolution: {integrity: sha512-Ky83B1p88xakmfZ2f92cU0YxfolyxnQBv14tQpvnuHcMTnVR2Rjy8tityDGwF+pnxrAhJ7H7OPB/4rFdWVncIw==} dev: false /type-check@0.4.0: @@ -17037,7 +17090,7 @@ peerDependencies: '@babel/parser': ^7.15.8 '@nuxt/kit': ^3.2.2 - vue: 2 || 3 + vue: 3.5.11 peerDependenciesMeta: '@babel/parser': optional: true @@ -17537,7 +17590,7 @@ requiresBuild: true peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 + vue: 3.5.11 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -17552,7 +17605,7 @@ requiresBuild: true peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 + vue: 3.5.11 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -17580,7 +17633,7 @@ /vue-router@4.4.5(vue@3.5.11): resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==} peerDependencies: - vue: ^3.2.0 + vue: 3.5.11 dependencies: '@vue/devtools-api': 6.6.4 vue: 3.5.11(typescript@4.8.4) @@ -17602,7 +17655,7 @@ resolution: {integrity: sha512-3Wy6QcZl0VusCCHX3vYrWSILFlrOB2EQDoySnuYmASM5cUp1FivJGfkS5lp1CutDgyRb41g32r/1QCmiBj5i1Q==} engines: {node: '>=14.0.0'} peerDependencies: - vue: ^2.0.0 || ^3.0.0 + vue: 3.5.11 peerDependenciesMeta: vue: optional: true @@ -18060,7 +18113,3 @@ /zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} dev: false - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false diff --git a/src/constants/enum.ts b/src/constants/enum.ts index f654351..9ea0c7c 100644 --- a/src/constants/enum.ts +++ b/src/constants/enum.ts @@ -1,3 +1,6 @@ +export const TempFolderPath = + 'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/AdminBClient'; + export enum AreaType { /** * 鐪� @@ -16,3 +19,24 @@ */ Town, } + +export enum Gender { + /** + * 鐢� + */ + Male = 1, + /** + * 濂� + */ + Female = 2, +} + +export const GenderText = { + [Gender.Male]: '鐢�', + [Gender.Female]: '濂�', +}; + +export enum FlexEnterpriseSettingStatus { + NotSetting = -10, + IsSetting = 10, +} diff --git a/src/hooks/dic.ts b/src/hooks/dic.ts new file mode 100644 index 0000000..e256f01 --- /dev/null +++ b/src/hooks/dic.ts @@ -0,0 +1,54 @@ +import * as searchSettingServices from '@/services/api/SearchSetting'; +import { useQuery } from '@tanstack/vue-query'; +import { useQueryClient } from '@tanstack/vue-query'; + +type UseSearchSettingTypeOptions = { + searchType: number; + belongType?: number; + onSuccess?: (data: API.GetTypeSearchSettingList[]) => any; +}; + +export function useSearchSettingType({ + searchType, + belongType = null, + onSuccess, +}: UseSearchSettingTypeOptions) { + const { data, refetch } = useQuery({ + queryKey: ['searchSettingServices/getTypeSearchSettingList', { searchType, belongType }], + queryFn: async () => { + return await searchSettingServices.getTypeSearchSettingList( + { + searchType: searchType, + belongType: belongType, + }, + { showLoading: false } + ); + }, + placeholderData: () => [] as API.GetTypeSearchSettingList[], + onSuccess(data) { + onSuccess?.(data); + }, + }); + + const queryClient = useQueryClient(); + + async function ensureSearchSettingType() { + return await queryClient.ensureQueryData({ + queryKey: [ + 'searchSettingServices/getTypeSearchSettingList', + { searchType: searchType, belongType: belongType }, + ], + }); + } + + function getSearchSettingTypeNameById(id: string) { + return data.value.find((x) => x.id === id)?.name ?? ''; + } + + return { + searchSettingTypeList: data, + ensureSearchSettingType, + refetchSearchSettingType: refetch, + getSearchSettingTypeNameById, + }; +} diff --git a/src/hooks/index.ts b/src/hooks/index.ts index cbe1cbd..bc2b519 100644 --- a/src/hooks/index.ts +++ b/src/hooks/index.ts @@ -6,3 +6,4 @@ export * from './useEvent'; export * from './useUser'; export * from './help'; +export * from './dic'; diff --git a/src/hooks/useEvent.ts b/src/hooks/useEvent.ts index ba5d79a..85b58e5 100644 --- a/src/hooks/useEvent.ts +++ b/src/hooks/useEvent.ts @@ -3,6 +3,8 @@ export type GlobalEvent = { 'home:add': any; + 'employment:add': any; + 'employment:edit': any; }; export type GlobalEventListener<T extends keyof GlobalEvent> = (payload: GlobalEvent[T]) => any; diff --git a/src/router/index.ts b/src/router/index.ts index b2cd8b4..6a84aa0 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -96,6 +96,114 @@ }, }, { + path: '/FlexJobManage', + redirect: 'noRedirect', + component: Layout, + hidden: false, + alwaysShow: true, + meta: { + rank: 10010, + title: '鐏靛伐绠$悊', + rootMenu: true, + icon: 'home', + }, + children: [ + { + path: '/FlexJobManageList', + name: 'FlexJobManageList', + hidden: false, + alwaysShow: true, + component: () => import('@/views/FlexJobManage/FlexJobManage.vue'), + meta: { + rank: 10011, + title: '鐏靛伐绠$悊', + // rootMenu: true, + icon: 'home', + }, + }, + ], + }, + { + path: '/EmploymentManage', + redirect: 'noRedirect', + component: Layout, + hidden: false, + alwaysShow: true, + meta: { + rank: 10020, + title: '鐢ㄤ汉绠$悊', + rootMenu: true, + icon: 'home', + }, + children: [ + { + path: '/EmploymentManageList', + name: 'EmploymentManageList', + hidden: false, + alwaysShow: true, + component: () => import('@/views/EmploymentManage/EmploymentManage.vue'), + meta: { + rank: 10021, + title: '鐢ㄤ汉绠$悊', + // rootMenu: true, + icon: 'home', + }, + }, + { + path: '/AddOrEditEmployment', + name: 'AddOrEditEmployment', + hidden: true, + alwaysShow: false, + component: () => import('@/views/EmploymentManage/AddOrEditEmployment.vue'), + meta: { + rank: 10022, + title: '鍙戝竷缂栬緫浜哄憳', + // rootMenu: true, + icon: 'home', + }, + }, + { + path: '/EmploymentManageDetail', + name: 'EmploymentManageDetail', + hidden: true, + alwaysShow: false, + component: () => import('@/views/EmploymentManage/EmploymentManageDetail.vue'), + meta: { + rank: 10023, + title: '浜哄憳绠$悊璇︽儏', + // rootMenu: true, + icon: 'home', + }, + }, + { + path: '/EmploymentSignList', + name: 'EmploymentSignList', + hidden: true, + alwaysShow: false, + component: () => import('@/views/EmploymentManage/EmploymentSignList.vue'), + meta: { + rank: 10024, + title: '鎶ュ悕鍒楄〃', + // rootMenu: true, + icon: 'home', + }, + }, + { + path: '/EmploymentManageArrange', + name: 'EmploymentManageArrange', + hidden: false, + alwaysShow: true, + component: () => import('@/views/EmploymentManage/EmploymentManageArrange.vue'), + meta: { + rank: 10025, + title: '浜哄憳瀹夋帓', + // rootMenu: true, + icon: 'home', + }, + }, + ], + }, + { path: '/Login', name: 'Login', hidden: true, diff --git a/src/services/api/Common.ts b/src/services/api/Common.ts index 93aa15e..33f7365 100644 --- a/src/services/api/Common.ts +++ b/src/services/api/Common.ts @@ -17,6 +17,21 @@ }); } +/** 绗笁鏂规墜鏈哄彿楠岃瘉 鍙戦�侀獙璇佺爜 POST /api/Common/SendPhoneCertificationVerificationCode */ +export async function sendPhoneCertificationVerificationCode( + body: API.SendPhoneCertificationVerificationCodeInput, + options?: API.RequestConfig +) { + return request<number>('/api/Common/SendPhoneCertificationVerificationCode', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 鍙戦�侀獙璇佺爜 POST /api/Common/SendVerificationCode */ export async function sendVerificationCode( body: API.SendPhoneVerificationCodeByBusinessTypeInput, diff --git a/src/services/api/FlexEnterprise.ts b/src/services/api/FlexEnterprise.ts new file mode 100644 index 0000000..47751e0 --- /dev/null +++ b/src/services/api/FlexEnterprise.ts @@ -0,0 +1,108 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** 鏂板鎴栦慨鏀逛紒涓氱鐞� POST /api/FlexEnterprise/CreateOrEditFlexEnterprise */ +export async function createOrEditFlexEnterprise( + body: API.CreateOrEditFlexEnterpriseInput, + options?: API.RequestConfig +) { + return request<string>('/api/FlexEnterprise/CreateOrEditFlexEnterprise', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鏂板鎴栦慨鏀归摱琛岃缃� POST /api/FlexEnterprise/CreateOrEditFlexEnterpriseBankSetting */ +export async function createOrEditFlexEnterpriseBankSetting( + body: API.CreateOrEditFlexEnterpriseBankInput, + options?: API.RequestConfig +) { + return request<string>('/api/FlexEnterprise/CreateOrEditFlexEnterpriseBankSetting', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鏂板鎴栦慨鏀规秷鎭缃� POST /api/FlexEnterprise/CreateOrEditFlexEnterpriseMessageSetting */ +export async function createOrEditFlexEnterpriseMessageSetting( + body: API.CreateOrEditFlexEnterpriseMessageSettingInput, + options?: API.RequestConfig +) { + return request<string>('/api/FlexEnterprise/CreateOrEditFlexEnterpriseMessageSetting', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鏂板鎴栦慨鏀圭數瀛愮璁剧疆 POST /api/FlexEnterprise/CreateOrEditFlexEnterpriseSignSetting */ +export async function createOrEditFlexEnterpriseSignSetting( + body: API.CreateOrEditFlexEnterpriseSignSettingInput, + options?: API.RequestConfig +) { + return request<string>('/api/FlexEnterprise/CreateOrEditFlexEnterpriseSignSetting', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鍒犻櫎浼佷笟绠$悊 DELETE /api/FlexEnterprise/DeleteFlexEnterprise */ +export async function deleteFlexEnterprise( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIdeleteFlexEnterpriseParams, + options?: API.RequestConfig +) { + return request<number>('/api/FlexEnterprise/DeleteFlexEnterprise', { + method: 'DELETE', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 鑾峰彇浼佷笟绠$悊鍒楄〃 POST /api/FlexEnterprise/GetFlexEnterpriseList */ +export async function getFlexEnterpriseList( + body: API.GetFlexEnterpriseInput, + options?: API.RequestConfig +) { + return request<API.FlexEnterpriseDtoPageOutput>('/api/FlexEnterprise/GetFlexEnterpriseList', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 璁剧疆浼佷笟鐘舵�� POST /api/FlexEnterprise/SetFlexEnterpriseStatus */ +export async function setFlexEnterpriseStatus( + body: API.SetFlexEnterpriseStatusInput, + options?: API.RequestConfig +) { + return request<number>('/api/FlexEnterprise/SetFlexEnterpriseStatus', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/services/api/FlexEnterpriseWoker.ts b/src/services/api/FlexEnterpriseWoker.ts new file mode 100644 index 0000000..9bafeb5 --- /dev/null +++ b/src/services/api/FlexEnterpriseWoker.ts @@ -0,0 +1,54 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** C绔汉鍛樼鐞嗗垪琛� POST /api/FlexEnterpriseWoker/GetUserClientList */ +export async function getUserClientList( + body: API.GetUserClientForBackInput, + options?: API.RequestConfig +) { + return request<API.GetUserClientForBackOutputPageOutput>( + '/api/FlexEnterpriseWoker/GetUserClientList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** C绔汉鍛樼鐞�--绛剧害璇︽儏 POST /api/FlexEnterpriseWoker/GetUserClientSignList */ +export async function getUserClientSignList( + body: API.GetUserClientSignListInput, + options?: API.RequestConfig +) { + return request<API.UserClientSignListOutputPageOutput>( + '/api/FlexEnterpriseWoker/GetUserClientSignList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** C绔汉鍛樼鐞�--鑾峰彇浜哄憳璇︽儏 GET /api/FlexEnterpriseWoker/GetUserDetailForBack */ +export async function getUserDetailForBack( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetUserDetailForBackParams, + options?: API.RequestConfig +) { + return request<API.GetUserDetailForBackOutput>('/api/FlexEnterpriseWoker/GetUserDetailForBack', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} diff --git a/src/services/api/FlexTask.ts b/src/services/api/FlexTask.ts new file mode 100644 index 0000000..e26d387 --- /dev/null +++ b/src/services/api/FlexTask.ts @@ -0,0 +1,63 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** 鑾峰彇浠诲姟璇︽儏 GET /api/FlexTask/GetFlexTaskDetail */ +export async function getFlexTaskDetail( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetFlexTaskDetailParams, + options?: API.RequestConfig +) { + return request<API.GetFlexTaskDetailForBackOutput>('/api/FlexTask/GetFlexTaskDetail', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 鑾峰彇杩愯惀绔换鍔$鐞嗗垪琛� POST /api/FlexTask/GetFlexTaskList */ +export async function getFlexTaskList( + body: API.GetFlexTaskForBackInput, + options?: API.RequestConfig +) { + return request<API.FlexTaskListOutputPageOutput>('/api/FlexTask/GetFlexTaskList', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鑾峰彇鎶ュ悕璇︽儏 POST /api/FlexTask/GetFlexTaskWorkerList */ +export async function getFlexTaskWorkerList( + body: API.GetFlexTaskWorkerListInput, + options?: API.RequestConfig +) { + return request<API.GetWorkerListForBackOutputPageOutput>('/api/FlexTask/GetFlexTaskWorkerList', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 璁剧疆浠诲姟鎺ㄨ崘鐘舵�� POST /api/FlexTask/SetFlexTaskReRecommendStatus */ +export async function setFlexTaskReRecommendStatus( + body: API.SetRecommendInput, + options?: API.RequestConfig +) { + return request<number>('/api/FlexTask/SetFlexTaskReRecommendStatus', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/services/api/FlexWorker.ts b/src/services/api/FlexWorker.ts index 8124d65..8c2cc4c 100644 --- a/src/services/api/FlexWorker.ts +++ b/src/services/api/FlexWorker.ts @@ -14,6 +14,66 @@ }); } +/** 娣诲姞鑱旂郴璁板綍 GET /api/FlexWorker/AddUserResumeContractRecord */ +export async function addUserResumeContractRecord( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIaddUserResumeContractRecordParams, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/AddUserResumeContractRecord', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 鍙栨秷浜哄憳鏀惰棌 DELETE /api/FlexWorker/CancelUserResumeCollect */ +export async function cancelUserResumeCollect( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIcancelUserResumeCollectParams, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/CancelUserResumeCollect', { + method: 'DELETE', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 鏀惰棌浜哄憳绠�鍘� POST /api/FlexWorker/CollectFlexWorkerResume */ +export async function collectFlexWorkerResume( + body: API.CollectFlexWorkerResumeInput, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/CollectFlexWorkerResume', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鏀惰棌鍚嶇墖 GET /api/FlexWorker/CollectVisitingCard */ +export async function collectVisitingCard( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIcollectVisitingCardParams, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/CollectVisitingCard', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + /** 浠诲姟鍒犻櫎 DELETE /api/FlexWorker/DeleteFlexTask */ export async function deleteFlexTask( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) @@ -25,6 +85,79 @@ params: { ...params, }, + ...(options || {}), + }); +} + +/** 鍒犻櫎鍚嶇墖鏀惰棌 DELETE /api/FlexWorker/DeleteMyCardCollect */ +export async function deleteMyCardCollect( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIdeleteMyCardCollectParams, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/DeleteMyCardCollect', { + method: 'DELETE', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 缂栬緫B绔悕鐗� POST /api/FlexWorker/EditVisitingCard */ +export async function editVisitingCard( + body: API.MyVisitingCardOutput, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/EditVisitingCard', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鑾峰彇鐪佸競鍖哄垪琛� POST /api/FlexWorker/GetAreaList */ +export async function getAreaList(body: API.GetAreaListInput, options?: API.RequestConfig) { + return request<API.AreaDto[]>('/api/FlexWorker/GetAreaList', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鑾峰彇璧勬牸璇佷功鍒楄〃 GET /api/FlexWorker/GetCertificationList */ +export async function getCertificationList(options?: API.RequestConfig) { + return request<API.GetSearchSettingListOutput[]>('/api/FlexWorker/GetCertificationList', { + method: 'GET', + ...(options || {}), + }); +} + +/** 鑾峰彇浼佷笟绂忓埄鍒楄〃 GET /api/FlexWorker/GetEnterpriseWelfareList */ +export async function getEnterpriseWelfareList(options?: API.RequestConfig) { + return request<API.GetSearchSettingListOutput[]>('/api/FlexWorker/GetEnterpriseWelfareList', { + method: 'GET', + ...(options || {}), + }); +} + +/** 鑾峰彇绛剧害浜哄憳鍒楄〃 POST /api/FlexWorker/GetFlexSignWorkerList */ +export async function getFlexSignWorkerList( + body: API.GetFlexSignWorkerListInput, + options?: API.RequestConfig +) { + return request<API.GetNewestWorkerListOutputPageOutput>('/api/FlexWorker/GetFlexSignWorkerList', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, ...(options || {}), }); } @@ -89,6 +222,209 @@ }); } +/** 搴旇仒绠$悊-浠诲姟璇︽儏-鑾峰彇浜哄憳鎶ュ悕鍒楄〃 POST /api/FlexWorker/GetFlexTaskWorkerApplyList */ +export async function getFlexTaskWorkerApplyList( + body: API.GetFlexTaskWorkerApplyListInput, + options?: API.RequestConfig +) { + return request<API.GetNewestWorkerListOutputPageOutput>( + '/api/FlexWorker/GetFlexTaskWorkerApplyList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 浠诲姟绠$悊-寰呭畨鎺�/宸插畨鎺� 浜哄憳鍒楄〃 POST /api/FlexWorker/GetFlexTaskWorkerArrangeList */ +export async function getFlexTaskWorkerArrangeList( + body: API.GetFlexTaskWorkerArrangeListInput, + options?: API.RequestConfig +) { + return request<API.GetNewestWorkerListOutputPageOutput>( + '/api/FlexWorker/GetFlexTaskWorkerArrangeList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 楠屾敹绠$悊-浠诲姟璇︽儏-鑾峰彇鍗曚釜浜哄憳鎻愪氦楠屾敹鍐呭鍒楄〃 POST /api/FlexWorker/GetFlexTaskWorkerCheckContentDto */ +export async function getFlexTaskWorkerCheckContentDto( + body: API.GetFlexTaskWorkerCheckContentDtoInput, + options?: API.RequestConfig +) { + return request<API.GetTaskWorkerCheckContentOutput>( + '/api/FlexWorker/GetFlexTaskWorkerCheckContentDto', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鑾峰彇楠屾敹绠$悊 寰呴獙鏀�/宸查獙鏀�-浜哄憳鍒楄〃 POST /api/FlexWorker/GetFlexTaskWorkerCheckList */ +export async function getFlexTaskWorkerCheckList( + body: API.GetFlexTaskWorkerCheckListInput, + options?: API.RequestConfig +) { + return request<API.GetNewestWorkerListOutputPageOutput>( + '/api/FlexWorker/GetFlexTaskWorkerCheckList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鎴戠殑鍚嶇墖澶� POST /api/FlexWorker/GetMyCollectVisitingCardList */ +export async function getMyCollectVisitingCardList( + body: API.GetCollectVisitingCardListInput, + options?: API.RequestConfig +) { + return request<API.GetCollectVisitingCardOutputPageOutput>( + '/api/FlexWorker/GetMyCollectVisitingCardList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鑾峰彇鎴戠殑鍚嶇墖 GET /api/FlexWorker/GetMyVisitingCard */ +export async function getMyVisitingCard(options?: API.RequestConfig) { + return request<API.MyVisitingCardOutput>('/api/FlexWorker/GetMyVisitingCard', { + method: 'GET', + ...(options || {}), + }); +} + +/** 鑾峰彇鐏靛伐鍒楄〃 POST /api/FlexWorker/GetNewesWorkertList */ +export async function getNewesWorkertList( + body: API.GetNewestWorkerListInput, + options?: API.RequestConfig +) { + return request<API.GetNewestWorkerListOutputPageOutput>('/api/FlexWorker/GetNewesWorkertList', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鑾峰彇鑱旂郴璁板綍 POST /api/FlexWorker/GetUserContractRecordList */ +export async function getUserContractRecordList(body: API.PageInput, options?: API.RequestConfig) { + return request<API.GetNewestWorkerListOutputPageOutput>( + '/api/FlexWorker/GetUserContractRecordList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鑾峰彇绠�鍘嗘敹钘忓垪琛� POST /api/FlexWorker/GetWorkerResumeCollectList */ +export async function getWorkerResumeCollectList(body: API.PageInput, options?: API.RequestConfig) { + return request<API.GetNewestWorkerListOutputPageOutput>( + '/api/FlexWorker/GetWorkerResumeCollectList', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 浼佷笟瑙g害 GET /api/FlexWorker/StopEnterpriseUserContract */ +export async function stopEnterpriseUserContract( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIstopEnterpriseUserContractParams, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/StopEnterpriseUserContract', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 浠诲姟浜哄憳瀹夋帓/鍙栨秷瀹夋帓 POST /api/FlexWorker/TaskWorkerArrange */ +export async function taskWorkerArrange( + body: API.TaskWorkerArrangeInput, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/TaskWorkerArrange', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 楠屾敹绠$悊-楠屾敹璇︽儏-瀵逛汉鍛樿繘琛岄獙鏀跺鏍� POST /api/FlexWorker/TaskWorkerCheckAcceptStatus */ +export async function taskWorkerCheckAcceptStatus( + body: API.TaskWorkerCheckAcceptStatusInput, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/TaskWorkerCheckAcceptStatus', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 浠诲姟浜哄憳褰曠敤/璋㈢粷 POST /api/FlexWorker/TaskWorkerHireRefuse */ +export async function taskWorkerHireRefuse( + body: API.TaskWorkerHireRefuseInput, + options?: API.RequestConfig +) { + return request<number>('/api/FlexWorker/TaskWorkerHireRefuse', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + /** 鏇存柊鎷涜仒浠诲姟鍙戝竷鐘舵�� POST /api/FlexWorker/UpdateFlexTaskReleaseStatus */ export async function updateFlexTaskReleaseStatus( body: API.UpdateTaskReleaseStatusInput, diff --git a/src/services/api/User.ts b/src/services/api/User.ts new file mode 100644 index 0000000..603e2e7 --- /dev/null +++ b/src/services/api/User.ts @@ -0,0 +1,11 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** 鑾峰彇涓汉淇℃伅璇︽儏 GET /api/User/GetUserInfo */ +export async function getUserInfo(options?: API.RequestConfig) { + return request<API.UserDto>('/api/User/GetUserInfo', { + method: 'GET', + ...(options || {}), + }); +} diff --git a/src/services/api/UserResume.ts b/src/services/api/UserResume.ts index b10d921..3ec42a4 100644 --- a/src/services/api/UserResume.ts +++ b/src/services/api/UserResume.ts @@ -2,7 +2,15 @@ // @ts-ignore import { request } from '@/utils/request'; -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResume */ +/** 鏍规嵁鐢ㄦ埛鑾峰彇鏈熷緟鐨勫伐浣� GET /api/UserResume/GetResumeExpectationJob */ +export async function getResumeExpectationJob(options?: API.RequestConfig) { + return request<API.UserResumeExpectationJobOutput>('/api/UserResume/GetResumeExpectationJob', { + method: 'GET', + ...(options || {}), + }); +} + +/** 鏍规嵁鐢ㄦ埛鑾峰彇绠�鍘� GET /api/UserResume/GetUserResume */ export async function getUserResume(options?: API.RequestConfig) { return request<API.MyResumeOutput>('/api/UserResume/GetUserResume', { method: 'GET', @@ -10,7 +18,15 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeCertificateDetailById */ +/** 鏍规嵁鐢ㄦ埛鑾峰彇绠�鍘嗗熀纭�淇℃伅 GET /api/UserResume/GetUserResumeBaseInfo */ +export async function getUserResumeBaseInfo(options?: API.RequestConfig) { + return request<API.UserResumeBaseInfoOutput>('/api/UserResume/GetUserResumeBaseInfo', { + method: 'GET', + ...(options || {}), + }); +} + +/** 鏍规嵁璁よ瘉id鑾峰彇璁よ瘉璇︽儏 GET /api/UserResume/GetUserResumeCertificateDetailById */ export async function getUserResumeCertificateDetailById( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) params: API.APIgetUserResumeCertificateDetailByIdParams, @@ -28,7 +44,7 @@ ); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeCertificateList */ +/** 鏍规嵁鐢ㄦ埛ID鑾峰彇鐢ㄦ埛璁よ瘉淇℃伅 GET /api/UserResume/GetUserResumeCertificateList */ export async function getUserResumeCertificateList(options?: API.RequestConfig) { return request<API.UserResumeCertificateListOutput[]>( '/api/UserResume/GetUserResumeCertificateList', @@ -39,7 +55,7 @@ ); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeDetailInfo */ +/** 鑾峰彇鐢ㄦ埛绠�鍘嗚鎯� GET /api/UserResume/GetUserResumeDetailInfo */ export async function getUserResumeDetailInfo(options?: API.RequestConfig) { return request<API.UserResumeDetailInfoOutput>('/api/UserResume/GetUserResumeDetailInfo', { method: 'GET', @@ -47,7 +63,7 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeWorkExperience */ +/** 鏍规嵁鐢ㄦ埛id鑾峰彇鐢ㄦ埛宸ヤ綔缁忓巻 GET /api/UserResume/GetUserResumeWorkExperience */ export async function getUserResumeWorkExperience(options?: API.RequestConfig) { return request<API.UserResumeWorkExperienceOutput>( '/api/UserResume/GetUserResumeWorkExperience', @@ -58,12 +74,12 @@ ); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeBaseInfo */ +/** 淇濆瓨绠�鍘嗙殑鍩虹淇℃伅 POST /api/UserResume/SaveUserResumeBaseInfo */ export async function saveUserResumeBaseInfo( body: API.SaveUserResumeBaseInfoInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeBaseInfo', { + return request<number>('/api/UserResume/SaveUserResumeBaseInfo', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -73,12 +89,12 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeCertificate */ +/** 淇濆瓨鐢ㄦ埛鐨勭畝鍘嗚璇佷俊鎭� POST /api/UserResume/SaveUserResumeCertificate */ export async function saveUserResumeCertificate( body: API.SaveUserResumeCertificateInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeCertificate', { + return request<number>('/api/UserResume/SaveUserResumeCertificate', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -88,12 +104,12 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeDetailInfo */ +/** 淇濆瓨绠�鍘嗚鎯� POST /api/UserResume/SaveUserResumeDetailInfo */ export async function saveUserResumeDetailInfo( body: API.SaveUserResumeDetailInfoInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeDetailInfo', { + return request<number>('/api/UserResume/SaveUserResumeDetailInfo', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -103,12 +119,12 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeExpectationJob */ +/** 淇濆瓨鐢ㄦ埛鏈熸湜鐨勫矖浣嶄俊鎭� POST /api/UserResume/SaveUserResumeExpectationJob */ export async function saveUserResumeExpectationJob( body: API.SaveUserResumeExpectationJobInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeExpectationJob', { + return request<number>('/api/UserResume/SaveUserResumeExpectationJob', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -118,12 +134,12 @@ }); } -/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeWorkExperience */ +/** 淇濆瓨鐢ㄦ埛宸ヤ綔缁忓巻 POST /api/UserResume/SaveUserResumeWorkExperience */ export async function saveUserResumeWorkExperience( body: API.SaveUserResumeWorkExperienceInput, options?: API.RequestConfig ) { - return request<any>('/api/UserResume/SaveUserResumeWorkExperience', { + return request<number>('/api/UserResume/SaveUserResumeWorkExperience', { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/src/services/api/index.ts b/src/services/api/index.ts index 94b7246..ffe8d03 100644 --- a/src/services/api/index.ts +++ b/src/services/api/index.ts @@ -8,6 +8,9 @@ import * as BaseModule from './BaseModule'; import * as Common from './Common'; import * as Features from './Features'; +import * as FlexEnterprise from './FlexEnterprise'; +import * as FlexEnterpriseWoker from './FlexEnterpriseWoker'; +import * as FlexTask from './FlexTask'; import * as FlexWorker from './FlexWorker'; import * as IdentityRole from './IdentityRole'; import * as IdentityUser from './IdentityUser'; @@ -17,6 +20,7 @@ import * as Profile from './Profile'; import * as SearchSetting from './SearchSetting'; import * as Tenant from './Tenant'; +import * as User from './User'; import * as UserResume from './UserResume'; import * as Version from './Version'; export default { @@ -26,6 +30,9 @@ BaseModule, Common, Features, + FlexEnterprise, + FlexEnterpriseWoker, + FlexTask, FlexWorker, IdentityRole, IdentityUser, @@ -35,6 +42,7 @@ Profile, SearchSetting, Tenant, + User, UserResume, Version, }; diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts index cd366cf..b4ce2de 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -42,9 +42,9 @@ sexType?: GenderTypeEnum; /** 璇佷功Id */ listCertionIds?: string[]; - provinceId?: string; - cityId?: string; - areaId?: string; + provinceId?: number; + cityId?: number; + areaId?: number; address?: string; startDate?: string; endDate?: string; @@ -68,8 +68,20 @@ isCache?: boolean; } + interface APIaddUserResumeContractRecordParams { + flexWorkerId?: string; + } + interface APIapiDefinitionParams { includeTypes?: boolean; + } + + interface APIcancelUserResumeCollectParams { + flexWorkerId?: string; + } + + interface APIcollectVisitingCardParams { + flexVisitingCardId?: string; } interface APIcreateParams { @@ -83,6 +95,10 @@ } interface APIdeleteDefaultConnectionStringParams { + id?: string; + } + + interface APIdeleteFlexEnterpriseParams { id?: string; } @@ -100,6 +116,10 @@ interface APIdeleteModuleParams { id?: string; + } + + interface APIdeleteMyCardCollectParams { + visitingCardCollectId?: string; } interface APIdeleteRoleParams { @@ -164,6 +184,10 @@ moduleId?: string; } + interface APIgetFlexTaskDetailParams { + id?: string; + } + interface APIgetFlexTaskDtoParams { id?: string; } @@ -218,6 +242,10 @@ id: string; } + interface APIgetUserDetailForBackParams { + userId?: string; + } + interface APIgetUserListByPhoneNumberParams { phoneNumber?: string; clientId?: string; @@ -270,6 +298,10 @@ interface APIsetForUserParams { userId?: string; permissionName?: string; + } + + interface APIstopEnterpriseUserContractParams { + flexWorkerId?: string; } interface APIupdateDefaultConnectionStringParams { @@ -355,6 +387,21 @@ values?: Record<string, any>; } + interface AreaDto { + id?: string; + areaCode?: number; + parentId?: number; + areaName?: string; + /** 1鐪� 2甯� 3鍖� 4闀� */ + layer?: number; + sort?: number; + children?: AreaDto[]; + /** 绠�鏄撴嫾闊� */ + simpleSpelling?: string; + /** 蹇�熸绱� */ + quickQuery?: string; + } + interface BaseAuthorizeDto { moduleType?: number; moduleId?: string; @@ -423,6 +470,8 @@ verificationCode: string; } + type ChargeTypeEnum = 1 | 2; + interface CheckLoginVerificationCodeInput { messageType?: string; phoneNumber: string; @@ -431,6 +480,11 @@ interface ClockDto { kind?: string; + } + + interface CollectFlexWorkerResumeInput { + flexWorkerId?: string; + userResumeId?: string; } interface ConditionInfo { @@ -449,6 +503,69 @@ interface ControllerInterfaceApiDescriptionModel { type?: string; + } + + interface CreateOrEditFlexEnterpriseBankInput { + id?: string; + /** 寮�鎴疯 */ + openBank?: string; + /** 寮�鎴锋敮琛� */ + openBranchBank?: string; + /** 閾惰璐︽埛 */ + bankAccount?: string; + verifyStatus?: VerifyStatus; + flexEnterpirseId?: string; + } + + interface CreateOrEditFlexEnterpriseInput { + id?: string; + /** 浼佷笟鍚嶇О */ + enterpriseName?: string; + /** 娉曚汉濮撳悕 */ + legalPersonName?: string; + /** 娉曚汉韬唤璇佸彿 */ + legalPersonIdNumber?: string; + /** 璁よ瘉鑱旂郴浜� */ + contact?: string; + /** 璁よ瘉鑱旂郴浜虹數璇� */ + contactPhone?: string; + /** 绀句細缁熶竴淇$敤浠g爜 */ + societyCreditCode?: string; + /** 鐪佷唤code */ + provinceCode?: number; + /** 鐪佷唤鍚嶇О */ + proviceName?: string; + /** 鍩庡競Code */ + cityCode?: number; + /** 鍩庡競鍚嶇О */ + cityName?: string; + status?: FlexEnterpriseStatus; + settingStatus?: FlexEnterpriseSettingStatus; + certificationStatus?: FlexEnterpriseCertificationStatus; + /** 鎵�灞炶涓� */ + belongIndustryType?: string; + } + + interface CreateOrEditFlexEnterpriseMessageSettingInput { + id?: string; + messageChannel?: MessageChannelEnum; + /** 娑堟伅璐圭敤 */ + messageCost?: number; + flexEnterpirseId?: string; + } + + interface CreateOrEditFlexEnterpriseSignSettingInput { + id?: string; + signChannel?: SignChannelEnum; + chargeType?: ChargeTypeEnum; + /** 瀹炲悕璐圭敤 */ + realVerifyCost?: number; + /** 绛剧害璐圭敤 */ + signCost?: number; + /** 涓�鍙d环 */ + mergeSignCost?: number; + /** 浼佷笟Id */ + flexEnterpirseId?: string; } interface CreateOrEditSearchInput { @@ -512,6 +629,20 @@ interface EnableSearchSettingInput { id: string; status: boolean; + } + + interface EnterpriseSignSettingDto { + id?: string; + signChannel?: SignChannelEnum; + chargeType?: ChargeTypeEnum; + /** 瀹炲悕璐圭敤 */ + realVerifyCost?: number; + /** 绛剧害璐圭敤 */ + signCost?: number; + /** 涓�鍙d环 */ + mergeSignCost?: number; + /** 浼佷笟Id */ + flexEnterpirseId?: string; } interface EntityExtensionDto { @@ -608,19 +739,122 @@ key?: string; } + interface FlexEnterpriseBankDto { + id?: string; + /** 寮�鎴疯 */ + openBank?: string; + /** 寮�鎴锋敮琛� */ + openBranchBank?: string; + /** 閾惰璐︽埛 */ + bankAccount?: string; + verifyStatus?: VerifyStatus; + flexEnterpirseId?: string; + } + + type FlexEnterpriseCertificationStatus = 10 | -10; + + interface FlexEnterpriseDto { + id?: string; + /** 浼佷笟鍚嶇О */ + enterpriseName?: string; + /** 娉曚汉濮撳悕 */ + legalPersonName?: string; + /** 娉曚汉韬唤璇佸彿 */ + legalPersonIdNumber?: string; + /** 璁よ瘉鑱旂郴浜� */ + contact?: string; + /** 璁よ瘉鑱旂郴浜虹數璇� */ + contactPhone?: string; + /** 绀句細缁熶竴淇$敤浠g爜 */ + societyCreditCode?: string; + /** 鐪佷唤code */ + provinceCode?: number; + /** 鐪佷唤鍚嶇О */ + proviceName?: string; + /** 鍩庡競Code */ + cityCode?: number; + /** 鍩庡競鍚嶇О */ + cityName?: string; + status?: FlexEnterpriseStatus; + settingStatus?: FlexEnterpriseSettingStatus; + certificationStatus?: FlexEnterpriseCertificationStatus; + /** 鎵�灞炶涓� */ + belongIndustryType?: string; + enterpriseSignSettingDto?: EnterpriseSignSettingDto; + flexEnterpriseBankDto?: FlexEnterpriseBankDto; + flexEnterpriseMessageSettingDto?: FlexEnterpriseMessageSettingDto; + } + + interface FlexEnterpriseDtoPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: FlexEnterpriseDto[]; + } + + interface FlexEnterpriseMessageSettingDto { + id?: string; + messageChannel?: MessageChannelEnum; + /** 娑堟伅璐圭敤 */ + messageCost?: number; + flexEnterpirseId?: string; + } + + type FlexEnterpriseSettingStatus = 10 | -10; + + type FlexEnterpriseStatus = 10 | -10; + interface FlexTaskAideDto { id?: string; aideType?: FlexTaskAideEnum; name?: string; + imageUrl?: string; } type FlexTaskAideEnum = 10 | 20; + type FlexTaskCheckAcceptStatusEnum = 10 | 20 | 30; + type FlexTaskFeeTypeEnum = 10 | 20 | 30 | 40; + + interface FlexTaskListOutput { + taskId?: string; + /** 浠诲姟鍚嶇О */ + taskName?: string; + releaseStatus?: FlexTaskReleaseStatusEnum; + /** 瀹夋帓鐘舵�� */ + arrangeStatus?: boolean; + /** 鍙戝竷鏃ユ湡 */ + startDate?: string; + /** 缁撴潫鏃ユ湡 */ + endDate?: string; + feeType?: FlexTaskFeeTypeEnum; + settleType?: FlexTaskSettleTypeEnum; + settleStatus?: SettleStatusEnum; + /** 鏄惁鎺ㄨ崘 */ + isRecommend?: boolean; + /** 缁撶畻鏂瑰紡 */ + fee?: number; + /** 鎶ュ悕浜烘暟 */ + applyWorkerCount?: number; + /** 鏄惁宸插畬鎴愰獙鏀� */ + isOverCheck?: boolean; + overCheckStatus?: OverCheckStatusEnum; + creationTime?: string; + } + + interface FlexTaskListOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: FlexTaskListOutput[]; + } type FlexTaskReleaseStatusEnum = 10 | 20; type FlexTaskSettleTypeEnum = 10 | 20 | 30; + + type FlexTaskWorkerHireEnum = 1 | 10 | 20 | 30 | 40; + + type FlexWorkerEleSignEnum = 10 | 20 | 30; type GenderTypeEnum = 1 | 2; @@ -629,8 +863,89 @@ phoneNumber: string; } + interface GetAreaListInput { + /** 1鐪� 2甯� 3鍖� 4闀� */ + layer?: number; + /** 鐖剁骇缂栫爜 */ + parentCode?: number; + } + + interface GetCollectVisitingCardListInput { + pageModel?: Pagination; + } + + interface GetCollectVisitingCardOutput { + id?: string; + enterpriseId?: string; + userId?: string; + name?: string; + headPhoto?: string; + phoneNum?: string; + weChat?: string; + jobName?: string; + email?: string; + companyName?: string; + creationTime?: string; + } + + interface GetCollectVisitingCardOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetCollectVisitingCardOutput[]; + } + interface GetFeatureListResultDto { groups?: FeatureGroupDto[]; + } + + interface GetFlexEnterpriseInput { + pageModel?: Pagination; + /** 浼佷笟鍚嶇О/娉曚汉/鑱旂郴浜� */ + searchWord?: string; + flexEnterpriseSettingStatus?: FlexEnterpriseSettingStatus; + } + + interface GetFlexSignWorkerListInput { + pageModel?: Pagination; + signStatus?: FlexWorkerEleSignEnum; + } + + interface GetFlexTaskDetailForBackOutput { + /** 浠诲姟Id */ + taskId?: string; + /** 浠诲姟鍚嶇О */ + taskName?: string; + isArrange?: boolean; + startDate?: string; + endDate?: string; + feeType?: FlexTaskFeeTypeEnum; + feeTypeName?: string; + settleType?: FlexTaskSettleTypeEnum; + /** 缁撶畻鏂瑰紡 */ + settleTypeName?: string; + /** 绂忓埄 */ + taskWeals?: FlexTaskAideDto[]; + /** 璇佷功 */ + taskCerts?: FlexTaskAideDto[]; + /** 鏈嶅姟璐� */ + fee?: number; + provinceId?: number; + cityId?: number; + areaId?: number; + /** 鐪� */ + provinceName?: string; + /** 甯� */ + cityName?: string; + /** 鍖哄煙 */ + areaName?: string; + /** 浠诲姟鍦扮偣 */ + address?: string; + creationDate?: string; + /** 鏈�灏忓勾榫� */ + minAge?: number; + /** 鏈�澶у勾榫� */ + maxAge?: number; + sexType?: GenderTypeEnum; } interface GetFlexTaskDtoOutput { @@ -646,9 +961,9 @@ taskWeals?: FlexTaskAideDto[]; taskCerts?: FlexTaskAideDto[]; fee?: number; - provinceId?: string; - cityId?: string; - areaId?: string; + provinceId?: number; + cityId?: number; + areaId?: number; provinceName?: string; cityName?: string; areaName?: string; @@ -657,6 +972,19 @@ minAge?: number; maxAge?: number; sexType?: GenderTypeEnum; + } + + interface GetFlexTaskForBackInput { + pageModel?: Pagination; + /** 浠诲姟鍚嶇О */ + taskName?: string; + /** 鍙戝竷寮�濮嬫棩鏈� */ + startBeginDate?: string; + /** 鍙戝竷缁撴潫鏃ユ湡 */ + startEndDate?: string; + releaseStatus?: FlexTaskReleaseStatusEnum; + /** 鏄惁鎺ㄨ崘 */ + isRecommend?: boolean; } interface GetFlexTaskListByStatusInput { @@ -676,6 +1004,8 @@ taskId?: string; taskName?: string; isArrange?: boolean; + isOverCheck?: boolean; + releaseStatus?: FlexTaskReleaseStatusEnum; startDate?: string; endDate?: string; feeType?: FlexTaskFeeTypeEnum; @@ -688,13 +1018,112 @@ areaName?: string; address?: string; applyWorkerCount?: number; - creationDate?: string; + creationTime?: string; } interface GetFlexTaskListOutputPageOutput { pageModel?: Pagination; objectData?: any; data?: GetFlexTaskListOutput[]; + } + + interface GetFlexTaskWorkerApplyListInput { + pageModel?: Pagination; + flexTaskId?: string; + } + + interface GetFlexTaskWorkerArrangeListInput { + pageModel?: Pagination; + flexTaskId?: string; + /** 濮撳悕韬唤璇佸彿 */ + searchKeys?: string; + /** 鏄惁宸插畨鎺� */ + arrangStatus?: boolean; + } + + interface GetFlexTaskWorkerCheckContentDtoInput { + /** 浠诲姟Id */ + flexTaskId?: string; + /** 鐏靛伐Id */ + flexWorkerId?: string; + } + + interface GetFlexTaskWorkerCheckListInput { + pageModel?: Pagination; + /** 浠诲姟Id */ + flexTaskId?: string; + checkAcceptStatus?: FlexTaskCheckAcceptStatusEnum; + } + + interface GetFlexTaskWorkerListInput { + pageModel?: Pagination; + flexTaskId?: string; + } + + interface GetFlexWorkerRecordOutput { + taskId?: string; + workTime?: string; + cityId?: string; + cityName?: string; + address?: string; + taskName?: string; + } + + interface GetNewestWorkerListInput { + pageModel?: Pagination; + /** 宀椾綅Id */ + expectationJobId?: string; + genderType?: GenderTypeEnum; + /** 韬唤 */ + socialIdentity?: string; + minAge?: number; + maxAge?: number; + /** 璇佷功 */ + certificateTypeId?: string; + } + + interface GetNewestWorkerListOutput { + userId?: string; + userResumeId?: string; + name?: string; + idNumber?: string; + contactPhone?: string; + isRealName?: boolean; + age?: number; + avatarUrl?: string; + genderType?: GenderTypeEnum; + educationalLevel?: string; + socialIdentity?: string; + jobIds?: string[]; + listExpectationJobName?: string[]; + certIds?: string[]; + listCertificateNames?: string[]; + userResumeLifeCircles?: string[]; + socialIdentityName?: string; + eduLevelName?: string; + arrangeCount?: number; + workExperience?: string; + freeTime?: UserResumeFreeTimeEnum; + jobSeekingStatus?: UserResumeJobSeekingStatusEnum; + creationTime?: string; + lastModificationTime?: string; + fristContractTime?: string; + lastContractTime?: string; + userSignStatus?: FlexWorkerEleSignEnum; + enterSignStatus?: FlexWorkerEleSignEnum; + hireStatus?: FlexTaskWorkerHireEnum; + checkAcceptStatus?: FlexTaskCheckAcceptStatusEnum; + arrangeStatus?: boolean; + applyTime?: string; + height?: string; + weight?: string; + workRecordList?: GetFlexWorkerRecordOutput[]; + } + + interface GetNewestWorkerListOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetNewestWorkerListOutput[]; } interface GetPermissionListResultDto { @@ -726,10 +1155,39 @@ parentId?: string; } + interface GetSearchSettingListOutput { + id?: string; + name?: string; + searchType?: number; + url?: string; + sort?: number; + } + interface GetSearchSettingListPageOutput { pageModel?: Pagination; objectData?: any; data?: GetSearchSettingList[]; + } + + interface GetTaskWorkerCheckContentOutput { + /** 浠诲姟Id */ + flexTaskId?: string; + /** 鐏靛伐Id */ + flexWorkerId?: string; + /** 濮撳悕 */ + name?: string; + /** 鑱旂郴鐢佃瘽 */ + contactPhone?: string; + /** 鏄惁瀹炲悕 */ + isRealName?: boolean; + /** 澶村儚 */ + avatarUrl?: string; + /** 鎻愪氦楠屾敹鏃堕棿 */ + appleCheckTime?: string; + /** 楠屾敹鍥剧墖璺緞 */ + checkImageUrl?: string; + checkImageLists?: string[]; + checkAcceptStatus?: FlexTaskCheckAcceptStatusEnum; } interface GetTypeSearchSettingList { @@ -741,6 +1199,98 @@ interface GetTypeSearchSettingListInput { searchType: number; belongType?: number; + } + + interface GetUserClientForBackInput { + pageModel?: Pagination; + /** 濮撳悕/鎵嬫満/韬唤璇佸彿/瀹㈡埛 */ + searchKeys?: string; + /** 鏈�杩戝綍鐢ㄦ椂闂�--寮�濮� */ + nearlyHireDateTimeBegin?: string; + /** 鏈�杩戝綍鐢ㄦ椂闂�--缁撴潫 */ + nearlyHireDateTimeEnd?: string; + /** 鏈�杩戠绾︽椂闂�--寮�濮� */ + nearlySignDateTimeBegin?: string; + /** 鏈�杩戠绾︽椂闂�--缁撴潫 */ + nearlySignDateTimeEnd?: string; + /** 瀹炲悕鐘舵�� */ + realVerifyStatus?: boolean; + } + + interface GetUserClientForBackOutput { + userId?: string; + userResumeId?: string; + /** 濮撳悕 */ + name?: string; + /** 韬唤璇佸彿 */ + idNumber?: string; + /** 鎵嬫満鍙� */ + contactPhone?: string; + /** 骞撮緞 */ + age?: number; + genderType?: GenderTypeEnum; + /** 甯搁┗鐪佷唤Code */ + residentProvinceCode?: number; + /** 甯搁┗鍩庡競code */ + residentCityCode?: number; + /** 甯搁┗鐪佷唤鍚嶇О */ + residentProvinceName?: string; + /** 甯搁┗鍩庡競鍚嶇О */ + residentCityName?: string; + /** 瀹炲悕鐘舵�� */ + realVerifyStatus?: boolean; + /** 瀹炲悕鏃堕棿 */ + realVerifyTime?: string; + nearlyWorkRecord?: NearlyFlexWorkerRecord; + } + + interface GetUserClientForBackOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetUserClientForBackOutput[]; + } + + interface GetUserClientSignListInput { + pageModel?: Pagination; + userId?: string; + } + + interface GetUserDetailForBackOutput { + userId?: string; + userResumeId?: string; + /** 濮撳悕 */ + name?: string; + /** 韬唤璇佸彿 */ + idNumber?: string; + /** 鎵嬫満鍙� */ + contactPhone?: string; + /** 骞撮緞 */ + age?: number; + /** 韬唤璇佹闈� */ + certificateFrontImgUrl?: string; + /** 韬唤璇佸弽闈� */ + certificateBackImgUrl?: string; + } + + interface GetWorkerListForBackOutput { + userId?: string; + /** 濮撳悕 */ + name?: string; + /** 韬唤璇佸彿鐮� */ + idNumber?: string; + /** 鐢佃瘽鍙风爜 */ + contactPhone?: string; + /** 骞撮緞 */ + age?: number; + genderType?: GenderTypeEnum; + eduLevelName?: string; + hireStatus?: FlexTaskWorkerHireEnum; + } + + interface GetWorkerListForBackOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: GetWorkerListForBackOutput[]; } interface IanaTimeZone { @@ -929,6 +1479,8 @@ resource?: string; } + type MessageChannelEnum = 10 | 20; + interface MethodParameterApiDescriptionModel { name?: string; typeAsString?: string; @@ -1026,11 +1578,48 @@ interface MyResumeOutput { resumeBaseInfo?: UserResumeBaseInfoOutput; resumeExpectationJob?: UserResumeExpectationJobOutput; + resumeCertifiCate?: UserResumeCertificateListOutput; + resumeCertifiDetail?: UserResumeCertificateDetailOutput; + resumeDetailInfo?: UserResumeDetailInfoOutput; + resumeWorkExperience?: UserResumeWorkExperienceOutput; + /** 宸ヤ綔璁板綍 */ + resumeWorkRecordList?: UserResumeWorkerRecordOutput[]; + } + + interface MyVisitingCardOutput { + id?: string; + enterpriseId?: string; + userId?: string; + name?: string; + headPhoto?: string; + phoneNum?: string; + weChat?: string; + jobName?: string; + email?: string; + companyName?: string; + provinceId?: string; + cityId?: string; + areaId?: string; + provinceName?: string; + cityName?: string; + areaName?: string; + address?: string; + companyDesc?: string; } interface NameValue { name?: string; value?: string; + } + + interface NearlyFlexWorkerRecord { + taskId?: string; + /** 鏈�杩戝綍鐢ㄦ椂闂� */ + nearlyHireDateTime?: string; + /** 鏈�杩戠绾︽椂闂� */ + nearlySignDateTime?: string; + /** 鎵�灞炲晢鎴� */ + enterpirseName?: string; } interface ObjectExtensionsDto { @@ -1052,6 +1641,8 @@ securityToken?: string; requestId?: string; } + + type OverCheckStatusEnum = 10 | 20 | -10; interface PageInput { pageModel?: Pagination; @@ -1208,6 +1799,13 @@ typeSimple?: string; } + interface RoleDto { + /** 瑙掕壊Id */ + id?: string; + /** 瑙掕壊鍚� */ + name?: string; + } + interface SaveUserResumeBaseInfoInput { name?: string; socialIdentity?: string; @@ -1216,6 +1814,10 @@ residentCityCode?: number; residentProvinceName?: string; residentCityName?: string; + /** 鑱旂郴鐢佃瘽 */ + phoneNumber?: string; + /** 澶村儚 */ + avatarUrl?: string; } interface SaveUserResumeCertificateInput { @@ -1260,6 +1862,16 @@ returnUrlHash?: string; } + interface SendPhoneCertificationVerificationCodeInput { + /** 濮撳悕 */ + name: string; + /** 璇佷欢鍙风爜 */ + identity: string; + /** 鐢ㄦ埛甯愬彿 */ + mobile: string; + businessType?: VerificationCodeBusinessTypeEnum; + } + interface SendPhoneMessageBaseInput { messageType?: string; phoneNumber: string; @@ -1276,6 +1888,11 @@ businessType?: VerificationCodeBusinessTypeEnum; } + interface SetFlexEnterpriseStatusInput { + id?: string; + status?: FlexEnterpriseStatus; + } + interface SetMyModule { moduleId?: string; sequence?: number; @@ -1289,10 +1906,18 @@ preViewData?: string; } + interface SetRecommendInput { + id?: string; + /** 鏄惁鎺ㄨ崘 */ + isRecommend?: boolean; + } + interface SetRoleUserInput { userId?: string[]; roleId?: string; } + + type SettleStatusEnum = 10 | 20 | -10; interface SetUserRoleInput { userId?: string; @@ -1304,6 +1929,26 @@ interface SetVersionModuleInput { versionId: string; modules: ModuleTypeInfo[]; + } + + type SignChannelEnum = 10 | 20; + + interface TaskWorkerArrangeInput { + flexTaskId?: string; + flexWorkerId?: string; + arrange?: boolean; + } + + interface TaskWorkerCheckAcceptStatusInput { + flexTaskId?: string; + flexWorkerId?: string; + checkAcceptStatus?: FlexTaskCheckAcceptStatusEnum; + } + + interface TaskWorkerHireRefuseInput { + flexTaskId?: string; + flexWorkerId?: string; + hireStatus?: FlexTaskWorkerHireEnum; } interface TenantDto { @@ -1382,6 +2027,30 @@ releaseStatus?: FlexTaskReleaseStatusEnum; } + interface UserClientSignListOutput { + /** 鎵�灞炲晢鎴� */ + enterpirseName?: string; + /** 鎶ュ悕鏃堕棿 */ + applyTime?: string; + enterSignStatus?: FlexWorkerEleSignEnum; + /** 浼佷笟绛剧害鏃堕棿 */ + enterSignTime?: string; + hireStatus?: FlexTaskWorkerHireEnum; + /** 褰曠敤鏃堕棿 */ + hireDateTime?: string; + userSignStatus?: FlexWorkerEleSignEnum; + /** 鐏靛伐绛剧害鏃堕棿 */ + userSignTime?: string; + /** 鐢靛瓙鍚堝悓 */ + contractUrl?: string; + } + + interface UserClientSignListOutputPageOutput { + pageModel?: Pagination; + objectData?: any; + data?: UserClientSignListOutput[]; + } + interface UserData { id?: string; tenantId?: string; @@ -1404,46 +2073,102 @@ items?: UserData[]; } - interface UserResumeBaseInfoOutput { + interface UserDto { + /** 鐢ㄦ埛Id */ + id?: string; + /** 鐧诲綍鐢ㄦ埛鍚嶏紙璐﹀彿锛� */ + userName?: string; + /** 鍚嶇О */ name?: string; + /** 鐢ㄦ埛鎵嬫満鍙� */ phoneNumber?: string; + /** 璐︽埛鏄惁閿佷綇锛堟槸鍚︾鐢級 */ + isLocked?: boolean; + /** 瑙掕壊淇℃伅 */ + roles?: RoleDto[]; + /** 澶囨敞 */ + remark?: string; + /** 缁勭粐鏋舵瀯鍏徃id */ + companyOrgId?: string; + /** 缁勭粐鏋舵瀯閮ㄩ棬id */ + departmentOrgId?: string; + } + + interface UserResumeBaseInfoOutput { + /** 濮撳悕 */ + name?: string; + /** 鐢佃瘽鍙风爜 */ + phoneNumber?: string; + /** 澶村儚 */ + avatarUrl?: string; + genderType?: GenderTypeEnum; + /** 骞撮緞 */ + age?: number; + /** 涓婂矖娆℃暟 */ + arrangeCount?: number; + /** 韬唤璇佸彿鐮� */ + idNumber?: string; + /** 韬唤 */ socialIdentity?: string; + /** 韬唤鍚嶇О */ socialIdentityName?: string; + /** 瀛﹀巻 */ educationalLevel?: string; + /** 瀛﹀巻鍚嶇О */ educationalLevelName?: string; + /** 甯搁┗鐪佷唤Code */ residentProvinceCode?: number; + /** 甯搁┗鍩庡競code */ residentCityCode?: number; + /** 甯搁┗鐪佷唤鍚嶇О */ residentProvinceName?: string; + /** 甯搁┗鍩庡競鍚嶇О */ residentCityName?: string; } interface UserResumeCertificateDetailOutput { + /** 绠�鍘嗚璇佽鎯匢d */ id?: string; - userResumeId?: string; + /** 鐢ㄦ埛绠�鍘咺d */ + userId?: string; + /** 璁よ瘉绫诲埆Id */ certificateTypeId?: string; + /** 璁よ瘉璇佷欢鍙烽粯璁よ韩浠借瘉 */ certificateNo?: string; + /** 璇佷欢寮�濮嬫椂闂� */ beginTime?: string; + /** 璇佷欢缁撴潫鏃堕棿 */ endTime?: string; + /** 鏄惁姘镐箙 */ isPermanent?: boolean; certificateUnit?: string; + /** 韬唤璇佹闈� */ certificateFrontImgUrl?: string; + /** 韬唤璇佸弽闈� */ certificateBackImgUrl?: string; } interface UserResumeCertificateListOutput { id?: string; + /** 璇佷功Id */ certificateTypeId?: string; + /** 璇佷功鍚嶇О */ certificateTypeName?: string; + /** 宸ヤ綔绠�鍘咺d */ userResumeId?: string; } interface UserResumeDetailInfoOutput { + /** 韬珮 */ height?: string; + /** 浣撻噸 */ weight?: string; + /** 涓汉鐢熸椿鐓� */ lifeCircleImgUrlList?: string[]; } interface UserResumeExpectationJobOutput { + /** 鏈熸湜宀椾綅鍒楄〃 */ jobIdList?: IdNameOutput[]; freeTime?: UserResumeFreeTimeEnum; jobSeekingStatus?: UserResumeJobSeekingStatusEnum; @@ -1453,14 +2178,27 @@ type UserResumeJobSeekingStatusEnum = 1 | 2 | 3; + interface UserResumeWorkerRecordOutput { + /** 宸ヤ綔鏃堕棿 */ + workTime?: string; + /** 宸ヤ綔鍦扮偣 */ + workAddress?: string; + /** 宸ヤ綔鍚嶇О */ + workName?: string; + } + interface UserResumeWorkExperienceOutput { + /** 宸ヤ綔骞撮檺 */ workingSeniority?: string; + /** 宸ヤ綔缁忛獙 */ workExperience?: string; } type UserTypeEnum = 1 | 2; - type VerificationCodeBusinessTypeEnum = 10 | 11 | 20 | 30 | 40 | 70 | 900 | 910 | 920; + type VerificationCodeBusinessTypeEnum = 10 | 11 | 20 | 30 | 40 | 70 | 900 | 910 | 920 | 930; + + type VerifyStatus = 10 | -10; interface VersionCache { name?: string; diff --git a/src/utils/common/file.ts b/src/utils/common/file.ts index 25cbd9a..7346b89 100644 --- a/src/utils/common/file.ts +++ b/src/utils/common/file.ts @@ -8,12 +8,17 @@ return _url.startsWith('/') ? _url : '/' + _url; } +type ConvertApi2FormUrlOptions = { + fileName?: string; +}; + /** * 鎶奱pi杩斿洖鐨勮矾寰勮浆鎹负upload鐨勮矾寰� */ -export function convertApi2FormUrl(path: string) { +export function convertApi2FormUrl(path: string, options: ConvertApi2FormUrlOptions = {}) { + const { fileName } = options; return { - name: setOssFileName(path), + name: fileName ? fileName : setOssFileName(path), path: urlOmitDomain(path), url: setOSSLink(path), status: 'success', @@ -21,8 +26,8 @@ } as UploadUserFile; } -export function convertApi2FormUrlOnlyOne(path: string) { - return path ? [convertApi2FormUrl(path)] : []; +export function convertApi2FormUrlOnlyOne(path: string, options: ConvertApi2FormUrlOptions = {}) { + return path ? [convertApi2FormUrl(path, options)] : []; } /** diff --git a/src/views/EmploymentManage/AddOrEditEmployment.vue b/src/views/EmploymentManage/AddOrEditEmployment.vue new file mode 100644 index 0000000..affb0b6 --- /dev/null +++ b/src/views/EmploymentManage/AddOrEditEmployment.vue @@ -0,0 +1,19 @@ +<template> + <AddOrEditEmploymentView :isDetail="false"></AddOrEditEmploymentView> +</template> + +<script lang="ts"> +import { setPageTitle } from '@/utils'; + +export default defineComponent({ + name: 'AddOrEditEmployment', + beforeRouteEnter(to) { + to.meta.title = to.params.id ? '缂栬緫' : '鍙戝竷'; + setPageTitle(to.meta.title as string); + }, +}); +</script> + +<script setup lang="ts"> +import AddOrEditEmploymentView from './components/AddOrEditEmploymentView.vue'; +</script> diff --git a/src/views/EmploymentManage/EmploymentManage.vue b/src/views/EmploymentManage/EmploymentManage.vue new file mode 100644 index 0000000..e663bc0 --- /dev/null +++ b/src/views/EmploymentManage/EmploymentManage.vue @@ -0,0 +1,249 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableQueryFilterBar @on-reset="reset"> + <template #query> + <QueryFilterItem tip-content="褰曠敤鐘舵��"> + <FieldRadio + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '宸插畨鎺�', value: 1 }, + { label: '寰呭畨鎺�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem tip-content="瀹炲悕鐘舵��"> + <FieldRadio + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '鍙戝竷涓�', value: 1 }, + { label: '宸插仠姝�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem> + <FieldDatePicker + v-model="extraParamState.flexEnterpriseSettingStatus" + type="daterange" + range-separator="~" + start-placeholder="璧峰鏃ユ湡" + end-placeholder="鎴鏃ユ湡" + clearable + @change="getList()" + tooltipContent="鍙戝竷鏃堕棿" + ></FieldDatePicker> + </QueryFilterItem> + <QueryFilterItem> + <SearchInput + v-model="extraParamState.searchWord" + style="width: 250px" + placeholder="浠诲姟鍚嶇О" + @on-click-search="getList" + @keyup.enter="getList()" + > + </SearchInput> + </QueryFilterItem> + </template> + <template #btn> + <el-button @click="goAddOrEdit()" type="primary">鍙戝竷</el-button> + </template> + </ProTableQueryFilterBar> + <ProTableV2 + v-bind="proTableProps" + :columns="EmploymentManageColumns" + :operationBtns="operationBtns" + > + <template #signNum="{ row }"> + <el-button type="text" @click="goSignList(row.id)">{{ row.signNum || 0 }}</el-button> + </template> + </ProTableV2> + </AppContainer> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { + ProTableQueryFilterBar, + ProTableV2, + SearchInput, + LoadingLayout, + AppContainer, + QueryFilterItem, + useTable, + FieldDatePicker, + FieldRadio, + defineOperationBtns, +} from '@bole-core/components'; +import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; +import { EmploymentManageColumns } from './constants'; +import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; +import { OrderInputType } from '@bole-core/core'; +import { useGlobalEventContext } from '@/hooks'; + +defineOptions({ + name: 'EmploymentManageList', +}); + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'editBtn', + name: '缂栬緫', + }, + emits: { + onClick: (role) => goAddOrEdit(role), + }, + }, + { + data: { + enCode: 'detailBtn', + name: '璇︽儏', + }, + emits: { + onClick: (role) => goDetail(role), + }, + }, + { + data: { + enCode: 'publishBtn', + name: '鍙戝竷', + }, + emits: { + onClick: (role) => handlePublish(role), + }, + extraProps: { + hide: (row) => false, + }, + }, + { + data: { + enCode: 'unPublishBtn', + name: '鍋滄鍙戝竷', + }, + emits: { + onClick: (role) => handleUnPublish(role), + }, + extraProps: { + hide: (row) => false, + }, + }, + { + data: { + enCode: 'arrangeBtn', + name: '瀹夋帓', + }, + props: { type: 'danger' }, + emits: { + onClick: (role) => handleArrange(role), + }, + }, +]); + +const router = useRouter(); + +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +const eventContext = useGlobalEventContext(); + +eventContext.addEvent('employment:add', () => { + getList(); +}); + +eventContext.addEvent('employment:edit', () => { + getList(paginationState.pageIndex); +}); + +onMounted(async () => { + await getList(); + state.loading = false; +}); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetFlexEnterpriseInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, + searchWord: extraParamState.searchWord, + }; + + let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) { + console.log('error: ', error); + } + }, + { + defaultExtraParams: { + searchWord: '', + orderInput: [{ property: 'id', order: OrderInputType.Desc }], + flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, + }, + queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], + columnsRenderProps: {}, + } +); + +function handlePublish(row) { + console.log(row); +} +function handleUnPublish(row) { + console.log(row); +} + +function handleArrange(row) { + router.push({ + name: 'EmploymentManageArrange', + params: { + id: row?.id ?? '', + }, + }); +} +function goAddOrEdit(row?) { + router.push({ + name: 'AddOrEditEmployment', + params: { + id: row?.id ?? '', + }, + }); +} +function goDetail(row) { + router.push({ + name: 'EmploymentManageDetail', + params: { + id: row?.id ?? '', + }, + }); +} + +function goSignList(row) { + router.push({ + name: 'EmploymentSignList', + params: { + id: row?.id ?? '', + }, + }); +} +</script> diff --git a/src/views/EmploymentManage/EmploymentManageArrange.vue b/src/views/EmploymentManage/EmploymentManageArrange.vue new file mode 100644 index 0000000..69b9636 --- /dev/null +++ b/src/views/EmploymentManage/EmploymentManageArrange.vue @@ -0,0 +1,237 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableQueryFilterBar @on-reset="reset"> + <template #query> + <QueryFilterItem tip-content="褰曠敤鐘舵��"> + <FieldRadio + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '宸插畨鎺�', value: 1 }, + { label: '寰呭畨鎺�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem tip-content="瀹炲悕鐘舵��"> + <FieldRadio + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '鍙戝竷涓�', value: 1 }, + { label: '宸插仠姝�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem> + <FieldDatePicker + v-model="extraParamState.flexEnterpriseSettingStatus" + type="daterange" + range-separator="~" + start-placeholder="璧峰鏃ユ湡" + end-placeholder="鎴鏃ユ湡" + clearable + @change="getList()" + tooltipContent="鍙戝竷鏃堕棿" + ></FieldDatePicker> + </QueryFilterItem> + <QueryFilterItem> + <SearchInput + v-model="extraParamState.searchWord" + style="width: 250px" + placeholder="浠诲姟鍚嶇О" + @on-click-search="getList" + @keyup.enter="getList()" + > + </SearchInput> + </QueryFilterItem> + </template> + <template #btn> + <el-button @click="goAddOrEdit()" type="primary">鍙戝竷</el-button> + </template> + </ProTableQueryFilterBar> + <ProTableV2 + v-bind="proTableProps" + :columns="EmploymentArrangeColumns" + :operationBtns="operationBtns" + > + </ProTableV2> + </AppContainer> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { + ProTableQueryFilterBar, + ProTableV2, + SearchInput, + LoadingLayout, + AppContainer, + QueryFilterItem, + useTable, + FieldDatePicker, + FieldRadio, + defineOperationBtns, +} from '@bole-core/components'; +import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; +import { EmploymentArrangeColumns } from './constants'; +import { OrderInputType, Message } from '@bole-core/core'; +import { useGlobalEventContext } from '@/hooks'; +import { FlexEnterpriseSettingStatus } from '@/constants'; + +defineOptions({ + name: 'EmploymentManageArrange', +}); + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'editBtn', + name: '缂栬緫', + }, + emits: { + onClick: (role) => goAddOrEdit(role), + }, + }, + { + data: { + enCode: 'detailBtn', + name: '璇︽儏', + }, + emits: { + onClick: (role) => goDetail(role), + }, + }, + { + data: { + enCode: 'publishBtn', + name: '鍙戝竷', + }, + emits: { + onClick: (role) => handlePublish(role), + }, + extraProps: { + hide: (row) => false, + }, + }, + { + data: { + enCode: 'unPublishBtn', + name: '鍋滄鍙戝竷', + }, + emits: { + onClick: (role) => handleUnPublish(role), + }, + extraProps: { + hide: (row) => false, + }, + }, + { + data: { + enCode: 'arrangeBtn', + name: '瀹夋帓', + }, + props: { type: 'danger' }, + emits: { + onClick: (role) => handleArrange(role), + }, + }, +]); + +const router = useRouter(); + +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +const eventContext = useGlobalEventContext(); + +eventContext.addEvent('employment:add', () => { + getList(); +}); + +eventContext.addEvent('employment:edit', () => { + getList(paginationState.pageIndex); +}); + +onMounted(async () => { + await getList(); + state.loading = false; +}); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetFlexEnterpriseInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, + searchWord: extraParamState.searchWord, + }; + + let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) { + console.log('error: ', error); + } + }, + { + defaultExtraParams: { + searchWord: '', + orderInput: [{ property: 'id', order: OrderInputType.Desc }], + flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, + }, + queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], + columnsRenderProps: {}, + } +); + +function handlePublish(row) { + console.log(row); +} +function handleUnPublish(row) { + console.log(row); +} + +function handleArrange(row) { + router.push({ + name: 'EmploymentManageArrange', + params: { + id: row?.id ?? '', + }, + }); +} +function goAddOrEdit(row?) { + router.push({ + name: 'AddOrEditEmployment', + params: { + id: row?.id ?? '', + }, + }); +} +function goDetail(row) { + router.push({ + name: 'EmploymentManageDetail', + params: { + id: row?.id ?? '', + }, + }); +} +</script> diff --git a/src/views/EmploymentManage/EmploymentManageDetail.vue b/src/views/EmploymentManage/EmploymentManageDetail.vue new file mode 100644 index 0000000..1ebb33e --- /dev/null +++ b/src/views/EmploymentManage/EmploymentManageDetail.vue @@ -0,0 +1,10 @@ +<template> + <AddOrEditEmploymentView is-detail></AddOrEditEmploymentView> +</template> + +<script setup lang="ts"> +import AddOrEditEmploymentView from './components/AddOrEditEmploymentView.vue'; +defineOptions({ + name: 'EmploymentManageDetail', +}); +</script> diff --git a/src/views/EmploymentManage/EmploymentSignList.vue b/src/views/EmploymentManage/EmploymentSignList.vue new file mode 100644 index 0000000..79703e5 --- /dev/null +++ b/src/views/EmploymentManage/EmploymentSignList.vue @@ -0,0 +1,163 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableQueryFilterBar @on-reset="reset"> + <template #query> + <QueryFilterItem tip-content="褰曠敤鐘舵��"> + <FieldRadio + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '宸插綍鐢�', value: 1 }, + { label: '寰呭綍鐢�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem> + <SearchInput + v-model="extraParamState.searchWord" + style="width: 250px" + placeholder="浠诲姟鍚嶇О" + @on-click-search="getList" + @keyup.enter="getList()" + > + </SearchInput> + </QueryFilterItem> + </template> + </ProTableQueryFilterBar> + <ProTableV2 + v-bind="proTableProps" + :columns="EmploymentSignColumns" + :operationBtns="operationBtns" + > + </ProTableV2> + </AppContainer> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { + ProTableQueryFilterBar, + ProTableV2, + SearchInput, + LoadingLayout, + AppContainer, + QueryFilterItem, + useTable, + FieldDatePicker, + FieldRadio, + defineOperationBtns, +} from '@bole-core/components'; +import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; +import { EmploymentSignColumns } from './constants/columns'; +import { OrderInputType, Message } from '@bole-core/core'; +import { useGlobalEventContext } from '@/hooks'; +import { FlexEnterpriseSettingStatus } from '@/constants'; +import StaffInfoDialog from '@/views/FlexJobManage/components/StaffInfoDialog.vue'; + +defineOptions({ + name: 'EmploymentSignList', +}); + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'detailBtn', + name: '璇︽儏', + }, + emits: { + onClick: (role) => openDialog(role), + }, + }, + { + data: { + enCode: 'recruitBtn', + name: '褰曠敤', + }, + emits: { + onClick: (role) => handleRecruit(role), + }, + extraProps: { + hide: (row) => false, + }, + }, + { + data: { + enCode: 'refuseBtn', + name: '璋㈢粷', + }, + emits: { + onClick: (role) => handleRefuse(role), + }, + extraProps: { + hide: (row) => false, + }, + }, +]); + +const router = useRouter(); + +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +const eventContext = useGlobalEventContext(); + +eventContext.addEvent('employment:add', () => { + getList(); +}); + +eventContext.addEvent('employment:edit', () => { + getList(paginationState.pageIndex); +}); + +onMounted(async () => { + await getList(); + state.loading = false; +}); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetFlexEnterpriseInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, + searchWord: extraParamState.searchWord, + }; + + let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) { + console.log('error: ', error); + } + }, + { + defaultExtraParams: { + searchWord: '', + orderInput: [{ property: 'id', order: OrderInputType.Desc }], + flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, + }, + queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], + columnsRenderProps: {}, + } +); + +function handleRecruit(row) {} +function handleRefuse(row) {} +</script> diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue new file mode 100644 index 0000000..df33a45 --- /dev/null +++ b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue @@ -0,0 +1,201 @@ +<template> + <LoadingLayout :loading="isLoading && isEdit"> + <AppContainer> + <PageFormLayout title="鍩烘湰淇℃伅"> + <ProForm :model="form" ref="productFormRef" label-width="110px" :is-read="isDetail"> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="浠诲姟鍚嶇О:" prop="name"> + <ProFormText v-model.trim="form.name" placeholder="璇疯緭鍏ヤ换鍔″悕绉�" /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormItemV2 label="鏈嶅姟璐�:" prop="salaryType"> + <RadioWithExtra + v-model="form.salaryType" + :value-enum="[ + { label: '鎸夋湀', value: 1 }, + { label: '鎸夋棩', value: 2 }, + ]" + :showExtra="true" + > + <template #extra> + <ProFormInputNumber + :controls="false" + :min="0" + :max="999" + v-model="form.name" + placeholder="璇疯緭鍏�" + :unit="form.salaryType === 1 ? '鍏�/鏈�' : '鍏�/澶�'" + ></ProFormInputNumber> + </template> + </RadioWithExtra> + </ProFormItemV2> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="缁撶畻鏂瑰紡:" prop="salaryType"> + <ProFormRadio + v-model="form.salaryType" + :value-enum="[{ label: '鏄�', value: 1 }]" + ></ProFormRadio> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="骞撮緞瑕佹眰:" prop="ageRange"> + <ProFormInputNumber + :controls="false" + :min="0" + v-model="form.ageStart" + placeholder="璇疯緭鍏�" + disabled + ></ProFormInputNumber> + <div class="form-input-separator">鑷�</div> + <ProFormInputNumber + :controls="false" + :min="0" + v-model="form.ageEnd" + placeholder="璇疯緭鍏�" + disabled + ></ProFormInputNumber> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="鎬у埆瑕佹眰:" prop="sexRequirement" required> + <RadioWithExtra + v-model="form.sexRequirement" + :value-enum="[ + { + label: '涓嶉檺', + value: 1, + }, + ]" + :showExtra="true" + > + <template #extra> + <div class="form-input-separator">鐢锋��</div> + <ProFormInputNumber + :controls="false" + :min="0" + v-model="form.manNumber" + placeholder="璇疯緭鍏�" + disabled + ></ProFormInputNumber> + <div class="form-input-separator">濂虫��</div> + <ProFormInputNumber + :controls="false" + :min="0" + v-model="form.womanNumber" + placeholder="璇疯緭鍏�" + disabled + ></ProFormInputNumber> + </template> + </RadioWithExtra> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + </ProForm> + <template #footer> + <el-button @click="handleBack()">鍏抽棴</el-button> + <el-button v-if="!isDetail" type="primary" @click="handleConfirm()">淇濆瓨</el-button> + </template> + </PageFormLayout> + </AppContainer> + </LoadingLayout> +</template> +<script setup lang="ts"> +import { + LoadingLayout, + ProForm, + ProFormCol, + ProFormColItem, + AppContainer, + PageFormLayout, + ProFormItemV2, + ProFormText, + ProFormInputNumber, + ProFormRadio, +} from '@bole-core/components'; +import { FormInstance } from 'element-plus'; +import { Message } from '@bole-core/core'; +import { useQuery } from '@tanstack/vue-query'; +import { useGlobalEventContext, useRouteView } from '@/hooks'; +import * as flexTaskServices from '@/services/api/FlexTask'; + +defineOptions({ + name: 'AddOrEditEmploymentView', +}); +type Props = { + isDetail: boolean; +}; +defineProps<Props>(); +const route = useRoute(); +const id = route.params.id as string; +const isEdit = !!id; + +const eventContext = useGlobalEventContext(); + +const { closeViewPush } = useRouteView(); + +const form = reactive({ + name: '', + salaryType: 1, + ageStart: 0, + ageEnd: 0, + sexRequirement: 1, + manNumber: 0, + womanNumber: 0, +}); + +const { isLoading } = useQuery({ + queryKey: ['flexTaskServices/getFlexTaskDetail', id], + queryFn: async () => { + return await flexTaskServices.getFlexTaskDetail( + { id: id }, + { + showLoading: false, + } + ); + }, + onSuccess(data) { + form.name = data.taskName; + }, + enabled: isEdit, +}); + +function handleBack() { + closeViewPush(route, { + name: 'EmploymentManageList', + }); +} +const productFormRef = ref<FormInstance>(); +function handleConfirm() { + if (!productFormRef.value) return; + productFormRef.value.validate((valid) => { + if (valid) { + submit(); + } else { + return; + } + }); +} +async function submit() { + try { + let params = {}; + let res; + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + eventContext.emit(isEdit ? 'employment:edit' : 'employment:add'); + handleBack(); + } + } catch (error) {} +} +</script> +<style lang="scss" scoped> +@use '@/style/common.scss' as *; +</style> diff --git a/src/views/EmploymentManage/constants/columns.ts b/src/views/EmploymentManage/constants/columns.ts new file mode 100644 index 0000000..0b3bfac --- /dev/null +++ b/src/views/EmploymentManage/constants/columns.ts @@ -0,0 +1,154 @@ +import { defineColumns } from '@bole-core/components'; + +export const EmploymentManageColumns = defineColumns([ + { + id: '1', + enCode: 'name', + name: '浠诲姟鍚嶇О', + width: 180, + }, + { + id: '2', + enCode: 'name', + name: '浠诲姟鍗曞彿', + width: 180, + }, + { + id: '3', + enCode: 'name', + name: '缁撶畻鍛ㄦ湡', + }, + { + id: '4', + enCode: 'name', + name: '鏈嶅姟璐归噾棰�', + }, + { + id: '5', + enCode: 'name', + name: '缁撶畻鏂瑰紡', + width: 140, + }, + { + id: '6', + enCode: 'name', + name: '鎬у埆瑕佹眰', + width: 140, + }, + { + id: '7', + enCode: 'signNum', + name: '鎶ュ悕浜烘暟', + width: 140, + }, + { + id: '8', + enCode: 'name', + name: '浠诲姟鐘舵��', + width: 140, + }, + { + id: '9', + enCode: 'name', + name: '鍙戝竷鏃ユ湡', + width: 160, + }, + { + id: '10', + enCode: 'name', + name: '缁撴潫鏃ユ湡', + width: 160, + }, + { + id: '11', + enCode: 'name', + name: '鍙戝竷鐘舵��', + width: 160, + }, +]); + +export const EmploymentArrangeColumns = defineColumns([ + { + id: '1', + enCode: 'name', + name: '濮撳悕', + width: 180, + }, + { + id: '2', + enCode: 'name', + name: '韬唤璇佸彿', + width: 180, + }, + { + id: '3', + enCode: 'name', + name: '鐢佃瘽', + }, + { + id: '4', + enCode: 'name', + name: '骞撮緞', + }, + { + id: '5', + enCode: 'name', + name: '鎬у埆', + width: 140, + }, + { + id: '6', + enCode: 'name', + name: '瀛﹀巻', + width: 140, + }, + { + id: '7', + enCode: 'name', + name: '鎺掔彮鐘舵��', + width: 140, + }, +]); + +export const EmploymentSignColumns = defineColumns([ + { + id: '1', + enCode: 'name', + name: '濮撳悕', + width: 180, + }, + { + id: '2', + enCode: 'name', + name: '韬唤璇佸彿', + width: 180, + }, + { + id: '3', + enCode: 'name', + name: '鐢佃瘽', + }, + { + id: '4', + enCode: 'name', + name: '骞撮緞', + }, + { + id: '5', + enCode: 'name', + name: '鎬у埆', + width: 140, + }, + { + id: '6', + enCode: 'name', + name: '瀛﹀巻', + width: 140, + }, + { + id: '7', + enCode: 'name', + name: '褰曠敤鐘舵��', + width: 140, + }, +]); diff --git a/src/views/EmploymentManage/constants/index.ts b/src/views/EmploymentManage/constants/index.ts new file mode 100644 index 0000000..a7f066b --- /dev/null +++ b/src/views/EmploymentManage/constants/index.ts @@ -0,0 +1 @@ +export * from './columns'; diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue new file mode 100644 index 0000000..79429e4 --- /dev/null +++ b/src/views/FlexJobManage/FlexJobManage.vue @@ -0,0 +1,350 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableQueryFilterBar @on-reset="reset"> + <template #query> + <QueryFilterItem tip-content="褰曠敤鐘舵��"> + <FieldRadio + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '宸插綍鐢�', value: 1 }, + { label: '鏈綍鐢�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem tip-content="瀹炲悕鐘舵��"> + <FieldRadio + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '宸插疄鍚�', value: 1 }, + { label: '鏈疄鍚�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem tip-content="鐏靛伐绛剧害鐘舵��"> + <FieldSelect + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '宸插疄鍚�', value: 1 }, + { label: '鏈疄鍚�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem tip-content="浼佷笟绛剧害鐘舵��"> + <FieldSelect + v-model="extraParamState.flexEnterpriseSettingStatus" + :value-enum="[ + { label: '宸插疄鍚�', value: 1 }, + { label: '鏈疄鍚�', value: 0 }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem> + <FieldDatePicker + v-model="extraParamState.flexEnterpriseSettingStatus" + type="daterange" + range-separator="~" + start-placeholder="璧峰鏃ユ湡" + end-placeholder="鎴鏃ユ湡" + clearable + @change="getList()" + tooltipContent="鐧昏鏃堕棿" + ></FieldDatePicker> + </QueryFilterItem> + <QueryFilterItem> + <FieldDatePicker + v-model="extraParamState.flexEnterpriseSettingStatus" + type="daterange" + range-separator="~" + start-placeholder="璧峰鏃ユ湡" + end-placeholder="鎴鏃ユ湡" + clearable + @change="getList()" + tooltipContent="绛剧害鏃堕棿" + ></FieldDatePicker> + </QueryFilterItem> + <QueryFilterItem> + <SearchInput + v-model="extraParamState.searchWord" + style="width: 300px" + placeholder="濮撳悕/鎵嬫満/韬唤璇佸彿/瀹㈡埛" + @on-click-search="getList" + @keyup.enter="getList()" + > + </SearchInput> + </QueryFilterItem> + </template> + <template #btn> + <el-button @click="handleDownloadTemplate()" type="primary" link>妯℃澘涓嬭浇</el-button> + <el-button @click="handleBatchImportAdd()" type="primary">鎵归噺瀵煎叆</el-button> + <el-button @click="handleBatchUnSign()" type="primary">鎵归噺瑙g害</el-button> + <el-button @click="handleSendShotMessage()" type="primary">鐭俊鍙戦��</el-button> + <el-button @click="handleBatchSign()" type="primary">鎵归噺绛剧害</el-button> + </template> + </ProTableQueryFilterBar> + <ProTableV2 + v-bind="proTableProps" + :columns="FlexJobManageColumns" + :operationBtns="operationBtns" + show-column-check + ref="proTable" + > + </ProTableV2> + </AppContainer> + <StaffInfoDialog v-bind="dialogStaffInfoProps" /> + <BatchImportDialog + v-bind="dialogBatchImportProps" + @onDownloadTemplate="handleDownloadTemplate" + /> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { + ProTableQueryFilterBar, + OperationBtnType, + ProTableV2, + SearchInput, + LoadingLayout, + AppContainer, + QueryFilterItem, + useTable, + FieldDatePicker, + FieldRadio, + FieldSelect, + defineOperationBtns, + useFormDialog, + UploadUserFile, +} from '@bole-core/components'; +import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; +import { FlexJobManageColumns } from './constants'; +import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; +import { OrderInputType, Message } from '@bole-core/core'; +import { convertApi2FormUrlOnlyOne, downloadFileByUrl } from '@/utils'; +import StaffInfoDialog from './components/StaffInfoDialog.vue'; +import BatchImportDialog from './components/BatchImportDialog.vue'; + +defineOptions({ + name: 'EnterpriseManageList', +}); + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'editBtn', + name: '缂栬緫', + }, + emits: { + onClick: (role) => openDialog(role), + }, + }, + { + data: { + enCode: 'detailBtn', + name: '璇︽儏', + }, + emits: { + onClick: (role) => openDialog(role, true), + }, + }, + { + data: { + enCode: 'signBtn', + name: '绛剧害', + }, + emits: { + onClick: (role) => handleSign(role), + }, + extraProps: { + hide: (row) => false, + }, + }, + { + data: { + enCode: 'unSignBtn', + name: '瑙g害', + }, + emits: { + onClick: (role) => handleUnSign(role), + }, + extraProps: { + hide: (row) => false, + }, + }, + { + data: { + enCode: 'delBtn', + name: '鍒犻櫎', + }, + props: { type: 'danger' }, + emits: { + onClick: (role) => handleDelete(role), + }, + }, +]); + +const router = useRouter(); + +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +onMounted(async () => { + await getList(); + state.loading = false; +}); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetFlexEnterpriseInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, + searchWord: extraParamState.searchWord, + }; + + let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) { + console.log('error: ', error); + } + }, + { + defaultExtraParams: { + searchWord: '', + orderInput: [{ property: 'id', order: OrderInputType.Desc }], + flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, + }, + queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], + columnsRenderProps: {}, + } +); + +const proTable = ref<InstanceType<typeof ProTableV2>>(); + +function getSelectionRows() { + if (proTableProps.value.tableData.length) { + const res = proTable.value.innerTableRef.getSelectionRows(); + if (res.length > 0) { + return res; + } else { + Message.errorMessage('鏈�夋嫨鏁版嵁'); + } + } else { + Message.errorMessage('鏆傛棤鏁版嵁'); + } +} + +const { + dialogProps: dialogStaffInfoProps, + handleEdit: handleStaffInfoEdit, + editForm: staffInfoEditForm, +} = useFormDialog({ + onConfirm: handleAddOrEdit, + defaultFormParams: { + id: '', + name: '', + idNumber: '', + phoneNumber: '', + genderType: Gender.Male, + age: 0, + companyId: '', + customerId: '', + idFrontUrl: [] as UploadUserFile[], + idBackUrl: [] as UploadUserFile[], + contractUrl: [] as UploadUserFile[], + regiterTime: '', + realVerifyTime: '', + signTime: '', + isDetail: false, + }, +}); + +function openDialog(row, isDetail = false) { + handleStaffInfoEdit({ + id: row.id, + name: row.name, + idNumber: row.idNumber, + phoneNumber: row.phoneNumber, + genderType: Gender.Male, + age: row.age ?? 0, + companyId: row.companyId, + customerId: row.customerId, + idFrontUrl: convertApi2FormUrlOnlyOne(row.idFrontUrl), + idBackUrl: convertApi2FormUrlOnlyOne(row.idBackUrl), + contractUrl: convertApi2FormUrlOnlyOne(row.contractUrl, { + fileName: row.contractUrl ? row.contractUrl.split('/').pop() : '鍚堝悓', + }), + regiterTime: row.regiterTime, + realVerifyTime: row.realVerifyTime, + signTime: row.signTime, + isDetail: isDetail, + }); +} + +async function handleAddOrEdit() {} + +const { + dialogProps: dialogBatchImportProps, + handleAdd: handleBatchImportAdd, + editForm: batchImportForm, +} = useFormDialog({ + onConfirm: handleBatchImport, + defaultFormParams: { + customerId: '', + contractTemplateId: '', + templateDataId: '', + url: [] as UploadUserFile[], + userList: [], + }, +}); + +async function handleBatchImport() {} + +function handleDownloadTemplate() { + downloadFileByUrl('', '鎵归噺瀵煎叆妯℃澘'); +} + +function handleBatchUnSign() {} +function handleSendShotMessage() {} + +function handleSign(row) {} +function handleBatchSign() {} +async function handleUnSign(row) { + try { + await Message.tipMessage('纭畾瑙g害鐢ㄦ埛锛�'); + } catch (error) {} +} + +async function handleDelete(row) { + try { + await Message.deleteMessage(); + } catch (error) {} +} +</script> diff --git a/src/views/FlexJobManage/components/BatchImportDialog.vue b/src/views/FlexJobManage/components/BatchImportDialog.vue new file mode 100644 index 0000000..6a311dc --- /dev/null +++ b/src/views/FlexJobManage/components/BatchImportDialog.vue @@ -0,0 +1,109 @@ +<template> + <ProDialog title="浜哄憳瀵煎叆" v-model="visible" @close="onDialogClose" destroy-on-close draggable> + <ProForm :model="form" ref="dialogForm" label-width="100px"> + <ProFormItemV2 + label="閫夋嫨鏂囦欢:" + prop="userList" + :check-rules="[{ message: '璇蜂笂浼犱汉鍛樺悕鍗�', type: 'array' }]" + > + <div style="display: flex"> + <ProFormUpload + v-model:file-url="form.url" + :limit="1" + :limitFileSize="10" + accept="xlsx,xls" + :needUploadOss="false" + :on-success="handleImport" + ></ProFormUpload> + <el-button + type="primary" + class="el-button-link-clear legalPersonIdImgUrl-btn" + link + @click="emit('onDownloadTemplate')" + >妯℃澘涓嬭浇</el-button + > + </div> + </ProFormItemV2> + </ProForm> + <template #footer> + <span class="dialog-footer"> + <el-button type="primary" @click="handleConfirm">鎻愪氦</el-button> + <el-button type="default" @click="emit('onCancel')">鍙栨秷</el-button> + </span> + </template> + </ProDialog> +</template> + +<script setup lang="ts"> +import { + ProDialog, + ProForm, + ProFormItemV2, + ProFormUpload, + ProFormSelect, + UploadUserFile, + XLSXUtils, +} from '@bole-core/components'; +import { FormInstance, FormRules, useFormItem } from 'element-plus'; +import { useUser } from '@/hooks'; + +defineOptions({ + name: 'BatchImportDialog', +}); + +type Form = { + title?: string; + customerId: string; + contractTemplateId: string; + templateDataId: string; + url: UploadUserFile[]; + userList: any[]; +}; + +const visible = defineModel({ type: Boolean }); +const form = defineModel<Form>('form'); + +const emit = defineEmits<{ + (e: 'onDownloadTemplate'): void; + (e: 'onConfirm'): void; + (e: 'onCancel'): void; +}>(); + +const { user } = useUser(); + +const dialogForm = ref<FormInstance>(); + +function onDialogClose() { + if (!dialogForm.value) return; + dialogForm.value.resetFields(); +} + +function handleConfirm() { + if (!dialogForm.value) return; + dialogForm.value.validate((valid) => { + if (valid) { + emit('onConfirm'); + } else { + return; + } + }); +} + +const XLSXHeaderMap = { + name: '濮撳悕', + phone: '鎵嬫満鍙�', +}; + +function handleImport(response: UploadUserFile) { + XLSXUtils.resloveXLSXFromUploadInput<typeof XLSXHeaderMap>({ + //@ts-ignore + file: response.file, + resloveKeyList: Object.keys(XLSXHeaderMap), + onSuccess: async (worksheetList) => { + const userXLSXList = worksheetList[0]; + form.value.userList = userXLSXList; + dialogForm.value?.validateField?.('userList'); + }, + }); +} +</script> diff --git a/src/views/FlexJobManage/components/StaffInfoDialog.vue b/src/views/FlexJobManage/components/StaffInfoDialog.vue new file mode 100644 index 0000000..5df64d5 --- /dev/null +++ b/src/views/FlexJobManage/components/StaffInfoDialog.vue @@ -0,0 +1,199 @@ +<template> + <ProDialog + :title="form.isDetail ? '浜哄憳璇︽儏' : '浜哄憳淇℃伅缂栬緫'" + v-model="visible" + @close="onDialogClose" + destroy-on-close + draggable + :width="900" + > + <ProForm :model="form" ref="dialogForm" label-width="120px" :is-read="form.isDetail"> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="濮撳悕锛�" prop="name" :check-rules="[{ message: '璇疯緭鍏ュ鍚�' }]"> + <ProFormText placeholder="璇疯緭鍏ュ鍚�" v-model.trim="form.name"></ProFormText> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="12"> + <ProFormItemV2 v-if="form.isDetail" label="鎶ュ悕鏃堕棿锛�" prop="regiterTime"> + <div>{{ format(form.regiterTime, 'YYYY-MM-DD HH:mm') }}</div> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="12"> + <ProFormItemV2 + label="韬唤璇佸彿锛�" + prop="idNumber" + :check-rules="[{ message: '璇疯緭鍏ヨ韩浠借瘉鍙�', type: 'idCard' }]" + > + <ProFormText placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" v-model.trim="form.idNumber"></ProFormText> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="12"> + <ProFormItemV2 v-if="form.isDetail" label="瀹炲悕鏃堕棿锛�" prop="realVerifyTime"> + <div>{{ format(form.realVerifyTime, 'YYYY-MM-DD HH:mm') }}</div> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="12"> + <ProFormItemV2 + label="鎵嬫満鍙凤細" + prop="phoneNumber" + :check-rules="[{ message: '璇疯緭鍏ユ墜鏈哄彿', type: 'phone' }]" + > + <ProFormText placeholder="璇疯緭鍏ユ墜鏈哄彿" v-model.trim="form.phoneNumber"></ProFormText> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="12"> + <ProFormItemV2 v-if="form.isDetail" label="绛剧害鏃堕棿锛�" prop="signTime"> + <div>{{ format(form.signTime, 'YYYY-MM-DD HH:mm') }}</div> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="12"> + <ProFormItemV2 label="鎬у埆锛�" prop="phoneNumber" required> + <ProFormRadio + v-model="form.genderType" + :value-enum="GenderText" + :buttonStyle="false" + ></ProFormRadio> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="12"> + <ProFormItemV2 v-if="form.isDetail" label="鐢靛瓙鍚堝悓锛�" prop="contractUrl"> + <ProFormUpload + v-model:file-url="form.contractUrl" + :limit="1" + :limitFileSize="10" + accept="jpg/jpeg,png,pdf" + ></ProFormUpload> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="12"> + <ProFormItemV2 + label="骞撮緞锛�" + prop="age" + :check-rules="[{ message: '璇疯緭鍏ュ勾榫�', type: 'number' }]" + > + <ProFormInputNumber + v-model="form.age" + :controls="false" + :min="0" + :max="9999" + :unit="form.isDetail ? '宀�' : ''" + ></ProFormInputNumber> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormItemV2 + label="韬唤璇佹闈細" + prop="idFrontUrl" + :check-rules="[{ message: '璇蜂笂浼犺韩浠借瘉姝i潰', type: 'upload' }]" + > + <ProFormImageUpload v-model:file-url="form.idFrontUrl" :limitFileSize="10" :showTip="false"> + </ProFormImageUpload> + </ProFormItemV2> + <ProFormItemV2 + label="韬唤璇佸弽闈細" + prop="idBackUrl" + :check-rules="[{ message: '璇蜂笂浼犺韩浠借瘉鍙嶉潰', type: 'upload' }]" + > + <ProFormImageUpload v-model:file-url="form.idBackUrl" :limitFileSize="10" :showTip="false"> + </ProFormImageUpload> + </ProFormItemV2> + </ProForm> + <template #footer> + <span class="dialog-footer"> + <el-button v-if="form.isDetail" @click="emit('onCancel')">鍏抽棴</el-button> + <template v-else> + <el-button type="primary" @click="handleConfirm">鎻愪氦</el-button> + <el-button @click="handleReset">閲嶇疆</el-button> + <el-button @click="emit('onCancel')">鍙栨秷</el-button> + </template> + </span> + </template> + </ProDialog> +</template> + +<script setup lang="ts"> +import { FormInstance } from 'element-plus'; +import { + ProDialog, + ProForm, + ProFormItemV2, + ProFormText, + UploadUserFile, + ProFormCol, + ProFormColItem, + ProFormImageUpload, + ProFormRadio, + ProFormUpload, + ProFormInputNumber, +} from '@bole-core/components'; +import { format } from '@/utils'; +import { Gender, GenderText } from '@/constants'; + +defineOptions({ + name: 'StaffInfoDialog', +}); + +type Form = { + title?: string; + id: string; + name: string; + idNumber: string; + phoneNumber: string; + genderType: Gender; + age: number; + customerId: string; + companyId: string; + idFrontUrl: UploadUserFile[]; + idBackUrl: UploadUserFile[]; + contractUrl: UploadUserFile[]; + regiterTime: string; + realVerifyTime: string; + signTime: string; + isDetail: boolean; +}; + +const visible = defineModel({ type: Boolean }); + +const form = defineModel<Form>('form'); +let defaultForm: Form = null; + +watch( + visible, + (visible) => { + if (visible) { + defaultForm = { ...unref(form) }; + } + }, + { + immediate: true, + } +); + +const emit = defineEmits<{ + (e: 'onConfirm'): void; + (e: 'onCancel'): void; +}>(); + +const dialogForm = ref<FormInstance>(); + +function onDialogClose() { + if (!dialogForm.value) return; + dialogForm.value.resetFields(); +} + +function handleConfirm() { + if (!dialogForm.value) return; + dialogForm.value.validate((valid) => { + if (valid) { + emit('onConfirm'); + } else { + return; + } + }); +} + +function handleReset() { + form.value = { ...defaultForm }; +} +</script> diff --git a/src/views/FlexJobManage/constants/columns.ts b/src/views/FlexJobManage/constants/columns.ts new file mode 100644 index 0000000..cd29086 --- /dev/null +++ b/src/views/FlexJobManage/constants/columns.ts @@ -0,0 +1,80 @@ +import { defineColumns } from '@bole-core/components'; + +export const FlexJobManageColumns = defineColumns([ + { + id: '1', + enCode: 'name', + name: '濮撳悕', + width: 180, + }, + { + id: '2', + enCode: 'idNumber', + name: '韬唤璇佸彿', + width: 180, + }, + { + id: '3', + enCode: 'sex', + name: '鎬у埆', + }, + { + id: '5', + enCode: 'age', + name: '骞撮緞', + }, + { + id: '6', + enCode: 'phoneNumber', + name: '鎵嬫満鍙�', + width: 140, + }, + { + id: '8', + enCode: 'regiterStatus', + name: '褰曠敤鐘舵��', + width: 140, + }, + { + id: '9', + enCode: 'realVerifyStatus', + name: '瀹炲悕鐘舵��', + width: 140, + }, + { + id: '10', + enCode: 'signStatus', + name: '鐏靛伐绛剧害鐘舵��', + width: 140, + }, + { + id: '11', + enCode: 'regiterTime', + name: '褰曠敤鏃堕棿', + width: 160, + }, + { + id: '12', + enCode: 'realVerifyTime', + name: '瀹炲悕鏃堕棿', + width: 160, + }, + { + id: '13', + enCode: 'signTime', + name: '绛剧害鏃堕棿', + width: 160, + }, + { + id: '14', + enCode: 'enterSignStatus', + name: '浼佷笟绛剧害鐘舵��', + width: 160, + }, + { + id: '15', + enCode: 'enterSignTime', + name: '浼佷笟绛剧害鏃堕棿', + width: 160, + }, +]); diff --git a/src/views/FlexJobManage/constants/index.ts b/src/views/FlexJobManage/constants/index.ts new file mode 100644 index 0000000..a7f066b --- /dev/null +++ b/src/views/FlexJobManage/constants/index.ts @@ -0,0 +1 @@ +export * from './columns'; -- Gitblit v1.9.1