From 4281cb3740d10f7e18e20db69e0a080df044b3de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Tue, 18 Nov 2025 11:03:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E9=87=87=E9=9B=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=20=E5=AE=A2=E6=88=B7=E5=88=A0=E9=99=A4=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=88=A0=E9=99=A4=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/commonApi.ts | 2 +- src/views/admin/customer/recycle.vue | 40 +++-- src/views/admin/finance/payment_records.vue | 15 +- src/views/admin/vehicle/vehicle_list.vue | 172 ++++++++++++++++---- src/views/crmpc/customer/index.vue | 46 ++++-- src/views/crmpc/vehicle/vehicle_list.vue | 169 +++++++++++++++---- 6 files changed, 341 insertions(+), 103 deletions(-) diff --git a/src/api/commonApi.ts b/src/api/commonApi.ts index 3bf1dc6..7486eba 100644 --- a/src/api/commonApi.ts +++ b/src/api/commonApi.ts @@ -169,7 +169,7 @@ export class commonService { //关键字抓取车辆保存 static crawlModelCreate(params: any) { return request.post({ - url: '/common/brand/series/crawlModelCreate', + url: '/common/brand/series/crawlKeywordCreate', params }) } diff --git a/src/views/admin/customer/recycle.vue b/src/views/admin/customer/recycle.vue index c5f4332..aee0093 100644 --- a/src/views/admin/customer/recycle.vue +++ b/src/views/admin/customer/recycle.vue @@ -57,8 +57,8 @@ - - + + { - ElMessageBox.confirm('确定要删除此客户吗?删除后将无法恢复!', '提示', { + ElMessageBox.prompt('确定要删除此客户吗?请填写入删除原因!', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', - type: 'warning' + inputPattern: /^(?!\s*$).+/, + inputErrorMessage: '请填写入删除原因' + }).then(async ({ value }) => { + const res = await manageService.crmCustomerDelete({ + customer_id: row.id, + scene: 'force', + status_desc: value + }) + ElMessage.success(res?.message || '提交成功!') + gettableList() }) - .then(async () => { - const res = await manageService.crmCustomerDelete({ customer_id: row.id, scene: 'force' }) - ElMessage.success(res?.message || '提交成功!') - 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 = () => { imageViewerVisible.value = false diff --git a/src/views/admin/finance/payment_records.vue b/src/views/admin/finance/payment_records.vue index 44a8b93..9c1b327 100644 --- a/src/views/admin/finance/payment_records.vue +++ b/src/views/admin/finance/payment_records.vue @@ -117,7 +117,7 @@ - + + 当客户为公司时填写公司注册地,当客户为个人时填写个人出生地 @@ -209,7 +212,7 @@ - + @@ -252,7 +255,7 @@ - + @@ -1014,4 +1017,8 @@ justify-content: center; margin-bottom: 20px; } + .mx-12 { + color: #e37474; + font-size: 12px; + } diff --git a/src/views/admin/vehicle/vehicle_list.vue b/src/views/admin/vehicle/vehicle_list.vue index 1f0d784..a639ebc 100644 --- a/src/views/admin/vehicle/vehicle_list.vue +++ b/src/views/admin/vehicle/vehicle_list.vue @@ -44,9 +44,7 @@
新增车辆 - 通过车系名称查找抓取车辆 + 通过关键字查找车辆
- +
@@ -1011,33 +1014,91 @@
-
- +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
-
- -
-
- - - - - - - - - - +
+
+ +
+
+ +
+
+ + + + + + + + + + +
@@ -1062,7 +1123,8 @@ import { vehicleService } from '@/api/vehicleApi' import { commonService } from '@/api/commonApi' defineOptions({ name: 'AdminVehicleList' }) - + const keywordwidth = ref('900px') + const is_series = ref(1) // 搜索表单 const searchForm = reactive({ keyword: '', @@ -1307,24 +1369,36 @@ const modelLst = ref([]) 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([]) + const keywordbrand = ref([]) const getcarkeyword = async () => { modelLstLoading.value = true selectedModels.value = [] + keywordbrand.value = [] + modelLst.value = [] + keywordModelsData.value = {} const loading = ElLoading.service({ lock: true, text: 'Loading', @@ -1332,9 +1406,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 @@ -1346,6 +1447,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 diff --git a/src/views/crmpc/customer/index.vue b/src/views/crmpc/customer/index.vue index cfc46e1..2e29608 100644 --- a/src/views/crmpc/customer/index.vue +++ b/src/views/crmpc/customer/index.vue @@ -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) => { diff --git a/src/views/crmpc/vehicle/vehicle_list.vue b/src/views/crmpc/vehicle/vehicle_list.vue index 0857176..40abe26 100644 --- a/src/views/crmpc/vehicle/vehicle_list.vue +++ b/src/views/crmpc/vehicle/vehicle_list.vue @@ -44,9 +44,7 @@
新增车辆 - 通过车系名称查找抓取车辆 + 通过关键字查找车辆
- - +
@@ -1011,33 +1013,86 @@
-
- +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
-
- -
-
- - - - - - - - - - +
+
+ +
+
+ +
+
+ + + + + + + + + + +
@@ -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([]) 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([]) + const keywordbrand = ref([]) 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