车辆采集修改 客户删除 添加删除原因
This commit is contained in:
@@ -630,23 +630,41 @@
|
||||
})
|
||||
}
|
||||
const crmdelectfn = (row: any) => {
|
||||
ElMessageBox.confirm(
|
||||
'确定要删除此客户吗?删除后无法恢复,若存在疑问可标记为无效用户或操作移除,将客户移除到公海!',
|
||||
// ElMessageBox.confirm(
|
||||
// '确定要删除此客户吗?删除后无法恢复,若存在疑问可标记为无效用户或操作移除,将客户移除到公海!',
|
||||
// '提示',
|
||||
// {
|
||||
// confirmButtonText: '确定',
|
||||
// cancelButtonText: '取消',
|
||||
// type: 'warning'
|
||||
// })
|
||||
// .then(async () => {
|
||||
// const res = await CrmService.crmCustomerDelete({ id: row.id, scene: 'force' })
|
||||
// ElMessage.success(res?.message || '提交成功!')
|
||||
// gettableList()
|
||||
// // 你可以在这里调用接口或做后续处理
|
||||
// })
|
||||
// .catch(() => {
|
||||
// // 用户点击了取消
|
||||
// })
|
||||
ElMessageBox.prompt(
|
||||
'确定要删除此客户吗?删除后无法恢复,若存在疑问可标记为无效用户或操作移除,将客户移除到公海!删除请填写入删除原因!',
|
||||
'提示',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
inputPattern: /^(?!\s*$).+/,
|
||||
inputErrorMessage: '请填写入删除原因'
|
||||
}
|
||||
).then(async ({ value }) => {
|
||||
const res = await CrmService.crmCustomerDelete({
|
||||
id: row.id,
|
||||
scene: 'force',
|
||||
status_desc: value
|
||||
})
|
||||
ElMessage.success(res?.message || '提交成功!')
|
||||
gettableList()
|
||||
})
|
||||
.then(async () => {
|
||||
const res = await CrmService.crmCustomerDelete({ id: row.id, scene: 'force' })
|
||||
ElMessage.success(res?.message || '提交成功!')
|
||||
gettableList()
|
||||
// 你可以在这里调用接口或做后续处理
|
||||
})
|
||||
.catch(() => {
|
||||
// 用户点击了取消
|
||||
})
|
||||
}
|
||||
// 标记无效
|
||||
const reportfn = (row: any) => {
|
||||
|
||||
@@ -44,9 +44,7 @@
|
||||
<div class="table-container boxshadow">
|
||||
<div class="btntab">
|
||||
<ElButton type="primary" v-ripple @click="handleAdd">新增车辆</ElButton>
|
||||
<ElButton type="success" v-ripple @click="crawlKeywordfn"
|
||||
>通过车系名称查找抓取车辆</ElButton
|
||||
>
|
||||
<ElButton type="success" v-ripple @click="crawlKeywordfn">通过关键字查找车辆</ElButton>
|
||||
</div>
|
||||
<ArtTable
|
||||
ref="tableRef"
|
||||
@@ -993,8 +991,12 @@
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
<!-- 关键字 车型抓取弹出框 -->
|
||||
<ElDialog v-model="keywordDialogVisible" title="关键字-车型采集" width="900px" align-center>
|
||||
<ElDialog
|
||||
v-model="keywordDialogVisible"
|
||||
title="关键字-车型采集"
|
||||
:width="keywordwidth"
|
||||
align-center
|
||||
>
|
||||
<div class="collect-models-container">
|
||||
<div style="display: flex; gap: 12px">
|
||||
<el-form-item label="关键字:" label-width="70px">
|
||||
@@ -1011,33 +1013,86 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="collect-models-content">
|
||||
<div v-if="modelLstLoading" class="loading-container">
|
||||
<ElLoading text="正在采集车型数据..." />
|
||||
<div v-if="is_series == 0">
|
||||
<ElRow :gutter="16">
|
||||
<el-col :span="7">
|
||||
<ElTable :data="keywordbrand" style="width: 100%" max-height="400">
|
||||
<ElTableColumn prop="brand" label="品牌" width="100">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.brand.brand_name }}</span>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<ElTableColumn prop="series" label="车系" width="120">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.series.series_name }}</span>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<ElTableColumn prop="id" label="操作" width="120">
|
||||
<template #default="scope">
|
||||
<ElButton
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="getcrawlSeries(scope.row.series.series_name)"
|
||||
>
|
||||
采集车型
|
||||
</ElButton>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
</ElTable>
|
||||
</el-col>
|
||||
<el-col :span="17">
|
||||
<ElTable
|
||||
:data="modelLst"
|
||||
style="width: 100%"
|
||||
max-height="400"
|
||||
@selection-change="handleModelSelectionChange"
|
||||
>
|
||||
<ElTableColumn prop="brand_name" label="品牌" width="100" />
|
||||
<ElTableColumn prop="series_name" label="车系" width="120" />
|
||||
<ElTableColumn prop="title" label="车型名称" min-width="200" show-overflow-tooltip />
|
||||
<ElTableColumn prop="year" label="年款" width="80" />
|
||||
<ElTableColumn prop="msrp" label="指导价" width="120">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.msrp" class="price-text">
|
||||
¥{{ formatPrice(scope.row.msrp) }}
|
||||
</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<ElTableColumn type="selection" width="55" />
|
||||
</ElTable>
|
||||
</el-col>
|
||||
</ElRow>
|
||||
</div>
|
||||
<div v-else-if="!modelLst || modelLst.length === 0" class="empty-container">
|
||||
<ElEmpty description="暂无车型数据" />
|
||||
</div>
|
||||
<div v-else class="models-table-container">
|
||||
<ElTable
|
||||
:data="modelLst"
|
||||
style="width: 100%"
|
||||
max-height="400"
|
||||
@selection-change="handleModelSelectionChange"
|
||||
>
|
||||
<ElTableColumn type="selection" width="55" />
|
||||
<ElTableColumn prop="brand_name" label="品牌" width="100" />
|
||||
<ElTableColumn prop="series_name" label="车系" width="120" />
|
||||
<ElTableColumn prop="title" label="车型名称" min-width="200" show-overflow-tooltip />
|
||||
<ElTableColumn prop="year" label="年款" width="80" />
|
||||
<ElTableColumn prop="msrp" label="指导价" width="120">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.msrp" class="price-text">
|
||||
¥{{ formatPrice(scope.row.msrp) }}
|
||||
</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
</ElTable>
|
||||
<div v-else>
|
||||
<div v-if="modelLstLoading" class="loading-container">
|
||||
<ElLoading text="正在采集车型数据..." />
|
||||
</div>
|
||||
<div v-else-if="!modelLst || modelLst.length === 0" class="empty-container">
|
||||
<ElEmpty description="暂无车型数据" />
|
||||
</div>
|
||||
<div v-else class="models-table-container">
|
||||
<ElTable
|
||||
:data="modelLst"
|
||||
style="width: 100%"
|
||||
max-height="400"
|
||||
@selection-change="handleModelSelectionChange"
|
||||
>
|
||||
<ElTableColumn type="selection" width="55" />
|
||||
<ElTableColumn prop="brand_name" label="品牌" width="100" />
|
||||
<ElTableColumn prop="series_name" label="车系" width="120" />
|
||||
<ElTableColumn prop="title" label="车型名称" min-width="200" show-overflow-tooltip />
|
||||
<ElTableColumn prop="year" label="年款" width="80" />
|
||||
<ElTableColumn prop="msrp" label="指导价" width="120">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.msrp" class="price-text">
|
||||
¥{{ formatPrice(scope.row.msrp) }}
|
||||
</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
</ElTable>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1061,7 +1116,9 @@
|
||||
import { ElMessage, ElMessageBox, ElLoading } from 'element-plus'
|
||||
import { vehicleService } from '@/api/crmpc/vehicleApi'
|
||||
import { commonService } from '@/api/commonApi'
|
||||
defineOptions({ name: 'AdminVehicleList' })
|
||||
const keywordwidth = ref('900px')
|
||||
const is_series = ref(1)
|
||||
defineOptions({ name: 'CrmVehicleList' })
|
||||
// 搜索表单
|
||||
const searchForm = reactive({
|
||||
keyword: '',
|
||||
@@ -1840,24 +1897,36 @@
|
||||
const modelLst = ref<any>([])
|
||||
const modelLstLoading = ref(false)
|
||||
const crawlKeywordfn = async () => {
|
||||
keywordwidth.value = '900px'
|
||||
is_series.value = 1
|
||||
keywordDialogVisible.value = true
|
||||
carkeyword.value = ''
|
||||
keywordModelsData.value = {}
|
||||
selectedModels.value = []
|
||||
modelLst.value = []
|
||||
keywordbrand.value = []
|
||||
keywordModelsData.value = {}
|
||||
}
|
||||
const keywordclose = () => {
|
||||
keywordwidth.value = '900px'
|
||||
is_series.value = 1
|
||||
keywordDialogVisible.value = false
|
||||
carkeyword.value = ''
|
||||
keywordModelsData.value = {}
|
||||
selectedModels.value = []
|
||||
keywordbrand.value = []
|
||||
modelLst.value = []
|
||||
}
|
||||
const handleModelSelectionChange = (selection: any[]) => {
|
||||
selectedModels.value = selection
|
||||
}
|
||||
const selectedModels = ref<any[]>([])
|
||||
const keywordbrand = ref<any>([])
|
||||
const getcarkeyword = async () => {
|
||||
modelLstLoading.value = true
|
||||
selectedModels.value = []
|
||||
keywordbrand.value = []
|
||||
modelLst.value = []
|
||||
keywordModelsData.value = {}
|
||||
const loading = ElLoading.service({
|
||||
lock: true,
|
||||
text: 'Loading',
|
||||
@@ -1865,9 +1934,36 @@
|
||||
})
|
||||
try {
|
||||
const res = await commonService.getcrawlKeyword({ keyword: carkeyword.value })
|
||||
keywordModelsData.value = res
|
||||
modelLst.value = res.model
|
||||
console.log(modelLst.value)
|
||||
is_series.value = res.is_series
|
||||
if (res.is_series == 1) {
|
||||
keywordwidth.value = '900px'
|
||||
keywordModelsData.value = res.data[0]
|
||||
modelLst.value = res.data[0].model
|
||||
} else {
|
||||
keywordwidth.value = '1200px'
|
||||
keywordbrand.value = res.data
|
||||
}
|
||||
console.log(res)
|
||||
} finally {
|
||||
loading.close()
|
||||
modelLstLoading.value = false
|
||||
}
|
||||
}
|
||||
const getcrawlSeries = async (keyword: any) => {
|
||||
modelLstLoading.value = true
|
||||
selectedModels.value = []
|
||||
modelLst.value = []
|
||||
keywordModelsData.value = {}
|
||||
const loading = ElLoading.service({
|
||||
lock: true,
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
})
|
||||
try {
|
||||
const res = await commonService.getcrawlKeyword({ keyword: keyword })
|
||||
keywordModelsData.value = res.data[0]
|
||||
modelLst.value = res.data[0].model
|
||||
console.log(res)
|
||||
} finally {
|
||||
loading.close()
|
||||
modelLstLoading.value = false
|
||||
@@ -1879,6 +1975,7 @@
|
||||
return
|
||||
}
|
||||
await commonService.crawlModelCreate({
|
||||
series_name: keywordModelsData.value.series.series_name,
|
||||
series_id: keywordModelsData.value.series.id ? keywordModelsData.value.series.id : 0,
|
||||
brand_id: keywordModelsData.value.brand.id ? keywordModelsData.value.brand.id : 0,
|
||||
models: selectedModels.value
|
||||
|
||||
Reference in New Issue
Block a user