Blame view

src/components/PasswordForm/index.vue 4.99 KB
9b7e125f   monkeyhouyi   属地页面
1
  <template>
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
2
    <div class="password">
9b7e125f   monkeyhouyi   属地页面
3
4
5
6
7
8
9
10
11
      <div class="btn" @click="openDialog">
        <slot></slot>
      </div>
      <el-dialog
        title="修改密码"
        :close-on-click-modal="false"
        :visible.sync="visible"
        lock-scroll
        append-to-body
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
12
        width="40%"
9b7e125f   monkeyhouyi   属地页面
13
        :modal-append-to-body="false"
61009cfc   monkeyhouyi   2024/8/8
14
        class="NCC-dialog NCC-dialog_center dialog-box"
9b7e125f   monkeyhouyi   属地页面
15
16
        destroy-on-close
      >
77e1ac72   monkeyhouyi   优化
17
        <!-- <div class="NCC-common-title mb-20">
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
18
          <h4 class="bold">修改密码</h4>
77e1ac72   monkeyhouyi   优化
19
        </div> -->
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
        <el-row>
          <el-col :span="16">
            <el-form
              ref="dataForm"
              :model="dataForm"
              :rules="dataRule"
              label-width="100px"
            >
              <el-form-item label="旧密码" prop="oldPassword">
                <el-input
                  v-model="dataForm.oldPassword"
                  placeholder="旧密码"
                  show-password
                />
              </el-form-item>
              <el-form-item label="新密码" prop="password">
                <el-input
                  v-model="dataForm.password"
                  placeholder="新密码"
                  show-password
                />
              </el-form-item>
              <el-form-item label="重复密码" prop="password2">
                <el-input
                  v-model="dataForm.password2"
                  placeholder="重复密码"
                  show-password
                />
              </el-form-item>
77e1ac72   monkeyhouyi   优化
49
              <!-- <el-form-item label="验证码" prop="code">
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
50
51
52
53
54
55
56
57
58
59
60
61
62
                <el-col :span="17">
                  <el-input v-model="dataForm.code" placeholder="验证码">
                  </el-input>
                </el-col>
                <el-col :span="6" :offset="1" style="height: 32px">
                  <img
                    id="imgcode"
                    alt="点击切换验证码"
                    title="点击切换验证码"
                    :src="define.comUrl + imgUrl"
                    @click="changeImg"
                  />
                </el-col>
77e1ac72   monkeyhouyi   优化
63
              </el-form-item> -->
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
64
65
66
67
68
69
              <el-form-item>
                <el-button type="primary" @click="dataFormSubmit()">保 存</el-button>
              </el-form-item>
            </el-form>
          </el-col>
        </el-row>
9b7e125f   monkeyhouyi   属地页面
70
71
72
73
74
      </el-dialog>
    </div>
  </template>
  
  <script>
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
75
76
  import md5 from "js-md5";
  import { UpdatePassword } from "@/api/permission/userSetting";
9b7e125f   monkeyhouyi   属地页面
77
  export default {
9b7e125f   monkeyhouyi   属地页面
78
    data() {
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
79
80
81
82
83
84
85
86
87
88
89
90
91
      var validatePass = (rule, value, callback) => {
        if (value === "") {
          callback(new Error("新密码不能为空"));
        } else {
          if (this.dataForm.password2 !== "") {
            this.$refs.dataForm.validateField("password2");
          }
          callback();
        }
      };
      var validatePass2 = (rule, value, callback) => {
        if (value !== this.dataForm.password) {
          callback(new Error("两次密码输入不一致"));
9b7e125f   monkeyhouyi   属地页面
92
93
94
95
96
97
        } else {
          callback();
        }
      };
      return {
        visible: false,
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
98
99
100
101
102
        dataForm: {
          oldPassword: "",
          password: "",
          password2: "",
          code: "",
9b7e125f   monkeyhouyi   属地页面
103
        },
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
104
105
106
        imgUrl: "",
        timestamp: "",
        dataRule: {
9b7e125f   monkeyhouyi   属地页面
107
108
109
          oldPassword: [
            { required: true, message: "旧密码不能为空", trigger: "blur" },
          ],
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
110
111
          password: [
            { required: true, validator: validatePass, trigger: "blur" },
9b7e125f   monkeyhouyi   属地页面
112
          ],
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
113
114
115
          password2: [
            { required: true, message: "重复密码不能为空", trigger: "blur" },
            { validator: validatePass2, trigger: "blur" },
9b7e125f   monkeyhouyi   属地页面
116
          ],
77e1ac72   monkeyhouyi   优化
117
          // code: [{ required: true, message: "验证码不能为空", trigger: "blur" }],
9b7e125f   monkeyhouyi   属地页面
118
119
120
        },
      };
    },
9b7e125f   monkeyhouyi   属地页面
121
122
123
124
125
    created() {},
    methods: {
      openDialog() {
        this.visible = true;
        this.$nextTick(() => {
77e1ac72   monkeyhouyi   优化
126
          // this.changeImg();
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
127
          this.$refs["dataForm"].resetFields();
9b7e125f   monkeyhouyi   属地页面
128
129
        });
      },
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
130
131
      dataFormSubmit() {
        this.$refs["dataForm"].validate((valid) => {
9b7e125f   monkeyhouyi   属地页面
132
          if (valid) {
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
133
134
135
            let query = {
              oldPassword: md5(this.dataForm.oldPassword),
              password: md5(this.dataForm.password),
77e1ac72   monkeyhouyi   优化
136
137
              // code: this.dataForm.code,
              // timestamp: this.timestamp,
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
138
139
140
141
            };
            UpdatePassword(query)
              .then((res) => {
                this.$message({
77e1ac72   monkeyhouyi   优化
142
                  message: res.msg + ',请重新登录!',
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
143
144
145
                  type: "success",
                  duration: 1500,
                  onClose: () => {
77e1ac72   monkeyhouyi   优化
146
                    this.$store.dispatch("resetToken").then(() => {
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
147
148
149
150
151
152
                      this.$router.push(`/login`);
                    });
                  },
                });
              })
              .catch(() => {
77e1ac72   monkeyhouyi   优化
153
                // this.changeImg();
9b7e125f   monkeyhouyi   属地页面
154
              });
9b7e125f   monkeyhouyi   属地页面
155
156
157
          }
        });
      },
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
158
159
160
161
162
      changeImg() {
        let timestamp = Math.random();
        this.timestamp = timestamp;
        this.imgUrl = `/api/file/ImageCode/${timestamp}`;
      },
9b7e125f   monkeyhouyi   属地页面
163
164
165
166
    },
  };
  </script>
  <style lang="scss" scoped>
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
  .password {
    >>> .el-input-group__append {
      padding: 0;
      height: 30px;
    }
    #imgcode {
      width: 100px;
      height: 32px;
      overflow: hidden;
      object-fit: cover;
      cursor: pointer;
      margin: 0;
      padding: 0;
    }
  }
9b7e125f   monkeyhouyi   属地页面
182
  </style>