cloud-web-corejs 1.0.54-dev.146 → 1.0.54-dev.149

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 (29) hide show
  1. package/package.json +1 -1
  2. package/src/components/table/CellSlot.vue +1 -0
  3. package/src/components/table/vxeFilter/mixin.js +1 -1
  4. package/src/components/vb-tabs/x-tabs.vue +3 -2
  5. package/src/components/xform/form-designer/designer.js +1 -1514
  6. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1230 -1
  7. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +4 -2
  8. package/src/components/xform/form-designer/indexMixin.js +3 -1
  9. package/src/components/xform/form-designer/setting-panel/form-setting.vue +8 -0
  10. package/src/components/xform/form-designer/setting-panel/indexMixin.js +322 -1
  11. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +76 -30
  12. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +20 -8
  13. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +2 -2
  14. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +7 -1
  15. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +1 -566
  16. package/src/components/xform/form-designer/widget-panel/indexMixin.js +276 -1
  17. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +36 -1
  18. package/src/components/xform/form-render/container-item/containerItemMixin.js +330 -1
  19. package/src/components/xform/form-render/container-item/data-table-item.vue +42 -20
  20. package/src/components/xform/form-render/container-item/data-table-mixin.js +140 -191
  21. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  22. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  23. package/src/components/xform/form-render/container-item/tab-item.vue +11 -6
  24. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  25. package/src/components/xform/form-render/container-item/table-item.vue +4 -2
  26. package/src/components/xform/form-render/indexMixin.js +13 -11
  27. package/src/components/xform/mixins/scriptHttp.js +106 -61
  28. package/src/views/user/form/vform/designer.vue +8 -3
  29. package/src/views/user/form/view/list.vue +27 -9
@@ -1,22 +1,27 @@
1
1
  <template>
2
2
  <container-item-wrapper :widget="widget" :class="widget.options.isFullscreen ? 'full-height':''">
3
3
  <div :key="widget.id" class="tab-container" v-show="!widget.options.hidden">
4
- <el-tabs v-model="activeTabName" :type="widget.displayType" :ref="widget.id" :class="[customClass,widget.options.tabClass]" :style="{'height': widget.options.isFullscreen ? '' : widget.options.height}">
5
- <el-tab-pane v-for="(tab, index) in visibleTabs" :key="index" :label="getI18nLabel(tab.options.label)" :disabled="tab.options.disabled" :name="tab.options.name">
4
+ <el-tabs v-model="activeTabName" :type="widget.displayType" :ref="widget.id"
5
+ :class="[customClass,widget.options.tabClass]"
6
+ :style="{'height': widget.options.isFullscreen ? '' : widget.options.height}">
7
+ <el-tab-pane v-for="(tab, index) in visibleTabs" :key="index" :label="getI18nLabel(tab.options.label)"
8
+ :disabled="tab.options.disabled" :name="tab.options.name">
6
9
  <template v-for="(subWidget, swIdx) in tab.widgetList">
7
10
  <template v-if="'container' === subWidget.category">
8
- <component :is="subWidget.type + '-item'" :widget="subWidget" :key="swIdx" :parent-list="tab.widgetList" :index-of-parent-list="swIdx" :parent-widget="widget">
11
+ <component :is="subWidget.type + '-item'" :widget="subWidget" :key="swIdx" :parent-list="tab.widgetList"
12
+ :index-of-parent-list="swIdx" :parent-widget="widget" :tableParam="tableParam" :formItemProp="formItemProp">
9
13
  <!-- 递归传递插槽!!! -->
10
14
  <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
11
- <slot :name="slot" v-bind="scope" />
15
+ <slot :name="slot" v-bind="scope"/>
12
16
  </template>
13
17
  </component>
14
18
  </template>
15
19
  <template v-else>
16
- <component :is="subWidget.type + '-widget'" :field="subWidget" :key="swIdx" :parent-list="tab.widgetList" :index-of-parent-list="swIdx" :parent-widget="widget">
20
+ <component :is="subWidget.type + '-widget'" :field="subWidget" :key="swIdx" :parent-list="tab.widgetList"
21
+ :index-of-parent-list="swIdx" :parent-widget="widget" :tableParam="tableParam" :formItemProp="formItemProp">
17
22
  <!-- 递归传递插槽!!! -->
18
23
  <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
19
- <slot :name="slot" v-bind="scope" />
24
+ <slot :name="slot" v-bind="scope"/>
20
25
  </template>
21
26
  </component>
22
27
  </template>
@@ -5,7 +5,7 @@
5
5
  <template v-for="(subWidget, swIdx) in widget.widgetList">
6
6
  <template v-if="'container' === subWidget.category">
7
7
  <component :is="subWidget.type + '-item'" :widget="subWidget" :key="swIdx" :parent-list="widget.widgetList"
8
- :index-of-parent-list="swIdx" :parent-widget="widget">
8
+ :index-of-parent-list="swIdx" :parent-widget="widget" :tableParam="tableParam" :formItemProp="formItemProp">
9
9
  <!-- 递归传递插槽!!! -->
10
10
  <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
11
11
  <slot :name="slot" v-bind="scope"/>
@@ -14,7 +14,7 @@
14
14
  </template>
15
15
  <template v-else>
16
16
  <component :is="subWidget.type + '-widget'" :field="subWidget" :key="swIdx" :parent-list="widget.widgetList"
17
- :index-of-parent-list="swIdx" :parent-widget="widget">
17
+ :index-of-parent-list="swIdx" :parent-widget="widget" :tableParam="tableParam" :formItemProp="formItemProp">
18
18
  <!-- 递归传递插槽!!! -->
19
19
  <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
20
20
  <slot :name="slot" v-bind="scope"/>
@@ -26,42 +26,48 @@
26
26
  </template>
27
27
 
28
28
  <script>
29
- import emitter from '../../../../components/xform/utils/emitter'
30
- import i18n from "../../../../components/xform/utils/i18n"
31
- import refMixin from "../../../../components/xform/form-render/refMixin"
32
- import FieldComponents from '../../../../components/xform/form-designer/form-widget/field-widget/index'
29
+ import emitter from '../../../../components/xform/utils/emitter'
30
+ import i18n from "../../../../components/xform/utils/i18n"
31
+ import refMixin from "../../../../components/xform/form-render/refMixin"
32
+ import FieldComponents from '../../../../components/xform/form-designer/form-widget/field-widget/index'
33
33
 
34
- export default {
35
- name: "TableCellItem",
36
- componentName: "ContainerItem",
37
- mixins: [emitter, i18n, refMixin],
38
- components: {
39
- ...FieldComponents,
40
- },
41
- props: {
42
- widget: Object,
34
+ export default {
35
+ name: "TableCellItem",
36
+ componentName: "ContainerItem",
37
+ mixins: [emitter, i18n, refMixin],
38
+ components: {
39
+ ...FieldComponents,
40
+ },
41
+ props: {
42
+ widget: Object,
43
43
 
44
- rowIndex: Number,
45
- colIndex: Number,
44
+ rowIndex: Number,
45
+ colIndex: Number,
46
+ tableParam: {
47
+ type: Object,
48
+ default: null,
46
49
  },
47
- inject: ['refList', 'globalModel'],
48
- computed: {
49
- customClass() {
50
- return this.widget.options.customClass || ''
51
- },
52
- tdClass(){
53
- return (this.colIndex+1)%2 ==0 ? "":"odd"
54
- },
55
-
50
+ formItemProp: {
51
+ type: String,
52
+ default: null,
53
+ },
54
+ },
55
+ inject: ['refList', 'globalModel'],
56
+ computed: {
57
+ customClass() {
58
+ return this.widget.options.customClass || ''
56
59
  },
57
- created() {
58
- /* tableCell不生成组件引用,故无须调用initRefList!! */
59
- //this.initRefList()
60
+ tdClass() {
61
+ return (this.colIndex + 1) % 2 == 0 ? "" : "odd"
60
62
  },
61
- methods: {
62
63
 
63
- }
64
- }
64
+ },
65
+ created() {
66
+ /* tableCell不生成组件引用,故无须调用initRefList!! */
67
+ //this.initRefList()
68
+ },
69
+ methods: {}
70
+ }
65
71
  </script>
66
72
 
67
73
  <style lang="scss" scoped>
@@ -3,12 +3,14 @@
3
3
 
4
4
  <div :key="widget.id" class="table-container"
5
5
  v-show="!widget.options.hidden">
6
- <table :ref="widget.id" class="table-layout table-d-box" :class="[customClass,widget.options.styleTableClass]" :style="tableStyle">
6
+ <table :ref="widget.id" class="table-layout table-d-box" :class="[customClass,widget.options.styleTableClass]"
7
+ :style="tableStyle">
7
8
  <tbody>
8
9
  <tr v-for="(row, rowIdx) in widget.rows" :key="row.id">
9
10
  <template v-for="(colWidget, colIdx) in row.cols">
10
11
  <table-cell-item v-if="!colWidget.merged" :widget="colWidget" :key="colIdx" :parent-list="widget.cols"
11
- :row-index="rowIdx" :col-index="colIdx" :parent-widget="widget">
12
+ :row-index="rowIdx" :col-index="colIdx" :parent-widget="widget" :tableParam="tableParam"
13
+ :formItemProp="formItemProp">
12
14
  <!-- 递归传递插槽!!! -->
13
15
  <template v-for="slot in Object.keys($scopedSlots)" v-slot:[slot]="scope">
14
16
  <slot :name="slot" v-bind="scope"/>
@@ -116,6 +116,7 @@ modules = {
116
116
  let e = this;
117
117
  return {
118
118
  refList: this.widgetRefList,
119
+ widgetKeyNameMap: this.widgetKeyNameMap,
119
120
  sfRefList: this.subFormRefList,
120
121
  getFormConfig: function () {
121
122
  return e.formJsonObj.formConfig;
@@ -156,6 +157,7 @@ modules = {
156
157
  formDataModel: {},
157
158
  widgetRefList: {},
158
159
  subFormRefList: {},
160
+ widgetKeyNameMap: {},
159
161
  formId: null,
160
162
  externalComponents: {},
161
163
  readModeFlag: !1,
@@ -406,7 +408,7 @@ modules = {
406
408
  })
407
409
  }*/
408
410
  let flag = this.hanldeWfWidgetItem(target)
409
- if(!hasModifyItem && flag){
411
+ if (!hasModifyItem && flag) {
410
412
  hasModifyItem = true
411
413
  }
412
414
  if (!saveButton && widget?.options?.saveButton) {
@@ -418,7 +420,7 @@ modules = {
418
420
  saveButton.setHidden(false);
419
421
  }
420
422
  },
421
- hanldeWfWidgetItem(target){
423
+ hanldeWfWidgetItem(target) {
422
424
  let hasModifyItem = false;
423
425
  let widget = target.field || target.widget;
424
426
  let wfEdit = widget?.options.wfEdit;
@@ -430,8 +432,8 @@ modules = {
430
432
  let companyCode = this.$store.getters.companyCode;
431
433
  let taskStep = (wfInfo.taskStep ?? "") + "";
432
434
 
433
- let handleWfConfigData = (options)=>{
434
- if(!options || !options.wfEdit)return
435
+ let handleWfConfigData = (options) => {
436
+ if (!options || !options.wfEdit) return
435
437
  let wfConfigData = options.wfConfigData || [];
436
438
  wfConfigData.forEach(item => {
437
439
 
@@ -447,14 +449,14 @@ modules = {
447
449
  if (type === 1) {
448
450
  //可编辑
449
451
  hasModifyItem = true;
450
- if(options.disabled!==undefined)options.disabled = false;
452
+ if (options.disabled !== undefined) options.disabled = false;
451
453
  // target.setDisabled && target.setDisabled(false);
452
454
  // target.setHidden(false);
453
455
  options.hidden = false;
454
456
  } else if (type === 2) {
455
457
  //仅显示
456
458
  // target.setDisabled && target.setDisabled(true);
457
- if(options.disabled!==undefined)options.disabled = true;
459
+ if (options.disabled !== undefined) options.disabled = true;
458
460
  // target.setHidden(false);
459
461
  options.hidden = false;
460
462
  } else if (type === 3) {
@@ -462,7 +464,7 @@ modules = {
462
464
  options.hidden = true;
463
465
  }
464
466
  }
465
- }else if(type == "data-table"){
467
+ } else if (type == "data-table") {
466
468
  target.options.tableColumns.forEach(item => {
467
469
  handleWfConfigData(item.columnOption)
468
470
  })
@@ -541,8 +543,8 @@ modules = {
541
543
  });*/
542
544
  }
543
545
  };
544
- if(formConfig.wfStartBindSave){
545
- option.onStart = (done)=>{
546
+ if (formConfig.wfStartBindSave) {
547
+ option.onStart = (done) => {
546
548
  let formRef = this.getFormRef ? this.getFormRef() : this;
547
549
  formRef.validate(valid => {
548
550
  if (valid) {
@@ -550,9 +552,9 @@ modules = {
550
552
  }
551
553
  });
552
554
  }
553
- option.onBeforeStartSubmit = (done)=>{
555
+ option.onBeforeStartSubmit = (done) => {
554
556
  this.saveDefaultHandle({
555
- config:{
557
+ config: {
556
558
  successMsg: false,
557
559
  isConfirm: false,
558
560
  success: res => {
@@ -10,71 +10,116 @@ modules = {
10
10
  });
11
11
  },*/
12
12
  formHttp(opts) {
13
- let toDo = () => {
14
- let data = opts.data;
15
- let scriptCode = opts.scriptCode;
16
- let success = opts.success;
17
- delete opts.data
18
- delete opts.scriptCode
19
- delete opts.formCode
20
- delete opts.success
13
+ let data = opts.data;
14
+ let scriptCode = opts.scriptCode;
15
+ let formCode = opts.formCode;
16
+ let isLoading = opts.isLoading ?? false;
17
+ let success = opts.success;
18
+ let fail = opts.fail;
19
+ let error = opts.fail;
20
+ delete opts.data
21
+ delete opts.scriptCode
22
+ delete opts.formCode
23
+ delete opts.isLoading
24
+ delete opts.success
25
+ delete opts.fail
26
+ delete opts.error
21
27
 
22
- let reqData;
23
- reqData = data;
24
- /*if (opts.url) {
25
- reqData = data;
26
- } else {
27
- reqData = {
28
- scriptCode: scriptCode,
29
- conditions: data
30
- };
31
- }*/
28
+ let that = this;
29
+ let getFormTemplate = (callback)=>{
30
+ let reportTemplate = that.getFormRef ? that.getFormRef().reportTemplate : that.reportTemplate;
31
+ if(formCode && formCode !== reportTemplate.formCode){
32
+ that.$http({
33
+ aes: true,
34
+ url: USER_PREFIX + `/formTemplate/getByFormCode`,
35
+ method: `post`,
36
+ data: {
37
+ stringOne: formCode
38
+ },
39
+ isLoading,
40
+ loadingTarget: document.body,
41
+ // modalStrictly: true,
42
+ success: res => {
43
+ let formTemplate = res.objx || {};
44
+ callback(formTemplate)
45
+ }
46
+ });
47
+ }else{
48
+ callback(reportTemplate)
49
+ }
32
50
 
33
- let reportGlobalMap = getReportGlobalMap() || {};
51
+ }
52
+ let toDo = () => {
53
+ return new Promise((resolve, reject) => {
54
+ getFormTemplate(reportTemplate=>{
55
+ let reqData;
56
+ reqData = data;
57
+ /*if (opts.url) {
58
+ reqData = data;
59
+ } else {
60
+ reqData = {
61
+ scriptCode: scriptCode,
62
+ conditions: data
63
+ };
64
+ }*/
34
65
 
35
- let reportTemplate = this.getFormRef ? this.getFormRef().reportTemplate : this.reportTemplate;
36
- let formCode = reportTemplate.formCode;
37
- let url = "/" + reportTemplate.serviceName + `/bd_api/${formCode}/${scriptCode}`;
38
- // let url = BD_PREFIX + `/formScript/exeScript`;
39
- return this.$http({
40
- aes: true,
41
- url: url,
42
- method: `post`,
43
- loadingTarget: document.body,
44
- loading: true,
45
- ...opts,
46
- data: {
47
- // scriptCode: scriptCode,
48
- fixeData: reportGlobalMap,
49
- ...reqData
50
- },
51
- success: res => {
52
- if (opts.successMsg) {
53
- this.$message({
54
- message: res.content,
55
- type: 'success',
56
- duration: 1000
57
- });
58
- }
59
- success && success(res);
60
- if (opts.wfConfig) {
61
- let formTarget = this.getFormRef ? this.getFormRef() : this;
62
- let wfConfig = opts.wfConfig(res);
63
- if (wfConfig) {
64
- let reportTemplate = this.getFormRef ? this.getFormRef().reportTemplate : this.reportTemplate;
65
- let serviceId = wfConfig.serviceId || reportTemplate?.serviceName;
66
- let opt2 = Object.assign({}, wfConfig, {
67
- serviceId: serviceId
68
- });
69
- //初始化流程
70
- let target1 = formTarget.$attrs['parent-target'];
71
- let target2 = target1?.$attrs['parent-target'];
72
- let target = !target2 ? this : target1;
73
- initWf.call(target, opt2);
66
+ let reportGlobalMap = getReportGlobalMap() || {};
67
+
68
+ // let reportTemplate = this.getFormRef ? this.getFormRef().reportTemplate : this.reportTemplate;
69
+ let url = `/${reportTemplate.serviceName}/bd_api/${reportTemplate.formCode}/${scriptCode}`;
70
+ // let url = BD_PREFIX + `/formScript/exeScript`;
71
+ return this.$http({
72
+ aes: true,
73
+ url: url,
74
+ method: `post`,
75
+ loadingTarget: document.body,
76
+ isLoading,
77
+ ...opts,
78
+ data: {
79
+ // scriptCode: scriptCode,
80
+ fixeData: reportGlobalMap,
81
+ ...reqData
82
+ },
83
+ success: res => {
84
+ if (opts.successMsg) {
85
+ this.$message({
86
+ message: res.content,
87
+ type: 'success',
88
+ duration: 1000
89
+ });
90
+ }
91
+ success && success(res);
92
+ if (opts.wfConfig) {
93
+ let formTarget = this.getFormRef ? this.getFormRef() : this;
94
+ let wfConfig = opts.wfConfig(res);
95
+ if (wfConfig) {
96
+ // let reportTemplate = this.getFormRef ? this.getFormRef().reportTemplate : this.reportTemplate;
97
+ let serviceId = wfConfig.serviceId || reportTemplate?.serviceName;
98
+ let opt2 = Object.assign({}, wfConfig, {
99
+ serviceId: serviceId
100
+ });
101
+ //初始化流程
102
+ let target1 = formTarget.$attrs['parent-target'];
103
+ let target2 = target1?.$attrs['parent-target'];
104
+ let target = !target2 ? this : target1;
105
+ initWf.call(target, opt2);
106
+ }
107
+ }
108
+ resolve(res);
109
+ },
110
+ fail: res=>{
111
+ fail && fail(res);
112
+ resolve(res);
113
+ },
114
+ error: e=>{
115
+ error && error(e);
116
+ reject(e);
74
117
  }
75
- }
76
- }
77
- });
118
+ });
119
+ })
120
+
121
+
122
+ })
78
123
  }
79
124
  if (opts.isConfirm) {
80
125
  this.$baseConfirm(opts.confirmText).then(() => {
@@ -14,6 +14,7 @@
14
14
  v-if="showDesinger"
15
15
  :readonly="readonly"
16
16
  :columnFlag="columnFlag"
17
+ @customConfirm="customConfirm"
17
18
  />
18
19
  </div><!--
19
20
  <el-tabs v-model="activeName" class="tab-boxCard tabCard-sty1" v-if="showDesinger">
@@ -37,7 +38,7 @@ export default {
37
38
  props: {
38
39
  formCode: String,
39
40
  readonly: Boolean,
40
- formTemplate:Object,
41
+ formTemplate: Object,
41
42
  widgetList: Array,
42
43
  columnFlag: Boolean,
43
44
  },
@@ -95,15 +96,16 @@ export default {
95
96
  getTemplate() {
96
97
  /* this.showDesinger = true;
97
98
  return */
98
- if(this.columnFlag){
99
+ if (this.columnFlag) {
99
100
  this.reportTemplate = this.formTemplate;
100
101
  this.showDesinger = true;
101
102
  this.$nextTick(() => {
102
103
  let formJson = this.$baseLodash.cloneDeep({
103
- widgetList:this.widgetList
104
+ widgetList: this.widgetList
104
105
  });
105
106
  this.$refs.designer.setFormJson(formJson);
106
107
  })
108
+ return
107
109
  }
108
110
  this.$http({
109
111
  aes: true,
@@ -751,6 +753,9 @@ export default {
751
753
  },
752
754
  reflushTemplateList() {
753
755
  this.$emit("reflushTemplateList");
756
+ },
757
+ customConfirm(json) {
758
+ this.$emit("customConfirm", json);
754
759
  }
755
760
  }
756
761
  };
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div id="containt">
3
3
  <template v-if="layoutType=='PC'">
4
- <el-tabs v-model="activeName" class="tab-box">
4
+ <x-tabs ref="xTabs" v-model="activeName" class="tab-box">
5
5
  <el-tab-pane :label="$t2('常规')" name="first">
6
6
  <vFormRender :formCode="formCode2" :dataId.sync="dataId" :param="param"
7
7
  v-if="showEdit" visible-key="showEdit" :parent-target="_self"
@@ -14,7 +14,15 @@
14
14
  @reload="$reloadHandle" :openEditDialog="openEditDialog"></vFormRender>
15
15
  </div>
16
16
  </el-tab-pane>
17
- </el-tabs>
17
+ <template #editTab="{tab,index,reloadTabContent}">
18
+ <el-tab-pane :key="tab.data.id" :label="tab.data[multiTabLabelField]" :name="tab.data.id+''"
19
+ :closable="true">
20
+ <vFormRender :formCode="formCode2" :dataId.sync="tab.dataId" :param="tab.param"
21
+ v-if="tab.showContent" :parent-target="_self"
22
+ @reload="reloadTabContent"></vFormRender>
23
+ </el-tab-pane>
24
+ </template>
25
+ </x-tabs>
18
26
  </template>
19
27
  <template v-else-if="layoutType=='H5'">
20
28
  <el-dialog
@@ -69,7 +77,8 @@ export default {
69
77
  formCode2: null,
70
78
  dataId: null,
71
79
  showEditDialog: false,
72
- param: {}
80
+ param: {},
81
+ multiTabLabelField:null
73
82
  };
74
83
  },
75
84
  created() {
@@ -100,6 +109,7 @@ export default {
100
109
  this.formJson = formJson;
101
110
  this.layoutType = formJson.formConfig?.layoutType
102
111
  this.formCode2 = formJson.formConfig?.editFormCode ?? null;
112
+ this.multiTabLabelField = formJson.formConfig?.multiTabLabelField
103
113
  }
104
114
  });
105
115
  },
@@ -108,12 +118,20 @@ export default {
108
118
  this.openEditH5Dialog(row);
109
119
  return;
110
120
  }
111
- this.dataId = row && row.id ? row.id : null;
112
- this.activeName = 'first';
113
- this.showEdit = false;
114
- this.showEditDialog = true;
115
- this.param = param
116
- this.$openEditView('showEdit');
121
+ let formConfig = this.formJson.formConfig
122
+ let multiTabEnabled = formConfig.multiTabEnabled && formConfig.multiTabLabelField
123
+ let dataId = row && row.id ? row.id : null;
124
+ if(multiTabEnabled && dataId){
125
+ this.$refs.xTabs.openEditTab(row,param);
126
+ }else{
127
+ this.dataId = dataId
128
+ this.activeName = 'first';
129
+ this.showEdit = false;
130
+ this.showEditDialog = true;
131
+ this.param = param
132
+ this.$openEditView('showEdit');
133
+ }
134
+
117
135
  },
118
136
  openEditH5Dialog(row) {
119
137
  this.dataId = row && row.id ? row.id : null;