cloud-web-corejs 1.0.54-dev.315 → 1.0.54-dev.317

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 (24) hide show
  1. package/package.json +1 -1
  2. package/src/components/baseInputExport/mixins.js +386 -1
  3. package/src/components/wf/add0pinionButton.vue +102 -0
  4. package/src/components/wf/content.vue +18 -5
  5. package/src/components/wf/mixins/setCandidateButton.js +161 -0
  6. package/src/components/wf/mixins/setCandidateDialog.js +1 -1
  7. package/src/components/wf/mixins/setCandidateDialog2.js +6 -0
  8. package/src/components/wf/setCandidateButton.vue +40 -0
  9. package/src/components/wf/setCandidateDialog2.vue +3 -228
  10. package/src/components/wf/wf.js +2068 -1
  11. package/src/components/wf/wfTaskUserRangeDialog.vue +9 -1
  12. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +1 -1
  13. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +108 -0
  14. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +8 -0
  15. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +91 -0
  16. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +2 -1
  17. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +42 -0
  18. package/src/components/xform/lang/zh-CN.js +1 -0
  19. package/src/views/user/form/vform/render.vue +1 -1
  20. package/src/views/user/home/default2.vue +1035 -0
  21. package/src/views/user/home/taili/index.vue +1024 -0
  22. package/src/views/user/notify_message/dialog.vue +22 -7
  23. package/src/views/user/outLink/form_view.vue +211 -211
  24. package/src/views/user/user/list.vue +582 -582
@@ -1,582 +1,582 @@
1
- <template>
2
- <div id="containt">
3
- <el-tabs v-model="activeName" class="tab-box">
4
- <el-tab-pane :label="$t1('常规')" name="first">
5
- <editView v-if="showEdit" visible-key="showEdit" :_dataId.sync="dataId" :parent-target="_self"
6
- @reload="$reloadHandle" :userType="userType" :flag="flag"></editView>
7
- </el-tab-pane>
8
- <el-tab-pane :label="$t1('列表')" name="second">
9
- <div class="tree-box fl">
10
- <div class="tit" @click="clearNodeClick"><b>{{ $t1('机构分类') }}</b></div>
11
- <el-tree
12
- :props="defaultProps"
13
- :load="loadNode"
14
- node-key="id"
15
- ref="tree"
16
- highlight-current
17
- lazy
18
- :expand-on-click-node="false"
19
- @node-click="handleNodeClick"
20
- class="tree-list"
21
- icon-class="el-icon-arrow-down"
22
- ></el-tree>
23
- </div>
24
- <label id="labBtn">
25
- <div class="icon">
26
- <i class="el-icon-more"></i>
27
- <i class="el-icon-more"></i>
28
- </div>
29
- </label>
30
- <div class="main-right fr" style="padding-left:6px;">
31
- <div class="grid-height">
32
- <vxe-grid
33
- id="table-m1"
34
- ref="table-m1"
35
- :auto-resize="true"
36
- v-bind="vxeOption"
37
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
38
- @custom="$vxeTableUtil.customHandle"
39
- >
40
- <template #form>
41
- <tableForm :formData.sync="formData" :advancedFormData.sync="advancedFormData"
42
- @searchEvent="searchEvent" @resetEvent="resetEvent">
43
- <template #buttonLeft>
44
- <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openEditDialog">
45
- {{ $t1('新增') }}
46
- </vxe-button>
47
- <base-table-export :option="{ title: $t1('账户导出'), targetRef: 'table-m1'}"
48
- :parent-target="_self"/>
49
- <vxe-button status="primary" class="button-sty" icon="el-icon-download" @click="importExcel">
50
- {{ $t1('导入') }}
51
- </vxe-button>
52
- <base-input-export :option="exportOption" :parent-target="_self"/>
53
- </template>
54
- <template #buttonRight>
55
- <vxe-button icon="el-icon-brush" class="button-sty" @click="resetEvent" type="text" status="primary"
56
- plain>{{ $t1('重置') }}
57
- </vxe-button>
58
- <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">
59
- {{ $t1('搜索') }}
60
- </vxe-button>
61
- </template>
62
- </tableForm>
63
- </template>
64
- </vxe-grid>
65
- </div>
66
- </div>
67
- </el-tab-pane>
68
- </el-tabs>
69
- </div>
70
- </template>
71
-
72
- <script>
73
- import editView from './form_edit.vue';
74
- import {treeScollx} from '@base/utils/global.js';
75
- import tableForm from "@base/components/table/tableForm";
76
-
77
- export default {
78
- name: 'user:form_list',
79
- props: {
80
- userType: {
81
- type: Number
82
- },
83
- flag: String
84
- },
85
- components: {
86
- tableForm,
87
- editView: () => import('./edit.vue')
88
- },
89
- created() {
90
-
91
- },
92
- activated() {
93
- // this.initTableList();
94
- },
95
- async mounted() {
96
- treeScollx({target: this, type: 'default'});
97
- await this.initOutUserRoleCode();
98
- this.getRoleList();
99
- this.initTableList();
100
- },
101
- data() {
102
- return {
103
- exportOption: {
104
- prefix: USER_PREFIX,
105
- tableRef: 'table-m1',
106
- title: this.$t1('用户'),
107
- codes: ["USEREXCEL", "USERPDF", "USERPRINT", "USERHIPRINT", "USERJDPRINT", "USERPDDPRINT", "USERVIPPRINT"],
108
- onBeforePrint: (done, {etCode, etType}) => {
109
- /*etType: 2 菜鸟打印,3 网页打印,6 京东打印*/
110
- done();
111
- },
112
- onAfterPrint: ({etCode, etType}, close) => {
113
- /*etType: 2 菜鸟打印,3 网页打印,6 京东打印*/
114
- /*close();//关闭弹框*/
115
- }
116
- },
117
- printOption: {
118
- prefix: USER_PREFIX,
119
- tableRef: 'table-m1',
120
- param: {
121
- type: 'print',
122
- code: 'USERPRINT',
123
- param: 'tableDefault'
124
- }
125
- },
126
- showEdit: false,
127
- activeName: 'second',
128
- showUpload: true,
129
- uploadSize: 10,
130
- value10: '',
131
- dataId: '',
132
- tp: false,
133
- showUserDialog: false,
134
- nickName: 'dd',
135
- formData: {saleOrgName: null, roleCodes: []},
136
- vxeOption: {
137
- className: 'list-table'
138
- },
139
- defaultProps: {
140
- label: 'name', //这里是树结构中需显示的数据(即接口返回的需展示在页面上的参数)
141
- children: [],
142
- isLeaf: 'leaf'
143
- },
144
- showAdvancedSearch: false,
145
- advancedFormData: {},
146
- roleList: [],
147
- distributorCode: 'distributor',
148
- outUserCodes: []
149
- };
150
- },
151
- methods: {
152
- searchEvent() {
153
- this.$refs['table-m1'].commitProxy('reload');
154
- },
155
- resetEvent() {
156
- this.formData = {};
157
- this.advancedFormData = {};
158
- this.$refs.tree.setCurrentKey();
159
- this.$refs['table-m1'].commitProxy('reload');
160
- },
161
- openEditDialog(id) {
162
- this.dataId = !id || typeof id == 'object' ? 0 : id;
163
- this.activeName = 'first';
164
- this.$openEditView('showEdit');
165
- },
166
- clearNodeClick() {
167
- this.formData.saleOrgId = '';
168
- this.formData.saleOrgName = '';
169
- this.$refs.tree.setCurrentKey();
170
- this.searchEvent();
171
- },
172
- handleNodeClick(data, node, v) {
173
- this.$set(this.formData, 'saleOrgId', data.id);
174
- this.$set(this.formData, 'saleOrgName', data.name);
175
- this.$forceUpdate();
176
- this.searchEvent();
177
- },
178
- // 异步树叶子节点懒加载逻辑
179
- loadNode(node, resolve) {
180
- let id = node && node.data && node.data.id ? node.data.id || '' : '';
181
- let param = {enabled: true};
182
- let url = !id ? USER_PREFIX + '/sale_org/getAllList' : USER_PREFIX + '/sale_org/getChildren';
183
- this.$http({
184
- url: url,
185
- method: 'post',
186
- data: {
187
- parent: id,
188
- enabled: true
189
- },
190
- success: res => {
191
- res.objx.forEach(value => {
192
- value.leaf = !value.hasChild;
193
- });
194
- if (node.level === 0) {
195
- if (res.objx.length > 0 && res.objx[0].isParent) {
196
- this.$nextTick(() => {
197
- let nodedata = node.childNodes[0];
198
- nodedata.expanded = true;
199
- nodedata.loadData();
200
- });
201
- }
202
- }
203
- resolve(res.objx);
204
- }
205
- });
206
- },
207
- initTableList() {
208
- let otherColumns = [];
209
- let userType = this.userType
210
- if(userType==1){
211
-
212
- }else if(userType==2){
213
- otherColumns.push(...[
214
- {
215
- field: 'signatoryName',
216
- title: this.$t1('签约人'),
217
- width: 150
218
- },
219
- {
220
- field: 'signatoryMobile',
221
- title: this.$t1('签约人电话'),
222
- width: 150
223
- },
224
- ])
225
- }
226
- let tableOption = {
227
- vue: this,
228
- tableRef: 'table-m1',
229
- tableName: 'basic_user_list-m11',
230
- path: USER_PREFIX + '/user/listAllPage',
231
- param: () => {
232
- let formData = {
233
- ...this.formData,
234
- ...this.advancedFormData
235
- };
236
- let outUserCodes = this.outUserCodes;
237
- if (this.userType == 1) {
238
- //组织用户
239
- formData.neRoleCodes = [...outUserCodes];
240
- } else if (this.userType == 2) {
241
- //外部用户
242
- if (!formData.roleCodes || !formData.roleCodes.length) {
243
- formData.roleCodes = [...outUserCodes];
244
- }
245
- }
246
- return formData;
247
- },
248
- columns: [
249
- {
250
- type: 'checkbox',
251
- width: 48,
252
- resizable: false,
253
- fixed: 'left'
254
- },
255
- {
256
- title: this.$t1('登录名'),
257
- field: 'loginAccount',
258
- width: 250,
259
- fixed: 'left'
260
- },
261
- {
262
- field: 'nickName',
263
- title: this.$t1('姓名'),
264
- width: 150
265
- },
266
- {
267
- field: 'mobile',
268
- title: this.$t1('手机号'),
269
- width: 150
270
- },
271
- {
272
- width: 150,
273
- title: this.$t1('头像'),
274
- field: 'headPhotoUrl',
275
- sortable: false,
276
- slots: {
277
- default: ({row, rowIndex}) => {
278
- let option = {
279
- title: this.$t1('头像'),
280
- rows: row.headPhotoUrl,
281
- showViewButton: false
282
- };
283
- return [
284
- <base-attachment option={option}/>
285
- ]
286
- }
287
- }
288
- },
289
- {
290
- field: 'enabled',
291
- title: this.$t1('是否启用'),
292
- width: 150,
293
- slots: {
294
- default: ({row}) => {
295
- if (row.enabled) {
296
- return [<div class="txt-status">{this.$t1('启用')}</div>];
297
- } else {
298
- return [<div class="txt-status s-3">{this.$t1('禁用')}</div>];
299
- }
300
- }
301
- }
302
- },
303
- {
304
- field: 'roleNames',
305
- title: this.$t1('角色'),
306
- width: 150
307
- },
308
- {
309
- field: 'saleOrgNames',
310
- title: this.$t1('机构'),
311
- width: 150
312
- },
313
- {
314
- field: 'positionNames',
315
- title: this.$t1('岗位'),
316
- width: 150
317
- },
318
- {
319
- field: 'birth',
320
- title: this.$t1('出生日期'),
321
- width: 150,
322
- slots: {
323
- default: ({row}) => {
324
- var val = row.birth;
325
- if (val) {
326
- return val.substring(0, 10);
327
- }
328
- }
329
- }
330
- },
331
- {
332
- field: 'zipCode',
333
- title: this.$t1('邮编'),
334
- width: 150
335
- },
336
- {
337
- field: 'address',
338
- title: this.$t1('地址'),
339
- width: 150
340
- },
341
- {
342
- field: 'empNo',
343
- title: this.$t1('员工编码'),
344
- width: 150
345
- },
346
- {
347
- field: 'gender',
348
- title: this.$t1('性别'),
349
- width: 150,
350
- slots: {
351
- default: ({row}) => {
352
- var val = row.gender;
353
- if (val == 1) {
354
- return this.$t1('男');
355
- } else if (val == 2) {
356
- return this.$t1('女');
357
- }
358
- }
359
- }
360
- },
361
- {
362
- field: 'companyNames',
363
- title: this.$t1('所属组织'),
364
- width: 250
365
- },
366
- ...otherColumns,
367
- {
368
- field: 'createBy',
369
- title: this.$t1('创建人'),
370
- width: 150
371
- },
372
- {
373
- field: 'modifyBy',
374
- title: this.$t1('更新人'),
375
- width: 150
376
- },
377
- {
378
- field: 'modifyDate',
379
- title: this.$t1('更新时间'),
380
- width: 150
381
- },
382
- {
383
- field: 'createDate',
384
- title: this.$t1('创建时间'),
385
- width: 150
386
- },
387
- {
388
- width: 47,
389
- fixed: 'right',
390
- title: '',
391
- sortable: false,
392
- slots: {
393
- default: ({row}) => {
394
- return [
395
- <a
396
- href="javascript:void(0);"
397
- class="a-link"
398
- onclick={() => {
399
- this.openEditDialog(row.id);
400
- }}
401
- >
402
- <el-tooltip enterable={false} enterable={false} effect="dark" content={this.$t1('查看')}
403
- placement="top"
404
- popper-class="tooltip-skin">
405
- <i class="el-icon-edit"/>
406
- </el-tooltip>
407
- </a>
408
- ];
409
- }
410
- }
411
- }
412
- ],
413
- searchColumns: [
414
- {
415
- title: this.$t1('机构名称'),
416
- field: "saleOrgName",
417
- type: "input",
418
- common: true,
419
- disabled: true,
420
- defaultValueEnabled: false
421
- },
422
- {title: this.$t1('登录名'), field: "loginAccount", type: "input", common: true},
423
- {title: this.$t1('姓名'), field: "nickName", type: "input", common: true},
424
- {title: this.$t1('手机号'), field: "mobile", type: "input", common: true},
425
- {
426
- title: this.$t1('角色'),
427
- field: "roleCodes",
428
- type: "select",
429
- common: true,
430
- itemOption: [],
431
- multiple: true,
432
- syncHandle: () => {
433
- return this.getRoleList2()
434
- }
435
- },
436
- /*{
437
- title: "词汇", field: "dictSn", type: "select", common: true, itemOption: [], syncHandle: () => {
438
- return this.getDict()
439
- }
440
- },*/
441
- {title: this.$t1('登录名(批量)'), field: "loginAccounts", type: "inputBatch", common: false},
442
- {
443
- title: this.$t1('性别'), field: "gender", type: "select", common: false, itemOption: [
444
- {label: this.$t1('男'), value: 1},
445
- {label: this.$t1('女'), value: 2}
446
- ]
447
- },
448
- {title: this.$t1('邮编'), field: "zipCode", type: "input", common: false},
449
- {
450
- title: this.$t1('是否启用'), field: "enabled", type: "select", common: false, itemOption: [
451
- {label: this.$t1('启用'), value: true},
452
- {label: this.$t1('禁用'), value: false}
453
- ]
454
- }/*,
455
- {title: this.$t1('客户名称'), field: "customerName", type: "input", common: true, slot: "customerName"},
456
- {
457
- title: this.$t1('日期'),
458
- field: "startDate",
459
- field2: "endDate",
460
- type: "dateRange",
461
- common: true,
462
- widgetType: "date",
463
- valueFormat: "yyyy-MM-dd"
464
- },
465
- {title: this.$t1('年份'), field: "year", type: "date", common: true, widgetType: "year", valueFormat: "yyyy"},*/
466
- ],
467
- config: {
468
- pagerConfig: {
469
- pageSize: 500
470
- }
471
- }
472
- };
473
- this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
474
- this.vxeOption = opts;
475
- });
476
- /* this.$nextTick(() => {
477
- this.$refs['baseBillExport'].initExportData({
478
- target: this,
479
- btn: [{ code: 'USEREXCEL', name: '导出Excel(按模版)', type: 0 }, { code: 'USERPDF', name: '导出Pdf(按模版)', type: 1 }, { code: 'USERPRINT', name: '菜鸟打印', type: 2 }],
480
- param: item => {
481
- let checkRows = this.$refs['table-m1'].getCheckboxRecords(true);
482
- if (item.type != 2) {
483
- return checkRows.map(row => {
484
- return { id: row.id };
485
- });
486
- } else {
487
- let rows = checkRows.map(row => row.id);
488
- return rows.length ? { id: rows } : null;
489
- }
490
- }
491
- });
492
- }); */
493
- },
494
- importExcel() {
495
- let that = this;
496
- that.$excelImport({
497
- prefix: USER_PREFIX,
498
- excel: USER_PREFIX + '/excelTemplate/user/user.xlsx',
499
- multi: true,
500
- saveUrl: USER_PREFIX + '/user/batchImport',
501
- callback: () => {
502
- that.searchEvent();
503
- }
504
- });
505
- },
506
- getRoleList2() {
507
- return new Promise((resolve, reject) => {
508
- this.$http({
509
- url: USER_PREFIX + '/role/list',
510
- method: 'post',
511
- success: res => {
512
- let rows = res.objx || [];
513
- let outUserCodes = this.outUserCodes;
514
- if (this.userType == 1) {
515
- //组织用户
516
- rows = rows.filter(row => !outUserCodes.includes(row.code));
517
- } else if (this.userType == 2) {
518
- //外部用户
519
- rows = rows.filter(row => outUserCodes.includes(row.code));
520
- }
521
- let result = rows.map(row => {
522
- return {
523
- value: row.code,
524
- label: row.name
525
- }
526
- });
527
- resolve(result);
528
- }
529
- });
530
- });
531
- },
532
- getDict() {
533
- return new Promise((resolve, reject) => {
534
- this.$getBaseDicts({
535
- code: "orderType",
536
- success: ({dicts, dictMap}) => {
537
- let result = dicts.map(row => {
538
- return {
539
- value: row.sn,
540
- label: row.value
541
- }
542
- });
543
- resolve(result);
544
- }
545
- });
546
- });
547
-
548
- },
549
- getRoleList() {
550
- return this.$http({
551
- url: USER_PREFIX + '/role/list',
552
- method: 'post',
553
- success: res => {
554
- let rows = res.objx || [];
555
- let outUserCodes = this.outUserCodes;
556
- if (this.userType == 1) {
557
- //组织用户
558
- rows = rows.filter(row => !outUserCodes.includes(row.code));
559
- } else if (this.userType == 2) {
560
- //外部用户
561
- rows = rows.filter(row => outUserCodes.includes(row.code));
562
- }
563
- this.roleList = rows;
564
- return rows;
565
- }
566
- });
567
- },
568
- async initOutUserRoleCode() {
569
- return this.$http({
570
- url: USER_PREFIX + '/system_parameter/getByCode',
571
- method: 'post',
572
- data: {"code": "outUserRoleCode"},
573
- success: res => {
574
- let value = (!res.objx || !res.objx.value) ? "distributor" : res.objx.value;
575
- let codes = value.split(',');
576
- this.outUserCodes = codes;
577
- }
578
- });
579
- }
580
- }
581
- };
582
- </script>
1
+ <template>
2
+ <div id="containt">
3
+ <el-tabs v-model="activeName" class="tab-box">
4
+ <el-tab-pane :label="$t1('常规')" name="first">
5
+ <editView v-if="showEdit" visible-key="showEdit" :_dataId.sync="dataId" :parent-target="_self"
6
+ @reload="$reloadHandle" :userType="userType" :flag="flag"></editView>
7
+ </el-tab-pane>
8
+ <el-tab-pane :label="$t1('列表')" name="second">
9
+ <div class="tree-box fl">
10
+ <div class="tit" @click="clearNodeClick"><b>{{ $t1('机构分类') }}</b></div>
11
+ <el-tree
12
+ :props="defaultProps"
13
+ :load="loadNode"
14
+ node-key="id"
15
+ ref="tree"
16
+ highlight-current
17
+ lazy
18
+ :expand-on-click-node="false"
19
+ @node-click="handleNodeClick"
20
+ class="tree-list"
21
+ icon-class="el-icon-arrow-down"
22
+ ></el-tree>
23
+ </div>
24
+ <label id="labBtn">
25
+ <div class="icon">
26
+ <i class="el-icon-more"></i>
27
+ <i class="el-icon-more"></i>
28
+ </div>
29
+ </label>
30
+ <div class="main-right fr" style="padding-left:6px;">
31
+ <div class="grid-height">
32
+ <vxe-grid
33
+ id="table-m1"
34
+ ref="table-m1"
35
+ :auto-resize="true"
36
+ v-bind="vxeOption"
37
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
38
+ @custom="$vxeTableUtil.customHandle"
39
+ >
40
+ <template #form>
41
+ <tableForm :formData.sync="formData" :advancedFormData.sync="advancedFormData"
42
+ @searchEvent="searchEvent" @resetEvent="resetEvent">
43
+ <template #buttonLeft>
44
+ <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openEditDialog">
45
+ {{ $t1('新增') }}
46
+ </vxe-button>
47
+ <base-table-export :option="{ title: $t1('账户导出'), targetRef: 'table-m1'}"
48
+ :parent-target="_self"/>
49
+ <vxe-button status="primary" class="button-sty" icon="el-icon-download" @click="importExcel">
50
+ {{ $t1('导入') }}
51
+ </vxe-button>
52
+ <base-input-export :option="exportOption" :parent-target="_self"/>
53
+ </template>
54
+ <template #buttonRight>
55
+ <vxe-button icon="el-icon-brush" class="button-sty" @click="resetEvent" type="text" status="primary"
56
+ plain>{{ $t1('重置') }}
57
+ </vxe-button>
58
+ <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">
59
+ {{ $t1('搜索') }}
60
+ </vxe-button>
61
+ </template>
62
+ </tableForm>
63
+ </template>
64
+ </vxe-grid>
65
+ </div>
66
+ </div>
67
+ </el-tab-pane>
68
+ </el-tabs>
69
+ </div>
70
+ </template>
71
+
72
+ <script>
73
+ import editView from './form_edit.vue';
74
+ import {treeScollx} from '@base/utils/global.js';
75
+ import tableForm from "@base/components/table/tableForm";
76
+
77
+ export default {
78
+ name: 'user:form_list',
79
+ props: {
80
+ userType: {
81
+ type: Number
82
+ },
83
+ flag: String
84
+ },
85
+ components: {
86
+ tableForm,
87
+ editView: () => import('./edit.vue')
88
+ },
89
+ created() {
90
+
91
+ },
92
+ activated() {
93
+ // this.initTableList();
94
+ },
95
+ async mounted() {
96
+ treeScollx({target: this, type: 'default'});
97
+ await this.initOutUserRoleCode();
98
+ this.getRoleList();
99
+ this.initTableList();
100
+ },
101
+ data() {
102
+ return {
103
+ exportOption: {
104
+ prefix: USER_PREFIX,
105
+ tableRef: 'table-m1',
106
+ title: this.$t1('用户'),
107
+ codes: ["USEREXCEL", "USERPDF", "USERPRINT", "USERHIPRINT", "USERJDPRINT", "USERPDDPRINT", "USERVIPPRINT"],
108
+ onBeforePrint: (done, {etCode, etType}) => {
109
+ /*etType: 2 菜鸟打印,3 网页打印,6 京东打印*/
110
+ done();
111
+ },
112
+ onAfterPrint: ({etCode, etType}, close) => {
113
+ /*etType: 2 菜鸟打印,3 网页打印,6 京东打印*/
114
+ /*close();//关闭弹框*/
115
+ }
116
+ },
117
+ printOption: {
118
+ prefix: USER_PREFIX,
119
+ tableRef: 'table-m1',
120
+ param: {
121
+ type: 'print',
122
+ code: 'USERPRINT',
123
+ param: 'tableDefault'
124
+ }
125
+ },
126
+ showEdit: false,
127
+ activeName: 'second',
128
+ showUpload: true,
129
+ uploadSize: 10,
130
+ value10: '',
131
+ dataId: '',
132
+ tp: false,
133
+ showUserDialog: false,
134
+ nickName: 'dd',
135
+ formData: {saleOrgName: null, roleCodes: []},
136
+ vxeOption: {
137
+ className: 'list-table'
138
+ },
139
+ defaultProps: {
140
+ label: 'name', //这里是树结构中需显示的数据(即接口返回的需展示在页面上的参数)
141
+ children: [],
142
+ isLeaf: 'leaf'
143
+ },
144
+ showAdvancedSearch: false,
145
+ advancedFormData: {},
146
+ roleList: [],
147
+ distributorCode: 'distributor',
148
+ outUserCodes: []
149
+ };
150
+ },
151
+ methods: {
152
+ searchEvent() {
153
+ this.$refs['table-m1'].commitProxy('reload');
154
+ },
155
+ resetEvent() {
156
+ this.formData = {};
157
+ this.advancedFormData = {};
158
+ this.$refs.tree.setCurrentKey();
159
+ this.$refs['table-m1'].commitProxy('reload');
160
+ },
161
+ openEditDialog(id) {
162
+ this.dataId = !id || typeof id == 'object' ? 0 : id;
163
+ this.activeName = 'first';
164
+ this.$openEditView('showEdit');
165
+ },
166
+ clearNodeClick() {
167
+ this.formData.saleOrgId = '';
168
+ this.formData.saleOrgName = '';
169
+ this.$refs.tree.setCurrentKey();
170
+ this.searchEvent();
171
+ },
172
+ handleNodeClick(data, node, v) {
173
+ this.$set(this.formData, 'saleOrgId', data.id);
174
+ this.$set(this.formData, 'saleOrgName', data.name);
175
+ this.$forceUpdate();
176
+ this.searchEvent();
177
+ },
178
+ // 异步树叶子节点懒加载逻辑
179
+ loadNode(node, resolve) {
180
+ let id = node && node.data && node.data.id ? node.data.id || '' : '';
181
+ let param = {enabled: true};
182
+ let url = !id ? USER_PREFIX + '/sale_org/getAllList' : USER_PREFIX + '/sale_org/getChildren';
183
+ this.$http({
184
+ url: url,
185
+ method: 'post',
186
+ data: {
187
+ parent: id,
188
+ enabled: true
189
+ },
190
+ success: res => {
191
+ res.objx.forEach(value => {
192
+ value.leaf = !value.hasChild;
193
+ });
194
+ if (node.level === 0) {
195
+ if (res.objx.length > 0 && res.objx[0].isParent) {
196
+ this.$nextTick(() => {
197
+ let nodedata = node.childNodes[0];
198
+ nodedata.expanded = true;
199
+ nodedata.loadData();
200
+ });
201
+ }
202
+ }
203
+ resolve(res.objx);
204
+ }
205
+ });
206
+ },
207
+ initTableList() {
208
+ let otherColumns = [];
209
+ let userType = this.userType
210
+ if(userType==1){
211
+
212
+ }else if(userType==2){
213
+ otherColumns.push(...[
214
+ {
215
+ field: 'signatoryName',
216
+ title: this.$t1('签约人'),
217
+ width: 150
218
+ },
219
+ {
220
+ field: 'signatoryMobile',
221
+ title: this.$t1('签约人电话'),
222
+ width: 150
223
+ },
224
+ ])
225
+ }
226
+ let tableOption = {
227
+ vue: this,
228
+ tableRef: 'table-m1',
229
+ tableName: 'basic_user_list-m11',
230
+ path: USER_PREFIX + '/user/listAllPage',
231
+ param: () => {
232
+ let formData = {
233
+ ...this.formData,
234
+ ...this.advancedFormData
235
+ };
236
+ let outUserCodes = this.outUserCodes;
237
+ if (this.userType == 1) {
238
+ //组织用户
239
+ formData.neRoleCodes = [...outUserCodes];
240
+ } else if (this.userType == 2) {
241
+ //外部用户
242
+ if (!formData.roleCodes || !formData.roleCodes.length) {
243
+ formData.roleCodes = [...outUserCodes];
244
+ }
245
+ }
246
+ return formData;
247
+ },
248
+ columns: [
249
+ {
250
+ type: 'checkbox',
251
+ width: 48,
252
+ resizable: false,
253
+ fixed: 'left'
254
+ },
255
+ {
256
+ title: this.$t1('登录名'),
257
+ field: 'loginAccount',
258
+ width: 250,
259
+ fixed: 'left'
260
+ },
261
+ {
262
+ field: 'nickName',
263
+ title: this.$t1('姓名'),
264
+ width: 150
265
+ },
266
+ {
267
+ field: 'mobile',
268
+ title: this.$t1('手机号'),
269
+ width: 150
270
+ },
271
+ {
272
+ width: 150,
273
+ title: this.$t1('头像'),
274
+ field: 'headPhotoUrl',
275
+ sortable: false,
276
+ slots: {
277
+ default: ({row, rowIndex}) => {
278
+ let option = {
279
+ title: this.$t1('头像'),
280
+ rows: row.headPhotoUrl,
281
+ showViewButton: false
282
+ };
283
+ return [
284
+ <base-attachment option={option}/>
285
+ ]
286
+ }
287
+ }
288
+ },
289
+ {
290
+ field: 'enabled',
291
+ title: this.$t1('是否启用'),
292
+ width: 150,
293
+ slots: {
294
+ default: ({row}) => {
295
+ if (row.enabled) {
296
+ return [<div class="txt-status">{this.$t1('启用')}</div>];
297
+ } else {
298
+ return [<div class="txt-status s-3">{this.$t1('禁用')}</div>];
299
+ }
300
+ }
301
+ }
302
+ },
303
+ {
304
+ field: 'roleNames',
305
+ title: this.$t1('角色'),
306
+ width: 150
307
+ },
308
+ {
309
+ field: 'saleOrgNames',
310
+ title: this.$t1('机构'),
311
+ width: 150
312
+ },
313
+ {
314
+ field: 'positionNames',
315
+ title: this.$t1('岗位'),
316
+ width: 150
317
+ },
318
+ {
319
+ field: 'birth',
320
+ title: this.$t1('出生日期'),
321
+ width: 150,
322
+ slots: {
323
+ default: ({row}) => {
324
+ var val = row.birth;
325
+ if (val) {
326
+ return val.substring(0, 10);
327
+ }
328
+ }
329
+ }
330
+ },
331
+ {
332
+ field: 'zipCode',
333
+ title: this.$t1('邮编'),
334
+ width: 150
335
+ },
336
+ {
337
+ field: 'address',
338
+ title: this.$t1('地址'),
339
+ width: 150
340
+ },
341
+ {
342
+ field: 'empNo',
343
+ title: this.$t1('员工编码'),
344
+ width: 150
345
+ },
346
+ {
347
+ field: 'gender',
348
+ title: this.$t1('性别'),
349
+ width: 150,
350
+ slots: {
351
+ default: ({row}) => {
352
+ var val = row.gender;
353
+ if (val == 1) {
354
+ return this.$t1('男');
355
+ } else if (val == 2) {
356
+ return this.$t1('女');
357
+ }
358
+ }
359
+ }
360
+ },
361
+ {
362
+ field: 'companyNames',
363
+ title: this.$t1('所属组织'),
364
+ width: 250
365
+ },
366
+ ...otherColumns,
367
+ {
368
+ field: 'createBy',
369
+ title: this.$t1('创建人'),
370
+ width: 150
371
+ },
372
+ {
373
+ field: 'modifyBy',
374
+ title: this.$t1('更新人'),
375
+ width: 150
376
+ },
377
+ {
378
+ field: 'modifyDate',
379
+ title: this.$t1('更新时间'),
380
+ width: 150
381
+ },
382
+ {
383
+ field: 'createDate',
384
+ title: this.$t1('创建时间'),
385
+ width: 150
386
+ },
387
+ {
388
+ width: 47,
389
+ fixed: 'right',
390
+ title: '',
391
+ sortable: false,
392
+ slots: {
393
+ default: ({row}) => {
394
+ return [
395
+ <a
396
+ href="javascript:void(0);"
397
+ class="a-link"
398
+ onclick={() => {
399
+ this.openEditDialog(row.id);
400
+ }}
401
+ >
402
+ <el-tooltip enterable={false} enterable={false} effect="dark" content={this.$t1('查看')}
403
+ placement="top"
404
+ popper-class="tooltip-skin">
405
+ <i class="el-icon-edit"/>
406
+ </el-tooltip>
407
+ </a>
408
+ ];
409
+ }
410
+ }
411
+ }
412
+ ],
413
+ searchColumns: [
414
+ {
415
+ title: this.$t1('机构名称'),
416
+ field: "saleOrgName",
417
+ type: "input",
418
+ common: true,
419
+ disabled: true,
420
+ defaultValueEnabled: false
421
+ },
422
+ {title: this.$t1('登录名'), field: "loginAccount", type: "input", common: true},
423
+ {title: this.$t1('姓名'), field: "nickName", type: "input", common: true},
424
+ {title: this.$t1('手机号'), field: "mobile", type: "input", common: true},
425
+ {
426
+ title: this.$t1('角色'),
427
+ field: "roleCodes",
428
+ type: "select",
429
+ common: true,
430
+ itemOption: [],
431
+ multiple: true,
432
+ syncHandle: () => {
433
+ return this.getRoleList2()
434
+ }
435
+ },
436
+ /*{
437
+ title: "词汇", field: "dictSn", type: "select", common: true, itemOption: [], syncHandle: () => {
438
+ return this.getDict()
439
+ }
440
+ },*/
441
+ {title: this.$t1('登录名(批量)'), field: "loginAccounts", type: "inputBatch", common: false},
442
+ {
443
+ title: this.$t1('性别'), field: "gender", type: "select", common: false, itemOption: [
444
+ {label: this.$t1('男'), value: 1},
445
+ {label: this.$t1('女'), value: 2}
446
+ ]
447
+ },
448
+ {title: this.$t1('邮编'), field: "zipCode", type: "input", common: false},
449
+ {
450
+ title: this.$t1('是否启用'), field: "enabled", type: "select", common: false, itemOption: [
451
+ {label: this.$t1('启用'), value: true},
452
+ {label: this.$t1('禁用'), value: false}
453
+ ]
454
+ }/*,
455
+ {title: this.$t1('客户名称'), field: "customerName", type: "input", common: true, slot: "customerName"},
456
+ {
457
+ title: this.$t1('日期'),
458
+ field: "startDate",
459
+ field2: "endDate",
460
+ type: "dateRange",
461
+ common: true,
462
+ widgetType: "date",
463
+ valueFormat: "yyyy-MM-dd"
464
+ },
465
+ {title: this.$t1('年份'), field: "year", type: "date", common: true, widgetType: "year", valueFormat: "yyyy"},*/
466
+ ],
467
+ config: {
468
+ pagerConfig: {
469
+ pageSize: 500
470
+ }
471
+ }
472
+ };
473
+ this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
474
+ this.vxeOption = opts;
475
+ });
476
+ /* this.$nextTick(() => {
477
+ this.$refs['baseBillExport'].initExportData({
478
+ target: this,
479
+ btn: [{ code: 'USEREXCEL', name: '导出Excel(按模版)', type: 0 }, { code: 'USERPDF', name: '导出Pdf(按模版)', type: 1 }, { code: 'USERPRINT', name: '菜鸟打印', type: 2 }],
480
+ param: item => {
481
+ let checkRows = this.$refs['table-m1'].getCheckboxRecords(true);
482
+ if (item.type != 2) {
483
+ return checkRows.map(row => {
484
+ return { id: row.id };
485
+ });
486
+ } else {
487
+ let rows = checkRows.map(row => row.id);
488
+ return rows.length ? { id: rows } : null;
489
+ }
490
+ }
491
+ });
492
+ }); */
493
+ },
494
+ importExcel() {
495
+ let that = this;
496
+ that.$excelImport({
497
+ prefix: USER_PREFIX,
498
+ excel: USER_PREFIX + '/excelTemplate/user/user.xlsx',
499
+ multi: true,
500
+ saveUrl: USER_PREFIX + '/user/batchImport',
501
+ callback: () => {
502
+ that.searchEvent();
503
+ }
504
+ });
505
+ },
506
+ getRoleList2() {
507
+ return new Promise((resolve, reject) => {
508
+ this.$http({
509
+ url: USER_PREFIX + '/role/list',
510
+ method: 'post',
511
+ success: res => {
512
+ let rows = res.objx || [];
513
+ let outUserCodes = this.outUserCodes;
514
+ if (this.userType == 1) {
515
+ //组织用户
516
+ rows = rows.filter(row => !outUserCodes.includes(row.code));
517
+ } else if (this.userType == 2) {
518
+ //外部用户
519
+ rows = rows.filter(row => outUserCodes.includes(row.code));
520
+ }
521
+ let result = rows.map(row => {
522
+ return {
523
+ value: row.code,
524
+ label: row.name
525
+ }
526
+ });
527
+ resolve(result);
528
+ }
529
+ });
530
+ });
531
+ },
532
+ getDict() {
533
+ return new Promise((resolve, reject) => {
534
+ this.$getBaseDicts({
535
+ code: "orderType",
536
+ success: ({dicts, dictMap}) => {
537
+ let result = dicts.map(row => {
538
+ return {
539
+ value: row.sn,
540
+ label: row.value
541
+ }
542
+ });
543
+ resolve(result);
544
+ }
545
+ });
546
+ });
547
+
548
+ },
549
+ getRoleList() {
550
+ return this.$http({
551
+ url: USER_PREFIX + '/role/list',
552
+ method: 'post',
553
+ success: res => {
554
+ let rows = res.objx || [];
555
+ let outUserCodes = this.outUserCodes;
556
+ if (this.userType == 1) {
557
+ //组织用户
558
+ rows = rows.filter(row => !outUserCodes.includes(row.code));
559
+ } else if (this.userType == 2) {
560
+ //外部用户
561
+ rows = rows.filter(row => outUserCodes.includes(row.code));
562
+ }
563
+ this.roleList = rows;
564
+ return rows;
565
+ }
566
+ });
567
+ },
568
+ async initOutUserRoleCode() {
569
+ return this.$http({
570
+ url: USER_PREFIX + '/system_parameter/getByCode',
571
+ method: 'post',
572
+ data: {"code": "outUserRoleCode"},
573
+ success: res => {
574
+ let value = (!res.objx || !res.objx.value) ? "distributor" : res.objx.value;
575
+ let codes = value.split(',');
576
+ this.outUserCodes = codes;
577
+ }
578
+ });
579
+ }
580
+ }
581
+ };
582
+ </script>