| New file |
| | |
| | | <template> |
| | | <el-dialog |
| | | title="修改登录密码" |
| | | :visible.sync="visible" |
| | | width="600px" |
| | | :append-to-body="true"> |
| | | <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="100px"> |
| | | <el-form-item label="账号"> |
| | | <span>{{ userName }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="旧登录密码" prop="password"> |
| | | <el-input type="password" v-model="dataForm.password" placeholder="请输入旧密码"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="新密码" prop="newPassword"> |
| | | <el-input type="password" v-model="dataForm.newPassword" placeholder="由数字、字符、特殊字符三种中的两种组成,长度不能少于6位"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="确认新密码" prop="confirmPassword"> |
| | | <el-input type="password" v-model="dataForm.confirmPassword" placeholder="请确认新密码"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="visible = false">取消</el-button> |
| | | <el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import { clearLoginInfo } from '@/utils' |
| | | import { Debounce } from '@/utils/debounce' |
| | | import { encrypt } from '@/utils/crypto' |
| | | export default { |
| | | data () { |
| | | var validateConfirmPassword = (rule, value, callback) => { |
| | | if (this.dataForm.newPassword !== value) { |
| | | callback(new Error('确认密码与新密码不一致')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | return { |
| | | visible: false, |
| | | dataForm: { |
| | | password: '', |
| | | newPassword: '', |
| | | confirmPassword: '' |
| | | }, |
| | | dataRule: { |
| | | password: [ |
| | | { required: true, message: '旧登录密码不能为空', trigger: 'blur' } |
| | | ], |
| | | newPassword: [ |
| | | { required: true, message: '新密码不能为空', trigger: 'blur' } |
| | | ], |
| | | confirmPassword: [ |
| | | { required: true, message: '确认新密码不能为空', trigger: 'blur' }, |
| | | { validator: validateConfirmPassword, trigger: 'blur' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | userName: { |
| | | get () { return this.$store.state.user.name } |
| | | }, |
| | | mainTabs: { |
| | | get () { return this.$store.state.common.mainTabs }, |
| | | set (val) { this.$store.commit('common/updateMainTabs', val) } |
| | | } |
| | | }, |
| | | methods: { |
| | | // 初始化 |
| | | init () { |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | this.$refs['dataForm'].resetFields() |
| | | }) |
| | | }, |
| | | // 表单提交 |
| | | dataFormSubmit: Debounce(function () { |
| | | this.$refs['dataForm'].validate((valid) => { |
| | | if (valid) { |
| | | this.$http({ |
| | | url: this.$http.adornUrl('/changeLoginPassword'), |
| | | method: 'post', |
| | | data: this.$http.adornData({ |
| | | 'oldPassword': encrypt(this.dataForm.password), |
| | | 'newPassword': encrypt(this.dataForm.newPassword) |
| | | }) |
| | | }).then(({data}) => { |
| | | if(data.code == 0){ |
| | | this.$message({ |
| | | message: '操作成功', |
| | | type: 'success', |
| | | duration: 1500, |
| | | onClose: () => { |
| | | this.visible = false |
| | | this.$nextTick(() => { |
| | | // this.mainTabs = [] |
| | | // clearLoginInfo() |
| | | // this.$router.replace({ name: 'login' }) |
| | | }) |
| | | } |
| | | }) |
| | | }else{ |
| | | this.$message({ |
| | | message:data.msg, |
| | | type: 'error', |
| | | duration: 1500, |
| | | onClose: () => { |
| | | |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | </script> |
| | | |