增加团队过滤

This commit is contained in:
lccsw
2025-12-12 10:12:17 +08:00
parent 8c48703349
commit 05379dcf5f
5 changed files with 121 additions and 5 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ module.exports = {
'/api': {
target: process.env.URL,
changeOrigin: true,
pathRewrite: { '^/api/common': '/common' } //路由重写调用公共方法
// pathRewrite: { '^/api/common': '/common' } //路由重写调用公共方法
}
}
},
+7
View File
@@ -41,3 +41,10 @@ export async function pageOrgNameList(params) {
});
return res.data;
}
export async function pageTeamList(params) {
const res = await request.get('/common/teamList', {
params
});
return res.data;
}
@@ -0,0 +1,95 @@
<!-- 团队选择组件 -->
<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>
import { pageTeamList } from '@/api/auto';
export default {
name: 'TeamSelect',
props: {
value: Array,
placeholder: String,
options: Array,
valueField: {
type: String,
validator: (val) => {
return !val || val === 'label';
}
},
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) {
return this.formatData(data);
}
},
watch: {
options: {
handler(options) {
console.log(options);
this.regionsData = this.filterData(options ?? []);
if (!options) {
pageTeamList().then((data) => {
this.regionsData = this.filterData(data ?? []);
this.$emit('load-data-done', data);
});
}
},
immediate: true
}
}
};
</script>
+17 -3
View File
@@ -131,6 +131,16 @@
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="12" v-if="isShowTeamSearch">
<el-form-item label="归属团队:">
<team-select
v-model="where.teamIds"
placeholder="请选择团队"
class="ele-fluid"
:props="{multiple:true}"
/>
</el-form-item>
</el-col>
<el-col :md="6" :sm="12">
<div class="ele-form-actions">
<el-button
@@ -243,10 +253,11 @@ import BrandSelect from '@/components/BrandSelect/index.vue'
import sendCoupon from '@/views/receiver/clues/components/send-coupon.vue'
import { pageCenterList, pageOrgNameList } from '@/api/auto'
import { utils, writeFile } from 'xlsx'
import TeamSelect from '@/components/teamSelect/index.vue'
export default {
name: 'receiverClues',
components: { RegionsSelect, BrandSelect, sendCoupon },
components: { TeamSelect, RegionsSelect, BrandSelect, sendCoupon },
data() {
return {
where: {
@@ -257,7 +268,8 @@ export default {
userCode: '',
centerNumber: '',
orgName: '',
level: ''
level: '',
teamIds: []
},
// 表格列配置
columns: [
@@ -402,7 +414,8 @@ export default {
orgNameList: [],
levelList: [],
title: '线索列表',
visibleSendCoupon: false
visibleSendCoupon: false,
isShowTeamSearch: false
}
},
created() {
@@ -441,6 +454,7 @@ export default {
this.statusList = data.statusList
this.belongOptions = data.belongList
this.levelList = data.levelList
this.isShowTeamSearch = data.isShowTeamSearch
})
.catch((e) => {
this.$message.error(e.message)
+1 -1
View File
@@ -9,7 +9,7 @@ module.exports = {
'/pingan': {
target: process.env.URL,
changeOrigin: true,
pathRewrite: { '^/pingan/common': '/common' } //路由重写调用公共方法
// pathRewrite: { '^/pingan/common': '/common' } //路由重写调用公共方法
}
}
},