eoss-ui 0.6.99 → 0.7.10

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