修改线管理后台索池
This commit is contained in:
@@ -41,3 +41,13 @@ export async function addCluesOptLog(data) {
|
|||||||
}
|
}
|
||||||
return Promise.reject(new Error(res.data.message));
|
return Promise.reject(new Error(res.data.message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getSearch(params) {
|
||||||
|
const res = await request.get('/receiver/clues/search', {
|
||||||
|
params
|
||||||
|
});
|
||||||
|
if (res.data.code === 0) {
|
||||||
|
return res.data.data;
|
||||||
|
}
|
||||||
|
return Promise.reject(new Error(res.data.message));
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,129 @@
|
|||||||
|
<!-- 省市区选择组件 -->
|
||||||
|
<template>
|
||||||
|
<el-cascader
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
:value="value"
|
||||||
|
:options="regionsData"
|
||||||
|
:placeholder="placeholder"
|
||||||
|
popper-class="ele-pop-wrap-higher"
|
||||||
|
:props="props"
|
||||||
|
@input="updateValue"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getRegionsData } from './load-data';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'BrandSelect',
|
||||||
|
props: {
|
||||||
|
value: Array,
|
||||||
|
placeholder: String,
|
||||||
|
options: Array,
|
||||||
|
valueField: {
|
||||||
|
type: String,
|
||||||
|
validator: (val) => {
|
||||||
|
return !val || val === 'label';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
validator: (type) => {
|
||||||
|
return !type || ['provinceCity', 'province'].includes(type);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: Object
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 级联选择器数据
|
||||||
|
regionsData: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/* 更新 value */
|
||||||
|
updateValue(value) {
|
||||||
|
this.$emit('input', value);
|
||||||
|
},
|
||||||
|
/* 级联选择器数据 value 处理 */
|
||||||
|
formatData(data) {
|
||||||
|
if (this.valueField === 'label') {
|
||||||
|
return data.map((d) => {
|
||||||
|
const item = {
|
||||||
|
label: d.label,
|
||||||
|
value: d.label
|
||||||
|
};
|
||||||
|
if (d.children) {
|
||||||
|
item.children = d.children.map((c) => {
|
||||||
|
const cItem = {
|
||||||
|
label: c.label,
|
||||||
|
value: c.label
|
||||||
|
};
|
||||||
|
if (c.children) {
|
||||||
|
cItem.children = c.children.map((cc) => {
|
||||||
|
return {
|
||||||
|
label: cc.label,
|
||||||
|
value: cc.label
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return cItem;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/* 省市区数据筛选 */
|
||||||
|
filterData(data) {
|
||||||
|
if (this.type === 'provinceCity') {
|
||||||
|
return this.formatData(
|
||||||
|
data.map((d) => {
|
||||||
|
const item = {
|
||||||
|
label: d.label,
|
||||||
|
value: d.value
|
||||||
|
};
|
||||||
|
if (d.children) {
|
||||||
|
item.children = d.children.map((c) => {
|
||||||
|
return {
|
||||||
|
label: c.label,
|
||||||
|
value: c.value
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
})
|
||||||
|
);
|
||||||
|
} else if (this.type === 'province') {
|
||||||
|
return this.formatData(
|
||||||
|
data.map((d) => {
|
||||||
|
return {
|
||||||
|
label: d.label,
|
||||||
|
value: d.value
|
||||||
|
};
|
||||||
|
})
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return this.formatData(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
options: {
|
||||||
|
handler(options) {
|
||||||
|
this.regionsData = this.filterData(options ?? []);
|
||||||
|
if (!options) {
|
||||||
|
getRegionsData().then((data) => {
|
||||||
|
this.regionsData = this.filterData(data ?? []);
|
||||||
|
this.$emit('load-data-done', data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
import { API_BASE_URL } from '@/config/setting';
|
||||||
|
const BASE_URL = API_BASE_URL;
|
||||||
|
let reqPromise;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取省市区数据
|
||||||
|
*/
|
||||||
|
export function getRegionsData() {
|
||||||
|
if (!reqPromise) {
|
||||||
|
reqPromise = new Promise((resolve, reject) => {
|
||||||
|
request
|
||||||
|
.get(BASE_URL + '/common/autoBrands', {
|
||||||
|
baseURL: ''
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
resolve(res.data ?? []);
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
reject(e);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return reqPromise;
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-cascader
|
<el-cascader
|
||||||
clearable
|
clearable
|
||||||
|
filterable
|
||||||
:value="value"
|
:value="value"
|
||||||
:options="regionsData"
|
:options="regionsData"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
@@ -76,7 +77,7 @@
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/* 省市区数据筛选 */
|
/* 数据筛选 */
|
||||||
filterData(data) {
|
filterData(data) {
|
||||||
if (this.type === 'provinceCity') {
|
if (this.type === 'provinceCity') {
|
||||||
return this.formatData(
|
return this.formatData(
|
||||||
|
|||||||
@@ -13,6 +13,53 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :md="6" :sm="12">
|
||||||
|
<el-form-item label="客户编号:">
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入客户编号"
|
||||||
|
clearable
|
||||||
|
v-model="where.sid"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :md="6" :sm="12">
|
||||||
|
<el-form-item label="线索状态:">
|
||||||
|
<el-cascader
|
||||||
|
v-model="where.status"
|
||||||
|
:options="statusList"
|
||||||
|
clearable
|
||||||
|
></el-cascader>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :md="6" :sm="12">
|
||||||
|
<el-form-item label="省市:">
|
||||||
|
<regions-select
|
||||||
|
v-model="where.citys"
|
||||||
|
type="provinceCity"
|
||||||
|
placeholder="请选择省市"
|
||||||
|
class="ele-fluid"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :md="6" :sm="12">
|
||||||
|
<el-form-item label="关注车型:">
|
||||||
|
<brand-select
|
||||||
|
v-model="where.brands"
|
||||||
|
type="provinceCity"
|
||||||
|
:props="{ multiple: true }"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :md="6" :sm="12">
|
||||||
|
<el-form-item label="线索归属:">
|
||||||
|
<el-cascader
|
||||||
|
v-model="where.belong"
|
||||||
|
:options="belongOptions"
|
||||||
|
:props="{ multiple: true, checkStrictly: true }"
|
||||||
|
clearable
|
||||||
|
></el-cascader>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 12 }">
|
<el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 12 }">
|
||||||
<el-form-item label="筛选日期:">
|
<el-form-item label="筛选日期:">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@@ -65,27 +112,27 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { pageClues } from '@/api/receiver/clues';
|
import { pageClues, getSearch } from '@/api/receiver/clues';
|
||||||
|
import RegionsSelect from '@/components/RegionsSelect/index.vue';
|
||||||
|
import BrandSelect from '@/components/BrandSelect/index.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'receiverClues',
|
name: 'receiverClues',
|
||||||
components: {},
|
components: { RegionsSelect, BrandSelect },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
where: {
|
where: {
|
||||||
title: '',
|
title: '',
|
||||||
selectedCar: {
|
citys: [],
|
||||||
brandId: '',
|
brands: [],
|
||||||
seriesId: '',
|
belong: []
|
||||||
modelId: ''
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
// 表格列配置
|
// 表格列配置
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
prop: 'id',
|
prop: 'sid',
|
||||||
label: '编号',
|
label: '编号',
|
||||||
minWidth: 40,
|
minWidth: 100,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
showOverflowTooltip: true,
|
showOverflowTooltip: true,
|
||||||
fixed: 'left'
|
fixed: 'left'
|
||||||
@@ -191,10 +238,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
belongOptions: [],
|
||||||
|
statusList: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {},
|
created() {
|
||||||
|
this.loadSearch();
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// 是否开启响应式布局
|
// 是否开启响应式布局
|
||||||
styleResponsive() {
|
styleResponsive() {
|
||||||
@@ -202,6 +253,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
loadSearch() {
|
||||||
|
getSearch()
|
||||||
|
.then((data) => {
|
||||||
|
console.log(data);
|
||||||
|
this.statusList = data.statusList;
|
||||||
|
this.belongOptions = data.belongList;
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
this.$message.error(e.message);
|
||||||
|
});
|
||||||
|
},
|
||||||
/* 下拉按钮点击 */
|
/* 下拉按钮点击 */
|
||||||
dropClick(command, row) {
|
dropClick(command, row) {
|
||||||
if (command === 'edit') {
|
if (command === 'edit') {
|
||||||
|
|||||||
Reference in New Issue
Block a user