From a5f2dad996fcdb22a670743102b9fd08370738cd Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 27 九月 2024 16:25:10 +0800
Subject: [PATCH] 整合代码

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue             |  257 ++++++++++++++++++------------------
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/components/action.vue |  117 ++++++++++------
 2 files changed, 203 insertions(+), 171 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/components/action.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/components/action.vue
index 5d66a6e..c5506eb 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/components/action.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/components/action.vue
@@ -1,55 +1,68 @@
 <template>
-  <el-container>
-
-    <el-aside>
-      <basic-container>
-        <!-- 宸︿晶鏍� -->
-        <div style="height:580px">
-          <avue-tree
-            ref="tree"
-            v-model="treeForm"
-            :data="treeData"
-            :option="treeOption"
-            @node-click="nodeClick">
+  <el-dialog
+    v-dialogDrag
+    :visible.sync="btnActionVisible"
+    append-to-body="true"
+    class="avue-dialog"
+    title="閫夋嫨Action"
+    width="70%"
+    @close="dialogClose">
+    <el-container>
+      <el-aside>
+        <basic-container>
+          <!-- 宸︿晶鏍� -->
+          <div>
+            <avue-tree
+              ref="tree"
+              v-model="treeForm"
+              :data="treeData"
+              :option="treeOption"
+              node-key="value"
+              @node-click="nodeClick">
           <span slot-scope="{ node, data }" class="el-tree-node__label">
            <span style="font-size: 15px">
               <i class="el-icon-s-promotion"></i>
                 {{ (node || {}).label }}
             </span>
           </span>
-          </avue-tree>
-        </div>
-      </basic-container>
-    </el-aside>
+            </avue-tree>
+          </div>
+        </basic-container>
+      </el-aside>
 
-    <el-main>
-      <basic-container>
-        <div>
-          <avue-crud
-            ref="crud"
-            v-model="form"
-            :data="data"
-            :option="option"
-            :page.sync="page"
-            :table-loading="tableLoading"
-            @search-change="handleSearch"
-            @search-reset="handleReset"
-            @refresh-change="handleRefresh"
-            @selection-change="selectChangeHandler"
-            @row-click="rowClickHandler">
-            <template slot="plTypeType" slot-scope="{row}">
-              <el-tag :type="row.plTypeType === 'business' ? '' : 'success'">
-                {{ row.plTypeType === 'business' ? '涓氬姟绫诲瀷' : '閾炬帴绫诲瀷' }}
-              </el-tag>
-            </template>
+      <el-main>
+        <basic-container>
+          <div>
+            <avue-crud
+              ref="crud"
+              v-model="form"
+              :data="data"
+              :option="option"
+              :page.sync="page"
+              :table-loading="tableLoading"
+              @search-change="handleSearch"
+              @search-reset="handleReset"
+              @refresh-change="handleRefresh"
+              @selection-change="selectChangeHandler"
+              @row-click="rowClickHandler">
+              <template slot="plTypeType" slot-scope="{row}">
+                <el-tag :type="row.plTypeType === 'business' ? '' : 'success'">
+                  {{ row.plTypeType === 'business' ? '涓氬姟绫诲瀷' : '閾炬帴绫诲瀷' }}
+                </el-tag>
+              </template>
 
-          </avue-crud>
-        </div>
-      </basic-container>
-    </el-main>
+            </avue-crud>
+          </div>
+        </basic-container>
+      </el-main>
 
 
-  </el-container>
+    </el-container>
+    <span slot="footer" class="dialog-footer">
+        <el-button @click="btnActionVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="actionSaveHandler">纭� 瀹�</el-button>
+      </span>
+  </el-dialog>
 </template>
 
 <script>
@@ -75,6 +88,7 @@
   name: "index",
   data() {
     return {
+      btnActionVisible: false,
       currenRow: {}, // action褰撳墠琛屼俊鎭�
       topMethodsObj: {
         select: true,
@@ -126,7 +140,7 @@
       option: {
         ...basicOption,
         addBtn: false,
-        height: 'auto',
+        height: 500,
         highlightCurrentRow: true,
         column: [
           {
@@ -334,9 +348,6 @@
           this.selectList = [];
         }
       );
-
-      // 璇锋眰action涓嬫柟鍙傛暟鍒楄〃鏁版嵁
-      this.getBottomList(row);
     },
 
     // 鎼滅储
@@ -368,6 +379,22 @@
       this.getRightTableList(this.treeNodeRow);
     },
 
+    // 淇濆瓨action
+    actionSaveHandler() {
+      if (this.selectList.length != 1) {
+        this.$message.error('鍙兘閫夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      this.$emit('updataAction', this.selectList[0]);
+      this.dialogClose();
+    },
+
+    dialogClose(){
+      this.btnActionVisible = false;
+      this.data = [];
+      this.$refs.tree.setCurrentKey(null);
+    }
+
   }
 }
 </script>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
index e569c07..ac69f17 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue
@@ -21,37 +21,24 @@
         </el-button>
       </template>
 
-      <!-- eventKey鎿嶄綔鎸夐挳 -->
-      <template slot="eventButtonForm" slot-scope="scope">
-        <div style="width: 100%;display: flex;justify-content: center">
-          <el-button plain size="mini" type="primary" @click="formDataAddClickHandler">鍒涘缓</el-button>
-          <el-button plain size="mini" type="danger" @click="formDataDelClickHandler">鍒犻櫎</el-button>
-          <el-button plain size="mini" type="primary" @click="moveUp">涓婄Щ</el-button>
-          <el-button plain size="mini" type="primary" @click="moveDown">涓嬬Щ</el-button>
-        </div>
-      </template>
       <!-- eventKey浠ュ強eventValue鏄剧ず鍖哄煙 -->
       <template slot="bottomValueForm" slot-scope="scope">
-        <div style="height: 200px; width: 95%; border: 1px solid #bdbbbb;overflow-y: auto">
-          <!-- 鍐呭 -->
-          <el-table
-            :data="FormData"
-            :highlight-current-row="true"
-            style="width: 100%"
-            @row-click="formDataRowClick">
-            <el-table-column
-              align="center"
-              label="EventKey"
-              prop="eventKey">
-            </el-table-column>
-            <el-table-column
-              align="center"
-              label="EventValue"
-              prop="eventValue">
-            </el-table-column>
-          </el-table>
-        </div>
+        <avue-crud
+          :data="eventData"
+          :option="eventOption"
+          @row-click="formDataRowClick">
+          <template slot="menuLeft" slot-scope="scope">
+            <el-button plain size="mini" type="primary" @click="formDataAddClickHandler">鍒涘缓</el-button>
+          </template>
+
+          <template slot="menu" slot-scope="scope">
+            <el-button plain size="mini" type="danger" @click="formDataDelClickHandler(scope.row)">鍒犻櫎</el-button>
+            <el-button plain size="mini" type="primary" @click="moveUp(scope.row)">涓婄Щ</el-button>
+            <el-button plain size="mini" type="primary" @click="moveDown(scope.row)">涓嬬Щ</el-button>
+          </template>
+        </avue-crud>
       </template>
+
 
       <!-- 鍒囨崲鎼滅储绫诲瀷 婧愬璞� 鐩爣瀵硅薄鏄剧ずlabel鍒囨崲 -->
       <template slot="showTypeLabel" slot-scope="{}">
@@ -129,7 +116,12 @@
 
                   <el-form-item label="Action锛�" prop="Action">
                     <el-col :span="14">
-                      <el-input v-model="basicForm.actionName" :readonly="disabledBtn" @focus="actionFoucus"></el-input>
+                      <div style="display: flex">
+                        <el-input v-model="basicForm.actionName" :readonly="disabledBtn"></el-input>
+                        <el-button :disabled="disabledBtn" size="mini" style="margin-left: 10px" type="success"
+                                   @click="actionFoucus">閫夋嫨
+                        </el-button>
+                      </div>
                     </el-col>
                   </el-form-item>
 
@@ -190,15 +182,7 @@
         </el-container>
       </el-container>
     </el-dialog>
-    <el-dialog
-      v-dialogDrag
-      :visible.sync="btnActionVisible"
-      append-to-body="true"
-      class="avue-dialog"
-      title="閫夋嫨Action"
-      width="70%">
-      <action-dialog></action-dialog>
-    </el-dialog>
+    <action-dialog ref="actionDialog" @updataAction="actionSaveHandler"></action-dialog>
   </div>
 </template>
 
@@ -220,7 +204,8 @@
   props: {
     sourceData: {
       type: Object,
-      default: () => {}
+      default: () => {
+      }
     },
     height: {
       type: String,
@@ -233,6 +218,50 @@
   name: "index",
   data() {
     return {
+      eventOption: {
+        ...basicOption,
+        addBtn: false,
+        editBtn: false,
+        delBtn: false,
+        refreshBtn: false,
+        highlightCurrentRow: true,
+        column: [
+          {
+            label: 'EventKey',
+            prop: 'eventKey',
+            type: 'select',
+            value: 'SelectionEvent',
+            dicData: [
+              {
+                label: 'SelectionEvent',
+                value: 'SelectionEvent'
+              },
+              {
+                label: 'DBClickEvent',
+                value: 'DBClickEvent'
+              },
+              {
+                label: 'ClickEvent',
+                value: 'ClickEvent'
+              }
+            ],
+            cell: true
+          },
+          {
+            label: 'EventValue',
+            prop: 'eventValue',
+            cell: true,
+            rules: [
+              {
+                required: true,
+                message: '璇疯緭鍏ventValue',
+                trigger: 'blur'
+              }
+              ]
+          }
+        ]
+      },
+      eventData: [],
       btnActionVisible: false,
       dialogLoading: false,
       saveType: '',
@@ -438,7 +467,6 @@
         ],
         group: [
           {
-            icon: 'el-icon-folder-opened',
             label: '',
             arrow: false,
             prop: 'group1',
@@ -731,45 +759,15 @@
             ]
           },
           {
-            icon: 'el-icon-folder-opened',
             label: '',
             arrow: false,
             prop: 'group2',
             column: [
               {
-                label: 'EventKey',
-                prop: 'eventKey',
-                type: 'select',
-                value: 'SelectionEvent',
-                dicData: [
-                  {
-                    label: 'SelectionEvent',
-                    value: 'SelectionEvent'
-                  },
-                  {
-                    label: 'DBClickEvent',
-                    value: 'DBClickEvent'
-                  },
-                  {
-                    label: 'ClickEvent',
-                    value: 'ClickEvent'
-                  }
-                ],
-              },
-              {
-                label: 'EventValue',
-                prop: 'eventValue',
-                labelWidth: 100
-              },
-              {
-                label: '',
-                prop: 'eventButton',
-                span: 24
-              },
-              {
                 label: '',
                 prop: 'bottomValue',
-                span: 24
+                span: 24,
+                labelWidth: 10
               },
             ]
           }
@@ -782,28 +780,28 @@
     }
   },
   watch: {
-    sourceData:{
+    sourceData: {
       handler(val) {
-        if(val && val.plOId) {
+        if (val && val.plOId) {
           this.getTableList()
-        }else{
-          this.data=[];
+        } else {
+          this.data = [];
         }
       },
       immediate: true,
-      deep:true
+      deep: true
     }
   },
   computed: {},
   methods: {
     //鑾峰彇鍒楄〃鏁版嵁
-    getTableList(){
+    getTableList() {
       const params = {
-        pageContextOId:this.sourceData.plOId
+        pageContextOId: this.sourceData.plOId
       }
-      getPLPageDefinations( params).then(res => {
+      getPLPageDefinations(params).then(res => {
         this.data = res.data.data;
-        this.selectList=[];
+        this.selectList = [];
         this.$refs.crud.clearSelection();
         this.tableLoading = false;
       })
@@ -844,6 +842,11 @@
 
     // 澧炲姞
     addClickHandler() {
+      console.log(this.sourceData);
+      if (!this.sourceData || !this.sourceData.plOId) {
+        this.$message.error('璇峰湪涓婃柟閫夋嫨涓�鏉℃暟鎹悗杩涜娣诲姞');
+        return;
+      }
       this.$refs.crud.rowAdd();
     },
 
@@ -854,41 +857,37 @@
 
     // 瀵硅瘽妗嗚〃鏍兼坊鍔�
     formDataAddClickHandler() {
-      if (!this.form.eventKey) {
-        this.$message.error('璇烽�夋嫨EventKey');
-        return;
-      }
-
-      if (!this.form.eventValue) {
-        this.$message.error('璇疯緭鍏ventValue');
-        return;
-      }
-
-      if (this.FormData.length >= 1) {
-        const eventValueStatus = this.FormData.some(item => item.eventValue === this.form.eventValue);
-
-        if (eventValueStatus) {
-          this.$message.error('宸插瓨鍦ㄧ浉鍚岀殑 EventValue锛屼笉鑳介噸澶嶆坊鍔�');
-          return;
-        }
-      }
+      // if (!this.form.eventKey) {
+      //   this.$message.error('璇烽�夋嫨EventKey');
+      //   return;
+      // }
+      //
+      // if (!this.form.eventValue) {
+      //   this.$message.error('璇疯緭鍏ventValue');
+      //   return;
+      // }
+      //
+      // if (this.eventData.length >= 1) {
+      //   const eventValueStatus = this.eventData.some(item => item.eventValue === this.form.eventValue);
+      //
+      //   if (eventValueStatus) {
+      //     this.$message.error('宸插瓨鍦ㄧ浉鍚岀殑 EventValue锛屼笉鑳介噸澶嶆坊鍔�');
+      //     return;
+      //   }
+      // }
       const obj = {
-        index: this.FormData.length,
-        eventKey: this.form.eventKey,
-        eventValue: this.form.eventValue
+        index: this.eventData.length,
+        eventKey: this.form.eventKey || 'SelectionEvent',
+        eventValue: this.form.eventValue,
+        $cellEdit: true
       }
 
-      this.FormData.push(obj);
+      this.eventData.push(obj);
     },
 
     // 瀵硅瘽妗嗚〃鏍煎垹闄�
-    formDataDelClickHandler() {
-      if (func.isEmptyObject(this.formDataRow)) {
-        this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
-        return;
-      }
-
-      this.FormData = this.FormData.filter(item => item.index !== this.formDataRow.index);
+    formDataDelClickHandler(row) {
+      this.eventData = this.eventData.filter(item => item.index !== row.index);
     },
 
     // 妯℃澘绫诲瀷鏄剧ず闅愯棌鏂规硶
@@ -947,22 +946,22 @@
     },
 
     // 涓婄Щ
-    moveUp() {
-      const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue);
+    moveUp(row) {
+      const index = this.findIndexByEventValue(this.eventData, row.eventValue);
       if (index > 0) {
         // 浣跨敤 splice 鏉ユā鎷熶氦鎹�
-        const temp = this.FormData.splice(index - 1, 1, this.FormData[index])[0]; // 绉婚櫎 index-1 鐨勫厓绱� 骞跺湪鐩稿悓浣嶇疆鎻掑叆 index 鐨勫厓绱� 杩斿洖琚Щ闄ょ殑鍏冪礌
-        this.FormData.splice(index, 1, temp); // 鍦� index 浣嶇疆鎻掑叆涔嬪墠琚Щ闄ょ殑鍏冪礌
+        const temp = this.eventData.splice(index - 1, 1, this.eventData[index])[0]; // 绉婚櫎 index-1 鐨勫厓绱� 骞跺湪鐩稿悓浣嶇疆鎻掑叆 index 鐨勫厓绱� 杩斿洖琚Щ闄ょ殑鍏冪礌
+        this.eventData.splice(index, 1, temp); // 鍦� index 浣嶇疆鎻掑叆涔嬪墠琚Щ闄ょ殑鍏冪礌
       }
     },
 
     // 涓嬬Щ
-    moveDown() {
-      const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue);
-      const length = this.FormData.length;
+    moveDown(row) {
+      const index = this.findIndexByEventValue(this.eventData, row.eventValue);
+      const length = this.eventData.length;
       if (index < length - 1) {
-        const temp = this.FormData[index];
-        this.FormData.splice(index, 1, this.FormData.splice(index + 1, 1, temp)[0]);
+        const temp = this.eventData[index];
+        this.eventData.splice(index, 1, this.eventData.splice(index + 1, 1, temp)[0]);
       }
     },
 
@@ -973,7 +972,7 @@
 
     // 鎸夐挳璁捐
     btnDesignClickHandler() {
-      if (this.selectList.length !=1) {
+      if (this.selectList.length != 1) {
         this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�');
         return;
       }
@@ -990,11 +989,11 @@
       getTabButtons(params).then(res => {
         if (res.data.code === 200) {
           const data = res.data.data;
-          this.treeData=[{
-              label: this.selectList[0].name,
-              oId: 'parentNode',
-              children:data
-            }];
+          this.treeData = [{
+            label: this.selectList[0].name,
+            oId: 'parentNode',
+            children: data
+          }];
           this.treeLoading = false;
         } else {
           this.$message.error('璇锋鏌ユ帶鍒跺彴閿欒');
@@ -1138,7 +1137,13 @@
 
     // 閫夋嫨action
     actionFoucus() {
-      this.btnActionVisible = true;
+      this.$refs.actionDialog.btnActionVisible = true;
+    },
+
+    // 淇濆瓨action
+    actionSaveHandler(val) {
+      this.$set(this.basicForm, 'actionName', val.plName);
+      this.$set(this.basicForm, 'actionOId', val.plOId);
     }
   }
 }

--
Gitblit v1.9.3