From aa6ff1fab7bbfaaaa771c87eda6f716b300f4dc5 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 23 八月 2024 18:00:00 +0800
Subject: [PATCH] 管理功能模块 && 业务功能模块
---
Source/plt-web/plt-web-ui/src/api/systemModel/mangeModel/api.js | 58 ++
Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue | 0
/dev/null | 13
Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue | 0
Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue | 456 ++++++++++++++++++++++
Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue | 189 +++++++++
Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue | 456 ++++++++++++++++++++++
7 files changed, 1,159 insertions(+), 13 deletions(-)
diff --git a/Bin/jre-linux/lib/security/trusted.libraries b/Bin/jre-linux/lib/security/trusted.libraries
deleted file mode 100644
index e69de29..0000000
--- a/Bin/jre-linux/lib/security/trusted.libraries
+++ /dev/null
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
new file mode 100644
index 0000000..ec4b2c1
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/api/systemModel/mangeModel/api.js
@@ -0,0 +1,58 @@
+import request from '@/router/axios';
+
+// 鍒楄〃鏌ヨ
+export function getSysModelTreeMenuByPID(params) {
+ return request({
+ url: "/api/hmSysModConfigController/getSysModelTreeMenuByPID",
+ method: "get",
+ params
+ });
+}
+
+// 鏂板
+export function addModel(params) {
+ return request({
+ url: "/api/hmSysModConfigController/addModel",
+ method: "post",
+ data:params
+ });
+}
+
+// 淇敼
+export function updateModel(params) {
+ return request({
+ url: "/api/hmSysModConfigController/updateModel",
+ method: "put",
+ data:params
+ });
+}
+
+// 鍒犻櫎
+export function delModule(params) {
+ return request({
+ url: "/api/hmSysModConfigController/delModule",
+ method: "delete",
+ data:params
+ });
+}
+
+// 瀵煎嚭sql
+export function exportFunctionSql (params) {
+ return request({
+ url: '/api/hmSysModConfigController/exportFunctionSql',
+ method: 'get',
+ headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
+ responseType: 'blob',
+ params
+ })
+}
+
+// 澧炲姞鎿嶄綔绫诲瀷
+export function addOperationType(data) {
+ return request({
+ url: "/api/hmSysModConfigController/addOperationType",
+ method: "post",
+ data
+ });
+}
+
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
new file mode 100644
index 0000000..548091c
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/businessModel/index.vue
@@ -0,0 +1,456 @@
+<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>
+ <el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
+ <span v-if="form.childType !== 0">
+ <el-form-item label="妯″潡鍚嶏細">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input>
+ </el-form-item>
+ <el-form-item label="妯″潡鍒悕锛�">
+ <el-input v-model="form.alias" placeholder="妯″潡鍒悕鐢ㄦ潵璁板綍鏃ュ織浣跨敤"></el-input>
+ </el-form-item>
+ <el-form-item label="C/S锛�">
+ <el-input v-model="form.pathC" :rows="3" placeholder="璇疯緭鍏/S璺緞" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label="B/S锛�">
+ <el-input v-model="form.path" :rows="3" placeholder="璇疯緭鍏/S璺緞" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label=".NET锛�">
+ <el-input v-model="form.resourceDotNet" :rows="3" placeholder="璇疯緭鍏�.NET" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label="Mobile锛�">
+ <el-input v-model="form.resourceMobile" :rows="3" placeholder="璇疯緭鍏obile" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label="搴忓彿锛�">
+ <el-input v-model="form.sort" placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input>
+ </el-form-item>
+ <el-form-item label="绠�鍥撅細">
+ <el-input v-model="form.source"></el-input>
+ </el-form-item>
+ <el-form-item label="鎻忚堪锛�">
+ <el-input v-model="form.remark" :rows="3" placeholder="璇疯緭鍏ユ弿杩�" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁鏈夋晥锛�">
+ <el-switch
+ v-model="form.isValid"
+ active-color="#13ce66"
+ inactive-color="#ff4949">
+ </el-switch>
+ <el-link :underline="false" style="margin-left: 20px" type="danger">涓嶇敓鏁堬紙涓嶉�夋嫨锛夋椂锛岃妯″潡鍦ㄥ姛鑳芥ā鍧楁巿鏉冮噷涓嶆樉绀�</el-link>
+ </el-form-item>
+ </span>
+ <span v-if="form.childType === 0">
+ <el-form-item label="鍚嶇О锛�">
+ <el-input v-model="form.name" :disabled="form.childType === 0" placeholder="璇疯緭鍏ュ悕绉�"></el-input>
+ </el-form-item>
+ <el-form-item label="鏍囪瘑锛�">
+ <el-input v-model="form.code" :disabled="form.childType === 0" placeholder="璇疯緭鍏ユ爣璇�"></el-input>
+ </el-form-item>
+ <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" :disabled="form.childType === 0" placeholder="璇疯緭鍏ョ紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item label="鎻忚堪锛�">
+ <el-input v-model="form.remark" :disabled="form.childType === 0" placeholder="璇疯緭鍏ユ弿杩�"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁鏈夋晥锛�">
+ <el-switch
+ v-model="form.isValid"
+ active-color="#13ce66"
+ inactive-color="#ff4949">
+ </el-switch>
+
+ </el-form-item>
+ </span>
+ </el-form>
+ <div v-if="form.childType && form.childType !== 0" class="btnBox">
+ <el-button v-if="!addStatus" :disabled="mangeShowBtn ? false : !childTypeBtn" 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 v-if="!editStatus" :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary"
+ @click="editClickHandler">淇敼
+ </el-button>
+ <el-button v-if="editStatus" icon="el-icon-check" plain size="small"
+ type="success" @click="editSaveClickHandler">淇濆瓨
+ </el-button>
+ <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
+ @click="delClickHandler">鍒犻櫎
+ </el-button>
+ <el-button :disabled="mangeShowBtn ? true : childTypeBtn" icon="el-icon-circle-plus-outline" plain
+ size="small"
+ type="primary" @click="addMethodsClickHandler">澧炲姞鎿嶄綔绫诲瀷
+ </el-button>
+ <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
+ type="danger"
+ @click="addClickHandler">鍒犻櫎闈炵郴缁熸ā鍧�
+ </el-button>
+ <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
+ type="danger"
+ @click="addClickHandler">鍒犻櫎涓氬姟妯″潡
+ </el-button>
+ <el-button :disabled="!mangeShowBtn" icon="el-icon-upload2" plain size="small" type="primary"
+ @click="upLoadClickHandler">瀵煎叆
+ </el-button>
+ <el-button :disabled="!mangeShowBtn" icon="el-icon-download" plain size="small" type="primary"
+ @click="exportClickHandler">瀵煎嚭
+ </el-button>
+ <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="sqlClickExportClick">瀵煎嚭sql
+ </el-button>
+ </div>
+ <div v-if="form.childType === 0" class="btnBox">
+ <el-button icon="el-icon-edit" plain size="small" type="primary">淇敼鍒悕
+ </el-button>
+ <el-button icon="el-icon-close" plain size="small" type="danger">鍒犻櫎
+ </el-button>
+ </div>
+ </basic-container>
+ </el-main>
+ <el-dialog
+ v-dialogDrag
+ :visible.sync="methodsVisble"
+ append-to-body="true"
+ class="avue-dialog"
+ title="鎿嶄綔鍒嗙被"
+ width="60%"
+ >
+ <avue-crud
+ ref="methodsCrud"
+ :data="methodsData"
+ :option="methodsOption"
+ :table-loading="methodsLoading"
+ @row-click="rowMethodsClickHandler"
+ @selection-change="selectMethodsChange">
+
+ </avue-crud>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="methodsVisble = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="methodsSaveClickHandler">淇� 瀛�</el-button>
+ </span>
+ </el-dialog>
+ </el-container>
+</template>
+
+<script>
+//绠$悊鍔熻兘妯″潡
+import {
+ getSysModelTreeMenuByPID,
+ addModel,
+ updateModel,
+ delModule,
+ exportFunctionSql,
+ addOperationType
+} from "@/api/systemModel/mangeModel/api"
+import func from "@/util/func";
+import basicOption from "@/util/basic-option";
+
+export default {
+ name: "index",
+ data() {
+ return {
+ lastIndex: null,
+ methodsList: [],
+ methodsData: [],
+ methodsOption: {
+ ...basicOption,
+ addBtn: false,
+ menu: false,
+ height: 500,
+ column: [
+ {
+ label: '鎿嶄綔鍒嗙被',
+ prop: 'name',
+ sortable: true,
+ }
+ ]
+ },
+ methodsLoading: false,
+ methodsVisble: false,
+ defalutName: ['name', 'alias', 'pathC', 'path', 'resourceDotNet', 'resourceMobile', 'sort', 'source', 'remark', 'code'],
+ refresh: Math.random(),
+ addStatus: false,
+ editStatus: false,
+ nodeRow: {},
+ form: {},
+ treeData: [],
+ treeOption: {
+ height: 'auto',
+ menu: false,
+ addBtn: false,
+ defaultExpandAll: false,
+ props: {
+ label: 'name',
+ value: 'id',
+ children: 'children',
+ },
+ lazy: true,
+ treeLoad: (node, resolve) => {
+ const params = {
+ parentId: node.level === 0 ? "modelManagmentNode" : node.data.id,
+ modeType: node.level === 0 ? "firstNode" : node.data.modeType,
+ }
+ getSysModelTreeMenuByPID(params).then(res => {
+ resolve(res.data.data.map(item => {
+ return {
+ ...item,
+ id: item.id,
+ name: item.name,
+ leaf: !item.hasChildren
+ }
+ }))
+ })
+ }
+ },
+ }
+ },
+ created() {
+ },
+ computed: {
+ /**
+ * childType
+ * 涓�-1 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷
+ * 涓嶄负-1 闅愯棌 鍒犻櫎闈炵郴缁熸ā鍧� 鍒犻櫎涓氬姟妯″潡
+ * 涓�1鏃� 绂佺敤鎿嶄綔绫诲瀷銆佸鍏ャ�佸鍑�
+ * 涓�2鏃� 绂佺敤澧炲姞 瀵煎叆 瀵煎嚭
+ * mangeShowBtn 涓� true 璇存槑鏄《灞傝妭鐐� 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷
+ * @returns {Number}
+ */
+ mangeShowBtn() {
+ return this.form.childType === -1;
+ },
+ childTypeBtn() {
+ return this.form.childType === 1;
+ }
+ },
+ methods: {
+ // 鏍戣鐐瑰嚮
+ nodeClick(row) {
+ console.log(row.childType);
+ this.form = {...row};
+ this.nodeRow = {...row};
+ this.addStatus = false;
+ this.editStatus = false;
+ },
+
+ // 鏂板鎸夐挳
+ addClickHandler() {
+ this.resetFormValue();
+ this.addStatus = true;
+ this.editStatus = false;
+ },
+
+ // 娓呯┖琛ㄥ崟缁戝畾鍊�
+ resetFormValue() {
+ this.defalutName.forEach(key => {
+ this.form[key] = null;
+ })
+ this.form.isValid = false;
+ },
+
+ // 鏂板淇濆瓨鎸夐挳
+ addSaveClickHandler() {
+ if (!this.form.name) {
+ 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.resourceDotNet && this.form.resourceDotNet.length > 255) {
+ this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘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
+ }
+ this.form.parentId = this.form.id;
+ addModel(this.form).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.msg);
+ this.addStatus = false;
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ }
+ })
+ },
+
+ // 淇敼鎸夐挳
+ editClickHandler() {
+ console.log(this.form);
+ this.editStatus = true;
+ this.addStatus = false;
+ },
+
+ // 淇敼淇濆瓨
+ editSaveClickHandler() {
+ if (!this.form.name) {
+ 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.resourceDotNet && this.form.resourceDotNet.length > 255) {
+ this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘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
+ }
+
+ updateModel(this.form).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.msg);
+ this.editStatus = false;
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ }
+ })
+ },
+
+ // 鍒犻櫎鎸夐挳
+ delClickHandler() {
+ this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ 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(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+
+ // 瀵煎嚭sql
+ sqlClickExportClick() {
+ exportFunctionSql({isFunction: true}).then(res => {
+ func.downloadFileByBlobHandler(res);
+ this.$message.success('瀵煎嚭鎴愬姛');
+ }).catch(err => {
+ this.$message.error(err);
+ });
+ },
+
+ // 鎿嶄綔鍒嗙被澶氶��
+ selectMethodsChange(list) {
+ this.methodsList = list;
+ },
+
+ // 澧炲姞鎿嶄綔绫诲瀷
+ addMethodsClickHandler() {
+ this.methodsLoading = true;
+ getSysModelTreeMenuByPID({parentId: 'sysOptionNode'}).then(res => {
+ if (res.data.code === 200) {
+ this.methodsVisble = true;
+ const data = res.data.data[0].children;
+ this.methodsData = data;
+ this.methodsLoading = false;
+ }
+ })
+ },
+
+ // 澧炲姞鎿嶄綔绫诲瀷淇濆瓨
+ methodsSaveClickHandler() {
+ let list = this.methodsList.map(item => {
+ return {
+ funcId: this.nodeRow.id,
+ operId: item.id,
+ operName: item.name,
+ operIndentify: item.code,
+ operAlias: item.alias,
+ operDesc: item.remark
+ }
+ })
+ addOperationType(list).then(res => {
+ console.log(res)
+ if (res.data.code === 200) {
+ this.methodsVisble = false;
+ this.$message.success(res.data.msg);
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.resetFormValue();
+ this.form.childType = null;
+ }
+ })
+ },
+
+ // 鐐瑰嚮琛�
+ rowMethodsClickHandler(row) {
+ func.rowClickHandler(
+ row,
+ this.$refs.methodsCrud,
+ this.lastIndex,
+ (newIndex) => {
+ this.lastIndex = newIndex;
+ },
+ () => {
+ this.methodsList = [];
+ }
+ );
+ },
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep {
+ .el-form-item .el-select {
+ width: 100%;
+ }
+}
+
+.btnBox {
+ display: flex;
+ justify-content: center;
+}
+</style>
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
new file mode 100644
index 0000000..8709445
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
@@ -0,0 +1,456 @@
+<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>
+ <el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
+ <span v-if="form.childType !== 0">
+ <el-form-item label="妯″潡鍚嶏細">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input>
+ </el-form-item>
+ <el-form-item label="妯″潡鍒悕锛�">
+ <el-input v-model="form.alias" placeholder="妯″潡鍒悕鐢ㄦ潵璁板綍鏃ュ織浣跨敤"></el-input>
+ </el-form-item>
+ <el-form-item label="C/S锛�">
+ <el-input v-model="form.pathC" :rows="3" placeholder="璇疯緭鍏/S璺緞" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label="B/S锛�">
+ <el-input v-model="form.path" :rows="3" placeholder="璇疯緭鍏/S璺緞" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label=".NET锛�">
+ <el-input v-model="form.resourceDotNet" :rows="3" placeholder="璇疯緭鍏�.NET" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label="Mobile锛�">
+ <el-input v-model="form.resourceMobile" :rows="3" placeholder="璇疯緭鍏obile" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label="搴忓彿锛�">
+ <el-input v-model="form.sort" placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input>
+ </el-form-item>
+ <el-form-item label="绠�鍥撅細">
+ <el-input v-model="form.source"></el-input>
+ </el-form-item>
+ <el-form-item label="鎻忚堪锛�">
+ <el-input v-model="form.remark" :rows="3" placeholder="璇疯緭鍏ユ弿杩�" type="textarea"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁鏈夋晥锛�">
+ <el-switch
+ v-model="form.isValid"
+ active-color="#13ce66"
+ inactive-color="#ff4949">
+ </el-switch>
+ <el-link :underline="false" style="margin-left: 20px" type="danger">涓嶇敓鏁堬紙涓嶉�夋嫨锛夋椂锛岃妯″潡鍦ㄥ姛鑳芥ā鍧楁巿鏉冮噷涓嶆樉绀�</el-link>
+ </el-form-item>
+ </span>
+ <span v-if="form.childType === 0">
+ <el-form-item label="鍚嶇О锛�">
+ <el-input v-model="form.name" :disabled="form.childType === 0" placeholder="璇疯緭鍏ュ悕绉�"></el-input>
+ </el-form-item>
+ <el-form-item label="鏍囪瘑锛�">
+ <el-input v-model="form.code" :disabled="form.childType === 0" placeholder="璇疯緭鍏ユ爣璇�"></el-input>
+ </el-form-item>
+ <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" :disabled="form.childType === 0" placeholder="璇疯緭鍏ョ紪鍙�"></el-input>
+ </el-form-item>
+ <el-form-item label="鎻忚堪锛�">
+ <el-input v-model="form.remark" :disabled="form.childType === 0" placeholder="璇疯緭鍏ユ弿杩�"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁鏈夋晥锛�">
+ <el-switch
+ v-model="form.isValid"
+ active-color="#13ce66"
+ inactive-color="#ff4949">
+ </el-switch>
+
+ </el-form-item>
+ </span>
+ </el-form>
+ <div v-if="form.childType && form.childType !== 0" class="btnBox">
+ <el-button v-if="!addStatus" :disabled="mangeShowBtn ? false : !childTypeBtn" 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 v-if="!editStatus" :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary"
+ @click="editClickHandler">淇敼
+ </el-button>
+ <el-button v-if="editStatus" icon="el-icon-check" plain size="small"
+ type="success" @click="editSaveClickHandler">淇濆瓨
+ </el-button>
+ <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
+ @click="delClickHandler">鍒犻櫎
+ </el-button>
+ <el-button :disabled="mangeShowBtn ? true : childTypeBtn" icon="el-icon-circle-plus-outline" plain
+ size="small"
+ type="primary" @click="addMethodsClickHandler">澧炲姞鎿嶄綔绫诲瀷
+ </el-button>
+ <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
+ type="danger"
+ @click="addClickHandler">鍒犻櫎闈炵郴缁熸ā鍧�
+ </el-button>
+ <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
+ type="danger"
+ @click="addClickHandler">鍒犻櫎涓氬姟妯″潡
+ </el-button>
+ <el-button :disabled="!mangeShowBtn" icon="el-icon-upload2" plain size="small" type="primary"
+ @click="upLoadClickHandler">瀵煎叆
+ </el-button>
+ <el-button :disabled="!mangeShowBtn" icon="el-icon-download" plain size="small" type="primary"
+ @click="exportClickHandler">瀵煎嚭
+ </el-button>
+ <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="sqlClickExportClick">瀵煎嚭sql
+ </el-button>
+ </div>
+ <div v-if="form.childType === 0" class="btnBox">
+ <el-button icon="el-icon-edit" plain size="small" type="primary">淇敼鍒悕
+ </el-button>
+ <el-button icon="el-icon-close" plain size="small" type="danger">鍒犻櫎
+ </el-button>
+ </div>
+ </basic-container>
+ </el-main>
+ <el-dialog
+ v-dialogDrag
+ :visible.sync="methodsVisble"
+ append-to-body="true"
+ class="avue-dialog"
+ title="鎿嶄綔鍒嗙被"
+ width="60%"
+ >
+ <avue-crud
+ ref="methodsCrud"
+ :data="methodsData"
+ :option="methodsOption"
+ :table-loading="methodsLoading"
+ @row-click="rowMethodsClickHandler"
+ @selection-change="selectMethodsChange">
+
+ </avue-crud>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="methodsVisble = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="methodsSaveClickHandler">淇� 瀛�</el-button>
+ </span>
+ </el-dialog>
+ </el-container>
+</template>
+
+<script>
+//绠$悊鍔熻兘妯″潡
+import {
+ getSysModelTreeMenuByPID,
+ addModel,
+ updateModel,
+ delModule,
+ exportFunctionSql,
+ addOperationType
+} from "@/api/systemModel/mangeModel/api"
+import func from "@/util/func";
+import basicOption from "@/util/basic-option";
+
+export default {
+ name: "index",
+ data() {
+ return {
+ lastIndex: null,
+ methodsList: [],
+ methodsData: [],
+ methodsOption: {
+ ...basicOption,
+ addBtn: false,
+ menu: false,
+ height: 500,
+ column: [
+ {
+ label: '鎿嶄綔鍒嗙被',
+ prop: 'name',
+ sortable: true,
+ }
+ ]
+ },
+ methodsLoading: false,
+ methodsVisble: false,
+ defalutName: ['name', 'alias', 'pathC', 'path', 'resourceDotNet', 'resourceMobile', 'sort', 'source', 'remark', 'code'],
+ refresh: Math.random(),
+ addStatus: false,
+ editStatus: false,
+ nodeRow: {},
+ form: {},
+ treeData: [],
+ treeOption: {
+ height: 'auto',
+ menu: false,
+ addBtn: false,
+ defaultExpandAll: false,
+ props: {
+ label: 'name',
+ value: 'id',
+ children: 'children',
+ },
+ lazy: true,
+ treeLoad: (node, resolve) => {
+ const params = {
+ parentId: node.level === 0 ? "systemManagmentNode" : node.data.id,
+ modeType: node.level === 0 ? "firstNode" : node.data.modeType,
+ }
+ getSysModelTreeMenuByPID(params).then(res => {
+ resolve(res.data.data.map(item => {
+ return {
+ ...item,
+ id: item.id,
+ name: item.name,
+ leaf: !item.hasChildren
+ }
+ }))
+ })
+ }
+ },
+ }
+ },
+ created() {
+ },
+ computed: {
+ /**
+ * childType
+ * 涓�-1 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷
+ * 涓嶄负-1 闅愯棌 鍒犻櫎闈炵郴缁熸ā鍧� 鍒犻櫎涓氬姟妯″潡
+ * 涓�1鏃� 绂佺敤鎿嶄綔绫诲瀷銆佸鍏ャ�佸鍑�
+ * 涓�2鏃� 绂佺敤澧炲姞 瀵煎叆 瀵煎嚭
+ * mangeShowBtn 涓� true 璇存槑鏄《灞傝妭鐐� 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷
+ * @returns {Number}
+ */
+ mangeShowBtn() {
+ return this.form.childType === -1;
+ },
+ childTypeBtn() {
+ return this.form.childType === 1;
+ }
+ },
+ methods: {
+ // 鏍戣鐐瑰嚮
+ nodeClick(row) {
+ console.log(row.childType);
+ this.form = {...row};
+ this.nodeRow = {...row};
+ this.addStatus = false;
+ this.editStatus = false;
+ },
+
+ // 鏂板鎸夐挳
+ addClickHandler() {
+ this.resetFormValue();
+ this.addStatus = true;
+ this.editStatus = false;
+ },
+
+ // 娓呯┖琛ㄥ崟缁戝畾鍊�
+ resetFormValue() {
+ this.defalutName.forEach(key => {
+ this.form[key] = null;
+ })
+ this.form.isValid = false;
+ },
+
+ // 鏂板淇濆瓨鎸夐挳
+ addSaveClickHandler() {
+ if (!this.form.name) {
+ 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.resourceDotNet && this.form.resourceDotNet.length > 255) {
+ this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘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
+ }
+ this.form.parentId = this.form.id;
+ addModel(this.form).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.msg);
+ this.addStatus = false;
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ }
+ })
+ },
+
+ // 淇敼鎸夐挳
+ editClickHandler() {
+ console.log(this.form);
+ this.editStatus = true;
+ this.addStatus = false;
+ },
+
+ // 淇敼淇濆瓨
+ editSaveClickHandler() {
+ if (!this.form.name) {
+ 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.resourceDotNet && this.form.resourceDotNet.length > 255) {
+ this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘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
+ }
+
+ updateModel(this.form).then(res => {
+ if (res.data.code === 200) {
+ this.$message.success(res.data.msg);
+ this.editStatus = false;
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ }
+ })
+ },
+
+ // 鍒犻櫎鎸夐挳
+ delClickHandler() {
+ this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ 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(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+
+ // 瀵煎嚭sql
+ sqlClickExportClick() {
+ exportFunctionSql({isFunction: true}).then(res => {
+ func.downloadFileByBlobHandler(res);
+ this.$message.success('瀵煎嚭鎴愬姛');
+ }).catch(err => {
+ this.$message.error(err);
+ });
+ },
+
+ // 鎿嶄綔鍒嗙被澶氶��
+ selectMethodsChange(list) {
+ this.methodsList = list;
+ },
+
+ // 澧炲姞鎿嶄綔绫诲瀷
+ addMethodsClickHandler() {
+ this.methodsLoading = true;
+ getSysModelTreeMenuByPID({parentId: 'sysOptionNode'}).then(res => {
+ if (res.data.code === 200) {
+ this.methodsVisble = true;
+ const data = res.data.data[0].children;
+ this.methodsData = data;
+ this.methodsLoading = false;
+ }
+ })
+ },
+
+ // 澧炲姞鎿嶄綔绫诲瀷淇濆瓨
+ methodsSaveClickHandler() {
+ let list = this.methodsList.map(item => {
+ return {
+ funcId: this.nodeRow.id,
+ operId: item.id,
+ operName: item.name,
+ operIndentify: item.code,
+ operAlias: item.alias,
+ operDesc: item.remark
+ }
+ })
+ addOperationType(list).then(res => {
+ console.log(res)
+ if (res.data.code === 200) {
+ this.methodsVisble = false;
+ this.$message.success(res.data.msg);
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ this.resetFormValue();
+ this.form.childType = null;
+ }
+ })
+ },
+
+ // 鐐瑰嚮琛�
+ rowMethodsClickHandler(row) {
+ func.rowClickHandler(
+ row,
+ this.$refs.methodsCrud,
+ this.lastIndex,
+ (newIndex) => {
+ this.lastIndex = newIndex;
+ },
+ () => {
+ this.methodsList = [];
+ }
+ );
+ },
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep {
+ .el-form-item .el-select {
+ width: 100%;
+ }
+}
+
+.btnBox {
+ display: flex;
+ justify-content: center;
+}
+</style>
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
new file mode 100644
index 0000000..281ec3b
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
@@ -0,0 +1,189 @@
+<template>
+ <el-container>
+ <el-aside>
+ <basic-container>
+ <div style="max-height: calc(100vh - 170px);overflow: auto">
+ <avue-tree 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>
+ <el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
+ <el-form-item label="鍚嶇О锛�">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�"></el-input>
+ </el-form-item>
+ <el-form-item label="鏍囪瘑锛�">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ユ爣璇�"></el-input>
+ </el-form-item>
+ <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>
+ <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
+ 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>
+ <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
+ @click="addClickHandler">鍒犻櫎
+ </el-button>
+ <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">瀵煎叆sql
+ </el-button>
+ </div>
+ </basic-container>
+ </el-main>
+ </el-container>
+</template>
+
+<script>
+//绠$悊鍔熻兘妯″潡
+import {getSysModelTreeMenuByPID, addModel} from "@/api/systemModel/mangeModel/api"
+
+export default {
+ name: "index",
+ data() {
+ return {
+ addStatus: false,
+ nodeRow: {},
+ form: {},
+ treeData: [],
+ treeOption: {
+ height: 'auto',
+ menu: false,
+ addBtn: false,
+ defaultExpandAll: false,
+ props: {
+ label: 'name',
+ value: 'id',
+ children: 'children',
+ },
+ lazy: true,
+ treeLoad: (node, resolve) => {
+ const params = {
+ parentId: node.level === 0 ? "operateNode" : node.data.id,
+ modeType: node.level === 0 ? "firstNode" : node.data.modeType,
+ }
+ getSysModelTreeMenuByPID(params).then(res => {
+ resolve(res.data.data.map(item => {
+ return {
+ ...item,
+ id: item.id,
+ name: item.name,
+ leaf: !item.hasChildren
+ }
+ }))
+ })
+ }
+ },
+ }
+ },
+ created() {
+ },
+ computed: {
+ /**
+ * childType
+ * 涓�-1 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷
+ * 涓嶄负-1 闅愯棌 鍒犻櫎闈炵郴缁熸ā鍧� 鍒犻櫎涓氬姟妯″潡
+ * 涓�1鏃� 绂佺敤鎿嶄綔绫诲瀷銆佸鍏ャ�佸鍑�
+ * 涓�2鏃� 绂佺敤澧炲姞 瀵煎叆 瀵煎嚭
+ * mangeShowBtn 涓� true 璇存槑鏄《灞傝妭鐐� 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷
+ * @returns {Number}
+ */
+ mangeShowBtn() {
+ return this.form.childType === -1;
+ },
+ childTypeBtn() {
+ return this.form.childType === 1;
+ }
+ },
+ methods: {
+ // 鏍戣鐐瑰嚮
+ nodeClick(row) {
+ console.log(row);
+ this.form = {...row};
+ this.nodeRow = {...row};
+ this.addStatus = false;
+ },
+
+ // 鏂板鎸夐挳
+ addClickHandler() {
+ for (const key in this.form) {
+ if (this.form.hasOwnProperty(key)) {
+ this.form[key] = null;
+ }
+ }
+ this.addStatus = true;
+ },
+
+ // 淇濆瓨鎸夐挳
+ addSaveClickHandler() {
+ console.log(this.form)
+ if (!this.form.name) {
+ 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.resourceDotNet && this.form.resourceDotNet.length > 255) {
+ this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘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;
+ })
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep {
+ .el-form-item .el-select {
+ width: 100%;
+ }
+}
+
+.btnBox {
+ display: flex;
+ justify-content: center;
+}
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModule/systemConfig/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue
similarity index 100%
rename from Source/plt-web/plt-web-ui/src/views/systemModule/systemConfig/index.vue
rename to Source/plt-web/plt-web-ui/src/views/systemModel/systemConfig/index.vue
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModule/systemMonitor/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue
similarity index 100%
rename from Source/plt-web/plt-web-ui/src/views/systemModule/systemMonitor/index.vue
rename to Source/plt-web/plt-web-ui/src/views/systemModel/systemMonitor/index.vue
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModule/businessModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModule/businessModel/index.vue
deleted file mode 100644
index 54b19c1..0000000
--- a/Source/plt-web/plt-web-ui/src/views/systemModule/businessModel/index.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-<template>
-
-</template>
-
-<script>
-export default {
- name: "index"
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModule/mangeModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModule/mangeModel/index.vue
deleted file mode 100644
index 82a0b37..0000000
--- a/Source/plt-web/plt-web-ui/src/views/systemModule/mangeModel/index.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-<template>
-
-</template>
-
-<script>
-export default {
-name: "index"
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/systemModule/operateType/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModule/operateType/index.vue
deleted file mode 100644
index 54b19c1..0000000
--- a/Source/plt-web/plt-web-ui/src/views/systemModule/operateType/index.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-<template>
-
-</template>
-
-<script>
-export default {
- name: "index"
-}
-</script>
-
-<style scoped>
-
-</style>
--
Gitblit v1.9.3