From 33085de488c42c6118d3ace1e999c9862e3c9481 Mon Sep 17 00:00:00 2001 From: zhonghua1 Date: Sun, 21 Dec 2025 20:02:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=BB=91=E5=AE=9A=E6=89=80?= =?UTF-8?q?=E5=B1=9E=E7=9A=84=E9=94=80=E5=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/device/index.vue | 110 ++++++++++++++++++++++++++++++++----- 1 file changed, 95 insertions(+), 15 deletions(-) diff --git a/src/views/device/index.vue b/src/views/device/index.vue index a0f5428..b65fa6a 100644 --- a/src/views/device/index.vue +++ b/src/views/device/index.vue @@ -132,7 +132,7 @@ - + - + { if (response && response.code === 20000) { - this.dealershipOptions = response.data.map(item => ({ + // 处理可能的分页数据结构 + const dealershipData = response.data.records || response.data.data || response.data || [] + this.dealershipOptions = dealershipData.map(item => ({ value: item.id, - label: item.dealershipName + label: item.dealershipName, + dealershipName: item.dealershipName })) } else { this.$message.error(response?.message || '获取机构列表失败') @@ -310,10 +316,10 @@ export default { console.error('获取机构列表失败:', error) // 开发环境使用模拟数据 this.dealershipOptions = [ - { value: '1', label: 'DCC演示' }, - { value: '2', label: '销售演示-上汽' }, - { value: '3', label: '销售演示-奔驰' }, - { value: '4', label: '销售演示-比亚迪' } + { value: '1', label: 'DCC演示', dealershipName: 'DCC演示' }, + { value: '2', label: '销售演示-上汽', dealershipName: '销售演示-上汽' }, + { value: '3', label: '销售演示-奔驰', dealershipName: '销售演示-奔驰' }, + { value: '4', label: '销售演示-比亚迪', dealershipName: '销售演示-比亚迪' } ] }) }, @@ -322,10 +328,21 @@ export default { getUserOptions() { getSalesList({ pageSize: 1000 }).then(response => { if (response && response.code === 20000) { - this.userOptions = response.data.map(item => ({ - value: item.id, - label: `${item.salesName}(${item.salesName})` - })) + // 处理可能的分页数据结构 + const salesData = response.data.records || response.data.data || response.data || [] + console.log('获取用户列表响应数据:', salesData) + this.userOptions = salesData.map(item => { + // 优先使用 loginAccount 作为手机号(后端返回的手机号存储在 loginAccount 字段中) + const salesPhone = item.loginAccount || item.salesPhone || item.phone || '' + console.log('用户数据:', item, '手机号字段 - loginAccount:', item.loginAccount, 'salesPhone:', item.salesPhone, 'phone:', item.phone, '最终使用:', salesPhone) + return { + value: item.id, + label: `${item.salesName}(${item.salesName})`, + salesName: item.salesName, + salesPhone: salesPhone + } + }) + console.log('处理后的用户选项:', this.userOptions) } else { this.$message.error(response?.message || '获取用户列表失败') } @@ -333,9 +350,9 @@ export default { console.error('获取用户列表失败:', error) // 开发环境使用模拟数据 this.userOptions = [ - { value: '1', label: '罗先生(罗先生)' }, - { value: '2', label: '刘先生(刘先生)' }, - { value: '3', label: '粤语销售(粤语销售)' } + { value: '1', label: '罗先生(罗先生)', salesName: '罗先生', salesPhone: '13800138001' }, + { value: '2', label: '刘先生(刘先生)', salesName: '刘先生', salesPhone: '13800138002' }, + { value: '3', label: '粤语销售(粤语销售)', salesName: '粤语销售', salesPhone: '13800138003' } ] }) }, @@ -512,7 +529,10 @@ export default { deviceCode: '', tenantId: '', dealershipId: '', + dealershipName: '', bindUserId: '', + salesName: '', + salesPhone: '', projectId: '', bindStatus: false } @@ -530,6 +550,21 @@ export default { this.dialogTitle = '编辑设备' this.isEdit = true this.deviceForm = { ...row } + // 如果没有salesName和salesPhone,根据bindUserId从userOptions中查找 + if (this.deviceForm.bindUserId && (!this.deviceForm.salesName || !this.deviceForm.salesPhone)) { + const selectedUser = this.userOptions.find(item => item.value === this.deviceForm.bindUserId) + if (selectedUser) { + this.deviceForm.salesName = this.deviceForm.salesName || selectedUser.salesName || '' + this.deviceForm.salesPhone = this.deviceForm.salesPhone || selectedUser.salesPhone || '' + } + } + // 如果没有dealershipName,根据dealershipId从dealershipOptions中查找 + if (this.deviceForm.dealershipId && !this.deviceForm.dealershipName) { + const selectedDealership = this.dealershipOptions.find(item => item.value === this.deviceForm.dealershipId) + if (selectedDealership) { + this.deviceForm.dealershipName = selectedDealership.dealershipName || '' + } + } this.dialogVisible = true }, @@ -558,6 +593,23 @@ export default { handleSubmit() { this.$refs.deviceForm.validate(valid => { if (valid) { + // 提交前再次确认 salesName 和 salesPhone 已设置 + if (this.deviceForm.bindUserId) { + const selectedUser = this.userOptions.find(item => item.value === this.deviceForm.bindUserId) + if (selectedUser) { + this.deviceForm.salesName = this.deviceForm.salesName || selectedUser.salesName || '' + this.deviceForm.salesPhone = this.deviceForm.salesPhone || selectedUser.salesPhone || '' + console.log('提交前确认 - salesName:', this.deviceForm.salesName, 'salesPhone:', this.deviceForm.salesPhone) + } + } + // 提交前再次确认 dealershipName 已设置 + if (this.deviceForm.dealershipId) { + const selectedDealership = this.dealershipOptions.find(item => item.value === this.deviceForm.dealershipId) + if (selectedDealership) { + this.deviceForm.dealershipName = this.deviceForm.dealershipName || selectedDealership.dealershipName || '' + console.log('提交前确认 - dealershipName:', this.deviceForm.dealershipName) + } + } const submitFunc = this.isEdit ? updateDevice : addDevice submitFunc(this.deviceForm).then(response => { if (response.code === 20000) { @@ -576,6 +628,34 @@ export default { }) }, + // 用户选择变化 + handleUserChange(userId) { + console.log('用户选择变化,userId:', userId) + const selectedUser = this.userOptions.find(item => item.value === userId) + console.log('选中的用户:', selectedUser) + if (selectedUser) { + this.deviceForm.salesName = selectedUser.salesName || '' + this.deviceForm.salesPhone = selectedUser.salesPhone || '' + console.log('设置后的表单数据 - salesName:', this.deviceForm.salesName, 'salesPhone:', this.deviceForm.salesPhone) + } else { + this.deviceForm.salesName = '' + this.deviceForm.salesPhone = '' + } + }, + + // 机构选择变化 + handleDealershipChange(dealershipId) { + console.log('机构选择变化,dealershipId:', dealershipId) + const selectedDealership = this.dealershipOptions.find(item => item.value === dealershipId) + console.log('选中的机构:', selectedDealership) + if (selectedDealership) { + this.deviceForm.dealershipName = selectedDealership.dealershipName || '' + console.log('设置后的表单数据 - dealershipName:', this.deviceForm.dealershipName) + } else { + this.deviceForm.dealershipName = '' + } + }, + // 对话框关闭 handleDialogClose() { this.$refs.deviceForm.resetFields()