From f51c53a327689950ce5d0533a1cb872e597ea705 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 19 七月 2024 16:12:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/option.js               |    0 
 Source/plt-web/plt-web-ui/src/components/actions/handlers.js                               |    5 
 Source/plt-web/plt-web-ui/src/components/actions/base/upRevisionAction.js                  |   61 ++++
 Source/plt-web/plt-web-ui/src/util/func.js                                                 |   47 +++
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue             |   13 
 Source/plt-web/plt-web-ui/src/store/modules/user.js                                        |    4 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue               |   13 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue              |   13 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue |   13 
 Source/plt-web/plt-web-ui/src/api/modeling/enumType/api.js                                 |   69 ++++
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue       |   13 
 Source/plt-web/plt-web-ui/src/page/index/top/index.vue                                     |   16 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue     |   13 
 Source/plt-web/plt-web-ui/src/views/system/user/index.vue                                  |    4 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue          |   13 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue               |  552 ++++++++++++++++++++++++++++++++++++
 Source/plt-web/plt-web-ui/src/views/system/user/option.js                                  |    2 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue           |   13 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/statusPool/index.vue             |   13 
 19 files changed, 870 insertions(+), 7 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/api/modeling/enumType/api.js b/Source/plt-web/plt-web-ui/src/api/modeling/enumType/api.js
new file mode 100644
index 0000000..b9185ec
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/api/modeling/enumType/api.js
@@ -0,0 +1,69 @@
+import request from '@/router/axios';
+
+// 鍒楄〃鏌ヨ
+export function getEnumTypeList(params) {
+  return request({
+    url: "/api/webEnumController/getEnumTypeList",
+    method: "get",
+    params
+  });
+}
+
+// 鏋氫妇鍒涘缓
+export function addEnumType(params) {
+  return request({
+    url: "/api/webEnumController/addEnumType",
+    method: "post",
+    data:params
+  });
+}
+
+// 鏋氫妇淇敼
+export function updateEnumType(params) {
+  return request({
+    url: "/api/webEnumController/updateEnumType",
+    method: "put",
+    data:params
+  });
+}
+
+// 鏋氫妇鍒犻櫎
+export function deleteEnumTypes(data) {
+  return request({
+    url: "/api/webEnumController/deleteEnumTypes",
+    method: "delete",
+    data:data
+  });
+}
+
+// 鏌ョ湅浣跨敤鑼冨洿
+export function getUsedEnumList(params) {
+  return request({
+    url: "/api/webEnumController/getUsedEnumList",
+    method: "get",
+    params
+  });
+}
+
+
+// 瀵煎嚭
+export function download  (params) {
+  return request({
+    url: '/api/webEnumController/exportEnumTypes',
+    method: 'get',
+    headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
+    responseType: 'blob',
+    params
+  })
+}
+
+// 涓嬭浇瀵煎叆妯℃澘
+export function downloadEnumTemplate  (params) {
+  return request({
+    url: '/api/webEnumController/downloadEnumTemplate',
+    method: 'get',
+    headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
+    responseType: 'blob',
+    params
+  })
+}
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/upRevisionAction.js b/Source/plt-web/plt-web-ui/src/components/actions/base/upRevisionAction.js
new file mode 100644
index 0000000..3c59f46
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/components/actions/base/upRevisionAction.js
@@ -0,0 +1,61 @@
+/**
+ * 鎸夐挳澶勭悊 涓氬姟绫诲瀷瀹$
+ */
+import {paramLow,callPreEvent, callPostEvent} from '../BaseAction';
+import {validatenull} from "@/util/validate";
+import Vue from "vue";
+import func from "@/util/func";
+import {download} from "@/api/base/file";
+
+export const doAction = (options,callback) => {
+  console.log(options)
+  options.sourceData = options.sourceData || {};
+  options.dataStore = options.dataStore || [];
+  if (!options.dataStore || options.dataStore.length < 1) {
+    Vue.prototype.$message.error("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�");
+    return false;
+  }
+
+  callPreEvent(options, doBefore, function (options) {
+    showStartWindow(options, function () {
+      callPostEvent(options, doAfter, callback,type);
+    });
+  });
+};
+
+/**
+ * 鏄剧ず娴佺▼鐨勭獥鍙�
+ * @param options 鎸夐挳鐨勯厤缃俊鎭�
+ * @param callback 鍥炶皟
+ */
+export const showStartWindow = (options,callback)=> {
+  const paramVOS = options.paramVOS;
+  // if (!paramVOS['form'] && !paramVOS['context']) {
+  //   Vue.prototype.$message.error("鎸夐挳閰嶇疆涓嶆纭�");
+  //   return false;
+  // }
+  // func.downloadFileByBlobHandler();
+
+}
+/**
+ * 鍓嶇疆浜嬩欢
+ * @param options 鎸夐挳鐨勯厤缃俊鎭�
+ * @param callback 鍥炶皟
+ */
+export const doBefore = (options,callback)=> {
+  console.log("鎵ц澧炲姞鍓嶇疆浜嬩欢")
+  if(callback){
+    callback(options);
+  }
+}
+/**
+ * 鍚庣疆浜嬩欢
+ * @param options 鎸夐挳鐨勯厤缃俊鎭�
+ * @param callback 鍥炶皟
+ */
+export const doAfter = (options,callback,actionType)=> {
+  console.log('鎵ц澧炲姞鍚庣疆浜嬩欢');
+  if(callback){
+    callback(actionType);
+  }
+}
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/handlers.js b/Source/plt-web/plt-web-ui/src/components/actions/handlers.js
index 78d4ede..e67f42a 100644
--- a/Source/plt-web/plt-web-ui/src/components/actions/handlers.js
+++ b/Source/plt-web/plt-web-ui/src/components/actions/handlers.js
@@ -39,9 +39,12 @@
     downloadfile: () => {import("@/components/actions/base/downloadFileAction").then(module => {
       module.doAction(options,callback);
     })},
+    uprevision: () => {import("@/components/actions/base/upRevisionAction").then(module => {
+      module.doAction(options,callback);
+    })}
   };
   if (handlers[type]) {
-    handlers[type]()
+    handlers[type]();
   } else {
     Vue.prototype.$message.error('鏈壘鍒板搴攁ction锛岃閲嶆柊閰嶇疆鎸夐挳锛�');
   }
diff --git a/Source/plt-web/plt-web-ui/src/page/index/top/index.vue b/Source/plt-web/plt-web-ui/src/page/index/top/index.vue
index 9969734..7225469 100644
--- a/Source/plt-web/plt-web-ui/src/page/index/top/index.vue
+++ b/Source/plt-web/plt-web-ui/src/page/index/top/index.vue
@@ -132,6 +132,7 @@
 import topNotice from './top-notice'
 import topLang from "./top-lang";
 import {changePassword} from "@/api/user"
+import func from "@/util/func";
 
 export default {
   components: {
@@ -300,9 +301,20 @@
     submitSwitch(form, done) {
       let userInfo = JSON.parse(localStorage.getItem('saber-userInfo'));
 
-      let params = {userOid:userInfo.content.userOid,...form}
+      let params = {
+        userOid:userInfo.content.userOid,
+        oldPassword:func.encryptData(form.oldPassword,'daliantan0v0vcip'),
+        password:func.encryptData(form.password,'daliantan0v0vcip'),
+        confirmPassword:func.encryptData(form.confirmPassword,'daliantan0v0vcip'),
+
+      }
       changePassword(params).then(res =>{
-        console.log(res);
+        if(res.data.code === 200){
+          this.$message.success(res.data.msg);
+          this.passwordVisible = false;
+        }
+      }).catch(err => {
+        console.log(err);
       })
       // this.$store.dispatch("refreshToken", form).then(() => {
       //   this.userBox = false;
diff --git a/Source/plt-web/plt-web-ui/src/store/modules/user.js b/Source/plt-web/plt-web-ui/src/store/modules/user.js
index 9aef2f5..99a59e2 100644
--- a/Source/plt-web/plt-web-ui/src/store/modules/user.js
+++ b/Source/plt-web/plt-web-ui/src/store/modules/user.js
@@ -7,6 +7,7 @@
 import {loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons} from '@/api/user'
 import {getTopMenu, getRoutes} from '@/api/system/menu'
 import md5 from 'js-md5'
+import func from "@/util/func";
 
 
 function addPath(ele, first) {
@@ -62,7 +63,8 @@
     //鏍规嵁鐢ㄦ埛鍚嶇櫥褰�
     LoginByUsername({commit}, userInfo) {
       return new Promise((resolve, reject) => {
-        loginByUsername(userInfo.deptId, userInfo.roleId, userInfo.username,userInfo.password, userInfo.type, userInfo.key,).then(res => {
+        let passwordDes = func.encryptData(userInfo.password,'daliantan0v0vcip')
+        loginByUsername(userInfo.deptId, userInfo.roleId, userInfo.username,passwordDes, userInfo.type, userInfo.key,).then(res => {
           const data = res.data;
           if (data.code === 200) {
             // commit('SET_TOKEN', data.obj.sessionInfo.token);
diff --git a/Source/plt-web/plt-web-ui/src/util/func.js b/Source/plt-web/plt-web-ui/src/util/func.js
index 2eb5052..32bf2bd 100644
--- a/Source/plt-web/plt-web-ui/src/util/func.js
+++ b/Source/plt-web/plt-web-ui/src/util/func.js
@@ -1,6 +1,8 @@
 /**
  * 閫氱敤宸ュ叿绫�
  */
+import CryptoJS from 'crypto-js'
+
 export default class func {
   /**
    * 涓嶄负绌�
@@ -184,5 +186,50 @@
       return item[attr] !== array[0][attr];
     });
   }
+
+  /**
+   * 3des鍔犲瘑
+   * @param message
+   * @param key
+   * @returns {string}
+   */
+  encryptByDES(message, key) {
+    const keyHex = CryptoJS.enc.Utf8.parse(key);
+    const encrypted = CryptoJS.DES.encrypt(message, keyHex, {
+      mode: CryptoJS.mode.ECB,
+      padding: CryptoJS.pad.Pkcs7
+    });
+    return encrypted.toString();
 }
 
+  /**
+   * HmacMD5鍔犲瘑
+   * @param message
+   * @param key
+   * @returns {string}
+   * @constructor
+   */
+  static HmacMD5(message, key) {
+    const encrypted = CryptoJS.HmacMD5(message,key);
+    return encrypted.toString();
+  }
+
+  /**
+   * aes鍔犲瘑
+   * @param data
+   * @param secretKey
+   * @returns {string}
+   */
+  static encryptData(data, secretKey) {
+    const key = CryptoJS.enc.Utf8.parse(secretKey);
+    const iv = CryptoJS.enc.Utf8.parse(secretKey.substr(0, 16)); // AES block size is 128 bits (16 bytes)
+    const encrypted = CryptoJS.AES.encrypt(data, key, {
+      iv: iv,
+      mode: CryptoJS.mode.CBC,
+      padding: CryptoJS.pad.Pkcs7
+    });
+    return encrypted.toString();
+  }
+}
+
+
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue
new file mode 100644
index 0000000..2da0423
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue
@@ -0,0 +1,13 @@
+<template>
+<p>灞炴�ф睜</p>
+</template>
+
+<script>
+export default {
+name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
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
new file mode 100644
index 0000000..53e5dd8
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <p>涓氬姟绫诲瀷</p>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue
new file mode 100644
index 0000000..3335d16
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/index.vue
@@ -0,0 +1,552 @@
+<template>
+  <basic-container>
+    <avue-crud
+      ref="userCrud"
+      :data="tableData"
+      :option="option"
+      :table-loading="tableLoading"
+      @on-load="getTableList"
+      @refresh-change="handleRefresh"
+      @search-change="handleSearch"
+      @search-reset="handleReset"
+      @selection-change="selectChange"
+      @row-click="rowClickHandler"
+    >
+
+      <template slot="menuLeft" slot-scope="scope">
+        <el-button icon="el-icon-plus" size="small" type="primary" @click="rowSaveHandlerClick">鍒涘缓</el-button>
+        <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">鍒犻櫎</el-button>
+        <el-button icon="el-icon-view" plain size="small" type="primary" @click="chekView">鏌ョ湅浣跨敤鑼冨洿</el-button>
+        <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadTemplateHandler">涓嬭浇瀵煎叆妯℃澘</el-button>
+        <el-button icon="el-icon-download" plain size="small" type="primary" @click="downloadHandler">瀵煎嚭</el-button>
+        <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="uploadUser">瀵煎叆</el-button>
+      </template>
+
+      <template slot="menu" slot-scope="scope">
+        <el-button icon="el-icon-edit" size="small" type="text" @click="editBtnClick(scope.row)">缂栬緫
+        </el-button>
+        <el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">鍒犻櫎
+        </el-button>
+      </template>
+
+    </avue-crud>
+    <!-- 鍒涘缓缂栬緫鑷畾涔夊璇濇    -->
+    <el-dialog
+      v-dialogDrag
+      v-loading="dialogLoading"
+      :title="dialogType === 'add' ? ' 鍒涘缓' : '缂栬緫'"
+      :visible.sync="dialogVisible"
+      append-to-body="true"
+      class="avue-dialog"
+      width="70%"
+      @close="dialogClose"
+    >
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="鍚嶇О锛�" prop="id">
+              <el-input v-model="form.id"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鏍囩锛�">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="绫诲瀷锛�">
+              <el-select v-model="form.enumValueDataType" placeholder="璇烽�夋嫨绫诲瀷">
+                <el-option label="String" value="String"></el-option>
+                <el-option label="Integer" value="Integer"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="闀垮害锛�">
+              <el-input-number v-model="form.length" :max="999" :min="1" label="鎻忚堪鏂囧瓧"></el-input-number>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <avue-crud
+              ref="dialogCrud"
+              :data="dialogData"
+              :option="dialogOption"
+              @row-save="rowSaveDialogHandler"
+              @row-update="rowUpdateDialogHandler"
+              @row-del="rowDeleteDialogHandler"
+            >
+            </avue-crud>
+          </el-col>
+        </el-row>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="rowSaveHandler">纭� 瀹�</el-button>
+        <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+      </span>
+    </el-dialog>
+
+    <!-- 鏌ョ湅浣跨敤鑼冨洿    -->
+    <el-dialog
+      v-dialogDrag
+      v-loading="checkViewLoading"
+      title="鏌ョ湅浣跨敤鑼冨洿"
+      :visible.sync="checkViewVisible"
+      append-to-body="true"
+      class="avue-dialog"
+      width="70%"
+    >
+    <avue-crud
+      ref="checkViewCrud"
+      :data="checkViewData"
+      :option="checkViewOption"
+      @search-change="checkHandleSearch"
+      @search-reset="checkHandleReset"
+    >
+
+    </avue-crud>
+    </el-dialog>
+
+    <!--瀵煎叆    -->
+    <upload-file ref="upload" :tipList="tipList" :fileType="upFileType" :fileUrl="fileUrl" title="瀵煎叆" @updata="getTableList"></upload-file>
+  </basic-container>
+</template>
+
+<script>
+import basicOption from '@/util/basic-option'
+import {getEnumTypeList, addEnumType, updateEnumType, deleteEnumTypes,getUsedEnumList,download,downloadEnumTemplate} from "@/api/modeling/enumType/api";
+import func from "@/util/func";
+
+export default {
+  name: "index",
+  data() {
+    return {
+      tipList:["瀵煎叆妯℃澘涓爣鏄庣孩鑹插瓧浣撶殑涓哄繀杈撻」","*娉ㄦ剰*:绗簩琛屽紑濮嬬殑鏁版嵁涓虹ず渚嬫暟鎹紝瀵煎叆鍓嶈灏嗗叾鍒犻櫎锛屽綋瀵煎叆鐨勬灇涓句笅鍏峰澶氫釜鏋氫妇椤规椂锛屽簲鎸夌収绀轰緥enum2鐨勫啓娉�",
+        "鏋氫妇椤瑰悕绉�(褰撳墠鏋氫妇涓嬫湁鏋氫妇椤规椂蹇呭~)","鏋氫妇鍊�(褰撳墠鏋氫妇涓嬫湁鏋氫妇椤规椂蹇呭~)"],
+      upFileType: ['xls', 'xlsx'],
+      fileUrl: 'api/webEnumController/importEnumTypes',
+      checkViewOption:{
+        ...basicOption,
+        addBtn:false,
+        menu:false,
+        searchMenuSpan: 8,
+        refreshBtn: false,
+        selection:false,
+        column:[
+          {
+            label: '鍚嶇О',
+            prop: 'enumName',
+            sortable: true,
+          },
+          {
+            label: '鏉ユ簮',
+            prop: 'source',
+            sortable: true,
+            search:true
+          },
+          {
+            label: '璇存槑',
+            prop: 'desc',
+          }
+        ]
+      },
+      checkViewData:[],
+      checkViewDataSearch:[],
+      checkViewVisible:false,
+      checkViewLoading:false,
+      editRow: {},
+      dialogType: '',
+      dialogData: [],
+      dialogOption: {
+        ...basicOption,
+        refreshBtn: false,
+        selection: false,
+        column: [
+          {
+            label: '鏋氫妇椤瑰悕',
+            prop: 'name',
+            sortable: true,
+            rules: [
+              {
+                required: true,
+                message: '璇疯緭鍏ユ灇涓鹃」鍚�',
+                trigger: 'blur'
+              }
+            ]
+          },
+          {
+            label: '鏋氫妇鍊�',
+            prop: 'value',
+            sortable: true,
+            rules: [
+              {
+                required: true,
+                message: '璇疯緭鍏ユ灇涓惧��',
+                trigger: 'blur'
+              }
+            ]
+          },
+          {
+            label: '鎻忚堪',
+            prop: 'description',
+            sortable: true,
+          },
+        ]
+      },
+      rules: {
+        id: [
+          {required: true, message: '璇疯緭鍏ユ灇涓鹃」鍚�', trigger: 'blur'},
+          {validator: this.validateEnglishOnly, trigger: 'blur'}
+        ],
+      },
+      form: {
+        id: '',
+        name: '',
+        enumValueDataType: 'String',
+        length: 50
+      },
+      dialogLoading: false,
+      dialogVisible: false,
+      tableData: [],
+      option: {
+        ...basicOption,
+        calcHeight: -60,
+        searchMenuSpan: 8,
+        addBtn: false,
+        editBtn: false,
+        delBtn: false,
+        column: [
+          {
+            label: '鏋氫妇鍚嶇О',
+            prop: 'id',
+            sortable: true,
+            search:true
+          },
+          {
+            label: '鏍囩',
+            prop: 'name',
+            sortable: true,
+          },
+          {
+            label: '杩斿洖绫诲瀷',
+            prop: 'enumValueDataTypeText',
+            sortable: true,
+          }
+        ]
+      },
+      tableLoading: false,
+      selectList: [],
+      searchParams:{}
+    }
+  },
+  methods: {
+    //琛ㄦ牸鏌ヨ璇锋眰
+    getTableList() {
+      this.tableLoading = true;
+      getEnumTypeList(this.searchParams).then(res => {
+        const data = res.data.data;
+        this.tableData = data;
+        this.tableLoading = false;
+      }).catch(err => {
+        this.$message.error(err)
+      });
+    },
+
+    // 琛ㄦ牸澶撮儴鍒锋柊
+    handleRefresh() {
+      this.getTableList();
+    },
+
+    // 鎼滅储
+    handleSearch(params,done) {
+      this.searchParams = {
+        enumName:params.id
+      };
+      this.getTableList()
+      done();
+    },
+
+    // 閲嶇疆鎼滅储鏉′欢
+    handleReset() {
+      this.searchParams = {};
+      this.getTableList();
+    },
+
+    // 閫夋嫨妗�
+    selectChange(row) {
+      this.selectList = row;
+    },
+
+    // 鐐瑰嚮琛�
+    rowClickHandler(row) {
+      this.$refs.userCrud.toggleRowSelection(row);
+    },
+
+    // 鍏抽棴瀵硅瘽妗�
+    dialogClose() {
+      this.dialogData = [];
+      this.form = {
+        id: '',
+        name: '',
+        enumValueDataType: 'String',
+        length: 50
+      }
+    },
+
+    // 鍒涘缓鎸夐挳鐐瑰嚮
+    rowSaveHandlerClick() {
+      this.dialogType = 'add';
+      this.dialogVisible = true;
+      this.dialogData = [];
+      this.form = {
+        id: '',
+        name: '',
+        enumValueDataType: 'String',
+        length: 50
+      }
+    },
+
+    // 缂栬緫鎸夐挳鐐瑰嚮
+    editBtnClick(row) {
+      this.dialogType = 'edit';
+      const {id, name, length, enumValueDataType} = row;
+      this.form = {id, name, length, enumValueDataType};
+      this.dialogData = row.items;
+      this.dialogVisible = true;
+      this.editRow = row;
+      console.log(row);
+    },
+
+    // 鍒犻櫎鎸夐挳鐐瑰嚮
+    rowDeleteHandler(row) {
+      let params = {
+        oid: row.oid,
+        name: row.id,
+        ts: row.ts
+      }
+      let data = [params];
+      deleteEnumTypes(data).then(res => {
+        if (res.data.code === 200) {
+          this.$message.success(res.data.obj);
+          this.getTableList();
+        }
+      })
+    },
+
+    // 澶氶�夊垹闄�
+    allDelHandler() {
+      let data = this.selectList.map(item => {
+        return{
+          oid: item.oid,
+          name: item.id,
+          ts: item.ts
+        }
+      })
+      deleteEnumTypes(data).then(res => {
+        if (res.data.code === 200) {
+          this.$message.success(res.data.obj);
+          this.getTableList();
+        }
+      })
+    },
+
+    // 瀵硅瘽妗嗘灇涓句繚瀛�
+    rowSaveHandler() {
+      const lengthStatus = this.dialogData.some(item => item.value.length > this.form.length)
+      if (lengthStatus) {
+        this.$message.error('璇锋鏌ユ灇涓惧�兼槸鍚﹁秴杩囨渶澶ч暱搴︼紒')
+        return;
+      }
+
+      if (this.form.enumValueDataType === "Integer") {
+        // 鍒ゆ柇鏄惁鍖呭惈闈炴暟瀛楀瓧绗�
+        const integerStatus = this.dialogData.some(item => {
+          if (!/^\-?\d+$/.test(item.value)) {
+            return true;
+          }
+        })
+
+        // 鍒ゆ柇鏄惁鏄痠nteger鏍煎紡
+        const integerNumStatus = this.dialogData.some(item => {
+          let numValue = parseInt(item.value);
+          if (isNaN(numValue) || !Number.isInteger(numValue)) {
+            return true;
+          }
+        })
+
+        if (integerStatus || integerNumStatus) {
+          this.$message.error('鏋氫妇鍊煎繀椤绘槸Integer绫诲瀷');
+          return;
+        }
+      }
+
+      if (this.dialogType === 'add') {
+        let params = {
+          ...this.form,
+          items: this.dialogData
+        }
+        addEnumType(params).then(res => {
+          if (res.data.code === 200) {
+            this.$message.success(res.data.obj);
+            this.dialogVisible = false;
+            this.getTableList();
+          }
+        })
+      } else if (this.dialogType === 'edit') {
+        let params = {
+          ...this.form,
+          items: this.dialogData,
+          oid: this.editRow.oid,
+          ts: this.editRow.ts
+        }
+        updateEnumType(params).then(res => {
+          if (res.data.code === 200) {
+            this.$message.success(res.data.obj);
+            this.dialogVisible = false;
+            this.getTableList();
+          }
+        })
+      }
+    },
+
+    // 鏋氫妇椤规柊澧�
+    rowSaveDialogHandler(row, done, loading) {
+      const status = this.dialogData.some(item => item.name === row.name);
+      if (status) {
+        this.$message.error('鏋氫妇椤瑰悕绉颁笉鑳介噸澶嶆坊鍔狅紒')
+        loading();
+      } else {
+        if (this.form.enumValueDataType === "Integer") {
+          let numValue = parseInt(row.value);
+          // 鍒ゆ柇鍘熷瀛楃涓叉槸鍚﹀寘鍚潪鏁板瓧瀛楃
+          if ((isNaN(numValue) || !Number.isInteger(numValue)) || !/^\-?\d+$/.test(row.value)) {
+            // 鍒ゆ柇 numValue 鏄惁鏄� NaN 鎴栬�呬笉鏄疘nteger绫诲瀷
+            this.$message.error('鏋氫妇鍊煎繀椤绘槸Integer绫诲瀷');
+            return loading();
+          }
+        }
+        if (row.value.length > this.form.num) {
+          this.$message.error('鏋氫妇鍊艰秴杩囨渶澶ч暱搴︼紒')
+          return loading();
+        }
+
+        this.dialogData.push(row);
+        done();
+      }
+    },
+
+    // 鏋氫妇椤逛慨鏀�
+    rowUpdateDialogHandler(row, index, done, loading) {
+      if (this.form.enumValueDataType === "Integer") {
+        let numValue = parseInt(row.value);
+        // 鍒ゆ柇鍘熷瀛楃涓叉槸鍚﹀寘鍚潪鏁板瓧瀛楃
+        if ((isNaN(numValue) || !Number.isInteger(numValue)) || !/^\-?\d+$/.test(row.value)) {
+          // 鍒ゆ柇 numValue 鏄惁鏄� NaN 鎴栬�呬笉鏄疘nteger绫诲瀷
+          this.$message.error('鏋氫妇鍊煎繀椤绘槸Integer绫诲瀷');
+          return loading();
+        }
+      }
+      if (row.value.length > this.form.length) {
+        this.$message.error('鏋氫妇鍊艰秴杩囨渶澶ч暱搴︼紒')
+        return loading();
+      }
+
+      this.dialogData.splice(index, 1, row);
+      done();
+    },
+
+    // 鏋氫妇椤瑰垹闄�
+    rowDeleteDialogHandler(row, index) {
+      this.dialogData.splice(index, 1);
+    },
+
+
+    // 鍙兘杈撳叆鑻辨枃姝e垯鏍¢獙
+    validateEnglishOnly(rule, value, callback) {
+      if (!value) {
+        return callback(new Error('璇疯緭鍏ユ灇涓鹃」鍚�'));
+      }
+      if (!/^[A-Za-z]+$/.test(value)) {
+        return callback(new Error('鍙兘杈撳叆鑻辨枃瀛楁瘝'));
+      }
+      callback(); // 楠岃瘉閫氳繃
+    },
+
+    // 鏌ョ湅浣跨敤鑼冨洿
+    chekView(){
+      if(this.selectList.length <= 0 ){
+        this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
+        return;
+      }
+      if(this.selectList.length >1 ){
+        this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹繘琛屾煡鐪�');
+        return;
+      }
+
+      getUsedEnumList({enumName:this.selectList[0].id}).then(res => {
+        if(res.data.code === 200){
+          this.checkViewVisible = true;
+          this.checkViewData = res.data.data;
+          this.checkViewDataSearch = res.data.data;
+        }
+      })
+    },
+
+    // 鏌ョ湅浣跨敤鑼冨洿鏌ヨ
+    checkHandleSearch(params, done) {
+      const { source } = params;
+
+      if(!params.source) {
+        this.checkViewData = this.checkViewDataSearch;
+        return done();
+      };
+
+      this.checkViewData = this.checkViewData.filter(item => {
+        return item.source && item.source.includes(source);
+      });
+
+      done();
+
+    },
+
+    // 鏌ョ湅浣跨敤鑼冨洿閲嶇疆
+    checkHandleReset(){
+      this.checkViewData = this.checkViewDataSearch;
+    },
+
+    // 瀵煎嚭
+    downloadHandler(){
+      if(this.selectList.length <= 0 ){
+        this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹繘琛屽鍑�');
+        return;
+      }
+
+      let enumNames = this.selectList.map(item => item.id).join(',');
+      download({enumNames:enumNames}).then(res => {
+        func.downloadFileByBlobHandler(res);
+        this.$message.success('瀵煎嚭鎴愬姛');
+      }).catch(err => {
+        this.$message.error(err);
+      })
+    },
+
+    // 涓嬭浇瀵煎叆妯℃澘
+    downloadTemplateHandler(){
+      downloadEnumTemplate().then(res => {
+        func.downloadFileByBlobHandler(res);
+        this.$message.success('涓嬭浇鎴愬姛');
+      }).catch(err => {
+        this.$message.error(err);
+      })
+    },
+
+    uploadUser(){
+      this.$refs.upload.visible = true;
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/option.js b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/option.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/enumType/option.js
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue
new file mode 100644
index 0000000..d3ee2bc
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <p>鐢熷懡鍛ㄦ湡</p>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue
new file mode 100644
index 0000000..e153ed7
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <p>閾炬帴绫诲瀷</p>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/statusPool/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/statusPool/index.vue
new file mode 100644
index 0000000..a894f7f
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/statusPool/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <p>鐘舵�佹睜</p>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue
new file mode 100644
index 0000000..a042dbb
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <p>鐗堟湰绠$悊</p>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue
new file mode 100644
index 0000000..35e0ed5
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <p>涓氬姟绫诲瀷鏌ヨ</p>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue
new file mode 100644
index 0000000..c5677bc
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <p>閾炬帴绫诲瀷鏌ヨ</p>
+</template>
+
+<script>
+export default {
+  name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue
new file mode 100644
index 0000000..00df313
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <p>鏌ヨ妯℃澘瀹氫箟</p>
+</template>
+
+<script>
+export default {
+name: "index"
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
index 2f29cad..8c09e9e 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue
@@ -494,7 +494,7 @@
       download().then(res => {
         console.log(res);
         func.downloadFileByBlobHandler(res);
-        this.$message.success('涓嬭浇鎴愬姛')
+        this.$message.success('涓嬭浇鎴愬姛');
       }).catch(err => {
         this.$message.error(err);
       })
@@ -508,7 +508,7 @@
     // 鍒嗛厤閮ㄩ棬
     departmentHandler() {
       if (this.selectList.length <= 0) {
-        this.$message.warning('娓呭厛閫夋嫨浜哄憳鍐嶈繘琛屾搷浣滐紒')
+        this.$message.warning('娓呭厛閫夋嫨浜哄憳鍐嶈繘琛屾搷浣滐紒');
         return;
       }
       this.departStatus = 'default'; // 鍖哄垎涓嶅悓鏂瑰紡鎵撳紑閮ㄩ棬瀵硅瘽妗�
diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/option.js b/Source/plt-web/plt-web-ui/src/views/system/user/option.js
index 7941331..a4dbce6 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/user/option.js
+++ b/Source/plt-web/plt-web-ui/src/views/system/user/option.js
@@ -7,7 +7,7 @@
     rules: [
       {
         required: true,
-        message: '璇疯緭鍏ュ鍚�',
+        message: '璇疯緭鍏ヨ处鍙�',
         trigger: 'blur'
       }
     ]

--
Gitblit v1.9.3