“dzb”
2022-09-30 053a40db4fcbcbafb89a346ff17695b150745782
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<template>
    <div class="password">
        <el-form ref="pwd" label-width="140px" autoComplete="on" :model="user" :rules="passrules">
            <!-- 初始密码 -->
            <el-form-item class="optionItem" label="初始密码:" prop="password">
                <el-input v-model="user.password" type="password" placeholder="请填写初始密码"></el-input>
            </el-form-item>
            <!-- 新密码 -->
            <el-form-item class="optionItem" label="新密码:" prop="newPwd">
                <el-input v-model="user.newPwd" type="password" placeholder="请填写新密码"></el-input>
            </el-form-item>
            <!-- 新密码 -->
            <el-form-item class="optionItem" label="确认新密码:" prop="secondPwd">
                <el-input v-model="user.secondPwd" type="password" placeholder="确认您的新密码"></el-input>
            </el-form-item>
 
        </el-form>
        <div class="pwd-footer">
            <el-button @click="resetForm">取消</el-button>
            <el-button type="primary" @click="handleSubmit">提交</el-button>
        </div>
    </div>
</template>
<script>
export default {
    data() {
        const checkPwd = (rule, value, callback) => {
            if (!value) {
                callback(new Error('初始密码不能为空'))
            } else {
                callback();
            }
        }
        const checkNewPwd = (rule, value, callback) => {
            if (!value) {
                callback(new Error('新密码不能为空'))
            }else if(value === this.user.password){
                callback(new Error('新密码不能和旧密码一样'))
            } else {
                callback();
            }
        }
        const checkSame = (rule, value, callback) => {
            if (!value) {
                callback(new Error('确认密码不能为空'))
            } else if (value !== this.user.newPwd) {
                console.log(111);
                callback(new Error('您输入的两次密码结果不同'));
            } else {
 
                callback();
            }
        }
        return {
            user: {
                password: '',
                secondPwd: '',
                newPwd: '',
            },
            passrules: {
                password: [
                    {
                        required: true,
                        trigger: 'blur',
                        validator: checkPwd
                    },
                ],
                secondPwd: [
                    {
                        required: true,
                        trigger: 'blur',
                        validator: checkSame
                    }
                ],
                newPwd: [
                    {
                        required: true,
                        trigger: 'blur',
                        validator: checkNewPwd
                    }
                ]
            }
        }
    },
    props: ['userInfo', 'closeDialog'],
    created() {
 
    },
    methods: {
        // 提交
        handleSubmit() {
            const { userInfo,user } = this;
            this.$refs.pwd.validate((valid) => {
                if (valid) {
                    this.$axios({
                        method:'post',
                        url:'sccg/admin/updatePassword',
                        data:{
                            newPassword:user.newPwd,
                            oldPassword:user.password,
                            username:userInfo.username
                        }
                    })
                    .then(res=>{
                        if(res.code === 200){
                            this.$emit('closeDialog',{flag:false});
                            this.$message({
                                type:'success',
                                message:'密码修改成功'
                            })
                        }else{
                            this.$message({
                                type:'warning',
                                message:res.message
                            })
                        }
                    })
                } else {
                    return false;
                }
            })
        },
        // 清空表单
        resetForm() {
 
        }
    }
}
</script>
<style lang="scss" scoped>
.password {
    padding: 50px 100px;
 
    ::v-deep .el-input__inner {
        background-color: #09152f;
        border: 1px solid #17324c;
    }
 
    .pwd-footer {
        display: flex;
        justify-content: center;
    }
}
</style>