vue2-client 1.15.123 → 1.15.125

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 (257) hide show
  1. package/package.json +1 -1
  2. package/src/base-client/components/common/HIS/HButtons/HButtons.vue +749 -0
  3. package/src/base-client/components/common/HIS/HButtons/index.js +3 -0
  4. package/src/base-client/components/common/HIS/HFormTable/HFormTable.vue +155 -0
  5. package/src/base-client/components/common/HIS/HFormTable/index.js +3 -0
  6. package/src/base-client/components/common/HIS/HTab/HTab.vue +100 -0
  7. package/src/base-client/components/common/HIS/HTab/index.js +3 -0
  8. package/src/base-client/components/common/HIS/demo.vue +46 -0
  9. package/src/base-client/components/common/XCollapse/XCollapse.vue +2 -1
  10. package/src/base-client/components/common/XConversation/XConversation.vue +0 -6
  11. package/src/base-client/components/common/XReportGrid/XReport.vue +0 -11
  12. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +36 -51
  13. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +133 -48
  14. package/src/base-client/components/common/XTab/XTab.vue +12 -6
  15. package/src/base-client/components/his/XChart/XChart.vue +282 -282
  16. package/src/base-client/components/his/XChart/dome.vue +19 -19
  17. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +0 -1
  18. package/src/base-client/components/his/XImageReport/ImagePreview.vue +393 -0
  19. package/src/base-client/components/his/XImageReport/XImageReport copy.vue +361 -0
  20. package/src/base-client/components/his/XImageReport/XImageReport.vue +200 -0
  21. package/src/base-client/components/his/XImageReport/XImageReportDemo.vue +29 -0
  22. package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.vue +1 -1
  23. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  24. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  25. package/src/components/STable/index.js +11 -4
  26. package/src/router/async/router.map.js +2 -1
  27. package/.history/public/his/editor/editor_20250606134713.html +0 -51
  28. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  29. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  30. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  31. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  32. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +0 -207
  33. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +0 -211
  34. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +0 -212
  35. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +0 -212
  36. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  37. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  38. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  39. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  40. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  41. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  42. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +0 -731
  43. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +0 -748
  44. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +0 -748
  45. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +0 -1071
  46. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +0 -1078
  47. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +0 -1077
  48. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +0 -1077
  49. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +0 -1077
  50. package/.history/src/base-client/components/his/XChart/XChart_20250812134005.vue +0 -160
  51. package/.history/src/base-client/components/his/XChart/XChart_20250812134010.vue +0 -160
  52. package/.history/src/base-client/components/his/XChart/XChart_20250812134019.vue +0 -160
  53. package/.history/src/base-client/components/his/XChart/XChart_20250812134037.vue +0 -160
  54. package/.history/src/base-client/components/his/XChart/XChart_20250812134112.vue +0 -160
  55. package/.history/src/base-client/components/his/XChart/XChart_20250812134114.vue +0 -160
  56. package/.history/src/base-client/components/his/XChart/XChart_20250812134828.vue +0 -148
  57. package/.history/src/base-client/components/his/XChart/XChart_20250812134838.vue +0 -155
  58. package/.history/src/base-client/components/his/XChart/XChart_20250812134846.vue +0 -155
  59. package/.history/src/base-client/components/his/XChart/XChart_20250812134917.vue +0 -155
  60. package/.history/src/base-client/components/his/XChart/XChart_20250812151145.vue +0 -149
  61. package/.history/src/base-client/components/his/XChart/XChart_20250812151810.vue +0 -153
  62. package/.history/src/base-client/components/his/XChart/XChart_20250812151822.vue +0 -153
  63. package/.history/src/base-client/components/his/XChart/XChart_20250812151910.vue +0 -153
  64. package/.history/src/base-client/components/his/XChart/XChart_20250812152858.vue +0 -258
  65. package/.history/src/base-client/components/his/XChart/XChart_20250812152902.vue +0 -258
  66. package/.history/src/base-client/components/his/XChart/XChart_20250812152907.vue +0 -258
  67. package/.history/src/base-client/components/his/XChart/XChart_20250812152919.vue +0 -258
  68. package/.history/src/base-client/components/his/XChart/XChart_20250812153141.vue +0 -269
  69. package/.history/src/base-client/components/his/XChart/XChart_20250812153149.vue +0 -276
  70. package/.history/src/base-client/components/his/XChart/XChart_20250812153153.vue +0 -276
  71. package/.history/src/base-client/components/his/XChart/XChart_20250812153155.vue +0 -276
  72. package/.history/src/base-client/components/his/XChart/XChart_20250812153157.vue +0 -276
  73. package/.history/src/base-client/components/his/XChart/XChart_20250812153158.vue +0 -276
  74. package/.history/src/base-client/components/his/XChart/XChart_20250812153200.vue +0 -276
  75. package/.history/src/base-client/components/his/XChart/XChart_20250812153210.vue +0 -276
  76. package/.history/src/base-client/components/his/XChart/XChart_20250812153918.vue +0 -275
  77. package/.history/src/base-client/components/his/XChart/XChart_20250812154157.vue +0 -280
  78. package/.history/src/base-client/components/his/XChart/XChart_20250812154212.vue +0 -280
  79. package/.history/src/base-client/components/his/XChart/XChart_20250812154250.vue +0 -280
  80. package/.history/src/base-client/components/his/XChart/XChart_20250812154252.vue +0 -280
  81. package/.history/src/base-client/components/his/XChart/XChart_20250812154444.vue +0 -280
  82. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +0 -442
  83. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +0 -442
  84. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +0 -442
  85. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +0 -475
  86. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +0 -475
  87. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +0 -475
  88. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +0 -477
  89. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +0 -477
  90. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +0 -477
  91. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +0 -473
  92. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +0 -473
  93. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +0 -473
  94. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +0 -473
  95. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +0 -473
  96. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +0 -473
  97. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +0 -473
  98. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +0 -473
  99. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +0 -473
  100. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +0 -473
  101. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +0 -474
  102. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +0 -474
  103. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +0 -474
  104. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +0 -472
  105. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +0 -472
  106. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +0 -472
  107. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +0 -472
  108. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +0 -472
  109. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +0 -472
  110. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +0 -501
  111. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +0 -501
  112. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +0 -501
  113. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +0 -504
  114. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +0 -504
  115. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +0 -504
  116. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +0 -131
  117. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +0 -160
  118. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +0 -160
  119. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +0 -160
  120. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +0 -158
  121. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +0 -173
  122. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +0 -222
  123. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +0 -229
  124. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +0 -229
  125. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +0 -229
  126. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +0 -241
  127. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +0 -241
  128. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +0 -241
  129. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +0 -245
  130. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +0 -245
  131. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +0 -245
  132. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +0 -255
  133. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +0 -255
  134. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +0 -255
  135. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +0 -270
  136. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +0 -270
  137. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +0 -270
  138. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +0 -270
  139. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +0 -294
  140. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +0 -294
  141. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +0 -294
  142. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +0 -303
  143. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +0 -303
  144. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +0 -303
  145. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +0 -288
  146. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +0 -288
  147. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +0 -288
  148. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +0 -317
  149. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +0 -306
  150. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +0 -306
  151. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +0 -306
  152. package/.history/src/base-client/components/his/XList/XList_20250704142024.vue +0 -495
  153. package/.history/src/base-client/components/his/XList/XList_20250704142033.vue +0 -495
  154. package/.history/src/base-client/components/his/XList/XList_20250704142040.vue +0 -494
  155. package/.history/src/base-client/components/his/XList/XList_20250704142211.vue +0 -494
  156. package/.history/src/base-client/components/his/XList/XList_20250704142214.vue +0 -494
  157. package/.history/src/base-client/components/his/XList/XList_20250704143010.vue +0 -495
  158. package/.history/src/base-client/components/his/XList/XList_20250704143203.vue +0 -495
  159. package/.history/src/base-client/components/his/XList/XList_20250707095101.vue +0 -492
  160. package/.history/src/base-client/components/his/XList/XList_20250707100152.vue +0 -492
  161. package/.history/src/base-client/components/his/XList/XList_20250707100200.vue +0 -485
  162. package/.history/src/base-client/components/his/XList/XList_20250707100208.vue +0 -485
  163. package/.history/src/base-client/components/his/XList/XList_20250707100259.vue +0 -488
  164. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134604.vue +0 -263
  165. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134615.vue +0 -302
  166. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134621.vue +0 -301
  167. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134634.vue +0 -311
  168. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134644.vue +0 -330
  169. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134653.vue +0 -330
  170. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807134836.vue +0 -330
  171. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135247.vue +0 -330
  172. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135303.vue +0 -354
  173. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135316.vue +0 -363
  174. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135323.vue +0 -363
  175. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135334.vue +0 -366
  176. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135342.vue +0 -364
  177. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135349.vue +0 -364
  178. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135351.vue +0 -346
  179. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135354.vue +0 -346
  180. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135401.vue +0 -346
  181. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135406.vue +0 -346
  182. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807135424.vue +0 -346
  183. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807143043.vue +0 -254
  184. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155506.vue +0 -329
  185. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155535.vue +0 -330
  186. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155543.vue +0 -330
  187. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155926.vue +0 -304
  188. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807155928.vue +0 -304
  189. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172548.vue +0 -298
  190. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172609.vue +0 -298
  191. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172623.vue +0 -298
  192. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172631.vue +0 -298
  193. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172701.vue +0 -298
  194. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807172704.vue +0 -298
  195. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175937.vue +0 -290
  196. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807175942.vue +0 -290
  197. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180210.vue +0 -290
  198. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180424.vue +0 -290
  199. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180448.vue +0 -290
  200. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180915.vue +0 -262
  201. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250807180917.vue +0 -262
  202. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101106.vue +0 -283
  203. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101112.vue +0 -289
  204. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101118.vue +0 -289
  205. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101129.vue +0 -294
  206. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101137.vue +0 -318
  207. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101145.vue +0 -320
  208. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101154.vue +0 -320
  209. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101211.vue +0 -320
  210. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101236.vue +0 -320
  211. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250808101239.vue +0 -320
  212. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114001.vue +0 -342
  213. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114005.vue +0 -342
  214. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114014.vue +0 -345
  215. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114020.vue +0 -345
  216. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114028.vue +0 -345
  217. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114108.vue +0 -345
  218. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114115.vue +0 -345
  219. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114333.vue +0 -346
  220. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114339.vue +0 -350
  221. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114344.vue +0 -355
  222. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114351.vue +0 -355
  223. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114408.vue +0 -355
  224. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250811114410.vue +0 -355
  225. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154330.vue +0 -389
  226. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154338.vue +0 -389
  227. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154402.vue +0 -389
  228. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154425.vue +0 -389
  229. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813154428.vue +0 -389
  230. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813171922.vue +0 -391
  231. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813171957.vue +0 -391
  232. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813172004.vue +0 -391
  233. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813172012.vue +0 -391
  234. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813172241.vue +0 -391
  235. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250813172242.vue +0 -391
  236. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103845.vue +0 -142
  237. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103852.vue +0 -142
  238. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103857.vue +0 -142
  239. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103859.vue +0 -142
  240. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103907.vue +0 -142
  241. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103910.vue +0 -142
  242. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103911.vue +0 -142
  243. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103913.vue +0 -142
  244. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103916.vue +0 -142
  245. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807103931.vue +0 -142
  246. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145127.vue +0 -85
  247. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145136.vue +0 -81
  248. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145142.vue +0 -81
  249. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145145.vue +0 -81
  250. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145148.vue +0 -81
  251. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145151.vue +0 -81
  252. package/.history/src/base-client/components/his/XShiftSchedule/dome_20250807145155.vue +0 -81
  253. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -213
  254. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  255. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  256. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
  257. package/src/base-client/components/his/XHisEditor/dome.vue +0 -145
@@ -1,1320 +0,0 @@
1
- <template>
2
- <!-- 输入框 -->
3
- <x-form-col
4
- v-if="attr.type === 'input' && show"
5
- :occupyCol="attr.occupyCol"
6
- :labelCol="labelCol"
7
- :flex="attr.flex">
8
- <a-form-model-item
9
- :rules="rules"
10
- :ref="attr.model"
11
- :label="showLabel?attr.name:undefined"
12
- :prop="attr.prop ? attr.prop : attr.model">
13
- <!-- 如果配置了后置按钮插槽 -->
14
- <a-input-group
15
- v-if="((attr.inputOnAfterName && attr.inputOnAfterFunc) || (attr.inputOnAfterIcon && attr.inputOnAfterIconFunc)) && mode !== '查询'"
16
- style="display: flex; width: 100%; padding: 4px 0"
17
- compact>
18
- <a-input
19
- v-model="form[attr.model]"
20
- :read-only="readOnly"
21
- :disabled="disabled && !readOnly"
22
- :whitespace="true"
23
- @input="attr.dataChangeFunc && debouncedDataChangeFunc()"
24
- :suffix="attr.inputSuffix && mode !== '新增' ? attr.inputSuffix : ''"
25
- @blur="mode !== '查询' && attr.inputOnBlurFunc && emitFunc(attr.inputOnBlurFunc,attr)"
26
- @keyup.enter="mode !== '查询' && attr.inputOnEnterFunc && emitFunc(attr.inputOnEnterFunc, attr)"
27
- :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
28
- :ref="`${attr.model}input`"/>
29
- <a-button
30
- v-if="attr.inputOnAfterName && attr.inputOnAfterFunc && !attr.inputOnAfterName.includes('|')"
31
- style="width: auto; min-width: 4rem;max-width: 6rem"
32
- type="primary"
33
- @click="emitFunc(attr.inputOnAfterFunc,attr)">
34
- {{ attr.inputOnAfterName }}
35
- </a-button>
36
- <!-- 仅可以配置 一个按钮 以及 一个图标插槽 -->
37
- <a-button
38
- style="width: 2rem; flex-shrink: 0;"
39
- v-else-if="attr.inputOnAfterIcon"
40
- :type="attr.inputOnAfterIcon && attr.inputOnAfterName ? 'primary' :''"
41
- :icon="attr.inputOnAfterIcon || 'question'"
42
- @click="emitFunc(attr.inputOnAfterIconFunc,attr)">
43
- </a-button>
44
- <!-- 状态按钮 -->
45
- <x-status-button
46
- v-else
47
- :states="parseStates(attr.inputOnAfterName, attr.inputOnAfterFunc)"
48
- v-on="generateDynamicEvents(attr.inputOnAfterFunc, attr)"
49
- style="width: auto; min-width: 4rem; max-width: 6rem"
50
- />
51
- </a-input-group>
52
- <a-input-number
53
- v-else-if="attr.numberInput && !readOnly"
54
- v-model="form[attr.model]"
55
- :whitespace="true"
56
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
57
- :disabled="disabled && !readOnly"
58
- style="width:100%"
59
- @blur="mode !== '查询' && attr.inputOnBlurFunc && emitFunc(attr.inputOnBlurFunc,attr)"
60
- @keyup.enter="mode !== '查询' && attr.inputOnEnterFunc && emitFunc(attr.inputOnEnterFunc, attr)"
61
- :suffix="attr.inputSuffix && mode !== '新增' ? attr.inputSuffix : ''"
62
- :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
63
- :ref="`${attr.model}input`"/>
64
- <a-input
65
- v-else
66
- v-model="form[attr.model]"
67
- :whitespace="true"
68
- :read-only="readOnly"
69
- :disabled="disabled && !readOnly"
70
- @input="attr.dataChangeFunc && debouncedDataChangeFunc()"
71
- :suffix="attr.inputSuffix && mode !== '新增' ? attr.inputSuffix : ''"
72
- style="width:100%"
73
- @blur="mode !== '查询' && attr.inputOnBlurFunc && emitFunc(attr.inputOnBlurFunc,attr)"
74
- @keyup.enter="mode !== '查询' && attr.inputOnEnterFunc && emitFunc(attr.inputOnEnterFunc, attr)"
75
- :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
76
- :ref="`${attr.model}input`"/>
77
- </a-form-model-item>
78
- </x-form-col>
79
- <!-- 下拉框 -->
80
- <x-form-col
81
- v-else-if="attr.type === 'select' && show"
82
- :labelCol="labelCol"
83
- :flex="attr.flex">
84
- <a-form-model-item
85
- :rules="rules"
86
- v-if="!attr.showMode || mode === '查询' || attr.showMode === 'select' "
87
- :ref="attr.model"
88
- :label="showLabel?attr.name:undefined"
89
- :prop="attr.prop ? attr.prop : attr.model">
90
- <!-- <span slot="label" class="label-box">{{ showLabel?attr.name:undefined }}</span>-->
91
- <a-select
92
- v-if="!attr.lazyLoad || attr.lazyLoad === 'false'"
93
- v-model="form[attr.model]"
94
- :disabled="disabled"
95
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
96
- :filter-option="filterOption"
97
- :getPopupContainer="getPopupContainer"
98
- dropdownClassName="custom-dropdown"
99
- :dropdownMatchSelectWidth="false"
100
- :dropdownStyle="{ position: 'absolute'}"
101
- :placeholder="attr.placeholder ? attr.placeholder : '请选择'"
102
- show-search
103
- :allowClear="true"
104
- >
105
- <a-select-option
106
- v-if="mode === '查询'"
107
- key="999999"
108
- value="">全部
109
- </a-select-option>
110
- <template v-if="attr.keys">
111
- <a-select-option
112
- v-for="(item,index) in attr.keys"
113
- :key="index.value"
114
- :value="item.value + ''">
115
- {{ item.label }}
116
- </a-select-option>
117
- </template>
118
- <template v-else>
119
- <template
120
- v-if="attr.keyName.indexOf('logic@') !== -1 || attr.keyName.indexOf('config@') !== -1
121
- ||attr.keyName.indexOf('search@') !== -1 || attr.keyName.indexOf('search@') !== -1">
122
- <a-select-option
123
- v-for="(item,index) in option"
124
- :key="index.value"
125
- :value="item.value + ''">
126
- <template v-if="attr.keyName.indexOf('config@') !== -1 && item.status">
127
- <!-- 徽标(badge) -->
128
- <a-badge v-if="item.status !== 'gary'" :color="item.status" :text="item.label"/>
129
- <a-badge v-else color="#D9D9D9" :text="item.label"/>
130
- </template>
131
- <template v-else>
132
- {{ item.label }}
133
- </template>
134
- </a-select-option>
135
- </template>
136
- <template
137
- v-else-if="attr.keyName.indexOf('async ') !== -1 || attr.keyName.indexOf('function ') !== -1">
138
- <a-select-option
139
- v-for="(item,index) in optionForFunc"
140
- :key="index.value"
141
- :value="item.value + ''">
142
- <template>
143
- {{ item.label }}
144
- </template>
145
- </a-select-option>
146
- </template>
147
- <template v-else>
148
- <a-select-option
149
- v-for="item in $appdata.getDictionaryList(attr.keyName)"
150
- :key="item.value"
151
- :value="item.value + ''">
152
- <!-- 徽标(badge) -->
153
- <x-badge
154
- :badge-key="attr.keyName"
155
- :replaceText="item.text"
156
- :value="item.value"
157
- :service-name="serviceName"
158
- :env="env"/>
159
- </a-select-option>
160
- </template>
161
- </template>
162
- </a-select>
163
- <a-select
164
- v-else
165
- v-model="form[attr.model]"
166
- :disabled="disabled"
167
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
168
- :filter-option="filterOption"
169
- :getPopupContainer="getPopupContainer"
170
- dropdownClassName="custom-dropdown"
171
- :dropdownMatchSelectWidth="false"
172
- :dropdownStyle="{ position: 'absolute'}"
173
- :placeholder="attr.placeholder ? attr.placeholder : '搜索' + attr.name"
174
- show-search
175
- @search="fetchFunction"
176
- >
177
- <template #notFoundContent>
178
- <a-spin v-if="searching" size="small"/>
179
- </template>
180
- <a-select-option
181
- v-if="mode === '查询'"
182
- key="999999"
183
- value="">全部
184
- </a-select-option>
185
- <a-select-option
186
- v-for="(item,index) in option"
187
- :key="index"
188
- :value="item.value + ''">{{ item.label }}
189
- </a-select-option>
190
- </a-select>
191
- </a-form-model-item>
192
- <a-form-model-item
193
- :rules="rules"
194
- v-else-if="attr.showMode === 'radioGroup'"
195
- :ref="attr.model"
196
- :label="showLabel?attr.name:undefined"
197
- :prop="attr.prop ? attr.prop : attr.model">
198
- <a-radio-group v-model="form[attr.model]">
199
- <a-radio-button v-for="modeItem in option" :key="modeItem.value" :value="modeItem.value">
200
- {{ modeItem.label }}
201
- </a-radio-button>
202
- </a-radio-group>
203
- </a-form-model-item>
204
- <a-form-model-item
205
- v-else-if="attr.showMode === 'clickChange' && option.length > 0"
206
- :ref="attr.model"
207
- :label="showLabel?attr.name:undefined"
208
- :prop="attr.prop ? attr.prop : attr.model">
209
- <XClickChangeBtn></XClickChangeBtn>
210
- </a-form-model-item>
211
- </x-form-col>
212
- <!-- 多选框 -->
213
- <x-form-col
214
- v-else-if="attr.type === 'checkbox' && show"
215
- :labelCol="labelCol"
216
- :flex="attr.flex">
217
- <a-form-model-item
218
- :rules="rules"
219
- v-if="!attr.showMode || mode === '查询' || attr.showMode === 'select' "
220
- :ref="attr.model"
221
- :label="showLabel?attr.name:undefined"
222
- :prop="attr.prop ? attr.prop : attr.model">
223
- <a-select
224
- class="multiple_select"
225
- style="width:100%"
226
- v-if="!attr.lazyLoad || attr.lazyLoad === 'false'"
227
- v-model="form[attr.model]"
228
- :disabled="disabled"
229
- :filter-option="filterOption"
230
- :getPopupContainer="getPopupContainer"
231
- :placeholder="attr.placeholder ? attr.placeholder : '请选择'"
232
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
233
- mode="multiple"
234
- show-search
235
- allowClear
236
- >
237
- <template v-if="attr.keys">
238
- <a-select-option
239
- v-for="(item,index) in attr.keys"
240
- :key="index"
241
- :value="item.value + ''">
242
- {{ item.label }}
243
- </a-select-option>
244
- </template>
245
- <template v-else>
246
- <template
247
- v-if="attr.keyName.indexOf('logic@') !== -1 || attr.keyName.indexOf('config@') !== -1
248
- ||attr.keyName.indexOf('search@') !== -1 || attr.keyName.indexOf('search@') !== -1">
249
- <a-select-option
250
- v-for="(item,index) in option"
251
- :key="index"
252
- :value="item.value">{{ item.label }}
253
- </a-select-option>
254
- </template>
255
- <template v-else>
256
- <a-select-option
257
- v-for="item in $appdata.getDictionaryList(attr.keyName)"
258
- :key="item.value"
259
- :value="item.value + ''">{{ item.text }}
260
- </a-select-option>
261
- </template>
262
- </template>
263
- </a-select>
264
- <a-select
265
- v-else
266
- class="multiple_select"
267
- v-model="form[attr.model]"
268
- :disabled="disabled"
269
- :filter-option="filterOption"
270
- :getPopupContainer="getPopupContainer"
271
- :placeholder="attr.placeholder ? attr.placeholder : '搜索' + attr.name"
272
- mode="multiple"
273
- style="width:100%"
274
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
275
- show-search
276
- allowClear
277
- @search="fetchFunction"
278
- >
279
- <template #notFoundContent>
280
- <a-spin v-if="searching" size="small"/>
281
- </template>
282
- <a-select-option
283
- v-for="(item,index) in option"
284
- :key="index"
285
- :value="item.value + ''">{{ item.label }}
286
- </a-select-option>
287
- </a-select>
288
- </a-form-model-item>
289
- <a-form-model-item
290
- :rules="rules"
291
- v-else
292
- :ref="attr.model"
293
- :label="showLabel?attr.name:undefined"
294
- :prop="attr.prop ? attr.prop : attr.model">
295
- <a-checkbox-group
296
- v-model="form[attr.model]"
297
- :options="option"
298
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
299
- />
300
- </a-form-model-item>
301
- </x-form-col>
302
- <!-- 单选框 -->
303
- <x-form-col
304
- v-else-if="attr.type === 'radio' && show"
305
- :labelCol="labelCol"
306
- :flex="attr.flex">
307
- <a-form-model-item
308
- :rules="rules"
309
- v-if="!attr.showMode || attr.type === 'radio' "
310
- :ref="attr.model"
311
- :label="showLabel?attr.name:undefined"
312
- :prop="attr.prop ? attr.prop : attr.model">
313
- <a-radio-group
314
- v-model="form[attr.model]"
315
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
316
- >
317
- <template v-if="attr.keys">
318
- <a-radio v-for="(item,index) in attr.keys" :key="index" :value="item.value">
319
- {{ item.label }}
320
- </a-radio>
321
- </template>
322
- <template v-else>
323
- <template
324
- v-if="attr.keyName.indexOf('logic@') !== -1 || attr.keyName.indexOf('config@') !== -1
325
- ||attr.keyName.indexOf('search@') !== -1 || attr.keyName.indexOf('search@') !== -1">
326
- <a-radio v-for="(item,index) in option" :key="index" :value="item.value">
327
- {{ item.label }}
328
- </a-radio>
329
- </template>
330
- <template v-else>
331
- <a-radio v-for="(item,index) in $appdata.getDictionaryList(attr.keyName)" :key="index" :value="item.value">
332
- {{ item.text }}
333
- </a-radio>
334
- </template>
335
- </template>
336
- </a-radio-group>
337
- </a-form-model-item>
338
- <a-form-model-item
339
- :rules="rules"
340
- v-else-if="attr.showMode === 'radioGroup'"
341
- :ref="attr.model"
342
- :label="showLabel?attr.name:undefined"
343
- :prop="attr.prop ? attr.prop : attr.model">
344
- <a-radio-group v-model="form[attr.model]">
345
- <a-radio-button v-for="modeItem in option" :key="modeItem.value" :value="modeItem.value">
346
- {{ modeItem.label }}
347
- </a-radio-button>
348
- </a-radio-group>
349
- </a-form-model-item>
350
- <a-form-model-item
351
- :rules="rules"
352
- v-else-if="attr.showMode === 'clickChange' && option.length > 0"
353
- :ref="attr.model"
354
- :label="showLabel?attr.name:undefined"
355
- :prop="attr.prop ? attr.prop : attr.model">
356
- <XClickChangeBtn></XClickChangeBtn>
357
- </a-form-model-item>
358
- </x-form-col>
359
- <!-- 时间 日期 框整合 -->
360
- <x-form-col
361
- v-else-if="['datePicker', 'rangePicker', 'yearPicker', 'monthPicker', 'yearRangePicker', 'monthRangePicker'].includes(attr.type) && show"
362
- :labelCol="labelCol"
363
- :flex="attr.flex">
364
- <a-form-model-item
365
- :rules="rules"
366
- :ref="attr.model"
367
- :label="showLabel?attr.name:undefined"
368
- :prop="attr.prop ? attr.prop : attr.model">
369
- <XFormDatePicker
370
- :attr="attr"
371
- :mode="mode"
372
- :disabled="disabled"
373
- :readOnly="readOnly"
374
- :showLabel="showLabel"
375
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
376
- v-model="form[attr.model]"/>
377
- </a-form-model-item>
378
- </x-form-col>
379
- <!-- 文本域 -->
380
- <x-form-col
381
- v-else-if="attr.type === 'textarea' && show"
382
- :labelCol="labelCol"
383
- :flex="attr.flex">
384
- <!-- :style="layout === 'inline'?{width:'calc(100% - 60px)'}:{}"-->
385
- <a-form-model-item
386
- :rules="rules"
387
- :ref="attr.model"
388
- :label="showLabel?attr.name:undefined"
389
- :prop="attr.prop ? attr.prop : attr.model">
390
- <a-textarea
391
- v-model="form[attr.model]"
392
- style="width: 100%;"
393
- :disabled="disabled"
394
- :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
395
- :rows="4"/>
396
- </a-form-model-item>
397
- </x-form-col>
398
- <!-- 文件上传 -->
399
- <x-form-col
400
- v-else-if="(attr.type === 'file' || attr.type === 'image') && show"
401
- :labelCol="labelCol"
402
- :flex="attr.flex">
403
- <a-form-model-item
404
- :rules="rules"
405
- :ref="attr.model"
406
- :label="showLabel?attr.name:undefined"
407
- :prop="attr.prop ? attr.prop : attr.model">
408
- <upload
409
- :files="files"
410
- :images="images"
411
- :model="attr"
412
- v-bind="attr"
413
- :service-name="serviceName"
414
- @setFiles="setFiles"></upload>
415
- </a-form-model-item>
416
- </x-form-col>
417
- <!-- 省市区选择框 -->
418
- <x-form-col
419
- v-else-if="attr.type === 'citySelect' && show"
420
- :labelCol="labelCol"
421
- :flex="attr.flex">
422
- <a-form-model-item
423
- :rules="rules"
424
- :ref="attr.model"
425
- :label="showLabel?attr.name:undefined"
426
- :prop="attr.prop ? attr.prop : attr.model">
427
- <citySelect
428
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
429
- ref="citySelect"
430
- v-model="form[attr.model]"
431
- :contexts="attr.contexts"
432
- :value-type="attr.valueType"
433
- :default-value="form[attr.model]"></citySelect>
434
- </a-form-model-item>
435
- </x-form-col>
436
- <!-- 地点搜索框 -->
437
- <x-form-col
438
- v-else-if="attr.type === 'addressSearch' && show"
439
- :labelCol="labelCol"
440
- :occupyCol="attr.occupyCol"
441
- :flex="attr.flex">
442
- <a-form-model-item
443
- :rules="rules"
444
- :ref="attr.model"
445
- :label="showLabel?attr.name:undefined"
446
- :prop="attr.prop ? attr.prop : attr.model">
447
- <address-search-combobox
448
- :emitFunc="emitFunc"
449
- :attr="attr"
450
- :read-only="readOnly"
451
- v-model="searchResult"
452
- :resultKeys="{ address: attr.model, coords: `${attr.model}_lng_lat` }"
453
- ref="addressSearchCombobox"
454
- searchResultType="Object"
455
- @onSelect="addressSearchComboboxSelect"
456
- @onDivisionsChange="onDivisionsChange"
457
- ></address-search-combobox>
458
- </a-form-model-item>
459
- </x-form-col>
460
- <!-- 人员选择框 -->
461
- <x-form-col
462
- v-else-if="attr.type === 'personSetting' && show"
463
- :labelCol="labelCol"
464
- :flex="attr.flex">
465
- <a-form-model-item
466
- :rules="rules"
467
- :ref="attr.model"
468
- :label="showLabel?attr.name:undefined"
469
- :prop="attr.prop ? attr.prop : attr.model">
470
- <PersonSetting v-model="form[attr.model]"></PersonSetting>
471
- </a-form-model-item>
472
- </x-form-col>
473
- <!-- 树形选择框 -->
474
- <x-form-col
475
- v-else-if="attr.type === 'treeSelect' && show"
476
- :labelCol="labelCol"
477
- :flex="attr.flex">
478
- <x-tree-select
479
- :rules="rules"
480
- @onChange="attr.dataChangeFunc && debouncedDataChangeFunc()"
481
- v-model="form[attr.model]"
482
- :attr="attr"
483
- @mounted="itemMounted"
484
- ref="xTreeSelect">
485
- </x-tree-select>
486
- </x-form-col>
487
- <!-- 列表选择框 -->
488
- <x-form-col
489
- v-else-if="attr.type === 'listSelect' && show"
490
- :labelCol="labelCol"
491
- :flex="attr.flex">
492
- <a-form-model-item
493
- :rules="rules"
494
- :ref="attr.model"
495
- :label="showLabel?attr.name:undefined"
496
- :style="layout === 'inline'&& attr.occupyCol && attr.occupyCol > 1? {width:`calc(100% - ${attr.occupyCol * 1.533}rem)`}:{}"
497
- :prop="attr.prop ? attr.prop : attr.model">
498
- <a-popover
499
- ref="rowChoosePopover"
500
- :visible="rowChoosePopoverVisible"
501
- title="选择数据"
502
- placement="bottom"
503
- trigger="focus"
504
- :arrowPointAtCenter="true"
505
- :overlayStyle="{ width: '1000px', height: '30vh' }">
506
- <template #content>
507
- <x-report
508
- v-if="isCover"
509
- :use-oss-for-img="false"
510
- :config-name="queryParamsName"
511
- :service-name="serviceName"
512
- :show-img-in-cell="true"
513
- :display-only="true"
514
- :edit-mode="false"
515
- :show-save-button="true"
516
- :no-padding="true"
517
- :dont-format="true"
518
- @rowChoose="rowChoose"
519
- @cancel="closeRowChooseInput"
520
- >
521
- </x-report>
522
- <x-form-table
523
- v-else
524
- title="请选择数据"
525
- :queryParamsName="queryParamsName"
526
- :rowSelectMode="true"
527
- :allowSelectRowNum="1"
528
- :service-name="serviceName"
529
- :fixed-query-form="rowChooseFixedQueryValue"
530
- @rowChoose="rowChoose"
531
- @afterQuery="rowChooseSearchAfterQuery"
532
- ref="rowChooseTable">
533
- <template #button>
534
- <a-button @click="closeRowChooseInput">
535
- 关闭
536
- </a-button>
537
- </template>
538
- </x-form-table>
539
- </template>
540
- <a-input
541
- v-model="form[attr.model]"
542
- :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
543
- @change="searchRowChooseData"
544
- @focus="showCloseRowChooseInput"/>
545
- </a-popover>
546
- </a-form-model-item>
547
- </x-form-col>
548
- <!-- 评分框 -->
549
- <x-form-col
550
- v-else-if="attr.type === 'rate' && show"
551
- :labelCol="labelCol"
552
- :flex="attr.flex">
553
- <a-form-model-item
554
- :rules="rules"
555
- :ref="attr.model"
556
- :label="showLabel?attr.name:undefined"
557
- :prop="attr.prop ? attr.prop : attr.model">
558
- <x-rate
559
- v-model="form[attr.model]"
560
- :mode="mode"
561
- :disabled="disabled"
562
- :query-type="attr.queryType"
563
- :max-count="attr.maxCount"
564
- :allow-half="attr.allowHalf"
565
- :icon="attr.rateIcon"
566
- :placeholder="attr.placeholder ? attr.placeholder : '请选择'+attr.name.replace(/\s*/g, '')"
567
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
568
- />
569
- </a-form-model-item>
570
- </x-form-col>
571
- <!-- 区间选择器 -->
572
- <x-form-col
573
- v-else-if="attr.type === 'intervalPicker' && show"
574
- :labelCol="labelCol"
575
- :flex="attr.flex">
576
- <a-form-model-item
577
- :rules="rules"
578
- :ref="attr.model"
579
- :label="showLabel?attr.name:undefined"
580
- :prop="attr.prop ? attr.prop : attr.model">
581
- <x-interval-picker
582
- v-model="form[attr.model]"
583
- :mode="mode"
584
- :read-only="readOnly"
585
- :disabled="disabled && !readOnly"
586
- :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
587
- :start-placeholder="attr.startPlaceholder || '起始值'"
588
- :end-placeholder="attr.endPlaceholder || '结束值'"
589
- @blur="attr.inputOnBlurFunc && emitFunc(attr.inputOnBlurFunc,attr)"
590
- />
591
- </a-form-model-item>
592
- </x-form-col>
593
- <!-- 车牌号选择 -->
594
- <x-form-col
595
- v-else-if="attr.type === 'licensePlate' && show"
596
- :labelCol="labelCol"
597
- :flex="attr.flex">
598
- <a-form-model-item
599
- :rules="rules"
600
- :ref="attr.model"
601
- :label="showLabel?attr.name:undefined"
602
- :style="layout === 'inline'&& attr.occupyCol && attr.occupyCol > 1? {width:`calc(100% - ${attr.occupyCol * 1.533}rem)`}:{}"
603
- :prop="attr.prop ? attr.prop : attr.model">
604
- <!-- 如果配置了后置按钮插槽 -->
605
- <a-input
606
- v-if="mode ==='查询'"
607
- v-model="form[attr.model]"
608
- :whitespace="true"
609
- :read-only="readOnly"
610
- :disabled="disabled && !readOnly"
611
- style="width:100%"
612
- @blur="attr.inputOnBlurFunc && emitFunc(attr.inputOnBlurFunc,attr)"
613
- :placeholder="attr.placeholder ? attr.placeholder : '请输入'+attr.name.replace(/\s*/g, '')"
614
- :ref="`${attr.model}input`"/>
615
- <x-license-plate
616
- v-else
617
- v-model="form[attr.model]"
618
- @change="attr.dataChangeFunc && debouncedDataChangeFunc()"
619
- ></x-license-plate>
620
- </a-form-model-item>
621
- </x-form-col>
622
- <!-- 录音 -->
623
- <x-form-col
624
- v-else-if="attr.type === 'recording' && show"
625
- :labelCol="labelCol"
626
- :flex="attr.flex">
627
- <recording
628
- ref="recording"
629
- @recordingData="recordingData"
630
- >
631
- </recording>
632
- </x-form-col>
633
- <!-- 表格录入 -->
634
- <x-form-col
635
- v-else-if="attr.type === 'rowEdit' && show"
636
- :labelCol="labelCol"
637
- :flex="attr.flex">
638
- <a-form-model-item
639
- :rules="rules"
640
- :ref="attr.model"
641
- :label="showLabel?attr.name:undefined"
642
- :prop="attr.prop ? attr.prop : attr.model">
643
- <x-form-table
644
- :key="'childTable_' + attr.model"
645
- :title="attr.name"
646
- :queryParamsName="attr.crud"
647
- :localEditMode="true"
648
- :fixed-query-form="childTableFixedQueryForm(attr)"
649
- :service-name="serviceName"
650
- @hook:mounted="(h)=>onComponentMounted(h, attr)"
651
- :ref="'childXFormTable_' + attr.model">
652
- </x-form-table>
653
- </a-form-model-item>
654
- </x-form-col>
655
- </template>
656
- <script>
657
- import { debounce } from 'ant-design-vue/lib/vc-table/src/utils'
658
- import XFormCol from '@vue2-client/base-client/components/common/XFormCol'
659
- import XBadge from '@vue2-client/base-client/components/common/XBadge'
660
- import CitySelect from '@vue2-client/base-client/components/common/CitySelect'
661
- import PersonSetting from '@vue2-client/base-client/components/common/PersonSetting'
662
- import AddressSearchCombobox from '@vue2-client/base-client/components/common/AddressSearchCombobox'
663
- import Upload from '@vue2-client/base-client/components/common/Upload'
664
- import moment from 'moment'
665
- import { getConfigByName, runLogic, getConfigByNameAsync } from '@vue2-client/services/api/common'
666
- import * as util from '@vue2-client/utils/util'
667
- import XTreeSelect from '@vue2-client/base-client/components/common/XForm/XTreeSelect'
668
- import { searchToListOption, searchToOption } from '@vue2-client/services/v3Api'
669
- import { mapState } from 'vuex'
670
- import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
671
- import XLicensePlate from '@vue2-client/base-client/components/common/XLicensePlate/XLicensePlate.vue'
672
- import XStatusButton from './XStatusButton.vue'
673
- import XClickChangeBtn from './itemComponent/XClickChangeBtn'
674
- import 'moment/locale/zh-cn'
675
- import XFormDatePicker from '@vue2-client/base-client/components/common/XDatePicker/index.vue'
676
- import XIntervalPicker from '@vue2-client/base-client/components/common/XIntervalPicker/XIntervalPicker.vue'
677
- import XRate from '@vue2-client/base-client/components/common/XRate/index.vue'
678
-
679
- export default {
680
- name: 'XFormItem',
681
- components: {
682
- XFormDatePicker,
683
- XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'),
684
- Recording: () => import('@vue2-client/base-client/components/common/Recording/Recording.vue'),
685
- XReport: () => import('@vue2-client/base-client/components/common/XReportGrid/XReport.vue'),
686
- XLicensePlate,
687
- XTreeSelect,
688
- XFormCol,
689
- XBadge,
690
- CitySelect,
691
- PersonSetting,
692
- AddressSearchCombobox,
693
- Upload,
694
- XStatusButton,
695
- XClickChangeBtn,
696
- XIntervalPicker,
697
- XRate
698
- },
699
- data () {
700
- // 检索去抖
701
- this.fetchFunction = debounce(this.fetchFunction, 800)
702
- return {
703
- option: [],
704
- // 最后检索版本
705
- lastFetchId: 0,
706
- // 检索中
707
- searching: false,
708
- searchResult: '',
709
- optionForFunc: [],
710
- // 控制当前表单项是否展示
711
- show: true,
712
- // moment
713
- moment,
714
- // 行选择器浮层是否显示
715
- rowChoosePopoverVisible: false,
716
- // 行选择器CRUD固定查询值
717
- rowChooseFixedQueryValue: undefined
718
- }
719
- },
720
- props: {
721
- attr: {
722
- type: Object,
723
- default:
724
- () => {
725
- return {}
726
- }
727
- },
728
- form: {
729
- type: Object,
730
- required:
731
- true
732
- },
733
- disabled: {
734
- type: Boolean,
735
- default:
736
- () => {
737
- return false
738
- }
739
- },
740
- readOnly: {
741
- type: Boolean,
742
- default:
743
- () => {
744
- return false
745
- }
746
- },
747
- mode: {
748
- type: String,
749
- default:
750
- () => {
751
- return '查询'
752
- }
753
- },
754
- files: {
755
- type: Array,
756
- default:
757
- () => {
758
- return []
759
- }
760
- },
761
- images: {
762
- type: Array,
763
- default:
764
- () => {
765
- return []
766
- }
767
- },
768
- serviceName: {
769
- type: String,
770
- default:
771
- undefined
772
- },
773
- // 调用logic获取数据源的追加参数
774
- getDataParams: {
775
- type: Object,
776
- default:
777
- undefined
778
- },
779
- // 布局
780
- layout: {
781
- type: String,
782
- default:
783
- 'horizontal'
784
- },
785
- // 环境
786
- env: {
787
- type: String,
788
- default:
789
- () => {
790
- return 'prod'
791
- }
792
- },
793
- // 设置表单值
794
- setForm: {
795
- type: Function,
796
- default: (val) => {
797
- console.log(val)
798
- }
799
- },
800
- showLabel: {
801
- type: Boolean,
802
- default:
803
- () => {
804
- return true
805
- }
806
- },
807
- labelCol: {
808
- type: Object,
809
- default: () => {
810
- return { span: 8 }
811
- }
812
- },
813
- rules: {
814
- type: Array,
815
- default:
816
- () => {
817
- return undefined
818
- }
819
- }
820
- },
821
- provide () {
822
- return {
823
- FormItemContext: this
824
- }
825
- },
826
- created () {
827
- this.init()
828
- if (this.attr.keyName && (this.attr?.keyName?.toString().indexOf('async ') !== -1 || this.attr?.keyName?.toString()?.indexOf('function') !== -1)) {
829
- this.debouncedUpdateOptions = debounce(this.updateOptions, 200)
830
- }
831
- if (this.attr.dataChangeFunc) {
832
- this.debouncedDataChangeFunc = debounce(this.dataChangeFunc, 200)
833
- // 执行一次
834
- this.dataChangeFunc()
835
- }
836
- if (this.attr.showFormItemFunc) {
837
- this.debouncedShowFormItemFunc = debounce(this.showFormItemFunc, 100)
838
- // 执行一次
839
- this.showFormItemFunc()
840
- }
841
- if (this.attr.showQueryFormItemFunc) {
842
- this.debouncedShowQueryFormItemFunc = debounce(this.showQueryFormItemFunc, 100)
843
- // 执行一次
844
- this.showFormItemFunc()
845
- }
846
- // 人员联动框增加监听
847
- if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString().endsWith(']联动人员')) {
848
- this.debouncedUserLinkFunc = debounce(() => this.updateResOptions('人员'), 200)
849
- }
850
- if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString().endsWith(']联动部门')) {
851
- this.debouncedDepLinkFunc = debounce(() => this.updateResOptions('部门'), 200)
852
- }
853
- // xTreeSelect 自己调用 mounted
854
- if (this.attr.type !== 'treeSelect') {
855
- this.$emit('mounted', this.attr)
856
- }
857
- },
858
- computed: {
859
- ...mapState('account', { currUser: 'user' }),
860
- queryParamsName () {
861
- if (this.attr.keyName.startsWith('function')) {
862
- // 调用异步函数获取内容
863
- return executeStrFunctionByContext(this, this.attr.keyName, [this.form, runLogic, this.mode, getConfigByNameAsync])
864
- } else {
865
- // 按现有方式处理
866
- return this.attr.keyName.split('@')[this.attr.keyName.split('@').length - 1]
867
- }
868
- },
869
- // 判断弹出时是否Cover,弹出只支持Cover以及CRUD
870
- isCover () {
871
- // 如果 queryParamsName 为空,返回空
872
- if (!this.queryParamsName) {
873
- return false
874
- }
875
- const result = this.queryParamsName.endsWith('Cover')
876
- return result
877
- },
878
- },
879
- watch: {
880
- attr: {
881
- handler () {
882
- this.init()
883
- },
884
- deep: true
885
- },
886
- form: {
887
- handler (newVal, oldVal) {
888
- // 如果是从函数获取 options
889
- if (this.attr.keyName && (this.attr.keyName.toString().indexOf('async ') !== -1 || this.attr.keyName.toString().indexOf('function') !== -1)) {
890
- this.debouncedUpdateOptions()
891
- }
892
- // 如果有自定义是否展示表单项函数
893
- if (this.attr.showFormItemFunc) {
894
- this.debouncedShowFormItemFunc()
895
- }
896
- // 如果有自定义是否展示查询表单项函数
897
- if (this.attr.showQueryFormItemFunc) {
898
- this.debouncedShowQueryFormItemFunc()
899
- }
900
- // 地址搜索框赋值
901
- if (this.attr.type === 'addressSearch') {
902
- this.$refs.addressSearchCombobox.addressInput = this.form[this.attr.model]
903
- }
904
- // 数据源来自人员联动时更新数据
905
- if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString().endsWith(']联动人员')) {
906
- this.debouncedUserLinkFunc()
907
- }
908
- // 数据源来自人员联动时更新数据
909
- if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString().endsWith(']联动部门')) {
910
- this.debouncedDepLinkFunc()
911
- }
912
- },
913
- deep: true
914
- }
915
- },
916
- inject: {
917
- getComponentByName: {
918
- default: () => () => {
919
- console.warn('getComponentByName is not provided')
920
- return null // 或者返回一个默认的函数
921
- },
922
- },
923
- registerComponent: {
924
- default: () => () => {
925
- console.warn('registerComponent is not provided')
926
- return null // 或者返回一个默认的函数
927
- },
928
- },
929
- getSelf: {
930
- default: () => () => {
931
- console.warn('getSelf is not provided')
932
- return null // 或者返回一个默认的函数
933
- },
934
- },
935
- XFormContext: {
936
- default: () => () => {
937
- console.warn('XFormContext is not provided')
938
- return null // 或者返回一个默认的函数
939
- },
940
- },
941
- setRequired: {
942
- default: () => () => {
943
- console.warn('setRequired is not provided')
944
- return null // 或者返回一个默认的函数
945
- },
946
- },
947
- removeRequired: {
948
- default: () => () => {
949
- console.warn('removeRequired is not provided')
950
- return null // 或者返回一个默认的函数
951
- },
952
- }
953
- },
954
- methods: {
955
- // 把内部的crud表单录入放到表单中,以便外部可以调用
956
- onComponentMounted (h, attr) {
957
- console.log('crud表单', h)
958
- if (attr.crud) {
959
- this.registerComponent(attr.model, this.$refs['childXFormTable_' + attr.model])
960
- }
961
- },
962
- childTableFixedQueryForm (item) {
963
- console.log('传递的form', this.form)
964
- if (this.modifyModelData?.primaryKeyData) {
965
- const fixedForm = {}
966
- fixedForm[item.childTableForeignKeyName] = Object.values(this.modifyModelData.primaryKeyData)[0]
967
- return fixedForm
968
- }
969
- return null
970
- },
971
- // 动态生成事件绑定对象
972
- generateDynamicEvents (inputOnAfterFunc, attr) {
973
- const events = {}
974
- const states = this.parseStates(attr.inputOnAfterName, inputOnAfterFunc)
975
-
976
- states.forEach((state) => {
977
- // 动态绑定事件名到 emitFunc
978
- events[state.event] = () => {
979
- console.info('事件名', state.event)
980
- this.emitFunc(state.event, attr)
981
- }
982
- })
983
-
984
- return events // 返回 { state1Event: handler, state2Event: handler, ... }
985
- },
986
- parseStates (input, events) {
987
- const eventNames = events.split('|')
988
- return input.split('|').map((label, index) => ({
989
- label,
990
- event: eventNames[index] // 如果没有提供事件名称,则使用默认值
991
- }))
992
- },
993
- focusInput () {
994
- if (this.attr.defaultFocus) {
995
- this.$nextTick(h => {
996
- const el = this.$refs[`${this.attr.model}input`]?.$el
997
- let inputEl
998
- if (el) {
999
- if (el.tagName.toLowerCase() === 'input') {
1000
- inputEl = el
1001
- } else {
1002
- inputEl = el.querySelector('input')
1003
- }
1004
- }
1005
- if (inputEl) {
1006
- inputEl.focus()
1007
- if (inputEl.type === 'number') {
1008
- if (inputEl.valueAsNumber) {
1009
- inputEl.setSelectionRange(0, inputEl.valueAsNumber.toString().length)
1010
- }
1011
- } else {
1012
- if (inputEl.value) {
1013
- inputEl.setSelectionRange(0, inputEl.value.length)
1014
- }
1015
- }
1016
- }
1017
- })
1018
- }
1019
- },
1020
- // 更新人员下拉框数据
1021
- async updateResOptions (type) {
1022
- if (this?.attr?.keyName?.toString()?.startsWith('search@根据表单项[') && this?.attr?.keyName?.toString()?.endsWith(`]联动${type}`)) {
1023
- const startIndex = this.attr.keyName.indexOf('[') + 1
1024
- const endIndex = this.attr.keyName.indexOf(']', startIndex)
1025
- const fromModel = this.attr.keyName.substring(startIndex, endIndex).replace('.', '_')
1026
- const formModelData = Array.isArray(this.form[fromModel])
1027
- ? this.form[fromModel]
1028
- : [this.form[fromModel]]
1029
- if (fromModel?.length && formModelData?.length) {
1030
- const searchData = { source: `获取${type}`, userid: this.currUser.id, filter: formModelData, filterType: fromModel.indexOf('org') > -1 ? 'org' : 'dep' }
1031
- await searchToListOption(searchData, res => {
1032
- this.getDataCallback(
1033
- res.filter(h => {
1034
- if (fromModel.indexOf('org') > -1) {
1035
- return formModelData?.includes(h.orgid || h.f_organization_id || h.parentid)
1036
- } else {
1037
- return formModelData?.includes(h?.parentid)
1038
- }
1039
- }
1040
- )
1041
- )
1042
- })
1043
- }
1044
- }
1045
- },
1046
- // js 函数作为数据源
1047
- async updateOptions () {
1048
- if (this.attr.keyName && (this.attr.keyName.indexOf('async ') !== -1 || this.attr.keyName.indexOf('function ') !== -1)) {
1049
- this.optionForFunc = await executeStrFunctionByContext(this, this.attr.keyName, [this.form, runLogic, this.mode, getConfigByNameAsync])
1050
- }
1051
- },
1052
- async dataChangeFunc () {
1053
- if (this.attr.dataChangeFunc) {
1054
- await executeStrFunctionByContext(this, this.attr.dataChangeFunc, [this.form, this.setForm, this.attr, util, this.mode, runLogic, getConfigByNameAsync])
1055
- }
1056
- },
1057
- async showFormItemFunc () {
1058
- if (this.attr.showFormItemFunc) {
1059
- const obj = executeStrFunctionByContext(this, this.attr.showFormItemFunc, [this.form, this.setForm, this.attr, util, this.mode])
1060
- // 判断是 bool 还是 obj 兼容
1061
- if (typeof obj === 'boolean') {
1062
- this.show = obj
1063
- } else if (obj && typeof obj === 'object') {
1064
- // obj 是一个对象,并且不是数组
1065
- this.show = obj?.show
1066
- this.readOnly = obj?.readOnly
1067
- }
1068
- } else {
1069
- this.show = true
1070
- }
1071
- },
1072
- async showQueryFormItemFunc () {
1073
- if (this.attr.showQueryFormItemFunc) {
1074
- const obj = executeStrFunctionByContext(this, this.attr.showQueryFormItemFunc, [this.form, this.setForm, this.attr, util, this.mode])
1075
- // 判断是 bool 还是 obj 兼容
1076
- if (typeof obj === 'boolean') {
1077
- this.show = obj
1078
- } else if (obj && typeof obj === 'object') {
1079
- // obj 是一个对象,并且不是数组
1080
- this.show = obj?.show
1081
- this.readOnly = obj?.readOnly
1082
- }
1083
- } else {
1084
- this.show = true
1085
- }
1086
- },
1087
- init () {
1088
- if (!this.attr.flex) {
1089
- if (this.mode === '新增/修改') {
1090
- if (['horizontal', 'vertical'].includes(this.layout) || ['textarea', 'file', 'image'].includes(this.attr.type)) {
1091
- // 新增修改表单 horizontal 模式下默认为一行
1092
- this.attr.flex = {
1093
- xs: 24,
1094
- sm: 24,
1095
- md: 24,
1096
- lg: 24,
1097
- xl: 24,
1098
- xxl: 24,
1099
- fullWidth: true
1100
- }
1101
- } else {
1102
- // 新增修改表单 vertical 模式下默认为1列
1103
- this.attr.flex = {
1104
- xs: 24,
1105
- sm: 12,
1106
- md: 8,
1107
- lg: 8,
1108
- xl: 6,
1109
- xxl: 6
1110
- }
1111
- }
1112
- } else {
1113
- this.attr.flex = {
1114
- xs: 24,
1115
- sm: 24,
1116
- md: 8,
1117
- lg: 6,
1118
- xl: 6,
1119
- xxl: 6
1120
- }
1121
- }
1122
- }
1123
- if (this.attr.keyName && typeof this.attr.keyName === 'string') {
1124
- if (this.attr.keyName.indexOf('logic@') !== -1) {
1125
- this.getData({}, res => this.getDataCallback(res))
1126
- } else if (this.attr.keyName.indexOf('search@') !== -1) {
1127
- // `tool.getFullTree(this.getRights().where(row.getType()==$organization$))`
1128
- // 判断是否根据角色查询
1129
- let source = this.attr.keyName.substring(7)
1130
- const userid = this.currUser.id
1131
- let roleName = 'roleName'
1132
- if (source.startsWith('根据角色[') && source.endsWith(']获取人员')) {
1133
- const startIndex = source.indexOf('[') + 1
1134
- const endIndex = source.indexOf(']', startIndex)
1135
- roleName = source.substring(startIndex, endIndex)
1136
- source = '根据角色获取人员'
1137
- }
1138
- const searchData = { source, userid, roleName }
1139
- // 判断是否根据某个表单项联动 仅返回列表结构并筛选
1140
- if (source.startsWith('根据表单项[') && source.endsWith(']联动人员')) {
1141
- this.updateResOptions('人员')
1142
- } else if (source.startsWith('根据表单项[') && source.endsWith(']联动部门')) {
1143
- this.updateResOptions('部门')
1144
- } else if (this.attr.type === 'select' || this.attr.type === 'checkbox') {
1145
- // 仅获取最内层数据
1146
- searchToListOption(searchData, res => this.getDataCallback(res))
1147
- } else {
1148
- // 其他资源通用逻辑
1149
- searchToOption(searchData, res => this.getDataCallback(res))
1150
- }
1151
- } else if (this.attr.keyName.indexOf('config@') !== -1) {
1152
- const configName = this.attr.keyName.substring(7)
1153
- getConfigByName(configName, this.serviceName, res => {
1154
- this.getDataCallback(res.value)
1155
- }, this.env === 'dev')
1156
- } else if (this.attr.keyName.indexOf('async ') !== -1 || this.attr.keyName.indexOf('function ') !== -1) {
1157
- this.updateOptions()
1158
- }
1159
- } else if (this.attr.keys) {
1160
- this.getDataCallback(this.attr.keys)
1161
- }
1162
- this.focusInput()
1163
- },
1164
- addressSearchComboboxSelect (data) {
1165
- this.form = Object.assign(this.form, JSON.parse(data))
1166
- },
1167
- onDivisionsChange (data) {
1168
- this.emitFunc('addressSearchComboboxSelect', {
1169
- key: this.attr.model,
1170
- value: data
1171
- })
1172
- },
1173
- getDataCallback (res) {
1174
- this.option = res
1175
- if (this.attr.type === 'treeSelect') {
1176
- this.$nextTick(() => {
1177
- this.$refs.xTreeSelect.init({
1178
- option: this.option,
1179
- form: this.form,
1180
- queryType: this.attr.queryType,
1181
- name: this.attr.name,
1182
- model: this.attr.model,
1183
- mode: this.mode,
1184
- disabled: this.disabled
1185
- })
1186
- })
1187
- } else if (this.attr.type === 'radio' || ['radioGroup', 'clickChange'].includes(this.attr.showMode)) {
1188
- this.initRadioValue()
1189
- }
1190
- },
1191
- initRadioValue () {
1192
- const model = this.attr.model
1193
- if (this.mode === '新增/修改' && (this.form[model] === undefined || this.form[model] === null) && !this.attr.prop) {
1194
- if (this.attr.keys && this.attr.keys.length > 1) {
1195
- this.form[model] = this.attr.keys[0].value
1196
- } else if (this.option.length > 1) {
1197
- this.form[model] = this.option[0].value
1198
- }
1199
- }
1200
- },
1201
- // 文件框时设置上传组件的值
1202
- setFiles (fileIds) {
1203
- if (!this.form[this.attr.model]) {
1204
- this.form[this.attr.model] = []
1205
- }
1206
- this.form[this.attr.model] = [...fileIds]
1207
- },
1208
- // 懒加载检索方法
1209
- fetchFunction (value) {
1210
- this.lastFetchId += 1
1211
- const fetchId = this.lastFetchId
1212
- this.option = []
1213
- this.searching = true
1214
- this.getData({
1215
- word: value
1216
- }, res => {
1217
- if (fetchId !== this.lastFetchId) {
1218
- return
1219
- }
1220
- this.option = res
1221
- this.searching = false
1222
- })
1223
- },
1224
- // 获取数据
1225
- getData (value, callbackFun) {
1226
- if (value !== '') {
1227
- const logicName = this.attr.keyName
1228
- const logic = logicName.substring(6)
1229
- // 调用logic前设置参数
1230
- if (this.getDataParams && this.getDataParams[this.attr.model]) {
1231
- Object.assign(value, this.getDataParams[this.attr.model])
1232
- }
1233
- runLogic(logic, Object.assign(value, {
1234
- orgId: this.currUser.orgid,
1235
- userId: this.currUser.id
1236
- }), this.serviceName, this.env === 'dev').then(res => {
1237
- callbackFun(res)
1238
- }).catch(e => {
1239
- callbackFun([])
1240
- console.error('获取数据失败:' + e)
1241
- })
1242
- }
1243
- },
1244
- filterOption (input, option) {
1245
- const child = option.componentOptions.children[0]
1246
- if (child.text) {
1247
- return child.text.toLowerCase().indexOf(input.toLowerCase()) >= 0
1248
- } else if (child.elm.innerText) {
1249
- return child.elm.innerText.toLowerCase().indexOf(input.toLowerCase()) >= 0
1250
- } else {
1251
- return child.child.value.toLowerCase().indexOf(input.toLowerCase()) >= 0
1252
- }
1253
- },
1254
- // 表单项变更函数中调用 控制表单组中表单项组名为 groupName 的表单是否展示
1255
- // func:x-form-show(显示)/x-form-no-show(不显示)
1256
- emitShowFormFunc (func, groupName) {
1257
- this.emitFunc(func, groupName)
1258
- },
1259
- emitFunc (func, data) {
1260
- this.$emit('x-form-item-emit-func', func, data, data?.model ? this.form[data.model] : this.form)
1261
- },
1262
- itemMounted (h) {
1263
- this.$emit('mounted', h)
1264
- },
1265
- rowChoose (rows) {
1266
- this.$emit('rowChoose', rows, this.attr, this.closeRowChooseInput)
1267
- },
1268
- searchRowChooseData () {
1269
- if (this.searching) {
1270
- return
1271
- }
1272
- this.lastFetchId += 1
1273
- const fetchId = this.lastFetchId
1274
- this.searching = true
1275
- if (fetchId !== this.lastFetchId) {
1276
- return
1277
- }
1278
- this.rowChooseFixedQueryValue = []
1279
- this.rowChooseFixedQueryValue[this.attr.model] = this.form[this.attr.model]
1280
- this.$nextTick(() => {
1281
- this.$refs.rowChooseTable.refresh(true)
1282
- })
1283
- },
1284
- showCloseRowChooseInput () {
1285
- this.rowChoosePopoverVisible = true
1286
- },
1287
- closeRowChooseInput () {
1288
- this.rowChoosePopoverVisible = false
1289
- },
1290
- rowChooseSearchAfterQuery () {
1291
- this.searching = false
1292
- },
1293
- // 获取 recording 转换后的数据
1294
- getRecodingData () {
1295
- return this.$refs.recording.getRecordingData()
1296
- },
1297
- recordingData (data) {
1298
- this.emitFunc('recordingData', data)
1299
- },
1300
- getPopupContainer (triggerNode) {
1301
- return document.body
1302
- // return triggerNode.parentNode
1303
- },
1304
- }
1305
- }
1306
- </script>
1307
-
1308
- <style lang="less" scoped>
1309
- .custom-dropdown {
1310
- position: absolute;
1311
- z-index: 1050;
1312
- }
1313
- .multiple_select {
1314
- :deep(.ant-select-selection){
1315
- max-height: 32px;
1316
- overflow-y: scroll;
1317
- }
1318
- }
1319
-
1320
- </style>