cloud-web-corejs 1.0.258 → 1.0.259

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 (248) hide show
  1. package/package.json +32 -25
  2. package/src/components/VabUpload/fileLibraryDialog.vue +296 -0
  3. package/src/components/VabUpload/index.js +22 -2
  4. package/src/components/VabUpload/index.vue +242 -231
  5. package/src/components/VabUpload/mixins/fileLibraryDialog.js +1112 -0
  6. package/src/components/VabUpload/mixins.js +1971 -1829
  7. package/src/components/VabUpload/privateProfileDialog.vue +2 -2
  8. package/src/components/baseArea/index.vue +1628 -0
  9. package/src/components/baseInputExport/mixins.js +48 -31
  10. package/src/components/baseInputNumber/index.vue +9 -9
  11. package/src/components/baseTabs/index.vue +16 -8
  12. package/src/components/code-editor/async.js +29 -0
  13. package/src/components/code-editor/index.vue +93 -4
  14. package/src/components/errorMsg/index.js +10 -9
  15. package/src/components/errorMsg/mixins.js +25 -23
  16. package/src/components/excelExport/exportFieldDialog.vue +40 -18
  17. package/src/components/excelExport/index.js +62 -3
  18. package/src/components/excelExport/index.vue +2 -1
  19. package/src/components/excelExport/mixins.js +496 -340
  20. package/src/components/excelImport/index.js +69 -7
  21. package/src/components/excelImport/mixins.js +841 -9
  22. package/src/components/fileLibrary/categoryMoveDialog.vue +109 -109
  23. package/src/components/fileLibrary/fileHistoryDialog.vue +1 -1
  24. package/src/components/fileLibrary/fileObjAuthDialog.vue +297 -298
  25. package/src/components/fileLibrary/fileObjAuthEdit.vue +1 -1
  26. package/src/components/fileLibrary/filterDialog.vue +1 -1
  27. package/src/components/fileLibrary/index.vue +1109 -1110
  28. package/src/components/fileLibrary/mixins/indexMixins.js +10 -0
  29. package/src/components/fileLibrary/propertiesDialog.vue +190 -190
  30. package/src/components/fileLibrary/recycleBinDialog.vue +237 -236
  31. package/src/components/formOplog/mixins.js +85 -80
  32. package/src/components/hiprint/view/design/index.vue +7 -2
  33. package/src/components/jsonImport/exportUtil.js +106 -0
  34. package/src/components/jsonImport/index.js +75 -50
  35. package/src/components/jsonImport/mixins.js +350 -348
  36. package/src/components/langImport/mixins.js +502 -500
  37. package/src/components/micro-view-host/contract.js +66 -0
  38. package/src/components/micro-view-host/index.vue +148 -0
  39. package/src/components/mobile/file/index.vue +10 -0
  40. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +51 -47
  41. package/src/components/obsUpload/index.vue +234 -231
  42. package/src/components/obsUpload/mixins.js +1542 -1476
  43. package/src/components/onlineTalk/talkUserDialog.vue +1 -1
  44. package/src/components/table/CellSlot.vue +12 -10
  45. package/src/components/table/config.js +74 -1
  46. package/src/components/table/index.js +1208 -1
  47. package/src/components/table/tableFormMixin.js +285 -1
  48. package/src/components/table/util/index.js +38 -40
  49. package/src/components/table/vxeFilter/index.js +153 -2
  50. package/src/components/table/vxeFilter/mixin.js +305 -3
  51. package/src/components/tempStorage/tempStorageDialog.vue +1 -1
  52. package/src/components/vb-tabs/x-tabs.vue +10 -5
  53. package/src/components/wf/addTaskUserdialog.vue +1 -1
  54. package/src/components/wf/mixins/setCandidateDialog.js +217 -217
  55. package/src/components/wf/mixins/setCandidateDialog2.js +252 -252
  56. package/src/components/wf/wf.js +2224 -2203
  57. package/src/components/wf/wfUtil.js +2 -1
  58. package/src/components/xform/docs/2026-08 /345/210/227/350/241/250/345/257/274/345/207/272/350/204/261/346/225/217/345/210/227/345/211/224/351/231/244/350/220/275/345/234/260/346/226/207/346/241/243.md" +173 -0
  59. package/src/components/xform/form-designer/designer.js +1 -0
  60. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +110 -1
  61. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +282 -1
  62. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +272 -0
  63. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +119 -0
  64. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +14 -0
  65. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +18 -73
  66. package/src/components/xform/form-designer/form-widget/field-widget/mixins/autocomplete-mixin.js +451 -0
  67. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +157 -0
  68. package/src/components/xform/form-designer/form-widget/field-widget/mixins/utc-transform-mixin.js +75 -0
  69. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +112 -0
  70. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +149 -0
  71. package/src/components/xform/form-designer/form-widget/indexMixin.js +179 -1
  72. package/src/components/xform/form-designer/indexMixin.js +823 -1
  73. package/src/components/xform/form-designer/refMixinDesign.js +27 -1
  74. package/src/components/xform/form-designer/setting-panel/action-button-config-dialog.vue +241 -0
  75. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +601 -0
  76. package/src/components/xform/form-designer/setting-panel/form-setting.vue +6 -0
  77. package/src/components/xform/form-designer/setting-panel/index.vue +314 -309
  78. package/src/components/xform/form-designer/setting-panel/indexMixin.js +324 -1
  79. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +8 -7
  80. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +8 -7
  81. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +344 -0
  82. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +2 -2
  83. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +25 -0
  84. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaMinLevel-editor.vue +50 -0
  85. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +20 -0
  86. package/src/components/xform/form-designer/setting-panel/property-editor/field-autocomplete/autocomplete-vabSearchName-editor.vue +199 -0
  87. package/src/components/xform/form-designer/setting-panel/property-editor/field-baseAttachment/baseAttachment-fileTypes-editor.vue +23 -0
  88. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +21 -0
  89. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +157 -0
  90. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +55 -0
  91. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/vabUpload-fileTypes-editor.vue +23 -0
  92. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesEditorMixin.js +116 -0
  93. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesSelect.vue +176 -0
  94. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +3 -3
  95. package/src/components/xform/form-designer/setting-panel/property-editor/utcTransformEnabled-editor.vue +19 -0
  96. package/src/components/xform/form-designer/setting-panel/widgetPropertyDialogMixin.js +186 -0
  97. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +566 -1
  98. package/src/components/xform/form-designer/widget-panel/indexMixin.js +290 -1
  99. package/src/components/xform/form-render/compareDelList.vue +83 -0
  100. package/src/components/xform/form-render/compareView.vue +76 -0
  101. package/src/components/xform/form-render/container-item/containerItemMixin.js +378 -1
  102. package/src/components/xform/form-render/container-item/data-table-mixin.js +35 -0
  103. package/src/components/xform/form-render/container-item/detail-item.vue +41 -0
  104. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +285 -0
  105. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +416 -0
  106. package/src/components/xform/form-render/container-item/list-h5-item.vue +12 -0
  107. package/src/components/xform/form-render/dynamicDialogRender.js +195 -1
  108. package/src/components/xform/form-render/dynamicDrawerRender.js +229 -0
  109. package/src/components/xform/form-render/formDynamicFieldMixin.js +131 -0
  110. package/src/components/xform/form-render/refMixin.js +29 -1
  111. package/src/components/xform/mixins/scriptHttp.js +172 -1
  112. package/src/components/xform/utils/dynamicSchemaUtil.js +361 -0
  113. package/src/components/xform/utils/tableCellValidateUtil.js +148 -0
  114. package/src/components/xform/utils/textMaskUtil.js +179 -0
  115. package/src/components/xform/utils/treeTableUtil.js +1265 -0
  116. package/src/components/xform/utils/util.js +1 -0
  117. package/src/components/xform/utils/validators.js +133 -1
  118. package/src/directive/LimitNumber/index.js +143 -124
  119. package/src/microRouter/index.js +447 -0
  120. package/src/mixins/tableTree/index.js +77 -14
  121. package/src/permission.js +132 -107
  122. package/src/public-path.js +38 -0
  123. package/src/router/index.js +3 -3
  124. package/src/store/modules/micro.js +57 -0
  125. package/src/store/modules/permission.js +535 -371
  126. package/src/store/modules/tagsView.js +38 -21
  127. package/src/store/modules/user.js +409 -370
  128. package/src/utils/aes.js +9 -3
  129. package/src/utils/auth.js +1 -1
  130. package/src/utils/componentDialog.js +162 -40
  131. package/src/utils/global.js +35 -34
  132. package/src/utils/index.js +579 -579
  133. package/src/utils/keepAlive.js +8 -4
  134. package/src/utils/lazyPlugin.js +66 -0
  135. package/src/utils/menuAdapter.js +277 -0
  136. package/src/utils/repeatOpen.js +48 -0
  137. package/src/utils/request.js +417 -395
  138. package/src/utils/resolveViewComponent.js +203 -0
  139. package/src/utils/vab.js +14 -3
  140. package/src/utils/validate.js +104 -106
  141. package/src/views/bd/setting/bd_attach_setting/dialog.vue +1 -1
  142. package/src/views/bd/setting/bd_attach_setting/list.vue +1 -1
  143. package/src/views/bd/setting/bd_company_env/dialog.vue +1 -1
  144. package/src/views/bd/setting/bd_company_env/list.vue +1 -1
  145. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +488 -489
  146. package/src/views/bd/setting/form_import_log/list.vue +1 -1
  147. package/src/views/bd/setting/form_script/dialog.vue +1 -1
  148. package/src/views/bd/setting/form_script/form_list.vue +174 -166
  149. package/src/views/bd/setting/form_script/list.vue +1 -1
  150. package/src/views/bd/setting/form_script/list1.vue +1 -1
  151. package/src/views/bd/setting/form_script/mixins/form_list.js +330 -322
  152. package/src/views/bd/setting/form_template/dialog.vue +1 -1
  153. package/src/views/bd/setting/form_template/formDesignerDialog.vue +172 -171
  154. package/src/views/bd/setting/form_template/ftHistoryDialog.vue +1 -1
  155. package/src/views/bd/setting/form_template/itemList.vue +1 -1
  156. package/src/views/bd/setting/form_template/list.vue +3 -3
  157. package/src/views/bd/setting/form_template/mixins/edit.js +3 -3
  158. package/src/views/bd/setting/form_template/mixins/list.js +3 -3
  159. package/src/views/bd/setting/form_template/mixins/list2.js +3 -3
  160. package/src/views/bd/setting/form_template/mixins/wf_list.js +3 -3
  161. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +253 -254
  162. package/src/views/bd/setting/form_template/wf_list.vue +3 -3
  163. package/src/views/bd/setting/logic_param/edit.vue +20 -20
  164. package/src/views/bd/setting/logic_param/list.vue +1 -1
  165. package/src/views/bd/setting/menu_kind/dialog.vue +1 -1
  166. package/src/views/bd/setting/menu_kind/list.vue +1 -1
  167. package/src/views/bd/setting/push_data/list.vue +1 -1
  168. package/src/views/bd/setting/push_data_h/list.vue +1 -1
  169. package/src/views/bd/setting/request_async_setting/list.vue +1 -1
  170. package/src/views/bd/setting/request_setting/list.vue +1 -1
  171. package/src/views/bd/setting/table_model/dialog.vue +1 -1
  172. package/src/views/bd/setting/table_model/list.vue +1 -1
  173. package/src/views/bd/setting/table_model/zdDialog.vue +1 -1
  174. package/src/views/user/access_log/list.vue +1 -1
  175. package/src/views/user/access_log/list2.vue +1 -1
  176. package/src/views/user/api_request/list.vue +1 -1
  177. package/src/views/user/area/dialog.vue +1 -1
  178. package/src/views/user/area/list.vue +1 -1
  179. package/src/views/user/bill_setting/list.vue +1 -1
  180. package/src/views/user/bill_setting/userDialog.vue +1 -1
  181. package/src/views/user/code_rules/list.vue +1 -1
  182. package/src/views/user/commMenu/index.vue +2 -2
  183. package/src/views/user/common_attribute/list.vue +2 -2
  184. package/src/views/user/common_script/list.vue +1 -1
  185. package/src/views/user/company_info/dialog.vue +1 -1
  186. package/src/views/user/country/dialog.vue +1 -1
  187. package/src/views/user/country/list.vue +1 -1
  188. package/src/views/user/data_type_setting/dialog.vue +1 -1
  189. package/src/views/user/extend_datasource/dialog.vue +4 -1
  190. package/src/views/user/extend_datasource/edit.vue +2 -1
  191. package/src/views/user/extend_datasource/list.vue +4 -1
  192. package/src/views/user/fieldTranslation/list.vue +1 -1
  193. package/src/views/user/field_values_invisible/list.vue +1 -1
  194. package/src/views/user/file_type/list.vue +1 -1
  195. package/src/views/user/file_view_area/list.vue +1 -1
  196. package/src/views/user/file_view_ins/list.vue +22 -1
  197. package/src/views/user/form/view/list.vue +64 -1
  198. package/src/views/user/groups/dialog.vue +1 -1
  199. package/src/views/user/groups/list.vue +1 -1
  200. package/src/views/user/home/default.vue +2 -2
  201. package/src/views/user/home/default2.vue +1158 -1148
  202. package/src/views/user/home/index.vue +3 -10
  203. package/src/views/user/lang_tag/dialog.vue +1 -1
  204. package/src/views/user/lang_tag/list.vue +1 -1
  205. package/src/views/user/language_setting/list.vue +1 -1
  206. package/src/views/user/login/default.vue +0 -8
  207. package/src/views/user/login/indexMixin.js +547 -556
  208. package/src/views/user/menu/list.vue +25 -2
  209. package/src/views/user/menuFallback/index.vue +123 -0
  210. package/src/views/user/mobile_menu/list.vue +1 -1
  211. package/src/views/user/notify_message/dialog.vue +22 -1
  212. package/src/views/user/notify_message/list.vue +1 -1
  213. package/src/views/user/notify_template/list.vue +1 -1
  214. package/src/views/user/notify_template/list2.vue +1 -1
  215. package/src/views/user/oplog/list.vue +1 -1
  216. package/src/views/user/outLink/form_view.vue +5 -14
  217. package/src/views/user/outLink/index.vue +6 -1
  218. package/src/views/user/outLink/view.vue +5 -13
  219. package/src/views/user/position/dialog.vue +1 -1
  220. package/src/views/user/position/list.vue +1 -1
  221. package/src/views/user/project_tag/dialog.vue +1 -1
  222. package/src/views/user/project_tag/list.vue +1 -1
  223. package/src/views/user/push_setting/list.vue +1 -1
  224. package/src/views/user/request_setting/list.vue +1 -1
  225. package/src/views/user/role/dialog.vue +1 -1
  226. package/src/views/user/role/list.vue +1 -1
  227. package/src/views/user/sale_org/dialog.vue +1 -1
  228. package/src/views/user/sale_org/list.vue +1 -1
  229. package/src/views/user/system_notice/list.vue +1 -1
  230. package/src/views/user/system_parameter/list.vue +1 -1
  231. package/src/views/user/user/dialog.vue +1 -1
  232. package/src/views/user/user/edit.vue +306 -159
  233. package/src/views/user/user/form_dialog.vue +1 -1
  234. package/src/views/user/user/form_list.vue +1 -1
  235. package/src/views/user/user/list.vue +2 -2
  236. package/src/views/user/user_log_classify/list.vue +1 -1
  237. package/src/views/user/wf/iframe/index.vue +6 -1
  238. package/src/views/user/wf/iframe/index2.vue +6 -1
  239. package/src/views/user/wf/wfReport/index.vue +12 -6
  240. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -2
  241. package/src/views/user/wf/wf_manage/list.vue +97 -24
  242. package/src/views/user/wf/wf_manage/list2.vue +875 -0
  243. package/src/views/user/wf/wf_manage/wfContentDialog.vue +23 -1
  244. package/src/views/user/wf/wf_obj_config/dialog.vue +1 -1
  245. package/src/views/user/wf/wf_obj_config/list.vue +1 -1
  246. package/src/views/user/wf/wf_obj_config/list_form.vue +1 -1
  247. package/src/views/user/wf/wf_transfer_setting/list.vue +1 -1
  248. package/src/views/user/workbench_menu/list.vue +1 -1
@@ -0,0 +1,344 @@
1
+ <template>
2
+ <div class="table-dynamic-field-editor">
3
+ <el-form-item label-width="0">
4
+ <el-divider class="custom-divider-margin-top">
5
+ 动态字段
6
+ <el-tooltip effect="light" placement="top">
7
+ <div slot="content" class="field-tip-content">
8
+ 字段「显隐/必填/只读/禁用/取值」等动态规则请到「表单设置 -
9
+ 动态字段规则」统一配置
10
+ </div>
11
+ <i class="el-icon-info label-tip-icon"></i>
12
+ </el-tooltip>
13
+ </el-divider>
14
+ </el-form-item>
15
+ <el-form-item label="动态字段来源">
16
+ <el-radio-group v-model="optionModel.dynamicSchemaSourceType">
17
+ <el-radio label="none">无</el-radio>
18
+ <el-radio label="script">前端字段脚本</el-radio>
19
+ <el-radio label="api">接口动态字段</el-radio>
20
+ </el-radio-group>
21
+ </el-form-item>
22
+ <div
23
+ v-if="optionModel.dynamicSchemaSourceType === 'script'"
24
+ class="dynamic-column-block"
25
+ >
26
+ <div class="form-section-label">
27
+ 前端字段脚本
28
+ <el-tooltip effect="light" placement="top">
29
+ <div slot="content" class="field-tip-content">
30
+ 不调接口,脚本直接 return 字段定义数组或 { fields: [...] }
31
+ </div>
32
+ <i class="el-icon-info label-tip-icon"></i>
33
+ </el-tooltip>
34
+ </div>
35
+ <div class="data-table-editor-subsection">
36
+ <el-form-item label="字段脚本">
37
+ <a
38
+ href="javascript:void(0);"
39
+ class="a-link link-oneLind"
40
+ @click="editEventHandler('dynamicSchemaScript', defaultEventParams)"
41
+ >
42
+ <span>{{ optionModel.dynamicSchemaScript }}</span>
43
+ <i class="el-icon-edit"></i>
44
+ </a>
45
+ </el-form-item>
46
+ </div>
47
+ </div>
48
+ <div
49
+ v-if="optionModel.dynamicSchemaSourceType === 'api'"
50
+ class="dynamic-column-block"
51
+ >
52
+ <div class="form-section-label">
53
+ 接口动态字段
54
+ <el-tooltip effect="light" placement="top">
55
+ <div slot="content" class="field-tip-content">
56
+ 打开表单时请求后台脚本,返回字段定义(格式与数据表格动态列一致,详见
57
+ docs/后台字段(动态生成)JSON 说明.md)
58
+ </div>
59
+ <i class="el-icon-info label-tip-icon"></i>
60
+ </el-tooltip>
61
+ </div>
62
+ <div class="data-table-editor-subsection">
63
+ <el-form-item label="脚本编码">
64
+ <el-input
65
+ v-model="optionModel.dynamicSchemaScriptCode"
66
+ clearable
67
+ placeholder="scriptCode 或 formCode/scriptCode"
68
+ ></el-input>
69
+ </el-form-item>
70
+ <el-form-item>
71
+ <span slot="label">
72
+ 额外参数
73
+ <el-tooltip effect="light" placement="top">
74
+ <div slot="content" class="field-tip-content">
75
+ 格式: return { bizType: this.formModel.type }
76
+ </div>
77
+ <i class="el-icon-info label-tip-icon"></i>
78
+ </el-tooltip>
79
+ </span>
80
+ <a
81
+ href="javascript:void(0);"
82
+ class="a-link link-oneLind"
83
+ @click="
84
+ editEventHandler('dynamicSchemaScriptParam', tableConfigParams)
85
+ "
86
+ >
87
+ <span>{{ optionModel.dynamicSchemaScriptParam }}</span>
88
+ <i class="el-icon-edit"></i>
89
+ </a>
90
+ </el-form-item>
91
+ <el-form-item>
92
+ <span slot="label">
93
+ 转换脚本
94
+ <el-tooltip effect="light" placement="top">
95
+ <div slot="content" class="field-tip-content">
96
+ 可选。入参 res,返回标准定义数组;不填时默认取
97
+ res.objx(数组)或 res.objx.fields / res.objx.columns
98
+ </div>
99
+ <i class="el-icon-info label-tip-icon"></i>
100
+ </el-tooltip>
101
+ </span>
102
+ <a
103
+ href="javascript:void(0);"
104
+ class="a-link link-oneLind"
105
+ @click="editDynamicSchemaConvert"
106
+ >
107
+ <span>{{ dynamicSchemaConvertDisplay }}</span>
108
+ <i class="el-icon-edit"></i>
109
+ </a>
110
+ </el-form-item>
111
+ </div>
112
+ </div>
113
+ <div
114
+ v-if="optionModel.dynamicSchemaSourceType !== 'none'"
115
+ class="dynamic-column-block"
116
+ >
117
+ <div class="data-table-editor-subsection">
118
+ <el-form-item>
119
+ <span slot="label">
120
+ 加载条件
121
+ <el-tooltip effect="light" placement="top">
122
+ <div slot="content" class="field-tip-content">
123
+ 表单初始化加载动态字段前执行。<br />
124
+ <code>return false</code> 时不加载;不配置则默认加载。
125
+ </div>
126
+ <i class="el-icon-info label-tip-icon"></i>
127
+ </el-tooltip>
128
+ </span>
129
+ <a
130
+ href="javascript:void(0);"
131
+ class="a-link link-oneLind"
132
+ @click="
133
+ editEventHandler('dynamicSchemaLoadScript', tableConfigParams)
134
+ "
135
+ >
136
+ <span>{{ optionModel.dynamicSchemaLoadScript }}</span>
137
+ <i class="el-icon-edit"></i>
138
+ </a>
139
+ </el-form-item>
140
+ </div>
141
+ </div>
142
+ <el-form-item v-if="optionModel.dynamicSchemaSourceType !== 'none'">
143
+ <span slot="label">
144
+ 生成模式
145
+ <el-tooltip effect="light" placement="top">
146
+ <div slot="content" class="field-tip-content">
147
+ 对<strong>生效的动态字段</strong>与静态字段的合并方式:<br />
148
+ 追加 — 静态字段 + 动态字段;替换 — 仅动态字段;锚点插入 —
149
+ 插到占位行位置。
150
+ </div>
151
+ <i class="el-icon-info label-tip-icon"></i>
152
+ </el-tooltip>
153
+ </span>
154
+ <el-select v-model="optionModel.dynamicSchemaMode" style="width: 100%">
155
+ <el-option label="追加到静态字段" value="append"></el-option>
156
+ <el-option label="替换静态字段" value="replace"></el-option>
157
+ <el-option label="锚点插入" value="anchor"></el-option>
158
+ </el-select>
159
+ </el-form-item>
160
+ <template v-if="optionModel.dynamicSchemaSourceType !== 'none'">
161
+ <template v-if="optionModel.dynamicSchemaMode === 'anchor'">
162
+ <el-form-item>
163
+ <span slot="label">
164
+ 占位锚点行
165
+ <el-tooltip effect="light" placement="top">
166
+ <div slot="content" class="field-tip-content">
167
+ 建议预留一个空行作为占位锚点
168
+ </div>
169
+ <i class="el-icon-info label-tip-icon"></i>
170
+ </el-tooltip>
171
+ </span>
172
+ <el-select
173
+ v-model="optionModel.dynamicSchemaAnchorRowId"
174
+ style="width: 100%"
175
+ placeholder="选择设计期的占位行"
176
+ >
177
+ <el-option
178
+ v-for="r in rowOptions"
179
+ :key="r.value"
180
+ :label="r.label"
181
+ :value="r.value"
182
+ ></el-option>
183
+ </el-select>
184
+ </el-form-item>
185
+ <el-form-item label="插入位置">
186
+ <el-select
187
+ v-model="optionModel.dynamicSchemaAnchorPosition"
188
+ style="width: 100%"
189
+ >
190
+ <el-option label="替换占位行" value="replace"></el-option>
191
+ <el-option label="之前" value="before"></el-option>
192
+ <el-option label="之后" value="after"></el-option>
193
+ </el-select>
194
+ </el-form-item>
195
+ <el-form-item>
196
+ <span slot="label">
197
+ 继承行布局
198
+ <el-tooltip effect="light" placement="top">
199
+ <div slot="content" class="field-tip-content">
200
+ 开启后生成行沿用占位行的单元格数量/宽度/跨列,否则按「每行列数」平铺
201
+ </div>
202
+ <i class="el-icon-info label-tip-icon"></i>
203
+ </el-tooltip>
204
+ </span>
205
+ <el-switch
206
+ v-model="optionModel.dynamicSchemaInheritLayout"
207
+ ></el-switch>
208
+ </el-form-item>
209
+ </template>
210
+ <el-form-item
211
+ v-if="
212
+ optionModel.dynamicSchemaMode !== 'anchor' ||
213
+ !optionModel.dynamicSchemaInheritLayout
214
+ "
215
+ label="每行列数"
216
+ >
217
+ <el-input-number
218
+ v-model="optionModel.dynamicSchemaColumns"
219
+ :min="1"
220
+ :max="12"
221
+ controls-position="right"
222
+ style="width: 100%"
223
+ ></el-input-number>
224
+ </el-form-item>
225
+ </template>
226
+ </div>
227
+ </template>
228
+
229
+ <script>
230
+ import i18n from "../../../../../../components/xform/utils/i18n";
231
+ import eventMixin from "../../../../../../components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin";
232
+
233
+ export default {
234
+ name: "table-dynamicField-editor",
235
+ mixins: [i18n, eventMixin],
236
+ props: {
237
+ designer: Object,
238
+ selectedWidget: Object,
239
+ optionModel: Object,
240
+ },
241
+ data() {
242
+ return {
243
+ tableConfigParams: ["dataId", "formCode"],
244
+ defaultEventParams: ["dataId", "formCode"],
245
+ };
246
+ },
247
+ created() {
248
+ if (this.optionModel.dynamicSchemaSourceType === undefined) {
249
+ const legacyEnabled = this.optionModel.dynamicSchemaEnabled;
250
+ this.$set(
251
+ this.optionModel,
252
+ "dynamicSchemaSourceType",
253
+ legacyEnabled ? "api" : "none"
254
+ );
255
+ }
256
+ if (this.optionModel.dynamicSchemaScript === undefined) {
257
+ this.$set(this.optionModel, "dynamicSchemaScript", null);
258
+ }
259
+ if (this.optionModel.dynamicSchemaLoadScript === undefined) {
260
+ this.$set(this.optionModel, "dynamicSchemaLoadScript", null);
261
+ }
262
+ },
263
+ computed: {
264
+ dynamicSchemaConvertDisplay() {
265
+ return this.optionModel.dynamicSchemaConvert || "";
266
+ },
267
+ rowOptions() {
268
+ const rows = (this.selectedWidget && this.selectedWidget.rows) || [];
269
+ return rows.map((row, idx) => {
270
+ const fields = [];
271
+ (row.cols || []).forEach((cell) => {
272
+ this.collectFields(cell.widgetList || [], fields);
273
+ });
274
+ const names = fields
275
+ .map((w) => w.options.label || w.options.name)
276
+ .filter((n) => !!n);
277
+ const preview = names.length ? names.join("、") : "空行";
278
+ return { label: "第" + (idx + 1) + "行:" + preview, value: row.id };
279
+ });
280
+ },
281
+ },
282
+ methods: {
283
+ editDynamicSchemaConvert() {
284
+ this.editEventHandler("dynamicSchemaConvert", ["res"]);
285
+ },
286
+ collectFields(list, out) {
287
+ (list || []).forEach((w) => {
288
+ if (!w) return;
289
+ if (w.category === "container") {
290
+ if (Array.isArray(w.rows)) {
291
+ w.rows.forEach((row) =>
292
+ this.collectFields((row && row.cols) || [], out)
293
+ );
294
+ }
295
+ ["cols", "tabs", "widgetList", "panes", "buttonWidgetList"].forEach(
296
+ (k) => {
297
+ if (Array.isArray(w[k])) this.collectFields(w[k], out);
298
+ }
299
+ );
300
+ } else if (w.formItemFlag) {
301
+ out.push(w);
302
+ }
303
+ });
304
+ },
305
+ },
306
+ };
307
+ </script>
308
+
309
+ <style lang="scss" scoped>
310
+ .data-table-editor-subsection {
311
+ margin: 0 0 4px 8px;
312
+ padding-left: 12px;
313
+ border-left: 2px solid #ebeef5;
314
+ }
315
+
316
+ .form-section-label {
317
+ font-size: 13px;
318
+ font-weight: 500;
319
+ color: #303133;
320
+ line-height: 22px;
321
+ margin-bottom: 8px;
322
+ }
323
+
324
+ .label-tip-icon {
325
+ margin-left: 4px;
326
+ color: #909399;
327
+ cursor: pointer;
328
+ font-size: 14px;
329
+ vertical-align: middle;
330
+ }
331
+
332
+ .field-tip-content {
333
+ line-height: 1.4;
334
+ max-width: 320px;
335
+ }
336
+
337
+ .dynamic-column-block {
338
+ margin-bottom: 12px;
339
+ }
340
+
341
+ .dynamic-column-block .data-table-editor-subsection {
342
+ margin-top: 0;
343
+ }
344
+ </style>
@@ -107,8 +107,8 @@ export default {
107
107
  openEditFormatConfigDialog(fieldWidget, index) {
108
108
  this.openWidgetPropertyDialog({
109
109
  columnSelectedWidget: deepClone(fieldWidget),
110
- callback: (columnOption) => {
111
- fieldWidget.options = columnOption;
110
+ callback: (columnSelectedWidget) => {
111
+ fieldWidget.options = columnSelectedWidget.options;
112
112
  },
113
113
  });
114
114
  },
@@ -0,0 +1,25 @@
1
+ <template>
2
+ <el-form-item :label="i18nt('designer.setting.areaDataType')">
3
+ <el-select v-model="optionModel.areaDataType" style="width: 100%">
4
+ <el-option :label="i18nt('designer.setting.areaDataType0')" :value="0" />
5
+ <el-option :label="i18nt('designer.setting.areaDataType1')" :value="1" />
6
+ <el-option :label="i18nt('designer.setting.areaDataType2')" :value="2" />
7
+ <el-option :label="i18nt('designer.setting.areaDataType3')" :value="3" />
8
+ </el-select>
9
+ </el-form-item>
10
+ </template>
11
+
12
+ <script>
13
+ import i18n from "@base/components/xform/utils/i18n";
14
+ import propertyMixin from "@base/components/xform/form-designer/setting-panel/property-editor/propertyMixin";
15
+
16
+ export default {
17
+ name: "areaDataType-editor",
18
+ mixins: [i18n, propertyMixin],
19
+ props: {
20
+ designer: Object,
21
+ selectedWidget: Object,
22
+ optionModel: Object,
23
+ },
24
+ };
25
+ </script>
@@ -0,0 +1,50 @@
1
+ <template>
2
+ <el-form-item>
3
+ <span slot="label"
4
+ >{{ i18nt("designer.setting.areaMinLevel") }}
5
+ <el-tooltip
6
+ effect="light"
7
+ :content="i18nt('designer.setting.areaMinLevelHint')"
8
+ >
9
+ <i class="el-icon-info"></i>
10
+ </el-tooltip>
11
+ </span>
12
+ <el-select v-model="minLevel" style="width: 100%">
13
+ <el-option
14
+ :label="i18nt('designer.setting.areaMinLevelNone')"
15
+ :value="null"
16
+ />
17
+ <el-option :label="i18nt('designer.setting.areaMinLevel0')" :value="0" />
18
+ <el-option :label="i18nt('designer.setting.areaMinLevel1')" :value="1" />
19
+ <el-option :label="i18nt('designer.setting.areaMinLevel2')" :value="2" />
20
+ <el-option :label="i18nt('designer.setting.areaMinLevel3')" :value="3" />
21
+ </el-select>
22
+ </el-form-item>
23
+ </template>
24
+
25
+ <script>
26
+ import i18n from "@base/components/xform/utils/i18n";
27
+ import propertyMixin from "@base/components/xform/form-designer/setting-panel/property-editor/propertyMixin";
28
+
29
+ export default {
30
+ name: "areaMinLevel-editor",
31
+ mixins: [i18n, propertyMixin],
32
+ props: {
33
+ designer: Object,
34
+ selectedWidget: Object,
35
+ optionModel: Object,
36
+ },
37
+ computed: {
38
+ minLevel: {
39
+ get() {
40
+ const val = this.optionModel.areaMinLevel;
41
+ return val == null || val === "" ? null : val;
42
+ },
43
+ set(val) {
44
+ /* 旧表单的 options 上可能没有该 key,需 $set 保证响应式 */
45
+ this.$set(this.optionModel, "areaMinLevel", val);
46
+ },
47
+ },
48
+ },
49
+ };
50
+ </script>
@@ -0,0 +1,20 @@
1
+ <template>
2
+ <el-form-item :label="i18nt('designer.setting.areaName')">
3
+ <el-input v-model="optionModel.areaName" :placeholder="i18nt('designer.setting.areaNameHint')" />
4
+ </el-form-item>
5
+ </template>
6
+
7
+ <script>
8
+ import i18n from "@base/components/xform/utils/i18n";
9
+ import propertyMixin from "@base/components/xform/form-designer/setting-panel/property-editor/propertyMixin";
10
+
11
+ export default {
12
+ name: "areaName-editor",
13
+ mixins: [i18n, propertyMixin],
14
+ props: {
15
+ designer: Object,
16
+ selectedWidget: Object,
17
+ optionModel: Object,
18
+ },
19
+ };
20
+ </script>
@@ -0,0 +1,199 @@
1
+ <template>
2
+ <div>
3
+ <el-form-item label-width="0">
4
+ <el-divider class="custom-divider-margin-top">自动完成设置</el-divider>
5
+ </el-form-item>
6
+
7
+ <el-form-item label="展示字段">
8
+ <el-input
9
+ type="text"
10
+ v-model="optionModel.vabSearchName"
11
+ placeholder="表单中存储名称的字段"
12
+ ></el-input>
13
+ </el-form-item>
14
+ <el-form-item label="关联来源字段">
15
+ <el-input
16
+ type="text"
17
+ v-model="optionModel.valueField"
18
+ placeholder="候选数据中作为值/ID的字段(默认字段本身),值存入字段本身"
19
+ ></el-input>
20
+ </el-form-item>
21
+ <el-form-item label="展示来源字段">
22
+ <el-input
23
+ type="text"
24
+ v-model="optionModel.labelSourceField"
25
+ placeholder="候选数据中作为名称的字段(默认取展示字段)"
26
+ ></el-input>
27
+ </el-form-item>
28
+ <el-form-item label="查询字段">
29
+ <el-input
30
+ type="text"
31
+ v-model="optionModel.queryField"
32
+ placeholder="condition格式时为字段名,否则为参数名(默认 keyword)"
33
+ ></el-input>
34
+ </el-form-item>
35
+ <el-form-item label="condition传值格式">
36
+ <el-switch v-model="optionModel.conditionFormat"></el-switch>
37
+ </el-form-item>
38
+ <el-form-item label="查询数据表">
39
+ <el-input
40
+ type="text"
41
+ v-model="optionModel.conditionTaBm"
42
+ placeholder="condition查询的数据表taBm(留空取字段本身)"
43
+ ></el-input>
44
+ </el-form-item>
45
+ <el-form-item label="查询条数">
46
+ <el-input-number
47
+ v-model="optionModel.conditionSize"
48
+ :min="1"
49
+ controls-position="right"
50
+ style="width: 100%"
51
+ ></el-input-number>
52
+ </el-form-item>
53
+
54
+ <el-form-item label="选中回填">
55
+ <el-button type="primary" plain round @click="showFillDialog = true">
56
+ {{ i18nt("designer.setting.editAction") }}
57
+ </el-button>
58
+ </el-form-item>
59
+
60
+ <el-dialog
61
+ custom-class="dialog-style list-dialog"
62
+ title="选中回填配置"
63
+ :visible.sync="showFillDialog"
64
+ :modal="false"
65
+ :show-close="true"
66
+ :close-on-click-modal="false"
67
+ :close-on-press-escape="false"
68
+ :destroy-on-close="true"
69
+ top="5vh"
70
+ width="640px"
71
+ v-dialog-drag
72
+ >
73
+ <div class="cont">
74
+ <el-table
75
+ ref="fillTable"
76
+ width="100%"
77
+ height="420"
78
+ :data="fillData"
79
+ border
80
+ stripe
81
+ >
82
+ <el-table-column
83
+ label="目标字段(组件名)"
84
+ width="180"
85
+ prop="targetField"
86
+ >
87
+ <template slot-scope="scope">
88
+ <el-input v-model="scope.row.targetField"></el-input>
89
+ </template>
90
+ </el-table-column>
91
+ <el-table-column
92
+ label="目标数据属性"
93
+ width="180"
94
+ prop="targetFormField"
95
+ >
96
+ <template slot-scope="scope">
97
+ <el-input v-model="scope.row.targetFormField"></el-input>
98
+ </template>
99
+ </el-table-column>
100
+ <el-table-column label="来源字段" width="160" prop="sourceField">
101
+ <template slot-scope="scope">
102
+ <el-input v-model="scope.row.sourceField"></el-input>
103
+ </template>
104
+ </el-table-column>
105
+ <el-table-column label="操作" min-width="60" fixed="right">
106
+ <template #header>
107
+ <el-tooltip
108
+ :hide-after="500"
109
+ class="item"
110
+ effect="dark"
111
+ content="添加"
112
+ placement="top"
113
+ >
114
+ <el-button
115
+ size="mini"
116
+ type=""
117
+ circle
118
+ icon="el-icon-plus"
119
+ @click="fillData.push({})"
120
+ />
121
+ </el-tooltip>
122
+ </template>
123
+ <template #default="{ $index }">
124
+ <el-tooltip effect="dark" content="删除" placement="top">
125
+ <el-button
126
+ size="mini"
127
+ type=""
128
+ circle
129
+ icon="el-icon-delete"
130
+ @click="fillData.splice($index, 1)"
131
+ />
132
+ </el-tooltip>
133
+ </template>
134
+ </el-table-column>
135
+ </el-table>
136
+ </div>
137
+ <div class="dialog-footer" slot="footer">
138
+ <span class="fl tips"
139
+ >注:'目标字段'与'目标数据属性'只需维护一个即可。</span
140
+ >
141
+ <el-button
142
+ @click="showFillDialog = false"
143
+ class="button-sty"
144
+ icon="el-icon-close"
145
+ >
146
+ {{ i18nt("designer.hint.cancel") }}
147
+ </el-button>
148
+ <el-button
149
+ type="primary"
150
+ @click="confirmFillDialog"
151
+ class="button-sty"
152
+ icon="el-icon-check"
153
+ >
154
+ {{ i18nt("designer.hint.confirm") }}
155
+ </el-button>
156
+ </div>
157
+ </el-dialog>
158
+ </div>
159
+ </template>
160
+
161
+ <script>
162
+ import i18n from "../../../../../../components/xform/utils/i18n";
163
+ import propertyMixin from "../../../../../../components/xform/form-designer/setting-panel/property-editor/propertyMixin";
164
+
165
+ export default {
166
+ name: "autocomplete-vabSearchName-editor",
167
+ mixins: [i18n, propertyMixin],
168
+ props: {
169
+ designer: Object,
170
+ selectedWidget: Object,
171
+ optionModel: Object,
172
+ },
173
+ data() {
174
+ return {
175
+ showFillDialog: false,
176
+ fillData: [],
177
+ };
178
+ },
179
+ methods: {
180
+ confirmFillDialog() {
181
+ this.optionModel.autocompleteFillConfig = this.$baseLodash.cloneDeep(
182
+ this.fillData
183
+ );
184
+ this.showFillDialog = false;
185
+ },
186
+ },
187
+ watch: {
188
+ showFillDialog(val) {
189
+ if (val) {
190
+ this.fillData = this.$baseLodash.cloneDeep(
191
+ this.optionModel.autocompleteFillConfig || []
192
+ );
193
+ }
194
+ },
195
+ },
196
+ };
197
+ </script>
198
+
199
+ <style scoped></style>
@@ -0,0 +1,23 @@
1
+ <template>
2
+ <file-types-select :option-model="optionModel"></file-types-select>
3
+ </template>
4
+
5
+ <script>
6
+ import FileTypesSelect from "../fileTypesSelect.vue"
7
+
8
+ export default {
9
+ name: "baseAttachment-fileTypes-editor",
10
+ components: {
11
+ FileTypesSelect,
12
+ },
13
+ props: {
14
+ designer: Object,
15
+ selectedWidget: Object,
16
+ optionModel: Object,
17
+ },
18
+ }
19
+ </script>
20
+
21
+ <style scoped>
22
+
23
+ </style>