cloud-web-corejs 1.0.54-dev.57 → 1.0.54-dev.572

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 (471) hide show
  1. package/package.json +21 -13
  2. package/src/App.vue +30 -34
  3. package/src/api/user.js +16 -0
  4. package/src/components/Qrcode/fileParse.vue +0 -1
  5. package/src/components/Tinymce/index.vue +112 -71
  6. package/src/components/VabUpload/image-viewer.vue +2 -2
  7. package/src/components/VabUpload/index.js +49 -1
  8. package/src/components/VabUpload/mixins.js +1822 -2
  9. package/src/components/VabUpload/propertiesDialog.vue +1 -1
  10. package/src/components/VabUpload/view.vue +209 -120
  11. package/src/components/advancedSearchDialog/mixins.js +28 -1
  12. package/src/components/base-textarea/index.vue +104 -0
  13. package/src/components/baseAlert/index.js +44 -1
  14. package/src/components/baseAlert/index.vue +23 -19
  15. package/src/components/baseAlert/mixins.js +61 -1
  16. package/src/components/baseAttachment/index.vue +49 -40
  17. package/src/components/baseAttachment/install.js +21 -5
  18. package/src/components/baseAttachment/mixins.js +310 -1
  19. package/src/components/baseInputBatch/mixins.js +58 -1
  20. package/src/components/baseInputExport/index.vue +19 -12
  21. package/src/components/baseInputExport/mixins.js +391 -1
  22. package/src/components/baseTabs/mixins.js +166 -1
  23. package/src/components/cnPrint/index.js +44 -1
  24. package/src/components/cnPrint/mixins.js +189 -1
  25. package/src/components/code-editor/index.vue +102 -63
  26. package/src/components/confirmDialog/index.js +41 -1
  27. package/src/components/confirmDialog/index.vue +24 -17
  28. package/src/components/confirmDialog/mixins.js +31 -1
  29. package/src/components/errorMsg/index.js +44 -1
  30. package/src/components/errorMsg/index.vue +78 -70
  31. package/src/components/errorMsg/mixins.js +101 -5
  32. package/src/components/excelExport/button.vue +57 -4
  33. package/src/components/excelExport/exportFieldDialog.vue +215 -81
  34. package/src/components/excelExport/index.js +6 -6
  35. package/src/components/excelExport/index.vue +56 -2
  36. package/src/components/excelExport/mixins.js +3 -2
  37. package/src/components/excelImport/index.js +13 -13
  38. package/src/components/excelImport/mixins.js +2 -1
  39. package/src/components/fileLibrary/fileObjAuthDialog.vue +179 -89
  40. package/src/components/fileLibrary/fileObjAuthEditDialog.vue +6 -0
  41. package/src/components/fileLibrary/filterDialog.vue +454 -0
  42. package/src/components/fileLibrary/index.vue +605 -262
  43. package/src/components/fileLibrary/mixins/categoryMoveDialogMixins.js +1 -1
  44. package/src/components/fileLibrary/mixins/fileCategoryDialogMixins.js +1 -1
  45. package/src/components/fileLibrary/mixins/fileHistoryDialogMixins.js +2 -2
  46. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +339 -211
  47. package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +31 -27
  48. package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +4 -4
  49. package/src/components/fileLibrary/mixins/indexMixins.js +220 -101
  50. package/src/components/fileLibrary/mixins/propertiesDialogMixins.js +64 -4
  51. package/src/components/fileLibrary/mixins/recycleBinDialogMixins.js +3 -3
  52. package/src/components/fileLibrary/propertiesDialog.vue +113 -74
  53. package/src/components/fileLibrary/shareDialog.vue +1 -1
  54. package/src/components/formOplog/mixins.js +77 -1
  55. package/src/components/hiprint/css/bootstrap.min.css +6 -0
  56. package/src/components/hiprint/fonts/glyphicons-halflings-regular.eot +0 -0
  57. package/src/components/hiprint/fonts/glyphicons-halflings-regular.svg +288 -0
  58. package/src/components/hiprint/fonts/glyphicons-halflings-regular.ttf +0 -0
  59. package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff +0 -0
  60. package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff2 +0 -0
  61. package/src/components/hiprint/hiprint.bundle.js +7 -2
  62. package/src/components/hiprint/view/design/index.vue +140 -47
  63. package/src/components/hiprint/view/design/mixins.js +611 -1
  64. package/src/components/hiprint/view/design/preview.vue +75 -52
  65. package/src/components/hiprint/view/json-view.vue +31 -31
  66. package/src/components/jdPrint/index.js +44 -1
  67. package/src/components/jdPrint/mixins.js +208 -1
  68. package/src/components/jsonImport/index.js +187 -17
  69. package/src/components/jsonImport/mixins.js +333 -1
  70. package/src/components/langImport/index.js +80 -1
  71. package/src/components/langImport/mixins.js +500 -16
  72. package/src/components/langTag/mixins/addButton.js +51 -5
  73. package/src/components/langTag/mixins/deleteButton.js +55 -5
  74. package/src/components/langTag/mixins/view.js +47 -5
  75. package/src/components/luckysheet/dialog.vue +159 -0
  76. package/src/components/luckysheet/export.js +595 -0
  77. package/src/components/luckysheet/fileUtils.js +147 -0
  78. package/src/components/luckysheet/index.js +72 -0
  79. package/src/components/luckysheet/templateJson.js +12078 -0
  80. package/src/components/luckysheet/view.vue +210 -0
  81. package/src/components/obsUpload/index.js +34 -0
  82. package/src/components/obsUpload/index.vue +231 -0
  83. package/src/components/obsUpload/mixins.js +1476 -0
  84. package/src/components/onlineTalk/mixins.js +852 -1
  85. package/src/components/oplogTable/mixins.js +83 -4
  86. package/src/components/pddPrint/index.js +44 -1
  87. package/src/components/pddPrint/mixins.js +252 -1
  88. package/src/components/projectTag/mixins/addButton.js +52 -1
  89. package/src/components/projectTag/mixins/deleteButton.js +52 -1
  90. package/src/components/projectTag/mixins/view.js +43 -1
  91. package/src/components/scriptDescription/button.vue +12 -4
  92. package/src/components/scriptDescription/mixins.js +30 -1
  93. package/src/components/scriptTest/mixins.js +90 -1
  94. package/src/components/statusTag/mixins.js +66 -1
  95. package/src/components/table/CellSlot.vue +1 -0
  96. package/src/components/table/config.js +1 -1
  97. package/src/components/table/index.js +12 -11
  98. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js +11028 -0
  99. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css +200 -0
  100. package/src/components/table/tableForm.vue +99 -63
  101. package/src/components/table/tableFormMixin.js +1 -1
  102. package/src/components/table/util/index.js +335 -0
  103. package/src/components/table/vxeFilter/index.js +1 -1
  104. package/src/components/table/vxeFilter/mixin.js +6 -6
  105. package/src/components/tempStorage/index.vue +76 -55
  106. package/src/components/tempStorage/tempStorageDialog.vue +179 -54
  107. package/src/components/vb-tabs/x-tabs.vue +56 -30
  108. package/src/components/vipPrint/index.js +44 -1
  109. package/src/components/vipPrint/mixins.js +268 -1
  110. package/src/components/wf/addOpinionButton.vue +57 -0
  111. package/src/components/wf/content.vue +834 -362
  112. package/src/components/wf/mixins/addOpinionButton.js +53 -0
  113. package/src/components/wf/mixins/setCandidateButton.js +161 -0
  114. package/src/components/wf/mixins/setCandidateDialog.js +213 -1
  115. package/src/components/wf/mixins/setCandidateDialog2.js +252 -0
  116. package/src/components/wf/mixins/wfFlowEleScriptDialog.js +131 -0
  117. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +69 -0
  118. package/src/components/wf/setCandidateButton.vue +40 -0
  119. package/src/components/wf/setCandidateDialog.vue +10 -0
  120. package/src/components/wf/setCandidateDialog2.vue +105 -0
  121. package/src/components/wf/wf.js +2156 -1
  122. package/src/components/wf/wfFlowEleScriptDialog.vue +89 -0
  123. package/src/components/wf/wfStartDialog.vue +66 -42
  124. package/src/components/wf/wfTaskUserRangeDialog.vue +65 -0
  125. package/src/components/wf/wfUtil.js +279 -1
  126. package/src/components/xform/form-designer/designer.js +5 -3
  127. package/src/components/xform/form-designer/form-widget/components/gantt/index.vue +434 -0
  128. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +1 -1
  129. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +9 -8
  130. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +4 -1
  131. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +3 -3
  132. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog copy.vue +971 -0
  133. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog.vue +971 -0
  134. package/src/components/xform/form-designer/form-widget/dialog/exportDialog.vue +13 -0
  135. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +301 -0
  136. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +82 -49
  137. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +5 -1
  138. package/src/components/xform/form-designer/form-widget/dialog/formulaDialog.vue +799 -0
  139. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +38 -7
  140. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +9 -903
  141. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +196 -73
  142. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +2 -2
  143. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  144. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +32 -4
  145. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  146. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +19 -1
  147. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +40 -28
  148. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +18 -7
  149. package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +4 -1
  150. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +95 -0
  151. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +14 -2
  152. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +30 -4
  153. package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +133 -0
  154. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +77 -0
  155. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +106 -0
  156. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +25 -997
  157. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +705 -379
  158. package/src/components/xform/form-designer/form-widget/field-widget/gantt-widget.vue +964 -0
  159. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +6 -2
  160. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +22 -11
  161. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +90 -0
  162. package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +7 -2
  163. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +40 -10
  164. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +58 -91
  165. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +8 -1
  166. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +179 -0
  167. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  168. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +114 -81
  169. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +186 -0
  170. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +55 -28
  171. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +119 -0
  172. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +154 -47
  173. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +26 -6
  174. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +2 -2
  175. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +86 -0
  176. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +92 -0
  177. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +24 -9
  178. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  179. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -0
  180. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +12 -1
  181. package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +8 -3
  182. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +31 -17
  183. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +38 -37
  184. package/src/components/xform/form-designer/form-widget/field-widget/tableexportbuttonwidget.vue +99 -0
  185. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +147 -0
  186. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +106 -33
  187. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +2 -2
  188. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +3 -171
  189. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +191 -66
  190. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +753 -0
  191. package/src/components/xform/form-designer/form-widget/indexMixin.js +1 -1
  192. package/src/components/xform/form-designer/indexMixin.js +3 -772
  193. package/src/components/xform/form-designer/refMixinDesign.js +1 -28
  194. package/src/components/xform/form-designer/setting-panel/form-setting.vue +978 -169
  195. package/src/components/xform/form-designer/setting-panel/index.vue +4 -0
  196. package/src/components/xform/form-designer/setting-panel/indexMixin.js +1 -1
  197. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +537 -302
  198. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +4 -4
  199. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +3 -3
  200. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  201. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +6 -0
  202. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +28 -0
  203. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  204. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +125 -0
  205. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +956 -1042
  206. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +432 -0
  207. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  208. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +1127 -520
  209. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +2 -2
  210. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-pane/detail-pane-editor.vue +3 -3
  211. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  212. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  213. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  214. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +0 -8
  215. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree/tree-customClass-editor.vue +31 -2
  216. package/src/components/xform/form-designer/setting-panel/property-editor/copyButton-editor.vue +36 -0
  217. package/src/components/xform/form-designer/setting-panel/property-editor/downloadButtonFlag-editor.vue +32 -0
  218. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  219. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onAfterConfirmFile-editor.vue +32 -0
  220. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +14 -7
  221. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +35 -20
  222. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +64 -5
  223. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +27 -0
  224. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  225. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  226. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +25 -0
  227. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +5 -5
  228. package/src/components/xform/form-designer/setting-panel/property-editor/field-gantt/gantt-editor.vue +36 -0
  229. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +77 -20
  230. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -0
  231. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +44 -15
  232. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +115 -0
  233. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  234. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue +23 -0
  235. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +1 -1
  236. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +67 -41
  237. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-button-editor.vue +56 -0
  238. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +71 -0
  239. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +24 -8
  240. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  241. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +33 -1
  242. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload2/field-vabUpload2-editor.vue +66 -0
  243. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +89 -19
  244. package/src/components/xform/form-designer/setting-panel/property-editor/formatType-editor.vue +137 -0
  245. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +721 -466
  246. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +20 -11
  247. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +1 -1
  248. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +1 -1
  249. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +1 -1
  250. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  251. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  252. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  253. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +124 -50
  254. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +31 -0
  255. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  256. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +349 -0
  257. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +10 -6
  258. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +3 -3
  259. package/src/components/xform/form-designer/setting-panel/property-editor/showRuleFlag-editor.vue +1 -1
  260. package/src/components/xform/form-designer/setting-panel/property-editor/tempStorage-editor.vue +42 -0
  261. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +305 -19
  262. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +2 -2
  263. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +2 -2
  264. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +372 -50
  265. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +263 -0
  266. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +35 -11
  267. package/src/components/xform/form-designer/toolbar-panel/index.vue +12 -11
  268. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +1 -1
  269. package/src/components/xform/form-designer/widget-panel/index.vue +21 -1
  270. package/src/components/xform/form-designer/widget-panel/indexMixin.js +19 -18
  271. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +1725 -917
  272. package/src/components/xform/form-render/container-item/containerItemMixin.js +12 -11
  273. package/src/components/xform/form-render/container-item/data-table-item.vue +206 -198
  274. package/src/components/xform/form-render/container-item/data-table-mixin.js +22 -1685
  275. package/src/components/xform/form-render/container-item/detail-pane-item.vue +17 -3
  276. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  277. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  278. package/src/components/xform/form-render/container-item/list-h5-item.vue +1 -9
  279. package/src/components/xform/form-render/container-item/list-h5-item2.vue +1 -8
  280. package/src/components/xform/form-render/container-item/tab-item.vue +62 -25
  281. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  282. package/src/components/xform/form-render/container-item/table-item.vue +4 -2
  283. package/src/components/xform/form-render/container-item/table2-cell-item.vue +53 -34
  284. package/src/components/xform/form-render/container-item/table2-item.vue +153 -92
  285. package/src/components/xform/form-render/container-item/tree-item.vue +32 -11
  286. package/src/components/xform/form-render/dynamicDialogRender.js +1 -1
  287. package/src/components/xform/form-render/index.vue +77 -20
  288. package/src/components/xform/form-render/indexMixin.js +24 -12
  289. package/src/components/xform/form-render/refMixin.js +3 -3
  290. package/src/components/xform/lang/zh-CN.js +29 -4
  291. package/src/components/xform/mixins/defaultHandle.js +3 -2
  292. package/src/components/xform/mixins/scriptHttp.js +3 -1
  293. package/src/components/xform/utils/emitter.js +4 -4
  294. package/src/components/xform/utils/formHttp.js +162 -0
  295. package/src/components/xform/utils/format.js +41 -34
  296. package/src/components/xform/utils/formula-util.js +966 -0
  297. package/src/components/xform/utils/util.js +5 -1
  298. package/src/components/xform/utils/validators.js +2 -5
  299. package/src/components/xform/utils/vue2js-generator.js +2 -2
  300. package/src/components/xhsPrint/index.js +44 -1
  301. package/src/components/xhsPrint/mixins.js +269 -1
  302. package/src/directive/LimitNumber/index.js +125 -1
  303. package/src/directive/el-dialog-center/index.js +34 -1
  304. package/src/directive/el-drag-dialog/drag.js +86 -1
  305. package/src/directive/el-readonly/index.js +15 -1
  306. package/src/directive/permission/hasPermi.js +34 -1
  307. package/src/index.js +215 -190
  308. package/src/lang/index.js +56 -51
  309. package/src/lang/locale/en/login.js +20 -0
  310. package/src/lang/locale/zh/login.js +20 -0
  311. package/src/layout/components/AppMain.vue +8 -1
  312. package/src/layout/components/Sidebar/default.vue +1423 -1222
  313. package/src/layout/components/TagsView/index.vue +37 -12
  314. package/src/layout/components/createCompany/createCompanyDialog.vue +157 -0
  315. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  316. package/src/layout/components/extractedCode/queryDialog.vue +96 -0
  317. package/src/layout/components/extractedCode/viewDialog.vue +193 -0
  318. package/src/layout/components/watermark/index.vue +83 -0
  319. package/src/layout/defaultLayout.vue +1 -1
  320. package/src/mixins/selectDialog/index.js +266 -1
  321. package/src/mixins/tableTree/index.js +199 -4
  322. package/src/mixins/wf/index.js +33 -1
  323. package/src/permission.js +135 -18
  324. package/src/resources/js/base/common.js +109 -109
  325. package/src/router/modules/customer.js +0 -15
  326. package/src/router/modules/system.js +4 -0
  327. package/src/store/config/index.js +667 -1
  328. package/src/store/getters.js +3 -1
  329. package/src/store/modules/permission.js +46 -41
  330. package/src/store/modules/settings.js +1 -1
  331. package/src/store/modules/tagsView.js +5 -8
  332. package/src/store/modules/user.js +10 -16
  333. package/src/utils/aes.js +2 -1
  334. package/src/utils/auth.js +1 -1
  335. package/src/utils/global.js +1 -1
  336. package/src/utils/index.js +2 -3
  337. package/src/utils/keepAlive.js +1 -1
  338. package/src/utils/pddLog.js +92 -0
  339. package/src/utils/pdfUtil.js +71 -0
  340. package/src/utils/request.js +1 -1
  341. package/src/utils/vab.js +19 -27
  342. package/src/utils/validate.js +1 -1
  343. package/src/utils/wf.js +4 -4
  344. package/src/views/bd/setting/bd_attach_setting/edit.vue +5 -5
  345. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  346. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +4 -5
  347. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +1 -1
  348. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -0
  349. package/src/views/bd/setting/bd_company_env/edit.vue +193 -0
  350. package/src/views/bd/setting/bd_company_env/list.vue +175 -0
  351. package/src/views/bd/setting/config_manage/list.vue +83 -0
  352. package/src/views/bd/setting/form_import_log/edit.vue +127 -0
  353. package/src/views/bd/setting/form_import_log/list.vue +206 -0
  354. package/src/views/bd/setting/form_script/edit.vue +9 -0
  355. package/src/views/bd/setting/form_script/edit1.vue +36 -3
  356. package/src/views/bd/setting/form_script/form_list.vue +99 -37
  357. package/src/views/bd/setting/form_script/list1.vue +181 -118
  358. package/src/views/bd/setting/form_script/mixins/dialog.js +1 -7
  359. package/src/views/bd/setting/form_script/mixins/edit.js +1 -7
  360. package/src/views/bd/setting/form_script/mixins/edit1.js +1 -9
  361. package/src/views/bd/setting/form_script/mixins/form_list.js +1 -14
  362. package/src/views/bd/setting/form_script/mixins/list.js +1 -8
  363. package/src/views/bd/setting/form_script/mixins/list1.js +1 -14
  364. package/src/views/bd/setting/form_script/mixins/list2.js +1 -5
  365. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +1 -0
  366. package/src/views/bd/setting/form_script/mixins/preformDialog.js +1 -3
  367. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  368. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +2 -2
  369. package/src/views/bd/setting/form_template/edit.vue +22 -1
  370. package/src/views/bd/setting/form_template/editWfObjConfigDialog.vue +2 -2
  371. package/src/views/bd/setting/form_template/list.vue +326 -214
  372. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +2 -277
  373. package/src/views/bd/setting/form_template/mixins/edit.js +10 -9
  374. package/src/views/bd/setting/form_template/mixins/list.js +25 -22
  375. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +7 -0
  376. package/src/views/bd/setting/form_template/mixins/wf_list.js +1 -423
  377. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  378. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +4 -4
  379. package/src/views/bd/setting/form_template/wf_list.vue +1 -1
  380. package/src/views/bd/setting/logic_param/edit.vue +146 -0
  381. package/src/views/bd/setting/logic_param/edit1.vue +106 -0
  382. package/src/views/bd/setting/logic_param/edit2.vue +139 -0
  383. package/src/views/bd/setting/logic_param/list.vue +74 -0
  384. package/src/views/bd/setting/logic_param/list1.vue +12 -0
  385. package/src/views/bd/setting/logic_param/list2.vue +12 -0
  386. package/src/views/bd/setting/logic_param/mixins/edit.js +3 -0
  387. package/src/views/bd/setting/logic_param/mixins/list.js +9 -0
  388. package/src/views/bd/setting/menu_kind/list.vue +172 -83
  389. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +7 -7
  390. package/src/views/bd/setting/menu_kind/mixins/list.js +1 -1
  391. package/src/views/bd/setting/push_data/edit.vue +139 -0
  392. package/src/views/bd/setting/push_data/list.vue +283 -0
  393. package/src/views/bd/setting/push_data_h/edit.vue +153 -0
  394. package/src/views/bd/setting/push_data_h/list.vue +293 -0
  395. package/src/views/bd/setting/request_async_setting/edit.vue +320 -0
  396. package/src/views/bd/setting/request_async_setting/list.vue +372 -0
  397. package/src/views/bd/setting/request_setting/edit.vue +300 -0
  398. package/src/views/bd/setting/request_setting/list.vue +311 -0
  399. package/src/views/bd/setting/table_model/edit.vue +875 -426
  400. package/src/views/bd/setting/table_model/list.vue +190 -128
  401. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -1
  402. package/src/views/bd/setting/table_model/mixins/edit copy.js +903 -0
  403. package/src/views/bd/setting/table_model/mixins/edit.js +14 -13
  404. package/src/views/bd/setting/table_model/mixins/list.js +14 -14
  405. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +7 -0
  406. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  407. package/src/views/user/access_log/list.vue +418 -349
  408. package/src/views/user/area/dialog.vue +223 -117
  409. package/src/views/user/area/list.vue +318 -0
  410. package/src/views/user/bill_setting/edit.vue +1 -1
  411. package/src/views/user/bill_setting/list.vue +1 -1
  412. package/src/views/user/common_attribute/itemEdit.vue +2 -2
  413. package/src/views/user/common_attribute/list.vue +5 -2
  414. package/src/views/user/common_script/edit.vue +1 -1
  415. package/src/views/user/common_script/list.vue +1 -1
  416. package/src/views/user/company_info/dialog.vue +195 -163
  417. package/src/views/user/company_info/edit.vue +1 -1
  418. package/src/views/user/extend_datasource/dialog.vue +4 -0
  419. package/src/views/user/extend_datasource/edit.vue +5 -1
  420. package/src/views/user/extend_datasource/list.vue +5 -1
  421. package/src/views/user/fieldTranslation/editDialog.vue +7 -7
  422. package/src/views/user/fieldTranslation/list.vue +32 -32
  423. package/src/views/user/form/vform/designer.vue +776 -749
  424. package/src/views/user/form/vform/out_render.vue +1 -1
  425. package/src/views/user/form/vform/render.vue +67 -37
  426. package/src/views/user/form/view/edit.vue +38 -37
  427. package/src/views/user/form/view/list.vue +270 -49
  428. package/src/views/user/home/default.vue +1026 -979
  429. package/src/views/user/home/dev.vue +29 -0
  430. package/src/views/user/home/index.vue +16 -6
  431. package/src/views/user/login/default.vue +165 -36
  432. package/src/views/user/login/index.vue +4 -6
  433. package/src/views/user/login/indexMixin.js +186 -9
  434. package/src/views/user/menu/list.vue +24 -1
  435. package/src/views/user/notify_message/dialog.vue +44 -22
  436. package/src/views/user/notify_template/edit.vue +188 -187
  437. package/src/views/user/notify_template/edit2.vue +176 -0
  438. package/src/views/user/notify_template/list.vue +4 -1
  439. package/src/views/user/notify_template/list2.vue +190 -0
  440. package/src/views/user/outLink/form_view.vue +211 -211
  441. package/src/views/user/outLink/index.vue +67 -11
  442. package/src/views/user/position/list.vue +4 -4
  443. package/src/views/user/project_tag/dialog.vue +9 -4
  444. package/src/views/user/project_tag/edit.vue +2 -2
  445. package/src/views/user/project_tag/list.vue +9 -4
  446. package/src/views/user/push_setting/list.vue +2 -2
  447. package/src/views/user/request_setting/edit.vue +258 -0
  448. package/src/views/user/request_setting/list.vue +248 -0
  449. package/src/views/user/role/authConfig.vue +89 -0
  450. package/src/views/user/role/dialog.vue +70 -48
  451. package/src/views/user/role/edit.vue +609 -429
  452. package/src/views/user/role/list.vue +4 -4
  453. package/src/views/user/sale_org/dialog.vue +1 -1
  454. package/src/views/user/sale_org/list.vue +4 -1
  455. package/src/views/user/user/dialog.vue +46 -23
  456. package/src/views/user/user/edit.vue +1290 -1021
  457. package/src/views/user/user/form_dialog.vue +158 -0
  458. package/src/views/user/user/form_info.vue +210 -0
  459. package/src/views/user/user/list.vue +652 -563
  460. package/src/views/user/user/modifyPasswordDialog.vue +64 -53
  461. package/src/views/user/wf/wfReport/index.vue +619 -0
  462. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -0
  463. package/src/views/user/wf/wf_manage/list.vue +379 -250
  464. package/src/views/user/wf/wf_manage/wfContentDialog.vue +25 -22
  465. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  466. package/src/views/user/wf/wf_obj_config/itemEdit.vue +25 -1
  467. package/src/views/user/wf/wf_obj_config/list.vue +114 -9
  468. package/src/views/user/wf/wf_obj_config/wfBizDataSettingDialog.vue +2 -2
  469. package/src/views/user/wf/wf_transfer_setting/edit.vue +282 -0
  470. package/src/views/user/wf/wf_transfer_setting/list.vue +319 -0
  471. package/src/utils/renderUtils.js +0 -76
@@ -1,214 +1,277 @@
1
1
  <template>
2
- <div>
3
- <el-dialog
4
- custom-class="dialog-style list-dialog"
5
- :title="i18nt('designer.setting.tableColEdit')"
6
- :visible.sync="showDialog"
7
- :modal="false"
8
- :show-close="!0"
9
- :close-on-click-modal="!1"
10
- :close-on-press-escape="!1"
11
- :destroy-on-close="!0"
12
- top="5vh"
13
- width="1220px"
14
- v-dialog-drag
15
- @closed="closeHandle"
16
- >
17
- <div class="cont">
18
- <el-table
19
- ref="singleTable"
20
- width="100%"
21
- :data="tableData"
22
- height="500"
23
- border=""
24
- row-key="columnId"
25
- stripe=""
26
- :tree-props="{ children: 'children' }"
27
- default-expand-all
2
+ <el-dialog
3
+ custom-class="dialog-style list-dialog"
4
+ :title="i18nt('designer.setting.tableColEdit')"
5
+ :visible.sync="showDialog"
6
+ :modal="false"
7
+ :show-close="!0"
8
+ :close-on-click-modal="!1"
9
+ :close-on-press-escape="!1"
10
+ :destroy-on-close="!0"
11
+ top="5vh"
12
+ width="1220px"
13
+ v-dialog-drag
14
+ :before-close="closeHandle"
15
+ >
16
+ <div class="cont">
17
+ <el-table
18
+ ref="singleTable"
19
+ width="100%"
20
+ :data="tableData"
21
+ height="500"
22
+ border=""
23
+ row-key="columnId"
24
+ stripe=""
25
+ :tree-props="{ children: 'children' }"
26
+ default-expand-all
27
+ v-loading="pictLoading"
28
+ element-loading-background="rgba(0, 0, 0, 0)"
29
+ element-loading-text="数据正在加载中"
30
+ element-loading-spinner="el-icon-loading"
31
+ >
32
+ <el-table-column label="" width="80" fixed="left">
33
+ <template #default="scope">
34
+ <span>{{ scope.$index + 1 }}</span>
35
+ </template>
36
+ </el-table-column>
37
+ <el-table-column label="" width="35" fixed="left"
38
+ ><i class="el-icon-s-operation drag-option"></i>
39
+ </el-table-column>
40
+ <el-table-column
41
+ :label="i18nt('designer.setting.columnLabel')"
42
+ width="150"
43
+ prop="label"
44
+ fixed="left"
28
45
  >
29
- <el-table-column label="" min-width="80" fixed="left">
30
- <template slot-scope="scope">
31
- <span>{{ scope.$index + 1 }}</span>
32
- </template>
33
- </el-table-column>
34
- <el-table-column label="" width="35" fixed="left"><i class="el-icon-s-operation drag-option"></i>
35
- </el-table-column>
36
- <el-table-column :label="i18nt('designer.setting.columnLabel')" width="150" prop="label" fixed="left">
37
- <template slot-scope="scope">
38
- <el-input v-model="scope.row.label"></el-input>
39
- </template>
40
- </el-table-column>
41
- <el-table-column :label="i18nt('designer.setting.columnName')" width="150" prop="prop">
42
- <template slot-scope="scope">
43
- <el-input v-model="scope.row.prop" :disabled="'editAttachment' == scope.row.formatS"></el-input>
44
- </template>
45
- </el-table-column>
46
- <el-table-column :label="i18nt('designer.setting.columnWidth')" width="100" prop="width">
47
- <template slot-scope="scope">
48
- <el-input v-model="scope.row.width"></el-input>
49
- </template>
50
- </el-table-column>
51
- <el-table-column :label="i18nt('designer.setting.visibleColumn')" width="70" prop="show">
52
- <template slot-scope="scope">
53
- <el-switch v-model="scope.row.show"></el-switch>
54
- </template>
55
- </el-table-column>
56
- <el-table-column :label="i18nt('必填')" width="70" prop="required">
57
- <template slot-scope="scope">
58
- <el-switch v-model="scope.row.required"></el-switch>
59
- </template>
60
- </el-table-column>
61
- <el-table-column :label="i18nt('designer.setting.sortableColumn')" width="70" prop="sortable">
62
- <template slot-scope="scope">
63
- <el-switch v-model="scope.row.sortable"></el-switch>
64
- </template>
65
- </el-table-column>
66
- <el-table-column :label="i18nt('designer.setting.fixedColumn')" width="100" prop="fixed">
67
- <template slot-scope="scope">
68
- <el-select v-model="scope.row.fixed" clearable>
69
- <el-option value="left">left</el-option>
70
- <el-option value="right">right</el-option>
71
- </el-select>
72
- </template>
73
- </el-table-column>
74
- <!-- <el-table-column :label="i18nt('designer.setting.alignTypeOfColumn')" width="100" prop="align">
75
- <template slot-scope="scope">
76
- <el-select v-model="scope.row.align">
77
- <el-option v-for="(e,index) in alignOptions" :key="index" :value="e.value" :label="e.label"></el-option>
78
- </el-select>
79
- </template>
80
- </el-table-column>-->
81
- <el-table-column :label="i18nt('designer.setting.formatOfColumn')" width="200" prop="formatS">
82
- <template slot-scope="scope">
83
- <el-select v-model="scope.row.formatS" @change="changeFormatS(scope.row)" clearable>
84
- <el-option-group :label="i18nt('designer.setting.customRenderGroup')">
85
- <el-option value="render" label="render"></el-option>
86
- </el-option-group>
87
- <el-option-group v-for="t in op" :key="t.label" :label="t.label">
88
- <el-option v-for="e in t.options" :key="e.value" :value="e.value" :label="e.label"></el-option>
89
- </el-option-group>
90
- </el-select>
91
- </template>
92
- </el-table-column>
93
- <el-table-column :label="i18nt('自定义表格列配置')" width="150">
94
- <template slot-scope="scope">
95
- <a href="javascript:void(0);" class="a-link link-oneLind"
96
- @click="openTableColumnConfigDialog(scope.row,scope.$index)">
97
- <span>{{ scope.row.tableColumnConfig }}</span>
98
- <i class="el-icon-edit"></i>
99
- </a>
100
- </template>
101
- </el-table-column>
102
- <el-table-column :label="i18nt('编辑下拉列')" width="70" prop="sortable">
103
- <template slot-scope="scope">
104
- <el-switch v-model="scope.row.treeNode"></el-switch>
105
- </template>
106
- </el-table-column>
107
- <el-table-column :label="i18nt('编辑插槽类型')" width="200" prop="editFormatS">
108
- <template slot-scope="scope">
109
- <el-select v-model="scope.row.editFormatS" @change="changeFormatS(scope.row)" clearable>
110
- <el-option v-for="e in editOp" :key="e.value" :value="e.value" :label="e.label"></el-option>
111
- </el-select>
112
- </template>
113
- </el-table-column>
114
- <el-table-column label="编辑插槽配置" width="70" align="center">
115
- <template slot-scope="scope">
116
- <el-button size="mini" plain="" round="" icon="el-icon-edit"
117
- @click="openEditFormatConfigDialog(scope.row,scope.$index)"
118
- :disabled="!scope.row.editFormatS"></el-button>
119
- </template>
120
- </el-table-column>
121
- <el-table-column :label="i18nt('导出类型')" width="200" prop="formatS">
122
- <template slot-scope="scope">
123
- <el-select v-model="scope.row.exportType" clearable>
124
- <el-option value="Image" label="图片"></el-option>
125
- <el-option value="Number" label="数值"></el-option>
126
- </el-select>
127
- </template>
128
- </el-table-column>
129
- <el-table-column label="格式化配置" width="90" fixed="right" align="center">
130
- <template slot-scope="scope">
131
- <el-button size="mini" plain="" round="" icon="el-icon-edit"
132
- @click="openFormatConfigDialog(scope.row,scope.$index)"
133
- :disabled="!columnFormatMap[scope.row.formatS]"></el-button>
134
- </template>
135
- </el-table-column>
136
- <el-table-column :label="i18nt('designer.setting.renderFunction')" width="70" fixed="right" align="center">
137
- <template slot-scope="scope">
138
- <el-button :disabled="'render' !== scope.row.formatS" size="mini" plain="" round="" icon="el-icon-edit"
139
- @click="showRenderDialog(scope.row)"></el-button>
140
- </template>
141
- </el-table-column>
142
- <el-table-column label="操作" width="150" fixed="right">
143
- <template slot="header">
144
- <el-tooltip
145
- :hide-after="500"
146
- class="item"
147
- effect="dark"
148
- content="添加根节点"
149
- placement="top"
150
- >
151
- <el-button
152
- size="mini" type="" circle=""
153
- icon="el-icon-plus"
154
- @click="onAddRoot"
155
- />
156
- </el-tooltip>
157
- </template>
158
- <template #default="{ row, $index }">
159
- <el-tooltip
160
- :hide-after="hideAfter"
161
- :open-delay="openDelay"
162
- effect="dark"
163
- content="添加兄弟节点"
164
- placement="top"
165
- >
166
- <el-button
167
- size="mini" type="" circle=""
168
- icon="el-icon-plus"
169
- @click="onAddSibling(row, $index)"
170
- />
171
- </el-tooltip>
46
+ <template #default="scope">
47
+ <el-input
48
+ v-model="scope.row.label"
49
+ @change="changeRowLabel(scope.row)"
50
+ ></el-input>
51
+ </template>
52
+ </el-table-column>
53
+ <el-table-column
54
+ :label="i18nt('designer.setting.columnName')"
55
+ width="150"
56
+ prop="prop"
57
+ >
58
+ <template #default="scope">
59
+ <el-input
60
+ v-model="scope.row.prop"
61
+ @change="changeRowProp(scope.row)"
62
+ :disabled="'editAttachment' == scope.row.formatS"
63
+ ></el-input>
64
+ </template>
65
+ </el-table-column>
66
+ <el-table-column
67
+ :label="i18nt('designer.setting.columnWidth')"
68
+ width="100"
69
+ prop="width"
70
+ >
71
+ <template #default="scope">
72
+ <el-input v-model="scope.row.width"></el-input>
73
+ </template>
74
+ </el-table-column>
172
75
 
173
- <el-tooltip
174
- :hide-after="hideAfter"
175
- :open-delay="openDelay"
176
- effect="dark"
177
- content="添加子节点"
178
- placement="top"
179
- >
180
- <el-button
181
- size="mini" type="" circle=""
182
- icon="el-icon-circle-plus-outline"
183
- @click="onAddChild(row, $index)"
184
- />
185
- </el-tooltip>
186
- <el-tooltip
187
- :hide-after="hideAfter"
188
- :open-delay="openDelay"
189
- effect="dark"
190
- content="删除"
191
- placement="top"
192
- >
193
- <el-button
194
- size="mini" type="" circle=""
195
- icon="el-icon-delete"
196
- @click="onDelete(row, $index)"
197
- />
198
- </el-tooltip>
199
- </template>
200
- </el-table-column>
201
- </el-table>
202
- </div>
203
- <div class="dialog-footer" slot="footer">
204
- <el-button @click="closeHandle" class="button-sty" icon="el-icon-close">
205
- {{ i18nt('designer.hint.cancel') }}
206
- </el-button>
207
- <el-button type="primary" @click="colSubmit" class="button-sty" icon="el-icon-check">
208
- {{ i18nt('designer.hint.confirm') }}
209
- </el-button>
210
- </div>
211
- </el-dialog>
76
+ <el-table-column :label="i18nt('必填')" width="70" prop="required">
77
+ <template #default="scope">
78
+ <el-switch
79
+ v-model="scope.row.required"
80
+ @change="changeRowRequired(scope.row)"
81
+ ></el-switch>
82
+ </template>
83
+ </el-table-column>
84
+ <el-table-column
85
+ :label="i18nt('designer.setting.fixedColumn')"
86
+ width="100"
87
+ prop="fixed"
88
+ >
89
+ <template #default="scope">
90
+ <el-select v-model="scope.row.fixed" clearable>
91
+ <el-option value="left">left</el-option>
92
+ <el-option value="right">right</el-option>
93
+ </el-select>
94
+ </template>
95
+ </el-table-column>
96
+ <el-table-column
97
+ :label="i18nt('designer.setting.formatOfColumn')"
98
+ width="200"
99
+ prop="formatS"
100
+ >
101
+ <template #default="scope">
102
+ <el-select
103
+ v-model="scope.row.formatS"
104
+ @change="changeFormatS(scope.row, false)"
105
+ clearable
106
+ >
107
+ <el-option-group :label="i18nt('designer.setting.customRenderGroup')">
108
+ <el-option value="render" label="render"></el-option>
109
+ </el-option-group>
110
+ <el-option-group v-for="t in op" :key="t.label" :label="t.label">
111
+ <el-option
112
+ v-for="e in t.options"
113
+ :key="e.value"
114
+ :value="e.value"
115
+ :label="e.label"
116
+ ></el-option>
117
+ </el-option-group>
118
+ </el-select>
119
+ </template>
120
+ </el-table-column>
121
+ <el-table-column label="格式化配置" width="90" align="center">
122
+ <template #default="scope">
123
+ <el-button
124
+ size="mini"
125
+ plain=""
126
+ round=""
127
+ icon="el-icon-edit"
128
+ @click="openFormatConfigDialog(scope.row, scope.$index)"
129
+ :disabled="
130
+ !columnFormatMap[scope.row.formatS] &&
131
+ 'widgetRender' !== scope.row.formatS
132
+ "
133
+ ></el-button>
134
+ </template>
135
+ </el-table-column>
136
+ <el-table-column
137
+ :label="i18nt('designer.setting.renderFunction')"
138
+ width="70"
139
+ align="center"
140
+ >
141
+ <template #default="scope">
142
+ <el-button
143
+ :disabled="'render' !== scope.row.formatS"
144
+ size="mini"
145
+ plain=""
146
+ round=""
147
+ icon="el-icon-edit"
148
+ @click="showRenderDialog(scope.row)"
149
+ ></el-button>
150
+ </template>
151
+ </el-table-column>
152
+ <el-table-column
153
+ :label="i18nt('designer.setting.visibleColumn')"
154
+ width="70"
155
+ prop="show"
156
+ >
157
+ <template #default="scope">
158
+ <el-switch v-model="scope.row.show"></el-switch>
159
+ </template>
160
+ </el-table-column>
161
+ <el-table-column
162
+ :label="i18nt('designer.setting.sortableColumn')"
163
+ width="70"
164
+ prop="sortable"
165
+ >
166
+ <template #default="scope">
167
+ <el-switch v-model="scope.row.sortable"></el-switch>
168
+ </template>
169
+ </el-table-column>
170
+ <el-table-column label="显示筛选" width="70" prop="filterable">
171
+ <template #default="scope">
172
+ <el-switch v-model="scope.row.filterable"></el-switch>
173
+ </template>
174
+ </el-table-column>
175
+ <el-table-column label="编辑更多属性" width="100" align="center" fixed="right">
176
+ <template #default="scope">
177
+ <el-button
178
+ size="mini"
179
+ plain=""
180
+ round=""
181
+ icon="el-icon-edit"
182
+ @click="openRowEditDialog(scope.row, scope.$index)"
183
+ ></el-button>
184
+ </template>
185
+ </el-table-column>
186
+ <el-table-column label="操作" width="150" fixed="right">
187
+ <template slot="header">
188
+ <el-tooltip
189
+ :hide-after="500"
190
+ class="item"
191
+ effect="dark"
192
+ content="添加根节点"
193
+ placement="top"
194
+ >
195
+ <el-button
196
+ size="mini"
197
+ type=""
198
+ circle=""
199
+ icon="el-icon-plus"
200
+ @click="onAddRoot"
201
+ />
202
+ </el-tooltip>
203
+ </template>
204
+ <template #default="{ row, $index }">
205
+ <el-tooltip
206
+ :hide-after="hideAfter"
207
+ :open-delay="openDelay"
208
+ effect="dark"
209
+ content="添加兄弟节点"
210
+ placement="top"
211
+ >
212
+ <el-button
213
+ size="mini"
214
+ type=""
215
+ circle=""
216
+ icon="el-icon-plus"
217
+ @click="onAddSibling(row, $index)"
218
+ />
219
+ </el-tooltip>
220
+
221
+ <el-tooltip
222
+ :hide-after="hideAfter"
223
+ :open-delay="openDelay"
224
+ effect="dark"
225
+ content="添加子节点"
226
+ placement="top"
227
+ >
228
+ <el-button
229
+ size="mini"
230
+ type=""
231
+ circle=""
232
+ icon="el-icon-circle-plus-outline"
233
+ @click="onAddChild(row, $index)"
234
+ />
235
+ </el-tooltip>
236
+ <el-tooltip
237
+ :hide-after="hideAfter"
238
+ :open-delay="openDelay"
239
+ effect="dark"
240
+ content="删除"
241
+ placement="top"
242
+ >
243
+ <el-button
244
+ size="mini"
245
+ type=""
246
+ circle=""
247
+ icon="el-icon-delete"
248
+ @click="onDelete(row, $index)"
249
+ />
250
+ </el-tooltip>
251
+ </template>
252
+ </el-table-column>
253
+ </el-table>
254
+ <columnRenderDialog
255
+ :column="currentTableColumn"
256
+ :sourceData="sourceData"
257
+ v-if="showColumnRenderDialog"
258
+ :visiable.sync="showColumnRenderDialog"
259
+ @confirm="confirmWidgetRenderDialog"
260
+ ></columnRenderDialog>
261
+ </div>
262
+ <div class="dialog-footer" slot="footer">
263
+ <el-button @click="closeHandle" class="button-sty" icon="el-icon-close">
264
+ {{ i18nt("designer.hint.cancel") }}
265
+ </el-button>
266
+ <el-button
267
+ type="primary"
268
+ @click="colSubmit"
269
+ class="button-sty"
270
+ icon="el-icon-check"
271
+ >
272
+ {{ i18nt("designer.hint.confirm") }}
273
+ </el-button>
274
+ </div>
212
275
  <el-dialog
213
276
  v-if="showRenderDialogFlag"
214
277
  :title="i18nt('designer.setting.renderFunction')"
@@ -221,16 +284,31 @@
221
284
  :destroy-on-close="!0"
222
285
  v-dialog-drag
223
286
  top="7vh"
287
+ :append-to-body="true"
224
288
  >
225
- <el-alert type="info" :closable="!1" title="function customRender(params,h) {"/>
226
- <code-editor ref="dsResultEditor" mode="javascript" :readonly="!1" v-model="renderJson"></code-editor>
227
- <el-alert type="info" :closable="!1" title="}"/>
289
+ <el-alert type="info" :closable="!1" title="function customRender(params,h) {" />
290
+ <code-editor
291
+ ref="dsResultEditor"
292
+ mode="javascript"
293
+ :readonly="!1"
294
+ v-model="renderJson"
295
+ ></code-editor>
296
+ <el-alert type="info" :closable="!1" title="}" />
228
297
  <div class="dialog-footer" slot="footer">
229
- <el-button @click="showRenderDialogFlag = !1" class="button-sty" icon="el-icon-close">
230
- {{ i18nt('designer.hint.cancel') }}
298
+ <el-button
299
+ @click="showRenderDialogFlag = !1"
300
+ class="button-sty"
301
+ icon="el-icon-close"
302
+ >
303
+ {{ i18nt("designer.hint.cancel") }}
231
304
  </el-button>
232
- <el-button type="primary" @click="saveColumnRender" class="button-sty" icon="el-icon-check">
233
- {{ i18nt('designer.hint.confirm') }}
305
+ <el-button
306
+ type="primary"
307
+ @click="saveColumnRender"
308
+ class="button-sty"
309
+ icon="el-icon-check"
310
+ >
311
+ {{ i18nt("designer.hint.confirm") }}
234
312
  </el-button>
235
313
  </div>
236
314
  </el-dialog>
@@ -249,39 +327,312 @@
249
327
  top="5vh"
250
328
  >
251
329
  <div class="cont">
252
- <el-alert type="info" :closable="false" :title="tableColumnConfigHeader"></el-alert>
253
- <code-editor :mode="'javascript'" :readonly="false" v-model="tableColumnConfigCode"
254
- ref="ecEditor"></code-editor>
330
+ <el-alert
331
+ type="info"
332
+ :closable="false"
333
+ :title="tableColumnConfigHeader"
334
+ ></el-alert>
335
+ <code-editor
336
+ :mode="'javascript'"
337
+ :readonly="false"
338
+ v-model="tableColumnConfigCode"
339
+ ref="ecEditor"
340
+ ></code-editor>
341
+ <el-alert type="info" :closable="false" title="}"></el-alert>
342
+ </div>
343
+ <div slot="footer" class="dialog-footer">
344
+ <el-button
345
+ @click="showTableColumnConfigDialog = false"
346
+ class="button-sty"
347
+ icon="el-icon-close"
348
+ >
349
+ {{ i18nt("designer.hint.cancel") }}
350
+ </el-button>
351
+ <el-button
352
+ type="primary"
353
+ @click="saveTableColumnConfigDialog"
354
+ class="button-sty"
355
+ icon="el-icon-check"
356
+ >
357
+ {{ i18nt("designer.hint.confirm") }}
358
+ </el-button>
359
+ </div>
360
+ </el-dialog>
361
+ <el-dialog
362
+ :title="i18nt('designer.setting.editFormEventHandler')"
363
+ :visible.sync="showFormEventDialogFlag"
364
+ v-if="showFormEventDialogFlag"
365
+ :show-close="true"
366
+ custom-class="dialog-style list-dialog"
367
+ v-dialog-drag
368
+ :close-on-click-modal="false"
369
+ :close-on-press-escape="false"
370
+ :destroy-on-close="true"
371
+ :append-to-body="true"
372
+ :modal-append-to-body="true"
373
+ top="5vh"
374
+ >
375
+ <div class="cont">
376
+ <el-alert
377
+ type="info"
378
+ :closable="false"
379
+ :title="'form.' + eventParamsMap[curEventName]"
380
+ ></el-alert>
381
+ <code-editor
382
+ :mode="'javascript'"
383
+ :readonly="false"
384
+ v-model="formEventHandlerCode"
385
+ ref="ecEditor"
386
+ ></code-editor>
255
387
  <el-alert type="info" :closable="false" title="}"></el-alert>
256
388
  </div>
257
389
  <div slot="footer" class="dialog-footer">
258
- <el-button @click="showTableColumnConfigDialog = false" class="button-sty" icon="el-icon-close">
259
- {{ i18nt('designer.hint.cancel') }}
390
+ <el-button
391
+ @click="showFormEventDialogFlag = false"
392
+ class="button-sty"
393
+ icon="el-icon-close"
394
+ >
395
+ {{ i18nt("designer.hint.cancel") }}
260
396
  </el-button>
261
- <el-button type="primary" @click="saveTableColumnConfigDialog" class="button-sty" icon="el-icon-check">
262
- {{ i18nt('designer.hint.confirm') }}
397
+ <el-button
398
+ type="primary"
399
+ @click="saveFormEventHandler"
400
+ class="button-sty"
401
+ icon="el-icon-check"
402
+ >
403
+ {{ i18nt("designer.hint.confirm") }}
263
404
  </el-button>
264
405
  </div>
265
406
  </el-dialog>
266
- </div>
267
407
 
408
+ <el-dialog
409
+ custom-class="dialog-style list-dialog"
410
+ :title="i18nt('designer.setting.tableColEdit')"
411
+ :visible.sync="showRowEditDialog"
412
+ v-if="showRowEditDialog"
413
+ :modal="false"
414
+ :show-close="!0"
415
+ :close-on-click-modal="!1"
416
+ :close-on-press-escape="!1"
417
+ :destroy-on-close="!0"
418
+ top="5vh"
419
+ width="409px"
420
+ v-dialog-drag
421
+ >
422
+ <div class="cont">
423
+ <el-form :model="rowData" class="form-m2" label-position="top">
424
+ <el-form-item :label="i18nt('designer.setting.columnLabel')">
425
+ <el-input
426
+ v-model="rowData.label"
427
+ @change="changeRowLabel(rowData)"
428
+ ></el-input>
429
+ </el-form-item>
430
+ <el-form-item :label="i18nt('designer.setting.columnName')">
431
+ <el-input
432
+ v-model="rowData.prop"
433
+ @change="changeRowProp(rowData)"
434
+ :disabled="'editAttachment' == rowData.formatS"
435
+ ></el-input>
436
+ </el-form-item>
437
+ <el-form-item :label="i18nt('designer.setting.columnWidth')">
438
+ <el-input v-model="rowData.width"></el-input>
439
+ </el-form-item>
440
+ <el-form-item :label="i18nt('必填')">
441
+ <el-switch
442
+ v-model="rowData.required"
443
+ @change="changeRowRequired(rowData)"
444
+ ></el-switch>
445
+ </el-form-item>
446
+ <el-form-item :label="i18nt('designer.setting.fixedColumn')">
447
+ <el-select v-model="rowData.fixed" clearable>
448
+ <el-option value="left">left</el-option>
449
+ <el-option value="right">right</el-option>
450
+ </el-select>
451
+ </el-form-item>
452
+ <el-form-item :label="i18nt('designer.setting.formatOfColumn')">
453
+ <el-select
454
+ v-model="rowData.formatS"
455
+ @change="changeFormatS(rowData, false)"
456
+ clearable
457
+ >
458
+ <el-option-group :label="i18nt('designer.setting.customRenderGroup')">
459
+ <el-option value="render" label="render"></el-option>
460
+ </el-option-group>
461
+ <el-option-group v-for="t in op" :key="t.label" :label="t.label">
462
+ <el-option
463
+ v-for="e in t.options"
464
+ :key="e.value"
465
+ :value="e.value"
466
+ :label="e.label"
467
+ ></el-option>
468
+ </el-option-group>
469
+ </el-select>
470
+ </el-form-item>
471
+ <el-form-item label="格式化配置">
472
+ <el-button
473
+ size="mini"
474
+ plain=""
475
+ round=""
476
+ icon="el-icon-edit"
477
+ @click="openFormatConfigDialog(rowData, rowDataIndex)"
478
+ :disabled="
479
+ !columnFormatMap[rowData.formatS] && 'widgetRender' !== rowData.formatS
480
+ "
481
+ ></el-button>
482
+ </el-form-item>
483
+ <el-form-item :label="i18nt('designer.setting.renderFunction')">
484
+ <el-button
485
+ :disabled="'render' !== rowData.formatS"
486
+ size="mini"
487
+ plain=""
488
+ round=""
489
+ icon="el-icon-edit"
490
+ @click="showRenderDialog(rowData)"
491
+ ></el-button>
492
+ </el-form-item>
493
+ <el-form-item :label="i18nt('designer.setting.visibleColumn')">
494
+ <el-switch v-model="rowData.show"></el-switch>
495
+ </el-form-item>
496
+ <el-form-item :label="i18nt('designer.setting.sortableColumn')">
497
+ <el-switch v-model="rowData.sortable"></el-switch>
498
+ </el-form-item>
499
+ <el-form-item label="显示筛选">
500
+ <el-switch v-model="rowData.filterable"></el-switch>
501
+ </el-form-item>
502
+ <el-form-item :label="i18nt('明细行')">
503
+ <el-switch v-model="rowData.isItemLine"></el-switch>
504
+ </el-form-item>
505
+
506
+ <el-form-item :label="i18nt('下拉列')">
507
+ <el-switch v-model="rowData.treeNode"></el-switch>
508
+ </el-form-item>
509
+ <el-form-item :label="i18nt('自定义表格列配置')">
510
+ <a
511
+ href="javascript:void(0);"
512
+ class="a-link link-oneLind"
513
+ @click="openTableColumnConfigDialog(rowData, rowDataIndex)"
514
+ >
515
+ <span>{{ rowData.tableColumnConfig }}</span>
516
+ <i class="el-icon-edit"></i>
517
+ </a>
518
+ </el-form-item>
519
+ <el-form-item :label="i18nt('编辑插槽类型')">
520
+ <el-select
521
+ v-model="rowData.editFormatS"
522
+ @change="changeFormatS(rowData, true)"
523
+ clearable
524
+ >
525
+ <el-option
526
+ v-for="e in editOp"
527
+ :key="e.value"
528
+ :value="e.value"
529
+ :label="e.label"
530
+ ></el-option>
531
+ </el-select>
532
+ </el-form-item>
533
+ <el-form-item label="编辑插槽配置">
534
+ <el-button
535
+ size="mini"
536
+ plain=""
537
+ round=""
538
+ icon="el-icon-edit"
539
+ @click="openEditFormatConfigDialog(rowData, rowDataIndex)"
540
+ :disabled="!rowData.editFormatS"
541
+ ></el-button>
542
+ </el-form-item>
543
+ <el-form-item :label="i18nt('导出类型')">
544
+ <el-select v-model="rowData.exportType" clearable>
545
+ <el-option value="Image2" label="图片"></el-option>
546
+ <el-option value="Number" label="数值"></el-option>
547
+ </el-select>
548
+ </el-form-item>
549
+ <el-form-item :label="i18nt('表尾统计行类型')">
550
+ <el-select v-model="rowData.footerDataType" clearable>
551
+ <el-option value="1" label="合计"></el-option>
552
+ <el-option value="2" label="平均"></el-option>
553
+ <el-option value="3" label="自定义"></el-option>
554
+ </el-select>
555
+ </el-form-item>
556
+ <el-form-item label="表尾统计行配置">
557
+ <el-button
558
+ size="mini"
559
+ plain=""
560
+ round=""
561
+ icon="el-icon-edit"
562
+ @click="editFormEventHandler(rowData, rowDataIndex, 'footerMethodConfg')"
563
+ :disabled="rowData.footerDataType !== '3'"
564
+ ></el-button>
565
+ </el-form-item>
566
+ <el-form-item :label="i18nt('显示名称颜色')">
567
+ <el-select v-model="rowData.labelColor" clearable>
568
+ <el-option value="#e6a23c" label="橙"></el-option>
569
+ <el-option value="#2a6494" label="蓝"></el-option>
570
+ <el-option value="#30b08f" label="绿"></el-option>
571
+ <el-option value="#909399" label="灰"></el-option>
572
+ <el-option value="#ea5353" label="红"></el-option>
573
+ </el-select>
574
+ </el-form-item>
575
+ </el-form>
576
+ </div>
577
+ <div class="dialog-footer" slot="footer">
578
+ <el-button @click="closeRowEditDialog" class="button-sty" icon="el-icon-close">
579
+ {{ i18nt("designer.hint.cancel") }}
580
+ </el-button>
581
+ <el-button
582
+ type="primary"
583
+ @click="submitRowEditDialog"
584
+ class="button-sty"
585
+ icon="el-icon-check"
586
+ >
587
+ {{ i18nt("designer.hint.confirm") }}
588
+ </el-button>
589
+ </div>
590
+ </el-dialog>
591
+ </el-dialog>
268
592
  </template>
269
593
  <script>
270
594
  import i18n from "../../../../../../components/xform/utils/i18n";
271
595
  import Sortable from "sortablejs";
272
- import {generateId} from "../../../../../../components/xform/utils/util";
596
+ import {
597
+ generateId,
598
+ loopHandleWidget,
599
+ deepClone,
600
+ columnFormatMap,
601
+ } from "../../../../../../components/xform/utils/util";
602
+ import columnRenderDialog from "./columnRenderDialog.vue";
603
+
604
+ let businessOptions = [
605
+ {
606
+ value: "_createBy",
607
+ label: "创建人",
608
+ },
609
+ {
610
+ value: "_modifyBy",
611
+ label: "更新人",
612
+ },
613
+ {
614
+ value: "create_date",
615
+ label: "创建时间",
616
+ },
617
+ {
618
+ value: "modify_date",
619
+ label: "更新时间",
620
+ },
621
+ ];
622
+ let userFields = ["_createBy", "_modifyBy", "create_date", "modify_date"];
273
623
 
274
624
  export default {
275
625
  mixins: [i18n],
276
626
  props: {
277
627
  designer: Object,
278
628
  selectedWidget: Object,
279
- optionModel: Object
629
+ optionModel: Object,
280
630
  },
281
- components: {},
282
- inject: ['openWidgetPropertyDialog'],
631
+ components: { columnRenderDialog },
632
+ inject: ["openWidgetPropertyDialog"],
283
633
  data() {
284
634
  return {
635
+ pictLoading: true,
285
636
  tableColumnConfigTitle: null,
286
637
  showTableColumnConfigDialog: false,
287
638
  tableColumnConfigHeader: null,
@@ -290,264 +641,344 @@ export default {
290
641
  dialogVisible: true,
291
642
  alignOptions: [
292
643
  {
293
- value: 'left',
294
- label: 'left'
644
+ value: "left",
645
+ label: "left",
295
646
  },
296
647
  {
297
- value: 'center',
298
- label: 'center'
648
+ value: "center",
649
+ label: "center",
299
650
  },
300
651
  {
301
- value: 'right',
302
- label: 'right'
303
- }
652
+ value: "right",
653
+ label: "right",
654
+ },
304
655
  ],
656
+ businessOptions,
657
+ userFields,
305
658
  op: [
306
659
  {
307
- label: 'edit Format',
660
+ label: "edit Format",
308
661
  options: [
309
662
  {
310
- value: 'editInput',
311
- label: '文本输入框'
663
+ value: "editInput",
664
+ label: "文本输入框",
312
665
  },
313
666
  {
314
- value: 'editNumber',
315
- label: '数字输入框'
667
+ value: "editNumber",
668
+ label: "数字输入框",
316
669
  },
317
670
  {
318
- value: 'editDate',
319
- label: '日期输入框'
671
+ value: "editDate",
672
+ label: "日期输入框",
320
673
  },
321
674
  {
322
- value: 'editSelect',
323
- label: '下拉框'
675
+ value: "editSelect",
676
+ label: "下拉框",
324
677
  },
325
678
  {
326
- value: 'editAttachment',
327
- label: '附件'
679
+ value: "checkbox",
680
+ label: "复选框",
328
681
  },
329
682
  {
330
- value: 'editSearch',
331
- label: '搜索框'
683
+ value: "radio",
684
+ label: "单选框",
332
685
  },
333
686
  {
334
- value: 'editStatus',
335
- label: '状态'
687
+ value: "editAttachment",
688
+ label: "附件",
336
689
  },
337
690
  {
338
- value: 'editDelete',
339
- label: '删除按钮'
691
+ value: "editSearch",
692
+ label: "搜索框",
340
693
  },
341
694
  {
342
- value: 'editButton',
343
- label: '查看按钮'
695
+ value: "editStatus",
696
+ label: "状态",
344
697
  },
345
698
  {
346
- value: 'aText',
347
- label: '超链接文本'
699
+ value: "text",
700
+ label: "文本",
348
701
  },
349
702
  {
350
- value: 'aLink',
351
- label: '超链接按钮'
703
+ value: "editDelete",
704
+ label: "删除按钮",
352
705
  },
353
706
  {
354
- value: 'button',
355
- label: '按钮'
707
+ value: "editButton",
708
+ label: "查看按钮",
356
709
  },
357
710
  {
358
- value: 'editTreeButtonGroup',
359
- label: '编辑行按钮组'
360
- }
361
- ]
711
+ value: "aText",
712
+ label: "超链接文本",
713
+ },
714
+ {
715
+ value: "aLink",
716
+ label: "超链接按钮",
717
+ },
718
+ {
719
+ value: "button",
720
+ label: "按钮",
721
+ },
722
+ {
723
+ value: "editTreeButtonGroup",
724
+ label: "编辑行按钮组",
725
+ },
726
+ {
727
+ value: "widgetRender",
728
+ label: "自定义组件",
729
+ },
730
+ ],
362
731
  },
363
732
  {
364
- label: '树控件',
733
+ label: "树控件",
365
734
  options: [
366
735
  {
367
- value: 'addSiblingEditRow',
368
- label: '新增兄弟节点'
736
+ value: "addSiblingEditRow",
737
+ label: "新增兄弟节点",
369
738
  },
370
739
  {
371
- value: 'addChildTreeRow',
372
- label: '新增子节点'
740
+ value: "addChildTreeRow",
741
+ label: "新增子节点",
373
742
  },
374
743
  {
375
- value: 'moveUpRow',
376
- label: '上移'
744
+ value: "moveUpRow",
745
+ label: "上移",
377
746
  },
378
747
  {
379
- value: 'moveDownRow',
380
- label: '下移'
748
+ value: "moveDownRow",
749
+ label: "下移",
381
750
  },
382
751
  {
383
- value: 'removeTreeRow',
384
- label: '删除树节点'
385
- }
386
- ]
752
+ value: "removeTreeRow",
753
+ label: "删除树节点",
754
+ },
755
+ ],
756
+ },
757
+
758
+ {
759
+ label: "业务模块",
760
+ options: businessOptions,
387
761
  },
388
762
  {
389
- label: 'Date Format',
763
+ label: "Date Format",
390
764
  options: [
391
765
  {
392
- value: 'd1',
393
- label: 'yyyy-MM-dd'
766
+ value: "d1",
767
+ label: "yyyy-MM-dd",
394
768
  },
395
769
  {
396
- value: 'd2',
397
- label: 'yyyy/MM/dd'
770
+ value: "d2",
771
+ label: "yyyy/MM/dd",
398
772
  },
399
773
  {
400
- value: 'd3',
401
- label: 'yyyy年MM月dd日'
774
+ value: "d3",
775
+ label: "yyyy年MM月dd日",
402
776
  },
403
777
  {
404
- value: 'd4',
405
- label: 'yyyy-MM-dd HH:mm:ss'
778
+ value: "d4",
779
+ label: "yyyy-MM-dd HH:mm:ss",
406
780
  },
407
781
  {
408
- value: 'd5',
409
- label: 'yyyy-MM-dd hh:mm:ss'
410
- }
411
- ]
782
+ value: "d5",
783
+ label: "yyyy-MM-dd hh:mm:ss",
784
+ },
785
+ ],
412
786
  },
413
787
  {
414
- label: 'Number Format',
788
+ label: "Number Format",
415
789
  options: [
416
790
  {
417
- value: 'n1',
418
- label: '###,###,###,##0.######'
791
+ value: "n1",
792
+ label: "###,###,###,##0.######",
419
793
  },
420
794
  {
421
- value: 'n2',
422
- label: '###,###,###,##0.00####'
795
+ value: "n2",
796
+ label: "###,###,###,##0.00####",
423
797
  },
424
798
  {
425
- value: 'n3',
426
- label: '###,###,###,##0.000000'
799
+ value: "n3",
800
+ label: "###,###,###,##0.000000",
427
801
  },
428
802
  {
429
- value: 'n4',
430
- label: '###,###,###,##0.000'
803
+ value: "n4",
804
+ label: "###,###,###,##0.000",
431
805
  },
432
806
  {
433
- value: 'n5',
434
- label: '###,###,###,##0.00'
807
+ value: "n5",
808
+ label: "###,###,###,##0.00",
435
809
  },
436
810
  {
437
- value: 'n6',
438
- label: '###,###,###,##0'
811
+ value: "n6",
812
+ label: "###,###,###,##0",
439
813
  },
440
814
  {
441
- value: 'n7',
442
- label: '###,##0.00##%'
443
- }
444
- ]
445
- }
815
+ value: "n7",
816
+ label: "###,##0.00##%",
817
+ },
818
+ ],
819
+ },
446
820
  ],
447
821
  editOp: [
448
822
  {
449
- value: 'editInput',
450
- label: '文本输入框'
823
+ value: "editInput",
824
+ label: "文本输入框",
451
825
  },
452
826
  {
453
- value: 'editNumber',
454
- label: '数字输入框'
827
+ value: "editNumber",
828
+ label: "数字输入框",
455
829
  },
456
830
  {
457
- value: 'editDate',
458
- label: '日期输入框'
831
+ value: "editDate",
832
+ label: "日期输入框",
459
833
  },
460
834
  {
461
- value: 'editSelect',
462
- label: '下拉框'
835
+ value: "editSelect",
836
+ label: "下拉框",
463
837
  },
464
838
  {
465
- value: 'editAttachment',
466
- label: '附件'
839
+ value: "editAttachment",
840
+ label: "附件",
467
841
  },
468
842
  {
469
- value: 'editSearch',
470
- label: '搜索框'
471
- }
843
+ value: "editSearch",
844
+ label: "搜索框",
845
+ },
472
846
  ],
473
847
  showRenderDialogFlag: !1,
474
- renderJson: '',
848
+ renderJson: "",
475
849
  currentTableColumn: null,
850
+ sourceData: null,
476
851
 
477
852
  hideAfter: 1500,
478
853
  openDelay: 500,
479
- tableData: [],//树形结构数据转的数组
854
+ tableData: [], //树形结构数据转的数组
480
855
  tableDataArray: [],
481
856
  dragSort: null,
482
- columnFormatMap: {
483
- editInput: 'input',
484
- editNumber: 'number',
485
- editDate: 'date',
486
- editSelect: 'select',
487
- editSearch: 'vabsearch',
488
- editAttachment: 'baseAttachment',
489
- editStatus: 'status',
490
- aText: 'a-text',
491
- aLink: 'a-link',
492
- editDelete: 'a-link',
493
- editButton: 'a-link',
494
- button: 'button',
495
- addSiblingEditRow: 'a-link',
496
- addChildTreeRow: 'a-link',
497
- moveUpRow: 'a-link',
498
- moveDownRow: 'a-link',
499
- removeTreeRow: 'a-link'
857
+ columnFormatMap,
858
+
859
+ showFormEventDialogFlag: false,
860
+ formEventHandlerCode: "",
861
+ curEventName: "",
862
+ curEventRow: null,
863
+
864
+ eventParamsMap: {
865
+ footerMethodConfg: "footerMethodConfg(dataId,formCode,param) {",
500
866
  },
501
- }
867
+
868
+ showColumnRenderDialog: false,
869
+
870
+ editRowData: null,
871
+ rowData: null,
872
+ rowDataIndex: 0,
873
+ showRowEditDialog: false,
874
+ };
502
875
  },
503
876
  beforeDestroy() {
504
- if (this.dragSort) this.dragSort.destroy()
505
- },
506
- created() {
507
-
877
+ if (this.dragSort) this.dragSort.destroy();
508
878
  },
879
+ created() {},
509
880
  mounted() {
510
881
  this.init();
511
882
  },
512
883
  methods: {
884
+ editFormEventHandler(row, index, eventName) {
885
+ this.curEventRow = row;
886
+ this.curEventName = eventName;
887
+ this.curEventIndex = index;
888
+ this.formEventHandlerCode = row[eventName];
889
+ this.showFormEventDialogFlag = true;
890
+ },
891
+
892
+ saveFormEventHandler() {
893
+ const codeHints = this.$refs.ecEditor.getEditorAnnotations();
894
+ let syntaxErrorFlag = false;
895
+ if (!!codeHints && codeHints.length > 0) {
896
+ codeHints.forEach((chItem) => {
897
+ if (chItem.type === "error") {
898
+ syntaxErrorFlag = true;
899
+ }
900
+ });
901
+
902
+ if (syntaxErrorFlag) {
903
+ this.$message.error(this.i18nt("designer.setting.syntaxCheckWarning"));
904
+ return;
905
+ }
906
+ }
907
+ this.curEventRow[this.curEventName] = this.formEventHandlerCode;
908
+ this.showFormEventDialogFlag = false;
909
+ },
513
910
  init() {
514
- this.tableData = this.$baseLodash.cloneDeep(this.optionModel.tableColumns);
515
- this.$nextTick(() => {
911
+ setTimeout(() => {
912
+ this.tableData = this.$baseLodash.cloneDeep(this.optionModel.tableColumns);
913
+ this.$nextTick(() => {
914
+ this.rowDrop();
915
+ setTimeout(() => {
916
+ this.pictLoading = false;
917
+ }, 200);
918
+ });
919
+ }, 10);
920
+
921
+ /*this.$nextTick(() => {
516
922
  this.rowDrop();
517
- });
923
+ });*/
518
924
  },
519
925
  colSubmit() {
520
926
  this.dialogVisible = !1;
521
927
  this.optionModel.tableColumns = this.tableData;
522
928
  this.closeHandle();
523
929
  },
930
+ openWidgetRenderDialog(row, sourceData) {
931
+ this.currentTableColumn = row;
932
+ this.sourceData = sourceData;
933
+
934
+ // this.widgetList =
935
+
936
+ // this.designer.widgetList
937
+
938
+ this.showColumnRenderDialog = true;
939
+ },
940
+ confirmWidgetRenderDialog(widgetList) {
941
+ this.currentTableColumn.widgetList = widgetList;
942
+ this.showColumnRenderDialog = false;
943
+ },
524
944
  showRenderDialog: function (e) {
525
- (this.currentTableColumn = e), (this.renderJson = e.render || ''), (this.showRenderDialogFlag = !0);
945
+ /*if(e.formatS == 'widgetRender'){
946
+ this.openWidgetRenderDialog(e);
947
+ return
948
+ }*/
949
+
950
+ (this.currentTableColumn = e),
951
+ (this.renderJson = e.render || ""),
952
+ (this.showRenderDialogFlag = !0);
526
953
  },
527
954
  saveColumnRender: function () {
528
- this.$set(this.currentTableColumn, 'render', this.renderJson), (this.showRenderDialogFlag = !1);
955
+ this.$set(this.currentTableColumn, "render", this.renderJson),
956
+ (this.showRenderDialogFlag = !1);
529
957
  },
530
958
  closeHandle() {
531
- this.$emit('update:visiable', false);
532
- this.$emit('close');
959
+ this.$emit("update:visiable", false);
960
+ this.$emit("close");
533
961
  },
534
962
  // 添加同级节点
535
963
  onAddSibling(row, index) {
536
- console.log('onAddSibling', row, index)
537
- const parentId = row.parentId || null
964
+ console.log("onAddSibling", row, index);
965
+ const parentId = row.parentId || null;
538
966
  // 先判断是不是根节点
539
967
  if (!parentId) {
540
968
  // 当前节点直接添加
541
969
  // this.tableData.push(this.generateRow(parentId))
542
- let addIndex = this.tableData.filter(item => !item.parentId).findIndex(item => item.columnId == row.columnId) + 1;
543
- this.tableData.splice(addIndex, 0, this.generateRow(parentId))
970
+ let addIndex =
971
+ this.tableData
972
+ .filter((item) => !item.parentId)
973
+ .findIndex((item) => item.columnId == row.columnId) + 1;
974
+ this.tableData.splice(addIndex, 0, this.generateRow(parentId));
544
975
  } else {
545
- this.handleAddOneRow(row, index, 'SIBLING')
976
+ this.handleAddOneRow(row, index, "SIBLING");
546
977
  }
547
978
  },
548
979
  // 添加子节点 todo
549
980
  onAddChild(row, index) {
550
- this.handleAddOneRow(row, index, 'CHILD')
981
+ this.handleAddOneRow(row, index, "CHILD");
551
982
  },
552
983
  /**
553
984
  * 处理添加一行数据
@@ -556,36 +987,35 @@ export default {
556
987
  * @param {string} type 操作类型 SIBLING 同级 / CHILD 子级
557
988
  */
558
989
  handleAddOneRow(row, index, type) {
559
-
560
- const {parentId, columnId} = row
561
- const curId = type === 'SIBLING' ? parentId : columnId
562
- let curRow = {}
990
+ const { parentId, columnId } = row;
991
+ const curId = type === "SIBLING" ? parentId : columnId;
992
+ let curRow = {};
563
993
  // 在 tableData 中,找到当前节点
564
994
  const findRow = (data) => {
565
995
  data.forEach((item) => {
566
996
  if (item.columnId === curId) {
567
- curRow = item
997
+ curRow = item;
568
998
  }
569
999
  if (item.children && item.children.length) {
570
- findRow(item.children)
1000
+ findRow(item.children);
571
1001
  }
572
- })
573
- }
1002
+ });
1003
+ };
574
1004
 
575
- findRow(this.tableData)
1005
+ findRow(this.tableData);
576
1006
 
577
- const {columnId: generateParentId, children} = curRow
1007
+ const { columnId: generateParentId, children } = curRow;
578
1008
 
579
- let newRow = this.generateRow(generateParentId)
1009
+ let newRow = this.generateRow(generateParentId);
580
1010
  if (children) {
581
- if (type === 'SIBLING') {
582
- let addIndex = children.findIndex(item => item.columnId == row.columnId) + 1;
583
- children.splice(addIndex, 0, newRow)
1011
+ if (type === "SIBLING") {
1012
+ let addIndex = children.findIndex((item) => item.columnId == row.columnId) + 1;
1013
+ children.splice(addIndex, 0, newRow);
584
1014
  } else {
585
- children.push(newRow)
1015
+ children.push(newRow);
586
1016
  }
587
1017
  } else {
588
- this.$set(curRow, 'children', [newRow])
1018
+ this.$set(curRow, "children", [newRow]);
589
1019
  }
590
1020
  },
591
1021
  getUuid() {
@@ -595,7 +1025,7 @@ export default {
595
1025
  * 生成一行数据
596
1026
  */
597
1027
  generateRow(parentId) {
598
- let tmpId = 'column' + generateId();
1028
+ let tmpId = "column" + generateId();
599
1029
  let uuid = this.getUuid();
600
1030
  var row = {
601
1031
  columnId: uuid,
@@ -605,46 +1035,50 @@ export default {
605
1035
  width: 150,
606
1036
  prop: tmpId,
607
1037
  label: tmpId,
608
- align: 'left',
1038
+ align: "left",
609
1039
  show: true,
610
1040
  sortable: true,
611
-
1041
+ filterable: true,
1042
+ exportType: null,
1043
+ footerDataType: null,
1044
+ footerMethodConfg: null,
1045
+ widgetList: [],
1046
+ labelColor: null,
612
1047
  // treeNode: false,
613
-
614
1048
  };
615
1049
  return row;
616
1050
  },
617
1051
  // 添加根节点
618
1052
  onAddRoot() {
619
- this.tableData.push(this.generateRow())
1053
+ this.tableData.push(this.generateRow());
620
1054
  },
621
1055
  // 删除当前节点及对应子节点数据
622
1056
  onDelete(row) {
623
- const {parentId, columnId} = row
1057
+ const { parentId, columnId } = row;
624
1058
  // 根节点直接删除
625
1059
  if (!parentId) {
626
- const delIndex = this.tableData.findIndex((item) => item.columnId === columnId)
627
- this.tableData.splice(delIndex, 1)
1060
+ const delIndex = this.tableData.findIndex((item) => item.columnId === columnId);
1061
+ this.tableData.splice(delIndex, 1);
628
1062
  } else {
629
1063
  // 找到父节点,通过父节点删除
630
- let parentRow = {}
1064
+ let parentRow = {};
631
1065
  const findRow = (data) => {
632
1066
  data.forEach((item) => {
633
1067
  if (item.columnId === parentId) {
634
- parentRow = {...item}
1068
+ parentRow = { ...item };
635
1069
  }
636
1070
  if (item.children && item.children.length) {
637
- findRow(item.children)
1071
+ findRow(item.children);
638
1072
  }
639
- })
640
- }
641
- findRow(this.tableData)
1073
+ });
1074
+ };
1075
+ findRow(this.tableData);
642
1076
 
643
- const {children} = parentRow
1077
+ const { children } = parentRow;
644
1078
 
645
- const delIndex = children.findIndex((item) => item.columnId === columnId)
1079
+ const delIndex = children.findIndex((item) => item.columnId === columnId);
646
1080
 
647
- children.splice(delIndex, 1)
1081
+ children.splice(delIndex, 1);
648
1082
  }
649
1083
  },
650
1084
  // 数据准备 生成 id 和 parentId
@@ -652,30 +1086,34 @@ export default {
652
1086
  const tableFormat = (tableData, parentId) => {
653
1087
  tableData.forEach((item) => {
654
1088
  // item.parentId = parentId || null
655
- if (!item.kid) item.kid = item.columnId
1089
+ if (!item.kid) item.kid = item.columnId;
656
1090
  if (item.children && item.children.length > 0) {
657
- tableFormat(item.children, item.columnId)
1091
+ tableFormat(item.children, item.columnId);
658
1092
  }
659
- })
660
- }
1093
+ });
1094
+ };
661
1095
 
662
- tableFormat(data)
663
- return data
1096
+ tableFormat(data);
1097
+ return data;
664
1098
  },
665
1099
  //drag begin
666
1100
  //行拖拽
667
1101
  rowDrop() {
668
- if (this.dragSort) this.dragSort.destroy() // 防止在Dom上重复绑定事件
1102
+ if (this.dragSort) this.dragSort.destroy(); // 防止在Dom上重复绑定事件
669
1103
  // const tbody = document.querySelector('.drag .el-table__body-wrapper tbody');
670
- var tbody = this.$refs.singleTable.$el.querySelectorAll('.el-table__fixed-body-wrapper > table > tbody')[0];
1104
+ var tbody = this.$refs.singleTable.$el.querySelectorAll(
1105
+ ".el-table__fixed-body-wrapper > table > tbody"
1106
+ )[0];
671
1107
  const _this = this;
672
1108
  this.dragSort = Sortable.create(tbody, {
673
- ghostClass: 'sortable-ghost',
1109
+ ghostClass: "sortable-ghost",
1110
+ // draggable: ".drag-option", // 修改可拖拽元素
1111
+ handle: ".drag-option", // 指定拖动按钮
674
1112
  setData: function (e) {
675
- e.setData('Text', '');
1113
+ e.setData("Text", "");
676
1114
  },
677
- onEnd({newIndex, oldIndex}) {
678
- _this.rowDropEnd(newIndex, oldIndex)
1115
+ onEnd({ newIndex, oldIndex }) {
1116
+ _this.rowDropEnd(newIndex, oldIndex);
679
1117
  },
680
1118
  });
681
1119
  },
@@ -686,7 +1124,7 @@ export default {
686
1124
  data.forEach((item) => {
687
1125
  const loop = (data) => {
688
1126
  result.push({
689
- ...data
1127
+ ...data,
690
1128
  });
691
1129
  let child = data.children;
692
1130
  if (child) {
@@ -740,13 +1178,7 @@ export default {
740
1178
  let newRow = this.tableDataArray[newIndex];
741
1179
 
742
1180
  //判断是否把该行 拖拽到 自己的底级中
743
- if (
744
- this.isTreeBottom(
745
- this.tableData,
746
- oldRow.columnId,
747
- newRow.columnId
748
- )
749
- ) {
1181
+ if (this.isTreeBottom(this.tableData, oldRow.columnId, newRow.columnId)) {
750
1182
  this.$message({
751
1183
  type: "error",
752
1184
  message: "不能放到子节点",
@@ -792,72 +1224,106 @@ export default {
792
1224
  let isButtontCell = false;
793
1225
  let widgetType = this.columnFormatMap[formatS];
794
1226
  if (widgetType) {
795
- isButtontCell = widgetType === 'a-link' || widgetType === 'button';
1227
+ isButtontCell = widgetType === "a-link" || widgetType === "button";
796
1228
  }
797
1229
  return isButtontCell;
798
1230
  },
799
1231
  //drag end
800
- changeFormatS(row) {
801
- let isButtontCell = this.getIsButtontCell(row.formatS);
802
- let columnWidgetConfig = this.getColumnWidgetConfig(row, true);
803
- let {columnSelectedWidget, columnEditFields} = columnWidgetConfig;
804
- if (columnSelectedWidget) {
805
- row.columnOption = columnSelectedWidget.options;
806
- } else {
807
- row.columnOption = {}
808
- }
809
-
810
- if (row.formatS == 'editTreeButtonGroup') {
811
- row.prop = null;
812
- row.label = null;
813
- row.sortable = false;
814
- row.width = 150;
815
- } else if (isButtontCell) {
816
- if (row.formatS == 'aLink' || row.formatS == 'button') {
817
- if (!row.width || row.width == 47) row.width = 150;
1232
+ changeFormatS(row, isEdit) {
1233
+ let formatS = isEdit ? row.editFormatS : row.formatS;
1234
+ let isButtontCell = this.getIsButtontCell(formatS);
1235
+ // let columnWidgetConfig = this.getColumnWidgetConfig(row, true, isEdit);
1236
+ // let { columnSelectedWidget, columnEditFields } = columnWidgetConfig;
1237
+ let attachmentPrefix = this.designer.getAttachmentPrefix();
1238
+ let columnSelectedWidget = this.designer.createColumnWidget(row, isEdit);
1239
+ if (!isEdit) {
1240
+ //格式化类型
1241
+ if (columnSelectedWidget) {
1242
+ row.columnOption = columnSelectedWidget.options;
1243
+ row.widget = columnSelectedWidget;
818
1244
  } else {
819
- row.width = 47;
1245
+ row.columnOption = {};
1246
+ row.widget = null;
820
1247
  }
821
- row.prop = null;
822
- row.label = null;
823
- row.sortable = false;
824
1248
  } else {
825
- let tmpId = 'column' + generateId();
826
- if (!row.width || row.width == 47) row.width = 150;
827
- if (!row.prop) row.prop = tmpId;
828
- if (!row.label) row.label = tmpId;
829
- row.sortable = true;
1249
+ if (row.prop && row.prop.startsWith(attachmentPrefix)) {
1250
+ let suffix = row.prop.replace(attachmentPrefix, "");
1251
+ columnSelectedWidget.options.keyName = row.prop;
1252
+ columnSelectedWidget.options.keyNameSuffix = suffix;
1253
+ }
1254
+ //编辑插槽类型
1255
+ if (columnSelectedWidget) {
1256
+ row.columnOption = columnSelectedWidget.options;
1257
+ row.editWidget = columnSelectedWidget;
1258
+ } else {
1259
+ row.editColumnOption = {};
1260
+ row.editWidget = null;
1261
+ }
1262
+ }
830
1263
 
831
- if (row.formatS == 'editAttachment') {
832
- row.prop = this.designer.createAttachmentKeyName();
1264
+ if (!isEdit) {
1265
+ if (row.formatS == "editTreeButtonGroup") {
1266
+ row.prop = null;
1267
+ row.label = null;
1268
+ row.sortable = false;
1269
+ row.width = 150;
1270
+ } else if (isButtontCell) {
1271
+ if (row.formatS == "aLink" || row.formatS == "button") {
1272
+ if (!row.width || row.width == 47) row.width = 150;
1273
+ } else {
1274
+ row.width = 47;
1275
+ }
1276
+ row.prop = null;
1277
+ row.label = null;
1278
+ row.sortable = false;
833
1279
  } else {
834
- let attachmentPrefix = this.designer.getAttachmentPrefix();
835
- row.prop = row.prop.replaceAll(attachmentPrefix, "");
1280
+ let tmpId = "column" + generateId();
1281
+ if (!row.width || row.width == 47) row.width = 150;
1282
+ if (!row.prop) row.prop = tmpId;
1283
+ if (!row.label) row.label = tmpId;
1284
+
1285
+ if (this.userFields.includes(row.formatS)) {
1286
+ let item = this.businessOptions.find((item) => item.value == row.formatS);
1287
+ if (item) {
1288
+ row.prop = item.value;
1289
+ row.label = item.label;
1290
+ }
1291
+ }
1292
+
1293
+ row.sortable = true;
1294
+
1295
+ if (!isEdit) {
1296
+ if (formatS == "editAttachment") {
1297
+ row.prop = columnSelectedWidget.options.keyName;
1298
+ } else {
1299
+ row.prop = row.prop.replaceAll(attachmentPrefix, "");
1300
+ }
1301
+ }
836
1302
  }
837
1303
  }
838
1304
  },
839
1305
  getColumnWidgetConfig(row, isChange, isEdit) {
840
- let formatS = isEdit ? row.editFormatS : row.formatS
1306
+ let formatS = isEdit ? row.editFormatS : row.formatS;
841
1307
  let columnSelectedWidget = null;
842
1308
  let columnEditFields = null;
843
1309
 
844
1310
  let type = this.columnFormatMap[formatS];
845
- /*if (type == 'date') {
846
- columnEditFields = ['type', 'format', 'valueFormat']
847
- } else if (type == 'select') {
848
-
849
- }
850
- if (type == 'vabsearch') {
851
- columnEditFields = ['vabSearchField', 'formCode', 'formVersion', 'required', 'showFormField', 'onSearchConfirm', 'onSearchClear']
852
- }*/
853
1311
 
854
1312
  if (type) {
855
1313
  // columnSelectedWidget = this.$baseLodash.cloneDeep(this.designer.getFieldWidgetByType(type));
856
- columnSelectedWidget = this.designer.copyNewFieldWidget(this.designer.getFieldWidgetByType(type));
1314
+ columnSelectedWidget = this.designer.copyNewFieldWidget(
1315
+ this.designer.getFieldWidgetByType(type)
1316
+ );
857
1317
  /*let tmpId = generateId();
858
1318
  let idVal = row.prop ? row.prop : (type + tmpId);*/
859
1319
  /*columnSelectedWidget.id = idVal;*/
860
1320
  // columnSelectedWidget.options.name = idVal;
1321
+ /*if (isEdit) {
1322
+ columnSelectedWidget.id = "edit_" + row.columnId;
1323
+ } else {
1324
+ columnSelectedWidget.id = row.columnId;
1325
+ }*/
1326
+ // columnSelectedWidget.id = row.columnId;
861
1327
  let columnOption;
862
1328
  if (!isEdit) {
863
1329
  columnOption = row.columnOption;
@@ -867,61 +1333,70 @@ export default {
867
1333
  if (!isChange && columnOption && Object.keys(columnOption).length) {
868
1334
  columnOption.required = row.required || false;
869
1335
  columnSelectedWidget.options = columnOption;
870
- if ('editDelete' == formatS) {
871
- columnSelectedWidget.options.hiddenByWf = columnSelectedWidget.options.hiddenByWf ?? true;
872
- columnSelectedWidget.options.prefixIcon = columnSelectedWidget.options.prefixIcon || "el-icon-delete";
873
- } else if ('editButton' == formatS) {
874
- columnSelectedWidget.options.prefixIcon = columnSelectedWidget.options.prefixIcon || "el-icon-edit";
1336
+ if ("editDelete" == formatS) {
1337
+ columnSelectedWidget.options.hiddenByWf =
1338
+ columnSelectedWidget.options.hiddenByWf ?? true;
1339
+ columnSelectedWidget.options.prefixIcon =
1340
+ columnSelectedWidget.options.prefixIcon || "el-icon-delete";
1341
+ } else if ("editButton" == formatS) {
1342
+ columnSelectedWidget.options.prefixIcon =
1343
+ columnSelectedWidget.options.prefixIcon || "el-icon-edit";
875
1344
  }
876
1345
  } else {
877
1346
  columnSelectedWidget.options.required = row.required || false;
878
1347
 
879
- if ('editDelete' == formatS) {
1348
+ if ("editDelete" == formatS) {
880
1349
  columnSelectedWidget.options.prefixIcon = "el-icon-delete";
881
1350
  columnSelectedWidget.options.label = "删除";
882
1351
  columnSelectedWidget.options.labelHidden = true;
883
1352
  columnSelectedWidget.options.hiddenByWf = true;
884
- columnSelectedWidget.options.onClick = "let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.deleteRow(tableParam.row,tableParam.rowIndex);";
885
- } else if ('editButton' == formatS) {
1353
+ columnSelectedWidget.options.onClick =
1354
+ "let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.deleteRow(tableParam.row,tableParam.rowIndex);";
1355
+ } else if ("editButton" == formatS) {
886
1356
  columnSelectedWidget.options.prefixIcon = "el-icon-edit";
887
1357
  columnSelectedWidget.options.label = "查看";
888
1358
  columnSelectedWidget.options.labelHidden = true;
889
- columnSelectedWidget.options.onClick = "let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.openEditDialog(tableParam.row)";
890
- } else if ('addSiblingEditRow' == formatS) {
1359
+ columnSelectedWidget.options.onClick =
1360
+ "let tableParam = this.tableParam;\nlet tableRef = this.getWidgetRef(this.parentWidget.options.name);\ntableRef.openEditDialog(tableParam.row)";
1361
+ } else if ("addSiblingEditRow" == formatS) {
891
1362
  columnSelectedWidget.options.prefixIcon = "el-icon-plus";
892
1363
  columnSelectedWidget.options.label = "新增兄弟节点";
893
1364
  columnSelectedWidget.options.labelHidden = false;
894
- columnSelectedWidget.options.onClick = "let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
895
- } else if ('addChildTreeRow' == formatS) {
1365
+ columnSelectedWidget.options.onClick =
1366
+ "let tableParam = this.tableParam;\nthis.getParentTarget().addSiblingTreeRow(null,tableParam);";
1367
+ } else if ("addChildTreeRow" == formatS) {
896
1368
  columnSelectedWidget.options.prefixIcon = "el-icon-plus";
897
1369
  columnSelectedWidget.options.label = "新增子节点";
898
1370
  columnSelectedWidget.options.labelHidden = false;
899
- columnSelectedWidget.options.onClick = "let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
900
- } else if ('moveUpRow' == formatS) {
1371
+ columnSelectedWidget.options.onClick =
1372
+ "let tableParam = this.tableParam;\nthis.getParentTarget().addChildTreeRow(null,tableParam);";
1373
+ } else if ("moveUpRow" == formatS) {
901
1374
  // columnSelectedWidget.options.prefixIcon = "el-icon-plus";
902
1375
  columnSelectedWidget.options.label = "↑上移";
903
1376
  columnSelectedWidget.options.labelHidden = false;
904
- columnSelectedWidget.options.onClick = "let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
905
- } else if ('moveDownRow' == formatS) {
1377
+ columnSelectedWidget.options.onClick =
1378
+ "let tableParam = this.tableParam;\nthis.getParentTarget().moveUpRow(tableParam);";
1379
+ } else if ("moveDownRow" == formatS) {
906
1380
  // columnSelectedWidget.options.prefixIcon = "el-icon-plus";
907
1381
  columnSelectedWidget.options.label = "↓下移";
908
1382
  columnSelectedWidget.options.labelHidden = false;
909
- columnSelectedWidget.options.onClick = "let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
910
- } else if ('removeTreeRow' == formatS) {
1383
+ columnSelectedWidget.options.onClick =
1384
+ "let tableParam = this.tableParam;\nthis.getParentTarget().moveDownRow(tableParam);";
1385
+ } else if ("removeTreeRow" == formatS) {
911
1386
  columnSelectedWidget.options.prefixIcon = "el-icon-delete";
912
1387
  columnSelectedWidget.options.label = "删除";
913
1388
  columnSelectedWidget.options.labelHidden = true;
914
- columnSelectedWidget.options.onClick = "let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
1389
+ columnSelectedWidget.options.onClick =
1390
+ "let tableParam = this.tableParam;\nthis.getParentTarget().removeTreeRow(tableParam);";
915
1391
  }
916
1392
 
917
1393
  columnOption = columnSelectedWidget.options;
918
-
919
1394
  }
920
1395
 
921
1396
  // columnSelectedWidget.options.name = isEdit? (type + row.columnId) : row.prop;
922
1397
  // columnSelectedWidget.options.name = type + row.columnId;
923
1398
  // columnSelectedWidget.options.name = row.prop;
924
- if (columnSelectedWidget.options.hasOwnProperty('keyName')) {
1399
+ if (columnSelectedWidget.options.hasOwnProperty("keyName")) {
925
1400
  columnSelectedWidget.options.keyName = row.prop;
926
1401
  columnSelectedWidget.options.keyNameEnabled = true;
927
1402
  } else {
@@ -933,10 +1408,69 @@ export default {
933
1408
  columnSelectedWidget.options.labelHidden = true;
934
1409
  }
935
1410
  }
936
- return {columnSelectedWidget, columnEditFields};
1411
+ return { columnSelectedWidget, columnEditFields };
1412
+ },
1413
+ findColumnByColumnId(columnList, columnId) {
1414
+ let result = null;
1415
+ if (columnList) {
1416
+ let column = columnList.find((item) => item.columnId == columnId);
1417
+ if (!column) {
1418
+ }
1419
+ for (let column of columnList) {
1420
+ if (column.columnId == columnId) {
1421
+ result = column;
1422
+ break;
1423
+ } else if (column.children && column.children.length) {
1424
+ let subColumn = this.findColumnByColumnId(column.children, children);
1425
+ if (subColumn) {
1426
+ result = subColumn;
1427
+ break;
1428
+ }
1429
+ }
1430
+ }
1431
+ }
1432
+ return result;
1433
+ },
1434
+
1435
+ getRowWidget(row) {
1436
+ let widget = row.widget;
1437
+ if (!widget) {
1438
+ widget.options.a = a;
1439
+ widget.options.a = a;
1440
+ }
1441
+ return widget;
937
1442
  },
938
1443
  openFormatConfigDialog(row, index) {
939
- let option = row.columnOption;
1444
+ if (row.formatS == "widgetRender") {
1445
+ let formWidgetList = deepClone(this.designer.widgetList);
1446
+ let tableData = deepClone(this.tableData);
1447
+ let columnId = row.columnId;
1448
+
1449
+ let dataTableName = this.optionModel.name;
1450
+
1451
+ let targetColumn = null;
1452
+ loopHandleWidget(formWidgetList, (item) => {
1453
+ if (item.options.name == dataTableName) {
1454
+ item.options.tableColumns = tableData;
1455
+ targetColumn = this.findColumnByColumnId(item.options.tableColumns, columnId);
1456
+ }
1457
+ });
1458
+ let getWidgetList = (subWidgetList = []) => {
1459
+ targetColumn.widgetList = this.$baseLodash.cloneDeep(subWidgetList);
1460
+ return formWidgetList;
1461
+ };
1462
+ let sourceData = {
1463
+ formWidgetList,
1464
+ dataTableName,
1465
+ columnId,
1466
+ getWidgetList,
1467
+ };
1468
+
1469
+ this.openWidgetRenderDialog(row, sourceData);
1470
+ return;
1471
+ }
1472
+
1473
+ /*let option = row.columnOption;
940
1474
  let selectedWidget;
941
1475
  let columnWidgetConfig = this.getColumnWidgetConfig(row);
942
1476
  let {columnSelectedWidget, columnEditFields} = columnWidgetConfig;
@@ -944,35 +1478,45 @@ export default {
944
1478
  option = columnSelectedWidget.options;
945
1479
  selectedWidget = columnSelectedWidget;
946
1480
  } else {
947
- option = {}
1481
+ option = {};
948
1482
  selectedWidget = {};
949
1483
  }
950
1484
 
951
1485
  let columnOption = this.$baseLodash.cloneDeep(option);
952
- row.columnOption = columnOption;
1486
+ row.columnOption = columnOption;*/
1487
+ let selectedWidget = row.widget;
953
1488
  this.operateIndex = index;
954
1489
 
1490
+ let tableColumns = this.tableData;
955
1491
  this.openWidgetPropertyDialog({
956
1492
  row: row,
957
1493
  columnSelectedWidget: selectedWidget,
1494
+ tableColumns,
958
1495
  index: index,
959
- columnEditFields: columnEditFields,
1496
+ // columnEditFields: columnEditFields,
960
1497
  callback: (columnOption) => {
961
- this.confirmFormatConfigDialog(columnOption);
962
- }
963
- })
1498
+ this.confirmFormatConfigDialog(columnOption, row);
1499
+ },
1500
+ });
964
1501
  },
965
1502
  getFieldKeyNameByOptions(options) {
966
1503
  let o = options.name;
967
- return (
968
- (options.keyNameEnabled
969
- && options.keyName)
970
- || o
971
- );
1504
+ return (options.keyNameEnabled && options.keyName) || o;
972
1505
  },
973
- confirmFormatConfigDialog(columnOption) {
974
- let row = this.tableData[this.operateIndex];
1506
+ confirmFormatConfigDialog(columnOption, row) {
1507
+ // let row = this.tableData[this.operateIndex];
975
1508
  row.columnOption = columnOption;
1509
+
1510
+ if (row.widget) {
1511
+ row.widget.options = columnOption;
1512
+ } else {
1513
+ let type = this.columnFormatMap[row.formatS];
1514
+ let fieldWidget = this.designer.createColumnWidget(row, false);
1515
+ fieldWidget.options = columnOption;
1516
+ row.widget = fieldWidget;
1517
+ this.$forceUpdate();
1518
+ }
1519
+
976
1520
  let isButtontCell = this.getIsButtontCell(row.formatS);
977
1521
  if (!isButtontCell) {
978
1522
  row.prop = this.getFieldKeyNameByOptions(columnOption);
@@ -981,74 +1525,137 @@ export default {
981
1525
  }
982
1526
  },
983
1527
  openEditFormatConfigDialog(row, index) {
984
- let option = row.columnOption;
985
- let selectedWidget;
986
- let columnWidgetConfig = this.getColumnWidgetConfig(row, null, true);
987
- let {columnSelectedWidget, columnEditFields} = columnWidgetConfig;
988
- if (columnSelectedWidget) {
989
- option = columnSelectedWidget.options;
990
- selectedWidget = columnSelectedWidget;
991
- } else {
992
- option = {}
993
- selectedWidget = {};
994
- }
995
-
996
- let columnOption = this.$baseLodash.cloneDeep(option);
997
- row.editColumnOption = columnOption;
1528
+ let selectedWidget = row.editWidget;
998
1529
  this.operateIndex = index;
999
1530
 
1531
+ let tableColumns = this.tableData;
1000
1532
  this.openWidgetPropertyDialog({
1001
1533
  row: row,
1534
+ tableColumns,
1002
1535
  columnSelectedWidget: selectedWidget,
1003
1536
  index: index,
1004
- columnEditFields: columnEditFields,
1537
+ // columnEditFields: columnEditFields,
1005
1538
  callback: (columnOption) => {
1006
- this.confirmEditFormatConfigDialog(columnOption);
1007
- }
1008
- })
1539
+ this.confirmEditFormatConfigDialog(columnOption, row);
1540
+ },
1541
+ });
1009
1542
  },
1010
- confirmEditFormatConfigDialog(columnOption) {
1011
- let row = this.tableData[this.operateIndex];
1543
+ confirmEditFormatConfigDialog(columnOption, row) {
1544
+ // let row = this.tableData[this.operateIndex];
1012
1545
  row.editColumnOption = columnOption;
1546
+ // row.editWidget.options = columnOption;
1547
+
1548
+ if (row.editWidget) {
1549
+ row.editWidget.options = columnOption;
1550
+ } else {
1551
+ let type = this.columnFormatMap[row.editFormatS];
1552
+ let fieldWidget = this.designer.createColumnWidget(row, true);
1553
+ fieldWidget.options = columnOption;
1554
+ row.editWidget = fieldWidget;
1555
+ this.$forceUpdate();
1556
+ }
1557
+
1013
1558
  /*row.prop = columnOption.name;
1014
1559
  row.label = columnOption.label;
1015
1560
  row.required = columnOption.required;*/
1016
1561
  },
1017
1562
  openTableColumnConfigDialog(row, index) {
1018
1563
  this.operateIndex = index;
1564
+ this.currentTableColumn = row;
1019
1565
  let eventName = "tableColumnConfig";
1020
- let eventParams = ["dataId", "formCode"]
1021
- this.tableColumnConfigHeader = `${this.optionModel.name}.${eventName}(${eventParams.join(', ')}) {`;
1022
- this.tableColumnConfigCode = this.$baseLodash.cloneDeep(row.tableColumnConfig || '');
1566
+ let eventParams = ["dataId", "formCode"];
1567
+ this.tableColumnConfigHeader = `${
1568
+ this.optionModel.name
1569
+ }.${eventName}(${eventParams.join(", ")}) {`;
1570
+ this.tableColumnConfigCode = this.$baseLodash.cloneDeep(
1571
+ row.tableColumnConfig || ""
1572
+ );
1023
1573
 
1024
1574
  this.tableColumnConfigTitle = `自定义表格列属性配置(${row.label})`;
1025
1575
  this.showTableColumnConfigDialog = true;
1026
1576
  },
1027
1577
  saveTableColumnConfigDialog() {
1028
- let row = this.tableData[this.operateIndex];
1578
+ // let row = this.tableData[this.operateIndex];
1579
+ let row = this.currentTableColumn;
1029
1580
  const codeHints = this.$refs.ecEditor.getEditorAnnotations();
1030
1581
  let syntaxErrorFlag = false;
1031
1582
  if (!!codeHints && codeHints.length > 0) {
1032
- codeHints.forEach(chItem => {
1033
- if (chItem.type === 'error') {
1583
+ codeHints.forEach((chItem) => {
1584
+ if (chItem.type === "error") {
1034
1585
  syntaxErrorFlag = true;
1035
1586
  }
1036
1587
  });
1037
1588
 
1038
1589
  if (syntaxErrorFlag) {
1039
- this.$message.error(this.i18nt('designer.setting.syntaxCheckWarning'));
1590
+ this.$message.error(this.i18nt("designer.setting.syntaxCheckWarning"));
1040
1591
  return;
1041
1592
  }
1042
1593
  }
1043
- this.$set(row, 'tableColumnConfig', this.$baseLodash.cloneDeep(this.tableColumnConfigCode))
1594
+ this.$set(
1595
+ row,
1596
+ "tableColumnConfig",
1597
+ this.$baseLodash.cloneDeep(this.tableColumnConfigCode)
1598
+ );
1044
1599
  this.showTableColumnConfigDialog = false;
1600
+ },
1601
+ changeRowLabel(row) {
1602
+ this.setRowWidgetAttars(row, "label", row.label);
1603
+ },
1604
+ changeRowProp(row) {
1605
+ this.setRowWidgetAttars(row, "keyName", row.prop);
1606
+ },
1607
+ changeRowRequired(row) {
1608
+ this.setRowWidgetAttars(row, "required", row.required);
1609
+ },
1610
+ setRowWidgetAttars(row, key, value) {
1611
+ let type1 = this.columnFormatMap[row.formatS];
1612
+ let type2 = this.columnFormatMap[row.editFormatS];
1613
+ let newWidget = type1
1614
+ ? this.designer.copyNewFieldWidget(this.designer.getFieldWidgetByType(type1))
1615
+ : null;
1616
+
1617
+ let newEditWidget = type2
1618
+ ? this.designer.copyNewFieldWidget(this.designer.getFieldWidgetByType(type2))
1619
+ : null;
1045
1620
 
1621
+ if (newWidget.formItemFlag) {
1622
+ if (row.widget) {
1623
+ if (row.widget.options[key] !== undefined) row.widget.options[key] = value;
1624
+ }
1625
+ if (row.columnOption) {
1626
+ if (row.columnOption[key] !== undefined) row.columnOption[key] = value;
1627
+ }
1628
+ }
1629
+
1630
+ if (newWidget.formItemFlag) {
1631
+ if (row.editWidget) {
1632
+ if (row.editWidget.options[key] !== undefined)
1633
+ row.editWidget.options[key] = value;
1634
+ }
1635
+ if (row.editColumnOption) {
1636
+ if (row.editColumnOption[key] !== undefined) row.editColumnOption[key] = value;
1637
+ }
1638
+ }
1046
1639
  },
1047
- }
1048
- }
1640
+ openRowEditDialog(row, index) {
1641
+ this.editRowData = row;
1642
+ this.rowData = this.$baseLodash.cloneDeep(row);
1643
+ this.rowDataIndex = index;
1644
+ this.showRowEditDialog = true;
1645
+ },
1646
+ submitRowEditDialog() {
1647
+ Object.assign(this.editRowData, this.$baseLodash.cloneDeep(this.rowData));
1648
+ // this.editRowData = this.$baseLodash.cloneDeep(this.rowData);
1649
+ this.showRowEditDialog = false;
1650
+ },
1651
+ closeRowEditDialog() {
1652
+ this.showRowEditDialog = false;
1653
+ },
1654
+ },
1655
+ };
1049
1656
  </script>
1050
1657
  <style scoped lang="scss">
1051
1658
  .icon-drag:before {
1052
- content: '\e61d';
1659
+ content: "\e61d";
1053
1660
  }
1054
1661
  </style>