田源
2023-04-11 4e13584a74c860f9fa8fd2d6aee3021fe6bb6b77
Source/UBCS-WEB/src/views/wel/index.vue
@@ -664,11 +664,32 @@
      </el-col>
    </el-row>
    <el-dialog title="修改密码" :visible.sync="dialogFormVisible" append-to-body  :close-on-press-escape="false" :before-close="Xdelhandle">
      <el-form :model="form"  :rules="rules" ref="form">
        <el-form-item label="原密码" :label-width="formLabelWidth" prop="oldPassword">
          <el-input v-model="form.oldPassword" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="新密码" :label-width="formLabelWidth" prop="newPassword">
          <el-input v-model="form.newPassword" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="确认密码" :label-width="formLabelWidth" prop="newPassword1">
          <el-input v-model="form.newPassword1" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="delhandle">取 消</el-button>
        <el-button type="primary" @click="addok">确 定</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
  import {mapGetters} from "vuex";
  import  {check} from "@/api/system/user"
  import {updatePassword} from "@/api/system/user.js"
  import md5 from "js-md5";
  import {removeToken} from "@/util/auth";
  export default {
    name: "wel",
@@ -676,12 +697,33 @@
      return {
        activeNames: ['1', '2', '3', '5'],
        logActiveNames: ['28'],
        aaa:[]
        userarr:[],
        userid:'',
        updataArr:[],
        dialogFormVisible:false,
        form: {
          oldPassword: '',
          newPassword: '',
          newPassword1: '',
        },
        rules: {
          oldPassword: [
            { required: true, message: '请输入原密码', trigger: 'blur' }
          ],
          newPassword:[
            { required: true, message: '请输入新密码', trigger: 'blur' }
          ],
          newPassword1:[
            { required: true, message: '请输确认密码', trigger: 'blur' }
          ]
        },
      };
    },
    // 拿到userid请求接口
    created() {
      this.aaa=this.$store.state.upadatastatus
      console.log(this.aaa)
      this.updataArr=JSON.parse(localStorage.getItem("updataid"))
      this.userid=this.$store.state.user.upadatastatus.user_id
      this.checkhandle()
    },
    computed: {
      ...mapGetters(["userInfo"]),
@@ -689,6 +731,60 @@
    methods: {
      handleChange(val) {
        window.console.log(val);
      },
      //element组件关闭弹窗的延迟回调,这里没有用关闭弹窗的方法,因为当用户点击确认也是关闭弹窗,如果登录成功弹窗关闭后也是会清除token回到登录页
      //Xdelhandle是点击X号关闭弹唱,delhandle是点击取消关闭弹窗,在这分了两个事件
      Xdelhandle(){
        removeToken()
        this.dialogFormVisible = false
      },
      // 关闭弹窗后清除token返回到登录页面
      delhandle(){
        removeToken()
        this.dialogFormVisible = false
      },
      // 修改密码方法
      addok(){
        this.dialogFormVisible = false
        updatePassword(md5(this.form.oldPassword), this.form.newPassword, this.form.newPassword1).then(res=>{
          if(res.data.code==200){
            this.$message({
              type:"success",
              message:"修改成功!"
            })
          }
        }).catch(res=>{
          console.log(res)
          this.checkhandle()
        })
      },
      // 提醒时间请求,也需要判断是否为超管身份,超管身份不判断
      checkhandle(){
        if(this.updataArr.user_id != '0' && this.updataArr.tenant_id !== '000000'){
          check(this.userid).then(res=>{
            if(res.data.data>0){
              this.$message({
                type:'warning',
                message:`你还有${res.data.data}天就要修改密码了`
              })
            }else if(res.data.data == -1){
              this.$message({
                type: "warning",
                message: "密码策略已被修改,请重新修改密码!"
              })
              setTimeout(()=>{
                this.dialogFormVisible=true
              },1500)
            }else if(res.data.data == 0){
              this.$message({
                type:'success',
                message:"操作成功"
              })
            }
          }).catch(res=>{
            console.log(res)
          })
        }
      }
    },
  };