From accebdce93486d3b4f26e55ffdea047549cce20c Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期一, 28 七月 2025 21:12:38 +0800 Subject: [PATCH] Merge branch 'master' of http://125.76.225.53:18448/r/xhj/vue_mdc_xhj --- src/views/mdc/base/modules/EquipmentList/PasswordModal.vue | 142 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 0 deletions(-) diff --git a/src/views/mdc/base/modules/EquipmentList/PasswordModal.vue b/src/views/mdc/base/modules/EquipmentList/PasswordModal.vue new file mode 100644 index 0000000..f9f897e --- /dev/null +++ b/src/views/mdc/base/modules/EquipmentList/PasswordModal.vue @@ -0,0 +1,142 @@ +<template> + <a-modal + title="閲嶆柊璁惧畾瀵嗙爜" + :width="800" + :visible="visible" + :confirmLoading="confirmLoading" + @ok="handleSubmit" + @cancel="handleCancel" + cancelText="鍏抽棴" + style="top:20px;" + > + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + + <a-form-item label="鐢ㄦ埛璐﹀彿" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="璇疯緭鍏ョ敤鎴疯处鍙�" v-decorator="[ 'username', {}]" :readOnly="true"/> + </a-form-item> + + <a-form-item label="鐧诲綍瀵嗙爜" :labelCol="labelCol" :wrapperCol="wrapperCol" hasFeedback > + <a-input type="password" placeholder="璇疯緭鍏ョ櫥褰曞瘑鐮�" v-decorator="[ 'password', validatorRules.password]" /> + </a-form-item> + + <a-form-item label="纭瀵嗙爜" :labelCol="labelCol" :wrapperCol="wrapperCol" hasFeedback > + <a-input type="password" @blur="handleConfirmBlur" placeholder="璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/> + </a-form-item> + + </a-form> + </a-spin> + </a-modal> +</template> + +<script> + import {changePassword} from '@/api/api' + + export default { + name: "PasswordModal", + data () { + return { + visible: false, + confirmLoading: false, + confirmDirty: false, + validatorRules:{ + password:{ + rules: [{ + required: true, + pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, + message: '瀵嗙爜鐢�8浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!' + }, { + validator: this.validateToNextPassword, + }], + }, + confirmpassword:{ + rules: [{ + required: true, message: '璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�!', + }, { + validator: this.compareToFirstPassword, + }], + }, + }, + + model: {}, + + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + form:this.$form.createForm(this) + } + }, + created () { + console.log("created"); + }, + + methods: { + show (username) { + this.form.resetFields(); + this.visible = true; + this.model.username = username; + this.$nextTick(() => { + this.form.setFieldsValue({username:username}); + }); + }, + close () { + this.$emit('close'); + this.visible = false; + this.disableSubmit = false; + this.selectedRole = []; + }, + handleSubmit () { + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.form.validateFields((err, values) => { + if (!err) { + this.confirmLoading = true; + let formData = Object.assign(this.model, values); + changePassword(formData).then((res)=>{ + if(res.success){ + this.$message.success(res.message); + this.$emit('ok'); + }else{ + this.$message.warning(res.message); + } + }).finally(() => { + this.confirmLoading = false; + this.close(); + }); + } + }) + }, + handleCancel () { + this.close() + }, + validateToNextPassword (rule, value, callback) { + const form = this.form; + const confirmpassword=form.getFieldValue('confirmpassword'); + console.log("confirmpassword==>",confirmpassword); + if (value && confirmpassword && value !== confirmpassword) { + callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒'); + } + if (value && this.confirmDirty) { + form.validateFields(['confirm'], { force: true }) + } + callback(); + }, + compareToFirstPassword (rule, value, callback) { + const form = this.form; + if (value && value !== form.getFieldValue('password')) { + callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒'); + } else { + callback() + } + }, + handleConfirmBlur (e) { + const value = e.target.value + this.confirmDirty = this.confirmDirty || !!value + } + } + } +</script> \ No newline at end of file -- Gitblit v1.9.3