cloud-web-corejs 1.0.54-dev.27 → 1.0.54-dev.272

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 (310) hide show
  1. package/package.json +6 -3
  2. package/src/components/Qrcode/fileParse.vue +0 -1
  3. package/src/components/VabUpload/index.vue +2 -1
  4. package/src/components/VabUpload/mixins.js +1 -1
  5. package/src/components/VabUpload/propertiesDialog.vue +1 -1
  6. package/src/components/VabUpload/view.vue +24 -8
  7. package/src/components/advancedSearchDialog/mixins.js +1 -1
  8. package/src/components/baseAttachment/index.vue +49 -40
  9. package/src/components/baseAttachment/mixins.js +1 -1
  10. package/src/components/excelExport/button.vue +54 -4
  11. package/src/components/excelExport/exportFieldDialog.vue +16 -6
  12. package/src/components/excelExport/index.js +44 -1
  13. package/src/components/excelExport/index.vue +64 -8
  14. package/src/components/excelExport/mixins.js +937 -2
  15. package/src/components/fileLibrary/fileObjAuthDialog.vue +1 -1
  16. package/src/components/fileLibrary/fileObjAuthEditDialog.vue +7 -1
  17. package/src/components/fileLibrary/fileObjNotifyEdit.vue +90 -68
  18. package/src/components/fileLibrary/filterDialog.vue +383 -0
  19. package/src/components/fileLibrary/index.vue +23 -24
  20. package/src/components/fileLibrary/mixins/categoryMoveDialogMixins.js +1 -1
  21. package/src/components/fileLibrary/mixins/fileCategoryDialogMixins.js +1 -1
  22. package/src/components/fileLibrary/mixins/fileHistoryDialogMixins.js +2 -2
  23. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +337 -207
  24. package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +33 -26
  25. package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +5 -5
  26. package/src/components/fileLibrary/mixins/indexMixins.js +77 -27
  27. package/src/components/fileLibrary/mixins/propertiesDialogMixins.js +63 -3
  28. package/src/components/fileLibrary/mixins/recycleBinDialogMixins.js +1 -1
  29. package/src/components/fileLibrary/propertiesDialog.vue +18 -0
  30. package/src/components/fileLibrary/shareDialog.vue +1 -1
  31. package/src/components/formOplog/mixins.js +77 -1
  32. package/src/components/jsonImport/index.js +1 -1
  33. package/src/components/jsonImport/mixins.js +1 -1
  34. package/src/components/onlineTalk/index.vue +24 -21
  35. package/src/components/onlineTalk/mixins.js +1 -838
  36. package/src/components/statusTag/mixins.js +66 -1
  37. package/src/components/table/CellSlot.vue +1 -0
  38. package/src/components/table/index.js +1047 -10
  39. package/src/components/table/tableForm.vue +99 -63
  40. package/src/components/table/tableFormMixin.js +1 -1
  41. package/src/components/table/util/index.js +328 -0
  42. package/src/components/table/vxeFilter/mixin.js +1 -1
  43. package/src/components/vb-tabs/x-tabs.vue +3 -2
  44. package/src/components/wf/content.vue +94 -4
  45. package/src/components/wf/setCandidateDialog.vue +1 -0
  46. package/src/components/wf/wf.js +1918 -1
  47. package/src/components/wf/wfStartDialog.vue +1 -1
  48. package/src/components/wf/wfUtil.js +1 -1
  49. package/src/components/xform/form-designer/designer.js +1 -1
  50. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +2 -1
  51. package/src/components/xform/form-designer/form-widget/dialog/exportDialog.vue +13 -0
  52. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +301 -0
  53. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +16 -4
  54. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +5 -1
  55. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +37 -6
  56. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +3 -1
  57. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +26 -7
  58. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +1 -1
  59. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  60. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +34 -5
  61. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  62. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +14 -6
  63. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -0
  64. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +21 -2
  65. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +77 -0
  66. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +106 -0
  67. package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
  68. package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
  69. package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
  70. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +23 -16
  71. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +259 -6
  72. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +6 -8
  73. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +81 -0
  74. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +49 -8
  75. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +61 -88
  76. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +13 -0
  77. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +176 -0
  78. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  79. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +2 -2
  80. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +70 -3
  81. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +21 -5
  82. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +1 -1
  83. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +17 -5
  84. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  85. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +22 -17
  86. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +6 -1
  87. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +46 -34
  88. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +2 -2
  89. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +2 -170
  90. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +88 -8
  91. package/src/components/xform/form-designer/indexMixin.js +1 -1
  92. package/src/components/xform/form-designer/setting-panel/form-setting.vue +834 -154
  93. package/src/components/xform/form-designer/setting-panel/index.vue +4 -0
  94. package/src/components/xform/form-designer/setting-panel/indexMixin.js +1 -1
  95. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +71 -7
  96. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +4 -4
  97. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +3 -3
  98. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  99. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +6 -0
  100. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +28 -0
  101. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  102. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +126 -0
  103. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1077 -1042
  104. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  105. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +1058 -496
  106. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +2 -2
  107. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-pane/detail-pane-editor.vue +3 -3
  108. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  109. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  110. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  111. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +0 -8
  112. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  113. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onAfterConfirmFile-editor.vue +32 -0
  114. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +2 -2
  115. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +35 -20
  116. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +48 -5
  117. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +27 -0
  118. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  119. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  120. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +185 -69
  121. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +188 -86
  122. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-pie-editor.vue +84 -39
  123. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +26 -10
  124. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +86 -0
  125. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  126. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +47 -28
  127. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +26 -7
  128. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  129. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +30 -1
  130. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +46 -4
  131. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +721 -466
  132. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +20 -11
  133. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +1 -1
  134. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +1 -1
  135. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +1 -1
  136. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  137. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  138. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  139. package/src/components/xform/form-designer/setting-panel/property-editor/placeholder-editor.vue +1 -1
  140. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  141. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +318 -0
  142. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +10 -6
  143. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +3 -3
  144. package/src/components/xform/form-designer/setting-panel/property-editor/showRuleFlag-editor.vue +1 -1
  145. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +305 -19
  146. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +2 -2
  147. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +2 -2
  148. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +384 -53
  149. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +263 -0
  150. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +21 -9
  151. package/src/components/xform/form-designer/toolbar-panel/index.vue +12 -11
  152. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +1 -1
  153. package/src/components/xform/form-designer/widget-panel/index.vue +21 -1
  154. package/src/components/xform/form-designer/widget-panel/indexMixin.js +3 -2
  155. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +791 -364
  156. package/src/components/xform/form-render/container-item/containerItemMixin.js +1 -1
  157. package/src/components/xform/form-render/container-item/data-table-item.vue +86 -42
  158. package/src/components/xform/form-render/container-item/data-table-mixin.js +2423 -18
  159. package/src/components/xform/form-render/container-item/data-table-mixin2.js +2169 -0
  160. package/src/components/xform/form-render/container-item/detail-pane-item.vue +17 -3
  161. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  162. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  163. package/src/components/xform/form-render/container-item/list-h5-item.vue +1 -9
  164. package/src/components/xform/form-render/container-item/list-h5-item2.vue +1 -8
  165. package/src/components/xform/form-render/container-item/tab-item.vue +11 -6
  166. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  167. package/src/components/xform/form-render/container-item/table-item.vue +4 -2
  168. package/src/components/xform/form-render/index.vue +4 -1
  169. package/src/components/xform/form-render/indexMixin.js +9 -25
  170. package/src/components/xform/lang/zh-CN.js +14 -3
  171. package/src/components/xform/mixins/defaultHandle.js +1 -1
  172. package/src/components/xform/mixins/scriptHttp.js +3 -1
  173. package/src/components/xform/utils/emitter.js +4 -4
  174. package/src/components/xform/utils/format.js +21 -30
  175. package/src/components/xform/utils/formula-util.js +669 -0
  176. package/src/components/xform/utils/util.js +1 -1
  177. package/src/components/xform/utils/validators.js +1 -5
  178. package/src/index.js +2 -2
  179. package/src/layout/components/AppMain.vue +5 -1
  180. package/src/layout/components/Sidebar/default.vue +50 -6
  181. package/src/layout/components/TagsView/index.vue +35 -10
  182. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  183. package/src/layout/components/extractedCode/queryDialog.vue +96 -0
  184. package/src/layout/components/extractedCode/viewDialog.vue +192 -0
  185. package/src/layout/components/watermark/index.vue +83 -0
  186. package/src/layout/defaultLayout.vue +1 -1
  187. package/src/mixins/selectDialog/index.js +1 -1
  188. package/src/mixins/tableTree/index.js +1 -1
  189. package/src/router/modules/customer.js +15 -0
  190. package/src/store/config/index.js +1 -1
  191. package/src/store/modules/permission.js +1 -1
  192. package/src/store/modules/settings.js +1 -1
  193. package/src/store/modules/user.js +1 -1
  194. package/src/utils/index.js +4 -2
  195. package/src/utils/pddLog.js +103 -0
  196. package/src/utils/request.js +351 -357
  197. package/src/utils/vab.js +1107 -27
  198. package/src/views/bd/setting/bd_attach_setting/edit.vue +5 -5
  199. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  200. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +4 -5
  201. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +239 -1
  202. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -0
  203. package/src/views/bd/setting/bd_company_env/edit.vue +163 -0
  204. package/src/views/bd/setting/bd_company_env/list.vue +175 -0
  205. package/src/views/bd/setting/config_manage/list.vue +51 -0
  206. package/src/views/bd/setting/form_import_log/edit.vue +127 -0
  207. package/src/views/bd/setting/form_import_log/list.vue +206 -0
  208. package/src/views/bd/setting/form_script/edit.vue +9 -0
  209. package/src/views/bd/setting/form_script/edit1.vue +36 -3
  210. package/src/views/bd/setting/form_script/form_list.vue +1 -1
  211. package/src/views/bd/setting/form_script/list1.vue +4 -4
  212. package/src/views/bd/setting/form_script/mixins/dialog.js +130 -1
  213. package/src/views/bd/setting/form_script/mixins/edit.js +201 -1
  214. package/src/views/bd/setting/form_script/mixins/edit1.js +193 -1
  215. package/src/views/bd/setting/form_script/mixins/form_list.js +1 -1
  216. package/src/views/bd/setting/form_script/mixins/list.js +236 -1
  217. package/src/views/bd/setting/form_script/mixins/list1.js +422 -14
  218. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +194 -0
  219. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  220. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +105 -0
  221. package/src/views/bd/setting/form_template/edit.vue +22 -1
  222. package/src/views/bd/setting/form_template/editWfObjConfigDialog.vue +2 -2
  223. package/src/views/bd/setting/form_template/list.vue +5 -5
  224. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +4 -0
  225. package/src/views/bd/setting/form_template/mixins/edit.js +201 -1
  226. package/src/views/bd/setting/form_template/mixins/list.js +688 -22
  227. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +193 -0
  228. package/src/views/bd/setting/form_template/mixins/wf_list.js +12 -0
  229. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  230. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +254 -0
  231. package/src/views/bd/setting/form_template/wf_list.vue +127 -0
  232. package/src/views/bd/setting/menu_kind/list.vue +4 -0
  233. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +1 -1
  234. package/src/views/bd/setting/menu_kind/mixins/list.js +201 -1
  235. package/src/views/bd/setting/push_data/edit.vue +137 -0
  236. package/src/views/bd/setting/push_data/list.vue +283 -0
  237. package/src/views/bd/setting/push_data_h/edit.vue +144 -0
  238. package/src/views/bd/setting/push_data_h/list.vue +293 -0
  239. package/src/views/bd/setting/request_async_setting/edit.vue +279 -0
  240. package/src/views/bd/setting/request_async_setting/list.vue +297 -0
  241. package/src/views/bd/setting/request_setting/edit.vue +258 -0
  242. package/src/views/bd/setting/request_setting/list.vue +248 -0
  243. package/src/views/bd/setting/table_model/edit.vue +863 -426
  244. package/src/views/bd/setting/table_model/list.vue +4 -4
  245. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -1
  246. package/src/views/bd/setting/table_model/mixins/edit.js +1150 -13
  247. package/src/views/bd/setting/table_model/mixins/list.js +439 -14
  248. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +201 -0
  249. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  250. package/src/views/user/area/dialog.vue +21 -9
  251. package/src/views/user/bill_setting/edit.vue +1 -1
  252. package/src/views/user/bill_setting/list.vue +1 -1
  253. package/src/views/user/common_attribute/itemEdit.vue +2 -2
  254. package/src/views/user/common_attribute/list.vue +1 -1
  255. package/src/views/user/common_script/edit.vue +1 -1
  256. package/src/views/user/common_script/list.vue +1 -1
  257. package/src/views/user/company_info/dialog.vue +164 -154
  258. package/src/views/user/company_info/edit.vue +1 -1
  259. package/src/views/user/extend_datasource/dialog.vue +1 -0
  260. package/src/views/user/extend_datasource/edit.vue +3 -0
  261. package/src/views/user/extend_datasource/list.vue +2 -1
  262. package/src/views/user/fieldTranslation/editDialog.vue +7 -7
  263. package/src/views/user/fieldTranslation/list.vue +32 -32
  264. package/src/views/user/file_type/edit.vue +30 -1
  265. package/src/views/user/file_type/list.vue +28 -0
  266. package/src/views/user/form/vform/designer.vue +775 -749
  267. package/src/views/user/form/vform/out_render.vue +1 -1
  268. package/src/views/user/form/vform/render.vue +3 -3
  269. package/src/views/user/form/view/list.vue +30 -12
  270. package/src/views/user/groups/edit.vue +2 -0
  271. package/src/views/user/groups/list.vue +1 -0
  272. package/src/views/user/home/default.vue +1024 -979
  273. package/src/views/user/home/dev.vue +29 -0
  274. package/src/views/user/home/index.vue +16 -6
  275. package/src/views/user/login/default.vue +36 -5
  276. package/src/views/user/login/indexMixin.js +117 -3
  277. package/src/views/user/notify_message/dialog.vue +1 -1
  278. package/src/views/user/notify_template/edit.vue +188 -187
  279. package/src/views/user/notify_template/edit2.vue +176 -0
  280. package/src/views/user/notify_template/list.vue +4 -1
  281. package/src/views/user/notify_template/list2.vue +190 -0
  282. package/src/views/user/outLink/form_view.vue +39 -12
  283. package/src/views/user/outLink/index.vue +17 -0
  284. package/src/views/user/outLink/view.vue +28 -23
  285. package/src/views/user/position/edit.vue +55 -54
  286. package/src/views/user/position/list.vue +4 -4
  287. package/src/views/user/project_tag/dialog.vue +9 -4
  288. package/src/views/user/project_tag/edit.vue +2 -2
  289. package/src/views/user/project_tag/list.vue +9 -4
  290. package/src/views/user/push_setting/list.vue +2 -2
  291. package/src/views/user/request_setting/edit.vue +258 -0
  292. package/src/views/user/request_setting/list.vue +248 -0
  293. package/src/views/user/role/dialog.vue +1 -1
  294. package/src/views/user/role/list.vue +4 -4
  295. package/src/views/user/sale_org/dialog.vue +1 -1
  296. package/src/views/user/sale_org/list.vue +4 -1
  297. package/src/views/user/user/dialog.vue +46 -23
  298. package/src/views/user/user/edit.vue +35 -15
  299. package/src/views/user/user/form_dialog.vue +158 -0
  300. package/src/views/user/user/form_edit.vue +63 -2
  301. package/src/views/user/user/form_info.vue +210 -0
  302. package/src/views/user/user/form_list.vue +1 -0
  303. package/src/views/user/user/list.vue +4 -20
  304. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -0
  305. package/src/views/user/wf/wf_manage/list.vue +30 -1
  306. package/src/views/user/wf/wf_manage/wfContentDialog.vue +1 -1
  307. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  308. package/src/views/user/wf/wf_obj_config/itemEdit.vue +25 -1
  309. package/src/views/user/wf/wf_obj_config/list.vue +115 -10
  310. package/src/views/user/wf/wf_obj_config/wfBizDataSettingDialog.vue +2 -2
@@ -0,0 +1,2169 @@
1
+ import emitter from "../../../../components/xform/utils/emitter";
2
+ import i18n from "../../../../components/xform/utils/i18n";
3
+ import refMixin from "../../../../components/xform/form-render/refMixin";
4
+ import containerItemMixin from "./containerItemMixin";
5
+
6
+ import * as formatUtil from "../../../../components/xform/utils/format.js";
7
+ import tableConfig from "../../../../components/table/config.js";
8
+ import {extendDeeply} from "../../../../utils/index.js";
9
+ import {
10
+ assembleAxiosConfig,
11
+ getReportGlobalMap,
12
+ generateId,
13
+ } from "../../../../components/xform/utils/util";
14
+ import {tableTreeMixins} from "../../../../mixins/tableTree/index.js";
15
+
16
+ let modules = {};
17
+ const baseRefUtil = {
18
+ emitter,
19
+ i18n,
20
+ refMixin,
21
+ containerItemMixin,
22
+ formatUtil,
23
+ assembleAxiosConfig,
24
+ tableConfig,
25
+ getReportGlobalMap,
26
+ };
27
+
28
+ modules = {
29
+ mixins: [
30
+ baseRefUtil.emitter,
31
+ baseRefUtil.i18n,
32
+ baseRefUtil.refMixin,
33
+ baseRefUtil.containerItemMixin,
34
+ tableTreeMixins,
35
+ ],
36
+ componentName: "ContainerItem",
37
+ props: {
38
+ widget: Object,
39
+ parentWidget: Object,
40
+ parentList: Array,
41
+ indexOfParentList: Number,
42
+ subFormRowIndex: {
43
+ type: Number,
44
+ default: -1,
45
+ },
46
+ subFormColIndex: {
47
+ type: Number,
48
+ default: -1,
49
+ },
50
+ subFormRowId: {
51
+ type: String,
52
+ default: "",
53
+ },
54
+ },
55
+ inject: [
56
+ "refList",
57
+ "sfRefList",
58
+ "globalModel",
59
+ "getFormConfig",
60
+ "getGlobalDsv",
61
+ "previewState",
62
+ ],
63
+ data: function () {
64
+ let that = this;
65
+ return {
66
+ fieldModel: [],
67
+ selectedIndices: [],
68
+ pageSize: this.widget.options.pagination.pageSize,
69
+ pageSizes: this.widget.options.pagination.pageSizes,
70
+ currentPage: this.widget.options.pagination.currentPage,
71
+ total: this.widget.options.pagination.total,
72
+ formData: {
73
+ saleOrgName: "",
74
+ loginAccount: "",
75
+ mobile: "",
76
+ enabled: 1,
77
+ },
78
+ vxeOption: {},
79
+ requestAccess: null,
80
+ columnFormatMap: {
81
+ editInput: "input",
82
+ editNumber: "number",
83
+ editDate: "date",
84
+ editSelect: "select",
85
+ editSearch: "vabsearch",
86
+ editAttachment: "baseAttachment",
87
+ editStatus: "status",
88
+ aText: "a-text",
89
+ aLink: "a-link",
90
+ editDelete: "a-link",
91
+ editButton: "a-link",
92
+ button: "button",
93
+ addSiblingEditRow: "a-link",
94
+ addChildTreeRow: "a-link",
95
+ moveUpRow: "a-link",
96
+ moveDownRow: "a-link",
97
+ removeTreeRow: "a-link",
98
+ text: "text",
99
+ checkbox: "checkbox",
100
+ radio: "radio",
101
+ },
102
+ dataTableConfig: {},
103
+ widgets: [],
104
+ editWidgets: [],
105
+
106
+ sortParentRow: null,
107
+ sortRows: [],
108
+ showTreeMoveDialog: false,
109
+ tableConfig: {},
110
+ showTableFormDialogContent: true,
111
+ widgetMap: {},
112
+ rowWidgetList: []
113
+ };
114
+ },
115
+ watch: {
116
+ fieldModel(val) {
117
+ this.formModel[this.fieldKeyName] = val || [];
118
+ },
119
+ },
120
+ computed: {
121
+ hasWf() {
122
+ return this.getFormRef().hasWf || false;
123
+ },
124
+ tableDatas: {
125
+ cache: !1,
126
+ get: function () {
127
+ return this.globalModel.formModel[this.fieldKeyName] || [];
128
+ },
129
+ },
130
+ formConfig: function () {
131
+ return this.getFormConfig();
132
+ },
133
+ paginationLayout: function () {
134
+ return this.widget.options.smallPagination
135
+ ? "prev, pager, next"
136
+ : "total, sizes, prev, pager, next, jumper";
137
+ },
138
+ customClass: function () {
139
+ return this.widget.options.customClass || "";
140
+ },
141
+ singleRowSelectFlag: function () {
142
+ return !this.widget.options.showCheckBox;
143
+ },
144
+ buttonsColumnFixed: function () {
145
+ return void 0 === this.widget.options.buttonsColumnFixed
146
+ ? "right"
147
+ : !!this.widget.options.buttonsColumnFixed &&
148
+ this.widget.options.buttonsColumnFixed;
149
+ },
150
+ formModel: {
151
+ cache: !1,
152
+ get: function () {
153
+ return this.globalModel.formModel;
154
+ },
155
+ },
156
+ formDataId() {
157
+ let formRef = this.getFormRef();
158
+ return formRef.dataId;
159
+ },
160
+ },
161
+ created: function () {
162
+ if (!this.formModel[this.fieldKeyName])
163
+ this.formModel[this.fieldKeyName] = [];
164
+ this.initRefList();
165
+ this.handleOnCreated();
166
+ },
167
+ mounted: async function () {
168
+ this.handleOnMounted();
169
+ this.initTableList();
170
+ },
171
+ beforeDestroy: function () {
172
+ this.unregisterFromRefList();
173
+ },
174
+ methods: {
175
+ getRowRefKey(row, name) {
176
+ let keyVal = row._X_ROW_KEY;
177
+ let key = name + "_" + keyVal;
178
+ return key;
179
+ },
180
+ getWidgetByTableRow(index, name) {
181
+ let target = this.getWidgetRefByTableRow(index, name)
182
+ let widget = target.field || target.widget;
183
+ return widget
184
+ },
185
+ getWidgetRefByTableRow(index, name) {
186
+ let row = this.getGridTable().getTableData().fullData[index];
187
+ let key = this.getRowRefKey(row, name);
188
+ return this.getWidgetRef(key);
189
+ },
190
+ getWidgetRefByTableParam(tableParam) {
191
+ let index = tableParam.rowIndex;
192
+ let params = tableParam.column.params;
193
+ let name = params.widget.options.name;
194
+ return this.getWidgetRefByTableRow(index, name);
195
+ },
196
+ getRowWidget(rowParam, fieldWidget) {
197
+ let row = rowParam.row;
198
+ let params = rowParam.column.params;
199
+ let name = fieldWidget ? fieldWidget.options.name : params.widget.options.name;
200
+ let key = this.getRowRefKey(row, name);
201
+ let widget = this.widgetMap[key];
202
+ if (!widget) {
203
+ this.$set(
204
+ this.widgetMap,
205
+ key,
206
+ this.$baseLodash.cloneDeep(fieldWidget ? fieldWidget : params.widget)
207
+ );
208
+ }
209
+
210
+ return this.widgetMap[key];
211
+ },
212
+ loopHandleWidgetByName(name, callback) {
213
+ let rows = this.getValue();
214
+ rows.forEach((row, index) => {
215
+ let target = this.getWidgetRefByTableRow(index, name)
216
+ if (target) {
217
+ let widget = target.field || target.widget;
218
+ callback(row, widget, target)
219
+ }
220
+ })
221
+ },
222
+ getRowWidgetOption(rowParam, fieldWidget) {
223
+ let widget = this.getRowWidget(rowParam, fieldWidget);
224
+ let field = widget.category == 'container' ? 'widget' : 'field'
225
+ let option = {
226
+ [field]: widget
227
+ }
228
+ return option
229
+ },
230
+ getRowWidgetKey(rowParam, fieldWidget) {
231
+ let row = rowParam.row;
232
+ let params = rowParam.column.params;
233
+ let name = fieldWidget ? fieldWidget.options.name : params.widget.options.name;
234
+ let key = this.getRowRefKey(row, name);
235
+ return key;
236
+ },
237
+ getGridTableName() {
238
+ let formCode = this.getFormRef().reportTemplate.formCode;
239
+ let tableName = formCode + "_" + this.widget.options.name;
240
+ return tableName;
241
+ },
242
+ updateFormField: function () {
243
+ let rows = this.fieldModel || [];
244
+ let formRows = this.formModel[this.fieldKeyName];
245
+ if (formRows) {
246
+ this.formModel[this.fieldKeyName].splice(0, formRows.length);
247
+ this.formModel[this.fieldKeyName].push(...rows);
248
+ } else {
249
+ this.formModel[this.fieldKeyName] = rows;
250
+ }
251
+ },
252
+ setValue(val) {
253
+ // console.log("rows:",val);
254
+ this.clearRowWidgets()
255
+ let rows = val || [];
256
+ this.formModel[this.fieldKeyName] = rows;
257
+ let $grid = this.getGridTable();
258
+ this.fieldModel = rows;
259
+ // $grid.loadData(rows);
260
+ },
261
+ getValue() {
262
+ return this.formModel[this.fieldKeyName];
263
+ },
264
+ getFieldKeyName(widget) {
265
+ let o = widget.options.name;
266
+ return (widget.options.keyNameEnabled && widget.options.keyName) || o;
267
+ },
268
+ selectWidget: function (e) {
269
+ this.designer.setSelected(e);
270
+ },
271
+ formatterValue: function ({cellValue, row, column}) {
272
+ if (cellValue === null || cellValue === undefined) return cellValue;
273
+
274
+ if (column.params && column.params.formatS)
275
+ switch (column.params.formatS) {
276
+ case "d1":
277
+ return baseRefUtil.formatUtil.formatDate1(cellValue);
278
+ case "d2":
279
+ return baseRefUtil.formatUtil.formatDate2(cellValue);
280
+ case "d3":
281
+ return baseRefUtil.formatUtil.formatDate3(cellValue);
282
+ case "d4":
283
+ return baseRefUtil.formatUtil.formatDate4(cellValue);
284
+ case "d5":
285
+ return baseRefUtil.formatUtil.formatDate4(cellValue);
286
+ case "n1":
287
+ return baseRefUtil.formatUtil.formatNumber1(cellValue);
288
+ case "n2":
289
+ return baseRefUtil.formatUtil.formatNumber2(cellValue);
290
+ case "n3":
291
+ return baseRefUtil.formatUtil.formatNumber3(cellValue);
292
+ case "n4":
293
+ return baseRefUtil.formatUtil.formatNumber4(cellValue);
294
+ case "n5":
295
+ return baseRefUtil.formatUtil.formatNumber5(cellValue);
296
+ case "n6":
297
+ return baseRefUtil.formatUtil.formatNumber6(cellValue);
298
+ case "n7":
299
+ return baseRefUtil.formatUtil.formatNumber7(cellValue);
300
+ }
301
+ return cellValue;
302
+ },
303
+ getRowIndex: function (e) {
304
+ return this.widget.options.tableData.lastIndexOf(e);
305
+ },
306
+ setTableColumns: function (e) {
307
+ var t = this;
308
+ (this.widget.options.tableColumns = e),
309
+ this.$nextTick(function () {
310
+ t.$refs.dataTable.doLayout();
311
+ });
312
+ },
313
+ setTableColumn: function (e) {
314
+ this.setTableColumns(e);
315
+ },
316
+ getTableData: function () {
317
+ return this.widget.options.tableData;
318
+ },
319
+ resetForm(options) {
320
+ let formData = this.formModel;
321
+ let ignoreFields = options?.ignoreFields || [];
322
+ this.widget.widgetList.forEach((subWidget) => {
323
+ if (
324
+ !ignoreFields.length ||
325
+ !ignoreFields.includes(subWidget.options.name)
326
+ ) {
327
+ let widgetRef = this.getWidgetRef(subWidget.options.name);
328
+ if (widgetRef && widgetRef.setValue) widgetRef.setValue(null);
329
+ }
330
+ });
331
+ },
332
+ searchEvent() {
333
+ this.getGridTable().commitProxy("reload");
334
+ },
335
+ async resetEvent(options) {
336
+ this.resetForm(options);
337
+ this.getGridTable().commitProxy("reload");
338
+ },
339
+ handleSearchClick() {
340
+ if (this.widget.options.onSearchTable) {
341
+ this.handleCustomEvent(this.widget.options.onSearchTable);
342
+ return;
343
+ }
344
+ this.searchEvent();
345
+ },
346
+ handleResetClick() {
347
+ if (this.widget.options.onResetTable) {
348
+ this.handleCustomEvent(this.widget.options.onResetTable);
349
+ return;
350
+ }
351
+ this.resetEvent();
352
+ },
353
+ openEditDialog(row, param) {
354
+ let formRef = this.getFormRef();
355
+ let parentTarget = formRef.$attrs["parent-target"];
356
+ parentTarget &&
357
+ parentTarget.$attrs.openEditDialog &&
358
+ parentTarget.$attrs.openEditDialog(row, param);
359
+ },
360
+ importExcel() {
361
+ },
362
+ getGrid(that, tableRef) {
363
+ var $grid;
364
+ if (Array.isArray(that.$refs[tableRef])) {
365
+ $grid = that.$refs[tableRef][0];
366
+ } else {
367
+ $grid = that.$refs[tableRef];
368
+ }
369
+ return $grid;
370
+ },
371
+ getTableCondition: function () {
372
+ if (this.widget.options.tableCondition) {
373
+ var e = new Function(this.widget.options.tableCondition);
374
+ return e.call(this);
375
+ }
376
+ },
377
+ getSearchCondition: function () {
378
+ let extraAccessData = this.extraAccessData || {};
379
+ let searchFormData = this.getSearchFormData();
380
+ let defaultData = {};
381
+
382
+ // let globalReqData = baseRefUtil.getReportGlobalMap();//全局请求参数
383
+ let tableCondition = this.getTableCondition();
384
+ let conditions = {
385
+ ...defaultData,
386
+ ...tableCondition,
387
+ ...searchFormData,
388
+ ...extraAccessData,
389
+ // ...globalReqData
390
+ };
391
+ return conditions;
392
+ },
393
+ createColumns() {
394
+ let rowWidgetList = [];
395
+ let tableColumns = this.widget.options.tableColumns;
396
+ let newColumns = [];
397
+ if (!this.widget.options.hideGridCheckBox) {
398
+ newColumns.push({
399
+ type: "checkbox",
400
+ width: 48,
401
+ resizable: false,
402
+ fixed: "left",
403
+ });
404
+ }
405
+
406
+ let tableWidgetName = this.widget.options.name;
407
+ const createColumn = (t, isChild) => {
408
+
409
+ let col = {
410
+ fixed: !!t.fixed && t.fixed,
411
+ field: t.prop,
412
+ title: this.getI18nLabel(t.label),
413
+ sortable: t.sortable,
414
+ align: t.align ? t.align : "center",
415
+ formatter: this.formatterValue,
416
+ params: {
417
+ formatS: t.formatS,
418
+ columnId: t.columnId,
419
+ exportType: t.exportType,
420
+ isItemLine: t.isItemLine,
421
+ footerDataType: t.footerDataType,
422
+ footerMethodConfg: t.footerMethodConfg,
423
+ widgetList: t.widgetList,
424
+ tableWidgetName
425
+ },
426
+ visible: t.show,
427
+ slots: {},
428
+ };
429
+ if (t.treeNode) {
430
+ col.treeNode = true;
431
+ }
432
+ if (t.children && t.children.length) {
433
+ col.align = "center";
434
+ delete col.field;
435
+ let childColumns = t.children.map((child) => {
436
+ return createColumn(child, true);
437
+ });
438
+ col.children = childColumns;
439
+
440
+ col.sortable = false;
441
+ col.filterType = false;
442
+ } else {
443
+ col.width = t.width;
444
+ if (isChild) {
445
+ if (col.title && col.field) {
446
+ col.filters = [
447
+ {
448
+ data: {},
449
+ },
450
+ ];
451
+ col.filterRender = {
452
+ name: "FilterContent",
453
+ };
454
+ }
455
+ }
456
+ }
457
+ col = addColumProperty(col, t);
458
+
459
+ if (col.params.widget) {
460
+ rowWidgetList.push(col.params.widget)
461
+ }
462
+ if (col.params.editWidget) {
463
+ rowWidgetList.push(col.params.editWidget)
464
+ }
465
+ if (col.params.widgetList && col.params.widgetList.length) {
466
+ col.params.widgetList.forEach((item) => {
467
+ rowWidgetList.push(item)
468
+ })
469
+
470
+ }
471
+ return col;
472
+ };
473
+
474
+ const addColumProperty = (col, t) => {
475
+ let columnOption;
476
+ let widget;
477
+ let columnWidgetConfig = this.getColumnWidgetConfig(t);
478
+ let {columnSelectedWidget, columnEditFields} = columnWidgetConfig;
479
+ if (columnSelectedWidget) {
480
+ widget = columnSelectedWidget;
481
+ columnOption = widget.options;
482
+ } else {
483
+ columnOption = {};
484
+ }
485
+
486
+ let {columnSelectedWidget: editWidget} = this.getColumnWidgetConfig(
487
+ t,
488
+ true
489
+ );
490
+
491
+ let params = {
492
+ ...columnOption,
493
+ widget: widget,
494
+ formatS: t.formatS,
495
+ required: t.required || false,
496
+ columnConfig: t,
497
+ editWidget,
498
+ };
499
+ Object.assign(col.params, params);
500
+ if (!col.children || !col.children.length) {
501
+ if (t.formatS == "render") {
502
+ let r = t.render ? new Function("params", "h", t.render) : null;
503
+ col.slots.default = (params, h) => {
504
+ return r ? r.call(this, params, h) : "";
505
+ };
506
+ } else if (columnSelectedWidget) {
507
+ // col.slots.default = columnSelectedWidget.id;
508
+ col.slots.default = "widget";
509
+ } else if (t.formatS == "editTreeButtonGroup") {
510
+ col.slots.default = "editTreeButtonGroup";
511
+ } else if (t.formatS == "widgetRender") {
512
+ col.slots.default = "widgetList";
513
+ }
514
+
515
+ if (editWidget) {
516
+ col.editRender = {name: "input"};
517
+ // col.slots.edit = editWidget.id;
518
+ col.slots.edit = "editWidget";
519
+ }
520
+ }
521
+ if (t.tableColumnConfig) {
522
+ let tableColumnConfig =
523
+ this.handleCustomEvent(t.tableColumnConfig) || {};
524
+ col = extendDeeply(col, tableColumnConfig);
525
+ }
526
+ return col;
527
+ };
528
+
529
+ let formRef = this.getFormRef();
530
+ tableColumns.forEach((t) => {
531
+ let col = createColumn(t);
532
+ newColumns.push(col);
533
+ });
534
+
535
+ if (
536
+ baseRefUtil.tableConfig &&
537
+ baseRefUtil.tableConfig.className == "list-table"
538
+ ) {
539
+ if (tableColumns.length) {
540
+ let tableColumn = [tableColumns.length - 1];
541
+ if (tableColumn.fixed != "right") {
542
+ newColumns.push({
543
+ width: 47,
544
+ title: "",
545
+ fixed: "right",
546
+ sortable: false,
547
+ });
548
+ }
549
+ }
550
+ }
551
+ this.rowWidgetList = rowWidgetList;
552
+ return this.$baseLodash.cloneDeep(newColumns);
553
+ },
554
+ initTableList() {
555
+ let that = this;
556
+ let path = null;
557
+ let paramFun = null;
558
+ // let mainDataSetDTO = null;
559
+ let requestAccess = this.requestAccess;
560
+ let tableRef = this.getTableRef();
561
+ let formDataModel = this.getFormRef().formDataModel;
562
+ let isQueryTable = this.widget.options.isQueryTable || false;
563
+ let isDataPage = this.widget.options.accessReturnType == "2";
564
+ let reportTemplate = this.getFormRef().reportTemplate;
565
+ let formCode = reportTemplate.formCode;
566
+ let dataId = this.formDataId;
567
+ let accessScript = this.widget.options.accessScript;
568
+ let searchColumns = null;
569
+
570
+ if (isQueryTable) {
571
+ path = "#";
572
+ paramFun = () => {
573
+ let conditions = this.getSearchCondition();
574
+ let $grid = this.getGridTable();
575
+ if (this.widget.options.showPagination) {
576
+ let proxyInfo = $grid.getProxyInfo();
577
+ let searchCount = true;
578
+ let isQueryAllPage = $grid.isQueryAllPage;
579
+ if (isQueryAllPage == false) {
580
+ searchCount = false;
581
+ }
582
+ let pager = proxyInfo ? proxyInfo.pager : null;
583
+ if (pager) {
584
+ conditions.current = pager.currentPage;
585
+ conditions.size = pager.pageSize;
586
+ conditions.searchCount = searchCount;
587
+ }
588
+ }
589
+
590
+ /*let formData = {
591
+ accessCode: requestAccess.accessCode,
592
+ conditions: conditions
593
+ };*/
594
+ let formData = conditions;
595
+ return formData;
596
+ };
597
+
598
+ searchColumns = [];
599
+ let widgetList = this.widget.widgetList;
600
+
601
+ let getDateItem = (widget) => {
602
+ let options = widget.options;
603
+
604
+ let dateConfig = {
605
+ format: options.format,
606
+ valueFormat: options.valueFormat ?? null,
607
+ };
608
+ let typeMap = {
609
+ input: {type: "input"},
610
+ number: {type: "number"},
611
+ inputBatch: {type: "inputBatch"},
612
+ date: {
613
+ type: "date",
614
+ widgetType: options.type,
615
+ widgetConfig: dateConfig,
616
+ },
617
+ time: {
618
+ type: "time",
619
+ widgetConfig: {
620
+ ...dateConfig,
621
+ valueFormat: "HH:mm:ss",
622
+ },
623
+ },
624
+ "date-range": {
625
+ type: "date",
626
+ widgetType: "daterange",
627
+ widgetConfig: {...dateConfig, isRange: true},
628
+ },
629
+ "time-range": {
630
+ type: "time",
631
+ widgetConfig: {
632
+ ...dateConfig,
633
+ isRange: true,
634
+ valueFormat: "HH:mm:ss",
635
+ },
636
+ },
637
+ };
638
+ let item = typeMap[widget.type] || {};
639
+ return item;
640
+ };
641
+
642
+ widgetList.forEach((widget) => {
643
+ if ("container" !== widget.category) {
644
+ let options = widget.options;
645
+ let item = getDateItem(widget);
646
+ let type = item.type ?? null;
647
+ // let widgetType = item.widgetType ?? widgetType;
648
+ // let isRange = item.isRange || false;
649
+ searchColumns.push({
650
+ title: this.getI18nLabel(options.label),
651
+ field: this.getFieldKeyName(widget),
652
+ // type,
653
+ // widgetType,
654
+ // isRange,
655
+ common: true,
656
+ disabled: options.disabled,
657
+ defaultValueEnabled: !!type,
658
+ slot: options.name,
659
+ widget: widget,
660
+ formItem: false,
661
+ ...item,
662
+ });
663
+ }
664
+ });
665
+ }
666
+
667
+ let formRef = this.getFormRef();
668
+ let dataTableConfig = formRef.$attrs.dataTableOption || {};
669
+ this.dataTableConfig = dataTableConfig;
670
+
671
+ let columns = this.createColumns();
672
+ this.widgets = columns
673
+ .filter((column) => !!column?.params?.widget)
674
+ .map((column) => column.params.widget);
675
+ this.editWidgets = columns
676
+ .filter((column) => !!column?.params?.editWidget)
677
+ .map((column) => column.params.editWidget);
678
+
679
+ let height =
680
+ this.widget.options.tableHeight || (isQueryTable ? "auto" : null);
681
+ if (
682
+ !this.widget.options.tableHeight &&
683
+ isQueryTable &&
684
+ this.previewState
685
+ ) {
686
+ height = "550px";
687
+ }
688
+
689
+ let formConfig = this.formConfig;
690
+ let scriptCode = this.getScriptCode();
691
+
692
+ let otherParam = {};
693
+ let attachmentType = this.getAttachmentType();
694
+ if (attachmentType.length) {
695
+ otherParam.attachmentType = attachmentType;
696
+ }
697
+ let thirdtabm = this.getThirdtabm();
698
+ if (thirdtabm.length) {
699
+ otherParam.thirdtabm = thirdtabm;
700
+ }
701
+
702
+ let pagerConfig = {};
703
+ let editDefaultRow, treeNodeParam, treeConfig;
704
+ let isTreeTable = this.widget.options.isTreeTable;
705
+ if (isTreeTable) {
706
+ pagerConfig.pagerClass = "is--hidden";
707
+ if (this.widget.options.editDefaultRow) {
708
+ editDefaultRow = this.handleCustomEvent(
709
+ this.widget.options.editDefaultRow
710
+ );
711
+ }
712
+ treeNodeParam = (row) => {
713
+ return {
714
+ [this.widget.options.parentField]: row.id,
715
+ };
716
+ };
717
+ treeConfig = {
718
+ lazy: false,
719
+ children: "f_children",
720
+ hasChild: "f_has_child", // 设置是否有子节点标识
721
+ parentField: "f_parent",
722
+ transform: true,
723
+ expandAll: true,
724
+ loadMethod({$table, row}) {
725
+ // 模拟后台接口
726
+ let $grid = that.getGridTable();
727
+ let parentField = $grid.treeConfig.parentField;
728
+ return new Promise((resolve, reject) => {
729
+ let treeParam = that.widget.options.tableConfig?.treeNodeParam;
730
+ let reqPram = {};
731
+ if (treeParam) {
732
+ reqPram = treeParam(row) || {};
733
+ }
734
+ Object.assign(reqPram, {
735
+ [parentField]: row.id,
736
+ });
737
+ let accessParam = this.getAccessParam() || {};
738
+ let defaultOption = that.getHttpConfigForUser();
739
+ that.formHttp({
740
+ scriptCode: scriptCode,
741
+ data: {
742
+ formCode: formCode,
743
+ formVersion: reportTemplate.formVersion,
744
+ taBm: that.fieldKeyName,
745
+ data: {
746
+ ...reqPram,
747
+ ...otherParam,
748
+ ...accessParam,
749
+ },
750
+ },
751
+ callback: (res) => {
752
+ if (res.type == "success") {
753
+ let rows = res.objx
754
+ ? res.objx.records || res.objx || []
755
+ : [];
756
+
757
+ let hasChildField = $grid.treeConfig.hasChild;
758
+ if (row[hasChildField] && !rows.length) {
759
+ row[hasChildField] = false;
760
+ }
761
+
762
+ resolve(rows);
763
+ let treeCallback =
764
+ that.widget.options.tableConfig?.treeCallback;
765
+ if (treeCallback) {
766
+ that.$nextTick(() => {
767
+ setTimeout(function () {
768
+ treeCallback(rows);
769
+ }, 0);
770
+ });
771
+ }
772
+ } else {
773
+ reject(res);
774
+ }
775
+ },
776
+ });
777
+ });
778
+ },
779
+ };
780
+ }
781
+ let editOpts = {};
782
+ if (this.widget.options.isEditTable) {
783
+ editOpts = {
784
+ keepSource: true,
785
+ editConfig: {
786
+ trigger: "manual",
787
+ mode: "row",
788
+ showStatus: true,
789
+ autoClear: false,
790
+ },
791
+ };
792
+ }
793
+ let showFooter = this.widget.options.showGridFooter || false;
794
+ let otherConfig = {};
795
+ if (this.widget.options.hideGridCheckBox) {
796
+ otherConfig.checkBoxRequired = false;
797
+ }
798
+ let tableOption = {
799
+ // vue: this,
800
+ tableRef: tableRef,
801
+ tableName: this.getGridTableName(),
802
+ param: paramFun,
803
+ columns: columns,
804
+ searchColumns: searchColumns,
805
+ vform: true,
806
+ config: {
807
+ height: height,
808
+ showFooter,
809
+ pagerConfig,
810
+ treeConfig,
811
+ ...editOpts,
812
+ ...dataTableConfig.config,
813
+
814
+ },
815
+ exportAjax: (param) => {
816
+ let $grid = this.getGridTable();
817
+ let pageSize = param.size;
818
+ let currentPage = param.current;
819
+ let page = {pageSize, currentPage};
820
+ let customParam = {
821
+ config: {
822
+ modal: false,
823
+ },
824
+ };
825
+ return $grid.$options.propsData.proxyConfig.ajax.query.call(this, {
826
+ page,
827
+ param,
828
+ customParam,
829
+ });
830
+ },
831
+ // treeNodeUrl,
832
+ editDefaultRow,
833
+ treeNodeParam,
834
+ ...otherConfig
835
+ };
836
+
837
+ if (isQueryTable) {
838
+ /*if(this.widget.options.isTreeTable){
839
+ tableOption.config.pagerConfig.autoHidden = false;
840
+ }*/
841
+ tableOption.path = path;
842
+ tableOption.config.proxyConfig = {
843
+ props: {
844
+ result: isDataPage ? "objx.records" : "objx", // 配置响应结果列表字段
845
+ total: isDataPage ? "objx.total" : "objx.length", // 配置响应结果总页数字段
846
+ },
847
+ ajax: {
848
+ // 接收 Promise 对象
849
+ query: ({page, sorts, filters, form, param, customParam}) => {
850
+ let formData = tableOption.param ? tableOption.param() || {} : {};
851
+ const queryParams = Object.assign({}, formData);
852
+
853
+ // 处理排序条件
854
+ /*if (sorts) {
855
+ const firstSort = sorts[0];
856
+ if (firstSort) {
857
+ queryParams.sort = firstSort.property;
858
+ queryParams.order = firstSort.order;
859
+ }
860
+ }*/
861
+
862
+ // 处理筛选条件
863
+ if (filters) {
864
+ filters.forEach(({property, values}) => {
865
+ queryParams[property] = values.join(",");
866
+ });
867
+ }
868
+
869
+ if (page.pageSize !== undefined) {
870
+ queryParams["size"] = page.pageSize;
871
+ queryParams["current"] = page.currentPage;
872
+ }
873
+
874
+ let $grid = this.getGridTable();
875
+ let isQueryAllPage = $grid.isQueryAllPage;
876
+ let pathStr1 = "";
877
+ if (isQueryAllPage === false) {
878
+ queryParams.searchCount = false;
879
+ }
880
+ Object.assign(queryParams, param);
881
+
882
+ // let formRef = that.getFormRef();
883
+ // let dataTableConfig = formRef.$attrs.dataTableOption || {};
884
+ if (that.dataTableConfig.queryParam) {
885
+ Object.assign(queryParams, that.dataTableConfig.queryParam);
886
+ }
887
+
888
+ var reqPath = typeof path == "function" ? path() : path;
889
+ let accessReturnType = this.widget.options.accessReturnType || 2;
890
+ let scriptCode = this.getScriptCode();
891
+ return new Promise((resolve, reject) => {
892
+ let reqData = {
893
+ ...queryParams,
894
+ };
895
+ if (scriptCode) {
896
+ let index = 0;
897
+ let toDo = () => {
898
+ // let f = new Function("dataId", "formCode", "param", "done", accessScript);
899
+ let done = (res) => {
900
+ this.clearRowWidgets();
901
+ resolve(res);
902
+ if (res.type == "success") {
903
+ let rows = res.objx
904
+ ? res.objx.records || res.objx || []
905
+ : [];
906
+ if (that.widget.options.isTreeTable) {
907
+ if (rows.length > 0) {
908
+ let fullAllDataRowMap =
909
+ $grid.$refs.xTable.fullAllDataRowMap;
910
+ let parentField = $grid.treeConfig.parentField;
911
+ let expandAll = $grid.treeConfig.expandAll || false;
912
+ let isLazy = $grid.treeConfig.lazy;
913
+ let expandIds = rows
914
+ .filter((item) => item[parentField])
915
+ .map((item) => item[parentField]);
916
+ let expandRows = expandIds.length
917
+ ? rows.filter((item) =>
918
+ expandIds.includes(item.id)
919
+ )
920
+ : [];
921
+ if (expandAll && expandRows.length) {
922
+ that.$nextTick(() => {
923
+ setTimeout(function () {
924
+ $grid.treeConfig.lazy = false;
925
+ $grid.setTreeExpand(expandRows, true);
926
+ expandRows.forEach((lineData) => {
927
+ if (
928
+ $grid.$refs.xTable.isTreeExpandByRow(
929
+ lineData
930
+ )
931
+ ) {
932
+ let rest =
933
+ fullAllDataRowMap.get(lineData);
934
+ rest.treeLoaded = true;
935
+ }
936
+ });
937
+
938
+ $grid.treeConfig.lazy = isLazy;
939
+ }, 0);
940
+ });
941
+ }
942
+
943
+ let row = rows.find((item) => !item[parentField]);
944
+ if (
945
+ row &&
946
+ (!expandAll || !expandIds.includes(row.id))
947
+ ) {
948
+ let hasChild = $grid.treeConfig.hasChild;
949
+ if (row[hasChild]) {
950
+ that.$nextTick(() => {
951
+ setTimeout(function () {
952
+ $grid.setTreeExpand(row, true);
953
+ }, 0);
954
+ });
955
+ }
956
+ }
957
+ }
958
+ }
959
+ that.$nextTick(() => {
960
+ setTimeout(function () {
961
+ tableOption.callback && tableOption.callback(rows);
962
+ that.handleCustomEvent(
963
+ that.widget.options.formScriptCallback,
964
+ ["rows"],
965
+ [rows]
966
+ );
967
+ }, 0);
968
+ });
969
+ }
970
+ };
971
+ this.loadDefaultQueryList(reqData, done, customParam);
972
+ };
973
+ let loopHandle = () => {
974
+ if (index < 500 && $grid.tableFormStop === true) {
975
+ //阻塞列表查询,或者次数达到500时,自动释放
976
+ index++;
977
+ setTimeout(() => {
978
+ loopHandle();
979
+ }, 10);
980
+ } else {
981
+ if ($grid.tableFormStop) $grid.tableFormStop = false;
982
+ toDo();
983
+ }
984
+ };
985
+ loopHandle();
986
+ } else {
987
+ resolve();
988
+ }
989
+ });
990
+ },
991
+ },
992
+ };
993
+ tableOption.callback = (rows) => {
994
+ // this.fieldModel = rows;
995
+ this.formModel[this.fieldKeyName] = rows;
996
+ };
997
+ }
998
+
999
+ if (isTreeTable) {
1000
+ tableOption.filterType = false;
1001
+ }
1002
+
1003
+ if (this.widget.options.tableConfig) {
1004
+ let tableConfig =
1005
+ this.handleCustomEvent(this.widget.options.tableConfig) || {};
1006
+ tableOption = extendDeeply(tableOption, tableConfig);
1007
+ this.tableConfig = tableConfig;
1008
+ }
1009
+
1010
+ if (tableOption.config.showFooter && !tableOption.config.footerMethod) {
1011
+ let footerColumnIds = columns
1012
+ .filter((item) => !!item.params?.footerDataType)
1013
+ .map((item) => item.params.columnId);
1014
+ if (footerColumnIds.length) {
1015
+ tableOption.config.footerMethod = (param) => {
1016
+ let {columns: column1s, data} = param;
1017
+ return [
1018
+ column1s.map((column, columnIndex) => {
1019
+ let columnId = column.params?.columnId;
1020
+ if (columnId && footerColumnIds.includes(columnId)) {
1021
+ let footerDataType = column.params.footerDataType;
1022
+ if (footerDataType == "1") {
1023
+ //求和
1024
+ return this.sumNum(data, column.field);
1025
+ } else if (footerDataType == "2") {
1026
+ //求平均值
1027
+ return this.meanNum(data, column.field);
1028
+ } else if (footerDataType == "3") {
1029
+ if (column.params.footerMethodConfg) {
1030
+ let n = new Function(
1031
+ "dataId",
1032
+ "formCode",
1033
+ "param",
1034
+ column.params.footerMethodConfg
1035
+ );
1036
+ return n.call(this, dataId, formCode, param) ?? null;
1037
+ }
1038
+ }
1039
+ }
1040
+ return null;
1041
+ }),
1042
+ ];
1043
+ };
1044
+ }
1045
+ }
1046
+ tableOption.vue = this;
1047
+
1048
+ //合并单元格
1049
+ let mergeRowEnabled = this.widget.options.mergeRowEnabled || false;
1050
+ let unikey = this.widget.options.mergeRowKey;
1051
+ if (mergeRowEnabled && unikey) {
1052
+ tableOption.config.spanMethod = this.mergeRowMethod;
1053
+ }
1054
+
1055
+ this.$vxeTableUtil.initVxeTable(tableOption).then((opts) => {
1056
+ this.vxeOption = opts;
1057
+ if (!isQueryTable) {
1058
+ setTimeout(() => {
1059
+ this.loadAccessData(1);
1060
+ }, 20);
1061
+ }
1062
+ });
1063
+ },
1064
+ meanNum(list, field) {
1065
+ let count = this.sumNum(list, field);
1066
+ return this.$baseDiv(count, list.length);
1067
+ },
1068
+ sumNum(list, field) {
1069
+ let count = 0;
1070
+ list.forEach((item) => {
1071
+ count = this.$baseAdd(count, item[field]);
1072
+ });
1073
+ return count;
1074
+ },
1075
+ getSearchFormData() {
1076
+ let map = {condition: []};
1077
+ let formData = this.globalModel.formModel;
1078
+ let widgetList = this.widget.widgetList;
1079
+ if (!!widgetList && widgetList.length > 0) {
1080
+ let loop = (wItem) => {
1081
+ if (wItem.category === "container") {
1082
+ loop(wItem);
1083
+ } else {
1084
+ let formField = this.getFieldKeyName(wItem);
1085
+ let vaule = formData[formField];
1086
+ if (vaule !== null && vaule !== undefined && vaule !== "") {
1087
+ if (!Array.isArray(vaule) || vaule.length > 0) {
1088
+ let item = {
1089
+ value: vaule,
1090
+ field: formField,
1091
+ filter: null,
1092
+ };
1093
+ let wType = wItem.type;
1094
+ if (["date-range", "time-range"].includes(wType)) {
1095
+ item.filter = "between";
1096
+ } else if (
1097
+ ["input-batch", "checkbox"].includes(wType) ||
1098
+ (wType == "select" && wItem.options.multiple)
1099
+ ) {
1100
+ item.filter = "in";
1101
+ } else if (
1102
+ ["radio", "time", "date"].includes(wType) ||
1103
+ (wType == "select" && !wItem.options.multiple)
1104
+ ) {
1105
+ item.filter = "eq";
1106
+ } else {
1107
+ item.filter = "like";
1108
+ }
1109
+ map.condition.push(item);
1110
+ }
1111
+ }
1112
+ }
1113
+ };
1114
+ widgetList.forEach((wItem) => {
1115
+ loop(wItem);
1116
+ });
1117
+ }
1118
+ return map;
1119
+ },
1120
+ getUrl() {
1121
+ let accessUrl = this.widget.options.accessUrl;
1122
+ return accessUrl || USER_PREFIX + `/form_ins/getFormInsData`;
1123
+ },
1124
+ getAttachmentType() {
1125
+ let vailColumns = this.widget.options.tableColumns.filter(
1126
+ (item) => item.prop && item.label
1127
+ );
1128
+ let result = vailColumns
1129
+ .filter((item) => {
1130
+ return item.formatS == "editAttachment";
1131
+ })
1132
+ .map((item) => item.prop);
1133
+ return result;
1134
+ },
1135
+ getThirdtabm() {
1136
+ let vailColumns = this.widget.options.tableColumns.filter(
1137
+ (item) => item.prop && item.label
1138
+ );
1139
+ let result = vailColumns
1140
+ .filter((item) => {
1141
+ return (
1142
+ item.formatS == "editSearch" && item.columnOption.multipleChoices
1143
+ );
1144
+ })
1145
+ .map((item) => item.prop);
1146
+ return result;
1147
+ },
1148
+
1149
+ loadDefaultViewList() {
1150
+ let dataId = this.formDataId;
1151
+ let reportTemplate = this.getFormRef().reportTemplate;
1152
+ let formCode = reportTemplate.formCode;
1153
+ let accessParam = this.getAccessParam() || {};
1154
+ let otherParam = {};
1155
+ let attachmentType = this.getAttachmentType();
1156
+ if (attachmentType.length) {
1157
+ otherParam.attachmentType = attachmentType;
1158
+ }
1159
+ let thirdtabm = this.getThirdtabm();
1160
+ if (thirdtabm.length) {
1161
+ otherParam.thirdtabm = thirdtabm;
1162
+ }
1163
+ let scriptCode = this.getScriptCode();
1164
+ return this.formHttp({
1165
+ /*url: "/" + reportTemplate.serviceName + "/form_ins/getList",*/
1166
+ scriptCode: scriptCode,
1167
+ data: {
1168
+ formCode: formCode,
1169
+ formVersion: reportTemplate.formVersion,
1170
+ taBm: this.fieldKeyName,
1171
+ data: {
1172
+ id: dataId,
1173
+ ...otherParam,
1174
+ ...accessParam,
1175
+ },
1176
+ },
1177
+ callback: (res) => {
1178
+ let $grid = this.getGridTable();
1179
+ let rows = res.objx ? res.objx.records || res.objx || [] : [];
1180
+ let defaultRow = this.createNewTableData();
1181
+ rows = rows.map((row) => {
1182
+ return {
1183
+ ...defaultRow,
1184
+ ...row,
1185
+ };
1186
+ });
1187
+ this.setValue(rows);
1188
+ this.$nextTick(() => {
1189
+ /*if (this.widget.options.isTreeTable) {
1190
+ let $grid = this.getGridTable();
1191
+ $grid.treeConfig.lazy = false;
1192
+ $grid.setAllTreeExpand(true);
1193
+ }*/
1194
+ this.tableConfig.callback && this.tableConfig.callback(rows);
1195
+ this.handleCustomEvent(
1196
+ this.widget.options.formScriptCallback,
1197
+ ["rows"],
1198
+ [rows]
1199
+ );
1200
+ this.$forceUpdate();
1201
+ });
1202
+ },
1203
+ });
1204
+ },
1205
+ getAccessParam() {
1206
+ if (!this.widget.options.formScriptParam) return;
1207
+ return this.handleCustomEvent(this.widget.options.formScriptParam);
1208
+ },
1209
+ getScriptCode() {
1210
+ let accessReturnType = this.widget.options.accessReturnType;
1211
+ let defaultScriptCode = "getList";
1212
+ if (accessReturnType == 1) {
1213
+ defaultScriptCode = "getList";
1214
+ } else if (accessReturnType == 2) {
1215
+ defaultScriptCode = "getPage";
1216
+ }
1217
+ let scriptCode = this.widget.options.formScriptCode || defaultScriptCode;
1218
+ return scriptCode;
1219
+ },
1220
+ loadDefaultQueryList(reqData, done, customParam) {
1221
+ let reportTemplate = this.getFormRef().reportTemplate;
1222
+ let prefix = "/" + reportTemplate.serviceName;
1223
+ let formCode = reportTemplate.formCode;
1224
+ let formConfig = this.formConfig;
1225
+ let accessReturnType = this.widget.options.accessReturnType;
1226
+ let scriptCode = this.getScriptCode();
1227
+ let accessParam = this.getAccessParam() || {};
1228
+
1229
+ let otherParam = {};
1230
+ let attachmentType = this.getAttachmentType();
1231
+ if (attachmentType.length) {
1232
+ otherParam.attachmentType = attachmentType;
1233
+ }
1234
+
1235
+ let defaultOption = this.getHttpConfigForUser();
1236
+
1237
+ let ajaxConfig = customParam?.config || {};
1238
+
1239
+ let requestData = {
1240
+ ...reqData,
1241
+ ...otherParam
1242
+ };
1243
+ requestData = extendDeeply(requestData, accessParam);
1244
+
1245
+ return this.formHttp({
1246
+ // url: prefix + "/form_ins/getPage",
1247
+ scriptCode: scriptCode,
1248
+ data: {
1249
+ formCode: formCode,
1250
+ formVersion: reportTemplate.formVersion,
1251
+ taBm: this.fieldKeyName,
1252
+ data: requestData,
1253
+ },
1254
+ isLoading: false,
1255
+ ...defaultOption,
1256
+ ...ajaxConfig,
1257
+ callback: (res) => {
1258
+ done(res);
1259
+ },
1260
+ });
1261
+ },
1262
+ loadAccessData(flag) {
1263
+ if (flag === 1) {
1264
+ let tableConfig = this.tableConfig;
1265
+ let accessEnabled = tableConfig.accessEnabled ?? true;
1266
+ if (accessEnabled === false) {
1267
+ return;
1268
+ }
1269
+ if (this.formConfig.isLoadEntity && !this.formDataId) {
1270
+ return;
1271
+ }
1272
+ }
1273
+
1274
+ let scriptCode = this.getScriptCode();
1275
+ if (scriptCode) {
1276
+ this.loadDefaultViewList();
1277
+ }
1278
+ },
1279
+ getReqParam(item, dataId, billData) {
1280
+ let param = {};
1281
+ if (item.accessParam) {
1282
+ if (typeof item.accessParam === "string") {
1283
+ let n = new Function("billData", item.accessParam);
1284
+ param = n.call(this, billData);
1285
+ } else {
1286
+ param = item.accessParam;
1287
+ }
1288
+ } else {
1289
+ param = {id: dataId};
1290
+ }
1291
+ return param;
1292
+ },
1293
+ getTableRef() {
1294
+ let tableRef = this.widget.id;
1295
+ return tableRef;
1296
+ },
1297
+ exportData(option) {
1298
+ let tableRef = this.getTableRef();
1299
+ let serviceName = this.getFormRef().reportTemplate.serviceName;
1300
+ option.prefix = option.prefix || "/" + serviceName;
1301
+ this.$excelExport({targetRef: tableRef, ...option});
1302
+ },
1303
+ async deleteRow(row, rowIndex) {
1304
+ let isTreeTable = this.widget.options.isTreeTable;
1305
+ if (isTreeTable) {
1306
+ this.removeTreeRow({row});
1307
+ return;
1308
+ }
1309
+ let $grid = this.getGridTable();
1310
+ $grid.remove(row);
1311
+ let tableData = $grid.getTableData();
1312
+ let isEditTable = this.widget.options.isEditTable;
1313
+ let fullData = !isEditTable ? tableData.fullData : tableData.tableData;
1314
+ await this.$nextTick(() => {
1315
+ this.formModel[this.fieldKeyName] = fullData;
1316
+ this.fieldModel = fullData;
1317
+ });
1318
+ this.$nextTick(() => {
1319
+ this.handleWbs();
1320
+ });
1321
+ this.deleteRowWidgets(row)
1322
+ },
1323
+ createNewTableData(isEdit) {
1324
+ let vailColumns = this.widget.options.tableColumns.filter(
1325
+ (item) => item.prop && item.label
1326
+ );
1327
+ let newData = {};
1328
+ vailColumns.forEach((item) => {
1329
+ let formatS = !isEdit ? item.formatS : item.editFormatS;
1330
+ let columnOption = !isEdit ? item.columnOption : item.editColumnOption;
1331
+ if (formatS == "editSearch") {
1332
+ newData[item.prop] = null;
1333
+ let vabSearchName = item?.columnOption?.vabSearchName;
1334
+ if (vabSearchName) newData[vabSearchName] = null;
1335
+ }
1336
+ if (formatS == "editAttachment") {
1337
+ newData[item.prop] = [];
1338
+ } else {
1339
+ newData[item.prop] = null;
1340
+ if (
1341
+ columnOption &&
1342
+ columnOption.defaultValue !== undefined &&
1343
+ columnOption.defaultValue !== null &&
1344
+ columnOption.defaultValue !== ""
1345
+ ) {
1346
+ newData[item.prop] = columnOption.defaultValue;
1347
+ }
1348
+ }
1349
+ });
1350
+ return newData;
1351
+ },
1352
+ addTableData(rows, field) {
1353
+ let $grid = this.getGridTable();
1354
+ let formDataModel = this.formModel;
1355
+ let tableRows = formDataModel[this.fieldKeyName] || [];
1356
+ let fullData = $grid.getTableData().fullData;
1357
+ let items;
1358
+ if (field) {
1359
+ let keys = fullData.map((item) => {
1360
+ return item[field] + "";
1361
+ });
1362
+ items = rows.filter((item) => {
1363
+ let value = item[field] + "";
1364
+ return !keys.includes(value);
1365
+ });
1366
+ } else {
1367
+ items = rows;
1368
+ }
1369
+ if (items) {
1370
+ if (items.length) {
1371
+ items.forEach((row) => {
1372
+ let newData = this.createNewTableData();
1373
+ Object.assign(newData, row);
1374
+
1375
+ tableRows.push(newData);
1376
+ });
1377
+ }
1378
+ } else {
1379
+ let newData = this.createNewTableData();
1380
+ tableRows.push(newData);
1381
+ }
1382
+ // this.formModel[this.fieldKeyName] = this.$baseLodash(this.fieldModel)
1383
+ // this.fieldModel = tableRows
1384
+ this.setValue(tableRows);
1385
+ this.$nextTick(() => {
1386
+ this.handleWbs();
1387
+ });
1388
+ // $grid.loadData(tableRows);
1389
+ },
1390
+ getColumnWidgetConfig(row, isEdit) {
1391
+ let formatS = isEdit ? row.editFormatS : row.formatS;
1392
+ let formRef = this.getFormRef();
1393
+ let columnSelectedWidget = null;
1394
+ let columnEditFields = null;
1395
+
1396
+ let type = this.columnFormatMap[formatS];
1397
+
1398
+ if (type) {
1399
+ columnSelectedWidget = this.$baseLodash.cloneDeep(
1400
+ formRef.getFieldWidgetByType(type)
1401
+ );
1402
+ let tmpId = generateId();
1403
+ let idVal = row.prop ? row.prop : type + tmpId;
1404
+ columnSelectedWidget.id = idVal;
1405
+ columnSelectedWidget.options.name = idVal;
1406
+
1407
+ let columnOption;
1408
+ if (!isEdit) {
1409
+ columnOption = row.columnOption;
1410
+ } else {
1411
+ columnOption = row.editColumnOption;
1412
+ }
1413
+
1414
+ if (columnOption && Object.keys(columnOption).length) {
1415
+ columnOption.required = row.required || false;
1416
+ columnSelectedWidget.options = columnOption;
1417
+ if ("editDelete" == formatS) {
1418
+ columnSelectedWidget.options.hiddenByWf =
1419
+ columnSelectedWidget.options.hiddenByWf ?? true;
1420
+ columnSelectedWidget.options.prefixIcon =
1421
+ columnSelectedWidget.options.prefixIcon || "el-icon-delete";
1422
+ } else if ("editButton" == formatS) {
1423
+ columnSelectedWidget.options.prefixIcon =
1424
+ columnSelectedWidget.options.prefixIcon || "el-icon-edit";
1425
+ }
1426
+ } else {
1427
+ columnSelectedWidget.options.required = row.required || false;
1428
+ if ("editDelete" == formatS) {
1429
+ columnSelectedWidget.options.prefixIcon = "el-icon-delete";
1430
+ columnSelectedWidget.options.label = "删除";
1431
+ columnSelectedWidget.options.labelHidden = true;
1432
+ columnSelectedWidget.options.hiddenByWf = true;
1433
+ columnSelectedWidget.options.onClick =
1434
+ "let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.deleteRow(tableParam.row,tableParam.rowIndex);";
1435
+ } else if ("editButton" == formatS) {
1436
+ columnSelectedWidget.options.prefixIcon = "el-icon-edit";
1437
+ columnSelectedWidget.options.label = "查看";
1438
+ columnSelectedWidget.options.labelHidden = true;
1439
+ columnSelectedWidget.options.onClick =
1440
+ "let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.openEditDialog(tableParam.row)";
1441
+ } else if ("addSiblingEditRow" == formatS) {
1442
+ columnSelectedWidget.options.prefixIcon = "el-icon-plus";
1443
+ columnSelectedWidget.options.label = "新增兄弟节点";
1444
+ columnSelectedWidget.options.labelHidden = false;
1445
+ columnSelectedWidget.options.onClick =
1446
+ "let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
1447
+ } else if ("addChildTreeRow" == formatS) {
1448
+ columnSelectedWidget.options.prefixIcon = "el-icon-plus";
1449
+ columnSelectedWidget.options.label = "新增子节点";
1450
+ columnSelectedWidget.options.labelHidden = false;
1451
+ columnSelectedWidget.options.onClick =
1452
+ "let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
1453
+ } else if ("moveUpRow" == formatS) {
1454
+ // columnSelectedWidget.options.prefixIcon = "el-icon-plus";
1455
+ columnSelectedWidget.options.label = "↑上移";
1456
+ columnSelectedWidget.options.labelHidden = false;
1457
+ columnSelectedWidget.options.onClick =
1458
+ "let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
1459
+ } else if ("moveDownRow" == formatS) {
1460
+ // columnSelectedWidget.options.prefixIcon = "el-icon-plus";
1461
+ columnSelectedWidget.options.label = "↓下移";
1462
+ columnSelectedWidget.options.labelHidden = false;
1463
+ columnSelectedWidget.options.onClick =
1464
+ "let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
1465
+ } else if ("removeTreeRow" == formatS) {
1466
+ columnSelectedWidget.options.prefixIcon = "el-icon-delete";
1467
+ columnSelectedWidget.options.label = "删除";
1468
+ columnSelectedWidget.options.labelHidden = true;
1469
+ columnSelectedWidget.options.onClick =
1470
+ "let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
1471
+ }
1472
+ columnOption = columnSelectedWidget.options;
1473
+ }
1474
+ if (columnSelectedWidget.options.hasOwnProperty("keyName")) {
1475
+ columnSelectedWidget.options.keyName = row.prop;
1476
+ columnSelectedWidget.options.keyNameEnabled = true;
1477
+ } else {
1478
+ columnSelectedWidget.options.name = row.prop;
1479
+ }
1480
+ if (type != "button" && type != "a-link") {
1481
+ columnSelectedWidget.options.label = row.label;
1482
+ columnSelectedWidget.options.labelHidden = true;
1483
+ }
1484
+ }
1485
+ return {columnSelectedWidget, columnEditFields};
1486
+ },
1487
+ getColumnProp(widget, obj, isEdit) {
1488
+ if (!widget) {
1489
+ return "false";
1490
+ }
1491
+ /*if(isEdit){
1492
+ return "false"
1493
+ }*/
1494
+
1495
+ let fieldKeyName = this.getFieldKeyName(widget);
1496
+ let rowIndex = Math.max(obj.rowIndex, 0);
1497
+ let isQueryTable = this.widget.options.isQueryTable || false;
1498
+ if (isEdit || !isQueryTable) {
1499
+ let propName =
1500
+ fieldKeyName + "." + rowIndex + "." + obj.column.property;
1501
+ let lineWidget = !isEdit
1502
+ ? obj.column.params.widget
1503
+ : obj.column.params.editWidget;
1504
+ if (!lineWidget) {
1505
+ return "false";
1506
+ }
1507
+ if (this.isVabsearchFlagWidget(lineWidget)) {
1508
+ let fieldName =
1509
+ lineWidget.options.vabSearchName ||
1510
+ this.getFieldKeyName(lineWidget);
1511
+ propName = fieldKeyName + "." + rowIndex + "." + fieldName;
1512
+ }
1513
+
1514
+ return propName;
1515
+ } else {
1516
+ return "false";
1517
+ }
1518
+ },
1519
+ isVabsearchFlagWidget(widget) {
1520
+ let type = widget?.type;
1521
+ return type == "vabsearch" || type == "singerSearch" || type == "multiSearch";
1522
+ },
1523
+ getColumnWidgetName(e) {
1524
+ if (e && e.type) {
1525
+ if (e.category == "container") {
1526
+ return this.getContainerWidgetName(e);
1527
+ } else {
1528
+ return e.type + "-widget";
1529
+ }
1530
+ }
1531
+ },
1532
+ getGridTable() {
1533
+ let $grid = this.$refs[this.getTableRef()];
1534
+ return $grid;
1535
+ },
1536
+ getContainerWidgetName: function (e) {
1537
+ return "grid" === e.type ? "grid-item" : e.type + "-item";
1538
+ },
1539
+ getWidgetName: function (e) {
1540
+ return (e.targetType || e.type) + "-widget";
1541
+ },
1542
+ handleCheckboxChange(param) {
1543
+ let mergeRowEnabled = this.widget.options.mergeRowEnabled || false;
1544
+ let mergeRowKey = this.widget.options.mergeRowKey;
1545
+ if (mergeRowEnabled && mergeRowKey) {
1546
+ let grid = this.getGridTable();
1547
+ let fullData = grid.getTableData().fullData;
1548
+ let row = param.row;
1549
+ let val = row[mergeRowKey];
1550
+ let items = fullData.filter((item) => item[mergeRowKey] === val);
1551
+ if (items.length) {
1552
+ grid.setCheckboxRow(items, param.checked);
1553
+ }
1554
+ }
1555
+ if (this.widget.options.onCheckboxChange) {
1556
+ let t = new Function("param", this.widget.options.onCheckboxChange);
1557
+ t.call(this, param);
1558
+ }
1559
+ let formRef = this.getFormRef();
1560
+ let dataTableConfig = formRef.$attrs.dataTableOption || {};
1561
+ dataTableConfig.onCheckboxChange &&
1562
+ dataTableConfig.onCheckboxChange(param);
1563
+ },
1564
+ handleCheckboxAll(param) {
1565
+ if (this.widget.options.onCheckboxAll) {
1566
+ let t = new Function("param", this.widget.options.onCheckboxAll);
1567
+ t.call(this, param);
1568
+ }
1569
+ let formRef = this.getFormRef();
1570
+ let dataTableConfig = formRef.$attrs.dataTableOption || {};
1571
+ dataTableConfig.onCheckboxAll && dataTableConfig.onCheckboxAll(param);
1572
+ },
1573
+ handleCellDblclick(param) {
1574
+ if (this.widget.options.onCellDblclick) {
1575
+ let t = new Function("param", this.widget.options.onCellDblclick);
1576
+ t.call(this, param);
1577
+ }
1578
+ let formRef = this.getFormRef();
1579
+ let dataTableConfig = formRef.$attrs.dataTableOption || {};
1580
+ dataTableConfig.onCellDblclick && dataTableConfig.onCellDblclick(param);
1581
+ },
1582
+ advancedClear() {
1583
+ let formModel = this.formModel;
1584
+ let searchColumns = this.getGridTable().searchColumns;
1585
+ searchColumns.forEach((form1Field) => {
1586
+ if (!form1Field.common) {
1587
+ let field = form1Field.field;
1588
+ let options = form1Field.widget.options;
1589
+ let value = formModel[field] ?? null;
1590
+ let widgetRef = this.getWidgetRef(options.name);
1591
+ widgetRef && widgetRef.setValue(value);
1592
+ }
1593
+ });
1594
+ // this.getGridTable().$forceUpdate();
1595
+ },
1596
+ tableFormSettingConfirm() {
1597
+ let formModel = this.formModel;
1598
+ this.getFormRef().setFormData(formModel);
1599
+ },
1600
+
1601
+ //editTable begin
1602
+ saveEditRow(obj) {
1603
+ let formRef = this.getFormRef();
1604
+ let formConfig = this.formConfig;
1605
+ let entity = formConfig.entity;
1606
+ if (!entity) return;
1607
+ let dataId = formRef?.dataId;
1608
+ let reportTemplate = formRef?.reportTemplate;
1609
+ let formCode = reportTemplate?.formCode;
1610
+ let scriptCode = formConfig.saveScriptCode || "saveUpdate";
1611
+
1612
+ let that = this;
1613
+ let $grid = obj.$table.$xegrid;
1614
+ let originOption = $grid.originOption;
1615
+
1616
+ let formModel = this.formModel;
1617
+ let dataMap = this.getGridTable().getTableData();
1618
+
1619
+ formRef.validate((valid) => {
1620
+ if (valid) {
1621
+ $grid.clearActived().then(() => {
1622
+ $grid.setActiveRow(obj.row);
1623
+ let mainData = commonDataUtil.handleForm(obj.row);
1624
+
1625
+ delete mainData._createNickName;
1626
+ delete mainData._createMobile;
1627
+ delete mainData._modifyNickName;
1628
+ delete mainData._modifyMobile;
1629
+ delete mainData._createBy;
1630
+ delete mainData._modifyBy;
1631
+
1632
+ let formData = {
1633
+ [entity]: mainData,
1634
+ };
1635
+
1636
+ let reqData = {
1637
+ formCode: formCode,
1638
+ formVersion: reportTemplate.formVersion,
1639
+ taBm: entity,
1640
+ data: formData,
1641
+ };
1642
+
1643
+ this.formHttp({
1644
+ scriptCode: scriptCode,
1645
+ data: reqData,
1646
+ successMsg: true,
1647
+ isConfirm: true,
1648
+ confirmText: "您确定要保存吗?",
1649
+ success: (res0) => {
1650
+ this.getRowData(res0.objx, (res) => {
1651
+ if (obj.row.id == res.objx.id) {
1652
+ $grid.clearActived().then(() => {
1653
+ Object.assign(obj.row, res.objx);
1654
+ });
1655
+ } else {
1656
+ $grid.remove(obj.row);
1657
+ $grid.insertAt(res.objx);
1658
+ }
1659
+ delete obj.$table.editCloneRow;
1660
+ });
1661
+ },
1662
+ });
1663
+ });
1664
+ }
1665
+ });
1666
+ },
1667
+ getRowData(dataId, callback) {
1668
+ let reportTemplate = this.getFormRef()?.reportTemplate;
1669
+ let formCode = reportTemplate.formCode;
1670
+ let formConfig = this.formConfig;
1671
+ // let isLoadEntity = formConfig.isLoadEntity;
1672
+ let entity = formConfig.entity;
1673
+ let scriptCode = formConfig.formScriptCode || "getOne";
1674
+ let defaultOption = this.getHttpConfigForUser();
1675
+ this.formHttp({
1676
+ scriptCode: scriptCode,
1677
+ data: {
1678
+ formCode: formCode,
1679
+ formVersion: reportTemplate.formVersion,
1680
+ taBm: entity,
1681
+ data: {
1682
+ id: dataId,
1683
+ },
1684
+ },
1685
+ ...defaultOption,
1686
+ success: (res) => {
1687
+ callback && callback(res);
1688
+ },
1689
+ });
1690
+ },
1691
+ addChildTreeRow(rowData, obj, toTop) {
1692
+ let toEnd = !toTop;
1693
+ this.addTreeRow(rowData, obj, toEnd, null);
1694
+ },
1695
+ addTopTreeRow(rowData, toTop) {
1696
+ let toEnd = !toTop;
1697
+ this.addTreeRow(rowData, null, toEnd, null);
1698
+ },
1699
+ addSiblingTreeRow(rowData, obj) {
1700
+ this.addTreeRow(rowData, obj, null, true);
1701
+ },
1702
+ addTreeRow(rowData, obj, toEnd, toSibling) {
1703
+ let isEditTable = this.widget.options.isEditTable || false;
1704
+ let parent = obj?.row;
1705
+ let $grid = this.getGridTable();
1706
+ if (isEditTable && this.hasEditingRow($grid, 1)) {
1707
+ return false;
1708
+ }
1709
+ let parentField = $grid.treeConfig.parentField;
1710
+ let newRow = {};
1711
+ let originOption = $grid.originOption;
1712
+ let editDefaultRow;
1713
+ if (originOption.editDefaultRow) {
1714
+ if (typeof originOption.editDefaultRow == "function") {
1715
+ editDefaultRow = originOption.editDefaultRow() || {};
1716
+ } else {
1717
+ editDefaultRow = originOption.editDefaultRow || {};
1718
+ }
1719
+ }
1720
+ // Object.assign(newRow, editDefaultRow, rowData);
1721
+ newRow.id =
1722
+ "row_" + new Date().valueOf() + Math.floor(Math.random() * 1000000);
1723
+ if (!toSibling) {
1724
+ newRow[parentField] = parent?.id || 0;
1725
+ } else {
1726
+ newRow[parentField] = obj?.row[parentField] || 0;
1727
+ }
1728
+
1729
+ let newData = this.createNewTableData(isEditTable);
1730
+ newRow = Object.assign({}, newData, newRow, editDefaultRow, rowData);
1731
+
1732
+ let tableRows = this.formModel[this.fieldKeyName] || [];
1733
+ if (!parent) {
1734
+ if (toEnd === true) {
1735
+ tableRows.push(newRow);
1736
+ } else if (toSibling === true) {
1737
+ let addIndex =
1738
+ tableRows.findIndex(
1739
+ (item) => item._X_ROW_KEY == obj.row._X_ROW_KEY
1740
+ ) + 1;
1741
+ tableRows.splice(addIndex, 0, newRow);
1742
+ } else {
1743
+ tableRows.splice(0, 0, newRow);
1744
+ }
1745
+ this.setValue(tableRows);
1746
+ this.$nextTick(() => {
1747
+ this.handleWbs();
1748
+ if (isEditTable) {
1749
+ $grid.setActiveRow(newRow);
1750
+ }
1751
+ });
1752
+
1753
+ // $grid.insert(newRow).then(({row}) => $grid.setActiveRow(row));
1754
+ } else {
1755
+ $grid.setTreeExpand(obj.row, true).then(() => {
1756
+ if (toEnd === true) {
1757
+ tableRows.push(newRow);
1758
+ } else if (toSibling === true) {
1759
+ let addIndex =
1760
+ tableRows.findIndex(
1761
+ (item) => item._X_ROW_KEY == obj.row._X_ROW_KEY
1762
+ ) + 1;
1763
+ tableRows.splice(addIndex, 0, newRow);
1764
+ } else {
1765
+ tableRows.splice(0, 0, newRow);
1766
+ }
1767
+ this.setValue(tableRows);
1768
+ this.$nextTick(() => {
1769
+ this.handleWbs();
1770
+ $grid.setTreeExpand(obj.row, true).then(() => {
1771
+ if (isEditTable) {
1772
+ $grid.setActiveRow(newRow);
1773
+ }
1774
+ });
1775
+ });
1776
+ });
1777
+ }
1778
+ },
1779
+ removeTreeRow(obj) {
1780
+ let row = obj.row;
1781
+ let $grid = this.getGridTable();
1782
+ let childrenField = $grid.treeConfig.children;
1783
+ let tableRows = this.formModel[this.fieldKeyName];
1784
+ // let index = tableRows.findIndex(item => item.id === row.id)
1785
+ let delIds = [];
1786
+ if (row[childrenField]) {
1787
+ let loopDo = (item) => {
1788
+ if (item.id) delIds.push(item.id);
1789
+ item[childrenField] &&
1790
+ item[childrenField].forEach((subItem) => {
1791
+ loopDo(subItem);
1792
+ });
1793
+ };
1794
+ loopDo(row);
1795
+ }
1796
+ delIds.forEach((id) => {
1797
+ let index = tableRows.findIndex((item) => item.id === id);
1798
+ let delRow = tableRows[index];
1799
+ tableRows.splice(index, 1);
1800
+ this.deleteRowWidgets(delRow)
1801
+
1802
+ });
1803
+ this.$nextTick(() => {
1804
+ this.handleWbs();
1805
+ });
1806
+ },
1807
+ addSiblingEditRow(rowData, obj) {
1808
+ this.addEditRow(rowData, obj, null, true);
1809
+ },
1810
+ addEditRow(rowData, obj, toEnd, toSibling) {
1811
+ let isEditTable = this.widget.options.isEditTable || false;
1812
+ let parent = obj?.row;
1813
+ let $grid = this.getGridTable();
1814
+ if (isEditTable && this.hasEditingRow($grid, 1)) {
1815
+ return false;
1816
+ }
1817
+ let parentField = $grid.treeConfig.parentField;
1818
+ let newRow = {};
1819
+ let originOption = $grid.originOption;
1820
+ let editDefaultRow;
1821
+ if (originOption.editDefaultRow) {
1822
+ if (typeof originOption.editDefaultRow == "function") {
1823
+ editDefaultRow = originOption.editDefaultRow() || {};
1824
+ } else {
1825
+ editDefaultRow = originOption.editDefaultRow || {};
1826
+ }
1827
+ }
1828
+ // Object.assign(newRow, editDefaultRow, rowData);
1829
+ newRow.id =
1830
+ "row_" + new Date().valueOf() + Math.floor(Math.random() * 1000000);
1831
+ if (!toSibling) {
1832
+ newRow[parentField] = parent?.id || 0;
1833
+ } else {
1834
+ newRow[parentField] = obj?.row[parentField] || 0;
1835
+ }
1836
+
1837
+ let newData = this.createNewTableData(isEditTable);
1838
+ newRow = Object.assign({}, newData, newRow, editDefaultRow, rowData);
1839
+
1840
+ let tableRows = this.formModel[this.fieldKeyName] || [];
1841
+ if (!parent) {
1842
+ if (toEnd === true) {
1843
+ tableRows.push(newRow);
1844
+ } else if (toSibling === true) {
1845
+ let addIndex =
1846
+ tableRows.findIndex(
1847
+ (item) => item._X_ROW_KEY == obj.row._X_ROW_KEY
1848
+ ) + 1;
1849
+ tableRows.splice(addIndex, 0, newRow);
1850
+ } else {
1851
+ tableRows.splice(0, 0, newRow);
1852
+ }
1853
+ this.setValue(tableRows);
1854
+ this.$nextTick(() => {
1855
+ this.handleWbs();
1856
+ if (isEditTable) {
1857
+ $grid.setActiveRow(newRow);
1858
+ }
1859
+ });
1860
+
1861
+ // $grid.insert(newRow).then(({row}) => $grid.setActiveRow(row));
1862
+ } else {
1863
+ $grid.setTreeExpand(obj.row, true).then(() => {
1864
+ if (toEnd === true) {
1865
+ tableRows.push(newRow);
1866
+ } else if (toSibling === true) {
1867
+ let addIndex =
1868
+ tableRows.findIndex(
1869
+ (item) => item._X_ROW_KEY == obj.row._X_ROW_KEY
1870
+ ) + 1;
1871
+ tableRows.splice(addIndex, 0, newRow);
1872
+ } else {
1873
+ tableRows.splice(0, 0, newRow);
1874
+ }
1875
+ this.setValue(tableRows);
1876
+ this.$nextTick(() => {
1877
+ this.handleWbs();
1878
+ $grid.setTreeExpand(obj.row, true).then(() => {
1879
+ if (isEditTable) {
1880
+ $grid.setActiveRow(newRow);
1881
+ }
1882
+ });
1883
+ });
1884
+ });
1885
+ }
1886
+ },
1887
+ async removeEditRow(obj) {
1888
+ this.removeTreeRow(obj);
1889
+ },
1890
+ //editTable end
1891
+ getHttpConfigForUser() {
1892
+ let defaultOption = {
1893
+ addCreateInfo: true,
1894
+ queryCreateInfo: window.$vueRoot.$store.getters.queryCreateInfo || "0",
1895
+ };
1896
+ return defaultOption;
1897
+ },
1898
+ handleWbs() {
1899
+ if (this.widget.options.wbsEnabled) {
1900
+ this.updateWbs();
1901
+ }
1902
+ },
1903
+ updateWbs() {
1904
+ let that = this;
1905
+ let $grid = that.getGridTable();
1906
+ let childrenField = $grid.treeConfig.children;
1907
+ let fullData = $grid.getTableData().fullData;
1908
+ let tableRows = this.formModel[that.fieldKeyName] || [];
1909
+ let map = {};
1910
+ let loopDo = (item, wbs) => {
1911
+ item.f_wbs = wbs;
1912
+ map[item._X_ROW_KEY] = wbs;
1913
+ item[childrenField] &&
1914
+ item[childrenField].forEach((subitem, subindex) => {
1915
+ let sub_wbs = wbs + "." + (subindex + 1) + "";
1916
+ loopDo(subitem, sub_wbs);
1917
+ });
1918
+ };
1919
+ fullData.forEach((item, index) => {
1920
+ let wbs = index + 1 + "";
1921
+ loopDo(item, wbs);
1922
+ });
1923
+ $grid.updateData();
1924
+ },
1925
+ moveUpRow(obj) {
1926
+ let row = obj.row;
1927
+ let $grid = this.getGridTable();
1928
+ let tableRows = this.formModel[this.fieldKeyName] || [];
1929
+ let isTreeTable = this.widget.options.isTreeTable;
1930
+ if (isTreeTable) {
1931
+ let parentField = $grid.treeConfig.parentField;
1932
+ let rowField = $grid.treeConfig.rowField || "id";
1933
+ let paretValue = row[parentField];
1934
+ let siblingRows = tableRows.filter(
1935
+ (item) => item[parentField] === paretValue
1936
+ );
1937
+ if (siblingRows.length > 1) {
1938
+ let currentIndex = tableRows.findIndex(
1939
+ (item) => item[rowField] == row[rowField]
1940
+ );
1941
+ let index1 = siblingRows.findIndex(
1942
+ (item) => item[rowField] == row[rowField]
1943
+ );
1944
+ if (index1 > 0) {
1945
+ let prevRow = siblingRows[index1 - 1];
1946
+ let prevIndex = tableRows.findIndex(
1947
+ (item) => item[rowField] == prevRow[rowField]
1948
+ );
1949
+ tableRows.splice(currentIndex, 1);
1950
+ tableRows.splice(prevIndex, 0, row);
1951
+ this.setValue(tableRows);
1952
+ this.$nextTick(() => {
1953
+ this.handleWbs();
1954
+ });
1955
+ }
1956
+ }
1957
+ } else {
1958
+ let rowIndex = $grid.getRowIndex(row);
1959
+ if (rowIndex >= 0) {
1960
+ tableRows.splice(rowIndex, 1);
1961
+ tableRows.splice(rowIndex - 1, 0, row);
1962
+ this.setValue(tableRows);
1963
+ this.$nextTick(() => {
1964
+ this.handleWbs();
1965
+ });
1966
+ }
1967
+ }
1968
+ },
1969
+ moveDownRow(obj) {
1970
+ let row = obj.row;
1971
+ let $grid = this.getGridTable();
1972
+ let tableRows = this.formModel[this.fieldKeyName] || [];
1973
+ let isTreeTable = this.widget.options.isTreeTable;
1974
+ if (isTreeTable) {
1975
+ let parentField = $grid.treeConfig.parentField;
1976
+ let rowField = $grid.treeConfig.rowField || "id";
1977
+ let paretValue = row[parentField];
1978
+ let siblingRows = tableRows.filter(
1979
+ (item) => item[parentField] === paretValue
1980
+ );
1981
+ if (siblingRows.length > 1) {
1982
+ let currentIndex = tableRows.findIndex(
1983
+ (item) => item[rowField] == row[rowField]
1984
+ );
1985
+ let index1 = siblingRows.findIndex(
1986
+ (item) => item[rowField] == row[rowField]
1987
+ );
1988
+ if (index1 < siblingRows.length - 1) {
1989
+ let nextRow = siblingRows[index1 + 1];
1990
+ let nextIndex = tableRows.findIndex(
1991
+ (item) => item[rowField] == nextRow[rowField]
1992
+ );
1993
+ tableRows.splice(currentIndex, 1);
1994
+ tableRows.splice(nextIndex, 0, row);
1995
+ this.setValue(tableRows);
1996
+ this.$nextTick(() => {
1997
+ this.handleWbs();
1998
+ });
1999
+ }
2000
+ }
2001
+ } else {
2002
+ let rowIndex = $grid.getRowIndex(row);
2003
+ if (rowIndex < tableRows.length - 1) {
2004
+ tableRows.splice(rowIndex, 1);
2005
+ tableRows.splice(rowIndex + 1, 0, row);
2006
+ this.setValue(tableRows);
2007
+ this.$nextTick(() => {
2008
+ this.handleWbs();
2009
+ });
2010
+ }
2011
+ }
2012
+ },
2013
+
2014
+ openSortRowDialog(obj) {
2015
+ let $grid = this.getGridTable();
2016
+ let parentField = $grid.treeConfig.parentField;
2017
+ let rowField = $grid.treeConfig.rowField || "id";
2018
+ let row = obj.row;
2019
+ let tableRows = this.formModel[this.fieldKeyName] || [];
2020
+
2021
+ let sortParentRow = tableRows.find(
2022
+ (item) => item[rowField] === row[parentField]
2023
+ );
2024
+ let sortRows = tableRows.filter(
2025
+ (item) => item[parentField] === row[parentField]
2026
+ );
2027
+ this.sortRows = sortRows;
2028
+ this.sortParentRow = sortParentRow;
2029
+ this.showTreeMoveDialog = true;
2030
+ },
2031
+ confirmTreeMoveDialog(rows) {
2032
+ if (this.widget.options.isEditTable) {
2033
+ let reportTemplate = this.getFormRef().reportTemplate;
2034
+ let formConfig = this.formConfig;
2035
+ let entity = formConfig.entity;
2036
+ let reqData = {
2037
+ formCode: reportTemplate.formCode,
2038
+ formVersion: reportTemplate.formVersion,
2039
+ taBm: entity,
2040
+ data: rows,
2041
+ };
2042
+ let scriptCode = this.widget.options.sortScriptCode;
2043
+ this.formHttp({
2044
+ scriptCode: scriptCode,
2045
+ data: reqData,
2046
+ successMsg: true,
2047
+ isConfirm: true,
2048
+ confirmText: "您确定要保存排序吗?",
2049
+ success: (res) => {
2050
+ this.getGridTable().reloadTreeExpand(this.sortParentRow);
2051
+ },
2052
+ });
2053
+ } else {
2054
+ let $grid = this.getGridTable();
2055
+ let rowField = $grid.treeConfig.rowField || "id";
2056
+ let tableRows = this.formModel[this.fieldKeyName] || [];
2057
+
2058
+ let ids = rows.map((item) => item[rowField]);
2059
+ let index = tableRows.findIndex((item) => ids.includes(item[rowField]));
2060
+ let items = tableRows.filter((item) => !ids.includes(item[rowField]));
2061
+ rows.forEach((row, index1) => {
2062
+ items.splice(index + index1, 0, row);
2063
+ });
2064
+ this.setValue(items);
2065
+ this.$nextTick(() => {
2066
+ this.handleWbs();
2067
+ });
2068
+ }
2069
+ },
2070
+ // 通用行合并函数(将相同多列数据合并为一行)
2071
+ mergeRowMethod(tableParam) {
2072
+ let {row, _rowIndex, column, visibleData} = tableParam;
2073
+ let mergeRowEnabled = this.widget.options.mergeRowEnabled || false;
2074
+ let unikey = this.widget.options.mergeRowKey;
2075
+ const cellValue = row[unikey];
2076
+ let isItemLine = column.params?.isItemLine || false;
2077
+ if (mergeRowEnabled && unikey && !isItemLine) {
2078
+ const prevRow = visibleData[_rowIndex - 1];
2079
+ let nextRow = visibleData[_rowIndex + 1];
2080
+ if (prevRow && prevRow[unikey] === cellValue) {
2081
+ return {rowspan: 0, colspan: 0};
2082
+ } else {
2083
+ let countRowspan = 1;
2084
+ while (nextRow && nextRow[unikey] === cellValue) {
2085
+ nextRow = visibleData[++countRowspan + _rowIndex];
2086
+ }
2087
+ if (countRowspan > 1) {
2088
+ return {rowspan: countRowspan, colspan: 1};
2089
+ }
2090
+ }
2091
+ } else {
2092
+ // return { rowspan: 1, colspan: 1 }
2093
+ }
2094
+ },
2095
+ mergeRowMethod2({row, _rowIndex, column, visibleData}) {
2096
+ const fields = ["key"];
2097
+ const cellValue = row[column.field];
2098
+ if (cellValue && fields.includes(column.field)) {
2099
+ const prevRow = visibleData[_rowIndex - 1];
2100
+ let nextRow = visibleData[_rowIndex + 1];
2101
+ if (prevRow && prevRow[column.field] === cellValue) {
2102
+ return {rowspan: 0, colspan: 0};
2103
+ } else {
2104
+ let countRowspan = 1;
2105
+ while (nextRow && nextRow[column.field] === cellValue) {
2106
+ nextRow = visibleData[++countRowspan + _rowIndex];
2107
+ }
2108
+ if (countRowspan > 1) {
2109
+ return {rowspan: countRowspan, colspan: 1};
2110
+ }
2111
+ }
2112
+ }
2113
+ },
2114
+
2115
+ /**begin*/
2116
+ /*initFieldSchemaData() { //初始化fieldSchemaData!!!
2117
+
2118
+ let rowWidgetList = this.rowWidgetList
2119
+ let rows = this.getValue();
2120
+ let rowLength = rows.length
2121
+ this.widgetMap = {} //清除数组必须用splice,length=0不会响应式更新!!
2122
+ if (rowLength > 0) {
2123
+ for (let i = 0; i < rowLength; i++) {
2124
+ let row = rows[i];
2125
+ let fieldSchemas = []
2126
+ rowWidgetList.forEach(swItem => {
2127
+ fieldSchemas.push( this.cloneFieldSchema(swItem) )
2128
+ })
2129
+ let keyVal = row._X_ROW_KEY;
2130
+ this.widgetMap[keyVal] = fieldSchemas;
2131
+ }
2132
+ }
2133
+ },
2134
+
2135
+ addToFieldSchemaData(row) {
2136
+ let fieldSchemas = []
2137
+ this.rowWidgetList.forEach(swItem => {
2138
+ fieldSchemas.push( this.cloneFieldSchema(swItem) )
2139
+ })
2140
+
2141
+ let keyVal = row._X_ROW_KEY;
2142
+ this.widgetMap[keyVal] = fieldSchemas;
2143
+ },
2144
+
2145
+ deleteFromFieldSchemaData(row) {
2146
+ let keyVal = row._X_ROW_KEY;
2147
+ delete this.widgetMap[keyVal] ;
2148
+ },
2149
+
2150
+ cloneFieldSchema(fieldWidget) {
2151
+ let newFieldSchema = this.$baseLodash.cloneDeep(fieldWidget)
2152
+ newFieldSchema.id = fieldWidget.type + generateId()
2153
+ return newFieldSchema
2154
+ },*/
2155
+ clearRowWidgets() {
2156
+ // this.widgetMap = {};
2157
+ },
2158
+ deleteRowWidgets(row) {
2159
+ this.rowWidgetList.forEach(widget => {
2160
+ let key = this.getRowRefKey(row, widget.options.name);
2161
+ delete this.widgetMap[key];
2162
+ })
2163
+ }
2164
+ /**end*/
2165
+
2166
+ },
2167
+ };
2168
+
2169
+ export default modules;