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