eoss-ui 0.6.65 → 0.6.66

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 (223) hide show
  1. package/lib/calogin.js +204 -204
  2. package/lib/eoss-ui.common.js +765 -747
  3. package/lib/flow-list.js +81 -81
  4. package/lib/flow.js +311 -296
  5. package/lib/form.js +13 -10
  6. package/lib/index.js +1 -1
  7. package/lib/main.js +132 -132
  8. package/lib/qr-code.js +13 -13
  9. package/package.json +160 -160
  10. package/packages/button/index.js +5 -5
  11. package/packages/button/src/main.vue +418 -418
  12. package/packages/button-group/index.js +5 -5
  13. package/packages/button-group/src/main.vue +298 -298
  14. package/packages/calendar/index.js +5 -5
  15. package/packages/calogin/index.js +5 -5
  16. package/packages/calogin/src/main.vue +131 -131
  17. package/packages/calogin/src/plugin.js +748 -748
  18. package/packages/card/index.js +5 -5
  19. package/packages/card/src/main.vue +156 -156
  20. package/packages/cascader/index.js +5 -5
  21. package/packages/cascader/src/main.vue +168 -168
  22. package/packages/checkbox-group/index.js +5 -5
  23. package/packages/checkbox-group/src/main.vue +333 -333
  24. package/packages/clients/index.js +5 -5
  25. package/packages/clients/src/main.vue +151 -151
  26. package/packages/data-table/index.js +5 -5
  27. package/packages/data-table/src/children.vue +39 -39
  28. package/packages/data-table/src/column.vue +989 -989
  29. package/packages/data-table/src/main.vue +1822 -1822
  30. package/packages/data-table/src/sizer.vue +195 -195
  31. package/packages/data-table-form/index.js +5 -5
  32. package/packages/data-table-form/src/checkbox.vue +101 -101
  33. package/packages/data-table-form/src/colgroup.vue +17 -17
  34. package/packages/data-table-form/src/main.vue +181 -181
  35. package/packages/data-table-form/src/radio.vue +65 -65
  36. package/packages/data-table-form/src/table.vue +233 -233
  37. package/packages/data-table-form/src/tbody.vue +336 -336
  38. package/packages/data-table-form/src/thead.vue +68 -68
  39. package/packages/date-picker/index.js +5 -5
  40. package/packages/date-picker/src/main.vue +236 -236
  41. package/packages/dialog/index.js +5 -5
  42. package/packages/enable-drag/index.js +5 -5
  43. package/packages/enterprise/index.js +5 -5
  44. package/packages/enterprise/src/main.vue +66 -66
  45. package/packages/error-page/index.js +5 -5
  46. package/packages/error-page/src/main.vue +44 -44
  47. package/packages/flow/index.js +5 -5
  48. package/packages/flow/src/component/Circulate.vue +346 -332
  49. package/packages/flow/src/component/CommonOpinions.vue +346 -346
  50. package/packages/flow/src/component/CustomPreset.vue +322 -322
  51. package/packages/flow/src/component/FileList.vue +99 -99
  52. package/packages/flow/src/component/Preset.vue +255 -255
  53. package/packages/flow/src/component/SendMsg.vue +241 -241
  54. package/packages/flow/src/component/TimeLimit.vue +190 -190
  55. package/packages/flow/src/component/taskUnionExamine.vue +619 -619
  56. package/packages/flow/src/form.vue +121 -121
  57. package/packages/flow/src/freeStartFlow.vue +2843 -2843
  58. package/packages/flow/src/main.vue +3361 -3359
  59. package/packages/flow/src/processForm.vue +1091 -1091
  60. package/packages/flow/src/processReject.vue +294 -294
  61. package/packages/flow/src/reset.vue +900 -900
  62. package/packages/flow/src/startTaskRead.vue +659 -659
  63. package/packages/flow/src/supervise.vue +149 -149
  64. package/packages/flow/src/table.vue +58 -58
  65. package/packages/flow-group/index.js +5 -5
  66. package/packages/flow-group/src/main.vue +688 -688
  67. package/packages/flow-list/index.js +5 -5
  68. package/packages/flow-list/src/main.vue +1750 -1750
  69. package/packages/form/index.js +5 -5
  70. package/packages/form/src/main.vue +3581 -3581
  71. package/packages/form/src/table.vue +1426 -1426
  72. package/packages/handle-user/index.js +5 -5
  73. package/packages/handle-user/src/main.vue +138 -138
  74. package/packages/handler/index.js +5 -5
  75. package/packages/handler/src/main.vue +493 -493
  76. package/packages/icon/index.js +5 -5
  77. package/packages/icon/src/main.vue +101 -101
  78. package/packages/icons/index.js +5 -5
  79. package/packages/icons/src/main.vue +81 -81
  80. package/packages/input/index.js +5 -5
  81. package/packages/input/src/main.vue +356 -356
  82. package/packages/input-number/index.js +5 -5
  83. package/packages/input-number/src/main.vue +106 -106
  84. package/packages/label/index.js +5 -5
  85. package/packages/label/src/main.vue +457 -457
  86. package/packages/layout/index.js +5 -5
  87. package/packages/layout/src/item.vue +152 -152
  88. package/packages/layout/src/main.vue +31 -31
  89. package/packages/login/index.js +5 -5
  90. package/packages/login/src/main.vue +1988 -1988
  91. package/packages/login/src/resetPassword.vue +562 -562
  92. package/packages/main/index.js +5 -5
  93. package/packages/main/src/default/message.vue +249 -249
  94. package/packages/main/src/default/notice.vue +157 -157
  95. package/packages/main/src/default/userinfo.vue +503 -503
  96. package/packages/main/src/public/online.vue +89 -89
  97. package/packages/main/src/public/search.vue +462 -462
  98. package/packages/main/src/public/settings.vue +221 -221
  99. package/packages/main/src/simplicity/apps.vue +388 -388
  100. package/packages/main/src/simplicity/avatar.vue +83 -83
  101. package/packages/main/src/simplicity/handler.vue +259 -259
  102. package/packages/main/src/simplicity/index.vue +2089 -2089
  103. package/packages/main/src/simplicity/lists.vue +84 -84
  104. package/packages/main/src/simplicity/menu-list.vue +135 -135
  105. package/packages/main/src/simplicity/message.vue +259 -259
  106. package/packages/main/src/simplicity/notice.vue +190 -190
  107. package/packages/main/src/simplicity/router-page.vue +45 -45
  108. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  109. package/packages/main/src/simplicity/user.vue +257 -257
  110. package/packages/main/src/simplicity/userinfo.vue +312 -312
  111. package/packages/menu/index.js +5 -5
  112. package/packages/menu/src/main.vue +584 -584
  113. package/packages/nav/index.js +5 -5
  114. package/packages/nav/src/main.vue +351 -351
  115. package/packages/notify/index.js +5 -5
  116. package/packages/notify/src/main.vue +538 -538
  117. package/packages/page/index.js +5 -5
  118. package/packages/page/src/main.vue +167 -167
  119. package/packages/pagination/index.js +5 -5
  120. package/packages/pagination/src/main.vue +96 -96
  121. package/packages/player/index.js +5 -5
  122. package/packages/player/src/main.vue +194 -194
  123. package/packages/qr-code/index.js +5 -5
  124. package/packages/qr-code/src/main.vue +170 -170
  125. package/packages/radio-group/index.js +6 -6
  126. package/packages/radio-group/src/main.vue +319 -319
  127. package/packages/retrial-auth/index.js +5 -5
  128. package/packages/retrial-auth/src/main.vue +280 -280
  129. package/packages/select/index.js +5 -5
  130. package/packages/select/src/main.vue +778 -778
  131. package/packages/select-ganged/index.js +5 -5
  132. package/packages/select-ganged/src/main.vue +724 -724
  133. package/packages/selector/index.js +5 -5
  134. package/packages/selector/src/main.vue +687 -687
  135. package/packages/selector-panel/index.js +5 -5
  136. package/packages/selector-panel/src/main.vue +1027 -1027
  137. package/packages/selector-panel/src/selection.vue +177 -177
  138. package/packages/selector-panel/src/tree.vue +129 -129
  139. package/packages/sizer/index.js +5 -5
  140. package/packages/sizer/src/main.vue +254 -254
  141. package/packages/steps/index.js +5 -5
  142. package/packages/steps/src/main.vue +181 -181
  143. package/packages/switch/index.js +5 -5
  144. package/packages/switch/src/main.vue +154 -154
  145. package/packages/table-form/index.js +5 -5
  146. package/packages/tabs/index.js +5 -5
  147. package/packages/tabs/src/main.vue +788 -788
  148. package/packages/tabs-panel/index.js +5 -5
  149. package/packages/tabs-panel/src/main.vue +29 -29
  150. package/packages/theme-chalk/src/base.scss +261 -261
  151. package/packages/theme-chalk/src/button-group.scss +176 -176
  152. package/packages/theme-chalk/src/button.scss +24 -24
  153. package/packages/theme-chalk/src/calendar.scss +113 -113
  154. package/packages/theme-chalk/src/card.scss +99 -99
  155. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  156. package/packages/theme-chalk/src/clients.scss +87 -87
  157. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  158. package/packages/theme-chalk/src/data-table.scss +293 -293
  159. package/packages/theme-chalk/src/date-picker.scss +7 -7
  160. package/packages/theme-chalk/src/dialog.scss +77 -77
  161. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  162. package/packages/theme-chalk/src/enterprise.scss +5 -5
  163. package/packages/theme-chalk/src/error-page.scss +18 -18
  164. package/packages/theme-chalk/src/flow-group.scss +110 -110
  165. package/packages/theme-chalk/src/flow-list.scss +39 -39
  166. package/packages/theme-chalk/src/flow.scss +343 -343
  167. package/packages/theme-chalk/src/form.scss +496 -496
  168. package/packages/theme-chalk/src/handle-user.scss +40 -40
  169. package/packages/theme-chalk/src/handler.scss +143 -143
  170. package/packages/theme-chalk/src/icon.scss +1792 -1792
  171. package/packages/theme-chalk/src/icons.scss +99 -99
  172. package/packages/theme-chalk/src/input.scss +9 -9
  173. package/packages/theme-chalk/src/label.scss +24 -24
  174. package/packages/theme-chalk/src/layout.scss +46 -46
  175. package/packages/theme-chalk/src/login.scss +981 -981
  176. package/packages/theme-chalk/src/main.scss +663 -663
  177. package/packages/theme-chalk/src/menu.scss +222 -222
  178. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  179. package/packages/theme-chalk/src/nav.scss +111 -111
  180. package/packages/theme-chalk/src/page.scss +3 -3
  181. package/packages/theme-chalk/src/pagination.scss +29 -29
  182. package/packages/theme-chalk/src/player.scss +9 -9
  183. package/packages/theme-chalk/src/qr-code.scss +17 -17
  184. package/packages/theme-chalk/src/radio-group.scss +9 -9
  185. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  186. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  187. package/packages/theme-chalk/src/select.scss +8 -8
  188. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  189. package/packages/theme-chalk/src/selector.scss +91 -91
  190. package/packages/theme-chalk/src/simplicity.scss +1355 -1355
  191. package/packages/theme-chalk/src/sizer.scss +36 -36
  192. package/packages/theme-chalk/src/steps.scss +88 -88
  193. package/packages/theme-chalk/src/switch.scss +3 -3
  194. package/packages/theme-chalk/src/table-form.scss +1 -1
  195. package/packages/theme-chalk/src/tabs.scss +87 -87
  196. package/packages/theme-chalk/src/tips.scss +7 -7
  197. package/packages/theme-chalk/src/toolbar.scss +179 -179
  198. package/packages/theme-chalk/src/tree-group.scss +72 -72
  199. package/packages/theme-chalk/src/tree.scss +165 -165
  200. package/packages/theme-chalk/src/upload.scss +168 -168
  201. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  202. package/packages/tips/index.js +5 -5
  203. package/packages/tips/src/main.vue +141 -141
  204. package/packages/toolbar/index.js +5 -5
  205. package/packages/toolbar/src/main.vue +430 -430
  206. package/packages/tree/index.js +5 -5
  207. package/packages/tree-group/index.js +5 -5
  208. package/packages/upload/index.js +5 -5
  209. package/packages/upload/src/main.vue +1347 -1347
  210. package/packages/upload/src/picture.js +15 -15
  211. package/packages/wujie/index.js +5 -5
  212. package/packages/wujie/src/main.vue +145 -145
  213. package/packages/wxlogin/index.js +5 -5
  214. package/packages/wxlogin/src/main.vue +128 -128
  215. package/src/config/api.js +290 -290
  216. package/src/config/image.js +2 -2
  217. package/src/index.js +1 -1
  218. package/src/utils/bus.js +3 -3
  219. package/src/utils/date-util.js +312 -312
  220. package/src/utils/http.js +50 -50
  221. package/src/utils/rules.js +18 -18
  222. package/src/utils/store.js +21 -21
  223. package/src/utils/webSocket.js +107 -107
@@ -1,562 +1,562 @@
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: '6',
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
- types.forEach((item) => {
372
- if (item != '0' && (item == '11' || item == '6')) {
373
- this.activeIndex = item;
374
- return;
375
- }
376
- });
377
- }
378
- } else {
379
- this.activeIndex = this.operationCheckCode ? '0' : '';
380
- }
381
- },
382
- destroyed() {
383
- clearInterval(this.timer);
384
- },
385
- methods: {
386
- // 密码再次验证
387
- reregExpValidate(rule, value, callback) {
388
- if (value != this.formData.password) {
389
- callback(new Error('两次密码不一致'));
390
- } else {
391
- callback();
392
- }
393
- },
394
- getInitModifyPassword() {
395
- util
396
- .ajax({
397
- url: initModifyPassword
398
- })
399
- .then((res) => {
400
- if (res.rCode === 0) {
401
- const results = JSON.parse(JSON.stringify(res.results));
402
- if (results.checkPassword) {
403
- this.checkPassword = new RegExp(results.checkPassword);
404
- }
405
- if (results.checkPasswordMsg) {
406
- this.checkPasswordMsg = results.checkPasswordMsg;
407
- }
408
- } else {
409
- let msg = res.msg || '系统错误,请联系管理员!';
410
- this.$message.error(msg);
411
- }
412
- })
413
- .catch((err) => {
414
- if (err.message && err.message !== 'canceled') {
415
- this.$message.error(err.message);
416
- }
417
- });
418
- },
419
- getVerificationCode() {
420
- if (this.countdown) {
421
- return false;
422
- }
423
- if (!this.formData.target) {
424
- this.$refs.pwdForm.validateField('target');
425
- return false;
426
- } else {
427
- let flag = false;
428
- this.$refs.pwdForm.validateField('target', (res) => {
429
- flag = res != '';
430
- });
431
- if (flag) {
432
- return false;
433
- }
434
- let data = {
435
- target: this.formData.target,
436
- targetType: this.activeIndex == '6' ? 'SMS' : 'EMAIL'
437
- };
438
- this.countdown = 60;
439
- this.getCode(data);
440
- this.timer = setInterval(() => {
441
- if (this.countdown > 0) {
442
- this.countdown--;
443
- this.disabled = true;
444
- this.btnText = '重新获取' + this.countdown + 's';
445
- } else {
446
- this.btnText = '获取验证码';
447
- this.disabled = false;
448
- clearInterval(this.timer);
449
- }
450
- }, 1000);
451
- }
452
- },
453
- getCode(params) {
454
- util
455
- .ajax({
456
- url: getModifyPassCode,
457
- params: params
458
- })
459
- .then((res) => {
460
- if (res.rCode === 0) {
461
- this.$message.success(res.msg);
462
- } else {
463
- let msg = res.msg || '系统错误,请联系管理员!';
464
- if (res.rCode === 2) {
465
- this.btnText = '获取验证码';
466
- this.disabled = false;
467
- this.countdown = 0;
468
- clearInterval(this.timer);
469
- }
470
- this.$message.error(msg);
471
- }
472
- })
473
- .catch((err) => {
474
- if (err.message && err.message !== 'canceled') {
475
- this.$message.error(err.message);
476
- }
477
- });
478
- },
479
- handleSubmit(res) {
480
- this.submit = true;
481
- let { repassword, ...data } = res;
482
- if (this.secret && this.isEncrypt) {
483
- data.password = util.esmEncrypt({
484
- data: data.password,
485
- key: this.secret
486
- });
487
- if (data.oldPassword) {
488
- data.oldPassword = util.esmEncrypt({
489
- data: data.oldPassword,
490
- key: this.secret
491
- });
492
- }
493
- }
494
- if (this.activeIndex == '0') {
495
- data.operationCheckCode = this.operationCheckCode;
496
- util
497
- .ajax({
498
- method: 'post',
499
- url: loginModifyPassword,
500
- data: data
501
- })
502
- .then((res) => {
503
- this.submit = false;
504
- if (res.rCode === 0) {
505
- this.$message.success(res.msg);
506
- this.$emit('success');
507
- } else {
508
- let msg = res.msg || '系统错误,请联系管理员!';
509
- this.$message.error(msg);
510
- this.disabled = false;
511
- delete this.formData.verificationCode;
512
- clearInterval(this.timer);
513
- }
514
- })
515
- .catch((err) => {
516
- if (err.message && err.message !== 'canceled') {
517
- this.$message.error(err.message);
518
- }
519
- });
520
- } else {
521
- if (this.activeIndex == '6') {
522
- data.targetType = 'SMS';
523
- } else {
524
- data.targetType = 'EMAIL';
525
- }
526
- util
527
- .ajax({
528
- method: 'post',
529
- url: codeModifyPass,
530
- data: data
531
- })
532
- .then((res) => {
533
- this.submit = false;
534
- if (res.rCode === 0) {
535
- this.$message.success(res.msg);
536
- this.$emit('success');
537
- } else {
538
- let msg = res.msg || '系统错误,请联系管理员!';
539
- this.btnText = '获取验证码';
540
- this.disabled = false;
541
- clearInterval(this.timer);
542
- delete this.formData.verificationCode;
543
- this.$message.error(msg);
544
- }
545
- })
546
- .catch((err) => {
547
- if (err.message && err.message !== 'canceled') {
548
- this.$message.error(err.message);
549
- }
550
- });
551
- }
552
- },
553
- handleSelect(res) {
554
- this.$refs.pwdForm.resetFields();
555
- this.activeIndex = res;
556
- this.btnText = '获取验证码';
557
- this.disabled = false;
558
- clearInterval(this.timer);
559
- }
560
- }
561
- };
562
- </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: '6',
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
+ types.forEach((item) => {
372
+ if (item != '0' && (item == '11' || item == '6')) {
373
+ this.activeIndex = item;
374
+ return;
375
+ }
376
+ });
377
+ }
378
+ } else {
379
+ this.activeIndex = this.operationCheckCode ? '0' : '';
380
+ }
381
+ },
382
+ destroyed() {
383
+ clearInterval(this.timer);
384
+ },
385
+ methods: {
386
+ // 密码再次验证
387
+ reregExpValidate(rule, value, callback) {
388
+ if (value != this.formData.password) {
389
+ callback(new Error('两次密码不一致'));
390
+ } else {
391
+ callback();
392
+ }
393
+ },
394
+ getInitModifyPassword() {
395
+ util
396
+ .ajax({
397
+ url: initModifyPassword
398
+ })
399
+ .then((res) => {
400
+ if (res.rCode === 0) {
401
+ const results = JSON.parse(JSON.stringify(res.results));
402
+ if (results.checkPassword) {
403
+ this.checkPassword = new RegExp(results.checkPassword);
404
+ }
405
+ if (results.checkPasswordMsg) {
406
+ this.checkPasswordMsg = results.checkPasswordMsg;
407
+ }
408
+ } else {
409
+ let msg = res.msg || '系统错误,请联系管理员!';
410
+ this.$message.error(msg);
411
+ }
412
+ })
413
+ .catch((err) => {
414
+ if (err.message && err.message !== 'canceled') {
415
+ this.$message.error(err.message);
416
+ }
417
+ });
418
+ },
419
+ getVerificationCode() {
420
+ if (this.countdown) {
421
+ return false;
422
+ }
423
+ if (!this.formData.target) {
424
+ this.$refs.pwdForm.validateField('target');
425
+ return false;
426
+ } else {
427
+ let flag = false;
428
+ this.$refs.pwdForm.validateField('target', (res) => {
429
+ flag = res != '';
430
+ });
431
+ if (flag) {
432
+ return false;
433
+ }
434
+ let data = {
435
+ target: this.formData.target,
436
+ targetType: this.activeIndex == '6' ? 'SMS' : 'EMAIL'
437
+ };
438
+ this.countdown = 60;
439
+ this.getCode(data);
440
+ this.timer = setInterval(() => {
441
+ if (this.countdown > 0) {
442
+ this.countdown--;
443
+ this.disabled = true;
444
+ this.btnText = '重新获取' + this.countdown + 's';
445
+ } else {
446
+ this.btnText = '获取验证码';
447
+ this.disabled = false;
448
+ clearInterval(this.timer);
449
+ }
450
+ }, 1000);
451
+ }
452
+ },
453
+ getCode(params) {
454
+ util
455
+ .ajax({
456
+ url: getModifyPassCode,
457
+ params: params
458
+ })
459
+ .then((res) => {
460
+ if (res.rCode === 0) {
461
+ this.$message.success(res.msg);
462
+ } else {
463
+ let msg = res.msg || '系统错误,请联系管理员!';
464
+ if (res.rCode === 2) {
465
+ this.btnText = '获取验证码';
466
+ this.disabled = false;
467
+ this.countdown = 0;
468
+ clearInterval(this.timer);
469
+ }
470
+ this.$message.error(msg);
471
+ }
472
+ })
473
+ .catch((err) => {
474
+ if (err.message && err.message !== 'canceled') {
475
+ this.$message.error(err.message);
476
+ }
477
+ });
478
+ },
479
+ handleSubmit(res) {
480
+ this.submit = true;
481
+ let { repassword, ...data } = res;
482
+ if (this.secret && this.isEncrypt) {
483
+ data.password = util.esmEncrypt({
484
+ data: data.password,
485
+ key: this.secret
486
+ });
487
+ if (data.oldPassword) {
488
+ data.oldPassword = util.esmEncrypt({
489
+ data: data.oldPassword,
490
+ key: this.secret
491
+ });
492
+ }
493
+ }
494
+ if (this.activeIndex == '0') {
495
+ data.operationCheckCode = this.operationCheckCode;
496
+ util
497
+ .ajax({
498
+ method: 'post',
499
+ url: loginModifyPassword,
500
+ data: data
501
+ })
502
+ .then((res) => {
503
+ this.submit = false;
504
+ if (res.rCode === 0) {
505
+ this.$message.success(res.msg);
506
+ this.$emit('success');
507
+ } else {
508
+ let msg = res.msg || '系统错误,请联系管理员!';
509
+ this.$message.error(msg);
510
+ this.disabled = false;
511
+ delete this.formData.verificationCode;
512
+ clearInterval(this.timer);
513
+ }
514
+ })
515
+ .catch((err) => {
516
+ if (err.message && err.message !== 'canceled') {
517
+ this.$message.error(err.message);
518
+ }
519
+ });
520
+ } else {
521
+ if (this.activeIndex == '6') {
522
+ data.targetType = 'SMS';
523
+ } else {
524
+ data.targetType = 'EMAIL';
525
+ }
526
+ util
527
+ .ajax({
528
+ method: 'post',
529
+ url: codeModifyPass,
530
+ data: data
531
+ })
532
+ .then((res) => {
533
+ this.submit = false;
534
+ if (res.rCode === 0) {
535
+ this.$message.success(res.msg);
536
+ this.$emit('success');
537
+ } else {
538
+ let msg = res.msg || '系统错误,请联系管理员!';
539
+ this.btnText = '获取验证码';
540
+ this.disabled = false;
541
+ clearInterval(this.timer);
542
+ delete this.formData.verificationCode;
543
+ this.$message.error(msg);
544
+ }
545
+ })
546
+ .catch((err) => {
547
+ if (err.message && err.message !== 'canceled') {
548
+ this.$message.error(err.message);
549
+ }
550
+ });
551
+ }
552
+ },
553
+ handleSelect(res) {
554
+ this.$refs.pwdForm.resetFields();
555
+ this.activeIndex = res;
556
+ this.btnText = '获取验证码';
557
+ this.disabled = false;
558
+ clearInterval(this.timer);
559
+ }
560
+ }
561
+ };
562
+ </script>