cloud-web-corejs 1.0.276 → 1.0.277

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 (305) hide show
  1. package/package.json +28 -24
  2. package/src/App.vue +73 -71
  3. package/src/api/user.js +21 -0
  4. package/src/components/baseArea/index.vue +82 -27
  5. package/src/components/baseTabs/mixins.js +5 -1
  6. package/src/components/luckysheet/dialog.vue +1 -1
  7. package/src/components/micro-view-host/contract.js +66 -0
  8. package/src/components/micro-view-host/index.vue +148 -0
  9. package/src/components/table/tableForm.vue +16 -5
  10. package/src/components/table/tableFormMixin.js +35 -7
  11. package/src/components/vb-tabs/x-tabs.vue +167 -143
  12. package/src/components/wf/content.vue +14 -0
  13. package/src/components/wf/content2.vue +4 -2
  14. package/src/components/wf/wf.js +74 -23
  15. package/src/components/wf/wfActionDropdown.vue +85 -0
  16. package/src/components/wf/wfActionItems.js +136 -0
  17. package/src/components/wf/wfAutoConfirm.js +55 -0
  18. package/src/components/wf/wfButtonName.js +60 -0
  19. package/src/components/wf/wfUserRange.js +53 -0
  20. package/src/components/wf/wfUtil.js +373 -295
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. package/src/components/xform/form-designer/designer.js +2085 -2025
  29. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +9 -11
  30. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +76 -75
  31. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +10 -4
  32. package/src/components/xform/form-designer/form-widget/container-widget/detail-plain-widget.vue +76 -0
  33. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +59 -5
  34. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +38 -17
  35. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +138 -13
  36. package/src/components/xform/form-designer/form-widget/dialog/formFieldDialog.vue +1 -1
  37. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1774 -1772
  38. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +2 -3
  39. package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +1 -1
  40. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +66 -53
  41. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +287 -214
  42. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +76 -66
  43. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +208 -124
  44. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +3 -9
  45. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +11 -2
  46. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +7 -6
  47. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +43 -19
  48. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +680 -372
  49. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +879 -763
  50. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +17 -2
  51. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +3 -9
  52. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +3 -9
  53. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +3 -9
  54. package/src/components/xform/form-designer/form-widget/field-widget/mixins/relative-default-mixin.js +107 -0
  55. package/src/components/xform/form-designer/form-widget/field-widget/mixins/relativeDateUtil.js +321 -0
  56. package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -0
  57. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +13 -0
  58. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +13 -8
  59. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +4 -9
  60. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +3 -0
  61. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +120 -120
  62. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +4 -0
  63. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +11 -0
  64. package/src/components/xform/form-designer/form-widget/field-widget/switch-widget.vue +9 -1
  65. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +1 -1
  66. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +7 -3
  67. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +4 -2
  68. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +36 -5
  69. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +338 -374
  70. package/src/components/xform/form-designer/form-widget/index.vue +6 -1
  71. package/src/components/xform/form-designer/form-widget/indexMixin.js +29 -25
  72. package/src/components/xform/form-designer/index.vue +194 -191
  73. package/src/components/xform/form-designer/indexMixin.js +860 -847
  74. package/src/components/xform/form-designer/setting-panel/dataSource-setting.vue +397 -397
  75. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +602 -601
  76. package/src/components/xform/form-designer/setting-panel/form-setting.vue +1790 -1483
  77. package/src/components/xform/form-designer/setting-panel/index.vue +2 -7
  78. package/src/components/xform/form-designer/setting-panel/indexMixin.js +370 -335
  79. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +585 -544
  80. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +1 -1
  81. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +1 -1
  82. package/src/components/xform/form-designer/setting-panel/property-editor/alignType-editor.vue +1 -1
  83. package/src/components/xform/form-designer/setting-panel/property-editor/buttonIcon-editor.vue +14 -15
  84. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +1 -1
  85. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +1 -1
  86. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +3 -3
  87. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +124 -125
  88. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1151 -957
  89. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +96 -74
  90. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-plain/detail-plain-editor.vue +75 -0
  91. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/colHeight-editor.vue +1 -1
  92. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +14 -13
  93. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-height-editor.vue +1 -1
  94. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  95. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  96. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  97. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue +4 -4
  98. package/src/components/xform/form-designer/setting-panel/property-editor/container-h5-card/h5-card-editor.vue +124 -124
  99. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +26 -31
  100. package/src/components/xform/form-designer/setting-panel/property-editor/container-panel/height-editor.vue +1 -1
  101. package/src/components/xform/form-designer/setting-panel/property-editor/container-panel/width-editor.vue +1 -1
  102. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue +119 -119
  103. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tabClass-editor.vue +45 -45
  104. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +340 -342
  105. package/src/components/xform/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue +1 -1
  106. package/src/components/xform/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue +1 -1
  107. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree/tree-customClass-editor.vue +2 -2
  108. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree-pane/tree-pane-editor.vue +1 -1
  109. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonLabel-editor.vue +1 -1
  110. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/okButtonLabel-editor.vue +1 -1
  111. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/title-editor.vue +1 -1
  112. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue +1 -1
  113. package/src/components/xform/form-designer/setting-panel/property-editor/containerClass-editor.vue +1 -1
  114. package/src/components/xform/form-designer/setting-panel/property-editor/customClass-editor.vue +1 -1
  115. package/src/components/xform/form-designer/setting-panel/property-editor/defaultValue-editor.vue +1 -1
  116. package/src/components/xform/form-designer/setting-panel/property-editor/descriptionsItems-editor.vue +4 -4
  117. package/src/components/xform/form-designer/setting-panel/property-editor/downloadButtonFlag-editor.vue +3 -3
  118. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +6 -2
  119. package/src/components/xform/form-designer/setting-panel/property-editor/dsName-editor.vue +1 -1
  120. package/src/components/xform/form-designer/setting-panel/property-editor/echartHeight-editor.vue +1 -1
  121. package/src/components/xform/form-designer/setting-panel/property-editor/endPlaceholder-editor.vue +1 -1
  122. package/src/components/xform/form-designer/setting-panel/property-editor/field-accessUrl/accessUrl-editor.vue +2 -2
  123. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +1 -1
  124. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaMinLevel-editor.vue +50 -50
  125. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +1 -1
  126. package/src/components/xform/form-designer/setting-panel/property-editor/field-autocomplete/autocomplete-vabSearchName-editor.vue +7 -7
  127. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/addTableData-event-editor.vue +84 -85
  128. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/button-type-editor.vue +1 -1
  129. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindActions.js +262 -0
  130. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +97 -88
  131. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/form-host-event-editor.vue +188 -0
  132. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/icon-editor.vue +14 -15
  133. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +27 -10
  134. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/checkStrictly-editor.vue +11 -13
  135. package/src/components/xform/form-designer/setting-panel/property-editor/field-common/keyName-editor.vue +74 -67
  136. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +27 -5
  137. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +35 -18
  138. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-format-editor.vue +1 -1
  139. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-type-editor.vue +1 -1
  140. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-valueFormat-editor.vue +1 -1
  141. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +1 -1
  142. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +35 -18
  143. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-format-editor.vue +1 -1
  144. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-type-editor.vue +1 -1
  145. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue +1 -1
  146. package/src/components/xform/form-designer/setting-panel/property-editor/field-divider/contentPosition-editor.vue +1 -1
  147. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -59
  148. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +11 -11
  149. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +10 -10
  150. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-pie-editor.vue +12 -12
  151. package/src/components/xform/form-designer/setting-panel/property-editor/field-file-upload/file-upload-fileTypes-editor.vue +44 -44
  152. package/src/components/xform/form-designer/setting-panel/property-editor/field-html-text/htmlContent-editor.vue +29 -29
  153. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +6 -6
  154. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +4 -4
  155. package/src/components/xform/form-designer/setting-panel/property-editor/field-number/controlsPosition-editor.vue +1 -1
  156. package/src/components/xform/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue +44 -44
  157. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +115 -115
  158. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +115 -115
  159. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/highThreshold-editor.vue +1 -1
  160. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/lowThreshold-editor.vue +1 -1
  161. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  162. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-max-editor.vue +1 -1
  163. package/src/components/xform/form-designer/setting-panel/property-editor/field-script/script-editor.vue +4 -4
  164. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +4 -4
  165. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/fontSize-editor.vue +1 -1
  166. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +1 -1
  167. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +3 -3
  168. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/activeText-editor.vue +1 -1
  169. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/inactiveText-editor.vue +1 -1
  170. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/switchWidth-editor.vue +1 -1
  171. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-button-editor.vue +2 -2
  172. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +74 -74
  173. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +3 -3
  174. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +34 -18
  175. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-format-editor.vue +1 -1
  176. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-timeLimit-editor.vue +53 -0
  177. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +35 -18
  178. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-format-editor.vue +1 -1
  179. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchField-editor.vue +2 -2
  180. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +2 -2
  181. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +1 -1
  182. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload2/field-vabUpload2-editor.vue +1 -1
  183. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +2 -2
  184. package/src/components/xform/form-designer/setting-panel/property-editor/fileMaxSize-editor.vue +1 -1
  185. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesSelect.vue +176 -176
  186. package/src/components/xform/form-designer/setting-panel/property-editor/fixedQuery-editor.vue +39 -0
  187. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +41 -6
  188. package/src/components/xform/form-designer/setting-panel/property-editor/formatType-editor.vue +2 -2
  189. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +972 -972
  190. package/src/components/xform/form-designer/setting-panel/property-editor/iconClass-editor.vue +1 -1
  191. package/src/components/xform/form-designer/setting-panel/property-editor/label-editor.vue +1 -1
  192. package/src/components/xform/form-designer/setting-panel/property-editor/labelAlign-editor.vue +1 -1
  193. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +1 -1
  194. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +1 -1
  195. package/src/components/xform/form-designer/setting-panel/property-editor/labelWidth-editor.vue +1 -1
  196. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  197. package/src/components/xform/form-designer/setting-panel/property-editor/max-editor.vue +1 -1
  198. package/src/components/xform/form-designer/setting-panel/property-editor/maxLength-editor.vue +1 -1
  199. package/src/components/xform/form-designer/setting-panel/property-editor/min-editor.vue +1 -1
  200. package/src/components/xform/form-designer/setting-panel/property-editor/minLength-editor.vue +1 -1
  201. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  202. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +15 -4
  203. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +3 -3
  204. package/src/components/xform/form-designer/setting-panel/property-editor/placeholder-editor.vue +1 -1
  205. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  206. package/src/components/xform/form-designer/setting-panel/property-editor/prefixIcon-editor.vue +14 -15
  207. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +6 -6
  208. package/src/components/xform/form-designer/setting-panel/property-editor/relative-default-block.vue +369 -0
  209. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +1 -1
  210. package/src/components/xform/form-designer/setting-panel/property-editor/rows-editor.vue +1 -1
  211. package/src/components/xform/form-designer/setting-panel/property-editor/space-editor-editor.vue +1 -1
  212. package/src/components/xform/form-designer/setting-panel/property-editor/startPlaceholder-editor.vue +1 -1
  213. package/src/components/xform/form-designer/setting-panel/property-editor/step-editor.vue +1 -1
  214. package/src/components/xform/form-designer/setting-panel/property-editor/styleTableClass-editor.vue +1 -1
  215. package/src/components/xform/form-designer/setting-panel/property-editor/styleTitClass-editor.vue +1 -1
  216. package/src/components/xform/form-designer/setting-panel/property-editor/suffixIcon-editor.vue +14 -15
  217. package/src/components/xform/form-designer/setting-panel/property-editor/tempStorage-editor.vue +1 -1
  218. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +2 -3
  219. package/src/components/xform/form-designer/setting-panel/property-editor/type-editor.vue +1 -1
  220. package/src/components/xform/form-designer/setting-panel/property-editor/uploadTip-editor.vue +1 -1
  221. package/src/components/xform/form-designer/setting-panel/property-editor/uploadURL-editor.vue +1 -1
  222. package/src/components/xform/form-designer/setting-panel/property-editor/urlValueEnabled-editor.vue +91 -0
  223. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +1 -1
  224. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +1 -1
  225. package/src/components/xform/form-designer/setting-panel/property-editor/widgetWidth-editor.vue +1 -1
  226. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +374 -351
  227. package/src/components/xform/form-designer/toolbar-panel/index.vue +266 -103
  228. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +655 -589
  229. package/src/components/xform/form-designer/widget-panel/index.vue +391 -341
  230. package/src/components/xform/form-designer/widget-panel/indexMixin.js +351 -308
  231. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +4642 -4028
  232. package/src/components/xform/form-render/container-item/containerItemMixin.js +76 -61
  233. package/src/components/xform/form-render/container-item/data-table-item.vue +24 -13
  234. package/src/components/xform/form-render/container-item/data-table-mixin.js +5927 -3400
  235. package/src/components/xform/form-render/container-item/detail-h5-item.vue +173 -173
  236. package/src/components/xform/form-render/container-item/detail-item.vue +446 -224
  237. package/src/components/xform/form-render/container-item/detail-plain-item.vue +92 -0
  238. package/src/components/xform/form-render/container-item/list-h5-item.vue +1186 -411
  239. package/src/components/xform/form-render/container-item/tab-item.vue +129 -125
  240. package/src/components/xform/form-render/container-item/table-item.vue +0 -3
  241. package/src/components/xform/form-render/container-item/table2-item.vue +18 -10
  242. package/src/components/xform/form-render/dynamicDialogRender.js +140 -99
  243. package/src/components/xform/form-render/index.vue +8 -8
  244. package/src/components/xform/form-render/indexMixin.js +5299 -3766
  245. package/src/components/xform/form-render/refMixin.js +14 -11
  246. package/src/components/xform/lang/en-US.js +473 -438
  247. package/src/components/xform/lang/en-US_extension.js +4 -0
  248. package/src/components/xform/lang/zh-CN.js +646 -620
  249. package/src/components/xform/mixins/defaultHandle.js +363 -26
  250. package/src/components/xform/mixins/scriptHttp.js +54 -51
  251. package/src/components/xform/utils/attachmentValueUtil.js +239 -0
  252. package/src/components/xform/utils/fixedQueryUtil.js +93 -0
  253. package/src/components/xform/utils/format.js +195 -169
  254. package/src/components/xform/utils/queryParamUtil.js +84 -0
  255. package/src/components/xform/utils/tableColumnHelper.js +7 -8
  256. package/src/components/xform/utils/util.js +1663 -1551
  257. package/src/components/xform/utils/validators.js +100 -48
  258. package/src/index.js +403 -89
  259. package/src/layout/components/AppMain.vue +147 -119
  260. package/src/layout/components/Sidebar/default.vue +109 -59
  261. package/src/layout/components/TagsView/index.vue +1 -1
  262. package/src/layout/components/extractedCode/queryDialog.vue +33 -26
  263. package/src/layout/components/extractedCode/viewDialog.vue +207 -193
  264. package/src/layout/components/langTool.vue +128 -123
  265. package/src/layout/defaultLayout.vue +170 -158
  266. package/src/mixins/wf/index.js +40 -38
  267. package/src/public-path.js +38 -0
  268. package/src/router/modules/system.js +4 -0
  269. package/src/store/config/index.js +945 -669
  270. package/src/utils/pdfUtil.js +428 -70
  271. package/src/views/bd/setting/bd_company_env/dialog.vue +1 -1
  272. package/src/views/bd/setting/formVersion/button.vue +5 -0
  273. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +21 -10
  274. package/src/views/bd/setting/formVersion/link.vue +5 -0
  275. package/src/views/bd/setting/form_script/edit.vue +1 -0
  276. package/src/views/bd/setting/form_script/edit1.vue +1 -0
  277. package/src/views/bd/setting/form_script/form_list.vue +1 -0
  278. package/src/views/bd/setting/form_script/list.vue +1 -0
  279. package/src/views/bd/setting/form_script/list1.vue +2 -0
  280. package/src/views/bd/setting/form_template/edit.vue +1 -0
  281. package/src/views/bd/setting/form_template/list.vue +2 -0
  282. package/src/views/bd/setting/form_template/mixins/edit.js +77 -74
  283. package/src/views/bd/setting/table_model/edit.vue +16 -29
  284. package/src/views/bd/setting/table_model/list.vue +1 -0
  285. package/src/views/bd/setting/table_model/mixins/edit.js +295 -149
  286. package/src/views/bd/setting/table_model/mixins/zdDialog.js +32 -0
  287. package/src/views/support/export_template/list.vue +1 -1
  288. package/src/views/user/company_info/edit.vue +149 -88
  289. package/src/views/user/form/form_template/dialog.vue +1 -1
  290. package/src/views/user/form/form_template/itemList.vue +1 -1
  291. package/src/views/user/form/form_template/list.vue +1 -1
  292. package/src/views/user/form/form_template_field/dialog.vue +1 -1
  293. package/src/views/user/form/form_type/dialog.vue +1 -1
  294. package/src/views/user/form/form_type/list.vue +1 -1
  295. package/src/views/user/form/report_requestaccess/dialog.vue +1 -1
  296. package/src/views/user/form/report_requestaccess/list.vue +1 -1
  297. package/src/views/user/form/vform/designer.vue +51 -22
  298. package/src/views/user/form/vform/render.vue +21 -23
  299. package/src/views/user/form/view/list.vue +134 -37
  300. package/src/views/user/wf/wfReport/index.vue +24 -1
  301. package/src/views/user/wf/wf_manage/list.vue +8 -4
  302. package/src/components/xform/form-designer/form-widget/dialog/formDrawer.vue +0 -209
  303. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin - /345/211/257/346/234/254.js" +0 -1639
  304. package/src/views/bd/setting/table_model/mixins/edit copy.js +0 -903
  305. package/src/views/user/menu/voc_list.vue +0 -686
@@ -38,10 +38,12 @@
38
38
  @click="openUrgingDialog(null)" v-show="wfInfo.toInterrupt">催办
39
39
  </el-button>
40
40
  <el-button type="primary" class="btn" :class="{on:operateType == 'addIncreaseSign'}"
41
- @click="openAddIncreaseSign('addIncreaseSign')" v-show="wfInfo.toAddIncreaseSign">加签
41
+ @click="openAddIncreaseSign('addIncreaseSign')"
42
+ v-show="increaseSignEnabled && wfInfo.toAddIncreaseSign">加签
42
43
  </el-button>
43
44
  <el-button type="primary" class="btn" :class="{on:operateType == 'deleteIncreaseSign'}"
44
- @click="openDeleteTaskUserDialog(null)" v-show="wfInfo.toDeleteIncreaseSign">
45
+ @click="openDeleteTaskUserDialog(null)"
46
+ v-show="increaseSignEnabled && wfInfo.toDeleteIncreaseSign">
45
47
  减签
46
48
  </el-button>
47
49
  <el-button type="primary" class="btn" :class="{on:operateType == 'setCandidate'}"
@@ -3,6 +3,8 @@ import {getToken} from "../../utils/auth";
3
3
  import settingConfig from "@/settings.js";
4
4
  import {selectDialogMixins} from "../../mixins/selectDialog";
5
5
  import {requireViewCompat} from "@base/utils/resolveViewComponent";
6
+ import {getWfButtonNames, loadWfButtonNames} from "./wfButtonName";
7
+ import {isWfAutoConfirm, loadWfAutoConfirm} from "./wfAutoConfirm";
6
8
 
7
9
  let configUtil = {
8
10
  baseUrl: process.env.VUE_APP_BASE_API,
@@ -384,6 +386,8 @@ wfContentMixin = {
384
386
  candidateDatas:[],
385
387
  wfSendTaskId: null,
386
388
  showAddOpinionButton: false,
389
+ //标题栏那份审批入口挂上后为 true,流程模块按钮条据此 v-show 隐藏
390
+ headerActionsMounted: false,
387
391
 
388
392
  addOpinionEnabled: false,
389
393
  modifyCurrentCandidateEnabled: false,
@@ -1681,7 +1685,9 @@ wfStartMixin = {
1681
1685
  wfUserRangeEnabled: false,
1682
1686
  preStartResult:[],
1683
1687
  showSetCandidateDialog2:false,
1684
- wfSubmitted: false
1688
+ wfSubmitted: false,
1689
+ //param19 自动确认:确认框延后到 subWfStartForm(保存之后、preStart 之后)再决定弹不弹
1690
+ deferStartConfirm: false
1685
1691
  };
1686
1692
  },
1687
1693
  computed: {
@@ -1707,6 +1713,50 @@ wfStartMixin = {
1707
1713
  });
1708
1714
  })
1709
1715
  },
1716
+ buildStartFormData(){
1717
+ return {
1718
+ modelId: this.wfStartForm.modelId,
1719
+ objTypeCode: this.code,
1720
+ objId: this.dataId,
1721
+ formData: this.startParam || {},
1722
+ formCode: this.formCode || null
1723
+ // name:this.wfName
1724
+ };
1725
+ },
1726
+ //启动确认框的默认文案。param18 配了按钮名就跟随它,没配维持原有的 $t2 兜底链。
1727
+ async getDefaultStartTip(){
1728
+ await loadWfButtonNames(getTarget(this));
1729
+ let btnName = getWfButtonNames().submitBtn;
1730
+ if (btnName) {
1731
+ //只能用 $t1(找不到 key 原样返回),$t2 在 i18n 命中 key 时会把拼进去的名字吞掉
1732
+ return this.$t1(`您确定要${btnName}吗?`);
1733
+ }
1734
+ let wfStartOperateName =
1735
+ settingConfig.wfStartOperateName ||
1736
+ settingConfig.wfStartButtonName ||
1737
+ "启动流程";
1738
+ return this.$t2(
1739
+ "您确定要" + wfStartOperateName + "吗?",
1740
+ 'components.wf.startTip'
1741
+ );
1742
+ },
1743
+ /**
1744
+ * param19 延后的那道确认框,由 subWfStartForm 在 preStart 之后调。
1745
+ * @returns {Promise<Boolean>} true 继续启动,false 已取消
1746
+ */
1747
+ async confirmDeferredStart(){
1748
+ let that = getTarget(this);
1749
+ let startTip = await this.getDefaultStartTip();
1750
+ try {
1751
+ await that.$baseConfirm(startTip);
1752
+ return true;
1753
+ } catch (e) {
1754
+ //这时候单据可能已经被自动保存过了,必须走 close() 触发 onCancel,
1755
+ //否则宿主那边的提交态(bizTab 的 billSubmitting 之类)没人来解,保存按钮会永久禁用。
1756
+ this.close();
1757
+ return false;
1758
+ }
1759
+ },
1710
1760
  initWfUserRangeParam(){
1711
1761
  let that = getTarget(this);
1712
1762
  return that.$http({
@@ -1783,16 +1833,25 @@ wfStartMixin = {
1783
1833
  }
1784
1834
  );
1785
1835
  }
1786
- let wfStartOperateName =
1787
- settingConfig.wfStartOperateName ||
1788
- settingConfig.wfStartButtonName ||
1789
- "启动流程";
1790
- let defaultStartTip = "您确定要" + wfStartOperateName + "吗?";
1791
1836
  let startTip;
1792
1837
  if (typeof customStartTip === "string" && customStartTip.trim()) {
1838
+ //模板脚本 wfStartConfirmText 自定义的提示语:多是金额超限之类的业务告警,
1839
+ //必须由人确认,不受 param19 自动确认影响。
1793
1840
  startTip = customStartTip;
1794
1841
  } else {
1795
- startTip = this.$t2(defaultStartTip, 'components.wf.startTip');
1842
+ //系统默认文案才受自动确认开关管
1843
+ await loadWfAutoConfirm(that);
1844
+ //param12 关着时压根不会有「修改候选人」弹框,延后就没有意义,
1845
+ //确认框留在原位(保存之前);两个开关都为 true 才延后。
1846
+ if (isWfAutoConfirm() && this.wfUserRangeEnabled) {
1847
+ //确认框延后到 subWfStartForm:那里才是「单据已保存(如果开了自动保存)、
1848
+ //preStart 也探过」的时点。探到候选人就由「修改候选人」弹框顶替这道确认框,
1849
+ //探不到才把它补上——没有候选人弹框时它是唯一的把关,不能省。
1850
+ this.deferStartConfirm = true;
1851
+ this.startSubmit();
1852
+ return;
1853
+ }
1854
+ startTip = await this.getDefaultStartTip();
1796
1855
  }
1797
1856
  that
1798
1857
  .$baseConfirm(startTip)
@@ -1827,30 +1886,22 @@ wfStartMixin = {
1827
1886
  return false;
1828
1887
  }
1829
1888
 
1830
- let option = this.option;
1831
-
1832
- var objId = this.dataId;
1833
-
1834
- let startParam = this.startParam || {};
1835
- let formCode = this.formCode || null;
1836
-
1837
- var data = {
1838
- modelId: modelId,
1839
- objTypeCode: this.code,
1840
- objId: objId,
1841
- formData: startParam,
1842
- formCode: formCode
1843
- // name:this.wfName
1844
- };
1845
- this.startFormData = data;
1889
+ this.startFormData = this.buildStartFormData();
1846
1890
 
1847
1891
  if(this.wfUserRangeEnabled){
1848
1892
  this.preStartResult = await this.preStart() || []
1849
1893
  if(this.preStartResult.length){
1894
+ //有候选人弹框顶替确认框,param19 延后的那道就不用补了
1895
+ this.deferStartConfirm = false;
1850
1896
  this.openSetCandidateDialog()
1851
1897
  return
1852
1898
  }
1853
1899
  }
1900
+ //没有候选人弹框 → 把 param19 延后的确认框补上(见 initWfInfo)
1901
+ if (this.deferStartConfirm) {
1902
+ this.deferStartConfirm = false;
1903
+ if (!(await this.confirmDeferredStart())) return;
1904
+ }
1854
1905
  this.startSubmitHanlde(this.startFormData);
1855
1906
 
1856
1907
  },
@@ -0,0 +1,85 @@
1
+ <template>
2
+ <div class="wf-action-dropdown-wrap button-sty" v-show="items.length">
3
+ <!-- 通过 / 驳回 / 撤回 挪出下拉,在标题栏直接平铺;其余操作仍收在「更多」下拉里 -->
4
+ <el-button
5
+ v-for="item in standaloneItems"
6
+ :key="item.key"
7
+ :type="item.buttonType || 'primary'"
8
+ :icon="item.iconClass || item.elIcon"
9
+ class="button-sty"
10
+ @click="item.run(wfVm)"
11
+ >{{ itemLabel(item) }}
12
+ </el-button>
13
+ <el-dropdown trigger="hover" v-if="dropdownItems.length">
14
+ <el-button type="primary" class="button-sty">
15
+ {{ $t1("更多") }}
16
+ <i class="el-icon-arrow-down el-icon--right"></i>
17
+ </el-button>
18
+ <el-dropdown-menu slot="dropdown">
19
+ <el-dropdown-item
20
+ v-for="item in dropdownItems"
21
+ :key="item.key"
22
+ :icon="item.elIcon"
23
+ @click.native="item.run(wfVm)"
24
+ >
25
+ <i v-if="item.iconClass" :class="item.iconClass"></i>
26
+ {{ itemLabel(item) }}
27
+ </el-dropdown-item>
28
+ </el-dropdown-menu>
29
+ </el-dropdown>
30
+ </div>
31
+ </template>
32
+
33
+ <script>
34
+ import {
35
+ getVisibleWfActionItems,
36
+ HEADER_STANDALONE_KEYS,
37
+ } from "./wfActionItems";
38
+
39
+ export default {
40
+ name: "WfActionDropdown",
41
+ props: {
42
+ // 流程面板实例(content.vue),下拉项显隐读它的 wfInfo,点击调它的方法
43
+ wfVm: {
44
+ type: Object,
45
+ required: true,
46
+ },
47
+ // 不收进下拉、直接平铺成独立按钮的操作 key
48
+ standaloneKeys: {
49
+ type: Array,
50
+ default: () => HEADER_STANDALONE_KEYS,
51
+ },
52
+ },
53
+ computed: {
54
+ // 求值时会读 wfVm 上的响应式字段,跨实例也能跟着流程状态更新
55
+ items() {
56
+ return getVisibleWfActionItems(this.wfVm);
57
+ },
58
+ standaloneItems() {
59
+ return this.items.filter((item) => this.isStandalone(item));
60
+ },
61
+ dropdownItems() {
62
+ return this.items.filter((item) => !this.isStandalone(item));
63
+ },
64
+ },
65
+ methods: {
66
+ isStandalone(item) {
67
+ return (this.standaloneKeys || []).indexOf(item.key) > -1;
68
+ },
69
+ itemLabel(item) {
70
+ if (item.i18nPath) {
71
+ return this.$t2(item.defaultLabel, item.i18nPath);
72
+ }
73
+ return this.$t1 ? this.$t1(item.defaultLabel) : item.defaultLabel;
74
+ },
75
+ },
76
+ };
77
+ </script>
78
+
79
+ <style scoped>
80
+ /* 标题栏 .fr 内其余按钮都是行内元素,包裹层必须跟着行内排,否则会另起一行 */
81
+ .wf-action-dropdown-wrap {
82
+ display: inline-block;
83
+ vertical-align: middle;
84
+ }
85
+ </style>
@@ -0,0 +1,136 @@
1
+ /**
2
+ * 流程审批操作清单。详情标题栏下拉与流程模块按钮条共用同一套显隐条件,
3
+ * 避免两处各写一遍之后漂移。
4
+ *
5
+ * vm 是 content.vue 实例(挂了 wfContentMixin)。
6
+ *
7
+ * buttonType 只在「平铺成独立按钮」时用得上(见 HEADER_STANDALONE_KEYS),
8
+ * 取值与流程模块按钮条里同名按钮保持一致。
9
+ */
10
+
11
+ /* 详情标题栏里不收进下拉、直接平铺成独立按钮的操作。
12
+ 顺序按 getWfActionItems 的定义序,不按这里的书写序。 */
13
+ export const HEADER_STANDALONE_KEYS = ["agree", "reject", "revoke"];
14
+
15
+ export function getWfActionItems(vm) {
16
+ let wfInfo = (vm && vm.wfInfo) || {};
17
+ let toTransfer
18
+ = wfInfo.toTransfer === null || wfInfo.toTransfer === undefined
19
+ ? !!wfInfo.toSubmit
20
+ : !!wfInfo.toTransfer;
21
+
22
+ return [
23
+ {
24
+ key: "agree",
25
+ buttonType: "success",
26
+ show: !!wfInfo.toSubmit,
27
+ defaultLabel: "通过",
28
+ i18nPath: "components.wf.agree",
29
+ iconClass: "iconfont icon-tongguo",
30
+ run: (wfVm) => wfVm.openAgreeDialog(),
31
+ },
32
+ {
33
+ key: "manual",
34
+ buttonType: "warning",
35
+ show: !!wfInfo.toInterrupt,
36
+ defaultLabel: "中断",
37
+ i18nPath: "components.wf.manual",
38
+ iconClass: "iconfont icon-caozuozhongduan",
39
+ run: (wfVm) => wfVm.openManualDialog(),
40
+ },
41
+ {
42
+ key: "reject",
43
+ buttonType: "danger",
44
+ show: !!wfInfo.toReject,
45
+ defaultLabel: "驳回",
46
+ i18nPath: "components.wf.reject",
47
+ iconClass: "iconfont icon-a-bohui1",
48
+ run: (wfVm) => wfVm.rejectWfTask(),
49
+ },
50
+ {
51
+ key: "transfer",
52
+ buttonType: "primary",
53
+ show: toTransfer,
54
+ defaultLabel: "转办",
55
+ i18nPath: "components.wf.transfer",
56
+ iconClass: "iconfont icon-zhuanban",
57
+ run: (wfVm) => wfVm.openChangeWfForm(),
58
+ },
59
+ {
60
+ key: "urging",
61
+ buttonType: "primary",
62
+ show: !!wfInfo.toInterrupt,
63
+ defaultLabel: "催办",
64
+ i18nPath: "components.wf.urging",
65
+ iconClass: "iconfont icon-cuiban",
66
+ run: (wfVm) => wfVm.openUrgingDialog(),
67
+ },
68
+ {
69
+ key: "addIncreaseSign",
70
+ buttonType: "primary",
71
+ show: !!(vm.increaseSignEnabled && wfInfo.toAddIncreaseSign),
72
+ defaultLabel: "加签",
73
+ i18nPath: "components.wf.addIncreaseSign",
74
+ elIcon: "el-icon-plus",
75
+ run: (wfVm) => wfVm.openAddIncreaseSign(),
76
+ },
77
+ {
78
+ key: "deleteIncreaseSign",
79
+ buttonType: "primary",
80
+ show: !!(vm.increaseSignEnabled && wfInfo.toDeleteIncreaseSign),
81
+ defaultLabel: "减签",
82
+ i18nPath: "components.wf.deleteIncreaseSign",
83
+ elIcon: "el-icon-delete",
84
+ run: (wfVm) => wfVm.openDeleteTaskUserDialog(),
85
+ },
86
+ {
87
+ key: "talk",
88
+ buttonType: "primary",
89
+ show: !!(vm.toTalk && wfInfo.toLinkup),
90
+ defaultLabel: "沟通",
91
+ i18nPath: "components.wf.talk",
92
+ elIcon: "el-icon-chat-dot-square",
93
+ run: (wfVm) => wfVm.openTalkDialog(),
94
+ },
95
+ {
96
+ key: "setCandidate",
97
+ buttonType: "primary",
98
+ show: !!wfInfo.toSetCandidate,
99
+ defaultLabel: "修改候选人",
100
+ i18nPath: "components.wf.setCandidate",
101
+ elIcon: "el-icon-user",
102
+ run: (wfVm) => wfVm.openSetCandidateDialog(null),
103
+ },
104
+ {
105
+ key: "revoke",
106
+ buttonType: "danger",
107
+ show: !!wfInfo.toRevoke,
108
+ defaultLabel: "撤回",
109
+ i18nPath: "components.wf.revoke",
110
+ elIcon: "el-icon-document-delete",
111
+ run: (wfVm) => wfVm.openRevokeDialog(null),
112
+ },
113
+ {
114
+ key: "addOpinion",
115
+ buttonType: "primary",
116
+ show: !!vm.showAddOpinionButton,
117
+ defaultLabel: "补充意见",
118
+ run: (wfVm) => {
119
+ let btn = wfVm.$refs && wfVm.$refs.addOpinionBtn;
120
+ if (btn && btn.openDialog) btn.openDialog();
121
+ },
122
+ },
123
+ {
124
+ key: "editScript",
125
+ buttonType: "primary",
126
+ show: !!wfInfo.wfAdmin,
127
+ defaultLabel: "修改脚本",
128
+ elIcon: "el-icon-edit",
129
+ run: (wfVm) => wfVm.openWfFlowEleScriptDialog(),
130
+ },
131
+ ];
132
+ }
133
+
134
+ export function getVisibleWfActionItems(vm) {
135
+ return getWfActionItems(vm).filter((item) => item.show);
136
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 流程提交确认框自动确认:由后台 wf_diy_attribute 的 param19 统一维护,全局拉取一次后缓存。
3
+ * 返回 true 时,「提交流程」「保存并提交流程」的系统默认确认框不再弹,直接按「确定」处理。
4
+ *
5
+ * 不含表单模板脚本 wfStartConfirmText 自定义的提示语——业务方常拿它做金额超限之类的告警,
6
+ * 那种提示必须由人确认,不能被这个全局开关吞掉(判定在 wf.js 的启动确认分支)。
7
+ */
8
+ import Vue from "vue";
9
+
10
+ /* 与 wfButtonName.js 同款:缓存必须是响应式的,值后到时读取方才能重算。
11
+ 这里语义是「没配就不自动确认」,所以初值直接给 false,不需要区分未配置。 */
12
+ const wfAutoConfirm = Vue.observable({
13
+ enabled: false,
14
+ });
15
+
16
+ let pending = null;
17
+
18
+ export function isWfAutoConfirm() {
19
+ return wfAutoConfirm.enabled === true;
20
+ }
21
+
22
+ /**
23
+ * 拉取自动确认开关。全局只发一次请求,重复调用复用同一个 promise。
24
+ * @param {Object} vm 任意 Vue 实例(取 $http),不传则退回 window.$vueRoot
25
+ * @returns {Promise<Boolean>}
26
+ */
27
+ export function loadWfAutoConfirm(vm) {
28
+ if (pending) return pending;
29
+ let target = vm || window.$vueRoot;
30
+ if (!target || !target.$http) return Promise.resolve(wfAutoConfirm.enabled);
31
+ let errored = false;
32
+ let request = new Promise((resolve) => {
33
+ target.$http({
34
+ url: USER_PREFIX + "/wf_diy_attribute/getValue",
35
+ method: "post",
36
+ data: { attributeKey: "param19" },
37
+ success: (res) => {
38
+ let val = res ? res.objx : null;
39
+ //后台可能回布尔也可能回字符串,两种都认;其余(含没配)一律当关
40
+ wfAutoConfirm.enabled = val === true || val === "true";
41
+ resolve(wfAutoConfirm.enabled);
42
+ },
43
+ fail: () => resolve(wfAutoConfirm.enabled),
44
+ error: () => {
45
+ errored = true;
46
+ pending = null; //失败不锁死,下次进流程表单可重试
47
+ resolve(wfAutoConfirm.enabled);
48
+ },
49
+ });
50
+ });
51
+ //回调若是同步回来的(拦截器短路、单测桩),上面那句 pending = null 会被下面这句盖掉,
52
+ //于是重试永远拿到那个已 settle 的旧 promise —— 用 errored 补一刀。
53
+ pending = errored ? null : request;
54
+ return request;
55
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 流程按钮名:由后台 wf_diy_attribute 的 param18 统一维护,全局拉取一次后缓存。
3
+ * 接口返回形如 {submitBtn: "提交流程", saveSubmitBtn: "保存并提交流程"},未配置时用下面的默认值。
4
+ */
5
+ import Vue from "vue";
6
+
7
+ export const DEFAULT_SUBMIT_BTN = "提交流程";
8
+ export const DEFAULT_SAVE_SUBMIT_BTN = "保存并提交流程";
9
+
10
+ /* 按钮通常先渲染、接口值后到,所以缓存必须是响应式的,读取方(computed)才能在值回来后自动重算。
11
+ 初值留 null 是为了区分「后台没配」与「后台配的正好是默认值」——没配时才轮得到下游兜底。 */
12
+ const wfButtonNames = Vue.observable({
13
+ submitBtn: null,
14
+ saveSubmitBtn: null,
15
+ });
16
+
17
+ let pending = null;
18
+
19
+ export function getWfButtonNames() {
20
+ return wfButtonNames;
21
+ }
22
+
23
+ /**
24
+ * 拉取按钮名。全局只发一次请求,重复调用复用同一个 promise。
25
+ * @param {Object} vm 任意 Vue 实例(取 $http),不传则退回 window.$vueRoot
26
+ */
27
+ export function loadWfButtonNames(vm) {
28
+ if (pending) return pending;
29
+ let target = vm || window.$vueRoot;
30
+ if (!target || !target.$http) return Promise.resolve(wfButtonNames);
31
+ pending = new Promise((resolve) => {
32
+ target.$http({
33
+ url: USER_PREFIX + "/wf_diy_attribute/getValue",
34
+ method: "post",
35
+ data: { attributeKey: "param18" },
36
+ success: (res) => {
37
+ let val = res ? res.objx : null;
38
+ if (typeof val === "string") {
39
+ //后台可能存的是 JSON 文本,解析不出就当没配
40
+ try {
41
+ val = JSON.parse(val);
42
+ } catch (e) {
43
+ val = null;
44
+ }
45
+ }
46
+ if (val && typeof val === "object") {
47
+ wfButtonNames.submitBtn = val.submitBtn || null;
48
+ wfButtonNames.saveSubmitBtn = val.saveSubmitBtn || null;
49
+ }
50
+ resolve(wfButtonNames);
51
+ },
52
+ fail: () => resolve(wfButtonNames),
53
+ error: () => {
54
+ pending = null; //失败不锁死,下次进流程表单可重试
55
+ resolve(wfButtonNames);
56
+ },
57
+ });
58
+ });
59
+ return pending;
60
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * 「节点候选人范围」开关:后台 wf_diy_attribute 的 param12,全局拉取一次后缓存。
3
+ * 开着时启动流程会先打 /wf/preStart,返回候选人则弹「修改候选人」弹框(见 wf.js subWfStartForm)。
4
+ *
5
+ * wfStartDialog 内部另有一份 initWfUserRangeParam(),每次开弹框现取,那份是启动流程的权威判定,
6
+ * 不动它。这里这份只服务于弹框之外的调用方——「保存并提交」要在**保存之前**就知道这个开关,
7
+ * 才能决定确认框是当场弹(param12 关,后面不可能有候选人弹框)还是延后给弹框(param12 开)。
8
+ */
9
+ import Vue from "vue";
10
+
11
+ const wfUserRange = Vue.observable({
12
+ enabled: false,
13
+ });
14
+
15
+ let pending = null;
16
+
17
+ export function isWfUserRangeEnabled() {
18
+ return wfUserRange.enabled === true;
19
+ }
20
+
21
+ /**
22
+ * 拉取开关。全局只发一次请求,重复调用复用同一个 promise。
23
+ * @param {Object} vm 任意 Vue 实例(取 $http),不传则退回 window.$vueRoot
24
+ * @returns {Promise<Boolean>}
25
+ */
26
+ export function loadWfUserRange(vm) {
27
+ if (pending) return pending;
28
+ let target = vm || window.$vueRoot;
29
+ if (!target || !target.$http) return Promise.resolve(wfUserRange.enabled);
30
+ let errored = false;
31
+ let request = new Promise((resolve) => {
32
+ target.$http({
33
+ url: USER_PREFIX + "/wf_diy_attribute/getValue",
34
+ method: "post",
35
+ data: { attributeKey: "param12" },
36
+ success: (res) => {
37
+ let val = res ? res.objx : null;
38
+ //与 wf.js initWfUserRangeParam 同口径,字符串 "true" 一并认
39
+ wfUserRange.enabled = val === true || val === "true";
40
+ resolve(wfUserRange.enabled);
41
+ },
42
+ fail: () => resolve(wfUserRange.enabled),
43
+ error: () => {
44
+ errored = true;
45
+ pending = null; //失败不锁死,下次进流程表单可重试
46
+ resolve(wfUserRange.enabled);
47
+ },
48
+ });
49
+ });
50
+ //回调同步回来时(拦截器短路、单测桩),上面那句 pending = null 会被下面这句盖掉,补一刀
51
+ pending = errored ? null : request;
52
+ return request;
53
+ }