From dbcbde4397e0d0d28cf77a1cfafbe9a801d32182 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期三, 23 十月 2024 17:54:02 +0800
Subject: [PATCH] 日志、类型Action、修改细节

---
 Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue                |   34 +-
 Source/plt-web/plt-web-ui/src/views/system/role/index.vue                                |    6 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue |    3 
 Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue                             |  191 ++++++++---
 Source/plt-web/plt-web-ui/src/views/system/log/index.vue                                 |    4 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue                   |   36 --
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue                     |   22 
 Source/plt-web/plt-web-ui/src/App.vue                                                    |    6 
 Source/plt-web/plt-web-ui/src/views/system/user/index.vue                                |    6 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue      |    8 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/dialog.vue                    |  293 +++++++++++++++++++
 Source/plt-web/plt-web-ui/src/views/authority/ui/typeAction/index.vue                    |  263 +++++++++++++----
 Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js                                 |    2 
 13 files changed, 675 insertions(+), 199 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/App.vue b/Source/plt-web/plt-web-ui/src/App.vue
index b83a1ca..22920ce 100644
--- a/Source/plt-web/plt-web-ui/src/App.vue
+++ b/Source/plt-web/plt-web-ui/src/App.vue
@@ -138,6 +138,12 @@
     margin-bottom: 5px;
   }
 }
+.smallBtn {
+  width: 82px;
+  text-align: center;
+  padding-left: 4.5px;
+}
+
 /***闅愯棌鏍戞噿鍔犺浇鏃惰妭鐐逛笂鐨刲oading锛岄槻姝㈣妭鐐规姈鍔�*****/
 .el-tree .el-tree-node__loading-icon{
   display: none !important;
diff --git a/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js b/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js
index 47160ae..e350c06 100644
--- a/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js
+++ b/Source/plt-web/plt-web-ui/src/api/system/log/logBasic.js
@@ -48,7 +48,7 @@
 // 瀵煎嚭
 export const exportLog = (params) => {
   return request({
-    url: '/api/loginBasicController/exportLog',
+    url: '/api/loginBasicController/exportLogs',
     method: 'get',
     headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
     responseType: 'blob',
diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
index bf99a6a..65e61c2 100644
--- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
+++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue
@@ -6,10 +6,9 @@
     :visible.sync="visible"
     append-to-body="true"
     class="avue-dialog"
-    style="text-align: center"
-    width="50%"
+    width="830px"
     @close="dialogClose">
-    <div style="margin-bottom: 20px;" v-if="topMethodsObj !== {} && topMethodsObj">
+    <div style="height: 42px;line-height: 30px;margin-top: -5px;" v-if="topMethodsObj !== {} && topMethodsObj">
       <div>
         <span>瀵煎嚭鏂瑰紡锛�</span>
         <el-radio-group v-model="radio">
@@ -18,24 +17,27 @@
           <el-radio :label="2" v-if="topMethodsObj.page">椤电爜</el-radio>
         </el-radio-group>
         <span v-if="radio === 2" style="margin-left: 20px;color: #F56C6C; ">
-          <el-input v-model="pageExport" style="width: 150px"></el-input> 锛堣緭鍏ラ〉鐮佹垨鑰呴〉闈㈣寖鍥达紝濡傦細1-10锛�</span>
+          <el-input v-model="pageExport" style="width: 150px" size="mini"></el-input> 锛堣緭鍏ラ〉鐮佹垨鑰呴〉闈㈣寖鍥达紝濡傦細1-10锛�</span>
       </div>
     </div>
-    <el-transfer
-      v-model="rightRoleData"
-      v-loading="loading"
-      :data="data"
-      :filter-method="filterMethod"
-      :render-content="renderFunc"
-      :titles="transferTitle"
-      filter-placeholder="鍏抽敭璇嶆悳绱�"
-      filterable
-      style="text-align: left; display: inline-block;">
-    </el-transfer>
+    <div style="text-align: center">
+      <el-transfer
+        v-model="rightRoleData"
+        v-loading="loading"
+        :data="data"
+        :filter-method="filterMethod"
+        :render-content="renderFunc"
+        :titles="transferTitle"
+        filter-placeholder="鍏抽敭璇嶆悳绱�"
+        filterable
+        style="text-align:left;display: inline-block;">
+      </el-transfer>
+    </div>
+
     <div slot="footer" class="dialog-footer">
       <div v-if="bottomValue" class="valueInfo">宸茶缃殑鍊间负锛歔{{ bottomValue }}]</div>
-      <el-button size="small" @click="visible = false">鍙� 娑�</el-button>
       <el-button size="small" type="primary" @click="sendHandler">纭� 瀹�</el-button>
+      <el-button size="small" @click="visible = false">鍙� 娑�</el-button>
     </div>
   </el-dialog>
 </template>
diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/typeAction/index.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/typeAction/index.vue
index 308c333..1a286ff 100644
--- a/Source/plt-web/plt-web-ui/src/views/authority/ui/typeAction/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/typeAction/index.vue
@@ -1,33 +1,18 @@
 <template>
+  <!--绫诲瀷Action-->
   <el-container>
-
     <el-aside>
       <basic-container>
-        <div ref="TreeBox" style="height: calc(100vh - 144px);!important;">
-          <div class="headerCon">
-            <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">鍒涘缓
-            </el-button>
-            <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editClickHandler">淇敼
-            </el-button>
-            <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delClickHandler">鍒犻櫎
-            </el-button>
-            <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭
-            </el-button>
-            <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">瀵煎叆
-            </el-button>
-            <el-button class="smallBtn" plain size="small" type="primary"
-                       @click="checkViewClickHandler">鏌ョ湅浣跨敤鑼冨洿
-            </el-button>
-          </div>
+        <div ref="TreeBox" style="height: calc(100vh - 154px);!important;">
           <!-- 宸︿晶鏍�         -->
-          <div style="height:  calc(100vh - 280px);">
+          <div style="height:  calc(100vh - 190px);">
             <avue-tree :data="treeData" :option="treeOption" @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>
+              <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>
         </div>
@@ -36,6 +21,19 @@
 
     <el-main>
       <basic-container>
+        <avue-crud
+          ref="crud"
+          :data="data"
+          :option="option"
+          :table-loading="tableLoading"
+          @selection-change="selectChangeHandler"
+          @row-click="rowClickHandler">
+          <template slot="menuLeft">
+            <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">娣诲姞</el-button>
+            <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">绉婚櫎</el-button>
+          </template>
+        </avue-crud>
+        <action-dialog ref="actionDialog"></action-dialog>
       </basic-container>
     </el-main>
 
@@ -43,8 +41,188 @@
 </template>
 
 <script>
+import basicOption from "@/util/basic-option";
+import {
+  cloneUIContextData,
+  delUIContextData, expUIContextData,
+  getBizTree, getExpContextTree,
+  gridUIContextData,
+  saveUIContextData,
+  updateUIContextData
+} from "@/api/UI/uiDefine";
+import func from "@/util/func";
+import actionDialog from "@/views/modelingMenu/ui/Aciton/dialog"
+
 export default {
-  name: "index"
+  name: "index",
+  components:{actionDialog},
+  data() {
+    return {
+      treeOption: {
+        height: 'auto',
+        defaultExpandAll: true,
+        menu: false,
+        addBtn: false,
+        props: {
+          label: 'text',
+          value: 'oid',
+          children: 'children'
+        }
+      },
+      nodeRow: {},
+      treeData: [],
+      searchParams: {
+      },
+      tableLoading: false,
+      selectList: [],
+      option: {
+        ...basicOption,
+        calcHeight: -50,
+        addBtn: false,
+        editBtn: false,
+        delBtn: false,
+        tip: false,
+        searchMenuSpan: 6,
+        align: 'left',
+        menu:false,
+        column: [
+          {
+            label: '缂栧彿',
+            prop: 'plCode',
+            overHidden: true,
+            search: true
+          },
+          {
+            label: '鍚嶇О',
+            prop: 'plName',
+            overHidden: true,
+            search: true
+          },
+          {
+            label: 'C/S绫昏矾寰�',
+            prop: 'plCSClass',
+            search: true,
+            searchLabelWidth:120,
+            overHidden: true,
+          },
+          {
+            label: 'B/S閾炬帴鍦板潃',
+            prop: 'plBSUrl',
+            search: true,
+            searchLabelWidth:120,
+            overHidden: true,
+          },
+          {
+            label: '绫诲瀷',
+            prop: 'plTypeType',
+            search: true,
+            type: 'select',
+            width:100,
+            dicData: [{
+              label: '涓氬姟绫诲瀷',
+              value: 'business'
+            }, {
+              label: '閾炬帴绫诲瀷',
+              value: 'link'
+            }]
+          },
+          {
+            label: '鎻忚堪',
+            prop: 'plDesc',
+            search: true,
+            overHidden: true,
+          },
+        ]
+      },
+      data: [],
+    }
+  },
+  created() {
+    this.getTreeList();
+  },
+  methods: {
+    //鏍戣〃鏌ヨ
+    getTreeList() {
+      const loading = this.$loading({});
+      getBizTree().then(res => {
+        this.treeData = [res.data.obj];
+        loading.close();
+      }).catch(error => {
+        loading.close();
+      })
+    },
+    // 鏍戠偣鍑�
+    nodeClick(row) {
+      if (row.oid) {
+        this.nodeRow = row;
+        this.tableLoading = true;
+        this.getTableList();
+      }
+    },
+    getTableList() {
+      const params = Object.assign(this.searchParams, {
+        'conditionMap[btmName]': this.nodeRow.attributes.name,
+      })
+      gridUIContextData(1, 50, params).then(res => {
+        this.data = res.data.data;
+        this.$refs.crud.clearSelection();
+        this.tableLoading = false;
+      })
+    },
+    // 澶氶��
+    selectChangeHandler(row) {
+      this.selectList = row;
+    },
+    // 琛岀偣鍑�
+    rowClickHandler(row) {
+      func.rowClickHandler(
+        row,
+        this.$refs.crud,
+        this.lastIndex,
+        (newIndex) => {
+          this.lastIndex = newIndex;
+        },
+        () => {
+          this.selectList = [];
+        }
+      );
+    },
+
+    //鍒涘缓
+    addHandler() {
+      if (this.nodeRow && this.nodeRow.oid && this.nodeRow.oid!='') {
+        this.$refs.actionDialog.openDialog(this.nodeRow);
+      } else {
+        this.$message.error('璇烽�夋嫨涓氬姟绫诲瀷');
+      }
+    },
+    delHandler() {
+      if (this.selectList.length <= 0) {
+        this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      const params = {
+        oids: this.selectList.map(item => item.plOId).join(',')
+      }
+      this.$confirm('鏄惁绉婚櫎閫変腑鐨凙ction锛�', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        delUIContextData(params).then(res => {
+          if (res.data.code === 200) {
+            this.$message.success('鍒犻櫎鎴愬姛');
+            this.getTableList();
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '宸插彇娑堝垹闄�'
+        });
+      });
+    },
+  }
 }
 </script>
 
@@ -53,40 +231,5 @@
   .el-scrollbar__wrap {
     overflow: auto !important;
   }
-  .headerCon{
-    .el-button{
-      width: 82px;
-    }
-  }
 }
-
-.headerCon {
-  display: flex;
-  flex-wrap: wrap;
-  margin-bottom: 5px;
-
-  .el-button + .el-button {
-    margin-left: 5px;
-  }
-
-  .el-button {
-    margin-top: 5px;
-  }
-}
-
-.headerCon > .el-button:nth-child(4) {
-  margin-left: 0;
-}
-
-.headerCon > .el-button:nth-child(7) {
-  margin-left: 0;
-}
-
-
-.smallBtn {
-  width: 82px;
-  text-align: center;
-  padding-left: 4.5px;
-}
-
 </style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/dialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/dialog.vue
new file mode 100644
index 0000000..b7d3214
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/dialog.vue
@@ -0,0 +1,293 @@
+<template>
+  <el-dialog v-dialogDrag
+             :append-to-body="true"
+             :close-on-click-modal="false"
+             :destroy-on-close="true"
+             :title="dialog.title"
+             :visible.sync="dialog.showDialog"
+             class="avue-dialog"
+             width="1400px"
+             @close="cancelDialog">
+    <el-container>
+      <el-aside>
+        <basic-container>
+          <!-- 宸︿晶鏍� -->
+          <div style="height: 200px;">
+            <avue-tree
+              ref="tree"
+              v-model="treeForm"
+              :data="treeData"
+              :option="treeOption"
+              @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>
+
+      <el-main>
+        <basic-container>
+          <div>
+            <avue-crud
+              ref="crud"
+              :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>
+    </el-container>
+    <div slot="footer" class="dialog-footer avue-dialog__footer">
+      <el-button size="small" type="primary" @click="submitDialog">纭� 瀹�</el-button>
+      <el-button size="small" @click="cancelDialog">鍙� 娑�</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import {
+  getActionTree,
+  getActionTableData,
+  saveAction,
+  updateAction,
+  exportAction,
+  deleteAction,
+  getPLActionParam,
+  savePLActionParam,
+  updatePLActionParam,
+  deletePLActionParam,
+  saveActionCls,
+  updateActionCls,
+  deleteActionCls
+} from '@/api/UI/Action/api'
+import func from "@/util/func";
+import basicOption from "@/util/basic-option";
+import {clonePageDef, cloneTabButton, clonetabPage} from "@/api/UI/uiDefine";
+
+export default {
+  name: "index",
+  data() {
+    return {
+      dialog: {
+        showDialog: false,
+        title: "閫夋嫨Action",
+        loading: false,
+        type: "add",
+      },
+      currenRow: {}, // action褰撳墠琛屼俊鎭�
+      tableLoading: false,
+      lastIndex: null,
+      selectList: [],
+      data: [],
+      option: {
+        ...basicOption,
+        addBtn: false,
+        height: 200,
+        highlightCurrentRow: true,
+        menu:false,
+        column: [
+          {
+            label: '缂栧彿',
+            prop: 'plCode',
+            overHidden: true,
+            search: true
+          },
+          {
+            label: '鍚嶇О',
+            prop: 'plName',
+            overHidden: true,
+            search: true
+          },
+          {
+            label: 'C/S绫昏矾寰�',
+            prop: 'plCSClass',
+            search: true,
+            searchLabelWidth:120,
+            overHidden: true,
+          },
+          {
+            label: 'B/S閾炬帴鍦板潃',
+            prop: 'plBSUrl',
+            search: true,
+            searchLabelWidth:120,
+            overHidden: true,
+          },
+          {
+            label: '绫诲瀷',
+            prop: 'plTypeType',
+            search: true,
+            type: 'select',
+            width:100,
+            dicData: [{
+              label: '涓氬姟绫诲瀷',
+              value: 'business'
+            }, {
+              label: '閾炬帴绫诲瀷',
+              value: 'link'
+            }]
+          },
+          {
+            label: '鎻忚堪',
+            prop: 'plDesc',
+            search: true,
+            overHidden: true,
+          },
+        ]
+      },
+      treeNodeRow: {},
+      treeForm: {},
+      treeOption: {
+        addBtn: false,
+        defaultExpandedKeys: ['root'],
+        props: {
+          label: 'name',
+          value: 'id',
+          children: 'childs'
+        }
+      },
+      treeData: [],
+    }
+  },
+  created() {
+  },
+  methods: {
+    openDialog(data) {
+      this.dialog.showDialog = true;
+      this.getTreeList()
+      this.data = [];
+    },
+    cancelDialog() {
+      this.dialog.loading = false;
+      this.dialog.showDialog = false;
+    },
+    submitDialog() {
+      if (this.selectList.length==0) {
+        this.$message.error('璇烽�夋嫨Action');
+        return;
+      }
+      const saveFunction = {
+        'pageDef': ''
+      };
+      saveFunction[this.type](params).then(res => {
+        if(res.data.code == 200){
+          this.$message.success(res.data.obj);
+          this.cancelDialog();
+        }
+      })
+    },
+    // 宸︿晶鏍戣姹�
+    getTreeList(status) {
+      const params = {
+        isExp: status ? true : false
+      }
+      getActionTree(params).then(res => {
+        const data = res.data.obj;
+        this.treeData = [data];
+      })
+    },
+
+    // 宸︿晶鏍戣鐐瑰嚮
+    nodeClick(row) {
+      this.treeNodeRow = row;
+      this.getRightTableList(row);
+      this.bottomData = [];
+    },
+
+    // 澶撮儴鍒锋柊鎸夐挳
+    handleRefresh() {
+      if (func.isEmptyObject(this.treeNodeRow)) {
+        return;
+      }
+      this.getRightTableList(this.treeNodeRow);
+    },
+
+    // 鍙充晶琛ㄦ牸淇℃伅
+    getRightTableList(row) {
+      this.tableLoading = true;
+      const params = {
+        plactioncls: row.id
+      }
+      getActionTableData(params).then(res => {
+        const data = res.data.data;
+        this.data = data;
+        this.tableLoading = false;
+      })
+    },
+
+    // 琛ㄦ牸澶氶��
+    selectChangeHandler(row) {
+      this.selectList = row;
+    },
+
+    // 琛岀偣鍑�
+    rowClickHandler(row) {
+      this.currenRow = row;
+      func.rowClickHandler(
+        row,
+        this.$refs.crud,
+        this.lastIndex,
+        (newIndex) => {
+          this.lastIndex = newIndex;
+        },
+        () => {
+          this.selectList = [];
+        }
+      );
+    },
+
+    // 鎼滅储
+    handleSearch(params, done) {
+      if (func.isEmptyObject(this.treeNodeRow)) {
+        this.$message.error('璇峰厛鍦ㄥ乏渚ч�夋嫨鑺傜偣鍚庢搷浣�');
+        return done();
+      }
+      this.tableLoading = true;
+      const apiParams = {
+        plactioncls: this.treeNodeRow.id === 'root' ? '' : this.treeNodeRow.id,
+        ...params
+      }
+
+      getActionTableData(apiParams).then(res => {
+        const data = res.data.data;
+        this.data = data;
+        this.tableLoading = false;
+      })
+      done();
+    },
+
+    // 閲嶇疆鎼滅储鏉′欢
+    handleReset() {
+      if (func.isEmptyObject(this.treeNodeRow)) {
+        this.$message.error('璇峰厛鍦ㄥ乏渚ч�夋嫨鑺傜偣鍚庢搷浣�');
+        return;
+      }
+      this.getRightTableList(this.treeNodeRow);
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep {
+  .el-scrollbar__wrap {
+    overflow: auto !important;
+  }
+}
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue
index 873a1b4..6b235af 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue
@@ -180,10 +180,12 @@
         addBtn: false,
         height: 350,
         highlightCurrentRow: true,
+        menuWidth:160,
         column: [
           {
             label: '缂栧彿',
             prop: 'plCode',
+            overHidden: true,
             search: true,
             rules: [
               {
@@ -196,6 +198,7 @@
           {
             label: '鍚嶇О',
             prop: 'plName',
+            overHidden: true,
             search: true,
             rules: [
               {
@@ -206,9 +209,10 @@
             ]
           },
           {
-            label: '绫昏矾寰�',
+            label: 'C/S绫昏矾寰�',
             prop: 'plCSClass',
             search: true,
+            searchLabelWidth:120,
             overHidden: true,
           },
           {
@@ -231,15 +235,18 @@
             dicData: []
           },
           {
-            label: '閾炬帴鍦板潃',
+            label: 'B/S閾炬帴鍦板潃',
             prop: 'plBSUrl',
             search: true,
+            searchLabelWidth:120,
+            overHidden: true,
           },
           {
             label: '绫诲瀷',
             prop: 'plTypeType',
             search: true,
             type: 'select',
+            width:100,
             dicData: [{
               label: '涓氬姟绫诲瀷',
               value: 'business'
@@ -335,7 +342,9 @@
         const data = res.data.obj;
         this.treeData = [data];
         const selectTreeData = this.option.column.find(item => item.prop === 'plActionCls'); // 鎵惧埌action娣诲姞鍒嗙被鏍�
-        selectTreeData.dicData = [data];
+        const dicData=[data];
+        dicData[0].disabled=true;//鏍硅妭鐐逛笉鑳介��
+        selectTreeData.dicData = dicData;
       })
     },
 
@@ -719,11 +728,4 @@
     overflow: auto !important;
   }
 }
-
-.smallBtn {
-  width: 82px;
-  text-align: center;
-  padding-left: 4.5px;
-}
-
 </style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue
index 0bf39a8..3f3e282 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/index.vue
@@ -689,41 +689,5 @@
   .el-scrollbar__wrap {
     overflow: auto !important;
   }
-
-  .headerCon {
-    .el-button {
-      width: 82px;
-    }
-  }
 }
-
-.headerCon {
-  display: flex;
-  flex-wrap: wrap;
-  margin-bottom: 5px;
-
-  .el-button + .el-button {
-    margin-left: 5px;
-  }
-
-  .el-button {
-    margin-top: 5px;
-  }
-}
-
-.headerCon > .el-button:nth-child(4) {
-  margin-left: 0;
-}
-
-.headerCon > .el-button:nth-child(7) {
-  margin-left: 0;
-}
-
-
-.smallBtn {
-  width: 82px;
-  text-align: center;
-  padding-left: 4.5px;
-}
-
 </style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue
index ba6cc76..842412b 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog.vue
@@ -40,14 +40,13 @@
       </el-main>
     </el-container>
     <div class="dialog-footer avue-dialog__footer">
-      <el-button plain size="small" type="primary" @click="submitDialog">淇� 瀛�</el-button>
+      <el-button size="small" type="primary" @click="submitDialog">淇� 瀛�</el-button>
       <el-button size="small" @click="cancelDialog">鍙� 娑�</el-button>
     </div>
   </el-dialog>
 </template>
 
 <script>
-import {getUIAuthor} from "@/api/authority/ui/uiAuthor";
 import {getBizTree, getAllLevelTreeByBtm, clonePageDef, clonetabPage, cloneTabButton} from "@/api/UI/uiDefine";
 
 export default {
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue
index a3f0c72..14102a9 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue
@@ -40,7 +40,7 @@
       width="800px"
       @close="dialogClose"
     >
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small" style="margin-bottom: 30px;">
         <el-row>
           <el-col :span="12">
             <el-form-item label="椤甸潰缂栫爜锛�" prop="plCode">
@@ -93,9 +93,9 @@
           <div>4銆佽緭鍏ユ椂锛屼笉瑕佹暡鍥炶溅鎹㈣銆�</div>
         </div>
       </el-form>
-      <span slot="footer" class="dialog-footer">
-            <el-button @click="dialogClose">鍙� 娑�</el-button>
-            <el-button type="primary" @click="saveHandler">纭� 瀹�</el-button>
+      <span slot="footer" class="dialog-footer avue-dialog__footer">
+            <el-button  size="small" type="primary" @click="saveHandler">淇� 瀛�</el-button>
+            <el-button  size="small" @click="dialogClose">鍙� 娑�</el-button>
           </span>
     </el-dialog>
     <clone-dialog ref="cloneDialog" :fromOid="fromOid" :sourceOId="sourceOId" type="tabPage" paramsType="ui"></clone-dialog>
diff --git a/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue b/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue
index ae1270c..adbd870 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue
@@ -5,19 +5,24 @@
       ref="logCrud"
       :data="tableData"
       :option="option"
-      :page.sync="page"
       :table-loading="tableLoading"
       @on-load="getTableList"
-      @refresh-change="handleRefresh"
-      @search-change="handleSearch"
-      @search-reset="handleReset"
-      @size-change="sizeChange"
-      @current-change="currentChange"
+      @row-save="rowSaveHandler"
+      @row-update="rowUpdateHandler"
+      @row-del="rowDeleteHandler"
     >
       <template slot="menuLeft" slot-scope="scope">
         <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭</el-button>
       </template>
+      <template #menu="{row,index,size}">
+        <el-button icon="el-icon-user" type="text" size="small" @click="userHandler(row,index)">鍒嗛厤鎴愬憳</el-button>
+      </template>
     </avue-crud>
+    <!-- 鍒嗛厤鎴愬憳绌挎妗�   -->
+    <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData"
+              :transferTitle="transferTitle" title="鏂囦欢鏌滄坊鍔犳垚鍛�"
+              @transferSend="roleSendHandler">
+    </transfer>
   </basic-container>
 </template>
 
@@ -25,6 +30,8 @@
 import {exportLog, getLogListByContion} from "@/api/system/log/logBasic";
 import func from "@/util/func";
 import basicOption from "@/util/basic-option";
+import {addUser, deleteUser, updateUser} from "@/api/system/user/api";
+import {listUserByRoleOid, listUserUnInRoleOid, saveRight} from "@/api/system/role/api";
 
 export default {
   name: "index",
@@ -34,90 +41,123 @@
       tableData: [],
       option: {
         ...basicOption,
-        addBtn:false,
-        editBtn: false,
-        delBtn: false,
         calcHeight: -60,
         align:'left',
         headerAlign:'center',
-        menu:false,
-        searchMenuSpan: 6,
-        searchIcon:false,
+        menuWidth:260,
+        dialogMenuPosition: 'right',
+        dialogWidth:600,
         column: [
           {
             label: '鍗峰悕',
             prop: 'truename',
-            width: 300
-          }, {
-            label: '鏈哄櫒绫诲瀷',
-            prop: 'username',
-            width: 150
-          },{
-            label: '璺緞鍚嶇О',
-            prop: 'userIp'
-          },{
-            label: '棣栭�夎矾寰�',
-            prop: 'moduleName',
+            width: 200,
+            span: 24,
+            rules: [{ required: true, message: '璇疯緭鍏ュ嵎鍚�', trigger: 'blur' }]
           },{
             label: '鏈嶅姟鍣�',
             prop: 'type',
-            width: 150
+            span: 24,
+            rules: [{ required: true, message: '璇疯緭鍏ユ湇鍔″櫒', trigger: 'blur' }]
           },{
             label: '鍗锋湇鍔�',
             prop: 'date',
+            span: 24,
+            rules: [{ required: true, message: '璇疯緭鍏ュ嵎鏈嶅姟', trigger: 'blur' }]
+          }, {
+            label: '鏈哄櫒绫诲瀷',
+            prop: 'username',
+            width: 120,
+            span: 24,
+            type:'radio',
+            dicData:[{
+              label:'Unix',
+              value:'Unix'
+            },{
+              label:'Win NT',
+              value:'Win NT'
+            }],
+            value:'Win NT'
+          },{
+            label: '璺緞鍚嶇О',
+            prop: 'userIp',
+            span: 24,
+            overHidden: true,
+            rules: [{ required: true, message: '璇疯緭鍏ヨ矾寰勫悕绉�', trigger: 'blur' }]
+          },{
+            label: '棣栭�夎矾寰�',
+            prop: 'loc',
+            width: 120,
+            span: 24,
+            type: 'switch',
+            value:false
           }]
       },
-      page: {
-        currentPage: 1,
-        pageSize: 50,
-        total: 0,
-        pageSizes: [10, 30, 50, 100],
-      },
-      searchParams: {}
+      currentRow:null,
+      leftRoleData: [],  // 鍒嗛厤鎴愬憳绌挎妗嗗乏渚у垵濮嬫暟鎹�
+      rightRoleData: [], // 鍒嗛厤鎴愬憳绌挎妗嗗彸渚у垵濮嬫暟鎹�
+      transferTitle: ['鏂囦欢鏌滃鎴愬憳', '鏂囦欢鏌滃唴鎴愬憳'],
     }
   },
   methods: {
     // 琛ㄦ牸璇锋眰
     getTableList() {
       this.tableLoading = true;
-      getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType':this.$route.query.logType,...this.searchParams}).then(res => {
+      getLogListByContion(1, 50, {}).then(res => {
         this.tableData = res.data.data;
-        this.page.total = res.data.total;
         this.tableLoading = false;
       })
     },
 
-    // 鎼滅储鏌ヨ
-    handleSearch(params, done) {
-      this.searchParams = {
-        userName:params.truename,
-        ipText:params.userIp,
-        startDate:params.date[0],
-        endDate:params.date[1]
-      };
-
-      this.getTableList();
-      done();
+    // 鏂板
+    rowSaveHandler(row, done,loading) {
+      addUser(row).then(res => {
+        if (res.data.code === 200) {
+          this.$message.success(res.data.obj);
+          this.getTableList();
+          done();
+        }
+      }).catch(err => {
+        loading()
+      });
     },
 
-    // 閲嶇疆鎼滅储鏉′欢
-    handleReset() {
-      this.searchParams = {};
-      this.getTableList();
+    // 缂栬緫
+    rowUpdateHandler(row, index, done,loading) {
+      updateUser(row).then(res => {
+        if (res.data.code === 200) {
+          this.$message.success(res.data.obj);
+          this.getTableList();
+          done()
+        }
+      }).catch(err => {
+        loading()
+      });
     },
 
-    // 鏉℃暟
-    sizeChange(val) {
-      this.page.pageSize = val;
-    },
+    // 鍒犻櫎
+    rowDeleteHandler(row) {
+      let params = {
+        ids: row.id
+      }
 
-    // 椤电爜
-    currentChange(val) {
-      this.page.currentPage = val;
-    },
-
-    handleRefresh(){
-      this.getTableList();
+      this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎褰撳墠鐨勫嵎鑺傜偣鍚楋紵', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        deleteUser(params).then(res => {
+          if (res.data.code === 200) {
+            this.$message.success(res.data.obj);
+            this.getTableList();
+          }
+        });
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '宸插彇娑堝垹闄�'
+        });
+      });
     },
     // 瀵煎嚭
     exportClickHandler() {
@@ -129,6 +169,39 @@
         loading.close();
       })
     },
+
+    //鍒嗛厤鎴愬憳
+    userHandler(row,index){
+      this.currentRow=row;
+      Promise.all([
+        listUserUnInRoleOid({pkRole: row.id}),
+        listUserByRoleOid({pkRole: row.id})
+      ]).then(([unInRoleRes, byRoleRes]) => {
+        if (unInRoleRes.data.code === 200 && byRoleRes.data.code === 200) {
+          const leftData = [...unInRoleRes.data.data, ...byRoleRes.data.data];
+          // 缁勮濂界┛姊鍙敤鏁版嵁
+          this.leftRoleData = leftData.map(item => {
+            return {
+              name: item.name + `(${item.id})`,
+              oid: item.oid
+            }
+          })
+          this.rightRoleData = byRoleRes.data.data.map(item => item.oid);
+          this.$refs.transfer.visible = true;
+        }
+      });
+    },
+    // 鍒嗛厤鎴愬憳绌挎妗嗗洖濉�
+    roleSendHandler(row) {
+      let params = {
+        userOids: row.join(','),
+        roleId: this.currentRow.id
+      }
+      saveRight(params).then(res => {
+        this.$message.success(res.data.obj);
+        this.getTableList();
+      })
+    },
   }
 }
 </script>
diff --git a/Source/plt-web/plt-web-ui/src/views/system/log/index.vue b/Source/plt-web/plt-web-ui/src/views/system/log/index.vue
index 9b02091..08d3a02 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/log/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/log/index.vue
@@ -112,7 +112,7 @@
     // 琛ㄦ牸璇锋眰
     getTableList() {
       this.tableLoading = true;
-      getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType': this.$route.query.logType, ...this.searchParams}).then(res => {
+      getLogListByContion(this.page.currentPage, this.page.pageSize, {'logType': this.$route.query.logType,'roleType':this.$route.query.roleType, ...this.searchParams}).then(res => {
         this.tableData = res.data.data;
         this.page.total = res.data.total;
         this.tableLoading = false;
@@ -154,7 +154,7 @@
     // 瀵煎嚭
     exportClickHandler() {
       const loading = this.$loading({});
-      exportLog().then(res => {
+      exportLog({'pageNo':1,'pageSize':-1,'logType': this.$route.query.logType,'roleType':this.$route.query.roleType, ...this.searchParams}).then(res => {
         func.downloadFileByBlobHandler(res);
         this.createdLoading = false
         this.$message.success('瀵煎嚭鎴愬姛');
diff --git a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
index 80a085f..53aaddb 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue
@@ -30,7 +30,7 @@
       </template>
     </avue-crud>
 
-    <!-- 鍒嗛厤瑙掕壊绌挎妗�   -->
+    <!-- 鍒嗛厤鎴愬憳绌挎妗�   -->
     <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData"
               :transferTitle="transferTitle" title="瑙掕壊娣诲姞鎴愬憳"
               @transferSend="roleSendHandler">
@@ -296,8 +296,6 @@
           this.rightRoleData = byRoleRes.data.data.map(item => item.oid);
           this.$refs.transfer.visible = true;
         }
-      }).catch(err => {
-        console.error(err);
       });
 
     },
@@ -311,8 +309,6 @@
       saveRight(params).then(res => {
         this.$message.success(res.data.obj);
         this.getTableList();
-      }).catch(err => {
-        this.$message.error(err)
       })
     },
 
diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
index f51774b..2f6ccea 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
@@ -93,8 +93,8 @@
       </div>
 
       <div slot="footer" class="dialog-footer">
-        <el-button size="small" @click="pwdVisible = false">鍙� 娑�</el-button>
         <el-button size="small" type="primary" @click="savePwdHandler">纭� 瀹�</el-button>
+        <el-button size="small" @click="pwdVisible = false">鍙� 娑�</el-button>
       </div>
     </el-dialog>
 
@@ -119,8 +119,8 @@
       >
       </avue-crud>
       <div slot="footer" class="dialog-footer">
-        <el-button size="small" @click="departVisible = false">鍙� 娑�</el-button>
         <el-button size="small" type="primary" @click="saveDepartHandler">纭� 瀹�</el-button>
+        <el-button size="small" @click="departVisible = false">鍙� 娑�</el-button>
       </div>
     </el-dialog>
   </basic-container>
@@ -408,7 +408,6 @@
         }
       }).catch(err => {
         loading()
-        console.log(err);
       })
     },
 
@@ -439,7 +438,6 @@
         }
       }).catch(err => {
         loading()
-        console.log(err);
       });
     },
 

--
Gitblit v1.9.3