From 03c38da7555b69cb598e534c97fa25bd5385701c Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 29 十月 2024 17:55:50 +0800
Subject: [PATCH] 表单定义权限控制和属性权限&&成员管理添加密级&&首页修改密码&&登录判断过期停用修改密码后跳转首页

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue |  192 ++++++++++++++++++++++++++++++------------------
 1 files changed, 120 insertions(+), 72 deletions(-)

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
index 4842e75..b49b2bd 100644
--- 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
@@ -18,10 +18,11 @@
           @current-change="currentChange"
         >
           <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-plus" plain 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 icon="el-icon-download" plain size="small" type="primary" @click="downloadTemplateHandler">
+              涓嬭浇瀵煎叆妯℃澘
             </el-button>
             <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadHandler">瀵煎叆</el-button>
             <el-button icon="el-icon-download" plain size="small" type="primary" @click="downLoadHandler">瀵煎嚭</el-button>
@@ -45,19 +46,25 @@
               <template slot="label">
                 鍚嶇О
               </template>
-              {{ lastItem.id }}
+              <div style="width: 330px">
+                {{ lastItem.id }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 鏍囩
               </template>
-              {{ lastItem.name }}
+              <div style="width: 330px">
+                {{ lastItem.name }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 鎻忚堪
               </template>
-              {{ lastItem.description }}
+              <div style="width: 330px">
+                {{ lastItem.description }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
@@ -75,9 +82,11 @@
               <template slot="label">
                 鍏佽涓虹┖
               </template>
-              <el-tag :type="lastItem.nullableFlag ? 'success' : 'danger'">
-                {{ lastItem.nullableFlag ? '鏄�' : '鍚�' }}
-              </el-tag>
+              <div style="width: 330px">
+                <el-tag :type="lastItem.nullableFlag ? 'success' : 'danger'">
+                  {{ lastItem.nullableFlag ? '鏄�' : '鍚�' }}
+                </el-tag>
+              </div>
             </el-descriptions-item>
             <el-descriptions-item v-if="accuracy">
               <template slot="label">
@@ -89,13 +98,17 @@
               <template slot="label">
                 闀垮害
               </template>
-              {{ lastItem.attrLength }}
+              <div style="width: 330px">
+                {{ lastItem.attrLength }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 榛樿鍊�
               </template>
-              {{ lastItem.defaultValue }}
+              <div style="width: 330px">
+                {{ lastItem.defaultValue }}
+              </div>
             </el-descriptions-item>
           </el-descriptions>
 
@@ -106,33 +119,43 @@
               <template slot="label">
                 褰撳墠绫诲瀷
               </template>
-              {{ lastItem.version ? '閾炬帴绫诲瀷' : '涓氬姟绫诲瀷' }}
+              <div style="width: 345px">
+                {{ lastItem.version ? '閾炬帴绫诲瀷' : '涓氬姟绫诲瀷' }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 褰撳墠绫诲瀷鍊�
               </template>
-              {{ lastItem.version ? lastItem.linkTypeName : lastItem.btmTypeId }}
+              <div style="width: 345px">
+                {{ lastItem.version ? lastItem.linkTypeName : lastItem.btmTypeId }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item v-if="lastItem.version">
               <template slot="label">
                 褰撳墠鐗堟湰娆�
               </template>
-              {{ lastItem.version }}
+              <div style="width: 345px">
+                {{ lastItem.version }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 浣跨敤鏋氫妇
               </template>
-              <el-tag :type="lastItem.enumId ? 'success' : 'danger'">
-                {{ lastItem.enumId ? '鏄�' : '鍚�' }}
-              </el-tag>
+              <div style="width: 345px">
+                <el-tag :type="lastItem.enumId ? 'success' : 'danger'">
+                  {{ lastItem.enumId ? '鏄�' : '鍚�' }}
+                </el-tag>
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 褰撳墠鏋氫妇绫诲瀷
               </template>
-              {{ lastItem.enumId }}
+              <div style="width: 345px">
+                {{ lastItem.enumId }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
@@ -153,21 +176,25 @@
               <template slot="label">
                 浣跨敤鏋氫妇
               </template>
-              <el-tag :type="lastItem.enumFlag ? 'success' : 'danger'">
-                {{ lastItem.enumFlag ? '鏄�' : '鍚�' }}
-              </el-tag>
+              <div style="width: 330px">
+                <el-tag :type="lastItem.enumFlag ? 'success' : 'danger'">
+                  {{ lastItem.enumFlag ? '鏄�' : '鍚�' }}
+                </el-tag>
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 鏋氫妇绫诲瀷
               </template>
-              {{ lastItem.enumFlag }}
+              <div style="width: 330px">
+                {{ lastItem.enumFlag }}
+              </div>
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 鍙栧�艰寖鍥�
               </template>
-              <div style="width: 330px; height: 80px;overflow: auto">
+              <div style="width: 345px; height: 80px;overflow: auto">
                 <el-tag v-for="item in rangeList" plain style="margin: 5px">{{ item }}</el-tag>
               </div>
             </el-descriptions-item>
@@ -206,9 +233,7 @@
         <el-row>
           <div class="addDialog">
             <div>
-
               <h3>灞炴�ч」</h3>
-
               <el-col :span="12">
                 <el-form-item label="鍚嶇О锛�" prop="id">
                   <el-input v-model="form.id"></el-input>
@@ -347,13 +372,13 @@
                 </el-form-item>
                 <el-form-item v-if="!form.enumSwitch" label="杩愮畻绗︼細">
                   <div>
-                    <el-button size="mini" @click="operationHandler('>')"> > </el-button>
-                    <el-button size="mini" @click="operationHandler('<')"> < </el-button>
-                    <el-button size="mini" @click="operationHandler('>=')"> >= </el-button>
-                    <el-button size="mini" @click="operationHandler('<=')"> <= </el-button>
-                    <el-button size="mini" @click="operationHandler('=')"> = </el-button>
-                    <el-button size="mini" @click="operationHandler('!=')"> != </el-button>
-                    <el-button size="mini" @click="operationHandler('()')"> () </el-button>
+                    <el-button size="mini" @click="operationHandler('>')"> ></el-button>
+                    <el-button size="mini" @click="operationHandler('<')"> <</el-button>
+                    <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
+                    <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
+                    <el-button size="mini" @click="operationHandler('=')"> =</el-button>
+                    <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
+                    <el-button size="mini" @click="operationHandler('()')"> ([])</el-button>
                   </div>
                 </el-form-item>
                 <el-form-item :label="form.enumSwitch ? '褰撳墠鏋氫妇鍊硷細' : '褰撳墠鍊煎煙锛�'" prop="rangeValue">
@@ -371,16 +396,16 @@
                 </el-form-item>
                 <el-form-item label="杩愮畻绗︼細">
                   <div>
-                    <el-button size="mini" @click="operationHandler('>')"> > </el-button>
-                    <el-button size="mini" @click="operationHandler('<')"> < </el-button>
-                    <el-button size="mini" @click="operationHandler('>=')"> >= </el-button>
-                    <el-button size="mini" @click="operationHandler('<=')"> <= </el-button>
-                    <el-button size="mini" @click="operationHandler('=')"> = </el-button>
-                    <el-button size="mini" @click="operationHandler('!=')"> != </el-button>
-                    <el-button size="mini" @click="operationHandler('()')"> () </el-button>
+                    <el-button size="mini" @click="operationHandler('>')"> ></el-button>
+                    <el-button size="mini" @click="operationHandler('<')"> <</el-button>
+                    <el-button size="mini" @click="operationHandler('>=')"> >=</el-button>
+                    <el-button size="mini" @click="operationHandler('<=')"> <=</el-button>
+                    <el-button size="mini" @click="operationHandler('=')"> =</el-button>
+                    <el-button size="mini" @click="operationHandler('!=')"> !=</el-button>
+                    <el-button size="mini" @click="operationHandler('()')">([])</el-button>
                   </div>
                 </el-form-item>
-                <el-form-item :label="form.enumSwitch ? '褰撳墠鏋氫妇鍊硷細' : '褰撳墠鍊煎煙锛�'"  prop="rangeValue">
+                <el-form-item :label="form.enumSwitch ? '褰撳墠鏋氫妇鍊硷細' : '褰撳墠鍊煎煙锛�'" prop="rangeValue">
                   <textarea v-model="form.rangeValue"
                             style="width: 330px; height: 80px; border: 1px solid #DCDFE6; overflow: auto; text-align: left;resize: none;">
                   </textarea>
@@ -576,6 +601,7 @@
         addBtn: false,
         editBtn: false,
         delBtn: false,
+        menuWidth: 160,
         column
       },
       tableLoading: false,
@@ -649,6 +675,7 @@
       ],
       upFileType: ['xls', 'xlsx'],
       fileUrl: 'api/attributeController/importAttributes',
+      lastIndex: null
     }
   },
   computed: {
@@ -732,7 +759,17 @@
 
     // 鐐瑰嚮琛�
     rowClickHandler(row) {
-      this.$refs.userCrud.toggleRowSelection(row);
+      func.rowClickHandler(
+        row,
+        this.$refs.userCrud,
+        this.lastIndex,
+        (newIndex) => {
+          this.lastIndex = newIndex;
+        },
+        () => {
+          this.selectList = [];
+        }
+      );
     },
 
     // 鏉℃暟
@@ -956,8 +993,13 @@
 
       // 澶勭悊 '()' 杩愮畻绗︾殑鎯呭喌
       if (val === '()') {
+        let regex = /[,\[\]()]+/g;
+        let firstValue = this.form.enumAddValue[0];
+        let lastValue = this.form.enumAddValue[(this.form.enumAddValue.length - 1)];
         // 鍒囧壊 enumAddValue 鐨勯�楀彿
-        let values = this.form.enumAddValue.split(',').map(item => item.trim());
+        let values = this.form.enumAddValue.split(regex).map(item => item.trim()).filter(item => item !== "");
+        ;
+
 
         // 妫�鏌ユ槸鍚︽湁鏈夋晥鐨勫��
         if (values.length < 2 || values.some(item => item === '')) {
@@ -980,7 +1022,7 @@
         }
 
         // 鏋勫缓 newValue 鐨勫舰寮� (鍊�1,鍊�2)
-        let newValue = `(${values.join(',')})`;
+        let newValue = `${firstValue}${values.join(',')}${lastValue}`;
 
         // 妫�鏌ユ柊鐨勫�兼槸鍚﹀凡瀛樺湪
         if (currentRangeArray.includes(newValue)) {
@@ -1206,38 +1248,44 @@
         linkTypeName: "",
         rangeValue: ""
       };
-      if (this.dialogTitle === 'add') {
-        this.form.range = this.form.rangeValue.replace(/\n/g, ';');
-        if (this.form.attributeSelectType === 'business') {
-          this.form.btmTypeId = this.form.referValue;
-        } else {
-          this.form.linkTypeName = this.form.referValue;
-        }
-        addAttribute(this.form).then(res => {
-          if (res.data.code === 200) {
-            this.$message.success(res.data.obj);
-            this.getTableList();
-            this.form = form;
-            this.addVisible = false;
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          if (this.dialogTitle === 'add') {
+            this.form.range = this.form.rangeValue ? this.form.rangeValue.replace(/\n/g, ';') : '';
+            if (this.form.attributeSelectType === 'business') {
+              this.form.btmTypeId = this.form.referValue;
+            } else {
+              this.form.linkTypeName = this.form.referValue;
+            }
+            addAttribute(this.form).then(res => {
+              if (res.data.code === 200) {
+                this.$message.success(res.data.obj);
+                this.getTableList();
+                this.form = form;
+                this.addVisible = false;
+              }
+            })
           }
-        })
-      }
-      if (this.dialogTitle === 'edit') {
-        this.form.range = this.form.rangeValue.replace(/\n/g, ';');
-        if (this.form.attributeSelectType === 'business') {
-          this.form.btmTypeId = this.form.referValue;
-        } else {
-          this.form.linkTypeName = this.form.referValue;
-        }
-        updateAttribute(this.form).then(res => {
-          if (res.data.code === 200) {
-            this.$message.success(res.data.obj);
-            this.getTableList();
-            this.form = form;
-            this.addVisible = false;
+          if (this.dialogTitle === 'edit') {
+            this.form.range = this.form.rangeValue ? this.form.rangeValue.replace(/\n/g, ';') : '';
+            if (this.form.attributeSelectType === 'business') {
+              this.form.btmTypeId = this.form.referValue;
+            } else {
+              this.form.linkTypeName = this.form.referValue;
+            }
+            updateAttribute(this.form).then(res => {
+              if (res.data.code === 200) {
+                this.$message.success(res.data.obj);
+                this.getTableList();
+                this.form = form;
+                this.addVisible = false;
+              }
+            })
           }
-        })
-      }
+        } else {
+          return false;
+        }
+      });
     },
 
     // 瀵煎叆

--
Gitblit v1.9.3