cloud-web-corejs 1.0.283 → 1.0.285

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 (69) hide show
  1. package/package.json +1 -1
  2. package/src/components/VabUpload/mixins.js +126 -19
  3. package/src/components/VabUpload/view.vue +248 -209
  4. package/src/components/excelExport/conditionExportConfig.js +112 -0
  5. package/src/components/excelExport/exportType.js +8 -0
  6. package/src/components/excelExport/index.vue +7 -1
  7. package/src/components/excelExport/mixins.js +410 -259
  8. package/src/components/mobile/wf/addTaskUserdialog.vue +100 -80
  9. package/src/components/mobile/wf/content.vue +1705 -1556
  10. package/src/components/mobile/wf/deleteTaskUserDialog.vue +73 -54
  11. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +8 -6
  12. package/src/components/mobile/wf/selectUserDialog.vue +118 -0
  13. package/src/components/mobile/wf/setCandidateDialog.vue +69 -48
  14. package/src/components/mobile/wf/urgingDialog.vue +75 -52
  15. package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
  16. package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +528 -0
  17. package/src/components/xform/docs/2026-08 xform H5 P1 /345/256/236/347/216/260/350/247/204/346/240/274.md" +412 -0
  18. package/src/components/xform/docs/2026-08 xform H5 P2 /345/256/236/347/216/260/350/247/204/346/240/274.md" +287 -0
  19. package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +400 -0
  20. package/src/components/xform/form-designer/designer.js +5 -0
  21. package/src/components/xform/form-designer/form-widget/container-widget/detail-h5-widget.vue +243 -227
  22. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-pane-widget.vue +228 -207
  23. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-widget.vue +165 -136
  24. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +2 -3
  25. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +3 -3
  26. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +190 -185
  27. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +2641 -1833
  28. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +2 -3
  29. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +39 -1
  30. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +18 -5
  31. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +2 -1
  32. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +1 -1
  33. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +2 -1
  34. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +3 -2
  35. package/src/components/xform/form-designer/indexMixin.js +35 -1
  36. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +19 -5
  37. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +62 -1
  38. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +236 -96
  39. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/empty-number-input.vue +51 -0
  40. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +27 -2
  41. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +33 -3
  42. package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
  43. package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
  44. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +10 -0
  45. package/src/components/xform/form-designer/toolbar-panel/index.vue +6 -1
  46. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +13 -0
  47. package/src/components/xform/form-designer/widget-panel/indexMixin.js +22 -6
  48. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +88 -3
  49. package/src/components/xform/form-render/container-item/data-table-mixin.js +3 -1
  50. package/src/components/xform/form-render/container-item/detail-h5-item.vue +204 -34
  51. package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
  52. package/src/components/xform/form-render/container-item/list-h5-item.vue +1917 -1700
  53. package/src/components/xform/form-render/index.vue +7 -1
  54. package/src/components/xform/form-render/indexMixin.js +42 -4
  55. package/src/components/xform/lang/en-US.js +10 -0
  56. package/src/components/xform/lang/zh-CN.js +10 -0
  57. package/src/components/xform/styles/h5.scss +2305 -0
  58. package/src/directive/append-to-body/index.js +48 -0
  59. package/src/index.js +4 -0
  60. package/src/views/bd/setting/form_template/edit.vue +25 -3
  61. package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
  62. package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
  63. package/src/views/bd/setting/form_template/list.vue +1 -0
  64. package/src/views/bd/setting/form_template/mixins/edit.js +64 -0
  65. package/src/views/bd/setting/form_template/mixins/list.js +27 -0
  66. package/src/views/user/form/vform/designer.vue +3 -1
  67. package/src/components/xform/docs/2026-09 /346/235/241/344/273/266/345/257/274/345/207/272/345/244/247/346/225/260/346/215/256/351/207/217/345/264/251/346/272/203/346/216/222/346/237/245.md" +0 -389
  68. package/src/components/xform/docs/2026-09 /347/274/226/350/276/221/350/241/250/350/241/214/345/206/205/344/277/235/345/255/230/346/240/241/351/252/214/350/214/203/345/233/264/344/270/216/345/210/227/345/277/205/345/241/253/350/247/243/346/236/220/344/277/256/345/244/215.md" +0 -233
  69. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1340
@@ -485,9 +485,8 @@ export default {
485
485
  </script>
486
486
 
487
487
  <style scoped lang="scss">
488
- ::v-deep .H5 .h5-fixed-bottom-btns {
489
- bottom: 95px;
490
- }
488
+ /* 原 ::v-deep .H5 .h5-fixed-bottom-btns{bottom:95px} 已删:本文件从未把 H5 类
489
+ 绑到任何元素上,该选择器从来没生效过。H5 底栏已改为流内布局。 */
491
490
  ::v-deep .tree-container {
492
491
  height: 100%;
493
492
  .tree-box {
@@ -11,7 +11,12 @@
11
11
  <template>
12
12
  <div
13
13
  class="field-wrapper"
14
- :class="{ 'design-time-bottom-margin': !!this.designer }"
14
+ :class="[
15
+ { 'design-time-bottom-margin': !!this.designer },
16
+ isH5Field ? 'h5-field' : '',
17
+ field.options.h5Span === 'half' ? 'h5-half' : '',
18
+ isH5BlockField ? 'h5-block' : '',
19
+ ]"
15
20
  v-show="!field.options.hidden || designState === true"
16
21
  >
17
22
  <div>
@@ -258,6 +263,18 @@ import {
258
263
  resolveTextMaskFlag,
259
264
  } from "../../../../../components/xform/utils/textMaskUtil";
260
265
 
266
+ /* H5 版式下独占整行、左对齐的「宽内容」字段(见 isH5BlockField) */
267
+ const H5_BLOCK_FIELD_TYPES = [
268
+ "vabUpload",
269
+ "vabUpload2",
270
+ "baseAttachment",
271
+ "singleUpload",
272
+ "picture-upload",
273
+ "file-upload",
274
+ "rich-editor",
275
+ "html-text",
276
+ ];
277
+
261
278
  export default {
262
279
  name: "form-item-wrapper",
263
280
  mixins: [i18n],
@@ -362,6 +379,27 @@ export default {
362
379
  : "";
363
380
  },
364
381
 
382
+ isH5BlockField() {
383
+ return H5_BLOCK_FIELD_TYPES.indexOf(this.field.type) > -1;
384
+ },
385
+
386
+ /**
387
+ * H5 版式的字段行锚点。整套 H5 行版式(styles/h5.scss 块 C/C1/C2/C3/D/E)都挂在
388
+ * .field-wrapper.h5-field 上,与容器解耦。
389
+ *
390
+ * 原先锚在 `.h5-detail-wrap .h5-item .h5-form-box`,而 `.h5-item` 只有
391
+ * h5-card-pane 会吐(h5-card-pane-item.vue),h5-card 吐的是 `.grid-cell`,
392
+ * 字段/表格直挂 detail-h5.panes 时(设计器的 draggable 是单一 dragGroup,
393
+ * 任何容器都能拖进去)连 `.h5-form-box` 都没有 —— 这些摆法下整套行版式会
394
+ * 静默落空,表现为「标签右对齐、值左对齐」(element 默认),与卡片内的
395
+ * 「标签左、值右」对不上。
396
+ *
397
+ * PC 版式不打这个类,故 PC 表单零影响。
398
+ */
399
+ isH5Field() {
400
+ return this.formConfig?.layoutType === "H5";
401
+ },
402
+
365
403
  subFormName() {
366
404
  return !!this.parentWidget ? this.parentWidget.options.name : "";
367
405
  },
@@ -62,18 +62,31 @@ export default {
62
62
  methods: {
63
63
  importHandle() {
64
64
  const done = () => {
65
- let multi = this.field.options.importMultiple || false;
66
- let multiSize = this.field.options.importMultiSize || 1;
67
- this.getFormRef().openImportDialog({
65
+ let options = this.field.options;
66
+ let multi = options.importMultiple || false;
67
+ let multiSize = options.importMultiSize || 1;
68
+ let dialogOption = {
68
69
  target: this,
69
- importOption: this.field.options,
70
+ importOption: options,
70
71
  importFrontOnly: false,
71
72
  multi,
72
73
  multiSize,
73
74
  callback: (resultData, file, done) => {
74
75
 
75
76
  }
76
- });
77
+ };
78
+ // 逐行补默认值:弹框侧读的是 option.defaultValue(此前只有手写页能传,
79
+ // 表单里配不了),这里把设计器上的脚本包成同一形状交过去
80
+ if (options.importDefaultValue) {
81
+ dialogOption.defaultValue = (row) => {
82
+ return this.handleCustomEvent(
83
+ options.importDefaultValue,
84
+ ["row"],
85
+ [row]
86
+ ) || {};
87
+ };
88
+ }
89
+ this.getFormRef().openImportDialog(dialogOption);
77
90
  }
78
91
  if (this.field.options.onBeforeClickButton) {
79
92
  if (this.handleCustomEvent(this.field.options.onBeforeClickButton, ["done"], [done]) !== false) {
@@ -44,6 +44,7 @@ import i18n from "../../../utils/i18n";
44
44
  import fieldMixin from "./fieldMixin";
45
45
  import StaticContentWrapper from "./static-content-wrapper.vue";
46
46
  import { EXPORT_TYPE } from "../../../../excelExport/exportType";
47
+ import { pickConditionExportOverrides } from "@base/components/excelExport/conditionExportConfig";
47
48
 
48
49
  export default {
49
50
  name: "select-export-item-button-widget",
@@ -101,8 +102,8 @@ export default {
101
102
  let opt = {
102
103
  title: this.field.options.exportFileName || null,
103
104
  targetRef: this.field.options.tableRef || null,
104
- pageSize: this.field.options.exportPageSize || null,
105
105
  showImageAtTable: this.field.options.showImageAtTable || null,
106
+ ...pickConditionExportOverrides(this.field.options),
106
107
  // 明细导出的列 / 脚本编码 / 取数参数三项各自独立:按钮上维护了哪项就以哪项为准,
107
108
  // 留空的那项沿用数据表格属性上那套。参数脚本原样下发,由数据表格求值(this 是
108
109
  // 表格组件,与配在表格属性上时同义)
@@ -15,7 +15,7 @@
15
15
  :multi="field.options.limit!==1"
16
16
  :limit="field.options.limit"
17
17
  resultType="Array"
18
- :edit="!field.options.disabled"
18
+ :edit="!field.options.disabled && !isReadMode"
19
19
  @callback="submitFile"
20
20
  :hideInfo="field.options.hideFileInfo"
21
21
  :hideName="field.options.hideFileName"
@@ -32,6 +32,7 @@ import emitter from "../../../../../components/xform/utils/emitter";
32
32
  import i18n from "../../../../../components/xform/utils/i18n";
33
33
  import fieldMixin from "../../../../../components/xform/form-designer/form-widget/field-widget/fieldMixin";
34
34
  import StaticContentWrapper from "../../../../../components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue";
35
+ import { pickConditionExportOverrides } from "@base/components/excelExport/conditionExportConfig";
35
36
 
36
37
  export default {
37
38
  name: "table-export-button-widget",
@@ -81,8 +82,8 @@ export default {
81
82
  let opt = {
82
83
  title: this.field.options.exportFileName || null,
83
84
  targetRef: this.field.options.tableRef || null,
84
- pageSize: this.field.options.exportPageSize || null,
85
85
  showImageAtTable: this.field.options.showImageAtTable || null,
86
+ ...pickConditionExportOverrides(this.field.options),
86
87
  };
87
88
  let tableExportParam = this.handleCustomEvent(this.field.options.tableExportParam);
88
89
  let options = { ...opt, ...tableExportParam, type: type };
@@ -26,13 +26,14 @@
26
26
  :file.sync="fieldModel"
27
27
  :hidePasteArea.sync="isH5"
28
28
  :uploadDialogCustomClass="isH5 ? 'dialog-upload-h5' : null"
29
+ :h5Preview="isH5"
29
30
  :pickPrivateProfile="false"
30
31
  :multi="field.options.limit !== 1"
31
32
  :limit="field.options.limit"
32
33
  :fileTypes="field.options.fileTypes || []"
33
34
  resultType="Array"
34
- :edit="!field.options.disabled"
35
- :remove="!field.options.hideRemoveButton"
35
+ :edit="!field.options.disabled && !isReadMode"
36
+ :remove="!field.options.hideRemoveButton && !isReadMode"
36
37
  @callback="submitFile"
37
38
  :hideInfo="field.options.hideFileInfo"
38
39
  :hideName="field.options.hideFileName"
@@ -93,6 +93,8 @@ modules = {
93
93
  readonly: Boolean,
94
94
  columnFlag: Boolean,
95
95
  sourceData: Object,
96
+ /* 进入设计器时的布局模式(模板自带 layoutType 时不覆盖);传入即锁定,工具栏不允许再切换 */
97
+ defaultLayoutType: { type: String, default: "" },
96
98
  },
97
99
  data() {
98
100
  return {
@@ -147,6 +149,8 @@ modules = {
147
149
  serverFieldList: this.fieldList,
148
150
  getServerSubFormList: () => this.subFormList,
149
151
  getDesignerConfig: () => this.designerConfig,
152
+ /* 由表单模板等入口指定布局模式时,布局类型由模板类型决定,设计器内不可切换 */
153
+ getLayoutTypeLocked: () => !!this.defaultLayoutType,
150
154
  getBannedWidgets: () => this.bannedWidgets,
151
155
  saveReportTemplate: this.saveReportTemplate,
152
156
  getReportTemplate: () => this.reportTemplate,
@@ -345,23 +349,51 @@ modules = {
345
349
  baseRefUtil.changeLocale(langName);
346
350
  },
347
351
 
352
+ /**
353
+ * 应用入口指定的布局模式:模板 JSON 自带 layoutType 时以模板为准,不覆盖
354
+ */
355
+ applyDefaultLayoutType(loadedFormJson) {
356
+ if (!this.defaultLayoutType) {
357
+ return;
358
+ }
359
+ if (loadedFormJson && loadedFormJson.formConfig?.layoutType) {
360
+ return;
361
+ }
362
+ this.designer.changeLayoutType(this.defaultLayoutType);
363
+ },
364
+
348
365
  setFormJson(formJson) {
349
366
  let modifiedFlag = false;
367
+ let loadedFormJson = null;
350
368
  if (!!formJson) {
351
369
  if (typeof formJson === "string") {
352
370
  let newFormJson = JSON.parse(formJson);
353
371
  this.upgradeFormJson(newFormJson);
372
+ loadedFormJson = newFormJson;
354
373
  modifiedFlag = this.designer.loadFormJson(newFormJson);
355
374
  } else if (formJson.constructor === Object) {
356
375
  this.upgradeFormJson(formJson);
376
+ loadedFormJson = formJson;
357
377
  modifiedFlag = this.designer.loadFormJson(formJson);
358
378
  }
359
379
 
360
380
  if (modifiedFlag) {
361
381
  this.designer.emitHistoryChange();
362
382
  }
383
+
384
+ this.applyDefaultLayoutType(loadedFormJson);
385
+ /* 模板 JSON 里的 layoutType 此刻才写入;左侧面板 mounted 时仍是默认 PC,
386
+ 必须再筛一次,否则进入 H5 模板时仍展示 PC 容器(data-table/detail 等) */
387
+ this.$nextTick(() => {
388
+ this.loadWidgets();
389
+ });
363
390
  } else {
391
+ /* 新建模板 formViewContent 为空会走这里,同样要落入口默认布局 */
364
392
  this.clearDesigner();
393
+ this.applyDefaultLayoutType(null);
394
+ this.$nextTick(() => {
395
+ this.loadWidgets();
396
+ });
365
397
  }
366
398
  },
367
399
 
@@ -826,7 +858,9 @@ modules = {
826
858
  });
827
859
  },
828
860
  loadWidgets() {
829
- this.$refs.widgetPanelRef.loadWidgets();
861
+ if (this.$refs.widgetPanelRef) {
862
+ this.$refs.widgetPanelRef.loadWidgets();
863
+ }
830
864
  },
831
865
  getBdEnv() {
832
866
  getBdFlag({
@@ -59,11 +59,10 @@
59
59
  <el-input v-model="scope.row.prop"></el-input>
60
60
  </template>
61
61
  </el-table-column>
62
- <el-table-column :label="i18nt('designer.setting.columnWidth')" width="100" prop="width">
63
- <template slot-scope="scope">
64
- <el-input v-model="scope.row.width"></el-input>
65
- </template>
66
- </el-table-column>
62
+ <!-- 「列宽」已移除:H5 明细卡片是 dl/dt/dd 排版,不读列宽 —— 它当年是从数据表格
63
+ 那套列配置沿用过来的,运行期只被塞进一个拼错的键(witdh)、无人读取。
64
+ 列在卡片里占整行还是半行,由下面的「H5列宽」控制。
65
+ 存量模板里残留的 width 值不用清,读不到就是了。 -->
67
66
  <el-table-column :label="i18nt('designer.setting.visibleColumn')" width="70" prop="show">
68
67
  <template slot-scope="scope">
69
68
  <el-switch v-model="scope.row.show"></el-switch>
@@ -79,6 +78,21 @@
79
78
  <el-switch v-model="scope.row.showForRow"></el-switch>
80
79
  </template>
81
80
  </el-table-column>
81
+ <!-- H5 明细卡片里这个字段占整行还是半行(半行=一行两个)。
82
+ 不配即整行,运行期判等只认 'half'(存量列读到 undefined 就是整行),
83
+ 不能写成 !== 'full'。样式见 xform/styles/h5.scss 块 I2。
84
+ ★ 用 :value + $set 而不是 v-model:h5Span 是后加的键,存量列上没有,
85
+ Vue 2 只给赋值那一刻已存在的属性装 getter/setter,直接 v-model
86
+ 新增属性追踪不到,选完不回显。 -->
87
+ <el-table-column label="H5列宽" width="110" prop="h5Span">
88
+ <template slot-scope="scope">
89
+ <el-select :value="scope.row.h5Span" clearable placeholder="整行"
90
+ @input="v => $set(scope.row, 'h5Span', v)">
91
+ <el-option value="full" label="整行"></el-option>
92
+ <el-option value="half" label="半行(一行两个)"></el-option>
93
+ </el-select>
94
+ </template>
95
+ </el-table-column>
82
96
  <el-table-column :label="i18nt('designer.setting.formatOfColumn')" width="200" prop="formatS">
83
97
  <template slot-scope="scope">
84
98
  <el-select v-model="scope.row.formatS" @change="changeFormatS(scope.row)" clearable>
@@ -51,6 +51,18 @@
51
51
  :max="200"
52
52
  ></base-input-number>
53
53
  </el-form-item>
54
+ <el-form-item label="批量报文带附件信封">
55
+ <el-switch v-model="optionModel.importMultiAttachEnvelope"></el-switch>
56
+ <el-tooltip effect="dark" placement="top">
57
+ <div slot="content">
58
+ 只在「批量导入」打开时生效。<br/>
59
+ 关(默认):报文里 data 是裸行数组,附件列原样留在行里。<br/>
60
+ 打开:每行包成 { 表名: {...行}, attachments_x: [...] },附件从实体里提到信封层,<br/>
61
+ 与单行导入同构 —— <b>后端脚本需配套改</b>,不要在存量表单上随手打开。
62
+ </div>
63
+ <i class="el-icon-question label-tip-icon"></i>
64
+ </el-tooltip>
65
+ </el-form-item>
54
66
  <el-form-item label="点击前置事件" label-width="150px">
55
67
  <a href="javascript:void(0);" class="a-link link-oneLind"
56
68
  @click="editEventHandler('onBeforeClickButton', eventParams)">
@@ -72,6 +84,45 @@
72
84
  </a>
73
85
  </el-form-item>
74
86
 
87
+ <el-form-item label="必填校验方式" class="form-item-label-top">
88
+ <el-select v-model="optionModel.requiredCheckMode" style="width: 100%">
89
+ <el-option label="默认(逐行标记失败,其余照常导入)" value=""></el-option>
90
+ <el-option label="整批硬拦(一处不合规就整份不导)" value="strict"></el-option>
91
+ <el-option label="不校验(只信业务脚本与后端)" value="off"></el-option>
92
+ </el-select>
93
+ </el-form-item>
94
+ <el-form-item label="逐行校验脚本" label-width="150px">
95
+ <a
96
+ href="javascript:void(0);"
97
+ class="a-link link-oneLind"
98
+ @click="editEventHandler('onValidateRow', onValidateRowParams)"
99
+ >
100
+ <span>{{ optionModel.onValidateRow }}</span>
101
+ <i class="el-icon-edit"></i>
102
+ </a>
103
+ <el-tooltip effect="dark" placement="top">
104
+ <div slot="content">返回 true 或不返回=通过;返回字符串=该行的错误文案。</div>
105
+ <i class="el-icon-question label-tip-icon"></i>
106
+ </el-tooltip>
107
+ </el-form-item>
108
+ <el-form-item label="逐行补默认值" label-width="150px">
109
+ <a
110
+ href="javascript:void(0);"
111
+ class="a-link link-oneLind"
112
+ @click="editEventHandler('importDefaultValue', importDefaultValueParams)"
113
+ >
114
+ <span>{{ optionModel.importDefaultValue }}</span>
115
+ <i class="el-icon-edit"></i>
116
+ </a>
117
+ <el-tooltip effect="dark" placement="top">
118
+ <div slot="content">
119
+ 返回一个对象,发包前合并进该行(补组织、单据类型等固定字段)。<br/>
120
+ 与"导入前数据处理"的区别:那个是整批一次,这个是逐行。
121
+ </div>
122
+ <i class="el-icon-question label-tip-icon"></i>
123
+ </el-tooltip>
124
+ </el-form-item>
125
+
75
126
  <el-form-item label="导入完成回调" label-width="150px">
76
127
  <a
77
128
  href="javascript:void(0);"
@@ -116,6 +167,8 @@ export default {
116
167
  onBeforeImportParams: ["dataId", "formCode", "file", "resultData", "done"],
117
168
  onConfirmImportParams: ["dataId", "formCode", "resultData", "file", "done", "close"],
118
169
  onSuccessImportParams: ["dataId", "formCode", "resultData", "file"],
170
+ onValidateRowParams: ["dataId", "formCode", "row", "index"],
171
+ importDefaultValueParams: ["dataId", "formCode", "row"],
119
172
  };
120
173
  },
121
174
  methods: {
@@ -130,4 +183,12 @@ export default {
130
183
  };
131
184
  </script>
132
185
 
133
- <style scoped></style>
186
+ <style scoped>
187
+ .label-tip-icon {
188
+ margin-left: 4px;
189
+ color: #909399;
190
+ cursor: pointer;
191
+ font-size: 14px;
192
+ vertical-align: middle;
193
+ }
194
+ </style>