Przeglądaj źródła

修改我的客户默认列表页的筛选查询逻辑

lm 1 miesiąc temu
rodzic
commit
07f71df52c

+ 5 - 5
src/store/index.ts

@@ -94,7 +94,7 @@ const store = createStore<RootState>({
     },
     },
     async updatePositionList({commit,state},data){
     async updatePositionList({commit,state},data){
       if(data){
       if(data){
-        commit('updatePositionList')
+        commit('updatePositionList',data)
       }else{
       }else{
         if(state.positionList?.length > 0){
         if(state.positionList?.length > 0){
           return
           return
@@ -119,7 +119,7 @@ const store = createStore<RootState>({
     },
     },
     async updateProductList({commit,state},data){
     async updateProductList({commit,state},data){
       if(data){
       if(data){
-        commit('updateProductList')
+        commit('updateProductList',data)
       }else{
       }else{
         if(state.productList?.length > 0){
         if(state.productList?.length > 0){
           return
           return
@@ -144,7 +144,7 @@ const store = createStore<RootState>({
     },
     },
     async updateFollowUpStatus({commit,state},data){
     async updateFollowUpStatus({commit,state},data){
       if(data){
       if(data){
-        commit('updateFollowUpStatus')
+        commit('updateFollowUpStatus',data)
       }else{
       }else{
         if(state.followUpStatus?.length > 0){
         if(state.followUpStatus?.length > 0){
           return
           return
@@ -169,7 +169,7 @@ const store = createStore<RootState>({
     },
     },
     async updateSchoolStageList({commit,state},data){
     async updateSchoolStageList({commit,state},data){
       if(data){
       if(data){
-        commit('updateSchoolStageList')
+        commit('updateSchoolStageList',data)
       }else{
       }else{
         if(state.schoolStageList?.length > 0){
         if(state.schoolStageList?.length > 0){
           return
           return
@@ -195,7 +195,7 @@ const store = createStore<RootState>({
 
 
     async updateConfigedProvinceCityList({commit,state},data){
     async updateConfigedProvinceCityList({commit,state},data){
       if(data){
       if(data){
-        commit('updateConfigedProvinceCityList')
+        commit('updateConfigedProvinceCityList',data)
       }else{
       }else{
         if(state.configedProvinceCityList?.length > 0){
         if(state.configedProvinceCityList?.length > 0){
           return
           return

+ 83 - 8
src/views/myCustomer/index.vue

@@ -29,6 +29,10 @@
                     <span class="two_line_ellipsis">{{ row.followUpContent }}</span>
                     <span class="two_line_ellipsis">{{ row.followUpContent }}</span>
                 </template>
                 </template>
 
 
+                <template #lastFollowDatetime="{row}">
+                    {{ row.lastFollowDatetime || '-' }}
+                </template>
+
                 <template #operation="{row}">
                 <template #operation="{row}">
                     <div class="table_row_option">
                     <div class="table_row_option">
                         <span class="option_button_editor" @click="OpenFormDialog(row)">编辑</span>
                         <span class="option_button_editor" @click="OpenFormDialog(row)">编辑</span>
@@ -86,29 +90,31 @@ const searchParams = ref({
     queryStr:'',
     queryStr:'',
 })
 })
 const provinceConfig = ref([])  //省份的配置列表
 const provinceConfig = ref([])  //省份的配置列表
+const memberConfigList = ref([]) //所有的人员配置列表
+
 
 
 // 获取头部筛选配置
 // 获取头部筛选配置
 const GetHeaderSearchOptions = async ()=>{
 const GetHeaderSearchOptions = async ()=>{
     let res = await getPrivateHeaderSearchParamsApi()
     let res = await getPrivateHeaderSearchParamsApi()
     if(res?.code == 200){
     if(res?.code == 200){
         const { groupData, memberData, regionData, stageData, typeData} = res.data
         const { groupData, memberData, regionData, stageData, typeData} = res.data
-        let typeDataOption = typeData?.slice(1)?.map(item=>{
+        let typeDataOption = typeData?.map(item=>{
             return {
             return {
                 label:item.name,
                 label:item.name,
                 value:item.id
                 value:item.id
             }
             }
         }) || []
         }) || []
-        let stageOption = stageData?.slice(1)?.map(item=>{
+        let stageOption = stageData?.map(item=>{
             return {
             return {
                 label:item.name,
                 label:item.name,
                 value:item.id
                 value:item.id
             }
             }
         }) || []
         }) || []
-        provinceConfig.value = regionData?.slice(1)?.map(item=>{
+        provinceConfig.value = regionData?.map(item=>{
             return {
             return {
                 label:item.name,
                 label:item.name,
                 value:item.id,
                 value:item.id,
-                subData:item.subData?.slice(1)?.map(city=>{
+                subData:item.subData?.map(city=>{
                     return {
                     return {
                         label:city.name,
                         label:city.name,
                         value:city.id
                         value:city.id
@@ -122,17 +128,20 @@ const GetHeaderSearchOptions = async ()=>{
         }).flat() || []
         }).flat() || []
 
 
 
 
-        let groupDataOption = groupData?.slice(1)?.map(item=>{
+        let groupDataOption = groupData?.map(item=>{
             return {
             return {
                 label:item.name,
                 label:item.name,
                 value:item.id,
                 value:item.id,
             }
             }
         }) || []
         }) || []
 
 
-        let personOption = memberData?.slice(1)?.map(item=>{
+        memberConfigList.value =  memberData?.map(item=>{
             return{
             return{
                 label:item.username,
                 label:item.username,
                 value:item.id,
                 value:item.id,
+                groupIds:item.groupIds || [],
+                cityIds:item.cityIds || [],
+                provinceIds:item.provinceIds || []
             }
             }
         })
         })
 
 
@@ -176,7 +185,7 @@ const GetHeaderSearchOptions = async ()=>{
                 case 'personnel':
                 case 'personnel':
                     item.options = [
                     item.options = [
                         { label: '全部', value: 'all' },
                         { label: '全部', value: 'all' },
-                        ...personOption,
+                        ...memberConfigList.value,
                     ]
                     ]
                     item.defaultValue = searchParams.value[item.key]
                     item.defaultValue = searchParams.value[item.key]
                     break
                     break
@@ -193,7 +202,9 @@ const HandleBlockSearchChange = (params,key)=>{
         ...params
         ...params
     }
     }
     if(key == 'province'){
     if(key == 'province'){
-        let cityOption = []
+        let cityOption = []  //市区配置
+        let filterProvinceMemberOption = []  //人员配置
+
         if(searchParams.value.province !== 'all'){
         if(searchParams.value.province !== 'all'){
             // 重新修改当前市区的 配置
             // 重新修改当前市区的 配置
             cityOption = provinceConfig.value.find(item=>{
             cityOption = provinceConfig.value.find(item=>{
@@ -204,6 +215,13 @@ const HandleBlockSearchChange = (params,key)=>{
                 return item.subData
                 return item.subData
             }).flat() || []
             }).flat() || []
         }
         }
+
+        // 过滤当前 省+分组 下的人员
+        filterProvinceMemberOption = memberConfigList.value.filter(item=>{
+            return (params.group == 'all' ? 1 : item.groupIds.includes(params.group)) 
+                && (params.province == 'all' ? 1 : item.provinceIds.includes(params.province) )
+        }) || []
+
         headerSearchList.value = headerSearchList.value.map(item=>{
         headerSearchList.value = headerSearchList.value.map(item=>{
             switch(item.key){
             switch(item.key){
                 case 'city':
                 case 'city':
@@ -211,6 +229,14 @@ const HandleBlockSearchChange = (params,key)=>{
                         { label: '全部', value: 'all' },
                         { label: '全部', value: 'all' },
                         ...cityOption,
                         ...cityOption,
                     ]
                     ]
+                    item.defaultValue = 'all'
+                    break
+                case 'personnel':
+                    item.options = [
+                        { label: '全部', value: 'all' },
+                        ...filterProvinceMemberOption,
+                    ]
+                    item.defaultValue = 'all'
                     break
                     break
                 default:
                 default:
                     item.defaultValue = searchParams.value[item.key]
                     item.defaultValue = searchParams.value[item.key]
@@ -218,6 +244,55 @@ const HandleBlockSearchChange = (params,key)=>{
             return item
             return item
         })
         })
         searchParams.value.city = 'all'
         searchParams.value.city = 'all'
+        searchParams.value.personnel = 'all'
+    }else if(key == 'city'){
+        let filterCityMemberOption = []  //人员配置
+
+        // 过滤当前 省+地区+分组 下的人员
+        filterCityMemberOption = memberConfigList.value.filter(item=>{
+            return  (params.group == 'all' ? 1 : item.groupIds.includes(params.group) )
+                    && (params.province == 'all' ? 1 : item.provinceIds.includes(params.province) )
+                    && (params.city == 'all' ? 1 :  item.cityIds.includes(params.city) )
+        }) || []
+
+        headerSearchList.value = headerSearchList.value.map(item=>{
+            switch(item.key){
+                case 'personnel':
+                    item.options = [
+                        { label: '全部', value: 'all' },
+                        ...filterCityMemberOption,
+                    ]
+                    item.defaultValue = 'all'
+                    break
+                default:
+                    item.defaultValue = searchParams.value[item.key]
+            }
+            return item
+        })
+        searchParams.value.personnel = 'all'
+    }else if(key == 'group'){
+        let filterMemberOption = []
+
+        filterMemberOption = memberConfigList.value.filter(item=>{
+            return  (params.group == 'alll' ? 1 :  item.groupIds.includes(params.group))
+        }) || []
+        
+        // 这里边的 分组变更的时候,需要 过滤对应分组下的人员
+        headerSearchList.value = headerSearchList.value.map(item=>{
+            switch(item.key){
+                case 'personnel':
+                    item.options = [
+                        { label: '全部', value: 'all' },
+                        ...filterMemberOption,
+                    ]
+                    item.defaultValue = 'all'
+                    break
+                default:
+                    item.defaultValue = searchParams.value[item.key]
+            }
+            return item
+        })
+        searchParams.value.personnel = 'all'
     }
     }
     GetCustomerList()
     GetCustomerList()
 }
 }

+ 1 - 1
src/views/myCustomer/table.ts

@@ -92,7 +92,7 @@ export const tableColumns = ref([
         fixed: '',
         fixed: '',
         align: 'center',
         align: 'center',
         minWidth: '',
         minWidth: '',
-        custom: false,
+        custom: true,
     },
     },
     {
     {
         name: 'operation',
         name: 'operation',