From c56e5d01939c67e3e7abdc0ff9d369719cd26f25 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 17 四月 2026 15:38:23 +0800
Subject: [PATCH] 进销存升级 1.客户档案分为公海和私海 2.销售所有模块查询客户数据接口更改

---
 src/views/basicData/customerFileOpenSea/index.vue |  198 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 156 insertions(+), 42 deletions(-)

diff --git a/src/views/basicData/customerFileOpenSea/index.vue b/src/views/basicData/customerFileOpenSea/index.vue
index b2d4709..71cc051 100644
--- a/src/views/basicData/customerFileOpenSea/index.vue
+++ b/src/views/basicData/customerFileOpenSea/index.vue
@@ -215,15 +215,15 @@
                     disabled />
         </el-form-item>
         <el-form-item label="鍒嗛厤浜哄憳"
-                      prop="maintainer">
-          <el-select v-model="assignForm.maintainer"
+                      prop="boundId">
+          <el-select v-model="assignForm.boundId"
                      placeholder="璇烽�夋嫨鍒嗛厤浜哄憳"
                      style="width: 100%"
                      filterable>
             <el-option v-for="item in userList"
                        :key="item.userId || item.nickName"
                        :label="item.nickName"
-                       :value="item.nickName" />
+                       :value="item.userId" />
           </el-select>
         </el-form-item>
       </el-form>
@@ -232,6 +232,42 @@
           <el-button type="primary"
                      @click="submitAssignForm">纭</el-button>
           <el-button @click="closeAssignDialog">鍙栨秷</el-button>
+        </div>
+      </template>
+    </el-dialog>
+    <el-dialog v-model="shareDialogVisible"
+               title="鍏变韩瀹㈡埛"
+               width="500px"
+               @close="closeShareDialog">
+      <el-form :model="shareForm"
+               :rules="shareRules"
+               ref="shareFormRef"
+               label-width="100px">
+        <el-form-item label="瀹㈡埛鍚嶇О">
+          <el-input v-model="shareForm.customerName"
+                    disabled />
+        </el-form-item>
+        <el-form-item label="鍏变韩浜哄憳"
+                      prop="boundIds">
+          <el-select v-model="shareForm.boundIds"
+                     placeholder="璇烽�夋嫨鍏变韩浜哄憳"
+                     style="width: 100%"
+                     filterable
+                     multiple
+                     collapse-tags
+                     collapse-tags-tooltip>
+            <el-option v-for="item in userList"
+                       :key="item.userId || item.nickName"
+                       :label="item.nickName"
+                       :value="item.userId" />
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary"
+                     @click="submitShareForm">纭</el-button>
+          <el-button @click="closeShareDialog">鍙栨秷</el-button>
         </div>
       </template>
     </el-dialog>
@@ -646,8 +682,11 @@
   import { Search, Paperclip, Upload } from "@element-plus/icons-vue";
   import {
     addCustomer,
+    addCustomerPrivatePool,
+    delCustomerPrivatePool,
     delCustomer,
     getCustomer,
+    shareCustomer,
     listCustomer,
     updateCustomer,
     addCustomerFollow,
@@ -667,10 +706,20 @@
   const assignForm = reactive({
     id: undefined,
     customerName: "",
-    maintainer: "",
+    boundId: undefined,
   });
   const assignRules = {
-    maintainer: [{ required: true, message: "璇烽�夋嫨鍒嗛厤浜哄憳", trigger: "change" }],
+    boundId: [{ required: true, message: "璇烽�夋嫨鍒嗛厤浜哄憳", trigger: "change" }],
+  };
+  const shareDialogVisible = ref(false);
+  const shareFormRef = ref();
+  const shareForm = reactive({
+    id: undefined,
+    customerName: "",
+    boundIds: [],
+  });
+  const shareRules = {
+    boundIds: [{ required: true, message: "璇烽�夋嫨鍏变韩浜哄憳", trigger: "change" }],
   };
 
   // 鍥炶鎻愰啋鐩稿叧
@@ -781,16 +830,16 @@
       prop: "contactPhone",
       width: 150,
     },
-    {
-      label: "璺熻繘杩涘害",
-      prop: "followUpLevel",
-      width: 120,
-    },
-    {
-      label: "璺熻繘鏃堕棿",
-      prop: "followUpTime",
-      width: 120,
-    },
+    // {
+    //   label: "璺熻繘杩涘害",
+    //   prop: "followUpLevel",
+    //   width: 120,
+    // },
+    // {
+    //   label: "璺熻繘鏃堕棿",
+    //   prop: "followUpTime",
+    //   width: 120,
+    // },
     {
       label: "閾惰鍩烘湰鎴�",
       prop: "basicBankAccount",
@@ -810,22 +859,53 @@
       label: "缁存姢浜�",
       prop: "maintainer",
     },
+		{
+			label: "缁存姢鏃堕棿",
+			prop: "maintenanceTime",
+			width: 100,
+		},
     {
-      label: "缁存姢鏃堕棿",
-      prop: "maintenanceTime",
-      width: 100,
+      label: "棰嗙敤浜�",
+      prop: "usageUserName",
+      width: 120,
+			fixed: "right",
     },
+    {
+      label: "棰嗙敤鐘舵��",
+      prop: "usageStatus",
+      dataType: "tag",
+      width: 100,
+			fixed: "right",
+      formatData: value => {
+        if (value === 1 || value === "1") {
+          return "宸查鐢�";
+        }
+        return "鏈鐢�";
+      },
+      formatType: value => {
+        if (value === 1 || value === "1") {
+          return "success";
+        }
+        return "info";
+      },
+    },
+		{
+			label: "鍏变韩浜�",
+			prop: "togetherUserNames",
+			width: 120,
+			fixed: "right",
+		},
     {
       dataType: "action",
       label: "鎿嶄綔",
       align: "center",
       fixed: "right",
-      width: 320,
+      width: 200,
       operation: [
         {
           name: "鍒嗛厤",
           type: "text",
-          showHide: row => !row.maintainer,
+          showHide: row => row.usageStatus != 1,
           clickFun: row => {
             openAssignDialog(row);
           },
@@ -833,11 +913,19 @@
         {
           name: "鍥炴敹",
           type: "text",
-          showHide: row => !!row.maintainer,
+          showHide: row => row.usageStatus == 1,
           clickFun: row => {
             recycleCustomer(row);
           },
         },
+				{
+					name: "鍏变韩",
+					type: "text",
+					showHide: row => row.usageStatus == 1,
+					clickFun: row => {
+						openShareDialog(row);
+					},
+				},
 				{
 					name: "缂栬緫",
 					type: "text",
@@ -845,13 +933,13 @@
 						openForm("edit", row);
 					},
 				},
-        {
-          name: "璇︽儏",
-          type: "text",
-          clickFun: row => {
-            openDetailDialog(row);
-          },
-        },
+        // {
+        //   name: "璇︽儏",
+        //   type: "text",
+        //   clickFun: row => {
+        //     openDetailDialog(row);
+        //   },
+        // },
       ],
     },
   ]);
@@ -997,10 +1085,11 @@
   };
   const getList = () => {
     tableLoading.value = true;
-    listCustomer({ ...searchForm.value, ...page }).then(res => {
+    const { total, ...queryPage } = page;
+    listCustomer({ ...searchForm.value, ...queryPage }).then(res => {
       tableLoading.value = false;
-      tableData.value = res.records;
-      page.total = res.total;
+      tableData.value = res.data.records;
+      page.total = res.data.total;
     });
   };
   // 琛ㄦ牸閫夋嫨鏁版嵁
@@ -1110,7 +1199,7 @@
   const openAssignDialog = row => {
     assignForm.id = row.id;
     assignForm.customerName = row.customerName;
-    assignForm.maintainer = row.maintainer || "";
+    assignForm.boundId = undefined;
     ensureUserList().then(() => {
       assignDialogVisible.value = true;
     });
@@ -1119,21 +1208,50 @@
     proxy.resetForm("assignFormRef");
     assignForm.id = undefined;
     assignForm.customerName = "";
-    assignForm.maintainer = "";
+    assignForm.boundId = undefined;
     assignDialogVisible.value = false;
+  };
+  const openShareDialog = row => {
+    shareForm.id = row.id;
+    shareForm.customerName = row.customerName;
+    shareForm.boundIds = [];
+    ensureUserList().then(() => {
+      shareDialogVisible.value = true;
+    });
+  };
+  const closeShareDialog = () => {
+    proxy.resetForm("shareFormRef");
+    shareForm.id = undefined;
+    shareForm.customerName = "";
+    shareForm.boundIds = [];
+    shareDialogVisible.value = false;
   };
   const submitAssignForm = () => {
     proxy.$refs.assignFormRef.validate(valid => {
       if (!valid) {
         return;
       }
-      updateCustomer({
-        id: assignForm.id,
-        maintainer: assignForm.maintainer,
-        maintenanceTime: getCurrentDate(),
+      addCustomerPrivatePool({
+        customerId: assignForm.id,
+        boundId: assignForm.boundId,
       }).then(() => {
         proxy.$modal.msgSuccess("鍒嗛厤鎴愬姛");
         closeAssignDialog();
+        getList();
+      });
+    });
+  };
+  const submitShareForm = () => {
+    proxy.$refs.shareFormRef.validate(valid => {
+      if (!valid) {
+        return;
+      }
+      shareCustomer({
+        customerId: shareForm.id,
+        boundIds: shareForm.boundIds,
+      }).then(() => {
+        proxy.$modal.msgSuccess("鍏变韩鎴愬姛");
+        closeShareDialog();
         getList();
       });
     });
@@ -1145,11 +1263,7 @@
       type: "warning",
     })
       .then(() => {
-        return updateCustomer({
-          id: row.id,
-          maintainer: "",
-          maintenanceTime: "",
-        });
+        return delCustomerPrivatePool(row.id);
       })
       .then(() => {
         proxy.$modal.msgSuccess("鍥炴敹鎴愬姛");

--
Gitblit v1.9.3