From ec2c06dabe9edaee7d28988d69a7bfd56eca3abd Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 20 九月 2024 15:39:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue |  581 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 485 insertions(+), 96 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue
index 0805b0c..6350b43 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue
@@ -9,35 +9,35 @@
     width="60%"
     @close="closeDialog"
   >
-    <el-form :model="form" :rules="rules" label-position="right" label-width="100px">
+    <el-form v-loading="formLoading" :model="form" :rules="rules" label-position="right" label-width="100px">
       <el-row>
         <el-col :span="12">
           <el-form-item label="鍚嶇О">
-            <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+            <el-input v-model="form.viName" placeholder="璇疯緭鍏ュ悕绉�" size="mini"></el-input>
           </el-form-item>
         </el-col>
 
-
         <el-col :span="12">
           <el-form-item label="姣忛〉琛屾暟">
-            <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+            <el-input v-model="form.itemPageSize" placeholder="璇疯緭鍏ユ瘡椤佃鏁�" size="mini" type="number"></el-input>
           </el-form-item>
         </el-col>
 
         <el-col :span="24">
           <el-form-item label="闄勫姞鏌ヨ鏉′欢">
-            <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+            <el-input v-model="form.itemAddFilter" placeholder="璇疯緭鍏ユ煡璇㈡潯浠�" size="mini"></el-input>
           </el-form-item>
         </el-col>
 
         <el-col :span="12">
           <el-form-item label="缁戝畾琛ㄥ崟">
             <div style="display: flex;align-items: center;">
-              <el-select v-model="form.region" placeholder="璇烽�夋嫨娲诲姩鍖哄煙" size="mini">
-                <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-                <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+              <el-select v-model="form.itemInObj" clearable placeholder="璇烽�夋嫨缁戝畾琛ㄥ崟" size="mini">
+                <el-option v-for="(item,index) in selectList" :key="index" :label="item.viName"
+                           :value="item.id"></el-option>
               </el-select>
-              <el-button plain size="mini" style="margin-left: 3px" type="success">閫夋嫨</el-button>
+              <el-button plain size="mini" style="margin-left: 3px" type="success" @click="formSelectClickHandler">閫夋嫨
+              </el-button>
             </div>
           </el-form-item>
         </el-col>
@@ -45,9 +45,11 @@
         <el-col :span="12">
           <el-form-item label="鐖跺悕绉�">
             <div style="display: flex;align-items: center;">
-              <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
-              <el-checkbox v-model="checked" style="margin-left: 5px; margin-right: 5px">鏄剧ず鏌ヨ鍖哄煙</el-checkbox>
-              <el-checkbox v-model="checked" style="margin-left: 5px;margin-right: 0px">鏄剧ず鏂囦欢澶�</el-checkbox>
+              <el-input v-model="form.itemParentFolderName" placeholder="璇疯緭鍏ョ埗鍚嶇О" size="mini"></el-input>
+              <el-checkbox v-model="form.itemIsNavigatorExpand" style="margin-left: 5px; margin-right: 5px">鏄剧ず鏌ヨ鍖哄煙
+              </el-checkbox>
+              <el-checkbox v-model="form.itemIsShowFolder" style="margin-left: 5px;margin-right: 0px">鏄剧ず鏂囦欢澶�
+              </el-checkbox>
             </div>
           </el-form-item>
         </el-col>
@@ -57,8 +59,10 @@
             <div style="display: flex; align-items: center">
               <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto">
                 <el-table
-                  :data="showLifeTable"
-                  style="width: 100%">
+                  :data="form.itemSelectOutFieldList"
+                  :highlight-current-row="true"
+                  style="width: 100%"
+                  @row-click="showLabelLeftRowClick">
                   <el-table-column
                     align="center"
                     label="鍙娇鐢ㄥ瓧娈�"
@@ -67,13 +71,16 @@
                 </el-table>
               </div>
               <div style="margin-left: 10px; margin-right: 10px">
-                <el-button circle icon="el-icon-back" style="margin-right: 10px"></el-button>
-                <el-button circle icon="el-icon-right"></el-button>
+                <el-button circle icon="el-icon-back" style="margin-right: 10px"
+                           @click="showLeftTransferClick"></el-button>
+                <el-button circle icon="el-icon-right" @click="showRightTransferClick"></el-button>
               </div>
               <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto">
                 <el-table
-                  :data="showRightTable"
-                  style="width: 100%">
+                  :data="form.itemOutFieldList"
+                  :highlight-current-row="true"
+                  style="width: 100%"
+                  @row-click="showLabelRightRowClick">
                   <el-table-column
                     align="center"
                     label="闇�瑕佷娇鐢ㄥ瓧娈�"
@@ -90,8 +97,10 @@
             <div style="display: flex; align-items: center">
               <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto">
                 <el-table
-                  :data="searchLifeTable"
-                  style="width: 100%">
+                  :data="form.itemSearchFieldList"
+                  :highlight-current-row="true"
+                  style="width: 100%"
+                  @row-click="searchLeftRowClick">
                   <el-table-column
                     align="center"
                     label="鍙緵鎼滅储瀛楁"
@@ -100,13 +109,16 @@
                 </el-table>
               </div>
               <div style="margin-left: 10px; margin-right: 10px">
-                <el-button circle icon="el-icon-back" style="margin-right: 10px"></el-button>
-                <el-button circle icon="el-icon-right"></el-button>
+                <el-button circle icon="el-icon-back" style="margin-right: 10px"
+                           @click="searchLeftTransferClick"></el-button>
+                <el-button circle icon="el-icon-right" @click="searchRightTransferClick"></el-button>
               </div>
               <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto">
                 <el-table
-                  :data="searchRightTable"
-                  style="width: 100%">
+                  :data="form.itemKeyFieldList"
+                  :highlight-current-row="true"
+                  style="width: 100%"
+                  @row-click="searchRightRowClick">
                   <el-table-column
                     align="center"
                     label="闇�鎼滅储瀛楁"
@@ -120,9 +132,9 @@
 
         <el-col :span="12">
           <el-form-item label="鍒�">
-            <el-select v-model="form.region" placeholder="璇烽�夋嫨鍒�" size="mini">
-              <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-              <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+            <el-select v-model="form.itemFileWidthSelect" placeholder="璇烽�夋嫨鍒�" size="mini" @change="itemFileWidthChange">
+              <el-option v-for="(item,index) in form.itemFieldWidthList" :key="index" :label="item.key"
+                         :value="item.key"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
@@ -130,8 +142,10 @@
         <el-col :span="12">
           <el-form-item label="瀹藉害">
             <div style="display: flex;align-items: center;">
-              <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini" style="width: 193px"></el-input>
-              <el-button plain size="mini" style="margin-left: 3px" type="success">璁剧疆</el-button>
+              <el-input v-model="form.itemWidth" placeholder="璇疯緭鍏ュ搴�" size="mini" style="width: 193px"
+                        type="number"></el-input>
+              <el-button plain size="mini" style="margin-left: 3px" type="success" @click="widthSetUpClickHandler">璁剧疆
+              </el-button>
             </div>
           </el-form-item>
         </el-col>
@@ -141,25 +155,26 @@
         <el-form-item label="璁剧疆鍒楀">
           <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto">
             <el-table
-              :data="columnWidthData"
+              :data="form.itemFieldWidthList"
               :highlight-current-row="true"
               border
               stripe
-              style="width: 100%">
+              style="width: 100%"
+              @row-click="itemFileWidthRowClick">
               <el-table-column
                 align="center"
                 label="鍒楀悕"
-                prop="id">
+                prop="key">
                 <template slot-scope="scope">
-                  <el-tag size="medium">{{ scope.row.id }}</el-tag>
+                  <el-tag size="medium">{{ scope.row.key }}</el-tag>
                 </template>
               </el-table-column>
               <el-table-column
                 align="center"
                 label="鍒楀"
-                prop="width">
+                prop="value">
                 <template slot-scope="scope">
-                  <el-tag size="medium">{{ scope.row.width }}</el-tag>
+                  <el-tag size="medium">{{ scope.row.value }}</el-tag>
                 </template>
               </el-table-column>
             </el-table>
@@ -169,22 +184,24 @@
 
       <el-col :span="8">
         <el-form-item label="鏌ヨ瀛楁">
-          <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+          <el-input v-model="form.searchLabel" placeholder="璇疯緭鍏ユ煡璇㈠瓧娈�" size="mini"></el-input>
         </el-form-item>
       </el-col>
 
       <el-col :span="8">
         <el-form-item label="鏌ヨ娆℃暟">
-          <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+          <el-input v-model="form.searchNumber" placeholder="璇疯緭鍏ユ煡璇㈡鏁�" size="mini"></el-input>
         </el-form-item>
       </el-col>
 
       <el-col :span="8">
         <el-form-item label="鏌ヨsql">
           <div style="display: flex;align-items: center">
-            <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
-            <el-button plain size="mini" style="margin-left: 3px" type="success">娣诲姞</el-button>
-            <el-button plain size="mini" style="margin-left: 3px" type="danger">鍒犻櫎</el-button>
+            <el-input v-model="form.searchSql" placeholder="璇疯緭鍏ql" size="mini"></el-input>
+            <el-button plain size="mini" style="margin-left: 3px" type="success" @click="searchAddClickHandler">娣诲姞
+            </el-button>
+            <el-button plain size="mini" style="margin-left: 3px" type="danger" @click="searchDelClickHandler">鍒犻櫎
+            </el-button>
           </div>
         </el-form-item>
       </el-col>
@@ -193,33 +210,34 @@
         <el-form-item label="鏌ヨ瀛楁">
           <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto">
             <el-table
-              :data="columnSearchData"
+              :data="form.itemSeniorQueryBOS"
               :highlight-current-row="true"
               border
               stripe
-              style="width: 100%">
+              style="width: 100%"
+              @row-click="itemSeniorRowClick">
               <el-table-column
                 align="center"
                 label="鏌ヨ瀛楁"
-                prop="id">
+                prop="itemSeniorQueryCols">
                 <template slot-scope="scope">
-                  <el-tag size="medium">{{ scope.row.id }}</el-tag>
+                  <el-tag size="medium">{{ scope.row.itemSeniorQueryCols }}</el-tag>
                 </template>
               </el-table-column>
               <el-table-column
                 align="center"
                 label="鏌ヨ娆℃暟"
-                prop="name">
+                prop="itemSeniorQueryColsCounts">
                 <template slot-scope="scope">
-                  <el-tag size="medium">{{ scope.row.name }}</el-tag>
+                  <el-tag size="medium">{{ scope.row.itemSeniorQueryColsCounts }}</el-tag>
                 </template>
               </el-table-column>
               <el-table-column
                 align="center"
                 label="鏌ヨsql"
-                prop="sql">
+                prop="itemQuerySql">
                 <template slot-scope="scope">
-                  <el-tag size="medium">{{ scope.row.sql }}</el-tag>
+                  <el-tag size="medium">{{ scope.row.itemQuerySql }}</el-tag>
                 </template>
               </el-table-column>
             </el-table>
@@ -229,9 +247,9 @@
 
       <el-col :span="24">
         <el-form-item label="鍙屽嚮鎿嶄綔">
-          <el-select v-model="form.region" placeholder="璇烽�夋嫨鍙屽嚮鎿嶄綔" size="mini">
-            <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
-            <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+          <el-select v-model="form.itemDbl" placeholder="璇烽�夋嫨鍙屽嚮鎿嶄綔" size="mini">
+            <el-option v-for="(item,index) in itemDblList" :key="index" :label="item.value"
+                       :value="item.key"></el-option>
           </el-select>
         </el-form-item>
       </el-col>
@@ -241,11 +259,11 @@
           <div style="display: flex;align-items: center">
             <div style="display: flex;align-items: center;width: 100%;">
               <span>闀匡細</span>
-              <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+              <el-input v-model="itemImgHeight" placeholder="璇疯緭鍏ラ暱搴�" size="mini"></el-input>
             </div>
             <div style="display: flex;align-items: center;width: 100%;margin-left: 30px">
               <span>瀹斤細</span>
-              <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+              <el-input v-model="itemImgWidth" placeholder="璇疯緭鍏ュ搴�" size="mini"></el-input>
             </div>
           </div>
         </el-form-item>
@@ -253,19 +271,19 @@
 
       <el-col :span="12">
         <el-form-item label="瀛楃涓叉埅鍙�">
-          <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+          <el-input v-model="form.itemCut" placeholder="璇疯緭鍏ュ瓧绗︿覆" size="mini"></el-input>
         </el-form-item>
       </el-col>
 
       <el-col :span="8">
         <el-form-item label="瓒呴摼鎺�">
-          <el-input v-model="user" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+          <el-input v-model="form.itemHrefConf" placeholder="璇疯緭鍏ヨ秴閾炬帴" size="mini"></el-input>
         </el-form-item>
       </el-col>
 
       <el-col :span="24">
         <el-form-item label="鏌ヨ妯℃澘">
-          <el-select v-model="form.region" placeholder="璇烽�夋嫨鏌ヨ妯℃澘" size="mini">
+          <el-select v-model="form.itemQtName" placeholder="璇烽�夋嫨鏌ヨ妯℃澘" size="mini">
             <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
             <el-option label="鍖哄煙浜�" value="beijing"></el-option>
           </el-select>
@@ -274,62 +292,432 @@
     </el-form>
 
     <span slot="footer" class="dialog-footer">
-         <el-button>鍙� 娑�</el-button>
-         <el-button type="primary">纭� 瀹�</el-button>
+         <el-button @click="closeDialog">鍙� 娑�</el-button>
+         <el-button type="primary" @click="dialogSaveClickHandler">纭� 瀹�</el-button>
     </span>
+
+    <el-dialog
+      v-dialogDrag
+      v-loading="selectFormLoading"
+      :visible.sync="selectFormVisible"
+      append-to-body="true"
+      class="avue-dialog"
+      title="琛ㄥ崟閫夋嫨"
+      width="50%">
+      <avue-crud
+        ref="crud"
+        :data="selectFormData"
+        :option="selectFormOption"
+        @selection-change="selectionChange"
+        @row-click="rowClick">
+
+      </avue-crud>
+
+      <span slot="footer" class="dialog-footer">
+         <el-button @click="selectFormVisible = false">鍙� 娑�</el-button>
+         <el-button type="primary" @click="selectFormAddClickHandler">纭� 瀹�</el-button>
+    </span>
+    </el-dialog>
   </el-dialog>
+
 </template>
 
 <script>
+import basicOption from "@/util/basic-option";
+import {gridPortalVIDatas, getPortalVIById, getItemDblList, savePortalVI} from "@/api/UI/formDefine/api";
+import func from "@/util/func";
+
 export default {
   name: "tableDialog",
+  props: {
+    TreeNodeRow: {
+      type: Object,
+      default: () => {
+      }
+    },
+    treeRadio: {
+      type: String,
+      default: ""
+    }
+  },
+  created() {
+    // this.getDbList();
+  },
   data() {
     return {
-      columnSearchData: [
-        {
-          id: 'test',
-          name: '3',
-          sql: 'xxxxx'
-        }
-      ],
-      columnWidthData: [
-        {
-          id: 'test',
-          width: '250'
-        }
-      ],
-      searchLifeTable: [],
-      searchRightTable: [],
-      showRightTable: [],
-      showLifeTable: [
-        {
-          id: 'test1'
-        },
-        {
-          id: 'test2'
-        },
-        {
-          id: 'test1'
-        },
-        {
-          id: 'test2'
-        },
-        {
-          id: 'test1'
-        },
-        {
-          id: 'test2'
-        }
-      ],
+      formLoading: false,
+      itemImgHeight: '',
+      itemImgWidth: '',
+      itemSeniorRow: {},
+      itemDblList: [],
+      selectFormOption: {
+        ...basicOption,
+        addBtn: false,
+        menu: false,
+        refreshBtn: false,
+        column: [
+          {
+            label: '涓氬姟鍚嶇О',
+            prop: 'typeName',
+
+          },
+          {
+            label: '鍚嶇О',
+            prop: 'viName',
+            sortable: true,
+          },
+          {
+            label: '绫诲瀷',
+            prop: 'viTypeText',
+          },
+        ]
+      },
+      selectFormData: [],
+      selectFormLoading: false,
+      selectFormVisible: false,
       rules: {},
-      form: {},
+      form: {
+        viName: '', // 鍚嶇О
+        itemPageSize: '', // 姣忛〉鍙樉绀鸿鏁�
+        itemAddFilter: '', // 闄勫姞鏌ヨ鏉′欢
+        itemInObj: '', // 缁戝畾琛ㄥ崟
+        itemParentFolderName: '', // 鐖跺悕绉�
+        itemIsShowFolder: false, // 鏄惁鏄剧ず鏂囦欢澶�
+        itemIsNavigatorExpand: false, // 鏄剧ず鏌ヨ鍖哄煙
+        itemSelectOutFieldList: [], // 鍙娇鐢ㄥ瓧娈�
+        itemOutFieldList: [], // 闇�瑕佷娇鐢ㄥ瓧娈� // 鍒椾笅鎷夋
+        itemSearchFieldList: [], // 鍙緵鎼滅储浣跨敤瀛楁
+        itemKeyFieldList: [], // 闇�瑕佹悳绱㈠瓧娈�
+        itemWidth: '250', // 瀹藉害
+        itemFieldWidthList: [], // 璁剧疆鍒楀鏁扮粍 涓� itemOutFieldList 鐩稿尮閰�
+        itemFileWidthSelect: '', // 鍒椾笅鎷夋
+        searchLabel: '', // 鏌ヨ瀛楁
+        searchNumber: '1', // 鏌ヨ娆℃暟
+        searchSql: '', // 鏌ヨsql
+        itemSeniorQueryBOS: [], // 鏌ヨ瀛楁鍒楄〃
+        itemDbl: [], // 鍙屽嚮鎿嶄綔
+        itemImgWH: '', // 鍥剧墖瀹介珮 w,h
+        itemCut: '', // 瀛楃涓叉埅鍙�
+        itemHrefConf: '', // 瓒呴摼鎺�
+        itemQtName: '', // 鏌ヨ妯℃澘
+      },
+      defaultForm: {
+        viName: '', // 鍚嶇О
+        itemPageSize: '', // 姣忛〉鍙樉绀鸿鏁�
+        itemAddFilter: '', // 闄勫姞鏌ヨ鏉′欢
+        itemInObj: '', // 缁戝畾琛ㄥ崟
+        itemParentFolderName: '', // 鐖跺悕绉�
+        itemIsShowFolder: false, // 鏄惁鏄剧ず鏂囦欢澶�
+        itemIsNavigatorExpand: false, // 鏄剧ず鏌ヨ鍖哄煙
+        itemSelectOutFieldList: [], // 鍙娇鐢ㄥ瓧娈�
+        itemOutFieldList: [], // 闇�瑕佷娇鐢ㄥ瓧娈� // 鍒椾笅鎷夋
+        itemSearchFieldList: [], // 鍙緵鎼滅储浣跨敤瀛楁
+        itemKeyFieldList: [], // 闇�瑕佹悳绱㈠瓧娈�
+        itemWidth: '250', // 瀹藉害
+        itemFieldWidthList: [], // 璁剧疆鍒楀鏁扮粍 涓� itemOutFieldList 鐩稿尮閰�
+        itemFileWidthSelect: '', // 鍒椾笅鎷夋
+        searchLabel: '', // 鏌ヨ瀛楁
+        searchNumber: '1', // 鏌ヨ娆℃暟
+        searchSql: '', // 鏌ヨsql
+        itemSeniorQueryBOS: [], // 鏌ヨ瀛楁鍒楄〃
+        itemDbl: [], // 鍙屽嚮鎿嶄綔
+        itemImgWH: '', // 鍥剧墖瀹介珮 w,h
+        itemCut: '', // 瀛楃涓叉埅鍙�
+        itemHrefConf: '', // 瓒呴摼鎺�
+        itemQtName: '', // 鏌ヨ妯℃澘
+      },
       loading: false,
-      visible: false
+      visible: false,
+      selectList: [],
+      lastIndex: null,
+      showLabelLeftRow: {},
+      showLabelRightRow: {},
+      searchLeftRow: {},
+      searchRightRow: {},
+      itemFileWidthRow: {},
+      itemFileWidthChangeVal: '',
     }
   },
   methods: {
+    // 鍏抽棴瀵硅瘽妗�
     closeDialog() {
+      this.visible = false;
+      this.form = {...this.defaultForm};
+    },
 
+    // 閫夋嫨琛ㄥ崟鍏抽棴瀵硅瘽妗�
+    closeSelectFormDialog() {
+
+    },
+
+    // 閫夋嫨缁戝畾琛ㄥ崟
+    formSelectClickHandler() {
+      this.selectFormVisible = true;
+      const params = {
+        'conditionMap[typeName]': this.TreeNodeRow.attributes.id,
+        'conditionMap[viType]': 'Form',
+        'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '',
+      }
+      gridPortalVIDatas(1, -1, params).then(res => {
+        if (res.data.code === 200) {
+          const data = res.data.data;
+          this.selectFormData = data;
+        }
+      });
+    },
+
+    // 鑾峰彇鍒濆鍖栬〃鏍奸噷闇�瑕佺殑榛樿鏁版嵁
+    getFormSelectList() {
+      this.formLoading = true;
+      const params = {
+        'conditionMap[typeName]': this.TreeNodeRow.id,
+        'conditionMap[viType]': 'Form',
+        'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '',
+      };
+
+      // 鍙戣捣绗竴涓姹�
+      gridPortalVIDatas(1, -1, params).then(res => {
+        if (res.data.code === 200) {
+          const data = res.data.data;
+          this.selectList = data;
+
+          // 纭繚 this.selectList 宸茬粡璧嬪�间笖涓嶄负绌�
+          if (this.selectList && this.selectList.length > 0) {
+            const param = {
+              id: this.selectList[0].id,
+              viType: '1'
+            };
+
+            // 鍙戣捣绗簩涓姹�
+            return getPortalVIById(param);
+          }
+        }
+      }).then(res => {
+        if (res.data.code === 200) {
+          const data = res.data.obj.prm.prmItemList.map(item => ({
+            id: item.itemField
+          }));
+          // 杩囨护鍑烘潵闇�瑕佷娇鐢ㄥ瓧娈� 璧嬪�肩粰 鍙娇鐢ㄥ瓧娈垫覆鏌� 锛堜娇鐢ㄥ瓧娈电敱缂栬緫鎺ュ彛浼犻�掞級
+          const list = data.filter(item =>
+            !this.form.itemOutFieldList.some(outItem => outItem.id === item.id)
+          );
+          this.$set(this.form, 'itemSelectOutFieldList', list);
+          this.formLoading = false;
+        }
+      })
+    },
+
+    // 琛ㄦ牸澶氶��
+    selectionChange(list) {
+      this.selectList = list;
+    },
+
+    // 琛岀偣鍑�
+    rowClick(row) {
+      func.rowClickHandler(
+        row,
+        this.$refs.crud,
+        this.lastIndex,
+        (newIndex) => {
+          this.lastIndex = newIndex;
+        },
+        () => {
+          this.selectList = [];
+        }
+      );
+    },
+
+    // 琛ㄥ崟閫夋嫨纭畾
+    selectFormAddClickHandler() {
+      if (this.selectList.length <= 0) {
+        this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+
+      if (this.selectList.length > 1) {
+        this.$message.error('鍙兘閫夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      const params = {
+        id: this.selectList[0].id,
+        viType: '1'
+      }
+      getPortalVIById(params).then(res => {
+        if (res.data.code === 200) {
+          const data = res.data.obj.prm.prmItemList.map(item => {
+            return {
+              id: item.itemField
+            }
+          });
+          this.form.itemSelectOutFieldList = data;
+          this.selectFormVisible = false;
+        }
+      })
+      this.form.itemInObj = this.selectList[0].id;
+    },
+
+    // 鏄剧ず瀛楁宸︿晶琛ㄦ牸琛岀偣鍑�
+    showLabelLeftRowClick(row) {
+      this.showLabelLeftRow = row;
+    },
+
+    // 鏄剧ず瀛楁鍙充晶琛ㄦ牸琛岀偣鍑�
+    showLabelRightRowClick(row) {
+      this.showLabelRightRow = row;
+    },
+
+    // 鎼滅储瀛楁宸︿晶琛ㄦ牸琛岀偣鍑�
+    searchLeftRowClick(row) {
+      this.searchLeftRow = row;
+    },
+
+    // 鎼滅储瀛楁鍙充晶琛ㄦ牸琛岀偣鍑�
+    searchRightRowClick(row) {
+      this.searchRightRow = row;
+    },
+
+    // 鏄剧ず瀛楁绌挎妗嗗乏绉�
+    showLeftTransferClick() {
+      if (func.isEmptyObject(this.showLabelRightRow)) {
+        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      this.form.itemSelectOutFieldList.unshift(this.showLabelRightRow);
+      this.form.itemOutFieldList = this.form.itemOutFieldList.filter(item => item.id !== this.showLabelRightRow.id);
+      this.form.itemSearchFieldList = this.form.itemOutFieldList;
+      this.form.itemFieldWidthList = this.form.itemFieldWidthList.filter(item => item.key !== this.showLabelRightRow.id);
+      this.form.itemFileWidthSelect = this.form.itemFieldWidthList.length >= 1 ? this.form.itemFieldWidthList[0].key : '';
+      this.showLabelRightRow = {};
+    },
+
+    // 鏄剧ず瀛楁绌挎妗嗗彸绉�
+    showRightTransferClick() {
+      if (func.isEmptyObject(this.showLabelLeftRow)) {
+        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      this.form.itemOutFieldList.push(this.showLabelLeftRow);
+      this.form.itemSearchFieldList = this.form.itemOutFieldList;
+
+      // 杩囨护 itemSelectOutFieldList锛岀Щ闄� id 涓� showLabelLeftRow.id 鐩稿悓鐨勫璞�
+      this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.filter(item => item.id !== this.showLabelLeftRow.id);
+      this.form.itemFieldWidthList.push({
+        key: this.showLabelLeftRow.id,
+        value: this.form.itemWidth
+      });
+      this.form.itemFileWidthSelect = this.form.itemFieldWidthList[0].key;
+      this.showLabelLeftRow = {};
+
+    },
+
+    // 鎼滅储瀛楁绌挎妗嗗乏绉�
+    searchLeftTransferClick() {
+      if (func.isEmptyObject(this.searchRightRow)) {
+        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      this.form.itemSearchFieldList.unshift(this.searchRightRow);
+      this.form.itemKeyFieldList = this.form.itemKeyFieldList.filter(item => item.id !== this.searchRightRow.id)
+      this.searchRightRow = {};
+    },
+
+    // 鎼滅储鑷姩绌挎妗嗗彸绉�
+    searchRightTransferClick() {
+      if (func.isEmptyObject(this.searchLeftRow)) {
+        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+
+      this.form.itemKeyFieldList.push(this.searchLeftRow);
+
+      this.form.itemSearchFieldList = this.form.itemSearchFieldList.filter(item => item.id !== this.searchLeftRow.id);
+      this.searchLeftRow = {};
+    },
+
+    // 璁剧疆鍒楀琛岀偣鍑�
+    itemFileWidthRowClick(row) {
+      this.itemFileWidthRow = row;
+      this.form.itemFileWidthSelect = row.key;
+      this.form.itemWidth = row.value;
+    },
+
+    // 鍒椾笅鎷塩hange
+    itemFileWidthChange(val) {
+      this.itemFileWidthChangeVal = val;
+    },
+
+    // 璁剧疆瀹藉害
+    widthSetUpClickHandler() {
+      if (this.form.itemFileWidthSelect) {
+        const item = this.form.itemFieldWidthList.find(item => item.key === this.form.itemFileWidthSelect);
+        item.value = this.form.itemWidth;
+      }
+    },
+
+    // 鑾峰彇鍙屽嚮鎿嶄綔鏁版嵁
+    getDbList() {
+      getItemDblList().then(res => {
+        if (res.data.code === 200) {
+          const data = res.data.data;
+          this.itemDblList = data;
+        }
+      })
+    },
+
+    // 鏌ヨ妯℃澘琛ㄦ牸琛岀偣鍑�
+    itemSeniorRowClick(row) {
+      this.itemSeniorRow = row;
+    },
+
+    // 鏌ヨ妯℃澘娣诲姞
+    searchAddClickHandler() {
+      this.form.itemSeniorQueryBOS.push({
+        itemSeniorQueryCols: this.form.searchLabel,
+        itemSeniorQueryColsCounts: this.form.searchNumber,
+        itemQuerySql: this.form.searchSql
+      });
+    },
+
+    // 鏌ヨ妯℃澘鍒犻櫎
+    searchDelClickHandler() {
+      if (func.isEmptyObject(this.itemSeniorRow)) {
+        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛屽垹闄�');
+        return;
+      }
+
+      this.form.itemSeniorQueryBOS = this.form.itemSeniorQueryBOS.filter(item => item.itemSeniorQueryCols != this.itemSeniorRow.id);
+      this.itemSeniorRow = {};
+    },
+
+    // 琛ㄦ牸瀵硅瘽妗嗕繚瀛�
+    dialogSaveClickHandler() {
+      this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.map(item => item.id); // 鍙娇鐢ㄥ瓧娈�
+      this.form.itemOutFieldList = this.form.itemOutFieldList.map(item => item.id); // 闇�瑕佷娇鐢ㄥ瓧娈�
+      this.form.itemSearchFieldList = this.form.itemSearchFieldList.map(item => item.id); // 鍙緵鎼滅储瀛楁
+      this.form.itemKeyFieldList = this.form.itemKeyFieldList.map(item => item.id); // 闇�瑕佷娇鐢ㄥ瓧娈�
+      this.form.itemImgWH = `${this.itemImgHeight},${this.itemImgWidth}`;
+      const params = {
+        id: this.form.editNodeId,
+        prm: {
+          formQtName: '',
+          prmItemList: [
+            this.form
+          ],
+        },
+        typeFlag: this.treeRadio,
+        typeFlagText: this.treeRadio === '0' ? "涓氬姟绫诲瀷鐨勮〃鍗�" : '閾炬帴绫诲瀷鐨勮〃鍗�',
+        typeName: this.TreeNodeRow.attributes.id,
+        viName: this.form.viName,
+        viType: 0,
+        viTypeText: "琛ㄦ牸"
+      }
+      savePortalVI(params).then(res => {
+        if (res.data.code === 200) {
+          this.$message.success('淇濆瓨鎴愬姛');
+          this.closeDialog();
+          this.$emit('updataTable');
+        }
+      })
     }
   }
 }
@@ -342,3 +730,4 @@
   }
 }
 </style>
+

--
Gitblit v1.9.3