eoss-ui 0.8.42 → 0.8.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/lib/eoss-ui.common.js +195 -161
  2. package/lib/flow.js +164 -142
  3. package/lib/index.js +1 -1
  4. package/lib/main.js +5 -5
  5. package/lib/upload.js +18 -6
  6. package/package.json +2 -2
  7. package/packages/button-group/src/main.vue +346 -346
  8. package/packages/calogin/src/main.vue +412 -412
  9. package/packages/clients/src/main.vue +151 -151
  10. package/packages/flow/src/component/CustomPreset.vue +326 -326
  11. package/packages/flow/src/component/FileList.vue +97 -97
  12. package/packages/flow/src/component/SendMsg.vue +242 -242
  13. package/packages/flow/src/component/SortFlow.vue +110 -110
  14. package/packages/flow/src/flow.vue +4 -4
  15. package/packages/flow/src/form.vue +123 -123
  16. package/packages/flow/src/freeStartFlow.vue +2902 -2902
  17. package/packages/flow/src/main.vue +6 -5
  18. package/packages/flow/src/processForm.vue +2032 -2032
  19. package/packages/flow/src/processReject.vue +323 -323
  20. package/packages/flow/src/table.vue +58 -58
  21. package/packages/form/src/table.vue +1512 -1512
  22. package/packages/icon/src/main.vue +104 -104
  23. package/packages/login/src/resetPassword.vue +557 -557
  24. package/packages/main/src/public/online.vue +89 -89
  25. package/packages/main/src/public/search.vue +464 -464
  26. package/packages/main/src/public/settings.vue +273 -273
  27. package/packages/main/src/simplicity/apps.vue +388 -388
  28. package/packages/main/src/simplicity/avatar.vue +82 -82
  29. package/packages/main/src/simplicity/handler.vue +158 -158
  30. package/packages/main/src/simplicity/menu-list.vue +135 -135
  31. package/packages/main/src/simplicity/message.vue +293 -293
  32. package/packages/main/src/simplicity/notice.vue +222 -222
  33. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  34. package/packages/main/src/simplicity/user.vue +259 -259
  35. package/packages/main/src/simplicityTop/apps.vue +388 -388
  36. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  37. package/packages/main/src/simplicityTop/handler.vue +215 -215
  38. package/packages/main/src/simplicityTop/lists.vue +84 -84
  39. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  40. package/packages/main/src/simplicityTop/message.vue +293 -293
  41. package/packages/main/src/simplicityTop/notice.vue +222 -222
  42. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  43. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  44. package/packages/main/src/simplicityTop/user.vue +259 -259
  45. package/packages/nav/src/main.vue +351 -351
  46. package/packages/selector-panel/src/selection.vue +174 -174
  47. package/packages/switch/src/main.vue +170 -170
  48. package/packages/theme-chalk/src/data-table.scss +297 -297
  49. package/packages/theme-chalk/src/handler.scss +148 -148
  50. package/packages/theme-chalk/src/icon.scss +3452 -3452
  51. package/packages/theme-chalk/src/login.scss +1006 -1006
  52. package/packages/theme-chalk/src/main.scss +664 -664
  53. package/packages/theme-chalk/src/menu.scss +224 -224
  54. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  55. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  56. package/packages/theme-chalk/src/upload.scss +172 -172
  57. package/packages/tips/src/main.vue +141 -141
  58. package/packages/upload/src/main.vue +13 -1
  59. package/packages/wujie/src/main.vue +146 -146
  60. package/src/index.js +166 -166
  61. package/src/utils/rules.js +18 -18
  62. package/packages/.DS_Store +0 -0
  63. package/packages/calogin/.DS_Store +0 -0
  64. package/packages/date-picker/.DS_Store +0 -0
  65. package/packages/date-picker/src/.DS_Store +0 -0
  66. package/packages/dialog/.DS_Store +0 -0
  67. package/packages/flow/.DS_Store +0 -0
  68. package/packages/flow/src/.DS_Store +0 -0
  69. package/packages/flow-list/.DS_Store +0 -0
  70. package/packages/form/.DS_Store +0 -0
  71. package/packages/icon/.DS_Store +0 -0
  72. package/packages/login/.DS_Store +0 -0
  73. package/packages/main/.DS_Store +0 -0
  74. package/packages/main/src/.DS_Store +0 -0
  75. package/packages/menu/.DS_Store +0 -0
  76. package/packages/select/.DS_Store +0 -0
  77. package/packages/selector/.DS_Store +0 -0
  78. package/packages/selector-panel/.DS_Store +0 -0
  79. package/packages/theme-chalk/src/.DS_Store +0 -0
  80. package/packages/upload/.DS_Store +0 -0
  81. package/src/.DS_Store +0 -0
  82. package/src/utils/.DS_Store +0 -0
@@ -1,557 +1,557 @@
1
- <!--
2
- /**
3
- * 忘记密码
4
- *@desc 忘记密码填写表单(通过手机号获取验证码)
5
- *
6
- **/
7
- -->
8
- <template>
9
- <div class="rest-password-box" :class="{ 'rest-password-cut': show }">
10
- <el-menu
11
- v-if="show"
12
- :default-active="activeIndex"
13
- class="rest-menu-cut"
14
- mode="horizontal"
15
- @select="handleSelect"
16
- >
17
- <el-menu-item index="6">短信验证</el-menu-item>
18
- <el-menu-item index="11">邮箱验证</el-menu-item>
19
- <el-menu-item index="0" v-if="this.operationCheckCode"
20
- >原密码验证</el-menu-item
21
- >
22
- </el-menu>
23
- <es-form
24
- ref="pwdForm"
25
- v-loading.fullscreen.lock="submit"
26
- element-loading-text="修改中..."
27
- element-loading-spinner="el-icon-loading"
28
- element-loading-background="rgba(0, 0, 0, 0.65)"
29
- class="es-rest-password"
30
- :model="formData"
31
- :contents="page"
32
- :autocomplete="false"
33
- @submit="handleSubmit"
34
- >
35
- </es-form>
36
- </div>
37
- </template>
38
-
39
- <script>
40
- import {
41
- initModifyPassword,
42
- getModifyPassCode,
43
- codeModifyPass,
44
- loginModifyPassword
45
- } from 'eoss-ui/src/config/api.js';
46
- import rules from 'eoss-ui/src/utils/rules.js';
47
- import util from 'eoss-ui/src/utils/util';
48
- export default {
49
- name: 'resetPassword',
50
- props: {
51
- secret: String,
52
- isEncrypt: Boolean,
53
- type: String,
54
- operationCheckCode: String,
55
- username: String
56
- },
57
- computed: {
58
- page() {
59
- switch (this.activeIndex) {
60
- case '6':
61
- return [
62
- {
63
- type: 'text',
64
- name: 'target',
65
- label: '手机号',
66
- placeholder: '请输入手机号',
67
- rules: [
68
- {
69
- required: true,
70
- message: '请输入手机号',
71
- trigger: 'blur'
72
- },
73
- {
74
- ...rules.phone,
75
- trigger: 'blur'
76
- }
77
- ]
78
- },
79
- {
80
- type: 'password',
81
- name: 'password',
82
- label: '新密码',
83
- placeholder: '请输入新密码',
84
- showPassword: true,
85
- rules: [
86
- this.checkPassword
87
- ? {
88
- pattern: this.checkPassword,
89
- message: this.checkPasswordMsg
90
- ? this.checkPasswordMsg
91
- : '密码格式不合法',
92
- trigger: 'blur'
93
- }
94
- : {},
95
- {
96
- required: true,
97
- message: '请输入新密码',
98
- trigger: 'blur'
99
- }
100
- ]
101
- },
102
- {
103
- type: 'password',
104
- name: 'repassword',
105
- placeholder: '请确认新密码',
106
- label: '确认新密码',
107
- showPassword: true,
108
- rules: [
109
- this.checkPassword
110
- ? {
111
- pattern: this.checkPassword,
112
- message: this.checkPasswordMsg
113
- ? this.checkPasswordMsg
114
- : '密码格式不合法',
115
- trigger: 'blur'
116
- }
117
- : {},
118
- {
119
- required: true,
120
- message: '请输入新密码',
121
- trigger: 'blur'
122
- },
123
- { validator: this.reregExpValidate, trigger: 'blur' }
124
- ]
125
- },
126
- {
127
- type: 'text',
128
- name: 'verificationCode',
129
- placeholder: '请输入验证码',
130
- label: '验证码',
131
- append: {
132
- text: this.btnText,
133
- attrs: { disabled: this.disabled },
134
- event: this.getVerificationCode
135
- },
136
- rules: [
137
- {
138
- required: true,
139
- message: '请输入验证码',
140
- trigger: 'blur'
141
- }
142
- ]
143
- },
144
- {
145
- type: 'submit',
146
- contents: [
147
- {
148
- type: 'primary',
149
- text: '提交',
150
- event: 'confirm'
151
- }
152
- ]
153
- }
154
- ];
155
- case '11':
156
- return [
157
- {
158
- type: 'text',
159
- name: 'target',
160
- label: '邮箱地址',
161
- placeholder: '请输入邮箱地址',
162
- rules: [
163
- {
164
- required: true,
165
- message: '请输入邮箱地址',
166
- trigger: 'blur'
167
- },
168
- {
169
- type: 'email',
170
- message: '请输入正确的邮箱地址',
171
- trigger: 'blur'
172
- }
173
- ]
174
- },
175
- {
176
- type: 'password',
177
- name: 'password',
178
- label: '新密码',
179
- placeholder: '请输入新密码',
180
- showPassword: true,
181
- rules: [
182
- this.checkPassword
183
- ? {
184
- pattern: this.checkPassword,
185
- message: this.checkPasswordMsg
186
- ? this.checkPasswordMsg
187
- : '密码格式不合法',
188
- trigger: 'blur'
189
- }
190
- : {},
191
- {
192
- required: true,
193
- message: '请输入新密码',
194
- trigger: 'blur'
195
- }
196
- ]
197
- },
198
- {
199
- type: 'password',
200
- name: 'repassword',
201
- placeholder: '请确认新密码',
202
- label: '确认新密码',
203
- showPassword: true,
204
- rules: [
205
- this.checkPassword
206
- ? {
207
- pattern: this.checkPassword,
208
- message: this.checkPasswordMsg
209
- ? this.checkPasswordMsg
210
- : '密码格式不合法',
211
- trigger: 'blur'
212
- }
213
- : {},
214
- {
215
- required: true,
216
- message: '请输入新密码',
217
- trigger: 'blur'
218
- },
219
- { validator: this.reregExpValidate, trigger: 'blur' }
220
- ]
221
- },
222
- {
223
- type: 'text',
224
- name: 'verificationCode',
225
- placeholder: '请输入验证码',
226
- label: '验证码',
227
- append: {
228
- text: this.btnText,
229
- attrs: { disabled: this.disabled },
230
- event: this.getVerificationCode
231
- },
232
- rules: [
233
- {
234
- required: true,
235
- message: '请输入验证码',
236
- trigger: 'blur'
237
- }
238
- ]
239
- },
240
- {
241
- type: 'submit',
242
- contents: [
243
- {
244
- type: 'primary',
245
- text: '提交',
246
- event: 'confirm'
247
- }
248
- ]
249
- }
250
- ];
251
- case '0':
252
- this.$set(
253
- this.formData,
254
- 'username',
255
- this.username ? this.username : ''
256
- );
257
- return [
258
- {
259
- type: 'text',
260
- name: 'userName',
261
- label: '用户名',
262
- placeholder: '请输入用户名',
263
- rules: [
264
- {
265
- required: true,
266
- message: '请输入用户名',
267
- trigger: 'blur'
268
- }
269
- ]
270
- },
271
- {
272
- type: 'password',
273
- name: 'oldPassword',
274
- label: '旧密码',
275
- placeholder: '请输入旧密码',
276
- showPassword: true,
277
- rules: [
278
- {
279
- required: true,
280
- message: '请输入旧密码',
281
- trigger: 'blur'
282
- }
283
- ]
284
- },
285
- {
286
- type: 'password',
287
- name: 'password',
288
- label: '新密码',
289
- placeholder: '请输入新密码',
290
- showPassword: true,
291
- rules: [
292
- this.checkPassword
293
- ? {
294
- pattern: this.checkPassword,
295
- message: this.checkPasswordMsg
296
- ? this.checkPasswordMsg
297
- : '密码格式不合法',
298
- trigger: 'blur'
299
- }
300
- : {},
301
- {
302
- required: true,
303
- message: '请输入新密码',
304
- trigger: 'blur'
305
- }
306
- ]
307
- },
308
- {
309
- type: 'password',
310
- name: 'repassword',
311
- placeholder: '请确认新密码',
312
- label: '确认新密码',
313
- showPassword: true,
314
- rules: [
315
- this.checkPassword
316
- ? {
317
- pattern: this.checkPassword,
318
- message: this.checkPasswordMsg
319
- ? this.checkPasswordMsg
320
- : '密码格式不合法',
321
- trigger: 'blur'
322
- }
323
- : {},
324
- {
325
- required: true,
326
- message: '请确认新密码',
327
- trigger: 'blur'
328
- },
329
- { validator: this.reregExpValidate, trigger: 'blur' }
330
- ]
331
- },
332
- {
333
- type: 'submit',
334
- contents: [
335
- {
336
- type: 'primary',
337
- text: '提交',
338
- event: 'confirm'
339
- }
340
- ]
341
- }
342
- ];
343
- }
344
- },
345
- show() {
346
- if (this.type) {
347
- let types = this.type.split(',');
348
- return types.length > 1;
349
- }
350
- return false;
351
- }
352
- },
353
- data() {
354
- return {
355
- activeIndex: '0',
356
- checkPassword: null,
357
- checkPasswordMsg: null,
358
- btnText: '获取验证码',
359
- timer: '',
360
- countdown: 0,
361
- disabled: false,
362
- submit: false,
363
- formData: {}
364
- };
365
- },
366
- created() {
367
- this.getInitModifyPassword();
368
- if (this.type) {
369
- let types = this.type.split(',');
370
- if (types.length) {
371
- this.activeIndex = types[0];
372
- }
373
- } else {
374
- this.activeIndex = '0';
375
- }
376
- },
377
- destroyed() {
378
- clearInterval(this.timer);
379
- },
380
- methods: {
381
- // 密码再次验证
382
- reregExpValidate(rule, value, callback) {
383
- if (value != this.formData.password) {
384
- callback(new Error('两次密码不一致'));
385
- } else {
386
- callback();
387
- }
388
- },
389
- getInitModifyPassword() {
390
- util
391
- .ajax({
392
- url: initModifyPassword
393
- })
394
- .then((res) => {
395
- if (res.rCode === 0) {
396
- const results = JSON.parse(JSON.stringify(res.results));
397
- if (results.checkPassword) {
398
- this.checkPassword = new RegExp(results.checkPassword);
399
- }
400
- if (results.checkPasswordMsg) {
401
- this.checkPasswordMsg = results.checkPasswordMsg;
402
- }
403
- } else {
404
- let msg = res.msg || '系统错误,请联系管理员!';
405
- this.$message.error(msg);
406
- }
407
- })
408
- .catch((err) => {
409
- if (err.message && err.message !== 'canceled') {
410
- this.$message.error(err.message);
411
- }
412
- });
413
- },
414
- getVerificationCode() {
415
- if (this.countdown) {
416
- return false;
417
- }
418
- if (!this.formData.target) {
419
- this.$refs.pwdForm.validateField('target');
420
- return false;
421
- } else {
422
- let flag = false;
423
- this.$refs.pwdForm.validateField('target', (res) => {
424
- flag = res != '';
425
- });
426
- if (flag) {
427
- return false;
428
- }
429
- let data = {
430
- target: this.formData.target,
431
- targetType: this.activeIndex == '6' ? 'SMS' : 'EMAIL'
432
- };
433
- this.countdown = 60;
434
- this.getCode(data);
435
- this.timer = setInterval(() => {
436
- if (this.countdown > 0) {
437
- this.countdown--;
438
- this.disabled = true;
439
- this.btnText = '重新获取' + this.countdown + 's';
440
- } else {
441
- this.btnText = '获取验证码';
442
- this.disabled = false;
443
- clearInterval(this.timer);
444
- }
445
- }, 1000);
446
- }
447
- },
448
- getCode(params) {
449
- util
450
- .ajax({
451
- url: getModifyPassCode,
452
- params: params
453
- })
454
- .then((res) => {
455
- if (res.rCode === 0) {
456
- this.$message.success(res.msg);
457
- } else {
458
- let msg = res.msg || '系统错误,请联系管理员!';
459
- if (res.rCode === 2) {
460
- this.btnText = '获取验证码';
461
- this.disabled = false;
462
- this.countdown = 0;
463
- clearInterval(this.timer);
464
- }
465
- this.$message.error(msg);
466
- }
467
- })
468
- .catch((err) => {
469
- if (err.message && err.message !== 'canceled') {
470
- this.$message.error(err.message);
471
- }
472
- });
473
- },
474
- handleSubmit(res) {
475
- this.submit = true;
476
- let { repassword, ...data } = res;
477
- if (this.secret && this.isEncrypt) {
478
- data.password = util.esmEncrypt({
479
- data: data.password,
480
- key: this.secret
481
- });
482
- if (data.oldPassword) {
483
- data.oldPassword = util.esmEncrypt({
484
- data: data.oldPassword,
485
- key: this.secret
486
- });
487
- }
488
- }
489
- if (this.activeIndex == '0') {
490
- data.operationCheckCode = this.operationCheckCode;
491
- util
492
- .ajax({
493
- method: 'post',
494
- url: loginModifyPassword,
495
- data: data
496
- })
497
- .then((res) => {
498
- this.submit = false;
499
- if (res.rCode === 0) {
500
- this.$message.success(res.msg);
501
- this.$emit('success');
502
- } else {
503
- let msg = res.msg || '系统错误,请联系管理员!';
504
- this.$message.error(msg);
505
- this.disabled = false;
506
- delete this.formData.verificationCode;
507
- clearInterval(this.timer);
508
- }
509
- })
510
- .catch((err) => {
511
- if (err.message && err.message !== 'canceled') {
512
- this.$message.error(err.message);
513
- }
514
- });
515
- } else {
516
- if (this.activeIndex == '6') {
517
- data.targetType = 'SMS';
518
- } else {
519
- data.targetType = 'EMAIL';
520
- }
521
- util
522
- .ajax({
523
- method: 'post',
524
- url: codeModifyPass,
525
- data: data
526
- })
527
- .then((res) => {
528
- this.submit = false;
529
- if (res.rCode === 0) {
530
- this.$message.success(res.msg);
531
- this.$emit('success');
532
- } else {
533
- let msg = res.msg || '系统错误,请联系管理员!';
534
- this.btnText = '获取验证码';
535
- this.disabled = false;
536
- clearInterval(this.timer);
537
- delete this.formData.verificationCode;
538
- this.$message.error(msg);
539
- }
540
- })
541
- .catch((err) => {
542
- if (err.message && err.message !== 'canceled') {
543
- this.$message.error(err.message);
544
- }
545
- });
546
- }
547
- },
548
- handleSelect(res) {
549
- this.$refs.pwdForm.resetFields();
550
- this.activeIndex = res;
551
- this.btnText = '获取验证码';
552
- this.disabled = false;
553
- clearInterval(this.timer);
554
- }
555
- }
556
- };
557
- </script>
1
+ <!--
2
+ /**
3
+ * 忘记密码
4
+ *@desc 忘记密码填写表单(通过手机号获取验证码)
5
+ *
6
+ **/
7
+ -->
8
+ <template>
9
+ <div class="rest-password-box" :class="{ 'rest-password-cut': show }">
10
+ <el-menu
11
+ v-if="show"
12
+ :default-active="activeIndex"
13
+ class="rest-menu-cut"
14
+ mode="horizontal"
15
+ @select="handleSelect"
16
+ >
17
+ <el-menu-item index="6">短信验证</el-menu-item>
18
+ <el-menu-item index="11">邮箱验证</el-menu-item>
19
+ <el-menu-item index="0" v-if="this.operationCheckCode"
20
+ >原密码验证</el-menu-item
21
+ >
22
+ </el-menu>
23
+ <es-form
24
+ ref="pwdForm"
25
+ v-loading.fullscreen.lock="submit"
26
+ element-loading-text="修改中..."
27
+ element-loading-spinner="el-icon-loading"
28
+ element-loading-background="rgba(0, 0, 0, 0.65)"
29
+ class="es-rest-password"
30
+ :model="formData"
31
+ :contents="page"
32
+ :autocomplete="false"
33
+ @submit="handleSubmit"
34
+ >
35
+ </es-form>
36
+ </div>
37
+ </template>
38
+
39
+ <script>
40
+ import {
41
+ initModifyPassword,
42
+ getModifyPassCode,
43
+ codeModifyPass,
44
+ loginModifyPassword
45
+ } from 'eoss-ui/src/config/api.js';
46
+ import rules from 'eoss-ui/src/utils/rules.js';
47
+ import util from 'eoss-ui/src/utils/util';
48
+ export default {
49
+ name: 'resetPassword',
50
+ props: {
51
+ secret: String,
52
+ isEncrypt: Boolean,
53
+ type: String,
54
+ operationCheckCode: String,
55
+ username: String
56
+ },
57
+ computed: {
58
+ page() {
59
+ switch (this.activeIndex) {
60
+ case '6':
61
+ return [
62
+ {
63
+ type: 'text',
64
+ name: 'target',
65
+ label: '手机号',
66
+ placeholder: '请输入手机号',
67
+ rules: [
68
+ {
69
+ required: true,
70
+ message: '请输入手机号',
71
+ trigger: 'blur'
72
+ },
73
+ {
74
+ ...rules.phone,
75
+ trigger: 'blur'
76
+ }
77
+ ]
78
+ },
79
+ {
80
+ type: 'password',
81
+ name: 'password',
82
+ label: '新密码',
83
+ placeholder: '请输入新密码',
84
+ showPassword: true,
85
+ rules: [
86
+ this.checkPassword
87
+ ? {
88
+ pattern: this.checkPassword,
89
+ message: this.checkPasswordMsg
90
+ ? this.checkPasswordMsg
91
+ : '密码格式不合法',
92
+ trigger: 'blur'
93
+ }
94
+ : {},
95
+ {
96
+ required: true,
97
+ message: '请输入新密码',
98
+ trigger: 'blur'
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ type: 'password',
104
+ name: 'repassword',
105
+ placeholder: '请确认新密码',
106
+ label: '确认新密码',
107
+ showPassword: true,
108
+ rules: [
109
+ this.checkPassword
110
+ ? {
111
+ pattern: this.checkPassword,
112
+ message: this.checkPasswordMsg
113
+ ? this.checkPasswordMsg
114
+ : '密码格式不合法',
115
+ trigger: 'blur'
116
+ }
117
+ : {},
118
+ {
119
+ required: true,
120
+ message: '请输入新密码',
121
+ trigger: 'blur'
122
+ },
123
+ { validator: this.reregExpValidate, trigger: 'blur' }
124
+ ]
125
+ },
126
+ {
127
+ type: 'text',
128
+ name: 'verificationCode',
129
+ placeholder: '请输入验证码',
130
+ label: '验证码',
131
+ append: {
132
+ text: this.btnText,
133
+ attrs: { disabled: this.disabled },
134
+ event: this.getVerificationCode
135
+ },
136
+ rules: [
137
+ {
138
+ required: true,
139
+ message: '请输入验证码',
140
+ trigger: 'blur'
141
+ }
142
+ ]
143
+ },
144
+ {
145
+ type: 'submit',
146
+ contents: [
147
+ {
148
+ type: 'primary',
149
+ text: '提交',
150
+ event: 'confirm'
151
+ }
152
+ ]
153
+ }
154
+ ];
155
+ case '11':
156
+ return [
157
+ {
158
+ type: 'text',
159
+ name: 'target',
160
+ label: '邮箱地址',
161
+ placeholder: '请输入邮箱地址',
162
+ rules: [
163
+ {
164
+ required: true,
165
+ message: '请输入邮箱地址',
166
+ trigger: 'blur'
167
+ },
168
+ {
169
+ type: 'email',
170
+ message: '请输入正确的邮箱地址',
171
+ trigger: 'blur'
172
+ }
173
+ ]
174
+ },
175
+ {
176
+ type: 'password',
177
+ name: 'password',
178
+ label: '新密码',
179
+ placeholder: '请输入新密码',
180
+ showPassword: true,
181
+ rules: [
182
+ this.checkPassword
183
+ ? {
184
+ pattern: this.checkPassword,
185
+ message: this.checkPasswordMsg
186
+ ? this.checkPasswordMsg
187
+ : '密码格式不合法',
188
+ trigger: 'blur'
189
+ }
190
+ : {},
191
+ {
192
+ required: true,
193
+ message: '请输入新密码',
194
+ trigger: 'blur'
195
+ }
196
+ ]
197
+ },
198
+ {
199
+ type: 'password',
200
+ name: 'repassword',
201
+ placeholder: '请确认新密码',
202
+ label: '确认新密码',
203
+ showPassword: true,
204
+ rules: [
205
+ this.checkPassword
206
+ ? {
207
+ pattern: this.checkPassword,
208
+ message: this.checkPasswordMsg
209
+ ? this.checkPasswordMsg
210
+ : '密码格式不合法',
211
+ trigger: 'blur'
212
+ }
213
+ : {},
214
+ {
215
+ required: true,
216
+ message: '请输入新密码',
217
+ trigger: 'blur'
218
+ },
219
+ { validator: this.reregExpValidate, trigger: 'blur' }
220
+ ]
221
+ },
222
+ {
223
+ type: 'text',
224
+ name: 'verificationCode',
225
+ placeholder: '请输入验证码',
226
+ label: '验证码',
227
+ append: {
228
+ text: this.btnText,
229
+ attrs: { disabled: this.disabled },
230
+ event: this.getVerificationCode
231
+ },
232
+ rules: [
233
+ {
234
+ required: true,
235
+ message: '请输入验证码',
236
+ trigger: 'blur'
237
+ }
238
+ ]
239
+ },
240
+ {
241
+ type: 'submit',
242
+ contents: [
243
+ {
244
+ type: 'primary',
245
+ text: '提交',
246
+ event: 'confirm'
247
+ }
248
+ ]
249
+ }
250
+ ];
251
+ case '0':
252
+ this.$set(
253
+ this.formData,
254
+ 'username',
255
+ this.username ? this.username : ''
256
+ );
257
+ return [
258
+ {
259
+ type: 'text',
260
+ name: 'userName',
261
+ label: '用户名',
262
+ placeholder: '请输入用户名',
263
+ rules: [
264
+ {
265
+ required: true,
266
+ message: '请输入用户名',
267
+ trigger: 'blur'
268
+ }
269
+ ]
270
+ },
271
+ {
272
+ type: 'password',
273
+ name: 'oldPassword',
274
+ label: '旧密码',
275
+ placeholder: '请输入旧密码',
276
+ showPassword: true,
277
+ rules: [
278
+ {
279
+ required: true,
280
+ message: '请输入旧密码',
281
+ trigger: 'blur'
282
+ }
283
+ ]
284
+ },
285
+ {
286
+ type: 'password',
287
+ name: 'password',
288
+ label: '新密码',
289
+ placeholder: '请输入新密码',
290
+ showPassword: true,
291
+ rules: [
292
+ this.checkPassword
293
+ ? {
294
+ pattern: this.checkPassword,
295
+ message: this.checkPasswordMsg
296
+ ? this.checkPasswordMsg
297
+ : '密码格式不合法',
298
+ trigger: 'blur'
299
+ }
300
+ : {},
301
+ {
302
+ required: true,
303
+ message: '请输入新密码',
304
+ trigger: 'blur'
305
+ }
306
+ ]
307
+ },
308
+ {
309
+ type: 'password',
310
+ name: 'repassword',
311
+ placeholder: '请确认新密码',
312
+ label: '确认新密码',
313
+ showPassword: true,
314
+ rules: [
315
+ this.checkPassword
316
+ ? {
317
+ pattern: this.checkPassword,
318
+ message: this.checkPasswordMsg
319
+ ? this.checkPasswordMsg
320
+ : '密码格式不合法',
321
+ trigger: 'blur'
322
+ }
323
+ : {},
324
+ {
325
+ required: true,
326
+ message: '请确认新密码',
327
+ trigger: 'blur'
328
+ },
329
+ { validator: this.reregExpValidate, trigger: 'blur' }
330
+ ]
331
+ },
332
+ {
333
+ type: 'submit',
334
+ contents: [
335
+ {
336
+ type: 'primary',
337
+ text: '提交',
338
+ event: 'confirm'
339
+ }
340
+ ]
341
+ }
342
+ ];
343
+ }
344
+ },
345
+ show() {
346
+ if (this.type) {
347
+ let types = this.type.split(',');
348
+ return types.length > 1;
349
+ }
350
+ return false;
351
+ }
352
+ },
353
+ data() {
354
+ return {
355
+ activeIndex: '0',
356
+ checkPassword: null,
357
+ checkPasswordMsg: null,
358
+ btnText: '获取验证码',
359
+ timer: '',
360
+ countdown: 0,
361
+ disabled: false,
362
+ submit: false,
363
+ formData: {}
364
+ };
365
+ },
366
+ created() {
367
+ this.getInitModifyPassword();
368
+ if (this.type) {
369
+ let types = this.type.split(',');
370
+ if (types.length) {
371
+ this.activeIndex = types[0];
372
+ }
373
+ } else {
374
+ this.activeIndex = '0';
375
+ }
376
+ },
377
+ destroyed() {
378
+ clearInterval(this.timer);
379
+ },
380
+ methods: {
381
+ // 密码再次验证
382
+ reregExpValidate(rule, value, callback) {
383
+ if (value != this.formData.password) {
384
+ callback(new Error('两次密码不一致'));
385
+ } else {
386
+ callback();
387
+ }
388
+ },
389
+ getInitModifyPassword() {
390
+ util
391
+ .ajax({
392
+ url: initModifyPassword
393
+ })
394
+ .then((res) => {
395
+ if (res.rCode === 0) {
396
+ const results = JSON.parse(JSON.stringify(res.results));
397
+ if (results.checkPassword) {
398
+ this.checkPassword = new RegExp(results.checkPassword);
399
+ }
400
+ if (results.checkPasswordMsg) {
401
+ this.checkPasswordMsg = results.checkPasswordMsg;
402
+ }
403
+ } else {
404
+ let msg = res.msg || '系统错误,请联系管理员!';
405
+ this.$message.error(msg);
406
+ }
407
+ })
408
+ .catch((err) => {
409
+ if (err.message && err.message !== 'canceled') {
410
+ this.$message.error(err.message);
411
+ }
412
+ });
413
+ },
414
+ getVerificationCode() {
415
+ if (this.countdown) {
416
+ return false;
417
+ }
418
+ if (!this.formData.target) {
419
+ this.$refs.pwdForm.validateField('target');
420
+ return false;
421
+ } else {
422
+ let flag = false;
423
+ this.$refs.pwdForm.validateField('target', (res) => {
424
+ flag = res != '';
425
+ });
426
+ if (flag) {
427
+ return false;
428
+ }
429
+ let data = {
430
+ target: this.formData.target,
431
+ targetType: this.activeIndex == '6' ? 'SMS' : 'EMAIL'
432
+ };
433
+ this.countdown = 60;
434
+ this.getCode(data);
435
+ this.timer = setInterval(() => {
436
+ if (this.countdown > 0) {
437
+ this.countdown--;
438
+ this.disabled = true;
439
+ this.btnText = '重新获取' + this.countdown + 's';
440
+ } else {
441
+ this.btnText = '获取验证码';
442
+ this.disabled = false;
443
+ clearInterval(this.timer);
444
+ }
445
+ }, 1000);
446
+ }
447
+ },
448
+ getCode(params) {
449
+ util
450
+ .ajax({
451
+ url: getModifyPassCode,
452
+ params: params
453
+ })
454
+ .then((res) => {
455
+ if (res.rCode === 0) {
456
+ this.$message.success(res.msg);
457
+ } else {
458
+ let msg = res.msg || '系统错误,请联系管理员!';
459
+ if (res.rCode === 2) {
460
+ this.btnText = '获取验证码';
461
+ this.disabled = false;
462
+ this.countdown = 0;
463
+ clearInterval(this.timer);
464
+ }
465
+ this.$message.error(msg);
466
+ }
467
+ })
468
+ .catch((err) => {
469
+ if (err.message && err.message !== 'canceled') {
470
+ this.$message.error(err.message);
471
+ }
472
+ });
473
+ },
474
+ handleSubmit(res) {
475
+ this.submit = true;
476
+ let { repassword, ...data } = res;
477
+ if (this.secret && this.isEncrypt) {
478
+ data.password = util.esmEncrypt({
479
+ data: data.password,
480
+ key: this.secret
481
+ });
482
+ if (data.oldPassword) {
483
+ data.oldPassword = util.esmEncrypt({
484
+ data: data.oldPassword,
485
+ key: this.secret
486
+ });
487
+ }
488
+ }
489
+ if (this.activeIndex == '0') {
490
+ data.operationCheckCode = this.operationCheckCode;
491
+ util
492
+ .ajax({
493
+ method: 'post',
494
+ url: loginModifyPassword,
495
+ data: data
496
+ })
497
+ .then((res) => {
498
+ this.submit = false;
499
+ if (res.rCode === 0) {
500
+ this.$message.success(res.msg);
501
+ this.$emit('success');
502
+ } else {
503
+ let msg = res.msg || '系统错误,请联系管理员!';
504
+ this.$message.error(msg);
505
+ this.disabled = false;
506
+ delete this.formData.verificationCode;
507
+ clearInterval(this.timer);
508
+ }
509
+ })
510
+ .catch((err) => {
511
+ if (err.message && err.message !== 'canceled') {
512
+ this.$message.error(err.message);
513
+ }
514
+ });
515
+ } else {
516
+ if (this.activeIndex == '6') {
517
+ data.targetType = 'SMS';
518
+ } else {
519
+ data.targetType = 'EMAIL';
520
+ }
521
+ util
522
+ .ajax({
523
+ method: 'post',
524
+ url: codeModifyPass,
525
+ data: data
526
+ })
527
+ .then((res) => {
528
+ this.submit = false;
529
+ if (res.rCode === 0) {
530
+ this.$message.success(res.msg);
531
+ this.$emit('success');
532
+ } else {
533
+ let msg = res.msg || '系统错误,请联系管理员!';
534
+ this.btnText = '获取验证码';
535
+ this.disabled = false;
536
+ clearInterval(this.timer);
537
+ delete this.formData.verificationCode;
538
+ this.$message.error(msg);
539
+ }
540
+ })
541
+ .catch((err) => {
542
+ if (err.message && err.message !== 'canceled') {
543
+ this.$message.error(err.message);
544
+ }
545
+ });
546
+ }
547
+ },
548
+ handleSelect(res) {
549
+ this.$refs.pwdForm.resetFields();
550
+ this.activeIndex = res;
551
+ this.btnText = '获取验证码';
552
+ this.disabled = false;
553
+ clearInterval(this.timer);
554
+ }
555
+ }
556
+ };
557
+ </script>