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