cloud-web-corejs 1.0.54-dev.321 → 1.0.54-dev.322

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.54-dev.321",
4
+ "version": "1.0.54-dev.322",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -88,7 +88,7 @@ export default {
88
88
  codes,
89
89
  customCondition:(exportTemplate)=>{
90
90
  let param = {
91
- formData: [this.formModel]
91
+ formData: this.formModel
92
92
  };
93
93
  if (this.field.options.printCustomCondition) {
94
94
  let param1 = this.handleCustomEvent(this.field.options.printCustomCondition,['exportTemplate'],[exportTemplate]);
@@ -418,7 +418,7 @@ export default {
418
418
  this.$http({
419
419
  url: USER_PREFIX + '/notify_message/listPage',
420
420
  data: {
421
- // readed: 0,
421
+ readed: 0,
422
422
  searchCount: false,
423
423
  pageSize: 10
424
424
  },
@@ -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>
@@ -1,99 +0,0 @@
1
- <template>
2
- <static-content-wrapper
3
- :designer="designer" :field="field" :design-state="designState"
4
- :display-style="field.options.displayStyle"
5
- :parent-widget="parentWidget" :parent-list="parentList"
6
- :index-of-parent-list="indexOfParentList">
7
- <el-dropdown trigger="hover">
8
- <el-button type="primary" class="button-sty" size="mini">
9
- <span>{{ getI18nLabel('列表导出') }}</span><span class="line"></span> <i
10
- class="el-icon-arrow-down el-icon--right"></i>
11
- </el-button>
12
- <el-dropdown-menu slot="dropdown">
13
- <el-dropdown-item icon="el-icon-upload2"
14
- @click.native="toDo()">
15
- {{ getI18nLabel('条件导出') }}
16
- </el-dropdown-item>
17
- <el-dropdown-item icon="el-icon-upload2"
18
- @click.native="toDo('selected')">
19
- {{ getI18nLabel('选择导出') }}
20
- </el-dropdown-item>
21
- </el-dropdown-menu>
22
- </el-dropdown>
23
- </static-content-wrapper>
24
-
25
- </template>
26
- <script>
27
- import emitter from '../../../../../components/xform/utils/emitter'
28
- import i18n from "../../../../../components/xform/utils/i18n";
29
- import fieldMixin from "../../../../../components/xform/form-designer/form-widget/field-widget/fieldMixin";
30
- import StaticContentWrapper
31
- from "../../../../../components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue";
32
-
33
- export default {
34
- name: 'TableExportButtonWidget',
35
- components: {StaticContentWrapper},
36
- componentName: 'FieldWidget', //必须固定为FieldWidget,用于接收父级组件的broadcast事件
37
- mixins: [emitter, fieldMixin, i18n],
38
- props: {
39
- field: Object,
40
- parentWidget: Object,
41
- parentList: Array,
42
- indexOfParentList: Number,
43
- designer: Object,
44
- designState: {
45
- type: Boolean,
46
- default: false
47
- }
48
- },
49
- data() {
50
- return {}
51
- },
52
- beforeCreate() {
53
- /* 这里不能访问方法和属性!! */
54
- },
55
-
56
- created() {
57
- /* 注意:子组件mounted在父组件created之后、父组件mounted之前触发,故子组件mounted需要用到的prop
58
- 需要在父组件created中初始化!! */
59
- this.registerToRefList()
60
- this.initEventHandler()
61
-
62
- this.handleOnCreated()
63
- },
64
-
65
- mounted() {
66
- this.handleOnMounted()
67
- },
68
-
69
- beforeDestroy() {
70
- this.unregisterFromRefList()
71
- },
72
-
73
- methods: {
74
- toDo(type = null) {
75
- if (this.designState) {
76
- return
77
- }
78
- let opt = {
79
- title: this.field.options.exportFileName || null,
80
- targetRef: this.field.options.tableRef || null,
81
- pageSize: (this.field.options.exportPageSize || null),
82
- showImageAtTable: this.field.options.showImageAtTable || null
83
- };
84
- let tableExportParam = this.handleCustomEvent(this.field.options.tableExportParam);
85
- let options = {...opt, ...tableExportParam, type: type};
86
- let tableRef = options?.targetRef;
87
- delete options.targetRef
88
- let tableWidget = this.getWidgetRef(tableRef);
89
- tableWidget.exportData(options)
90
- }
91
- }
92
-
93
- }
94
- </script>
95
-
96
- <style lang="scss" scoped>
97
- @import "~@/styles/global.scss"; //* static-content-wrapper已引入,还需要重复引入吗? *//
98
-
99
- </style>