eoss-ui 0.7.15 → 0.7.16

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