From 9981d4d90db5a6ee6b138eeea400502636f7f098 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期二, 27 八月 2024 17:57:04 +0800 Subject: [PATCH] 完善业务类型创建索引&&完善系统配置模块(管理功能模块、业务功能模块、操作类型管理、系统配置、系统运行监控) --- Source/plt-web/plt-web-ui/src/api/systemModel/mangeModel/api.js | 30 + Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue | 51 + Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transferSelect.vue | 13 Source/plt-web/plt-web-ui/src/api/modeling/businessType/api.js | 19 Source/plt-web/plt-web-ui/src/api/systemModel/operateType/api.js | 28 + Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue | 109 +++ Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js | 50 ++ Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue | 199 ++++++-- Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue | 5 Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue | 98 +++ Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue | 433 ++++++++++++++++++ Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue | 31 + Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue | 275 +++++++++++ 13 files changed, 1,223 insertions(+), 118 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/api/modeling/businessType/api.js b/Source/plt-web/plt-web-ui/src/api/modeling/businessType/api.js index ccac952..7d9eda4 100644 --- a/Source/plt-web/plt-web-ui/src/api/modeling/businessType/api.js +++ b/Source/plt-web/plt-web-ui/src/api/modeling/businessType/api.js @@ -98,3 +98,22 @@ params }); } + +// 鍒犻櫎绱㈠紩 +export function delIndex(params) { + return request({ + url: "/api/btmTypeController/delIndex", + method: "delete", + params + }); +} + +// 鍒涘缓绱㈠紩 +export function addIndex(params) { + return request({ + url: "/api/btmTypeController/addIndex", + method: "post", + data:params + }); +} + diff --git a/Source/plt-web/plt-web-ui/src/api/systemModel/mangeModel/api.js b/Source/plt-web/plt-web-ui/src/api/systemModel/mangeModel/api.js index ec4b2c1..8a1d662 100644 --- a/Source/plt-web/plt-web-ui/src/api/systemModel/mangeModel/api.js +++ b/Source/plt-web/plt-web-ui/src/api/systemModel/mangeModel/api.js @@ -50,9 +50,37 @@ // 澧炲姞鎿嶄綔绫诲瀷 export function addOperationType(data) { return request({ - url: "/api/hmSysModConfigController/addOperationType", + url: "/api/hmSysModConfigController/addFuncOperationType", method: "post", data }); } +// 瀵煎嚭 +export const exportModule = (params) => { + return request({ + url: '/api/hmSysModConfigController/exportModule', + method: 'get', + headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}, + responseType: 'blob', + params + }) +} + +// 淇敼鍒悕 +export function updateAlias(params) { + return request({ + url: "/api/hmSysModConfigController/updateAlias", + method: "put", + data:params + }); +} + +// 鍒犻櫎妯″潡涓嬪叧鑱旂殑鎿嶄綔绫诲瀷 +export function delFuncOperation(params) { + return request({ + url: "/api/hmSysModConfigController/delFuncOperation", + method: "delete", + data:params + }); +} diff --git a/Source/plt-web/plt-web-ui/src/api/systemModel/operateType/api.js b/Source/plt-web/plt-web-ui/src/api/systemModel/operateType/api.js new file mode 100644 index 0000000..adbe32c --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/api/systemModel/operateType/api.js @@ -0,0 +1,28 @@ +import request from '@/router/axios'; + +// 鏂板 +export function addOperationType(params) { + return request({ + url: "/api/hmSysModConfigController/addOperationType", + method: "post", + data:params + }); +} + +// 淇敼 +export function updateOperationType(params) { + return request({ + url: "/api/hmSysModConfigController/updateOperationType", + method: "put", + data:params + }); +} + +// 鍒犻櫎 +export function delOperationType(params) { + return request({ + url: "/api/hmSysModConfigController/delOperationType", + method: "delete", + data:params + }); +} 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 new file mode 100644 index 0000000..9f2141c --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/api/systemModel/systemConfig/api.js @@ -0,0 +1,50 @@ +import request from '@/router/axios'; + +// 鍒楄〃鏌ヨ +export function getAppConfigCategoryInfo(params) { + return request({ + url: "/api/hmSysModConfigController/getAppConfigCategoryInfo", + method: "get", + params + }); +} + +// 閰嶇疆椤规煡璇� +export function getAppConfigDetailsByID(params) { + return request({ + url: "/api/hmSysModConfigController/getAppConfigDetailsByID", + method: "get", + params + }); +} + +// 澧炲姞閰嶇疆 +export function addAppConf(params) { + return request({ + url: "/api/hmSysModConfigController/addAppConf", + method: "post", + data: params + }); +} + +// 淇敼閰嶇疆 +export function updateAppConf(params) { + return request({ + url: "/api/hmSysModConfigController/updateAppConf", + method: "put", + data: params + }); +} + +// 瀵煎嚭 +export function exportSysConf(params) { + return request({ + url: '/api/hmSysModConfigController/exportSysConf', + method: 'post', + headers: {'Content-Type': 'application/json;charset=UTF-8'}, + responseType: 'blob', + data: params + }) +} + + 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 ca65a9c..e69bd83 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 @@ -9,6 +9,18 @@ style="text-align: center" width="50%" @close="dialogClose"> + <div style="margin-bottom: 20px;" v-if="topMethodsObj !== {} && topMethodsObj"> + <div> + <span>瀵煎嚭鏂瑰紡锛�</span> + <el-radio-group v-model="radio"> + <el-radio :label="0" v-if="topMethodsObj.select">閫夋嫨</el-radio> + <el-radio :label="1" v-if="topMethodsObj.all">鍏ㄩ儴</el-radio> + <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> + </div> + </div> <el-transfer v-model="rightRoleData" v-loading="loading" @@ -21,19 +33,32 @@ style="text-align: left; display: inline-block;"> </el-transfer> <div slot="footer" class="dialog-footer"> - <div class="valueInfo" v-if="bottomValue">宸茶缃殑鍊间负锛歔{{bottomValue}}]</div> - <el-button @click="visible = false" size="small">鍙� 娑�</el-button> - <el-button type="primary" @click="sendHandler" size="small">纭� 瀹�</el-button> + <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> </div> </el-dialog> </template> <script> +import func from "@/util/func"; + export default { name: "transfer", - props: ['title', 'leftRoleData', 'rightRoleData', 'transferTitle' , 'bottomValue'], + props: ['title', 'leftRoleData', 'rightRoleData', 'transferTitle', 'bottomValue', 'topMethodsObj', 'selectList'], + /** + * topMethodsObj:{ + select:true, + all:true, + page:false + }, + 鎺у埗椤跺眰閫夋嫨椤规槸鍚﹀睍绀猴紝闇�瑕侀厤鍚坰electList浣跨敤 + * @returns {object} + */ data() { return { + radio: 0, + pageExport: "", visible: false, // 閫氳繃 this.$refs.transfer.visible = true; 寮�鍚瓙缁勪欢瀵硅瘽妗� data: [], loading: false, @@ -73,7 +98,20 @@ this.leftRoleData = []; }, sendHandler() { - this.$emit('transferSend', this.rightRoleData); + if (func.isEmptyObject(this.topMethodsObj)) { + this.$emit('transferSend', this.rightRoleData); + } else { + if (this.radio === 0) { + if (this.selectList.length <= 0) { + this.$message.warning('璇烽�夋嫨瑕佸鍑虹殑妯℃澘') + return + } + this.$emit('transferSend', this.rightRoleData, 0); + } else if (this.radio === 1) { + this.$emit('transferSend', this.rightRoleData, 1); + } + } + this.visible = false; }, } @@ -89,7 +127,8 @@ /deep/ .el-transfer-panel__list.is-filterable { height: 323px; /* 绌挎妗嗗垪琛ㄩ珮搴� */ } -.valueInfo{ + +.valueInfo { float: left; border: 1px solid #E9E7E7; display: inline-block; diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transferSelect.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transferSelect.vue new file mode 100644 index 0000000..ba45901 --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transferSelect.vue @@ -0,0 +1,13 @@ +<template> + <p>transferSelect</p> +</template> + +<script> +export default { + name: "transferSelect" +} +</script> + +<style scoped> + +</style> diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue index ea6985d..1195fc0 100644 --- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue +++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/upload-file.vue @@ -22,6 +22,7 @@ </ul> <Divider left="30px" text="閫夋嫨鏂囦欢鍚庝細鑷姩涓婁紶"></Divider> <el-upload + :name="fileName" :action="fileUrl" :before-upload="beforeUpload" :data="fileData" @@ -52,6 +53,10 @@ type: Array, default: () => [] }, + fileName: { + type: String, + default: () => "file" + }, // 瀵硅瘽妗嗗ご閮ㄥ悕绉� title: { type: String, diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue index 6d4bb28..ef8fede 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue @@ -451,7 +451,7 @@ </span> </el-dialog> - <!-- 涓�鑷存�ф鏌� --> + <!-- 鏌ョ湅绱㈠紩 --> <el-dialog v-dialogDrag :visible.sync="indexVisible" @@ -459,8 +459,61 @@ class="avue-dialog" title="绱㈠紩淇℃伅" width="60%" + @close="indexDialogClose" > - + <div v-loading="indexLoading" style="display: flex;height: 500px;width: 100%"> + <basic-container> + <div style="height: 390px"> + <el-button plain size="mini" style="margin-bottom: 5px" type="danger" + @click="deleteIndexLeftTreeClickHandler">鍒犻櫎绱㈠紩 + </el-button> + <avue-tree + :data="indexLeftData" + :option="indexLeftOption" + @node-click="indexLeftNodeClick"></avue-tree> + </div> + </basic-container> + <div style="padding: 20px;width: 75%"> + <div> + <el-form ref="form" :model="indexForm" label-width="90px" size="mini"> + <el-form-item label="绱㈠紩鍚嶇О锛�"> + <el-input v-model="indexForm.name" :readOnly="indexFormRead"></el-input> + </el-form-item> + <el-form-item label="鎻忚堪锛�"> + <el-input v-model="indexForm.desc"></el-input> + </el-form-item> + </el-form> + <div style="display: flex;justify-content: center"> + <el-button plain size="mini" type="success" @click="rightIndexAddClick">澧炲姞</el-button> + <el-button plain size="mini" type="danger">鍒犻櫎</el-button> + </div> + </div> + <avue-crud + :data="indexData" + :option="indexOption"></avue-crud> + </div> + </div> + <el-dialog + v-dialogDrag + :visible.sync="indexAttrVisible" + append-to-body="true" + class="avue-dialog" + title="灞炴�т俊鎭�" + width="60%" + > + <avue-crud + :data="indexAttrData" + :option="indexAttrOption" + @row-click="indexAttrRowClick"></avue-crud> + <span slot="footer" class="dialog-footer"> + <el-button @click="indexAttrVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="indexAttrClickAddHandler">纭� 瀹�</el-button> + </span> + </el-dialog> + <span slot="footer" class="dialog-footer"> + <el-button @click="indexDialogClose">鍙� 娑�</el-button> + <el-button type="primary" @click="indexClickAddHandler">淇� 瀛�</el-button> + </span> </el-dialog> </el-container> @@ -478,7 +531,10 @@ getUsedBtmLinkList, checkBtmConsistency, executeRepair, - getIndexByCondition + getIndexByCondition, + delIndex, + getAllAttributesByBtmId, + addIndex } from "@/api/modeling/businessType/api" import {gridAttribute} from "@/api/modeling/attributePool/api"; import func from "@/util/func"; @@ -489,7 +545,79 @@ name: "index", data() { return { - indexVisible:false, + indexLoading: false, + indexFormRead: false, + indexAttrRow: {}, + indexAttrOption: { + ...basicOption, + height: 380, + highlightCurrentRow: true, + addBtn: false, + refreshBtn: false, + editBtn: false, + delBtn: false, + selection: false, + menu: false, + column: [ + { + label: '灞炴�т俊鎭�', + prop: 'id', + sortable: true, + }, + ] + }, + indexAttrData: [], + indexData: [], + indexAttrVisible: false, + indexLeftNodeRow: {}, + indexForm: { + name: '', + desc: '' + }, + indexLeftData: [], + indexLeftOption: { + height: 'auto', + menu: false, + addBtn: false, + props: { + label: 'name', + value: 'id', + children: 'children', + }, + }, + indexOption: { + ...basicOption, + height: 280, + addBtn: false, + refreshBtn: false, + editBtn: false, + delBtn: false, + selection: false, + menu: false, + column: [ + { + label: '涓氬姟绫诲瀷鍚嶇О', + prop: 'typeName', + sortable: true, + }, + { + label: '绱㈠紩鍚嶇О', + prop: 'indexName', + sortable: true, + }, + { + label: '灞炴�у悕绉�', + prop: 'attrNames', + sortable: true, + }, + { + label: '鎻忚堪', + prop: 'desc', + sortable: true, + }, + ] + }, + indexVisible: false, conDefaultCheckData: [], // 淇濈暀涓婁釜鎺ュ彛杩斿洖鐨勬暟鎹� conCheckLoading: false, conCheckOption: { @@ -1305,9 +1433,9 @@ if (res.data.code === 200) { this.checkViewVisible = true; const data = res.data.data.map(item => { - return{ - name:this.nodeRow.id, - source:item + return { + name: this.nodeRow.id, + source: item } }); this.checkViewData = data; @@ -1340,12 +1468,14 @@ }, // 涓�鑷存�ф鏌ユ寜閽偣鍑� - checkClickHandler(){ - checkBtmConsistency().then(res =>{ - if(res && res.data && res.data.data){ + checkClickHandler() { + this.createViewLoading = true; + checkBtmConsistency().then(res => { + this.createViewLoading = false; + if (res && res.data && res.data.data) { this.conCheckVisible = true; this.conCheckLoading = true; - if(res.data.code === 200){ + if (res.data.code === 200) { const data = res.data.data[0]; this.conDefaultCheckData = data; // 淇濈暀涓�浠藉師濮嬫暟鎹� this.conCheckLoading = false; @@ -1374,7 +1504,7 @@ }) this.conCheckData = outputData; } - }else { + } else { this.$message.success(res.data.msg); } }) @@ -1395,17 +1525,130 @@ }, // 鍒涘缓绱㈠紩鎸夐挳鐐瑰嚮 - indexClickHandler(){ - if(func.isEmptyObject(this.nodeRow)){ + indexClickHandler() { + if (func.isEmptyObject(this.nodeRow)) { this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); return; } + this.getLeftIndex(); + this.indexVisible = true; + }, + + // 宸︿晶鏍戞洿鏂� + getLeftIndex() { const params = { - "conditionMap[typename]":this.nodeRow.id + "conditionMap[typename]": this.nodeRow.id } getIndexByCondition(params).then(res => { - console.log(res); + if (res.data.code === 200) { + const data = res.data.data.map(item => { + return { + indexName: item.indexName, + name: `${item.indexName} ${item.attrNames}`, + id: item.oid + } + }) + this.indexLeftData = data; + } }) + }, + + // 绱㈠紩宸︿晶鏍戠偣鍑� + indexLeftNodeClick(row) { + this.indexLeftNodeRow = row; + }, + + // 鍒犻櫎宸︿晶鏍戠储寮� + deleteIndexLeftTreeClickHandler() { + if (func.isEmptyObject(this.indexLeftNodeRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛屽垹闄�'); + return; + } + const params = { + btmName: this.nodeRow.id, + indexName: this.indexLeftNodeRow.indexName + }; + delIndex(params).then(res => { + if (res.data.code === 200) { + this.$message.success('鍒犻櫎绱㈠紩鎴愬姛'); + this.getLeftIndex(); + } + }) + }, + + //鍙充晶琛ㄦ牸娣诲姞灞炴�� + indexAttrClickAddHandler() { + if (func.isEmptyObject(this.indexAttrRow)) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + this.indexData.push( + { + typeName: this.nodeRow.id, + attrNames: this.indexAttrRow.id, + indexName: this.indexForm.name, + desc: this.indexForm.desc + } + ) + this.indexFormRead = true; + this.indexAttrVisible = false; + }, + + // 鍙充晶灞炴�ц〃鏍艰鐐瑰嚮 + indexAttrRowClick(row) { + this.indexAttrRow = row; + }, + + // 鍙充晶琛ㄦ牸澧炲姞 + rightIndexAddClick() { + if (!this.indexForm.name) { + this.$message.error('璇疯緭鍏ョ储寮曞悕绉�'); + return; + } + + // 妫�鏌ユ槸鍚︿负鑻辨枃瀛楃 + const englishRegex = /^[A-Za-z]+$/; + if (!englishRegex.test(this.indexForm.name)) { + this.$message.error('绱㈠紩鍚嶇О鍙兘鍖呭惈鑻辨枃瀛楃'); + return; + } + this.indexLoading = true; + getAllAttributesByBtmId({btmId: this.nodeRow.id}).then(res => { + if (res.data.code === 200) { + const data = res.data.data.map(item => { + return { + id: item.id + } + }) + this.indexAttrData = data; + } + this.indexLoading = false; + this.indexAttrVisible = true; + }) + }, + + // 鍒涘缓淇濆瓨绱㈠紩 + indexClickAddHandler() { + const params = { + typeName: this.nodeRow.id, + attrNames: this.indexData.map(item => item.attrNames).join(','), + indexName: this.indexForm.name, + } + addIndex([params]).then(res => { + console.log(res) + this.$message.success('鍒涘缓鎴愬姛'); + this.indexDialogClose(); + }).catch(err => { + this.indexDialogClose(); + }) + }, + + // 绱㈠紩瀵硅瘽妗嗗彇娑� + indexDialogClose() { + this.indexFormRead = false; + this.indexForm = {}; + this.indexData = []; + this.indexVisible = false; } } } 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 548091c..a36c78d 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 @@ -1,5 +1,5 @@ <template> - <el-container> + <el-container v-loading="createdLoading"> <el-aside> <basic-container> <div style="max-height: calc(100vh - 170px);overflow: auto"> @@ -120,9 +120,9 @@ </el-button> </div> <div v-if="form.childType === 0" class="btnBox"> - <el-button icon="el-icon-edit" plain size="small" type="primary">淇敼鍒悕 + <el-button icon="el-icon-edit" plain size="small" type="primary" @click="updataAliasClickHandler">淇敼鍒悕 </el-button> - <el-button icon="el-icon-close" plain size="small" type="danger">鍒犻櫎 + <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">鍒犻櫎 </el-button> </div> </basic-container> @@ -149,6 +149,9 @@ <el-button type="primary" @click="methodsSaveClickHandler">淇� 瀛�</el-button> </span> </el-dialog> + <!--瀵煎叆 --> + <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" fileName="files" title="瀵煎叆" + @updata="resetFormValue"></upload-file> </el-container> </template> @@ -160,7 +163,10 @@ updateModel, delModule, exportFunctionSql, - addOperationType + addOperationType, + exportModule, + updateAlias, + delFuncOperation } from "@/api/systemModel/mangeModel/api" import func from "@/util/func"; import basicOption from "@/util/basic-option"; @@ -169,6 +175,10 @@ name: "index", data() { return { + tipList: [], + upFileType: ['xls', 'xlsx'], + fileUrl: 'api/hmSysModConfigController/importModule', + createdLoading: false, lastIndex: null, methodsList: [], methodsData: [], @@ -246,7 +256,6 @@ methods: { // 鏍戣鐐瑰嚮 nodeClick(row) { - console.log(row.childType); this.form = {...row}; this.nodeRow = {...row}; this.addStatus = false; @@ -255,17 +264,19 @@ // 鏂板鎸夐挳 addClickHandler() { - this.resetFormValue(); + // this.resetFormValue(); + this.defalutName.forEach(key => { + this.form[key] = null; + }) + this.form.isValid = false; this.addStatus = true; this.editStatus = false; }, // 娓呯┖琛ㄥ崟缁戝畾鍊� resetFormValue() { - this.defalutName.forEach(key => { - this.form[key] = null; - }) - this.form.isValid = false; + this.form = {}; + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� }, // 鏂板淇濆瓨鎸夐挳 @@ -275,23 +286,23 @@ return } if (this.form.name.length > 128) { - this.$message.error('妯″潡鍚嶉暱搴﹁秴杩�128锛�'); + this.$message.error('妯″潡鍚嶉暱搴︿笉鑳借秴杩�128锛�'); return } if (this.form.remark && this.form.remark.length > 255) { - this.$message.error('鎻忚堪闀垮害瓒呰繃255锛�'); + this.$message.error('鎻忚堪闀垮害涓嶈兘瓒呰繃255锛�'); return } if (this.form.resourceDotNet && this.form.resourceDotNet.length > 255) { - this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘255锛�'); + this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘瓒呰繃255锛�'); return } if (this.form.pathC && this.form.pathC.length > 255) { - this.$message.error('C/S鏍囪瘑闀垮害涓嶈兘255锛�'); + this.$message.error('C/S鏍囪瘑闀垮害涓嶈兘瓒呰繃255锛�'); return } if (this.form.resourceMobile && this.form.resourceMobile.length > 255) { - this.$message.error('Mobile鏍囪瘑闀垮害涓嶈兘255锛�'); + this.$message.error('Mobile鏍囪瘑闀垮害涓嶈兘瓒呰繃255锛�'); return } this.form.parentId = this.form.id; @@ -299,6 +310,8 @@ if (res.data.code === 200) { this.$message.success(res.data.msg); this.addStatus = false; + // this.resetFormValue(); + this.form.childType = null; this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� } }) @@ -306,7 +319,6 @@ // 淇敼鎸夐挳 editClickHandler() { - console.log(this.form); this.editStatus = true; this.addStatus = false; }, @@ -342,6 +354,8 @@ if (res.data.code === 200) { this.$message.success(res.data.msg); this.editStatus = false; + // this.resetFormValue(); + this.form.childType = null; this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� } }) @@ -355,13 +369,11 @@ type: 'warning' }).then(() => { delModule(this.form).then(res => { - console.log(res); if (res.data.code === 200) { this.$message.success(res.data.msg); this.resetFormValue(); this.addStatus = false; this.editStatus = false; - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� } }) }).catch(() => { @@ -417,9 +429,8 @@ if (res.data.code === 200) { this.methodsVisble = false; this.$message.success(res.data.msg); - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� - this.resetFormValue(); this.form.childType = null; + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� } }) }, @@ -438,6 +449,64 @@ } ); }, + + // 淇敼鍒悕 + updataAliasClickHandler() { + const params = { + id: this.form.id, + isValid: this.form.isValid, + alias: this.form.alias + } + updateAlias(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + } + }) + }, + + // 鍒犻櫎妯″潡涓嬪叧鑱旂殑鎿嶄綔绫诲瀷 + deleteOperationClickHandler() { + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + const params = { + funcId: this.form.funcId, + operId: this.form.operId + } + delFuncOperation(params).then(res => { + console.log(res); + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.resetFormValue(); + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // 瀵煎嚭 + exportClickHandler() { + this.createdLoading = true; + exportModule().then(res => { + func.downloadFileByBlobHandler(res); + this.createdLoading = false + this.$message.success('瀵煎嚭鎴愬姛'); + }).catch(err => { + this.$message.error(err); + }) + }, + + // 瀵煎叆 + upLoadClickHandler() { + this.$refs.upload.visible = true; + } } } </script> 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 8709445..ed00511 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 @@ -1,5 +1,5 @@ <template> - <el-container> + <el-container v-loading="createdLoading"> <el-aside> <basic-container> <div style="max-height: calc(100vh - 170px);overflow: auto"> @@ -120,9 +120,9 @@ </el-button> </div> <div v-if="form.childType === 0" class="btnBox"> - <el-button icon="el-icon-edit" plain size="small" type="primary">淇敼鍒悕 + <el-button icon="el-icon-edit" plain size="small" type="primary" @click="updataAliasClickHandler">淇敼鍒悕 </el-button> - <el-button icon="el-icon-close" plain size="small" type="danger">鍒犻櫎 + <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">鍒犻櫎 </el-button> </div> </basic-container> @@ -149,6 +149,9 @@ <el-button type="primary" @click="methodsSaveClickHandler">淇� 瀛�</el-button> </span> </el-dialog> + <!--瀵煎叆 --> + <upload-file ref="upload" fileName="files" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="瀵煎叆" + @updata="resetFormValue"></upload-file> </el-container> </template> @@ -160,7 +163,10 @@ updateModel, delModule, exportFunctionSql, - addOperationType + addOperationType, + exportModule, + updateAlias, + delFuncOperation } from "@/api/systemModel/mangeModel/api" import func from "@/util/func"; import basicOption from "@/util/basic-option"; @@ -169,6 +175,10 @@ name: "index", data() { return { + tipList: [], + upFileType: ['xls', 'xlsx'], + fileUrl: 'api/hmSysModConfigController/importModule', + createdLoading: false, lastIndex: null, methodsList: [], methodsData: [], @@ -255,17 +265,19 @@ // 鏂板鎸夐挳 addClickHandler() { - this.resetFormValue(); + // this.resetFormValue(); + this.defalutName.forEach(key => { + this.form[key] = null; + }) + this.form.isValid = false; this.addStatus = true; this.editStatus = false; }, // 娓呯┖琛ㄥ崟缁戝畾鍊� resetFormValue() { - this.defalutName.forEach(key => { - this.form[key] = null; - }) - this.form.isValid = false; + this.form = {}; + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� }, // 鏂板淇濆瓨鎸夐挳 @@ -275,23 +287,23 @@ return } if (this.form.name.length > 128) { - this.$message.error('妯″潡鍚嶉暱搴﹁秴杩�128锛�'); + this.$message.error('妯″潡鍚嶉暱搴︿笉鑳借秴杩�128锛�'); return } if (this.form.remark && this.form.remark.length > 255) { - this.$message.error('鎻忚堪闀垮害瓒呰繃255锛�'); + this.$message.error('鎻忚堪闀垮害涓嶈兘瓒呰繃255锛�'); return } if (this.form.resourceDotNet && this.form.resourceDotNet.length > 255) { - this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘255锛�'); + this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘瓒呰繃255锛�'); return } if (this.form.pathC && this.form.pathC.length > 255) { - this.$message.error('C/S鏍囪瘑闀垮害涓嶈兘255锛�'); + this.$message.error('C/S鏍囪瘑闀垮害涓嶈兘瓒呰繃255锛�'); return } if (this.form.resourceMobile && this.form.resourceMobile.length > 255) { - this.$message.error('Mobile鏍囪瘑闀垮害涓嶈兘255锛�'); + this.$message.error('Mobile鏍囪瘑闀垮害涓嶈兘瓒呰繃255锛�'); return } this.form.parentId = this.form.id; @@ -299,6 +311,8 @@ if (res.data.code === 200) { this.$message.success(res.data.msg); this.addStatus = false; + // this.resetFormValue(); + this.form.childType = null; this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� } }) @@ -306,7 +320,6 @@ // 淇敼鎸夐挳 editClickHandler() { - console.log(this.form); this.editStatus = true; this.addStatus = false; }, @@ -342,6 +355,8 @@ if (res.data.code === 200) { this.$message.success(res.data.msg); this.editStatus = false; + // this.resetFormValue(); + this.form.childType = null; this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� } }) @@ -355,13 +370,11 @@ type: 'warning' }).then(() => { delModule(this.form).then(res => { - console.log(res); if (res.data.code === 200) { this.$message.success(res.data.msg); this.resetFormValue(); this.addStatus = false; this.editStatus = false; - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� } }) }).catch(() => { @@ -417,9 +430,8 @@ if (res.data.code === 200) { this.methodsVisble = false; this.$message.success(res.data.msg); - this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� - this.resetFormValue(); this.form.childType = null; + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� } }) }, @@ -438,6 +450,54 @@ } ); }, + + // 淇敼鍒悕 + updataAliasClickHandler() { + const params = { + id: this.form.id, + isValid: this.form.isValid, + alias: this.form.alias + } + updateAlias(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + } + }) + }, + + // 鍒犻櫎妯″潡涓嬪叧鑱旂殑鎿嶄綔绫诲瀷 + deleteOperationClickHandler() { + console.log(this.form); + const params = { + funcId: this.form.funcId, + operId: this.form.operId + } + delFuncOperation(params).then(res => { + console.log(res); + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.resetFormValue(); + } + }) + }, + + // 瀵煎嚭 + exportClickHandler() { + this.createdLoading = true; + exportModule().then(res => { + func.downloadFileByBlobHandler(res); + this.createdLoading = false + this.$message.success('瀵煎嚭鎴愬姛'); + }).catch(err => { + this.$message.error(err); + }) + }, + + // 瀵煎叆 + upLoadClickHandler() { + this.$refs.upload.visible = true; + } } } </script> 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 281ec3b..cea9234 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 @@ -3,7 +3,7 @@ <el-aside> <basic-container> <div style="max-height: calc(100vh - 170px);overflow: auto"> - <avue-tree ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick"> + <avue-tree :key="refresh" ref="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> @@ -27,28 +27,31 @@ <el-form-item label="鍒悕锛�"> <el-input v-model="form.alias" placeholder="璇疯緭鍏ュ埆鍚�"></el-input> </el-form-item> - <el-form-item label="缂栧彿锛�"> - <el-input v-model="form.sort" placeholder="璇疯緭鍏ョ紪鍙�"></el-input> + <el-form-item label="椤哄簭锛�"> + <el-input-number v-model="form.sort" :min="0" :max="9999" label="椤哄簭"></el-input-number> </el-form-item> <el-form-item label="鎻忚堪锛�"> <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ弿杩�"></el-input> </el-form-item> </el-form> - <div class="btnBox"> - <el-button v-if="!addStatus" :disabled="mangeShowBtn ? false : !childTypeBtn" icon="el-icon-plus" plain + <div v-if="nodeRow.childType === 0 || nodeRow.childType === -1" class="btnBox"> + <el-button v-if="!addStatus" :disabled="nodeRow.childType === 0" icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">澧炲姞 </el-button> <el-button v-if="addStatus" icon="el-icon-check" plain size="small" type="success" @click="addSaveClickHandler">淇濆瓨 </el-button> - <el-button :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary" - @click="addClickHandler">淇敼 + <el-button v-if="!editStatus" :disabled="nodeRow.childType === -1" icon="el-icon-edit" plain size="small" type="primary" + @click="editClickHandler">淇敼 </el-button> - <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger" - @click="addClickHandler">鍒犻櫎 + <el-button v-if="editStatus" icon="el-icon-check" plain size="small" + type="success" @click="editSaveClickHandler">淇濆瓨 </el-button> - <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">瀵煎叆sql + <el-button :disabled="nodeRow.childType === -1" icon="el-icon-close" plain size="small" type="danger" + @click="delClickHandler">鍒犻櫎 + </el-button> + <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="sqlClickExportClick">瀵煎嚭sql </el-button> </div> </basic-container> @@ -58,12 +61,16 @@ <script> //绠$悊鍔熻兘妯″潡 -import {getSysModelTreeMenuByPID, addModel} from "@/api/systemModel/mangeModel/api" +import {exportFunctionSql, getSysModelTreeMenuByPID} from "@/api/systemModel/mangeModel/api" +import {addOperationType,updateOperationType,delOperationType} from "@/api/systemModel/operateType/api" +import func from "@/util/func"; export default { name: "index", data() { return { + refresh:Math.random(), + editStatus:false, addStatus: false, nodeRow: {}, form: {}, @@ -82,7 +89,7 @@ treeLoad: (node, resolve) => { const params = { parentId: node.level === 0 ? "operateNode" : node.data.id, - modeType: node.level === 0 ? "firstNode" : node.data.modeType, + modeType: node.level === 0 ? 'firstNode' : "", } getSysModelTreeMenuByPID(params).then(res => { resolve(res.data.data.map(item => { @@ -101,21 +108,6 @@ created() { }, computed: { - /** - * childType - * 涓�-1 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷 - * 涓嶄负-1 闅愯棌 鍒犻櫎闈炵郴缁熸ā鍧� 鍒犻櫎涓氬姟妯″潡 - * 涓�1鏃� 绂佺敤鎿嶄綔绫诲瀷銆佸鍏ャ�佸鍑� - * 涓�2鏃� 绂佺敤澧炲姞 瀵煎叆 瀵煎嚭 - * mangeShowBtn 涓� true 璇存槑鏄《灞傝妭鐐� 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷 - * @returns {Number} - */ - mangeShowBtn() { - return this.form.childType === -1; - }, - childTypeBtn() { - return this.form.childType === 1; - } }, methods: { // 鏍戣鐐瑰嚮 @@ -124,53 +116,156 @@ this.form = {...row}; this.nodeRow = {...row}; this.addStatus = false; + this.editStatus = false; }, + // 娓呯┖琛ㄥ崟缁戝畾鍊� + resetFormValue() { + this.form = {}; + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + }, + // 鏂板鎸夐挳 addClickHandler() { - for (const key in this.form) { - if (this.form.hasOwnProperty(key)) { - this.form[key] = null; - } - } + this.form = {}; this.addStatus = true; + this.editStatus = false; }, // 淇濆瓨鎸夐挳 addSaveClickHandler() { - console.log(this.form) if (!this.form.name) { - this.$message.error('妯″潡鍚嶄笉鑳戒负绌�'); + this.$message.error('鍚嶇О涓嶈兘涓虹┖'); + return + } + if (!this.form.code) { + this.$message.error('鏍囪瘑涓嶈兘涓虹┖'); + return + } + if (!this.form.alias) { + this.$message.error('鍒悕涓嶈兘涓虹┖'); + return + } + if (!this.form.sort) { + this.$message.error('椤哄簭涓嶈兘涓虹┖'); return } if (this.form.name.length > 128) { - this.$message.error('妯″潡鍚嶉暱搴﹁秴杩�128锛�'); + this.$message.error('鍚嶇О闀垮害涓嶈兘瓒呰繃128锛�'); return } if (this.form.remark && this.form.remark.length > 255) { - this.$message.error('鎻忚堪闀垮害瓒呰繃255锛�'); + this.$message.error('鎻忚堪闀垮害涓嶈兘瓒呰繃255锛�'); return } - if (this.form.resourceDotNet && this.form.resourceDotNet.length > 255) { - this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘255锛�'); + if (this.form.alias && this.form.alias.length > 255) { + this.$message.error('鍒悕闀垮害涓嶈兘瓒呰繃255锛�'); return } - if (this.form.pathc && this.form.pathc.length > 255) { - this.$message.error('C/S鏍囪瘑闀垮害涓嶈兘255锛�'); - return - } - if (this.form.resourceMobile && this.form.resourceMobile.length > 255) { - this.$message.error('Mobile鏍囪瘑闀垮害涓嶈兘255锛�'); - return - } - console.log(this.nodeRow); this.form.parentId = this.nodeRow.id; - this.form.modeType = this.nodeRow.modeType; - addModel(this.form).then(res => { - console.log(res) - this.addStatus = false; + const params = { + name:this.form.name, + identify:this.form.code, + alias:this.form.alias, + desc:this.form.remark, + seq:this.form.sort + } + addOperationType(params).then(res => { + if(res.data.code === 200){ + this.$message.success(res.data.msg); + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.addStatus = false; + } }) - } + }, + + // 淇敼鎸夐挳 + editClickHandler(){ + this.addStatus = false; + this.editStatus = true; + }, + + // 淇敼淇濆瓨 + editSaveClickHandler(){ + console.log(this.form); + if (!this.form.name) { + this.$message.error('鍚嶇О涓嶈兘涓虹┖'); + return + } + if (!this.form.code) { + this.$message.error('鏍囪瘑涓嶈兘涓虹┖'); + return + } + if (!this.form.alias) { + this.$message.error('鍒悕涓嶈兘涓虹┖'); + return + } + if (!this.form.sort) { + this.$message.error('椤哄簭涓嶈兘涓虹┖'); + return + } + if (this.form.name.length > 128) { + this.$message.error('鍚嶇О闀垮害涓嶈兘瓒呰繃128锛�'); + return + } + if (this.form.remark && this.form.remark.length > 255) { + this.$message.error('鎻忚堪闀垮害涓嶈兘瓒呰繃255锛�'); + return + } + if (this.form.alias && this.form.alias.length > 255) { + this.$message.error('鍒悕闀垮害涓嶈兘瓒呰繃255锛�'); + return + }; + const params = { + id:this.form.id, + name:this.form.name, + identify:this.form.code, + alias:this.form.alias, + desc:this.form.remark, + seq:this.form.sort + } + updateOperationType(params).then(res => { + if(res.data.code === 200){ + this.$message.success(res.data.msg); + this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍� + this.editStatus = false; + } + }) + }, + + // 鍒犻櫎 + delClickHandler(){ + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + delOperationType(this.form).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.resetFormValue(); + this.addStatus = false; + this.editStatus = false; + this.nodeRow = {}; + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // 瀵煎嚭sql + sqlClickExportClick() { + exportFunctionSql({isFunction: false}).then(res => { + func.downloadFileByBlobHandler(res); + this.$message.success('瀵煎嚭鎴愬姛'); + }).catch(err => { + this.$message.error(err); + }); + }, } } </script> diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue index 54b19c1..5a5c1e1 100644 --- a/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue @@ -1,10 +1,441 @@ <template> + <el-container> + <el-aside> + <basic-container> + <div style="max-height: calc(100vh - 170px);overflow: auto"> + <avue-tree :key="refresh" ref="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> + </avue-tree> + </div> + </basic-container> + </el-aside> + <el-main> + <basic-container> + <avue-crud + ref="crud" + :data="configData" + :option="nodeRow.id === 'firstNode'? firstOption : configOption" + :table-loading="configLoading" + @selection-change="selectChange" + @row-click="rowClickHandler"> + <template slot="menuLeft"> + <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">澧炲姞 + </el-button> + <el-button icon="el-icon-close" plain size="small" type="danger" @click="delClickHandler">鍒犻櫎 + </el-button> + <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-edit" size="small" type="text" @click.stop="rowEditHandler(row,index)">缂栬緫 + </el-button> + <el-button icon="el-icon-delete" size="small" type="text" @click.stop="rowDeleteHandler(row)">鍒犻櫎</el-button> + </template> + </avue-crud> + </basic-container> + </el-main> + <el-dialog + v-dialogDrag + :title="nodeRow.id === 'firstNode' ? '閰嶇疆椤瑰垎绫�' : '閰嶇疆椤�'" + :visible.sync="addVisible" + append-to-body="true" + class="avue-dialog" + width="50%" + @close="addVisibleClose"> + <el-form ref="form" :model="form" label-width="80px"> + <el-form-item label="鍚嶇О锛�"> + <el-input v-model="form.name"></el-input> + </el-form-item> + <el-form-item v-if="nodeRow.id !== 'firstNode'" label="key锛�"> + <el-input v-model="form.key"></el-input> + </el-form-item> + <el-form-item v-if="nodeRow.id !== 'firstNode'" label="value锛�"> + <el-input v-model="form.value"></el-input> + </el-form-item> + <el-form-item label="鎻忚堪锛�"> + <el-input v-model="form.desc" type="textarea"></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button size="small" @click="addVisibleClose">鍙� 娑�</el-button> + <el-button size="small" type="primary" @click="addSaveClickHandler">纭� 瀹�</el-button> + </span> + </el-dialog> + + <!-- 瀵煎嚭绌挎妗� --> + <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" + :select-list="selectList" :top-methods-obj="topMethodsObj" :transferTitle="transferTitle" title="瀵煎嚭" + @transferSend="exportSendHandler"> + </transfer> + </el-container> </template> <script> +import { + getAppConfigCategoryInfo, + getAppConfigDetailsByID, + addAppConf, + updateAppConf, + exportSysConf +} from "@/api/systemModel/systemConfig/api" +import basicOption from "@/util/basic-option"; +import func from "@/util/func"; + export default { - name: "index" + name: "index", + data() { + return { + topMethodsObj: { + select: true, + all: true, + page: false + }, + transferTitle: ['鏈�夋嫨', '宸查�夋嫨'], + leftRoleData: [], + rightRoleData: [], + editStatus: false, + form: { + name: "", + desc: "" + }, + addVisible: false, + nodeRow: {}, + configLoading: false, + configData: [], + configOption: { + ...basicOption, + addBtn: false, + editBtn: false, + delBtn: false, + column: [ + { + label: '鍚嶇О', + prop: 'name', + sortable: true + }, + { + label: 'key', + prop: 'key', + sortable: true + }, + { + label: 'value', + prop: 'value', + overHidden: true, + sortable: true + }, + { + label: '鎻忚堪', + overHidden: true, + prop: 'desc', + } + ] + }, + defaultData: [], // 椤跺眰鑺傜偣鏂板鍚庤祴鍊兼暟缁� + firstOption: { + ...basicOption, + addBtn: false, + editBtn: false, + delBtn: false, + column: [ + { + label: '鍚嶇О', + prop: 'name', + sortable: true + }, + { + label: '鎻忚堪', + prop: 'desc', + } + ] + }, + refresh: Math.random(), + treeOption: { + height: 'auto', + menu: false, + addBtn: false, + defaultExpandAll: true, + props: { + label: 'name', + value: 'id', + children: 'children', + }, + }, + treeData: [ + { + name: '绯荤粺閰嶇疆鍒嗙被', + id: 'firstNode', + children: [] + } + ], + selectList: [], + lastIndex: null + } + }, + created() { + this.getTreeList(); + }, + methods: { + // 宸︿晶鏍戞煡璇� + getTreeList(val) { + getAppConfigCategoryInfo().then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.treeData[0].children = data; + if (val === 'save') { + this.configData = data; + } + } + }) + }, + + // 鏍戣妭鐐圭偣鍑� + nodeClick(row) { + console.log(row); + this.nodeRow = row; + if (row.id === 'firstNode') { + this.configData = row.children; + } else { + this.configLoading = true; + getAppConfigDetailsByID({clsId: row.id}).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.configData = data; + this.configLoading = false; + } + }) + } + }, + + // 澧炲姞鎸夐挳 + addClickHandler() { + if (func.isEmptyObject(this.nodeRow)) { + this.$message.error('璇烽�夋嫨涓�鏉¤妭鐐硅繘琛屾坊鍔狅紒') + return; + } + this.addVisible = true; + this.editStatus = false; + }, + + // 鏂板瀵硅瘽妗嗗叧闂� + addVisibleClose() { + Object.keys(this.form).forEach(key => { + this.form[key] = ""; + }) + this.addVisible = false; + }, + + // 淇濆瓨 + addSaveClickHandler() { + if (this.nodeRow.id === 'firstNode') { + if (!this.form.name) { + this.$message.error('鍚嶇О涓嶈兘涓虹┖锛�'); + return; + } + } else { + if (!this.form.name) { + this.$message.error('鍚嶇О涓嶈兘涓虹┖锛�'); + return; + } + if (!this.form.key) { + this.$message.error('key鍊间笉鑳戒负绌猴紒'); + return; + } + if (!this.form.value) { + this.$message.error('value鍊间笉鑳戒负绌猴紒'); + return; + } + } + + const params = this.nodeRow.id === 'firstNode' ? { + appConfigDetailInfo: { + name: this.form.name, + desc: this.form.desc, + id: this.editStatus ? this.form.id : null + }, + isConfCategorys: true //true琛ㄧず缁欓《灞傛坊鍔犻厤缃」鍒嗙被 + } : { + appConfigDetailInfo: { + categoryId: this.nodeRow.id, + name: this.form.name, + desc: this.form.desc, + key: this.form.key, + value: this.form.value, + id: this.editStatus ? this.form.id : null + }, + isConfCategorys: false //true琛ㄧず缁欓《灞傛坊鍔犻厤缃」鍒嗙被 + } + const saveApi = this.editStatus ? updateAppConf : addAppConf; + saveApi(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.addVisibleClose(); + if (this.nodeRow.id === 'firstNode') { + this.getTreeList('save'); + } else { + this.configLoading = true; + getAppConfigDetailsByID({clsId: this.nodeRow.id}).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.configData = data; + this.configLoading = false; + } + }) + } + } + }) + }, + + // 缂栬緫鎸夐挳 + rowEditHandler(row) { + this.addVisible = true; + this.form = {...row}; + this.editStatus = true; + }, + + // 琛屽垹闄� + rowDeleteHandler(row) { + const params = { + ids: row.id, + isConfCategorys: this.nodeRow.id === 'firstNode' ? true : false + } + getAppConfigCategoryInfo(params).then(res => { + console.log(res) + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + if (this.nodeRow.id === 'firstNode') { + this.getTreeList('save'); + } else { + this.configLoading = true; + getAppConfigDetailsByID({clsId: this.nodeRow.id}).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.configData = data; + this.configLoading = false; + } + }) + } + } + }) + }, + + // 閫夋嫨妗� + selectChange(row) { + this.selectList = row; + }, + + // 鐐瑰嚮琛� + rowClickHandler(row) { + func.rowClickHandler( + row, + this.$refs.crud, + this.lastIndex, + (newIndex) => { + this.lastIndex = newIndex; + }, + () => { + this.selectList = []; + } + ); + }, + + // 澶氶�夊垹闄� + delClickHandler() { + if (this.selectList.length <= 0) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + const params = { + ids: this.selectList.map(item => { + return item.id + }).join(','), + isConfCategorys: this.nodeRow.id === 'firstNode' ? true : false + } + getAppConfigCategoryInfo(params).then(res => { + console.log(res) + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + if (this.nodeRow.id === 'firstNode') { + this.getTreeList('save'); + } else { + this.configLoading = true; + getAppConfigDetailsByID({clsId: this.nodeRow.id}).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.configData = data; + this.configLoading = false; + } + }) + } + } + }) + }, + + // 瀵煎嚭鎸夐挳 + exportClickHandler() { + if (func.isEmptyObject(this.nodeRow)) { + this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + return; + } + this.leftRoleData = this.nodeRow.id === 'firstNode' ? [ + { + name: '鍚嶇О', + oid: 'name' + }, + { + name: '鎻忚堪', + oid: 'desc' + } + ] : [ + { + name: '鍚嶇О', + oid: 'name' + }, + { + name: 'key', + oid: 'key' + }, + { + name: 'value', + oid: 'value' + }, + { + name: '鎻忚堪', + oid: 'desc' + } + ] + this.$refs.transfer.visible = true; + }, + + // 瀵煎嚭淇濆瓨 + exportSendHandler(row, index) { + console.log(row, index); + const params = { + expType: index === 0 ? 'select' : index === 1 ? 'all' : '', + expAttrNames: row, + selectDataIdentify: index === 0 ? this.selectList.map(item => { + return item.id + }) : null, + conditionMap: { + "isExpAppConfDetail": this.nodeRow.id === 'firstNode' ? false : true, + "clsId": this.nodeRow.id !== 'firstNode' ? this.nodeRow.id : null + } + } + exportSysConf(params).then(res => { + func.downloadFileByBlobHandler(res); + this.$message.success('瀵煎嚭鎴愬姛'); + }).catch(err => { + this.$message.error(err); + }) + } + } } </script> 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 54b19c1..24f5dce 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,13 +1,38 @@ <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.name" :readOnly="true"></el-input> + <el-button plain style="margin-left: 10px"> 鍒锋柊</el-button> + </div> + </el-form-item> + </el-form> + </div> + </basic-container> </template> <script> export default { - name: "index" + name: "index", + data() { + return { + form: { + name: '0' + } + } + } } </script> <style scoped> - +.container { + display: flex; + justify-content: center; + align-items: center; + width: 500px; + height: 500px; + margin: auto; +} </style> -- Gitblit v1.9.3