From de967d5d54a6eee38221ea14b2472401974608db Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 10 七月 2024 18:25:04 +0800
Subject: [PATCH] 晚上上传组件导入提示、调整默认对话框边距、密码策略查询以及新增修改 密码长度、必填种类、锁定时间等正则校验 完善启动流程默认传参

---
 Source/plt-web/plt-web-ui/src/views/system/password/index.vue |  440 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 438 insertions(+), 2 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/system/password/index.vue b/Source/plt-web/plt-web-ui/src/views/system/password/index.vue
index 54b19c1..7a49cdd 100644
--- a/Source/plt-web/plt-web-ui/src/views/system/password/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/system/password/index.vue
@@ -1,13 +1,449 @@
 <template>
+  <basic-container>
+    <avue-crud
+      ref="passWordCrud"
+      :data="tableData"
+      :option="option"
+      :page.sync="page"
+      :table-loading="tableLoading"
+      v-model="form"
+      @on-load="getTableList"
+      @refresh-change="handleRefresh"
+      @size-change="sizeChange"
+      @current-change="currentChange"
+      @row-save="rowSaveHandler"
+      @row-update="rowUpdateHandler"
+      @row-del="rowDeleteHandler"
+    >
+      <template slot="menu" slot-scope="{ row, index }">
+        <el-button
+          icon="el-icon-edit"
+          size="small"
+          type="text"
+          @click="handleEdit(row, index)"
+        >
+          缂栬緫
+        </el-button>
+        <el-button
+          icon="el-icon-delete"
+          size="small"
+          type="text"
+          @click="handleDel(row, index)"
+        >
+          鍒犻櫎
+        </el-button>
+      </template>
+
+
+      <template slot="name" slot-scope="{row}">
+        <el-tag>{{row.name}}</el-tag>
+      </template>
+      <template slot="defaultFlag" slot-scope="{row}">
+        <el-tag v-if="row.defaultFlag" type="success">鏄�</el-tag>
+        <el-tag v-if="!row.defaultFlag" type="danger">鍚�</el-tag>
+      </template>
+    </avue-crud>
+  </basic-container>
 
 </template>
 
 <script>
+import {refDataGrid} from "@/api/system/password/api"
+import basicOption from "@/util/basic-option";
+import {column} from "@/views/system/password/option";
+import Vue from "vue";
 export default {
-  name: "index"
+  name: "index",
+  data(){
+    return{
+      form:{},
+      tableData:[],
+      option:{
+        ...basicOption,
+        selection:false,
+        calcHeight:-60,
+        menuWidth:150,
+        column:[
+          {
+            label: '绛栫暐鍚嶇О',
+            prop: 'name',
+            sortable: true,
+            span: 24,
+            labelWidth: "11%",
+            rules: [{
+              required: true,
+              message: "璇疯緭鍏ョ瓥鐣ュ悕绉�",
+              trigger: "blur"
+            }]
+          },
+          {
+            label: '瀵嗙爜鏈�灏忛暱搴�',
+            prop: 'minLength',
+            sortable: true,
+            span: 12,
+            labelWidth: "22%",
+            rules: [{
+              required: true,
+              validator: (rule, value, callback) => {
+                this.minValue = value * 1
+                if (value == "") {
+                  callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�'));
+                } else if (/[^\d]/g.test(value)) {
+                  callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+                } else if ( this.minValue >=  this.maxValue &&  this.maxValue != 0) {
+                  callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�'))
+                } else {
+                  callback();
+                }
+              },
+              trigger: 'blur'
+            }]
+          },
+          {
+            label: '瀵嗙爜鏈�澶ч暱搴�',
+            prop: 'maxLength',
+            sortable: true,
+            span: 12,
+            labelWidth: "28%",
+            rules: [{
+              required: true,
+              validator: (rule, value, callback) => {
+                this.maxValue = value * 1
+                if (value == "") {
+                  callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�'));
+                } else if ( this.maxValue <=  this.minValue) {
+                  callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�'));
+                } else if (/[^\d]/g.test(value)) {
+                  callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+                } else {
+                  callback();
+                }
+              },
+              trigger: 'change'
+            }]
+          },
+          {
+            label: '缁勫悎鏂瑰紡',
+            prop: 'requireCharTypeText',
+            sortable: true,
+            display: false,
+            overHidden: true,
+            labelWidth: "22%",
+          },
+          {
+            label: '缁勫悎鏂瑰紡',
+            prop: 'requireCharType',
+            type: "checkbox",
+            hide: true,
+            span: 12,
+            labelWidth: "22%",
+            change: this.handleCheckboxChange,
+            rules: [{
+              required: true,
+              message: "璇烽�夋嫨缁勫悎鏂规硶",
+              trigger: "blur"
+            }],
+            dicData: [
+              {
+                label: '鏁板瓧',
+                value: "number"
+              },
+              {
+                label: '灏忓啓瀛楁瘝',
+                value: "lower"
+              },
+              {
+                label: '澶у啓瀛楁瘝',
+                value: "upper"
+              },
+              {
+                label: '绗﹀彿',
+                value: "symbol"
+              },
+            ]
+          },
+          {
+            label: '蹇呭~绉嶇被',
+            prop: 'requireCharCount',
+            type: 'select',
+            span: 12,
+            labelWidth: "28%",
+            sortable: true,
+            change: this.handleSelectChange,
+            dicData: [{
+              label: '1绉�',
+              value: 1,
+              disabled: false
+            },
+              {
+                label: '2绉�',
+                value: 2,
+                disabled: false
+              },
+              {
+                label: '3绉�',
+                value: 3,
+                disabled: false
+              },
+              {
+                label: '4绉�',
+                value: 4,
+                disabled: false
+              }
+            ]
+          },
+          {
+            label: '杩囨湡鏃堕棿锛堝ぉ)',
+            prop: 'validDay',
+            sortable: true,
+            span: 12,
+            labelWidth: "22%",
+            rules: [{
+              required: true,
+              validator: (rule, value, callback) => {
+                if (value == "") {
+                  callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+                } else if (/[^\d]/g.test(value)) {
+                  callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+                } else {
+                  callback();
+                }
+              },
+              trigger: 'blur'
+            }]
+          },
+          {
+            label: '鎻愰啋鏃堕棿锛堝ぉ锛�',
+            prop: 'remindDay',
+            sortable: true,
+            span: 12,
+            labelWidth: "28%",
+            width: 140,
+            rules: [{
+              required: true,
+              validator: (rule, value, callback) => {
+                if (value == "") {
+                  callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+                } else if (/[^\d]/g.test(value)) {
+                  callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+                } else {
+                  callback();
+                }
+              },
+              trigger: 'blur'
+            }]
+          },
+          {
+            label: '閲嶈瘯娆℃暟',
+            prop: 'retryTime',
+            sortable: true,
+            span: 12,
+            labelWidth: "22%",
+            rules: [{
+              required: true,
+              validator: (rule, value, callback) => {
+                if (value == "") {
+                  callback(new Error('閲嶈瘯娆℃暟'));
+                } else if (/[^\d]/g.test(value)) {
+                  callback(new Error('閲嶈瘯娆℃暟鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+                } else {
+                  callback();
+                }
+              },
+              trigger: 'blur'
+            }]
+          },
+          {
+            label: '閿佸畾鏃堕棿锛堝垎閽燂級',
+            prop: 'lockTime',
+            sortable: true,
+            width: 150,
+            span: 12,
+            labelWidth: "28%",
+            rules: [{
+              required: true,
+              validator: (rule, value, callback) => {
+                if (value == "") {
+                  callback(new Error('璇疯緭鍏ラ攣瀹氭椂闂�'));
+                } else if (/[^\d]/g.test(value)) {
+                  callback(new Error('閿佸畾鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+                } else {
+                  callback();
+                }
+              },
+              trigger: 'blur'
+            }]
+          },
+          {
+            label: '鎻忚堪',
+            prop: 'description',
+            overHidden: true,
+            type: 'textarea',
+            span: 12,
+            labelWidth: "22%",
+            rows: 5,
+          },
+          {
+            label: '鏄惁涓洪粯璁ょ瓥鐣�',
+            prop: 'defaultFlag',
+            type: 'switch',
+            labelWidth: "30%",
+            dicData: [{
+              label: '鍚�',
+              value: 0
+            }, {
+              label: '鏄�',
+              value: 1
+            }]
+          },
+        ]
+      },
+      page: {
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+        pageSizes: [10, 30, 50, 100],
+      },
+      tableLoading:false,
+      checkboxlength: "", //娣诲姞瀛樻斁澶氶�夌殑鍙橀噺,鐢ㄤ簬涓嬫媺鑿滃崟鐨勭鐢ㄦ晥鏋滃拰蹇呭~绉嶇被鏄惁澶т簬缁勫悎鏂瑰紡鐒跺悗鎻愮ず鐢ㄦ埛閲嶆柊閫夋嫨
+      selectlength: 0,    //杩欎釜鏄笅鎷夎彍鍗曠殑鏁版嵁鍙橀噺
+      checkboxlist: "" ,  //杩欎釜鏄敤浜庨槻姝hange鏃堕棿鍐掓场,鍑虹幇涓ゆ寮圭獥瀹氫箟鐨勫彉閲�
+      checkboxNumber: "", //鐢ㄤ簬棣栨鐐瑰嚮缂栬緫锛屽垽鏂粍鍚堟柟寮忔槸鍚﹀皬浜庡繀濉绫荤殑鍙橀噺
+      selectNumber: "",   //杩欎釜涔熸槸瀛樻斁澶氶�夌殑鍙橀噺,鏁堟灉涓�鏍�,鍙槸鐢ㄤ綔鍦ㄧ紪杈戞ā鍧�
+      checkboxedit: "",   // 鐢ㄤ簬鍒ゆ柇鏄惁鏄紪杈�
+      editFlag: false,
+      minValue:"", // 鏈�灏忛暱搴alue
+      maxValue:""  // 鏈�澶ч暱搴alue
+    }
+  },
+  methods:{
+    // 琛ㄦ牸鍒濆鍖栬姹�
+    getTableList() {
+      this.tableLoading = true;
+      refDataGrid(this.page.currentPage, this.page.pageSize).then(res =>{
+        console.log(res);
+        this.tableData = res.data.data;
+        this.page.total = res.data.total;
+        this.tableLoading = false;
+      })
+    },
+
+    // 琛ㄦ牸澶撮儴鍒锋柊
+    handleRefresh(){
+      this.getTableList();
+    },
+
+    //  鏉℃暟
+    sizeChange(val){
+      this.page.pageSize = val;
+    },
+
+    // 椤电爜
+    currentChange(val){
+      this.page.currentPage = val;
+    },
+
+    // 娣诲姞
+    rowSaveHandler(){
+      console.log(this.form.requireCharCount);
+    },
+
+    // 缂栬緫鎸夐挳
+    handleEdit(row,index){
+      this.$refs.passWordCrud.rowEdit(row, index);
+      this.editFlag = true;
+      this.checkboxNumber = row.requireCharType.split(",");
+      this.selectNumber = row.requireCharCount;
+    },
+
+    // 淇敼
+    rowUpdateHandler(){
+
+    },
+
+    // 鍒犻櫎鎸夐挳
+    handleDel(){
+
+    },
+
+    // 鍒犻櫎
+    rowDeleteHandler(){
+
+    },
+
+    // 蹇呭~绉嶇被changge浜嬩欢
+    handleSelectChange(val){
+      this.selectlength = val.value;
+    },
+
+    // 娣诲姞淇敼 缁勫悎鏂瑰紡鍒ゆ柇閫昏緫
+    handleCheckboxChange(val) {
+      const arr = this.option.column.find(item => item.prop === 'requireCharCount'); // 鎵惧埌option閲岄潰蹇呭~绉嶇被鐨勬暟缁�
+      this.checkboxlength = val.value;
+      this.checkboxedit = this.checkboxlength.toString().split(",");
+
+      if (val.value !== undefined && val.value !== null) {
+        if (this.checkboxlist === val.value) {
+          return;
+        } else {
+          this.checkboxlist = val.value;
+          if (this.selectlength > val.value.length && val.value.length > 0) {
+            // 鍒ゆ柇濡傛灉蹇呭~绉嶇被澶т簬缁勫悎鏂瑰紡娓呯┖
+            this.form.requireCharCount = "";
+          } else if (this.selectlength > this.checkboxedit.length && this.checkboxedit.length > 0) {
+            // 淇敼鍚屾牱閫昏緫
+            this.form.requireCharCount = "";
+          }
+        }
+      }
+
+      // 澶勭悊 蹇呭~绉嶇被閫夐」绂佺敤
+      if (val.value !== undefined && val.value !== null) {
+        if (val.value.length === 1) {
+          this.setDisabled(arr, [0]);
+        } else if (val.value.length === 2) {
+          this.setDisabled(arr, [0, 1]);
+        } else if (val.value.length === 3) {
+          this.setDisabled(arr, [0, 1, 2]);
+        } else if (val.value.length === 4) {
+          this.setDisabled(arr, [0, 1, 2, 3]);
+        } else if (val.value.length === 0) {
+          this.setDisabled(arr, [-1]);
+        }
+      } else if (this.checkboxNumber.length !== 0) {
+        this.setDisabled(arr, [0, 1, 2, 3]);
+      }
+
+      // 淇敼鍚岀悊
+      if (this.editFlag) {
+        if (this.checkboxedit.length === 1) {
+          this.setDisabled(arr, [0]);
+        } else if (this.checkboxedit.length === 2) {
+          this.setDisabled(arr, [0, 1]);
+        } else if (this.checkboxedit.length === 3) {
+          this.setDisabled(arr, [0, 1, 2]);
+        } else if (this.checkboxedit.length === 4) {
+          this.setDisabled(arr, [0, 1, 2, 3]);
+        } else if (this.checkboxedit.length === 0) {
+          this.setDisabled(arr, [-1]);
+        }
+      }
+    },
+
+    // 寰幆鎵惧埌瀵瑰簲蹇呭~绉嶇被绂佺敤閫夐」
+    setDisabled(arr, indices) {
+      arr.dicData.forEach((item, index) => {
+        item.disabled = !indices.includes(index);
+      });
+    },
+
+  }
 }
 </script>
 
-<style scoped>
+<style scoped lang="scss">
+.avue-form__group--flex{
+  padding-bottom: 25px !important;
+}
 
 </style>

--
Gitblit v1.9.3