From b57f2596434274698b877cf0b37680710481e533 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期六, 12 七月 2025 15:04:20 +0800 Subject: [PATCH] 1.客户管理-编辑客户联系人和联系电话后保存。列表展示的联系人、联系电话还是编辑前的记录 --- src/views/basicData/customerFile/index.vue | 81 +++++++++++++++++++++++++++++++++------- 1 files changed, 67 insertions(+), 14 deletions(-) diff --git a/src/views/basicData/customerFile/index.vue b/src/views/basicData/customerFile/index.vue index d9b6a3e..846d248 100644 --- a/src/views/basicData/customerFile/index.vue +++ b/src/views/basicData/customerFile/index.vue @@ -92,26 +92,25 @@ </el-form-item> </el-col> </el-row> - <el-row :gutter="30"> + <el-row :gutter="30" v-for="(contact, index) in formYYs.contactList" :key="index"> <el-col :span="12"> <el-form-item label="鑱旂郴浜猴細" prop="contactPerson"> - <el-input - v-model="form.contactPerson" - placeholder="璇疯緭鍏�" - clearable - /> + <el-input v-model="contact.contactPerson" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鑱旂郴鐢佃瘽锛�" prop="contactPhone"> - <el-input - v-model="form.contactPhone" - placeholder="璇疯緭鍏�" - clearable - /> + <div style="display: flex; align-items: center;width: 100%;"> + <el-input v-model="contact.contactPhone" placeholder="璇疯緭鍏�" clearable /> + <el-button @click="removeContact(index)" type="danger" circle style="margin-left: 5px;"> + <el-icon><Close /></el-icon> + </el-button> + </div> </el-form-item> </el-col> </el-row> + <el-button @click="addNewContact" style="margin-bottom: 10px;">+ 鏂板鑱旂郴浜�</el-button> + <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="閾惰鍩烘湰鎴凤細" prop="basicBankAccount"> @@ -259,7 +258,7 @@ { label: "鍦板潃鍙婅仈绯绘柟寮�", prop: "addressPhone", - width: 220, + width: 250, }, { label: "鑱旂郴浜�", @@ -268,18 +267,22 @@ { label: "鑱旂郴鐢佃瘽", prop: "contactPhone", + width:150 }, { label: "閾惰鍩烘湰鎴�", prop: "basicBankAccount", + width: 220, }, { label: "閾惰璐﹀彿", prop: "bankAccount", + width: 220, }, { label: "寮�鎴疯鍙�", prop: "bankCode", + width:220 }, { label: "缁存姢浜�", @@ -288,11 +291,13 @@ { label: "缁存姢鏃堕棿", prop: "maintenanceTime", + width: 100, }, { dataType: "action", label: "鎿嶄綔", align: "center", + fixed: 'right', operation: [ { name: "缂栬緫", @@ -300,6 +305,9 @@ clickFun: (row) => { openForm("edit", row); }, + disabled: (row) => { + return row.maintainer !== userStore.nickName + } }, ], }, @@ -318,6 +326,14 @@ // 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁 const operationType = ref(""); const dialogFormVisible = ref(false); +const formYYs = ref({ // 鍏朵粬瀛楁... + contactList: [ + { + contactPerson: "", + contactPhone: "" + } + ] +}); const data = reactive({ searchForm: { customerName: "", @@ -342,8 +358,8 @@ ], companyAddress: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], companyPhone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], - contactPerson: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], - contactPhone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + // contactPerson: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + // contactPhone: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], maintainer: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }], maintenanceTime: [ { required: false, message: "璇烽�夋嫨", trigger: "change" }, @@ -366,7 +382,18 @@ url: import.meta.env.VITE_APP_BASE_API + "/basic/customer/importData", }); const { searchForm, form, rules } = toRefs(data); +const addNewContact = () => { + formYYs.value.contactList.push({ + contactPerson: "", + contactPhone: "" + }); +}; +const removeContact = (index) => { + if (formYYs.value.contactList.length > 1) { + formYYs.value.contactList.splice(index, 1); + } +}; // 鏌ヨ鍒楄〃 /** 鎼滅储鎸夐挳鎿嶄綔 */ const handleQuery = () => { @@ -404,6 +431,12 @@ operationType.value = type; form.value = {}; form.value.maintainer = userStore.nickName; + formYYs.value.contactList = [ + { + contactPerson: "", + contactPhone: "" + } + ]; form.value.maintenanceTime = getCurrentDate(); userListNoPage().then((res) => { userList.value = res.data; @@ -411,6 +444,13 @@ 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] + } + }); + }); } dialogFormVisible.value = true; @@ -429,6 +469,11 @@ }; // 鎻愪氦鏂板 const submitAdd = () => { + if(formYYs.value.contactList.length < 1){ + return proxy.$modal.msgWarning("璇疯嚦灏戞坊鍔犱竴涓仈绯讳汉"); + } + form.value.contactPerson = formYYs.value.contactList.map(item => item.contactPerson).join(","); + form.value.contactPhone = formYYs.value.contactList.map(item => item.contactPhone).join(","); addCustomer(form.value).then((res) => { proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); closeDia(); @@ -437,6 +482,8 @@ }; // 鎻愪氦淇敼 const submitEdit = () => { + form.value.contactPerson = formYYs.value.contactList.map(item => item.contactPerson).join(","); + form.value.contactPhone = formYYs.value.contactList.map(item => item.contactPhone).join(","); updateCustomer(form.value).then((res) => { proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); closeDia(); @@ -466,6 +513,12 @@ const handleDelete = () => { let ids = []; if (selectedRows.value.length > 0) { + // 妫�鏌ユ槸鍚︽湁浠栦汉缁存姢鐨勬暟鎹� + const unauthorizedData = selectedRows.value.filter(item => item.maintainer !== userStore.nickName); + if (unauthorizedData.length > 0) { + proxy.$modal.msgWarning("涓嶅彲鍒犻櫎浠栦汉缁存姢鐨勬暟鎹�"); + return; + } ids = selectedRows.value.map((item) => item.id); } else { proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁"); -- Gitblit v1.9.3