Blame view

src/components/PasswordForm/index.vue 4.94 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
      >
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
17
18
19
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
        <div class="NCC-common-title mb-20">
          <h4 class="bold">修改密码</h4>
        </div>
        <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>
              <el-form-item label="验证码" prop="code">
                <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>
              </el-form-item>
              <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
          ],
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
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(() => {
c168f9ab   monkeyhouyi   应用类型传id,导出换名称,换密码
126
127
          this.changeImg();
          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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
            let query = {
              oldPassword: md5(this.dataForm.oldPassword),
              password: md5(this.dataForm.password),
              code: this.dataForm.code,
              timestamp: this.timestamp,
            };
            UpdatePassword(query)
              .then((res) => {
                this.$message({
                  message: res.msg,
                  type: "success",
                  duration: 1500,
                  onClose: () => {
                    this.$store.dispatch("user/resetToken").then(() => {
                      this.$router.push(`/login`);
                    });
                  },
                });
              })
              .catch(() => {
                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>