添加 内勤 付款 财务收款 及统计 车辆加车系关键字采集
This commit is contained in:
@@ -42,7 +42,12 @@
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<div class="table-container boxshadow">
|
||||
<ElButton type="primary" v-ripple @click="handleAdd">新增车辆</ElButton>
|
||||
<div class="btntab">
|
||||
<ElButton type="primary" v-ripple @click="handleAdd">新增车辆</ElButton>
|
||||
<ElButton type="success" v-ripple @click="crawlKeywordfn"
|
||||
>通过车系名称查找抓取车辆</ElButton
|
||||
>
|
||||
</div>
|
||||
<ArtTable
|
||||
ref="tableRef"
|
||||
row-key="id"
|
||||
@@ -988,11 +993,72 @@
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
<!-- 关键字 车型抓取弹出框 -->
|
||||
<ElDialog v-model="keywordDialogVisible" title="关键字-车型采集" width="900px" align-center>
|
||||
<div class="collect-models-container">
|
||||
<div style="display: flex; gap: 12px">
|
||||
<el-form-item label="关键字:" label-width="70px">
|
||||
<el-input
|
||||
v-model="carkeyword"
|
||||
placeholder="请输入关键字"
|
||||
clearable
|
||||
@keyup.enter="getcarkeyword"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getcarkeyword" v-ripple>采集</el-button>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="collect-models-content">
|
||||
<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>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<ElButton @click="keywordclose">取消</ElButton>
|
||||
<ElButton
|
||||
type="primary"
|
||||
@click="saveKeywordModels"
|
||||
:disabled="selectedModels.length === 0"
|
||||
>
|
||||
保存选中车型 ({{ selectedModels.length }})
|
||||
</ElButton>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { ElMessage, ElMessageBox, ElLoading } from 'element-plus'
|
||||
import { vehicleService } from '@/api/crmpc/vehicleApi'
|
||||
import { commonService } from '@/api/commonApi'
|
||||
defineOptions({ name: 'AdminVehicleList' })
|
||||
@@ -1766,9 +1832,68 @@
|
||||
formData.emission_std_code = matchedEmissionStd ? matchedEmissionStd.item_value : ''
|
||||
}
|
||||
)
|
||||
|
||||
//抓取车辆
|
||||
const keywordDialogVisible = ref(false)
|
||||
const carkeyword = ref('')
|
||||
const keywordModelsData = ref<any>({})
|
||||
const modelLst = ref<any>([])
|
||||
const modelLstLoading = ref(false)
|
||||
const crawlKeywordfn = async () => {
|
||||
keywordDialogVisible.value = true
|
||||
carkeyword.value = ''
|
||||
keywordModelsData.value = {}
|
||||
modelLst.value = []
|
||||
}
|
||||
const keywordclose = () => {
|
||||
keywordDialogVisible.value = false
|
||||
carkeyword.value = ''
|
||||
keywordModelsData.value = {}
|
||||
modelLst.value = []
|
||||
}
|
||||
const handleModelSelectionChange = (selection: any[]) => {
|
||||
selectedModels.value = selection
|
||||
}
|
||||
const selectedModels = ref<any[]>([])
|
||||
const getcarkeyword = async () => {
|
||||
modelLstLoading.value = true
|
||||
selectedModels.value = []
|
||||
const loading = ElLoading.service({
|
||||
lock: true,
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
})
|
||||
try {
|
||||
const res = await commonService.getcrawlKeyword({ keyword: carkeyword.value })
|
||||
keywordModelsData.value = res
|
||||
modelLst.value = res.model
|
||||
console.log(modelLst.value)
|
||||
} finally {
|
||||
loading.close()
|
||||
modelLstLoading.value = false
|
||||
}
|
||||
}
|
||||
const saveKeywordModels = async () => {
|
||||
if (selectedModels.value.length === 0) {
|
||||
ElMessage.warning('请选择要保存的车型')
|
||||
return
|
||||
}
|
||||
await commonService.crawlModelCreate({
|
||||
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
|
||||
})
|
||||
ElMessage.success(`成功保存 ${selectedModels.value.length} 个车型`)
|
||||
keywordDialogVisible.value = false
|
||||
getList()
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.btntab {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.vehicle-page {
|
||||
background: var(--art-main-bg-color);
|
||||
min-height: 100vh;
|
||||
|
||||
Reference in New Issue
Block a user