Browse Source

提交相关代码

Lijy 3 months ago
parent
commit
61556b3adf

+ 1 - 0
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/biReport/cusReportForm/index.vue

@@ -52,6 +52,7 @@ function previewReport(row: any) {
       rangeFilterData: json.rangeFilterData,
       tableData: json.tableData
     }))
+    sessionStorage.setItem('reportJson', JSON.stringify(json.addEditData))
     router.push('/biReport/reportView')
   })
 }

+ 19 - 9
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/biReport/dragEdit/index.vue

@@ -3,7 +3,7 @@ import { ref, onMounted, reactive, watch, inject } from "vue";
 import { useRouter, useRoute } from 'vue-router'
 import { post, get } from "@/utils/request";
 import { GET_STRUCT_BY_TABLE_NAME, ADD_OR_UPDATE_REPORT_FORM } from "../api"
-import { generateSql, rangeGetSql } from "../function"
+import { generateSql, rangeGetSql, translatingArray } from "../function"
 import { ElMessage, ElMessageBox } from 'element-plus'
 
 import { VueDraggable } from 'vue-draggable-plus'
@@ -90,21 +90,22 @@ function saveReport() {
   
   const { finalSql } = preMethod()
 
-  // 需要转存的 JSON
-  const formJson = {
-    addEditData,
-    tableData: tableData.value,
-    rangeFilterData: rangeFilterData,
-  }
-
   const formFieldHead = tableData.value.map((item: any) => {
     return {
       tableName: item.tableName,
       columnName: item.columnName,
-      columnVal: item.columnComment
+      columnVal: item.columnComment,
+      tableAlias: item.seqPrefix
     }
   })
 
+  // 需要转存的 JSON
+  const formJson = {
+    addEditData,
+    tableData: tableData.value,
+    rangeFilterData: rangeFilterData,
+  }
+
   const { reportFormName, description, userAccessList = [], visibleRangeData = [], parentStoreId, privilege, id } = addEditData.addFormVal
 
   const formVal: any = {
@@ -117,6 +118,7 @@ function saveReport() {
     departmentIds: visibleRangeData.filter((item: any) => !item.isUser).map((item: any) => item.id).join(','),
     formJson: JSON.stringify(formJson),
     formFieldHead: JSON.stringify(formFieldHead),
+    formTransConditionJson: translatingArray(rangeFilterData).length ? JSON.stringify(translatingArray(rangeFilterData)) : '',
   }
 
   if(id) {
@@ -228,6 +230,10 @@ function listOnClone(clonedItem: any) {
 async function getCollapseListData() {
   const { mindMapJSON = {} } = addEditData
   const selectNodes = mindMapJSON?.selectNodes
+  const alphabet = 'abcdefghijklmnopqrstuvwxyz';
+  selectNodes.forEach((obj: any, index: number) => {
+    obj.data.seqPrefix = alphabet[index % 26]; // 通过取余处理
+  });
   allLoading.collapseListLoading = true
   for (let i in selectNodes) {
     console.log(selectNodes, '<===== selectNodes')
@@ -238,6 +244,10 @@ async function getCollapseListData() {
       item.dictCode = dictCode
     });
 
+    res.data.columnList.forEach((obj: any) => {
+      obj.seqPrefix = selectNodes[i].data.seqPrefix
+    });
+
     selectNodes[i].list = res.data
   }
   collapseList.value = selectNodes

+ 19 - 3
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/biReport/dragEdit/previewTable.vue

@@ -5,7 +5,7 @@ import { GET_RES_BY_FORM_JSON } from '../api';
 import type { TableColumnCtx, SummaryMethod  } from 'element-plus'
 
 import rangeFilter from "./rangeFilter.vue";
-import { rangeGetSql } from '../function';
+import { rangeGetSql, translatingArray } from '../function';
 import { formatDate } from '@/utils/times';
 import { dropdownBoxFieldIntegration } from "../list"
 
@@ -109,8 +109,21 @@ function setDataRange() {
 }
 
 function getData() {
+  const formTransConditionJsonList = translatingArray(dataRangeData.value)
+  const formFieldHead = tableHeader.value.map((item: any) => {
+    return {
+      tableName: item.tableName,
+      columnName: item.columnName,
+      columnVal: item.columnVal,
+      tableAlias: item.seqPrefix
+    }
+  })
   tableLoading.value = true
-  post(GET_RES_BY_FORM_JSON, { formJson: SQLstr.value }).then(res => {
+  post(GET_RES_BY_FORM_JSON, { 
+    formJson: SQLstr.value,
+    formTransConditionJson: formTransConditionJsonList.length ? JSON.stringify(formTransConditionJsonList) : '',
+    formFieldHead: JSON.stringify(formFieldHead)
+  }).then(res => {
     tableData.value = res.data
     setTimeout(() => {
       tableKey.value++
@@ -127,6 +140,10 @@ async function initializedData(SQL: string, rangeFilterList: any[], tableData: a
     filed: `${item.tableName}_${item.columnName}`,
     label: item.columnComment,
     type: item.dataType,
+    seqPrefix: item.seqPrefix,
+    tableName: item.tableName,
+    columnName: item.columnName,
+    columnVal: item.columnComment
   }))
   
   driginalDataTableList.value = tableData
@@ -134,7 +151,6 @@ async function initializedData(SQL: string, rangeFilterList: any[], tableData: a
   dataRangeData.value = rangeFilterList
   SQLstr.value = SQL
 
-  console.log(tableHeader.value, '<==== tableHeader.value')
   getData()
 }
 

+ 23 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/biReport/function.ts

@@ -87,7 +87,29 @@ export function rangeGetSql(rangeFilterList: any[] = [], addEditData: addEditDat
     }
   })
 
-  return `where ${newList.map((item: any) => item.strSQL).join(' and ')}`
+  return newList.length ? `where ${newList.map((item: any) => item.strSQL).join(' and ')}` : ''
+}
+
+/**
+ * 根据数据范围生成需要转译的(人名,部门)的数组
+ * @param addEditData 新建表单页面数据
+ * @param rangeFilterList 数据范围
+ * @returns Array
+ */
+export function translatingArray(rangeFilterList: any[] = []) {
+  // 只需要过滤出需要转译的(人名,部门)的数组
+  const newRangeFilterList = rangeFilterList.filter(item => item.transType > 0 && item.filterValueThree)
+  // const newRangeFilterList = rangeFilterList
+  const list = newRangeFilterList.map((item: any) => {
+    return {
+      tblName: item.tableName,
+      tblAlias: item.seqPrefix,
+      colName: item.columnName,
+      useVal: item.filterValueThree,
+      transType: item.transType
+    }
+  })
+  return list
 }
 
 /**