车辆采集修改 客户删除 添加删除原因
This commit is contained in:
@@ -169,7 +169,7 @@ export class commonService {
|
|||||||
//关键字抓取车辆保存
|
//关键字抓取车辆保存
|
||||||
static crawlModelCreate(params: any) {
|
static crawlModelCreate(params: any) {
|
||||||
return request.post<Api.Work.AddResponse>({
|
return request.post<Api.Work.AddResponse>({
|
||||||
url: '/common/brand/series/crawlModelCreate',
|
url: '/common/brand/series/crawlKeywordCreate',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,8 +57,8 @@
|
|||||||
<el-table-column prop="enter_user_name" label="录单人"></el-table-column>
|
<el-table-column prop="enter_user_name" label="录单人"></el-table-column>
|
||||||
<el-table-column prop="user_name" label="跟单人"></el-table-column>
|
<el-table-column prop="user_name" label="跟单人"></el-table-column>
|
||||||
<el-table-column prop="del_source" label="来源"></el-table-column>
|
<el-table-column prop="del_source" label="来源"></el-table-column>
|
||||||
<el-table-column prop="follow_last" label="上次跟进"></el-table-column>
|
<!-- <el-table-column prop="follow_last" label="上次跟进"></el-table-column> -->
|
||||||
<el-table-column prop="follow_next" label="下次跟进"></el-table-column>
|
<!-- <el-table-column prop="follow_next" label="下次跟进"></el-table-column> -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="code"
|
prop="code"
|
||||||
label="编号"
|
label="编号"
|
||||||
@@ -257,20 +257,34 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const delectfn = (row: any) => {
|
const delectfn = (row: any) => {
|
||||||
ElMessageBox.confirm('确定要删除此客户吗?删除后将无法恢复!', '提示', {
|
ElMessageBox.prompt('确定要删除此客户吗?请填写入删除原因!', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
inputPattern: /^(?!\s*$).+/,
|
||||||
|
inputErrorMessage: '请填写入删除原因'
|
||||||
|
}).then(async ({ value }) => {
|
||||||
|
const res = await manageService.crmCustomerDelete({
|
||||||
|
customer_id: row.id,
|
||||||
|
scene: 'force',
|
||||||
|
status_desc: value
|
||||||
})
|
})
|
||||||
.then(async () => {
|
|
||||||
const res = await manageService.crmCustomerDelete({ customer_id: row.id, scene: 'force' })
|
|
||||||
ElMessage.success(res?.message || '提交成功!')
|
ElMessage.success(res?.message || '提交成功!')
|
||||||
gettableList()
|
gettableList()
|
||||||
// 你可以在这里调用接口或做后续处理
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
// 用户点击了取消
|
|
||||||
})
|
})
|
||||||
|
// ElMessageBox.confirm('确定要删除此客户吗?删除后将无法恢复!', '提示', {
|
||||||
|
// confirmButtonText: '确定',
|
||||||
|
// cancelButtonText: '取消',
|
||||||
|
// type: 'warning'
|
||||||
|
// })
|
||||||
|
// .then(async () => {
|
||||||
|
// const res = await manageService.crmCustomerDelete({ customer_id: row.id, scene: 'force' })
|
||||||
|
// ElMessage.success(res?.message || '提交成功!')
|
||||||
|
// gettableList()
|
||||||
|
// // 你可以在这里调用接口或做后续处理
|
||||||
|
// })
|
||||||
|
// .catch(() => {
|
||||||
|
// // 用户点击了取消
|
||||||
|
// })
|
||||||
}
|
}
|
||||||
const closeImageViewer = () => {
|
const closeImageViewer = () => {
|
||||||
imageViewerVisible.value = false
|
imageViewerVisible.value = false
|
||||||
|
|||||||
@@ -117,7 +117,7 @@
|
|||||||
<el-form-item label="阿里订单号/PI号" prop="payment_apply_id">
|
<el-form-item label="阿里订单号/PI号" prop="payment_apply_id">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.payment_apply_id"
|
v-model="form.payment_apply_id"
|
||||||
placeholder="请选择阿里订单号/PI号"
|
placeholder="订单号需要与畅捷通系统保持一致"
|
||||||
@change="fetchOrders"
|
@change="fetchOrders"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
</ElCol>
|
</ElCol>
|
||||||
<ElCol :sm="24" :md="12" :lg="12">
|
<ElCol :sm="24" :md="12" :lg="12">
|
||||||
<el-form-item label="收汇公司">
|
<el-form-item label="收汇公司">
|
||||||
<el-select v-model="form.corp_id" placeholder="请选择收汇公司">
|
<el-select v-model="form.corp_id" placeholder="集团所有收款公司可选">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in corpOptions"
|
v-for="item in corpOptions"
|
||||||
:key="item.item_value"
|
:key="item.item_value"
|
||||||
@@ -187,6 +187,9 @@
|
|||||||
:value="item.id"
|
:value="item.id"
|
||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
<el-text class="mx-12"
|
||||||
|
>当客户为公司时填写公司注册地,当客户为个人时填写个人出生地</el-text
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</ElCol>
|
</ElCol>
|
||||||
<ElCol :sm="24" :md="12" :lg="12">
|
<ElCol :sm="24" :md="12" :lg="12">
|
||||||
@@ -209,7 +212,7 @@
|
|||||||
</ElCol>
|
</ElCol>
|
||||||
<ElCol :sm="24" :md="12" :lg="12">
|
<ElCol :sm="24" :md="12" :lg="12">
|
||||||
<el-form-item label="汇款人">
|
<el-form-item label="汇款人">
|
||||||
<el-input v-model="form.remitter" placeholder="请于到账水单的汇款人名称保持一致" />
|
<el-input v-model="form.remitter" placeholder="汇款人为实际打款人" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</ElCol>
|
</ElCol>
|
||||||
<ElCol :sm="24" :md="12" :lg="12">
|
<ElCol :sm="24" :md="12" :lg="12">
|
||||||
@@ -252,7 +255,7 @@
|
|||||||
</ElCol>
|
</ElCol>
|
||||||
<ElCol :sm="24" :md="24" :lg="24">
|
<ElCol :sm="24" :md="24" :lg="24">
|
||||||
<el-form-item label="汇款行" prop="swift">
|
<el-form-item label="汇款行" prop="swift">
|
||||||
<el-input v-model="form.swift" placeholder="请填写SWIFT号" />
|
<el-input v-model="form.swift" placeholder="客户付款的swift" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</ElCol>
|
</ElCol>
|
||||||
<ElCol :sm="24" :md="24" :lg="24">
|
<ElCol :sm="24" :md="24" :lg="24">
|
||||||
@@ -1014,4 +1017,8 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
.mx-12 {
|
||||||
|
color: #e37474;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -44,9 +44,7 @@
|
|||||||
<div class="table-container boxshadow">
|
<div class="table-container boxshadow">
|
||||||
<div class="btntab">
|
<div class="btntab">
|
||||||
<ElButton type="primary" v-ripple @click="handleAdd">新增车辆</ElButton>
|
<ElButton type="primary" v-ripple @click="handleAdd">新增车辆</ElButton>
|
||||||
<ElButton type="success" v-ripple @click="crawlKeywordfn"
|
<ElButton type="success" v-ripple @click="crawlKeywordfn">通过关键字查找车辆</ElButton>
|
||||||
>通过车系名称查找抓取车辆</ElButton
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<ArtTable
|
<ArtTable
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
@@ -994,7 +992,12 @@
|
|||||||
</template>
|
</template>
|
||||||
</ElDialog>
|
</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 class="collect-models-container">
|
||||||
<div style="display: flex; gap: 12px">
|
<div style="display: flex; gap: 12px">
|
||||||
<el-form-item label="关键字:" label-width="70px">
|
<el-form-item label="关键字:" label-width="70px">
|
||||||
@@ -1011,6 +1014,63 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="collect-models-content">
|
<div class="collect-models-content">
|
||||||
|
<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>
|
||||||
<div v-if="modelLstLoading" class="loading-container">
|
<div v-if="modelLstLoading" class="loading-container">
|
||||||
<ElLoading text="正在采集车型数据..." />
|
<ElLoading text="正在采集车型数据..." />
|
||||||
</div>
|
</div>
|
||||||
@@ -1041,6 +1101,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<ElButton @click="keywordclose">取消</ElButton>
|
<ElButton @click="keywordclose">取消</ElButton>
|
||||||
@@ -1062,7 +1123,8 @@
|
|||||||
import { vehicleService } from '@/api/vehicleApi'
|
import { vehicleService } from '@/api/vehicleApi'
|
||||||
import { commonService } from '@/api/commonApi'
|
import { commonService } from '@/api/commonApi'
|
||||||
defineOptions({ name: 'AdminVehicleList' })
|
defineOptions({ name: 'AdminVehicleList' })
|
||||||
|
const keywordwidth = ref('900px')
|
||||||
|
const is_series = ref(1)
|
||||||
// 搜索表单
|
// 搜索表单
|
||||||
const searchForm = reactive({
|
const searchForm = reactive({
|
||||||
keyword: '',
|
keyword: '',
|
||||||
@@ -1307,24 +1369,36 @@
|
|||||||
const modelLst = ref<any>([])
|
const modelLst = ref<any>([])
|
||||||
const modelLstLoading = ref(false)
|
const modelLstLoading = ref(false)
|
||||||
const crawlKeywordfn = async () => {
|
const crawlKeywordfn = async () => {
|
||||||
|
keywordwidth.value = '900px'
|
||||||
|
is_series.value = 1
|
||||||
keywordDialogVisible.value = true
|
keywordDialogVisible.value = true
|
||||||
carkeyword.value = ''
|
carkeyword.value = ''
|
||||||
keywordModelsData.value = {}
|
selectedModels.value = []
|
||||||
modelLst.value = []
|
modelLst.value = []
|
||||||
|
keywordbrand.value = []
|
||||||
|
keywordModelsData.value = {}
|
||||||
}
|
}
|
||||||
const keywordclose = () => {
|
const keywordclose = () => {
|
||||||
|
keywordwidth.value = '900px'
|
||||||
|
is_series.value = 1
|
||||||
keywordDialogVisible.value = false
|
keywordDialogVisible.value = false
|
||||||
carkeyword.value = ''
|
carkeyword.value = ''
|
||||||
keywordModelsData.value = {}
|
keywordModelsData.value = {}
|
||||||
|
selectedModels.value = []
|
||||||
|
keywordbrand.value = []
|
||||||
modelLst.value = []
|
modelLst.value = []
|
||||||
}
|
}
|
||||||
const handleModelSelectionChange = (selection: any[]) => {
|
const handleModelSelectionChange = (selection: any[]) => {
|
||||||
selectedModels.value = selection
|
selectedModels.value = selection
|
||||||
}
|
}
|
||||||
const selectedModels = ref<any[]>([])
|
const selectedModels = ref<any[]>([])
|
||||||
|
const keywordbrand = ref<any>([])
|
||||||
const getcarkeyword = async () => {
|
const getcarkeyword = async () => {
|
||||||
modelLstLoading.value = true
|
modelLstLoading.value = true
|
||||||
selectedModels.value = []
|
selectedModels.value = []
|
||||||
|
keywordbrand.value = []
|
||||||
|
modelLst.value = []
|
||||||
|
keywordModelsData.value = {}
|
||||||
const loading = ElLoading.service({
|
const loading = ElLoading.service({
|
||||||
lock: true,
|
lock: true,
|
||||||
text: 'Loading',
|
text: 'Loading',
|
||||||
@@ -1332,9 +1406,36 @@
|
|||||||
})
|
})
|
||||||
try {
|
try {
|
||||||
const res = await commonService.getcrawlKeyword({ keyword: carkeyword.value })
|
const res = await commonService.getcrawlKeyword({ keyword: carkeyword.value })
|
||||||
keywordModelsData.value = res
|
is_series.value = res.is_series
|
||||||
modelLst.value = res.model
|
if (res.is_series == 1) {
|
||||||
console.log(modelLst.value)
|
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 {
|
} finally {
|
||||||
loading.close()
|
loading.close()
|
||||||
modelLstLoading.value = false
|
modelLstLoading.value = false
|
||||||
@@ -1346,6 +1447,7 @@
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
await commonService.crawlModelCreate({
|
await commonService.crawlModelCreate({
|
||||||
|
series_name: keywordModelsData.value.series.series_name,
|
||||||
series_id: keywordModelsData.value.series.id ? keywordModelsData.value.series.id : 0,
|
series_id: keywordModelsData.value.series.id ? keywordModelsData.value.series.id : 0,
|
||||||
brand_id: keywordModelsData.value.brand.id ? keywordModelsData.value.brand.id : 0,
|
brand_id: keywordModelsData.value.brand.id ? keywordModelsData.value.brand.id : 0,
|
||||||
models: selectedModels.value
|
models: selectedModels.value
|
||||||
|
|||||||
@@ -630,22 +630,40 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const crmdelectfn = (row: any) => {
|
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: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
inputPattern: /^(?!\s*$).+/,
|
||||||
|
inputErrorMessage: '请填写入删除原因'
|
||||||
|
}
|
||||||
|
).then(async ({ value }) => {
|
||||||
|
const res = await CrmService.crmCustomerDelete({
|
||||||
|
id: row.id,
|
||||||
|
scene: 'force',
|
||||||
|
status_desc: value
|
||||||
})
|
})
|
||||||
.then(async () => {
|
|
||||||
const res = await CrmService.crmCustomerDelete({ id: row.id, scene: 'force' })
|
|
||||||
ElMessage.success(res?.message || '提交成功!')
|
ElMessage.success(res?.message || '提交成功!')
|
||||||
gettableList()
|
gettableList()
|
||||||
// 你可以在这里调用接口或做后续处理
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
// 用户点击了取消
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 标记无效
|
// 标记无效
|
||||||
|
|||||||
@@ -44,9 +44,7 @@
|
|||||||
<div class="table-container boxshadow">
|
<div class="table-container boxshadow">
|
||||||
<div class="btntab">
|
<div class="btntab">
|
||||||
<ElButton type="primary" v-ripple @click="handleAdd">新增车辆</ElButton>
|
<ElButton type="primary" v-ripple @click="handleAdd">新增车辆</ElButton>
|
||||||
<ElButton type="success" v-ripple @click="crawlKeywordfn"
|
<ElButton type="success" v-ripple @click="crawlKeywordfn">通过关键字查找车辆</ElButton>
|
||||||
>通过车系名称查找抓取车辆</ElButton
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<ArtTable
|
<ArtTable
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
@@ -993,8 +991,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</ElDialog>
|
</ElDialog>
|
||||||
<!-- 关键字 车型抓取弹出框 -->
|
<ElDialog
|
||||||
<ElDialog v-model="keywordDialogVisible" title="关键字-车型采集" width="900px" align-center>
|
v-model="keywordDialogVisible"
|
||||||
|
title="关键字-车型采集"
|
||||||
|
:width="keywordwidth"
|
||||||
|
align-center
|
||||||
|
>
|
||||||
<div class="collect-models-container">
|
<div class="collect-models-container">
|
||||||
<div style="display: flex; gap: 12px">
|
<div style="display: flex; gap: 12px">
|
||||||
<el-form-item label="关键字:" label-width="70px">
|
<el-form-item label="关键字:" label-width="70px">
|
||||||
@@ -1011,6 +1013,58 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="collect-models-content">
|
<div class="collect-models-content">
|
||||||
|
<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>
|
||||||
<div v-if="modelLstLoading" class="loading-container">
|
<div v-if="modelLstLoading" class="loading-container">
|
||||||
<ElLoading text="正在采集车型数据..." />
|
<ElLoading text="正在采集车型数据..." />
|
||||||
</div>
|
</div>
|
||||||
@@ -1041,6 +1095,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<ElButton @click="keywordclose">取消</ElButton>
|
<ElButton @click="keywordclose">取消</ElButton>
|
||||||
@@ -1061,7 +1116,9 @@
|
|||||||
import { ElMessage, ElMessageBox, ElLoading } from 'element-plus'
|
import { ElMessage, ElMessageBox, ElLoading } from 'element-plus'
|
||||||
import { vehicleService } from '@/api/crmpc/vehicleApi'
|
import { vehicleService } from '@/api/crmpc/vehicleApi'
|
||||||
import { commonService } from '@/api/commonApi'
|
import { commonService } from '@/api/commonApi'
|
||||||
defineOptions({ name: 'AdminVehicleList' })
|
const keywordwidth = ref('900px')
|
||||||
|
const is_series = ref(1)
|
||||||
|
defineOptions({ name: 'CrmVehicleList' })
|
||||||
// 搜索表单
|
// 搜索表单
|
||||||
const searchForm = reactive({
|
const searchForm = reactive({
|
||||||
keyword: '',
|
keyword: '',
|
||||||
@@ -1840,24 +1897,36 @@
|
|||||||
const modelLst = ref<any>([])
|
const modelLst = ref<any>([])
|
||||||
const modelLstLoading = ref(false)
|
const modelLstLoading = ref(false)
|
||||||
const crawlKeywordfn = async () => {
|
const crawlKeywordfn = async () => {
|
||||||
|
keywordwidth.value = '900px'
|
||||||
|
is_series.value = 1
|
||||||
keywordDialogVisible.value = true
|
keywordDialogVisible.value = true
|
||||||
carkeyword.value = ''
|
carkeyword.value = ''
|
||||||
keywordModelsData.value = {}
|
selectedModels.value = []
|
||||||
modelLst.value = []
|
modelLst.value = []
|
||||||
|
keywordbrand.value = []
|
||||||
|
keywordModelsData.value = {}
|
||||||
}
|
}
|
||||||
const keywordclose = () => {
|
const keywordclose = () => {
|
||||||
|
keywordwidth.value = '900px'
|
||||||
|
is_series.value = 1
|
||||||
keywordDialogVisible.value = false
|
keywordDialogVisible.value = false
|
||||||
carkeyword.value = ''
|
carkeyword.value = ''
|
||||||
keywordModelsData.value = {}
|
keywordModelsData.value = {}
|
||||||
|
selectedModels.value = []
|
||||||
|
keywordbrand.value = []
|
||||||
modelLst.value = []
|
modelLst.value = []
|
||||||
}
|
}
|
||||||
const handleModelSelectionChange = (selection: any[]) => {
|
const handleModelSelectionChange = (selection: any[]) => {
|
||||||
selectedModels.value = selection
|
selectedModels.value = selection
|
||||||
}
|
}
|
||||||
const selectedModels = ref<any[]>([])
|
const selectedModels = ref<any[]>([])
|
||||||
|
const keywordbrand = ref<any>([])
|
||||||
const getcarkeyword = async () => {
|
const getcarkeyword = async () => {
|
||||||
modelLstLoading.value = true
|
modelLstLoading.value = true
|
||||||
selectedModels.value = []
|
selectedModels.value = []
|
||||||
|
keywordbrand.value = []
|
||||||
|
modelLst.value = []
|
||||||
|
keywordModelsData.value = {}
|
||||||
const loading = ElLoading.service({
|
const loading = ElLoading.service({
|
||||||
lock: true,
|
lock: true,
|
||||||
text: 'Loading',
|
text: 'Loading',
|
||||||
@@ -1865,9 +1934,36 @@
|
|||||||
})
|
})
|
||||||
try {
|
try {
|
||||||
const res = await commonService.getcrawlKeyword({ keyword: carkeyword.value })
|
const res = await commonService.getcrawlKeyword({ keyword: carkeyword.value })
|
||||||
keywordModelsData.value = res
|
is_series.value = res.is_series
|
||||||
modelLst.value = res.model
|
if (res.is_series == 1) {
|
||||||
console.log(modelLst.value)
|
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 {
|
} finally {
|
||||||
loading.close()
|
loading.close()
|
||||||
modelLstLoading.value = false
|
modelLstLoading.value = false
|
||||||
@@ -1879,6 +1975,7 @@
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
await commonService.crawlModelCreate({
|
await commonService.crawlModelCreate({
|
||||||
|
series_name: keywordModelsData.value.series.series_name,
|
||||||
series_id: keywordModelsData.value.series.id ? keywordModelsData.value.series.id : 0,
|
series_id: keywordModelsData.value.series.id ? keywordModelsData.value.series.id : 0,
|
||||||
brand_id: keywordModelsData.value.brand.id ? keywordModelsData.value.brand.id : 0,
|
brand_id: keywordModelsData.value.brand.id ? keywordModelsData.value.brand.id : 0,
|
||||||
models: selectedModels.value
|
models: selectedModels.value
|
||||||
|
|||||||
Reference in New Issue
Block a user