From 5388172791b961806c13c3ddd0af1fbdbb437940 Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期五, 27 十二月 2024 18:24:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue                            |    5 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue |  175 +++++++++++++--------
 Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue                        |   48 ++++-
 Source/plt-web/plt-web-ui/src/styles/ui.scss                                                   |    7 
 Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js                              |    8 +
 Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue                          |   11 +
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue                           |   76 ++++++---
 Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue                           |   49 ++++-
 Source/plt-web/plt-web-ui/src/App.vue                                                          |    8 
 Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue                        |   71 ++++++--
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/components/dialog.vue               |    6 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue            |    6 
 Source/plt-web/plt-web-ui/src/components/PLT-basic-component/input-icon.vue                    |    2 
 13 files changed, 322 insertions(+), 150 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/App.vue b/Source/plt-web/plt-web-ui/src/App.vue
index 20bdc54..e32eb14 100644
--- a/Source/plt-web/plt-web-ui/src/App.vue
+++ b/Source/plt-web/plt-web-ui/src/App.vue
@@ -5,6 +5,9 @@
   </div>
 </template>
 <script>
+import {getIcons} from "@/api/UI/Icons";
+import store from "@/store";
+
 export default {
   name: "app",
   data() {
@@ -12,7 +15,10 @@
   },
   watch: {},
   created() {
-
+    //鑾峰彇鎵�鏈夊浘鏍囷紝瀛樺湪session
+    getIcons().then(res => {
+      store.dispatch("setIcons", res.data.data);
+    })
   },
   methods: {},
   computed: {}
diff --git a/Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js b/Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js
index 3af0926..b5e4592 100644
--- a/Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js
+++ b/Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js
@@ -17,6 +17,14 @@
   });
 }
 
+// 鑾峰彇褰撳墠鐢ㄦ埛鍦ㄧ嚎浜烘暟淇℃伅
+export function getOnlinUsers() {
+  return request({
+    url: "/api/hmSysModConfigController/getOnlinUsers",
+    method: "get",
+  });
+}
+
 // 閰嶇疆椤规煡璇�
 export function getAppConfigDetailsByID(params) {
   return request({
diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/input-icon.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/input-icon.vue
index 1b14178..a0596a1 100644
--- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/input-icon.vue
+++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/input-icon.vue
@@ -14,7 +14,7 @@
                @close="dialogClose">
       <div style="display: flex;justify-content: space-between;flex-wrap: wrap">
         <div class="tag-group">
-          <span class="tag-group__title">鍒嗙被</span>
+          <span class="tag-group__title" v-if="types.length>0">鍒嗙粍</span>
           <el-tag
             v-for="item in types"
             :key="item.key"
diff --git a/Source/plt-web/plt-web-ui/src/styles/ui.scss b/Source/plt-web/plt-web-ui/src/styles/ui.scss
index 19ebae7..bc94532 100644
--- a/Source/plt-web/plt-web-ui/src/styles/ui.scss
+++ b/Source/plt-web/plt-web-ui/src/styles/ui.scss
@@ -377,7 +377,7 @@
   margin-top: 0 !important;
 }
 .avue-dialog .el-dialog__body{
-  padding: 20px 20px 0px 20px; // 涓婂彸涓嬪乏 鍙栨秷琛ㄦ牸涓嬭竟璺濓紙浼氬嚭鐜版粴鍔ㄦ潯锛�
+  padding: 15px 15px 0px 15px; // 涓婂彸涓嬪乏 鍙栨秷琛ㄦ牸涓嬭竟璺濓紙浼氬嚭鐜版粴鍔ㄦ潯锛�
   margin-bottom: 10px !important;
 }
 .avue-dialog .el-dialog__body .avue-form{
@@ -528,7 +528,7 @@
 }
 
 /*
-鏍�
+  鏍�
  */
 /***闅愯棌鏍戞噿鍔犺浇鏃惰妭鐐逛笂鐨刲oading锛岄槻姝㈣妭鐐规姈鍔�*****/
 .el-tree .el-tree-node__loading-icon{
@@ -540,6 +540,9 @@
   height: 14px !important;
   margin-right: 3px;
 }
+.el-tree-node__label [class*=" el-icon-"],.el-tree-node__label [class^=el-icon-]{
+  font-size: 14px;margin-top: 3px;
+}
 
 .el-select{
   width: 100%;
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/components/dialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/components/dialog.vue
index ed80440..fa491cb 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/components/dialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/components/dialog.vue
@@ -163,6 +163,7 @@
       this.dialog.loading = false;
       this.dialog.showDialog = false;
       this.$refs.tree.setCurrentKey(null);
+      this.$emit('cancelAction',null);
     },
     submitDialog() {
       if (this.selectList.length==0) {
@@ -179,8 +180,9 @@
         this.$emit('updataAction', this.selectList[0]);
       }
 
-      this.cancelDialog();
-
+      this.dialog.loading = false;
+      this.dialog.showDialog = false;
+      this.$refs.tree.setCurrentKey(null);
     },
     // 宸︿晶鏍戣姹�
     getTreeList(status) {
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 19d7f72..fcf06d1 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
@@ -23,28 +23,34 @@
 
     <el-main>
       <basic-container v-if="treeNodeRow.id === 'root' ">
-        <div class="headerCon">
-          <el-button v-if="permissionList.addBtn" icon="el-icon-plus" plain size="small" type="primary" @click="addTreeClickHandler">鍒涘缓
-          </el-button>
-          <!--<el-button v-if="permissionList.editBtn" icon="el-icon-edit" plain size="small" type="primary" @click="editTreeClickHandler">淇敼
-          </el-button>
-          <el-button v-if="permissionList.delBtn" icon="el-icon-delete" plain size="small" type="danger" @click="delTreeClickHandler">鍒犻櫎
-          </el-button>-->
-          <el-button v-if="permissionList.importBtn" icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">瀵煎叆
-          </el-button>
-          <el-button v-if="permissionList.exportBtn" icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭
-          </el-button>
-        </div>
         <div>
           <avue-crud
             ref="treeCrud"
             v-model="treeForm"
-            :data="treeData[0].childs"
+            :data="treeData[0].children"
             :option="treeCrudOption"
             @row-del="rowTreeDelHandler"
             @row-save="rowTreeSaveHandler"
             @row-update="rowTreeUpdataHandler"
             @refresh-change="handleRefresh">
+            <template slot="menuLeft">
+              <el-button v-if="permissionList.addBtn" icon="el-icon-plus" plain size="small" type="primary" @click="addTreeClickHandler(treeNodeRow)">鍒涘缓
+              </el-button>
+              <!--<el-button v-if="permissionList.editBtn" icon="el-icon-edit" plain size="small" type="primary" @click="editTreeClickHandler">淇敼
+              </el-button>
+              <el-button v-if="permissionList.delBtn" icon="el-icon-delete" plain size="small" type="danger" @click="delTreeClickHandler">鍒犻櫎
+              </el-button>-->
+              <el-button v-if="permissionList.importBtn" icon="el-icon-upload2" plain size="small" type="primary" @click="uploadClickHandler">瀵煎叆
+              </el-button>
+              <el-button v-if="permissionList.exportBtn" icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭
+              </el-button>
+            </template>
+            <template #menu="{ row, size }">
+              <el-button v-if="permissionList.addBtn" :size="size" icon="el-icon-plus"
+                         text
+                         type="text"
+                         @click="addTreeClickHandler(row)">鏂板瀛愮骇</el-button>
+            </template>
           </avue-crud>
         </div>
       </basic-container>
@@ -174,7 +180,7 @@
         props: {
           label: 'name',
           value: 'id',
-          children: 'childs'
+          children: 'children'
         }
       },
       treeData: []
@@ -206,10 +212,13 @@
         addBtn: false,
         calcHeight: -50,
         highlightCurrentRow: true,
-        menuWidth: 160,
+        rowKey: 'id',
+        rowParentKey: 'pid',
+        menuWidth: 300,
         span: 24,
         labelWidth: 100,
         dialogWidth: '800',
+        align:'left',
         column: [{
           label: '鍒嗙被鍚嶇О',
           prop: 'name',
@@ -229,11 +238,6 @@
         }, {
           label: '鐖朵富绫�',
           prop: 'pidName',
-          formatter:function(row){
-            if(row.pid=='root'){
-              return 'Action鍒嗙被'
-            }
-          },
           disabled: true,
           span: 24
         }, {
@@ -396,7 +400,7 @@
       }
       getActionTree(params).then(res => {
         const data = res.data.obj;
-        this.treeData = [data];
+        this.treeData = this.treeDataFormAtter([data],'Action鍒嗙被');
         const selectTreeData = this.option.column.find(item => item.prop === 'plActionCls'); // 鎵惧埌action娣诲姞鍒嗙被鏍�
         const dicData=[data];
         dicData[0].disabled=true;//鏍硅妭鐐逛笉鑳介��
@@ -404,11 +408,25 @@
       })
     },
 
+    treeDataFormAtter(items,pidName) {
+      return items.map(item => {
+        // 杞崲褰撳墠鑺傜偣鐨勫睘鎬�
+        const formList = {
+          ...item,
+          pidName:pidName,
+          children: item.childs && item.childs.length > 0 ? this.treeDataFormAtter(item.childs,item.name) : undefined
+        };
+        return formList;
+      });
+    },
+
     // 宸︿晶鏍戣鐐瑰嚮
     nodeClick(row) {
       this.treeNodeRow = row;
-      this.getRightTableList(row);
-      this.bottomData = [];
+      if(this.treeNodeRow.id !== 'root'){
+        this.getRightTableList(row);
+        this.bottomData = [];
+      }
     },
 
     // 澶撮儴鍒锋柊鎸夐挳
@@ -675,16 +693,20 @@
     },
 
     // 宸︿晶鏍戝垱寤�
-    addTreeClickHandler() {
-      if (func.isEmptyObject(this.treeNodeRow)) {
+    addTreeClickHandler(row) {
+      let parentRow=row;
+      if(!row || !row.id){
+        parentRow=this.treeNodeRow
+      }
+      if (func.isEmptyObject(parentRow)) {
         this.$message.error('璇烽�夋嫨涓�鏉″垎绫昏繘琛屾坊鍔�');
         return;
       }
-      if (!this.treeNodeRow.id && this.treeNodeRow.name=='鏈垎绫�') {
+      if (!parentRow.id && parentRow.name=='鏈垎绫�') {
         this.$message.error('鏈垎绫讳笅涓嶈兘鍒涘缓瀛愬垎绫�');
         return;
       }
-      const {createTime, creator, name, id, description} = this.treeNodeRow;
+      const {createTime, creator, name, id, description} = parentRow;
       this.$set(this.treeForm, 'createTime', func.formattedDate(createTime));
       this.$set(this.treeForm, 'creator', creator);
       this.$set(this.treeForm, 'pid', id);
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue
index 6836e8e..17f529e 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue
@@ -4,7 +4,7 @@
       <basic-container>
         <div style="display: flex;justify-content: space-between;flex-wrap: wrap">
           <div class="tag-group">
-            <span class="tag-group__title">鍒嗙粍</span>
+            <span class="tag-group__title" v-if="types.length>0">鍒嗙粍</span>
             <el-tag
               v-for="item in types"
               :key="item.key"
@@ -226,7 +226,8 @@
   },
   created() {
     this.getGroups();
-    this.initList();  },
+    this.initList();
+  },
   methods:{
     getGroups() {
       getDicts('EnumIconGroups').then(res => {
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 8f682cd..ad32bea 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
@@ -109,28 +109,28 @@
       append-to-body="true"
       class="avue-dialog"
       title="閰嶇疆鎸夐挳"
-      width="75%"
-      @close="dialogClose">
+      width="1200px"
+      @close="$refs.form.clearValidate();disabledBtn=true;">
       <el-container v-loading="dialogLoading">
-        <el-header style="height: 40px !important;">
+        <el-header style="height: 40px !important;padding-left: 5px;">
           <div style="display: flex">
-            <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="addClickBtnHandler">娣诲姞
+            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="primary" @click="addClickBtnHandler">娣诲姞
             </el-button>
-            <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="editClickBtnHandler">淇敼
+            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="primary" @click="editClickBtnHandler">淇敼
             </el-button>
-            <el-button :disabled="!disabledBtn" plain size="mini" type="danger" @click="delClickBtnHandler">鍒犻櫎
+            <el-button v-show="disabledBtn" :disabled="!disabledBtn" plain size="mini" type="danger" @click="delClickBtnHandler">鍒犻櫎
             </el-button>
-            <el-button :disabled="disabledBtn" plain size="mini" type="primary" @click="saveClickBtnHandler">淇濆瓨
+            <el-button v-show="!disabledBtn" :disabled="disabledBtn" plain size="mini" icon="el-icon-check" type="success" @click="saveClickBtnHandler">淇濆瓨
             </el-button>
-            <el-button :disabled="disabledBtn" plain size="mini" type="primary" @click="escClickBtnHandler">鍙栨秷
+            <el-button v-show="!disabledBtn" :disabled="disabledBtn" plain size="mini" icon="el-icon-close" type="danger" @click="escClickBtnHandler">鍙栨秷
             </el-button>
-            <el-button plain size="mini" type="primary" @click="changeBottomBtnHandler">璋冩暣涓轰笅绾ф寜閽�</el-button>
-            <el-button plain size="mini" type="primary" @click="changeTopBtnHandler">璋冩暣涓轰笂绾ф寜閽�</el-button>
-            <el-button plain size="mini" type="primary" @click="cloneClickBtnHandler">澶嶅埗鍒板叾浠栫粍浠�</el-button>
+            <el-button v-show="disabledBtn"  plain size="mini" type="primary" @click="changeBottomBtnHandler">璋冩暣涓轰笅绾ф寜閽�</el-button>
+            <el-button v-show="disabledBtn"  plain size="mini" type="primary" @click="changeTopBtnHandler">璋冩暣涓轰笂绾ф寜閽�</el-button>
+            <el-button v-show="disabledBtn"  plain size="mini" type="primary" @click="cloneClickBtnHandler">澶嶅埗鍒板叾浠栫粍浠�</el-button>
           </div>
         </el-header>
         <el-container>
-          <el-aside width="20%">
+          <el-aside width="25%">
             <basic-container>
               <div style="height:650px;">
                 <avue-tree
@@ -141,9 +141,10 @@
                   node-key="value"
                   @node-click="nodeTreeClick">
                   <span slot-scope="{ node, data }" class="el-tree-node__label">
-                    <span style="font-size: 14px">
-                    <i class="el-icon-s-promotion"></i>
-                      {{ (node || {}).label }}
+                    <span style="display: flex">
+                      <i v-if="data.oId=='parentNode'" class="iconShow el-icon-s-home"></i>
+                      <icon-show v-else :name="data.iconPath"></icon-show>
+                        {{ (node || {}).label }}
                     </span>
                   </span>
                 </avue-tree>
@@ -154,30 +155,29 @@
           <el-main>
             <basic-container>
               <el-divider content-position="left">鍩虹淇℃伅</el-divider>
-              <el-form ref="form" :model="basicForm" :rules="rules" label-width="90px" size="small"
+              <el-form ref="form" :model="basicForm" :rules="rules" label-width="100px" size="small"
                        style="margin-top: 20px">
                 <el-row>
-                  <el-form-item :inline-message='true' label="缂栧彿锛�" prop="seq">
-                    <el-input-number v-model="basicForm.seq" :disabled="disabledBtn" :max="9999" :min="1"
-                                     controls-position="right"></el-input-number>
-                  </el-form-item>
+                  <el-col :span="12">
+                    <el-form-item :inline-message='true' label="缂栧彿锛�" prop="seq">
+                      <el-input-number v-model="basicForm.seq" :disabled="disabledBtn" :max="9999" :min="1"
+                                       controls-position="right"></el-input-number>
+                    </el-form-item>
+                  </el-col>
 
-                  <el-form-item :inline-message='true' label="鍚嶇О锛�" prop="label">
-                    <el-col :span="14">
-                      <el-input v-model="basicForm.label" :readonly="disabledBtn"></el-input>
-                    </el-col>
-                  </el-form-item>
+                  <el-col :span="12">
+                    <el-form-item :inline-message='true' label="鍚嶇О锛�" prop="label">
+                      <el-input v-model="basicForm.label" :disabled="disabledBtn"></el-input>
+                    </el-form-item>
+                  </el-col>
 
-                  <el-form-item label="Action锛�" prop="Action">
-                    <el-col :span="14">
-                      <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>
+                  <el-col :span="12">
+                    <el-form-item label="Action锛�" prop="actionName">
+                      <el-input v-model="basicForm.actionName" :disabled="disabledBtn" :clearable="true" @focus="actionFoucus" @clear="clearActionValue">
+                        <i slot="suffix" class="el-input__icon el-icon-search" style="cursor: pointer" @click="actionFoucus"></i>
+                      </el-input>
+                    </el-form-item>
+                  </el-col>
 
                   <el-col :span="12">
                     <el-form-item label="鏄惁鎺堟潈锛�" prop="authorization">
@@ -185,7 +185,8 @@
                       <el-radio v-model="basicForm.authorization" :disabled="disabledBtn" label="1">鍚�</el-radio>
                     </el-form-item>
                   </el-col>
-
+                  <el-col :span="24">
+                  </el-col>
                   <el-col :span="12">
                     <el-form-item label="鏄惁鏄剧ず锛�" prop="show">
                       <el-radio v-model="basicForm.show" :disabled="disabledBtn" label="0">鏄�</el-radio>
@@ -193,18 +194,22 @@
                     </el-form-item>
                   </el-col>
 
-                  <el-col :span="12">
+                  <el-col :span="12" v-show="basicForm.show=='0'">
                     <el-form-item label="鏄剧ず鏂瑰紡锛�" prop="showType">
                       <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="text">鏂囧瓧</el-radio>
                       <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="image">鍥炬爣</el-radio>
-                      <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="textandimage">鏂囧瓧鍜屽浘鏍�
-                      </el-radio>
+                      <el-radio v-model="basicForm.displayMode" :disabled="disabledBtn" label="textandimage">鏂囧瓧鍜屽浘鏍�</el-radio>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="24" v-show="basicForm.show=='0' && (basicForm.displayMode=='image'||basicForm.displayMode=='textandimage')">
+                    <el-form-item label="鍥炬爣锛�" prop="iconPath">
+                      <input-icon v-model="basicForm.iconPath" :disabled="disabledBtn"></input-icon>
                     </el-form-item>
                   </el-col>
 
-                  <el-col :span="12">
+                  <el-col :span="24">
                     <el-form-item label="鎻愮ず淇℃伅锛�" prop="desc">
-                      <el-input v-model="basicForm.desc" :readonly="disabledBtn" type="textarea"></el-input>
+                      <el-input v-model="basicForm.desc" :disabled="disabledBtn" type="textarea"></el-input>
                     </el-form-item>
                   </el-col>
 
@@ -241,7 +246,7 @@
         </el-container>
       </el-container>
     </el-dialog>
-    <action-dialog ref="actionDialog" @updataAction="actionSaveHandler"></action-dialog>
+    <action-dialog ref="actionDialog" @cancelAction="actionCancelHandler" @updataAction="actionSaveHandler"></action-dialog>
     <clone-dialog ref="cloneDialog" :fromOid="fromOid" :sourceOId="sourceOId" paramsType="tab"
                   type="pageDef"></clone-dialog>
     <clone-dialog ref="cloneBtnDialog" :fromOid="formBtnOid" :sourceOId="sourceBtnOid" paramsType="pageDef"
@@ -358,10 +363,13 @@
         editBtn: false,
         delBtn: false,
         refreshBtn: false,
+        dialogWidth:'600',
+        menuWidth:'150',
         column: [
           {
             label: '鍚嶇О',
             prop: 'name',
+            width:180,
             span: 24,
             rules: [
               {
@@ -374,6 +382,7 @@
           {
             label: '鍊�',
             prop: 'value',
+            type:'textarea',
             span: 24,
             rules: [
               {
@@ -391,6 +400,9 @@
         ],
         label: [
           {required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur'},
+        ],
+        actionName: [
+          {required: true, message: '璇烽�夋嫨Action', trigger: 'blur'},
         ],
       },
       // 鎸夐挳璁捐 鍩虹淇℃伅
@@ -1176,6 +1188,7 @@
         value: value
       })) : [];
       this.disabledBtn = true;
+      this.$refs.form.clearValidate()
     },
 
     // 鎸夐挳璁捐鍙傛暟淇℃伅鍒犻櫎
@@ -1253,37 +1266,47 @@
 
     // 鎸夐挳璁捐淇濆瓨
     saveClickBtnHandler() {
-      this.dialogLoading = true;
-      const saveFunction = this.saveType === 'add' ? addTapButton : updateTapButton;
-      const bottomParams = {};
-      if (this.paramsData.length > 0) {
-        this.paramsData.forEach(item => {
-          bottomParams[item.name] = item.value
-        })
+      if (this.basicForm.show == '0' && (this.basicForm.displayMode == 'image' || this.basicForm.displayMode == 'textandimage') && this.basicForm.iconPath == '') {
+        this.$message.error('璇烽�夋嫨鍥炬爣');
+        return;
       }
+      this.$refs.form.validate((valid, done) => {
+        if (valid) {
+          this.dialogLoading = true;
+          const saveFunction = this.saveType === 'add' ? addTapButton : updateTapButton;
+          const bottomParams = {};
+          if (this.paramsData.length > 0) {
+            this.paramsData.forEach(item => {
+              bottomParams[item.name] = item.value
+            })
+          }
+          const params = this.saveType === 'add' ? {
+            ...this.basicForm,
+            parentId: this.nodeTreeRow.oId === 'parentNode' ? '' : this.nodeTreeRow.parentId,
+            buttonParams: bottomParams,
+            tableOId: this.selectList[0].id
+          } : {
+            ...this.basicForm,
+            buttonParams: bottomParams
+          }
 
-      const params = this.saveType === 'add' ? {
-        ...this.basicForm,
-        parentId: this.nodeTreeRow.oId === 'parentNode' ? '' : this.nodeTreeRow.parentId,
-        buttonParams: bottomParams,
-        tableOId: this.selectList[0].id
-      } : {
-        ...this.basicForm,
-        buttonParams: bottomParams
-      }
-
-      saveFunction(params).then(res => {
-        if (res.data.code === 200) {
-          this.$message.success(res.data.obj);
-          this.disabledBtn = true;
-          this.getTabBtnTree();
-          this.basicForm = {};
-          this.paramsData = [];
-          this.dialogLoading = false;
+          saveFunction(params).then(res => {
+            if (res.data.code === 200) {
+              this.$message.success(res.data.obj);
+              this.disabledBtn = true;
+              this.getTabBtnTree();
+              this.basicForm = {};
+              this.paramsData = [];
+              this.dialogLoading = false;
+            }
+          }).catch(err => {
+            this.dialogLoading = false;
+          })
+        } else {
+          return false;
         }
-      }).catch(err => {
-        this.dialogLoading = false;
-      })
+        done();
+      });
     },
 
     // 鎸夐挳璁捐鍒犻櫎
@@ -1342,8 +1365,20 @@
     actionSaveHandler(val) {
       this.$set(this.basicForm, 'actionName', val.plName);
       this.$set(this.basicForm, 'actionOId', val.plOId);
+      this.$refs.form.clearValidate('Action')
+    },
+    // action閫夋嫨寮圭獥鐩存帴鍏抽棴
+    actionCancelHandler() {
+      if(this.basicForm.actionOId){
+        this.$refs.form.clearValidate('Action')
+      }
     },
 
+    //娓呴櫎action
+    clearActionValue(){
+      this.$set(this.basicForm, 'actionName', '');
+      this.$set(this.basicForm, 'actionOId', '');
+    },
     // 鎵撳紑鍏嬮殕瀵硅瘽妗�
     rowCloneHandler(row) {
       this.fromOid = this.sourceData.plOId;
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 1429d44..c1146d4 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
@@ -54,7 +54,8 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="搴忓彿锛�" prop="plSeq">
-              <el-input v-model="form.plSeq"></el-input>
+              <el-input-number  v-model="form.plSeq" :max="9999" :min="1"
+                                controls-position="right"></el-input-number >
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -324,7 +325,7 @@
     },
     // 缂栬緫鎸夐挳
     rowEditBtnClick(row) {
-      this.form=row;
+      this.form=JSON.parse(JSON.stringify(row));
       this.dialogType = 'edit';
       this.dialogVisible = true;
     },
@@ -388,6 +389,7 @@
         } else {
           return false;
         }
+        done();
       });
     },
     rowCloneHandler(row) {
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
index 4942a5a..e8040ab 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
@@ -69,15 +69,37 @@
           <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">鍒犻櫎
           </el-button>
         </div>
-        <el-form ref="form" :model="form" label-width="85px" size="small" style="max-height: calc(100vh - 200px);overflow: auto;">
+        <el-form ref="form" :model="form" label-width="100px" size="small"
+                 style="max-height: calc(100vh - 200px);overflow: auto;">
           <span v-if="form.category !== 1">
-            <el-form-item label="妯″潡鍚嶏細">
+            <el-form-item>
+               <span slot="label" style="display:inline-block;">
+                鑿滃崟鏍囪瘑锛�
+                 <el-tooltip class="item" content="璇疯緭鍏ヨ嫳鏂囧瓧绗︼紝骞朵繚璇佸敮涓�鎬э紒" effect="dark" placement="top-start">
+                   <i class='el-icon-star-on' style="color: #F56C6C"/>
+                </el-tooltip>
+               </span>
+              <el-input v-model="form.alias" :disabled="!editStatus && !addStatus"
+                        placeholder="璇疯緭鍏ヨ嫳鏂囧瓧绗︼紝骞朵繚璇佸敮涓�鎬э紒"></el-input>
+            </el-form-item>
+               <el-form-item>
+               <span slot="label" style="display:inline-block;">
+                妯″潡鍚嶏細
+                 <i class='el-icon-star-on' style="color: #F56C6C"/>
+               </span>
             <el-input v-model="form.name" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input>
-          </el-form-item>
-          <el-form-item label="妯″潡鍒悕锛�">
-            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="妯″潡鍒悕鐢ㄦ潵璁板綍鏃ュ織浣跨敤"></el-input>
-          </el-form-item>
-                <el-form-item v-if="form.functionType === 0" label="C/S锛�">
+            </el-form-item>
+            <el-form-item>
+               <span slot="label" style="display:inline-block;">
+                搴忓彿锛�
+                  <el-tooltip class="item" content="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�" effect="dark" placement="top-start">
+                   <i class='el-icon-star-on' style="color: #F56C6C"/>
+                </el-tooltip>
+               </span>
+            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
+                      placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input>
+            </el-form-item>
+            <el-form-item v-if="form.functionType === 0" label="C/S锛�">
             <el-input v-model="form.pathC" :disabled="!editStatus && !addStatus" :rows="2" placeholder="璇疯緭鍏/S璺緞"
                       type="textarea"></el-input>
           </el-form-item>
@@ -88,10 +110,6 @@
           <el-form-item v-if="form.functionType === 0" label=".NET锛�">
             <el-input v-model="form.resourceDotNet" :disabled="!editStatus && !addStatus" :rows="2"
                       placeholder="璇疯緭鍏�.NET" type="textarea"></el-input>
-          </el-form-item>
-          <el-form-item label="搴忓彿锛�">
-            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
-                      placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input>
           </el-form-item>
           <el-form-item label="鍥炬爣锛�">
               <input-icon v-model="form.source" :disabled="!editStatus && !addStatus" placeholder="璇烽�夋嫨鍥炬爣">
@@ -311,6 +329,10 @@
         this.$message.error('妯″潡鍚嶄笉鑳戒负绌�');
         return
       }
+      if (!this.form.alias) {
+        this.$message.error('鑿滃崟鏍囪瘑涓嶈兘涓虹┖');
+        return
+      }
       if (this.form.name.length > 128) {
         this.$message.error('妯″潡鍚嶉暱搴︿笉鑳借秴杩�128锛�');
         return
@@ -355,6 +377,10 @@
         this.$message.error('妯″潡鍚嶄笉鑳戒负绌�');
         return
       }
+      if (!this.form.alias) {
+        this.$message.error('鑿滃崟鏍囪瘑涓嶈兘涓虹┖');
+        return
+      }
       if (this.form.name.length > 128) {
         this.$message.error('妯″潡鍚嶉暱搴﹁秴杩�128锛�');
         return
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
index 07d2c1a..6140b5b 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
@@ -69,18 +69,39 @@
           <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">鍒犻櫎
           </el-button>
         </div>
-        <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 200px);overflow: auto;">
+        <el-form ref="form" :model="form" label-width="100px" style="max-height: calc(100vh - 200px);overflow: auto;">
           <span v-if="form.category !== 1">
-            <el-form-item label="妯″潡鍚嶏細">
+            <el-form-item>
+               <span slot="label" style="display:inline-block;">
+                鑿滃崟鏍囪瘑锛�
+                 <el-tooltip class="item" effect="dark" content="璇疯緭鍏ヨ嫳鏂囧瓧绗︼紝骞朵繚璇佸敮涓�鎬э紒" placement="top-start">
+                   <i class='el-icon-star-on' style="color: #F56C6C"/>
+                </el-tooltip>
+               </span>
+              <el-input v-model="form.alias" :disabled="!editStatus && !addStatus"
+                      placeholder="璇疯緭鍏ヨ嫳鏂囧瓧绗︼紝骞朵繚璇佸敮涓�鎬э紒"></el-input>
+            </el-form-item>
+            <el-form-item>
+               <span slot="label" style="display:inline-block;">
+                妯″潡鍚嶏細
+                 <i class='el-icon-star-on' style="color: #F56C6C"/>
+               </span>
             <el-input v-model="form.name" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input>
-          </el-form-item>
-          <el-form-item label="妯″潡鍒悕锛�">
-            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="妯″潡鍒悕鐢ㄦ潵璁板綍鏃ュ織浣跨敤"></el-input>
-          </el-form-item>
-                <el-form-item v-if="form.functionType === 0" label="C/S锛�">
+            </el-form-item>
+           <el-form-item>
+               <span slot="label" style="display:inline-block;">
+                搴忓彿锛�
+                  <el-tooltip class="item" content="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�" effect="dark" placement="top-start">
+                   <i class='el-icon-star-on' style="color: #F56C6C"/>
+                </el-tooltip>
+               </span>
+            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
+                      placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input>
+            </el-form-item>
+            <el-form-item v-if="form.functionType === 0" label="C/S锛�">
             <el-input v-model="form.pathC" :disabled="!editStatus && !addStatus" :rows="2" placeholder="璇疯緭鍏/S璺緞"
                       type="textarea"></el-input>
-          </el-form-item>
+            </el-form-item>
           <el-form-item v-if="form.functionType === 0" label="B/S锛�">
             <el-input v-model="form.path" :disabled="!editStatus && !addStatus" :rows="2" placeholder="璇疯緭鍏/S璺緞"
                       type="textarea"></el-input>
@@ -88,10 +109,6 @@
           <el-form-item v-if="form.functionType === 0" label=".NET锛�">
             <el-input v-model="form.resourceDotNet" :disabled="!editStatus && !addStatus" :rows="2"
                       placeholder="璇疯緭鍏�.NET" type="textarea"></el-input>
-          </el-form-item>
-          <el-form-item label="搴忓彿锛�">
-            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
-                      placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input>
           </el-form-item>
           <el-form-item label="鍥炬爣锛�">
               <input-icon v-model="form.source" :disabled="!editStatus && !addStatus" placeholder="璇烽�夋嫨鍥炬爣">
@@ -311,6 +328,10 @@
         this.$message.error('妯″潡鍚嶄笉鑳戒负绌�');
         return
       }
+      if (!this.form.alias) {
+        this.$message.error('鑿滃崟鏍囪瘑涓嶈兘涓虹┖');
+        return
+      }
       if (this.form.name.length > 128) {
         this.$message.error('妯″潡鍚嶉暱搴︿笉鑳借秴杩�128锛�');
         return
@@ -355,6 +376,10 @@
         this.$message.error('妯″潡鍚嶄笉鑳戒负绌�');
         return
       }
+      if (!this.form.alias) {
+        this.$message.error('鑿滃崟鏍囪瘑涓嶈兘涓虹┖');
+        return
+      }
       if (this.form.name.length > 128) {
         this.$message.error('妯″潡鍚嶉暱搴﹁秴杩�128锛�');
         return
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
index 7f72b04..2a1127a 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
@@ -6,8 +6,8 @@
           <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" node-key="id"
                      @node-click="nodeClick">
           <span slot-scope="{ node, data }" class="el-tree-node__label">
-           <span>
-              <i class="el-icon-s-promotion"></i>
+           <span style="display: flex">
+              <icon-show :name="data.icon"></icon-show>
                 {{ (node || {}).label }}
             </span>
           </span>
@@ -53,6 +53,10 @@
           </el-form-item>
           <el-form-item label="鍒悕锛�">
             <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ュ埆鍚�"></el-input>
+          </el-form-item>
+          <el-form-item label="鍥炬爣锛�">
+            <input-icon v-model="form.source" :disabled="!editStatus && !addStatus" placeholder="璇烽�夋嫨鍥炬爣">
+            </input-icon>
           </el-form-item>
           <el-form-item label="椤哄簭锛�">
             <el-input-number v-model="form.sort" :disabled="!editStatus && !addStatus" :max="9999" :min="0"
@@ -106,7 +110,8 @@
                 ...item,
                 id: item.id,
                 name: item.name,
-                leaf: !item.hasChildren
+                leaf: !item.hasChildren,
+                icon: item.source || 'iconoir:home'
               }
             }))
           })
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue
index 9fb216f..df30d90 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue
@@ -1,41 +1,78 @@
 <template>
   <basic-container>
-    <div class="container">
-      <el-form ref="form" :model="form" label-width="150px">
-        <el-form-item label="褰撳墠鍦ㄧ嚎鐢ㄦ埛浜烘暟">
-          <div style="display: flex;">
-            <el-input v-model="form.currentOnlineUser" :readOnly="true"></el-input>
-            <el-button plain type="primary" style="margin-left: 10px" @click="getOnlineUsersNum"> 鍒锋柊</el-button>
-          </div>
-        </el-form-item>
-      </el-form>
+    <div style="display: flex;justify-content: space-between;align-items: center">
+      <h3>褰撳墠鍦ㄧ嚎浜哄憳淇℃伅</h3>
+      <el-button type="primary" size="small" plain style="margin-right: 10px" @click="getOnlinUsersHandler">鍒锋柊</el-button>
     </div>
+    <avue-crud :data="data" :option="option" :table-loading="loading" ></avue-crud>
   </basic-container>
 </template>
 
 <script>
 import {
-  getOnlineUsersNum
+  getOnlinUsers
 } from "@/api/systemModel/systemConfig/api"
+import basicOption from '@/util/basic-option';
+import func from "@/util/func";
 export default {
   name: "index",
   data() {
     return {
-      form: {
-        currentOnlineUser: '0'
+      loading:false,
+      data:[],
+      option:{
+        ...basicOption,
+        refreshBtn:false,
+        addBtn:false,
+        menu:false,
+        column:[
+          {
+            label:'鐢ㄦ埛OID',
+            prop:'oid',
+            overHidden:true,
+          },
+          {
+            label:'鐢ㄦ埛璐﹀彿',
+            prop:'userId'
+          },
+          {
+            label:'鐢ㄦ埛濮撳悕',
+            prop:'userName'
+          },
+          {
+            label:'鏈哄櫒ip',
+            prop:'ip'
+          },
+          {
+            label:'鐧诲綍鏃堕棿',
+            prop:'loginTime'
+          },
+          {
+            label:'鏈�鍚庢搷浣滄椂闂�',
+            prop:'lastRequestTs'
+          }
+        ]
       }
     }
   },
   created() {
-    this.getOnlineUsersNum();
+    this.getOnlinUsersHandler();
   },
   methods: {
     // 宸︿晶鏍戞煡璇�
-    getOnlineUsersNum() {
-      getOnlineUsersNum().then(res => {
+    getOnlinUsersHandler() {
+      this.loading = true;
+      getOnlinUsers().then(res => {
         if (res.data.code === 200) {
-          const data = res.data.obj;
-          this.form.currentOnlineUser = data;
+          const data = res.data.data;
+          this.data = data.map(item => {
+            return{
+              ...item,
+              loginTime:func.formattedDate(item.loginTime),
+              lastRequestTs:func.formattedDate(item.lastRequestTs),
+            }
+          })
+          this.loading = false;
         }
       })
     }

--
Gitblit v1.9.3