caiyuqin 10 месяцев назад
Родитель
Сommit
64e03897c5

+ 32 - 6
src/views/consoleManage/businessDataManage/channelDataManage/channelDataManageDetail.vue

@@ -27,7 +27,7 @@
 </template>
 
 <script setup lang="ts">
-import { useRouter } from "vue-router";
+import { useRouter, useRoute } from "vue-router";
 import api from "@/api";
 import QueryForm from "../../components/queryForm.vue";
 import FilterDialog from "../../components/filterDialog.vue";
@@ -38,6 +38,7 @@ import PageInfo from "@/api/types/agreementTypes";
 import { ElMessage } from "element-plus";
 
 const router = useRouter();
+const route = useRoute();
 const userStore = useUserStore();
 const isShow = ref(false);
 
@@ -139,20 +140,45 @@ const queryFormRes = ref();
 const routerKey = ref("channelDataManageDetail");
 const defaultList = ref();
 const pageHiddenList = ref([]); //页面不显示的数据
+const isFilterFrom = ref(); //主页面查询条件且在过滤中不存在
 const initDefaultList = async () => {
   const { data } = await api.manageApi.getSearchDefaultList({
     routerKey: routerKey.value,
     userId: phone,
   });
-  listOption.queryFormFields = data.filter((e) => e.showFlag);
 
-  pageHiddenList.value = data.filter((e) => !e.showFlag);
-  defaultList.value = data.map((e) => e.id);
+  const queryParamsMap = route.query;
+  const processedData = data.map((item) => {
+    if (queryParamsMap.hasOwnProperty(item.key)) {
+      return { ...item, defaultValue: queryParamsMap[item.key] };
+    }
+    return item;
+  });
+
+  let filterFrom = {};
+  processedData.map((item) => {
+    filterFrom[item.key] = item.defaultValue;
+  });
+  isFilterFrom.value = getUniqueProperties(queryParamsMap, filterFrom);
+
+  listOption.queryFormFields = processedData.filter((e) => e.showFlag);
+  pageHiddenList.value = processedData.filter((e) => !e.showFlag);
+  defaultList.value = processedData.map((e) => e.id);
   selectedKeys.value = defaultList.value;
   queryFormRes.value = queryFormRef.value?.initDefaultSaveForm();
   queryList();
 };
 
+const getUniqueProperties = (obj1, obj2) => {
+  const uniqueProps = {};
+  Object.keys(obj1).forEach((key) => {
+    if (!(key in obj2) || obj2[key] == undefined) {
+      uniqueProps[key] = obj1[key];
+    }
+  });
+  return uniqueProps;
+};
+
 //删除
 const filterDialogRef = ref();
 const delSelect = (id) => {
@@ -216,7 +242,7 @@ const query = (item) => {
 //数据查询
 const tableData = ref([]);
 const queryList = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data } = await api.manageApi.channelDataManageDetailPageList({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,
@@ -242,7 +268,7 @@ function getList(item: PageInfo) {
 
 //导出
 const downloadFile = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data, msg } = await api.manageApi.channelDataManageDetailToTask({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,

+ 8 - 5
src/views/consoleManage/businessDataManage/channelDataManage/index.vue

@@ -25,7 +25,7 @@
         <ComplexTable :tableData="tableData" :showSelect='false' :columns="listOption.columns" :showIndex="false"
           :columnwidth="120" :pageInfo="pageInfo" @getList="getList">
           <template v-slot:operation="scope">
-            <el-button type="primary" link @click='agreementEdit(scope.operationData.id)'>明细</el-button>
+            <el-button type="primary" link @click='agreementEdit(scope.operationData)'>明细</el-button>
           </template>
 
           <template v-slot:search="scope">
@@ -332,12 +332,15 @@ const downloadFile = async () => {
   userStore.count++;
 };
 
-const agreementEdit = (id) => {
+const agreementEdit = (item) => {
+  queryFormRes.value = queryFormRef.value?.querySelect();
+  let query = {
+    ...queryFormRes.value,
+    salesmanId: item.salesmanId,
+  };
   router.push({
     name: "channelDataManageDetail",
-    query: {
-      id: id,
-    },
+    query
   });
 };
 

+ 32 - 6
src/views/consoleManage/businessDataManage/companyDataManage/companyDataManageDetail.vue

@@ -25,7 +25,7 @@
 </template>
 
 <script setup lang="ts">
-import { useRouter } from "vue-router";
+import { useRouter, useRoute } from "vue-router";
 import api from "@/api";
 import QueryForm from "../../components/queryForm.vue";
 import FilterDialog from "../../components/filterDialog.vue";
@@ -36,6 +36,7 @@ import PageInfo from "@/api/types/agreementTypes";
 import { ElMessage } from "element-plus";
 
 const router = useRouter();
+const route = useRoute();
 const userStore = useUserStore();
 const isShow = ref(false);
 
@@ -115,20 +116,45 @@ const queryFormRes = ref();
 const routerKey = ref("companyDataManageDetail");
 const defaultList = ref();
 const pageHiddenList = ref([]); //页面不显示的数据
+const isFilterFrom = ref(); //主页面查询条件且在过滤中不存在
+
 const initDefaultList = async () => {
   const { data } = await api.manageApi.getSearchDefaultList({
     routerKey: routerKey.value,
     userId: phone,
   });
-  listOption.queryFormFields = data.filter((e) => e.showFlag);
 
-  pageHiddenList.value = data.filter((e) => !e.showFlag);
-  defaultList.value = data.map((e) => e.id);
+  const queryParamsMap = route.query;
+  const processedData = data.map((item) => {
+    if (queryParamsMap.hasOwnProperty(item.key)) {
+      return { ...item, defaultValue: queryParamsMap[item.key] };
+    }
+    return item;
+  });
+
+  let filterFrom = {};
+  processedData.map((item) => {
+    filterFrom[item.key] = item.defaultValue;
+  });
+  isFilterFrom.value = getUniqueProperties(queryParamsMap, filterFrom);
+
+  listOption.queryFormFields = processedData.filter((e) => e.showFlag);
+  pageHiddenList.value = processedData.filter((e) => !e.showFlag);
+  defaultList.value = processedData.map((e) => e.id);
   selectedKeys.value = defaultList.value;
   queryFormRes.value = queryFormRef.value?.initDefaultSaveForm();
   queryList();
 };
 
+const getUniqueProperties = (obj1, obj2) => {
+  const uniqueProps = {};
+  Object.keys(obj1).forEach((key) => {
+    if (!(key in obj2) || obj2[key] == undefined) {
+      uniqueProps[key] = obj1[key];
+    }
+  });
+  return uniqueProps;
+};
 //删除
 const filterDialogRef = ref();
 const delSelect = (id) => {
@@ -192,7 +218,7 @@ const query = (item) => {
 //数据查询
 const tableData = ref([]);
 const queryList = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data } = await api.manageApi.companyDataManageDetailPageList({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,
@@ -218,7 +244,7 @@ function getList(item: PageInfo) {
 
 //导出
 const downloadFile = async () => {
-  let query = { ...queryFormRes.value };
+ let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data, msg } = await api.manageApi.companyDataManageDetailToTask({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,

+ 9 - 5
src/views/consoleManage/businessDataManage/companyDataManage/index.vue

@@ -13,7 +13,7 @@
     <ComplexTable :tableData="tableData" :showSelect='false' :columns="listOption.columns" :showIndex="false"
       :columnwidth="120" :pageInfo="pageInfo" @getList="getList">
       <template v-slot:operation="scope">
-        <el-button type="primary" link @click='agreementEdit(scope.operationData.id)'>明细</el-button>
+        <el-button type="primary" link @click='agreementEdit(scope.operationData)'>明细</el-button>
       </template>
 
       <template v-slot:search="scope">
@@ -259,12 +259,16 @@ const downloadFile = async () => {
   userStore.count++;
 };
 
-const agreementEdit = (id) => {
+const agreementEdit = (item) => {
+  queryFormRes.value = queryFormRef.value?.querySelect();
+  let query = {
+    ...queryFormRes.value,
+    companyId: item.companyId,
+    partnerCompanyIds: item.partnerCompanyId,
+  };
   router.push({
     name: "companyDataManageDetail",
-    query: {
-      id: id,
-    },
+    query,
   });
 };
 

+ 44 - 16
src/views/consoleManage/businessDataManage/contactPersonDataManage/contactPersonDataManageDetail.vue

@@ -25,7 +25,7 @@
 </template>
 
 <script setup lang="ts">
-import { useRouter } from "vue-router";
+import { useRouter, useRoute } from "vue-router";
 import api from "@/api";
 import QueryForm from "../../components/queryForm.vue";
 import FilterDialog from "../../components/filterDialog.vue";
@@ -36,6 +36,7 @@ import PageInfo from "@/api/types/agreementTypes";
 import { ElMessage } from "element-plus";
 
 const router = useRouter();
+const route = useRoute();
 const userStore = useUserStore();
 const isShow = ref(false);
 
@@ -145,20 +146,45 @@ const queryFormRes = ref();
 const routerKey = ref("contactPersonDataManageDetail");
 const defaultList = ref();
 const pageHiddenList = ref([]); //页面不显示的数据
+const isFilterFrom = ref(); //主页面查询条件且在过滤中不存在
 const initDefaultList = async () => {
   const { data } = await api.manageApi.getSearchDefaultList({
     routerKey: routerKey.value,
     userId: phone,
   });
-  listOption.queryFormFields = data.filter((e) => e.showFlag);
 
-  pageHiddenList.value = data.filter((e) => !e.showFlag);
-  defaultList.value = data.map((e) => e.id);
+  const queryParamsMap = route.query;
+  const processedData = data.map((item) => {
+    if (queryParamsMap.hasOwnProperty(item.key)) {
+      return { ...item, defaultValue: queryParamsMap[item.key] };
+    }
+    return item;
+  });
+
+  let filterFrom = {};
+  processedData.map((item) => {
+    filterFrom[item.key] = item.defaultValue;
+  });
+  isFilterFrom.value = getUniqueProperties(queryParamsMap, filterFrom);
+
+  listOption.queryFormFields = processedData.filter((e) => e.showFlag);
+  pageHiddenList.value = processedData.filter((e) => !e.showFlag);
+  defaultList.value = processedData.map((e) => e.id);
   selectedKeys.value = defaultList.value;
   queryFormRes.value = queryFormRef.value?.initDefaultSaveForm();
   queryList();
 };
 
+const getUniqueProperties = (obj1, obj2) => {
+  const uniqueProps = {};
+  Object.keys(obj1).forEach((key) => {
+    if (!(key in obj2) || obj2[key] == undefined) {
+      uniqueProps[key] = obj1[key];
+    }
+  });
+  return uniqueProps;
+};
+
 //删除
 const filterDialogRef = ref();
 const delSelect = (id) => {
@@ -222,7 +248,7 @@ const query = (item) => {
 //数据查询
 const tableData = ref([]);
 const queryList = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data } = await api.manageApi.contactPersonDataManageDetailPageList({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,
@@ -248,17 +274,19 @@ function getList(item: PageInfo) {
 
 //导出
 const downloadFile = async () => {
-  let query = { ...queryFormRes.value };
-  const { data, msg } = await api.manageApi.contactPersonDataManageDetailToTask({
-    pageNo: pageInfo.value.pageNum,
-    pageSize: pageInfo.value.pageSize,
-    routerKey: routerKey.value,
-    userId: phone,
-    orderType: globalSortKey.value
-      ? globalSortKey.value + " " + globalSortOrder.value
-      : "",
-    ...query,
-  });
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
+  const { data, msg } = await api.manageApi.contactPersonDataManageDetailToTask(
+    {
+      pageNo: pageInfo.value.pageNum,
+      pageSize: pageInfo.value.pageSize,
+      routerKey: routerKey.value,
+      userId: phone,
+      orderType: globalSortKey.value
+        ? globalSortKey.value + " " + globalSortOrder.value
+        : "",
+      ...query,
+    }
+  );
   ElMessage({
     message: msg,
     type: "success",

+ 10 - 5
src/views/consoleManage/businessDataManage/contactPersonDataManage/index.vue

@@ -13,7 +13,7 @@
     <ComplexTable :tableData="tableData" :showSelect='false' :columns="listOption.columns" :showIndex="false"
       :columnwidth="120" :pageInfo="pageInfo" @getList="getList">
       <template v-slot:operation="scope">
-        <el-button type="primary" link @click='agreementEdit(scope.operationData.id)'>明细</el-button>
+        <el-button type="primary" link @click='agreementEdit(scope.operationData)'>明细</el-button>
       </template>
       <template v-slot:search="scope">
         <Sort :scope="scope.slotData" :globalSortKey="globalSortKey" :globalSortOrder="globalSortOrder"
@@ -267,12 +267,17 @@ const downloadFile = async () => {
   });
   userStore.count++;
 };
-const agreementEdit = (id) => {
+const agreementEdit = (item) => {
+  queryFormRes.value = queryFormRef.value?.querySelect();
+  let query = {
+    ...queryFormRes.value,
+    companyId: item.companyId,
+    partnerCompanyIds: item.partnerCompanyId,
+    contactPersonName: item.contactPersonName,
+  };
   router.push({
     name: "contactPersonDataManageDetail",
-    query: {
-      id: id,
-    },
+    query,
   });
 };
 

+ 10 - 5
src/views/consoleManage/businessDataManage/riskDataManage/index.vue

@@ -13,7 +13,7 @@
     <ComplexTable :tableData="tableData" :showSelect='false' :columns="listOption.columns" :showIndex="false"
       :columnwidth="120" :pageInfo="pageInfo" @getList="getList">
       <template v-slot:operation="scope">
-        <el-button type="primary" link @click='agreementEdit(scope.operationData.id)'>明细</el-button>
+        <el-button type="primary" link @click='agreementEdit(scope.operationData)'>明细</el-button>
       </template>
 
       <template v-slot:search="scope">
@@ -273,12 +273,17 @@ const downloadFile = async () => {
   userStore.count++;
 };
 
-const agreementEdit = (id) => {
+const agreementEdit = (item) => {
+  queryFormRes.value = queryFormRef.value?.querySelect();
+  let query = {
+    ...queryFormRes.value,
+    companyId: item.companyId,
+    partnerCompanyIds: item.partnerCompanyId,
+    riskTypes: item.riskId,
+  };
   router.push({
     name: "riskDataManageDetail",
-    query: {
-      id: id,
-    },
+    query,
   });
 };
 

+ 32 - 6
src/views/consoleManage/businessDataManage/riskDataManage/riskDataManageDetail.vue

@@ -27,7 +27,7 @@
 </template>
 
 <script setup lang="ts">
-import { useRouter } from "vue-router";
+import { useRouter,useRoute } from "vue-router";
 import api from "@/api";
 import QueryForm from "../../components/queryForm.vue";
 import FilterDialog from "../../components/filterDialog.vue";
@@ -38,6 +38,7 @@ import PageInfo from "@/api/types/agreementTypes";
 import { ElMessage } from "element-plus";
 
 const router = useRouter();
+const route = useRoute();
 const userStore = useUserStore();
 const isShow = ref(false);
 
@@ -129,20 +130,45 @@ const queryFormRes = ref();
 const routerKey = ref("riskDataManageDetail");
 const defaultList = ref();
 const pageHiddenList = ref([]); //页面不显示的数据
+const isFilterFrom = ref(); //主页面查询条件且在过滤中不存在
 const initDefaultList = async () => {
   const { data } = await api.manageApi.getSearchDefaultList({
     routerKey: routerKey.value,
     userId: phone,
   });
-  listOption.queryFormFields = data.filter((e) => e.showFlag);
 
-  pageHiddenList.value = data.filter((e) => !e.showFlag);
-  defaultList.value = data.map((e) => e.id);
+  const queryParamsMap = route.query;
+  const processedData = data.map((item) => {
+    if (queryParamsMap.hasOwnProperty(item.key)) {
+      return { ...item, defaultValue: queryParamsMap[item.key] };
+    }
+    return item;
+  });
+
+  let filterFrom = {};
+  processedData.map((item) => {
+    filterFrom[item.key] = item.defaultValue;
+  });
+  isFilterFrom.value = getUniqueProperties(queryParamsMap, filterFrom);
+
+  listOption.queryFormFields = processedData.filter((e) => e.showFlag);
+  pageHiddenList.value = processedData.filter((e) => !e.showFlag);
+  defaultList.value = processedData.map((e) => e.id);
   selectedKeys.value = defaultList.value;
   queryFormRes.value = queryFormRef.value?.initDefaultSaveForm();
   queryList();
 };
 
+const getUniqueProperties = (obj1, obj2) => {
+  const uniqueProps = {};
+  Object.keys(obj1).forEach((key) => {
+    if (!(key in obj2) || obj2[key] == undefined) {
+      uniqueProps[key] = obj1[key];
+    }
+  });
+  return uniqueProps;
+};
+
 //删除
 const filterDialogRef = ref();
 const delSelect = (id) => {
@@ -206,7 +232,7 @@ const query = (item) => {
 //数据查询
 const tableData = ref([]);
 const queryList = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data } = await api.manageApi.riskDataManageDetailPageList({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,
@@ -232,7 +258,7 @@ function getList(item: PageInfo) {
 
 //导出
 const downloadFile = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data, msg } = await api.manageApi.riskDataManageDetailToPage({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,

+ 8 - 7
src/views/consoleManage/businessDataManage/salesmanDataManage/index.vue

@@ -25,7 +25,7 @@
         <ComplexTable :tableData="tableData" :showSelect='false' :columns="listOption.columns" :showIndex="false"
           :columnwidth="120" :pageInfo="pageInfo" @getList="getList">
           <template v-slot:operation="scope">
-            <el-button type="primary" link @click='agreementEdit(scope.operationData.id)'>明细</el-button>
+            <el-button type="primary" link @click='agreementEdit(scope.operationData)'>明细</el-button>
           </template>
 
           <template v-slot:search="scope">
@@ -332,14 +332,15 @@ const downloadFile = async () => {
   userStore.count++;
 };
 
-
-
-const agreementEdit = (id) => {
+const agreementEdit = (item) => {
+  queryFormRes.value = queryFormRef.value?.querySelect();
+  let query = {
+    ...queryFormRes.value,
+    salesmanId: item.salesmanId,
+  };
   router.push({
     name: "salesmanDataManageDetail",
-    query: {
-      id: id,
-    },
+    query,
   });
 };
 

+ 33 - 6
src/views/consoleManage/businessDataManage/salesmanDataManage/salesmanDataManageDetail.vue

@@ -27,7 +27,7 @@
 </template>
 
 <script setup lang="ts">
-import { useRouter } from "vue-router";
+import { useRouter,useRoute } from "vue-router";
 import api from "@/api";
 import QueryForm from "../../components/queryForm.vue";
 import FilterDialog from "../../components/filterDialog.vue";
@@ -38,6 +38,7 @@ import PageInfo from "@/api/types/agreementTypes";
 import { ElMessage } from "element-plus";
 
 const router = useRouter();
+const route = useRoute();
 const userStore = useUserStore();
 const isShow = ref(false);
 
@@ -139,20 +140,46 @@ const queryFormRes = ref();
 const routerKey = ref("salesmanDataManageDetail");
 const defaultList = ref();
 const pageHiddenList = ref([]); //页面不显示的数据
+const isFilterFrom = ref(); //主页面查询条件且在过滤中不存在
 const initDefaultList = async () => {
   const { data } = await api.manageApi.getSearchDefaultList({
     routerKey: routerKey.value,
     userId: phone,
   });
-  listOption.queryFormFields = data.filter((e) => e.showFlag);
 
-  pageHiddenList.value = data.filter((e) => !e.showFlag);
-  defaultList.value = data.map((e) => e.id);
+  const queryParamsMap = route.query;
+  const processedData = data.map((item) => {
+    if (queryParamsMap.hasOwnProperty(item.key)) {
+      return { ...item, defaultValue: queryParamsMap[item.key] };
+    }
+    return item;
+  });
+
+  let filterFrom = {};
+  processedData.map((item) => {
+    filterFrom[item.key] = item.defaultValue;
+  });
+  isFilterFrom.value = getUniqueProperties(queryParamsMap, filterFrom);
+
+  listOption.queryFormFields = processedData.filter((e) => e.showFlag);
+  pageHiddenList.value = processedData.filter((e) => !e.showFlag);
+  defaultList.value = processedData.map((e) => e.id);
   selectedKeys.value = defaultList.value;
   queryFormRes.value = queryFormRef.value?.initDefaultSaveForm();
   queryList();
 };
 
+const getUniqueProperties = (obj1, obj2) => {
+  const uniqueProps = {};
+  Object.keys(obj1).forEach((key) => {
+    if (!(key in obj2) || obj2[key] == undefined) {
+      uniqueProps[key] = obj1[key];
+    }
+  });
+  return uniqueProps;
+};
+
+
 //删除
 const filterDialogRef = ref();
 const delSelect = (id) => {
@@ -216,7 +243,7 @@ const query = (item) => {
 //数据查询
 const tableData = ref([]);
 const queryList = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data } = await api.manageApi.salesmanDataManageDetailPageList({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,
@@ -242,7 +269,7 @@ function getList(item: PageInfo) {
 
 //导出
 const downloadFile = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data, msg } = await api.manageApi.salesmanDataManageDetailToTask({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,

+ 8 - 5
src/views/consoleManage/businessDataManage/telemarketingDataManage/index.vue

@@ -25,7 +25,7 @@
         <ComplexTable :tableData="tableData" :showSelect='false' :columns="listOption.columns" :showIndex="false"
           :columnwidth="120" :pageInfo="pageInfo" @getList="getList">
           <template v-slot:operation="scope">
-            <el-button type="primary" link @click='agreementEdit(scope.operationData.id)'>明细</el-button>
+            <el-button type="primary" link @click='agreementEdit(scope.operationData)'>明细</el-button>
           </template>
 
           <template v-slot:search="scope">
@@ -332,12 +332,15 @@ const downloadFile = async () => {
   userStore.count++;
 };
 
-const agreementEdit = (id) => {
+const agreementEdit = (item) => {
+  queryFormRes.value = queryFormRef.value?.querySelect();
+  let query = {
+    ...queryFormRes.value,
+    salesmanId: item.salesmanId,
+  };
   router.push({
     name: "telemarketingDataManageDetail",
-    query: {
-      id: id,
-    },
+    query,
   });
 };
 

+ 44 - 16
src/views/consoleManage/businessDataManage/telemarketingDataManage/telemarketingDataManageDetail.vue

@@ -27,7 +27,7 @@
 </template>
 
 <script setup lang="ts">
-import { useRouter } from "vue-router";
+import { useRouter, useRoute } from "vue-router";
 import api from "@/api";
 import QueryForm from "../../components/queryForm.vue";
 import FilterDialog from "../../components/filterDialog.vue";
@@ -38,6 +38,7 @@ import PageInfo from "@/api/types/agreementTypes";
 import { ElMessage } from "element-plus";
 
 const router = useRouter();
+const route = useRoute();
 const userStore = useUserStore();
 const isShow = ref(false);
 
@@ -139,20 +140,45 @@ const queryFormRes = ref();
 const routerKey = ref("telemarketingDataManageDetail");
 const defaultList = ref();
 const pageHiddenList = ref([]); //页面不显示的数据
+const isFilterFrom = ref(); //主页面查询条件且在过滤中不存在
 const initDefaultList = async () => {
   const { data } = await api.manageApi.getSearchDefaultList({
     routerKey: routerKey.value,
     userId: phone,
   });
-  listOption.queryFormFields = data.filter((e) => e.showFlag);
 
-  pageHiddenList.value = data.filter((e) => !e.showFlag);
-  defaultList.value = data.map((e) => e.id);
+  const queryParamsMap = route.query;
+  const processedData = data.map((item) => {
+    if (queryParamsMap.hasOwnProperty(item.key)) {
+      return { ...item, defaultValue: queryParamsMap[item.key] };
+    }
+    return item;
+  });
+
+  let filterFrom = {};
+  processedData.map((item) => {
+    filterFrom[item.key] = item.defaultValue;
+  });
+  isFilterFrom.value = getUniqueProperties(queryParamsMap, filterFrom);
+
+  listOption.queryFormFields = processedData.filter((e) => e.showFlag);
+  pageHiddenList.value = processedData.filter((e) => !e.showFlag);
+  defaultList.value = processedData.map((e) => e.id);
   selectedKeys.value = defaultList.value;
   queryFormRes.value = queryFormRef.value?.initDefaultSaveForm();
   queryList();
 };
 
+const getUniqueProperties = (obj1, obj2) => {
+  const uniqueProps = {};
+  Object.keys(obj1).forEach((key) => {
+    if (!(key in obj2) || obj2[key] == undefined) {
+      uniqueProps[key] = obj1[key];
+    }
+  });
+  return uniqueProps;
+};
+
 //删除
 const filterDialogRef = ref();
 const delSelect = (id) => {
@@ -216,7 +242,7 @@ const query = (item) => {
 //数据查询
 const tableData = ref([]);
 const queryList = async () => {
-  let query = { ...queryFormRes.value };
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
   const { data } = await api.manageApi.telemarketingDataManageDetailPageList({
     pageNo: pageInfo.value.pageNum,
     pageSize: pageInfo.value.pageSize,
@@ -242,17 +268,19 @@ function getList(item: PageInfo) {
 
 //导出
 const downloadFile = async () => {
-  let query = { ...queryFormRes.value };
-  const { data, msg } = await api.manageApi.telemarketingDataManageDetailToTask({
-    pageNo: pageInfo.value.pageNum,
-    pageSize: pageInfo.value.pageSize,
-    routerKey: routerKey.value,
-    userId: phone,
-    orderType: globalSortKey.value
-      ? globalSortKey.value + " " + globalSortOrder.value
-      : "",
-    ...query,
-  });
+  let query = { ...queryFormRes.value, ...isFilterFrom.value };
+  const { data, msg } = await api.manageApi.telemarketingDataManageDetailToTask(
+    {
+      pageNo: pageInfo.value.pageNum,
+      pageSize: pageInfo.value.pageSize,
+      routerKey: routerKey.value,
+      userId: phone,
+      orderType: globalSortKey.value
+        ? globalSortKey.value + " " + globalSortOrder.value
+        : "",
+      ...query,
+    }
+  );
   ElMessage({
     message: msg,
     type: "success",

+ 21 - 12
src/views/consoleManage/components/queryForm.vue

@@ -24,7 +24,7 @@
           v-if="option.inputType == 'select-single'" @mouseenter="option.isShowDelIcon = true"
           @mouseleave="option.isShowDelIcon = false">
           <el-select class='min-w ' v-model="queryForm.data[option.key]" placeholder=""
-            @change='singleChange($event,option)'>
+            @change='singleChange($event,option,false)'>
             <el-option v-for="item in option.listOption" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
@@ -134,7 +134,7 @@
         </el-form-item>
 
       </template>
-      <el-button type="primary" @click='query'>查询</el-button>
+      <el-button type="primary" @click='initQuery'>查询</el-button>
     </el-form>
 
   </div>
@@ -238,13 +238,18 @@ const initDefaultSaveForm = () => {
       return [formatTime(currentTimestamp, "YYYY")];
     },
     "select-multiple": (item, baseValue) => {
-      const value = item.listOption ? baseValue : "0";
-      return value === "0" ? ["0"] : value;
+      const base = item.listOption ? baseValue : "0";
+      const resultValue =
+        base == "0" ? ["0"] : Array.isArray(base) ? base : [base];
+      if (base != "0" && base != 0) {
+        moreChange(resultValue, item, item.listOption);
+      }
+      return resultValue;
     },
     "select-single": (item, baseValue) => {
-      const value = item.listOption ? baseValue : "";
+      const value = item.listOption || item.defaultValue ? baseValue : "";
       if (item.isFirst) {
-        singleChange(baseValue, item);
+        singleChange(baseValue, item, true);
       }
       return value;
     },
@@ -305,7 +310,7 @@ const getMultiLabels = (selectedValues, foodList, key) => {
 };
 
 //单选查联动数据
-const singleChange = async (val, option) => {
+const singleChange = async (val, option, isDefault) => {
   if (option.isFirst) {
     //查询合作的保险公司数据
     const { data } = await api.manageApi.getCompanyListByCompanyId({
@@ -319,17 +324,17 @@ const singleChange = async (val, option) => {
           label: "全部",
         });
         e.selectValue = "全部";
-        queryForm.data.partnerCompanyIds = ["0"];
+        queryForm.data.partnerCompanyIds =
+          option.defaultValue && isDefault ? option.defaultValue : "0";
       }
     });
   }
 };
 
 //查询
-const query = () => {
+const querySelect = () => {
   const from = { ...queryForm.data };
   const { queryFormFields } = propsOption;
-
   const typeHandlers = {
     "select-single": (item, value) => {
       // 特殊处理companyId,其他单选转换为数组格式
@@ -357,7 +362,6 @@ const query = () => {
       return Array.isArray(value) ? value : [value];
     },
   };
-
   queryFormFields.forEach((item) => {
     const { inputType, key } = item;
     const handler = typeHandlers[inputType];
@@ -365,13 +369,17 @@ const query = () => {
       from[key] = handler(item, from[key]);
     }
   });
+  return from;
+};
+
+const initQuery = () => {
+  const from = querySelect();
   emit("query", from);
 };
 //删除
 const del = (option) => {
   const { inputType, key, id } = option;
   const isInputOrCompanyId = inputType === "input" || key === "companyId";
-
   if (isInputOrCompanyId) {
     queryForm.data[key] = "";
   } else {
@@ -384,6 +392,7 @@ const del = (option) => {
 // 暴露给父组件的方法
 defineExpose({
   initDefaultSaveForm,
+  querySelect,
 });
 </script>
 

+ 8 - 2
src/views/consoleManage/taskDataManage/salesmanData/index.vue

@@ -13,7 +13,7 @@
     <ComplexTable :tableData="tableData" :showSelect='false' :columns="listOption.columns" :showIndex="false"
       :columnwidth="120" :pageInfo="pageInfo" @getList="getList">
       <template v-slot:operation="scope">
-        <el-button type="primary" link @click='agreementEdit(scope.operationData.id)'>明细</el-button>
+        <el-button type="primary" link @click='agreementEdit(scope.operationData)'>明细</el-button>
       </template>
 
       <template v-slot:search="scope">
@@ -340,7 +340,13 @@ const downloadFile = async () => {
   userStore.count++;
 };
 
-const agreementEdit = (id) => {
+const agreementEdit = (item) => {
+  queryFormRes.value = queryFormRef.value?.querySelect();
+  let query = {
+    ...queryFormRes.value,
+    companyId: item.companyId,
+    partnerCompanyIds: item.partnerCompanyId,
+  };
   router.push({
     name: "salesmanDataDetail",
     query: {