wupengfei
2025-02-20 1703be93b291e4e9e380b139d236cbd9096f929b
feat: enterprise
3个文件已修改
3个文件已添加
714 ■■■■■ 已修改文件
package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pnpm-lock.yaml 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/hooks/useEvent.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/AddOrEditEnterprise.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/EnterpriseManageList.vue 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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",
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
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;
src/views/EnterpriseManage/AddOrEditEnterprise.vue
New file
@@ -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>
src/views/EnterpriseManage/EnterpriseManageList.vue
New file
@@ -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>
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
New file
@@ -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="统一社会信用代码:" prop="societyCreditCode">
                <ProFormText
                  v-model.trim="form.societyCreditCode"
                  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>
                <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: '请输入统一信用代码', 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>