晚上上传组件导入提示、调整默认对话框边距、密码策略查询以及新增修改 密码长度、必填种类、锁定时间等正则校验 完善启动流程默认传参
| | |
| | | margin-top: 0 !important; |
| | | } |
| | | .avue-dialog .el-dialog__body{ |
| | | padding: 20px; |
| | | padding: 20px 20px 30px 20px; // ä¸å³ä¸å·¦ |
| | | margin-bottom: 20px !important; |
| | | } |
| | | .avue--detail .el-col{ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/router/axios'; |
| | | |
| | | // å表æ¥è¯¢ |
| | | export function refDataGrid(page,limit) { |
| | | return request({ |
| | | url: "/api/passwordStrategyQueryController/refDataGrid", |
| | | method: "get", |
| | | params:{ |
| | | page, |
| | | limit, |
| | | } |
| | | }); |
| | | } |
| | |
| | | class="avue-dialog" |
| | | style="margin-top: -20vh !important;" |
| | | > |
| | | <Divider left="30px" text="导å
¥æç¤º"></Divider> |
| | | <ul> |
| | | <Divider left="30px" text="导å
¥æç¤º"> |
| | | </Divider> |
| | | <ul v-if="tipList.length === 0" style="color: #f33939"> |
| | | <li> |
| | | 请ç¹å»æµè§æä»¶è¿è¡ä¸ä¼ |
| | | </li> |
| | | </ul> |
| | | |
| | | <ul style="color: #f33939" v-if="tipList.length >=1 "> |
| | | <li v-for="(item, index) in tipList" :key="index">{{ index + 1 }}: {{ item }} ã</li> |
| | | </ul> |
| | | <Divider left="30px" text="éæ©æä»¶åä¼èªå¨ä¸ä¼ "></Divider> |
| | | <el-upload |
| | |
| | | export default { |
| | | name: "upload-file", |
| | | props: { |
| | | // æ§å¶ä¸ä¼ ç±»å æ ¼å¼ä¸º: ['xls', 'xlsx'], |
| | | fileType: { |
| | | type: Array, |
| | | default: () => [] |
| | | }, |
| | | // å¯¹è¯æ¡å¤´é¨åç§° |
| | | title: { |
| | | type: String, |
| | | default: 'ä¸ä¼ æä»¶' |
| | | }, |
| | | // å¿
ä¼ ä¸ä¼ çå°å |
| | | fileUrl: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | // 请æ±å°å æºå¸¦åæ° |
| | | fileData: { |
| | | type: Array, |
| | | default: () => [] |
| | | }, |
| | | // 导å
¥æç¤ºæå tipList:["导å
¥æ¨¡æ¿ä¸æ æçº¢è²åä½ç为å¿
è¾é¡¹","é¨é¨åä¸ä¸çº§å
³ç³»å¿
é¡»æç
§åææ éå¼(/)"] |
| | | tipList:{ |
| | | type:Array, |
| | | default:() => [] |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | export const doAction = (options,callback) => { |
| | | //multi æ¯å¦å¼å¯å¤é |
| | | //checknotprocess æ¯å¦å
许åèµ·æµç¨ |
| | | //templateType æµç¨æ¨¡æ¿type å¿
å¡« |
| | | //filterTemplate æµç¨è¿æ»¤æ¨¡æ¿ä¿¡æ¯ |
| | | |
| | | options.sourceData = options.sourceData || {}; |
| | | options.dataStore = options.dataStore || []; |
| | | // if (!options.dataStore || options.dataStore.length < 1) { |
| | | // Vue.prototype.$message.error("è¯·éæ©éè¦åèµ·æµç¨çæ°æ®"); |
| | | // return false; |
| | | // } |
| | | // if (!options.paramVOS.multi && options.dataStore.length > 1) { |
| | | // Vue.prototype.$message.error("ä»
è½éæ©ä¸æ¡æ°æ®åèµ·æµç¨"); |
| | | // return false; |
| | | // } |
| | | // |
| | | // //éªè¯ä¸å
许å¯å¨çæ¡ä»¶ |
| | | // if(!validatenull(options.paramVOS.checknotprocess)) { |
| | | // let notprocess = options.paramVOS.checknotprocess.split('&'); |
| | | // let checknotprocess=false; |
| | | // notprocess.forEach((item,i)=>{ |
| | | // if (options.dataStore[0][item.split('=')[0]] == item.split('=')[1]) { |
| | | // checknotprocess=true; |
| | | // return false; |
| | | // } |
| | | // }) |
| | | // if (checknotprocess) { |
| | | // Vue.prototype.$message.error(replaceFreeMarker(options.paramVOS.checknotprocessmsg,options.dataStore,{}) || "å½åæ°æ®ä¸å
许åèµ·æµç¨"); |
| | | // return false; |
| | | // } |
| | | // } |
| | | if (!options.dataStore || options.dataStore.length < 1) { |
| | | Vue.prototype.$message.error("è¯·éæ©éè¦åèµ·æµç¨çæ°æ®"); |
| | | return false; |
| | | } |
| | | if (!options.paramVOS.multi && options.dataStore.length > 1) { |
| | | Vue.prototype.$message.error("ä»
è½éæ©ä¸æ¡æ°æ®åèµ·æµç¨"); |
| | | return false; |
| | | } |
| | | |
| | | //éªè¯ä¸å
许å¯å¨çæ¡ä»¶ |
| | | if(!validatenull(options.paramVOS.checknotprocess)) { |
| | | let notprocess = options.paramVOS.checknotprocess.split('&'); |
| | | let checknotprocess=false; |
| | | notprocess.forEach((item,i)=>{ |
| | | if (options.dataStore[0][item.split('=')[0]] == item.split('=')[1]) { |
| | | checknotprocess=true; |
| | | return false; |
| | | } |
| | | }) |
| | | if (checknotprocess) { |
| | | Vue.prototype.$message.error(replaceFreeMarker(options.paramVOS.checknotprocessmsg,options.dataStore,{}) || "å½åæ°æ®ä¸å
许åèµ·æµç¨"); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | callPreEvent(options, doBefore, function (options) { |
| | | showStartWindow(options, function () { |
| | |
| | | let data = new FormData(); |
| | | data.append('fileOid',oids); |
| | | download(data).then(res => { |
| | | console.log(res); |
| | | if (res) { |
| | | func.downloadFileByBlobHandler(res); |
| | | Vue.prototype.$message.success("ä¸è½½æå"); |
| | |
| | | }, |
| | | created() { |
| | | // this.modelNameChange(); |
| | | this.getWorkByType(); |
| | | |
| | | }, |
| | | mounted() { |
| | | this.getWorkByType(); |
| | | }, |
| | | methods: { |
| | | // è·åæµç¨æ¨¡æ¿ä¿¡æ¯ |
| | | getWorkByType() { |
| | | console.log('this.paramVOS',this.paramVOS) |
| | | let params = { |
| | | type: 'ææ¡£å®¡ç¾æµç¨', |
| | | filterTemplate: "ææ¡£å®¡ç¾æµç¨" |
| | | type: this.paramVOS.templatetype, |
| | | filterTemplate: this.paramVOS.filterTemplate || "" |
| | | } |
| | | getTemplateByType(params).then(res => { |
| | | const data = res.data.data; |
| | |
| | | |
| | | this.processTemplateList = data; |
| | | this.saveParam.processTemplate = data[0].value; |
| | | this.saveParam.processName = this.paramVOS.processName || userInfo.content.userName + '-' + data[0].value; // 对æµç¨æ¨¡æ¿ æµç¨åç§°èµé»è®¤å¼ |
| | | this.saveParam.processName = this.paramVOS.processname || userInfo.content.userName + '-' + data[0].value; // 对æµç¨æ¨¡æ¿ æµç¨åç§°èµé»è®¤å¼ |
| | | |
| | | this.getProcessNode(data[0].attributes.oid); // 馿¬¡è¿å
¥è°ç¨ç¬¬ä¸ä¸ªæ¨¡æ¿çææèç¹ |
| | | }).catch(err => { |
| | |
| | | getProcessNode(oid) { |
| | | let params = { |
| | | processOid: oid, |
| | | maxSecret: -1 |
| | | maxSecret: this.paramVOS.maxSecret || -1 |
| | | } |
| | | getAllProcessNode(params).then(res => { |
| | | const nodes = res.data.data; |
| | |
| | | style="margin-top: -20vh !important;" |
| | | > |
| | | <Divider left="30px" text="导å
¥æç¤º"></Divider> |
| | | <ul> |
| | | <li> |
| | | <ul style="color: #e73a3a"> |
| | | <li v-if="!paramVOS.tipList"> |
| | | 请ç¹å»æµè§æä»¶è¿è¡ä¸ä¼ |
| | | </li> |
| | | <li v-if="paramVOS.tipList && paramVOS.tipList.length >=1 " v-for="(item,index) in paramVOS.tipList" :key="index"> {{index+1}} : {{item}}ã</li> |
| | | </ul> |
| | | <Divider left="30px" text="éæ©æä»¶åä¼èªå¨ä¸ä¼ "></Divider> |
| | | <el-upload |
| | |
| | | return { |
| | | ownbizOid: this.sourceData.oid, |
| | | ownBtmName: this.sourceData.btmname, |
| | | secretGrade: -1, |
| | | fileDocClassify: '', |
| | | updateFileFlag: true, |
| | | secretGrade: this.paramVOS.secretGrade || -1, |
| | | fileDocClassify: this.paramVOS.fileDocClassify || "", |
| | | updateFileFlag: this.paramVOS.updateFileFlag || true, |
| | | } |
| | | }, |
| | | width() { |
| | |
| | | onSuccess(resbonse) { |
| | | if (resbonse.code === 200) { |
| | | this.$message.success("ä¸ä¼ æåï¼"); |
| | | this.dialogVisible = false; |
| | | this.visible = false; |
| | | }else { |
| | | this.$message.error(resbonse.msg); |
| | | } |
| | |
| | | if (file.status === "success" || file.status === "error") { |
| | | this.pageLoading.close(); |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | export const doAction = (options,callback) => { |
| | | options.sourceData = options.sourceData || {}; |
| | | options.dataStore = options.dataStore || []; |
| | | if (func.isEmptyObject(options.sourceData)) { |
| | | if (!options.dataStore || options.dataStore.length < 1) { |
| | | Vue.prototype.$message.error("è¯·éæ©è¦ä¸ä¼ çåç±»ï¼"); |
| | | return false; |
| | | } |
| | |
| | | module.doAction(options,callback); |
| | | })}, |
| | | //å¯å¨æµç¨ |
| | | launchworkflow: () => {import("@/components/actions/base/StartWorkflowAction").then(module => { |
| | | startwork: () => {import("@/components/actions/base/StartWorkflowAction").then(module => { |
| | | module.doAction(options,callback); |
| | | })}, |
| | | //ä¸ä¼ æä»¶ |
| | |
| | | </template> |
| | | |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button icon="el-icon-school" plain size="small" type="primary" @click="assignMembersHandler">åé
æå</el-button> |
| | | <el-button icon="el-icon-school" plain size="small" type="primary" @click="assignMembersHandler">åé
æå |
| | | </el-button> |
| | | <el-button icon="el-icon-user" plain size="small" type="primary" @click="statisticsHandler">ç»è®¡</el-button> |
| | | <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="statisticsHandler">导å
¥é¨é¨</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> |
| | | </template> |
| | | </avue-crud> |
| | |
| | | :transferTitle="transferTitle" title="é¨é¨æ·»å æå" |
| | | @transferSend="departTransferSend"> |
| | | </transfer> |
| | | |
| | | <!-- 导å
¥é¨é¨ --> |
| | | <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="导å
¥é¨é¨" |
| | | @updata="getTableList"></upload-file> |
| | | |
| | | </basic-container> |
| | | </template> |
| | |
| | | label: 'è§è²', |
| | | prop: 'pkPersonName', |
| | | sortable: true, |
| | | overHidden: true, |
| | | }, |
| | | ] |
| | | }, |
| | | leftTransferData: [], |
| | | rightTransferData: [], |
| | | transferTitle: ['å¾
é人å', 'å·²é人å'], |
| | | tipList: ['导å
¥æ¨¡æ¿ä¸æ æçº¢è²åä½ç为å¿
è¾é¡¹', '导å
¥ç»æä¸ºæ ç»ææ¶è¯·ä¿è¯IDåä¸è½éå¤', 'ç¶ID请使ç¨çé¢ä¸é¨é¨çå¯ä¸æ è¯IDæè
Excel䏿å¨è¾å
¥çID', 'ç¶IDå为空æ¶ï¼å¯¼å
¥çé¨é¨å³ä¸ºé¡¶å±é¨é¨'], |
| | | upFileType: ['xls', 'xlsx'], |
| | | fileUrl: 'api/departmentQueryController/importDept', |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | } |
| | | |
| | | countSmUserByDeptOid({pkDepartment: this.departCurrenRow.ALLDept === 'ALLDept' ? null : this.departCurrenRow.oid}).then(res => { |
| | | console.log(res); |
| | | if (res.data.code === 200) { |
| | | const data = res.data.data; |
| | | this.countData = data.map(item => { |
| | |
| | | }, |
| | | |
| | | // ä¸è½½å¯¼å
¥æ¨¡æ¿ |
| | | downLoadHandler(){ |
| | | downLoadHandler() { |
| | | download().then(res => { |
| | | func.downloadFileByBlobHandler(res); |
| | | this.$message.success('ä¸è½½æå') |
| | | }).catch(err => { |
| | | this.$message.error(err); |
| | | }) |
| | | }, |
| | | |
| | | // 导å
¥é¨é¨ |
| | | upLoadHandler() { |
| | | this.$refs.upload.visible = true; |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | label: 'åç§°', |
| | | prop: 'name', |
| | | align:'left', |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | <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: "" , //è¿ä¸ªæ¯ç¨äºé²æ¢changeæ¶é´å泡,åºç°ä¸¤æ¬¡å¼¹çªå®ä¹çåé |
| | | checkboxNumber: "", //ç¨äºé¦æ¬¡ç¹å»ç¼è¾ï¼å¤æç»åæ¹å¼æ¯å¦å°äºå¿
å¡«ç§ç±»çåé |
| | | selectNumber: "", //è¿ä¸ªä¹æ¯åæ¾å¤éçåé,ææä¸æ ·,åªæ¯ç¨ä½å¨ç¼è¾æ¨¡å |
| | | checkboxedit: "", // ç¨äºå¤ææ¯å¦æ¯ç¼è¾ |
| | | editFlag: false, |
| | | minValue:"", // æå°é¿åº¦value |
| | | maxValue:"" // æå¤§é¿åº¦value |
| | | } |
| | | }, |
| | | 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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 |
| | | }] |
| | | }, |
| | | ] |
| | |
| | | </el-dialog> |
| | | |
| | | <!-- 导å
¥è§è² --> |
| | | <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" @updata="getTableList" title="导å
¥è§è²"></upload-file> |
| | | <upload-file ref="upload" :tipList="tipList" :fileType="upFileType" :fileUrl="fileUrl" @updata="getTableList" title="导å
¥è§è²"></upload-file> |
| | | |
| | | </basic-container> |
| | | </template> |
| | |
| | | label: 'è§è²', |
| | | prop: 'pkPersonName', |
| | | sortable: true, |
| | | overHidden: true, |
| | | }, |
| | | ] |
| | | }, |
| | | upFileType: ['xls', 'xlsx'], |
| | | fileUrl: 'api/roleQueryController/importRole', |
| | | tipList:["è§è²å¯¼å
¥åªæ åç§° å æè¿° 两åï¼ä¸å称为å¿
è¾é¡¹ä¸è½ä¸ºç©º"] |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | </el-dialog> |
| | | |
| | | <!-- 导å
¥äººå --> |
| | | <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" title="导å
¥äººå" @updata="getTableList"></upload-file> |
| | | <upload-file ref="upload" :tipList="tipList" :fileType="upFileType" :fileUrl="fileUrl" title="导å
¥äººå" @updata="getTableList"></upload-file> |
| | | |
| | | <!-- åé
é¨é¨å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | |
| | | selectList: [], |
| | | leftRoleData: [], // åé
è§è²ç©¿æ¢æ¡å·¦ä¾§åå§æ°æ® |
| | | rightRoleData: [], // åé
è§è²ç©¿æ¢æ¡å³ä¾§åå§æ°æ® |
| | | transferTitle: ['ç°æè§è²', 'æ¥æè§è²'] |
| | | transferTitle: ['ç°æè§è²', 'æ¥æè§è²'], |
| | | tipList:["导å
¥æ¨¡æ¿ä¸æ æçº¢è²åä½ç为å¿
è¾é¡¹","é¨é¨åä¸ä¸çº§å
³ç³»å¿
é¡»æç
§åææ éå¼(/)"] |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | if (res.data.code === 200) { |
| | | this.$message.success(res.data.obj); |
| | | this.getTableList(); |
| | | done() |
| | | done(); |
| | | } |
| | | }).catch(err => { |
| | | loading() |