cloud-web-corejs 1.1.0-dev.6 → 1.1.0-dev.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/README.md +38 -0
  2. package/bin/core-resources.js +16 -0
  3. package/bin/create-child-app.js +34 -0
  4. package/docs/child-app/README.md +95 -0
  5. package/docs/child-app/activiti-resources.md +63 -0
  6. package/docs/child-app/generate-prompt.md +55 -0
  7. package/docs/child-app/luckysheet-resources.md +80 -0
  8. package/docs/child-app/public-resources-plan.md +288 -0
  9. package/docs/child-app/resources-implementation.md +101 -0
  10. package/docs/child-app/tinymce-resources.md +88 -0
  11. package/docs/child-app/validation.md +34 -0
  12. package/docs/qiankun/346/216/245/345/205/245/345/215/217/350/256/256.md +298 -0
  13. package/docs/qiankun/350/257/246/346/203/205/346/211/277/350/275/275/345/255/220/345/272/224/347/224/250/345/257/271/346/216/245/346/270/205/345/215/225.md +111 -0
  14. package/package.json +29 -4
  15. package/resource-tools/index.js +126 -0
  16. package/src/app-bootstrap.js +531 -0
  17. package/src/app-bootstrap.sync.js +502 -0
  18. package/src/boot-assets.legacy.js +13 -0
  19. package/src/boot-assets.next.js +7 -0
  20. package/src/components/Qrcode/fileParse.vue +11 -0
  21. package/src/components/Tinymce/dynamicLoadScript.js +51 -59
  22. package/src/components/Tinymce/index.vue +382 -336
  23. package/src/components/Tinymce/mce-chrome.scss +150 -0
  24. package/src/components/VabUpload/image-viewer.vue +18 -10
  25. package/src/components/VabUpload/index.js +11 -4
  26. package/src/components/VabUpload/index.vue +1 -1
  27. package/src/components/VabUpload/mixins/fileLibraryDialog.js +2 -0
  28. package/src/components/VabUpload/mixins.js +72 -40
  29. package/src/components/VabUpload/partUploadConfig.js +95 -0
  30. package/src/components/VabUpload/privateProfileDialogMixins.js +2 -0
  31. package/src/components/VabUpload/style.scss +282 -0
  32. package/src/components/VabUpload/view.vue +19 -18
  33. package/src/components/baseArea/index.vue +2 -2
  34. package/src/components/baseInputExport/mixins.js +1 -6
  35. package/src/components/bizTab/BizTabListPage.vue +66 -33
  36. package/src/components/bizTab/README.md +3 -1
  37. package/src/components/bizTab/bizBillDetailMixin.js +2 -0
  38. package/src/components/code-editor/ace-chrome.scss +17 -0
  39. package/src/components/code-editor/index.vue +361 -340
  40. package/src/components/errorMsg/index.vue +142 -13
  41. package/src/components/errorMsg/mixins.js +53 -0
  42. package/src/components/excelExport/conditionExportConfig.js +112 -0
  43. package/src/components/excelExport/exportColumnMemory.js +118 -0
  44. package/src/components/excelExport/exportFieldDialog.vue +50 -38
  45. package/src/components/excelExport/exportType.js +8 -0
  46. package/src/components/excelExport/index.js +30 -13
  47. package/src/components/excelExport/index.vue +7 -1
  48. package/src/components/excelExport/mixins.js +782 -293
  49. package/src/components/excelImport/index.vue +156 -156
  50. package/src/components/excelImport/mixins.js +888 -834
  51. package/src/components/fileLibrary/mixins/indexMixins.js +2 -0
  52. package/src/components/fileLibrary/style.scss +579 -0
  53. package/src/components/formDialog/index.vue +11 -8
  54. package/src/components/hiprint/style.scss +188 -0
  55. package/src/components/hiprint/view/json-view.vue +4 -4
  56. package/src/components/jdPrint/mixins.js +2 -0
  57. package/src/components/jsonImport/index.vue +1 -1
  58. package/src/components/jsonImport/mixins.js +6 -10
  59. package/src/components/langImport/index.vue +1 -1
  60. package/src/components/langImport/mixins.js +6 -10
  61. package/src/components/luckysheet/loadResources.js +64 -0
  62. package/src/components/luckysheet/view.vue +239 -210
  63. package/src/components/mobile/buttonGroup/index.vue +1 -1
  64. package/src/components/mobile/wf/addTaskUserdialog.vue +100 -80
  65. package/src/components/mobile/wf/content.vue +1734 -1662
  66. package/src/components/mobile/wf/deleteTaskUserDialog.vue +73 -54
  67. package/src/components/mobile/wf/selectUserDialog.vue +118 -0
  68. package/src/components/mobile/wf/setCandidateDialog.vue +69 -48
  69. package/src/components/mobile/wf/urgingDialog.vue +75 -52
  70. package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
  71. package/src/components/obsUpload/index.js +4 -1
  72. package/src/components/obsUpload/index.vue +1 -1
  73. package/src/components/obsUpload/mixins.js +45 -15
  74. package/src/components/onlineTalk/index.vue +4 -4
  75. package/src/components/onlineTalk/mixins.js +21 -7
  76. package/src/components/table/index.js +96 -81
  77. package/src/components/table/plugins/cell-area/index.js +10 -3
  78. package/src/components/table/style.scss +1399 -0
  79. package/src/components/table/vxeFilter/mixin.js +28 -18
  80. package/src/components/wf/content.vue +3 -2
  81. package/src/components/wf/content2.vue +1 -1
  82. package/src/components/wf/style.scss +265 -0
  83. package/src/components/wf/wf.js +7 -0
  84. package/src/components/wf/wfActionItems.js +3 -0
  85. package/src/components/wf/wfStartDialog.vue +1 -0
  86. package/src/components/wf/wfTransferEnabled.js +54 -0
  87. package/src/components/wf/wfUtil.js +47 -29
  88. package/src/components/wf/wfVisibility.js +6 -0
  89. 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" +64 -57
  90. package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +1 -1
  91. package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +1 -1
  92. package/src/components/xform/docs/2026-09 /345/212/250/346/200/201/345/255/227/346/256/265/350/247/204/345/210/231/344/270/216/346/265/201/347/250/213/346/216/247/345/210/266/346/211/247/350/241/214/351/241/272/345/272/217/350/220/275/345/234/260/346/226/271/346/241/210.md" +409 -0
  93. package/src/components/xform/docs/2026-09 /346/235/241/344/273/266/345/257/274/345/207/272/345/244/247/346/225/260/346/215/256/351/207/217/345/264/251/346/272/203/346/216/222/346/237/245.md" +389 -0
  94. package/src/components/xform/docs/2026-09 /346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206P0/344/273/243/347/240/201/350/257/204/345/256/241.md" +255 -0
  95. package/src/components/xform/docs/2026-09 /346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206P0/346/265/213/350/257/225/351/252/214/350/257/201/345/256/236/346/226/275/346/226/207/346/241/243.md" +595 -0
  96. package/src/components/xform/docs/2026-09 /347/274/226/350/276/221/350/241/250/350/241/214/345/206/205/344/277/235/345/255/230/346/240/241/351/252/214/350/214/203/345/233/264/344/270/216/345/210/227/345/277/205/345/241/253/350/247/243/346/236/220/344/277/256/345/244/215.md" +233 -0
  97. package/src/components/xform/docs/2026-09 /350/241/250/345/215/225/345/257/274/345/205/245/351/200/232/351/201/223/346/242/263/347/220/206/344/270/216/350/220/275/345/234/260/346/226/271/346/241/210.md" +745 -0
  98. package/src/components/xform/docs//346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206/344/270/216/344/277/256/345/244/215/350/220/275/345/234/260/346/226/271/346/241/210.md +324 -0
  99. package/src/components/xform/form-designer/designer.js +2133 -2100
  100. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +7 -0
  101. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +4 -2
  102. package/src/components/xform/form-designer/form-widget/container-widget/detail-h5-widget.vue +243 -227
  103. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-pane-widget.vue +228 -207
  104. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-widget.vue +165 -136
  105. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +30 -4
  106. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +190 -185
  107. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +2657 -1774
  108. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +27 -4
  109. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +1 -1
  110. package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
  111. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +1 -1
  112. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +1 -1
  113. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -1
  114. package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
  115. package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +1 -1
  116. package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +1 -1
  117. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +1 -1
  118. package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +1 -1
  119. package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +1 -1
  120. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -1
  121. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +1 -1
  122. package/src/components/xform/form-designer/form-widget/field-widget/descriptions-widget.vue +1 -1
  123. package/src/components/xform/form-designer/form-widget/field-widget/divider-widget.vue +1 -1
  124. package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +1 -1
  125. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +1 -1
  126. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +35 -4
  127. package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
  128. package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
  129. package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
  130. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +64 -10
  131. package/src/components/xform/form-designer/form-widget/field-widget/file-upload-widget.vue +1 -1
  132. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +14 -4
  133. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +1 -1
  134. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +19 -6
  135. package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +1 -1
  136. package/src/components/xform/form-designer/form-widget/field-widget/index.js +10 -1
  137. package/src/components/xform/form-designer/form-widget/field-widget/input-batch-widget.vue +1 -1
  138. package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +29 -3
  139. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +1 -1
  140. package/src/components/xform/form-designer/form-widget/field-widget/news-list-widget.vue +1 -1
  141. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +1 -1
  142. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +1 -1
  143. package/src/components/xform/form-designer/form-widget/field-widget/picture-upload-widget.vue +1 -1
  144. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +1 -1
  145. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +1 -1
  146. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +1 -1
  147. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +1 -1
  148. package/src/components/xform/form-designer/form-widget/field-widget/rate-widget.vue +1 -1
  149. package/src/components/xform/form-designer/form-widget/field-widget/rich-editor-widget.vue +1 -1
  150. package/src/components/xform/form-designer/form-widget/field-widget/row-col-select-widget.vue +64 -0
  151. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +1 -1
  152. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +1 -1
  153. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +1 -1
  154. package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +1 -1
  155. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -2
  156. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +1 -1
  157. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +1 -1
  158. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -145
  159. package/src/components/xform/form-designer/form-widget/field-widget/slider-widget.vue +1 -1
  160. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +1 -1
  161. package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +1 -1
  162. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +1 -1
  163. package/src/components/xform/form-designer/form-widget/field-widget/switch-widget.vue +1 -1
  164. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +3 -2
  165. package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +1 -1
  166. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +1 -1
  167. package/src/components/xform/form-designer/form-widget/field-widget/textarea-widget.vue +1 -1
  168. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +1 -1
  169. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +1 -1
  170. package/src/components/xform/form-designer/form-widget/field-widget/title-head-widget.vue +1 -1
  171. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +1 -1
  172. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +3 -3
  173. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +25 -1
  174. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +1 -1
  175. package/src/components/xform/form-designer/indexMixin.js +27 -0
  176. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +687 -602
  177. package/src/components/xform/form-designer/setting-panel/form-setting.vue +269 -36
  178. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +335 -12
  179. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +23 -7
  180. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +13 -1
  181. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +846 -860
  182. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tab-lazyRender-editor.vue +27 -0
  183. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onTabChange-editor.vue +28 -0
  184. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onTabClick-editor.vue +28 -0
  185. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +62 -1
  186. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +142 -2
  187. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/empty-number-input.vue +51 -0
  188. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +27 -2
  189. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +33 -3
  190. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +2 -4
  191. package/src/components/xform/form-designer/setting-panel/property-editor/suffixIconClickable-editor.vue +23 -0
  192. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +18 -4
  193. package/src/components/xform/form-designer/toolbar-panel/index.vue +884 -874
  194. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +13 -0
  195. package/src/components/xform/form-designer/widget-panel/index.vue +11 -7
  196. package/src/components/xform/form-designer/widget-panel/indexMixin.js +15 -2
  197. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +152 -9
  198. package/src/components/xform/form-render/container-item/containerItemMixin.js +93 -8
  199. package/src/components/xform/form-render/container-item/data-table-item.vue +352 -347
  200. package/src/components/xform/form-render/container-item/data-table-mixin.js +7261 -5985
  201. package/src/components/xform/form-render/container-item/detail-h5-item.vue +48 -19
  202. package/src/components/xform/form-render/container-item/detail-item.vue +350 -446
  203. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +55 -1
  204. package/src/components/xform/form-render/container-item/list-h5-item.vue +261 -178
  205. package/src/components/xform/form-render/container-item/panel-item.vue +1 -1
  206. package/src/components/xform/form-render/container-item/tab-item.vue +177 -129
  207. package/src/components/xform/form-render/fieldControlEngine.js +218 -0
  208. package/src/components/xform/form-render/fieldControlMixin.js +536 -0
  209. package/src/components/xform/form-render/index.vue +164 -153
  210. package/src/components/xform/form-render/indexMixin.js +5443 -5311
  211. package/src/components/xform/form-render/pageDialogScope.js +54 -0
  212. package/src/components/xform/icon-picker/index.vue +1 -1
  213. package/src/components/xform/lang/en-US.js +8 -0
  214. package/src/components/xform/lang/zh-CN.js +9 -0
  215. package/src/components/xform/mixins/businessLock.js +59 -0
  216. package/src/components/xform/mixins/defaultHandle.js +713 -707
  217. package/src/components/xform/mixins/scriptHttp.js +42 -21
  218. package/src/components/xform/mixins/wfStart.js +105 -0
  219. package/src/components/xform/mixins/wfVisibility.js +33 -0
  220. package/src/components/xform/styles/census.scss +288 -0
  221. package/src/components/xform/styles/containers.scss +215 -0
  222. package/src/components/xform/styles/designer.scss +904 -0
  223. package/src/components/xform/styles/detail-temp.scss +71 -0
  224. package/src/components/xform/styles/h5-designer.scss +191 -0
  225. package/src/components/xform/styles/h5-runtime.scss +520 -0
  226. package/src/components/xform/styles/h5.scss +836 -516
  227. package/src/components/xform/styles/skins.scss +398 -0
  228. package/src/components/xform/styles/table-layout.scss +91 -0
  229. package/src/components/xform/styles/titles.scss +255 -0
  230. package/src/components/xform/utils/dynamicSchemaUtil.js +385 -361
  231. package/src/components/xform/utils/fixedQueryUtil.js +29 -4
  232. package/src/components/xform/utils/serviceNameCache.js +69 -0
  233. package/src/components/xform/utils/tableColumnHelper.js +46 -4
  234. package/src/components/xform/utils/util.js +1776 -1708
  235. package/src/core-resources/css/h5.scss +548 -0
  236. package/src/core-resources/css/iconfont.css +1447 -0
  237. package/src/core-resources/font/iconfont.ttf +0 -0
  238. package/src/core-resources/font/iconfont.woff +0 -0
  239. package/src/core-resources/font/iconfont.woff2 +0 -0
  240. package/src/core-resources/images/default-header.png +0 -0
  241. package/src/core-resources/images/ico-default_wenjian.svg +1 -0
  242. package/src/core-resources/images/ico-excel.svg +1 -0
  243. package/src/core-resources/images/ico-ftl.svg +7 -0
  244. package/src/core-resources/images/ico-html.svg +1 -0
  245. package/src/core-resources/images/ico-java.svg +1 -0
  246. package/src/core-resources/images/ico-music.svg +1 -0
  247. package/src/core-resources/images/ico-pdf.svg +1 -0
  248. package/src/core-resources/images/ico-photo.svg +1 -0
  249. package/src/core-resources/images/ico-ppt.svg +1 -0
  250. package/src/core-resources/images/ico-psd.svg +1 -0
  251. package/src/core-resources/images/ico-service.png +0 -0
  252. package/src/core-resources/images/ico-txt.svg +1 -0
  253. package/src/core-resources/images/ico-video.svg +1 -0
  254. package/src/core-resources/images/ico-vue.svg +8 -0
  255. package/src/core-resources/images/ico-wenjianjia.svg +1 -0
  256. package/src/core-resources/images/ico-wrod.svg +1 -0
  257. package/src/core-resources/images/ico-xml.svg +1 -0
  258. package/src/core-resources/images/ico-yasuobao.svg +1 -0
  259. package/src/core-resources/images/icon-error.png +0 -0
  260. package/src/core-resources/images/icon-tips.png +0 -0
  261. package/src/core-resources/images/nodata.png +0 -0
  262. package/src/core-resources/images/nodata2.png +0 -0
  263. package/src/directive/append-to-body/index.js +48 -0
  264. package/src/directive/el-dialog-center/index.js +3 -2
  265. package/src/directive/el-drag-dialog/drag.js +33 -4
  266. package/src/icons/index.js +9 -0
  267. package/src/icons/svg/404.svg +1 -0
  268. package/src/icons/svg/alert.svg +1 -0
  269. package/src/icons/svg/bug.svg +1 -0
  270. package/src/icons/svg/button.svg +1 -0
  271. package/src/icons/svg/card.svg +1 -0
  272. package/src/icons/svg/cascader-field.svg +1 -0
  273. package/src/icons/svg/census.svg +1 -0
  274. package/src/icons/svg/chart.svg +1 -0
  275. package/src/icons/svg/checkbox-field.svg +1 -0
  276. package/src/icons/svg/clipboard.svg +1 -0
  277. package/src/icons/svg/color-field.svg +1 -0
  278. package/src/icons/svg/component.svg +1 -0
  279. package/src/icons/svg/custom-component.svg +1 -0
  280. package/src/icons/svg/dashboard.svg +1 -0
  281. package/src/icons/svg/data-table.svg +1 -0
  282. package/src/icons/svg/date-field.svg +1 -0
  283. package/src/icons/svg/date-range-field.svg +1 -0
  284. package/src/icons/svg/descriptions.svg +1 -0
  285. package/src/icons/svg/divider.svg +1 -0
  286. package/src/icons/svg/document.svg +1 -0
  287. package/src/icons/svg/documentation.svg +1 -0
  288. package/src/icons/svg/drag.svg +1 -0
  289. package/src/icons/svg/echart-category.svg +1 -0
  290. package/src/icons/svg/echart-pie.svg +1 -0
  291. package/src/icons/svg/echart.svg +1 -0
  292. package/src/icons/svg/edit.svg +1 -0
  293. package/src/icons/svg/education.svg +1 -0
  294. package/src/icons/svg/email.svg +1 -0
  295. package/src/icons/svg/example.svg +1 -0
  296. package/src/icons/svg/excel.svg +1 -0
  297. package/src/icons/svg/exit-fullscreen.svg +1 -0
  298. package/src/icons/svg/eye-open.svg +1 -0
  299. package/src/icons/svg/eye.svg +1 -0
  300. package/src/icons/svg/file-upload-field.svg +1 -0
  301. package/src/icons/svg/form.svg +1 -0
  302. package/src/icons/svg/fullscreen.svg +1 -0
  303. package/src/icons/svg/github.svg +1 -0
  304. package/src/icons/svg/grid.svg +1 -0
  305. package/src/icons/svg/guide.svg +1 -0
  306. package/src/icons/svg/html-text.svg +1 -0
  307. package/src/icons/svg/ico-more.svg +1 -0
  308. package/src/icons/svg/ico-wenjianjia.svg +1 -0
  309. package/src/icons/svg/icon.svg +1 -0
  310. package/src/icons/svg/input-batch.svg +1 -0
  311. package/src/icons/svg/international.svg +1 -0
  312. package/src/icons/svg/language.svg +1 -0
  313. package/src/icons/svg/link.svg +1 -0
  314. package/src/icons/svg/list-export.svg +1 -0
  315. package/src/icons/svg/list.svg +1 -0
  316. package/src/icons/svg/lock.svg +1 -0
  317. package/src/icons/svg/message.svg +1 -0
  318. package/src/icons/svg/money.svg +1 -0
  319. package/src/icons/svg/nested.svg +1 -0
  320. package/src/icons/svg/news-list.svg +1 -0
  321. package/src/icons/svg/node-tree.svg +1 -0
  322. package/src/icons/svg/number-field.svg +1 -0
  323. package/src/icons/svg/password.svg +1 -0
  324. package/src/icons/svg/pdf.svg +1 -0
  325. package/src/icons/svg/people.svg +1 -0
  326. package/src/icons/svg/peoples.svg +1 -0
  327. package/src/icons/svg/picture-upload-field.svg +1 -0
  328. package/src/icons/svg/qq.svg +1 -0
  329. package/src/icons/svg/query.svg +1 -0
  330. package/src/icons/svg/radio-field.svg +1 -0
  331. package/src/icons/svg/rate-field.svg +1 -0
  332. package/src/icons/svg/redo.svg +1 -0
  333. package/src/icons/svg/rich-editor-field.svg +1 -0
  334. package/src/icons/svg/search.svg +1 -0
  335. package/src/icons/svg/searchbox.svg +1 -0
  336. package/src/icons/svg/section.svg +1 -0
  337. package/src/icons/svg/select-field.svg +1 -0
  338. package/src/icons/svg/shopping.svg +1 -0
  339. package/src/icons/svg/size.svg +1 -0
  340. package/src/icons/svg/skill.svg +1 -0
  341. package/src/icons/svg/slider-field.svg +1 -0
  342. package/src/icons/svg/slot-component.svg +1 -0
  343. package/src/icons/svg/slot-field.svg +1 -0
  344. package/src/icons/svg/star.svg +1 -0
  345. package/src/icons/svg/static-text.svg +1 -0
  346. package/src/icons/svg/status.svg +1 -0
  347. package/src/icons/svg/sub-form.svg +1 -0
  348. package/src/icons/svg/switch-field.svg +1 -0
  349. package/src/icons/svg/tab.svg +1 -0
  350. package/src/icons/svg/table.svg +1 -0
  351. package/src/icons/svg/text-field.svg +1 -0
  352. package/src/icons/svg/text.svg +1 -0
  353. package/src/icons/svg/textarea-field.svg +1 -0
  354. package/src/icons/svg/theme.svg +1 -0
  355. package/src/icons/svg/time-field.svg +1 -0
  356. package/src/icons/svg/time-range-field.svg +1 -0
  357. package/src/icons/svg/tips-text.svg +1 -0
  358. package/src/icons/svg/title-head.svg +1 -0
  359. package/src/icons/svg/tree-pane.svg +1 -0
  360. package/src/icons/svg/tree-table.svg +1 -0
  361. package/src/icons/svg/tree.svg +1 -0
  362. package/src/icons/svg/undo.svg +1 -0
  363. package/src/icons/svg/uploadbox.svg +1 -0
  364. package/src/icons/svg/user.svg +1 -0
  365. package/src/icons/svg/vf-box.svg +1 -0
  366. package/src/icons/svg/vf-dialog.svg +1 -0
  367. package/src/icons/svg/vf-drawer.svg +1 -0
  368. package/src/icons/svg/vue-sfc.svg +1 -0
  369. package/src/icons/svg/wechat.svg +1 -0
  370. package/src/icons/svg/zip.svg +1 -0
  371. package/src/index.js +2 -510
  372. package/src/index.next.js +5 -0
  373. package/src/index.sync.js +5 -0
  374. package/src/layout/components/Sidebar/default.vue +1656 -1655
  375. package/src/layout/components/TagsView/index.vue +330 -323
  376. package/src/layout/components/TagsView/style.scss +92 -0
  377. package/src/layout/components/watermark/index.vue +1 -1
  378. package/src/layout/defaultLayout.vue +2 -2
  379. package/src/router/index.js +43 -48
  380. package/src/router/modules/customer.js +12 -0
  381. package/src/store/modules/settings.js +1 -1
  382. package/src/store/modules/tagsView.js +241 -217
  383. package/src/store/modules/user.js +16 -12
  384. package/src/styles/btn.scss +315 -0
  385. package/src/styles/dialog.scss +1710 -0
  386. package/src/styles/element-ui.scss +1076 -0
  387. package/src/styles/element-variables.scss +31 -0
  388. package/src/styles/global.scss +115 -0
  389. package/src/styles/index.scss +245 -0
  390. package/src/styles/layout-skins.scss +840 -0
  391. package/src/styles/legacy-base.scss +19 -0
  392. package/src/styles/menu-icons.scss +75 -0
  393. package/src/styles/mixin.scss +80 -0
  394. package/src/styles/nprogress.scss +14 -0
  395. package/src/styles/page-shell.scss +723 -0
  396. package/src/styles/sidebar.scss +296 -0
  397. package/src/styles/split-handle.scss +52 -0
  398. package/src/styles/theme-variables.scss +7 -0
  399. package/src/styles/transition.scss +48 -0
  400. package/src/styles/utilities.scss +253 -0
  401. package/src/styles/variables.scss +72 -0
  402. package/src/utils/baseDictsCache.js +197 -0
  403. package/src/utils/chunkLoadError.js +24 -0
  404. package/src/utils/featureResources.js +57 -0
  405. package/src/utils/importLimit.js +72 -0
  406. package/src/utils/pdfUtil.js +6 -1
  407. package/src/utils/request.js +149 -9
  408. package/src/utils/resolveViewComponent.js +45 -90
  409. package/src/utils/runtimeRecovery.js +105 -0
  410. package/src/utils/swiperLoader.js +20 -0
  411. package/src/utils/vab.js +1334 -1283
  412. package/src/utils/xlsxLoader.js +29 -0
  413. package/src/views/bd/setting/formVersion/compareContMixin.scss +1 -1
  414. package/src/views/bd/setting/form_template/edit.vue +378 -356
  415. package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
  416. package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
  417. package/src/views/bd/setting/form_template/list.vue +304 -303
  418. package/src/views/bd/setting/form_template/mixins/edit.js +344 -280
  419. package/src/views/bd/setting/form_template/mixins/list.js +749 -721
  420. package/src/views/bd/setting/form_template/mixins/list2.js +412 -411
  421. package/src/views/bd/setting/form_template/mixins/wf_list.js +431 -430
  422. package/src/views/mobile/user/area/dialog.vue +1 -1
  423. package/src/views/mobile/user/user/dialog.vue +1 -1
  424. package/src/views/user/bill_setting/mixins/wf.js +8 -0
  425. package/src/views/user/bill_setting/render.vue +1 -1
  426. package/src/views/user/commMenu/index.vue +3 -1
  427. package/src/views/user/commMenu/style.scss +123 -0
  428. package/src/views/user/common_attribute/edit.vue +2 -0
  429. package/src/views/user/common_attribute/itemEdit.vue +2 -0
  430. package/src/views/user/file_view_ins/list.vue +970 -970
  431. package/src/views/user/form/form_template/list.vue +527 -506
  432. package/src/views/user/form/vform/designer.vue +823 -821
  433. package/src/views/user/form/view/list.vue +24 -1
  434. package/src/views/user/home/default.vue +1124 -1117
  435. package/src/views/user/home/default2.vue +12 -8
  436. package/src/views/user/home/index.vue +102 -102
  437. package/src/views/user/home/wjl/content.vue +1581 -1569
  438. package/src/views/user/intf_permission/edit.vue +230 -0
  439. package/src/views/user/intf_permission/list.vue +196 -0
  440. package/src/views/user/menuFallback/index.vue +23 -0
  441. package/src/views/user/notify_message/dialog.vue +139 -139
  442. package/src/views/user/outLink/form_view.vue +202 -202
  443. package/src/views/user/outLink/index.vue +110 -110
  444. package/src/views/user/role/edit.vue +4 -0
  445. package/src/views/user/role/role-box.scss +83 -0
  446. package/src/views/user/role/voc_edit.vue +4 -0
  447. package/src/views/user/user/list.vue +28 -6
  448. package/src/views/user/wf/iframe/index.vue +51 -51
  449. package/src/views/user/wf/iframe/index2.vue +64 -64
  450. package/src/views/user/wf/wf_diy_attribute/edit.vue +1 -1
  451. package/src/views/user/wf/wf_manage/list2.vue +871 -871
  452. package/src/views/user/wf/wf_manage/wfContentDialog.vue +177 -126
  453. package/src/views/user/wf/wf_obj_config/activiti_wf.vue +134 -133
  454. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +1 -1
  455. package/src/views/user/wf/wf_obj_config/list.vue +747 -746
  456. package/src/views/user/wf/wf_obj_config/list_form.vue +374 -373
  457. package/templates/child-app/.env +3 -0
  458. package/templates/child-app/README.md +49 -0
  459. package/templates/child-app/app.config.js +6 -0
  460. package/templates/child-app/babel.config.js +1 -0
  461. package/templates/child-app/core-resources.config.js +15 -0
  462. package/templates/child-app/gitignore +7 -0
  463. package/templates/child-app/package.json +34 -0
  464. package/templates/child-app/public/index.html +12 -0
  465. package/templates/child-app/src/assets/401_images/401.gif +0 -0
  466. package/templates/child-app/src/assets/404_images/404.png +0 -0
  467. package/templates/child-app/src/assets/404_images/404_cloud.png +0 -0
  468. package/templates/child-app/src/assets/logo.png +0 -0
  469. package/templates/child-app/src/corejsConfig.js +2 -0
  470. package/templates/child-app/src/icons/index.js +2 -0
  471. package/templates/child-app/src/icons/svg/child-demo.svg +1 -0
  472. package/templates/child-app/src/layout/index.vue +4 -0
  473. package/templates/child-app/src/main.js +5 -0
  474. package/templates/child-app/src/prefixConfig.js +13 -0
  475. package/templates/child-app/src/resources/css/login.scss +29 -0
  476. package/templates/child-app/src/resources/images/bg-login5.jpg +0 -0
  477. package/templates/child-app/src/resources/images/home-img.png +0 -0
  478. package/templates/child-app/src/router/modules/customer.js +3 -0
  479. package/templates/child-app/src/settings.js +25 -0
  480. package/templates/child-app/src/styles/app.scss +2 -0
  481. package/templates/child-app/src/views/demo/detail.vue +19 -0
  482. package/templates/child-app/src/views/demo/list.vue +38 -0
  483. package/templates/child-app/src/views/user/login/index.vue +18 -0
  484. package/templates/child-app/vue.config.js +107 -0
  485. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +0 -285
  486. package/src/components/xform/form-render/formDynamicFieldMixin.js +0 -131
  487. package/src/views/demo/bizTab/bill/billConfig.js +0 -41
  488. package/src/views/demo/bizTab/bill/detail.vue +0 -436
  489. package/src/views/demo/bizTab/bill/list.vue +0 -288
  490. package/src/views/demo/bizTab/bill/productDialog.vue +0 -176
  491. package/src/views/demo/bizTab/simple/billApi.js +0 -123
  492. package/src/views/demo/bizTab/simple/detail.vue +0 -407
  493. package/src/views/demo/bizTab/simple/list.vue +0 -217
  494. package/src/views/demo/bizTab/standalone/index.vue +0 -121
  495. package/src/views/demo/bizTab/wf/billConfig.js +0 -44
  496. package/src/views/demo/bizTab/wf/detail.vue +0 -661
  497. package/src/views/demo/bizTab/wf/list.vue +0 -242
  498. package/src/views/user/outLink/cc_form_view.vue +0 -188
  499. /package/src/{resources → core-resources}/js/base/common.js +0 -0
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * xform H5(移动端)版式样式基线
3
3
  *
4
- * 作用域:全部收在 .xform-h5 下。该根类由 form-render/index.vue 依
5
- * formConfig.layoutType === 'H5' 输出,PC/Pad 版式下整份样式不生效。
4
+ * 作用域:覆盖规则全部收在 .xform-h5 下。该根类由 form-render/index.vue 依
5
+ * formConfig.layoutType === 'H5' 输出,PC/Pad 版式下本文件的覆盖不生效。
6
+ *
7
+ * 裸类名基线(.h5-detail-wrap / .h5-list-box 等)在同目录 h5-runtime.scss,
8
+ * 由 Core 入口加载一次。本文件选择器段数必须继续高于那份基线。
6
9
  *
7
10
  * 为什么放包内而不是 resources/css/style.scss:
8
- * package.json 的 files 只含 src/resources/js,不含 src/resources/css ——
9
- * style.scss 不随 cloud-web-corejs 发布,消费应用用的是自己那份拷贝。
10
- * 样式写在这里才能随包走,改一次各应用同步生效。
11
+ * style.scss 是消费应用按需加载的历史业务样式,不随 cloud-web-corejs 发布。
12
+ * 组件样式写在这里才能随包走,改一次各应用同步生效。
11
13
  * 详见 docs/2026-08 xform 移动端布局对齐 bill_setting 方案.md 决策 2。
12
14
  *
13
15
  * ★ 特异度硬约束(改这个文件前必读):
@@ -19,7 +21,7 @@
19
21
  * 每处覆盖点都标了对手所在行号,便于核对。
20
22
  */
21
23
 
22
- @import "~@/styles/variables.scss";
24
+ @import "~@base/styles/variables.scss";
23
25
 
24
26
  /* ============ 块 A:变量 ============ */
25
27
  /* 收掉 bill_setting 散在 4 处 5 个值的 calc(100vh - N),不要抄它的具体数值 */
@@ -27,9 +29,10 @@ $xformH5HeaderHeight: 38px; // 标题栏
27
29
  $xformH5FooterHeight: 56px; // 底部动作栏
28
30
  $xformH5RowHeight: 48px; // 字段行高
29
31
  $xformH5LabelWidth: 80px; // 标签宽
30
- $xformH5RowBorder: #f3f3f3; // 行分隔线
32
+ $xformH5RowBorder: #f1f1f1; // 行分隔线
31
33
  $xformH5CardRadius: 12px;
32
34
  $xformH5PageBg: #f1f5fb;
35
+ $xformH5Size:14px;
33
36
 
34
37
  /* ============ 块 B:分组卡片(对齐 bill_setting 的 .c-item / .tit) ============ */
35
38
  /* 对手:style.scss:13766 .h5-detail-wrap .h5-item (0,2,0);本方 0,3,0
@@ -41,8 +44,8 @@ $xformH5PageBg: #f1f5fb;
41
44
  .c-item {
42
45
  background: #fff;
43
46
  border-radius: $xformH5CardRadius;
44
- margin: 12px 8px 0;
45
- padding-bottom: 6px;
47
+ margin: 12px 16px 0;
48
+ padding-bottom: 0;
46
49
  overflow: hidden;
47
50
 
48
51
  /* 对手:style.scss:13771 .h5-detail-wrap .h5-item .h5-title (0,3,0);本方 0,4,0
@@ -51,11 +54,11 @@ $xformH5PageBg: #f1f5fb;
51
54
  .tit {
52
55
  line-height: 45px;
53
56
  padding: 0 12px;
54
- border-bottom: 1px solid #f6f6f6;
57
+ border-bottom:none;
55
58
  position: relative;
56
59
 
57
60
  b {
58
- font-size: 14px;
61
+ font-size: 15px;
59
62
  font-weight: 600;
60
63
  color: #323232;
61
64
  }
@@ -116,11 +119,37 @@ $xformH5PageBg: #f1f5fb;
116
119
  给它加 12px 不会让任何字段受益,只会把里面的卡片整体往里缩一圈,
117
120
  结果是同一屏里 h5-card 里的卡片比流程面板窄 30px、左右对不齐。 */
118
121
  .xform-h5 .h5-detail-wrap .h5-item .h5-form-box {
119
- padding: 12px;
120
-
122
+ /* 12 拆成「容器 6 + 每个子项 6」,外缘仍是 12px,省出来的给列间距,见下面 > * 那条 */
123
+ padding:0 6px;
124
+ .item{
125
+ background: #FFF;
126
+ border-color: $xformH5RowBorder;
127
+ }
121
128
  > .form-widget-list {
122
129
  display: flex;
123
130
  flex-wrap: wrap;
131
+ .h5-header{
132
+ display: none;
133
+ }
134
+
135
+ /* 半宽两列的列间距(H5 版式最多两列,半宽的 50% 就是上限)。
136
+ 没有这一条时两列是贴着的:值是右对齐的(块 D),左列的值正好停在
137
+ 右列标签的左边界上,读起来就是「值粘在下一个字段名上」——
138
+ 表格路径早就补过同一个问题(块 C3 的
139
+ `td.table-cell + td.table-cell .el-form-item{padding-left:12px}`),
140
+ 流式路径一直缺。
141
+
142
+ ★ 用「容器减半 + 每项补一半」而不是给右列单独加左边距:
143
+ 整宽/半宽混排时,谁是右列在 CSS 里数不出来(半宽跟在整宽后面会另起一行,
144
+ nth-child 的奇偶与列位对不上)。这个口径与明细卡片块 I2 的 .t2/dl 一致:
145
+ 外缘不变、列间得到 6+6=12px。
146
+ ★ 打在所有直接子项上而不是只打 .field-wrapper:这一层还会装嵌套容器
147
+ (h5-table、list-h5 等),只给字段加的话容器会缩到距卡片边 6px、与字段行错开。
148
+ 全局 box-sizing 是 border-box(styles/index.scss),内边距算在 50% 里不会溢出。 */
149
+ > * {
150
+ padding-left: 6px;
151
+ padding-right: 6px;
152
+ }
124
153
  }
125
154
  }
126
155
 
@@ -153,24 +182,25 @@ $xformH5PageBg: #f1f5fb;
153
182
  那条正是块 C1 依赖的前提。 */
154
183
  .el-form-item {
155
184
  display: flex;
156
- align-items: flex-start;
185
+ /* 单行字段与移动端基本信息表格保持一致:标签和值都落在字段行中线。 */
186
+ align-items: center;
157
187
  position: relative;
158
188
  min-height: $xformH5RowHeight;
159
- padding: 6px 0;
160
189
  margin-bottom: 0;
161
- border-bottom: 1px solid $xformH5RowBorder;
162
190
  }
163
191
 
164
192
  /* 对手:style.scss:13854 `.h5-detail-wrap .h5-item .el-form-item__label` (0,3,0)
165
193
  带 text-align:left !important,且把 &:after 设成 display:none;本方 (0,5,0)。 */
166
194
  .el-form-item > .el-form-item__label {
195
+ display: flex !important;
196
+ align-items: center;
167
197
  width: $xformH5LabelWidth;
168
198
  padding: 0 5px 0 0;
169
199
  margin: 0;
170
200
  line-height: 1.4;
171
201
  height: auto;
172
202
  overflow: hidden;
173
- color: #808080;
203
+ color: #666666;
174
204
  text-align: left !important;
175
205
 
176
206
  /* 标签后自动补冒号,对齐 bill_setting form-table 的 th::after。
@@ -178,13 +208,13 @@ $xformH5PageBg: #f1f5fb;
178
208
  &::after {
179
209
  display: inline !important;
180
210
  content: ":";
211
+ margin-left:2px;
181
212
  }
182
213
  }
183
214
 
184
215
  .el-form-item > .el-form-item__content {
185
216
  flex: 1;
186
217
  line-height: 1.4;
187
- text-align: right;
188
218
  word-break: break-word;
189
219
  /* el-form-item 按 label-width 写的内联 margin-left 在 flex 行里是多余的左空白:
190
220
  值是右对齐的所以看不出来,但它白白压缩可用宽度、让长值提前折行。
@@ -194,9 +224,6 @@ $xformH5PageBg: #f1f5fb;
194
224
 
195
225
  /* 卡片里最后一行不留分隔线。:last-child 计入 class 列,本条 (0,5,0)
196
226
  高于上面 .el-form-item 的 border-bottom (0,4,0)。 */
197
- &:last-child .el-form-item {
198
- border-bottom: none;
199
- }
200
227
  }
201
228
 
202
229
  /* ============ 块 C1:表格布局(.table-layout)下退回块 C 的 flex 行 ============ */
@@ -229,7 +256,7 @@ $xformH5PageBg: #f1f5fb;
229
256
 
230
257
  .el-form-item {
231
258
  display: flex;
232
- align-items: flex-start;
259
+ align-items: center;
233
260
 
234
261
  > .el-form-item__label,
235
262
  > .el-form-item__content {
@@ -263,8 +290,14 @@ $xformH5PageBg: #f1f5fb;
263
290
  .xform-h5 .table-layout.table-d-box {
264
291
  /* 解除 w1~w4 的 PC 死宽。设计器里显式配了 cellWidth 的单元格走内联
265
292
  style="width:xx !important",优先级最高,不受这条影响,按配置生效。 */
266
- > tbody > tr > td.table-cell {
267
- width: auto !important;
293
+ > tbody > tr {
294
+ &:last-child{
295
+ .field-wrapper.h5-field .el-form-item{border-bottom:none}
296
+ }
297
+ > td.table-cell {
298
+ width: auto !important;
299
+ border:none !important
300
+ }
268
301
  }
269
302
 
270
303
  /* 一行两列(两个 td.w1 并排)时,左列的值右对齐后正好停在右列的左边界上,
@@ -272,23 +305,25 @@ $xformH5PageBg: #f1f5fb;
272
305
  对齐 bill_setting form-table 的处理:它用 `th:nth-child(3){padding-left:12px}`
273
306
  让第二列的标签让出间隔。这里把间隔加在单元格上而不是标签上 —— 标签有 80px
274
307
  定宽,加内边距会挤掉字数(全局 box-sizing 是 border-box)。 */
275
- > tbody > tr > td.table-cell + td.table-cell {
308
+ > tbody > tr > td.table-cell + td.table-cell .el-form-item{
276
309
  padding-left: 12px;
277
310
  }
278
311
 
279
312
  td.table-cell .field-wrapper.h5-field .el-form-item {
280
313
  /* 断链场景下 element 默认标签是右对齐的,这里兜住 */
314
+ border-bottom:solid 1px $xformH5RowBorder;
281
315
  > .el-form-item__label {
282
316
  text-align: left !important;
317
+ font-size: $xformH5Size;
283
318
  }
284
319
 
285
320
  > .el-form-item__content {
286
- width: auto !important; // 压对手二的 !important;本方 (0,7,1)+!important
287
321
  text-align: right;
288
-
322
+ display: flex;
323
+ justify-content: flex-end;
289
324
  /* 对手一 (0,3,2),本方 (0,8,2) */
290
325
  span {
291
- text-align: right;
326
+ font-size:$xformH5Size;
292
327
  }
293
328
  }
294
329
  }
@@ -408,11 +443,12 @@ $xformH5PageBg: #f1f5fb;
408
443
  /* container-item-wrapper 那层,高度要能传下去 */
409
444
  .container-wrapper {
410
445
  height: 100%;
446
+ width:100%;
411
447
  }
412
448
 
413
449
  .h5-detail-wrap {
414
- display: flex;
415
- flex-direction: column;
450
+ //display: flex;
451
+ //flex-direction: column; 弹框在里面会有问题
416
452
  height: 100%;
417
453
  min-height: 0; // 允许在 flex 父级下收缩
418
454
  /* 压掉 style.scss:13765 的 padding-bottom:68px(那是给 fixed 底栏让位用的) */
@@ -421,7 +457,7 @@ $xformH5PageBg: #f1f5fb;
421
457
 
422
458
  .h5-header {
423
459
  flex: none;
424
- height: $xformH5HeaderHeight;
460
+ height: $xformH5HeaderHeight !important;
425
461
  line-height: $xformH5HeaderHeight;
426
462
  }
427
463
 
@@ -436,7 +472,9 @@ $xformH5PageBg: #f1f5fb;
436
472
  卡片是 margin:12px 8px 0(只有上间距),末尾这一格只能由滚动区补。
437
473
  取 12px 与卡片间距同口径。 */
438
474
  padding-bottom: 12px;
475
+ height:calc(100% - $xformH5FooterHeight - $xformH5HeaderHeight) !important;
439
476
 
477
+ -webkit-overflow-scrolling:touch;
440
478
  /* ★ 字段卡片那组的高度必须由内容决定。
441
479
  detail-h5-item.vue 的 scoped 样式里有一条从设计器画布抄来的
442
480
  `.grid-container .form-widget-list { height: 100% }`,而该组件的根节点
@@ -449,17 +487,28 @@ $xformH5PageBg: #f1f5fb;
449
487
  > .form-widget-list {
450
488
  height: auto;
451
489
  }
490
+
452
491
  }
453
492
 
454
493
  .h5-fixed-bottom-btns {
455
494
  /* 压掉 style.scss:10246 附近的 position:fixed 与 height:56px!important。
456
495
  单行固定高:超出三个的按钮进图标下拉,不换行。 */
457
- position: static !important;
496
+ //position: static !important;
458
497
  flex: none;
459
498
  height: $xformH5FooterHeight !important;
460
499
  }
461
500
  }
462
501
 
502
+ /* ============ 块 G2:底栏没按钮时把那一格还给内容区 ============ */
503
+ /* 底栏一个按钮都没有时 detail-h5-item 不渲染它,并在根节点打 h5-no-bottom-btns。
504
+ 块 G 的 .h5-detail-body 高度是 calc(100% - 底栏 - 标题栏) 硬减出来的,
505
+ 不跟着改的话底部会空出一条 56px 的白带(底栏没了,减法还在)。
506
+ 对手是块 G 里 .xform-h5 .h5-detail-body 那条 (0,2,0) + !important,
507
+ 本方 (0,4,0) + !important,靠段数取胜,不依赖书写顺序。 */
508
+ .xform-h5 .h5-detail-wrap.h5-no-bottom-btns .h5-detail-body {
509
+ height: calc(100% - $xformH5HeaderHeight) !important;
510
+ }
511
+
463
512
  /* ★ 页面态必须定死一屏,不能用 min-height。
464
513
  实测宿主链没有确定高度(#containt 只有背景/圆角,没有 height),
465
514
  .designer-view{height:100%} → .xform-h5{height:100%} 一路塌陷成 auto;
@@ -486,6 +535,7 @@ $xformH5PageBg: #f1f5fb;
486
535
  }
487
536
 
488
537
  /* ============ 块 H:底部动作栏(胶囊按钮,单行、最多三个 + 图标下拉) ============ */
538
+
489
539
  .xform-h5 .h5-detail-wrap .h5-fixed-bottom-btns {
490
540
  display: flex;
491
541
  align-items: center;
@@ -565,60 +615,16 @@ $xformH5PageBg: #f1f5fb;
565
615
  }
566
616
  }
567
617
 
568
- /* ============ 明细详情弹框:铺满视口 ============ */
569
- /* 这个弹框是 :modal="false"(无遮罩),高度又只由内容撑开,
570
- 于是底部动作栏(通过/驳回/中断)会从弹框下方露出来,看着像两层界面。
571
- 让它铺满一屏盖住底栏。作用域限定在 .xform-h5 内,不影响 bill_setting
572
- 那边同样用 .h5view-dialog 的弹框(弹框未 append-to-body,DOM 就在本作用域里)。 */
573
- .xform-h5 .el-dialog__wrapper .el-dialog.h5view-dialog {
574
- margin: 0 !important;
575
- /* 同上:手机浏览器地址栏占位时 100vh 比可视区高,弹框底部的「关闭」会被顶出屏幕。
576
- dvh 打头、vh 兜底,见块 G 的说明。 */
577
- height: 100vh;
578
- height: 100dvh;
579
- display: flex;
580
- flex-direction: column;
581
- border-radius: 0;
582
-
583
- > .el-dialog__body {
584
- flex: 1;
585
- min-height: 0;
586
- overflow-y: auto;
587
- -webkit-overflow-scrolling: touch;
588
- }
589
-
590
- /* 内容区的 height 是模板里的内联样式,只能用 !important 压掉,
591
- 改由上面的 flex 决定高度 */
592
- .cont {
593
- height: auto !important;
594
- }
595
-
596
- /* 底部「关闭」:与底部动作栏同款胶囊,铺满一行 */
597
- > .el-dialog__footer {
598
- flex: none;
599
- padding: 8px 13px;
600
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.06);
601
-
602
- .button-sty,
603
- .el-button {
604
- width: 100%;
605
- height: 40px;
606
- border-radius: 30px;
607
- padding: 0;
608
- font-size: 13px;
609
-
610
- i {
611
- margin-right: 3px;
612
- }
613
- }
614
- }
615
- }
616
618
 
617
619
  /* ============ 明细行的「查看」角标 ============ */
618
620
  /* 对齐 bill_setting 的 .pro-item .t::after:主色淡底圆钮 + 右向箭头,
619
621
  提示这一行可以点进详情。与 itemStyle 无关,明细行一律有。
620
622
  对手 .h5-list-box .item (0,2,0);本方 (0,3,0)。 */
621
623
  .xform-h5 .h5-list-box .item {
624
+ margin-bottom:12px;
625
+ &:last-child{
626
+ margin-bottom:12px;
627
+ }
622
628
  .h5-item-arrow {
623
629
  position: absolute;
624
630
  right: 12px;
@@ -690,11 +696,14 @@ $xformH5PageBg: #f1f5fb;
690
696
  列间也是 14px,省出来的 14px 全给值。 */
691
697
  padding-left: 7px;
692
698
  padding-right: 7px;
699
+ padding-bottom:0;
700
+ font-size: 13px;
693
701
  }
694
702
 
695
703
  .xform-h5 .h5-list-box .item .t2 > dl {
696
704
  padding-left: 7px;
697
705
  padding-right: 7px;
706
+ margin-top:0;
698
707
  > div {
699
708
  align-items: flex-start; // 值折行时标签跟着顶对齐,别居中
700
709
  }
@@ -710,7 +719,8 @@ $xformH5PageBg: #f1f5fb;
710
719
  > div > dd {
711
720
  flex: 1;
712
721
  min-width: 0; // 不写这行,长值会撑破行而不是折行
713
- text-align: right;
722
+ //text-align: right;
723
+ margin: 0;
714
724
  word-break: break-word;
715
725
  color: #323232; // 值加深、标签留灰,同块 C 的 #808080 / 默认色关系
716
726
  }
@@ -741,9 +751,12 @@ $xformH5PageBg: #f1f5fb;
741
751
  }
742
752
  }
743
753
 
744
- /* dd 里是真控件的那份(「明细详情」弹框,list-h5-item.vue:478)。
745
- 列表行本身只出纯文本,这一段只对弹框生效。 */
754
+ /* dd 里是真控件的那份。列表行本身只出纯文本。
755
+ 明细详情弹框 append-to-body,不在 .xform-h5 下,真正生效的是
756
+ 下方 .el-dialog.h5view-dialog 里同一口径的规则;这段留给弹框
757
+ 万一没挂到 body 时的兜底。 */
746
758
  .xform-h5 .h5-list-box .item .t2 > dl > div > dd {
759
+ margin:0;
747
760
  /* 压 style.scss:14112 的 width:calc(100vw - 159px),本方 (0,5,2) > (0,4,1) */
748
761
  .field-wrapper.h5-field {
749
762
  display: block;
@@ -771,32 +784,9 @@ $xformH5PageBg: #f1f5fb;
771
784
 
772
785
  .field-wrapper.h5-field .el-form-item > .el-form-item__content {
773
786
  margin-left: 0 !important;
774
- text-align: right;
775
787
  }
776
788
  }
777
789
 
778
- /* 「明细详情」弹框里那份 list 保持一行一个:那里的 dd 放的是真控件(输入框、
779
- 选择器、附件),塞进半宽格子就没法用了;它也是详情视角,不需要压缩行数。
780
- 本方 (0,6,1) > 上面两列那条 (0,4,1)。 */
781
- .xform-h5 .h5view-dialog .h5-list-box .item .t2 > dl {
782
- width: 100%;
783
- }
784
-
785
- /* 弹框那份 list 另有一条更狠的写死宽度:
786
- `body .grid-height .dialog-style.h5view-dialog .el-dialog__body > .cont >
787
- .h5-list-box .t2 dl .field-wrapper` (0,8,2)(style.scss:3861),
788
- 上面那条 (0,5,2) 压不过,必须单独补到 (0,9,1)。 */
789
- .xform-h5
790
- .dialog-style.h5view-dialog
791
- .el-dialog__body
792
- > .cont
793
- > .h5-list-box
794
- .item
795
- .t2
796
- > dl
797
- .field-wrapper {
798
- width: auto;
799
- }
800
790
 
801
791
  /* ============ 块 I:明细行卡片皮肤(list-h5 的 itemStyle=card) ============ */
802
792
  /* 现状 .h5-list-box .item(style.scss:14029)已经是白底+radius8+1px边框+左侧竖条的卡片,
@@ -867,7 +857,7 @@ $xformH5PageBg: #f1f5fb;
867
857
 
868
858
  > b {
869
859
  font-size: 14px;
870
- font-weight: 600;
860
+ font-weight: 400;
871
861
  word-break: break-word; // 主字段常是长编码,别撑破卡片
872
862
  }
873
863
 
@@ -892,6 +882,34 @@ $xformH5PageBg: #f1f5fb;
892
882
  }
893
883
  }
894
884
 
885
+ /* ============ 块 I4:明细列表的「更多」尾行 ============ */
886
+ /* 详情里挂的明细列表默认只出 5 条(list-h5-item 的 H5_LIST_COLLAPSE_SIZE),
887
+ 这一行是「更多(N)/ 收起」开关,两态同一行、只换文字与箭头方向,行高不变。
888
+ 它是 .h5-list-box 的最后一个子元素,横向跟着那层 12px 内边距与卡片对齐;
889
+ 卡片自带 12px 下边距(本文件块「查看角标」那段),这里不再叠上边距。
890
+ 无对手规则,(0,3,0) 一条就够。 */
891
+ .xform-h5 .h5-list-box .h5-list-more {
892
+ display: flex;
893
+ align-items: center;
894
+ justify-content: center;
895
+ height: 36px;
896
+ border-radius: 8px;
897
+ background: #fff;
898
+ //border: solid 1px #eee;
899
+ color: $baseColor;
900
+ font-size: 13px;
901
+ cursor: pointer;
902
+ margin:-4px 0 8px;
903
+ .h5-list-more-count {
904
+ color: #999;
905
+ }
906
+
907
+ i {
908
+ margin-left: 2px;
909
+ font-size: 12px;
910
+ }
911
+ }
912
+
895
913
  /* ============ 块 J:附件(VabUpload 列表的 H5 行式版式) ============ */
896
914
  /* 这一块的第一版是照抄 bill_setting/h5.scss 的 74px 方格口径,实测把附件压没了、
897
915
  已撤回;那套 DOM 里 .el-upload-list__item-thumbnail 是 item 的直接子元素,而
@@ -939,7 +957,7 @@ $xformH5PageBg: #f1f5fb;
939
957
  display: block !important;
940
958
  float: none !important;
941
959
  width: 100%;
942
- margin: 0 0 8px;
960
+ margin: 0 0 12px;
943
961
  }
944
962
 
945
963
  .upload-box {
@@ -958,8 +976,8 @@ $xformH5PageBg: #f1f5fb;
958
976
  padding: 8px;
959
977
  overflow: visible;
960
978
  background: #fff;
961
- border: solid 1px #f0f1f1;
962
- border-radius: 10px;
979
+ border: solid 1px $xformH5RowBorder;
980
+ border-radius: 8px;
963
981
  transition: none; // element 的 item 有 transform 过渡,行式下没意义还会闪
964
982
 
965
983
  /* 行本体。li 下只有这一个 div,所有子块都在它里面 */
@@ -991,6 +1009,7 @@ $xformH5PageBg: #f1f5fb;
991
1009
  .el-image {
992
1010
  width: 100%;
993
1011
  height: 100%;
1012
+ img{width:56px;height:56px}
994
1013
  }
995
1014
 
996
1015
  img {
@@ -1130,15 +1149,21 @@ $xformH5PageBg: #f1f5fb;
1130
1149
  只作用于 el-button 的直接子 i(element 把 icon 渲染成按钮的第一个子元素)。
1131
1150
  底栏「更多」下拉的触发器是裸 <i class="h5-more-icon">、不在 el-button 里,不受影响。 */
1132
1151
  .xform-h5 {
1133
- .pop-box .el-button > i,
1134
- .pop-tipsBox .el-button > i,
1135
- .pop-screen-box .el-button > i,
1136
1152
  .h5-detail-wrap .h5-fixed-bottom-btns .el-button > i,
1137
1153
  .el-dialog.h5view-dialog > .el-dialog__footer .el-button > i {
1138
1154
  display: none;
1139
1155
  }
1140
1156
  }
1141
1157
 
1158
+ /* 同上,但这两条不能收在 .xform-h5 里:.h5-pop-dialog 那 5 个弹层、
1159
+ .h5-pop-tips 那 5 个确认框都已挂到 document.body 下。
1160
+ .h5-pop-dialog 里再弹的高级筛选抽屉(.pop-screen-box)被后代选择器一并覆盖,
1161
+ 不必单列 —— 也正好不会误伤手写移动页里那些独立使用的 .pop-screen-box。 */
1162
+ .h5-pop-dialog .el-button > i,
1163
+ .pop-tipsBox.h5-pop-tips .el-button > i {
1164
+ display: none;
1165
+ }
1166
+
1142
1167
  /* ============ 块 L:移动版流程(wf)面板 ============ */
1143
1168
  /* 来源:resources/css/h5.scss —— 那份不随包发布、xform 引不到,故把
1144
1169
  components/mobile/wf/content.vue 实际用到的类搬进包内。
@@ -1162,8 +1187,8 @@ $xformH5PageBg: #f1f5fb;
1162
1187
 
1163
1188
  > .t,
1164
1189
  .m2 .t {
1165
- color: $baseColor;
1166
- margin-top: 16px;
1190
+ color: #666;
1191
+ padding:8px;
1167
1192
 
1168
1193
  &:before {
1169
1194
  content: "";
@@ -1283,63 +1308,225 @@ $xformH5PageBg: #f1f5fb;
1283
1308
  }
1284
1309
  }
1285
1310
 
1286
- /* ---- 全屏弹层(.pop-box)---- */
1287
- /* 用这个根类的一共 7 个:流程图预览、任务情况预览(这两个是 mobile/wf/content.vue
1288
- 模板里内联写的,见该文件 showPreviewDialog / showRenwuDialog 两段)、
1289
- 选用户 views/mobile/user/user/dialog.vue、加签 addTaskUserdialog、减签
1290
- deleteTaskUserDialog、催办 urgingDialog、修改候选人 setCandidateDialog、
1291
- 修改单据 wfModifyDialog。它们共用同一批类名,所以一次搬齐。
1292
1311
 
1293
- 原规则整段嵌在 resources/css/h5.scss 的 `.h5-box` 下,而 xform H5 的根类是
1294
- .xform-h5、全项目没有任何 .vue 输出过 h5-box —— 一条都命中不了,表现是列表
1295
- 退化成裸文字、搜索行和已选区完全没有版式。(对比 .pop-tipsBox 是顶层选择器,
1296
- 所以通过/驳回/转办那几个小确认框看着正常,一点「选用户」就裸。)
1297
1312
 
1298
- 骨架高度不抄原文的 calc(100vh - 102px / 138px / 151px) 那套(值随有没有搜索行
1299
- 而变,脆),一律 flex + min-height:0,与块 A、块 G 同口径。content.vue 那两处
1300
- .flex 上的内联 height:calc(100vh - 38px) 不用管:flex-basis:0% 会接管主轴尺寸。 */
1301
- .pop-box {
1313
+ }
1314
+
1315
+ /* ---- 确认/表单提示框(通过、驳回、中断、转办、加签)---- */
1316
+ /* ★ 顶层选择器,不能收回 .xform-h5 里:这 5 个已改走 v-append-to-body,
1317
+ 节点在 document.body 下,带 .xform-h5 前缀的规则一条都命中不了。
1318
+ 与上面的 .h5-pop-dialog 同一个道理。
1319
+
1320
+ ★ 但也不能只写 .pop-tipsBox:confirmDialog / baseAlert / errorMsg 的移动端分支
1321
+ 用的是同一个类名,而且它们本来就挂在 body 上。只写 .pop-tipsBox(0,1,0)会和
1322
+ 各应用 resources/css/h5.scss 里那条同名顶层规则拼加载顺序,把那三个的样子也一起
1323
+ 改掉。所以多挂一个 .h5-pop-tips 作锚点,选择器权重(0,2,0)与改造前的
1324
+ `.xform-h5 .pop-tipsBox` 完全相同,命中范围也仍然只有这 5 个。
1325
+
1326
+ 注意:.icon 沿用 resources/images 下的图标,`~@/` 在消费应用里解析到它自己的
1327
+ src/resources/images —— 该目录同样不在 package.json files 内,属隐式依赖。
1328
+ 消费应用现有的 h5.scss 已引用同一批图,故风险可控;若要彻底解耦可换字体图标。 */
1329
+ .pop-tipsBox.h5-pop-tips {
1330
+ position: relative;
1331
+ &:before {
1332
+ content: "";
1302
1333
  position: fixed;
1303
1334
  top: 0;
1304
1335
  right: 0;
1305
1336
  bottom: 0;
1306
1337
  left: 0;
1307
- background: #f6f6f6;
1308
- z-index: 99;
1338
+ background: rgba(0, 0, 0, 0.4);
1339
+ z-index: 998;
1340
+ }
1309
1341
 
1310
- /* 骨架:标题栏 / 搜索行 / 底部按钮条 flex:none,中间那段独占剩余高度并内部滚动 */
1311
- > div {
1312
- display: flex;
1313
- flex-direction: column;
1314
- height: 100%;
1342
+ > div {
1343
+ position: fixed;
1344
+ top: 19%;
1345
+ left: 32px;
1346
+ right: 32px;
1347
+ box-shadow: 0 0 14px rgba(0, 0, 0, 0.16);
1348
+ border-radius: 18px;
1349
+ padding: 68px 16px 18px;
1350
+ text-align: center;
1351
+ z-index: 999;
1352
+ background-color: #fff;
1353
+ background-size: 100% auto;
1354
+ border: solid 2px #fff;
1355
+
1356
+ .icon {
1357
+ background: url(~@base/core-resources/images/icon-tips.png) no-repeat center;
1358
+ background-size: cover;
1359
+ position: absolute;
1360
+ top: -19px;
1361
+ left: 50%;
1362
+ margin-left: -34px;
1363
+ width: 68px;
1364
+ height: 68px;
1365
+ border-radius: 50%;
1366
+ border: solid 2px #fff;
1315
1367
  }
1316
1368
 
1317
- .header-box {
1318
- flex: none;
1319
- position: relative;
1320
- background-color: #fff;
1321
- text-align: center;
1322
- height: $xformH5HeaderHeight;
1323
- line-height: $xformH5HeaderHeight;
1324
- font-size: 16px;
1325
- color: #212121;
1326
- border-bottom: solid 1px #f1f6fc;
1369
+ .cont {
1370
+ padding: 0 0 18px;
1327
1371
 
1328
- .back {
1329
- position: absolute;
1330
- right: 14px;
1331
- top: 50%;
1332
- margin-top: -10px;
1333
- line-height: 20px;
1334
- font-size: 20px;
1372
+ .name {
1373
+ font-weight: 600;
1374
+ font-size: 18px;
1375
+ margin-bottom: 24px;
1335
1376
  }
1336
1377
 
1337
- /* 「修改单据 — 节点:xx」这类副标题 */
1338
- > span {
1339
- margin: 0 8px;
1378
+ /* max-height + overflow:auto 是给「自定义确认文案」这类可能很长的内容留的
1379
+ (提醒内容、脚本里配的提示都走这里)。但确认框里多数只有一行短句,
1380
+ 真机 WebView 又是经典滚动条(不像桌面那样会自动淡出),于是「您确定要
1381
+ 中断流程吗?」这种一行字旁边也挂着一条灰色滚动条。
1382
+ 保留可滚动(长文案照样能滑),只把滚动条本身藏掉 —— 移动端本来就该是
1383
+ 无痕滚动。 */
1384
+ .txt,
1385
+ .txt2 {
1386
+ overflow: auto;
1387
+ word-break: break-word;
1388
+ scrollbar-width: none; // Firefox
1389
+ -ms-overflow-style: none; // 旧 Edge/IE
1390
+ text-align:left;
1391
+ font-size:13px;
1392
+ &::-webkit-scrollbar {
1393
+ display: none;
1394
+ }
1395
+ }
1396
+
1397
+ .txt {
1398
+ max-height: 100px;
1399
+ }
1400
+
1401
+ .txt2 {
1402
+ max-height: 200px;
1403
+ }
1404
+
1405
+ .form-box {
1406
+ border: solid 1px #dcdcdc;
1407
+ padding: 0 12px 10px;
1408
+ border-radius: 10px;
1409
+ margin-top: -8px;
1410
+ text-align:left;
1411
+ .el-form-item .el-form-item__label{
1412
+ padding-bottom:0;
1413
+ }
1414
+ .line {
1415
+ border: solid 1px #e8e8e8;
1416
+ }
1417
+ .el-input,.el-select{width:100% !important}
1418
+ }
1419
+ .link-underline{
1420
+ border-bottom:solid 1px
1421
+ }
1422
+ }
1423
+
1424
+ .btns {
1425
+ display: flex;
1426
+
1427
+ .btn {
1428
+ flex: 1;
1429
+ height: 40px;
1430
+ border-radius: 12px;
1431
+
1432
+ &.el-button--primary.is-plain {
1433
+ border-color: $baseColor;
1434
+ }
1340
1435
  }
1341
1436
  }
1437
+ }
1438
+
1439
+ &.error > div .icon {
1440
+ background-image: url(~@base/core-resources/images/icon-error.png);
1441
+ border-color: #fff;
1442
+ }
1443
+ }
1444
+
1445
+ /* ============ 页面底色 ============ */
1446
+ .xform-h5 .h5-detail-wrap {
1447
+ background: $xformH5PageBg;
1448
+ }
1449
+
1450
+ /* ---- 全屏弹层(.h5-pop-dialog)---- */
1451
+ /* 用这个根类的一共 5 个,都在 components/mobile/wf/ 下:选用户 selectUserDialog、
1452
+ 加签 addTaskUserdialog、减签 deleteTaskUserDialog、催办 urgingDialog、
1453
+ 修改候选人 setCandidateDialog。它们共用同一批类名,所以一次搬齐。
1454
+ (流程图预览、任务情况预览是 content.vue 模板里内联写的 el-dialog,走的是
1455
+ .h5view-dialog,不在这一段。同目录的 wfModifyDialog 仍是 .pop-box 就地渲染——
1456
+ H5 不需要「修改单据」,那个只从手写移动页进,样式也走各应用自己的 h5.scss。)
1457
+
1458
+ ★ 这一段必须是顶层选择器,不能收进 .xform-h5 里。这 5 个已经改成
1459
+ el-dialog + append-to-body,节点挂在 document.body 下、不在 .xform-h5 子树里,
1460
+ 写成 `.xform-h5 .pop-box` 一条都命中不了 —— 与它们最初挂在从不存在的 `.h5-box`
1461
+ 下、表现为「列表退化成裸文字」是同一类事故。同理见下方 .h5view-dialog。
1462
+
1463
+ 骨架高度不抄原文的 calc(100vh - 102px / 138px / 151px) 那套(值随有没有搜索行
1464
+ 而变,脆),一律 flex + min-height:0,与块 A、块 G 同口径。content.vue 那两处
1465
+ .flex 上的内联 height:calc(100vh - 38px) 不用管:flex-basis:0% 会接管主轴尺寸。 */
1466
+ .el-dialog.h5-pop-dialog {
1467
+ /* 外层 .el-dialog__wrapper 已经是铺满视口的 fixed,这里用 absolute 贴着它定位,
1468
+ 几何与改造前的 `position:fixed; top:38px; bottom:55px` 完全一致:
1469
+ 顶部让出 H5 页头、底部让出审批动作栏。
1470
+ z-index 不再手写 —— 由 element 的 PopupManager 给 wrapper 递增分配,
1471
+ 改造前 99 / 内联 zIndex 两套值互相打架的问题一并消掉。 */
1472
+ position: absolute;
1473
+ top: 38px;
1474
+ right: 0;
1475
+ bottom: 55px;
1476
+ left: 0;
1477
+ width: 100% !important;
1478
+ margin: 0 !important;
1479
+ background: #f6f6f6;
1480
+ border-radius: 0;
1481
+ box-shadow: none;
1482
+ display: flex;
1483
+ flex-direction: column;
1484
+
1485
+ /* 标题和关闭按钮都在自己的 .header-box 里,el-dialog 自带的表头整条不要 */
1486
+ > .el-dialog__header {
1487
+ display: none;
1488
+ }
1489
+
1490
+ /* body 顶掉 element 的 30px 20px 内边距,只当骨架的承载层 */
1491
+ > .el-dialog__body {
1492
+ flex: 1;
1493
+ min-height: 0;
1494
+ padding: 0;
1495
+ color: inherit;
1496
+ font-size: inherit;
1497
+ }
1498
+
1499
+ /* 骨架:标题栏 / 搜索行 / 底部按钮条 flex:none,中间那段独占剩余高度并内部滚动 */
1500
+ > .el-dialog__body > div {
1501
+ display: flex;
1502
+ flex-direction: column;
1503
+ height: 100%;
1504
+ }
1505
+
1506
+ .header-box {
1507
+ flex: none;
1508
+ position: relative;
1509
+ background-color: #fff;
1510
+ text-align: center;
1511
+ height: $xformH5HeaderHeight;
1512
+ line-height: $xformH5HeaderHeight;
1513
+ font-size: 16px;
1514
+ color: #212121;
1515
+ border-bottom: solid 1px #f1f6fc;
1516
+
1517
+ .back {
1518
+ position: absolute;
1519
+ right: 14px;
1520
+ top: 50%;
1521
+ margin-top: -10px;
1522
+ line-height: 20px;
1523
+ font-size: 20px;
1524
+ }
1342
1525
 
1526
+ /* 「修改单据 — 节点:xx」这类副标题 */
1527
+ > span {
1528
+ margin: 0 8px;
1529
+ }
1343
1530
  /* 搜索行(选用户 / 加签):输入框 + 右侧「高级筛选」 */
1344
1531
  .search-H5box {
1345
1532
  flex: none;
@@ -1431,328 +1618,269 @@ $xformH5PageBg: #f1f5fb;
1431
1618
  overflow-y: auto;
1432
1619
  }
1433
1620
 
1434
- .flex {
1435
- display: flex;
1436
- flex-direction: column;
1437
- flex: 1;
1438
- min-height: 0;
1439
-
1440
- /* 可滚动的候选列表 */
1441
- .checkbox-all_list {
1442
- flex: 1;
1443
- min-height: 0;
1444
- /* 只放开纵向。写成 overflow:auto 时横向也可滚,卡片里一旦有超长内容
1445
- (用户资料的「地址」字段存的是一整条图片 URL)就会拖出一条横向滚动条。 */
1446
- overflow-y: auto;
1447
- overflow-x: hidden;
1448
- padding: 0 12px;
1449
-
1450
- .order-item {
1451
- background: #fff;
1452
-
1453
- .is-checked {
1454
- position: absolute;
1455
- right: 0;
1456
- top: 0;
1457
- width: 62px;
1458
- height: 22px;
1459
- line-height: 20px;
1460
- text-align: center;
1461
- font-size: 13px;
1462
- color: #fff;
1463
- background: #e2e2e2;
1464
- border: solid 1px #dcdcdc;
1465
- border-radius: 0 8px 0 6px;
1466
-
1467
- i {
1468
- margin-right: 3px;
1469
- font-size: 13px;
1470
- }
1471
- }
1472
-
1473
- &.on {
1474
- border: solid 1px $baseColor;
1475
-
1476
- .is-checked {
1477
- border-color: $baseColor;
1478
- background: $baseColor;
1479
- }
1480
- }
1481
- }
1482
- }
1621
+ }
1483
1622
 
1484
- /* 已选区(底部固定,不滚) */
1485
- .checkbox-all {
1623
+ /* 按钮口径与块 H 的底部动作栏、块 G 的明细详情弹框页脚保持一致(40px 高胶囊)。
1624
+ 原文搬过来时是 border-radius:14px —— 那是手写移动页 resources/css/h5.scss 的
1625
+ 口径,跟包内基线不是一套,同一屏里会出现两种按钮,故改齐。
1626
+ 左右 margin 保留:选用户/加签这些是两个按钮并排,需要中间那道缝。 */
1627
+ .fixed-bottom-btns {
1486
1628
  flex: none;
1487
- position: relative;
1488
- min-height: 80px;
1489
- padding: 0 12px 8px;
1490
- background: #fff;
1491
- box-shadow: 0 -3px 4px rgba(0, 0, 0, 0.06);
1492
-
1493
- .ca-t {
1494
- margin: 8px 0;
1495
- font-size: 14px;
1496
- font-weight: 600;
1497
- }
1629
+ background: #f6f6f6;
1630
+ display: flex;
1631
+ padding: 4px 8px;
1498
1632
 
1499
- .ca-c span {
1500
- display: inline-block;
1501
- position: relative;
1502
- height: 24px;
1503
- line-height: 24px;
1504
- padding: 0 28px 0 2px;
1505
- margin: 4px 10px 4px 0;
1633
+ .btn {
1634
+ flex: 1;
1635
+ margin: 4px 6px;
1636
+ height: 40px;
1637
+ border-radius: 30px;
1638
+ padding: 0;
1506
1639
  font-size: 13px;
1507
- color: $baseColor;
1508
- border: solid 1px $baseColor;
1509
- border-radius: 4px;
1510
1640
 
1511
1641
  i {
1512
- position: absolute;
1513
- top: 0;
1514
- right: 0;
1515
- width: 24px;
1516
- height: 24px;
1517
- line-height: 24px;
1518
- text-align: center;
1519
- background: transparentize($baseColor, 0.91);
1642
+ margin-right: 3px;
1520
1643
  }
1521
1644
  }
1522
1645
  }
1523
1646
 
1524
- .form-box {
1525
- display: flex;
1526
- flex-direction: column;
1527
- flex: 1;
1528
- overflow: hidden;
1529
-
1530
- .tit {
1531
- margin: 8px 12px;
1532
- background: rgba(51, 106, 153, 0.1);
1533
- border-radius: 11px;
1534
- padding: 10px 12px;
1535
- font-size: 13px;
1536
- color: $baseColor;
1537
-
1538
- &:before {
1539
- content: "";
1540
- width: 5px;
1541
- height: 5px;
1542
- background: $baseColor;
1543
- border-radius: 50%;
1544
- vertical-align: middle;
1545
- margin-right: 5px;
1546
- display: inline-block;
1547
- }
1548
1647
 
1549
- > span {
1550
- vertical-align: middle;
1551
- }
1552
- }
1553
- }
1554
- }
1555
1648
 
1556
- /* 按钮口径与块 H 的底部动作栏、块 G 的明细详情弹框页脚保持一致(40px 高胶囊)。
1557
- 原文搬过来时是 border-radius:14px —— 那是手写移动页 resources/css/h5.scss 的
1558
- 口径,跟包内基线不是一套,同一屏里会出现两种按钮,故改齐。
1559
- 左右 margin 保留:选用户/加签这些是两个按钮并排,需要中间那道缝。 */
1560
- .fixed-bottom-btns {
1561
- flex: none;
1562
- background: #f6f6f6;
1563
- display: flex;
1564
- padding: 4px 8px;
1649
+ }
1565
1650
 
1566
- .btn {
1567
- flex: 1;
1568
- margin: 4px 6px;
1569
- height: 40px;
1570
- border-radius: 30px;
1571
- padding: 0;
1572
- font-size: 13px;
1573
1651
 
1574
- i {
1575
- margin-right: 3px;
1576
- }
1577
- }
1578
- }
1652
+ /* ---- 高级筛选抽屉(h5SearchDialog,从 .pop-box 里再弹一层)---- */
1653
+ .pop-screen-box {
1654
+ position: fixed;
1655
+ top: 0;
1656
+ right: 0;
1657
+ bottom: 0;
1658
+ left: 0;
1659
+ z-index: 99;
1579
1660
 
1580
- /* 列表里的一张候选卡片。原文挂在 .h5-box 下(不在 .pop-box 段内),
1581
- xform 里只有这批弹层用得到,就收进来。 */
1582
- .order-item {
1583
- position: relative;
1584
- border: solid 1px #f0f1f1;
1585
- border-radius: 12px;
1586
- padding: 8px 10px;
1587
- margin: 8px 0;
1661
+ &:before {
1662
+ content: "";
1663
+ position: absolute;
1664
+ left: 0;
1665
+ right: 0;
1666
+ top: 0;
1667
+ bottom: 0;
1668
+ background: rgba(0, 0, 0, 0.3);
1669
+ }
1588
1670
 
1589
- /* 左侧那道竖条 */
1590
- &:before {
1591
- content: "";
1592
- position: absolute;
1593
- left: 0;
1594
- top: 6px;
1595
- width: 3px;
1596
- height: 50px;
1597
- background: $baseColor;
1598
- border-radius: 5px;
1599
- }
1671
+ > div {
1672
+ display: flex;
1673
+ flex-direction: column;
1674
+ position: absolute;
1675
+ top: 0;
1676
+ right: 0;
1677
+ bottom: 0;
1678
+ width: 80%;
1679
+ background: #fff;
1600
1680
 
1601
- /* 卡片里放的是用户资料原值,可能出现超长且无空格的串(「地址」字段实际存的
1602
- 是一整条图片 URL)。默认不允许在非空白处断行,这种串会把卡片整体撑宽、
1603
- 连带拖出横向滚动条,所以这里统一允许任意位置断行。 */
1604
- .t1,
1605
- .t2 {
1606
- word-break: break-all;
1607
- overflow-wrap: anywhere;
1608
- }
1681
+ .header-box {
1682
+ flex: none;
1683
+ position: relative;
1684
+ text-align: center;
1685
+ height: $xformH5HeaderHeight;
1686
+ line-height: $xformH5HeaderHeight;
1687
+ font-size: 16px;
1688
+ color: #212121;
1689
+ border-bottom: solid 1px #eee;
1609
1690
 
1610
- .t1 {
1611
- margin-bottom: 6px;
1691
+ .back {
1692
+ position: absolute;
1693
+ right: 14px;
1694
+ top: 50%;
1695
+ margin-top: -10px;
1696
+ line-height: 20px;
1697
+ font-size: 20px;
1698
+ }
1699
+ }
1612
1700
 
1613
- /* 模板里恒有 <i class="icon">(原文设了一圈头像样式后又 display:none,
1614
- 等于留着没用)。照原样隐藏,避免哪天有人给裸 .icon 加了全局规则时冒出来。 */
1615
- .icon {
1616
- display: none;
1617
- }
1701
+ .p-cont {
1702
+ flex: 1;
1703
+ min-height: 0;
1704
+ overflow-y: auto;
1705
+ padding: 10px 16px 0;
1618
1706
 
1619
- span {
1620
- vertical-align: middle;
1621
- margin: 0 5px 0 0;
1622
- }
1707
+ .txt {
1708
+ width: 100%;
1623
1709
  }
1624
1710
 
1625
- .t2 {
1626
- font-size: 11px;
1627
- color: rgba(128, 128, 128, 0.8);
1711
+ .el-form .el-form-item {
1712
+ margin-bottom: 4px;
1628
1713
 
1629
- p {
1630
- min-width: 50%;
1631
- /* 没有 max-width 时,inline-block 会被里面的长串顶到超出卡片宽度 */
1632
- max-width: 100%;
1633
- margin-bottom: 4px;
1634
- display: inline-block;
1635
- vertical-align: top;
1714
+ .el-form-item__label {
1715
+ padding: 0;
1716
+ margin: 0;
1717
+ font-size: 13px;
1636
1718
  }
1637
- }
1638
1719
 
1639
- /* 修改候选人:卡片内的「设置候选人」按钮 */
1640
- .btns {
1641
- text-align: right;
1642
- margin-top: 4px;
1720
+ .el-input {
1721
+ width: 100% !important;
1722
+ height: 38px;
1723
+ border-radius: 4px;
1724
+ }
1643
1725
 
1644
- .btn {
1645
- height: 28px;
1646
- padding: 0 10px;
1726
+ .el-input__inner {
1647
1727
  font-size: 13px;
1648
1728
  }
1649
1729
  }
1650
1730
  }
1651
- }
1652
1731
 
1653
- /* ---- 高级筛选抽屉(h5SearchDialog,从 .pop-box 里再弹一层)---- */
1654
- .pop-screen-box {
1655
- position: fixed;
1656
- top: 0;
1657
- right: 0;
1658
- bottom: 0;
1659
- left: 0;
1660
- z-index: 99;
1661
-
1662
- &:before {
1663
- content: "";
1664
- position: absolute;
1665
- left: 0;
1666
- right: 0;
1667
- top: 0;
1668
- bottom: 0;
1669
- background: rgba(0, 0, 0, 0.3);
1670
- }
1671
-
1672
- > div {
1732
+ .p-btn {
1733
+ flex: none;
1673
1734
  display: flex;
1674
- flex-direction: column;
1675
- position: absolute;
1676
- top: 0;
1677
- right: 0;
1678
- bottom: 0;
1679
- width: 80%;
1680
- background: #fff;
1681
-
1682
- .header-box {
1683
- flex: none;
1684
- position: relative;
1685
- text-align: center;
1686
- height: $xformH5HeaderHeight;
1687
- line-height: $xformH5HeaderHeight;
1688
- font-size: 16px;
1689
- color: #212121;
1690
- border-bottom: solid 1px #eee;
1735
+ padding: 8px;
1691
1736
 
1692
- .back {
1693
- position: absolute;
1694
- right: 14px;
1695
- top: 50%;
1696
- margin-top: -10px;
1697
- line-height: 20px;
1698
- font-size: 20px;
1699
- }
1700
- }
1701
-
1702
- .p-cont {
1737
+ .btn {
1703
1738
  flex: 1;
1704
- min-height: 0;
1705
- overflow-y: auto;
1706
- padding: 10px 16px 0;
1707
-
1708
- .txt {
1709
- width: 100%;
1710
- }
1739
+ margin: 0 8px;
1740
+ height: 42px;
1741
+ border-radius: 42px;
1742
+ }
1743
+ }
1744
+ }
1745
+ }
1711
1746
 
1712
- .el-form .el-form-item {
1713
- margin-bottom: 4px;
1747
+ .el-dialog.h5view-dialog {
1748
+ margin: 0 !important;
1749
+ /* 同上:手机浏览器地址栏占位时 100vh 比可视区高,弹框底部的「关闭」会被顶出屏幕。
1750
+ dvh 打头、vh 兜底,见块 G 的说明。 */
1751
+ height: calc(100vh - 15px);
1752
+ height: calc(100dvh - 15px);
1753
+ display: flex;
1754
+ flex-direction: column;
1755
+ border-radius: 0;
1714
1756
 
1715
- .el-form-item__label {
1716
- padding: 0;
1717
- margin: 0;
1718
- font-size: 13px;
1719
- }
1757
+ > .el-dialog__body {
1758
+ display: flex;
1759
+ flex-direction: column;
1760
+ flex: 1;
1761
+ min-height: 0;
1762
+ overflow-y: auto;
1763
+ -webkit-overflow-scrolling: touch;
1764
+ }
1765
+ .form-box {
1766
+ display: flex;
1767
+ flex-direction: column;
1768
+ flex: 1;
1769
+ overflow: hidden;
1770
+ background:#FFF;
1771
+ .tit {
1772
+ margin: 8px 12px;
1773
+ background: rgba(51, 106, 153, 0.1);
1774
+ border-radius: 11px;
1775
+ padding: 10px 12px;
1776
+ font-size: 13px;
1777
+ color: $baseColor;
1720
1778
 
1721
- .el-input {
1722
- width: 100% !important;
1723
- height: 38px;
1724
- border-radius: 4px;
1725
- }
1779
+ &:before {
1780
+ content: "";
1781
+ width: 5px;
1782
+ height: 5px;
1783
+ background: $baseColor;
1784
+ border-radius: 50%;
1785
+ vertical-align: middle;
1786
+ margin-right: 5px;
1787
+ display: inline-block;
1788
+ }
1726
1789
 
1727
- .el-input__inner {
1728
- font-size: 13px;
1729
- }
1730
- }
1790
+ > span {
1791
+ vertical-align: middle;
1731
1792
  }
1793
+ }
1794
+ }
1732
1795
 
1733
- .p-btn {
1734
- flex: none;
1735
- display: flex;
1736
- padding: 8px;
1796
+ /* 内容区的 height 是模板里的内联样式,只能用 !important 压掉,
1797
+ 改由上面的 flex 决定高度 */
1798
+ .cont {
1799
+ height: 100% !important;overflow: auto;
1800
+ .h5-list-box{
1801
+ margin:12px;padding:0 !important;background:none !important;
1802
+ .item{
1803
+ border:none;
1804
+ /* 明细详情弹框 append-to-body,节点不在 .xform-h5 里,
1805
+ 列表卡片那套 `.xform-h5 .h5-list-box .item .t2` 一行两个打不到。
1806
+ 这里按同一口径接上:.t2 变 flex 容器,dl.m2 占 50%。 */
1807
+ .t2{
1808
+ display: flex;
1809
+ flex-wrap: wrap;
1810
+ align-items: flex-start;
1811
+ > dl{
1812
+ font-size:14px;color:#666;
1813
+ &.m2 {
1814
+ width: 50%;
1815
+ }
1816
+ &.m2 > div {
1817
+ flex-wrap: wrap;
1818
+ }
1819
+ &.m2 > div > dd {
1820
+ flex: 1 1 auto;
1821
+ min-width: 0;
1822
+ }
1823
+ dd{
1824
+ margin:0;
1825
+ color:#323232;
1826
+ text-align:right;
1827
+ min-width: 0;
1828
+ /* 压 style.scss:14112 的 width:calc(100vw - 159px)。
1829
+ 弹框里是真控件,半行净宽撑不住整屏宽。 */
1830
+ .field-wrapper,
1831
+ .field-wrapper.h5-field {
1832
+ display: block;
1833
+ width: auto;
1834
+ }
1835
+ .field-wrapper.h5-field .el-form-item {
1836
+ display: block;
1837
+ min-height: 0;
1838
+ margin-bottom: 0;
1839
+ padding: 0;
1840
+ border-bottom: none;
1841
+ }
1842
+ /* dt 已经出过字段名,藏掉控件自带的第二份 label */
1843
+ .field-wrapper.h5-field .el-form-item > .el-form-item__label {
1844
+ display: none;
1845
+ }
1846
+ .field-wrapper.h5-field .el-form-item > .el-form-item__content {
1847
+ margin-left: 0 !important;
1848
+ }
1849
+ }
1850
+ }
1851
+ }
1852
+ }
1853
+ }
1854
+ }
1737
1855
 
1738
- .btn {
1739
- flex: 1;
1740
- margin: 0 8px;
1741
- height: 42px;
1742
- border-radius: 12px;
1743
- }
1856
+ /* 底部「关闭」:与底部动作栏同款胶囊,铺满一行 */
1857
+ > .el-dialog__footer {
1858
+ flex: none;
1859
+ padding: 8px 13px;
1860
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.06);
1861
+ .dialog-footer{display:flex;}
1862
+ .button-sty,
1863
+ .el-button {
1864
+ height: 40px;
1865
+ border-radius: 30px;
1866
+ padding: 0;
1867
+ font-size: 13px;
1868
+ flex:1;
1869
+ i {
1870
+ margin-right: 3px;
1744
1871
  }
1745
1872
  }
1746
1873
  }
1747
1874
 
1875
+ /*步骤条*/
1748
1876
  /* ---- 任务情况时间轴 ---- */
1749
1877
  .h5-process-info {
1750
- font-size: 12px;
1878
+ font-size: $xformH5Size;
1751
1879
  padding: 12px 16px;
1752
1880
  background: #fff;
1753
- margin: 10px 12px;
1881
+ margin: 12px 16px;
1754
1882
  border-radius: 15px;
1755
-
1883
+ overflow:auto;
1756
1884
  .item {
1757
1885
  display: flex;
1758
1886
  line-height: 1.4;
@@ -1837,7 +1965,7 @@ $xformH5PageBg: #f1f5fb;
1837
1965
 
1838
1966
  .info {
1839
1967
  width: calc(100% - 100px);
1840
-
1968
+ color:#666;
1841
1969
  p {
1842
1970
  margin: 2px 0;
1843
1971
  display: block;
@@ -1850,6 +1978,7 @@ $xformH5PageBg: #f1f5fb;
1850
1978
  font-weight: 600;
1851
1979
  width: 100%;
1852
1980
  margin-bottom: 3px;
1981
+ color:#323232;
1853
1982
  }
1854
1983
  }
1855
1984
 
@@ -1872,121 +2001,312 @@ $xformH5PageBg: #f1f5fb;
1872
2001
  }
1873
2002
  }
1874
2003
 
1875
- /* ---- 确认/表单提示框(通过、驳回、转办等)---- */
1876
- /* 注意:.icon 沿用 resources/images 下的图标,`~@/` 在消费应用里解析到它自己的
1877
- src/resources/images —— 该目录同样不在 package.json files 内,属隐式依赖。
1878
- 消费应用现有的 h5.scss 已引用同一批图,故风险可控;若要彻底解耦可换字体图标。 */
1879
- .pop-tipsBox {
2004
+
2005
+ /* 搜索行(选用户 / 加签):输入框 + 右侧「高级筛选」 */
2006
+ .search-H5box {
2007
+ flex: none;
1880
2008
  position: relative;
2009
+ display: flex;
2010
+ padding: 8px 16px 0;
1881
2011
 
1882
- &:before {
1883
- content: "";
1884
- position: fixed;
1885
- top: 0;
1886
- right: 0;
1887
- bottom: 0;
1888
- left: 0;
1889
- background: rgba(0, 0, 0, 0.4);
1890
- z-index: 998;
1891
- }
2012
+ .txt {
2013
+ flex: 1;
2014
+ position: relative;
2015
+ height: 38px;
2016
+ background: #fff;
2017
+ border: solid 1px #e4e4e4;
2018
+ border-radius: 38px 0 0 38px;
1892
2019
 
1893
- > div {
1894
- position: fixed;
1895
- top: 24%;
1896
- left: 32px;
1897
- right: 32px;
1898
- box-shadow: 0 0 14px rgba(0, 0, 0, 0.16);
1899
- border-radius: 18px;
1900
- padding: 68px 16px 18px;
1901
- text-align: center;
1902
- z-index: 999;
1903
- background-color: #fff;
1904
- background-size: 100% auto;
1905
- border: solid 2px #fff;
2020
+ .el-input {
2021
+ width: 100% !important;
2022
+ }
1906
2023
 
1907
- .icon {
1908
- background: url(~@/resources/images/icon-tips.png) no-repeat center;
1909
- background-size: cover;
2024
+ .el-input__inner {
2025
+ height: 38px !important;
2026
+ width: 100%;
2027
+ border: none;
2028
+ background: none;
2029
+ line-height: 38px;
2030
+ padding-left: 39px;
2031
+ font-size: 13px;
2032
+ }
2033
+
2034
+ /* 放大镜挪到左侧(element 默认在右) */
2035
+ .el-input__suffix {
1910
2036
  position: absolute;
1911
- top: -19px;
1912
- left: 50%;
1913
- margin-left: -34px;
1914
- width: 68px;
1915
- height: 68px;
1916
- border-radius: 50%;
1917
- border: solid 2px #fff;
2037
+ left: 12px;
2038
+ right: inherit;
2039
+ top: 7px;
2040
+ width: 20px;
2041
+ transform: inherit !important;
1918
2042
  }
1919
2043
 
1920
- .cont {
1921
- padding: 0 0 18px;
2044
+ .el-input-group__append {
2045
+ border: none;
2046
+ background: none;
1922
2047
 
1923
- .name {
1924
- font-weight: 600;
1925
- font-size: 18px;
1926
- margin-bottom: 24px;
2048
+ .el-button {
2049
+ border: none;
2050
+ background: $baseColor;
2051
+ color: #fff;
2052
+ width: 53px;
2053
+ height: 30px;
2054
+ padding: 0;
2055
+ position: absolute;
2056
+ right: 4px;
2057
+ top: 4px;
2058
+ /* element 给 .el-input-group__append .el-button 定了 margin:-10px -20px,
2059
+ 绝对定位后这对负边距会把按钮整体往右上顶出去(实测右溢 16px、上溢
2060
+ 5px,正好压在「高级筛选」上)。原文是用 right:26px/top:14px 反向补
2061
+ 偿的,这里直接清零,right/top 才是所见即所得。 */
2062
+ margin: 0;
2063
+ border-radius: 30px;
2064
+ outline: none;
2065
+ font-size: 13px;
1927
2066
  }
2067
+ }
2068
+ }
2069
+
2070
+ .icon-screen {
2071
+ flex: none;
2072
+ height: 38px;
2073
+ line-height: 38px;
2074
+ padding: 0 10px;
2075
+ font-size: 13px;
2076
+ color: $baseColor;
2077
+ background: transparentize($baseColor, 0.88);
2078
+ border: solid 1px #e4e4e4;
2079
+ border-left: none;
2080
+ border-radius: 0 10px 10px 0;
2081
+
2082
+ i {
2083
+ margin-right: 5px;
2084
+ font-size: 14px;
2085
+ }
2086
+ }
2087
+ }
2088
+
2089
+ /* 修改单据:表单直接挂在骨架下,不套 .flex */
2090
+ > .el-dialog__body > div > .form-box {
2091
+ flex: 1;
2092
+ min-height: 0;
2093
+ overflow-y: auto;
2094
+ }
2095
+ .selected-flex-box{
2096
+ display: flex;height:100%;flex-direction: column;
2097
+ }
2098
+ .flex {
2099
+ display: flex;
2100
+ flex-direction: column;
2101
+ flex: 1;
2102
+ min-height: 0;
2103
+
2104
+ /* 可滚动的候选列表 */
2105
+ .checkbox-all_list {
2106
+ flex: 1;
2107
+ min-height: 0;
2108
+ /* 只放开纵向。写成 overflow:auto 时横向也可滚,卡片里一旦有超长内容
2109
+ (用户资料的「地址」字段存的是一整条图片 URL)就会拖出一条横向滚动条。 */
2110
+ overflow-y: auto;
2111
+ overflow-x: hidden;
2112
+ padding: 0 12px;
2113
+
2114
+ .order-item {
2115
+ background: #fff;
1928
2116
 
1929
- /* max-height + overflow:auto 是给「自定义确认文案」这类可能很长的内容留的
1930
- (提醒内容、脚本里配的提示都走这里)。但确认框里多数只有一行短句,
1931
- 真机 WebView 又是经典滚动条(不像桌面那样会自动淡出),于是「您确定要
1932
- 中断流程吗?」这种一行字旁边也挂着一条灰色滚动条。
1933
- 保留可滚动(长文案照样能滑),只把滚动条本身藏掉 —— 移动端本来就该是
1934
- 无痕滚动。 */
1935
- .txt,
1936
- .txt2 {
1937
- overflow: auto;
1938
- word-break: break-word;
1939
- scrollbar-width: none; // Firefox
1940
- -ms-overflow-style: none; // 旧 Edge/IE
1941
-
1942
- &::-webkit-scrollbar {
1943
- display: none;
2117
+ .is-checked {
2118
+ position: absolute;
2119
+ right: 0;
2120
+ top: 0;
2121
+ width: 62px;
2122
+ height: 22px;
2123
+ line-height: 20px;
2124
+ text-align: center;
2125
+ font-size: 13px;
2126
+ color: #fff;
2127
+ background: #e2e2e2;
2128
+ border: solid 1px #dcdcdc;
2129
+ border-radius: 0 8px 0 6px;
2130
+
2131
+ i {
2132
+ margin-right: 3px;
2133
+ font-size: 13px;
1944
2134
  }
1945
2135
  }
1946
2136
 
1947
- .txt {
1948
- max-height: 100px;
1949
- }
2137
+ &.on {
2138
+ border: solid 1px $baseColor;
1950
2139
 
1951
- .txt2 {
1952
- max-height: 200px;
2140
+ .is-checked {
2141
+ border-color: $baseColor;
2142
+ background: $baseColor;
2143
+ }
1953
2144
  }
2145
+ }
2146
+ }
1954
2147
 
1955
- .form-box {
1956
- border: solid 1px #dcdcdc;
1957
- padding: 0 12px;
1958
- border-radius: 10px;
1959
- margin-top: -8px;
2148
+ /* 已选区(底部固定,不滚) */
2149
+ .checkbox-all {
2150
+ flex: none;
2151
+ position: relative;
2152
+ min-height: 80px;
2153
+ padding: 0 12px 8px;
2154
+ background: #fff;
2155
+ box-shadow: 0 -3px 4px rgba(0, 0, 0, 0.06);
2156
+ border-bottom: solid 1px $xformH5RowBorder;
2157
+ .ca-t {
2158
+ margin: 8px 0;
2159
+ font-size: 14px;
2160
+ font-weight: 600;
2161
+ }
1960
2162
 
1961
- .line {
1962
- border: solid 1px #e8e8e8;
1963
- }
2163
+ .ca-c span {
2164
+ display: inline-block;
2165
+ position: relative;
2166
+ height: 24px;
2167
+ line-height: 24px;
2168
+ padding: 0 28px 0 2px;
2169
+ margin: 4px 10px 4px 0;
2170
+ font-size: 13px;
2171
+ color: $baseColor;
2172
+ border: solid 1px $baseColor;
2173
+ border-radius: 4px;
2174
+
2175
+ i {
2176
+ position: absolute;
2177
+ top: 0;
2178
+ right: 0;
2179
+ width: 24px;
2180
+ height: 24px;
2181
+ line-height: 24px;
2182
+ text-align: center;
2183
+ background: transparentize($baseColor, 0.91);
1964
2184
  }
1965
2185
  }
2186
+ }
1966
2187
 
1967
- .btns {
1968
- display: flex;
2188
+ .form-box {
2189
+ display: flex;
2190
+ flex-direction: column;
2191
+ flex: 1;
2192
+ overflow: hidden;
1969
2193
 
1970
- .btn {
1971
- flex: 1;
1972
- height: 40px;
1973
- border-radius: 12px;
2194
+ .tit {
2195
+ margin: 8px 12px;
2196
+ background: rgba(51, 106, 153, 0.1);
2197
+ border-radius: 11px;
2198
+ padding: 10px 12px;
2199
+ font-size: 13px;
2200
+ color: $baseColor;
1974
2201
 
1975
- &.el-button--primary.is-plain {
1976
- border-color: $baseColor;
1977
- }
2202
+ &:before {
2203
+ content: "";
2204
+ width: 5px;
2205
+ height: 5px;
2206
+ background: $baseColor;
2207
+ border-radius: 50%;
2208
+ vertical-align: middle;
2209
+ margin-right: 5px;
2210
+ display: inline-block;
2211
+ }
2212
+
2213
+ > span {
2214
+ vertical-align: middle;
1978
2215
  }
1979
2216
  }
1980
2217
  }
2218
+ }
2219
+
1981
2220
 
1982
- &.error > div .icon {
1983
- background-image: url(~@/resources/images/icon-error.png);
1984
- border-color: #fff;
2221
+ /* 列表里的一张候选卡片。原文挂在 .h5-box 下(不在 .pop-box 段内),
2222
+ xform 里只有这批弹层用得到,就收进来。 */
2223
+ .order-item {
2224
+ position: relative;
2225
+ border: solid 1px #f0f1f1;
2226
+ border-radius: 12px;
2227
+ padding: 8px 10px;
2228
+ margin: 8px 0;
2229
+
2230
+ /* 左侧那道竖条 */
2231
+ &:before {
2232
+ content: "";
2233
+ position: absolute;
2234
+ left: 0;
2235
+ top: 6px;
2236
+ width: 3px;
2237
+ height: 50px;
2238
+ background: $baseColor;
2239
+ border-radius: 5px;
2240
+ }
2241
+
2242
+ /* 卡片里放的是用户资料原值,可能出现超长且无空格的串(「地址」字段实际存的
2243
+ 是一整条图片 URL)。默认不允许在非空白处断行,这种串会把卡片整体撑宽、
2244
+ 连带拖出横向滚动条,所以这里统一允许任意位置断行。 */
2245
+ .t1,
2246
+ .t2 {
2247
+ word-break: break-all;
2248
+ overflow-wrap: anywhere;
2249
+ }
2250
+
2251
+ .t1 {
2252
+ margin-bottom: 6px;
2253
+
2254
+ /* 模板里恒有 <i class="icon">(原文设了一圈头像样式后又 display:none,
2255
+ 等于留着没用)。照原样隐藏,避免哪天有人给裸 .icon 加了全局规则时冒出来。 */
2256
+ .icon {
2257
+ display: none;
2258
+ }
2259
+
2260
+ span {
2261
+ vertical-align: middle;
2262
+ margin: 0 5px 0 0;
2263
+ }
2264
+ }
2265
+
2266
+ .t2 {
2267
+ font-size: 11px;
2268
+ color: rgba(128, 128, 128, 0.8);
2269
+
2270
+ p {
2271
+ min-width: 50%;
2272
+ /* 没有 max-width 时,inline-block 会被里面的长串顶到超出卡片宽度 */
2273
+ max-width: 100%;
2274
+ margin: 4px 0;
2275
+ display: inline-block;
2276
+ vertical-align: top;
2277
+ font-size:13px;
2278
+ }
2279
+ }
2280
+
2281
+ /* 修改候选人:卡片内的「设置候选人」按钮 */
2282
+ .btns {
2283
+ text-align: right;
2284
+ margin-top: 4px;
2285
+
2286
+ .btn {
2287
+ height: 28px;
2288
+ padding: 0 10px;
2289
+ font-size: 13px;
2290
+ }
1985
2291
  }
1986
2292
  }
2293
+
2294
+ }
2295
+ .el-dropdown-menu__item:not(.is-disabled):hover, .el-dropdown-menu__item:focus{
2296
+ background:none
1987
2297
  }
2298
+ .h5-dropdown-button.button-sty{
2299
+ width: 100%;
2300
+ height: 40px;
2301
+ border-radius: 30px;
2302
+ padding: 0;
2303
+ /* 三个并排时按钮偏窄:字号收一档、超长省略,避免文字撑破 */
2304
+ font-size: 13px;
2305
+ overflow: hidden;
2306
+ text-overflow: ellipsis;
2307
+ white-space: nowrap;
1988
2308
 
1989
- /* ============ 页面底色 ============ */
1990
- .xform-h5 .h5-detail-wrap {
1991
- background: $xformH5PageBg;
2309
+ i {
2310
+ margin-right: 3px;
2311
+ }
1992
2312
  }