From 1703be93b291e4e9e380b139d236cbd9096f929b Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 20 二月 2025 13:36:01 +0800 Subject: [PATCH] feat: enterprise --- src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue | 268 ++++++++++++++++++++++ src/hooks/useEvent.ts | 2 package.json | 2 src/views/EnterpriseManage/AddOrEditEnterprise.vue | 24 ++ src/views/EnterpriseManage/EnterpriseManageList.vue | 228 +++++++++++++++++++ pnpm-lock.yaml | 190 ++++++++++----- 6 files changed, 643 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index 2446e0b..54ec92a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "@bole-12333/chat-kit": "latest", "@bole-12333/customer-chat": "latest", - "@bole-core/components": "^1.2.28", + "@bole-core/components": "latest", "@bole-core/core": "latest", "@bole-core/pretty-layout": "latest", "@bole-core/sass-utils": "latest", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ccc3c7b..01f3fbb 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 @@ -16,8 +20,8 @@ specifier: latest 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: ^1.2.28 - version: 1.2.28(@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.8.4)(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) + 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.8.4)(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.8.4)(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) @@ -2123,7 +2127,7 @@ 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) lodash: 4.17.21 @@ -2144,7 +2148,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) @@ -2160,8 +2164,8 @@ vue: 3.5.11(typescript@4.8.4) dev: false - /@bole-core/components@1.2.28(@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.8.4)(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-Gh7gBf8vl+L2/Ph55NqRcVy2CaWRVGYZhyUo0H9Ela61B9hV2ALz5B95Km+jbvMdhl4rr5b/gVh6a/3DhGTv7A==} + /@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.8.4)(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==} peerDependencies: '@bole-core/core': '*' '@bole-core/sass-utils': '*' @@ -2177,7 +2181,7 @@ 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.8.4)(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) @@ -2210,7 +2214,7 @@ jszip: '*' lodash: '*' senior-request: '*' - vue: '*' + vue: 3.5.11 vue-router: '*' xlsx: '*' xlsx-style: '*' @@ -2243,7 +2247,7 @@ 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.8.4)(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) @@ -2280,7 +2284,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) @@ -2928,7 +2932,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 @@ -3288,7 +3292,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) @@ -4042,7 +4046,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 @@ -4055,7 +4059,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: @@ -4081,7 +4085,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 @@ -4093,25 +4097,39 @@ 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@2.9.0(react-native@0.76.5)(react@19.0.0): + resolution: {integrity: sha512-djDZ8z1ZGmyDrcoMvEIb7fdJiuXrwkT1N78A/Cbwo1ufBh6eFN9BSHqrGW1jRzlmpTokNHPSuAoJ3OhKWKX4DQ==} dependencies: + '@tencentcloud/chat': 3.5.2(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.8.7 + tuikit-logger: 0.0.4-beta.1 + transitivePeerDependencies: + - react + - react-native + dev: false + + /@tencentcloud/call-uikit-vue2.6@4.0.0(react-native@0.76.5)(react@19.0.0)(vue@3.5.11): + resolution: {integrity: sha512-dY1S13vCPgU3/VG4I7X52QPisrVFZ1dDQUI5sPjr9l8C1U24maCwm43S7e/joiAT/VpN+CcIY5GHKkooMPndAg==} + dependencies: + '@tencentcloud/call-engine-js': 2.9.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) '@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.0(react-native@0.76.5)(react@19.0.0): + resolution: {integrity: sha512-RcBaH1xgdtOCu/gHtQL3G+BDzjPQyx5uGt6r3ekE/GoIGVjXc7TIJllEQlMNexQ2GoXf4RoIUNB5dWBMB1Q1Hw==} dependencies: + '@tencentcloud/call-engine-js': 2.9.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) transitivePeerDependencies: - react - react-native @@ -4127,12 +4145,12 @@ - react-native 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.0(react-native@0.76.5)(react@19.0.0): + resolution: {integrity: sha512-FfxugHiCEEtO75NV5UdNCPTpRXEChBNqfZy4M0NL4TbrGPob8LR10//8yPvaCQtm6pSe9NGvdKf3vJ2vg+xoKQ==} dependencies: + '@tencentcloud/call-engine-js': 2.9.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) transitivePeerDependencies: - react - react-native @@ -4162,9 +4180,9 @@ '@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/call-uikit-vue': 4.0.0(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/call-uikit-vue2': 4.0.0(react-native@0.76.5)(react@19.0.0) + '@tencentcloud/call-uikit-vue2.6': 4.0.0(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) @@ -4235,7 +4253,7 @@ 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 @@ -5048,7 +5066,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 @@ -5114,7 +5132,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) @@ -5130,7 +5148,7 @@ engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 - vue: ^3.2.25 + vue: 3.5.11 dependencies: vite: 5.4.8(@types/node@18.7.18)(sass@1.55.0)(terser@5.34.1) vue: 3.5.11(typescript@4.8.4) @@ -5278,7 +5296,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 @@ -5406,7 +5424,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 @@ -5447,7 +5465,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 @@ -5473,7 +5491,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 @@ -5571,7 +5589,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) @@ -7966,7 +7984,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==} @@ -8001,7 +8018,6 @@ engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 - dev: true /domutils@1.7.0: resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} @@ -8023,7 +8039,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==} @@ -8097,7 +8112,7 @@ /element-plus@2.8.4(vue@3.5.11): resolution: {integrity: sha512-ZlVAdUOoJliv4kW3ntWnnSHMT+u/Os7mXJjk2xzOlqNeHaI2/ozlF+R58ZCEak8ZnDi6+5A2viWEYRsq64IuiA==} 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) @@ -9026,6 +9041,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: @@ -9998,7 +10017,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==} @@ -10902,7 +10920,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==} @@ -12209,7 +12226,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==} @@ -13033,7 +13049,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==} @@ -13073,7 +13088,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 @@ -13314,7 +13329,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: @@ -13325,7 +13340,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==} @@ -13358,7 +13372,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 @@ -13401,7 +13415,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 @@ -13588,7 +13602,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==} @@ -13618,7 +13631,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==} @@ -13678,7 +13690,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' @@ -13701,10 +13713,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: @@ -13739,7 +13775,6 @@ nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} @@ -14800,6 +14835,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'} @@ -14983,7 +15022,7 @@ file-saver: '*' lodash: '*' semver: '*' - vue: '*' + vue: 3.5.11 xlsx: '*' xlsx-style: '*' dependencies: @@ -15011,7 +15050,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 @@ -15342,7 +15381,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==} @@ -15899,7 +15937,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 @@ -16006,7 +16044,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 @@ -16362,6 +16400,12 @@ trtc-sdk-v5: 5.6.2 dev: false + /trtc-cloud-js-sdk@2.8.7: + resolution: {integrity: sha512-dEquaPzboMd5EhjcN6qTAbF/FJuiyLli1WhkYybNsh3YywMkKR+mg8v+9yFXvZ1UYInWTgeOdIr9Hs50MpmhFg==} + dependencies: + trtc-sdk-v5: 5.8.7-beta.1 + dev: false + /trtc-js-sdk@4.15.19: resolution: {integrity: sha512-FFVvaji65d7+aq5o4hE+5lamvL1CEolNTPavaN7sRzh8Bb5UdDieBL9jV+lfxCnYpJ5lMi1YJt+EynDPX20Asw==} dependencies: @@ -16370,6 +16414,12 @@ /trtc-sdk-v5@5.6.2: resolution: {integrity: sha512-Ylt9LePeHyet2+hABcDxKSMTRMY6IVukw72yvRXgpRi2iR/sDLFSKtj+i3EeQ/BJZZWSTuyFXbolHpVJMPxgPg==} + dependencies: + webrtc-adapter: 8.2.3 + dev: false + + /trtc-sdk-v5@5.8.7-beta.1: + resolution: {integrity: sha512-kQdbrM4WBOmWm14QXcwPKYhlcitSX+7hkIN1bsLNhCekVxVohZ5VFEhjYVxIF9g3YYETXLzqIjKKJigzJEaLbA==} dependencies: webrtc-adapter: 8.2.3 dev: false @@ -16459,6 +16509,10 @@ 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: @@ -16851,7 +16905,7 @@ peerDependencies: '@babel/parser': ^7.15.8 '@nuxt/kit': ^3.2.2 - vue: 2 || 3 + vue: 3.5.11 peerDependenciesMeta: '@babel/parser': optional: true @@ -17342,7 +17396,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 @@ -17357,7 +17411,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 @@ -17369,7 +17423,7 @@ peerDependencies: '@vue/runtime-core': ^3.0.0 echarts: ^5.5.1 - vue: ^2.7.0 || ^3.1.1 + vue: 3.5.11 peerDependenciesMeta: '@vue/runtime-core': optional: true @@ -17402,7 +17456,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) @@ -17424,7 +17478,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 @@ -17888,7 +17942,3 @@ /zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} dev: false - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false diff --git a/src/hooks/useEvent.ts b/src/hooks/useEvent.ts index 02746ec..e5a7944 100644 --- a/src/hooks/useEvent.ts +++ b/src/hooks/useEvent.ts @@ -3,6 +3,8 @@ export type GlobalEvent = { updateInsuranceClaim: any; + 'enterprise:add': any; + 'enterprise:edit': any; }; export type GlobalEventListener<T extends keyof GlobalEvent> = (payload: GlobalEvent[T]) => any; diff --git a/src/views/EnterpriseManage/AddOrEditEnterprise.vue b/src/views/EnterpriseManage/AddOrEditEnterprise.vue new file mode 100644 index 0000000..30f4646 --- /dev/null +++ b/src/views/EnterpriseManage/AddOrEditEnterprise.vue @@ -0,0 +1,24 @@ +<template> + <AddOrEditEnterpriseView + emitAddEvent="myPublishInformationList:add" + emitEditEvent="myPublishInformationList:edit" + backRouteName="MyPublishInformationList" + :isDetail="false" + ></AddOrEditEnterpriseView> +</template> + +<script lang="ts"> +import { setPageTitle } from '@/utils'; + +export default defineComponent({ + name: 'AddOrEditEnterprise', + beforeRouteEnter(to) { + to.meta.title = to.params.id ? '缂栬緫' : '鏂板'; + setPageTitle(to.meta.title as string); + }, +}); +</script> + +<script setup lang="ts"> +import AddOrEditEnterpriseView from './components/AddOrEditEnterpriseView.vue'; +</script> diff --git a/src/views/EnterpriseManage/EnterpriseManageList.vue b/src/views/EnterpriseManage/EnterpriseManageList.vue new file mode 100644 index 0000000..d7a8dde --- /dev/null +++ b/src/views/EnterpriseManage/EnterpriseManageList.vue @@ -0,0 +1,228 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableQueryFilterBar @on-reset="reset"> + <template #query> + <QueryFilterItem tip-content="鐘舵��"> + <FieldRadio + v-model="extraParamState.status" + :value-enum="[ + { label: '宸查厤缃�', value: true }, + { label: '鏈厤缃�', value: false }, + ]" + buttonStyle + showAllBtn + @change="getList()" + /> + </QueryFilterItem> + <QueryFilterItem> + <SearchInput + v-model="extraParamState.name" + style="width: 200px" + placeholder="浼佷笟鍚嶇О/娉曚汉/鑱旂郴浜�" + @on-click-search="getList" + @keyup.enter="getList()" + > + </SearchInput> + </QueryFilterItem> + </template> + <template #btn> + <el-button + v-if="checkSubModuleItemShow('pageButton', 'addBtn')" + @click="openDialog()" + icon="Plus" + type="primary" + >鏂板</el-button + > + </template> + </ProTableQueryFilterBar> + <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> + </ProTableV2> + </AppContainer> + <!-- <AddOrEditSearchSetting v-bind="dialogProps" :typeList="typeList" /> --> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { + ProTableQueryFilterBar, + OperationBtnType, + ProTableV2, + SearchInput, + LoadingLayout, + AppContainer, + QueryFilterItem, + useTable, + useFormDialog, + UploadUserFile, + FieldRadio, +} from '@bole-core/components'; +import { useAccess, useGlobalEventContext } from '@/hooks'; +import * as searchSettingServices from '@/services/api/SearchSetting'; +import { SearchType, SearchTypeText } from '@/constants'; +import { OrderInputType, Message } from '@bole-core/core'; +import { convertApi2FormUrl } from '@/utils'; +import { useQueryClient } from '@tanstack/vue-query'; +import { useSearchSettingType } from '@/hooks'; + +defineOptions({ + name: 'EnterpriseManageList', +}); + +const operationBtnMap: Record<string, OperationBtnType> = { + editBtn: { emits: { onClick: (role) => openDialog(role) } }, +}; + +const { checkSubModuleItemShow, column, operationBtns } = useAccess({ + operationBtnMap, +}); + +const eventContext = useGlobalEventContext(); + +eventContext.addEvent('enterprise:add', () => { + getList(); +}); + +eventContext.addEvent('enterprise:edit', () => { + getList(paginationState.pageIndex); +}); + +const BaseState = { + loading: true, +}; +const queryClient = useQueryClient(); +const { searchSettingTypeList: typeList } = useSearchSettingType({ + searchType: SearchType.IndustryCategory, +}); +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.GetSearchSettingListInput = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + name: extraParamState.name, + // belongType: Number(extraParamState.belongType), + searchType: Number(extraParamState.searchType), + status: extraParamState.status, + }; + + if (extraParamState.searchType === SearchType.Position) { + params.isRecommend = extraParamState.isRecommend; + params.parentId = extraParamState.parentId; + } + let res = await searchSettingServices.getSearchSettingList(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) { + console.log('error: ', error); + } + }, + { + defaultExtraParams: { + name: '', + searchType: SearchType.Identity, + orderInput: [{ property: 'sort', order: OrderInputType.Asc }], + status: '' as any as boolean, + isRecommend: '' as any as boolean, + parentId: '', + }, + queryKey: ['searchSettingServices/getSearchSettingList'], + columnsRenderProps: { + searchType: { type: 'enum', valueEnum: SearchTypeText }, + }, + } +); + +function openDialog(row?: API.GetSearchSettingList) { + if (row) { + handleEdit({ + id: row.id, + searchType: extraParamState.searchType, + name: row.name, + sort: row.sort, + status: row.status, + src: row.src?.length ? [convertApi2FormUrl(row.src)] : [], + parentId: row.parentId ?? '', + }); + } else { + handleAdd({ + searchType: extraParamState.searchType, + }); + } +} + +const { dialogProps, handleAdd, handleEdit, editForm, dialogState } = useFormDialog({ + onConfirm: handleAddOrEdit, + defaultFormParams: { + id: '', + searchType: SearchType.Identity, + name: '', + sort: 0, + status: true, + src: [] as UploadUserFile[], + parentId: '', + }, +}); + +async function handleAddOrEdit() { + try { + let params: API.CreateOrEditSearchInput = { + searchType: extraParamState.searchType, + name: editForm.name, + sort: editForm.sort, + status: editForm.status, + src: editForm.src?.[0]?.path ?? '', + parentId: editForm.parentId ?? '', + }; + if (editForm.id) { + params.id = editForm.id; + } + let res = await searchSettingServices.createOrEditSearchSetting(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + dialogState.dialogVisible = false; + updateCategoryMenu(); + } + } catch (error) {} +} + +function updateCategoryMenu() { + queryClient.invalidateQueries({ + queryKey: [ + 'searchSettingServices/getTypeSearchSettingList', + { searchType: extraParamState.searchType, belongType: null }, + ], + }); +} + +async function setCategoryVis(row: API.GetSearchSettingList) { + try { + let params: API.EnableSearchSettingInput = { + id: row.id, + status: !row.status, + }; + let res = await searchSettingServices.enableSearchSetting(params); + updateCategoryMenu(); + getList(paginationState.pageIndex); + return !!res; + } catch (error) {} +} +</script> diff --git a/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue b/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue new file mode 100644 index 0000000..2d5ee59 --- /dev/null +++ b/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue @@ -0,0 +1,268 @@ +<template> + <LoadingLayout :loading="isEdit && isLoading"> + <AppScrollContainer> + <ChunkCell title="浼佷笟鍩烘湰淇℃伅"> + <ProForm :model="form" :rules="rules" ref="formRef" label-width="120px" :is-read="isDetail"> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="浼佷笟鍚嶇О:" prop="name" required> + <ProFormText + v-model.trim="form.name" + :maxlength="30" + placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="娉曚汉濮撳悕:" prop="name" required> + <ProFormText + v-model.trim="form.name" + :maxlength="30" + placeholder="璇疯緭鍏ユ硶浜哄鍚�" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="娉曚汉韬唤璇佸彿:" prop="name" required> + <ProFormText + v-model.trim="form.name" + :maxlength="30" + placeholder="璇疯緭鍏ユ硶浜鸿韩浠借瘉鍙�" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="缁熶竴绀句細淇$敤浠g爜:" prop="societyCreditCode"> + <ProFormText + v-model.trim="form.societyCreditCode" + placeholder="璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="鎵�鍦ㄧ渷浠�:" prop="name" required> + <ProFormText + v-model.trim="form.name" + :maxlength="30" + placeholder="璇疯緭鍏ユ墍鍦ㄧ渷浠�" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="鎵�灞炶涓�:" prop="name" required> + <ProFormSelect + placeholder="璇烽�夋嫨鎵�灞炶涓�" + :value-enum="typeList" + clearable + v-model="form.name" + ></ProFormSelect> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="鎵�鍦ㄥ煄甯�:" prop="name" required> + <ProFormText + v-model.trim="form.name" + :maxlength="30" + placeholder="璇疯緭鍏ユ墍鍦ㄥ煄甯�" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="24"> + <ProFormItemV2 label="涓昏惀涓氬姟:" prop="name"> + <ProFormTextArea + v-model="form.name" + maxlength="200" + :rows="6" + show-word-limit + placeholder="璇疯緭鍏ヤ富钀ヤ笟鍔�" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + </ProForm> + </ChunkCell> + <ChunkCell title="鑱旂郴淇℃伅"> + <ProForm + :model="form" + :rules="rules" + ref="settingFormRef" + label-width="140px" + :scroll-to-error="false" + :is-read="isDetail" + > + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="鑱旂郴浜�:" prop="contact"> + <ProFormText + v-model.trim="form.contact" + :maxlength="30" + placeholder="璇疯緭鍏ヨ仈绯讳汉" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="鑱旂郴鐢佃瘽:" prop="contactPhone"> + <ProFormText v-model.trim="form.contactPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="閭:" prop="email"> + <ProFormText + v-model.trim="form.email" + :maxlength="30" + placeholder="璇疯緭鍏ラ偖绠�" + :formatter="filterCN" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + </ProForm> + </ChunkCell> + </AppScrollContainer> + </LoadingLayout> +</template> +<script setup lang="ts"> +import { + LoadingLayout, + AppScrollContainer, + ProForm, + ProFormItemV2, + ChunkCell, + ProFormText, + ProFormSelect, + ProFormTextArea, + ProFormCol, + ProFormColItem, +} from '@bole-core/components'; +import { FormRules, FormInstance } from 'element-plus'; +import { SearchType } from '@/constants'; +import * as searchSettingServices from '@/services/api/SearchSetting'; +import { useRouteView, useGlobalEventContext, GlobalEvent, useSearchSettingType } from '@/hooks'; +import _ from 'lodash'; +import { validateFormList, filterCN } from '@/utils'; +import { Message, BoleRegExp } from '@bole-core/core'; +import { useQuery } from '@tanstack/vue-query'; + +defineOptions({ name: 'AddOrEditEnterpriseView' }); + +type Props = { + isDetail: boolean; + id?: string; + emitAddEvent?: keyof GlobalEvent; + emitEditEvent?: keyof GlobalEvent; + backRouteName?: string; +}; + +const props = withDefaults(defineProps<Props>(), { + id: '', + emitAddEvent: 'enterprise:add', + emitEditEvent: 'enterprise:edit', + backRouteName: '', +}); + +const route = useRoute(); +const isEdit = computed(() => !!props.id); +const { closeViewPush } = useRouteView(); +const eventContext = useGlobalEventContext(); + +const { searchSettingTypeList: typeList } = useSearchSettingType({ + searchType: SearchType.IndustryCategory, +}); + +const form = reactive({ + id: '', + name: '', + societyCreditCode: '', + contact: '', + contactPhone: '', + email: '', +}); + +onMounted(async () => {}); + +const { isLoading } = useQuery({ + // queryKey: ['insureSupplierService/getInsureSupplierInfoById', props.id], + // queryFn: async () => { + // return await insureSupplierService.getInsureSupplierInfoById( + // { id: props.id }, + // { + // showLoading: false, + // } + // ); + // }, + onSuccess(data) {}, + enabled: computed(() => !!props.id), +}); + +const formRef = ref<FormInstance>(); +const settingFormRef = ref<FormInstance>(); + +const rules = reactive<FormRules>({ + name: [{ required: true, message: '璇疯緭鍏ヤ緵搴斿晢鍚嶇О', trigger: 'blur' }], + societyCreditCode: [{ required: true, message: '璇疯緭鍏ョ粺涓�淇$敤浠g爜', trigger: 'blur' }], + categoryType: [{ required: true, message: '璇烽�夋嫨琛屼笟閰嶅', trigger: 'change' }], + areaList: [{ required: true, message: '璇烽�夋嫨鎵�鍦ㄥ湴鍖�', trigger: 'change', type: 'array' }], + companyAddress: [{ required: true, message: '璇疯緭鍏ュ叕鍙稿湴鍧�', trigger: 'blur' }], + contact: [{ required: true, message: '璇疯緭鍏ヨ仈绯讳汉', trigger: 'blur' }], + suppierLevel: [{ required: true, message: '璇烽�夋嫨渚涘簲鍟嗙瓑绾�', trigger: 'change' }], + // suppierType: [{ required: true, message: '璇烽�夋嫨渚涘簲鍟嗙被鍨�', trigger: 'change' }], + contactPhone: [ + { required: true, message: '璇疯緭鍏ヨ仈绯荤數璇�', trigger: 'blur' }, + { message: '璇疯緭鍏ユ纭殑鑱旂郴鐢佃瘽', trigger: 'blur', pattern: BoleRegExp.RegPhoneNumber }, + ], +}); + +async function handleSubmit() { + try { + const valid = await validateFormList([formRef.value, settingFormRef.value]); + if (valid) { + handleCreateOrEditInsureSupplier(); + } + } catch (error) {} +} + +async function handleCreateOrEditInsureSupplier() { + try { + // let params: API.CreateOrEditSearchInput = { + // name: form.name, + // }; + // if (isEdit.value) { + // params.id = props.id; + // } + // let res = await searchSettingServices.createOrEditSearchSetting(params); + // if (res) { + // Message.successMessage(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛'); + // eventContext.emit(isEdit ? 'enterprise:edit' : 'enterprise:add'); + // handleBack(); + // } + } catch (error) {} +} + +function handleBack() { + closeViewPush(route, { + name: 'EnterpriseManageList', + }); +} +</script> + +<style lang="scss" scoped> +@use '@/style/common.scss' as *; +</style> -- Gitblit v1.9.1