修改客户筛选
This commit is contained in:
@@ -33,3 +33,13 @@ export async function pageCustomerOptLog(params) {
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
export async function getSearch(params) {
|
||||
const res = await request.get('/receiver/customer/search', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
<!-- 门店选择组件 -->
|
||||
<template>
|
||||
<el-cascader
|
||||
clearable
|
||||
filterable
|
||||
collapse-tags
|
||||
:value="value"
|
||||
:options="regionsData"
|
||||
:placeholder="placeholder"
|
||||
popper-class="ele-pop-wrap-higher"
|
||||
:props="props"
|
||||
@input="updateValue"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'BizSelect',
|
||||
props: {
|
||||
value: Array,
|
||||
placeholder: String,
|
||||
options: Array,
|
||||
valueField: {
|
||||
type: String,
|
||||
validator: (val) => {
|
||||
return !val || val === 'label';
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 级联选择器数据
|
||||
regionsData: [],
|
||||
props: {
|
||||
lazy: true
|
||||
}
|
||||
};
|
||||
},
|
||||
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) {
|
||||
return this.formatData(data);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
options: {
|
||||
handler(options) {
|
||||
console.log(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>
|
||||
@@ -3,6 +3,7 @@
|
||||
<el-cascader
|
||||
clearable
|
||||
filterable
|
||||
collapse-tags
|
||||
:value="value"
|
||||
:options="regionsData"
|
||||
:placeholder="placeholder"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="6" :sm="12">
|
||||
<el-form-item label="省市:">
|
||||
<el-form-item label="地区:">
|
||||
<regions-select
|
||||
v-model="where.citys"
|
||||
type="provinceCity"
|
||||
|
||||
@@ -13,6 +13,48 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="6" :sm="12">
|
||||
<el-form-item label="客户编号:">
|
||||
<el-input
|
||||
placeholder="请输入客户编号"
|
||||
clearable
|
||||
v-model="where.cid"
|
||||
/>
|
||||
</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="门店:">
|
||||
<biz-select v-model="where.bizIds" />
|
||||
</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-form-item label="筛选日期:">
|
||||
<el-date-picker
|
||||
@@ -69,23 +111,32 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { pageCustomer } from '@/api/receiver/customer';
|
||||
import { pageCustomer, getSearch } from '@/api/receiver/customer';
|
||||
import BrandSelect from '@/components/BrandSelect/index.vue';
|
||||
import BizSelect from '@/components/BizSelect/index.vue';
|
||||
|
||||
export default {
|
||||
name: 'receiverClues',
|
||||
components: {},
|
||||
components: { BrandSelect, BizSelect },
|
||||
data() {
|
||||
return {
|
||||
where: {
|
||||
title: '',
|
||||
selectedCar: {
|
||||
brandId: '',
|
||||
seriesId: '',
|
||||
modelId: ''
|
||||
}
|
||||
cid: '',
|
||||
citys: [],
|
||||
brands: [],
|
||||
belong: [],
|
||||
bizIds: []
|
||||
},
|
||||
// 表格列配置
|
||||
columns: [
|
||||
{
|
||||
prop: 'cid',
|
||||
label: '编号',
|
||||
align: 'center',
|
||||
showOverflowTooltip: true,
|
||||
minWidth: 80
|
||||
},
|
||||
{
|
||||
prop: 'mobile',
|
||||
label: '客户',
|
||||
@@ -180,10 +231,14 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
belongOptions: [],
|
||||
statusList: []
|
||||
};
|
||||
},
|
||||
created() {},
|
||||
created() {
|
||||
this.loadSearch();
|
||||
},
|
||||
computed: {
|
||||
// 是否开启响应式布局
|
||||
styleResponsive() {
|
||||
@@ -191,6 +246,16 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadSearch() {
|
||||
getSearch()
|
||||
.then((data) => {
|
||||
this.statusList = data.statusList;
|
||||
this.belongOptions = data.belongList;
|
||||
})
|
||||
.catch((e) => {
|
||||
this.$message.error(e.message);
|
||||
});
|
||||
},
|
||||
/* 下拉按钮点击 */
|
||||
dropClick(command, row) {
|
||||
if (command === 'edit') {
|
||||
@@ -231,4 +296,8 @@
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style scoped></style>
|
||||
<style scoped>
|
||||
::v-deep .el-cascader .el-cascader__tags .el-cascader__search-input {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user