cloud-web-corejs 1.0.54-dev.63 → 1.0.54-dev.630

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