cloud-web-corejs 1.0.54-dev.120 → 1.0.54-dev.121

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.
@@ -1,901 +1,901 @@
1
- import formOplogTable from "@base/components/formOplog/index.vue";
2
- import preformDialog from "@base/views/bd/setting/form_template/preformDialog.vue";
3
- import projectTagView from "@base/components/projectTag/view.vue";
4
- import szTaMbDialog from "@base/views/bd/setting/table_model/dialog.vue";
5
- import MenuKindDialog from "@base/views/bd/setting/menu_kind/dialog.vue";
6
- import zdDialog from "@base/views/bd/setting/table_model/zdDialog.vue";
7
- import {getBdFlag} from "@base/api/user";
8
- import {getJsxBtn} from "@base/views/bd/setting/utils/index";
9
-
10
- let modules = {};
11
- modules = {
12
- name: 'szTaMbEdit',
13
- props: {
14
- _dataId: [String, Number],
15
- currentFormType: Object,
16
- readonly: Boolean
17
- },
18
- components: {
19
- formOplogTable,
20
- preformDialog,
21
- projectTagView,
22
- szTaMbDialog,
23
- MenuKindDialog,
24
- zdDialog
25
- },
26
- data() {
27
- return {
28
- tabIndex: 0,
29
- isEdit: false,
30
- dataId: '',
31
- szTaMb: {
32
- enabled: true,
33
- taType: 0,
34
- szTaZdMbDTOs: [],
35
- menuKindName: null,
36
- menuKindCode: null,
37
- serviceName: null,
38
- taRule: 0,
39
- dataRange: 0,
40
- szTaMbTagDTOs: [],
41
- fromTable: false,
42
- taCh: null,
43
- sszstEn: null,
44
- taEn: null,
45
- taBm: null
46
- },
47
- treeDefaultZds: [],
48
- productOption: {},
49
- showSzTaMbDialog: false,
50
- showItemSzTaMbDialog: false,
51
- showMenuKindDialog: false,
52
- productCategoryCodes: [],
53
- zdEnIndex: '',
54
-
55
- referenceEntity: null,
56
- referenceKey: null,
57
- referenceShowFields: null,
58
- refServiceName: null,
59
- currentIndex: 0,
60
- showReferenceZdDialog: false,
61
-
62
- showEntityDialog: false,
63
- showEntityFieldDialog1: false,
64
- showEntityFieldDialog2: false,
65
- referenceShowRows: [],
66
- createdTableColumnStr: null,
67
- createdTableColumnArray: [],
68
- isDev: true,
69
- showPreformDialog: false,
70
- menuKindAuth: {
71
- editAuth: 0
72
- },
73
-
74
- dbTable: null,
75
- showDtDialog: false,
76
- showTmDialog: false
77
- };
78
- },
79
- created() {
80
- if (this._dataId && !isNaN(this._dataId)) {
81
- this.dataId = this._dataId;
82
- } else {
83
- this.szTaMb.menuKindName = this.currentFormType?.name || null;
84
- this.szTaMb.menuKindCode = this.currentFormType?.menuKindCode || null;
85
- this.szTaMb.serviceName = this.currentFormType?.serviceName || null;
86
- }
87
- },
88
- mounted() {
89
- this.getBdEnv();
90
- this.getTreeDefaultZds();
91
- this.initTableProduct();
92
- this.getData();
93
- },
94
- methods: {
95
- getData(callback) {
96
- if (this.dataId && !isNaN(this.dataId)) {
97
- this.isEdit = true;
98
- this.$http({
99
- aes: true,
100
- url: USER_PREFIX + `/szTaMb/get`,
101
- method: `post`,
102
- data: {
103
- id: this.dataId
104
- },
105
- isLoading: true,
106
- modalStrictly: true,
107
- success: res => {
108
- if (!callback) {
109
- let szTaMb = res.objx || {};
110
- szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs;
111
- szTaMb.attachmentDTOs = this.szTaMb.attachmentDTOs;
112
- szTaMb.oplogDTOs = this.szTaMb.oplogDTOs;
113
- this.szTaMb = szTaMb;
114
-
115
- this.getCreatedTableColumns();
116
- this.getMenuKindAuth(this.szTaMb.menuKindCode);
117
- } else {
118
- callback(res)
119
- }
120
- //获取操作日志数据
121
- this.$refs['oplogTable'].initData({
122
- param: () => {
123
- return {
124
- logType: "SzTaMb",
125
- logObjCode: this.szTaMb.taCode
126
- };
127
- }
128
- });
129
-
130
- }
131
- });
132
- } else {
133
- this.getMenuKindAuth(this.szTaMb.menuKindCode);
134
- }
135
- },
136
- updateStatus(status) {
137
- let text;
138
- if (status === 3) {
139
- text = this.$t1('您确定要作废吗?');
140
- }
141
- this.$baseConfirm(text).then(() => {
142
- this.$http({
143
- aes: true,
144
- url: USER_PREFIX + `/szTaMb/updateStatus`,
145
- method: `post`,
146
- data: {
147
- id: this.dataId,
148
- status: status
149
- },
150
- isLoading: true,
151
- success: res => {
152
- this.$message({
153
- message: res.content,
154
- type: 'success',
155
- duration: 500,
156
- onClose: t => {
157
- this.$baseReload();
158
- }
159
- });
160
- }
161
- });
162
- });
163
- },
164
- saveData() {
165
- this.$refs.editForm.$baseValidate(valid => {
166
- if (valid) {
167
- const szTaZdMbDTOs = this.$refs['table-szTaZdMb'].getTableData().fullData;
168
- if (szTaZdMbDTOs.length === 0) {
169
- this.$baseAlert(this.$t1('明细不能为空!'));
170
- return false;
171
- }
172
- this.szTaMb.szTaZdMbDTOs = szTaZdMbDTOs;
173
- this.openPreformDialog();
174
-
175
- }
176
- });
177
- },
178
- saveDataHandle(preformData) {
179
- let formData = {
180
- ...this.szTaMb,
181
- logContent: preformData.logContent
182
- };
183
- // const formData = this.szTaMb;
184
- // formData.szTaZdMbDTOs = szTaZdMbDTOs;
185
-
186
- var url = USER_PREFIX + (this.isEdit ? `/szTaMb/update` : `/szTaMb/save`);
187
- this.$http({
188
- aes: true,
189
- url: url,
190
- method: `post`,
191
- data: formData,
192
- isLoading: true,
193
- success: res => {
194
- this.$message({
195
- message: res.content,
196
- type: 'success',
197
- duration: 500,
198
- onClose: t => {
199
- if (this.isEdit) {
200
- this.$baseReload();
201
- } else {
202
- this.$baseReload({
203
- updateParam: {
204
- _dataId: res.objx
205
- }
206
- });
207
- }
208
- }
209
- });
210
- }
211
- });
212
- },
213
- openPreformDialog() {
214
- this.showPreformDialog = true;
215
- },
216
- confirmPreformDialog(preformData) {
217
- this.saveDataHandle(preformData);
218
- },
219
- initTableProduct() {
220
- const tableOption = {
221
- vue: this,
222
- tableRef: 'table-szTaZdMb',
223
- tableName: 'edit-szTaMb-szTaZdMb',
224
- config: {
225
- maxHeight: "600px"
226
- },
227
- columns: [
228
- {type: 'checkbox', fixed: 'left', width: 48, resizable: false},
229
- {
230
- title: this.$t1('实体字段名称'),
231
- field: 'zdEn',
232
- width: 150,
233
- fixed: 'left',
234
- slots: {
235
- default: "zdEn"
236
- /*default: ({row, rowIndex, $table}) => {
237
- let disabled = !!row.systems || !!row.relationZd;
238
- if (!disabled) {
239
- return [
240
- <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.zdEn'}
241
- rules={[{required: true, trigger: ['blur', 'change']}]}>
242
- <el-input v-model={row.zdEn} clearable/>
243
- </el-form-item>
244
- ];
245
- } else {
246
- let style = !!row.relationZd ? "margin-left:20px" : "";
247
- return [
248
- <div style={style}>{row.zdEn}</div>
249
- ]
250
- }
251
- }*/
252
- }
253
- },
254
- {title: this.$t1('数据库表字段名'), field: 'taZdMc', width: 150, fixed: 'left',},
255
- {
256
- title: this.$t1('数据库表字段是否已创建'),
257
- field: 'isFieldCreated',
258
- width: 200,
259
- slots: {
260
- default: ({row, rowIndex, $table}) => {
261
- let taZdMc = row.taZdMc;
262
- let createdTableColumnArray = this.createdTableColumnArray;
263
- return taZdMc && createdTableColumnArray.includes(taZdMc) ? "是" : "_";
264
- }
265
- }
266
- },
267
- {
268
- title: this.$t1('字段描述'),
269
- field: 'zdCh',
270
- width: 150,
271
- slots: {
272
- default: 'zdCh'
273
- /*default: ({row, rowIndex, $table}) => {
274
- return [
275
- <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.zdCh'}
276
- rules={[{required: true, trigger: ['blur', 'change']}]}>
277
- <el-input v-model={row.zdCh} clearable disabled={!!row.systems}/>
278
- </el-form-item>
279
- ];
280
- }*/
281
- }
282
- },
283
- {
284
- title: this.$t1('字段类型'), field: 'zdType', width: 150,
285
- slots: {
286
- default: 'zdType'
287
- }
288
- },
289
- {
290
- title: this.$t1('关联字段'), field: 'referenceZd', width: 250,
291
- slots: {
292
- default: 'referenceZd'
293
- }
294
- },
295
- {
296
- title: this.$t1('关联表对应服务名'), field: 'refServiceName', width: 200
297
- },
298
- {
299
- title: this.$t1('字段类型对应的默认值'),
300
- field: 'zdTypeValues',
301
- width: 150,
302
- slots: {
303
- default: 'zdTypeValues'
304
- /*default: ({row, rowIndex, $table}) => {
305
- let disabled = !!row.systems || !!row.relationZd;
306
- return [
307
- <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.zdTypeValues'}
308
- rules={[{required: false, trigger: ['blur', 'change']}]}>
309
- <el-input v-model={row.zdTypeValues} clearable disabled={disabled}/>
310
- </el-form-item>
311
- ];
312
- }*/
313
- }
314
- },
315
- {
316
- title: this.$t1('是否必填项'),
317
- field: 'required',
318
- width: 140,
319
- slots: {
320
- default: "required"
321
- /*default: ({row, $table, rowIndex}) => {
322
- let disabled = !!row.systems || !!row.relationZd;
323
- return [
324
- <el-checkbox v-model={row.required} disabled={disabled}/>
325
- ];
326
- }*/
327
- }
328
- },
329
- {
330
- title: this.$t1('是否启用'),
331
- field: 'enabled',
332
- width: 120,
333
- slots: {
334
- default: "enabled"
335
- /*default: ({row, $table, rowIndex}) => {
336
- let disabled = !!row.systems || !!row.relationZd;
337
- return [
338
- <el-checkbox v-model={row.enabled} disabled={disabled}/>
339
- ];
340
- }*/
341
- }
342
- },
343
-
344
- {
345
- title: this.$t1('是否自动生成编码'),
346
- field: 'generateCode',
347
- width: 180,
348
- slots: {
349
- default: "generateCode"
350
- /*default: ({row, $table, rowIndex}) => {
351
- let disabled = !!row.systems || !!row.relationZd;
352
- return [
353
- <el-checkbox v-model={row.generateCode} disabled={disabled}/>
354
- ];
355
- }*/
356
- }
357
- },
358
- {
359
- title: this.$t1('数据库字段加密'),
360
- field: 't1',
361
- width: 180,
362
- slots: {
363
- default: "t1"
364
- }
365
- },
366
- {
367
- title: this.$t1('编码类型'),
368
- field: 'codeType',
369
- width: 150,
370
- slots: {
371
- default: "codeType"
372
- /*default: ({row, rowIndex, $table}) => {
373
- let disabled = !!row.systems || !!row.relationZd;
374
- return [
375
- <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.codeType'}
376
- rules={[{required: false, trigger: ['blur', 'change']}]}>
377
- <el-input v-model={row.codeType} clearable disabled={disabled}/>
378
- </el-form-item>
379
- ];
380
- }*/
381
- }
382
- },
383
- {
384
- title: this.$t1('序号'),
385
- field: 'orders',
386
- width: 150,
387
- slots: {
388
- default: "orders"
389
- /*default: ({row, rowIndex, $table}) => {
390
- return [
391
- <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.orders'}
392
- rules={[{required: false, trigger: ['blur', 'change']}]}>
393
- <base-input-number v-model={row.orders} disabled={!!row.systems} onchange={() => {
394
- this.changeOrders(row);
395
- }}/>
396
- </el-form-item>
397
- ];
398
- }*/
399
- }
400
- },
401
- {
402
- width: 47,
403
- fixed: 'right',
404
- title: '',
405
- sortable: false,
406
- slots: {
407
- default: ({row, rowIndex, $table}) => {
408
- let taZdMc = row.taZdMc;
409
- let createdTableColumnArray = this.createdTableColumnArray || [];
410
- let hasCreated = !!taZdMc && createdTableColumnArray.includes(taZdMc)
411
- // let style = !row.relationZd ? "margin-left:20px" : "";
412
- if (!row.systems && !hasCreated && !row.relationZd) {
413
- //非内置,未创建字段,非关联表带出来的字段
414
- return getJsxBtn({
415
- iconName: "el-icon-delete",
416
- content: this.$t1('删除'),
417
- onclick: () => {
418
- this.deleteItem(row, rowIndex);
419
- }
420
- });
421
- }
422
- }
423
- }
424
- }
425
- ]
426
- };
427
- this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
428
- this.productOption = opts;
429
- });
430
- if (this.dataId) {
431
- this.$http({
432
- aes: true,
433
- url: USER_PREFIX + `/szTaMb/getSzTaZdMbs`,
434
- method: `post`,
435
- data: {
436
- id: this.dataId
437
- },
438
- isLoading: true,
439
- modalStrictly: true,
440
- success: res => {
441
- this.szTaMb.szTaZdMbDTOs = res.objx || [];
442
- }
443
- });
444
- }
445
- },
446
- addTaMbItems() {
447
- // let tacitly = true;
448
- // if (this.customer.szTaZdMbDTOs.length > 0) {
449
- // tacitly = false;
450
- // }
451
- // this.customer.szTaZdMbDTOs.push({tacitly: tacitly});
452
- let newIndex = this.getNewIndex();
453
- this.szTaMb.szTaZdMbDTOs.push({
454
- zdType: 'Text',
455
- enabled: true,
456
- orders: newIndex,
457
- generateCode: false,
458
- fromTable: false
459
- });
460
- },
461
- deleteItem(row, rowIndex) {
462
- let referenceZd = row.referenceZd;
463
- this.szTaMb.szTaZdMbDTOs.splice(rowIndex, 1);
464
- if (referenceZd) {
465
- this.szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs.filter(item => {
466
- return referenceZd !== item.relationZd
467
- })
468
- }
469
- },
470
- confirmInsertSzTaMb(rows) {
471
- if (rows.length > 0) {
472
- let row = rows[0];
473
- this.$set(this.szTaMb, 'sszst', row.taCode);
474
- this.$set(this.szTaMb, 'sszstEn', row.taEn);
475
- }
476
- },
477
- confirmInsertItemSzTaMb(rows) {
478
- if (rows.length > 0) {
479
- let row = rows[0];
480
- let szTaZdMbDTO = this.szTaMb.szTaZdMbDTOs[this.zdEnIndex];
481
- this.$set(szTaZdMbDTO, 'zdEn', row.taBm + '.' + szTaZdMbDTO.zdEn);
482
- this.$set(szTaZdMbDTO, 'dybm', row.taEn);
483
- }
484
- },
485
- confirmInsertMenuKind(rows) {
486
- if (rows.length > 0) {
487
- let row = rows[0];
488
- this.$set(this.szTaMb, 'menuKindCode', row.menuKindCode);
489
- this.$set(this.szTaMb, 'menuKindName', row.name);
490
- }
491
- },
492
- getNewData(callback) {
493
- this.getData((res0) => {
494
- let szTaMb = res0.objx;
495
- this.$http({
496
- aes: true,
497
- url: USER_PREFIX + `/szTaMb/getSzTaZdMbs`,
498
- method: `post`,
499
- data: {
500
- id: this.dataId
501
- },
502
- isLoading: true,
503
- modalStrictly: true,
504
- success: res1 => {
505
- szTaMb.szTaZdMbDTOs = res1.objx || [];
506
- callback(szTaMb)
507
- }
508
- });
509
- });
510
- },
511
- createModifyTable() {
512
- let text = this.$t1('您确定要创建/更新数据表吗?');
513
- this.$baseConfirm(text).then(() => {
514
- this.getNewData((data) => {
515
- this.$http({
516
- aes: true,
517
- url: "/" + this.szTaMb.serviceName + `/dbTable/createUpdateTable`,
518
- method: `post`,
519
- data: data,
520
- isLoading: true,
521
- success: res => {
522
- this.$message({
523
- message: res.content,
524
- type: 'success',
525
- duration: 500,
526
- onClose: t => {
527
- this.$baseReload();
528
- }
529
- });
530
- }
531
- });
532
-
533
- });
534
- });
535
- },
536
- openReferenceZdDialog(row, rowIndex, $table) {
537
- let referenceZd = row.referenceZd;
538
- let referenceEntity = null;
539
- let referenceKey = null;
540
- let referenceShowFields = [];
541
-
542
- if (referenceZd) {
543
- let index = referenceZd.indexOf(".")
544
- referenceEntity = referenceZd.substring(0, index);
545
- referenceKey = referenceZd.substr(index + 1);
546
- referenceShowFields = this.szTaMb.szTaZdMbDTOs.filter(item => {
547
- return referenceZd == item.relationZd
548
- }).map(item => {
549
- return item.referenceZd.substr(index + 1)
550
- });
551
- }
552
-
553
- this.referenceEntity = referenceEntity;
554
- this.referenceKey = referenceKey;
555
- this.referenceShowFields = referenceShowFields;
556
- this.refServiceName = row.refServiceName ?? null;
557
-
558
- this.referenceShowRows = referenceShowFields.map(item => {
559
- return {
560
- taZdMc: item
561
- }
562
- });
563
-
564
- this.currentIndex = rowIndex;
565
- this.showReferenceZdDialog = true;
566
- },
567
- confirmReferenceZdDialog() {
568
- let row = this.szTaMb.szTaZdMbDTOs[this.currentIndex];
569
- let oldReferenceZd = row.referenceZd;
570
-
571
- let referenceEntity = this.referenceEntity;
572
- let refServiceName = this.refServiceName;
573
- debugger
574
- let referenceZd = referenceEntity + "." + this.referenceKey;
575
- let referenceShowFields = this.referenceShowFields;
576
- let keys = referenceShowFields.map(item => {
577
- return referenceEntity + "." + item;
578
- })
579
- if (oldReferenceZd) {
580
- let index0 = oldReferenceZd.indexOf(".")
581
- let oldReferenceEntity = oldReferenceZd.substring(0, index0);
582
- let delIndex = [];
583
- if (referenceEntity != oldReferenceEntity) {
584
- this.szTaMb.szTaZdMbDTOs.forEach((item, index) => {
585
- if (item.relationZd && oldReferenceZd == item.relationZd) {
586
- delIndex.push(index);
587
- }
588
- })
589
- }/*else if (oldReferenceZd != referenceZd) {
590
- this.szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs.forEach((item, index) => {
591
- if (oldReferenceZd == item.relationZd) {
592
- delIndex.push(index)
593
- }
594
- })
595
- }*/ else {
596
- this.szTaMb.szTaZdMbDTOs.forEach((item, index) => {
597
- if (oldReferenceZd == item.relationZd) {
598
- if (!keys.includes(item.referenceZd)) {
599
- delIndex.push(index)
600
- } else {
601
- item.refServiceName = refServiceName;
602
- }
603
-
604
- }
605
- })
606
- }
607
- if (delIndex.length) {
608
- /*this.szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs.filter((item, index) => {
609
- return !delIndex.includes(index);
610
- })*/
611
- delIndex.reverse().forEach(i => {
612
- this.szTaMb.szTaZdMbDTOs.splice(i, 1)
613
- })
614
- }
615
- }
616
-
617
- /*let addReferenceShowFields = referenceShowFields.filter((item, index) => {
618
- return !keys.includes(item)
619
- })*/
620
- let oldKeys = this.szTaMb.szTaZdMbDTOs.filter(item => referenceZd == item.relationZd).map(item => item.referenceZd)
621
- let addReferenceShowFields = referenceShowFields.filter((item, index) => {
622
- return !oldKeys.includes(referenceEntity + "." + item)
623
- })
624
-
625
- let addIndex = -1;
626
- let lastIndex = this.szTaMb.szTaZdMbDTOs.findLastIndex(item => {
627
- return referenceZd == item.relationZd
628
- });
629
- addIndex = lastIndex >= 0 ? (lastIndex + 1) : (this.currentIndex + 1);
630
-
631
- let referenceShowRows = this.referenceShowRows;
632
-
633
- let addReferenceShowRows = referenceShowRows.filter((item, index) => {
634
- return addReferenceShowFields.includes(item.taZdMc)
635
- })
636
- addReferenceShowRows.forEach((item, index) => {
637
- let rIndex = addIndex + index;
638
- let orders = (row.orders || 0) + index + 1;
639
- let newItem = {
640
- zdEn: "ref_" + item.zdEn,
641
- taZdMc: null,
642
- zdCh: item.zdCh,
643
- zdType: "Text",
644
- referenceZd: referenceEntity + "." + item.taZdMc,
645
- relationZd: referenceZd,
646
- refServiceName,
647
- zdTypeValues: null,
648
- required: false,
649
- enabled: true,
650
- requiredMsg: null,
651
- regexp: null,
652
- regexpMsg: null,
653
- orders
654
- };
655
- this.szTaMb.szTaZdMbDTOs.splice(rIndex, 0, newItem);
656
- });
657
- row.referenceZd = referenceZd
658
- row.refServiceName = refServiceName
659
- this.handleReferenceOrders(row);
660
- this.showReferenceZdDialog = false;
661
- },
662
- changeOrders(row) {
663
- this.handleReferenceOrders(row);
664
- },
665
- handleReferenceOrders(row) {
666
- let referenceZd = row.referenceZd;
667
- let orders = row.orders || 0;
668
- if (referenceZd) {
669
- this.szTaMb.szTaZdMbDTOs.filter(item => referenceZd === item.relationZd).forEach((item, index) => {
670
- if (referenceZd === item.relationZd) {
671
- item.orders = orders + index + 1;
672
- }
673
- })
674
- }
675
- },
676
- confirmEntityDialog(rows) {
677
- if (rows.length) {
678
- let row = rows[0];
679
- if (this.referenceEntity != row.taBm) {
680
- this.referenceKey = null;
681
- this.referenceShowFields = [];
682
- }
683
- this.referenceEntity = row.taBm;
684
- this.refServiceName = row.serviceName;
685
- }
686
- },
687
- confirmEntityFieldDialog1(rows) {
688
- if (rows.length) {
689
- let row = rows[0];
690
- this.referenceKey = row.taZdMc;
691
- }
692
- },
693
- confirmEntityFieldDialog2(rows) {
694
- if (rows.length) {
695
- this.referenceShowRows = rows;
696
- this.referenceShowFields = rows.map(row => {
697
- return row.taZdMc;
698
- });
699
- }
700
- },
701
- getCreatedTableColumns() {
702
- if (!this.szTaMb.taBm) return;
703
- this.$http({
704
- aes: true,
705
- url: "/" + this.szTaMb.serviceName + "/dbTable/getTableColumns",
706
- method: `post`,
707
- data: {
708
- stringOne: this.szTaMb.taBm
709
- },
710
- isLoading: true,
711
- modalStrictly: true,
712
- success: res => {
713
- if (res.objx) {
714
- this.createdTableColumnStr = res.objx;
715
- let createdTableColumnArray = res.objx.split(",").filter(item => !!item);
716
- this.createdTableColumnArray = createdTableColumnArray;
717
- }
718
- }
719
- });
720
- },
721
- getTreeDefaultZds() {
722
- this.$http({
723
- aes: true,
724
- url: USER_PREFIX + `/szTaMb/getTreeDefaultZds`,
725
- method: `post`,
726
- data: {},
727
- isLoading: true,
728
- modalStrictly: true,
729
- success: res => {
730
- let rows = res.objx || []
731
- this.treeDefaultZds = rows
732
- }
733
- });
734
- },
735
- hasFieldCreated(row) {
736
- let taZdMc = row.taZdMc;
737
- let createdTableColumnArray = this.createdTableColumnArray || [];
738
- let hasCreated = !!taZdMc && createdTableColumnArray.includes(taZdMc)
739
- return hasCreated;
740
- },
741
- changeTaRule(val) {
742
- let treeDefaultZds = this.$baseLodash.cloneDeep(this.treeDefaultZds);
743
- let szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs;
744
- if (val == 1) {
745
- let zdEns = szTaZdMbDTOs.filter(item => !!item.zdEn).map(item => item.zdEn);
746
- if (zdEns.length) {
747
- treeDefaultZds = treeDefaultZds.filter(item => {
748
- return !zdEns.includes(item.zdEn);
749
- })
750
- }
751
- let newIndex = this.getNewIndex();
752
- treeDefaultZds.forEach((item, index) => {
753
- item.orders = newIndex + index;
754
- })
755
- szTaZdMbDTOs.push(...treeDefaultZds);
756
- } else {
757
- let zdEns = szTaZdMbDTOs.filter(item => !!item.zdEn).map(item => item.zdEn);
758
- let createdFields = szTaZdMbDTOs.filter(item => {
759
- return !!item.zdEn && this.hasFieldCreated(item)
760
- }).map(item => item.zdEn);
761
- if (zdEns.length) {
762
- treeDefaultZds = treeDefaultZds.filter(item => {
763
- return !createdFields.includes(item.zdEn) && zdEns.includes(item.zdEn);
764
- })
765
- }
766
- let delFields = treeDefaultZds.map(item => item.zdEn);
767
- this.szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs.filter(item => !delFields.includes(item.zdEn))
768
- }
769
-
770
- },
771
- getNewIndex() {
772
- let min = 100
773
- let szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs;
774
- let value = 0;
775
- szTaZdMbDTOs.filter(item => !item.systems).forEach(item => {
776
- if (item.orders !== null && item.orders !== undefined) {
777
- value = Math.max(value, item.orders)
778
- }
779
- })
780
- let newIndex = Math.max(min, (value + 10));
781
- return newIndex;
782
- },
783
- getBdEnv() {
784
- getBdFlag({
785
- success: res => {
786
- this.isDev = res.objx == 1
787
- }
788
- });
789
- },
790
- getMenuKindAuth(menuKindCode) {
791
- if (menuKindCode) {
792
- this.$http({
793
- aes: true,
794
- url: USER_PREFIX + '/menu_kind_auth/getAuth',
795
- method: `post`,
796
- data: {stringOne: menuKindCode},
797
- isLoading: true,
798
- success: res => {
799
- this.menuKindAuth = res.objx || {}
800
- }
801
- });
802
- }
803
- },
804
- openDtDialog() {
805
- //引用数据库中数据表结构
806
- this.dbTable = null;
807
- this.showDtDialog = true;
808
- },
809
- confirmDtDialog() {
810
- let dbTable = this.dbTable;
811
- if (!dbTable) {
812
- this.$baseAlert(this.$t1("数据表不能为空"));
813
- return
814
- }
815
- this.showDtDialog = false;
816
- this.$http({
817
- // aes: true,
818
- url: "/" + this.szTaMb.serviceName + `/dbTable/getSzTaZdMbs`,
819
- method: `post`,
820
- data: {
821
- stringOne: dbTable
822
- },
823
- isLoading: true,
824
- success: res => {
825
- let items = res.objx || [];
826
- if (!items.length) {
827
- this.$baseAlert(this.$t1("数据表[{dbTable}]不存在", {dbTable}));
828
- return
829
- }
830
- let szTaZdMbDTOs = items.filter(item => !item.systems).map(item => {
831
- return {
832
- ...item,
833
- createBy: null,
834
- createDate: null,
835
- fromTable: true,
836
- id: null,
837
- modifyBy: null,
838
- modifyDate: null
839
- }
840
- })
841
- this.szTaMb.taEn = dbTable;
842
- this.szTaMb.taBm = dbTable;
843
- this.szTaMb.szTaZdMbDTOs = szTaZdMbDTOs;
844
- }
845
- });
846
- },
847
- openTmDialog() {
848
- //引用数据表定义的结构
849
- this.showTmDialog = true;
850
- },
851
- confirmTmDialog(rows) {
852
- if (rows.length) {
853
- let row = rows[0];
854
- this.$http({
855
- aes: true,
856
- url: USER_PREFIX + `/szTaMb/getSzTaZdMbs`,
857
- method: `post`,
858
- data: {
859
- id: row.id
860
- },
861
- isLoading: true,
862
- modalStrictly: true,
863
- success: res => {
864
- let items = res.objx || [];
865
- let szTaZdMbDTOs = items.filter(item => !item.systems).map(item => {
866
- return {
867
- ...item,
868
- createBy: null,
869
- createDate: null,
870
- fromTable: true,
871
- id: null,
872
- modifyBy: null,
873
- modifyDate: null
874
- }
875
- })
876
- let newRow = {
877
- ...row,
878
- createBy: null,
879
- createDate: null,
880
- fromTable: true,
881
- id: null,
882
- modifyBy: null,
883
- modifyDate: null,
884
- sid: null,
885
- // taBm: null,
886
- taCode: null
887
- }
888
- Object.keys(newRow).forEach(key => {
889
- if (key.endsWith('DTOs')) {
890
- delete newRow[key]
891
- }
892
- })
893
- Object.assign(this.szTaMb, newRow);
894
- this.szTaMb.szTaZdMbDTOs = szTaZdMbDTOs;
895
- }
896
- });
897
- }
898
- }
899
- }
900
- };
901
- export default modules
1
+ import formOplogTable from "@base/components/formOplog/index.vue";
2
+ import preformDialog from "@base/views/bd/setting/form_template/preformDialog.vue";
3
+ import projectTagView from "@base/components/projectTag/view.vue";
4
+ import szTaMbDialog from "@base/views/bd/setting/table_model/dialog.vue";
5
+ import MenuKindDialog from "@base/views/bd/setting/menu_kind/dialog.vue";
6
+ import zdDialog from "@base/views/bd/setting/table_model/zdDialog.vue";
7
+ import {getBdFlag} from "@base/api/user";
8
+ import {getJsxBtn} from "@base/views/bd/setting/utils/index";
9
+
10
+ let modules = {};
11
+ modules = {
12
+ name: 'szTaMbEdit',
13
+ props: {
14
+ _dataId: [String, Number],
15
+ currentFormType: Object,
16
+ readonly: Boolean
17
+ },
18
+ components: {
19
+ formOplogTable,
20
+ preformDialog,
21
+ projectTagView,
22
+ szTaMbDialog,
23
+ MenuKindDialog,
24
+ zdDialog
25
+ },
26
+ data() {
27
+ return {
28
+ tabIndex: 0,
29
+ isEdit: false,
30
+ dataId: '',
31
+ szTaMb: {
32
+ enabled: true,
33
+ taType: 0,
34
+ szTaZdMbDTOs: [],
35
+ menuKindName: null,
36
+ menuKindCode: null,
37
+ serviceName: null,
38
+ taRule: 0,
39
+ dataRange: 0,
40
+ szTaMbTagDTOs: [],
41
+ fromTable: false,
42
+ taCh: null,
43
+ sszstEn: null,
44
+ taEn: null,
45
+ taBm: null
46
+ },
47
+ treeDefaultZds: [],
48
+ productOption: {},
49
+ showSzTaMbDialog: false,
50
+ showItemSzTaMbDialog: false,
51
+ showMenuKindDialog: false,
52
+ productCategoryCodes: [],
53
+ zdEnIndex: '',
54
+
55
+ referenceEntity: null,
56
+ referenceKey: null,
57
+ referenceShowFields: null,
58
+ refServiceName: null,
59
+ currentIndex: 0,
60
+ showReferenceZdDialog: false,
61
+
62
+ showEntityDialog: false,
63
+ showEntityFieldDialog1: false,
64
+ showEntityFieldDialog2: false,
65
+ referenceShowRows: [],
66
+ createdTableColumnStr: null,
67
+ createdTableColumnArray: [],
68
+ isDev: true,
69
+ showPreformDialog: false,
70
+ menuKindAuth: {
71
+ editAuth: 0
72
+ },
73
+
74
+ dbTable: null,
75
+ showDtDialog: false,
76
+ showTmDialog: false
77
+ };
78
+ },
79
+ created() {
80
+ if (this._dataId && !isNaN(this._dataId)) {
81
+ this.dataId = this._dataId;
82
+ } else {
83
+ this.szTaMb.menuKindName = this.currentFormType?.name || null;
84
+ this.szTaMb.menuKindCode = this.currentFormType?.menuKindCode || null;
85
+ this.szTaMb.serviceName = this.currentFormType?.serviceName || null;
86
+ }
87
+ },
88
+ mounted() {
89
+ this.getBdEnv();
90
+ this.getTreeDefaultZds();
91
+ this.initTableProduct();
92
+ this.getData();
93
+ },
94
+ methods: {
95
+ getData(callback) {
96
+ if (this.dataId && !isNaN(this.dataId)) {
97
+ this.isEdit = true;
98
+ this.$http({
99
+ aes: true,
100
+ url: USER_PREFIX + `/szTaMb/get`,
101
+ method: `post`,
102
+ data: {
103
+ id: this.dataId
104
+ },
105
+ isLoading: true,
106
+ modalStrictly: true,
107
+ success: res => {
108
+ if (!callback) {
109
+ let szTaMb = res.objx || {};
110
+ szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs;
111
+ szTaMb.attachmentDTOs = this.szTaMb.attachmentDTOs;
112
+ szTaMb.oplogDTOs = this.szTaMb.oplogDTOs;
113
+ this.szTaMb = szTaMb;
114
+
115
+ this.getCreatedTableColumns();
116
+ this.getMenuKindAuth(this.szTaMb.menuKindCode);
117
+ } else {
118
+ callback(res)
119
+ }
120
+ //获取操作日志数据
121
+ this.$refs['oplogTable'].initData({
122
+ param: () => {
123
+ return {
124
+ logType: "SzTaMb",
125
+ logObjCode: this.szTaMb.taCode
126
+ };
127
+ }
128
+ });
129
+
130
+ }
131
+ });
132
+ } else {
133
+ this.getMenuKindAuth(this.szTaMb.menuKindCode);
134
+ }
135
+ },
136
+ updateStatus(status) {
137
+ let text;
138
+ if (status === 3) {
139
+ text = this.$t1('您确定要作废吗?');
140
+ }
141
+ this.$baseConfirm(text).then(() => {
142
+ this.$http({
143
+ aes: true,
144
+ url: USER_PREFIX + `/szTaMb/updateStatus`,
145
+ method: `post`,
146
+ data: {
147
+ id: this.dataId,
148
+ status: status
149
+ },
150
+ isLoading: true,
151
+ success: res => {
152
+ this.$message({
153
+ message: res.content,
154
+ type: 'success',
155
+ duration: 500,
156
+ onClose: t => {
157
+ this.$baseReload();
158
+ }
159
+ });
160
+ }
161
+ });
162
+ });
163
+ },
164
+ saveData() {
165
+ this.$refs.editForm.$baseValidate(valid => {
166
+ if (valid) {
167
+ const szTaZdMbDTOs = this.$refs['table-szTaZdMb'].getTableData().fullData;
168
+ if (szTaZdMbDTOs.length === 0) {
169
+ this.$baseAlert(this.$t1('明细不能为空!'));
170
+ return false;
171
+ }
172
+ this.szTaMb.szTaZdMbDTOs = szTaZdMbDTOs;
173
+ this.openPreformDialog();
174
+
175
+ }
176
+ });
177
+ },
178
+ saveDataHandle(preformData) {
179
+ let formData = {
180
+ ...this.szTaMb,
181
+ logContent: preformData.logContent
182
+ };
183
+ // const formData = this.szTaMb;
184
+ // formData.szTaZdMbDTOs = szTaZdMbDTOs;
185
+
186
+ var url = USER_PREFIX + (this.isEdit ? `/szTaMb/update` : `/szTaMb/save`);
187
+ this.$http({
188
+ aes: true,
189
+ url: url,
190
+ method: `post`,
191
+ data: formData,
192
+ isLoading: true,
193
+ success: res => {
194
+ this.$message({
195
+ message: res.content,
196
+ type: 'success',
197
+ duration: 500,
198
+ onClose: t => {
199
+ if (this.isEdit) {
200
+ this.$baseReload();
201
+ } else {
202
+ this.$baseReload({
203
+ updateParam: {
204
+ _dataId: res.objx
205
+ }
206
+ });
207
+ }
208
+ }
209
+ });
210
+ }
211
+ });
212
+ },
213
+ openPreformDialog() {
214
+ this.showPreformDialog = true;
215
+ },
216
+ confirmPreformDialog(preformData) {
217
+ this.saveDataHandle(preformData);
218
+ },
219
+ initTableProduct() {
220
+ const tableOption = {
221
+ vue: this,
222
+ tableRef: 'table-szTaZdMb',
223
+ tableName: 'edit-szTaMb-szTaZdMb',
224
+ config: {
225
+ maxHeight: "600px"
226
+ },
227
+ columns: [
228
+ {type: 'checkbox', fixed: 'left', width: 48, resizable: false},
229
+ {
230
+ title: this.$t1('实体字段名称'),
231
+ field: 'zdEn',
232
+ width: 150,
233
+ fixed: 'left',
234
+ slots: {
235
+ default: "zdEn"
236
+ /*default: ({row, rowIndex, $table}) => {
237
+ let disabled = !!row.systems || !!row.relationZd;
238
+ if (!disabled) {
239
+ return [
240
+ <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.zdEn'}
241
+ rules={[{required: true, trigger: ['blur', 'change']}]}>
242
+ <el-input v-model={row.zdEn} clearable/>
243
+ </el-form-item>
244
+ ];
245
+ } else {
246
+ let style = !!row.relationZd ? "margin-left:20px" : "";
247
+ return [
248
+ <div style={style}>{row.zdEn}</div>
249
+ ]
250
+ }
251
+ }*/
252
+ }
253
+ },
254
+ {title: this.$t1('数据库表字段名'), field: 'taZdMc', width: 150, fixed: 'left',},
255
+ {
256
+ title: this.$t1('数据库表字段是否已创建'),
257
+ field: 'isFieldCreated',
258
+ width: 200,
259
+ slots: {
260
+ default: ({row, rowIndex, $table}) => {
261
+ let taZdMc = row.taZdMc;
262
+ let createdTableColumnArray = this.createdTableColumnArray;
263
+ return taZdMc && createdTableColumnArray.includes(taZdMc) ? "是" : "_";
264
+ }
265
+ }
266
+ },
267
+ {
268
+ title: this.$t1('字段描述'),
269
+ field: 'zdCh',
270
+ width: 150,
271
+ slots: {
272
+ default: 'zdCh'
273
+ /*default: ({row, rowIndex, $table}) => {
274
+ return [
275
+ <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.zdCh'}
276
+ rules={[{required: true, trigger: ['blur', 'change']}]}>
277
+ <el-input v-model={row.zdCh} clearable disabled={!!row.systems}/>
278
+ </el-form-item>
279
+ ];
280
+ }*/
281
+ }
282
+ },
283
+ {
284
+ title: this.$t1('字段类型'), field: 'zdType', width: 150,
285
+ slots: {
286
+ default: 'zdType'
287
+ }
288
+ },
289
+ {
290
+ title: this.$t1('关联字段'), field: 'referenceZd', width: 250,
291
+ slots: {
292
+ default: 'referenceZd'
293
+ }
294
+ },
295
+ {
296
+ title: this.$t1('关联表对应服务名'), field: 'refServiceName', width: 200
297
+ },
298
+ {
299
+ title: this.$t1('字段类型对应的默认值'),
300
+ field: 'zdTypeValues',
301
+ width: 150,
302
+ slots: {
303
+ default: 'zdTypeValues'
304
+ /*default: ({row, rowIndex, $table}) => {
305
+ let disabled = !!row.systems || !!row.relationZd;
306
+ return [
307
+ <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.zdTypeValues'}
308
+ rules={[{required: false, trigger: ['blur', 'change']}]}>
309
+ <el-input v-model={row.zdTypeValues} clearable disabled={disabled}/>
310
+ </el-form-item>
311
+ ];
312
+ }*/
313
+ }
314
+ },
315
+ {
316
+ title: this.$t1('是否必填项'),
317
+ field: 'required',
318
+ width: 140,
319
+ slots: {
320
+ default: "required"
321
+ /*default: ({row, $table, rowIndex}) => {
322
+ let disabled = !!row.systems || !!row.relationZd;
323
+ return [
324
+ <el-checkbox v-model={row.required} disabled={disabled}/>
325
+ ];
326
+ }*/
327
+ }
328
+ },
329
+ {
330
+ title: this.$t1('是否启用'),
331
+ field: 'enabled',
332
+ width: 120,
333
+ slots: {
334
+ default: "enabled"
335
+ /*default: ({row, $table, rowIndex}) => {
336
+ let disabled = !!row.systems || !!row.relationZd;
337
+ return [
338
+ <el-checkbox v-model={row.enabled} disabled={disabled}/>
339
+ ];
340
+ }*/
341
+ }
342
+ },
343
+
344
+ {
345
+ title: this.$t1('是否自动生成编码'),
346
+ field: 'generateCode',
347
+ width: 180,
348
+ slots: {
349
+ default: "generateCode"
350
+ /*default: ({row, $table, rowIndex}) => {
351
+ let disabled = !!row.systems || !!row.relationZd;
352
+ return [
353
+ <el-checkbox v-model={row.generateCode} disabled={disabled}/>
354
+ ];
355
+ }*/
356
+ }
357
+ },
358
+ /* {
359
+ title: this.$t1('数据库字段加密'),
360
+ field: 't1',
361
+ width: 180,
362
+ slots: {
363
+ default: "t1"
364
+ }
365
+ }, */
366
+ {
367
+ title: this.$t1('编码类型'),
368
+ field: 'codeType',
369
+ width: 150,
370
+ slots: {
371
+ default: "codeType"
372
+ /*default: ({row, rowIndex, $table}) => {
373
+ let disabled = !!row.systems || !!row.relationZd;
374
+ return [
375
+ <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.codeType'}
376
+ rules={[{required: false, trigger: ['blur', 'change']}]}>
377
+ <el-input v-model={row.codeType} clearable disabled={disabled}/>
378
+ </el-form-item>
379
+ ];
380
+ }*/
381
+ }
382
+ },
383
+ {
384
+ title: this.$t1('序号'),
385
+ field: 'orders',
386
+ width: 150,
387
+ slots: {
388
+ default: "orders"
389
+ /*default: ({row, rowIndex, $table}) => {
390
+ return [
391
+ <el-form-item prop={'szTaZdMbDTOs.' + rowIndex + '.orders'}
392
+ rules={[{required: false, trigger: ['blur', 'change']}]}>
393
+ <base-input-number v-model={row.orders} disabled={!!row.systems} onchange={() => {
394
+ this.changeOrders(row);
395
+ }}/>
396
+ </el-form-item>
397
+ ];
398
+ }*/
399
+ }
400
+ },
401
+ {
402
+ width: 47,
403
+ fixed: 'right',
404
+ title: '',
405
+ sortable: false,
406
+ slots: {
407
+ default: ({row, rowIndex, $table}) => {
408
+ let taZdMc = row.taZdMc;
409
+ let createdTableColumnArray = this.createdTableColumnArray || [];
410
+ let hasCreated = !!taZdMc && createdTableColumnArray.includes(taZdMc)
411
+ // let style = !row.relationZd ? "margin-left:20px" : "";
412
+ if (!row.systems && !hasCreated && !row.relationZd) {
413
+ //非内置,未创建字段,非关联表带出来的字段
414
+ return getJsxBtn({
415
+ iconName: "el-icon-delete",
416
+ content: this.$t1('删除'),
417
+ onclick: () => {
418
+ this.deleteItem(row, rowIndex);
419
+ }
420
+ });
421
+ }
422
+ }
423
+ }
424
+ }
425
+ ]
426
+ };
427
+ this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
428
+ this.productOption = opts;
429
+ });
430
+ if (this.dataId) {
431
+ this.$http({
432
+ aes: true,
433
+ url: USER_PREFIX + `/szTaMb/getSzTaZdMbs`,
434
+ method: `post`,
435
+ data: {
436
+ id: this.dataId
437
+ },
438
+ isLoading: true,
439
+ modalStrictly: true,
440
+ success: res => {
441
+ this.szTaMb.szTaZdMbDTOs = res.objx || [];
442
+ }
443
+ });
444
+ }
445
+ },
446
+ addTaMbItems() {
447
+ // let tacitly = true;
448
+ // if (this.customer.szTaZdMbDTOs.length > 0) {
449
+ // tacitly = false;
450
+ // }
451
+ // this.customer.szTaZdMbDTOs.push({tacitly: tacitly});
452
+ let newIndex = this.getNewIndex();
453
+ this.szTaMb.szTaZdMbDTOs.push({
454
+ zdType: 'Text',
455
+ enabled: true,
456
+ orders: newIndex,
457
+ generateCode: false,
458
+ fromTable: false
459
+ });
460
+ },
461
+ deleteItem(row, rowIndex) {
462
+ let referenceZd = row.referenceZd;
463
+ this.szTaMb.szTaZdMbDTOs.splice(rowIndex, 1);
464
+ if (referenceZd) {
465
+ this.szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs.filter(item => {
466
+ return referenceZd !== item.relationZd
467
+ })
468
+ }
469
+ },
470
+ confirmInsertSzTaMb(rows) {
471
+ if (rows.length > 0) {
472
+ let row = rows[0];
473
+ this.$set(this.szTaMb, 'sszst', row.taCode);
474
+ this.$set(this.szTaMb, 'sszstEn', row.taEn);
475
+ }
476
+ },
477
+ confirmInsertItemSzTaMb(rows) {
478
+ if (rows.length > 0) {
479
+ let row = rows[0];
480
+ let szTaZdMbDTO = this.szTaMb.szTaZdMbDTOs[this.zdEnIndex];
481
+ this.$set(szTaZdMbDTO, 'zdEn', row.taBm + '.' + szTaZdMbDTO.zdEn);
482
+ this.$set(szTaZdMbDTO, 'dybm', row.taEn);
483
+ }
484
+ },
485
+ confirmInsertMenuKind(rows) {
486
+ if (rows.length > 0) {
487
+ let row = rows[0];
488
+ this.$set(this.szTaMb, 'menuKindCode', row.menuKindCode);
489
+ this.$set(this.szTaMb, 'menuKindName', row.name);
490
+ }
491
+ },
492
+ getNewData(callback) {
493
+ this.getData((res0) => {
494
+ let szTaMb = res0.objx;
495
+ this.$http({
496
+ aes: true,
497
+ url: USER_PREFIX + `/szTaMb/getSzTaZdMbs`,
498
+ method: `post`,
499
+ data: {
500
+ id: this.dataId
501
+ },
502
+ isLoading: true,
503
+ modalStrictly: true,
504
+ success: res1 => {
505
+ szTaMb.szTaZdMbDTOs = res1.objx || [];
506
+ callback(szTaMb)
507
+ }
508
+ });
509
+ });
510
+ },
511
+ createModifyTable() {
512
+ let text = this.$t1('您确定要创建/更新数据表吗?');
513
+ this.$baseConfirm(text).then(() => {
514
+ this.getNewData((data) => {
515
+ this.$http({
516
+ aes: true,
517
+ url: "/" + this.szTaMb.serviceName + `/dbTable/createUpdateTable`,
518
+ method: `post`,
519
+ data: data,
520
+ isLoading: true,
521
+ success: res => {
522
+ this.$message({
523
+ message: res.content,
524
+ type: 'success',
525
+ duration: 500,
526
+ onClose: t => {
527
+ this.$baseReload();
528
+ }
529
+ });
530
+ }
531
+ });
532
+
533
+ });
534
+ });
535
+ },
536
+ openReferenceZdDialog(row, rowIndex, $table) {
537
+ let referenceZd = row.referenceZd;
538
+ let referenceEntity = null;
539
+ let referenceKey = null;
540
+ let referenceShowFields = [];
541
+
542
+ if (referenceZd) {
543
+ let index = referenceZd.indexOf(".")
544
+ referenceEntity = referenceZd.substring(0, index);
545
+ referenceKey = referenceZd.substr(index + 1);
546
+ referenceShowFields = this.szTaMb.szTaZdMbDTOs.filter(item => {
547
+ return referenceZd == item.relationZd
548
+ }).map(item => {
549
+ return item.referenceZd.substr(index + 1)
550
+ });
551
+ }
552
+
553
+ this.referenceEntity = referenceEntity;
554
+ this.referenceKey = referenceKey;
555
+ this.referenceShowFields = referenceShowFields;
556
+ this.refServiceName = row.refServiceName ?? null;
557
+
558
+ this.referenceShowRows = referenceShowFields.map(item => {
559
+ return {
560
+ taZdMc: item
561
+ }
562
+ });
563
+
564
+ this.currentIndex = rowIndex;
565
+ this.showReferenceZdDialog = true;
566
+ },
567
+ confirmReferenceZdDialog() {
568
+ let row = this.szTaMb.szTaZdMbDTOs[this.currentIndex];
569
+ let oldReferenceZd = row.referenceZd;
570
+
571
+ let referenceEntity = this.referenceEntity;
572
+ let refServiceName = this.refServiceName;
573
+ debugger
574
+ let referenceZd = referenceEntity + "." + this.referenceKey;
575
+ let referenceShowFields = this.referenceShowFields;
576
+ let keys = referenceShowFields.map(item => {
577
+ return referenceEntity + "." + item;
578
+ })
579
+ if (oldReferenceZd) {
580
+ let index0 = oldReferenceZd.indexOf(".")
581
+ let oldReferenceEntity = oldReferenceZd.substring(0, index0);
582
+ let delIndex = [];
583
+ if (referenceEntity != oldReferenceEntity) {
584
+ this.szTaMb.szTaZdMbDTOs.forEach((item, index) => {
585
+ if (item.relationZd && oldReferenceZd == item.relationZd) {
586
+ delIndex.push(index);
587
+ }
588
+ })
589
+ }/*else if (oldReferenceZd != referenceZd) {
590
+ this.szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs.forEach((item, index) => {
591
+ if (oldReferenceZd == item.relationZd) {
592
+ delIndex.push(index)
593
+ }
594
+ })
595
+ }*/ else {
596
+ this.szTaMb.szTaZdMbDTOs.forEach((item, index) => {
597
+ if (oldReferenceZd == item.relationZd) {
598
+ if (!keys.includes(item.referenceZd)) {
599
+ delIndex.push(index)
600
+ } else {
601
+ item.refServiceName = refServiceName;
602
+ }
603
+
604
+ }
605
+ })
606
+ }
607
+ if (delIndex.length) {
608
+ /*this.szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs.filter((item, index) => {
609
+ return !delIndex.includes(index);
610
+ })*/
611
+ delIndex.reverse().forEach(i => {
612
+ this.szTaMb.szTaZdMbDTOs.splice(i, 1)
613
+ })
614
+ }
615
+ }
616
+
617
+ /*let addReferenceShowFields = referenceShowFields.filter((item, index) => {
618
+ return !keys.includes(item)
619
+ })*/
620
+ let oldKeys = this.szTaMb.szTaZdMbDTOs.filter(item => referenceZd == item.relationZd).map(item => item.referenceZd)
621
+ let addReferenceShowFields = referenceShowFields.filter((item, index) => {
622
+ return !oldKeys.includes(referenceEntity + "." + item)
623
+ })
624
+
625
+ let addIndex = -1;
626
+ let lastIndex = this.szTaMb.szTaZdMbDTOs.findLastIndex(item => {
627
+ return referenceZd == item.relationZd
628
+ });
629
+ addIndex = lastIndex >= 0 ? (lastIndex + 1) : (this.currentIndex + 1);
630
+
631
+ let referenceShowRows = this.referenceShowRows;
632
+
633
+ let addReferenceShowRows = referenceShowRows.filter((item, index) => {
634
+ return addReferenceShowFields.includes(item.taZdMc)
635
+ })
636
+ addReferenceShowRows.forEach((item, index) => {
637
+ let rIndex = addIndex + index;
638
+ let orders = (row.orders || 0) + index + 1;
639
+ let newItem = {
640
+ zdEn: "ref_" + item.zdEn,
641
+ taZdMc: null,
642
+ zdCh: item.zdCh,
643
+ zdType: "Text",
644
+ referenceZd: referenceEntity + "." + item.taZdMc,
645
+ relationZd: referenceZd,
646
+ refServiceName,
647
+ zdTypeValues: null,
648
+ required: false,
649
+ enabled: true,
650
+ requiredMsg: null,
651
+ regexp: null,
652
+ regexpMsg: null,
653
+ orders
654
+ };
655
+ this.szTaMb.szTaZdMbDTOs.splice(rIndex, 0, newItem);
656
+ });
657
+ row.referenceZd = referenceZd
658
+ row.refServiceName = refServiceName
659
+ this.handleReferenceOrders(row);
660
+ this.showReferenceZdDialog = false;
661
+ },
662
+ changeOrders(row) {
663
+ this.handleReferenceOrders(row);
664
+ },
665
+ handleReferenceOrders(row) {
666
+ let referenceZd = row.referenceZd;
667
+ let orders = row.orders || 0;
668
+ if (referenceZd) {
669
+ this.szTaMb.szTaZdMbDTOs.filter(item => referenceZd === item.relationZd).forEach((item, index) => {
670
+ if (referenceZd === item.relationZd) {
671
+ item.orders = orders + index + 1;
672
+ }
673
+ })
674
+ }
675
+ },
676
+ confirmEntityDialog(rows) {
677
+ if (rows.length) {
678
+ let row = rows[0];
679
+ if (this.referenceEntity != row.taBm) {
680
+ this.referenceKey = null;
681
+ this.referenceShowFields = [];
682
+ }
683
+ this.referenceEntity = row.taBm;
684
+ this.refServiceName = row.serviceName;
685
+ }
686
+ },
687
+ confirmEntityFieldDialog1(rows) {
688
+ if (rows.length) {
689
+ let row = rows[0];
690
+ this.referenceKey = row.taZdMc;
691
+ }
692
+ },
693
+ confirmEntityFieldDialog2(rows) {
694
+ if (rows.length) {
695
+ this.referenceShowRows = rows;
696
+ this.referenceShowFields = rows.map(row => {
697
+ return row.taZdMc;
698
+ });
699
+ }
700
+ },
701
+ getCreatedTableColumns() {
702
+ if (!this.szTaMb.taBm) return;
703
+ this.$http({
704
+ aes: true,
705
+ url: "/" + this.szTaMb.serviceName + "/dbTable/getTableColumns",
706
+ method: `post`,
707
+ data: {
708
+ stringOne: this.szTaMb.taBm
709
+ },
710
+ isLoading: true,
711
+ modalStrictly: true,
712
+ success: res => {
713
+ if (res.objx) {
714
+ this.createdTableColumnStr = res.objx;
715
+ let createdTableColumnArray = res.objx.split(",").filter(item => !!item);
716
+ this.createdTableColumnArray = createdTableColumnArray;
717
+ }
718
+ }
719
+ });
720
+ },
721
+ getTreeDefaultZds() {
722
+ this.$http({
723
+ aes: true,
724
+ url: USER_PREFIX + `/szTaMb/getTreeDefaultZds`,
725
+ method: `post`,
726
+ data: {},
727
+ isLoading: true,
728
+ modalStrictly: true,
729
+ success: res => {
730
+ let rows = res.objx || []
731
+ this.treeDefaultZds = rows
732
+ }
733
+ });
734
+ },
735
+ hasFieldCreated(row) {
736
+ let taZdMc = row.taZdMc;
737
+ let createdTableColumnArray = this.createdTableColumnArray || [];
738
+ let hasCreated = !!taZdMc && createdTableColumnArray.includes(taZdMc)
739
+ return hasCreated;
740
+ },
741
+ changeTaRule(val) {
742
+ let treeDefaultZds = this.$baseLodash.cloneDeep(this.treeDefaultZds);
743
+ let szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs;
744
+ if (val == 1) {
745
+ let zdEns = szTaZdMbDTOs.filter(item => !!item.zdEn).map(item => item.zdEn);
746
+ if (zdEns.length) {
747
+ treeDefaultZds = treeDefaultZds.filter(item => {
748
+ return !zdEns.includes(item.zdEn);
749
+ })
750
+ }
751
+ let newIndex = this.getNewIndex();
752
+ treeDefaultZds.forEach((item, index) => {
753
+ item.orders = newIndex + index;
754
+ })
755
+ szTaZdMbDTOs.push(...treeDefaultZds);
756
+ } else {
757
+ let zdEns = szTaZdMbDTOs.filter(item => !!item.zdEn).map(item => item.zdEn);
758
+ let createdFields = szTaZdMbDTOs.filter(item => {
759
+ return !!item.zdEn && this.hasFieldCreated(item)
760
+ }).map(item => item.zdEn);
761
+ if (zdEns.length) {
762
+ treeDefaultZds = treeDefaultZds.filter(item => {
763
+ return !createdFields.includes(item.zdEn) && zdEns.includes(item.zdEn);
764
+ })
765
+ }
766
+ let delFields = treeDefaultZds.map(item => item.zdEn);
767
+ this.szTaMb.szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs.filter(item => !delFields.includes(item.zdEn))
768
+ }
769
+
770
+ },
771
+ getNewIndex() {
772
+ let min = 100
773
+ let szTaZdMbDTOs = this.szTaMb.szTaZdMbDTOs;
774
+ let value = 0;
775
+ szTaZdMbDTOs.filter(item => !item.systems).forEach(item => {
776
+ if (item.orders !== null && item.orders !== undefined) {
777
+ value = Math.max(value, item.orders)
778
+ }
779
+ })
780
+ let newIndex = Math.max(min, (value + 10));
781
+ return newIndex;
782
+ },
783
+ getBdEnv() {
784
+ getBdFlag({
785
+ success: res => {
786
+ this.isDev = res.objx == 1
787
+ }
788
+ });
789
+ },
790
+ getMenuKindAuth(menuKindCode) {
791
+ if (menuKindCode) {
792
+ this.$http({
793
+ aes: true,
794
+ url: USER_PREFIX + '/menu_kind_auth/getAuth',
795
+ method: `post`,
796
+ data: {stringOne: menuKindCode},
797
+ isLoading: true,
798
+ success: res => {
799
+ this.menuKindAuth = res.objx || {}
800
+ }
801
+ });
802
+ }
803
+ },
804
+ openDtDialog() {
805
+ //引用数据库中数据表结构
806
+ this.dbTable = null;
807
+ this.showDtDialog = true;
808
+ },
809
+ confirmDtDialog() {
810
+ let dbTable = this.dbTable;
811
+ if (!dbTable) {
812
+ this.$baseAlert(this.$t1("数据表不能为空"));
813
+ return
814
+ }
815
+ this.showDtDialog = false;
816
+ this.$http({
817
+ // aes: true,
818
+ url: "/" + this.szTaMb.serviceName + `/dbTable/getSzTaZdMbs`,
819
+ method: `post`,
820
+ data: {
821
+ stringOne: dbTable
822
+ },
823
+ isLoading: true,
824
+ success: res => {
825
+ let items = res.objx || [];
826
+ if (!items.length) {
827
+ this.$baseAlert(this.$t1("数据表[{dbTable}]不存在", {dbTable}));
828
+ return
829
+ }
830
+ let szTaZdMbDTOs = items.filter(item => !item.systems).map(item => {
831
+ return {
832
+ ...item,
833
+ createBy: null,
834
+ createDate: null,
835
+ fromTable: true,
836
+ id: null,
837
+ modifyBy: null,
838
+ modifyDate: null
839
+ }
840
+ })
841
+ this.szTaMb.taEn = dbTable;
842
+ this.szTaMb.taBm = dbTable;
843
+ this.szTaMb.szTaZdMbDTOs = szTaZdMbDTOs;
844
+ }
845
+ });
846
+ },
847
+ openTmDialog() {
848
+ //引用数据表定义的结构
849
+ this.showTmDialog = true;
850
+ },
851
+ confirmTmDialog(rows) {
852
+ if (rows.length) {
853
+ let row = rows[0];
854
+ this.$http({
855
+ aes: true,
856
+ url: USER_PREFIX + `/szTaMb/getSzTaZdMbs`,
857
+ method: `post`,
858
+ data: {
859
+ id: row.id
860
+ },
861
+ isLoading: true,
862
+ modalStrictly: true,
863
+ success: res => {
864
+ let items = res.objx || [];
865
+ let szTaZdMbDTOs = items.filter(item => !item.systems).map(item => {
866
+ return {
867
+ ...item,
868
+ createBy: null,
869
+ createDate: null,
870
+ fromTable: true,
871
+ id: null,
872
+ modifyBy: null,
873
+ modifyDate: null
874
+ }
875
+ })
876
+ let newRow = {
877
+ ...row,
878
+ createBy: null,
879
+ createDate: null,
880
+ fromTable: true,
881
+ id: null,
882
+ modifyBy: null,
883
+ modifyDate: null,
884
+ sid: null,
885
+ // taBm: null,
886
+ taCode: null
887
+ }
888
+ Object.keys(newRow).forEach(key => {
889
+ if (key.endsWith('DTOs')) {
890
+ delete newRow[key]
891
+ }
892
+ })
893
+ Object.assign(this.szTaMb, newRow);
894
+ this.szTaMb.szTaZdMbDTOs = szTaZdMbDTOs;
895
+ }
896
+ });
897
+ }
898
+ }
899
+ }
900
+ };
901
+ export default modules