vue2-client 1.15.107 → 1.15.109

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 (888) hide show
  1. package/.cursorrules +19 -19
  2. package/.editorconfig +9 -9
  3. package/.env +20 -20
  4. package/.env.apply +19 -19
  5. package/.env.development +1 -1
  6. package/.env.gaslink +19 -19
  7. package/.env.his +19 -19
  8. package/.env.iot +19 -19
  9. package/.env.liuli +20 -20
  10. package/.env.message +19 -19
  11. package/.env.revenue +19 -19
  12. package/.env.runtime +19 -19
  13. package/.env.scada +19 -19
  14. package/.eslintrc.js +90 -90
  15. package/.eslintrc.json +5 -5
  16. package/.history/public/his/editor/editor_20250606134713.html +51 -0
  17. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +509 -0
  18. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +524 -0
  19. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +524 -0
  20. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +524 -0
  21. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +207 -0
  22. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +211 -0
  23. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +212 -0
  24. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +212 -0
  25. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +1320 -0
  26. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +1332 -0
  27. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +1331 -0
  28. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +1331 -0
  29. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +1331 -0
  30. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +1339 -0
  31. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +731 -0
  32. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +748 -0
  33. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +748 -0
  34. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +1071 -0
  35. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +1078 -0
  36. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +1077 -0
  37. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +1077 -0
  38. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +1077 -0
  39. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +442 -0
  40. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +442 -0
  41. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +442 -0
  42. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +475 -0
  43. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +475 -0
  44. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +475 -0
  45. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +477 -0
  46. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +477 -0
  47. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +477 -0
  48. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +473 -0
  49. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +473 -0
  50. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +473 -0
  51. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +473 -0
  52. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +473 -0
  53. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +473 -0
  54. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +473 -0
  55. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +473 -0
  56. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +473 -0
  57. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +473 -0
  58. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +474 -0
  59. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +474 -0
  60. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +474 -0
  61. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +472 -0
  62. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +472 -0
  63. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +472 -0
  64. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +472 -0
  65. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +472 -0
  66. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +472 -0
  67. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +501 -0
  68. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +501 -0
  69. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +501 -0
  70. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +504 -0
  71. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +504 -0
  72. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +504 -0
  73. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +131 -0
  74. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +160 -0
  75. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +160 -0
  76. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +160 -0
  77. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +158 -0
  78. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +173 -0
  79. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +222 -0
  80. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +229 -0
  81. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +229 -0
  82. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +229 -0
  83. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +241 -0
  84. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +241 -0
  85. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +241 -0
  86. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +245 -0
  87. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +245 -0
  88. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +245 -0
  89. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +255 -0
  90. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +255 -0
  91. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +255 -0
  92. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +270 -0
  93. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +270 -0
  94. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +270 -0
  95. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +270 -0
  96. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +294 -0
  97. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +294 -0
  98. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +294 -0
  99. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +303 -0
  100. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +303 -0
  101. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +303 -0
  102. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +288 -0
  103. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +288 -0
  104. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +288 -0
  105. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +317 -0
  106. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +306 -0
  107. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +306 -0
  108. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +306 -0
  109. package/.history/src/base-client/components/his/XList/XList_20250704142024.vue +495 -0
  110. package/.history/src/base-client/components/his/XList/XList_20250704142033.vue +495 -0
  111. package/.history/src/base-client/components/his/XList/XList_20250704142040.vue +494 -0
  112. package/.history/src/base-client/components/his/XList/XList_20250704142211.vue +494 -0
  113. package/.history/src/base-client/components/his/XList/XList_20250704142214.vue +494 -0
  114. package/.history/src/base-client/components/his/XList/XList_20250704143010.vue +495 -0
  115. package/.history/src/base-client/components/his/XList/XList_20250704143203.vue +495 -0
  116. package/.history/src/base-client/components/his/XList/XList_20250707095101.vue +492 -0
  117. package/.history/src/base-client/components/his/XList/XList_20250707100152.vue +492 -0
  118. package/.history/src/base-client/components/his/XList/XList_20250707100200.vue +485 -0
  119. package/.history/src/base-client/components/his/XList/XList_20250707100208.vue +485 -0
  120. package/.history/src/base-client/components/his/XList/XList_20250707100259.vue +488 -0
  121. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134604.vue +263 -0
  122. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134615.vue +302 -0
  123. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134621.vue +301 -0
  124. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134634.vue +311 -0
  125. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134644.vue +330 -0
  126. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134653.vue +330 -0
  127. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134836.vue +330 -0
  128. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135247.vue +330 -0
  129. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135303.vue +354 -0
  130. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135316.vue +363 -0
  131. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135323.vue +363 -0
  132. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135334.vue +366 -0
  133. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135342.vue +364 -0
  134. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135349.vue +364 -0
  135. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135351.vue +346 -0
  136. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135354.vue +346 -0
  137. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135401.vue +346 -0
  138. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135406.vue +346 -0
  139. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135424.vue +346 -0
  140. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807143043.vue +254 -0
  141. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155506.vue +329 -0
  142. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155535.vue +330 -0
  143. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155543.vue +330 -0
  144. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155926.vue +304 -0
  145. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155928.vue +304 -0
  146. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172548.vue +298 -0
  147. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172609.vue +298 -0
  148. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172623.vue +298 -0
  149. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172631.vue +298 -0
  150. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172701.vue +298 -0
  151. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172704.vue +298 -0
  152. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175937.vue +290 -0
  153. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175942.vue +290 -0
  154. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180210.vue +290 -0
  155. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180424.vue +290 -0
  156. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180448.vue +290 -0
  157. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180915.vue +262 -0
  158. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180917.vue +262 -0
  159. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101106.vue +283 -0
  160. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101112.vue +289 -0
  161. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101118.vue +289 -0
  162. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101129.vue +294 -0
  163. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101137.vue +318 -0
  164. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101145.vue +320 -0
  165. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101154.vue +320 -0
  166. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101211.vue +320 -0
  167. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101236.vue +320 -0
  168. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101239.vue +320 -0
  169. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114001.vue +342 -0
  170. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114005.vue +342 -0
  171. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114014.vue +345 -0
  172. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114020.vue +345 -0
  173. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114028.vue +345 -0
  174. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114108.vue +345 -0
  175. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114115.vue +345 -0
  176. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114333.vue +346 -0
  177. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114339.vue +350 -0
  178. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114344.vue +355 -0
  179. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114351.vue +355 -0
  180. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114408.vue +355 -0
  181. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114410.vue +355 -0
  182. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103845.vue +142 -0
  183. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103852.vue +142 -0
  184. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103857.vue +142 -0
  185. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103859.vue +142 -0
  186. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103907.vue +142 -0
  187. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103910.vue +142 -0
  188. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103911.vue +142 -0
  189. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103913.vue +142 -0
  190. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103916.vue +142 -0
  191. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103931.vue +142 -0
  192. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145127.vue +85 -0
  193. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145136.vue +81 -0
  194. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145142.vue +81 -0
  195. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145145.vue +81 -0
  196. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145148.vue +81 -0
  197. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145151.vue +81 -0
  198. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145155.vue +81 -0
  199. package/CHANGELOG.md +824 -824
  200. package/CLAUDE.md +89 -89
  201. package/Components.md +60 -60
  202. package/README.md +65 -65
  203. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +213 -0
  204. package/babel.config.js +21 -21
  205. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +46 -46
  206. package/docs/LowCode/lowcode.md +155 -155
  207. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  208. package/docs/index.md +30 -30
  209. package/docs/notice.md +22 -22
  210. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +185 -179
  211. package/index.js +31 -31
  212. package/jest-transform-stub.js +8 -8
  213. package/jest.config.js +22 -22
  214. package/jest.setup.js +7 -7
  215. package/jsconfig.json +19 -19
  216. package/package.json +111 -111
  217. package/public/his/editor/editor.html +51 -51
  218. package/public/his/editor/mock/bind_data.html +779 -779
  219. package/public/his/editor/mock/data_table.html +40 -40
  220. package/public/his/editor/mock/sign.html +75 -75
  221. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  222. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  223. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  224. package/public/his/editor/vender/date97/calendar.js +4 -4
  225. package/public/his/editor/vender/date97/lang/en.js +13 -13
  226. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  227. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  228. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  229. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  230. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  231. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  232. package/public/his/editor/vender/diff.js +1627 -1627
  233. package/public/his/editor/vender/editor.js +1 -1
  234. package/public/his/editor/vender/fabric.js +31187 -31187
  235. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  236. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  237. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  238. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  239. package/public/his/editor/vender/mui/mui.min.css +4 -4
  240. package/public/his/editor/vender/mui/mui.min.js +5 -5
  241. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  242. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  243. package/public/his/editor/vender/qrcode.js +7 -7
  244. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  245. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  246. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  247. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  248. package/public/his/editor/vender/validator.js +5094 -5094
  249. package/public/his/editor/vender/weui/weui.css +5659 -5659
  250. package/public/his/editor/vender/weui/weui.min.css +4 -4
  251. package/public/his/editor/vender/weui/weui.min.js +11 -11
  252. package/public/index.html +27 -27
  253. package/src/App.vue +196 -196
  254. package/src/ReportView.js +13 -13
  255. package/src/assets/img/querySlotDemo.svg +15 -15
  256. package/src/assets/svg/badtwo.svg +1 -1
  257. package/src/assets/svg/goodtwo.svg +1 -1
  258. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  259. package/src/base-client/components/AI/demo.vue +31 -31
  260. package/src/base-client/components/TreeList/TreeList.vue +91 -0
  261. package/src/base-client/components/TreeList/TreeNode.vue +81 -0
  262. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +532 -532
  263. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  264. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  265. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  266. package/src/base-client/components/common/AddressSearchCombobox/index.js +3 -3
  267. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  268. package/src/base-client/components/common/AmapMarker/index.js +3 -3
  269. package/src/base-client/components/common/CitySelect/CitySelect.vue +376 -376
  270. package/src/base-client/components/common/CitySelect/demo.vue +43 -43
  271. package/src/base-client/components/common/CitySelect/index.js +3 -3
  272. package/src/base-client/components/common/CitySelect/index.md +109 -109
  273. package/src/base-client/components/common/ColorPickerCombobox/ColorPickerCombobox.vue +99 -99
  274. package/src/base-client/components/common/ColorPickerCombobox/demo.vue +34 -34
  275. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  276. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  277. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  278. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  279. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  280. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  281. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  282. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  283. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +146 -146
  284. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  285. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  286. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  287. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  288. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  289. package/src/base-client/components/common/JSONToTree/index.js +3 -3
  290. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  291. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  292. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  293. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  294. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  295. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  296. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  297. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  298. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  299. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  300. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  301. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  302. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  303. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  304. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  305. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  306. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  307. package/src/base-client/components/common/Recording/index.js +3 -3
  308. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  309. package/src/base-client/components/common/Tree/index.js +2 -2
  310. package/src/base-client/components/common/Upload/Upload.vue +323 -323
  311. package/src/base-client/components/common/Upload/index.js +3 -3
  312. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  313. package/src/base-client/components/common/XAddForm/index.js +3 -3
  314. package/src/base-client/components/common/XAddForm/index.md +61 -61
  315. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1169 -1169
  316. package/src/base-client/components/common/XAddNativeForm/demo.vue +54 -54
  317. package/src/base-client/components/common/XAddNativeForm/index.js +3 -3
  318. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  319. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  320. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  321. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  322. package/src/base-client/components/common/XAddReport/XAddReport.vue +212 -212
  323. package/src/base-client/components/common/XAddReport/index.js +3 -3
  324. package/src/base-client/components/common/XAddReport/index.md +56 -56
  325. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  326. package/src/base-client/components/common/XBadge/index.js +3 -3
  327. package/src/base-client/components/common/XBadge/index.md +39 -39
  328. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  329. package/src/base-client/components/common/XButtons/XButtons.vue +284 -284
  330. package/src/base-client/components/common/XButtons/index.js +3 -3
  331. package/src/base-client/components/common/XButtons/index.md +61 -61
  332. package/src/base-client/components/common/XCalendar/XCalendar.vue +369 -369
  333. package/src/base-client/components/common/XCalendar/index.md +284 -284
  334. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  335. package/src/base-client/components/common/XCard/index.js +3 -3
  336. package/src/base-client/components/common/XCard/index.md +43 -43
  337. package/src/base-client/components/common/XCardSet/XCardSet.vue +300 -300
  338. package/src/base-client/components/common/XCardSet/XTiltle.vue +191 -0
  339. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  340. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  341. package/src/base-client/components/common/XCollapse/XCollapse.vue +355 -355
  342. package/src/base-client/components/common/XConversation/XConversation.vue +576 -576
  343. package/src/base-client/components/common/XConversation/XConversationDemo.vue +28 -28
  344. package/src/base-client/components/common/XDataCard/XDataCard.vue +629 -629
  345. package/src/base-client/components/common/XDataCard/index.js +3 -3
  346. package/src/base-client/components/common/XDataCard/index.md +1 -1
  347. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  348. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  349. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  350. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  351. package/src/base-client/components/common/XDatePicker/index.vue +276 -276
  352. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +174 -174
  353. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +314 -314
  354. package/src/base-client/components/common/XDescriptions/demo.vue +51 -51
  355. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  356. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  357. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  358. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  359. package/src/base-client/components/common/XForm/XForm.vue +426 -426
  360. package/src/base-client/components/common/XForm/XFormItem.vue +1479 -1479
  361. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  362. package/src/base-client/components/common/XForm/XTreeSelect.vue +276 -276
  363. package/src/base-client/components/common/XForm/demo.vue +105 -105
  364. package/src/base-client/components/common/XForm/index.js +3 -3
  365. package/src/base-client/components/common/XForm/index.md +178 -178
  366. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  367. package/src/base-client/components/common/XFormCol/XFormCol.vue +157 -157
  368. package/src/base-client/components/common/XFormCol/index.js +3 -3
  369. package/src/base-client/components/common/XFormCol/index.md +35 -35
  370. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +301 -301
  371. package/src/base-client/components/common/XFormGroup/demo.vue +41 -41
  372. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  373. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  374. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  375. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  376. package/src/base-client/components/common/XFormTable/XFormTable.vue +939 -939
  377. package/src/base-client/components/common/XFormTable/demo.vue +87 -87
  378. package/src/base-client/components/common/XFormTable/index.js +3 -3
  379. package/src/base-client/components/common/XFormTable/index.md +92 -92
  380. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +174 -174
  381. package/src/base-client/components/common/XImportExcel/index.js +3 -3
  382. package/src/base-client/components/common/XImportExcel/index.md +38 -38
  383. package/src/base-client/components/common/XInput/XInput.vue +128 -128
  384. package/src/base-client/components/common/XInput/index.js +3 -3
  385. package/src/base-client/components/common/XInput/index.md +97 -97
  386. package/src/base-client/components/common/XIntervalPicker/XIntervalPicker.vue +121 -121
  387. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  388. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  389. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  390. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  391. package/src/base-client/components/common/XLicensePlate/index.js +3 -3
  392. package/src/base-client/components/common/XLicensePlate/index.md +38 -38
  393. package/src/base-client/components/common/XPrint/Demo.vue +41 -41
  394. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  395. package/src/base-client/components/common/XPrint/PrintBill.vue +308 -308
  396. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  397. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  398. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  399. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  400. package/src/base-client/components/common/XPrint/index.vue +97 -97
  401. package/src/base-client/components/common/XRate/demo.vue +102 -102
  402. package/src/base-client/components/common/XRate/index.vue +149 -149
  403. package/src/base-client/components/common/XReport/XReport.vue +963 -963
  404. package/src/base-client/components/common/XReport/XReportDemo.vue +70 -70
  405. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  406. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  407. package/src/base-client/components/common/XReport/XReportTrGroup.vue +1005 -1005
  408. package/src/base-client/components/common/XReport/index.js +3 -3
  409. package/src/base-client/components/common/XReport/index.md +103 -103
  410. package/src/base-client/components/common/XReport/print.js +186 -186
  411. package/src/base-client/components/common/XReportDrawer/XReportDrawer.vue +201 -201
  412. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  413. package/src/base-client/components/common/XReportGrid/XReport.vue +1075 -1075
  414. package/src/base-client/components/common/XReportGrid/XReportDemo.vue +44 -44
  415. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +620 -620
  416. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +724 -724
  417. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  418. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  419. package/src/base-client/components/common/XReportGrid/print.js +184 -184
  420. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  421. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  422. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  423. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  424. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  425. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  426. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  427. package/src/base-client/components/common/XStepView/index.js +3 -3
  428. package/src/base-client/components/common/XStepView/index.md +31 -31
  429. package/src/base-client/components/common/XTab/XTab.vue +299 -299
  430. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  431. package/src/base-client/components/common/XTab/index.js +3 -3
  432. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  433. package/src/base-client/components/common/XTable/ExportExcel.vue +283 -283
  434. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  435. package/src/base-client/components/common/XTable/XTable.vue +1599 -1599
  436. package/src/base-client/components/common/XTable/XTableWrapper.vue +597 -597
  437. package/src/base-client/components/common/XTable/index.js +3 -3
  438. package/src/base-client/components/common/XTable/index.md +255 -255
  439. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  440. package/src/base-client/components/common/XTimeline/XTimeline.vue +358 -358
  441. package/src/base-client/components/common/XTimeline/index.md +191 -191
  442. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  443. package/src/base-client/components/common/XTree/XTreePro.vue +452 -452
  444. package/src/base-client/components/common/XTree/index.js +3 -3
  445. package/src/base-client/components/common/XTree/index.md +36 -36
  446. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  447. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  448. package/src/base-client/components/common/XTreeOne/index.js +3 -3
  449. package/src/base-client/components/common/XUploadFilesView/index.vue +485 -485
  450. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  451. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  452. package/src/base-client/components/his/XCharge/XCharge.vue +238 -238
  453. package/src/base-client/components/his/XCheckbox/XCheckbox.vue +105 -105
  454. package/src/base-client/components/his/XCheckbox/index.md +253 -253
  455. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +430 -430
  456. package/src/base-client/components/his/XHDescriptions/index.md +217 -217
  457. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +678 -629
  458. package/src/base-client/components/his/XHisEditor/diagnosisAutocomplete.js +263 -263
  459. package/src/base-client/components/his/XHisEditor/dome.vue +144 -0
  460. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  461. package/src/base-client/components/his/XImportExcelButton/XFrontImportExcel.vue +218 -218
  462. package/src/base-client/components/his/XImportExcelButton/XFrontImportExcelDemo.vue +23 -21
  463. package/src/base-client/components/his/XImportExcelButton/XImportExcelButton.vue +103 -103
  464. package/src/base-client/components/his/XList/XList.vue +495 -495
  465. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.json +3 -3
  466. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.vue +106 -106
  467. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireDemo.vue +51 -51
  468. package/src/base-client/components/his/XQuestionnaire/XQuestionnaireItem.vue +269 -269
  469. package/src/base-client/components/his/XRadio/XRadio.vue +125 -125
  470. package/src/base-client/components/his/XRadio/index.md +234 -234
  471. package/src/base-client/components/his/XSelect/XSelect.vue +72 -72
  472. package/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +354 -339
  473. package/src/base-client/components/his/XShiftSchedule/dome.vue +29 -29
  474. package/src/base-client/components/his/XSidebar/XSidebar.vue +240 -240
  475. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +119 -119
  476. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +162 -162
  477. package/src/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue +23 -23
  478. package/src/base-client/components/his/XTitle/README.md +113 -113
  479. package/src/base-client/components/his/XTitle/XTitle.vue +123 -123
  480. package/src/base-client/components/his/XTreeRows/TreeNode.vue +107 -107
  481. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +307 -307
  482. package/src/base-client/components/his/threeTestOrders/dome.vue +68 -68
  483. package/src/base-client/components/his/threeTestOrders/textBox.vue +457 -457
  484. package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +475 -475
  485. package/src/base-client/components/index.js +51 -51
  486. package/src/base-client/components/layout/XPageView/RenderRow.vue +88 -88
  487. package/src/base-client/components/layout/XPageView/XErrorView.vue +22 -22
  488. package/src/base-client/components/layout/XPageView/XPageRowTemplate.vue +37 -37
  489. package/src/base-client/components/layout/XPageView/XPageView.vue +223 -223
  490. package/src/base-client/components/layout/XPageView/XTab/XTab.vue +96 -96
  491. package/src/base-client/components/layout/XPageView/XTab/index.js +3 -3
  492. package/src/base-client/components/layout/XPageView/componentTypes.js +22 -22
  493. package/src/base-client/components/layout/XPageView/index.js +2 -2
  494. package/src/base-client/components/layout/XPageView/index.md +96 -96
  495. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  496. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  497. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  498. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  499. package/src/base-client/components/system/DictionaryDetailsView/index.js +3 -3
  500. package/src/base-client/components/system/DictionaryDetailsView/index.md +41 -41
  501. package/src/base-client/components/system/LogDetailsView/LogDetailsView.vue +376 -376
  502. package/src/base-client/components/system/LogDetailsView/index.js +3 -3
  503. package/src/base-client/components/system/LogDetailsView/index.md +41 -41
  504. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  505. package/src/base-client/components/system/QueryParamsDetailsView/index.js +3 -3
  506. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  507. package/src/base-client/components/ticket/TicketDetailsView/index.js +3 -3
  508. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  509. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  510. package/src/base-client/components/ticket/TicketDetailsView/part/index.js +3 -3
  511. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  512. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.js +3 -3
  513. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  514. package/src/base-client/plugins/AppData.js +126 -126
  515. package/src/base-client/plugins/Config.js +19 -19
  516. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  517. package/src/base-client/plugins/PagedList.js +177 -177
  518. package/src/base-client/plugins/Recording.js +258 -258
  519. package/src/base-client/plugins/__tests__/selectValueTypeHelper.test.js +154 -154
  520. package/src/base-client/plugins/authority-plugin.js +167 -167
  521. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  522. package/src/base-client/plugins/i18n-extend.js +32 -32
  523. package/src/base-client/plugins/index.js +23 -23
  524. package/src/base-client/plugins/moment.js +8 -8
  525. package/src/base-client/plugins/selectValueTypeHelper.js +281 -281
  526. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  527. package/src/bootstrap.js +51 -51
  528. package/src/components/Charts/Bar.vue +62 -62
  529. package/src/components/Charts/ChartCard.vue +134 -134
  530. package/src/components/Charts/Liquid.vue +67 -67
  531. package/src/components/Charts/MiniArea.vue +39 -39
  532. package/src/components/Charts/MiniBar.vue +39 -39
  533. package/src/components/Charts/MiniProgress.vue +75 -75
  534. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  535. package/src/components/Charts/Radar.vue +68 -68
  536. package/src/components/Charts/RankList.vue +77 -77
  537. package/src/components/Charts/TagCloud.vue +113 -113
  538. package/src/components/Charts/TransferBar.vue +64 -64
  539. package/src/components/Charts/Trend.vue +82 -82
  540. package/src/components/Charts/chart.less +12 -12
  541. package/src/components/Charts/smooth.area.less +13 -13
  542. package/src/components/CodeMirror/inedx.vue +118 -118
  543. package/src/components/CodeMirror/setting.js +40 -40
  544. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  545. package/src/components/Ellipsis/index.js +3 -3
  546. package/src/components/Ellipsis/index.md +38 -38
  547. package/src/components/FileImageItem/FileItem.vue +320 -320
  548. package/src/components/FileImageItem/FileItemGroup.vue +197 -197
  549. package/src/components/FileImageItem/ImageItem.vue +107 -107
  550. package/src/components/FileImageItem/index.js +4 -4
  551. package/src/components/FilePreview/FilePreview.vue +181 -181
  552. package/src/components/FilePreview/FilePreviewDemo.vue +30 -30
  553. package/src/components/FilePreview/index.js +3 -3
  554. package/src/components/HeightScanner/index.vue +615 -615
  555. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  556. package/src/components/NumberInfo/index.js +3 -3
  557. package/src/components/NumberInfo/index.less +54 -54
  558. package/src/components/NumberInfo/index.md +43 -43
  559. package/src/components/STable/README.md +341 -341
  560. package/src/components/STable/index.js +558 -558
  561. package/src/components/TableSetting/TableSetting.vue +143 -143
  562. package/src/components/TableSetting/index.js +3 -3
  563. package/src/components/Trend/Trend.vue +41 -41
  564. package/src/components/Trend/index.js +3 -3
  565. package/src/components/Trend/index.less +41 -41
  566. package/src/components/Trend/index.md +45 -45
  567. package/src/components/_util/util.js +46 -46
  568. package/src/components/cache/AKeepAlive.js +179 -179
  569. package/src/components/card/ChartCard.vue +79 -79
  570. package/src/components/chart/Bar.vue +60 -60
  571. package/src/components/chart/MiniArea.vue +67 -67
  572. package/src/components/chart/MiniBar.vue +59 -59
  573. package/src/components/chart/MiniProgress.vue +57 -57
  574. package/src/components/chart/Radar.vue +80 -80
  575. package/src/components/chart/RankingList.vue +60 -60
  576. package/src/components/chart/Trend.vue +79 -79
  577. package/src/components/chart/index.less +9 -9
  578. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  579. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  580. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  581. package/src/components/checkbox/index.js +9 -9
  582. package/src/components/exception/ExceptionPage.vue +70 -70
  583. package/src/components/exception/typeConfig.js +19 -19
  584. package/src/components/form/FormRow.vue +52 -52
  585. package/src/components/g2Charts/constants.js +202 -202
  586. package/src/components/g2Charts/demo.vue +808 -808
  587. package/src/components/g2Charts/designer.vue +228 -228
  588. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  589. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  590. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  591. package/src/components/g2Charts/index.vue +397 -397
  592. package/src/components/index.js +36 -36
  593. package/src/components/index.less +5 -5
  594. package/src/components/input/IInput.vue +66 -66
  595. package/src/components/menu/Contextmenu.vue +84 -84
  596. package/src/components/menu/SideMenu.vue +75 -75
  597. package/src/components/menu/index.less +38 -38
  598. package/src/components/menu/menu.js +273 -273
  599. package/src/components/page/header/PageHeader.vue +64 -64
  600. package/src/components/page/header/index.less +40 -40
  601. package/src/components/result/Result.vue +77 -77
  602. package/src/components/setting/Setting.vue +234 -234
  603. package/src/components/setting/SettingItem.vue +26 -26
  604. package/src/components/setting/i18n.js +117 -117
  605. package/src/components/table/StandardTable.vue +141 -141
  606. package/src/components/table/advance/ActionColumns.vue +158 -158
  607. package/src/components/table/advance/ActionSize.vue +45 -45
  608. package/src/components/table/advance/AdvanceTable.vue +275 -275
  609. package/src/components/table/advance/SearchArea.vue +355 -355
  610. package/src/components/table/advance/index.js +2 -2
  611. package/src/components/table/api/ApiTable.vue +50 -50
  612. package/src/components/task/TaskGroup.vue +80 -80
  613. package/src/components/task/TaskItem.vue +26 -26
  614. package/src/components/tool/AStepItem.vue +60 -60
  615. package/src/components/tool/AvatarList.vue +68 -68
  616. package/src/components/tool/DetailList.vue +157 -157
  617. package/src/components/tool/Drawer.vue +142 -142
  618. package/src/components/tool/FooterToolBar.vue +30 -30
  619. package/src/components/tool/HeadInfo.vue +35 -35
  620. package/src/components/tool/TagSelect.vue +83 -83
  621. package/src/components/tool/TagSelectOption.vue +33 -33
  622. package/src/components/transition/PageToggleTransition.vue +97 -97
  623. package/src/config/CreateQueryConfig.js +325 -325
  624. package/src/config/default/admin.config.js +18 -18
  625. package/src/config/default/animate.config.js +21 -21
  626. package/src/config/default/antd.config.js +89 -89
  627. package/src/config/default/index.js +6 -6
  628. package/src/config/default/setting.config.js +55 -55
  629. package/src/config/index.js +3 -3
  630. package/src/config/replacer/index.js +10 -10
  631. package/src/config/replacer/resolve.config.js +67 -67
  632. package/src/expression/ExpressionRunner.js +26 -26
  633. package/src/expression/TestExpression.js +509 -509
  634. package/src/expression/core/Delegate.js +115 -115
  635. package/src/expression/core/Expression.js +1358 -1358
  636. package/src/expression/core/Program.js +932 -932
  637. package/src/expression/core/Token.js +27 -27
  638. package/src/expression/enums/ExpressionType.js +81 -81
  639. package/src/expression/enums/TokenType.js +11 -11
  640. package/src/expression/exception/BreakWayException.js +2 -2
  641. package/src/expression/exception/ContinueWayException.js +2 -2
  642. package/src/expression/exception/ExpressionException.js +28 -28
  643. package/src/expression/exception/ReturnWayException.js +14 -14
  644. package/src/expression/exception/ServiceException.js +22 -22
  645. package/src/expression/instances/LogicConsole.js +44 -44
  646. package/src/expression/ts/ExpressionRunner.ts +28 -28
  647. package/src/expression/ts/TestExpression.ts +509 -509
  648. package/src/expression/ts/core/Delegate.ts +114 -114
  649. package/src/expression/ts/core/Expression.ts +1309 -1309
  650. package/src/expression/ts/core/Program.ts +950 -950
  651. package/src/expression/ts/core/Token.ts +29 -29
  652. package/src/expression/ts/enums/ExpressionType.ts +81 -81
  653. package/src/expression/ts/enums/TokenType.ts +13 -13
  654. package/src/expression/ts/exception/BreakWayException.ts +2 -2
  655. package/src/expression/ts/exception/ContinueWayException.ts +2 -2
  656. package/src/expression/ts/exception/ExpressionException.ts +28 -28
  657. package/src/expression/ts/exception/ReturnWayException.ts +14 -14
  658. package/src/expression/ts/exception/ServiceException.ts +22 -22
  659. package/src/expression/ts/instances/JSONArray.ts +48 -48
  660. package/src/expression/ts/instances/JSONObject.ts +109 -109
  661. package/src/expression/ts/instances/LogicConsole.ts +32 -32
  662. package/src/font-style/font.css +4 -4
  663. package/src/layouts/AdminLayout.vue +176 -176
  664. package/src/layouts/BlankView.vue +81 -81
  665. package/src/layouts/CommonLayout.vue +56 -56
  666. package/src/layouts/ComponentLayoutOne.vue +47 -47
  667. package/src/layouts/GridView.vue +43 -43
  668. package/src/layouts/PageLayout.vue +151 -151
  669. package/src/layouts/PageView.vue +55 -55
  670. package/src/layouts/SinglePageView.vue +136 -136
  671. package/src/layouts/footer/PageFooter.vue +49 -49
  672. package/src/layouts/header/AdminHeader.vue +132 -132
  673. package/src/layouts/header/HeaderAvatar.vue +64 -64
  674. package/src/layouts/header/HeaderNotice.vue +177 -177
  675. package/src/layouts/header/HeaderSearch.vue +67 -67
  676. package/src/layouts/header/InstitutionDetail.vue +181 -181
  677. package/src/layouts/header/index.less +92 -92
  678. package/src/layouts/tabs/TabsHead.vue +189 -189
  679. package/src/layouts/tabs/TabsView.vue +383 -383
  680. package/src/layouts/tabs/i18n.js +25 -25
  681. package/src/layouts/tabs/index.js +2 -2
  682. package/src/lib.js +1 -1
  683. package/src/logic/LogicRunner.js +62 -62
  684. package/src/logic/TestLogic.js +13 -13
  685. package/src/logic/plugins/common/DateTools.js +35 -35
  686. package/src/logic/plugins/common/VueTools.js +30 -30
  687. package/src/logic/plugins/index.js +7 -7
  688. package/src/logic/ts/LogicRunner.ts +67 -67
  689. package/src/logic/ts/TestLogic.ts +13 -13
  690. package/src/main.js +33 -33
  691. package/src/mixins/formValidationMixin.js +46 -46
  692. package/src/mock/common/activityData.js +32 -32
  693. package/src/mock/common/index.js +89 -89
  694. package/src/mock/common/reportData.js +20 -20
  695. package/src/mock/common/tableData.js +118 -118
  696. package/src/mock/extend/index.js +84 -84
  697. package/src/mock/goods/index.js +108 -108
  698. package/src/mock/index.js +12 -12
  699. package/src/mock/project/index.js +17 -17
  700. package/src/mock/user/current.js +13 -13
  701. package/src/mock/user/login.js +39 -39
  702. package/src/mock/user/routes.js +61 -61
  703. package/src/mock/workplace/index.js +15 -15
  704. package/src/pages/DefaultExample/index.vue +77 -77
  705. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  706. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  707. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  708. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  709. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  710. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  711. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  712. package/src/pages/DynamicStatistics/index.vue +282 -282
  713. package/src/pages/Example/childIndex.vue +15 -15
  714. package/src/pages/Example/index.vue +30 -30
  715. package/src/pages/LogicCallExample/index.vue +46 -46
  716. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  717. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  718. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  719. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  720. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  721. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  722. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  723. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  724. package/src/pages/Recording/index.vue +77 -77
  725. package/src/pages/ReportGrid/index.vue +76 -76
  726. package/src/pages/ReportView.vue +50 -50
  727. package/src/pages/ServiceReview/index.vue +284 -284
  728. package/src/pages/SubExample/index.vue +26 -26
  729. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +47 -47
  730. package/src/pages/WorkflowDetail/WorkFlowDemo2.vue +204 -204
  731. package/src/pages/WorkflowDetail/WorkFlowDemo3.vue +203 -203
  732. package/src/pages/WorkflowDetail/WorkflowDetail.vue +397 -397
  733. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +388 -388
  734. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  735. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +415 -415
  736. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  737. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1766 -1766
  738. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +975 -975
  739. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowPreview.vue +125 -125
  740. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +929 -929
  741. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +218 -218
  742. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +243 -243
  743. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  744. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +188 -188
  745. package/src/pages/WorkflowDetail/WorkflowPageDetail/components/WorkflowPersonSelector.vue +109 -109
  746. package/src/pages/WorkflowDetail/WorkflowPageDetail/worklog.vue +97 -97
  747. package/src/pages/XPageViewExample/index.vue +149 -149
  748. package/src/pages/XReportView/index.vue +64 -64
  749. package/src/pages/XTreeOneProExample/index.vue +67 -67
  750. package/src/pages/addressSelect/addressDemo.vue +24 -24
  751. package/src/pages/addressSelect/index.vue +270 -270
  752. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  753. package/src/pages/dashboard/workplace/i18n.js +40 -40
  754. package/src/pages/dashboard/workplace/index.js +2 -2
  755. package/src/pages/dashboard/workplace/index.less +59 -59
  756. package/src/pages/exception/403.vue +21 -21
  757. package/src/pages/exception/404.vue +24 -24
  758. package/src/pages/exception/500.vue +21 -21
  759. package/src/pages/login/Login.vue +380 -380
  760. package/src/pages/login/LoginV3.vue +389 -389
  761. package/src/pages/login/index.js +2 -2
  762. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  763. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  764. package/src/pages/report/ReportTable.js +124 -124
  765. package/src/pages/report/ReportTableHome.vue +28 -28
  766. package/src/pages/resourceManage/depListManage.vue +23 -23
  767. package/src/pages/resourceManage/funListManage.vue +23 -23
  768. package/src/pages/resourceManage/index.js +15 -15
  769. package/src/pages/resourceManage/orgListManage.vue +98 -98
  770. package/src/pages/resourceManage/resourceManageMain.vue +57 -57
  771. package/src/pages/resourceManage/roleListManage.vue +23 -23
  772. package/src/pages/resourceManage/staffListManage.vue +23 -23
  773. package/src/pages/system/dictionary/index.vue +44 -44
  774. package/src/pages/system/file/Info.vue +56 -56
  775. package/src/pages/system/file/index.vue +317 -317
  776. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  777. package/src/pages/system/monitor/operLog/index.vue +37 -37
  778. package/src/pages/system/settings/index.vue +126 -126
  779. package/src/pages/system/settings/modifyPassword.vue +117 -117
  780. package/src/pages/system/ticket/index.vue +480 -480
  781. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  782. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  783. package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +77 -77
  784. package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +75 -75
  785. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  786. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  787. package/src/pages/userInfoDetailManage/InsuranceDetailQuery/index.vue +64 -64
  788. package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +75 -75
  789. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  790. package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +75 -75
  791. package/src/pages/userInfoDetailManage/PriceAdjustments/index.vue +64 -64
  792. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  793. package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +94 -94
  794. package/src/pages/userInfoDetailManage/UserException/index.vue +64 -64
  795. package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +87 -87
  796. package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +74 -74
  797. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  798. package/src/pages/userInfoDetailManage/index.vue +290 -290
  799. package/src/pages/userInfoDetailManage/uploadFilesHistory/ImagePreview.vue +101 -101
  800. package/src/pages/userInfoDetailManage/uploadFilesHistory/index.vue +129 -129
  801. package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +144 -144
  802. package/src/plugins/EventLogPlugin.js +33 -33
  803. package/src/plugins/FindParentsData.js +17 -17
  804. package/src/plugins/HiPrintPlugin.js +164 -164
  805. package/src/router/async/config.async.js +35 -35
  806. package/src/router/async/router.map.js +127 -127
  807. package/src/router/guards.js +262 -262
  808. package/src/router/i18n.js +57 -57
  809. package/src/router/index.js +27 -27
  810. package/src/router.js +17 -17
  811. package/src/services/DataModel.js +30 -30
  812. package/src/services/LodopFuncs.js +137 -137
  813. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  814. package/src/services/api/LogDetailsViewApi.js +10 -10
  815. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  816. package/src/services/api/TicketDetailsViewApi.js +46 -46
  817. package/src/services/api/cas.js +79 -79
  818. package/src/services/api/common.js +346 -346
  819. package/src/services/api/entity.js +18 -18
  820. package/src/services/api/index.js +17 -17
  821. package/src/services/api/logininfor/index.js +6 -6
  822. package/src/services/api/manage.js +8 -8
  823. package/src/services/api/restTools.js +215 -215
  824. package/src/services/api/workFlow.js +57 -57
  825. package/src/services/apiService.js +16 -16
  826. package/src/services/dataSource.js +12 -12
  827. package/src/services/index.js +7 -7
  828. package/src/services/user.js +92 -92
  829. package/src/services/v3Api.js +116 -116
  830. package/src/store/index.js +5 -5
  831. package/src/store/modules/account.js +115 -115
  832. package/src/store/modules/index.js +5 -5
  833. package/src/store/modules/lowCode.js +33 -33
  834. package/src/store/modules/setting.js +119 -119
  835. package/src/store/mutation-types.js +4 -4
  836. package/src/theme/antd/ant-menu.less +2 -2
  837. package/src/theme/antd/ant-message.less +3 -3
  838. package/src/theme/antd/ant-table.less +22 -22
  839. package/src/theme/antd/ant-time-picker.less +3 -3
  840. package/src/theme/antd/index.less +3 -3
  841. package/src/theme/default/color.less +43 -43
  842. package/src/theme/default/index.less +3 -3
  843. package/src/theme/default/nprogress.less +76 -76
  844. package/src/theme/default/style.less +58 -58
  845. package/src/theme/global.less +279 -279
  846. package/src/theme/index.less +5 -5
  847. package/src/theme/reportTable.less +58 -58
  848. package/src/theme/theme.less +1 -1
  849. package/src/utils/EncryptUtil.js +162 -162
  850. package/src/utils/Objects.js +25 -25
  851. package/src/utils/authority-utils.js +85 -85
  852. package/src/utils/axios-interceptors.js +100 -100
  853. package/src/utils/colors.js +107 -107
  854. package/src/utils/common.js +10 -10
  855. package/src/utils/errorCode.js +6 -6
  856. package/src/utils/excel/Blob.js +180 -180
  857. package/src/utils/excel/Export2Excel.js +184 -184
  858. package/src/utils/filter.js +21 -21
  859. package/src/utils/formatter.js +74 -74
  860. package/src/utils/htmlToPDF.js +108 -108
  861. package/src/utils/htmlToPDFApi.js +5 -5
  862. package/src/utils/i18n.js +80 -80
  863. package/src/utils/indexedDB.js +549 -549
  864. package/src/utils/login.js +188 -188
  865. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  866. package/src/utils/lowcode/lowcodeLog.js +29 -29
  867. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  868. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  869. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  870. package/src/utils/map-utils.js +47 -47
  871. package/src/utils/microAppUtils.js +49 -49
  872. package/src/utils/reg.js +95 -95
  873. package/src/utils/request.js +395 -395
  874. package/src/utils/routerUtil.js +574 -567
  875. package/src/utils/runEvalFunction.js +14 -14
  876. package/src/utils/theme-color-replacer-extend.js +92 -92
  877. package/src/utils/themeUtil.js +100 -100
  878. package/src/utils/util.js +329 -329
  879. package/src/utils/waterMark.js +31 -31
  880. package/test/Tree.spec.js +168 -168
  881. package/test/myDialog.spec.js +47 -47
  882. package/test/request.test.js +17 -17
  883. package/test/util.test.js +53 -53
  884. package/test/v3Api.test.js +1984 -1984
  885. package/tests/unit/ReportTable.spec.js +16 -16
  886. package/vue.config.js +222 -222
  887. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  888. package/.claude/settings.local.json +0 -12
@@ -1,724 +1,724 @@
1
- <template>
2
- <a-row id="has_row" type="flex" :gutter="gutter" :style="isWidget ? {margin: '0px'} : {'margin-bottom': '.5rem'}">
3
- <template v-for="(cell, cellIndex) in columns">
4
- <a-col
5
- name="trGroup"
6
- v-if="Array.isArray(cell) || !cell.dontShowRow"
7
- :key="cellIndex"
8
- :ref="`trGroup_${ cell.slotRef || cellIndex}`"
9
- @hook:mounted="(h)=>applyAllStyles(cell,cellIndex)"
10
- :span="calculateColSpan(cell)">
11
- <div id="report_widget" v-if="isWidget">
12
- <!-- 插槽渲染 -->
13
- <template v-if="Array.isArray(cell)">
14
- <!-- 处理 cell 是数组的情况 -->
15
- <div v-for="(item, index) in cell" :key="index">
16
- <x-report-tr-group
17
- :env="env"
18
- :key="index"
19
- :columns="recalculateItem(item)"
20
- :config-data="configData"
21
- :config="config"
22
- :display="true">
23
- </x-report-tr-group>
24
- </div>
25
- </template>
26
- <template v-else-if="cell.type === 'slot'">
27
- <template
28
- v-if="['x-form-table','x-add-native-form','x-tree-pro', 'x-his-editor', 'x-tab', 'x-form-group', 'x-report', 'x-buttons', 'x-label-select', 'x-conversation', 'x-check-list', 'x-cardSet', 'x-collapse','x-h-descriptions', 'x-sidebar', 'x-list','x-input','x-time-line', 'x-radio','x-calendar', 'x-time-select' ,'x-checkbox', 'x-title', 'x-select', 'x-tree-rows', 'x-three-test-orders', 'x-shift-schedule','x-charge','x-questionnaire','x-import-excel-button'].includes(cell.slotType)">
29
- <component
30
- :is="getComponentName(cell.slotConfig, cell.serviceName, cell.slotType)"
31
- :key="cellIndex"
32
- :ref="`dynamicComponent_${ cell.slotRef || cellIndex}`"
33
- :serviceName="cell.serviceName"
34
- :serverName="cell.serviceName"
35
- v-on="getEventHandlers(cell)"
36
- @hook:mounted="(h)=>onComponentMounted(h,cell,cellIndex)"
37
- @beforeDataChange="beforeDataChange"
38
- @rowClick="handleRowClick"
39
- @onExpand="onExpand"
40
- :queryParamsName="cell.slotConfig"
41
- :configName="cell.slotConfig"
42
- :countVisible="false"
43
- :env="env"
44
- />
45
- </template>
46
- </template>
47
- </div>
48
- <a-card v-else class="flexItem" :bordered="false">
49
- <!-- 插槽渲染 -->
50
- <template v-if="Array.isArray(cell)">
51
- <!-- 处理 cell 是数组的情况 -->
52
- <div v-for="(item, index) in cell" :key="index">
53
- <x-report-tr-group
54
- :server-name="serverName"
55
- :env="env"
56
- :key="index"
57
- :columns="recalculateItem(item)"
58
- :config-data="configData"
59
- :config="config"
60
- :display="true">
61
- </x-report-tr-group>
62
- </div>
63
- </template>
64
- <template v-else-if="cell.type === 'slot'">
65
- <template
66
- v-if="['x-form-table','x-add-native-form','x-tree-pro', 'x-his-editor', 'x-tab', 'x-form-group', 'x-report', 'x-buttons', 'x-label-select', 'x-conversation', 'x-check-list', 'x-cardSet', 'x-collapse', 'x-h-descriptions', 'x-sidebar', 'x-list','x-input','x-time-line', 'x-radio','x-calendar', 'x-time-select','x-checkbox', 'x-title', 'x-select', 'x-tree-rows', 'x-three-test-orders', 'x-shift-schedule','x-charge','x-questionnaire','x-import-excel-button'].includes(cell.slotType)">
67
- <component
68
- :is="getComponentName(cell.slotConfig, cell.serviceName, cell.slotType)"
69
- :key="cellIndex"
70
- :ref="`dynamicComponent_${ cell.slotRef || cellIndex}`"
71
- :serviceName="cell.serviceName"
72
- :serverName="cell.serviceName"
73
- v-on="getEventHandlers(cell)"
74
- @hook:mounted="(h)=>onComponentMounted(h,cell,cellIndex)"
75
- @beforeDataChange="beforeDataChange"
76
- @rowClick="handleRowClick"
77
- @onExpand="onExpand"
78
- :queryParamsName="cell.slotConfig"
79
- :configName="cell.slotConfig"
80
- :countVisible="false"
81
- :env="env"
82
- />
83
- </template>
84
- </template>
85
- </a-card>
86
- </a-col>
87
- </template>
88
- </a-row>
89
- </template>
90
-
91
- <script>
92
- import Upload from '@vue2-client/base-client/components/common/Upload'
93
- import { getRealKeyData } from '@vue2-client/utils/util'
94
- import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
95
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
96
- import { getMicroData, getWindow, isMicroAppEnv, microDispatch } from '@vue2-client/utils/microAppUtils'
97
-
98
- export default {
99
- name: 'XReportTrGroup',
100
- components: {
101
- Upload,
102
- XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'),
103
- XAddNativeForm: () => import('@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'),
104
- XFormGroup: () => import('@vue2-client/base-client/components/common/XFormGroup/XFormGroup.vue'),
105
- XTreePro: () => import('@vue2-client/base-client/components/common/XTree/XTreePro.vue'),
106
- XHisEditor: () => import('@vue2-client/base-client/components/his/XHisEditor/XHisEditor.vue'),
107
- XTab: () => import('@vue2-client/base-client/components/common/XTab/XTab.vue'),
108
- XReport: () => import('@vue2-client/base-client/components/common/XReport/XReport.vue'),
109
- XButtons: () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
110
- XLabelSelect: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelect.vue'),
111
- XConversation: () => import('@vue2-client/base-client/components/common/XConversation/XConversation.vue'),
112
- XCheckList: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
113
- XCardSet: () => import('@vue2-client/base-client/components/common/XCardSet/XCardSet.vue'),
114
- XCollapse: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
115
- XHDescriptions: () => import('@vue2-client/base-client/components/his/XHDescriptions/XHDescriptions.vue'),
116
- XSidebar: () => import('@vue2-client/base-client/components/his/XSidebar/XSidebar.vue'),
117
- XList: () => import('@vue2-client/base-client/components/his/XList/XList.vue'),
118
- XInput: () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
119
- XTimeLine: () => import('@vue2-client/base-client/components/common/XTimeline/XTimeline.vue'),
120
- XRadio: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue'),
121
- XCalendar: () => import('@vue2-client/base-client/components/common/XCalendar/XCalendar.vue'),
122
- XTimeSelect: () => import('@vue2-client/base-client/components/his/XTimeSelect/XTimeSelect.vue'),
123
- XCheckbox: () => import('@vue2-client/base-client/components/his/XCheckbox/XCheckbox.vue'),
124
- XTitle: () => import('@vue2-client/base-client/components/his/XTitle/XTitle.vue'),
125
- XSelect: () => import('@vue2-client/base-client/components/his/XSelect/XSelect.vue'),
126
- XTreeRows: () => import('@vue2-client/base-client/components/his/XTreeRows/XTreeRows.vue'),
127
- XThreeTestOrders: () => import('@vue2-client/base-client/components/his/threeTestOrders/threeTestOrders.vue'),
128
- XShiftSchedule: () => import('@vue2-client/base-client/components/his/XShiftSchedule/XShiftSchedule.vue'),
129
- XCharge: () => import('@vue2-client/base-client/components/his/XCharge/XCharge.vue'),
130
- XQuestionnaire: () => import('@vue2-client/base-client/components/his/XQuestionnaire/XQuestionnaire.vue'),
131
- XImportExcelButton: () => import('@vue2-client/base-client/components/his/XImportExcelButton/XImportExcelButton.vue')
132
- },
133
- props: {
134
- // 每一行的配置
135
- columns: {
136
- type: Array,
137
- required: true
138
- },
139
- showImgInCell: {
140
- type: Boolean,
141
- default: false
142
- },
143
- config: {
144
- type: Object,
145
- default: function () {
146
- return {}
147
- }
148
- },
149
- // 命名空间
150
- serverName: {
151
- type: String,
152
- default: 'af-system'
153
- },
154
- // 环境
155
- env: {
156
- type: String,
157
- default: 'prod'
158
- },
159
- // 原始配置
160
- configData: {
161
- type: Object,
162
- required: true
163
- },
164
- // 是否为展示行
165
- display: {
166
- type: Boolean,
167
- default: false
168
- },
169
- },
170
- computed: {
171
- allSlotSum () {
172
- // 计算总共有多少个Slot
173
- let sum = 0
174
- this.columns.forEach((item) => {
175
- console.log('item', item)
176
- if (Array.isArray(item)) {
177
- item.forEach((cell) => {
178
- if (cell.type === 'slot') {
179
- sum++
180
- }
181
- })
182
- } else if (item.type && item.type === 'slot') {
183
- sum++
184
- }
185
- })
186
- console.log(`=总共有 ${sum} 个插槽栅格`)
187
- return sum
188
- }
189
- },
190
- data () {
191
- return {
192
- gutter: [8, { xs: 8, sm: 16, md: 24, lg: 32 }], // 设置水槽大小
193
- maxColSpan: 12,
194
- uploadParams: {
195
- type: 'image',
196
- accept: ['*'],
197
- resUploadStock: 1,
198
- pathKey: 'cs'
199
- },
200
- mixinData: {},
201
- flexItemBodyState: {},
202
- // 已经渲染得插槽得数量
203
- slotRendered: 0,
204
- // tableConfig: {}
205
- }
206
- },
207
- watch: {
208
- columns: {
209
- deep: true,
210
- immediate: true,
211
- handler (newVal) {
212
- console.log('columns变化:', JSON.parse(JSON.stringify(newVal)))
213
- // 使用nextTick确保DOM更新
214
- this.$nextTick(() => {
215
- this.$forceUpdate()
216
- })
217
- }
218
- }
219
- },
220
- inject: ['openDialog', 'emitEvent', 'registerComponent', 'setColSpanByName', 'setGlobalData', 'getGlobalData', 'getComponentByName', 'runLogic', 'getMixinData', 'getSelectedId', 'isInAModal', 'getConfigByName', 'getSelectedData', 'getOutEnv', 'currUser', 'isWidget', 'findComponentByName', 'closeAddReport'],
221
- methods: {
222
- getWindow,
223
- isMicroAppEnv,
224
- microDispatch,
225
- getMicroData,
226
- getRealKeyData,
227
- handleRowClick (record) {
228
- this.$emit('rowClick', record)
229
- },
230
- beforeDataChange (record) {
231
- this.$emit('beforeDataChange', record)
232
- },
233
- onExpand (expanded, record) {
234
- this.$emit('expand', expanded, record)
235
- },
236
- listClick (data) {
237
- this.$emit('listClick', data)
238
- },
239
- calculateColSpan (cell) {
240
- return Array.isArray(cell)
241
- ? cell[0][0]?.colSpan * 2
242
- : (cell?.colSpan ?? cell?.def?.colSpan ?? 1) * 2
243
- },
244
- applyAllStyles (cell, cellIndex) {
245
- // 应用组件样式
246
- const component = this.$refs[`trGroup_${ cell.slotRef || cellIndex}`][0]
247
- // 确保组件已经完全挂载
248
- this.$nextTick(() => {
249
- this.applyComponentStyles(component, cell, cellIndex)
250
- })
251
- },
252
- onComponentMounted (h, cell, cellIndex) {
253
- this.slotRendered += 1
254
- if (this.slotRendered >= this.allSlotSum) {
255
- this.$emit('slotRendered')
256
- }
257
- if (this.getMixinData && this.getMixinData()) {
258
- this.mixinData = this.getMixinData()
259
- }
260
- if (cell.slotRef) {
261
- this.registerComponent(cell.slotRef, this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0])
262
- }
263
- // 传递给祖先组件
264
- console.log(`插槽组件已经初始化 slotType ${cell.slotType},ref= dynamicComponent_${cell.slotRef || cellIndex} , serviceName = ${cell.serviceName}`)
265
- const shouldInit = cell.shouldInit == null ? true : cell.shouldInit
266
- if (shouldInit) {
267
- if (cell.slotType === 'x-add-native-form') {
268
- // 简易表单需要主动调用初始化方法
269
- getConfigByName(cell.slotConfig, cell.serviceName, async (res) => {
270
- // 如果配置了 表单初始化logic
271
- // 调用 logic 获取参数
272
- let param = { ...this.mixinData }
273
- let selectedId
274
- if (res.paramLogicName) {
275
- if (!!this.getSelectedId) {
276
- selectedId = this.getSelectedId()
277
- if (typeof selectedId !== 'object') {
278
- selectedId = { selectedId: selectedId }
279
- }
280
- }
281
- param = Object.assign(param, await runLogic(res.paramLogicName, selectedId, cell.serviceName))
282
- }
283
- console.info('给表单赋值', res)
284
- this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
285
- serviceName: cell.serviceName,
286
- configName: cell.slotConfig,
287
- formItems: res.formJson,
288
- showSubmitBtn: !this.isInAModal,
289
- businessType: param.businessType || '新增',
290
- layout: res.xAddFormLayout,
291
- primaryKey: res.primaryKey,
292
- ...res,
293
- fixedAddForm: param,
294
- modifyModelData: {
295
- files: param.files,
296
- images: param.images
297
- }
298
- })
299
- }, this.env === 'dev')
300
- } else if (cell.slotType === 'x-form-group') {
301
- // 简易表单需要主动调用初始化方法
302
- getConfigByName(cell.slotConfig, cell.serviceName, (res) => {
303
- // 如果配置了 表单初始化logic
304
- // 调用 logic 获取参数
305
- const param = { ...this.mixinData }
306
- this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
307
- ...res,
308
- serviceName: cell.serviceName,
309
- showSubmitBtn: !this.isInAModal,
310
- businessType: param.businessType || '新增',
311
- modifyModelData: param,
312
- showLeftTab: true,
313
- })
314
- }, this.env === 'dev')
315
- } else if (cell.slotType === 'x-label-select') {
316
- // 按钮组需要主动调用初始化方法
317
- getConfigByName(cell.slotConfig, cell.serviceName, (res) => {
318
- this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
319
- ...res,
320
- serviceName: cell.serviceName,
321
- })
322
- }, this.env === 'dev')
323
- }
324
- }
325
- if (cell.slotType === 'x-report') {
326
- const param = { ...this.mixinData }
327
- this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init(param)
328
- }
329
- if (cell.slotType === 'x-conversation') {
330
- getConfigByName(cell.slotConfig, cell.serviceName, (res) => {
331
- this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
332
- serviceName: cell.serviceName,
333
- ...res,
334
- })
335
- }, this.env === 'dev')
336
- }
337
- if (cell.slotType === 'x-check-list') {
338
- getConfigByName(cell.slotConfig, cell.serviceName, (res) => {
339
- this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
340
- serviceName: cell.serviceName,
341
- ...res,
342
- })
343
- }, this.env === 'dev')
344
- }
345
- },
346
- recalculateItem (item) {
347
- const totalColSpan = item.reduce((sum, cell) => {
348
- // 保留手动设置的colSpan
349
- return sum + (cell._isManualColSpan ? 0 : (cell.colSpan || 1))
350
- }, 0)
351
- return item.map(cell => {
352
- // 跳过已手动设置的单元格
353
- if (cell._isManualColSpan) return cell
354
- const newColSpan = Math.round((cell.colSpan || 1) / totalColSpan * 12)
355
- return {
356
- ...cell,
357
- colSpan: newColSpan,
358
- // 标记自动计算的单元格
359
- _isAutoCalculated: true
360
- }
361
- })
362
- },
363
-
364
- getEventHandlers (cell) {
365
- const handlers = {}
366
- if (!cell?.events || cell?.events?.length === 0) {
367
- return handlers
368
- }
369
- cell.events.forEach(event => {
370
- handlers[event.type] = async (...args) => {
371
- console.info('Event handled:', event.type, args)
372
- let func = event.customFunction
373
- if (func && func.startsWith('function')) {
374
- func = func.replace('function', 'async function')
375
- }
376
- const result = await executeStrFunctionByContext(this, func, args)
377
- if (result instanceof Promise) {
378
- result.then((res) => {
379
- if (!res) return
380
- let messageType = 'success'
381
- // 如果传递了组件名字 自动调用刷新
382
- if (res?.name) {
383
- const waitRefreshRef = this.getComponentByName(res.name)
384
- if (waitRefreshRef) {
385
- waitRefreshRef.refresh()
386
- } else {
387
- console.warn(`未找到组件${res.name}无法刷新`)
388
- }
389
- }
390
- // 如果传递消息类型 自动调用消息
391
- if (res?.messageType) {
392
- messageType = res.messageType
393
- }
394
- // 如果传递了提示信息自动调用提示
395
- if (res?.message) {
396
- this.$message[messageType](res?.message)
397
- }
398
- })
399
- }
400
- }
401
- })
402
- return handlers
403
- },
404
- getComponentName (queryParamsName, serviceName, componentName) {
405
- return componentName
406
- },
407
- // 判断单元格样式
408
- determineCellStyle (cell, color = '#000', borderWidth = '1px') {
409
- // 如果声明了borderColor
410
- if (this.config.style.borderColor) {
411
- color = this.config.style.borderColor
412
- }
413
- let result = {}
414
- // 如果表格也声明了样式,用表格样式将样式覆盖
415
- if (cell.style) {
416
- if (cell.noBorder) {
417
- result = { ...cell.style }
418
- } else {
419
- if (this.noTopBorder) {
420
- result = { ...cell.style }
421
- } else {
422
- result = { ...cell.style }
423
- }
424
- }
425
- return result
426
- }
427
- return result
428
- },
429
- // 把用户定义的组件,传递到整个杉格中,方便调用
430
- passComponentNamesToAncestor (refs) {
431
- console.log('组件的keys', Object.entries(refs), refs)
432
- // 遍历所有 refs
433
- Object.entries(refs).forEach(([refKey, refValue]) => {
434
- // 检查 ref 是否以 dynamicComponent_ 开头
435
- if (refKey.startsWith('dynamicComponent_')) {
436
- console.log('组件名存在')
437
- const componentRef = refValue[0]
438
- if (componentRef) {
439
- // 去掉前缀并获取组件名字
440
- const index = refKey.replace('dynamicComponent_', '') // 去掉前缀
441
- console.log('注册组件', index)
442
- // 传递给祖先组件
443
- this.registerComponent(index, componentRef)
444
- }
445
- }
446
- })
447
- },
448
- // 获取组件样式配置
449
- async getComponentStyleConfig (componentType) {
450
- try {
451
- // 从配置中获取样式定义
452
- const styleConfig = this.$appdata.getStylesByKey(componentType)
453
- return styleConfig || {}
454
- } catch (error) {
455
- console.error('获取组件样式配置失败:', error)
456
- return {}
457
- }
458
- },
459
-
460
- // 解析组件样式配置
461
- async parseComponentStyles (cell) {
462
- if (!cell.class) return { rootStyles: {}, childStyles: {} }
463
-
464
- const styleConfig = await this.getComponentStyleConfig(cell.slotType)
465
- if (!styleConfig) return { rootStyles: {}, childStyles: {} }
466
-
467
- const rootStyles = {}
468
- const childStyles = new Map()
469
-
470
- // 处理每个class配置
471
- cell.class.split(' ').forEach(className => {
472
- const classConfig = styleConfig[className]
473
- if (!classConfig) return
474
-
475
- // 处理根节点样式
476
- Object.entries(classConfig).forEach(([key, value]) => {
477
- if (!key.startsWith('*') && typeof key !== 'object') {
478
- rootStyles[key] = value
479
- }
480
- })
481
-
482
- // 处理子节点样式
483
- this.parseNestedStyles(classConfig, childStyles)
484
- })
485
-
486
- console.warn('样式配置', rootStyles, childStyles)
487
- return {
488
- rootStyles,
489
- childStyles
490
- }
491
- },
492
-
493
- // 递归解析嵌套的样式配置
494
- parseNestedStyles (config, styleMap, parentKey = '') {
495
- Object.entries(config).forEach(([key, value]) => {
496
- if (!key.startsWith('*')) return
497
-
498
- const className = key.replace('*', '.')
499
-
500
- // 如果值是对象,检查是否包含样式和子节点
501
- if (typeof value === 'object') {
502
- const { style = {}, children = {} } = this.separateStyleAndChildren(value)
503
-
504
- // 创建或获取当前节点的样式配置
505
- if (!styleMap.has(className)) {
506
- styleMap.set(className, {
507
- styles: {},
508
- children: new Map()
509
- })
510
- }
511
-
512
- const nodeData = styleMap.get(className)
513
-
514
- // 合并样式
515
- Object.assign(nodeData.styles, style)
516
-
517
- // 递归处理子节点
518
- this.parseNestedStyles(children, nodeData.children, className)
519
- }
520
- })
521
- },
522
-
523
- // 分离样式属性和子节点配置
524
- separateStyleAndChildren (obj) {
525
- const style = {}
526
- const children = {}
527
-
528
- Object.entries(obj).forEach(([key, value]) => {
529
- if (key.startsWith('*')) {
530
- // 子节点配置
531
- children[key] = value
532
- } else {
533
- // 样式属性
534
- style[key] = value
535
- }
536
- })
537
-
538
- return { style, children }
539
- },
540
-
541
- // 应用组件样式
542
- async applyComponentStyles (component, cell, cellIndex) {
543
- if (!component || !component.$el) return
544
-
545
- const { rootStyles, childStyles } = await this.parseComponentStyles(cell)
546
-
547
- // 应用根节点样式
548
- if (Object.keys(rootStyles).length > 0) {
549
- Object.entries(rootStyles).forEach(([property, value]) => {
550
- component.$el.style.setProperty(property, value, 'important')
551
- })
552
- }
553
-
554
- // 如果没有子节点样式,直接返回
555
- if (childStyles.size === 0) return
556
-
557
- let retryCount = 0
558
- const maxRetries = 5
559
- const retryInterval = 100 // 100ms
560
-
561
- const applyStyles = () => {
562
- this.applyChildStylesOptimized(component.$el, childStyles)
563
- }
564
-
565
- // 首次应用样式
566
- applyStyles()
567
-
568
- // 创建重试机制
569
- const retryApplyStyles = () => {
570
- if (retryCount >= maxRetries) return
571
-
572
- setTimeout(() => {
573
- applyStyles()
574
- retryCount++
575
- retryApplyStyles()
576
- }, retryInterval)
577
- }
578
-
579
- // 开始重试
580
- retryApplyStyles()
581
-
582
- // 创建 MutationObserver 用于动态内容
583
- const observer = new MutationObserver((mutations) => {
584
- // 检查是否有新增节点
585
- const hasNewNodes = mutations.some(mutation =>
586
- mutation.type === 'childList' && mutation.addedNodes.length > 0
587
- )
588
-
589
- if (hasNewNodes) {
590
- applyStyles()
591
- }
592
- })
593
-
594
- // 配置 observer
595
- observer.observe(component.$el, {
596
- childList: true,
597
- subtree: true,
598
- attributes: false
599
- })
600
-
601
- // 3秒后停止观察
602
- // setTimeout(() => {
603
- // observer.disconnect()
604
- // }, 3000)
605
-
606
- // 组件销毁时清理
607
- this.$once('hook:beforeDestroy', () => {
608
- observer.disconnect()
609
- })
610
- },
611
-
612
- // 优化后的子节点样式应用方法
613
- applyChildStylesOptimized (rootElement, styleMap, parentSelector = '') {
614
- if (!rootElement) return
615
-
616
- // 处理样式映射
617
- for (const [selector, data] of styleMap.entries()) {
618
- const currentSelector = parentSelector ? `${parentSelector} ${selector}` : selector
619
-
620
- try {
621
- // 查找匹配的元素
622
- const elements = Array.from(rootElement.querySelectorAll(currentSelector))
623
-
624
- if (!elements.length) continue
625
-
626
- // 应用当前层级样式
627
- if (data.styles) {
628
- elements.forEach(element => {
629
- if (!element) return
630
-
631
- // 应用每个样式属性
632
- Object.entries(data.styles).forEach(([property, value]) => {
633
- try {
634
- element.style.setProperty(property, value, 'important')
635
- } catch (err) {
636
- console.warn(`设置样式失败: ${property}=${value}`, err)
637
- }
638
- })
639
- })
640
- }
641
-
642
- // 处理子层级
643
- if (data.children && data.children.size > 0) {
644
- elements.forEach(element => {
645
- if (element) {
646
- this.applyChildStylesOptimized(element, data.children, currentSelector)
647
- }
648
- })
649
- }
650
- } catch (err) {
651
- console.warn(`处理选择器失败: ${currentSelector}`, err)
652
- continue
653
- }
654
- }
655
- }
656
- },
657
- beforeMount () {
658
- if (this.useOssForImg) {
659
- this.uploadParams.resUploadMode = 'oss'
660
- }
661
- },
662
- mounted () {
663
- },
664
- }
665
-
666
- </script>
667
-
668
- <style scoped lang="less">
669
- .inputsDiv {
670
- display: flex;
671
- justify-content: space-between;
672
-
673
- .inputsDivItem {
674
- display: flex;
675
- align-items: center;
676
- padding: 0 4px;
677
- white-space: nowrap;
678
-
679
- .inputsDivItemLabel {
680
- padding: 0 4px;
681
- }
682
- }
683
- }
684
-
685
- .tdNoBorder {
686
- border-left: 1px solid #000;
687
- border-right: 1px solid #000;
688
- padding: 8px;
689
- }
690
-
691
- .tdWithBorder {
692
- border: 1px solid #000;
693
- padding: 8px;
694
- }
695
-
696
- .tdWithNoTopBorder {
697
- border-top-style: none;
698
- border-left: 1px solid #000;
699
- border-right: 1px solid #000;
700
- border-bottom: 1px solid #000;
701
- padding: 8px;
702
- }
703
-
704
- .grid-content {
705
- border-radius: 4px;
706
- min-height: 36px;
707
- text-align: center;
708
- color: #fff;
709
- background-color: #606266;
710
- }
711
-
712
- .bg-purple {
713
- background: #9254de;
714
- }
715
-
716
- .bg-purple-light {
717
- background: #b37feb;
718
- }
719
-
720
- .flexItem {
721
- border-radius: 8px;
722
- height: 100%;
723
- }
724
- </style>
1
+ <template>
2
+ <a-row id="has_row" type="flex" :gutter="gutter" :style="isWidget ? {margin: '0px'} : {'margin-bottom': '.5rem'}">
3
+ <template v-for="(cell, cellIndex) in columns">
4
+ <a-col
5
+ name="trGroup"
6
+ v-if="Array.isArray(cell) || !cell.dontShowRow"
7
+ :key="cellIndex"
8
+ :ref="`trGroup_${ cell.slotRef || cellIndex}`"
9
+ @hook:mounted="(h)=>applyAllStyles(cell,cellIndex)"
10
+ :span="calculateColSpan(cell)">
11
+ <div id="report_widget" v-if="isWidget">
12
+ <!-- 插槽渲染 -->
13
+ <template v-if="Array.isArray(cell)">
14
+ <!-- 处理 cell 是数组的情况 -->
15
+ <div v-for="(item, index) in cell" :key="index">
16
+ <x-report-tr-group
17
+ :env="env"
18
+ :key="index"
19
+ :columns="recalculateItem(item)"
20
+ :config-data="configData"
21
+ :config="config"
22
+ :display="true">
23
+ </x-report-tr-group>
24
+ </div>
25
+ </template>
26
+ <template v-else-if="cell.type === 'slot'">
27
+ <template
28
+ v-if="['x-form-table','x-add-native-form','x-tree-pro', 'x-his-editor', 'x-tab', 'x-form-group', 'x-report', 'x-buttons', 'x-label-select', 'x-conversation', 'x-check-list', 'x-cardSet', 'x-collapse','x-h-descriptions', 'x-sidebar', 'x-list','x-input','x-time-line', 'x-radio','x-calendar', 'x-time-select' ,'x-checkbox', 'x-title', 'x-select', 'x-tree-rows', 'x-three-test-orders', 'x-shift-schedule','x-charge','x-questionnaire','x-import-excel-button'].includes(cell.slotType)">
29
+ <component
30
+ :is="getComponentName(cell.slotConfig, cell.serviceName, cell.slotType)"
31
+ :key="cellIndex"
32
+ :ref="`dynamicComponent_${ cell.slotRef || cellIndex}`"
33
+ :serviceName="cell.serviceName"
34
+ :serverName="cell.serviceName"
35
+ v-on="getEventHandlers(cell)"
36
+ @hook:mounted="(h)=>onComponentMounted(h,cell,cellIndex)"
37
+ @beforeDataChange="beforeDataChange"
38
+ @rowClick="handleRowClick"
39
+ @onExpand="onExpand"
40
+ :queryParamsName="cell.slotConfig"
41
+ :configName="cell.slotConfig"
42
+ :countVisible="false"
43
+ :env="env"
44
+ />
45
+ </template>
46
+ </template>
47
+ </div>
48
+ <a-card v-else class="flexItem" :bordered="false">
49
+ <!-- 插槽渲染 -->
50
+ <template v-if="Array.isArray(cell)">
51
+ <!-- 处理 cell 是数组的情况 -->
52
+ <div v-for="(item, index) in cell" :key="index">
53
+ <x-report-tr-group
54
+ :server-name="serverName"
55
+ :env="env"
56
+ :key="index"
57
+ :columns="recalculateItem(item)"
58
+ :config-data="configData"
59
+ :config="config"
60
+ :display="true">
61
+ </x-report-tr-group>
62
+ </div>
63
+ </template>
64
+ <template v-else-if="cell.type === 'slot'">
65
+ <template
66
+ v-if="['x-form-table','x-add-native-form','x-tree-pro', 'x-his-editor', 'x-tab', 'x-form-group', 'x-report', 'x-buttons', 'x-label-select', 'x-conversation', 'x-check-list', 'x-cardSet', 'x-collapse', 'x-h-descriptions', 'x-sidebar', 'x-list','x-input','x-time-line', 'x-radio','x-calendar', 'x-time-select','x-checkbox', 'x-title', 'x-select', 'x-tree-rows', 'x-three-test-orders', 'x-shift-schedule','x-charge','x-questionnaire','x-import-excel-button'].includes(cell.slotType)">
67
+ <component
68
+ :is="getComponentName(cell.slotConfig, cell.serviceName, cell.slotType)"
69
+ :key="cellIndex"
70
+ :ref="`dynamicComponent_${ cell.slotRef || cellIndex}`"
71
+ :serviceName="cell.serviceName"
72
+ :serverName="cell.serviceName"
73
+ v-on="getEventHandlers(cell)"
74
+ @hook:mounted="(h)=>onComponentMounted(h,cell,cellIndex)"
75
+ @beforeDataChange="beforeDataChange"
76
+ @rowClick="handleRowClick"
77
+ @onExpand="onExpand"
78
+ :queryParamsName="cell.slotConfig"
79
+ :configName="cell.slotConfig"
80
+ :countVisible="false"
81
+ :env="env"
82
+ />
83
+ </template>
84
+ </template>
85
+ </a-card>
86
+ </a-col>
87
+ </template>
88
+ </a-row>
89
+ </template>
90
+
91
+ <script>
92
+ import Upload from '@vue2-client/base-client/components/common/Upload'
93
+ import { getRealKeyData } from '@vue2-client/utils/util'
94
+ import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
95
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
96
+ import { getMicroData, getWindow, isMicroAppEnv, microDispatch } from '@vue2-client/utils/microAppUtils'
97
+
98
+ export default {
99
+ name: 'XReportTrGroup',
100
+ components: {
101
+ Upload,
102
+ XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'),
103
+ XAddNativeForm: () => import('@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'),
104
+ XFormGroup: () => import('@vue2-client/base-client/components/common/XFormGroup/XFormGroup.vue'),
105
+ XTreePro: () => import('@vue2-client/base-client/components/common/XTree/XTreePro.vue'),
106
+ XHisEditor: () => import('@vue2-client/base-client/components/his/XHisEditor/XHisEditor.vue'),
107
+ XTab: () => import('@vue2-client/base-client/components/common/XTab/XTab.vue'),
108
+ XReport: () => import('@vue2-client/base-client/components/common/XReport/XReport.vue'),
109
+ XButtons: () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
110
+ XLabelSelect: () => import('@vue2-client/base-client/components/common/XLabelSelect/XLabelSelect.vue'),
111
+ XConversation: () => import('@vue2-client/base-client/components/common/XConversation/XConversation.vue'),
112
+ XCheckList: () => import('@vue2-client/base-client/components/common/XCheckList/XCheckList.vue'),
113
+ XCardSet: () => import('@vue2-client/base-client/components/common/XCardSet/XCardSet.vue'),
114
+ XCollapse: () => import('@vue2-client/base-client/components/common/XCollapse/XCollapse.vue'),
115
+ XHDescriptions: () => import('@vue2-client/base-client/components/his/XHDescriptions/XHDescriptions.vue'),
116
+ XSidebar: () => import('@vue2-client/base-client/components/his/XSidebar/XSidebar.vue'),
117
+ XList: () => import('@vue2-client/base-client/components/his/XList/XList.vue'),
118
+ XInput: () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
119
+ XTimeLine: () => import('@vue2-client/base-client/components/common/XTimeline/XTimeline.vue'),
120
+ XRadio: () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue'),
121
+ XCalendar: () => import('@vue2-client/base-client/components/common/XCalendar/XCalendar.vue'),
122
+ XTimeSelect: () => import('@vue2-client/base-client/components/his/XTimeSelect/XTimeSelect.vue'),
123
+ XCheckbox: () => import('@vue2-client/base-client/components/his/XCheckbox/XCheckbox.vue'),
124
+ XTitle: () => import('@vue2-client/base-client/components/his/XTitle/XTitle.vue'),
125
+ XSelect: () => import('@vue2-client/base-client/components/his/XSelect/XSelect.vue'),
126
+ XTreeRows: () => import('@vue2-client/base-client/components/his/XTreeRows/XTreeRows.vue'),
127
+ XThreeTestOrders: () => import('@vue2-client/base-client/components/his/threeTestOrders/threeTestOrders.vue'),
128
+ XShiftSchedule: () => import('@vue2-client/base-client/components/his/XShiftSchedule/XShiftSchedule.vue'),
129
+ XCharge: () => import('@vue2-client/base-client/components/his/XCharge/XCharge.vue'),
130
+ XQuestionnaire: () => import('@vue2-client/base-client/components/his/XQuestionnaire/XQuestionnaire.vue'),
131
+ XImportExcelButton: () => import('@vue2-client/base-client/components/his/XImportExcelButton/XImportExcelButton.vue')
132
+ },
133
+ props: {
134
+ // 每一行的配置
135
+ columns: {
136
+ type: Array,
137
+ required: true
138
+ },
139
+ showImgInCell: {
140
+ type: Boolean,
141
+ default: false
142
+ },
143
+ config: {
144
+ type: Object,
145
+ default: function () {
146
+ return {}
147
+ }
148
+ },
149
+ // 命名空间
150
+ serverName: {
151
+ type: String,
152
+ default: 'af-system'
153
+ },
154
+ // 环境
155
+ env: {
156
+ type: String,
157
+ default: 'prod'
158
+ },
159
+ // 原始配置
160
+ configData: {
161
+ type: Object,
162
+ required: true
163
+ },
164
+ // 是否为展示行
165
+ display: {
166
+ type: Boolean,
167
+ default: false
168
+ },
169
+ },
170
+ computed: {
171
+ allSlotSum () {
172
+ // 计算总共有多少个Slot
173
+ let sum = 0
174
+ this.columns.forEach((item) => {
175
+ console.log('item', item)
176
+ if (Array.isArray(item)) {
177
+ item.forEach((cell) => {
178
+ if (cell.type === 'slot') {
179
+ sum++
180
+ }
181
+ })
182
+ } else if (item.type && item.type === 'slot') {
183
+ sum++
184
+ }
185
+ })
186
+ console.log(`=总共有 ${sum} 个插槽栅格`)
187
+ return sum
188
+ }
189
+ },
190
+ data () {
191
+ return {
192
+ gutter: [8, { xs: 8, sm: 16, md: 24, lg: 32 }], // 设置水槽大小
193
+ maxColSpan: 12,
194
+ uploadParams: {
195
+ type: 'image',
196
+ accept: ['*'],
197
+ resUploadStock: 1,
198
+ pathKey: 'cs'
199
+ },
200
+ mixinData: {},
201
+ flexItemBodyState: {},
202
+ // 已经渲染得插槽得数量
203
+ slotRendered: 0,
204
+ // tableConfig: {}
205
+ }
206
+ },
207
+ watch: {
208
+ columns: {
209
+ deep: true,
210
+ immediate: true,
211
+ handler (newVal) {
212
+ console.log('columns变化:', JSON.parse(JSON.stringify(newVal)))
213
+ // 使用nextTick确保DOM更新
214
+ this.$nextTick(() => {
215
+ this.$forceUpdate()
216
+ })
217
+ }
218
+ }
219
+ },
220
+ inject: ['openDialog', 'emitEvent', 'registerComponent', 'setColSpanByName', 'setGlobalData', 'getGlobalData', 'getComponentByName', 'runLogic', 'getMixinData', 'getSelectedId', 'isInAModal', 'getConfigByName', 'getSelectedData', 'getOutEnv', 'currUser', 'isWidget', 'findComponentByName', 'closeAddReport'],
221
+ methods: {
222
+ getWindow,
223
+ isMicroAppEnv,
224
+ microDispatch,
225
+ getMicroData,
226
+ getRealKeyData,
227
+ handleRowClick (record) {
228
+ this.$emit('rowClick', record)
229
+ },
230
+ beforeDataChange (record) {
231
+ this.$emit('beforeDataChange', record)
232
+ },
233
+ onExpand (expanded, record) {
234
+ this.$emit('expand', expanded, record)
235
+ },
236
+ listClick (data) {
237
+ this.$emit('listClick', data)
238
+ },
239
+ calculateColSpan (cell) {
240
+ return Array.isArray(cell)
241
+ ? cell[0][0]?.colSpan * 2
242
+ : (cell?.colSpan ?? cell?.def?.colSpan ?? 1) * 2
243
+ },
244
+ applyAllStyles (cell, cellIndex) {
245
+ // 应用组件样式
246
+ const component = this.$refs[`trGroup_${ cell.slotRef || cellIndex}`][0]
247
+ // 确保组件已经完全挂载
248
+ this.$nextTick(() => {
249
+ this.applyComponentStyles(component, cell, cellIndex)
250
+ })
251
+ },
252
+ onComponentMounted (h, cell, cellIndex) {
253
+ this.slotRendered += 1
254
+ if (this.slotRendered >= this.allSlotSum) {
255
+ this.$emit('slotRendered')
256
+ }
257
+ if (this.getMixinData && this.getMixinData()) {
258
+ this.mixinData = this.getMixinData()
259
+ }
260
+ if (cell.slotRef) {
261
+ this.registerComponent(cell.slotRef, this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0])
262
+ }
263
+ // 传递给祖先组件
264
+ console.log(`插槽组件已经初始化 slotType ${cell.slotType},ref= dynamicComponent_${cell.slotRef || cellIndex} , serviceName = ${cell.serviceName}`)
265
+ const shouldInit = cell.shouldInit == null ? true : cell.shouldInit
266
+ if (shouldInit) {
267
+ if (cell.slotType === 'x-add-native-form') {
268
+ // 简易表单需要主动调用初始化方法
269
+ getConfigByName(cell.slotConfig, cell.serviceName, async (res) => {
270
+ // 如果配置了 表单初始化logic
271
+ // 调用 logic 获取参数
272
+ let param = { ...this.mixinData }
273
+ let selectedId
274
+ if (res.paramLogicName) {
275
+ if (!!this.getSelectedId) {
276
+ selectedId = this.getSelectedId()
277
+ if (typeof selectedId !== 'object') {
278
+ selectedId = { selectedId: selectedId }
279
+ }
280
+ }
281
+ param = Object.assign(param, await runLogic(res.paramLogicName, selectedId, cell.serviceName))
282
+ }
283
+ console.info('给表单赋值', res)
284
+ this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
285
+ serviceName: cell.serviceName,
286
+ configName: cell.slotConfig,
287
+ formItems: res.formJson,
288
+ showSubmitBtn: !this.isInAModal,
289
+ businessType: param.businessType || '新增',
290
+ layout: res.xAddFormLayout,
291
+ primaryKey: res.primaryKey,
292
+ ...res,
293
+ fixedAddForm: param,
294
+ modifyModelData: {
295
+ files: param.files,
296
+ images: param.images
297
+ }
298
+ })
299
+ }, this.env === 'dev')
300
+ } else if (cell.slotType === 'x-form-group') {
301
+ // 简易表单需要主动调用初始化方法
302
+ getConfigByName(cell.slotConfig, cell.serviceName, (res) => {
303
+ // 如果配置了 表单初始化logic
304
+ // 调用 logic 获取参数
305
+ const param = { ...this.mixinData }
306
+ this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
307
+ ...res,
308
+ serviceName: cell.serviceName,
309
+ showSubmitBtn: !this.isInAModal,
310
+ businessType: param.businessType || '新增',
311
+ modifyModelData: param,
312
+ showLeftTab: true,
313
+ })
314
+ }, this.env === 'dev')
315
+ } else if (cell.slotType === 'x-label-select') {
316
+ // 按钮组需要主动调用初始化方法
317
+ getConfigByName(cell.slotConfig, cell.serviceName, (res) => {
318
+ this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
319
+ ...res,
320
+ serviceName: cell.serviceName,
321
+ })
322
+ }, this.env === 'dev')
323
+ }
324
+ }
325
+ if (cell.slotType === 'x-report') {
326
+ const param = { ...this.mixinData }
327
+ this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init(param)
328
+ }
329
+ if (cell.slotType === 'x-conversation') {
330
+ getConfigByName(cell.slotConfig, cell.serviceName, (res) => {
331
+ this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
332
+ serviceName: cell.serviceName,
333
+ ...res,
334
+ })
335
+ }, this.env === 'dev')
336
+ }
337
+ if (cell.slotType === 'x-check-list') {
338
+ getConfigByName(cell.slotConfig, cell.serviceName, (res) => {
339
+ this.$refs[`dynamicComponent_${cell.slotRef || cellIndex}`][0].init({
340
+ serviceName: cell.serviceName,
341
+ ...res,
342
+ })
343
+ }, this.env === 'dev')
344
+ }
345
+ },
346
+ recalculateItem (item) {
347
+ const totalColSpan = item.reduce((sum, cell) => {
348
+ // 保留手动设置的colSpan
349
+ return sum + (cell._isManualColSpan ? 0 : (cell.colSpan || 1))
350
+ }, 0)
351
+ return item.map(cell => {
352
+ // 跳过已手动设置的单元格
353
+ if (cell._isManualColSpan) return cell
354
+ const newColSpan = Math.round((cell.colSpan || 1) / totalColSpan * 12)
355
+ return {
356
+ ...cell,
357
+ colSpan: newColSpan,
358
+ // 标记自动计算的单元格
359
+ _isAutoCalculated: true
360
+ }
361
+ })
362
+ },
363
+
364
+ getEventHandlers (cell) {
365
+ const handlers = {}
366
+ if (!cell?.events || cell?.events?.length === 0) {
367
+ return handlers
368
+ }
369
+ cell.events.forEach(event => {
370
+ handlers[event.type] = async (...args) => {
371
+ console.info('Event handled:', event.type, args)
372
+ let func = event.customFunction
373
+ if (func && func.startsWith('function')) {
374
+ func = func.replace('function', 'async function')
375
+ }
376
+ const result = await executeStrFunctionByContext(this, func, args)
377
+ if (result instanceof Promise) {
378
+ result.then((res) => {
379
+ if (!res) return
380
+ let messageType = 'success'
381
+ // 如果传递了组件名字 自动调用刷新
382
+ if (res?.name) {
383
+ const waitRefreshRef = this.getComponentByName(res.name)
384
+ if (waitRefreshRef) {
385
+ waitRefreshRef.refresh()
386
+ } else {
387
+ console.warn(`未找到组件${res.name}无法刷新`)
388
+ }
389
+ }
390
+ // 如果传递消息类型 自动调用消息
391
+ if (res?.messageType) {
392
+ messageType = res.messageType
393
+ }
394
+ // 如果传递了提示信息自动调用提示
395
+ if (res?.message) {
396
+ this.$message[messageType](res?.message)
397
+ }
398
+ })
399
+ }
400
+ }
401
+ })
402
+ return handlers
403
+ },
404
+ getComponentName (queryParamsName, serviceName, componentName) {
405
+ return componentName
406
+ },
407
+ // 判断单元格样式
408
+ determineCellStyle (cell, color = '#000', borderWidth = '1px') {
409
+ // 如果声明了borderColor
410
+ if (this.config.style.borderColor) {
411
+ color = this.config.style.borderColor
412
+ }
413
+ let result = {}
414
+ // 如果表格也声明了样式,用表格样式将样式覆盖
415
+ if (cell.style) {
416
+ if (cell.noBorder) {
417
+ result = { ...cell.style }
418
+ } else {
419
+ if (this.noTopBorder) {
420
+ result = { ...cell.style }
421
+ } else {
422
+ result = { ...cell.style }
423
+ }
424
+ }
425
+ return result
426
+ }
427
+ return result
428
+ },
429
+ // 把用户定义的组件,传递到整个杉格中,方便调用
430
+ passComponentNamesToAncestor (refs) {
431
+ console.log('组件的keys', Object.entries(refs), refs)
432
+ // 遍历所有 refs
433
+ Object.entries(refs).forEach(([refKey, refValue]) => {
434
+ // 检查 ref 是否以 dynamicComponent_ 开头
435
+ if (refKey.startsWith('dynamicComponent_')) {
436
+ console.log('组件名存在')
437
+ const componentRef = refValue[0]
438
+ if (componentRef) {
439
+ // 去掉前缀并获取组件名字
440
+ const index = refKey.replace('dynamicComponent_', '') // 去掉前缀
441
+ console.log('注册组件', index)
442
+ // 传递给祖先组件
443
+ this.registerComponent(index, componentRef)
444
+ }
445
+ }
446
+ })
447
+ },
448
+ // 获取组件样式配置
449
+ async getComponentStyleConfig (componentType) {
450
+ try {
451
+ // 从配置中获取样式定义
452
+ const styleConfig = this.$appdata.getStylesByKey(componentType)
453
+ return styleConfig || {}
454
+ } catch (error) {
455
+ console.error('获取组件样式配置失败:', error)
456
+ return {}
457
+ }
458
+ },
459
+
460
+ // 解析组件样式配置
461
+ async parseComponentStyles (cell) {
462
+ if (!cell.class) return { rootStyles: {}, childStyles: {} }
463
+
464
+ const styleConfig = await this.getComponentStyleConfig(cell.slotType)
465
+ if (!styleConfig) return { rootStyles: {}, childStyles: {} }
466
+
467
+ const rootStyles = {}
468
+ const childStyles = new Map()
469
+
470
+ // 处理每个class配置
471
+ cell.class.split(' ').forEach(className => {
472
+ const classConfig = styleConfig[className]
473
+ if (!classConfig) return
474
+
475
+ // 处理根节点样式
476
+ Object.entries(classConfig).forEach(([key, value]) => {
477
+ if (!key.startsWith('*') && typeof key !== 'object') {
478
+ rootStyles[key] = value
479
+ }
480
+ })
481
+
482
+ // 处理子节点样式
483
+ this.parseNestedStyles(classConfig, childStyles)
484
+ })
485
+
486
+ console.warn('样式配置', rootStyles, childStyles)
487
+ return {
488
+ rootStyles,
489
+ childStyles
490
+ }
491
+ },
492
+
493
+ // 递归解析嵌套的样式配置
494
+ parseNestedStyles (config, styleMap, parentKey = '') {
495
+ Object.entries(config).forEach(([key, value]) => {
496
+ if (!key.startsWith('*')) return
497
+
498
+ const className = key.replace('*', '.')
499
+
500
+ // 如果值是对象,检查是否包含样式和子节点
501
+ if (typeof value === 'object') {
502
+ const { style = {}, children = {} } = this.separateStyleAndChildren(value)
503
+
504
+ // 创建或获取当前节点的样式配置
505
+ if (!styleMap.has(className)) {
506
+ styleMap.set(className, {
507
+ styles: {},
508
+ children: new Map()
509
+ })
510
+ }
511
+
512
+ const nodeData = styleMap.get(className)
513
+
514
+ // 合并样式
515
+ Object.assign(nodeData.styles, style)
516
+
517
+ // 递归处理子节点
518
+ this.parseNestedStyles(children, nodeData.children, className)
519
+ }
520
+ })
521
+ },
522
+
523
+ // 分离样式属性和子节点配置
524
+ separateStyleAndChildren (obj) {
525
+ const style = {}
526
+ const children = {}
527
+
528
+ Object.entries(obj).forEach(([key, value]) => {
529
+ if (key.startsWith('*')) {
530
+ // 子节点配置
531
+ children[key] = value
532
+ } else {
533
+ // 样式属性
534
+ style[key] = value
535
+ }
536
+ })
537
+
538
+ return { style, children }
539
+ },
540
+
541
+ // 应用组件样式
542
+ async applyComponentStyles (component, cell, cellIndex) {
543
+ if (!component || !component.$el) return
544
+
545
+ const { rootStyles, childStyles } = await this.parseComponentStyles(cell)
546
+
547
+ // 应用根节点样式
548
+ if (Object.keys(rootStyles).length > 0) {
549
+ Object.entries(rootStyles).forEach(([property, value]) => {
550
+ component.$el.style.setProperty(property, value, 'important')
551
+ })
552
+ }
553
+
554
+ // 如果没有子节点样式,直接返回
555
+ if (childStyles.size === 0) return
556
+
557
+ let retryCount = 0
558
+ const maxRetries = 5
559
+ const retryInterval = 100 // 100ms
560
+
561
+ const applyStyles = () => {
562
+ this.applyChildStylesOptimized(component.$el, childStyles)
563
+ }
564
+
565
+ // 首次应用样式
566
+ applyStyles()
567
+
568
+ // 创建重试机制
569
+ const retryApplyStyles = () => {
570
+ if (retryCount >= maxRetries) return
571
+
572
+ setTimeout(() => {
573
+ applyStyles()
574
+ retryCount++
575
+ retryApplyStyles()
576
+ }, retryInterval)
577
+ }
578
+
579
+ // 开始重试
580
+ retryApplyStyles()
581
+
582
+ // 创建 MutationObserver 用于动态内容
583
+ const observer = new MutationObserver((mutations) => {
584
+ // 检查是否有新增节点
585
+ const hasNewNodes = mutations.some(mutation =>
586
+ mutation.type === 'childList' && mutation.addedNodes.length > 0
587
+ )
588
+
589
+ if (hasNewNodes) {
590
+ applyStyles()
591
+ }
592
+ })
593
+
594
+ // 配置 observer
595
+ observer.observe(component.$el, {
596
+ childList: true,
597
+ subtree: true,
598
+ attributes: false
599
+ })
600
+
601
+ // 3秒后停止观察
602
+ // setTimeout(() => {
603
+ // observer.disconnect()
604
+ // }, 3000)
605
+
606
+ // 组件销毁时清理
607
+ this.$once('hook:beforeDestroy', () => {
608
+ observer.disconnect()
609
+ })
610
+ },
611
+
612
+ // 优化后的子节点样式应用方法
613
+ applyChildStylesOptimized (rootElement, styleMap, parentSelector = '') {
614
+ if (!rootElement) return
615
+
616
+ // 处理样式映射
617
+ for (const [selector, data] of styleMap.entries()) {
618
+ const currentSelector = parentSelector ? `${parentSelector} ${selector}` : selector
619
+
620
+ try {
621
+ // 查找匹配的元素
622
+ const elements = Array.from(rootElement.querySelectorAll(currentSelector))
623
+
624
+ if (!elements.length) continue
625
+
626
+ // 应用当前层级样式
627
+ if (data.styles) {
628
+ elements.forEach(element => {
629
+ if (!element) return
630
+
631
+ // 应用每个样式属性
632
+ Object.entries(data.styles).forEach(([property, value]) => {
633
+ try {
634
+ element.style.setProperty(property, value, 'important')
635
+ } catch (err) {
636
+ console.warn(`设置样式失败: ${property}=${value}`, err)
637
+ }
638
+ })
639
+ })
640
+ }
641
+
642
+ // 处理子层级
643
+ if (data.children && data.children.size > 0) {
644
+ elements.forEach(element => {
645
+ if (element) {
646
+ this.applyChildStylesOptimized(element, data.children, currentSelector)
647
+ }
648
+ })
649
+ }
650
+ } catch (err) {
651
+ console.warn(`处理选择器失败: ${currentSelector}`, err)
652
+ continue
653
+ }
654
+ }
655
+ }
656
+ },
657
+ beforeMount () {
658
+ if (this.useOssForImg) {
659
+ this.uploadParams.resUploadMode = 'oss'
660
+ }
661
+ },
662
+ mounted () {
663
+ },
664
+ }
665
+
666
+ </script>
667
+
668
+ <style scoped lang="less">
669
+ .inputsDiv {
670
+ display: flex;
671
+ justify-content: space-between;
672
+
673
+ .inputsDivItem {
674
+ display: flex;
675
+ align-items: center;
676
+ padding: 0 4px;
677
+ white-space: nowrap;
678
+
679
+ .inputsDivItemLabel {
680
+ padding: 0 4px;
681
+ }
682
+ }
683
+ }
684
+
685
+ .tdNoBorder {
686
+ border-left: 1px solid #000;
687
+ border-right: 1px solid #000;
688
+ padding: 8px;
689
+ }
690
+
691
+ .tdWithBorder {
692
+ border: 1px solid #000;
693
+ padding: 8px;
694
+ }
695
+
696
+ .tdWithNoTopBorder {
697
+ border-top-style: none;
698
+ border-left: 1px solid #000;
699
+ border-right: 1px solid #000;
700
+ border-bottom: 1px solid #000;
701
+ padding: 8px;
702
+ }
703
+
704
+ .grid-content {
705
+ border-radius: 4px;
706
+ min-height: 36px;
707
+ text-align: center;
708
+ color: #fff;
709
+ background-color: #606266;
710
+ }
711
+
712
+ .bg-purple {
713
+ background: #9254de;
714
+ }
715
+
716
+ .bg-purple-light {
717
+ background: #b37feb;
718
+ }
719
+
720
+ .flexItem {
721
+ border-radius: 8px;
722
+ height: 100%;
723
+ }
724
+ </style>