Files
jwl-manage-web/src/views/zs/clue/components/SearchForm.vue

133 lines
4.4 KiB
Vue
Raw Normal View History

2023-03-21 22:47:23 +08:00
<template>
<div>
2023-08-09 16:44:10 +08:00
<el-form ref="searchForm" :model="searchForm" inline size="mini">
2023-04-11 18:36:41 +08:00
<el-form-item label="筛选:" label-width="90px">
<DMRadio v-model="searchForm.quickSearch" :list="quickList" all-text="全部" @change="$emit('search')" />
</el-form-item>
<el-form-item label="意向状态:" label-width="90px">
<DMRadio v-model="searchForm.intentionState" :list="intentionOptions" all-text="全部" @change="$emit('search')" />
</el-form-item>
<el-row>
<el-form-item label="姓名/联系方式">
<el-input v-model="searchForm.name" placeholder="姓名/联系方式" clearable style="width: 200px" />
</el-form-item>
<el-form-item label="线索来源">
<el-select v-model="searchForm.source" placeholder="选择线索来源" clearable>
<el-option v-for="dict in sourceOptions" :key="dict.dictValue" :value="dict.dictValue" />
</el-select>
</el-form-item>
<el-form-item label="跟进人员">
<el-select v-model="searchForm.followUser2" placeholder="选择跟进人员" filterable clearable>
<el-option v-for="dict in userOptions" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
<el-form-item label="创建时间">
2023-05-11 00:46:52 +08:00
<el-date-picker v-model="createDateRange" style="width: 240px" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="pickDateChange" />
</el-form-item>
<el-form-item label="下次跟进日期">
<el-date-picker v-model="nextDateRange" style="width: 240px" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="nextDateChange" />
2023-04-11 18:36:41 +08:00
</el-form-item>
<el-form-item label-width="0">
<el-button type="primary" icon="el-icon-search" @click="$emit('search')">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-row>
</el-form>
2023-03-21 22:47:23 +08:00
</div>
</template>
<script>
2023-04-11 18:36:41 +08:00
import DMRadio from '@/components/DMRadio';
2023-03-21 22:47:23 +08:00
export default {
2023-04-11 18:36:41 +08:00
components: {
DMRadio
},
props: {
userOptions: {
type: Array,
2023-05-11 00:46:52 +08:00
default: () => ([])
2023-04-11 18:36:41 +08:00
},
sourceOptions: {
type: Array,
2023-05-11 00:46:52 +08:00
default: () => ([])
2023-04-11 18:36:41 +08:00
},
2023-05-11 00:46:52 +08:00
form: {
type: Object,
default: () => ({})
}
2023-04-11 18:36:41 +08:00
},
data() {
return {
2023-05-11 00:46:52 +08:00
searchForm: { ...this.form },
2023-04-11 18:36:41 +08:00
quickList: [
{ value: 1, label: '我创建的' },
{ value: 2, label: '我的有效' },
{ value: 3, label: '有效线索' },
{ value: 4, label: '今日有效线索' },
{ value: 5, label: '今日跟踪' },
{ value: 6, label: '过期线索' },
{ value: 7, label: '相关线索' },
2024-01-30 14:14:39 +08:00
{ value: 8, label: '撞单线索' },
{ value: 9, label: '待分配' }
2023-04-11 18:36:41 +08:00
],
intentionOptions: [],
2023-05-11 00:46:52 +08:00
createDateRange: [],
nextDateRange: []
};
},
watch: {
searchForm: {
handler(val) {
this.$emit('update:form', val);
},
deep: true
2023-04-11 18:36:41 +08:00
}
},
created() {
// 意向状态
this.getDicts('dm_intention_state').then((response) => {
2023-05-11 00:46:52 +08:00
const list = response.data;
this.intentionOptions = [];
2023-04-11 18:36:41 +08:00
list.map(item => {
this.intentionOptions.push({
value: item.dictValue,
label: item.dictLabel
2023-05-11 00:46:52 +08:00
});
});
});
2023-04-11 18:36:41 +08:00
},
methods: {
resetQuery() {
this.searchForm = {
name: undefined,
intentionState: undefined,
followUser2: undefined,
source: undefined,
quickSearch: undefined,
total: 0
};
2023-05-11 00:46:52 +08:00
this.createDateRange = [];
this.nextDateRange = [];
2023-04-11 18:36:41 +08:00
},
pickDateChange() {
2023-08-09 16:44:10 +08:00
if (this.createDateRange && this.createDateRange.length > 0) {
2023-05-11 00:46:52 +08:00
this.searchForm.createDateStart = this.createDateRange[0];
this.searchForm.createDateEnd = this.createDateRange[1];
} else {
this.searchForm.createDateStart = undefined;
this.searchForm.createDateEnd = undefined;
}
},
nextDateChange() {
2023-08-09 16:44:10 +08:00
if (this.nextDateRange && this.nextDateRange.length > 0) {
2023-05-11 00:46:52 +08:00
this.searchForm.nextDateStart = this.nextDateRange[0];
this.searchForm.nextDateEnd = this.nextDateRange[1];
} else {
this.searchForm.nextDateStart = undefined;
this.searchForm.nextDateEnd = undefined;
}
2023-04-11 18:36:41 +08:00
}
2023-05-11 00:46:52 +08:00
}
};
2023-03-21 22:47:23 +08:00
</script>