|  | @@ -0,0 +1,101 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +    <div class="app-container">
 | 
	
		
			
				|  |  | +        <el-card class="filter-container" shadow="hover">
 | 
	
		
			
				|  |  | +            <el-button size="small" type="info" icon="el-icon-back" @click="comeBack">返回</el-button>
 | 
	
		
			
				|  |  | +        </el-card>
 | 
	
		
			
				|  |  | +        <el-card class="filter-container" style="margin-top: 20px;" shadow="hover">
 | 
	
		
			
				|  |  | +            <el-form :model="admin" ref="admin" label-width="150px" :rules="rules" size="small">
 | 
	
		
			
				|  |  | +                <div class="blSet">
 | 
	
		
			
				|  |  | +                    <h4>修改密码</h4>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <el-form-item label="登录账号:" prop="username">
 | 
	
		
			
				|  |  | +                    <el-input v-model="admin.username" disabled type="text" style="width: 250px"></el-input>
 | 
	
		
			
				|  |  | +                </el-form-item>
 | 
	
		
			
				|  |  | +                <el-form-item label="旧密码:" prop="oldPassword">
 | 
	
		
			
				|  |  | +                    <el-input v-model="admin.oldPassword" clearable placeholder="请输入历史密码" type="number" number
 | 
	
		
			
				|  |  | +                        style="width: 250px"></el-input>
 | 
	
		
			
				|  |  | +                </el-form-item>
 | 
	
		
			
				|  |  | +                <el-form-item label="新密码:" prop="pwd">
 | 
	
		
			
				|  |  | +                    <el-input v-model="admin.pwd" clearable placeholder="请输入新密码" type="number" number
 | 
	
		
			
				|  |  | +                        style="width: 250px"></el-input>
 | 
	
		
			
				|  |  | +                </el-form-item>
 | 
	
		
			
				|  |  | +                <el-form-item label="确认密码:" prop="newPassword">
 | 
	
		
			
				|  |  | +                    <el-input v-model="admin.newPassword" clearable placeholder="请确认密码" type="number" number
 | 
	
		
			
				|  |  | +                        style="width: 250px"></el-input>
 | 
	
		
			
				|  |  | +                </el-form-item>
 | 
	
		
			
				|  |  | +            </el-form>
 | 
	
		
			
				|  |  | +            <el-divider content-position="left"></el-divider>
 | 
	
		
			
				|  |  | +            <div style="display: flex;align-items: center;justify-content: center;">
 | 
	
		
			
				|  |  | +                <el-button type="primary" @click="submitForm" size="medium">保存</el-button>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +        </el-card>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +import { getCookie } from '@/utils/support';
 | 
	
		
			
				|  |  | +import { updatePassword } from '@/api/distribution';
 | 
	
		
			
				|  |  | +import { removeToken } from '@/utils/auth';
 | 
	
		
			
				|  |  | +const defaultAdmin = {
 | 
	
		
			
				|  |  | +    username: null,
 | 
	
		
			
				|  |  | +    oldPassword: null,
 | 
	
		
			
				|  |  | +    pwd: null,
 | 
	
		
			
				|  |  | +    newPassword: null
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +    data() {
 | 
	
		
			
				|  |  | +        return {
 | 
	
		
			
				|  |  | +            admin: Object.assign({}, defaultAdmin),
 | 
	
		
			
				|  |  | +            rules: {
 | 
	
		
			
				|  |  | +                oldPassword: [
 | 
	
		
			
				|  |  | +                    { required: true, message: '请输入历史密码', trigger: 'blur' },
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                pwd: [
 | 
	
		
			
				|  |  | +                    { required: true, message: '请输入新密码', trigger: 'blur' },
 | 
	
		
			
				|  |  | +                    { min: 6, max: 12, message: '长度在 6 到 12 个字符', trigger: 'blur' },
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +                newPassword: [
 | 
	
		
			
				|  |  | +                    { required: true, message: '请输入二次确认密码', trigger: 'blur' },
 | 
	
		
			
				|  |  | +                    { min: 6, max: 12, message: '长度在 6 到 12 个字符', trigger: 'blur' },
 | 
	
		
			
				|  |  | +                ]
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    created() {
 | 
	
		
			
				|  |  | +        this.admin.username = getCookie("username")
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    computed: {
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    methods: {
 | 
	
		
			
				|  |  | +        // 返回上一级
 | 
	
		
			
				|  |  | +        comeBack() {
 | 
	
		
			
				|  |  | +            this.$router.back()
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        submitForm() {
 | 
	
		
			
				|  |  | +            let data = {
 | 
	
		
			
				|  |  | +                oldPassword: this.admin.oldPassword,
 | 
	
		
			
				|  |  | +                newPassword: this.admin.newPassword
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (this.admin.oldPassword == this.admin.newPassword) {
 | 
	
		
			
				|  |  | +                this.$message.error('新密码不能与旧密码相同')
 | 
	
		
			
				|  |  | +                return
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (this.admin.pwd != this.admin.newPassword) {
 | 
	
		
			
				|  |  | +                this.$message.error('两次输入的密码不一致')
 | 
	
		
			
				|  |  | +                return
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            updatePassword({ ...data }).then(res => {
 | 
	
		
			
				|  |  | +                if (res.code == 200) {
 | 
	
		
			
				|  |  | +                    this.$message.success('修改成功,请重新登录')
 | 
	
		
			
				|  |  | +                    this.$store.dispatch('LogOut').then(() => {
 | 
	
		
			
				|  |  | +                        location.reload() // 为了重新实例化vue-router对象 避免bug
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                    removeToken()
 | 
	
		
			
				|  |  | +                    window.localStorage.clear()
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +<style lang="scss" scoped></style>
 |