import Vue from "vue"; // 暂时不用外部js文件写在vue内部文件 因为是两个change事件联动,new一个vue实例或者构造器实例会导致其它方法声明的变量也会重新恢复默认值 let minValue = ""; // 最小长度value let maxValue = ""; // 最大长度value import passwordVue from '@/views/system/password/index' const app = new Vue(passwordVue); export const 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) => { minValue = value * 1 if (value == "") { callback(new Error('请输入密码最小长度')); } else if (/[^\d]/g.test(value)) { callback(new Error('密码最小长度的输入类型只能为数字类型')); } else if (minValue >= maxValue && 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) => { maxValue = value * 1 if (value == "") { callback(new Error('请输入密码最大长度')); } else if (maxValue <= 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: function (val){ const dialogConstructor = Vue.extend(passwordVue); let instance = new dialogConstructor(); instance.handleCheckboxChange(val); }, 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: function (val){ const dialogConstructor = Vue.extend(passwordVue); let instance = new dialogConstructor(); instance.handleSelectChange(val); }, 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 }] }, ]