liyong
2026-05-14 bfc02d9cd38ccdeb09b3a1f2545e1c75cdf39b29
src/views/basicData/customerFileOpenSea/index.vue
@@ -133,20 +133,23 @@
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 联系人列表 -->
        <el-row :gutter="30"
                v-for="(contact, index) in formYYs.contactList"
                v-for="(contact, index) in form.contactList"
                :key="index">
          <el-col :span="12">
            <el-form-item label="联系人:"
                          prop="contactPerson">
            <el-form-item :label="index === 0 ? '联系人:' : ''"
                          :prop="'contactList.' + index + '.contactPerson'"
                          :rules="{ required: true, message: '请输入联系人', trigger: 'blur' }">
              <el-input v-model="contact.contactPerson"
                        placeholder="请输入"
                        clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="联系电话:"
                          prop="contactPhone">
            <el-form-item :label="index === 0 ? '联系电话:' : ''"
                          :prop="'contactList.' + index + '.contactPhone'"
                          :rules="{ required: true, message: '请输入联系电话', trigger: 'blur' }">
              <div style="display: flex; align-items: center;width: 100%;">
                <el-input v-model="contact.contactPhone"
                          placeholder="请输入"
@@ -154,7 +157,8 @@
                <el-button @click="removeContact(index)"
                           type="danger"
                           circle
                           style="margin-left: 5px;">
                           style="margin-left: 5px;"
                           :disabled="form.contactList.length <= 1">
                  <el-icon>
                    <Close />
                  </el-icon>
@@ -164,7 +168,9 @@
          </el-col>
        </el-row>
        <el-button @click="addNewContact"
                   style="margin-bottom: 10px;">+ 新增联系人</el-button>
                   style="margin-bottom: 10px;"
                   type="primary"
                   plain>+ 新增联系人</el-button>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="维护人:"
@@ -280,7 +286,8 @@
                 :limit="1"
                 accept=".xlsx, .xls"
                 :headers="upload.headers"
                 :action="upload.url + '?updateSupport=' + upload.updateSupport"
                 :action="upload.url"
                 :data="upload.data"
                 :disabled="upload.isUploading"
                 :before-upload="upload.beforeUpload"
                 :on-progress="upload.onProgress"
@@ -498,6 +505,7 @@
              </div>
            </el-col>
          </el-row>
          <!-- 联系人信息已迁移到联系人管理页面
          <el-row :gutter="20">
            <el-col :span="12">
              <div class="info-item">
@@ -512,6 +520,7 @@
              </div>
            </el-col>
          </el-row>
          -->
          <el-row :gutter="20">
            <el-col :span="12">
              <div class="info-item">
@@ -681,7 +690,6 @@
  import { onMounted, ref, reactive, getCurrentInstance, toRefs } from "vue";
  import { Search, Paperclip, Upload } from "@element-plus/icons-vue";
  import {
    shareCustomer,
    addCustomerFollow,
    updateCustomerFollow,
    delCustomerFollow,
@@ -695,7 +703,8 @@
    updateCustomer,
    getCustomer,
    assignCustomer,
    recycleCustomer
    recycleCustomer,
    shareCustomer,
  } from "@/api/basicData/customer.js";
  import { ElMessageBox } from "element-plus";
@@ -875,7 +884,7 @@
    },
    {
      label: "领用状态",
      prop: "usageStatus",
      prop: "isAssigned",
      dataType: "tag",
      width: 100,
         fixed: "right",
@@ -908,7 +917,7 @@
        {
          name: "分配",
          type: "text",
          showHide: row => row.usageStatus != 1,
          showHide: row => row.isAssigned != 1,
          clickFun: row => {
            openAssignDialog(row);
          },
@@ -916,7 +925,7 @@
        {
          name: "回收",
          type: "text",
          showHide: row => row.usageStatus == 1,
          showHide: row => row.isAssigned == 1,
          clickFun: row => {
            recycle(row);
          },
@@ -924,7 +933,7 @@
            {
               name: "共享",
               type: "text",
               showHide: row => row.usageStatus == 1,
               showHide: row => row.isAssigned == 1,
               clickFun: row => {
                  openShareDialog(row);
               },
@@ -982,6 +991,12 @@
      companyPhone: "",
      contactPerson: "",
      contactPhone: "",
      contactList: [
        {
          contactPerson: "",
          contactPhone: "",
        },
      ],
      maintainer: "",
      maintenanceTime: "",
      basicBankAccount: "",
@@ -1020,6 +1035,9 @@
    headers: { Authorization: "Bearer " + getToken() },
    // 上传的地址
    url: import.meta.env.VITE_APP_BASE_API + "/basic/customer/importData",
    data: {
      type: 1
    },
    // 文件上传前的回调
    beforeUpload: file => {
      console.log("文件即将上传", file);
@@ -1066,15 +1084,15 @@
  });
  const { searchForm, form, rules } = toRefs(data);
  const addNewContact = () => {
    formYYs.value.contactList.push({
    form.value.contactList.push({
      contactPerson: "",
      contactPhone: "",
    });
  };
  const removeContact = index => {
    if (formYYs.value.contactList.length > 1) {
      formYYs.value.contactList.splice(index, 1);
    if (form.value.contactList.length > 1) {
      form.value.contactList.splice(index, 1);
    }
  };
  // 查询列表
@@ -1120,7 +1138,7 @@
    operationType.value = type;
    form.value = {};
    form.value.maintainer = userStore.nickName;
    formYYs.value.contactList = [
    form.value.contactList = [
      {
        contactPerson: "",
        contactPhone: "",
@@ -1134,14 +1152,19 @@
    if (type === "edit") {
      getCustomer(row.id).then(res => {
        form.value = { ...res.data };
        formYYs.value.contactList = res.data.contactPerson
          .split(",")
          .map((item, index) => {
            return {
              contactPerson: item,
              contactPhone: res.data.contactPhone.split(",")[index],
            };
          });
        // 优先使用后端返回的contactList数组,如果没有则使用逗号分隔的字符串转换
        if (res.data.contactList && res.data.contactList.length > 0) {
          form.value.contactList = res.data.contactList;
        } else if (res.data.contactPerson) {
          form.value.contactList = res.data.contactPerson
            .split(",")
            .map((item, index) => {
              return {
                contactPerson: item,
                contactPhone: res.data.contactPhone ? res.data.contactPhone.split(",")[index] : "",
              };
            });
        }
      });
    }
    dialogFormVisible.value = true;
@@ -1160,13 +1183,13 @@
  };
  // 提交新增
  const submitAdd = () => {
    if (formYYs.value.contactList.length < 1) {
    if (form.value.contactList.length < 1) {
      return proxy.$modal.msgWarning("请至少添加一个联系人");
    }
    form.value.contactPerson = formYYs.value.contactList
    form.value.contactPerson = form.value.contactList
      .map(item => item.contactPerson)
      .join(",");
    form.value.contactPhone = formYYs.value.contactList
    form.value.contactPhone = form.value.contactList
      .map(item => item.contactPhone)
      .join(",");
    addCustomer(form.value).then(res => {
@@ -1177,10 +1200,10 @@
  };
  // 提交修改
  const submitEdit = () => {
    form.value.contactPerson = formYYs.value.contactList
    form.value.contactPerson = form.value.contactList
      .map(item => item.contactPerson)
      .join(",");
    form.value.contactPhone = formYYs.value.contactList
    form.value.contactPhone = form.value.contactList
      .map(item => item.contactPhone)
      .join(",");
    updateCustomer(form.value).then(res => {
@@ -1220,7 +1243,7 @@
  const openShareDialog = row => {
    shareForm.id = row.id;
    shareForm.customerName = row.customerName;
    shareForm.boundIds = [];
    shareForm.boundIds = row.userIds || [];
    ensureUserList().then(() => {
      shareDialogVisible.value = true;
    });
@@ -1253,8 +1276,8 @@
        return;
      }
      shareCustomer({
        customerId: shareForm.id,
        boundIds: shareForm.boundIds,
        id: shareForm.id,
        userIds: shareForm.boundIds,
      }).then(() => {
        proxy.$modal.msgSuccess("共享成功");
        closeShareDialog();
@@ -1288,7 +1311,7 @@
      type: "warning",
    })
      .then(() => {
        proxy.download("/basic/customer/export", {}, "客户档案.xlsx");
        proxy.download("/basic/customer/export", {type: 1}, "客户档案.xlsx");
      })
      .catch(() => {
        proxy.$modal.msg("已取消");
@@ -1647,7 +1670,7 @@
  const downloadAttachment = row => {
    if (row.url) {
      // proxy.download(row.url, {}, row.name);
      proxy.$download.name(row.url);
         proxy.$download.byUrl(row.url, row.originalFilename);
    } else {
      proxy.$modal.msgError("下载链接不存在");
    }