From 8eb0c79dce085b8b86b908a4f7fdeef2fcfff54a Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 19 十一月 2021 17:20:40 +0800
Subject: [PATCH] 删减代码
---
src/layouts/components/VabAvatar/index.vue | 144 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 126 insertions(+), 18 deletions(-)
diff --git a/src/layouts/components/VabAvatar/index.vue b/src/layouts/components/VabAvatar/index.vue
index 6ee4913..2f5edc8 100644
--- a/src/layouts/components/VabAvatar/index.vue
+++ b/src/layouts/components/VabAvatar/index.vue
@@ -10,51 +10,159 @@
</span>
<el-dropdown-menu slot="dropdown">
+ <el-dropdown-item command="password" divided>淇敼瀵嗙爜</el-dropdown-item>
<el-dropdown-item command="logout" divided>閫�鍑虹櫥褰�</el-dropdown-item>
</el-dropdown-menu>
+
+ <el-dialog
+ title="淇敼瀵嗙爜"
+ :visible.sync="dialogVisible"
+ width="25%"
+ :modal="false"
+ :close-on-click-modal="false"
+ destroy-on-close
+ >
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+ <el-form-item label="鍘熷瘑鐮�" prop="oldPassword">
+ <el-input
+ v-model.trim="form.oldPassword"
+ autocomplete="off"
+ show-password
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="鏂板瘑鐮�" prop="newPassword">
+ <el-input
+ v-model.trim="form.newPassword"
+ autocomplete="off"
+ show-password
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="纭瀵嗙爜" prop="confirmPassword">
+ <el-input
+ v-model.trim="form.confirmPassword"
+ autocomplete="off"
+ show-password
+ ></el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="resetPassword">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
</el-dropdown>
</template>
<script>
-import { mapGetters } from 'vuex'
-import { recordRoute } from '@/config'
+import { mapGetters } from "vuex";
+import { recordRoute } from "@/config";
+import { updatePassword } from "@/api/user";
export default {
- name: 'VabAvatar',
+ name: "VabAvatar",
+ data() {
+ var validatePass = (rule, value, callback) => {
+ if (value === "") {
+ callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
+ } else if (value.length < 6) {
+ callback(new Error("璇疯緭鍏�6浣嶄互涓婂瘑鐮�"));
+ } else {
+ callback();
+ }
+ };
+
+ var validatePass2 = (rule, value, callback) => {
+ if (value === "") {
+ callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
+ } else if (value !== this.form.newPassword) {
+ callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"));
+ } else {
+ callback();
+ }
+ };
+ return {
+ form: {},
+ rules: {
+ oldPassword: [
+ {
+ required: true,
+ trigger: "blur",
+ message: "鍘熷瘑鐮佷笉鑳戒负绌�",
+ },
+ ],
+ newPassword: [
+ {
+ validator: validatePass,
+ required: true,
+ trigger: "blur",
+ },
+ ],
+ confirmPassword: [
+ {
+ validator: validatePass2,
+ required: true,
+ trigger: "blur",
+ },
+ ],
+ },
+ dialogVisible: false,
+ };
+ },
computed: {
...mapGetters({
- avatar: 'user/avatar',
- username: 'user/username',
+ avatar: "user/avatar",
+ username: "user/username",
+ userId: "user/userId",
}),
},
methods: {
handleCommand(command) {
switch (command) {
- case 'logout':
- this.logout()
- break
+ case "logout":
+ this.logout();
+ break;
+ case "password":
+ this.dialogVisible = true;
+ this.form = {};
+ break;
}
- },
- personalCenter() {
- this.$router.push('/personalCenter/personalCenter')
},
logout() {
this.$baseConfirm(
- '鎮ㄧ‘瀹氳閫�鍑�' + this.$baseTitle + '鍚�?',
+ "鎮ㄧ‘瀹氳閫�鍑�" + this.$baseTitle + "鍚�?",
null,
async () => {
- await this.$store.dispatch('user/logout')
+ await this.$store.dispatch("user/logout");
if (recordRoute) {
- const fullPath = this.$route.fullPath
- this.$router.push(`/login?redirect=${fullPath}`)
+ const fullPath = this.$route.fullPath;
+ this.$router.push(`/login?redirect=${fullPath}`);
} else {
- this.$router.push('/login')
+ this.$router.push("/login");
}
}
- )
+ );
+ },
+ resetPassword() {
+ this.$refs["form"].validate(async (valid) => {
+ if (valid) {
+ let rsp = await updatePassword(this.userId, {
+ oldPassword: this.form.oldPassword,
+ newPassword: this.form.newPassword,
+ });
+ if (rsp && rsp.success) {
+ this.$baseMessage(rsp.msg, "success");
+ this.$refs["form"].resetFields();
+ this.dialogVisible = false;
+ }
+ }
+ });
+ },
+ handleClose() {
+ console.log("close");
+ this.$refs["form"].resetFields();
},
},
-}
+};
</script>
<style lang="scss" scoped>
.avatar-dropdown {
--
Gitblit v1.8.0