lihang
2023-07-13 a3c868db4d017961be2d394eadb7d428045d5adc
Source/UBCS-WEB/dist/src/views/system/PasswordManagement/passwords.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,301 @@
<template>
  <basic-container>
    <avue-crud v-model="form" :option="option" :data="data" ref="crud"  @on-load="onLoad" @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel" :page.sync="page">
      <template slot="icon" slot-scope="scope">
        <i :class="scope.row.icon" style="font-size:24px"></i>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
import {
  getPage,
  // getOnesearch,
  getadd,
  getupdata,
  getremove
} from "@/api/system/passwords";
export default {
  name: "passwords.vue",
  data() {
    // æœ€å°é•¿åº¦æ­£åˆ™ç»‘定值
    let validatePass=""
    //最大长度正则绑定值
    let validatePass1=""
    //最小长度绑定value
    let values=""
    //最大长度绑定value
    let values1=""
    //最小长度正则方法
    validatePass = (rule, value,callback) => {
     values=value*1
      if(value === ""){
        callback(new Error('请输入密码最小长度'));
      }else if(values >= values1*1){
        callback(new Error('密码最小长度不能大于密码最大长度'));
      }
    };
    //最大长度正则方法
    validatePass1= (rule, value,callback) =>{
      values1=value*1
     if(value === ""){
        callback(new Error('请输入密码最大长度'));
      }else if(values1 <= values){
       callback(new Error('密码最大长度不能小于密码最大长度'));
     }
    }
    return {
      form:{},
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 100
      },
      data: [],
      option: {
        headerAlign: 'center',
        align: 'center',
        border: true,
        index: true,
        rowKey:'id',
        column: [
          {
            label: '策略名称',
            prop: 'strategyName',
            align: 'left',
            span:24,
            rules: [{
              required: true,
              message: "请输入策略名称",
              trigger: "blur"
            }]
          },
          {
            label: '密码最小长度',
            prop: 'minPwdLen',
            labelWidth:118,
            span:12,
            rules: [{
              required: true,
              validator:validatePass,
              trigger: "blur"
            }]
          },
          {
            label: '密码最大长度',
            prop: 'maxPwdLen',
            labelWidth:118,
            span:12,
            rules: [{
              required: true,
              validator:validatePass1,
              trigger: "blur"
            }]
          },
          {
            label: '组合方法',
            prop: 'combinationNames',
            labelWidth: 91,
            display:false
          },
          {
            //写两个组合方法是因为id和name不能同时绑定这个prop来渲染,一个表格做隐藏来数据操作(表单隐藏),另一个表格做显示只显示在页面(表单隐藏)。
            label: '组合方法',
            prop: 'combinationIds',
            type: "checkbox",
            labelWidth:91,
            hide:true,
            rules: [{
              required: true,
              message: "请选择组合方法",
              trigger: "blur"
            }],
            dicData: [
              {
                label: "数字",
                value: '1638024706425188354'
              },
              {
                label: "符号",
                value: '1638097837516926977'
              },
              {
                label: "小写字母",
                value: '1638097772983365634'
              },
              {
                label: "大写字母",
                value: '1638097733707902977'
              },
            ],
          },
          {
            label: '必填种类',
            prop: 'requiredType',
            type: 'select',
            labelWidth: 91,
            rules: [{
              required: true,
              message: "请选择必填种类",
              trigger: "blur"
            }],
            dicData:[{
              label:'1种',
              value:0
            },
              {
                label:'2种',
                value:1
              },
              {
                label:'3种',
                value:2
              },
              {
                label:'4种',
                value:3
              }
            ]
          },
          {
            label: '过期时间(天)',
            prop:'expirationTime',
            labelWidth:115,
            rules: [{
              required: true,
              message: "请输入过期时间",
              trigger: "blur"
            }]
          },
          {
            label: '提醒时间(天)',
            prop:'reminderTime',
            labelWidth:113,
            rules: [{
              required: true,
              message: "请输入提醒时间",
              trigger: "blur"
            }]
          },
          {
            label: '锁定次数(次)',
            prop:'lockingNum',
            labelWidth:116,
            rules: [{
              required: true,
              message: "请输入锁定次数",
              trigger: "blur"
            }]
          },
          {
            label: '锁定时间(分钟)',
            prop:'lockingTime',
            labelWidth:128,
            rules: [{
              required: true,
              message: "请输入锁定时间",
              trigger: "blur"
            }]
          },
          {
            label: '描述',
            prop:'desc',
            type: 'textarea',
            rows: 5,
            rules: [{
              required: true,
              message: "请简括描述",
              trigger: "blur"
            }]
          },
          {
            label: '是否为默认策略',
            prop: 'isDefault',
            type: 'switch',
            labelWidth: 132,
            dicData:[{
              label:'否',
              value:0
            },{
              label:'是',
              value:1
            }]
          }
        ],
      }
    }
  },
  created() {
    this.onLoad()
  },
  mount() {
  },
  methods:{
    rowDel(row){
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          return getremove(row.id);
        })
        .then(() => {
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          this.onLoad();
        });
    },
    rowSave(row,done){
      //将密码组合方式的数据转换为字符串
      const spliceId= row.combinationIds.toString()
      row.combinationIds=spliceId
      getadd(row).then(()=>{
        // this.onLoad(this.page);
        this.$message({
          type: "success",
          message: "操作成功!"
        });
        done(row)
        this.onLoad()
      }).catch((res)=>{
        console.log(res)
      })
    },
    rowUpdate(row,index,done){
      getupdata(row).then(()=>{
        this.onLoad()
        this.$message({
          type: "success",
          message: "修改成功!"
        });
        done()
      })
    },
    onLoad(page, params = {}) {
      // this.loading = true;
      getPage(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
        // const data = res.data.data;
        // this.page.total = data.total;
        // this.data = data.records;
        // this.loading = false;
        // this.selectionClear();
        this.data=res.data.data.content
      });
    }
  }
}
</script>
<style scoped>
</style>