From a17f731ee4bcad459c184be5a7c3de6c3619443b Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 07 六月 2023 19:47:03 +0800
Subject: [PATCH] 代码整合

---
 Source/UBCS-WEB/src/views/code/code.vue |  318 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 190 insertions(+), 128 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index 9d36936..9016174 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -63,47 +63,54 @@
             @click="handleDelete">
             鍒� 闄�
           </el-button>
-          <el-button size="small"
+          <el-button type="primary"
+            size="small"
+            icon="el-icon-search"
+            plain
+            @click="openAdvancedQuery('codeRule')">
+            楂樼骇鏌ヨ
+          </el-button>
+          <el-button
+            size="small"
             icon="icon-kelong"
             plain
             @click="openCodeRuleDialog">
             鍏� 闅�
           </el-button>
-          <el-button size="small"
+          <el-button
+            size="small"
             icon="icon-lianjiekelong"
             style="font-size: 12px;"
             plain
             @click="openOtherCodeRuleDialog">
             浠庡叾浠栬鍒欎腑鍏嬮殕鐮佹
           </el-button>
-          <el-button size="small"
+          <el-button
+            size="small"
             icon="el-icon-s-help"
             plain
             @click="handleRange">
             浣跨敤鑼冨洿
           </el-button>
-          <el-button size="small"
+          <el-button 
+              size="small"
               icon="icon-qingkong"
               plain
               @click="clearAllCodeSec">
               娓呯┖鐮佸��
           </el-button>
-          <el-button size="small"
-            icon="el-icon-search"
-            plain
-            @click="openAdvancedQuery">
-            楂樼骇鏌ヨ
-        </el-button>
         </template>
       </avue-crud>
     </basic-container>
+
     <!-- 楂樼骇鏌ヨ瀵硅瘽妗� -->
     <advanced-query
-      ref="advancedQuery"
+      :ref="advancedQueryParam.ref"
       :options="advancedQueryParam.options"
       :visible.sync="advancedQueryParam.advancedQuerySettingBox"
-      v-model="value">
+      @echoContion="echoSeniorContionMap">
     </advanced-query>
+
     <!-- 缂栫爜瑙勫垯鐩稿叧瀵硅瘽妗� -->
     <el-dialog title="缂栫爜瑙勫垯浣跨敤鑼冨洿"
       append-to-body
@@ -117,6 +124,7 @@
         @refresh-change="refreshUseRangeChange">
       </avue-crud>
     </el-dialog>
+
     <!-- 缂栫爜瑙勫垯,鍏嬮殕瀵硅瘽妗� -->
     <el-dialog title="鍏嬮殕缂栫爜瑙勫垯"
       append-to-body
@@ -170,6 +178,7 @@
         <el-button @click="cloneSettingBox = false">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+
     <!-- 缂栫爜瑙勫垯,浠庡叾浠栬鍒欏厠闅嗗璇濇 -->
     <el-dialog title="鍏嬮殕缂栫爜瑙勫垯鐨勫熀纭�淇℃伅"
       append-to-body
@@ -286,6 +295,13 @@
             plain
             @click="deleteBasicCode(scope.row)">
             鍒� 闄�
+        </el-button>
+        <el-button type="primary"
+            size="small"
+            icon="el-icon-search"
+            plain
+            @click="openAdvancedQuery('codeBasicSec')">
+            楂樼骇鏌ヨ
         </el-button>
       </template>
 
@@ -786,7 +802,7 @@
     addSave,
     refDataGridClassifySec,
   } from "@/api/code/codebasic";
-  import { treeTopCodeClassify, listClassifyLinkAttr } from "@/api/code/codeclassify";
+  import { listClassifyLinkAttr } from "@/api/code/codeclassify";
   import { gridCodeFixedValue,addSaveCodeFixedValue,deleteCodeFixedValue,editCodeFixedValue,saveOrder } from "@/api/code/codeFixedValue";
   import { treeCodeClassifyValue,addSaveCodeClassifyValue,editCodeClassifyValue,deleteCodeClassifyValue,saveCodeClassifyValueOrder } from "@/api/code/codeClassifyValue";
   import { getDictionary } from "@/api/omd/enum";
@@ -799,18 +815,14 @@
   import treeOption from "@/const/code/classifyTreeOptionDialog";
   import classisyValueTreeOption from "@/const/code/classisyValueTreeDialog";
   import parentClassifyParentOption from "@/const/code/parentClassifyParentOptionDialog";
-  import referBtmOption from "@/const/code/referBtmDialog";
   import fixedValueOption from "@/const/code/fixedValueMgrDialog";
   import {mapGetters} from "vuex";
   import func from "@/util/func";
   import {MasterTable} from "@/api/GetItem";
-import referBtmTypeCrudDialog from '../../components/code-dialog-page/referBtmTypeCrudDialog.vue';
 
   export default {
-  components: { referBtmTypeCrudDialog },
       data() {
         return {
-          value:"1",
           ruleForm: {},
           query: {},
           loading: true,
@@ -1054,67 +1066,12 @@
 
           // 楂樼骇鏌ヨ瀵硅瘽妗嗙浉鍏冲弬鏁�
           advancedQueryParam: {
+            ref: 'advancedQuery',
             advancedQuerySettingBox: false,
-            searchForm: {
-              name: 'advanced',
-            },
-            options: {
-              labelWidth: '110px',
-              // 鏌ヨ瀛楁
-              searchfeildName: [
-                    {
-                      label: '缂栧彿',
-                      value: 'id',
-                    },
-                    {
-                      label: '鍚嶇О',
-                      value: 'name',
-                    },
-                    {
-                      label: '鐘舵��',
-                      value: 'status',
-                    },
-              ], 
-              // 鏌ヨ鏉′欢 绛変簬銆佸寘鍚�佷笉绛変簬銆佷粙浜庘�︹��
-              searchCondition: [
-                {
-                  label: '绛変簬',
-                  value: '=',
-                },
-                {
-                  label: '鍖呭惈',
-                  value: 'like',
-                },
-                {
-                  label: '澶т簬绛変簬',
-                  value: '>=',
-                },
-                {
-                  label: '灏忎簬绛変簬',
-                  value: '<=',
-                },
-                {
-                  label: '涓嶇瓑浜�',
-                  value: '!=',
-                },
-                {
-                  label: '浠嬩簬',
-                  value: 'between',
-                },
-              ], 
-              column: [
-                {
-                  type: 'text',
-                  
-                  
-                },
-                {
-                  
-                },
-              ],
-            },
+            options: [],
+            currentOpen: '', //褰撳墠鎵撳紑楂樼骇鏌ヨ鐨勭獥鍙f槸
+            //conditionMapParams: {},
           },
-          
 
         };
       },
@@ -1129,15 +1086,24 @@
           };
         },
       },
-      created() {
-          MasterTable({
-            codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
-            functionId: 5,
-          }).then(res=>{
-            console.log(res.data.tableDefineVO.seniorQueryColumns);
-          }) 
+      watch:{
+
       },
       methods: {
+
+        /** 楂樼骇鏌ヨ瀵硅瘽妗嗙粍浠�,缁勪欢杩斿洖鐨勫�兼槸condtionMap[field]褰㈠紡鐨勬煡璇㈡潯浠讹紝淇濈暀浜嗗拰涔嬪墠涓�鏍风殑鏂瑰紡 */
+        echoSeniorContionMap(conditionMaps){
+          //console.log(conditionMaps);
+          if(JSON.stringify(conditionMaps)!='{}'){
+            if(this.advancedQueryParam.currentOpen =='codeRule'){
+              this.query = conditionMaps;
+              this.onLoad(this.page);
+            }else{
+              this.sendGridCodeBasicSec(conditionMaps,true);
+            }
+            //console.log(conditionMaps);
+          }
+        },
 
         /* 鍏紡缂栬緫妗嗗唴瀹规敼鍙�,瀛愮粍浠剁紪杈戝畬鍏紡涔嬪悗鍐呭鍥炴樉鏃惰皟鐢� */
         updateFormulaContent(content){
@@ -1207,12 +1173,17 @@
         refreshParentClassifyDataChange() {
           this.parentClassifyOnLoad(this.parentClsfyParams.parentClassifyDataPage, this.parentClsfyParams.parentClassifyQuery);
         },
+        // TODO:寰呬慨鏀�
         parentClassifyOnLoad(page, params = {}) {
           let parentClsParam = this.parentClsfyParams;
           parentClsParam.classifyDialogLoading = true;
           let oid = this.selectionList.length==0 ? this.form.pkCodeRule:this.selectionList[0].oid;
-          Object.assign(params,{pkCodeRule:oid})
-          refDataGridClassifySec(page.currentPage, page.pageSize, Object.assign(params, parentClsParam.parentClassifyQuery)).then(res => {
+          let conditionMaps = this.paramsToConditionMa({"pkCodeRule":oid});
+          refDataGridClassifySec(
+            page.currentPage, 
+            page.pageSize, 
+            conditionMaps
+          ).then(res => {
             //console.log(res.data);
             const data = res.data.data;
             parentClsParam.parentClassifyDataPage.total = data.total;
@@ -1234,16 +1205,15 @@
           let attrParam = this.selectAttrParams;
           //console.log(this.currentSelectTreeData);
           attrParam.selectAttrOptionLoading = true;
-          let param = {};
-          // 澶氫釜conditionMap杩欐牱浼犲弬
+          let conditionMaps = {};
           if(attrParam.selectAttrQeury){
-              Object.keys(attrParam.selectAttrQeury).forEach(key=>{
-                  param['conditionMap['+key+']'] = attrParam.selectAttrQeury[key];
-              });
+            Object.keys(attrParam.selectAttrQeury).forEach(key=>{
+              conditionMaps['conditionMap['+key+']'] = attrParam.selectAttrQeury[key];
+            });
           }
-          param['conditionMap[codeClassifyOid]'] = this.currentSelectTreeData.oid;
-          param['conditionMap[btmTypeOid]'] = this.currentSelectTreeData.btmTypeOid;
-          listClassifyLinkAttr(param).then(res=>{
+          conditionMaps['conditionMap[codeClassifyOid]'] = this.currentSelectTreeData.oid;
+          conditionMaps['conditionMap[btmTypeOid]'] = this.currentSelectTreeData.btmTypeOid;
+          listClassifyLinkAttr(conditionMaps).then(res=>{
             //console.log(res.data.data);
             attrParam.selectAttrData = res.data.data;
             attrParam.selectAttrOptionLoading = false;
@@ -1929,15 +1899,25 @@
           //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭�
           this.currentCodeRuleOid = row.oid;
           this.currentRuleLcStatus = row.lcStatus;
-          this.sendGridCodeBasicSec({"pkCodeRule":row.oid});
+          this.sendGridCodeBasicSec({"pkCodeRule_equal":row.oid},false);
         },
         // 鍙戦�佸姞杞藉熀纭�鐮佹鐨勮姹�
-        sendGridCodeBasicSec(condition){
+        sendGridCodeBasicSec(condition,isAdancedQuery/** 鏄惁楂樼骇鏌ヨ */){
           // 濡傛灉褰撳墠鍩虹鐮佹琛ㄤ腑鐨勬悳绱㈡寜閽闅愯棌锛屽氨闇�瑕佸湪姝ゅ紑鍚�
           if(this.selectionList.length>=0 && !this.$refs.crudBasic.option.column[0].search){
             this.hideBasicTable(true);
           }
-          gridCodeBasicSec(1, -1, condition).then(res => {
+          let conditionMaps = {};
+          if(condition && !isAdancedQuery){
+            Object.keys(condition).forEach(key=>{
+              conditionMaps['conditionMap[t.'+key+']'] = condition[key];
+            });
+          }
+          if(isAdancedQuery){
+            condition['conditionMap[t.pkCodeRule_equal]'] = this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' 
+            ? this.selectionList[0].oid:this.currentCodeRuleOid;
+          }
+          gridCodeBasicSec(1, -1,isAdancedQuery ? condition:conditionMaps).then(res => {
             const data = res.data.data;
             if(this.cloneSettingBox){
               this.cloneData = data.records;
@@ -1965,11 +1945,11 @@
         },
         basicSearchChange(params, done){
           //console.log(this.$refs.crudBasic);
-          this.sendGridCodeBasicSec(Object.assign(params,{"pkCodeRule":this.selectionList[this.selectionList.length-1].oid}));
+          this.sendGridCodeBasicSec(Object.assign(params,{"pkCodeRule_equal":this.selectionList[this.selectionList.length-1].oid}),false);
           done();
         },
         basicSearchReset(){
-          this.sendGridCodeBasicSec({"pkCodeRule":this.selectionList[this.selectionList.length-1].oid});
+          this.sendGridCodeBasicSec({"pkCodeRule_equal":this.selectionList[this.selectionList.length-1].oid},false);
         },
         // 涓婄Щ涓嬬Щ鍩虹鐮佹
         upOrderNum(row){
@@ -2032,10 +2012,79 @@
 
         /** 缂栫爜瑙勫垯鐩稿叧鏂规硶 */
         // 鎵撳紑楂樼骇鏌ヨ绐楀彛
-        openAdvancedQuery(){
-          //this.$refs.advancedQuery.visible = true;
-          //this.advancedQueryParam.timer = new Date().getTime()
-          this.advancedQueryParam.advancedQuerySettingBox = !this.advancedQueryParam.advancedQuerySettingBox;
+        openAdvancedQuery(condition){
+          // MasterTable({
+          //   codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
+          //   functionId: 5,
+          // }).then(res=>{
+          //   console.log(res.data.tableDefineVO.seniorQueryColumns);
+          // }) 
+          if(condition=='codeRule'){
+            this.advancedQueryParam.options = [
+              {
+                data: [],
+                title: '缂栧彿',
+                fieldType: 'text',
+                queryField: 'id',
+              },{
+                data: [],
+                title: '鍚嶇О',
+                fieldType: 'text',
+                queryField: 'name',
+              },{
+                data: [],
+                title: '鎻忚堪',
+                fieldType: 'text',
+                queryField: 'description',
+              },{
+                data: [
+                  // {
+                  //   key: '缂栬緫涓�',
+                  //   value: 'Editing',
+                  // },
+                  // {
+                  //   key: '宸插彂甯�',
+                  //   value: 'Released',
+                  // },
+                  // {
+                  //   key: '鍋滅敤',
+                  //   value: 'Disabled',
+                  // },
+                ],
+                title: '鐘舵��',
+                fieldType: 'combox',
+                queryField: 'lcStatus',
+                comboxKey: 'codeSearchLCStatus',
+              }
+            ]
+          }else {
+            this.advancedQueryParam.options = [
+              {
+                data: [],
+                title: '鐮佹缂栧彿',
+                fieldType: 'text',
+                queryField: 't.id',
+              },{
+                data: [],
+                title: '鐮佹鍚嶇О',
+                fieldType: 'text',
+                queryField: 't.name',
+              },{
+                data: [],
+                title: '鎻忚堪',
+                fieldType: 'text',
+                queryField: 't.description',
+              },{
+                data: [],
+                title: '鐮佹绫诲瀷',
+                fieldType: 'combox',
+                queryField: 't.secType',
+                comboxKey: 'codeSecType',
+              }
+            ]
+          }
+          this.advancedQueryParam.currentOpen = condition;
+          this.advancedQueryParam.advancedQuerySettingBox = true;
         },
         // 鏌ヨ浣跨敤鑼冨洿
         handleRange(){
@@ -2304,16 +2353,21 @@
           this.onLoad(this.page);
         },
         searchChange(params, done) {
-          this.query = params;
           this.page.currentPage = 1;
-          this.onLoad(this.page, params);
+          // 澶氫釜conditionMap杩欐牱浼犲弬锛屽揩閫熸煡璇㈤粯璁ら噰鐢ㄦā绯婃煡璇�
+          if(params){
+            Object.keys(params).forEach(key=>{
+              this.query['conditionMap['+key+'_like]'] = params[key];
+            });
+          }
+          this.onLoad(this.page);
           done();
         }, 
         // 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�
         selectionChange(list) {
           this.selectionList = list;
           this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]);
-          //褰撳墠閫変腑琛屼负绌虹殑鏃跺�欏氨灏嗙爜娈电鐞嗚〃鏍兼暟鎹疆绌�
+          //褰撳墠閫変腑琛屼负绌虹殑鏃跺�欏氨灏嗙爜娈电鐞嗚〃鏍兼暟鎹疆绌�,骞剁鐢ㄧ浉鍏冲姛鑳�
           if(list == ''){
             this.basicData = [];
             this.hideBasicTable(false);
@@ -2337,14 +2391,25 @@
         refreshChange() {
           this.onLoad(this.page, this.query);
         },
-        onLoad(page, params = {}) {
+        onLoad(page,params={}) {
           this.loading = true;
-          gridCodeRule(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          gridCodeRule(
+            page.currentPage, 
+            page.pageSize, 
+            this.query
+          ).then(res => {
             //console.log(res.data);
             const data = res.data.data;
             this.page.total = data.total;
             this.data = data.records;
             this.loading = false;
+            // 鏌ヨ鐨勫�间负绌烘椂锛岃灏嗙爜娈电鐞嗙浉鍏崇殑鍐呭绂佺敤
+            if(data.records.length <= 0) {
+              this.hideBasicTable(false);
+              this.selectionList = [];
+              this.basicData = [];
+              return;
+            }
             this.loadBasic(this.data[0])
             this.$nextTick(() => {
               this.$refs.crud.toggleRowSelection(this.data[0]);
@@ -2556,42 +2621,39 @@
           }
           // console.log(this.form);
         },
+        // 绗竴娆¤姹傜殑鏋氫妇鏁版嵁鏀剧紦瀛�
+        getLocalStorageEnum(key){
+          let enumCach = JSON.parse(localStorage.getItem(key));
+          if(enumCach == null) {
+            getDictionary({code: key}).then(res=>{
+              enumCach = res.data.data;
+              localStorage.setItem(key,JSON.stringify(res.data.data));
+            })
+          }
+          return enumCach;
+        },
         //鏋氫妇鍜屽彲杈撳彲閫夊唴瀹规煡璇�
         loadCodeSecType(){
-          getDictionary({code: "codeSecType"}).then(res=>{
-            this.enumParam.secTypeList = res.data.data;
-          })
+          this.enumParam.secTypeList = this.getLocalStorageEnum("codeSecType");
           this.loadCodeSecLength();
         },
         loadCodeSecLength(){
-          getDictionary({code: "codeSecLength"}).then(res=>{
-            this.enumParam.codeSecLengthType = res.data.data;
-          })
+          this.enumParam.codeSecLengthType = this.getLocalStorageEnum("codeSecLength");
         },
         loadCodeFillType(){
-          getDictionary({code: "codeFillType"}).then(res=>{
-            this.enumParam.codeFillType = res.data.data;
-          })
+          this.enumParam.codeFillType = this.getLocalStorageEnum("codeFillType");
         },
         loadCodeFillSeparator(){
-          getDictionary({code: "codeFillSeparator"}).then(res=>{
-            this.enumParam.codeFillSeparator = res.data.data;
-          })
+          this.enumParam.codeFillSeparator = this.getLocalStorageEnum("codeFillSeparator");
         },
         loadCodeLevelType(){
-          getDictionary({code: "codeLevelType"}).then(res=>{
-            this.enumParam.codeLevelType = res.data.data;
-          })
+          this.enumParam.codeLevelType = this.getLocalStorageEnum("codeLevelType");
         },
         loadCodeCutType(){
-          getDictionary({code: "codeCutType"}).then(res=>{
-            this.enumParam.codeCutType = res.data.data;
-          })
+          this.enumParam.codeCutType = this.getLocalStorageEnum("codeCutType");
         },
         loadCodeGetValueType(){
-          getDictionary({code: "codeGetValueType"}).then(res=>{
-            this.enumParam.codeGetValueType = res.data.data;
-          })
+          this.enumParam.codeGetValueType =  this.getLocalStorageEnum("codeGetValueType");
         },
         
       }

--
Gitblit v1.9.3