1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <template>
- <el-form ref="form" :model="user" :rules="rules" label-width="80px">
- <el-form-item label="旧密码" prop="oldPassword" style="width: 360px;">
- <el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" autocomplete="new-password"/>
- </el-form-item>
- <el-form-item label="新密码" prop="newPassword" style="width: 360px;">
- <el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" autocomplete="new-password"/>
- </el-form-item>
- <el-form-item label="确认密码" prop="confirmPassword" style="width: 360px;">
- <el-input v-model="user.confirmPassword" placeholder="请确认密码" type="password" autocomplete="new-password"/>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" size="mini" @click="submit">保存</el-button>
- <el-button type="danger" size="mini" @click="close">关闭</el-button>
- </el-form-item>
- </el-form>
- </template>
- <script>
- import { updateUserPwd } from "@/api/system/user";
- import Global from "@/layout/components/global.js";
- export default {
- data() {
- const equalToPassword = (rule, value, callback) => {
- if (this.user.newPassword !== value) {
- callback(new Error("两次输入的密码不一致"));
- } else {
- callback();
- }
- };
- return {
- test: "1test",
- user: {
- oldPassword: undefined,
- newPassword: undefined,
- confirmPassword: undefined
- },
- // 表单校验
- rules: {
- oldPassword: [
- { required: true, message: "旧密码不能为空", trigger: "blur" }
- ],
- newPassword: [
- { required: true, message: "新密码不能为空", trigger: "blur" },
- {
- pattern: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/,
- message: "密码请包含数字,英文,字符中的两种以上,长度6-20位",
- trigger: ["blur", "change"],
- }
- // { min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" }
- ],
- confirmPassword: [
- { required: true, message: "确认密码不能为空", trigger: "blur" },
- { required: true, validator: equalToPassword, trigger: "blur" }
- ]
- }
- };
- },
- methods: {
- submit() {
- this.$refs["form"].validate(valid => {
- if (valid) {
- const loading = this.$loading({
- lock: true,
- text: "Loading",
- spinner: "el-icon-loading",
- background: "rgba(0, 0, 0, 0.7)",
- })
- updateUserPwd(this.user.oldPassword, this.user.newPassword).then(
- response => {
- loading.close();
- this.msgSuccess("修改成功");
- this.$store.dispatch('LogOut').then(() => {
- location.href = '/home';
- })
- }
- ).catch((response)=>{
- loading.close();
- });
- }
- });
-
- },
- close() {
- Global.$emit("removeCache", "closeSelectedTag", this.$route);
- this.$store.dispatch("tagsView/delView", this.$route);
- this.$router.push({ path: "/home" });
- }
- }
- };
- </script>
|