cloud-web-corejs 1.0.54-dev.81 → 1.0.54-dev.811

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 (817) hide show
  1. package/package.json +203 -183
  2. package/src/App.vue +73 -75
  3. package/src/api/user.js +85 -40
  4. package/src/components/Qrcode/fileParse.vue +0 -1
  5. package/src/components/Tinymce/index.vue +112 -71
  6. package/src/components/VabUpload/fileLibraryDialog.vue +296 -0
  7. package/src/components/VabUpload/image-viewer.vue +442 -442
  8. package/src/components/VabUpload/index.js +69 -1
  9. package/src/components/VabUpload/index.vue +284 -231
  10. package/src/components/VabUpload/mixins/fileLibraryDialog.js +1112 -0
  11. package/src/components/VabUpload/mixins.js +2111 -9
  12. package/src/components/VabUpload/previewGroup.js +128 -0
  13. package/src/components/VabUpload/privateProfileDialog.vue +2 -2
  14. package/src/components/VabUpload/propertiesDialog.vue +1 -1
  15. package/src/components/VabUpload/view.vue +186 -59
  16. package/src/components/advancedSearchDialog/mixins.js +28 -1
  17. package/src/components/base-textarea/index.vue +104 -0
  18. package/src/components/baseAlert/index.js +44 -1
  19. package/src/components/baseAlert/index.vue +24 -20
  20. package/src/components/baseAlert/mixins.js +61 -1
  21. package/src/components/baseArea/index.vue +1683 -0
  22. package/src/components/baseAttachment/index.vue +49 -40
  23. package/src/components/baseAttachment/install.js +21 -5
  24. package/src/components/baseAttachment/mixins.js +310 -1
  25. package/src/components/baseInputBatch/mixins.js +58 -1
  26. package/src/components/baseInputExport/index.vue +21 -14
  27. package/src/components/baseInputExport/mixins.js +415 -8
  28. package/src/components/baseInputNumber/index.vue +9 -9
  29. package/src/components/baseTabs/index.vue +16 -8
  30. package/src/components/baseTabs/mixins.js +181 -6
  31. package/src/components/bizTab/BizBillActions.vue +129 -0
  32. package/src/components/bizTab/BizTabListPage.vue +391 -0
  33. package/src/components/bizTab/README.md +378 -0
  34. package/src/components/bizTab/billTableUtil.js +48 -0
  35. package/src/components/bizTab/billValidators.js +136 -0
  36. package/src/components/bizTab/bizBillDetailMixin.js +705 -0
  37. package/src/components/bizTab/index.js +24 -0
  38. package/src/components/cnPrint/index.js +44 -1
  39. package/src/components/cnPrint/mixins.js +189 -1
  40. package/src/components/code-editor/async.js +29 -0
  41. package/src/components/code-editor/index.vue +190 -62
  42. package/src/components/confirmDialog/index.js +41 -1
  43. package/src/components/confirmDialog/index.vue +24 -17
  44. package/src/components/confirmDialog/mixins.js +31 -1
  45. package/src/components/errorMsg/index.js +47 -3
  46. package/src/components/errorMsg/index.vue +78 -70
  47. package/src/components/errorMsg/mixins.js +103 -5
  48. package/src/components/excelExport/button.vue +86 -24
  49. package/src/components/excelExport/exportFieldDialog.vue +386 -211
  50. package/src/components/excelExport/exportItemConfigUtil.js +30 -0
  51. package/src/components/excelExport/exportType.js +49 -0
  52. package/src/components/excelExport/index.js +65 -6
  53. package/src/components/excelExport/index.vue +109 -26
  54. package/src/components/excelExport/mixins.js +1153 -17
  55. package/src/components/excelImport/index.js +75 -13
  56. package/src/components/excelImport/mixins.js +841 -8
  57. package/src/components/fileLibrary/categoryMoveDialog.vue +109 -109
  58. package/src/components/fileLibrary/fileHistoryDialog.vue +1 -1
  59. package/src/components/fileLibrary/fileObjAuthDialog.vue +297 -208
  60. package/src/components/fileLibrary/fileObjAuthEdit.vue +1 -1
  61. package/src/components/fileLibrary/fileObjAuthEditDialog.vue +6 -0
  62. package/src/components/fileLibrary/filterDialog.vue +454 -0
  63. package/src/components/fileLibrary/index.vue +1109 -687
  64. package/src/components/fileLibrary/mixins/categoryMoveDialogMixins.js +1 -1
  65. package/src/components/fileLibrary/mixins/fileCategoryDialogMixins.js +1 -1
  66. package/src/components/fileLibrary/mixins/fileHistoryDialogMixins.js +2 -2
  67. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +339 -211
  68. package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +31 -27
  69. package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +4 -4
  70. package/src/components/fileLibrary/mixins/indexMixins.js +230 -101
  71. package/src/components/fileLibrary/mixins/propertiesDialogMixins.js +62 -3
  72. package/src/components/fileLibrary/mixins/recycleBinDialogMixins.js +3 -3
  73. package/src/components/fileLibrary/propertiesDialog.vue +190 -145
  74. package/src/components/fileLibrary/recycleBinDialog.vue +237 -236
  75. package/src/components/fileLibrary/shareDialog.vue +1 -1
  76. package/src/components/formDialog/README.md +371 -0
  77. package/src/components/formDialog/actionButtons.js +90 -0
  78. package/src/components/formDialog/index.js +48 -0
  79. package/src/components/formDialog/index.vue +802 -0
  80. package/src/components/formDrawer/drawer.vue +722 -0
  81. package/src/components/formDrawer/index.js +50 -0
  82. package/src/components/formOplog/mixins.js +85 -4
  83. package/src/components/hiprint/css/bootstrap.min.css +6 -0
  84. package/src/components/hiprint/fonts/glyphicons-halflings-regular.eot +0 -0
  85. package/src/components/hiprint/fonts/glyphicons-halflings-regular.svg +288 -0
  86. package/src/components/hiprint/fonts/glyphicons-halflings-regular.ttf +0 -0
  87. package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff +0 -0
  88. package/src/components/hiprint/fonts/glyphicons-halflings-regular.woff2 +0 -0
  89. package/src/components/hiprint/hiprint.bundle.js +15 -3
  90. package/src/components/hiprint/view/design/index.vue +146 -48
  91. package/src/components/hiprint/view/design/mixins.js +611 -1
  92. package/src/components/hiprint/view/design/preview.vue +75 -52
  93. package/src/components/hiprint/view/json-view.vue +31 -31
  94. package/src/components/jdPrint/index.js +44 -1
  95. package/src/components/jdPrint/mixins.js +208 -1
  96. package/src/components/jsonImport/exportUtil.js +106 -0
  97. package/src/components/jsonImport/index.js +212 -17
  98. package/src/components/jsonImport/mixins.js +350 -16
  99. package/src/components/langImport/index.js +80 -1
  100. package/src/components/langImport/mixins.js +487 -1
  101. package/src/components/langTag/mixins/addButton.js +51 -5
  102. package/src/components/langTag/mixins/deleteButton.js +55 -5
  103. package/src/components/langTag/mixins/view.js +47 -5
  104. package/src/components/luckysheet/dialog.vue +159 -0
  105. package/src/components/luckysheet/export.js +595 -0
  106. package/src/components/luckysheet/fileUtils.js +147 -0
  107. package/src/components/luckysheet/index.js +72 -0
  108. package/src/components/luckysheet/templateJson.js +12078 -0
  109. package/src/components/luckysheet/view.vue +210 -0
  110. package/src/components/micro-view-host/contract.js +66 -0
  111. package/src/components/micro-view-host/index.vue +148 -0
  112. package/src/components/mobile/file/index.vue +10 -0
  113. package/src/components/mobile/wf/content.vue +1665 -1556
  114. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +51 -47
  115. package/src/components/obsUpload/index.js +34 -0
  116. package/src/components/obsUpload/index.vue +234 -0
  117. package/src/components/obsUpload/mixins.js +1542 -0
  118. package/src/components/onlineTalk/index.vue +1 -1
  119. package/src/components/onlineTalk/mixins.js +852 -1
  120. package/src/components/onlineTalk/talkUserDialog.vue +280 -0
  121. package/src/components/oplogTable/mixins.js +83 -4
  122. package/src/components/pddPrint/index.js +44 -1
  123. package/src/components/pddPrint/mixins.js +252 -1
  124. package/src/components/projectTag/mixins/addButton.js +52 -1
  125. package/src/components/projectTag/mixins/deleteButton.js +52 -1
  126. package/src/components/projectTag/mixins/view.js +43 -1
  127. package/src/components/scriptDescription/button.vue +12 -4
  128. package/src/components/scriptDescription/mixins.js +30 -1
  129. package/src/components/scriptTest/mixins.js +90 -1
  130. package/src/components/statusTag/mixins.js +66 -1
  131. package/src/components/table/CellSlot.vue +12 -9
  132. package/src/components/table/config.js +78 -3
  133. package/src/components/table/index.js +1268 -3
  134. package/src/components/table/plugins/cell-area/index.js +1055 -0
  135. package/src/components/table/plugins/cell-area/index.scss +77 -0
  136. package/src/components/table/plugins/cell-area/util.js +224 -0
  137. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.es6.min.js +11028 -0
  138. package/src/components/table/plugins/extend-cell-area/vxe-table-extend-cell-area.min.css +200 -0
  139. package/src/components/table/state.js +42 -0
  140. package/src/components/table/tableForm.vue +330 -281
  141. package/src/components/table/tableFormMixin.js +318 -6
  142. package/src/components/table/util/index.js +337 -0
  143. package/src/components/table/vxeFilter/index.js +163 -9
  144. package/src/components/table/vxeFilter/mixin.js +311 -1
  145. package/src/components/tempStorage/index.vue +76 -55
  146. package/src/components/tempStorage/tempStorageDialog.vue +179 -54
  147. package/src/components/vb-tabs/x-tabs.vue +167 -112
  148. package/src/components/vipPrint/index.js +44 -1
  149. package/src/components/vipPrint/mixins.js +268 -1
  150. package/src/components/wf/addOpinionButton.vue +57 -0
  151. package/src/components/wf/addTaskUserdialog.vue +1 -1
  152. package/src/components/wf/content.vue +1188 -702
  153. package/src/components/wf/content2.vue +4 -2
  154. package/src/components/wf/mixins/addOpinionButton.js +53 -0
  155. package/src/components/wf/mixins/setCandidateButton.js +161 -0
  156. package/src/components/wf/mixins/setCandidateDialog.js +217 -5
  157. package/src/components/wf/mixins/setCandidateDialog2.js +252 -0
  158. package/src/components/wf/mixins/wfFlowEleScriptDialog.js +131 -0
  159. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +69 -0
  160. package/src/components/wf/setCandidateButton.vue +40 -0
  161. package/src/components/wf/setCandidateDialog.vue +10 -0
  162. package/src/components/wf/setCandidateDialog2.vue +105 -0
  163. package/src/components/wf/wf.js +2310 -30
  164. package/src/components/wf/wfActionDropdown.vue +85 -0
  165. package/src/components/wf/wfActionItems.js +136 -0
  166. package/src/components/wf/wfAutoConfirm.js +55 -0
  167. package/src/components/wf/wfButtonName.js +60 -0
  168. package/src/components/wf/wfFlowEleScriptDialog.vue +89 -0
  169. package/src/components/wf/wfStartDialog.vue +66 -42
  170. package/src/components/wf/wfTaskUserRangeDialog.vue +65 -0
  171. package/src/components/wf/wfUserRange.js +53 -0
  172. package/src/components/wf/wfUtil.js +373 -13
  173. package/src/components/xform/XFormTabContainer//346/226/260/345/242/236/351/241/265/347/255/276/346/250/241/345/274/217-/346/234/200/347/273/210/345/256/236/347/216/260.md +195 -0
  174. package/src/components/xform/docs/2026-07 table/344/270/216excelExport/344/277/256/345/244/215/345/217/212/345/257/274/345/207/272/344/274/230/345/214/226.md" +57 -0
  175. package/src/components/xform/docs/2026-07 /346/216/222/346/237/245/344/277/256/345/244/215/350/256/260/345/275/225.md" +73 -0
  176. package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +528 -0
  177. package/src/components/xform/docs/2026-08 xform H5 P1 /345/256/236/347/216/260/350/247/204/346/240/274.md" +412 -0
  178. package/src/components/xform/docs/2026-08 xform H5 P2 /345/256/236/347/216/260/350/247/204/346/240/274.md" +287 -0
  179. package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +400 -0
  180. package/src/components/xform/docs/2026-08 /345/210/227/350/241/250/345/257/274/345/207/272/350/204/261/346/225/217/345/210/227/345/211/224/351/231/244/350/220/275/345/234/260/346/226/207/346/241/243.md" +173 -0
  181. package/src/components/xform/docs/autocomplete /350/207/252/345/212/250/345/256/214/346/210/220/347/273/204/344/273/266/350/257/264/346/230/216.md" +126 -0
  182. package/src/components/xform/docs//345/220/216/345/217/260/345/255/227/346/256/265/357/274/210/345/212/250/346/200/201/347/224/237/346/210/220/357/274/211JSON /350/257/264/346/230/216.md" +1286 -0
  183. package/src/components/xform/docs//345/257/271/346/257/224/345/212/237/350/203/275/350/220/275/345/234/260/346/226/271/346/241/210.md +986 -0
  184. package/src/components/xform/docs//346/225/260/346/215/256/350/241/250/346/240/274/345/212/250/346/200/201/345/210/227 JSON /350/257/264/346/230/216.md" +657 -0
  185. package/src/components/xform/docs//346/240/221/350/241/250rowField/346/224/266/346/225/233-/350/220/275/345/234/260/346/226/207/346/241/243.md +1427 -0
  186. package/src/components/xform/form-designer/designer.js +2100 -29
  187. package/src/components/xform/form-designer/form-widget/components/gantt/index.vue +434 -0
  188. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +108 -1
  189. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +291 -8
  190. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +269 -250
  191. package/src/components/xform/form-designer/form-widget/container-widget/detail-pane-widget.vue +3 -2
  192. package/src/components/xform/form-designer/form-widget/container-widget/detail-plain-widget.vue +76 -0
  193. package/src/components/xform/form-designer/form-widget/container-widget/detail-temp-widget.vue +132 -0
  194. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +250 -196
  195. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog copy.vue +971 -0
  196. package/src/components/xform/form-designer/form-widget/dialog/baseFormulaDialog.vue +971 -0
  197. package/src/components/xform/form-designer/form-widget/dialog/exportDialog.vue +13 -0
  198. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +319 -0
  199. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +365 -204
  200. package/src/components/xform/form-designer/form-widget/dialog/formFieldDialog.vue +1 -1
  201. package/src/components/xform/form-designer/form-widget/dialog/formulaDialog.vue +799 -0
  202. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +30 -8
  203. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1774 -19
  204. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +554 -409
  205. package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +409 -408
  206. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +150 -119
  207. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  208. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +272 -0
  209. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +119 -0
  210. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +287 -184
  211. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +76 -66
  212. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +209 -90
  213. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +41 -35
  214. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +18 -7
  215. package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +4 -1
  216. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +104 -0
  217. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +114 -102
  218. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +154 -100
  219. package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +133 -0
  220. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +86 -0
  221. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +170 -0
  222. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1977 -16
  223. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +636 -108
  224. package/src/components/xform/form-designer/form-widget/field-widget/gantt-widget.vue +964 -0
  225. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +6 -2
  226. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +22 -11
  227. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +90 -0
  228. package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +7 -2
  229. package/src/components/xform/form-designer/form-widget/field-widget/mixins/autocomplete-mixin.js +451 -0
  230. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +178 -0
  231. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +3 -9
  232. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +3 -9
  233. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +3 -9
  234. package/src/components/xform/form-designer/form-widget/field-widget/mixins/relative-default-mixin.js +107 -0
  235. package/src/components/xform/form-designer/form-widget/field-widget/mixins/relativeDateUtil.js +321 -0
  236. package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -0
  237. package/src/components/xform/form-designer/form-widget/field-widget/mixins/utc-transform-mixin.js +75 -0
  238. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +192 -0
  239. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  240. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +119 -81
  241. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +186 -0
  242. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +55 -28
  243. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +119 -0
  244. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +156 -54
  245. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +26 -6
  246. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +115 -0
  247. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +149 -0
  248. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +2 -2
  249. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +86 -0
  250. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +126 -0
  251. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +139 -124
  252. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  253. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -0
  254. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +16 -1
  255. package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +8 -3
  256. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +93 -49
  257. package/src/components/xform/form-designer/form-widget/field-widget/switch-widget.vue +9 -1
  258. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +38 -38
  259. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +147 -0
  260. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +111 -34
  261. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +106 -104
  262. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +134 -103
  263. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +3 -171
  264. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +339 -251
  265. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +753 -0
  266. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +231 -0
  267. package/src/components/xform/form-designer/form-widget/index.vue +6 -1
  268. package/src/components/xform/form-designer/form-widget/indexMixin.js +184 -2
  269. package/src/components/xform/form-designer/index.vue +194 -191
  270. package/src/components/xform/form-designer/indexMixin.js +860 -24
  271. package/src/components/xform/form-designer/refMixinDesign.js +27 -28
  272. package/src/components/xform/form-designer/setting-panel/action-button-config-dialog.vue +241 -0
  273. package/src/components/xform/form-designer/setting-panel/dataSource-setting.vue +397 -397
  274. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +602 -0
  275. package/src/components/xform/form-designer/setting-panel/form-setting.vue +1794 -629
  276. package/src/components/xform/form-designer/setting-panel/index.vue +309 -305
  277. package/src/components/xform/form-designer/setting-panel/indexMixin.js +370 -12
  278. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +519 -236
  279. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +5 -5
  280. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +4 -4
  281. package/src/components/xform/form-designer/setting-panel/property-editor/alignType-editor.vue +1 -1
  282. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +38 -0
  283. package/src/components/xform/form-designer/setting-panel/property-editor/buttonIcon-editor.vue +14 -15
  284. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +7 -1
  285. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +28 -0
  286. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +41 -0
  287. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +124 -0
  288. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +729 -626
  289. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/edit-tree-button-group-config-dialog.vue +281 -0
  290. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +438 -0
  291. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/onCheckboxChange-editor.vue +1 -1
  292. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +2103 -1059
  293. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +96 -74
  294. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +90 -0
  295. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-pane/detail-pane-editor.vue +3 -3
  296. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-plain/detail-plain-editor.vue +75 -0
  297. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/colHeight-editor.vue +1 -1
  298. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +82 -81
  299. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-height-editor.vue +1 -1
  300. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +2 -2
  301. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +2 -2
  302. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +2 -2
  303. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue +4 -4
  304. package/src/components/xform/form-designer/setting-panel/property-editor/container-h5-card/h5-card-editor.vue +124 -124
  305. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +34 -46
  306. package/src/components/xform/form-designer/setting-panel/property-editor/container-panel/height-editor.vue +1 -1
  307. package/src/components/xform/form-designer/setting-panel/property-editor/container-panel/width-editor.vue +1 -1
  308. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue +119 -119
  309. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tabClass-editor.vue +45 -45
  310. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +342 -0
  311. package/src/components/xform/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue +1 -1
  312. package/src/components/xform/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue +1 -1
  313. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree/tree-customClass-editor.vue +32 -3
  314. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree-pane/tree-pane-editor.vue +1 -1
  315. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonLabel-editor.vue +1 -1
  316. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/okButtonLabel-editor.vue +1 -1
  317. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/title-editor.vue +1 -1
  318. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue +1 -1
  319. package/src/components/xform/form-designer/setting-panel/property-editor/containerClass-editor.vue +1 -1
  320. package/src/components/xform/form-designer/setting-panel/property-editor/copyButton-editor.vue +36 -0
  321. package/src/components/xform/form-designer/setting-panel/property-editor/customClass-editor.vue +1 -1
  322. package/src/components/xform/form-designer/setting-panel/property-editor/defaultValue-editor.vue +1 -1
  323. package/src/components/xform/form-designer/setting-panel/property-editor/descriptionsItems-editor.vue +4 -4
  324. package/src/components/xform/form-designer/setting-panel/property-editor/downloadButtonFlag-editor.vue +32 -0
  325. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +137 -0
  326. package/src/components/xform/form-designer/setting-panel/property-editor/dsName-editor.vue +1 -1
  327. package/src/components/xform/form-designer/setting-panel/property-editor/echartHeight-editor.vue +1 -1
  328. package/src/components/xform/form-designer/setting-panel/property-editor/endPlaceholder-editor.vue +1 -1
  329. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/afterColumnsCreated-editor.vue +30 -0
  330. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin.js +2 -2
  331. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +23 -8
  332. package/src/components/xform/form-designer/setting-panel/property-editor/field-accessUrl/accessUrl-editor.vue +2 -2
  333. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +25 -0
  334. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaMinLevel-editor.vue +50 -0
  335. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +20 -0
  336. package/src/components/xform/form-designer/setting-panel/property-editor/field-autocomplete/autocomplete-vabSearchName-editor.vue +199 -0
  337. package/src/components/xform/form-designer/setting-panel/property-editor/field-baseAttachment/baseAttachment-fileTypes-editor.vue +23 -0
  338. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/addTableData-event-editor.vue +84 -85
  339. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/button-type-editor.vue +1 -1
  340. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindActions.js +262 -0
  341. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +97 -73
  342. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/form-host-event-editor.vue +188 -0
  343. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/icon-editor.vue +14 -15
  344. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -161
  345. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/cascader-multiple-editor.vue +8 -3
  346. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue +11 -13
  347. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +21 -0
  348. package/src/components/xform/form-designer/setting-panel/property-editor/field-common/keyName-editor.vue +74 -67
  349. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +179 -0
  350. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +43 -26
  351. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-format-editor.vue +1 -1
  352. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-type-editor.vue +1 -1
  353. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-valueFormat-editor.vue +1 -1
  354. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +1 -1
  355. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +43 -26
  356. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-format-editor.vue +1 -1
  357. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-type-editor.vue +1 -1
  358. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue +1 -1
  359. package/src/components/xform/form-designer/setting-panel/property-editor/field-divider/contentPosition-editor.vue +1 -1
  360. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  361. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  362. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +11 -11
  363. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +10 -10
  364. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-pie-editor.vue +12 -12
  365. package/src/components/xform/form-designer/setting-panel/property-editor/field-file-upload/file-upload-fileTypes-editor.vue +44 -44
  366. package/src/components/xform/form-designer/setting-panel/property-editor/field-gantt/gantt-editor.vue +36 -0
  367. package/src/components/xform/form-designer/setting-panel/property-editor/field-html-text/htmlContent-editor.vue +29 -29
  368. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +78 -24
  369. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -0
  370. package/src/components/xform/form-designer/setting-panel/property-editor/field-number/controlsPosition-editor.vue +1 -1
  371. package/src/components/xform/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue +44 -44
  372. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +115 -86
  373. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +115 -0
  374. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/highThreshold-editor.vue +1 -1
  375. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/lowThreshold-editor.vue +1 -1
  376. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +2 -2
  377. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-max-editor.vue +1 -1
  378. package/src/components/xform/form-designer/setting-panel/property-editor/field-script/script-editor.vue +4 -4
  379. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +55 -0
  380. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/fontSize-editor.vue +1 -1
  381. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/preWrap-editor.vue +23 -0
  382. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +2 -2
  383. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +67 -41
  384. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/activeText-editor.vue +1 -1
  385. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/inactiveText-editor.vue +1 -1
  386. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/switchWidth-editor.vue +1 -1
  387. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-button-editor.vue +56 -0
  388. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +125 -0
  389. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +3 -3
  390. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +42 -26
  391. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-format-editor.vue +1 -1
  392. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-timeLimit-editor.vue +53 -0
  393. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +43 -26
  394. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-format-editor.vue +1 -1
  395. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchField-editor.vue +2 -2
  396. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +15 -3
  397. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +33 -1
  398. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/vabUpload-fileTypes-editor.vue +23 -0
  399. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload2/field-vabUpload2-editor.vue +66 -0
  400. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +48 -0
  401. package/src/components/xform/form-designer/setting-panel/property-editor/fileMaxSize-editor.vue +1 -1
  402. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesEditorMixin.js +116 -0
  403. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesSelect.vue +176 -0
  404. package/src/components/xform/form-designer/setting-panel/property-editor/fixedQuery-editor.vue +39 -0
  405. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +158 -52
  406. package/src/components/xform/form-designer/setting-panel/property-editor/formatType-editor.vue +137 -0
  407. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +972 -717
  408. package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
  409. package/src/components/xform/form-designer/setting-panel/property-editor/iconClass-editor.vue +1 -1
  410. package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
  411. package/src/components/xform/form-designer/setting-panel/property-editor/label-editor.vue +1 -1
  412. package/src/components/xform/form-designer/setting-panel/property-editor/labelAlign-editor.vue +1 -1
  413. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +21 -12
  414. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +17 -16
  415. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +26 -26
  416. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +67 -13
  417. package/src/components/xform/form-designer/setting-panel/property-editor/labelWidth-editor.vue +1 -1
  418. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +2 -2
  419. package/src/components/xform/form-designer/setting-panel/property-editor/max-editor.vue +1 -1
  420. package/src/components/xform/form-designer/setting-panel/property-editor/maxLength-editor.vue +1 -1
  421. package/src/components/xform/form-designer/setting-panel/property-editor/min-editor.vue +1 -1
  422. package/src/components/xform/form-designer/setting-panel/property-editor/minLength-editor.vue +1 -1
  423. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  424. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +2 -2
  425. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +188 -101
  426. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +31 -0
  427. package/src/components/xform/form-designer/setting-panel/property-editor/placeholder-editor.vue +1 -1
  428. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +2 -2
  429. package/src/components/xform/form-designer/setting-panel/property-editor/prefixIcon-editor.vue +14 -15
  430. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +349 -0
  431. package/src/components/xform/form-designer/setting-panel/property-editor/relative-default-block.vue +369 -0
  432. package/src/components/xform/form-designer/setting-panel/property-editor/required-editor.vue +10 -6
  433. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +4 -4
  434. package/src/components/xform/form-designer/setting-panel/property-editor/rows-editor.vue +1 -1
  435. package/src/components/xform/form-designer/setting-panel/property-editor/showViewButton-editor.vue +29 -0
  436. package/src/components/xform/form-designer/setting-panel/property-editor/space-editor-editor.vue +1 -1
  437. package/src/components/xform/form-designer/setting-panel/property-editor/startPlaceholder-editor.vue +1 -1
  438. package/src/components/xform/form-designer/setting-panel/property-editor/step-editor.vue +1 -1
  439. package/src/components/xform/form-designer/setting-panel/property-editor/styleTableClass-editor.vue +1 -1
  440. package/src/components/xform/form-designer/setting-panel/property-editor/styleTempClass-editor.vue +51 -0
  441. package/src/components/xform/form-designer/setting-panel/property-editor/styleTitClass-editor.vue +1 -1
  442. package/src/components/xform/form-designer/setting-panel/property-editor/suffixIcon-editor.vue +14 -15
  443. package/src/components/xform/form-designer/setting-panel/property-editor/tempStorage-editor.vue +42 -0
  444. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +347 -62
  445. package/src/components/xform/form-designer/setting-panel/property-editor/type-editor.vue +1 -1
  446. package/src/components/xform/form-designer/setting-panel/property-editor/uploadTip-editor.vue +1 -1
  447. package/src/components/xform/form-designer/setting-panel/property-editor/uploadURL-editor.vue +1 -1
  448. package/src/components/xform/form-designer/setting-panel/property-editor/urlValueEnabled-editor.vue +91 -0
  449. package/src/components/xform/form-designer/setting-panel/property-editor/utcTransformEnabled-editor.vue +19 -0
  450. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +3 -3
  451. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +3 -3
  452. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +372 -50
  453. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +263 -0
  454. package/src/components/xform/form-designer/setting-panel/property-editor/widgetWidth-editor.vue +1 -1
  455. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +378 -324
  456. package/src/components/xform/form-designer/setting-panel/widgetPropertyDialogMixin.js +186 -0
  457. package/src/components/xform/form-designer/toolbar-panel/index.vue +267 -103
  458. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +655 -24
  459. package/src/components/xform/form-designer/widget-panel/index.vue +391 -321
  460. package/src/components/xform/form-designer/widget-panel/indexMixin.js +335 -2
  461. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +4698 -3141
  462. package/src/components/xform/form-render/compareDelList.vue +83 -0
  463. package/src/components/xform/form-render/compareView.vue +76 -0
  464. package/src/components/xform/form-render/container-item/containerItemMixin.js +404 -11
  465. package/src/components/xform/form-render/container-item/data-table-item.vue +221 -203
  466. package/src/components/xform/form-render/container-item/data-table-mixin.js +5076 -981
  467. package/src/components/xform/form-render/container-item/detail-h5-item.vue +324 -172
  468. package/src/components/xform/form-render/container-item/detail-item.vue +446 -158
  469. package/src/components/xform/form-render/container-item/detail-pane-item.vue +17 -3
  470. package/src/components/xform/form-render/container-item/detail-plain-item.vue +92 -0
  471. package/src/components/xform/form-render/container-item/detail-temp-item.vue +110 -0
  472. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +285 -0
  473. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +416 -0
  474. package/src/components/xform/form-render/container-item/grid-col-item.vue +10 -3
  475. package/src/components/xform/form-render/container-item/grid-item.vue +1 -1
  476. package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
  477. package/src/components/xform/form-render/container-item/list-h5-item.vue +1642 -921
  478. package/src/components/xform/form-render/container-item/sub-form-item.vue +10 -2
  479. package/src/components/xform/form-render/container-item/tab-item.vue +129 -88
  480. package/src/components/xform/form-render/container-item/table-cell-item.vue +38 -32
  481. package/src/components/xform/form-render/container-item/table-item.vue +7 -7
  482. package/src/components/xform/form-render/container-item/table2-cell-item.vue +53 -34
  483. package/src/components/xform/form-render/container-item/table2-item.vue +198 -99
  484. package/src/components/xform/form-render/container-item/tree-item.vue +32 -11
  485. package/src/components/xform/form-render/dynamicDialogRender.js +238 -3
  486. package/src/components/xform/form-render/dynamicDrawerRender.js +229 -0
  487. package/src/components/xform/form-render/formDynamicFieldMixin.js +131 -0
  488. package/src/components/xform/form-render/index.vue +153 -89
  489. package/src/components/xform/form-render/indexMixin.js +5311 -37
  490. package/src/components/xform/form-render/refMixin.js +34 -3
  491. package/src/components/xform/icon-picker/icons.json +284 -0
  492. package/src/components/xform/icon-picker/index.vue +145 -0
  493. package/src/components/xform/lang/en-US.js +483 -438
  494. package/src/components/xform/lang/en-US_extension.js +4 -0
  495. package/src/components/xform/lang/zh-CN.js +658 -593
  496. package/src/components/xform/mixins/defaultHandle.js +707 -5
  497. package/src/components/xform/mixins/scriptHttp.js +179 -3
  498. package/src/components/xform/styles/h5.scss +1633 -0
  499. package/src/components/xform/utils/attachmentValueUtil.js +239 -0
  500. package/src/components/xform/utils/dynamicSchemaUtil.js +361 -0
  501. package/src/components/xform/utils/emitter.js +4 -4
  502. package/src/components/xform/utils/fixedQueryUtil.js +93 -0
  503. package/src/components/xform/utils/formHttp.js +162 -0
  504. package/src/components/xform/utils/format.js +205 -172
  505. package/src/components/xform/utils/formula-util.js +969 -0
  506. package/src/components/xform/utils/queryParamUtil.js +84 -0
  507. package/src/components/xform/utils/sfc-generator.js +2 -2
  508. package/src/components/xform/utils/smart-vue-i18n/index.js +2 -1
  509. package/src/components/xform/utils/tableCellValidateUtil.js +148 -0
  510. package/src/components/xform/utils/tableColumnHelper.js +155 -0
  511. package/src/components/xform/utils/textMaskUtil.js +182 -0
  512. package/src/components/xform/utils/treeTableUtil.js +1292 -0
  513. package/src/components/xform/utils/util.js +1708 -1
  514. package/src/components/xform/utils/validators.js +185 -4
  515. package/src/components/xform/utils/vue2js-generator.js +2 -2
  516. package/src/components/xhsPrint/index.js +44 -1
  517. package/src/components/xhsPrint/mixins.js +269 -1
  518. package/src/directive/LimitNumber/index.js +144 -1
  519. package/src/directive/el-dialog-center/index.js +34 -1
  520. package/src/directive/el-drag-dialog/drag.js +86 -1
  521. package/src/directive/el-readonly/index.js +15 -1
  522. package/src/directive/permission/hasPermi.js +34 -1
  523. package/src/index.js +407 -84
  524. package/src/lang/index.js +56 -51
  525. package/src/lang/locale/en/login.js +27 -0
  526. package/src/lang/locale/zh/login.js +26 -0
  527. package/src/layout/components/AppMain.vue +147 -111
  528. package/src/layout/components/Sidebar/default.vue +1655 -1222
  529. package/src/layout/components/Sidebar/index.vue +6 -1
  530. package/src/layout/components/TagsView/index.vue +57 -15
  531. package/src/layout/components/createCompany/createCompanyDialog.vue +157 -0
  532. package/src/layout/components/extractedCode/createDialog.vue +92 -0
  533. package/src/layout/components/extractedCode/queryDialog.vue +103 -0
  534. package/src/layout/components/extractedCode/viewDialog.vue +207 -0
  535. package/src/layout/components/langTool.vue +128 -120
  536. package/src/layout/components/watermark/index.vue +83 -0
  537. package/src/layout/defaultLayout.vue +170 -150
  538. package/src/microRouter/index.js +447 -0
  539. package/src/mixins/selectDialog/index.js +266 -1
  540. package/src/mixins/tableTree/index.js +262 -4
  541. package/src/mixins/wf/index.js +40 -6
  542. package/src/permission.js +158 -16
  543. package/src/public-path.js +38 -0
  544. package/src/resources/js/base/common.js +109 -109
  545. package/src/router/index.js +4 -7
  546. package/src/router/modules/customer.js +70 -17
  547. package/src/router/modules/system.js +4 -0
  548. package/src/store/config/index.js +945 -600
  549. package/src/store/getters.js +4 -1
  550. package/src/store/modules/micro.js +57 -0
  551. package/src/store/modules/permission.js +517 -23
  552. package/src/store/modules/settings.js +26 -1
  553. package/src/store/modules/tagsView.js +208 -5
  554. package/src/store/modules/user.js +418 -28
  555. package/src/utils/aes.js +21 -1
  556. package/src/utils/auth.js +27 -1
  557. package/src/utils/componentDialog.js +339 -0
  558. package/src/utils/global.js +370 -8
  559. package/src/utils/index.js +579 -7
  560. package/src/utils/keepAlive.js +185 -1
  561. package/src/utils/lazyPlugin.js +66 -0
  562. package/src/utils/menuAdapter.js +277 -0
  563. package/src/utils/pddLog.js +92 -0
  564. package/src/utils/pdfUtil.js +429 -0
  565. package/src/utils/repeatOpen.js +48 -0
  566. package/src/utils/request.js +417 -28
  567. package/src/utils/resolveViewComponent.js +203 -0
  568. package/src/utils/scrollUtil.js +25 -0
  569. package/src/utils/vab.js +1279 -27
  570. package/src/utils/validate.js +104 -1
  571. package/src/views/bd/project/branch/bd_branch/edit.vue +145 -0
  572. package/src/views/bd/project/branch/bd_branch/list.vue +72 -0
  573. package/src/views/bd/project/branch/bd_branch/menuKindDialog.vue +106 -0
  574. package/src/views/bd/project/branch/bd_branch/mixins/edit.js +189 -0
  575. package/src/views/bd/project/branch/bd_branch/mixins/list.js +124 -0
  576. package/src/views/bd/project/branch/bd_branch/mixins/menuKindDialog.js +85 -0
  577. package/src/views/bd/project/branch/form_script/list.vue +31 -0
  578. package/src/views/bd/project/branch/form_template/list.vue +30 -0
  579. package/src/views/bd/project/branch/menu_kind/list.vue +31 -0
  580. package/src/views/bd/project/common/form_script/list.vue +16 -0
  581. package/src/views/bd/project/common/form_template/list.vue +15 -0
  582. package/src/views/bd/project/common/menu_kind/list.vue +15 -0
  583. package/src/views/bd/project/core/branchContext.js +100 -0
  584. package/src/views/bd/project/core/branchPage.js +78 -0
  585. package/src/views/bd/project/core/branchPageWrap.vue +225 -0
  586. package/src/views/bd/project/core/branchScope.js +44 -0
  587. package/src/views/bd/project/core/branchSearchPage.js +285 -0
  588. package/src/views/bd/project/core/branchSelect.vue +85 -0
  589. package/src/views/bd/project/core/branchTreeBar.vue +81 -0
  590. package/src/views/bd/project/core/httpBranchPatch.js +58 -0
  591. package/src/views/bd/project/datatable/menu_kind/list.vue +15 -0
  592. package/src/views/bd/project/datatable/table_model/list.vue +15 -0
  593. package/src/views/bd/setting/bd_attach_setting/dialog.vue +1 -1
  594. package/src/views/bd/setting/bd_attach_setting/edit.vue +5 -5
  595. package/src/views/bd/setting/bd_attach_setting/list.vue +28 -55
  596. package/src/views/bd/setting/bd_attach_setting/mixins/dialog.js +84 -1
  597. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +116 -5
  598. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +239 -1
  599. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -0
  600. package/src/views/bd/setting/bd_company_env/edit.vue +193 -0
  601. package/src/views/bd/setting/bd_company_env/list.vue +175 -0
  602. package/src/views/bd/setting/config_manage/list.vue +83 -0
  603. package/src/views/bd/setting/formVersion/button.vue +60 -0
  604. package/src/views/bd/setting/formVersion/compareBasicSection.vue +125 -0
  605. package/src/views/bd/setting/formVersion/compareCodeSection.vue +539 -0
  606. package/src/views/bd/setting/formVersion/compareContMixin.scss +65 -0
  607. package/src/views/bd/setting/formVersion/compareContent.vue +63 -0
  608. package/src/views/bd/setting/formVersion/compareDialog.vue +88 -0
  609. package/src/views/bd/setting/formVersion/compareMixin.js +93 -0
  610. package/src/views/bd/setting/formVersion/fieldCompare.vue +54 -0
  611. package/src/views/bd/setting/formVersion/formScriptCompareView.vue +94 -0
  612. package/src/views/bd/setting/formVersion/formTemplateCompareView.vue +74 -0
  613. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +501 -0
  614. package/src/views/bd/setting/formVersion/link.vue +63 -0
  615. package/src/views/bd/setting/formVersion/preformDialog.vue +87 -0
  616. package/src/views/bd/setting/formVersion/reverButton.vue +82 -0
  617. package/src/views/bd/setting/formVersion/tableDetailDiff.js +99 -0
  618. package/src/views/bd/setting/formVersion/tableModelCompareView.vue +514 -0
  619. package/src/views/bd/setting/formVersion/textDiff.js +102 -0
  620. package/src/views/bd/setting/form_import_log/edit.vue +130 -0
  621. package/src/views/bd/setting/form_import_log/list.vue +211 -0
  622. package/src/views/bd/setting/form_script/dialog.vue +1 -1
  623. package/src/views/bd/setting/form_script/edit.vue +197 -74
  624. package/src/views/bd/setting/form_script/edit1.vue +411 -187
  625. package/src/views/bd/setting/form_script/form_list.vue +175 -85
  626. package/src/views/bd/setting/form_script/list.vue +96 -21
  627. package/src/views/bd/setting/form_script/list1.vue +207 -118
  628. package/src/views/bd/setting/form_script/mixins/dialog.js +130 -1
  629. package/src/views/bd/setting/form_script/mixins/edit.js +265 -7
  630. package/src/views/bd/setting/form_script/mixins/edit1.js +259 -9
  631. package/src/views/bd/setting/form_script/mixins/form_list.js +320 -4
  632. package/src/views/bd/setting/form_script/mixins/list.js +307 -4
  633. package/src/views/bd/setting/form_script/mixins/list1.js +512 -14
  634. package/src/views/bd/setting/form_script/mixins/list2.js +10 -1
  635. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +194 -0
  636. package/src/views/bd/setting/form_script/mixins/preformDialog.js +34 -1
  637. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  638. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +3 -3
  639. package/src/views/bd/setting/form_template/dialog.vue +1 -1
  640. package/src/views/bd/setting/form_template/edit.vue +356 -184
  641. package/src/views/bd/setting/form_template/formDesignerDialog.vue +172 -0
  642. package/src/views/bd/setting/form_template/ftHistoryDialog.vue +1 -1
  643. package/src/views/bd/setting/form_template/itemList.vue +1 -1
  644. package/src/views/bd/setting/form_template/list.vue +303 -214
  645. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +279 -1
  646. package/src/views/bd/setting/form_template/mixins/dialog.js +103 -1
  647. package/src/views/bd/setting/form_template/mixins/edit.js +280 -9
  648. package/src/views/bd/setting/form_template/mixins/editWfObjConfigDialog.js +92 -1
  649. package/src/views/bd/setting/form_template/mixins/ftHistoryDialog.js +91 -1
  650. package/src/views/bd/setting/form_template/mixins/itemEdit.js +104 -1
  651. package/src/views/bd/setting/form_template/mixins/itemList.js +234 -1
  652. package/src/views/bd/setting/form_template/mixins/list.js +721 -22
  653. package/src/views/bd/setting/form_template/mixins/list2.js +411 -0
  654. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +193 -0
  655. package/src/views/bd/setting/form_template/mixins/preformDialog.js +28 -3
  656. package/src/views/bd/setting/form_template/mixins/wf_list.js +421 -3
  657. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  658. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +253 -254
  659. package/src/views/bd/setting/form_template/wf_list.vue +161 -127
  660. package/src/views/bd/setting/logic_param/edit.vue +146 -0
  661. package/src/views/bd/setting/logic_param/edit1.vue +106 -0
  662. package/src/views/bd/setting/logic_param/edit2.vue +139 -0
  663. package/src/views/bd/setting/logic_param/list.vue +74 -0
  664. package/src/views/bd/setting/logic_param/list1.vue +12 -0
  665. package/src/views/bd/setting/logic_param/list2.vue +12 -0
  666. package/src/views/bd/setting/logic_param/mixins/edit.js +93 -0
  667. package/src/views/bd/setting/logic_param/mixins/list.js +376 -0
  668. package/src/views/bd/setting/menu_kind/dialog.vue +1 -1
  669. package/src/views/bd/setting/menu_kind/list.vue +172 -83
  670. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +300 -7
  671. package/src/views/bd/setting/menu_kind/mixins/dialog.js +139 -1
  672. package/src/views/bd/setting/menu_kind/mixins/list.js +201 -1
  673. package/src/views/bd/setting/push_data/edit.vue +139 -0
  674. package/src/views/bd/setting/push_data/list.vue +283 -0
  675. package/src/views/bd/setting/push_data_h/edit.vue +153 -0
  676. package/src/views/bd/setting/push_data_h/list.vue +293 -0
  677. package/src/views/bd/setting/request_async_setting/edit.vue +320 -0
  678. package/src/views/bd/setting/request_async_setting/list.vue +372 -0
  679. package/src/views/bd/setting/request_setting/edit.vue +300 -0
  680. package/src/views/bd/setting/request_setting/list.vue +301 -0
  681. package/src/views/bd/setting/table_model/dialog.vue +1 -1
  682. package/src/views/bd/setting/table_model/edit.vue +958 -318
  683. package/src/views/bd/setting/table_model/list.vue +219 -128
  684. package/src/views/bd/setting/table_model/mixins/dialog.js +71 -1
  685. package/src/views/bd/setting/table_model/mixins/edit.js +1445 -3
  686. package/src/views/bd/setting/table_model/mixins/list.js +463 -2
  687. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +201 -0
  688. package/src/views/bd/setting/table_model/mixins/zdDialog.js +148 -5
  689. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  690. package/src/views/bd/setting/table_model/zdDialog.vue +1 -1
  691. package/src/views/bd/setting/utils/index.js +75 -1
  692. package/src/views/demo/bizTab/bill/billConfig.js +41 -0
  693. package/src/views/demo/bizTab/bill/detail.vue +436 -0
  694. package/src/views/demo/bizTab/bill/list.vue +288 -0
  695. package/src/views/demo/bizTab/bill/productDialog.vue +176 -0
  696. package/src/views/demo/bizTab/simple/billApi.js +123 -0
  697. package/src/views/demo/bizTab/simple/detail.vue +407 -0
  698. package/src/views/demo/bizTab/simple/list.vue +217 -0
  699. package/src/views/demo/bizTab/standalone/index.vue +121 -0
  700. package/src/views/demo/bizTab/wf/billConfig.js +44 -0
  701. package/src/views/demo/bizTab/wf/detail.vue +661 -0
  702. package/src/views/demo/bizTab/wf/list.vue +242 -0
  703. package/src/views/support/export_template/list.vue +1 -1
  704. package/src/views/support/form-dialog-demo/demoPickerDialog.vue +72 -0
  705. package/src/views/support/form-dialog-demo/index.vue +537 -0
  706. package/src/views/user/access_log/list.vue +418 -349
  707. package/src/views/user/access_log/list2.vue +1 -1
  708. package/src/views/user/api_request/list.vue +1 -1
  709. package/src/views/user/area/dialog.vue +223 -117
  710. package/src/views/user/area/list.vue +318 -0
  711. package/src/views/user/bill_setting/list.vue +1 -1
  712. package/src/views/user/bill_setting/userDialog.vue +1 -1
  713. package/src/views/user/code_rules/list.vue +1 -1
  714. package/src/views/user/commMenu/index.vue +2 -2
  715. package/src/views/user/common_attribute/list.vue +6 -3
  716. package/src/views/user/common_script/list.vue +1 -1
  717. package/src/views/user/company_info/dialog.vue +195 -163
  718. package/src/views/user/company_info/edit.vue +149 -88
  719. package/src/views/user/country/dialog.vue +1 -1
  720. package/src/views/user/country/list.vue +1 -1
  721. package/src/views/user/data_type_setting/dialog.vue +1 -1
  722. package/src/views/user/extend_datasource/dialog.vue +4 -1
  723. package/src/views/user/extend_datasource/edit.vue +2 -1
  724. package/src/views/user/extend_datasource/list.vue +4 -1
  725. package/src/views/user/fieldTranslation/editDialog.vue +8 -8
  726. package/src/views/user/fieldTranslation/list.vue +34 -34
  727. package/src/views/user/field_values_invisible/list.vue +1 -1
  728. package/src/views/user/file_type/list.vue +1 -1
  729. package/src/views/user/file_view_area/list.vue +1 -1
  730. package/src/views/user/file_view_ins/list.vue +22 -1
  731. package/src/views/user/form/form_template/dialog.vue +1 -1
  732. package/src/views/user/form/form_template/itemList.vue +1 -1
  733. package/src/views/user/form/form_template/list.vue +1 -1
  734. package/src/views/user/form/form_template_field/dialog.vue +1 -1
  735. package/src/views/user/form/form_type/dialog.vue +1 -1
  736. package/src/views/user/form/form_type/list.vue +1 -1
  737. package/src/views/user/form/report_requestaccess/dialog.vue +1 -1
  738. package/src/views/user/form/report_requestaccess/list.vue +1 -1
  739. package/src/views/user/form/vform/designer.vue +821 -749
  740. package/src/views/user/form/vform/formFieldMapping.js +2 -3
  741. package/src/views/user/form/vform/out_render.vue +1 -1
  742. package/src/views/user/form/vform/render.vue +80 -52
  743. package/src/views/user/form/view/edit.vue +56 -37
  744. package/src/views/user/form/view/list.vue +475 -54
  745. package/src/views/user/groups/dialog.vue +1 -1
  746. package/src/views/user/groups/list.vue +1 -1
  747. package/src/views/user/home/default.vue +1117 -979
  748. package/src/views/user/home/default2.vue +1158 -0
  749. package/src/views/user/home/dev.vue +29 -0
  750. package/src/views/user/home/index.vue +20 -16
  751. package/src/views/user/home/wjl/content.vue +1569 -0
  752. package/src/views/user/lang_tag/dialog.vue +1 -1
  753. package/src/views/user/lang_tag/list.vue +1 -1
  754. package/src/views/user/language_setting/list.vue +1 -1
  755. package/src/views/user/login/default.vue +165 -44
  756. package/src/views/user/login/index.vue +4 -6
  757. package/src/views/user/login/indexMixin.js +582 -380
  758. package/src/views/user/menu/list.vue +51 -2
  759. package/src/views/user/menu/voc_list.vue +686 -0
  760. package/src/views/user/menuFallback/index.vue +123 -0
  761. package/src/views/user/mobile_menu/list.vue +1 -1
  762. package/src/views/user/notify_message/dialog.vue +65 -22
  763. package/src/views/user/notify_message/list.vue +1 -1
  764. package/src/views/user/notify_template/edit.vue +188 -187
  765. package/src/views/user/notify_template/edit2.vue +176 -0
  766. package/src/views/user/notify_template/list.vue +5 -2
  767. package/src/views/user/notify_template/list2.vue +190 -0
  768. package/src/views/user/oplog/list.vue +1 -1
  769. package/src/views/user/outLink/cc_form_view.vue +188 -0
  770. package/src/views/user/outLink/form_view.vue +202 -211
  771. package/src/views/user/outLink/index.vue +62 -18
  772. package/src/views/user/outLink/view.vue +5 -13
  773. package/src/views/user/position/dialog.vue +1 -1
  774. package/src/views/user/position/list.vue +5 -5
  775. package/src/views/user/project_tag/dialog.vue +10 -5
  776. package/src/views/user/project_tag/edit.vue +2 -2
  777. package/src/views/user/project_tag/list.vue +10 -5
  778. package/src/views/user/push_setting/list.vue +1 -1
  779. package/src/views/user/request_setting/edit.vue +258 -0
  780. package/src/views/user/request_setting/list.vue +248 -0
  781. package/src/views/user/role/authConfig.vue +89 -0
  782. package/src/views/user/role/dialog.vue +70 -48
  783. package/src/views/user/role/edit.vue +311 -108
  784. package/src/views/user/role/list.vue +260 -182
  785. package/src/views/user/role/voc_edit.vue +293 -0
  786. package/src/views/user/sale_org/dialog.vue +2 -2
  787. package/src/views/user/sale_org/list.vue +5 -2
  788. package/src/views/user/system_notice/infoDialog.vue +61 -1
  789. package/src/views/user/system_notice/list.vue +1 -1
  790. package/src/views/user/system_parameter/list.vue +1 -1
  791. package/src/views/user/user/dialog.vue +47 -24
  792. package/src/views/user/user/edit.vue +1485 -1021
  793. package/src/views/user/user/form_dialog.vue +158 -0
  794. package/src/views/user/user/form_info.vue +210 -0
  795. package/src/views/user/user/form_list.vue +1 -1
  796. package/src/views/user/user/info.vue +253 -140
  797. package/src/views/user/user/list.vue +652 -563
  798. package/src/views/user/user/modifyPasswordDialog.vue +64 -53
  799. package/src/views/user/user_log_classify/list.vue +1 -1
  800. package/src/views/user/wf/iframe/index.vue +6 -1
  801. package/src/views/user/wf/iframe/index2.vue +6 -1
  802. package/src/views/user/wf/wfReport/index.vue +648 -0
  803. package/src/views/user/wf/wf_auto_submit_data/list.vue +4 -2
  804. package/src/views/user/wf/wf_manage/list.vue +1116 -673
  805. package/src/views/user/wf/wf_manage/list2.vue +875 -0
  806. package/src/views/user/wf/wf_manage/wfContentDialog.vue +47 -22
  807. package/src/views/user/wf/wf_obj_config/dialog.vue +1 -1
  808. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +109 -0
  809. package/src/views/user/wf/wf_obj_config/itemEdit.vue +25 -1
  810. package/src/views/user/wf/wf_obj_config/list.vue +115 -10
  811. package/src/views/user/wf/wf_obj_config/list_form.vue +1 -1
  812. package/src/views/user/wf/wf_transfer_setting/edit.vue +282 -0
  813. package/src/views/user/wf/wf_transfer_setting/list.vue +319 -0
  814. package/src/views/user/workbench_menu/list.vue +555 -0
  815. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +0 -207
  816. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1347
  817. package/src/utils/wf.js +0 -21
@@ -1,921 +1,1642 @@
1
- <template>
2
- <div>
3
- <div class="h5-box">
4
- <div>
5
- <!-- <div class="header-box"><i class="back el-icon-arrow-left"></i>杂发订单</div> -->
6
- <div class="search-H5box">
7
- <div class="txt">
8
- <el-input placeholder="订单编号" suffix-icon="el-icon-search" v-model="formData.sn"
9
- @keyup.enter.native="searchEvent">
10
- <el-button slot="append" @click="searchEvent"> 搜索</el-button>
11
- </el-input>
12
- </div>
13
- <div class="icon-screen" @click="popStatus = true">
14
- <i class="iconfont icon-shaixuan1"></i>
15
- <span>高级筛选</span>
16
- </div>
17
- </div>
18
- <div class="orderList-box" @scroll="handleScroll">
19
- <div class="item" v-for="(row,rowIndex) in page.records" :key="rowIndex" @click="openEditDialog(row.id)">
20
- <div class="info1">
21
- <div class="name">订单编号:{{ row.orderSn }}</div>
22
- <p>发货单号:{{ row.shippingSn }}</p>
23
- <p>外部订单号:{{ row.outTradeSn }}</p>
24
- <p>客户编码:{{ row.customerCode }}</p>
25
- <p>客户名称:{{ row.customerName }}</p>
26
- <p>机构:{{ row.saleOrgName }}</p>
27
- <p>业务员:{{ row.salesManName }}</p>
28
- <p>订单类型:{{ row.orderTypeVal }}</p>
29
- <h5-status-tag :value="row.status"></h5-status-tag>
30
- </div>
31
- <!-- <div class="btns">
32
- <el-button type="success" icon="iconfont icon-shenhe" class="btn">审核</el-button>
33
- <el-button type="primary" icon="el-icon-edit-outline" class="btn" @click="openEditDialog(row.orderId)">
34
- 编辑
35
- </el-button>
36
- </div>-->
37
- </div>
38
- </div>
39
- <div class="float-addBtn" @click="openEditDialog()"><i class="el-icon-plus"></i><span>新增</span></div>
40
- <h5SearchDialog v-if="popStatus" :visiable.sync="popStatus" @searchEvent="confirmSearchDialog"
41
- @resetEvent="resetSearchDialog">
42
- <el-form label-position="top">
43
- <el-form-item label="订单编号">
44
- <el-input v-model="formData.sn" class="txt" clearable/>
45
- </el-form-item>
46
- <el-form-item label="发货单号">
47
- <el-input v-model="formData.shippingSn" class="txt" clearable/>
48
- </el-form-item>
49
- <el-form-item label="订单状态">
50
- <el-select v-model="formData.statuses" class="txt" multiple clearable>
51
- <el-option :value="0" label="未审核"/>
52
- <el-option :value="1" label="审核中"/>
53
- <el-option :value="2" label="已审核"/>
54
- <el-option :value="3" label="已作废"/>
55
- </el-select>
56
- </el-form-item>
57
- </el-form>
58
- </h5SearchDialog>
59
- </div>
60
- </div>
61
- <!-- <editView v-if="showViewDialog && showEdit" visible-key="showEdit" :_dataId.sync="dataId" :copyId.sync="copyId"
62
- :parent-target="_self" @reload="$reloadHandle" @close="closeViewDialog"></editView>-->
63
- </div>
64
- </template>
65
-
66
- <script>
67
- import emitter from '../../../../components/xform/utils/emitter';
68
- import i18n from '../../../../components/xform/utils/i18n';
69
- import refMixin from '../../../../components/xform/form-render/refMixin';
70
- import containerItemMixin from './containerItemMixin';
71
- import FieldComponents from '../../../../components/xform/form-designer/form-widget/field-widget/index';
72
- import {assembleAxiosConfig, generateId, getReportGlobalMap} from "../../../../components/xform/utils/util";
73
- import * as formatUtil from "../../../../components/xform/utils/format";
74
- import render from "../../../../views/user/bill_setting/render.vue";
75
- import mixin from "../../../../mixins/mobile/list/index";
76
-
77
- const baseRefUtil = {
78
- emitter,
79
- i18n,
80
- refMixin,
81
- containerItemMixin,
82
- formatUtil,
83
- assembleAxiosConfig,
84
- getReportGlobalMap
85
- };
86
-
87
- export default {
88
- name: 'list-h5-item',
89
- components: {
90
- ...FieldComponents
91
- },
92
- mixins: [emitter, i18n, refMixin, containerItemMixin,mixin],
93
- componentName: 'ContainerItem',
94
- props: {
95
- widget: Object,
96
- parentWidget: Object,
97
- parentList: Array,
98
- indexOfParentList: Number,
99
- subFormRowIndex: {
100
- type: Number,
101
- default: -1
102
- },
103
- subFormColIndex: {
104
- type: Number,
105
- default: -1
106
- },
107
- subFormRowId: {
108
- type: String,
109
- default: ''
110
- }
111
- },
112
- inject: ['refList', 'sfRefList', 'globalModel', 'getFormConfig', 'getGlobalDsv'],
113
- data: function () {
114
- let that = this;
115
- let pageSize = 2;
116
- return {
117
- showAdvancedSearch: false,
118
- showRowDetailDialog: false,
119
- editRow: {},
120
- fieldModel: [],
121
- selectedIndices: [],
122
- /*pageSize: this.widget.options.pagination.pageSize,
123
- pageSizes: this.widget.options.pagination.pageSizes,
124
- currentPage: this.widget.options.pagination.currentPage,
125
- total: this.widget.options.pagination.total,*/
126
- formData: {
127
- saleOrgName: '',
128
- loginAccount: '',
129
- mobile: '',
130
- enabled: 1
131
- },
132
- vxeOption: {columns: []},
133
- requestAccess: null,
134
- columnFormatMap: {
135
- editInput: 'input',
136
- editNumber: 'number',
137
- editDate: 'date',
138
- editSelect: 'select',
139
- editSearch: 'vabsearch',
140
- button: 'button'
141
- },
142
- dataTableConfig: {},
143
- advancedFormData: {},
144
-
145
- pageSize: pageSize,
146
- page: {
147
- current: 1,
148
- size: pageSize,
149
- total: 0,
150
- records: [],
151
- },
152
- keyword: null,
153
-
154
- checkItemIds: [],
155
-
156
- dataId: 0,
157
- showEdit: false,
158
- showViewDialog: false
159
- };
160
- },
161
- watch: {
162
- fieldModel(val) {
163
- this.formModel[this.fieldKeyName] = val || [];
164
- }
165
- },
166
- computed: {
167
- formConfig: function () {
168
- return this.getFormConfig();
169
- },
170
- paginationLayout: function () {
171
- return this.widget.options.smallPagination ? 'prev, pager, next' : 'total, sizes, prev, pager, next, jumper';
172
- },
173
- customClass: function () {
174
- return this.widget.options.customClass || '';
175
- },
176
- singleRowSelectFlag: function () {
177
- return !this.widget.options.showCheckBox;
178
- },
179
- buttonsColumnFixed: function () {
180
- return void 0 === this.widget.options.buttonsColumnFixed ? 'right' : !!this.widget.options
181
- .buttonsColumnFixed && this.widget.options.buttonsColumnFixed;
182
- },
183
- columns() {
184
- let tableColumns = this.widget.options.tableColumns;
185
- let newColumns = [];
186
- /*newColumns.push({
187
- type: 'checkbox',
188
- width: 48,
189
- resizable: false,
190
- fixed: 'left'
191
- });*/
192
-
193
- let firstColumn = tableColumns.find(column => {
194
- return !!column.prop && !!column.showForRow;
195
- });
196
- let mainFiled = firstColumn?.prop;
197
-
198
- let formRef = this.getFormRef();
199
- let dateConfig = this.$baseLodash.cloneDeep(formRef.getFieldWidgetByType('date').options)
200
- tableColumns.forEach(t => {
201
- let columnOption;
202
- let widget;
203
- let columnWidgetConfig = this.getColumnWidgetConfig(t);
204
- let {columnSelectedWidget, columnEditFields} = columnWidgetConfig;
205
- if (columnSelectedWidget) {
206
- widget = columnSelectedWidget
207
- columnOption = widget.options;
208
- } else {
209
- columnOption = {}
210
- }
211
-
212
- let col = {
213
- fixed: !!t.fixed && t.fixed,
214
- field: t.prop,
215
- title: t.label,
216
- witdh: t.width,
217
- sortable: t.sortable,
218
- align: t.align ? t.align : 'center',
219
- formatter: this.formatterValue,
220
- isMainFiled: mainFiled == t.prop,
221
- showForRow: t.showForRow,
222
- params: {
223
- ...columnOption,
224
- widget: widget,
225
- formatS: t.formatS,
226
- required: t.required || false,
227
- columnConfig: t
228
- },
229
- visible: t.show
230
- };
231
-
232
- if (t.formatS == 'render') {
233
- let r = t.render ? new Function('params', 'h', t.render) : null;
234
- col.slots = {
235
- default: (params, h) => {
236
- return r ? r.call(this, params, h) : '';
237
- }
238
- };
239
- } else if (columnSelectedWidget) {
240
- col.slots = {
241
- default: 'widget'
242
- };
243
- } else if (['editDelete', 'editButton'].includes(t.formatS)) {
244
- col.slots = {
245
- default: t.formatS
246
- };
247
- }
248
-
249
- newColumns.push(col);
250
- });
251
-
252
- /*if (baseRefUtil.tableConfig && baseRefUtil.tableConfig.className == "list-table") {
253
- if (tableColumns.length) {
254
- let tableColumn = [tableColumns.length - 1];
255
- if (tableColumn.fixed != "right") {
256
- newColumns.push({
257
- width: 47,
258
- title: '',
259
- fixed: 'right',
260
- sortable: false,
261
- });
262
- }
263
- }
264
- }*/
265
- return newColumns;
266
- },
267
- formModel: {
268
- cache: !1,
269
- get: function () {
270
- return this.globalModel.formModel;
271
- }
272
- },
273
- formDataId() {
274
- let formRef = this.getFormRef();
275
- return formRef.dataId;
276
- }
277
- },
278
- created: function () {
279
- if (!this.formModel[this.fieldKeyName]) this.formModel[this.fieldKeyName] = [];
280
- this.initRefList();
281
- this.handleOnCreated();
282
- },
283
- mounted: async function () {
284
- this.handleOnMounted();
285
- this.initTableList();
286
- },
287
- beforeDestroy: function () {
288
- this.unregisterFromRefList();
289
- },
290
- methods: {
291
- openAdvancedSearchDialog() {
292
- /*let formData = this.formModel;
293
- let advancedFormData = {};
294
- this.vxeOption.searchColumns.forEach(form1Field => {
295
- let value = formData[form1Field.field];
296
- if (value !== null && value !== undefined) {
297
- advancedFormData[form1Field.field] = value
298
- } else {
299
- advancedFormData[form1Field.field] = null
300
- }
301
- });
302
- this.advancedFormData = advancedFormData;*/
303
- this.showAdvancedSearch = true;
304
- },
305
- confirmAdvancedSearchDialog() {
306
- let formModel = this.formModel;
307
- let advancedFormData = this.advancedFormData;
308
- this.vxeOption.searchColumns.forEach(form1Field => {
309
- let value = formModel[form1Field.field];
310
- if (value !== null && value !== undefined) {
311
- advancedFormData[form1Field.field] = value
312
- } else {
313
- advancedFormData[form1Field.field] = null
314
- }
315
- });
316
- this.searchEvent();
317
- },
318
- advancedClear() {
319
- this.vxeOption.searchColumns.forEach(form1Field => {
320
- let widgetRef = this.getWidgetRef(form1Field.widget.options.name)
321
- if (widgetRef && widgetRef.setValue) widgetRef.setValue(null);
322
- });
323
- },
324
- setValue(val) {
325
- let rows = val || []
326
- this.formModel[this.fieldKeyName] = rows;
327
- this.fieldModel = rows;
328
- },
329
- getValue() {
330
- return this.formModel[this.fieldKeyName];
331
- },
332
- getFieldKeyName(widget) {
333
- let o = widget.options.name;
334
- return (
335
- (widget.options.keyNameEnabled
336
- && widget.options.keyName)
337
- || o
338
- );
339
- },
340
- formatterValue: function ({cellValue, row, column}) {
341
- if (cellValue === null || cellValue === undefined) return cellValue;
342
-
343
- if (column.params && column.params.formatS)
344
- switch (column.params.formatS) {
345
- case 'd1':
346
- return baseRefUtil.formatUtil.formatDate1(cellValue);
347
- case 'd2':
348
- return baseRefUtil.formatUtil.formatDate2(cellValue);
349
- case 'd3':
350
- return baseRefUtil.formatUtil.formatDate3(cellValue);
351
- case 'd4':
352
- return baseRefUtil.formatUtil.formatDate4(cellValue);
353
- case 'd5':
354
- return baseRefUtil.formatUtil.formatDate4(cellValue);
355
- case 'n1':
356
- return baseRefUtil.formatUtil.formatNumber1(cellValue);
357
- case 'n2':
358
- return baseRefUtil.formatUtil.formatNumber2(cellValue);
359
- case 'n3':
360
- return baseRefUtil.formatUtil.formatNumber3(cellValue);
361
- case 'n4':
362
- return baseRefUtil.formatUtil.formatNumber4(cellValue);
363
- case 'n5':
364
- return baseRefUtil.formatUtil.formatNumber5(cellValue);
365
- case 'n6':
366
- return baseRefUtil.formatUtil.formatNumber6(cellValue);
367
- case 'n7':
368
- return baseRefUtil.formatUtil.formatNumber7(cellValue);
369
- }
370
- return cellValue;
371
- },
372
- searchEvent() {
373
- // this.getGridTable().commitProxy('reload');
374
- this.loadAccessData();
375
- },
376
- async resetEvent() {
377
- let formData = this.formModel;
378
- this.keyword = null;
379
- this.widget.widgetList && this.widget.widgetList.forEach(subWidget => {
380
- let widgetRef = this.getWidgetRef(subWidget.options.name)
381
- let fieldKeyName = this.getFieldKeyName(subWidget);
382
- formData[fieldKeyName] = null;
383
- this.advancedFormData[fieldKeyName] = null;
384
- if (widgetRef && widgetRef.setValue) widgetRef.setValue(null);
385
- });
386
- // this.getGridTable().commitProxy('reload');
387
- this.loadAccessData();
388
- },
389
- openEditDialog(row) {
390
- let formRef = this.getFormRef();
391
- let parentTarget = formRef.$attrs["parent-target"];
392
- parentTarget && parentTarget.$attrs.openEditDialog && parentTarget.$attrs.openEditDialog(row);
393
- },
394
- initTableList() {
395
- let that = this;
396
- let path = null;
397
- let paramFun = null;
398
- // let mainDataSetDTO = null;
399
- let requestAccess = this.requestAccess;
400
- let tableRef = this.getTableRef();
401
- let formDataModel = this.getFormRef().formDataModel;
402
- let isQueryTable = this.widget.options.isQueryTable || false;
403
- let isDataPage = this.widget.options.accessReturnType == "2";
404
- let formCode = this.getFormRef().reportTemplate.formCode;
405
- let dataId = this.formDataId;
406
- let accessScript = this.widget.options.accessScript;
407
- let searchColumns = null;
408
- if (isQueryTable) {
409
- path = this.getUrl();
410
- paramFun = () => {
411
- // let conditions = this.getSearchCondition();
412
- let conditions = {keyword: this.keyword, ...this.advancedFormData};
413
- if (this.widget.options.showPagination) {
414
- let searchCount = true;
415
- /*let isQueryAllPage = $grid.isQueryAllPage;
416
- if (isQueryAllPage == false) {
417
- searchCount = false;
418
- }*/
419
- /*let pager = proxyInfo ? proxyInfo.pager : null;
420
- if (pager) {
421
- conditions.current = pager.currentPage;
422
- conditions.size = pager.pageSize;
423
- conditions.searchCount = searchCount;
424
- }*/
425
- }
426
-
427
- /*let formData = {
428
- accessCode: requestAccess.accessCode,
429
- conditions: conditions
430
- };*/
431
- let formData = conditions;
432
- return formData;
433
- };
434
-
435
- searchColumns = [];
436
- let widgetList = this.widget.widgetList;
437
- let typeMap = {
438
- "input": "input",
439
- "number": "number",
440
- "inputBatch": "inputBatch",
441
- "date": "date"
442
- }
443
-
444
- widgetList.forEach(widget => {
445
- if ('container' !== widget.category) {
446
- let options = widget.options;
447
- let type = typeMap[widget.type] || null;
448
- searchColumns.push({
449
- title: options.label,
450
- field: this.getFieldKeyName(widget),
451
- type: type,
452
- common: true,
453
- disabled: options.disabled,
454
- defaultValueEnabled: !!type,
455
- slot: options.name,
456
- widget: widget,
457
- formItem: false
458
- });
459
- }
460
- });
461
- }
462
-
463
- let formRef = this.getFormRef();
464
- let dataTableConfig = formRef.$attrs.dataTableOption || {}
465
- this.dataTableConfig = dataTableConfig;
466
-
467
- let tableOption = {
468
- vue: this,
469
- tableRef: tableRef,
470
- tableName: this.widget.options.name,
471
- param: paramFun,
472
- columns: this.columns,
473
- searchColumns: searchColumns,
474
- vform: true,
475
- config: {
476
- height: isQueryTable ? "550px" : this.widget.options.tableHeight,
477
- /*pagerConfig: {
478
- autoHidden: !this.widget.options.showPagination
479
- },*/
480
- ...dataTableConfig.config
481
- },
482
- exportAjax: (param) => {
483
- let $grid = this.getGridTable();
484
- let pageSize = param.size;
485
- let currentPage = param.current;
486
- let page = {pageSize, currentPage};
487
- return this.vxeOption.config.proxyConfig.ajax.query.call(this, {page, param})
488
- }
489
- };
490
-
491
- if (isQueryTable) {
492
- tableOption.path = path;
493
- tableOption.config.proxyConfig = {
494
- props: {
495
- result: isDataPage ? 'objx.records' : 'objx', // 配置响应结果列表字段
496
- total: isDataPage ? 'objx.total' : 'objx.length' // 配置响应结果总页数字段
497
- },
498
- ajax: {
499
- // 接收 Promise 对象
500
- query: ({page, sorts, filters, form, param}) => {
501
- if (!path) {
502
- return;
503
- }
504
-
505
- let formData = tableOption.param ? tableOption.param() || {} : {};
506
- const queryParams = Object.assign({}, formData);
507
-
508
- // 处理排序条件
509
- if (sorts) {
510
- const firstSort = sorts[0];
511
- if (firstSort) {
512
- queryParams.sort = firstSort.property;
513
- queryParams.order = firstSort.order;
514
- }
515
- }
516
-
517
- // 处理筛选条件
518
- if (filters) {
519
- filters.forEach(({property, values}) => {
520
- queryParams[property] = values.join(",");
521
- });
522
- }
523
-
524
- if (page.pageSize !== undefined) {
525
- queryParams["size"] = `${page.pageSize}`;
526
- queryParams["current"] = `${page.currentPage}`;
527
- }
528
-
529
- /*let $grid = this.getGridTable();
530
- let isQueryAllPage = $grid.isQueryAllPage;
531
- let pathStr1 = "";
532
- if (isQueryAllPage === false) {
533
- queryParams.searchCount = false;
534
- }*/
535
- Object.assign(queryParams, param)
536
-
537
- var reqPath = typeof path == "function" ? path() : path;
538
-
539
- return new Promise((resolve, reject) => {
540
- let reqData = {
541
- formCode: formCode,
542
- ...queryParams
543
- }
544
- if (accessScript) {
545
- let index = 0;
546
- let toDo = () => {
547
- let f = new Function("dataId", "formCode", "param", "done", accessScript);
548
- let done = (res) => {
549
- resolve(res);
550
- if (res.type == "success") {
551
- let rows = res.objx ? res.objx.records || res.objx || [] : [];
552
- this.setValue(rows);
553
- if (res.objx && res.objx.records) {
554
- this.page = res.objx || {};
555
- }
556
- if (tableOption.callback) {
557
- that.$nextTick(() => {
558
- setTimeout(function () {
559
- tableOption.callback(rows);
560
- }, 0);
561
- });
562
- }
563
- } else {
564
- this.setValue([]);
565
- }
566
- }
567
- let r = f.call(that, dataId, formCode, reqData, done);
568
- if (r) {
569
- r.catch(error => {
570
- reject(error);
571
- });
572
- }
573
- };
574
- let loopHandle = () => {
575
- /*if (index < 500 && $grid.tableFormStop === true) {
576
- //阻塞列表查询,或者次数达到500时,自动释放
577
- index++
578
- setTimeout(() => {
579
- loopHandle();
580
- }, 10)
581
- } else {
582
- if ($grid.tableFormStop) $grid.tableFormStop = false;
583
- toDo();
584
- }*/
585
- toDo();
586
- }
587
- loopHandle();
588
- } else {
589
- resolve();
590
- }
591
- /*that.scriptHttp({
592
- options: this.widget.options,
593
- params: queryParams,
594
- callback: (res) => {
595
- resolve(res);
596
- if (res.type == "success") {
597
- let rows = res.objx ? res.objx.records || res.objx || [] : [];
598
- /!*if (tableOption.treeNodeUrl) {
599
- if (rows.length > 0) {
600
- let $t = this.$refs[tableRef];
601
- var treeConditions = $t.originOption.treeConditions || [
602
- "enabled",
603
- ];
604
- let treeFiled = Object.keys(formData).some((key) => {
605
- return (
606
- !treeConditions.includes(key) && formData[key] != null && formData[key] != ""
607
- );
608
- });
609
- if (treeFiled) {
610
- that.$nextTick(() => {
611
- setTimeout(function () {
612
- let isLazy = $t.treeConfig.lazy;
613
- $t.treeConfig.lazy = false;
614
- $t.setAllTreeExpand(true).then(() => {
615
- let fullAllDataRowMap = $t.$refs.xTable.fullAllDataRowMap;
616
- let fullData = $t.getTableData().fullData;
617
- fullData.forEach((lineData) => {
618
- if (
619
- $t.$refs.xTable.isTreeExpandByRow(lineData)
620
- ) {
621
- var rest = fullAllDataRowMap.get(lineData);
622
- rest.treeLoaded = true;
623
- }
624
- });
625
- $t.treeConfig.lazy = isLazy;
626
- });
627
- }, 0);
628
- });
629
- } else {
630
- let row = rows[0];
631
- if (row[result.treeConfig.hasChild]) {
632
- that.$nextTick(() => {
633
- setTimeout(function () {
634
- $t.setTreeExpand(row, true);
635
- }, 0);
636
- });
637
- }
638
- }
639
- }
640
- }*!/
641
- if (tableOption.callback) {
642
- that.$nextTick(() => {
643
- setTimeout(function () {
644
- tableOption.callback(rows);
645
- }, 0);
646
- });
647
- }
648
- }
649
- },
650
- httpConfig: {
651
- error: (error) => {
652
- reject(error);
653
- }
654
- }
655
- });*/
656
- });
657
- }
658
- }
659
- };
660
- tableOption.callback = (rows) => {
661
- // this.fieldModel = rows;
662
- this.formModel[this.fieldKeyName] = rows
663
- }
664
- }
665
- this.vxeOption = tableOption;
666
- this.loadAccessData();
667
-
668
- /*this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
669
- this.vxeOption = opts;
670
- /!*if (!isQueryTable) {
671
- this.$nextTick(() => {
672
- this.loadAccessData();
673
- });
674
- }*!/
675
- });
676
- if (!isQueryTable) {
677
- this.loadAccessData();
678
- }*/
679
- },
680
- getSearchFormData() {
681
- let map = {};
682
- let formData = this.globalModel.formModel;
683
- let widgetList = this.widget.widgetList;
684
- if (!!widgetList && widgetList.length > 0) {
685
- let loop = (wItem) => {
686
- if (wItem.category === 'container') {
687
- loop(wItem);
688
- } else {
689
- let formField = this.getFieldKeyName(wItem);
690
- let vaule = formData[formField];
691
- if (vaule !== null && vaule !== undefined && vaule !== '') {
692
- map[formField] = vaule;
693
- }
694
- }
695
- };
696
- widgetList.forEach(wItem => {
697
- loop(wItem);
698
- });
699
- }
700
- return map;
701
- },
702
- loadTableData(param) {
703
- if (this.dataTableConfig?.queryFormDialog !== true) {
704
- this.checkItemIds = [];
705
- }
706
- param = param || {};
707
- let pageSize = param.size || this.pageSize;
708
- let currentPage = param.current || 1;
709
- let page = {pageSize, currentPage};
710
- return this.vxeOption.config.proxyConfig.ajax.query.call(this, {page, param})
711
- },
712
- loadAccessData() {
713
- let isQueryTable = this.widget.options.isQueryTable || false;
714
- if (isQueryTable) {
715
- this.loadTableData({})
716
- return;
717
- }
718
- if (!isQueryTable && !this.formDataId) return;
719
-
720
- let accessScript = this.widget.options.accessScript;
721
- let formCode = this.getFormRef().reportTemplate.formCode;
722
- if (accessScript) {
723
- let f = new Function("dataId", "formCode", "param", "done", accessScript);
724
- let toDo = (res) => {
725
- let rows = res.objx ? res.objx.records || res.objx || [] : [];
726
- // this.fieldModel = rows;
727
- this.formModel[this.fieldKeyName] = rows
728
- this.fieldModel = rows;
729
- }
730
-
731
- f.call(this, this.formDataId, formCode, null, toDo)
732
- }
733
-
734
- /*this.scriptHttp({
735
- options: this.widget.options,
736
- params: {},
737
- success: (res) => {
738
- let rows = res.objx ? res.objx.records || res.objx || [] : [];
739
- this.fieldModel = rows;
740
- }
741
- });*/
742
- },
743
- getReqParam(item, dataId, billData) {
744
- let param = {};
745
- if (item.accessParam) {
746
- if (typeof item.accessParam === "string") {
747
- let n = new Function('billData', item.accessParam);
748
- param = n.call(this, billData);
749
- } else {
750
- param = item.accessParam
751
- }
752
- } else {
753
- param = {id: dataId}
754
- }
755
- return param;
756
- },
757
- async deleteRow(row, rowIndex) {
758
- this.fieldModel.splice(rowIndex, 1);
759
- },
760
- createNewTableData() {
761
- let vailColumns = this.widget.options.tableColumns.filter(item => item.prop && item.label);
762
- let newData = {};
763
- vailColumns.forEach(item => {
764
- if (item.formatS == 'editSearch') {
765
- newData[item.prop] = null;
766
- let vabSearchName = item?.columnOption?.vabSearchName;
767
- if (vabSearchName) newData[vabSearchName] = null;
768
- } else {
769
- newData[item.prop] = null;
770
- }
771
- });
772
- return newData;
773
- },
774
- addTableData(rows, field) {
775
- let formDataModel = this.formModel;
776
- let tableRows = this.fieldModel;
777
- let fullData = this.fieldModel;
778
- let items;
779
- if (field) {
780
- let keys = fullData.map(item => {
781
- return item[field] + "";
782
- });
783
- items = rows.filter(item => {
784
- let value = item[field] + ""
785
- return !keys.includes(value);
786
- });
787
- } else {
788
- items = rows;
789
- }
790
- if (items) {
791
- if (items.length) {
792
- items.forEach(row => {
793
- let newData = this.createNewTableData();
794
- Object.assign(newData, row);
795
-
796
- tableRows.push(newData);
797
- })
798
- }
799
- } else {
800
- let newData = this.createNewTableData();
801
- tableRows.push(newData);
802
- }
803
- // this.formModel[this.fieldKeyName] = this.$baseLodash(this.fieldModel)
804
- // this.fieldModel = tableRows
805
- // $grid.loadData(tableRows);
806
- },
807
- getColumnWidgetConfig(row) {
808
- let formRef = this.getFormRef();
809
- let formatS = row.formatS
810
- let columnSelectedWidget = null;
811
- let columnEditFields = null;
812
-
813
- let type = this.columnFormatMap[row.formatS];
814
- /*if (type == 'date') {
815
- columnEditFields = ['type', 'format', 'valueFormat']
816
- } else if (type == 'select') {
817
-
818
- }
819
- if (type == 'vabsearch') {
820
- columnEditFields = ['vabSearchField', 'formCode', 'formVersion', 'required', 'showFormField', 'onSearchConfirm', 'onSearchClear']
821
- }*/
822
-
823
- if (type) {
824
- columnSelectedWidget = this.$baseLodash.cloneDeep(formRef.getFieldWidgetByType(type));
825
- let tmpId = generateId();
826
- let idVal = row.prop ? row.prop : (type + tmpId);
827
- columnSelectedWidget.id = idVal;
828
- columnSelectedWidget.options.name = idVal;
829
- if (row.columnOption && Object.keys(row.columnOption).length) {
830
- row.columnOption.required = row.required || false;
831
- columnSelectedWidget.options = row.columnOption;
832
- } else {
833
- columnSelectedWidget.options.required = row.required || false;
834
- row.columnOption = columnSelectedWidget.options;
835
- }
836
- columnSelectedWidget.options.name = row.prop;
837
- columnSelectedWidget.options.label = row.label;
838
- columnSelectedWidget.options.labelHidden = true;
839
- }
840
- return {columnSelectedWidget, columnEditFields};
841
- },
842
- getColumnProp(widget, obj) {
843
- let isQueryTable = this.widget.options.isQueryTable || false;
844
- if (isQueryTable) {
845
- return "false";
846
- } else {
847
- let propName = this.getFieldKeyName(widget) + '.' + obj.rowIndex + '.' + obj.column.field
848
- if (obj.column.params.widget == 'vabsearch') {
849
- let vabSearchName = obj.column.params.widget.options.vabSearchName;
850
- propName = this.getFieldKeyName(widget) + '.' + obj.rowIndex + '.' + vabSearchName;
851
- }
852
- return propName;
853
- }
854
- },
855
- getColumnWidgetName(e) {
856
- if (e && e.type) {
857
- return e.type + '-widget';
858
- }
859
- },
860
- getGridTable() {
861
- let $grid = this.$refs[this.getTableRef()];
862
- return $grid;
863
- },
864
- getTableRef() {
865
- let tableRef = this.widget.id;
866
- return tableRef;
867
- },
868
- getUrl() {
869
- let accessUrl = this.widget.options.accessUrl
870
- return accessUrl || (USER_PREFIX + `/form_ins/getFormInsData`);
871
- },
872
- openRowDetailDialog(row) {
873
- /*let isQueryTable = this.widget.options.isQueryTable || false;
874
- if(isQueryTable)return;*/
875
- this.editRow = row;
876
- this.showRowDetailDialog = true;
877
- },
878
- changePageNew({type, currentPage, pageSize, $event}) {
879
- this.loadTableData({
880
- size: pageSize + "",
881
- current: currentPage + ""
882
- })
883
- },
884
- exportData(option) {
885
- let tableRef = this.getTableRef();
886
- let serverName = this.getFormRef().reportTemplate.serverName;
887
- option.prefix = option.prefix || serverName;
888
- this.$excelExport({targetRef: tableRef, ...option})
889
- },
890
- itemCheck(row) {
891
- let dataTableConfig = this.dataTableConfig;
892
- if (dataTableConfig) {
893
- let checkItemIds = this.checkItemIds;
894
- let checked;
895
- if (checkItemIds.includes(row.id)) {
896
- checked = false;
897
- checkItemIds.splice(checkItemIds.indexOf(row.id), 1);
898
- } else {
899
- checked = true;
900
- checkItemIds.push(row.id)
901
- }
902
- let param = {row, checked};
903
- dataTableConfig.onCheckboxChange && dataTableConfig.onCheckboxChange(param);
904
- }
905
-
906
- }
907
- }
908
- };
909
- </script>
910
- <style lang="scss" scoped>
911
- @import "~@/resources/css/h5.scss";
912
-
913
- .orderList-box {
914
- flex: 1;
915
- overflow-y: auto;
916
- }
917
-
918
- .search-H5box {
919
- margin: 0 0 9px;
920
- }
921
- </style>
1
+ <template>
2
+ <container-item-wrapper
3
+ :widget="widget"
4
+ :class="widget.options.isFullscreen ? 'full-height' : ''"
5
+ >
6
+ <div class="h5-header">{{ widget.options.label }}</div>
7
+ <div class="h5-search-box">
8
+ <el-input v-model="keyword" placeholder="请选择" class="txt">
9
+ <i slot="suffix" class="el-input__icon el-icon-search"></i>
10
+ <el-button slot="append" class="btn" @click="searchEvent"
11
+ >搜索</el-button
12
+ >
13
+ </el-input>
14
+ <div class="icon-screen" @click="openAdvancedSearchDialog">
15
+ <i class="iconfont icon-chaxuntiaojianshezhi"></i>筛选
16
+ </div>
17
+ </div>
18
+ <div
19
+ v-if="widget.options.isQueryTable"
20
+ class="h5-fixed-top-btns"
21
+ title-width="92px"
22
+ title-align="right"
23
+ >
24
+ <el-form label-position="top">
25
+ <template v-if="!!widget.buttons && widget.buttons.length > 0">
26
+ <template v-for="(subWidget, swIdx) in widget.buttons">
27
+ <template v-if="'container' === subWidget.category">
28
+ <component
29
+ :is="subWidget.type + '-item'"
30
+ :widget="subWidget"
31
+ :key="swIdx"
32
+ :parent-list="widget.buttons"
33
+ :index-of-parent-list="swIdx"
34
+ :parent-widget="widget"
35
+ >
36
+ <!-- 递归传递插槽!!! -->
37
+ <template
38
+ v-for="slot in Object.keys($scopedSlots)"
39
+ v-slot:[slot]="scope"
40
+ >
41
+ <slot :name="slot" v-bind="scope" />
42
+ </template>
43
+ </component>
44
+ </template>
45
+ <template v-else>
46
+ <component
47
+ :is="subWidget.type + '-widget'"
48
+ :field="subWidget"
49
+ :designer="null"
50
+ :key="swIdx"
51
+ :parent-list="widget.buttons"
52
+ :index-of-parent-list="swIdx"
53
+ :parent-widget="widget"
54
+ >
55
+ <!-- 递归传递插槽!!! -->
56
+ <template
57
+ v-for="slot in Object.keys($scopedSlots)"
58
+ v-slot:[slot]="scope"
59
+ >
60
+ <slot :name="slot" v-bind="scope" />
61
+ </template>
62
+ </component>
63
+ </template>
64
+ </template>
65
+ </template>
66
+ </el-form>
67
+ </div>
68
+ <div class="h5-list-box">
69
+ <div
70
+ v-for="(row, rowIndex) in fieldModel"
71
+ :key="rowIndex"
72
+ class="item"
73
+ @click="onRowClick(row)"
74
+ :class="[
75
+ { checked: checkItemIds.includes(row.id) },
76
+ itemCardClass,
77
+ getRowCompareClass(row),
78
+ ]"
79
+ >
80
+ <!-- 右上角查看角标(对齐 bill_setting 的 .pro-item .t::after)。
81
+ 与 itemStyle 解绑:点整行进详情是明细行的统一行为,
82
+ 这个角标是它的视觉提示,不该藏在选项后面。
83
+ 查询选择场景点行是勾选、不进详情,故不显示。 -->
84
+ <i class="h5-item-arrow" v-if="!widget.options.isQueryTable"></i>
85
+ <!-- 明细行不放删除按钮:点击整行进详情即可。
86
+ 要恢复的话,除了放回这个 div,还得给它补流程判断
87
+ (有流程且当前节点不可编辑时要藏掉),它不是 widget,
88
+ 拿不到 hiddenByWf / widgetShowRule 那两套。 -->
89
+ <template v-if="vxeOption.columns.length > 0">
90
+ <div class="t1" v-if="widget.options.isQueryTable">
91
+ <template
92
+ v-for="(column, columnIndex) in vxeOption.columns.filter(
93
+ (item, index) => item.isMainFiled
94
+ )"
95
+ >
96
+ <b :key="'1-' + columnIndex">{{ column.title }}:</b>
97
+ <span :key="'2-' + columnIndex">
98
+ <template v-if="!column.params.formatS">
99
+ {{ row[column.field] }}
100
+ </template>
101
+ <template v-else-if="column.params.formatS == 'render'">
102
+ {{
103
+ column.slots.default({
104
+ column: column,
105
+ rowIndex: rowIndex,
106
+ row: row,
107
+ items: fieldModel,
108
+ })
109
+ }}
110
+ </template>
111
+ <template
112
+ v-else-if="column.slots && column.slots.default == 'widget'"
113
+ >
114
+ <component
115
+ :is="getColumnWidgetName(column.params.widget)"
116
+ :field="column.params.widget"
117
+ :form-model="globalModel.formModel"
118
+ :designer="null"
119
+ :key="rowIndex"
120
+ :parent-widget="widget"
121
+ :columnConfig="column.params.columnConfig"
122
+ :subFormRowIndex="rowIndex"
123
+ :formItemProp="
124
+ getColumnProp(widget, {
125
+ column: column,
126
+ rowIndex: rowIndex,
127
+ row: row,
128
+ items: fieldModel,
129
+ })
130
+ "
131
+ :tableParam="{
132
+ column: column,
133
+ rowIndex: rowIndex,
134
+ row: row,
135
+ items: fieldModel,
136
+ }"
137
+ ></component>
138
+ </template>
139
+ <template v-else-if="column.params.formatS == 'editDelete'">
140
+ <a
141
+ href="javascript:void(0);"
142
+ class="a-link"
143
+ @click="deleteRow(row, rowIndex)"
144
+ >
145
+ <el-tooltip
146
+ :enterable="false"
147
+ effect="dark"
148
+ content="删除"
149
+ placement="top"
150
+ popper-class="tooltip-skin"
151
+ >
152
+ <i class="el-icon-delete" />
153
+ </el-tooltip>
154
+ </a>
155
+ </template>
156
+ <template v-else-if="column.params.formatS == 'editButton'">
157
+ <a
158
+ href="javascript:void(0);"
159
+ class="a-link"
160
+ @click.stop="openEditDialog(obj.row)"
161
+ >
162
+ <el-tooltip
163
+ :enterable="false"
164
+ effect="dark"
165
+ content="查看"
166
+ placement="top"
167
+ popper-class="tooltip-skin"
168
+ >
169
+ <i class="el-icon-edit" />
170
+ </el-tooltip>
171
+ </a>
172
+ </template>
173
+ <template v-else>
174
+ {{
175
+ column.formatter({
176
+ cellValue: row[column.field],
177
+ column: column,
178
+ rowIndex: rowIndex,
179
+ row: row,
180
+ items: fieldModel,
181
+ })
182
+ }}
183
+ </template>
184
+ </span>
185
+ <!-- <div class="status">未审核</div>-->
186
+ </template>
187
+ </div>
188
+ <div class="t2">
189
+ <template
190
+ v-if="
191
+ !widget.options.isQueryTable || vxeOption.columns.length > 1
192
+ "
193
+ >
194
+ <template v-for="(column, columnIndex) in vxeOption.columns">
195
+ <template
196
+ v-if="
197
+ (!widget.options.isQueryTable || !column.isMainFiled) &&
198
+ column.showForRow
199
+ "
200
+ >
201
+ <dl :key="columnIndex">
202
+ <div>
203
+ <dt>{{ column.title }}:</dt>
204
+ <dd>
205
+ <template v-if="!column.params.formatS">
206
+ {{ row[column.field] }}
207
+ </template>
208
+ <template v-else-if="column.params.formatS == 'render'">
209
+ {{
210
+ column.slots.default({
211
+ column: column,
212
+ rowIndex: rowIndex,
213
+ row: row,
214
+ items: fieldModel,
215
+ })
216
+ }}
217
+ </template>
218
+
219
+ <!-- 明细行只出纯文本:编辑控件(widget)与操作链接
220
+ (editDelete/editButton)都不在行上渲染,点整行进详情,
221
+ 详情弹框里才是可编辑的控件。 -->
222
+ <template v-else>
223
+ {{ getColumnDisplayText(column, row, rowIndex) }}
224
+ </template>
225
+ </dd>
226
+ </div>
227
+ </dl>
228
+ </template>
229
+ </template>
230
+ </template>
231
+ </div>
232
+ <!-- 明细行不摆操作按钮区:点整行进详情。查询选择场景(isQueryTable)
233
+ 仍保留行按钮,那边点行是勾选、按钮另有用途。 -->
234
+ <div class="btns" v-if="widget.options.isQueryTable">
235
+ <template
236
+ v-if="!!widget.lineButtons && widget.lineButtons.length > 0"
237
+ >
238
+ <template v-for="(subWidget, swIdx) in widget.lineButtons">
239
+ <template v-if="'container' === subWidget.category">
240
+ <component
241
+ :is="subWidget.type + '-item'"
242
+ :widget="subWidget"
243
+ :key="swIdx"
244
+ :parent-list="widget.lineButtons"
245
+ :index-of-parent-list="swIdx"
246
+ :parent-widget="widget"
247
+ :subFormRowIndex="rowIndex"
248
+ :tableParam="{
249
+ rowIndex: rowIndex,
250
+ row: row,
251
+ items: fieldModel,
252
+ }"
253
+ >
254
+ <!-- 递归传递插槽!!! -->
255
+ <template
256
+ v-for="slot in Object.keys($scopedSlots)"
257
+ v-slot:[slot]="scope"
258
+ >
259
+ <slot :name="slot" v-bind="scope" />
260
+ </template>
261
+ </component>
262
+ </template>
263
+ <template v-else>
264
+ <component
265
+ :is="subWidget.type + '-widget'"
266
+ :field="subWidget"
267
+ :designer="null"
268
+ :key="swIdx"
269
+ :parent-list="widget.lineButtons"
270
+ :index-of-parent-list="swIdx"
271
+ :parent-widget="widget"
272
+ :subFormRowIndex="rowIndex"
273
+ :tableParam="{
274
+ rowIndex: rowIndex,
275
+ row: row,
276
+ items: fieldModel,
277
+ }"
278
+ >
279
+ <!-- 递归传递插槽!!! -->
280
+ <template
281
+ v-for="slot in Object.keys($scopedSlots)"
282
+ v-slot:[slot]="scope"
283
+ >
284
+ <slot :name="slot" v-bind="scope" />
285
+ </template>
286
+ </component>
287
+ </template>
288
+ </template>
289
+ </template>
290
+ </div>
291
+ </template>
292
+
293
+ <!-- <div class="t1">
294
+ <b>订单号:21533666</b>
295
+ <div class="status">未审核</div>
296
+ </div>
297
+ <div class="t2">
298
+ <p>产地:广东佛山</p>
299
+ <p>产地:广东佛山</p>
300
+ <p>产地:广东佛山</p>
301
+ </div>-->
302
+ </div>
303
+ </div>
304
+ <div class="vxe-grid" v-if="widget.options.isQueryTable">
305
+ <div class="vxe-grid&#45;&#45;pager-wrapper">
306
+ <vxe-pager
307
+ class="pages-box"
308
+ :current-page.sync="page.current"
309
+ :page-size.sync="page.size"
310
+ :total="page.total"
311
+ :layouts="['PrevPage', 'Number', 'NextPage']"
312
+ @page-change="changePageNew"
313
+ >
314
+ <template #right>
315
+ <span>
316
+ <span>当前记录</span>
317
+ <span class="f-red"> {{ page.records.length }} </span>
318
+ <span>/</span>
319
+ <span class="f-red"> {{ page.total }}</span>
320
+ </span>
321
+ </template>
322
+ </vxe-pager>
323
+ </div>
324
+ </div>
325
+
326
+ <advancedSearchDialog
327
+ v-if="showAdvancedSearch"
328
+ :visiable.sync="showAdvancedSearch"
329
+ class="adSearchForm_all"
330
+ :formData="advancedFormData"
331
+ @confirm="confirmAdvancedSearchDialog"
332
+ @clear="advancedClear"
333
+ >
334
+ <template #form>
335
+ <vxe-form
336
+ :model="formModel"
337
+ title-width="102px"
338
+ :inline="true"
339
+ class="adSearchForm"
340
+ >
341
+ <template v-for="(searchColumn, index) in vxeOption.searchColumns">
342
+ <vxe-form-item>
343
+ <component
344
+ :is="getColumnWidgetName(searchColumn.widget)"
345
+ :field="searchColumn.widget"
346
+ :form-model="globalModel.formModel"
347
+ :designer="null"
348
+ :key="index"
349
+ :parent-widget="widget"
350
+ ></component>
351
+ </vxe-form-item>
352
+ </template>
353
+ </vxe-form>
354
+ </template>
355
+ </advancedSearchDialog>
356
+ <el-dialog
357
+ title="明细详情"
358
+ :modal-append-to-body="false"
359
+ :close-on-click-modal="false"
360
+ :visible.sync="showRowDetailDialog"
361
+ :modal="false"
362
+ custom-class="dialog-style h5view-dialog"
363
+ width="100%"
364
+ top="0px"
365
+ v-el-drag-dialog
366
+ v-el-dialog-center
367
+ :destroy-on-close="true"
368
+ >
369
+ <div class="cont" style="height: calc(100vh - 73px)">
370
+ <div class="h5-list-box">
371
+ <div
372
+ v-for="(row, rowIndex) in [editRow]"
373
+ :key="rowIndex"
374
+ class="item"
375
+ >
376
+ <!-- <div class="del-btn"><i class="el-icon-delete"></i></div>-->
377
+ <template v-if="vxeOption.columns.length > 0">
378
+ <div class="t1" v-if="widget.options.isQueryTable">
379
+ <template
380
+ v-for="(column, columnIndex) in vxeOption.columns.filter(
381
+ (item, index) => item.isMainFiled
382
+ )"
383
+ >
384
+ <b>{{ column.title }}:</b>
385
+ <span>
386
+ <template v-if="!column.params.formatS">
387
+ {{ row[column.field] }}
388
+ </template>
389
+ <template v-else-if="column.params.formatS == 'render'">
390
+ {{
391
+ column.slots.default({
392
+ column: column,
393
+ rowIndex: rowIndex,
394
+ row: row,
395
+ items: fieldModel,
396
+ })
397
+ }}
398
+ </template>
399
+ <template
400
+ v-else-if="
401
+ column.slots && column.slots.default == 'widget'
402
+ "
403
+ >
404
+ <component
405
+ :is="getColumnWidgetName(column.params.widget)"
406
+ :field="column.params.widget"
407
+ :form-model="globalModel.formModel"
408
+ :designer="null"
409
+ :key="rowIndex"
410
+ :parent-widget="widget"
411
+ :columnConfig="column.params.columnConfig"
412
+ :subFormRowIndex="rowIndex"
413
+ :formItemProp="
414
+ getColumnProp(widget, {
415
+ column: column,
416
+ rowIndex: rowIndex,
417
+ row: row,
418
+ items: fieldModel,
419
+ })
420
+ "
421
+ :tableParam="{
422
+ column: column,
423
+ rowIndex: rowIndex,
424
+ row: row,
425
+ items: fieldModel,
426
+ }"
427
+ ></component>
428
+ </template>
429
+ <template v-else-if="column.params.formatS == 'editDelete'">
430
+ <a
431
+ href="javascript:void(0);"
432
+ class="a-link"
433
+ @click.stop="deleteRow(row, rowIndex)"
434
+ >
435
+ <el-tooltip
436
+ :enterable="false"
437
+ effect="dark"
438
+ content="删除"
439
+ placement="top"
440
+ popper-class="tooltip-skin"
441
+ >
442
+ <i class="el-icon-delete" />
443
+ </el-tooltip>
444
+ </a>
445
+ </template>
446
+ <template v-else-if="column.params.formatS == 'editButton'">
447
+ <a
448
+ href="javascript:void(0);"
449
+ class="a-link"
450
+ @click.stop="openEditDialog(obj.row)"
451
+ >
452
+ <el-tooltip
453
+ :enterable="false"
454
+ effect="dark"
455
+ content="查看"
456
+ placement="top"
457
+ popper-class="tooltip-skin"
458
+ >
459
+ <i class="el-icon-edit" />
460
+ </el-tooltip>
461
+ </a>
462
+ </template>
463
+ <template v-else>
464
+ {{
465
+ column.formatter({
466
+ cellValue: row[column.field],
467
+ column: column,
468
+ rowIndex: rowIndex,
469
+ row: row,
470
+ items: fieldModel,
471
+ })
472
+ }}
473
+ </template>
474
+ </span>
475
+ <!-- <div class="status">未审核</div>-->
476
+ </template>
477
+ </div>
478
+ <div class="t2">
479
+ <template
480
+ v-if="
481
+ !widget.options.isQueryTable || vxeOption.columns.length > 1
482
+ "
483
+ >
484
+ <template v-for="(column, columnIndex) in vxeOption.columns">
485
+ <template
486
+ v-if="!widget.options.isQueryTable || !column.isMainFiled"
487
+ >
488
+ <dl>
489
+ <div>
490
+ <dt>{{ column.title }}:</dt>
491
+ <dd>
492
+ <template v-if="!column.params.formatS">
493
+ {{ row[column.field] }}
494
+ </template>
495
+ <template
496
+ v-else-if="column.params.formatS == 'render'"
497
+ >
498
+ {{
499
+ column.slots.default({
500
+ column: column,
501
+ rowIndex: rowIndex,
502
+ row: row,
503
+ items: fieldModel,
504
+ })
505
+ }}
506
+ </template>
507
+
508
+ <template
509
+ v-else-if="
510
+ column.slots && column.slots.default == 'widget'
511
+ "
512
+ >
513
+ <component
514
+ :is="getColumnWidgetName(column.params.widget)"
515
+ :field="column.params.widget"
516
+ :form-model="globalModel.formModel"
517
+ :designer="null"
518
+ :key="rowIndex + '-' + columnIndex"
519
+ :parent-widget="widget"
520
+ :columnConfig="column.params.columnConfig"
521
+ :subFormRowIndex="rowIndex"
522
+ :formItemProp="
523
+ getColumnProp(widget, {
524
+ column: column,
525
+ rowIndex: rowIndex,
526
+ row: row,
527
+ items: fieldModel,
528
+ })
529
+ "
530
+ :tableParam="{
531
+ column: column,
532
+ rowIndex: rowIndex,
533
+ row: row,
534
+ items: fieldModel,
535
+ }"
536
+ ></component>
537
+ </template>
538
+ <template
539
+ v-else-if="column.params.formatS == 'editDelete'"
540
+ >
541
+ <a
542
+ href="javascript:void(0);"
543
+ class="a-link"
544
+ @click="deleteRow(row, rowIndex)"
545
+ >
546
+ <el-tooltip
547
+ :enterable="false"
548
+ effect="dark"
549
+ content="删除"
550
+ placement="top"
551
+ popper-class="tooltip-skin"
552
+ >
553
+ <i class="el-icon-delete" />
554
+ </el-tooltip>
555
+ </a>
556
+ </template>
557
+ <template
558
+ v-else-if="column.params.formatS == 'editButton'"
559
+ >
560
+ <a
561
+ href="javascript:void(0);"
562
+ class="a-link"
563
+ @click="openEditDialog(obj.row)"
564
+ >
565
+ <el-tooltip
566
+ :enterable="false"
567
+ effect="dark"
568
+ content="查看"
569
+ placement="top"
570
+ popper-class="tooltip-skin"
571
+ >
572
+ <i class="el-icon-edit" />
573
+ </el-tooltip>
574
+ </a>
575
+ </template>
576
+ <template v-else>
577
+ {{
578
+ column.formatter({
579
+ cellValue: row[column.field],
580
+ column: column,
581
+ rowIndex: rowIndex,
582
+ row: row,
583
+ items: fieldModel,
584
+ })
585
+ }}
586
+ </template>
587
+ </dd>
588
+ </div>
589
+ </dl>
590
+ </template>
591
+ </template>
592
+ </template>
593
+ </div>
594
+ <!-- 明细详情弹框里不摆行操作按钮区:行按钮(lineButtons)属于列表行的
595
+ 操作,详情里用不上;容器本身带 border-top 和 padding,即使按钮被
596
+ wf 联动隐藏了也会留下一条空白横条。关闭走右上角的 X。 -->
597
+ </template>
598
+
599
+ <!-- <div class="t1">
600
+ <b>订单号:21533666</b>
601
+ <div class="status">未审核</div>
602
+ </div>
603
+ <div class="t2">
604
+ <p>产地:广东佛山</p>
605
+ <p>产地:广东佛山</p>
606
+ <p>产地:广东佛山</p>
607
+ </div>-->
608
+ </div>
609
+ </div>
610
+ </div>
611
+ <span slot="footer" class="dialog-footer">
612
+ <el-button
613
+ type="primary"
614
+ plain
615
+ class="button-sty"
616
+ icon="el-icon-close"
617
+ @click="showRowDetailDialog = false"
618
+ >{{ $t1("关闭") }}</el-button
619
+ >
620
+ </span>
621
+ </el-dialog>
622
+ </container-item-wrapper>
623
+ </template>
624
+
625
+ <script>
626
+ import emitter from "../../../../components/xform/utils/emitter";
627
+ import i18n from "../../../../components/xform/utils/i18n";
628
+ import refMixin from "../../../../components/xform/form-render/refMixin";
629
+ import containerItemMixin from "./containerItemMixin";
630
+ import FieldComponents from "../../../../components/xform/form-designer/form-widget/field-widget/index";
631
+ import {
632
+ assembleAxiosConfig,
633
+ generateId,
634
+ getReportGlobalMap,
635
+ isVabsearchMultiWidget,
636
+ } from "../../../../components/xform/utils/util";
637
+ import * as formatUtil from "../../../../components/xform/utils/format";
638
+ import {
639
+ buildTextMaskContext,
640
+ markMaskedExportColumns,
641
+ } from "../../../../components/xform/utils/textMaskUtil";
642
+ import { extendDeeply } from "../../../../utils/index.js";
643
+ import { mergeQueryParam } from "../../../../components/xform/utils/queryParamUtil";
644
+ import render from "../../../../views/user/bill_setting/render.vue";
645
+
646
+ const baseRefUtil = {
647
+ emitter,
648
+ i18n,
649
+ refMixin,
650
+ containerItemMixin,
651
+ formatUtil,
652
+ assembleAxiosConfig,
653
+ getReportGlobalMap,
654
+ };
655
+
656
+ const defaultPageSize = 2;
657
+ export default {
658
+ name: "list-h5-item",
659
+ components: {
660
+ ...FieldComponents,
661
+ },
662
+ mixins: [emitter, i18n, refMixin, containerItemMixin],
663
+ componentName: "ContainerItem",
664
+ props: {
665
+ widget: Object,
666
+ parentWidget: Object,
667
+ parentList: Array,
668
+ indexOfParentList: Number,
669
+ subFormRowIndex: {
670
+ type: Number,
671
+ default: -1,
672
+ },
673
+ subFormColIndex: {
674
+ type: Number,
675
+ default: -1,
676
+ },
677
+ subFormRowId: {
678
+ type: String,
679
+ default: "",
680
+ },
681
+ },
682
+ inject: [
683
+ "refList",
684
+ "sfRefList",
685
+ "globalModel",
686
+ "getFormConfig",
687
+ "getGlobalDsv",
688
+ ],
689
+ data: function () {
690
+ let that = this;
691
+ let pageSize = defaultPageSize;
692
+ return {
693
+ showAdvancedSearch: false,
694
+ showRowDetailDialog: false,
695
+ editRow: {},
696
+ fieldModel: [],
697
+ selectedIndices: [],
698
+ /*pageSize: this.widget.options.pagination.pageSize,
699
+ pageSizes: this.widget.options.pagination.pageSizes,
700
+ currentPage: this.widget.options.pagination.currentPage,
701
+ total: this.widget.options.pagination.total,*/
702
+ formData: {
703
+ saleOrgName: "",
704
+ loginAccount: "",
705
+ mobile: "",
706
+ enabled: 1,
707
+ },
708
+ vxeOption: { columns: [] },
709
+ requestAccess: null,
710
+ columnFormatMap: {
711
+ editInput: "input",
712
+ editNumber: "number",
713
+ editDate: "date",
714
+ editSelect: "select",
715
+ editSearch: "vabsearch",
716
+ button: "button",
717
+ },
718
+ dataTableConfig: {},
719
+ advancedFormData: {},
720
+
721
+ pageSize: pageSize,
722
+ page: {
723
+ current: 1,
724
+ size: pageSize,
725
+ total: 0,
726
+ records: [],
727
+ },
728
+ keyword: null,
729
+
730
+ checkItemIds: [],
731
+ };
732
+ },
733
+ watch: {
734
+ fieldModel(val) {
735
+ this.formModel[this.fieldKeyName] = val || [];
736
+ },
737
+ },
738
+ computed: {
739
+ formConfig: function () {
740
+ return this.getFormConfig();
741
+ },
742
+ /**
743
+ * 明细行卡片样式开关。只判 === 'card':老表单该 option 为 null/undefined
744
+ * (upgradeWidgetConfig 补的是 null,运行时读不到这个键),必须退回朴素列表。
745
+ */
746
+ itemCardClass: function () {
747
+ return this.widget.options.itemStyle === "card" ? "h5-item-card" : "";
748
+ },
749
+ paginationLayout: function () {
750
+ return this.widget.options.smallPagination
751
+ ? "prev, pager, next"
752
+ : "total, sizes, prev, pager, next, jumper";
753
+ },
754
+ customClass: function () {
755
+ return this.widget.options.customClass || "";
756
+ },
757
+ singleRowSelectFlag: function () {
758
+ return !this.widget.options.showCheckBox;
759
+ },
760
+ buttonsColumnFixed: function () {
761
+ return void 0 === this.widget.options.buttonsColumnFixed
762
+ ? "right"
763
+ : !!this.widget.options.buttonsColumnFixed &&
764
+ this.widget.options.buttonsColumnFixed;
765
+ },
766
+ columns() {
767
+ let tableColumns = this.widget.options.tableColumns;
768
+ let newColumns = [];
769
+ /*newColumns.push({
770
+ type: 'checkbox',
771
+ width: 48,
772
+ resizable: false,
773
+ fixed: 'left'
774
+ });*/
775
+
776
+ let firstColumn = tableColumns.find((column) => {
777
+ return !!column.prop && !!column.showForRow;
778
+ });
779
+ let mainFiled = firstColumn?.prop;
780
+
781
+ let formRef = this.getFormRef();
782
+ let dateConfig = this.$baseLodash.cloneDeep(
783
+ formRef.getFieldWidgetByType("date").options
784
+ );
785
+ tableColumns.forEach((t) => {
786
+ let columnOption;
787
+ let widget;
788
+ let columnWidgetConfig = this.getColumnWidgetConfig(t);
789
+ let { columnSelectedWidget, columnEditFields } = columnWidgetConfig;
790
+ if (columnSelectedWidget) {
791
+ widget = columnSelectedWidget;
792
+ columnOption = widget.options;
793
+ } else {
794
+ columnOption = {};
795
+ }
796
+
797
+ let col = {
798
+ fixed: !!t.fixed && t.fixed,
799
+ field: t.prop,
800
+ title: t.label,
801
+ witdh: t.width,
802
+ sortable: t.sortable,
803
+ align: t.align ? t.align : "center",
804
+ formatter: this.formatterValue,
805
+ isMainFiled: mainFiled == t.prop,
806
+ showForRow: t.showForRow,
807
+ params: {
808
+ ...columnOption,
809
+ widget: widget,
810
+ formatS: t.formatS,
811
+ required: t.required || false,
812
+ columnConfig: t,
813
+ utcTransformEnabled: widget
814
+ ? !!columnOption.utcTransformEnabled
815
+ : !t.formatS ||
816
+ [
817
+ "d1",
818
+ "d2",
819
+ "d3",
820
+ "d4",
821
+ "d5",
822
+ "render",
823
+ "create_date",
824
+ "modify_date",
825
+ ].includes(t.formatS)
826
+ ? !!t.utcTransformEnabled
827
+ : false,
828
+ },
829
+ visible: t.show,
830
+ };
831
+
832
+ if (t.formatS == "render") {
833
+ let r = t.render ? new Function("params", "h", t.render) : null;
834
+ col.slots = {
835
+ default: (params, h) => {
836
+ return r ? r.call(this, params, h) : "";
837
+ },
838
+ };
839
+ } else if (columnSelectedWidget) {
840
+ col.slots = {
841
+ default: "widget",
842
+ };
843
+ } else if (["editDelete", "editButton"].includes(t.formatS)) {
844
+ col.slots = {
845
+ default: t.formatS,
846
+ };
847
+ }
848
+
849
+ newColumns.push(col);
850
+ });
851
+
852
+ /*if (baseRefUtil.tableConfig && baseRefUtil.tableConfig.className == "list-table") {
853
+ if (tableColumns.length) {
854
+ let tableColumn = [tableColumns.length - 1];
855
+ if (tableColumn.fixed != "right") {
856
+ newColumns.push({
857
+ width: 47,
858
+ title: '',
859
+ fixed: 'right',
860
+ sortable: false,
861
+ });
862
+ }
863
+ }
864
+ }*/
865
+ return newColumns;
866
+ },
867
+ formModel: {
868
+ cache: !1,
869
+ get: function () {
870
+ return this.globalModel.formModel;
871
+ },
872
+ },
873
+ formDataId() {
874
+ let formRef = this.getFormRef();
875
+ return formRef.dataId;
876
+ },
877
+ },
878
+ created: function () {
879
+ if (!this.formModel[this.fieldKeyName])
880
+ this.formModel[this.fieldKeyName] = [];
881
+ this.initRefList();
882
+ this.handleOnCreated();
883
+ },
884
+ mounted: async function () {
885
+ this.handleOnMounted();
886
+ this.initTableList();
887
+ },
888
+ beforeDestroy: function () {
889
+ this.unregisterFromRefList();
890
+ },
891
+ methods: {
892
+ openAdvancedSearchDialog() {
893
+ /*let formData = this.formModel;
894
+ let advancedFormData = {};
895
+ this.vxeOption.searchColumns.forEach(form1Field => {
896
+ let value = formData[form1Field.field];
897
+ if (value !== null && value !== undefined) {
898
+ advancedFormData[form1Field.field] = value
899
+ } else {
900
+ advancedFormData[form1Field.field] = null
901
+ }
902
+ });
903
+ this.advancedFormData = advancedFormData;*/
904
+ this.showAdvancedSearch = true;
905
+ },
906
+ confirmAdvancedSearchDialog() {
907
+ let formModel = this.formModel;
908
+ let advancedFormData = this.advancedFormData;
909
+ this.vxeOption.searchColumns.forEach((form1Field) => {
910
+ let value = formModel[form1Field.field];
911
+ if (value !== null && value !== undefined) {
912
+ advancedFormData[form1Field.field] = value;
913
+ } else {
914
+ advancedFormData[form1Field.field] = null;
915
+ }
916
+ });
917
+ this.searchEvent();
918
+ },
919
+ advancedClear() {
920
+ this.vxeOption.searchColumns.forEach((form1Field) => {
921
+ let widgetRef = this.getWidgetRef(form1Field.widget.options.name);
922
+ if (widgetRef && widgetRef.setValue) widgetRef.setValue(null);
923
+ });
924
+ },
925
+ setValue(val) {
926
+ let rows = val || [];
927
+ this.formModel[this.fieldKeyName] = rows;
928
+ this.fieldModel = rows;
929
+ },
930
+ getValue() {
931
+ return this.formModel[this.fieldKeyName];
932
+ },
933
+ getFieldKeyName(widget) {
934
+ let o = widget.options.name;
935
+ return (widget.options.keyNameEnabled && widget.options.keyName) || o;
936
+ },
937
+ formatterValue: function ({ cellValue, row, column }) {
938
+ if (cellValue === null || cellValue === undefined) return cellValue;
939
+ if (!column.params) return cellValue;
940
+
941
+ let value = cellValue;
942
+ const formatS = column.params.formatS;
943
+ const dateFormats = [
944
+ "d1",
945
+ "d2",
946
+ "d3",
947
+ "d4",
948
+ "d5",
949
+ "render",
950
+ "create_date",
951
+ "modify_date",
952
+ ];
953
+ const isColumnLevelUtc =
954
+ !formatS || dateFormats.includes(formatS);
955
+ const utcTransformEnabled = isColumnLevelUtc
956
+ ? !!(
957
+ column.params.utcTransformEnabled ||
958
+ column.params.columnConfig?.utcTransformEnabled
959
+ )
960
+ : false;
961
+
962
+ if (utcTransformEnabled && value != null && value !== "") {
963
+ value = this.$utcToLocal(value);
964
+ }
965
+
966
+ if (!formatS) {
967
+ return value;
968
+ }
969
+
970
+ switch (formatS) {
971
+ case "d1":
972
+ return baseRefUtil.formatUtil.formatDate1(value);
973
+ case "d2":
974
+ return baseRefUtil.formatUtil.formatDate2(value);
975
+ case "d3":
976
+ return baseRefUtil.formatUtil.formatDate3(value);
977
+ case "d4":
978
+ return baseRefUtil.formatUtil.formatDate4(value);
979
+ case "d5":
980
+ return baseRefUtil.formatUtil.formatDate4(value);
981
+ case "n1":
982
+ return baseRefUtil.formatUtil.formatNumber1(value);
983
+ case "n2":
984
+ return baseRefUtil.formatUtil.formatNumber2(value);
985
+ case "n3":
986
+ return baseRefUtil.formatUtil.formatNumber3(value);
987
+ case "n4":
988
+ return baseRefUtil.formatUtil.formatNumber4(value);
989
+ case "n5":
990
+ return baseRefUtil.formatUtil.formatNumber5(value);
991
+ case "n6":
992
+ return baseRefUtil.formatUtil.formatNumber6(value);
993
+ case "n7":
994
+ return baseRefUtil.formatUtil.formatNumber7(value);
995
+ }
996
+ return value;
997
+ },
998
+ searchEvent() {
999
+ // this.getGridTable().commitProxy('reload');
1000
+ this.loadAccessData();
1001
+ },
1002
+ async resetEvent() {
1003
+ let formData = this.formModel;
1004
+ this.keyword = null;
1005
+ this.widget.widgetList &&
1006
+ this.widget.widgetList.forEach((subWidget) => {
1007
+ let widgetRef = this.getWidgetRef(subWidget.options.name);
1008
+ let fieldKeyName = this.getFieldKeyName(subWidget);
1009
+ formData[fieldKeyName] = null;
1010
+ this.advancedFormData[fieldKeyName] = null;
1011
+ if (widgetRef && widgetRef.setValue) widgetRef.setValue(null);
1012
+ });
1013
+ // this.getGridTable().commitProxy('reload');
1014
+ this.loadAccessData();
1015
+ },
1016
+ openEditDialog(row) {
1017
+ let formRef = this.getFormRef();
1018
+ let parentTarget = formRef.$attrs["parent-target"];
1019
+ parentTarget &&
1020
+ parentTarget.$attrs.openEditDialog &&
1021
+ parentTarget.$attrs.openEditDialog(row);
1022
+ },
1023
+ initTableList() {
1024
+ let that = this;
1025
+ let path = null;
1026
+ let paramFun = null;
1027
+ let tableRef = this.getTableRef();
1028
+ let isQueryTable = this.widget.options.isQueryTable || false;
1029
+ let isDataPage = this.widget.options.accessReturnType === "2";
1030
+ let isQueryAllPage = !this.widget.options.isNotQueryAllPage;
1031
+ let searchColumns = null;
1032
+ if (isQueryTable) {
1033
+ path = "#";
1034
+ paramFun = () => {
1035
+ let conditions = this.getSearchCondition();
1036
+ if (this.widget.options.showPagination) {
1037
+ let searchCount = true;
1038
+ if (isQueryAllPage === false) {
1039
+ searchCount = false;
1040
+ }
1041
+ conditions.current = this.page.current;
1042
+ conditions.size = this.page.size;
1043
+ conditions.searchCount = searchCount;
1044
+ }
1045
+ return conditions;
1046
+ };
1047
+
1048
+ searchColumns = [];
1049
+ let widgetList = this.widget.widgetList;
1050
+ let typeMap = {
1051
+ input: "input",
1052
+ number: "number",
1053
+ inputBatch: "inputBatch",
1054
+ date: "date",
1055
+ };
1056
+
1057
+ widgetList.forEach((widget) => {
1058
+ if ("container" !== widget.category) {
1059
+ let options = widget.options;
1060
+ let type = typeMap[widget.type] || null;
1061
+ searchColumns.push({
1062
+ title: options.label,
1063
+ field: this.getFieldKeyName(widget),
1064
+ type: type,
1065
+ common: true,
1066
+ disabled: options.disabled,
1067
+ defaultValueEnabled: !!type,
1068
+ slot: options.name,
1069
+ widget: widget,
1070
+ formItem: false,
1071
+ });
1072
+ }
1073
+ });
1074
+ }
1075
+
1076
+ let formRef = this.getFormRef();
1077
+ let dataTableConfig = formRef.$attrs.dataTableOption || {};
1078
+ this.dataTableConfig = dataTableConfig;
1079
+
1080
+ let tableOption = {
1081
+ vue: this,
1082
+ tableRef: tableRef,
1083
+ tableName: this.widget.options.name,
1084
+ param: paramFun,
1085
+ columns: this.columns,
1086
+ searchColumns: searchColumns,
1087
+ vform: true,
1088
+ config: {
1089
+ height: isQueryTable ? "550px" : this.widget.options.tableHeight,
1090
+ /*pagerConfig: {
1091
+ autoHidden: !this.widget.options.showPagination
1092
+ },*/
1093
+ ...dataTableConfig.config,
1094
+ },
1095
+ exportAjax: (param) => {
1096
+ let $grid = this.getGridTable();
1097
+ let pageSize = param.size;
1098
+ let currentPage = param.current;
1099
+ let page = { pageSize, currentPage };
1100
+ return this.vxeOption.config.proxyConfig.ajax.query.call(this, {
1101
+ page,
1102
+ param,
1103
+ });
1104
+ },
1105
+ };
1106
+
1107
+ if (isQueryTable) {
1108
+ tableOption.path = path;
1109
+ tableOption.config.proxyConfig = {
1110
+ props: {
1111
+ result: isDataPage ? "objx.records" : "objx", // 配置响应结果列表字段
1112
+ total: isDataPage ? "objx.total" : "objx.length", // 配置响应结果总页数字段
1113
+ },
1114
+ ajax: {
1115
+ // 接收 Promise 对象
1116
+ query: ({ page, sorts, filters, form, param }) => {
1117
+ let scriptCode = this.getScriptCode();
1118
+ let formData = tableOption.param ? tableOption.param() || {} : {};
1119
+ const queryParams = Object.assign({}, formData);
1120
+
1121
+ if (filters) {
1122
+ filters.forEach(({ property, values }) => {
1123
+ queryParams[property] = values.join(",");
1124
+ });
1125
+ }
1126
+
1127
+ if (page.pageSize !== undefined) {
1128
+ queryParams.size = page.pageSize;
1129
+ queryParams.current = page.currentPage;
1130
+ }
1131
+
1132
+ queryParams.searchCount = isQueryAllPage !== false;
1133
+ Object.assign(queryParams, param);
1134
+
1135
+ // 与 PC 链路同规则:condition 追加合并,其余键平铺覆盖
1136
+ if (that.dataTableConfig.queryParam) {
1137
+ mergeQueryParam(queryParams, that.dataTableConfig.queryParam);
1138
+ }
1139
+
1140
+ return new Promise((resolve, reject) => {
1141
+ let reqData = {
1142
+ ...queryParams,
1143
+ };
1144
+ if (scriptCode) {
1145
+ let done = (res) => {
1146
+ resolve(res);
1147
+ if (res.type === "success") {
1148
+ let rows = res.objx
1149
+ ? res.objx.records || res.objx || []
1150
+ : [];
1151
+ this.setValue(rows);
1152
+ if (res.objx && res.objx.records !== undefined) {
1153
+ this.page = {
1154
+ current: res.objx.current ?? this.page.current,
1155
+ size: res.objx.size ?? this.page.size,
1156
+ total: res.objx.total ?? 0,
1157
+ records: rows,
1158
+ };
1159
+ }
1160
+ that.$nextTick(() => {
1161
+ setTimeout(function () {
1162
+ dataTableConfig.callback &&
1163
+ dataTableConfig.callback(rows);
1164
+ tableOption.callback && tableOption.callback(rows);
1165
+ that.handleCustomEvent(
1166
+ that.widget.options.formScriptCallback,
1167
+ ["rows"],
1168
+ [rows]
1169
+ );
1170
+ }, 0);
1171
+ });
1172
+ } else {
1173
+ this.page = {
1174
+ current: 1,
1175
+ size: this.pageSize,
1176
+ total: 0,
1177
+ records: [],
1178
+ };
1179
+ this.setValue([]);
1180
+ }
1181
+ };
1182
+ this.loadDefaultQueryList(reqData, done).catch((error) => {
1183
+ reject(error);
1184
+ });
1185
+ } else {
1186
+ resolve();
1187
+ }
1188
+ });
1189
+ },
1190
+ },
1191
+ };
1192
+ tableOption.callback = (rows) => {
1193
+ // this.fieldModel = rows;
1194
+ this.formModel[this.fieldKeyName] = rows;
1195
+ };
1196
+ }
1197
+ this.vxeOption = tableOption;
1198
+ this.loadAccessData();
1199
+
1200
+ /*this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
1201
+ this.vxeOption = opts;
1202
+ /!*if (!isQueryTable) {
1203
+ this.$nextTick(() => {
1204
+ this.loadAccessData();
1205
+ });
1206
+ }*!/
1207
+ });
1208
+ if (!isQueryTable) {
1209
+ this.loadAccessData();
1210
+ }*/
1211
+ },
1212
+ getTableCondition() {
1213
+ if (this.widget.options.tableCondition) {
1214
+ let e = new Function(this.widget.options.tableCondition);
1215
+ return e.call(this);
1216
+ }
1217
+ },
1218
+ getSearchCondition() {
1219
+ // let extraAccessData = this.extraAccessData || {};
1220
+ let searchFormData = this.getSearchFormData();
1221
+ let conditions = {
1222
+ // ...this.getTableCondition(),
1223
+ ...searchFormData,
1224
+ // ...this.advancedFormData,
1225
+ // ...extraAccessData,
1226
+ };
1227
+ if (this.keyword) {
1228
+ conditions.keyword = this.keyword;
1229
+ }
1230
+ return conditions;
1231
+ },
1232
+ getSearchFormData() {
1233
+ let map = { condition: [] };
1234
+ let formData = this.globalModel.formModel;
1235
+ let widgetList = this.widget.widgetList;
1236
+ if (!!widgetList && widgetList.length > 0) {
1237
+ let loop = (wItem) => {
1238
+ if (wItem.category === "container") {
1239
+ loop(wItem);
1240
+ } else {
1241
+ let formField = this.getFieldKeyName(wItem);
1242
+ let vaule = formData[formField];
1243
+ if (vaule !== null && vaule !== undefined && vaule !== "") {
1244
+ if (!Array.isArray(vaule) || vaule.length > 0) {
1245
+ let item = {
1246
+ value: vaule,
1247
+ field: formField,
1248
+ filter: null,
1249
+ };
1250
+ let wType = wItem.type;
1251
+ if (["date-range", "time-range"].includes(wType)) {
1252
+ item.filter = "between";
1253
+ } else if (
1254
+ ["input-batch", "checkbox"].includes(wType) ||
1255
+ (wType === "select" && wItem.options.multiple)
1256
+ ) {
1257
+ item.filter = "in";
1258
+ } else if (
1259
+ ["radio", "time", "date"].includes(wType) ||
1260
+ (wType === "select" && !wItem.options.multiple)
1261
+ ) {
1262
+ item.filter = "eq";
1263
+ } else {
1264
+ item.filter = "like";
1265
+ }
1266
+ map.condition.push(item);
1267
+ }
1268
+ }
1269
+ }
1270
+ };
1271
+ widgetList.forEach((wItem) => {
1272
+ loop(wItem);
1273
+ });
1274
+ }
1275
+ return map;
1276
+ },
1277
+ loadTableData(param) {
1278
+ if (this.dataTableConfig?.queryFormDialog !== true) {
1279
+ this.checkItemIds = [];
1280
+ }
1281
+ param = param || {};
1282
+ let pageSize = param.size || this.pageSize;
1283
+ let currentPage = param.current || 1;
1284
+ let page = { pageSize, currentPage };
1285
+ return this.vxeOption.config.proxyConfig.ajax.query.call(this, {
1286
+ page,
1287
+ param,
1288
+ });
1289
+ },
1290
+ loadAccessData() {
1291
+ let isQueryTable = this.widget.options.isQueryTable || false;
1292
+ if (isQueryTable) {
1293
+ this.loadTableData({});
1294
+ return;
1295
+ }
1296
+ if (!isQueryTable && !this.formDataId) return;
1297
+
1298
+ let scriptCode = this.getScriptCode();
1299
+ if (scriptCode) {
1300
+ this.loadDefaultViewList();
1301
+ }
1302
+ },
1303
+ getAccessParam() {
1304
+ if (!this.widget.options.formScriptParam) return;
1305
+ return this.handleCustomEvent(this.widget.options.formScriptParam);
1306
+ },
1307
+ getScriptCode() {
1308
+ let accessReturnType = this.widget.options.accessReturnType;
1309
+ let defaultScriptCode = "getList";
1310
+ if (accessReturnType === "1") {
1311
+ defaultScriptCode = "getList";
1312
+ } else if (accessReturnType === "2") {
1313
+ defaultScriptCode = "getPage";
1314
+ }
1315
+ return this.widget.options.formScriptCode || defaultScriptCode;
1316
+ },
1317
+ getAttachmentType() {
1318
+ let result = [];
1319
+ let tableColumns = this.widget.options.tableColumns || [];
1320
+ tableColumns.forEach((item) => {
1321
+ if (item.prop && item.label && item.formatS === "editAttachment") {
1322
+ result.push(item.prop);
1323
+ }
1324
+ });
1325
+ return result;
1326
+ },
1327
+ getHttpConfigForUser() {
1328
+ return {
1329
+ addCreateInfo: true,
1330
+ queryCreateInfo: window.$vueRoot.$store.getters.queryCreateInfo || "0",
1331
+ };
1332
+ },
1333
+ /**
1334
+ * 构造表单脚本请求的 data 参数(通用)。
1335
+ * 勾选"请求去掉data层"(removeDataLevel)时,内层参数平铺到外层,不再包一层 data。
1336
+ */
1337
+ buildFormScriptData(reportTemplate, innerData, taBm) {
1338
+ let base = {
1339
+ formCode: reportTemplate.formCode,
1340
+ formVersion: reportTemplate.formVersion,
1341
+ taBm: taBm || this.fieldKeyName,
1342
+ };
1343
+ return this.widget.options.removeDataLevel
1344
+ ? { ...base, ...(innerData || {}) }
1345
+ : { ...base, data: innerData || {} };
1346
+ },
1347
+ loadDefaultQueryList(reqData, done) {
1348
+ let reportTemplate = this.getFormRef().reportTemplate;
1349
+ let scriptCode = this.getScriptCode();
1350
+ let accessParam = this.getAccessParam() || {};
1351
+ let otherParam = {};
1352
+ let attachmentType = this.getAttachmentType();
1353
+ if (attachmentType.length) {
1354
+ otherParam.attachmentType = attachmentType;
1355
+ }
1356
+ let defaultOption = this.getHttpConfigForUser();
1357
+ let requestData = {
1358
+ ...reqData,
1359
+ ...otherParam,
1360
+ };
1361
+ requestData = extendDeeply(requestData, accessParam);
1362
+ return this.formHttp({
1363
+ scriptCode: scriptCode,
1364
+ data: this.buildFormScriptData(reportTemplate, requestData),
1365
+ isLoading: false,
1366
+ ...defaultOption,
1367
+ callback: (res) => {
1368
+ done(res);
1369
+ },
1370
+ });
1371
+ },
1372
+ loadDefaultViewList() {
1373
+ let dataId = this.formDataId;
1374
+ let reportTemplate = this.getFormRef().reportTemplate;
1375
+ let accessParam = this.getAccessParam() || {};
1376
+ let otherParam = {};
1377
+ let attachmentType = this.getAttachmentType();
1378
+ if (attachmentType.length) {
1379
+ otherParam.attachmentType = attachmentType;
1380
+ }
1381
+ let scriptCode = this.getScriptCode();
1382
+ return this.formHttp({
1383
+ scriptCode: scriptCode,
1384
+ data: this.buildFormScriptData(reportTemplate, {
1385
+ id: dataId,
1386
+ ...otherParam,
1387
+ ...accessParam,
1388
+ }),
1389
+ callback: (res) => {
1390
+ let rows = res.objx ? res.objx.records || res.objx || [] : [];
1391
+ this.setValue(rows);
1392
+ this.handleCustomEvent(
1393
+ this.widget.options.formScriptCallback,
1394
+ ["rows"],
1395
+ [rows]
1396
+ );
1397
+ },
1398
+ });
1399
+ },
1400
+ getReqParam(item, dataId, billData) {
1401
+ let param = {};
1402
+ if (item.accessParam) {
1403
+ if (typeof item.accessParam === "string") {
1404
+ let n = new Function("billData", item.accessParam);
1405
+ param = n.call(this, billData);
1406
+ } else {
1407
+ param = item.accessParam;
1408
+ }
1409
+ } else {
1410
+ param = { id: dataId };
1411
+ }
1412
+ return param;
1413
+ },
1414
+ async deleteRow(row, rowIndex) {
1415
+ this.fieldModel.splice(rowIndex, 1);
1416
+ },
1417
+ createNewTableData() {
1418
+ let vailColumns = this.widget.options.tableColumns.filter(
1419
+ (item) => item.prop && item.label
1420
+ );
1421
+ let newData = {};
1422
+ vailColumns.forEach((item) => {
1423
+ if (item.formatS == "editSearch") {
1424
+ newData[item.prop] = null;
1425
+ let vabSearchName = item?.columnOption?.vabSearchName;
1426
+ if (vabSearchName) newData[vabSearchName] = null;
1427
+ } else {
1428
+ newData[item.prop] = null;
1429
+ }
1430
+ });
1431
+ return newData;
1432
+ },
1433
+ addTableData(rows, field) {
1434
+ let formDataModel = this.formModel;
1435
+ let tableRows = this.fieldModel;
1436
+ let fullData = this.fieldModel;
1437
+ let items;
1438
+ if (field) {
1439
+ let keys = fullData.map((item) => {
1440
+ return item[field] + "";
1441
+ });
1442
+ items = rows.filter((item) => {
1443
+ let value = item[field] + "";
1444
+ return !keys.includes(value);
1445
+ });
1446
+ } else {
1447
+ items = rows;
1448
+ }
1449
+ if (items) {
1450
+ if (items.length) {
1451
+ items.forEach((row) => {
1452
+ let newData = this.createNewTableData();
1453
+ Object.assign(newData, row);
1454
+
1455
+ tableRows.push(newData);
1456
+ });
1457
+ }
1458
+ } else {
1459
+ let newData = this.createNewTableData();
1460
+ tableRows.push(newData);
1461
+ }
1462
+ // this.formModel[this.fieldKeyName] = this.$baseLodash(this.fieldModel)
1463
+ // this.fieldModel = tableRows
1464
+ // $grid.loadData(tableRows);
1465
+ },
1466
+ getColumnWidgetConfig(row) {
1467
+ let formRef = this.getFormRef();
1468
+ let formatS = row.formatS;
1469
+ let columnSelectedWidget = null;
1470
+ let columnEditFields = null;
1471
+
1472
+ let type = this.columnFormatMap[row.formatS];
1473
+
1474
+ if (type) {
1475
+ columnSelectedWidget = this.$baseLodash.cloneDeep(
1476
+ formRef.getFieldWidgetByType(type)
1477
+ );
1478
+ let tmpId = generateId();
1479
+ let idVal = row.prop ? row.prop : type + tmpId;
1480
+ columnSelectedWidget.id = idVal;
1481
+ columnSelectedWidget.options.name = idVal;
1482
+ if (row.columnOption && Object.keys(row.columnOption).length) {
1483
+ row.columnOption.required = row.required || false;
1484
+ columnSelectedWidget.options = row.columnOption;
1485
+ } else {
1486
+ columnSelectedWidget.options.required = row.required || false;
1487
+ row.columnOption = columnSelectedWidget.options;
1488
+ }
1489
+ columnSelectedWidget.options.name = row.prop;
1490
+ columnSelectedWidget.options.label = row.label;
1491
+ columnSelectedWidget.options.labelHidden = true;
1492
+ }
1493
+ return { columnSelectedWidget, columnEditFields };
1494
+ },
1495
+ getColumnProp(widget, obj) {
1496
+ let isQueryTable = this.widget.options.isQueryTable || false;
1497
+ if (isQueryTable) {
1498
+ return "false";
1499
+ } else {
1500
+ let propName =
1501
+ this.getFieldKeyName(widget) +
1502
+ "." +
1503
+ obj.rowIndex +
1504
+ "." +
1505
+ obj.column.field;
1506
+ if (
1507
+ this.isVabsearchFlagWidget(widget) &&
1508
+ !isVabsearchMultiWidget(widget)
1509
+ ) {
1510
+ let vabSearchName = obj.column.params.widget.options.vabSearchName;
1511
+ propName =
1512
+ this.getFieldKeyName(widget) +
1513
+ "." +
1514
+ obj.rowIndex +
1515
+ "." +
1516
+ vabSearchName;
1517
+ }
1518
+ return propName;
1519
+ }
1520
+ },
1521
+ isVabsearchFlagWidget(widget) {
1522
+ let type = widget?.type;
1523
+ return (
1524
+ type === "vabsearch" ||
1525
+ type === "singerSearch" ||
1526
+ type === "multiSearch"
1527
+ );
1528
+ },
1529
+ getColumnWidgetName(e) {
1530
+ if (e && e.type) {
1531
+ return e.type + "-widget";
1532
+ }
1533
+ },
1534
+ getGridTable() {
1535
+ let $grid = this.$refs[this.getTableRef()];
1536
+ return $grid;
1537
+ },
1538
+ getTableRef() {
1539
+ let tableRef = this.widget.id;
1540
+ return tableRef;
1541
+ },
1542
+ getUrl() {
1543
+ let accessUrl = this.widget.options.accessUrl;
1544
+ return accessUrl || USER_PREFIX + `/form_ins/getFormInsData`;
1545
+ },
1546
+ openRowDetailDialog(row) {
1547
+ /*let isQueryTable = this.widget.options.isQueryTable || false;
1548
+ if(isQueryTable)return;*/
1549
+ this.editRow = row;
1550
+ this.showRowDetailDialog = true;
1551
+ },
1552
+ changePageNew({ type, currentPage, pageSize, $event }) {
1553
+ this.loadTableData({
1554
+ size: pageSize + "",
1555
+ current: currentPage + "",
1556
+ });
1557
+ },
1558
+ /** 导出前按脱敏规则剔除列,实现见 textMaskUtil.markMaskedExportColumns。 */
1559
+ markMaskedColumnsForExport() {
1560
+ markMaskedExportColumns(
1561
+ this.getGridTable(),
1562
+ buildTextMaskContext(this.getFormRef(), this.$store.getters.companyCode)
1563
+ );
1564
+ },
1565
+ exportData(option) {
1566
+ this.markMaskedColumnsForExport();
1567
+ let tableRef = this.getTableRef();
1568
+ let serverName = this.getFormRef().reportTemplate.serverName;
1569
+ option.prefix = option.prefix || serverName;
1570
+ this.$excelExport({ targetRef: tableRef, ...option });
1571
+ },
1572
+ /**
1573
+ * 行级对比标记,复用 indexMixin 的 getCompareRowClass(data-table 也在用,
1574
+ * 见 data-table-mixin.js 的 rowClassName)。返回
1575
+ * xform-compare-row-new / xform-compare-row-changed / ""。
1576
+ * 未参与对比的子表由 getCompareRowClass 内部的 isCompareSubTable 拦掉,
1577
+ * 不会满屏高亮,这里无需重复判断。
1578
+ */
1579
+ getRowCompareClass(row) {
1580
+ let formRef = this.getFormRef();
1581
+ if (!formRef || !formRef.isCompare || !formRef.getCompareRowClass)
1582
+ return "";
1583
+ return formRef.getCompareRowClass(this.fieldKeyName, row);
1584
+ },
1585
+ /**
1586
+ * 明细行的显示文本。
1587
+ *
1588
+ * 行上不渲染编辑控件,所以有选项的列(下拉/状态/单选/多选)必须自己把
1589
+ * value 换成 label —— 否则状态列会显示成 1 而不是「审核中」,
1590
+ * 因为 formatterValue 只做日期与数字格式化,不查选项表。
1591
+ */
1592
+ getColumnDisplayText(column, row, rowIndex) {
1593
+ let value = row[column.field];
1594
+ let columnWidget = column.params ? column.params.widget : null;
1595
+ let widgetOptions = (columnWidget && columnWidget.options) || {};
1596
+ let optionList = widgetOptions.optionItems || widgetOptions.statusParam;
1597
+ if (optionList && optionList.length) {
1598
+ let hit = optionList.filter((o) => String(o.value) === String(value))[0];
1599
+ if (hit) return hit.label;
1600
+ }
1601
+ return column.formatter({
1602
+ cellValue: value,
1603
+ column: column,
1604
+ rowIndex: rowIndex,
1605
+ row: row,
1606
+ items: this.fieldModel,
1607
+ });
1608
+ },
1609
+ /**
1610
+ * 行点击:
1611
+ * - 查询选择场景(isQueryTable):点行是勾选,保持原行为;
1612
+ * - 明细行:点整行打开明细详情(行上不再摆删除/操作按钮)。
1613
+ */
1614
+ onRowClick(row) {
1615
+ if (this.widget.options.isQueryTable) {
1616
+ this.itemCheck(row);
1617
+ return
1618
+ }
1619
+ this.openRowDetailDialog(row);
1620
+ },
1621
+ itemCheck(row) {
1622
+ let dataTableConfig = this.dataTableConfig;
1623
+ if (dataTableConfig) {
1624
+ let checkItemIds = this.checkItemIds;
1625
+ let checked;
1626
+ if (checkItemIds.includes(row.id)) {
1627
+ checked = false;
1628
+ checkItemIds.splice(checkItemIds.indexOf(row.id), 1);
1629
+ } else {
1630
+ checked = true;
1631
+ checkItemIds.push(row.id);
1632
+ }
1633
+ let param = { row, checked };
1634
+ dataTableConfig.onCheckboxChange &&
1635
+ dataTableConfig.onCheckboxChange(param);
1636
+ }
1637
+ },
1638
+ },
1639
+ };
1640
+ </script>
1641
+
1642
+ <style lang="scss" scoped></style>