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
@@ -1,544 +1,585 @@
1
- <template>
2
- <div class="option-items-pane">
3
- <el-form-item label="选项值类型">
4
- <el-radio-group v-model="optionModel.optionItemValueType" @change="changeValueType">
5
- <el-radio :label="0">文本</el-radio>
6
- <el-radio :label="1">数值</el-radio>
7
- <el-radio :label="2">布尔值</el-radio>
8
- </el-radio-group>
9
- </el-form-item>
10
-
11
- <el-form-item label="默认值">
12
- <template
13
- v-if="
14
- selectedWidget.type === 'checkbox' ||
15
- (selectedWidget.type === 'select' && selectedWidget.options.multiple)
16
- "
17
- >
18
- <a
19
- href="javascript:void(0);"
20
- class="a-link link-oneLind"
21
- @click="openTableDataEdit()"
22
- >
23
- <span>{{ getDefaultValue() }}</span>
24
- <i class="el-icon-edit"></i>
25
- </a>
26
- </template>
27
- <template v-else>
28
- <el-input
29
- v-model="optionModel.defaultValue"
30
- size="mini"
31
- style="width: 100px"
32
- v-if="!optionModel.optionItemValueType"
33
- ></el-input>
34
- <base-input-number
35
- v-model="optionModel.defaultValue"
36
- size="mini"
37
- style="width: 100%"
38
- v-if="optionModel.optionItemValueType == 1"
39
- />
40
- <el-select
41
- v-model="optionModel.defaultValue"
42
- style="width: 100%"
43
- v-if="optionModel.optionItemValueType === 2"
44
- clearable
45
- @clear="optionModel.defaultValue = null"
46
- >
47
- <el-option :value="true" label="true"></el-option>
48
- <el-option :value="false" label="false"></el-option>
49
- </el-select>
50
- </template>
51
- </el-form-item>
52
- <el-form-item :label="i18nt('显示字段')">
53
- <el-input
54
- type="text"
55
- v-model="optionModel.labelKey"
56
- placeholder="默认label"
57
- :disabled="optionModel.commonAttributeEnabled || !optionModel.formScriptEnabled"
58
- ></el-input>
59
- </el-form-item>
60
- <el-form-item :label="i18nt('关联字段')">
61
- <el-input
62
- type="text"
63
- v-model="optionModel.valueKey"
64
- placeholder="默认value"
65
- :disabled="optionModel.commonAttributeEnabled || !optionModel.formScriptEnabled"
66
- ></el-input>
67
- </el-form-item>
68
- <el-form-item
69
- v-if="hasConfig('childrenKey')"
70
- :label="i18nt('designer.setting.childrenKeyName')"
71
- >
72
- <el-input v-model="optionModel.childrenKey"></el-input>
73
- </el-form-item>
74
- <template
75
- v-if="!optionModel.commonAttributeEnabled && !optionModel.formScriptEnabled"
76
- >
77
- <el-radio-group
78
- v-if="
79
- selectedWidget.type === 'radio' ||
80
- (selectedWidget.type === 'select' && !selectedWidget.options.multiple)
81
- "
82
- v-model="optionModel.defaultValue"
83
- @change="emitDefaultValueChange"
84
- >
85
- <draggable
86
- tag="ul"
87
- class="draggable-box"
88
- :list="optionModel.optionItems"
89
- v-bind="{ group: 'optionsGroup', ghostClass: 'ghost', handle: '.drag-option' }"
90
- >
91
- <li v-for="(option, idx) in optionModel.optionItems" :key="idx">
92
- <el-radio :label="option.value">
93
- <el-input
94
- v-model="option.value"
95
- size="mini"
96
- style="width: 100px"
97
- v-if="!optionModel.optionItemValueType"
98
- ></el-input>
99
- <base-input-number
100
- v-model="option.value"
101
- size="mini"
102
- style="width: 100px"
103
- v-if="optionModel.optionItemValueType == 1"
104
- />
105
- <!-- <el-input v-model="option.value" size="mini" style="width: 100px" v-if="optionModel.optionItemValueType===2" disabled></el-input>-->
106
- <el-select
107
- v-model="option.value"
108
- style="width: 100px"
109
- v-if="optionModel.optionItemValueType === 2"
110
- >
111
- <el-option :value="true" label="true"></el-option>
112
- <el-option :value="false" label="false"></el-option>
113
- </el-select>
114
- <el-input
115
- v-model="option.label"
116
- size="mini"
117
- style="width: 100px"
118
- ></el-input>
119
- <i class="el-icon-s-operation drag-option"></i>
120
- <el-button
121
- circle
122
- plain
123
- size="mini"
124
- type="danger"
125
- @click="deleteOption(option, idx)"
126
- icon="el-icon-minus"
127
- class="col-delete-button"
128
- ></el-button>
129
- </el-radio>
130
- </li>
131
- </draggable>
132
- </el-radio-group>
133
- <el-checkbox-group
134
- v-else-if="
135
- selectedWidget.type === 'checkbox' ||
136
- (selectedWidget.type === 'select' && selectedWidget.options.multiple)
137
- "
138
- v-model="optionModel.defaultValue"
139
- @change="emitDefaultValueChange"
140
- >
141
- <draggable
142
- tag="ul"
143
- class="draggable-box"
144
- :list="optionModel.optionItems"
145
- v-bind="{ group: 'optionsGroup', ghostClass: 'ghost', handle: '.drag-option' }"
146
- >
147
- <li v-for="(option, idx) in optionModel.optionItems" :key="idx">
148
- <el-checkbox :label="option.value">
149
- <el-input
150
- v-model="option.value"
151
- size="mini"
152
- style="width: 100px"
153
- v-if="!optionModel.optionItemValueType"
154
- ></el-input>
155
- <base-input-number
156
- v-model="option.value"
157
- size="mini"
158
- style="width: 100px"
159
- v-if="optionModel.optionItemValueType == 1"
160
- />
161
- <el-input
162
- v-model="option.value"
163
- size="mini"
164
- style="width: 100px"
165
- v-if="optionModel.optionItemValueType === 2"
166
- disabled
167
- ></el-input>
168
- <el-input
169
- v-model="option.label"
170
- size="mini"
171
- style="width: 100px"
172
- ></el-input>
173
- <i class="el-icon-s-operation drag-option"></i>
174
- <el-button
175
- circle
176
- plain
177
- size="mini"
178
- type="danger"
179
- @click="deleteOption(option, idx)"
180
- icon="el-icon-minus"
181
- class="col-delete-button"
182
- ></el-button>
183
- </el-checkbox>
184
- </li>
185
- </draggable>
186
- </el-checkbox-group>
187
- <el-cascader
188
- v-else-if="selectedWidget.type === 'cascader'"
189
- v-model="optionModel.defaultValue"
190
- :options="optionModel.optionItems"
191
- @change="emitDefaultValueChange"
192
- :placeholder="i18nt('render.hint.selectPlaceholder')"
193
- style="width: 100%"
194
- ></el-cascader>
195
- <div v-if="selectedWidget.type === 'cascader'">
196
- <el-button type="text" @click="importCascaderOptions">{{
197
- i18nt("designer.setting.importOptions")
198
- }}</el-button>
199
- <el-button type="text" @click="resetDefault">{{
200
- i18nt("designer.setting.resetDefault")
201
- }}</el-button>
202
- </div>
203
-
204
- <div
205
- v-if="
206
- selectedWidget.type === 'radio' ||
207
- selectedWidget.type === 'checkbox' ||
208
- selectedWidget.type === 'select'
209
- "
210
- >
211
- <el-button type="text" @click="addOption">{{
212
- i18nt("designer.setting.addOption")
213
- }}</el-button>
214
- <el-button
215
- type="text"
216
- @click="importOptions"
217
- v-if="optionModel.optionItemValueType !== 2"
218
- >{{ i18nt("designer.setting.importOptions") }}</el-button
219
- >
220
- <el-button type="text" @click="resetDefault">{{
221
- i18nt("designer.setting.resetDefault")
222
- }}</el-button>
223
- </div>
224
- </template>
225
-
226
- <el-dialog
227
- :title="i18nt('designer.setting.importOptions')"
228
- :visible.sync="showImportDialogFlag"
229
- v-if="showImportDialogFlag"
230
- :show-close="true"
231
- class="small-padding-dialog"
232
- :close-on-click-modal="false"
233
- :close-on-press-escape="false"
234
- :destroy-on-close="true"
235
- :append-to-body="true"
236
- :modal-append-to-body="true"
237
- >
238
- <el-form-item
239
- ><el-input type="textarea" rows="10" v-model="optionLines"></el-input
240
- ></el-form-item>
241
- <div slot="footer" class="dialog-footer">
242
- <el-button size="large" type="primary" @click="saveOptions">{{
243
- i18nt("designer.hint.confirm")
244
- }}</el-button>
245
- <el-button size="large" type="" @click="showImportDialogFlag = false">{{
246
- i18nt("designer.hint.cancel")
247
- }}</el-button>
248
- </div>
249
- </el-dialog>
250
-
251
- <el-dialog
252
- :title="i18nt('designer.setting.importOptions')"
253
- :visible.sync="showImportCascaderDialogFlag"
254
- v-if="showImportCascaderDialogFlag"
255
- :show-close="true"
256
- class="small-padding-dialog"
257
- :close-on-click-modal="false"
258
- :close-on-press-escape="false"
259
- :destroy-on-close="true"
260
- :append-to-body="true"
261
- :modal-append-to-body="true"
262
- >
263
- <code-editor v-model="cascaderOptions" mode="json" :readonly="false"></code-editor>
264
- <div slot="footer" class="dialog-footer">
265
- <el-button size="large" type="primary" @click="saveCascaderOptions">{{
266
- i18nt("designer.hint.confirm")
267
- }}</el-button>
268
- <el-button size="large" type="" @click="showImportCascaderDialogFlag = false">{{
269
- i18nt("designer.hint.cancel")
270
- }}</el-button>
271
- </div>
272
- </el-dialog>
273
- <el-dialog
274
- v-if="dataDialogVisible"
275
- custom-class="dialog-style list-dialog"
276
- :title="i18nt('默认值编辑')"
277
- :visible.sync="dataDialogVisible"
278
- :show-close="!0"
279
- append-to-body=""
280
- :close-on-click-modal="!1"
281
- :close-on-press-escape="!1"
282
- :destroy-on-close="!0"
283
- width="75%"
284
- v-dialog-drag
285
- >
286
- <template slot="footer">
287
- <div class="dialog-footer">
288
- <el-button
289
- type=""
290
- @click="dataDialogVisible = !1"
291
- class="button-sty"
292
- icon="el-icon-close"
293
- >
294
- {{ i18nt("designer.hint.cancel") }}
295
- </el-button>
296
- <el-button
297
- type="primary"
298
- @click="saveTableData"
299
- class="button-sty"
300
- icon="el-icon-check"
301
- >
302
- {{ i18nt("designer.hint.confirm") }}
303
- </el-button>
304
- </div>
305
- </template>
306
- <code-editor mode="json" :readonly="!1" v-model="tableDataOptions"></code-editor>
307
- </el-dialog>
308
- </div>
309
- </template>
310
-
311
- <script>
312
- import Draggable from "vuedraggable";
313
- import i18n from "../../../../components/xform/utils/i18n";
314
- import propertyMixin from "../../../../components/xform/form-designer/setting-panel/property-editor/propertyMixin";
315
-
316
- export default {
317
- name: "OptionItemsSetting",
318
- componentName: "PropertyEditor",
319
- mixins: [i18n, propertyMixin],
320
- components: {
321
- Draggable,
322
- },
323
- props: {
324
- designer: Object,
325
- selectedWidget: Object,
326
- },
327
- data() {
328
- return {
329
- showImportDialogFlag: false,
330
- optionLines: "",
331
-
332
- cascaderOptions: "",
333
- showImportCascaderDialogFlag: false,
334
-
335
- //separator: '||',
336
- separator: ",",
337
- dataDialogVisible: false,
338
- tableDataOptions: [],
339
- };
340
- },
341
- computed: {
342
- optionModel() {
343
- return this.selectedWidget.options;
344
- },
345
- },
346
- watch: {
347
- "selectedWidget.options": {
348
- deep: true,
349
- handler(val) {
350
- //console.log('888888', 'Options change!')
351
- },
352
- },
353
- },
354
- created() {
355
- if (!this.optionModel.hasOwnProperty("optionItemValueType")) {
356
- this.optionModel.optionItemValueType = 0;
357
- }
358
- if (this.optionModel.optionItemValueType == 1) {
359
- if (
360
- this.optionModel.defaultValue === null ||
361
- this.optionModel.defaultValue === ""
362
- ) {
363
- this.optionModel.defaultValue = undefined;
364
- }
365
- }
366
- },
367
- methods: {
368
- emitDefaultValueChange() {
369
- if (!!this.designer && !!this.designer.formWidget) {
370
- let fieldWidget = this.designer.formWidget.getWidgetRef(
371
- this.selectedWidget.options.name
372
- );
373
- if (!!fieldWidget && !!fieldWidget.refreshDefaultValue) {
374
- fieldWidget.refreshDefaultValue();
375
- }
376
- }
377
- },
378
-
379
- deleteOption(option, index) {
380
- this.optionModel.optionItems.splice(index, 1);
381
- },
382
-
383
- addOption() {
384
- let optionItemValueType = this.optionModel.optionItemValueType;
385
- let newValue = this.optionModel.optionItems.length + 1;
386
- if (!optionItemValueType) {
387
- newValue = newValue + "";
388
- } else if (optionItemValueType == 2) {
389
- newValue = true;
390
- }
391
- this.optionModel.optionItems.push({
392
- value: newValue,
393
- label: "new option",
394
- });
395
- },
396
-
397
- importOptions() {
398
- this.optionLines = "";
399
- if (this.optionModel.optionItems.length > 0) {
400
- this.optionModel.optionItems.forEach((opt) => {
401
- if (opt.value === opt.label) {
402
- this.optionLines += opt.value + "\n";
403
- } else {
404
- this.optionLines += opt.value + this.separator + opt.label + "\n";
405
- }
406
- });
407
- }
408
-
409
- this.showImportDialogFlag = true;
410
- },
411
-
412
- saveOptions() {
413
- let lineArray = this.optionLines.split("\n");
414
- //console.log('test', lineArray)
415
- if (lineArray.length > 0) {
416
- let isNumericOptionItemValue = this.optionModel.optionItemValueType === 1;
417
- this.optionModel.optionItems = [];
418
- lineArray.forEach((optLine) => {
419
- if (!!optLine && !!optLine.trim()) {
420
- if (optLine.indexOf(this.separator) !== -1) {
421
- let valueStr = optLine.split(this.separator)[0];
422
- let value = isNumericOptionItemValue ? Number(valueStr) : valueStr;
423
- this.optionModel.optionItems.push({
424
- value: value,
425
- label: optLine.split(this.separator)[1],
426
- });
427
- } else {
428
- let value = isNumericOptionItemValue ? Number(optLine) : optLine;
429
- this.optionModel.optionItems.push({
430
- value: value,
431
- label: optLine,
432
- });
433
- }
434
- }
435
- });
436
- } else {
437
- this.optionModel.optionItems = [];
438
- }
439
-
440
- this.showImportDialogFlag = false;
441
- },
442
-
443
- resetDefault() {
444
- if (
445
- this.selectedWidget.type === "checkbox" ||
446
- (this.selectedWidget.type === "select" && this.selectedWidget.options.multiple)
447
- ) {
448
- this.optionModel.defaultValue = [];
449
- } else {
450
- this.optionModel.defaultValue = undefined;
451
- }
452
-
453
- this.emitDefaultValueChange();
454
- },
455
-
456
- importCascaderOptions() {
457
- this.cascaderOptions = JSON.stringify(this.optionModel.optionItems, null, " ");
458
- this.showImportCascaderDialogFlag = true;
459
- },
460
-
461
- saveCascaderOptions() {
462
- try {
463
- let newOptions = JSON.parse(this.cascaderOptions);
464
- this.optionModel.optionItems = newOptions;
465
- //TODO: 是否需要重置选项默认值??
466
-
467
- this.showImportCascaderDialogFlag = false;
468
- } catch (ex) {
469
- this.$message.error(this.i18nt("designer.hint.invalidOptionsData") + ex.message);
470
- }
471
- },
472
- changeValueType(val) {
473
- let optionItems = this.optionModel.optionItems;
474
- // this.optionModel.defaultValue = undefined;
475
- this.resetDefault();
476
- this.optionModel.optionItems.length = 0;
477
- if (val == 2) {
478
- optionItems.push({
479
- label: "是",
480
- value: true,
481
- });
482
- optionItems.push({
483
- label: "否",
484
- value: false,
485
- });
486
- } else {
487
- this.addOption();
488
- }
489
- this.$forceUpdate();
490
- this.emitDefaultValueChange();
491
- },
492
-
493
- openTableDataEdit: function () {
494
- (this.dataDialogVisible = !0),
495
- (this.tableDataOptions = JSON.stringify(
496
- this.optionModel.defaultValue,
497
- null,
498
- " "
499
- ));
500
- },
501
- saveTableData: function () {
502
- try {
503
- (this.optionModel.defaultValue = JSON.parse(this.tableDataOptions)),
504
- (this.dataDialogVisible = !1);
505
- } catch (e) {
506
- this.$message.error(this.i18nt("designer.hint.invalidOptionsData") + e.message);
507
- }
508
- },
509
- getDefaultValue() {
510
- let result = this.optionModel.defaultValue;
511
- if (result) {
512
- if (Array.isArray(result)) {
513
- result = result.join(",");
514
- }
515
- }
516
- return result;
517
- },
518
- },
519
- };
520
- </script>
521
-
522
- <style lang="scss" scoped>
523
- .option-items-pane ul {
524
- padding-inline-start: 6px;
525
- padding-left: 6px; /* 重置IE11默认样式 */
526
- }
527
-
528
- li.ghost {
529
- background: #fff;
530
- border: 2px dotted $--color-primary;
531
- }
532
-
533
- .drag-option {
534
- cursor: move;
535
- }
536
-
537
- .small-padding-dialog ::v-deep .el-dialog__body {
538
- padding: 10px 15px;
539
- }
540
-
541
- .dialog-footer .el-button {
542
- width: 100px;
543
- }
544
- </style>
1
+ <template>
2
+ <div class="option-items-pane">
3
+ <el-form-item label="选项值类型">
4
+ <el-radio-group
5
+ v-model="optionModel.optionItemValueType"
6
+ @change="changeValueType"
7
+ >
8
+ <el-radio :label="0">文本</el-radio>
9
+ <el-radio :label="1">数值</el-radio>
10
+ <el-radio :label="2">布尔值</el-radio>
11
+ </el-radio-group>
12
+ </el-form-item>
13
+
14
+ <el-form-item class="form-item-label-top" label="默认值">
15
+ <template
16
+ v-if="
17
+ selectedWidget.type === 'checkbox' ||
18
+ (selectedWidget.type === 'select' && selectedWidget.options.multiple)
19
+ "
20
+ >
21
+ <a
22
+ href="javascript:void(0);"
23
+ class="a-link link-oneLind"
24
+ @click="openTableDataEdit()"
25
+ >
26
+ <span>{{ getDefaultValue() }}</span>
27
+ <i class="el-icon-edit"></i>
28
+ </a>
29
+ </template>
30
+ <template v-else>
31
+ <el-input
32
+ v-model="optionModel.defaultValue"
33
+ size="mini"
34
+ style="width: 100px"
35
+ v-if="!optionModel.optionItemValueType"
36
+ ></el-input>
37
+ <base-input-number
38
+ v-model="optionModel.defaultValue"
39
+ size="mini"
40
+ style="width: 100%"
41
+ v-if="optionModel.optionItemValueType == 1"
42
+ />
43
+ <el-select
44
+ v-model="optionModel.defaultValue"
45
+ style="width: 100%"
46
+ v-if="optionModel.optionItemValueType === 2"
47
+ clearable
48
+ @clear="optionModel.defaultValue = null"
49
+ >
50
+ <el-option :value="true" label="true"></el-option>
51
+ <el-option :value="false" label="false"></el-option>
52
+ </el-select>
53
+ </template>
54
+ </el-form-item>
55
+ <el-form-item class="form-item-label-top" :label="i18nt('显示字段')">
56
+ <el-input
57
+ type="text"
58
+ v-model="optionModel.labelKey"
59
+ placeholder="默认label"
60
+ :disabled="
61
+ optionModel.commonAttributeEnabled || !optionModel.formScriptEnabled
62
+ "
63
+ ></el-input>
64
+ </el-form-item>
65
+ <el-form-item class="form-item-label-top" :label="i18nt('关联字段')">
66
+ <el-input
67
+ type="text"
68
+ v-model="optionModel.valueKey"
69
+ placeholder="默认value"
70
+ :disabled="
71
+ optionModel.commonAttributeEnabled || !optionModel.formScriptEnabled
72
+ "
73
+ ></el-input>
74
+ </el-form-item>
75
+ <el-form-item class="form-item-label-top"
76
+ v-if="hasConfig('childrenKey')"
77
+ :label="i18nt('designer.setting.childrenKeyName')"
78
+ >
79
+ <el-input v-model="optionModel.childrenKey"></el-input>
80
+ </el-form-item>
81
+ <template
82
+ v-if="
83
+ !optionModel.commonAttributeEnabled && !optionModel.formScriptEnabled
84
+ "
85
+ >
86
+ <el-radio-group
87
+ v-if="
88
+ selectedWidget.type === 'radio' ||
89
+ (selectedWidget.type === 'select' && !selectedWidget.options.multiple)
90
+ "
91
+ v-model="optionModel.defaultValue"
92
+ @change="emitDefaultValueChange"
93
+ >
94
+ <draggable
95
+ tag="ul"
96
+ class="draggable-box"
97
+ :list="optionModel.optionItems"
98
+ v-bind="{
99
+ group: 'optionsGroup',
100
+ ghostClass: 'ghost',
101
+ handle: '.drag-option',
102
+ }"
103
+ >
104
+ <li v-for="(option, idx) in optionModel.optionItems" :key="idx">
105
+ <el-radio :label="option.value">
106
+ <el-input
107
+ v-model="option.value"
108
+ size="mini"
109
+ style="width: 100px"
110
+ v-if="!optionModel.optionItemValueType"
111
+ ></el-input>
112
+ <base-input-number
113
+ v-model="option.value"
114
+ size="mini"
115
+ style="width: 100px"
116
+ v-if="optionModel.optionItemValueType == 1"
117
+ />
118
+ <!-- <el-input v-model="option.value" size="mini" style="width: 100px" v-if="optionModel.optionItemValueType===2" disabled></el-input>-->
119
+ <el-select
120
+ v-model="option.value"
121
+ style="width: 100px"
122
+ v-if="optionModel.optionItemValueType === 2"
123
+ >
124
+ <el-option :value="true" label="true"></el-option>
125
+ <el-option :value="false" label="false"></el-option>
126
+ </el-select>
127
+ <el-input
128
+ v-model="option.label"
129
+ size="mini"
130
+ style="width: 100px"
131
+ ></el-input>
132
+ <i class="el-icon-s-operation drag-option"></i>
133
+ <el-button
134
+ circle
135
+ plain
136
+ size="mini"
137
+ type="danger"
138
+ @click="deleteOption(option, idx)"
139
+ icon="el-icon-minus"
140
+ class="col-delete-button"
141
+ ></el-button>
142
+ </el-radio>
143
+ </li>
144
+ </draggable>
145
+ </el-radio-group>
146
+ <el-checkbox-group
147
+ v-else-if="
148
+ selectedWidget.type === 'checkbox' ||
149
+ (selectedWidget.type === 'select' && selectedWidget.options.multiple)
150
+ "
151
+ v-model="optionModel.defaultValue"
152
+ @change="emitDefaultValueChange"
153
+ >
154
+ <draggable
155
+ tag="ul"
156
+ class="draggable-box"
157
+ :list="optionModel.optionItems"
158
+ v-bind="{
159
+ group: 'optionsGroup',
160
+ ghostClass: 'ghost',
161
+ handle: '.drag-option',
162
+ }"
163
+ >
164
+ <li v-for="(option, idx) in optionModel.optionItems" :key="idx">
165
+ <el-checkbox :label="option.value">
166
+ <el-input
167
+ v-model="option.value"
168
+ size="mini"
169
+ style="width: 100px"
170
+ v-if="!optionModel.optionItemValueType"
171
+ ></el-input>
172
+ <base-input-number
173
+ v-model="option.value"
174
+ size="mini"
175
+ style="width: 100px"
176
+ v-if="optionModel.optionItemValueType == 1"
177
+ />
178
+ <el-input
179
+ v-model="option.value"
180
+ size="mini"
181
+ style="width: 100px"
182
+ v-if="optionModel.optionItemValueType === 2"
183
+ disabled
184
+ ></el-input>
185
+ <el-input
186
+ v-model="option.label"
187
+ size="mini"
188
+ style="width: 100px"
189
+ ></el-input>
190
+ <i class="el-icon-s-operation drag-option"></i>
191
+ <el-button
192
+ circle
193
+ plain
194
+ size="mini"
195
+ type="danger"
196
+ @click="deleteOption(option, idx)"
197
+ icon="el-icon-minus"
198
+ class="col-delete-button"
199
+ ></el-button>
200
+ </el-checkbox>
201
+ </li>
202
+ </draggable>
203
+ </el-checkbox-group>
204
+ <el-cascader
205
+ v-else-if="selectedWidget.type === 'cascader'"
206
+ v-model="optionModel.defaultValue"
207
+ :options="optionModel.optionItems"
208
+ @change="emitDefaultValueChange"
209
+ :placeholder="i18nt('render.hint.selectPlaceholder')"
210
+ style="width: 100%"
211
+ >
212
+ </el-cascader>
213
+ <div v-if="selectedWidget.type === 'cascader'">
214
+ <el-button type="text" @click="importCascaderOptions">{{
215
+ i18nt("designer.setting.importOptions")
216
+ }}</el-button>
217
+ <el-button type="text" @click="resetDefault">{{
218
+ i18nt("designer.setting.resetDefault")
219
+ }}</el-button>
220
+ </div>
221
+
222
+ <div
223
+ v-if="
224
+ selectedWidget.type === 'radio' ||
225
+ selectedWidget.type === 'checkbox' ||
226
+ selectedWidget.type === 'select'
227
+ "
228
+ >
229
+ <el-button type="text" @click="addOption">{{
230
+ i18nt("designer.setting.addOption")
231
+ }}</el-button>
232
+ <el-button
233
+ type="text"
234
+ @click="importOptions"
235
+ v-if="optionModel.optionItemValueType !== 2"
236
+ >{{ i18nt("designer.setting.importOptions") }}</el-button
237
+ >
238
+ <el-button type="text" @click="resetDefault">{{
239
+ i18nt("designer.setting.resetDefault")
240
+ }}</el-button>
241
+ </div>
242
+ </template>
243
+
244
+ <el-dialog
245
+ :title="i18nt('designer.setting.importOptions')"
246
+ :visible.sync="showImportDialogFlag"
247
+ v-if="showImportDialogFlag"
248
+ :show-close="true"
249
+ class="small-padding-dialog"
250
+ :close-on-click-modal="false"
251
+ :close-on-press-escape="false"
252
+ :destroy-on-close="true"
253
+ :append-to-body="true"
254
+ :modal-append-to-body="true"
255
+ >
256
+ <el-form-item
257
+ ><el-input type="textarea" rows="10" v-model="optionLines"></el-input
258
+ ></el-form-item>
259
+ <div slot="footer" class="dialog-footer">
260
+ <el-button size="large" type="primary" @click="saveOptions">{{
261
+ i18nt("designer.hint.confirm")
262
+ }}</el-button>
263
+ <el-button size="large" type="" @click="showImportDialogFlag = false">{{
264
+ i18nt("designer.hint.cancel")
265
+ }}</el-button>
266
+ </div>
267
+ </el-dialog>
268
+
269
+ <el-dialog
270
+ :title="i18nt('designer.setting.importOptions')"
271
+ :visible.sync="showImportCascaderDialogFlag"
272
+ v-if="showImportCascaderDialogFlag"
273
+ :show-close="true"
274
+ class="small-padding-dialog"
275
+ append-to-body
276
+ :close-on-click-modal="false"
277
+ :close-on-press-escape="false"
278
+ :destroy-on-close="true"
279
+ >
280
+ <code-editor
281
+ v-model="cascaderOptions"
282
+ mode="json"
283
+ :readonly="false"
284
+ ></code-editor>
285
+ <div slot="footer" class="dialog-footer">
286
+ <el-button size="large" type="primary" @click="saveCascaderOptions">{{
287
+ i18nt("designer.hint.confirm")
288
+ }}</el-button>
289
+ <el-button
290
+ size="large"
291
+ type=""
292
+ @click="showImportCascaderDialogFlag = false"
293
+ >{{ i18nt("designer.hint.cancel") }}</el-button
294
+ >
295
+ </div>
296
+ </el-dialog>
297
+
298
+ <el-dialog
299
+ v-if="dataDialogVisible"
300
+ custom-class="dialog-style list-dialog"
301
+ :title="i18nt('默认值编辑')"
302
+ :visible.sync="dataDialogVisible"
303
+ :show-close="!0"
304
+ append-to-body=""
305
+ :close-on-click-modal="!1"
306
+ :close-on-press-escape="!1"
307
+ :destroy-on-close="!0"
308
+ width="75%"
309
+ v-dialog-drag
310
+ >
311
+ <template slot="footer">
312
+ <div class="dialog-footer">
313
+ <el-button
314
+ type=""
315
+ @click="dataDialogVisible = !1"
316
+ class="button-sty"
317
+ icon="el-icon-close"
318
+ >
319
+ {{ i18nt("designer.hint.cancel") }}
320
+ </el-button>
321
+ <el-button
322
+ type="primary"
323
+ @click="saveTableData"
324
+ class="button-sty"
325
+ icon="el-icon-check"
326
+ >
327
+ {{ i18nt("designer.hint.confirm") }}
328
+ </el-button>
329
+ </div>
330
+ </template>
331
+ <code-editor
332
+ mode="json"
333
+ :readonly="!1"
334
+ v-model="tableDataOptions"
335
+ ></code-editor>
336
+ </el-dialog>
337
+ </div>
338
+ </template>
339
+
340
+ <script>
341
+ import Draggable from "vuedraggable";
342
+ import i18n from "../../../../components/xform/utils/i18n";
343
+ import propertyMixin from "../../../../components/xform/form-designer/setting-panel/property-editor/propertyMixin";
344
+
345
+ export default {
346
+ name: "OptionItemsSetting",
347
+ componentName: "PropertyEditor",
348
+ mixins: [i18n, propertyMixin],
349
+ components: {
350
+ Draggable,
351
+ },
352
+ props: {
353
+ designer: Object,
354
+ selectedWidget: Object,
355
+ },
356
+ data() {
357
+ return {
358
+ showImportDialogFlag: false,
359
+ optionLines: "",
360
+
361
+ cascaderOptions: "",
362
+ showImportCascaderDialogFlag: false,
363
+
364
+ //separator: '||',
365
+ separator: ",",
366
+ dataDialogVisible: false,
367
+ tableDataOptions: [],
368
+ };
369
+ },
370
+ computed: {
371
+ optionModel() {
372
+ return this.selectedWidget.options;
373
+ },
374
+ },
375
+ watch: {
376
+ "selectedWidget.options": {
377
+ deep: true,
378
+ handler(val) {
379
+ //console.log('888888', 'Options change!')
380
+ },
381
+ },
382
+ },
383
+ created() {
384
+ if (!this.optionModel.hasOwnProperty("optionItemValueType")) {
385
+ this.optionModel.optionItemValueType = 0;
386
+ }
387
+ if (this.optionModel.optionItemValueType == 1) {
388
+ if (
389
+ this.optionModel.defaultValue === null ||
390
+ this.optionModel.defaultValue === ""
391
+ ) {
392
+ this.optionModel.defaultValue = undefined;
393
+ }
394
+ }
395
+ },
396
+ methods: {
397
+ emitDefaultValueChange() {
398
+ if (!!this.designer && !!this.designer.formWidget) {
399
+ let fieldWidget = this.designer.formWidget.getWidgetRef(
400
+ this.selectedWidget.options.name
401
+ );
402
+ if (!!fieldWidget && !!fieldWidget.refreshDefaultValue) {
403
+ fieldWidget.refreshDefaultValue();
404
+ }
405
+ }
406
+ },
407
+
408
+ deleteOption(option, index) {
409
+ this.optionModel.optionItems.splice(index, 1);
410
+ },
411
+
412
+ addOption() {
413
+ let optionItemValueType = this.optionModel.optionItemValueType;
414
+ let newValue = this.optionModel.optionItems.length + 1;
415
+ if (!optionItemValueType) {
416
+ newValue = newValue + "";
417
+ } else if (optionItemValueType == 2) {
418
+ newValue = true;
419
+ }
420
+ this.optionModel.optionItems.push({
421
+ value: newValue,
422
+ label: "new option",
423
+ });
424
+ },
425
+
426
+ importOptions() {
427
+ this.optionLines = "";
428
+ if (this.optionModel.optionItems.length > 0) {
429
+ this.optionModel.optionItems.forEach((opt) => {
430
+ if (opt.value === opt.label) {
431
+ this.optionLines += opt.value + "\n";
432
+ } else {
433
+ this.optionLines += opt.value + this.separator + opt.label + "\n";
434
+ }
435
+ });
436
+ }
437
+
438
+ this.showImportDialogFlag = true;
439
+ },
440
+
441
+ saveOptions() {
442
+ let lineArray = this.optionLines.split("\n");
443
+ //console.log('test', lineArray)
444
+ if (lineArray.length > 0) {
445
+ let isNumericOptionItemValue =
446
+ this.optionModel.optionItemValueType === 1;
447
+ this.optionModel.optionItems = [];
448
+ lineArray.forEach((optLine) => {
449
+ if (!!optLine && !!optLine.trim()) {
450
+ if (optLine.indexOf(this.separator) !== -1) {
451
+ let valueStr = optLine.split(this.separator)[0];
452
+ let value = isNumericOptionItemValue
453
+ ? Number(valueStr)
454
+ : valueStr;
455
+ this.optionModel.optionItems.push({
456
+ value: value,
457
+ label: optLine.split(this.separator)[1],
458
+ });
459
+ } else {
460
+ let value = isNumericOptionItemValue ? Number(optLine) : optLine;
461
+ this.optionModel.optionItems.push({
462
+ value: value,
463
+ label: optLine,
464
+ });
465
+ }
466
+ }
467
+ });
468
+ } else {
469
+ this.optionModel.optionItems = [];
470
+ }
471
+
472
+ this.showImportDialogFlag = false;
473
+ },
474
+
475
+ resetDefault() {
476
+ if (
477
+ this.selectedWidget.type === "checkbox" ||
478
+ (this.selectedWidget.type === "select" &&
479
+ this.selectedWidget.options.multiple)
480
+ ) {
481
+ this.optionModel.defaultValue = [];
482
+ } else {
483
+ this.optionModel.defaultValue = undefined;
484
+ }
485
+
486
+ this.emitDefaultValueChange();
487
+ },
488
+
489
+ importCascaderOptions() {
490
+ this.cascaderOptions = JSON.stringify(
491
+ this.optionModel.optionItems,
492
+ null,
493
+ " "
494
+ );
495
+ this.showImportCascaderDialogFlag = true;
496
+ },
497
+
498
+ saveCascaderOptions() {
499
+ try {
500
+ let newOptions = JSON.parse(this.cascaderOptions);
501
+ this.optionModel.optionItems = newOptions;
502
+ //TODO: 是否需要重置选项默认值??
503
+
504
+ this.showImportCascaderDialogFlag = false;
505
+ } catch (ex) {
506
+ this.$message.error(
507
+ this.i18nt("designer.hint.invalidOptionsData") + ex.message
508
+ );
509
+ }
510
+ },
511
+ changeValueType(val) {
512
+ let optionItems = this.optionModel.optionItems;
513
+ // this.optionModel.defaultValue = undefined;
514
+ this.resetDefault();
515
+ this.optionModel.optionItems.length = 0;
516
+ if (val == 2) {
517
+ optionItems.push({
518
+ label: "是",
519
+ value: true,
520
+ });
521
+ optionItems.push({
522
+ label: "",
523
+ value: false,
524
+ });
525
+ } else {
526
+ this.addOption();
527
+ }
528
+ this.$forceUpdate();
529
+ this.emitDefaultValueChange();
530
+ },
531
+
532
+ openTableDataEdit: function () {
533
+ (this.dataDialogVisible = !0),
534
+ (this.tableDataOptions = JSON.stringify(
535
+ this.optionModel.defaultValue,
536
+ null,
537
+ " "
538
+ ));
539
+ },
540
+ saveTableData: function () {
541
+ try {
542
+ (this.optionModel.defaultValue = JSON.parse(this.tableDataOptions)),
543
+ (this.dataDialogVisible = !1);
544
+ } catch (e) {
545
+ this.$message.error(
546
+ this.i18nt("designer.hint.invalidOptionsData") + e.message
547
+ );
548
+ }
549
+ },
550
+ getDefaultValue() {
551
+ let result = this.optionModel.defaultValue;
552
+ if (result) {
553
+ if (Array.isArray(result)) {
554
+ result = result.join(",");
555
+ }
556
+ }
557
+ return result;
558
+ },
559
+ },
560
+ };
561
+ </script>
562
+
563
+ <style lang="scss" scoped>
564
+ .option-items-pane ul {
565
+ padding-inline-start: 6px;
566
+ padding-left: 6px; /* 重置IE11默认样式 */
567
+ }
568
+
569
+ li.ghost {
570
+ background: #fff;
571
+ border: 2px dotted $--color-primary;
572
+ }
573
+
574
+ .drag-option {
575
+ cursor: move;
576
+ }
577
+
578
+ .small-padding-dialog ::v-deep .el-dialog__body {
579
+ padding: 10px 15px;
580
+ }
581
+
582
+ .dialog-footer .el-button {
583
+ width: 100px;
584
+ }
585
+ </style>