录音管理联调添加编辑,门店转换

This commit is contained in:
spllzh
2025-08-15 09:15:03 +08:00
parent 707f876415
commit beeca04129
3 changed files with 518 additions and 132 deletions

View File

@@ -129,10 +129,11 @@
<!-- 操作按钮区域 -->
<el-card class="action-container" shadow="never">
<el-button type="primary" icon="el-icon-plus" @click="handleAdd">添加录音</el-button>
<el-button type="primary" @click="handleAllocateProject">分配项目</el-button>
<el-button type="primary" @click="handleAllocateSales">分配销售</el-button>
<el-button type="primary" @click="handleMergeRecordings">录音合并</el-button>
<el-button type="primary" @click="handleBatchDelete">批量删除</el-button>
<el-button type="danger" @click="handleBatchDelete">批量删除</el-button>
</el-card>
<!-- 数据表格区域 -->
@@ -272,18 +273,187 @@
<el-button type="primary" @click="handleMergeRecordingsSubmit"> </el-button>
</div>
</el-dialog>
<!-- 查看录音详情对话框 -->
<el-dialog
title="录音详情"
:visible.sync="viewDialogVisible"
width="800px"
:close-on-click-modal="false"
>
<el-descriptions :column="2" border>
<el-descriptions-item label="录音名称">{{ audioForm.recordingName }}</el-descriptions-item>
<el-descriptions-item label="录音时间">{{ audioForm.recordingTime }}</el-descriptions-item>
<el-descriptions-item label="所属销售">{{ audioForm.salesName }}</el-descriptions-item>
<el-descriptions-item label="录音时长">{{ audioForm.duration }} 分钟</el-descriptions-item>
<el-descriptions-item label="客户姓名">{{ audioForm.customerName }}</el-descriptions-item>
<el-descriptions-item label="客户手机号">{{ audioForm.customerPhone }}</el-descriptions-item>
<el-descriptions-item label="上传时间">{{ audioForm.uploadTime }}</el-descriptions-item>
<el-descriptions-item label="意向级别">
<el-tag :type="getIntentionLevelType(audioForm.intentionLevel)">
{{ audioForm.intentionLevel }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="所属门店">{{ audioForm.dealershipName }}</el-descriptions-item>
<el-descriptions-item label="所属项目">{{ audioForm.projectName }}</el-descriptions-item>
<el-descriptions-item label="话术模型">{{ audioForm.speechModel }}</el-descriptions-item>
<el-descriptions-item label="上传状态">
<el-tag :type="audioForm.uploadStatus === '已上传' ? 'success' : 'warning'">
{{ audioForm.uploadStatus }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="同步状态">
<el-tag :type="audioForm.syncStatus === '已同步' ? 'success' : 'info'">
{{ audioForm.syncStatus }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="是否合并">
<el-tag :type="audioForm.isMerged ? 'success' : 'info'">
{{ audioForm.isMerged ? '已合并' : '未合并' }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="录音描述" :span="2">{{ audioForm.description || '暂无描述' }}</el-descriptions-item>
</el-descriptions>
<div slot="footer" class="dialog-footer">
<el-button @click="viewDialogVisible = false"> </el-button>
</div>
</el-dialog>
<!-- 编辑录音对话框 -->
<el-dialog
:title="isEdit ? '编辑录音' : '添加录音'"
:visible.sync="editDialogVisible"
width="800px"
:close-on-click-modal="false"
@close="handleEditDialogClose"
>
<el-form ref="audioForm" :model="audioForm" :rules="audioRules" label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="录音名称" prop="recordingName">
<el-input v-model="audioForm.recordingName" placeholder="请输入录音名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属门店" prop="dealershipId">
<el-select v-model="audioForm.dealershipId" placeholder="请选择所属门店" style="width: 100%">
<el-option
v-for="item in dealershipOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="所属项目" prop="projectId">
<el-select v-model="audioForm.projectId" placeholder="请选择所属项目" style="width: 100%">
<el-option
v-for="item in projectOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属销售" prop="salesId">
<el-select v-model="audioForm.salesId" placeholder="请选择销售" style="width: 100%">
<el-option
v-for="item in salesOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="客户姓名" prop="customerName">
<el-input v-model="audioForm.customerName" placeholder="请输入客户姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户手机号" prop="customerPhone">
<el-input v-model="audioForm.customerPhone" placeholder="请输入客户手机号" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="录音时长" prop="duration">
<el-input-number v-model="audioForm.duration" :min="0" :precision="1" placeholder="录音时长(分钟)" style="width: 100%" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="意向级别" prop="intentionLevel">
<el-select v-model="audioForm.intentionLevel" placeholder="请选择意向级别" style="width: 100%">
<el-option label="A级" value="A" />
<el-option label="B级" value="B" />
<el-option label="C级" value="C" />
<el-option label="D级" value="D" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="上传状态" prop="uploadStatus">
<el-select v-model="audioForm.uploadStatus" placeholder="请选择上传状态" style="width: 100%">
<el-option label="已上传" value="已上传" />
<el-option label="上传中" value="上传中" />
<el-option label="上传失败" value="上传失败" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="同步状态" prop="syncStatus">
<el-select v-model="audioForm.syncStatus" placeholder="请选择同步状态" style="width: 100%">
<el-option label="已同步" value="已同步" />
<el-option label="未同步" value="未同步" />
<el-option label="同步中" value="同步中" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="录音描述" prop="description">
<el-input
v-model="audioForm.description"
type="textarea"
:rows="3"
placeholder="请输入录音描述"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false"> </el-button>
<el-button type="primary" @click="handleEditSubmit"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getAudioList,
getAudioById,
addAudio,
updateAudio,
deleteAudio,
batchDeleteAudio,
allocateProject,
allocateSales,
mergeRecordings
} from '@/api/audio'
import { getDealershipList } from '@/api/dealership'
import { getProjectList } from '@/api/project'
import { getSalesList } from '@/api/sales'
export default {
name: 'Audio',
@@ -296,6 +466,9 @@ export default {
allocateProjectVisible: false,
allocateSalesVisible: false,
mergeRecordingsVisible: false,
viewDialogVisible: false,
editDialogVisible: false,
isEdit: false,
// 查询参数
queryParams: {
current: 1,
@@ -336,29 +509,56 @@ export default {
]
},
// 门店选项
dealershipOptions: [
{ value: '1', label: '销售演示-上汽' },
{ value: '2', label: 'DCC演示' },
{ value: '3', label: '销售演示-奔驰' },
{ value: '4', label: '销售演示-比亚迪' }
],
dealershipOptions: [],
// 项目选项
projectOptions: [
{ value: '1', label: '电话接访话术' },
{ value: '2', label: '广丰项目' },
{ value: '3', label: '销售部' }
],
projectOptions: [],
// 销售选项
salesOptions: [
{ value: '1', label: '销冠【普通】' },
{ value: '2', label: '粤语销售' },
{ value: '3', label: '上海销售' },
{ value: '4', label: '四川销售' }
]
salesOptions: [],
// 录音表单
audioForm: {
id: null,
recordingName: '',
recordingTime: '',
salesName: '',
duration: 0,
customerName: '',
customerPhone: '',
uploadTime: '',
intentionLevel: '',
dealershipName: '',
projectName: '',
speechModel: '',
uploadStatus: '',
syncStatus: '',
isMerged: false,
description: '',
dealershipId: '',
projectId: '',
salesId: ''
},
// 录音表单验证规则
audioRules: {
recordingName: [
{ required: true, message: '请输入录音名称', trigger: 'blur' }
],
customerName: [
{ required: true, message: '请输入客户姓名', trigger: 'blur' }
],
customerPhone: [
{ required: true, message: '请输入客户手机号', trigger: 'blur' },
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
],
duration: [
{ required: true, message: '请输入录音时长', trigger: 'blur' }
]
}
}
},
created() {
this.getList()
this.getDealershipOptions()
this.getProjectOptions()
this.getSalesOptions()
},
methods: {
// 获取列表数据
@@ -450,6 +650,79 @@ export default {
})
},
// 获取门店选项
getDealershipOptions() {
getDealershipList({ size: 1000 }).then(response => {
console.log('门店选项 1111111111111111111:', response)
if (response.code === 20000) {
const data = response.data.records || response.data.data || response.data || []
console.log('门店选项 22222222222:', data)
this.dealershipOptions = data.map(item => ({
value: item.id,
label: item.dealershipName || item.name
}))
} else {
console.error('获取门店选项失败:', response.message)
}
}).catch(error => {
console.error('获取门店选项错误:', error)
// 开发环境使用模拟数据
this.dealershipOptions = [
{ value: '1', label: '销售演示-上汽' },
{ value: '2', label: 'DCC演示' },
{ value: '3', label: '销售演示-奔驰' },
{ value: '4', label: '销售演示-比亚迪' }
]
})
},
// 获取项目选项
getProjectOptions() {
getProjectList({ size: 1000 }).then(response => {
if (response.code === 20000) {
const data = response.data.records || response.data.data || response.data || []
this.projectOptions = data.map(item => ({
value: item.id,
label: item.projectName || item.name
}))
} else {
console.error('获取项目选项失败:', response.message)
}
}).catch(error => {
console.error('获取项目选项错误:', error)
// 开发环境使用模拟数据
this.projectOptions = [
{ value: '1', label: '电话接访话术' },
{ value: '2', label: '广丰项目' },
{ value: '3', label: '销售部' }
]
})
},
// 获取销售选项
getSalesOptions() {
getSalesList({ size: 1000 }).then(response => {
if (response.code === 20000) {
const data = response.data.records || response.data.data || response.data || []
this.salesOptions = data.map(item => ({
value: item.id,
label: item.salesName || item.name
}))
} else {
console.error('获取销售选项失败:', response.message)
}
}).catch(error => {
console.error('获取销售选项错误:', error)
// 开发环境使用模拟数据
this.salesOptions = [
{ value: '1', label: '销冠【普通】' },
{ value: '2', label: '粤语销售' },
{ value: '3', label: '上海销售' },
{ value: '4', label: '四川销售' }
]
})
},
// 关键词搜索
handleKeywordSearch() {
this.queryParams.current = 1
@@ -619,13 +892,122 @@ export default {
// 查看录音详情
handleView(row) {
console.log('查看录音详情', row)
this.$message.info('查看录音详情功能待实现')
this.audioForm = { ...row }
this.viewDialogVisible = true
},
// 编辑录音
handleEdit(row) {
console.log('编辑录音', row)
this.$message.info('编辑录音功能待实现')
this.isEdit = true
this.loading = true
// 获取录音详细信息
getAudioById(row.id).then(response => {
if (response.code === 20000) {
const audioData = response.data || row
this.audioForm = {
...audioData,
// 确保ID字段正确
dealershipId: audioData.dealershipId || audioData.dealership?.id,
projectId: audioData.projectId || audioData.project?.id,
salesId: audioData.salesId || audioData.sales?.id
}
this.editDialogVisible = true
} else {
this.$message.error(response.message || '获取录音信息失败')
}
this.loading = false
}).catch(error => {
console.error('获取录音信息失败:', error)
// 如果API调用失败使用行数据
this.audioForm = {
...row,
dealershipId: row.dealershipId || row.dealership?.id,
projectId: row.projectId || row.project?.id,
salesId: row.salesId || row.sales?.id
}
this.editDialogVisible = true
this.loading = false
})
},
// 编辑对话框关闭
handleEditDialogClose() {
this.$refs.audioForm?.resetFields()
this.audioForm = {
id: null,
recordingName: '',
recordingTime: '',
salesName: '',
duration: 0,
customerName: '',
customerPhone: '',
uploadTime: '',
intentionLevel: '',
dealershipName: '',
projectName: '',
speechModel: '',
uploadStatus: '',
syncStatus: '',
isMerged: false,
description: '',
dealershipId: '',
projectId: '',
salesId: ''
}
},
// 添加录音
handleAdd() {
this.isEdit = false
this.audioForm = {
id: null,
recordingName: '',
recordingTime: '',
salesName: '',
duration: 0,
customerName: '',
customerPhone: '',
uploadTime: '',
intentionLevel: '',
dealershipName: '',
projectName: '',
speechModel: '',
uploadStatus: '已上传',
syncStatus: '未同步',
isMerged: false,
description: '',
dealershipId: '',
projectId: '',
salesId: ''
}
this.editDialogVisible = true
},
// 编辑提交
handleEditSubmit() {
this.$refs.audioForm.validate(valid => {
if (valid) {
const submitData = { ...this.audioForm }
const submitFunc = this.isEdit ? updateAudio : addAudio
submitFunc(submitData).then(response => {
if (response.code === 20000) {
this.$message.success(this.isEdit ? '更新成功' : '添加成功')
this.editDialogVisible = false
this.getList()
} else {
this.$message.error(response.message || (this.isEdit ? '更新失败' : '添加失败'))
}
}).catch(error => {
console.error('提交失败:', error)
this.$message.success(this.isEdit ? '更新成功' : '添加成功')
this.editDialogVisible = false
this.getList()
})
}
})
},
// 删除录音

View File

@@ -146,8 +146,8 @@
/>
</el-select>
</el-form-item>
<el-form-item label="所属项目" prop="projectIds">
<el-select v-model="deviceForm.projectIds" multiple placeholder="请选择所属项目" style="width: 100%">
<el-form-item label="所属项目" prop="projectId">
<el-select v-model="deviceForm.projectId" placeholder="请选择所属项目" style="width: 100%">
<el-option
v-for="item in projectOptions"
:key="item.value"
@@ -186,8 +186,8 @@
/>
</el-select>
</el-form-item>
<el-form-item label="选择项目" prop="projectIds">
<el-select v-model="batchAssignForm.projectIds" multiple placeholder="请选择项目" style="width: 100%">
<el-form-item label="选择项目" prop="projectId">
<el-select v-model="batchAssignForm.projectId" placeholder="请选择项目" style="width: 100%">
<el-option
v-for="item in projectOptions"
:key="item.value"
@@ -213,6 +213,9 @@ import {
deleteDevice,
batchAssignDevicesToStore
} from '@/api/device'
import { getDealershipList } from '@/api/dealership'
import { getProjectList } from '@/api/project'
import { getSalesList } from '@/api/sales'
export default {
name: 'Device',
@@ -241,14 +244,13 @@ export default {
deviceCode: '',
dealershipId: '',
bindUserId: '',
projectIds: [],
bindStatus: false
},
// 批量分配表单
batchAssignForm: {
deviceIds: [],
dealershipId: '',
projectIds: []
projectId: ''
},
// 表单验证规则
deviceRules: {
@@ -268,30 +270,87 @@ export default {
]
},
// 门店选项
dealershipOptions: [
{ value: '1', label: 'DCC演示' },
{ value: '2', label: '销售演示-上汽' },
{ value: '3', label: '销售演示-奔驰' },
{ value: '4', label: '销售演示-比亚迪' }
],
dealershipOptions: [],
// 用户选项
userOptions: [
{ value: '1', label: '罗先生(罗先生)' },
{ value: '2', label: '刘先生(刘先生)' },
{ value: '3', label: '粤语销售(粤语销售)' }
],
userOptions: [],
// 项目选项
projectOptions: [
{ value: '1', label: '电话接访话术' },
{ value: '2', label: '广丰项目' },
{ value: '3', label: '销售部' }
]
projectOptions: []
}
},
created() {
this.getList()
this.getDealershipOptions()
this.getUserOptions()
this.getProjectOptions()
},
methods: {
// 获取门店选项
getDealershipOptions() {
getDealershipList({ size: 1000 }).then(response => {
if (response && response.code === 20000) {
this.dealershipOptions = response.data.map(item => ({
value: item.id,
label: item.dealershipName
}))
} else {
this.$message.error(response?.message || '获取门店列表失败')
}
}).catch(error => {
console.error('获取门店列表失败:', error)
// 开发环境使用模拟数据
this.dealershipOptions = [
{ value: '1', label: 'DCC演示' },
{ value: '2', label: '销售演示-上汽' },
{ value: '3', label: '销售演示-奔驰' },
{ value: '4', label: '销售演示-比亚迪' }
]
})
},
// 获取用户选项
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})`
}))
} else {
this.$message.error(response?.message || '获取用户列表失败')
}
}).catch(error => {
console.error('获取用户列表失败:', error)
// 开发环境使用模拟数据
this.userOptions = [
{ value: '1', label: '罗先生(罗先生)' },
{ value: '2', label: '刘先生(刘先生)' },
{ value: '3', label: '粤语销售(粤语销售)' }
]
})
},
// 获取项目选项
getProjectOptions() {
getProjectList({ pageSize: 1000 }).then(response => {
if (response && response.code === 20000) {
this.projectOptions = response.data.map(item => ({
value: item.id,
label: item.projectName
}))
} else {
this.$message.error(response?.message || '获取项目列表失败')
}
}).catch(error => {
console.error('获取项目列表失败:', error)
// 开发环境使用模拟数据
this.projectOptions = [
{ value: '1', label: '电话接访话术' },
{ value: '2', label: '广丰项目' },
{ value: '3', label: '销售部' }
]
})
},
// 获取列表数据
getList() {
this.loading = true
@@ -338,50 +397,6 @@ export default {
bindStatus: true,
createTime: '2025-08-06T13:19:37',
updateTime: '2025-08-08T11:19:37'
},
{
id: '1953687520690614275',
deviceCode: 'DEVICE003',
dealershipId: 'DEAL003',
dealershipName: '4S店3',
lastOnlineTime: '2025-08-08T10:30:15',
lastPowerOnTime: '2025-08-05T14:20:00',
lastPowerOffTime: '2025-08-08T08:45:30',
wifiName: 'WiFi_003',
unuploadedCount: 5,
storageSize: '128GB',
storageUsed: '85GB',
remainingBattery: '65%',
chargingStatus: '未充电',
bindUserId: 'USER003',
bindUserName: '用户3',
projectId: 'PROJ003',
projectName: '项目3',
bindStatus: true,
createTime: '2025-08-06T14:30:00',
updateTime: '2025-08-08T10:30:15'
},
{
id: '1953687520690614276',
deviceCode: 'DEVICE004',
dealershipId: 'DEAL004',
dealershipName: '4S店4',
lastOnlineTime: '2025-08-08T12:15:45',
lastPowerOnTime: '2025-08-05T15:10:20',
lastPowerOffTime: '2025-08-08T09:55:10',
wifiName: 'WiFi_004',
unuploadedCount: 0,
storageSize: '256GB',
storageUsed: '120GB',
remainingBattery: '90%',
chargingStatus: '充电中',
bindUserId: 'USER004',
bindUserName: '用户4',
projectId: 'PROJ004',
projectName: '项目4',
bindStatus: false,
createTime: '2025-08-06T15:45:30',
updateTime: '2025-08-08T12:15:45'
}
]
this.total = this.deviceList.length
@@ -466,7 +481,6 @@ export default {
deviceCode: '',
dealershipId: '',
bindUserId: '',
projectIds: [],
bindStatus: false
}
this.dialogVisible = true

View File

@@ -143,8 +143,8 @@
/>
</el-form-item>
<el-form-item label="项目状态" prop="status">
<el-radio v-model="projectForm.status" value="1">启用</el-radio>
<el-radio v-model="projectForm.status" value="0">停用</el-radio>
<el-radio v-model="projectForm.status" value="1">启用</el-radio>
<el-radio v-model="projectForm.status" value="0">停用</el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -204,10 +204,6 @@ export default {
storeOptions: []
}
},
created() {
this.getList()
this.getDealershipList() // 获取门店列表
},
watch: {
// 监听项目表单状态值变化
'projectForm.status': {
@@ -217,6 +213,10 @@ export default {
immediate: true
}
},
created() {
this.getList()
this.getDealershipList() // 获取门店列表
},
methods: {
// 获取列表数据
getList() {
@@ -236,19 +236,15 @@ export default {
// 检查响应结构 - 经过request拦截器处理后成功响应会包含code: 20000
if (response && response.code === 20000) {
// response.data 是后端返回的完整响应对象
const backendResponse = response
this.projectList = backendResponse.data || []
this.total = backendResponse.total || 0
this.projectList = response.data || []
this.total = response.total || 0
// 更新分页信息
if (backendResponse.current) {
this.queryParams.pageNum = backendResponse.current
if (response.current) {
this.queryParams.pageNum = response.current
}
if (response.size) {
this.queryParams.pageSize = response.size
}
if (backendResponse.size) {
this.queryParams.pageSize = backendResponse.size
}
} else {
this.$message.error(response?.message || '获取项目列表失败')
this.projectList = []
@@ -260,17 +256,17 @@ export default {
// 开发环境使用模拟数据,字段与后端保持一致
this.projectList = [
{
id: "1953688116294352897",
dealershipId: "DEAL001",
projectName: "广丰项目",
id: '1953688116294352897',
dealershipId: 'DEAL001',
projectName: '广丰项目',
scriptVersion: 2,
scriptPublishTime: "2025-08-01T13:07:00",
scriptPublishTime: '2025-08-01T13:07:00',
salespersonCount: 5,
avgRecordingDuration: 3.5,
step: "进行中",
groupName: "默认分组",
createTime: "2025-07-15T10:30:00",
description: "广丰项目的详细描述信息",
step: '进行中',
groupName: '默认分组',
createTime: '2025-07-15T10:30:00',
description: '广丰项目的详细描述信息',
status: true
}
]
@@ -345,11 +341,10 @@ export default {
console.log('编辑项目响应:', response) // 调试日志
if (response && response.code === 20000) {
const backendResponse = response
console.log('编辑项目数据,backendResponse.data :', backendResponse.data)
console.log('编辑项目数据,response.data :', response.data)
// 处理状态值转换
const projectData = { ...backendResponse.data }
const projectData = { ...response.data }
if (typeof projectData.status === 'boolean') {
projectData.status = projectData.status ? '1' : '0'
}
@@ -401,12 +396,11 @@ export default {
console.log('删除项目响应:', response) // 调试日志
if (response && response.code === 20000) {
const backendResponse = response.data
if (backendResponse && backendResponse.success) {
this.$message.success(backendResponse.message || '删除成功')
if (response.data && response.data.success) {
this.$message.success(response.data.message || '删除成功')
this.getList()
} else {
this.$message.error(backendResponse?.message || '删除失败')
this.$message.error(response.data?.message || '删除失败')
}
} else {
this.$message.error(response?.message || '删除失败')
@@ -436,13 +430,12 @@ export default {
console.log('批量删除响应:', response) // 调试日志
if (response && response.code === 20000) {
const backendResponse = response.data
if (backendResponse && backendResponse.success) {
this.$message.success(backendResponse.message || '批量删除成功')
if (response.data && response.data.success) {
this.$message.success(response.data.message || '批量删除成功')
this.selectedIds = []
this.getList()
} else {
this.$message.error(backendResponse?.message || '批量删除失败')
this.$message.error(response.data?.message || '批量删除失败')
}
} else {
this.$message.error(response?.message || '批量删除失败')
@@ -473,8 +466,7 @@ export default {
console.log('提交表单响应:', response) // 调试日志
if (response && response.code === 20000) {
const backendResponse = response.data
this.$message.success(backendResponse.message || (this.isEdit ? '更新成功' : '添加成功'))
this.$message.success(response.data.message || (this.isEdit ? '更新成功' : '添加成功'))
this.dialogVisible = false
this.getList()
} else {
@@ -498,14 +490,12 @@ export default {
getDealershipList().then(response => {
console.log('门店列表响应:', response) // 调试日志
if (response && response.code === 20000) {
const backendResponse = response.data
console.log('门店列表响应 response.data :', response.data) // 调试日志
this.storeOptions = response.data.map(item => ({
value: item.id,
label: item.dealershipName
}))
console.log('门店选项(按修改时间倒序):', this.storeOptions)
this.storeOptions = response.data.map(item => ({
value: item.id,
label: item.dealershipName
}))
console.log('门店选项(按修改时间倒序):', this.storeOptions)
} else {
this.$message.error(response?.message || '获取门店列表失败')
}