eoss-ui 0.7.22 → 0.7.24

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 (119) hide show
  1. package/lib/button-group.js +48 -7
  2. package/lib/button.js +48 -7
  3. package/lib/calogin.js +48 -7
  4. package/lib/checkbox-group.js +48 -7
  5. package/lib/data-table-form.js +48 -7
  6. package/lib/data-table.js +48 -7
  7. package/lib/date-picker.js +48 -7
  8. package/lib/dialog.js +48 -7
  9. package/lib/eoss-ui.common.js +608 -525
  10. package/lib/flow-group.js +70 -9
  11. package/lib/flow-list.js +129 -88
  12. package/lib/flow.js +340 -294
  13. package/lib/form.js +48 -7
  14. package/lib/handle-user.js +48 -7
  15. package/lib/handler.js +48 -7
  16. package/lib/icon.js +48 -7
  17. package/lib/index.js +1 -1
  18. package/lib/input-number.js +48 -7
  19. package/lib/input.js +48 -7
  20. package/lib/login.js +74 -16
  21. package/lib/main.js +176 -135
  22. package/lib/nav.js +48 -7
  23. package/lib/page.js +48 -7
  24. package/lib/pagination.js +48 -7
  25. package/lib/player.js +48 -7
  26. package/lib/qr-code.js +48 -7
  27. package/lib/radio-group.js +48 -7
  28. package/lib/retrial-auth.js +48 -7
  29. package/lib/select-ganged.js +48 -7
  30. package/lib/select.js +48 -7
  31. package/lib/selector-panel.js +48 -7
  32. package/lib/selector.js +48 -7
  33. package/lib/sizer.js +48 -7
  34. package/lib/steps.js +48 -7
  35. package/lib/switch.js +48 -7
  36. package/lib/table-form.js +48 -7
  37. package/lib/tabs.js +48 -7
  38. package/lib/theme-chalk/index.css +1 -1
  39. package/lib/theme-chalk/login.css +1 -1
  40. package/lib/tips.js +48 -7
  41. package/lib/tree-group.js +48 -7
  42. package/lib/tree.js +48 -7
  43. package/lib/upload.js +48 -7
  44. package/lib/utils/util.js +48 -7
  45. package/lib/wujie.js +48 -7
  46. package/lib/wxlogin.js +48 -7
  47. package/package.json +160 -160
  48. package/packages/.DS_Store +0 -0
  49. package/packages/button-group/src/main.vue +346 -346
  50. package/packages/calogin/.DS_Store +0 -0
  51. package/packages/calogin/src/main.vue +412 -412
  52. package/packages/data-table/src/column.vue +988 -988
  53. package/packages/data-table/src/main.vue +1831 -1831
  54. package/packages/date-picker/.DS_Store +0 -0
  55. package/packages/date-picker/src/.DS_Store +0 -0
  56. package/packages/flow/.DS_Store +0 -0
  57. package/packages/flow/src/.DS_Store +0 -0
  58. package/packages/flow/src/component/Circulate.vue +413 -413
  59. package/packages/flow/src/component/CommonOpinions.vue +373 -373
  60. package/packages/flow/src/component/FileList.vue +97 -97
  61. package/packages/flow/src/component/FreeCirculation.vue +240 -240
  62. package/packages/flow/src/component/SendMsg.vue +242 -242
  63. package/packages/flow/src/component/taskUnionExamine.vue +738 -738
  64. package/packages/flow/src/freeStartFlow.vue +2847 -2847
  65. package/packages/flow/src/main.vue +3843 -3843
  66. package/packages/flow/src/processForm.vue +1370 -1366
  67. package/packages/flow/src/processReject.vue +308 -308
  68. package/packages/flow/src/reset.vue +941 -941
  69. package/packages/flow/src/startTaskRead.vue +691 -691
  70. package/packages/flow/src/supervise.vue +159 -159
  71. package/packages/flow-group/src/main.vue +717 -696
  72. package/packages/flow-list/.DS_Store +0 -0
  73. package/packages/flow-list/src/main.vue +1770 -1770
  74. package/packages/form/.DS_Store +0 -0
  75. package/packages/form/src/main.vue +3901 -3901
  76. package/packages/form/src/table.vue +1512 -1512
  77. package/packages/handle-user/src/main.vue +137 -137
  78. package/packages/handler/src/main.vue +496 -496
  79. package/packages/icon/src/main.vue +104 -104
  80. package/packages/login/.DS_Store +0 -0
  81. package/packages/login/src/main.vue +2020 -1994
  82. package/packages/login/src/resetPassword.vue +557 -557
  83. package/packages/main/.DS_Store +0 -0
  84. package/packages/main/src/.DS_Store +0 -0
  85. package/packages/main/src/default/userinfo.vue +502 -502
  86. package/packages/main/src/public/search.vue +464 -464
  87. package/packages/main/src/simplicity/avatar.vue +82 -82
  88. package/packages/main/src/simplicity/handler.vue +263 -263
  89. package/packages/main/src/simplicity/index.vue +2125 -2125
  90. package/packages/main/src/simplicity/user.vue +259 -259
  91. package/packages/main/src/simplicity/userinfo.vue +398 -398
  92. package/packages/menu/.DS_Store +0 -0
  93. package/packages/select/.DS_Store +0 -0
  94. package/packages/select/src/main.vue +782 -782
  95. package/packages/selector/.DS_Store +0 -0
  96. package/packages/selector/src/main.vue +761 -761
  97. package/packages/selector-panel/.DS_Store +0 -0
  98. package/packages/selector-panel/src/main.vue +1027 -1027
  99. package/packages/selector-panel/src/selection.vue +170 -170
  100. package/packages/switch/src/main.vue +170 -170
  101. package/packages/theme-chalk/lib/index.css +1 -1
  102. package/packages/theme-chalk/lib/login.css +1 -1
  103. package/packages/theme-chalk/src/.DS_Store +0 -0
  104. package/packages/theme-chalk/src/flow.scss +351 -351
  105. package/packages/theme-chalk/src/form.scss +501 -501
  106. package/packages/theme-chalk/src/handler.scss +148 -148
  107. package/packages/theme-chalk/src/icon.scss +1817 -1817
  108. package/packages/theme-chalk/src/login.scss +987 -984
  109. package/packages/theme-chalk/src/selector.scss +92 -92
  110. package/packages/theme-chalk/src/simplicity.scss +1366 -1366
  111. package/packages/theme-chalk/src/upload.scss +172 -172
  112. package/packages/upload/.DS_Store +0 -0
  113. package/packages/upload/src/main.vue +1343 -1343
  114. package/src/.DS_Store +0 -0
  115. package/src/config/api.js +315 -315
  116. package/src/index.js +163 -163
  117. package/src/utils/.DS_Store +0 -0
  118. package/src/utils/rules.js +18 -18
  119. package/src/utils/util.js +49 -9
@@ -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>