eoss-ui 0.7.90 → 0.7.92

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 (160) hide show
  1. package/lib/button-group.js +61 -0
  2. package/lib/button.js +63 -2
  3. package/lib/calogin.js +61 -0
  4. package/lib/checkbox-group.js +61 -0
  5. package/lib/data-table-form.js +61 -0
  6. package/lib/data-table.js +74 -8
  7. package/lib/date-picker.js +61 -0
  8. package/lib/dialog.js +67 -5
  9. package/lib/eoss-ui.common.js +888 -758
  10. package/lib/flow-group.js +99 -15
  11. package/lib/flow-list.js +157 -96
  12. package/lib/flow.js +223 -162
  13. package/lib/form.js +61 -0
  14. package/lib/handle-user.js +64 -3
  15. package/lib/handler.js +71 -10
  16. package/lib/icon.js +61 -0
  17. package/lib/index.js +1 -1
  18. package/lib/input-number.js +61 -0
  19. package/lib/input.js +61 -0
  20. package/lib/login.js +68 -6
  21. package/lib/main.js +475 -391
  22. package/lib/nav.js +61 -0
  23. package/lib/page.js +61 -0
  24. package/lib/pagination.js +64 -3
  25. package/lib/player.js +61 -0
  26. package/lib/qr-code.js +61 -0
  27. package/lib/radio-group.js +61 -0
  28. package/lib/retrial-auth.js +83 -6
  29. package/lib/select-ganged.js +61 -0
  30. package/lib/select.js +61 -0
  31. package/lib/selector-panel.js +61 -0
  32. package/lib/selector.js +61 -0
  33. package/lib/sizer.js +61 -0
  34. package/lib/steps.js +61 -0
  35. package/lib/switch.js +61 -0
  36. package/lib/table-form.js +61 -0
  37. package/lib/tabs.js +61 -0
  38. package/lib/theme-chalk/index.css +1 -1
  39. package/lib/theme-chalk/login.css +1 -1
  40. package/lib/tips.js +61 -0
  41. package/lib/tree-group.js +64 -3
  42. package/lib/tree.js +61 -0
  43. package/lib/upload.js +61 -0
  44. package/lib/utils/util.js +61 -0
  45. package/lib/wujie.js +61 -0
  46. package/lib/wxlogin.js +61 -0
  47. package/package.json +1 -1
  48. package/packages/.DS_Store +0 -0
  49. package/packages/button/src/main.vue +2 -2
  50. package/packages/button-group/src/main.vue +346 -346
  51. package/packages/calogin/.DS_Store +0 -0
  52. package/packages/calogin/src/main.vue +412 -412
  53. package/packages/clients/src/main.vue +151 -151
  54. package/packages/data-table/src/main.vue +8 -3
  55. package/packages/date-picker/.DS_Store +0 -0
  56. package/packages/date-picker/src/.DS_Store +0 -0
  57. package/packages/dialog/.DS_Store +0 -0
  58. package/packages/dialog/src/main.vue +4 -3
  59. package/packages/flow/.DS_Store +0 -0
  60. package/packages/flow/src/.DS_Store +0 -0
  61. package/packages/flow/src/component/Circulate.vue +417 -417
  62. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  63. package/packages/flow/src/component/CustomPreset.vue +324 -324
  64. package/packages/flow/src/component/FileList.vue +97 -97
  65. package/packages/flow/src/component/FreeCirculation.vue +244 -244
  66. package/packages/flow/src/component/Preset.vue +257 -257
  67. package/packages/flow/src/component/SendMsg.vue +242 -242
  68. package/packages/flow/src/component/SortFlow.vue +110 -110
  69. package/packages/flow/src/component/taskUnionExamine.vue +761 -761
  70. package/packages/flow/src/form.vue +123 -123
  71. package/packages/flow/src/freeStartFlow.vue +2855 -2855
  72. package/packages/flow/src/processForm.vue +1680 -1680
  73. package/packages/flow/src/processReject.vue +309 -309
  74. package/packages/flow/src/reset.vue +946 -946
  75. package/packages/flow/src/startTaskRead.vue +695 -695
  76. package/packages/flow/src/supervise.vue +159 -159
  77. package/packages/flow/src/table.vue +58 -58
  78. package/packages/flow-group/src/main.vue +750 -727
  79. package/packages/flow-list/.DS_Store +0 -0
  80. package/packages/flow-list/src/main.vue +2337 -2337
  81. package/packages/form/.DS_Store +0 -0
  82. package/packages/form/src/main.vue +3901 -3901
  83. package/packages/form/src/table.vue +1512 -1512
  84. package/packages/handle-user/src/main.vue +137 -137
  85. package/packages/handler/src/main.vue +10 -8
  86. package/packages/icon/.DS_Store +0 -0
  87. package/packages/icon/src/main.vue +104 -104
  88. package/packages/login/.DS_Store +0 -0
  89. package/packages/login/src/main.vue +2088 -2087
  90. package/packages/login/src/resetPassword.vue +557 -557
  91. package/packages/main/.DS_Store +0 -0
  92. package/packages/main/src/.DS_Store +0 -0
  93. package/packages/main/src/default/userinfo.vue +513 -503
  94. package/packages/main/src/main.vue +13 -19
  95. package/packages/main/src/public/online.vue +89 -89
  96. package/packages/main/src/public/search.vue +464 -464
  97. package/packages/main/src/public/settings.vue +273 -273
  98. package/packages/main/src/simplicity/apps.vue +388 -388
  99. package/packages/main/src/simplicity/avatar.vue +82 -82
  100. package/packages/main/src/simplicity/handler.vue +158 -158
  101. package/packages/main/src/simplicity/index.vue +2335 -2328
  102. package/packages/main/src/simplicity/menu-list.vue +135 -135
  103. package/packages/main/src/simplicity/message.vue +293 -293
  104. package/packages/main/src/simplicity/notice.vue +222 -222
  105. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  106. package/packages/main/src/simplicity/user.vue +259 -259
  107. package/packages/main/src/simplicity/userinfo.vue +408 -401
  108. package/packages/main/src/simplicityTop/apps.vue +388 -388
  109. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  110. package/packages/main/src/simplicityTop/handler.vue +215 -215
  111. package/packages/main/src/simplicityTop/index.vue +2620 -2618
  112. package/packages/main/src/simplicityTop/lists.vue +84 -84
  113. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  114. package/packages/main/src/simplicityTop/message.vue +293 -293
  115. package/packages/main/src/simplicityTop/notice.vue +222 -222
  116. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  117. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  118. package/packages/main/src/simplicityTop/user.vue +259 -259
  119. package/packages/main/src/simplicityTop/userinfo.vue +408 -401
  120. package/packages/menu/.DS_Store +0 -0
  121. package/packages/menu/src/main.vue +595 -595
  122. package/packages/nav/src/main.vue +351 -351
  123. package/packages/pagination/src/main.vue +4 -4
  124. package/packages/retrial-auth/src/main.vue +23 -4
  125. package/packages/select/.DS_Store +0 -0
  126. package/packages/selector/.DS_Store +0 -0
  127. package/packages/selector/src/main.vue +761 -761
  128. package/packages/selector-panel/.DS_Store +0 -0
  129. package/packages/selector-panel/src/main.vue +1036 -1036
  130. package/packages/selector-panel/src/selection.vue +174 -174
  131. package/packages/switch/src/main.vue +170 -170
  132. package/packages/theme-chalk/lib/index.css +1 -1
  133. package/packages/theme-chalk/lib/login.css +1 -1
  134. package/packages/theme-chalk/src/.DS_Store +0 -0
  135. package/packages/theme-chalk/src/data-table.scss +297 -297
  136. package/packages/theme-chalk/src/flow-list.scss +55 -55
  137. package/packages/theme-chalk/src/flow.scss +373 -373
  138. package/packages/theme-chalk/src/form.scss +501 -501
  139. package/packages/theme-chalk/src/handler.scss +148 -148
  140. package/packages/theme-chalk/src/icon.scss +3452 -3452
  141. package/packages/theme-chalk/src/login.scss +1006 -1006
  142. package/packages/theme-chalk/src/main.scss +664 -664
  143. package/packages/theme-chalk/src/menu.scss +224 -224
  144. package/packages/theme-chalk/src/selector.scss +114 -114
  145. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  146. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  147. package/packages/theme-chalk/src/tree.scss +165 -165
  148. package/packages/theme-chalk/src/upload.scss +172 -172
  149. package/packages/tips/src/main.vue +141 -141
  150. package/packages/toolbar/src/main.vue +430 -430
  151. package/packages/tree-group/src/main.vue +1 -1
  152. package/packages/upload/.DS_Store +0 -0
  153. package/packages/upload/src/main.vue +1344 -1344
  154. package/packages/wujie/src/main.vue +146 -146
  155. package/src/.DS_Store +0 -0
  156. package/src/config/api.js +348 -348
  157. package/src/index.js +163 -163
  158. package/src/utils/.DS_Store +0 -0
  159. package/src/utils/rules.js +18 -18
  160. package/src/utils/util.js +61 -0
@@ -1,401 +1,408 @@
1
- <template>
2
- <es-form
3
- ref="form"
4
- class="es-user-info"
5
- :validate-on-rule-change="false"
6
- :model="model"
7
- :contents="forms"
8
- :autocomplete="false"
9
- :rules="formRules"
10
- :events="events"
11
- :resetValue="false"
12
- @submit="handleFormSubmit"
13
- >
14
- <template slot="other">
15
- <slot></slot>
16
- </template>
17
- </es-form>
18
- </template>
19
- <script>
20
- import { updateUserInfo } from 'eoss-ui/src/config/api.js';
21
- import util from 'eoss-ui/src/utils/util';
22
-
23
- export default {
24
- name: 'UserInfo',
25
- props: {
26
- secret: {
27
- type: Boolean,
28
- default: true
29
- },
30
- contents: Array,
31
- value: {
32
- type: Object,
33
- default() {
34
- return {};
35
- }
36
- },
37
- rules: {
38
- type: Object,
39
- default() {
40
- return {};
41
- }
42
- },
43
- rules: {
44
- type: Object,
45
- default() {
46
- return {};
47
- }
48
- }
49
- },
50
- data() {
51
- return {
52
- model: this.value,
53
- defaultValues: JSON.parse(JSON.stringify(this.value)),
54
- events: {
55
- oldpassword: {
56
- change: () => {
57
- if (
58
- !this.model.repassword &&
59
- !this.model.oldpassword &&
60
- !this.model.repassword
61
- ) {
62
- this.$refs.form.clearValidate();
63
- }
64
- }
65
- },
66
- password: {
67
- change: () => {
68
- if (
69
- !this.model.repassword &&
70
- !this.model.oldpassword &&
71
- !this.model.repassword
72
- ) {
73
- this.$refs.form.clearValidate();
74
- }
75
- }
76
- },
77
- repassword: {
78
- change: () => {
79
- if (
80
- !this.model.repassword &&
81
- !this.model.oldpassword &&
82
- !this.model.repassword
83
- ) {
84
- this.$refs.form.clearValidate();
85
- }
86
- }
87
- }
88
- }
89
- };
90
- },
91
- computed: {
92
- formRules() {
93
- console.log(this.value);
94
- return {
95
- idCard: [
96
- {
97
- required:
98
- this.defaultValues.idCard !== null &&
99
- this.defaultValues.idCard !== undefined &&
100
- this.defaultValues.idCard !== '',
101
- message: '请输入身份证号',
102
- trigger: 'blur'
103
- },
104
- {
105
- pattern: new RegExp('(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)'),
106
- message: '身份证号不合法',
107
- trigger: 'blur'
108
- }
109
- ],
110
- phone: [
111
- {
112
- required:
113
- this.defaultValues.phone !== null &&
114
- this.defaultValues.phone !== undefined &&
115
- this.defaultValues.phone !== '',
116
- message: '请输入手机号',
117
- trigger: 'blur'
118
- },
119
- {
120
- pattern: new RegExp('^[1][3, 4, 5, 6, 7, 8, 9][0-9]{9}$'),
121
- message: '手机号不合法',
122
- trigger: 'blur'
123
- }
124
- ],
125
- email: [
126
- {
127
- required:
128
- this.defaultValues.email !== null &&
129
- this.defaultValues.email !== undefined &&
130
- this.defaultValues.email !== '',
131
- message: '请输入邮箱地址',
132
- trigger: 'blur'
133
- },
134
- {
135
- type: 'email',
136
- message: '请输入正确的邮箱地址',
137
- trigger: 'blur'
138
- }
139
- ],
140
- officeTel: [
141
- {
142
- required:
143
- this.defaultValues.officeTel !== null &&
144
- this.defaultValues.officeTel !== undefined &&
145
- this.defaultValues.officeTel !== '',
146
- message: '请输入座机号',
147
- trigger: 'blur'
148
- },
149
- {
150
- pattern: new RegExp(
151
- '^(?:\\(?0([1-9]\\d{1,2})\\)?[- ]?)?([2-9]\\d{6,7})$'
152
- ),
153
- message: '座机号不合法',
154
- trigger: 'blur'
155
- }
156
- ],
157
-
158
- oldpassword:
159
- this.model.password || this.model.repassword
160
- ? {
161
- required: true,
162
- message: '请输入旧密码'
163
- }
164
- : {},
165
-
166
- password: [
167
- this.model.repassword || this.model.oldpassword
168
- ? {
169
- required: true,
170
- message: '请输入新密码'
171
- }
172
- : {},
173
- ,
174
- {
175
- pattern: this.checkPassword,
176
- message: this.checkPasswordMsg
177
- ? this.checkPasswordMsg
178
- : '密码格式不合法',
179
- trigger: 'blur'
180
- }
181
- ],
182
- repassword: [
183
- this.model.password || this.model.oldpassword
184
- ? {
185
- required: true,
186
- message: '请再次输入新密码'
187
- }
188
- : {},
189
- { validator: this.repassword, trigger: 'blur' },
190
- this.checkPassword
191
- ? {
192
- pattern: this.checkPassword,
193
- message: this.checkPasswordMsg
194
- ? this.checkPasswordMsg
195
- : '密码格式不合法',
196
- trigger: 'blur'
197
- }
198
- : {}
199
- ],
200
- ...this.rules
201
- };
202
- },
203
- forms() {
204
- return this.contents
205
- ? this.contents
206
- : [
207
- {
208
- name: 'orgName',
209
- label: '所属机构',
210
- type: 'text',
211
- disabled: true,
212
- col: 6
213
- },
214
- {
215
- name: 'depName',
216
- label: '所属部门',
217
- type: 'text',
218
- disabled: true,
219
- col: 6
220
- },
221
- {
222
- name: 'idCard',
223
- label: '身份证号',
224
- type: 'text',
225
- disabled: true,
226
- maxlength: 18,
227
- col: 6
228
- },
229
- {
230
- name: 'outCode',
231
- label: '工号',
232
- type: 'text',
233
- disabled: true,
234
- col: 6
235
- },
236
- {
237
- name: 'phone',
238
- placeholder: '联系电话',
239
- label: '联系电话',
240
- type: 'text',
241
- col: 6
242
- },
243
- {
244
- name: 'email',
245
- placeholder: '电子邮箱',
246
- label: '电子邮箱',
247
- type: 'text',
248
- col: 6
249
- },
250
- {
251
- name: 'officeTel',
252
- placeholder: '座机号',
253
- label: '座机号',
254
- type: 'text',
255
- col: 6
256
- },
257
- {
258
- name: 'oldpassword',
259
- placeholder: '旧密码',
260
- label: '旧密码',
261
- type: 'text',
262
- col: 6
263
- },
264
- {
265
- name: 'password',
266
- placeholder: '新密码',
267
- label: '新密码',
268
- type: 'text',
269
- col: 6
270
- },
271
- {
272
- name: 'repassword',
273
- placeholder: '确认新密码',
274
- label: '确认新密码',
275
- type: 'text',
276
- col: 6
277
- }
278
- ];
279
- },
280
- formKey() {
281
- let keys = this.forms
282
- .filter((item) => {
283
- return (
284
- item.disabled !== true &&
285
- item.readonly !== true &&
286
- !['oldpassword', 'password', 'repassword'].includes(item.name)
287
- );
288
- })
289
- .map((item) => item.name);
290
- return keys;
291
- }
292
- },
293
- created() {},
294
- mounted() {},
295
- methods: {
296
- handleFormSubmit() {
297
- let initLogin = util.getStorage('initLogin');
298
- initLogin && (initLogin = JSON.parse(initLogin));
299
- let { oldpassword, password } = this.model;
300
- let data = {
301
- ...Object.fromEntries(
302
- Object.entries(this.model).filter(([key]) =>
303
- this.formKey.includes(key)
304
- )
305
- )
306
- };
307
- util
308
- .ajax({
309
- url: updateUserInfo,
310
- params: {
311
- ...data,
312
- oldPassword:
313
- this.secret && initLogin && initLogin.secret && oldpassword
314
- ? util.esmEncrypt({
315
- data: oldpassword,
316
- key: initLogin.secret
317
- })
318
- : oldpassword,
319
- password:
320
- this.secret && initLogin && initLogin.secret && password
321
- ? util.esmEncrypt({
322
- data: password,
323
- key: initLogin.secret
324
- })
325
- : password
326
- }
327
- })
328
- .then((res) => {
329
- if (res.rCode === 0) {
330
- if (oldpassword && password) {
331
- this.$confirm('密码修改成功,请重新登录!', '提示', {
332
- confirmButtonText: '确定',
333
- cancelButtonText: '取消',
334
- closeOnClickModal: false,
335
- type: 'warning'
336
- })
337
- .then(() => {
338
- const loginPage =
339
- util.getStorage('login') || util.getStorage('loginPage');
340
- try {
341
- if (loginPage) {
342
- let src;
343
- if (!util.startWith(loginPage, ['http', '/'], true)) {
344
- let pathname = util.win.top.location.pathname;
345
- if (pathname !== '/') {
346
- pathname = pathname.split('/');
347
- pathname.splice(pathname.length - 1);
348
- pathname = pathname.join('/');
349
- src = pathname + '/' + loginPage.replace('./', '');
350
- } else {
351
- src = pathname + loginPage.replace('./', '');
352
- }
353
- } else {
354
- src = loginPage;
355
- }
356
- util.win.top.location.href = src;
357
- } else if (
358
- util.win.top.location.href.indexOf('main.html') > -1
359
- ) {
360
- util.win.top.location.href = './login.html';
361
- } else {
362
- const hash = util.win.top.location.hash;
363
- if (hash) {
364
- const len = util.win.top.location.href.indexOf(hash);
365
- util.win.top.location.href =
366
- util.win.location.href.slice(0, len) + '#/login';
367
- } else {
368
- util.win.top.location.href = '/login.html';
369
- }
370
- }
371
- } catch (error) {
372
- util.win.top.postMessage({ type: 1 }, '*');
373
- }
374
- })
375
- .catch((e) => {});
376
- } else {
377
- this.$message({
378
- message: res.msg,
379
- type: 'success',
380
- onClose: () => {
381
- this.$emit('success', this.model);
382
- }
383
- });
384
- }
385
- } else {
386
- let msg = res.msg || '系统错误,请联系管理员!';
387
- this.$message.error(msg);
388
- }
389
- });
390
- },
391
- repassword(rule, value, callback) {
392
- if (this.model.oldpassword && this.model.password && value) {
393
- util.identical({ value: [value, this.model.password], callback });
394
- } else {
395
- callback();
396
- return true;
397
- }
398
- }
399
- }
400
- };
401
- </script>
1
+ <template>
2
+ <es-form
3
+ ref="form"
4
+ class="es-user-info"
5
+ :validate-on-rule-change="false"
6
+ :model="model"
7
+ :contents="forms"
8
+ :autocomplete="false"
9
+ :rules="formRules"
10
+ :events="events"
11
+ :resetValue="false"
12
+ @submit="handleFormSubmit"
13
+ >
14
+ <template slot="other">
15
+ <slot></slot>
16
+ </template>
17
+ </es-form>
18
+ </template>
19
+ <script>
20
+ import { updateUserInfo } from 'eoss-ui/src/config/api.js';
21
+ import util from 'eoss-ui/src/utils/util';
22
+
23
+ export default {
24
+ name: 'UserInfo',
25
+ props: {
26
+ secret: {
27
+ type: Boolean,
28
+ default: true
29
+ },
30
+ contents: Array,
31
+ value: {
32
+ type: Object,
33
+ default() {
34
+ return {};
35
+ }
36
+ },
37
+ rules: {
38
+ type: Object,
39
+ default() {
40
+ return {};
41
+ }
42
+ },
43
+ rules: {
44
+ type: Object,
45
+ default() {
46
+ return {};
47
+ }
48
+ }
49
+ },
50
+ data() {
51
+ return {
52
+ model: this.value,
53
+ defaultValues: JSON.parse(JSON.stringify(this.value)),
54
+ events: {
55
+ oldpassword: {
56
+ change: () => {
57
+ if (
58
+ !this.model.repassword &&
59
+ !this.model.oldpassword &&
60
+ !this.model.repassword
61
+ ) {
62
+ this.$refs.form.clearValidate();
63
+ }
64
+ }
65
+ },
66
+ password: {
67
+ change: () => {
68
+ if (
69
+ !this.model.repassword &&
70
+ !this.model.oldpassword &&
71
+ !this.model.repassword
72
+ ) {
73
+ this.$refs.form.clearValidate();
74
+ }
75
+ }
76
+ },
77
+ repassword: {
78
+ change: () => {
79
+ if (
80
+ !this.model.repassword &&
81
+ !this.model.oldpassword &&
82
+ !this.model.repassword
83
+ ) {
84
+ this.$refs.form.clearValidate();
85
+ }
86
+ }
87
+ }
88
+ }
89
+ };
90
+ },
91
+ computed: {
92
+ formRules() {
93
+ console.log(this.value);
94
+ return {
95
+ idCard: [
96
+ {
97
+ required:
98
+ this.defaultValues.idCard !== null &&
99
+ this.defaultValues.idCard !== undefined &&
100
+ this.defaultValues.idCard !== '',
101
+ message: '请输入身份证号',
102
+ trigger: 'blur'
103
+ },
104
+ {
105
+ pattern: new RegExp('(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)'),
106
+ message: '身份证号不合法',
107
+ trigger: 'blur'
108
+ }
109
+ ],
110
+ phone: [
111
+ {
112
+ required:
113
+ this.defaultValues.phone !== null &&
114
+ this.defaultValues.phone !== undefined &&
115
+ this.defaultValues.phone !== '',
116
+ message: '请输入手机号',
117
+ trigger: 'blur'
118
+ },
119
+ {
120
+ pattern: new RegExp('^[1][3, 4, 5, 6, 7, 8, 9][0-9]{9}$'),
121
+ message: '手机号不合法',
122
+ trigger: 'blur'
123
+ }
124
+ ],
125
+ email: [
126
+ {
127
+ required:
128
+ this.defaultValues.email !== null &&
129
+ this.defaultValues.email !== undefined &&
130
+ this.defaultValues.email !== '',
131
+ message: '请输入邮箱地址',
132
+ trigger: 'blur'
133
+ },
134
+ {
135
+ type: 'email',
136
+ message: '请输入正确的邮箱地址',
137
+ trigger: 'blur'
138
+ }
139
+ ],
140
+ officeTel: [
141
+ {
142
+ required:
143
+ this.defaultValues.officeTel !== null &&
144
+ this.defaultValues.officeTel !== undefined &&
145
+ this.defaultValues.officeTel !== '',
146
+ message: '请输入座机号',
147
+ trigger: 'blur'
148
+ },
149
+ {
150
+ pattern: new RegExp(
151
+ '^(?:\\(?0([1-9]\\d{1,2})\\)?[- ]?)?([2-9]\\d{6,7})$'
152
+ ),
153
+ message: '座机号不合法',
154
+ trigger: 'blur'
155
+ }
156
+ ],
157
+
158
+ oldpassword:
159
+ this.model.password || this.model.repassword
160
+ ? {
161
+ required: true,
162
+ message: '请输入旧密码'
163
+ }
164
+ : {},
165
+
166
+ password: [
167
+ this.model.repassword || this.model.oldpassword
168
+ ? {
169
+ required: true,
170
+ message: '请输入新密码'
171
+ }
172
+ : {},
173
+ ,
174
+ {
175
+ pattern: this.checkPassword,
176
+ message: this.checkPasswordMsg
177
+ ? this.checkPasswordMsg
178
+ : '密码格式不合法',
179
+ trigger: 'blur'
180
+ }
181
+ ],
182
+ repassword: [
183
+ this.model.password || this.model.oldpassword
184
+ ? {
185
+ required: true,
186
+ message: '请再次输入新密码'
187
+ }
188
+ : {},
189
+ { validator: this.repassword, trigger: 'blur' },
190
+ this.checkPassword
191
+ ? {
192
+ pattern: this.checkPassword,
193
+ message: this.checkPasswordMsg
194
+ ? this.checkPasswordMsg
195
+ : '密码格式不合法',
196
+ trigger: 'blur'
197
+ }
198
+ : {}
199
+ ],
200
+ ...this.rules
201
+ };
202
+ },
203
+ forms() {
204
+ return this.contents
205
+ ? this.contents
206
+ : [
207
+ {
208
+ name: 'orgName',
209
+ label: '所属机构',
210
+ type: 'text',
211
+ disabled: true,
212
+ col: 6
213
+ },
214
+ {
215
+ name: 'depName',
216
+ label: '所属部门',
217
+ type: 'text',
218
+ disabled: true,
219
+ col: 6
220
+ },
221
+ {
222
+ name: 'idCard',
223
+ label: '身份证号',
224
+ type: 'text',
225
+ disabled: true,
226
+ maxlength: 18,
227
+ col: 6
228
+ },
229
+ {
230
+ name: 'outCode',
231
+ label: '工号',
232
+ type: 'text',
233
+ disabled: true,
234
+ col: 6
235
+ },
236
+ {
237
+ name: 'phone',
238
+ placeholder: '联系电话',
239
+ label: '联系电话',
240
+ type: 'text',
241
+ col: 6
242
+ },
243
+ {
244
+ name: 'email',
245
+ placeholder: '电子邮箱',
246
+ label: '电子邮箱',
247
+ type: 'text',
248
+ col: 6
249
+ },
250
+ {
251
+ name: 'officeTel',
252
+ placeholder: '座机号',
253
+ label: '座机号',
254
+ type: 'text',
255
+ col: 6
256
+ },
257
+ {
258
+ name: 'oldpassword',
259
+ placeholder: '旧密码',
260
+ label: '旧密码',
261
+ type: 'text',
262
+ col: 6
263
+ },
264
+ {
265
+ name: 'password',
266
+ placeholder: '新密码',
267
+ label: '新密码',
268
+ type: 'text',
269
+ col: 6
270
+ },
271
+ {
272
+ name: 'repassword',
273
+ placeholder: '确认新密码',
274
+ label: '确认新密码',
275
+ type: 'text',
276
+ col: 6
277
+ }
278
+ ];
279
+ },
280
+ formKey() {
281
+ let keys = this.forms
282
+ .filter((item) => {
283
+ return (
284
+ item.disabled !== true &&
285
+ item.readonly !== true &&
286
+ !['oldpassword', 'password', 'repassword'].includes(item.name)
287
+ );
288
+ })
289
+ .map((item) => item.name);
290
+ return keys;
291
+ }
292
+ },
293
+ created() {},
294
+ mounted() {},
295
+ methods: {
296
+ handleFormSubmit() {
297
+ let initLogin = util.getStorage('initLogin');
298
+ initLogin && (initLogin = JSON.parse(initLogin));
299
+ let { oldpassword, password } = this.model;
300
+ let data = {
301
+ ...Object.fromEntries(
302
+ Object.entries(this.model).filter(([key]) =>
303
+ this.formKey.includes(key)
304
+ )
305
+ )
306
+ };
307
+ util
308
+ .ajax({
309
+ url: updateUserInfo,
310
+ params: {
311
+ ...data,
312
+ oldPassword:
313
+ this.secret && initLogin && initLogin.secret && oldpassword
314
+ ? util.esmEncrypt({
315
+ data: oldpassword,
316
+ key: initLogin.secret
317
+ })
318
+ : oldpassword,
319
+ password:
320
+ this.secret && initLogin && initLogin.secret && password
321
+ ? util.esmEncrypt({
322
+ data: password,
323
+ key: initLogin.secret
324
+ })
325
+ : password
326
+ }
327
+ })
328
+ .then((res) => {
329
+ if (res.rCode === 0) {
330
+ if (oldpassword && password) {
331
+ this.$confirm('密码修改成功,请重新登录!', '提示', {
332
+ confirmButtonText: '确定',
333
+ cancelButtonText: '取消',
334
+ closeOnClickModal: false,
335
+ type: 'warning'
336
+ })
337
+ .then(() => {
338
+ const loginPage =
339
+ util.getStorage('login') || util.getStorage('loginPage');
340
+ try {
341
+ const topWin = util.getWinTop();
342
+ if (loginPage) {
343
+ let src;
344
+ if (!util.startWith(loginPage, ['http', '/'], true)) {
345
+ let pathname = topWin.location.pathname;
346
+ if (pathname !== '/') {
347
+ pathname = pathname.split('/');
348
+ pathname.splice(pathname.length - 1);
349
+ pathname = pathname.join('/');
350
+ src = pathname + '/' + loginPage.replace('./', '');
351
+ } else {
352
+ src = pathname + loginPage.replace('./', '');
353
+ }
354
+ } else {
355
+ src = loginPage;
356
+ }
357
+ topWin.location.href = src;
358
+ } else if (topWin.location.href.indexOf('main.html') > -1) {
359
+ topWin.location.href = './login.html';
360
+ } else {
361
+ const hash = topWin.location.hash;
362
+ if (hash) {
363
+ const len = topWin.location.href.indexOf(hash);
364
+ topWin.location.href =
365
+ util.win.location.href.slice(0, len) + '#/login';
366
+ } else {
367
+ topWin.location.href = '/login.html';
368
+ }
369
+ }
370
+ } catch (error) {
371
+ console.warn('Failed to handle login redirect:', error);
372
+ try {
373
+ util.getWinTop().postMessage({ type: 1 }, '*');
374
+ } catch (postMessageError) {
375
+ console.warn(
376
+ 'Failed to send postMessage:',
377
+ postMessageError
378
+ );
379
+ }
380
+ }
381
+ })
382
+ .catch((e) => {});
383
+ } else {
384
+ this.$message({
385
+ message: res.msg,
386
+ type: 'success',
387
+ onClose: () => {
388
+ this.$emit('success', this.model);
389
+ }
390
+ });
391
+ }
392
+ } else {
393
+ let msg = res.msg || '系统错误,请联系管理员!';
394
+ this.$message.error(msg);
395
+ }
396
+ });
397
+ },
398
+ repassword(rule, value, callback) {
399
+ if (this.model.oldpassword && this.model.password && value) {
400
+ util.identical({ value: [value, this.model.password], callback });
401
+ } else {
402
+ callback();
403
+ return true;
404
+ }
405
+ }
406
+ }
407
+ };
408
+ </script>