From 5e9e244eab03d1b24fe6dae3fa7052cf068e5a52 Mon Sep 17 00:00:00 2001 From: zuozhengqing <a13193816592@163.com> Date: 星期一, 05 二月 2024 16:57:08 +0800 Subject: [PATCH] crm添加修改密码 --- src/common/untils/request.js | 2 vue.config.js | 2 src/api/admin/user.js | 20 ++++ src/components/layout/components/appHeader/index.vue | 37 ++++++- src/components/layout/components/appHeader/components/updatePassWord.vue | 186 +++++++++++++++++++++++++++++++++++++ 5 files changed, 240 insertions(+), 7 deletions(-) diff --git a/src/api/admin/user.js b/src/api/admin/user.js new file mode 100644 index 0000000..574aefd --- /dev/null +++ b/src/api/admin/user.js @@ -0,0 +1,20 @@ +import request from "@/common/untils/request.js" + +// 閲嶇疆瀵嗙爜 +export function initPassword(data) { + return request({ + url: "/api/user/initPassword", + method: "post", + data, + }); +} +// 璁剧疆鏂板瘑鐮� +export function modifiedPwd(data) { + return request({ + url: "/api/user/modifiedPwd", + method: "post", + data, + }); +} + + diff --git a/src/common/untils/request.js b/src/common/untils/request.js index 209035a..2f7613e 100644 --- a/src/common/untils/request.js +++ b/src/common/untils/request.js @@ -33,7 +33,7 @@ prod:`//${window.location.hostname}:9080`, test:`//192.168.20.119:9080`, // 鎯宠烦鍒版湰鍦板惎鍔ㄧ殑鐧诲綍椤电殑璇濋渶瑕佹妸dev鏀规垚浣犳湰鍦伴」鐩矾寰� - dev: `//192.168.20.158:8080` + dev: `//192.168.8.108:8080` } return loginPathMap[environmentType()] diff --git a/src/components/layout/components/appHeader/components/updatePassWord.vue b/src/components/layout/components/appHeader/components/updatePassWord.vue new file mode 100644 index 0000000..d5b4736 --- /dev/null +++ b/src/components/layout/components/appHeader/components/updatePassWord.vue @@ -0,0 +1,186 @@ +<template> + <div> + <el-dialog + title="淇敼瀵嗙爜" + :visible.sync="editConfig.dialogVisible" + width="30%" + :before-close="handleClose"> + <el-form :label-position="labelPosition" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> + <el-form-item label="鏃у瘑鐮�:" prop="oldPass"> + <el-input type="password" clearable v-model="ruleForm.oldPass" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鏂板瘑鐮�:" prop="pass"> + <el-input type="password" clearable v-model="ruleForm.pass" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="纭瀵嗙爜:" prop="checkPass"> + <el-input type="password" clearable v-model="ruleForm.checkPass" autocomplete="off"></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="submitForm('ruleForm')" style="margin-bottom:20px;">纭</el-button> + </el-form-item> + </el-form> + </el-dialog> + </div> +</template> + +<script> +import Cookies from 'js-cookie'; +import { modifiedPwd } from "@/api/admin/user"; +export default { + props: { + editCommonConfig: { + type: Object, + default: () => { + return { + dialogVisible:false, + userId:"", + }; + }, + }, + }, + data() { + var validatePass = (rule, value, callback) => { + if (value === '') { + callback(new Error('璇疯緭鍏ユ棫瀵嗙爜')); + }else{ + callback(); + } + }; + var validatePass1 = (rule, value, callback) => { + if (value === '') { + callback(new Error('璇疯緭鍏ユ柊瀵嗙爜')); + } else { + if (this.ruleForm.checkPass !== '') { + this.$refs.ruleForm.validateField('checkPass'); + } + callback(); + } + }; + var validatePass2 = (rule, value, callback) => { + if (value === '') { + callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + } else if (value !== this.ruleForm.pass) { + callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + } else { + callback(); + } + }; + return { + editConfig:this.editCommonConfig, + // dialogVisible: false + ruleForm: { + oldPass:'', + pass: '', + checkPass: '', + }, + rules: { + oldPass: [ + { validator: validatePass, trigger: 'blur', required: true, } + ], + pass: [ + { validator: validatePass1, trigger: 'blur', required: true, } + ], + checkPass: [ + { validator: validatePass2, trigger: 'blur', required: true, } + ], + }, + labelPosition:"left", + userId : '', + }; + }, + created(){ + + }, + computed: { + + }, + created() { + + }, + mounted() { + }, + watch: { + + }, + methods: { + // + environmentType(){ + let type + if (location.href.includes('192.168.20.119')) { + type = 'test' + } else if (location.href.includes('192.168') || location.href.includes('localhost')) { + type = 'dev' + } else { + type = 'prod' + } + return type + }, + // + getApsPage(){ + // 棣栭〉閮ㄧ讲鍦ㄥ悇涓幆澧冪殑绔彛 + const loginPathMap = { + prod:`//${window.location.hostname}:9080`, + test:`//192.168.20.119:9080`, + // 鎯宠烦鍒版湰鍦板惎鍔ㄧ殑鐧诲綍椤电殑璇濋渶瑕佹妸dev鏀规垚浣犳湰鍦伴」鐩矾寰� + dev: `//192.168.8.108:8080` + } + + return loginPathMap[this.environmentType()] + }, + handleClose(done){ + done(); + }, + modifiedPwd(params){ + modifiedPwd(params).then((res)=>{ + if(res.code==200){ + this.editConfig.dialogVisible=false + alert("瀵嗙爜淇敼鎴愬姛,璇烽噸鏂扮櫥褰�!") + window.location = this.getApsPage()+'/login' + } + }) + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + console.log(this.ruleForm,"鐪嬬湅琛ㄥ崟") + this.modifiedPwd({ + userId:this.editConfig.userId, + oldPwd:this.ruleForm.oldPass, + newPwd:this.ruleForm.pass, + }) + + } else { + console.log('error submit!!'); + return false; + } + }); + }, + + }, + components: { + + }, +}; +</script> + +<style scoped lang="scss"> +.el-form{ + margin-top:20px; +} +::v-deep { + .el-form-item__content{ + display: flex; + flex-direction: row-reverse; + } + .el-dialog__header{ + .el-dialog__title{ + font-size:18px; + + } + } + .el-form{ + margin:20px; + } + +} +</style> diff --git a/src/components/layout/components/appHeader/index.vue b/src/components/layout/components/appHeader/index.vue index 44f019b..631619f 100644 --- a/src/components/layout/components/appHeader/index.vue +++ b/src/components/layout/components/appHeader/index.vue @@ -4,29 +4,54 @@ <div class="header-user-info"> <div class="avatar"><el-avatar icon="el-icon-user-solid"></el-avatar></div> <el-dropdown @command="handleCommand"> - <div class="el-dropdown-link">{{ username }}<i class="el-icon-arrow-down el-icon--right"></i></div> + <div class="el-dropdown-link">浣犲ソ {{ username }}<i class="el-icon-arrow-down el-icon--right"></i></div> <el-dropdown-menu slot="dropdown"> <el-dropdown-item command="logout">閫�鍑�</el-dropdown-item> + <el-dropdown-item @click.native="updatePwd"> + <d2-icon name="unlock" class="d2-mr-5" /> + 淇敼瀵嗙爜 + </el-dropdown-item> </el-dropdown-menu> </el-dropdown> + <UpdatePassWord :editCommonConfig="editConfig"></UpdatePassWord> </div> </div> </template> <script> import Cookies from "js-cookie" +import UpdatePassWord from "./components/updatePassWord" export default { - name: "SalesLead", + name: "SalesLeads", props: { headerTitle: String }, + components:{ + UpdatePassWord, + }, data() { return { - username: "" + username: "", + editConfig:{ + dialogVisible:false, + userId:"", + } } }, + created(){ + const userObj = Cookies.get('userObj'); + + console.log(userObj,"鐪嬬湅") + if (userObj) { + let userInfo = JSON.parse(userObj); + this.editConfig.userId=userInfo.id + this.username=userInfo.nickName + } else { + console.log('Object not found in cookie'); + } + }, mounted() { - this.username = document.cookie.replace(/(?:(?:^|.*;\s*)username\s*=\s*([^;]*).*$)|^.*$/, "$1") + // this.username = document.cookie.replace(/(?:(?:^|.*;\s*)username\s*=\s*([^;]*).*$)|^.*$/, "$1") }, methods: { environmentType() { @@ -52,7 +77,6 @@ return loginPathMap[this.environmentType()] }, handleCommand(command) { - console.log(command) if (command === "logout") { // this.$router.push({ path: "/login" }) document.cookie = "cookieName=; path=/;" @@ -77,6 +101,9 @@ }) }) } + }, + updatePwd(){ + this.editConfig.dialogVisible=true } } } diff --git a/vue.config.js b/vue.config.js index d13a119..79620d7 100644 --- a/vue.config.js +++ b/vue.config.js @@ -21,7 +21,7 @@ changeOrigin: true }, "/api": { - target: "http://192.168.20.119:8002", // http://192.168.20.119:8002 http://fai365.com:30150/ + target: "http://192.168.20.119:8001", // http://192.168.20.119:8002 http://fai365.com:30150/ // 寤洪亾鏈湴鐜 // target: "http://192.168.20.118:8002", ws: true, -- Gitblit v1.8.0