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&#45;&#45;right"></i></div>
+        <div class="el-dropdown-link">浣犲ソ  {{ username }}<i class="el-icon-arrow-down el-icon&#45;&#45;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