cnhis-design-vue 3.2.14-release.0 → 3.2.15-beta.10

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 (366) hide show
  1. package/README.md +87 -87
  2. package/es/components/ai-chat/index.d.ts +1 -0
  3. package/es/components/ai-chat/src/Index.vue.d.ts +1 -0
  4. package/es/components/ai-chat/src/components/ChatCard.js +1 -1
  5. package/es/components/ai-chat/src/components/ChatFooter.vue.d.ts +1 -0
  6. package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
  7. package/es/components/ai-chat/src/components/ChatMain.js +1 -1
  8. package/es/components/ai-chat/src/components/ChatPatient.vue2.js +1 -1
  9. package/es/components/ai-chat/src/components/ChatPrompt.vue2.js +1 -1
  10. package/es/components/ai-chat/style/index.css +1 -1
  11. package/es/components/audio-sdk/src/components/recording.vue2.js +1 -1
  12. package/es/components/base-search/index.d.ts +8 -3
  13. package/es/components/base-search/src/index.vue.d.ts +8 -3
  14. package/es/components/base-search/src/index.vue2.js +1 -1
  15. package/es/components/big-table/src/BigTable.vue2.js +1 -1
  16. package/es/components/big-table/src/components/NoData.vue2.js +1 -1
  17. package/es/components/big-table/src/components/edit-form/edit-date.js +1 -1
  18. package/es/components/big-table/src/components/edit-form/edit-input.js +1 -1
  19. package/es/components/big-table/src/components/edit-form/edit-select.js +1 -1
  20. package/es/components/big-table/src/components/edit-form/edit-time.js +1 -1
  21. package/es/components/big-table/src/components/input-button.vue2.js +1 -1
  22. package/es/components/big-table/src/hooks/useNestTable.js +1 -1
  23. package/es/components/big-table/src/hooks/useTableParse.js +1 -1
  24. package/es/components/body-select/src/index.vue2.js +1 -1
  25. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  26. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  27. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  28. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  29. package/es/components/branch-notice/index.d.ts +479 -0
  30. package/es/components/branch-notice/index.js +1 -0
  31. package/es/components/branch-notice/src/BranchNotice.vue.d.ts +433 -0
  32. package/es/components/branch-notice/src/BranchNotice.vue.js +1 -0
  33. package/es/components/branch-notice/src/BranchNotice.vue2.js +1 -0
  34. package/es/components/branch-notice/src/canstants.d.ts +8 -0
  35. package/es/components/branch-notice/src/canstants.js +1 -0
  36. package/es/components/branch-notice/src/components/NoticeItem.vue.d.ts +275 -0
  37. package/es/components/branch-notice/src/components/NoticeItem.vue.js +1 -0
  38. package/es/components/branch-notice/src/components/NoticeItem.vue2.js +1 -0
  39. package/es/components/branch-notice/src/components/NoticeItemAside.vue.d.ts +104 -0
  40. package/es/components/branch-notice/src/components/NoticeItemAside.vue.js +1 -0
  41. package/es/components/branch-notice/src/components/NoticeItemAside.vue2.js +1 -0
  42. package/es/components/branch-notice/src/components/NoticeOperationList.vue.d.ts +49 -0
  43. package/es/components/branch-notice/src/components/NoticeOperationList.vue.js +1 -0
  44. package/es/components/branch-notice/src/components/NoticeOperationList.vue2.js +1 -0
  45. package/es/components/branch-notice/src/drawLine.d.ts +2 -0
  46. package/es/components/branch-notice/src/drawLine.js +1 -0
  47. package/es/components/branch-notice/src/hooks/useTheme.d.ts +1 -0
  48. package/es/components/branch-notice/src/hooks/useTheme.js +1 -0
  49. package/es/components/branch-notice/src/types.d.ts +32 -0
  50. package/es/components/branch-notice/src/types.js +1 -0
  51. package/es/components/branch-notice/style/index.css +1 -0
  52. package/es/components/button-print/index.d.ts +4 -0
  53. package/es/components/button-print/src/ButtonPrint.vue.d.ts +4 -0
  54. package/es/components/button-print/src/ButtonPrint.vue2.js +1 -1
  55. package/es/components/button-print/src/components/EditFormat.vue2.js +1 -1
  56. package/es/components/button-print/src/components/IdentityVerification.vue2.js +1 -1
  57. package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +4 -0
  58. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
  59. package/es/components/button-print/src/components/OldPrintComponent.vue2.js +1 -1
  60. package/es/components/button-print/src/components/Preview.vue2.js +1 -1
  61. package/es/components/button-print/src/utils/dialog.js +1 -1
  62. package/es/components/button-print/src/utils/print.js +1 -1
  63. package/es/components/calendar/index.d.ts +4 -4
  64. package/es/components/calendar/src/Calendar.vue.d.ts +4 -4
  65. package/es/components/card-reader-sdk/src/components/readCardDialog.vue2.js +1 -1
  66. package/es/components/card-reader-sdk/src/utils/readHealthCard.js +1 -1
  67. package/es/components/classification/index.d.ts +1 -0
  68. package/es/components/classification/src/components/search-filter/index.vue2.js +1 -1
  69. package/es/components/classification/src/components/set-classification/index.vue2.js +1 -1
  70. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  71. package/es/components/classification/src/components/table-modal/index.vue2.js +1 -1
  72. package/es/components/classification/src/index.vue.d.ts +1 -0
  73. package/es/components/classification/src/index.vue2.js +1 -1
  74. package/es/components/classification/style/index.css +1 -1
  75. package/es/components/default-page/src/constants/index.js +1 -1
  76. package/es/components/default-page/src/index.vue2.js +1 -1
  77. package/es/components/expand-field/src/components/FormBatchOptionsModal.vue2.js +1 -1
  78. package/es/components/expand-field/src/components/FormItemPerson.vue2.js +1 -1
  79. package/es/components/expand-field/src/components/PersonModal.vue2.js +1 -1
  80. package/es/components/expand-field/src/components/form.vue2.js +1 -1
  81. package/es/components/expand-field/src/index.vue2.js +1 -1
  82. package/es/components/expand-field/src/utils/constant.js +1 -1
  83. package/es/components/fabric-chart/index.d.ts +23 -4
  84. package/es/components/fabric-chart/src/FabricChart.vue.d.ts +23 -4
  85. package/es/components/fabric-chart/src/FabricChart.vue2.js +1 -1
  86. package/es/components/fabric-chart/src/components/PopupMenu.js +1 -1
  87. package/es/components/fabric-chart/src/components/PopupTip.vue.d.ts +13 -0
  88. package/es/components/fabric-chart/src/components/PopupTip.vue2.js +1 -1
  89. package/es/components/fabric-chart/src/components/useStyle.js +1 -1
  90. package/es/components/fabric-chart/src/constants/index.d.ts +1 -1
  91. package/es/components/fabric-chart/src/constants/index.js +1 -1
  92. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcess.js +1 -1
  93. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcessChart.d.ts +1 -0
  94. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcessChart.js +1 -1
  95. package/es/components/fabric-chart/src/hooks/electrocardiogram/hooks/useDetailEvent.js +1 -1
  96. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogram.js +1 -1
  97. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.d.ts +1 -0
  98. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.js +1 -1
  99. package/es/components/fabric-chart/src/hooks/electrocardiogram/useMeasureInstrument.js +1 -1
  100. package/es/components/fabric-chart/src/hooks/index.d.ts +1 -0
  101. package/es/components/fabric-chart/src/hooks/index.js +1 -1
  102. package/es/components/fabric-chart/src/hooks/newBirthProcess/useNewBirthProcess.js +1 -1
  103. package/es/components/fabric-chart/src/hooks/newBirthProcess/useNewBirthProcessChart.js +1 -1
  104. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useCenter.d.ts +1 -1
  105. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useCenter.js +1 -1
  106. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useLeft.js +1 -1
  107. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useOther.js +1 -1
  108. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useSurgicalAnesthesiaChart.d.ts +1 -0
  109. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useSurgicalAnesthesiaChart.js +1 -1
  110. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useTop.d.ts +7 -1
  111. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useTop.js +1 -1
  112. package/es/components/fabric-chart/src/hooks/temperature/useBottom.js +1 -1
  113. package/es/components/fabric-chart/src/hooks/temperature/useCenter.js +1 -1
  114. package/es/components/fabric-chart/src/hooks/temperature/useLeft.js +1 -1
  115. package/es/components/fabric-chart/src/hooks/temperature/useOther.js +1 -1
  116. package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.d.ts +1 -0
  117. package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.js +1 -1
  118. package/es/components/fabric-chart/src/hooks/temperature/useTop.js +1 -1
  119. package/es/components/fabric-chart/src/hooks/useCommon.js +1 -1
  120. package/es/components/fabric-chart/src/hooks/useDraw.js +1 -1
  121. package/es/components/fabric-chart/src/hooks/{temperature/useShadow.d.ts → useShadow.d.ts} +2 -2
  122. package/es/components/fabric-chart/src/hooks/useShadow.js +1 -0
  123. package/es/components/fabric-chart/src/interface.d.ts +3 -0
  124. package/es/components/fabric-chart/src/utils/index.d.ts +2 -1
  125. package/es/components/fabric-chart/src/utils/index.js +1 -1
  126. package/es/components/field-set/src/FieldColor.vue.d.ts +7 -7
  127. package/es/components/field-set/src/FieldColor.vue2.js +1 -1
  128. package/es/components/field-set/src/FieldFilter.vue.d.ts +9 -8
  129. package/es/components/field-set/src/FieldFilter.vue2.js +1 -1
  130. package/es/components/field-set/src/FieldSet.vue.d.ts +7 -7
  131. package/es/components/field-set/src/FieldSet.vue2.js +1 -1
  132. package/es/components/field-set/src/Index.vue2.js +1 -1
  133. package/es/components/field-set/src/TableStyle.vue2.js +1 -1
  134. package/es/components/field-set/src/components/condition.vue2.js +1 -1
  135. package/es/components/field-set/src/components/edit-dialog.vue.d.ts +1 -1
  136. package/es/components/field-set/src/components/edit-dialog.vue2.js +1 -1
  137. package/es/components/field-set/src/components/edit-filter.vue2.js +1 -1
  138. package/es/components/field-set/src/components/table-row.vue.d.ts +6 -6
  139. package/es/components/field-set/src/components/table-row.vue2.js +1 -1
  140. package/es/components/field-set/src/constants/filter.d.ts +21 -12
  141. package/es/components/field-set/src/constants/filter.js +1 -1
  142. package/es/components/field-set/src/constants/index.js +1 -1
  143. package/es/components/field-set/src/types/index.d.ts +1 -1
  144. package/es/components/form-config/index.d.ts +108 -3
  145. package/es/components/form-config/src/FormConfig.vue.d.ts +108 -3
  146. package/es/components/form-config/src/FormConfig.vue2.js +1 -1
  147. package/es/components/form-config/src/components/FormConfigEventSetting.vue.js +1 -0
  148. package/es/components/form-config/src/components/FormConfigEventSetting.vue2.js +1 -0
  149. package/es/components/form-config/src/constants/index.js +1 -1
  150. package/es/components/form-config/src/hooks/useLocale.js +1 -1
  151. package/es/components/form-render/index.js +1 -1
  152. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  153. package/es/components/form-render/src/components/renderer/combination/combination.js +1 -1
  154. package/es/components/form-render/src/components/renderer/combination/hooks/useCombination.js +1 -1
  155. package/es/components/form-render/src/components/renderer/combination/jsonCombination.js +1 -1
  156. package/es/components/form-render/src/components/renderer/combination/tableCombination.js +1 -1
  157. package/es/components/form-render/src/components/renderer/complex.js +1 -1
  158. package/es/components/form-render/src/components/renderer/date.js +1 -1
  159. package/es/components/form-render/src/components/renderer/radio_checkbox.js +1 -1
  160. package/es/components/form-render/src/components/renderer/remoteSearch.js +1 -1
  161. package/es/components/form-render/src/components/renderer/searchCascade.js +1 -1
  162. package/es/components/form-render/src/components/renderer/select.js +1 -1
  163. package/es/components/form-render/src/components/renderer/switch.js +1 -1
  164. package/es/components/form-render/src/components/renderer/text.js +1 -1
  165. package/es/components/form-render/src/components/renderer/textarea.js +1 -1
  166. package/es/components/form-render/src/hooks/useAnchor.js +1 -1
  167. package/es/components/form-render/src/hooks/useBusinessBinding.js +1 -1
  168. package/es/components/form-render/src/hooks/useComplexOptions.js +1 -1
  169. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +1 -1
  170. package/es/components/form-render/src/hooks/useFieldNormalize.js +1 -1
  171. package/es/components/form-render/src/hooks/useFormEvent.js +1 -1
  172. package/es/components/form-render/src/hooks/useFormValidator.js +1 -1
  173. package/es/components/form-render/src/hooks/usePresetScope.d.ts +1 -1
  174. package/es/components/form-render/src/hooks/usePresetScope.js +1 -1
  175. package/es/components/form-render/src/utils/index.d.ts +1 -0
  176. package/es/components/form-render/src/utils/index.js +1 -1
  177. package/es/components/iho-chat/index.d.ts +885 -66
  178. package/es/components/iho-chat/src/Index.vue.d.ts +888 -73
  179. package/es/components/iho-chat/src/Index.vue2.js +1 -1
  180. package/es/components/iho-chat/src/api/index.d.ts +1 -0
  181. package/es/components/iho-chat/src/api/index.js +1 -1
  182. package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +33 -1
  183. package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
  184. package/es/components/iho-chat/src/components/ChatFile.vue.d.ts +54 -3
  185. package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
  186. package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +54 -2
  187. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
  188. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +232 -13
  189. package/es/components/iho-chat/src/components/ChatHeader.vue2.js +1 -1
  190. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +86 -7
  191. package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
  192. package/es/components/iho-chat/src/components/ChatRecord.vue.d.ts +20 -1
  193. package/es/components/iho-chat/src/components/ChatRecord.vue2.js +1 -1
  194. package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +44 -5
  195. package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
  196. package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +75 -5
  197. package/es/components/iho-chat/src/components/ChatSet.vue2.js +1 -1
  198. package/es/components/iho-chat/src/components/ContextMenu.d.ts +11 -2
  199. package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
  200. package/es/components/iho-chat/src/components/MessageTemplate.vue.d.ts +1 -1
  201. package/es/components/iho-chat/src/components/MessageTemplate.vue2.js +1 -1
  202. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +53 -2
  203. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
  204. package/es/components/iho-chat/src/components/PersonProfile.vue.d.ts +21 -2
  205. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  206. package/es/components/iho-chat/src/components/SiderList.vue.d.ts +276 -5
  207. package/es/components/iho-chat/src/components/SiderList.vue2.js +1 -1
  208. package/es/components/iho-chat/src/components/Video.vue.d.ts +20 -1
  209. package/es/components/iho-chat/src/components/Video.vue2.js +1 -1
  210. package/es/components/iho-chat/src/components/userItemRender.d.ts +18 -0
  211. package/es/components/iho-chat/src/components/userItemRender.js +1 -0
  212. package/es/components/iho-chat/src/constants/index.d.ts +12 -3
  213. package/es/components/iho-chat/src/constants/index.js +1 -1
  214. package/es/components/iho-chat/src/hooks/index.d.ts +2 -2
  215. package/es/components/iho-chat/src/hooks/index.js +1 -1
  216. package/es/components/iho-chat/src/hooks/useData.d.ts +96 -0
  217. package/es/components/iho-chat/src/hooks/useData.js +1 -0
  218. package/es/components/iho-chat/src/hooks/useSearchUserList.js +1 -1
  219. package/es/components/iho-chat/src/hooks/useVideo.d.ts +20 -1
  220. package/es/components/iho-chat/src/hooks/useVideo.js +1 -1
  221. package/es/components/iho-chat/src/hooks/useWebSocket.d.ts +3 -0
  222. package/es/components/iho-chat/src/hooks/useWebSocket.js +1 -0
  223. package/es/components/iho-chat/src/types/index.d.ts +2 -6
  224. package/es/components/iho-chat/src/types/index.js +1 -1
  225. package/es/components/iho-chat/src/utils/chatSock.js +1 -1
  226. package/es/components/iho-chat/src/utils/index.d.ts +2 -0
  227. package/es/components/iho-chat/src/utils/index.js +1 -1
  228. package/es/components/iho-chat/style/index.css +1 -1
  229. package/es/components/iho-table/src/hooks/useColumnConfigAdaptor.js +1 -1
  230. package/es/components/iho-table/src/plugins/dynamicFilterRenderPlugin/dynamicFilter.vue2.js +1 -1
  231. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +1 -1
  232. package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
  233. package/es/components/iho-table/src/plugins/filterTextPlugin/filter.vue2.js +1 -1
  234. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/numberRendererPlugin.js +1 -1
  235. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  236. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue2.js +1 -1
  237. package/es/components/iho-table/src/utils/index.js +1 -1
  238. package/es/components/index.css +1 -1
  239. package/es/components/index.d.ts +2 -1
  240. package/es/components/index.js +1 -1
  241. package/es/components/info-header/src/components/patientInfo/index.vue2.js +1 -1
  242. package/es/components/keyboard/src/Keyboard.vue2.js +1 -1
  243. package/es/components/keyboard/src/components/NumberPanel.vue2.js +1 -1
  244. package/es/components/map/src/Map.vue2.js +1 -1
  245. package/es/components/picture-clipper/src/PictureClipper.vue2.js +1 -1
  246. package/es/components/quick-search/index.d.ts +3 -1
  247. package/es/components/quick-search/src/index.vue.d.ts +3 -1
  248. package/es/components/quick-search/src/index.vue2.js +1 -1
  249. package/es/components/quick-search/style/index.css +1 -1
  250. package/es/components/recommend-search/src/components/BaseSearch.js +1 -1
  251. package/es/components/recommend-search/src/components/RecommendInput.vue2.js +1 -1
  252. package/es/components/recommend-search/src/components/RecommendSelect.vue2.js +1 -1
  253. package/es/components/scale-view/index.d.ts +31 -0
  254. package/es/components/scale-view/src/ScaleView.vue.d.ts +13 -0
  255. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  256. package/es/components/scale-view/src/components/NoData.vue2.js +1 -1
  257. package/es/components/scale-view/src/components/composables/choose-common.js +1 -1
  258. package/es/components/scale-view/src/components/formitem/r-cascader.js +1 -1
  259. package/es/components/scale-view/src/components/formitem/r-checkbox.d.ts +9 -0
  260. package/es/components/scale-view/src/components/formitem/r-checkbox.js +1 -1
  261. package/es/components/scale-view/src/components/formitem/r-input.d.ts +9 -0
  262. package/es/components/scale-view/src/components/formitem/r-input.js +1 -1
  263. package/es/components/scale-view/src/components/formitem/r-map.js +1 -1
  264. package/es/components/scale-view/src/components/formitem/r-radio.d.ts +9 -0
  265. package/es/components/scale-view/src/components/formitem/r-radio.js +1 -1
  266. package/es/components/scale-view/src/components/formitem/r-select.js +1 -1
  267. package/es/components/scale-view/src/components/formitem/r-sign.js +1 -1
  268. package/es/components/scale-view/src/components/formitem/standard-modal.js +1 -1
  269. package/es/components/scale-view/src/hooks/scaleview-computed.js +1 -1
  270. package/es/components/scale-view/src/hooks/scaleview-methods.js +1 -1
  271. package/es/components/scale-view/src/hooks/scaleview-props.d.ts +4 -0
  272. package/es/components/scale-view/src/hooks/scaleview-props.js +1 -1
  273. package/es/components/scale-view/src/hooks/scaleview-submit.js +1 -1
  274. package/es/components/scale-view/src/hooks/scaleview-validate.js +1 -1
  275. package/es/components/scale-view/src/hooks/use-component.d.ts +72 -0
  276. package/es/components/scale-view/style/index.css +1 -1
  277. package/es/components/search-cascader/src/SearchCascader.vue2.js +1 -1
  278. package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
  279. package/es/components/select-label/src/SelectLabel.vue2.js +1 -1
  280. package/es/components/select-label/src/components/label-classify.vue2.js +1 -1
  281. package/es/components/select-label/src/ihoLabel/IhoLabelFormContent.vue2.js +1 -1
  282. package/es/components/select-label/src/ihoLabel/IhoSelectLabel.vue2.js +1 -1
  283. package/es/components/select-label/src/ihoLabel/iho-label-classify.vue2.js +1 -1
  284. package/es/components/select-person/src/SelectPerson.vue2.js +1 -1
  285. package/es/components/select-person/src/SelectPersonType.vue2.js +1 -1
  286. package/es/components/select-person/src/components/SearchOrgAndStaff.vue2.js +1 -1
  287. package/es/components/select-person/src/index.vue2.js +1 -1
  288. package/es/components/slider-tree/src/index.vue2.js +1 -1
  289. package/es/components/table-export-field/src/components/ExportModal.vue2.js +1 -1
  290. package/es/components/table-export-field/src/components/SaveProjectModal.vue2.js +1 -1
  291. package/es/components/table-export-field/src/index.vue2.js +1 -1
  292. package/es/components/table-filter/src/components/bi-filter/ValueCfg.vue2.js +1 -1
  293. package/es/components/table-filter/src/components/bi-filter/helpers/options.js +1 -1
  294. package/es/components/table-filter/src/components/bi-filter/index.vue2.js +1 -1
  295. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue2.js +1 -1
  296. package/es/components/table-filter/src/components/classify-filter/components/Date.vue2.js +1 -1
  297. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue2.js +1 -1
  298. package/es/components/table-filter/src/components/classify-filter/components/InputFilter.vue2.js +1 -1
  299. package/es/components/table-filter/src/components/classify-filter/components/InputNumberGroup.vue2.js +1 -1
  300. package/es/components/table-filter/src/components/classify-filter/helpers/options.js +1 -1
  301. package/es/components/table-filter/src/components/classify-filter/hooks/useDisplayCategory.js +1 -1
  302. package/es/components/table-filter/src/components/classify-filter/index.vue2.js +1 -1
  303. package/es/components/table-filter/src/components/render-widget/components/DateInner.vue2.js +1 -1
  304. package/es/components/table-filter/src/components/render-widget/components/DateOut.vue2.js +1 -1
  305. package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue2.js +1 -1
  306. package/es/components/table-filter/src/components/render-widget/components/DateRangeOut.vue2.js +1 -1
  307. package/es/components/table-filter/src/components/render-widget/components/InputCustom.vue2.js +1 -1
  308. package/es/components/table-filter/src/components/render-widget/components/InputNumberGroup.vue2.js +1 -1
  309. package/es/components/table-filter/src/components/render-widget/components/LabelInner.vue2.js +1 -1
  310. package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue.d.ts +4 -7
  311. package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue2.js +1 -1
  312. package/es/components/table-filter/src/components/render-widget/components/SelectDynamicOption/index.vue2.js +1 -1
  313. package/es/components/table-filter/src/components/render-widget/components/index.d.ts +4 -7
  314. package/es/components/table-filter/src/components/render-widget/helpers/dateExtraMap.js +1 -1
  315. package/es/components/table-filter/src/components/render-widget/helpers/selectExtraMap.js +1 -1
  316. package/es/components/table-filter/src/components/render-widget/index.vue.d.ts +3 -1
  317. package/es/components/table-filter/src/components/render-widget/index.vue.js +1 -1
  318. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +4 -7
  319. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.js +1 -1
  320. package/es/components/table-filter/src/tool/baseOptions.js +1 -1
  321. package/es/components/template-render/src/components/index.d.ts +23 -23
  322. package/es/components/tooth-bitmap/src/ToothBitmap.vue2.js +1 -1
  323. package/es/components/vod-chunk-upload/src/hooks/upload-computed.js +1 -1
  324. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue2.js +1 -1
  325. package/es/components/vod-chunk-upload/src/vod-upload-modal.js +1 -1
  326. package/es/env.d.ts +25 -25
  327. package/es/shared/assets/img/ai__avatar.png.js +1 -1
  328. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  329. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  330. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  331. package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
  332. package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
  333. package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
  334. package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
  335. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  336. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  337. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  338. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  339. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  340. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  341. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  342. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  343. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  344. package/es/shared/assets/img/failure.png.js +1 -1
  345. package/es/shared/assets/img/logo.png.js +1 -1
  346. package/es/shared/assets/img/no-permission.png.js +1 -1
  347. package/es/shared/assets/img/nodata.png.js +1 -1
  348. package/es/shared/assets/img/notfound.png.js +1 -1
  349. package/es/shared/assets/img/qr.png.js +1 -1
  350. package/es/shared/assets/img/success.png.js +1 -1
  351. package/es/shared/assets/img/table_style_2.png.js +1 -1
  352. package/es/shared/assets/img/video.png.js +1 -1
  353. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  354. package/es/shared/assets/img/xb_big.png.js +1 -1
  355. package/es/shared/assets/img/xb_small.png.js +1 -1
  356. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  357. package/es/shared/hooks/useLevelSearchCascader.js +1 -1
  358. package/es/shared/package.json.js +1 -1
  359. package/es/shared/utils/fabricjs/index.d.ts +6823 -0
  360. package/es/shared/utils/tapable/index.d.ts +139 -0
  361. package/package.json +2 -2
  362. package/es/components/fabric-chart/src/hooks/temperature/useShadow.js +0 -1
  363. package/es/components/iho-chat/src/hooks/useSession.d.ts +0 -12
  364. package/es/components/iho-chat/src/hooks/useSession.js +0 -1
  365. package/es/components/iho-chat/src/hooks/useState.d.ts +0 -18
  366. package/es/components/iho-chat/src/hooks/useState.js +0 -1
@@ -8,7 +8,7 @@ export declare function useCenter(canvas: Ref<fabric.Canvas>, propItems: AnyObje
8
8
  item: any;
9
9
  target: any;
10
10
  }) => void;
11
- moveLimit: (point: IObject) => void;
11
+ moveLimit: (point: IObject, limitRight?: any) => void;
12
12
  setPopup: (point: any, status?: string) => void;
13
13
  updateData: (params: AnyObject, mode?: string, n?: number) => void;
14
14
  getGridPoints: () => IObject[];
@@ -1 +1 @@
1
- import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{defaultStyle as t,drawLine as n,drawPoint as i}from"../useDraw.js";import{useGrid as o}from"../useGrid.js";import{useBirthProcessCumputedPoint as l}from"../useCumputedPoint.js";import{bus as r}from"../useEvent.js";import{useCommon as a}from"../useCommon.js";import"vue";import{getPointRange as s,getIndex as f,isEffectiveNode as u,getTime as c}from"../../utils/index.js";import{cloneDeep as p,last as d,omit as m,flatten as v}from"lodash-es";import"date-fns";import"../temperature/useShadow.js";import"@vueuse/shared";import"naive-ui";import{useIntervalFn as g}from"@vueuse/core";function y(y,h,k,x,L,P){const{computedX:w,computedY:b,getXValue:A,getYValue:I}=l(h),{xCellWidth:C,pointSelectionStyle:K,originX:E,endX:j,originY:T,endY:X,event:M,scaleValues:V,xAxis:Y,startTime:S,timeXCell:D,itemList:F,dialog:O,topGridOriginY:$,topGridEndY:_}=h,z=new Map,G=new Set,N=p(V);let J=[],q=null;const R=new Set;o(y,h);const{getEqualXTypes:W,handleAddPrevent:B,setPrevAndNextPoint:H,getPointEventProps:Q}=a(y,k,h),{pause:U,resume:Z}=g((()=>{!function(){if(!R.size)return;for(const e of R)e.set("opacity",1===e.opacity?.5:1);y.value.renderAll()}()}),800);function ee(){N.forEach((e=>{const{range:t=[],spaceValue:i}=e;i&&(t[0]||t[1])&&e.dataList.forEach(((t,i)=>{t.show&&(!function(e,t){const{max:i={},min:o={}}=e.panicValue||{},{max:l={},min:r={}}=e.diffValue||{};function a({show:e=!1,value:i,name:o,lineStyle:l}){if(!e||!i)return;const r=b(t.type,t.range,i),a=n([E,r,j,r],{...l,evented:!0,lockMovementX:!0,lockMovementY:!0,hoverCursor:"pointer"});M.hovered&&o&&(a.on("mousemove",(({pointer:e})=>{x.point={...e||{x:a.left,y:a.top}},x.list=[`${o} ${i}${t.unit||""}`],x.show=!0})),a.on("mouseout",(()=>{x.show=!1}))),y.value.add(a)}a(i),a(o),a(l),a(r)}(t,e),oe(t,i,e))}))}))}function te(e=[]){if(!(null==q?void 0:q.areaPos))return[];const{startPos:t,endPos:n}=q.areaPos,[i,o]=[t.x,n.x].sort(((e,t)=>e-t)),[l,r]=[t.y,n.y].sort(((e,t)=>e-t));return(e.length?e:de()).filter((e=>e.left>=i&&e.left<=o&&e.top>=l&&e.top<=r))}function ne(e){O.warning({maskClosable:!1,closeOnEsc:!1,title:"警告",content:"确认删除当前选中的节点?",positiveText:"确定",negativeText:"取消",onPositiveClick:()=>{e(),ie()},onNegativeClick:()=>ie(),onClose:()=>ie()})}function ie(){q&&y.value.remove(q),q=null}function oe(e,t,o){var l;const{type:r,unit:a,dataList:s=[]}=o,f=[];z.set(e.key,[]),function(e,t){R.size&&[...R].forEach((n=>{const{dataIndex:i,type:o}=n.origin;i===t&&o===e&&R.delete(n)}))}(r,t),null==(l=e.list)||l.forEach(((l,u)=>{!function(e,l,u,c){var p;let v,g,h=c;l.key&&(h=s.find((e=>e.key===l.key)));const{pointAttr:L={},lineAttr:P={},title:w="",key:b,type:K="circle"}=h,E=pe(c.list[u+1],o);e&&E&&!l.breakpoint&&e[0]!==E[0]&&(g=n([...e,...E],P));const j=f[u-1],T={origin:{data:l,title:w,key:c.key,selfKey:b,unit:a,type:r,dataIndex:t,index:u,lineAttr:P},__type:"main",leftLine:j,rightLine:g,...L,...Q()};e&&(j||(T.leftLine=null),v=i(K,{left:e[0],top:e[1],...T}));f.push(g),v&&(v.originLeft=v.left,v.originTop=v.top,function(e){M.hovered&&(e.on("mouseover",(()=>{ue(e,"hover")})),e.on("mouseout",(()=>{x.show=!1})));if(e.lockMovementX&&e.lockMovementY)return;e.on("moving",(()=>{ce(e),function(e){var t,n;null==(t=e.leftLine)||t.setCoords().set({x2:e.left,y2:e.top}),null==(n=e.rightLine)||n.setCoords().set({x1:e.left,y1:e.top})}(e),M.hovered&&ue(e),function(e){var t,n,i,o;const{originLeft:l,originTop:r,left:a,top:s,origin:f}=e,u=~~((a-l)/C);if(a>l+C){if(0===J.length){re(e,[...e.leftLine?[e.leftLine.x1,e.leftLine.y1]:[l,r],l,r]),null==(n=null==(t=e.leftLine)?void 0:t.set)||n.call(t,"stroke","transparent"),null==(o=null==(i=e.rightLine)?void 0:i.set)||o.call(i,"stroke","transparent")}const c=l+C*u;if(J.every((e=>e.left!==c))){const t=A(c),n=I(f.type,s);J.push({data:{time:t,value:n,...f.selfKey!==f.key?{key:f.selfKey}:{}},left:c,top:s}),re(e,[...e.prevPointer,c,s])}if(J.length<u&&function(e,t){const{originLeft:n,originTop:i,origin:o}=e;let l=1;for(;l<=t;){const t=n+C*l,r=J.some((e=>Math.abs(e.left-t)<=1));if(!r){let l=0;const r=J.find(((e,n)=>(e.left>t&&(l=n),e.left>t)));if(r){const a=JSON.parse(JSON.stringify(r)),s=J[l-1]||{left:n,top:i},f=~~((r.left-(t-C))/C),u=(r.top-s.top)/f;a.top=s.top+u,a.left=t,a.data={time:A(t),value:I(o.type,a.top),...o.selfKey!==o.key?{key:o.selfKey}:{}},J.splice(l,0,a),re(e,[s.left,s.top,a.left,a.top])}}l++}}(e,u),e.nextPoint){const t=z.get(f.key);!function(e,t){const{left:n,top:i,origin:o}=t,l=C/2,r=e.findIndex((e=>Math.abs(n-e.left)<l&&Math.abs(i-e.top)<l&&o.index!==e.origin.index));r>-1?(t.set({scaleX:2.5,scaleY:2.5}),t.coincidePoint=e[r]):t.set({scaleX:t.scale,scaleY:t.scale})}(t,e),null==t||t.forEach((e=>{e.left<=l||f.index===e.origin.index||(e.left<a?le(e,"#999"):le(e,e.origin.lineAttr.stroke))}))}}!function(e){var t,n;const{left:i}=e;if(J.length>0&&i<J[J.length-1].left){for(const e of G)e.left>i&&(e.leftLine&&y.value.remove(e.leftLine),y.value.remove(e));if(J=J.filter((e=>e.left<=i)),0===J.length){null==(n=null==(t=e.leftLine)?void 0:t.set)||n.call(t,e.origin.lineAttr);for(const e of G)e.leftLine&&y.value.remove(e.leftLine),y.value.remove(e)}if(J.length>0){const t=d(J);e.prevPointer=[t.left,t.top]}}}(e)}(e)})),e.on("mouseup",(t=>{if(x.show=!1,1===t.button){const{type:t,selfKey:n,dataIndex:i}=e.origin,o={...e.origin,data:{...e.origin.data,time:A(e.left),value:I(t,e.top)}};if(y.value.discardActiveObject(),J.length>0){const l=N.find((e=>e.type===t));let r=-1;const a=J.map((e=>e.data));if(e.nextPoint){if(2.5!==e.scaleX)return void se({dataIndex:i,scaleValue:l});const t=e.coincidePoint.origin,n=t.data;r=t.index;const o=a.findIndex((e=>e.time===n.time));o>-1?a[o].value=n.value:a.push({...d(a),time:n.time,value:n.value})}const s=l.dataList.findIndex((e=>e.key===n));k("add",{...m(o,["index","selfKey","lineAttr"]),dataIndex:s,key:n,data:a}),ae({...o,data:a,coincideIndex:r})}else k("change",{...m(o,["selfKey","lineAttr"]),key:n}),ae(o,"change")}}))}(v),null==(p=z.get(c.key))||p.push(v))}(pe(l,o),l,u,e)})),Promise.all(z.get(e.key)).then((t=>{const n=f.filter((e=>e));H(t),y.value.add(...n,...t),function(e,t){const{max:n={},min:i={}}=t.panicValue||{},{max:o={},min:l={}}=t.diffValue||{};function r({show:t=!1,value:n,flickerable:i},o){!t&&n&&i&&e.forEach((e=>{const t=e.origin.data.value;"max"===o&&t<n||"min"===o&&t>n||R.add(e)}))}r(n,"max"),r(i,"min"),r(o,"max"),r(l,"min")}(t,e)}))}function le(e,t){["stroke","fill"].forEach((n=>{const i=e[n];i&&!["transparent","#fff","#ffffff","#FFFFFF"].includes(i)&&i!==t&&e.set(n,t)})),e.rightLine&&e.rightLine.stroke!==t&&e.rightLine.set("stroke",t)}function re(e,t){const[,,i,o]=t;e.clone((l=>{l.set({left:i,top:o,scaleX:1,scaleY:1}),e.prevPointer=[i,o];const r=n(t,e.origin.lineAttr);l.leftLine=r,G.add(l),y.value.add(r,l)}))}function ae(e,t="add",n=1){const{data:i,index:o,key:l,type:r,coincideIndex:a}=e;let{dataIndex:s}=e;const u=N.find((e=>e.type===r)),c=u.dataList.find(((e,t)=>(s=t,e.key===l)));switch(t){case"remove":c.list.splice(o,n),c.list[o-1]&&(c.list[o-1].breakpoint=!0);break;case"change":c.list[o]=i;break;default:{const e=Array.isArray(i)?i[0].time:i.time,t=f(e,c.list),n=Array.isArray(i)?i:[i];c.list.splice(t,a>-1?a-t+1:0,...n);break}}se({dataIndex:s,scaleValue:u})}function se(e){var t,n,i;if(G.size&&(null==(t=y.value)||t.remove(...fe([...G]))),G.clear(),J=[],e){const{dataIndex:t,scaleValue:i}=e,o=i.dataList[t];null==(n=y.value)||n.remove(...fe(z.get(o.key))),z.delete(o.key),oe(o,t,i)}else z.size&&(null==(i=y.value)||i.remove(...fe(de()))),z.clear(),ee()}function fe(e){const t=[];return e.forEach((e=>{e&&t.push(e),(null==e?void 0:e.leftLine)&&t.push(null==e?void 0:e.leftLine),(null==e?void 0:e.rightLine)&&t.push(null==e?void 0:e.rightLine)})),t}function ue(e,t="moving"){const{title:n,type:i,data:o,unit:l,selfKey:r}=e.origin;x.point={x:e.left,y:e.top};const a=A(e.left),s=`${"hover"===t?o.value:I(i,e.top)}`;x.list=[`${n} ${s}${l||""}`,`时间 ${a.slice(-5)}`],x.sourceData=[{type:i,title:n,unit:l,key:r,time:a,value:s}],x.isTarget=!0,x.show=!0}function ce(e){e.setCoords();const t=6e4/D,n=e.prevPoint?e.prevPoint.left+t:E,i=j;e.top<T&&e.set("top",T),e.top>X&&e.set("top",X),e.left<n&&e.set("left",n),e.left>i&&e.set("left",i)}function pe(e,t){if(u(e)&&function(e){const t=Date.parse(d(Y.list)),n=c(e);return n>=S&&n<=t}(e.time)){const n=w(e.time),i=b(t.type,t.range,e.value);return[n,i<T?T:i>X?X:i]}}function de(){return v(Array.from(z.values()))}return ee(),function(){if(!M.evented)return;let n=!1,i={x:0,y:0};y.value.on("mouse:up",(e=>{if(3===e.button&&function(e){x.show=!1;const{x:t=0,y:n=0}=e.pointer||{};if(t>=E&&t<=j&&n>=T&&n<=X)if(e.target){if("main"!==e.target.__type)return;i(e.pointer,e.target,["删除节点"]);const{minLeft:t,maxLeft:n,minTop:o,maxTop:l}=s(e.target);de().forEach((i=>{"main"===i.__type&&i.left>t&&i.left<n&&i.top>o&&i.top<l&&L.list.push({renderItem:()=>i.origin.title,origin:{...i.origin},mode:"remove",pointer:e.pointer})})),1===L.list.length&&(L.show=!1,console.log("当前时间段内无可删除节点"))}else i(e.pointer,null,["新增节点"]),F.forEach((n=>{W(de(),t,"key",2*C).includes(n.linkKey||n.key)||L.list.push({renderItem:()=>n.title,origin:{title:n.title,unit:n.unit,type:n.bigType,dataIndex:n.dataIndex,key:n.key,linkKey:n.linkKey},pointer:e.pointer})})),1===L.list.length&&(L.show=!1,B("repeat"),console.log("当前时间段内无可新增节点"));function i(e,t,n){Object.assign(L,{point:e,show:!0,target:t,list:n})}}(e),1===e.button&&n){n=!1;const e=te();e.length>0?ne((()=>{const t=function(e){const t=e.reduce(((e,t)=>{const{key:n}=t.origin;return e[n]=e[n]?e[n].concat(t.origin):[t.origin],e}),{});return Object.keys(t).map((e=>{const n=t[e].sort(((e,t)=>Date.parse(e.data.time)-Date.parse(t.data.time)));return ae(n[0],"remove",n.length),n.map((e=>({...m(e,["selfKey","lineAttr"]),key:e.selfKey})))}))}(e);k("remove",t)})):r.emit(q)}})),y.value.on("mouse:down",(e=>{1!==e.button||e.target||(n=!0,i=e.pointer)})),y.value.on("mouse:move",(o=>{if(function(e){if(!P||L.show)return;const{target:t,pointer:n}=e,{x:i=0,y:o=0}=n;x.movable=!1,(i<E||i>j)&&(x.show=!1);if(!t&&i>=E&&i<=j){const e=o>=T&&o<=X,l=o>=$&&o<=_;if(e||l){const l=A(i);x.sourceData=e?N.map((e=>{const{type:t,title:n,unit:i}=e;return{type:t,title:n,unit:i,time:l,value:I(t,o)}})):[{type:"tree",time:l}],x.isTarget=!!t,x.point=n,x.movable=!0}else x.show=!1}}(o),!n)return;const{x:l,y:r}=i,{x:a,y:s}=o.pointer;q&&y.value.remove(q),q=new e.Rect({...t,fill:"#CAF982",opacity:.4,...K,left:l>a?a:l,top:r>s?s:r,width:Math.abs(a-l),height:Math.abs(s-r),objectCaching:!0}),q.areaPos={startPos:i,endPos:o.pointer},y.value.add(q)}))}(),{redrawPoints:se,clickMenu:function({item:e,target:t}){const n={...e.origin};"remove"===e.mode?(k("remove",n),ae(n,"remove")):(Object.assign(n,{data:{time:A(e.pointer.x),value:I(e.origin.type,e.pointer.y),...e.origin.linkKey?{key:e.origin.key}:{}}}),k("add",n),ae({...n,key:e.origin.linkKey||e.origin.key}))},moveLimit:ce,setPopup:ue,updateData:ae,getGridPoints:de,getContainPoints:te,showDialog:ne,removeCurrentSelection:ie,pauseFlickerPoint:U}}export{y as useCenter};
1
+ import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{defaultStyle as t,drawLine as n,drawPoint as i}from"../useDraw.js";import{useGrid as o}from"../useGrid.js";import{useBirthProcessCumputedPoint as l}from"../useCumputedPoint.js";import{bus as r}from"../useEvent.js";import"../useShadow.js";import{useCommon as a}from"../useCommon.js";import"vue";import{nearlyEqual as s,getIndex as f,isEffectiveNode as u,getTime as c}from"../../utils/index.js";import{cloneDeep as d,filter as p,last as m,omit as g,flatten as v}from"lodash-es";import"date-fns";import{OTHER_MENU as y}from"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"./useTop.js";import"./useOther.js";import"../../../../../shared/utils/index.js";import{useIntervalFn as h}from"@vueuse/core";function x(x,k,L,w,P,b){const{computedX:A,computedY:C,getXValue:j,getYValue:I}=l(k),{xCellWidth:M,pointSelectionStyle:E,originX:K,endX:X,originY:V,endY:Y,event:T,scaleValues:O,xAxis:S,startTime:D,timeXCell:F,itemList:$,dialog:z,topGridOriginY:B,topGridEndY:G,extraMenuConfig:N}=k,_=new Map,J=new Set;let q=d(O),R=[],W=null;const H=new Set;o(x,k);const{getEqualXTypes:Q,handleAddPrevent:U,setPrevAndNextPoint:Z,getPointEventProps:ee}=a(x,L,k),{pause:te,resume:ne}=h((()=>{!function(){if(!H.size)return;for(const e of H)e.set("opacity",1===e.opacity?.5:1);x.value.renderAll()}()}),800);function ie(){q.forEach((e=>{const{range:t=[],spaceValue:i}=e;i&&(t[0]||t[1])&&e.dataList.forEach(((t,i)=>{t.show&&(!function(e,t){const{max:i={},min:o={}}=e.panicValue||{},{max:l={},min:r={}}=e.diffValue||{};function a({show:e=!1,value:i,name:o,lineStyle:l}){if(!e||!i)return;const r=C(t.type,t.range,i),a=n([K,r,X,r],{...l,evented:!0,lockMovementX:!0,lockMovementY:!0,hoverCursor:"pointer"});T.hovered&&o&&(a.on("mousemove",(({pointer:e})=>{w.point={...e||{x:a.left,y:a.top}},w.list=[`${o} ${i}${t.unit||""}`],w.show=!0})),a.on("mouseout",(()=>{w.show=!1}))),x.value.add(a)}a(i),a(o),a(l),a(r)}(t,e),ae(t,i,e))}))}))}function oe(e=[]){if(!(null==W?void 0:W.areaPos))return[];const{startPos:t,endPos:n}=W.areaPos,[i,o]=[t.x,n.x].sort(((e,t)=>e-t)),[l,r]=[t.y,n.y].sort(((e,t)=>e-t));return(e.length?e:ve()).filter((e=>e.left>=i&&e.left<=o&&e.top>=l&&e.top<=r))}function le(e){var t,n,i,o;z.warning({maskClosable:!1,closeOnEsc:!1,title:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.228"))||"警告",content:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.229"))||"确认删除当前选中的节点?",positiveText:(null==(i=window.getLanguageByCode)?void 0:i.call(window,"10010.1.27"))||"确定",negativeText:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.28"))||"取消",onPositiveClick:()=>{e(),re()},onNegativeClick:()=>re(),onClose:()=>re()})}function re(){W&&x.value.remove(W),W=null}function ae(e,t,o){var l;const{type:r,unit:a,dataList:f=[]}=o,u=[];_.set(e.key,[]),function(e,t){H.size&&[...H].forEach((n=>{const{dataIndex:i,type:o}=n.origin;i===t&&o===e&&H.delete(n)}))}(r,t),null==(l=e.list)||l.forEach(((l,c)=>{!function(e,l,c,d){var p;let v,y,h=d;l.key&&(h=f.find((e=>e.key===l.key)));const{pointAttr:k={},lineAttr:P={},title:b="",key:A,type:C="circle"}=h,E=ge(d.list[c+1],o);e&&E&&!l.breakpoint&&e[0]!==E[0]&&(y=n([...e,...E],P));const K=u[c-1],X={origin:{data:l,title:b,key:d.key,selfKey:A,unit:a,type:r,dataIndex:t,index:c,lineAttr:P},__type:"main",leftLine:K,rightLine:y,...k,...ee()};e&&(K||(X.leftLine=null),v=i(C,{left:e[0],top:e[1],...X}));u.push(y),v&&(v.originLeft=v.left,v.originTop=v.top,function(e){T.hovered&&(e.on("mouseover",(()=>{pe(e,"hover")})),e.on("mouseout",(()=>{w.show=!1})));if(e.lockMovementX&&e.lockMovementY)return;e.on("moving",(()=>{me(e),function(e){var t,n;null==(t=e.leftLine)||t.setCoords().set({x2:e.left,y2:e.top}),null==(n=e.rightLine)||n.setCoords().set({x1:e.left,y1:e.top})}(e),T.hovered&&pe(e),function(e){var t,n,i,o;const{originLeft:l,originTop:r,left:a,top:f,origin:u}=e,c=~~(Math.abs(a-l)/M),d=a>l;if(Math.abs(a-l)>M){if(0===R.length){let a=e.leftLine?[e.leftLine.x1,e.leftLine.y1]:[l,r];d||(a=e.rightLine?[e.rightLine.x2,e.rightLine.y2]:[l,r]),fe(e,[...a,l,r]),null==(n=null==(t=e.leftLine)?void 0:t.set)||n.call(t,"stroke","transparent"),null==(o=null==(i=e.rightLine)?void 0:i.set)||o.call(i,"stroke","transparent")}const p=M*c,m=d?l+p:l-p;if(R.every((e=>!s(e.left,m)))){const t=j(m),n=I(u.type,f);R.push({data:{time:t,value:n,...u.selfKey!==u.key?{key:u.selfKey}:{}},left:m,top:f}),fe(e,[...e.prevPointer,m,f],d)}if(R.length<c&&function(e,t,n=!0){const{originLeft:i,originTop:o,origin:l}=e;let r=1;for(;r<=t;){const t=M*r,a=n?i+t:i-t,s=R.some((e=>Math.abs(e.left-a)<=1));if(!s){let t=0;const r=R.find(((e,i)=>n?(e.left>a&&(t=i),e.left>a):(e.left<a&&(t=i),e.left<a)));if(r){const s=JSON.parse(JSON.stringify(r)),f=R[t-1]||{left:i,top:o},u=~~(Math.abs(r.left-(n?a-M:a+M))/M),c=(r.top-f.top)/u;s.top=f.top+c,s.left=a,s.data={time:j(a),value:I(l.type,s.top),...l.selfKey!==l.key?{key:l.selfKey}:{}},R.splice(t,0,s),fe(e,[f.left,f.top,s.left,s.top],n)}}r++}}(e,c,d),d&&e.nextPoint||!d&&e.prevPoint){const t=_.get(u.key);!function(e,t){const{left:n,top:i,origin:o}=t,l=M/2,r=e.findIndex((e=>Math.abs(n-e.left)<l&&Math.abs(i-e.top)<l&&o.index!==e.origin.index));r>-1?(t.set({scaleX:2.5,scaleY:2.5}),t.coincidePoint=e[r]):t.set({scaleX:t.scale,scaleY:t.scale})}(t,e),null==t||t.forEach((e=>{s(e.left,l)||u.index===e.origin.index||(d&&e.left>l&&e.left<a||!d&&e.left<l&&e.left>a?se(e,"#999"):se(e,e.origin.lineAttr.stroke))}))}}!function(e,t=!0){var n,i,o,l;const{left:r,originLeft:a}=e;if((null==R?void 0:R.length)>0){for(const e of J)(t&&(e.left>r||e.left<a)||!t&&(e.left<r||e.left>a))&&(e.left<r||e.left>a)&&(e.leftLine&&x.value.remove(e.leftLine),e.rightLine&&x.value.remove(e.rightLine),x.value.remove(e));if(R=R.filter((e=>t&&e.left<=r&&e.left>a||!t&&e.left>=r&&e.left<a)),0===R.length){null==(i=null==(n=e.leftLine)?void 0:n.set)||i.call(n,e.prevPoint.origin.lineAttr),null==(l=null==(o=e.rightLine)?void 0:o.set)||l.call(o,e.origin.lineAttr);for(const e of J)e.leftLine&&x.value.remove(e.leftLine),x.value.remove(e)}if(R.length>0){const t=m(R);e.prevPointer=[t.left,t.top]}}}(e,d)}(e)})),e.on("mouseup",(t=>{if(w.show=!1,1===t.button){const{type:t,selfKey:n,dataIndex:i}=e.origin,o={...e.origin,data:{...e.origin.data,time:j(e.left),value:I(t,e.top)}};if(x.value.discardActiveObject(),R.length>0){const l=q.find((e=>e.type===t));let r=-1;const a=m(R).left>e.originLeft,s=R.map((e=>e.data));if(a&&e.nextPoint||!a){if(2.5!==e.scaleX)return void ce({dataIndex:i,scaleValue:l});const t=e.coincidePoint.origin,n=t.data;r=t.index;const o=s.findIndex((e=>e.time===n.time));o>-1&&s.splice(o,1),a||(s.reverse(),r=e.origin.index)}const f=l.dataList.findIndex((e=>e.key===n));L("add",{...g(o,["index","selfKey","lineAttr"]),dataIndex:f,key:n,data:s}),ue({...o,data:s,coincideIndex:r})}else L("change",{...g(o,["selfKey","lineAttr"]),key:n}),ue(o,"change")}}))}(v),null==(p=_.get(d.key))||p.push(v))}(ge(l,o),l,c,e)})),Promise.all(_.get(e.key)).then((t=>{const n=u.filter((e=>e));Z(t),x.value.add(...n,...t),function(e,t){const{max:n={},min:i={}}=t.panicValue||{},{max:o={},min:l={}}=t.diffValue||{};function r({show:t=!1,value:n,flickerable:i},o){!t&&n&&i&&e.forEach((e=>{const t=e.origin.data.value;"max"===o&&t<n||"min"===o&&t>n||H.add(e)}))}r(n,"max"),r(i,"min"),r(o,"max"),r(l,"min")}(t,e)}))}function se(e,t){["stroke","fill"].forEach((n=>{const i=e[n];i&&!["transparent","#fff","#ffffff","#FFFFFF"].includes(i)&&i!==t&&e.set(n,t)})),e.rightLine&&![t,"transparent"].includes(e.rightLine.stroke)&&e.rightLine.set("stroke",t)}function fe(e,t,i=!0){const[o,,l,r]=t;e.clone((a=>{a.set({left:l,top:r,scaleX:1,scaleY:1}),e.prevPointer=[l,r];const f=n(t,e.leftLine&&s(o,e.leftLine.x1)?e.prevPoint.origin.lineAttr:e.origin.lineAttr);i?a.leftLine=f:a.rightLine=f,J.add(a),x.value.add(f,a)}))}function ue(e,t="add",n=1){const{data:i,index:o,key:l,type:r,coincideIndex:a,linkKey:s}=e;let{dataIndex:u}=e;const c=q.find((e=>e.type===r)),d=c.dataList.find(((e,t)=>{u=t;const n=s||l;return e.key===n}));switch(t){case"remove":d.list.splice(o,n),d.list[o-1]&&(d.list[o-1].breakpoint=!0);break;case"change":d.list[o]=i;break;default:{const e=Array.isArray(i)?i[0].time:i.time,t=f(e,d.list,!0),n=Array.isArray(i)?i:[i];d.list.splice(t,a>-1?a-t:0,...n);break}}ce({dataIndex:u,scaleValue:c})}function ce(e){var t,n,i;if(J.size&&(null==(t=x.value)||t.remove(...de([...J]))),J.clear(),R=[],e){const{dataIndex:t,scaleValue:i}=e,o=i.dataList[t];null==(n=x.value)||n.remove(...de(_.get(o.key))),_.delete(o.key),ae(o,t,i)}else q=d(O),_.size&&(null==(i=x.value)||i.remove(...de(ve()))),_.clear(),ie()}function de(e){const t=[];return e.forEach((e=>{e&&t.push(e),(null==e?void 0:e.leftLine)&&t.push(null==e?void 0:e.leftLine),(null==e?void 0:e.rightLine)&&t.push(null==e?void 0:e.rightLine)})),t}function pe(e,t="moving"){const{title:n,type:i,data:o,unit:l,selfKey:r}=e.origin;w.point={x:e.left,y:e.top};const a=j(e.left),s=`${"hover"===t?o.value:I(i,e.top)}`;w.list=[`${n} ${s}${l||""}`,`时间 ${a.slice(-5)}`],w.sourceData=[{type:i,title:n,unit:l,key:r,time:a,value:s}],w.isTarget=!0,w.show=!0}function me(e,t=X){e.setCoords();const n=K;e.top<V&&e.set("top",V),e.top>Y&&e.set("top",Y),e.left<n&&e.set("left",n),e.left>t&&e.set("left",t)}function ge(e,t){if(u(e)&&function(e){const t=Date.parse(m(S.list)),n=c(e);return n>=D&&n<=t}(e.time)){const n=A(e.time),i=C(t.type,t.range,e.value);return[n,i<V?V:i>Y?Y:i]}}function ve(){return v(Array.from(_.values()))}return ie(),function(){if(!T.evented)return;let n=!1,i={x:0,y:0};x.value.on("mouse:up",(e=>{if(3===e.button&&function(e){w.show=!1;const{x:t=0,y:n=0}=e.pointer||{};if(t>=K&&t<=X&&n>=V&&n<=Y)if(e.target){if("main"!==e.target.__type)return;const t=e.target;i({x:t.left,y:t.top},e.target,[]),P.list=p(y,(e=>"edit"!==e.type)).map((e=>({...e,renderItem:()=>e.label,type:e.key||e.type,pointer:{x:t.left,y:t.top},..."add"===e.type?{}:{origin:{...t.origin}}})))}else{i(e.pointer,null,[]);const{menuList:t=[]}=N;P.list=p(y,(e=>"add"===e.type)).concat(t).map((t=>({...t,renderItem:()=>t.label,type:t.key||t.type,pointer:e.pointer})))}function i(e,t,n){Object.assign(P,{point:e,show:!0,target:t,list:n})}}(e),1===e.button&&n){n=!1;const e=oe();e.length>0?le((()=>{const t=function(e){const t=e.reduce(((e,t)=>{const{key:n}=t.origin;return e[n]=e[n]?e[n].concat(t.origin):[t.origin],e}),{});return Object.keys(t).map((e=>{const n=t[e].sort(((e,t)=>Date.parse(e.data.time)-Date.parse(t.data.time)));return ue(n[0],"remove",n.length),n.map((e=>({...g(e,["selfKey","lineAttr"]),key:e.selfKey})))}))}(e);L("remove",t)})):r.emit(W)}})),x.value.on("mouse:down",(e=>{1!==e.button||e.target||(n=!0,i=e.pointer)})),x.value.on("mouse:move",(o=>{if(function(e){if(!b||P.show)return;const{target:t,pointer:n}=e,{x:i=0,y:o=0}=n;w.movable=!1,(i<K||i>X)&&(w.show=!1);if(!t&&i>=K&&i<=X){const e=o>=V&&o<=Y,l=o>=B&&o<=G;if(e||l){const l=j(i);w.sourceData=e?q.map((e=>{const{type:t,title:n,unit:i}=e;return{type:t,title:n,unit:i,time:l,value:I(t,o)}})):[{type:"tree",time:l}],w.isTarget=!!t,w.point=n,w.movable=!0}else w.show=!1}}(o),!n)return;const{x:l,y:r}=i,{x:a,y:s}=o.pointer;W&&x.value.remove(W),W=new e.Rect({...t,fill:"#CAF982",opacity:.4,...E,left:l>a?a:l,top:r>s?s:r,width:Math.abs(a-l),height:Math.abs(s-r),objectCaching:!0}),W.areaPos={startPos:i,endPos:o.pointer},x.value.add(W)}))}(),{redrawPoints:ce,clickMenu:function({item:e,target:t}){var n;const{type:i,origin:o,pointer:l}=e,r={...o};o||Object.assign(r,{data:{time:j(l.x)},type:null}),p(y,(e=>"edit"!==e.type)).map((e=>e.type)).includes(i)?("remove"===i&&ue(r,"remove"),L(i,r)):null==(n=N.click)||n.call(N,i,r)},moveLimit:me,setPopup:pe,updateData:ue,getGridPoints:ve,getContainPoints:oe,showDialog:le,removeCurrentSelection:re,pauseFlickerPoint:te}}export{x as useCenter};
@@ -1 +1 @@
1
- import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{drawTextGroup as e,defaultRectStyle as i,drawTextAndIconGroup as o,drawText as n,defaultTextStyle as r,defaultStyle as l}from"../useDraw.js";import{useBirthProcessCumputedPoint as s}from"../useCumputedPoint.js";import"../useEvent.js";import{drawScaleNumber as a}from"../useScaleColumn.js";import{useCommon as u}from"../useCommon.js";import"vue";import{getScaleNumberList as d}from"../../utils/index.js";import{cloneDeep as c,last as p}from"lodash-es";import"date-fns";import"../temperature/useShadow.js";import"@vueuse/shared";import"naive-ui";import"@vueuse/core";function f(f,h,m,g,v,y,k,w){const{getYValue:j,getXValue:x}=s(h),{getEqualXTypes:b,handleAddPrevent:X,isGridLimit:W}=u(f,m,h),{originY:C,endY:E,borderStyle:S,left:Y,itemList:K,scaleValues:L,originX:M,endX:N,yCellHeight:V,markHeight:G,canvasWidth:H,canvasHeight:T,xCellWidth:A}=h;!function(){if(!Y)return;const{title:t,titleWidth:i,titleStyle:o}=Y,n=e({width:i,height:E-C+G,...S},{value:t.split("").join("\n"),...o||{}},{left:0,top:C},!0);f.value.add(n)}(),L.forEach(((e,i)=>{var o,s;const{range:u,spaceValue:c,title:h,unit:m,titleStyle:g,spaceGridNumber:v=1,showNumber:y,showMaxMinNumber:k,titleMargin:w=[5,30],margin:j=5}=e,x="left"===e.layout?M-j:N+j,b=[],X=d(u,c),W=X.length;X.forEach(((t,i)=>{const o=0===i?E-5:E-i*V*v;!y||(0===i||i===W-1)&&!k||b.push(a(String(t),{...e,position:e.layout},x,o))}));const C="left"===e.layout?"right":"left",S=(h||m)&&n(["left"===e.layout?M-w[0]:N+w[0],(null!=(s=null==(o=p(b))?void 0:o.top)?s:330)-V-w[1]],{value:`${h}${m?"\n"+m:""}`,...r,...g,textAlign:C,originX:C,originY:"bottom"}),Y=new t.Group([...b,...S?[S]:[]],{objectCaching:!1,...l});f.value.add(Y),Y.sendToBack()})),function(){const e=new t.Rect({width:M-Y.titleWidth,height:E-C+G,left:Y.titleWidth,top:C,...i,originX:"left",originY:"top",...S});f.value.add(e);const n=c(K),r=c(Y.externalIconList||[]).map((t=>({...t,isExternal:!0}))),{projectNameMargin:l=[5,30],titleWidth:s=20}=Y;let a=E+G-l[0];const u=s+l[1];r.concat(n.reverse()).forEach((t=>{a-=10;const e=t.title,{text:i,icon:n}=o(e,t,{text:{left:u,top:a},icon:{leftX:u,topY:a,originX:"center",...t.isExternal?{evented:!1,selectable:!1}:{},origin:{linkKey:t.linkKey}}});var r;a-=i.height||30,n.set("left",n.left+n.width/2),(r=n).on("moving",(()=>{r.set("originX","center"),W(r)?(v(r),y(r)):g.show=!1})),r.on("mouseup:before",(t=>{if(g.show=!1,0===t.e.button&&W(r)){const t=r.origin.linkKey||r.origin.key;if(b(w(),r.left,"key",2*A).includes(t))X("repeat");else{const e={data:{time:x(r.left),value:j(r.origin.type,r.top),...r.origin.linkKey?{key:r.origin.key}:{}},...r.origin};m("add",e),k({...e,key:t})}}!function(t){t.setCoords().set({originX:"left",left:t.originLeft,top:t.originTop})}(r)})),f.value.add(i,n)}))}(),f.value.add(new t.Rect({left:0,top:0,width:H-S.strokeWidth,height:T-S.strokeWidth,fill:"transparent",...S}))}export{f as useLeft};
1
+ import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{drawTextGroup as i,defaultRectStyle as e,drawTextAndIconGroup as o,drawText as n,defaultTextStyle as r,defaultStyle as l}from"../useDraw.js";import{useBirthProcessCumputedPoint as s}from"../useCumputedPoint.js";import"../useEvent.js";import"../useShadow.js";import{drawScaleNumber as a}from"../useScaleColumn.js";import{useCommon as u}from"../useCommon.js";import"vue";import{isEffectiveNode as g,getScaleNumberList as d}from"../../utils/index.js";import{cloneDeep as h,omit as c,last as m}from"lodash-es";import"date-fns";import"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"./useTop.js";import"@vueuse/core";import"./useOther.js";import"../../../../../shared/utils/index.js";function f(f,p,y,k,v,j,x,w){const{getYValue:E,getXValue:X,computedX:b}=s(p),{getEqualXTypes:K,handleAddPrevent:R,isGridLimit:C}=u(f,y,p),{originY:W,endY:S,borderStyle:Y,left:H,itemList:L,scaleValues:M,originX:N,endX:P,yCellHeight:T,markHeight:V,extracorporealCirculationHeight:G,canvasWidth:A,canvasHeight:$,xCellWidth:q}=p;!function(){if(!H)return;const{title:t,titleWidth:e,titleStyle:o}=H,n=i({width:e,height:S-W+V+G,...Y},{value:t.split("").join("\n"),...o||{}},{left:0,top:W},!0);f.value.add(n)}(),M.forEach(((i,e)=>{var o,s;const{range:u,spaceValue:g,title:h,unit:c,titleStyle:p,spaceGridNumber:y=1,showNumber:k,showMaxMinNumber:v,titleMargin:j=[5,30],margin:x=5}=i,w="left"===i.layout?N-x:P+x,E=[],X=d(u,g),b=X.length;X.forEach(((t,e)=>{const o=0===e?S-5:S-e*T*y;!k||(0===e||e===b-1)&&!v||E.push(a(String(t),{...i,position:i.layout},w,o))}));const K="left"===i.layout?"right":"left",R=(h||c)&&n(["left"===i.layout?N-j[0]:P+j[0],(null!=(s=null==(o=m(E))?void 0:o.top)?s:330)-T-j[1]],{value:`${h}${c?"\n"+c:""}`,...r,...p,textAlign:K,originX:K,originY:"bottom"}),C=new t.Group([...E,...R?[R]:[]],{objectCaching:!1,...l});f.value.add(C),C.sendToBack()})),function(){const i=new t.Rect({width:N-H.titleWidth,height:S-W+V+G,left:H.titleWidth,top:W,...e,originX:"left",originY:"top",...Y});f.value.add(i);const n=h(L);n.forEach((t=>{var i;const e=t.linkKey?null==(i=n.find((i=>i.key===t.linkKey)))?void 0:i.list:t.list;let o=N;e.find((t=>{let i=!1;if(g(t)){const e=b(t.time);i=e>=N&&e<=P,i&&(o=e)}return i})),t.limitRight=o-q}));const r=h(H.externalIconList||[]).map((t=>({...t,isExternal:!0}))),{projectNameMargin:l=[5,30],titleWidth:s=20}=H;let a=S+V+G-l[0];const u=s+l[1],d=[];r.concat(n.reverse()).forEach((t=>{a-=10;const i=t.title,{text:e,icon:n}=o(i,t,{text:{left:u,top:a},icon:{leftX:u,topY:a,originX:"center",...t.isExternal?{evented:!1,selectable:!1}:{},origin:{linkKey:t.linkKey,limitRight:t.limitRight}}});var r;a-=e.height||30,n.set("left",n.left+n.width/2),(r=n).on("moving",(()=>{r.set("originX","center"),C(r)?(v(r,r.origin.limitRight),j(r)):k.show=!1})),r.on("mouseup:before",(t=>{if(k.show=!1,0===t.e.button&&C(r)){v(r,r.origin.limitRight);const t=r.origin.linkKey||r.origin.key;if(K(w(),r.left,"key",q).includes(t))R("repeat");else{const i={data:{time:X(r.left),value:E(r.origin.type,r.top),...r.origin.linkKey?{key:r.origin.key}:{}},...r.origin},e=r.left-q;r.linkPoints.forEach((t=>{t.origin.limitRight=e})),y("add",c(i,["limitRight"])),x({...i,key:t})}}!function(t){t.setCoords().set({originX:"left",left:t.originLeft,top:t.originTop})}(r)})),!t.isExternal&&d.push(n),f.value.add(e,n)})),d.forEach((t=>{const{linkKey:i,key:e}=t.origin,o=d.filter((t=>i?t.origin.key===i||t.origin.linkKey===i:t.origin.key===e||t.origin.linkKey===e));t.linkPoints=o}))}(),f.value.add(new t.Rect({left:0,top:0,width:A-Y.strokeWidth,height:$-Y.strokeWidth,fill:"transparent",...Y}))}export{f as useLeft};
@@ -1 +1 @@
1
- import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{drawPoint as e,drawText as i}from"../useDraw.js";import{useBirthProcessCumputedPoint as o}from"../useCumputedPoint.js";import{bus as n}from"../useEvent.js";import{useCommon as r}from"../useCommon.js";import"vue";import{getIndex as a}from"../../utils/index.js";import{cloneDeep as l,flatten as s}from"lodash-es";import"date-fns";import"../temperature/useShadow.js";import{OTHER_MENU as d}from"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"@vueuse/core";function c(c,u,f,h,m,g,p,v,x){const{computedX:k,getXValue:y}=o(u),{getEqualXTypes:X,handleAddPrevent:P,isGridLimit:b,getPointEventProps:w}=r(c,f,u),{other:E,yCellHeight:j,xCellWidth:z,endX:A,originX:C,originY:L,endY:M,markHeight:S,event:T,topGridYCellHeight:I}=u,H=new Map,Y=l(E);function W(){var o;if(!(null==(o=null==Y?void 0:Y.horizontal)?void 0:o.length))return;const n="horizontal";H.set(n,[]);const{horizontal:r}=Y;let a=L+j/2;r.forEach(((o,r)=>{const{title:l,type:s,pointAttr:d={},textStyle:c={},data:u}=o;let f=null;u.forEach(((o,u)=>{const{time:h,value:m}=o,g=k(h);if(!$(g))return;const p=e(s,{...d,left:g,top:a}),v=g+p.width/2+2,x=i([v,a],{value:m,...c,originX:"left"}),y=new t.Group([p,x],{lockMovementY:!0,objectCaching:!1,hasControls:!1,hasBorders:!1,hoverCursor:"pointer",...w()});Object.assign(y,{originLeft:g,iconHalfWidth:p.width/2,origin:{type:"other",key:n,dataIndex:r,index:u,data:o,title:l},limitX:{x1:C,x2:A-y.width}}),f&&(y.limitX.x1=f.left,f.limitX.x2=y.left,y.prevPoint=f,f.nextPoint=y),f=y,q(y),H.get(n).push(y)})),a+=j})),c.value.add(...H.get(n))}function V(){var t;if(!(null==(t=null==Y?void 0:Y.vertical)?void 0:t.length))return;const i="vertical";H.set(i,[]);const{vertical:o}=Y;o.forEach(((t,o)=>{const{show:n=!0,marginTop:r=0,textStyle:a={},data:l,time:s}=t,d=k(s);if(!n||!$(d))return;const{lineHeight:c=j}=a;let u=L+r+c/2;l.forEach(((t,n)=>{const r=e(String(t),{...a,lockMovementY:!0,left:d,originX:"left",top:u,origin:{type:"other",key:i,dataIndex:o,index:n,data:{value:t}},...w()});u+=c,q(r),H.get(i).push(r)}));const f=H.get(i).filter((t=>t.origin.dataIndex===o)),h=Math.max(...f.map((t=>t.width))),m=d>A-h;f.forEach(((t,e,i)=>{t.siblingPoints=i.filter((e=>e.origin.index!==t.origin.index)),t.maxTextWidth=h,m&&t.set("originX","right")}))})),c.value.add(...H.get(i))}function G(t,e="add"){const{dataIndex:i,data:o,index:n,key:r}=t,l=Y[r],s=["mark"].includes(r)?l.dataList[i]:l[i];switch(e){case"remove":s.data.splice(n,1);break;case"change":s.data[n]=o;break;default:{const t=Array.isArray(o)?o[0].time:o.time,e=a(t,s.data),i=Array.isArray(o)?o:[o];s.data.splice(e,0,...i);break}}O(t)}function O(t){var e;const{key:i}=t;switch(null==(e=c.value)||e.remove(...H.get(i)),H.delete(i),i){case"horizontal":W();break;case"vertical":V();break;case"mark":D()}}function D(){if(!(null==E?void 0:E.mark)||!S)return;const{title:t,titleStyle:o,pointAttr:n,dataList:r}=E.mark,a=i([C-5,M+S/2],{value:t,...o,originX:"right"});c.value.add(a);const l=M+S,s=[];r.forEach((t=>{const{time:i,list:o=[]}=t,r=k(i);if(!$(r))return;let a=M;o.forEach((t=>{const{style:i}=t;let o=!1;const d=e((null==i?void 0:i.type)||"circleAndText",{...(null==i?void 0:i.pointAttr)||n,text:t.text,left:r,top:a,origin:{data:t,key:"mark",type:"other"}}),u=d.height;a+u<=l&&a>=M?(d.set("top",a+u/2),a+=u):(o||(a=M,o=!0),d.set("top",a-u/2),a-=u),s.push(d),q(d),c.value.add(d)}))})),function(t){const e=t=>{var e,i;return null==(i=null==(e=t.origin)?void 0:e.data)?void 0:i.isStart},i=t.find((t=>e(t))),o=t.find((t=>!e(t)&&t.left>i.left)),n=t.filter((t=>!e(t)));t.forEach((t=>{const r={x1:C,x2:A};e(t)?(r.x2=o.left,t.otherPoints=n):(r.x1=i.left,t.startPoint=i),t.limitX=r}))}(s)}function q(t){if(T.hovered&&(t.on("mouseover",(()=>{B(t)})),t.on("mouseout",(()=>{h.show=!1}))),t.lockMovementX&&t.lockMovementY)return;const{key:e}=t.origin,i=["mark","horizontal"].includes(e),o=["mark","vertical"].includes(e);t.on("moving",(()=>{i?function(t){const e=t.origin.key,i="horizontal"===e;t.setCoords(),t.left<t.limitX.x1&&t.set("left",t.limitX.x1+(i?1:0));t.left>t.limitX.x2&&t.set("left",t.limitX.x2+(i?-1:0));if("mark"===e){t.top<L&&t.set("top",L);const e=M+S-t.height/2;t.top>e&&t.set("top",e)}i&&(t.originLeft=t.left+t.iconHalfWidth)}(t):(g(t),function(t){const e=t.left+t.maxTextWidth>A?"right":"left";t.setCoords().set({originX:e}),t.siblingPoints.forEach((i=>i.setCoords().set({originX:e,left:t.left})))}(t)),T.hovered&&B(t)})),t.on("mouseup",(n=>{var r;if(h.show=!1,1===n.button){i&&function(t){var e,i;if("mark"===t.origin.key){if((null==(i=null==(e=t.origin)?void 0:e.data)?void 0:i.isStart)&&t.otherPoints)t.otherPoints.forEach((e=>{e.limitX.x1=t.left}));else{const e=t.startPoint.otherPoints.map((t=>t.left)),i=Math.min(...e);t.startPoint.limitX.x2=i}return}t.prevPoint&&(t.prevPoint.limitX.x2=t.left);t.nextPoint&&(t.nextPoint.limitX.x1=t.left)}(t);const e=y(null!=(r=t.originLeft)?r:t.left),n={...t.origin,...o?{time:e}:{data:{...t.origin.data,time:e}}};c.value.discardActiveObject(),f("change",n)}3===n.button&&["horizontal","vertical"].includes(e)&&(m.point={x:t.left,y:t.top},m.show=!0,m.target=t,m.list=d.map((t=>({...t,renderItem:()=>t.label}))))}))}function B(t){const{key:e,data:i={}}=t.origin||{};let o=i.value;h.point={x:t.left,y:"mark"===e?t.top:t.top+I/2};const n=!t.origin.isMenu&&t.originLeft?t.originLeft:t.left,r=y(n);h.list=[`时间 ${r.slice(-5)}`],"mark"===e&&(o=i.name,h.list.unshift(o+" ")),h.sourceData=[{type:"other",key:e,time:r,value:o}],h.isTarget=!0,h.show=!0}function $(t){return t>=C&&t<=A}return function(){var t;if(!(null==(t=null==Y?void 0:Y.horizontal)?void 0:t.length))return;const{horizontal:i}=Y,o=C-5;let n=L+j/2;i.forEach(((t,i)=>{const{title:r,titleStyle:a={},defaultAddValue:l}=t,s=r&&e(r,{...a,originX:"right",left:o,top:n,origin:{defaultAddValue:l,dataIndex:i,type:"other",key:"horizontal",title:r,isMenu:!0},originLeft:o,originTop:n});var d;(d=s).on("moving",(()=>{d.set("originX","center"),b(d)?B(d):h.show=!1})),d.on("mouseup:before",(t=>{if(h.show=!1,0===t.e.button&&b(d))if(X(H.get("horizontal"),d.left,"key",z).includes(d.origin.key))P("repeat"),console.log("重复节点");else{const t={data:{time:y(d.left),value:d.origin.defaultAddValue},...d.origin};f("add",t),G(t)}!function(t){t.setCoords().set({originX:"right",left:t.originLeft,top:t.originTop})}(d)})),c.value.add(s),n+=j}))}(),W(),V(),D(),n.on((()=>{const t="horizontal",e=p(H.get(t));e.length>0?v((()=>{const i=function(t){const e=t.reduce(((t,e)=>{const{dataIndex:i}=e.origin;return t[i]=t[i]?t[i].concat(e.origin):[e.origin],t}),{});return s(Object.keys(e).map((t=>{const i=e[t];return Y.horizontal[t].data.splice(i[0].index,i.length),i})))}(e);O({key:t}),f("remove",i)})):x()})),{clickMenu:function({item:t,target:e}){if(!e)return;const{type:i}=t,o={...e.origin,type:"other"};f(i,o),"remove"===i&&G(o,i)}}}export{c as useOther};
1
+ import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{drawPoint as e,drawText as o,drawLine as i,defaultLineStyle as n}from"../useDraw.js";import{useBirthProcessCumputedPoint as r}from"../useCumputedPoint.js";import{bus as a}from"../useEvent.js";import{useShadow as l}from"../useShadow.js";import{useCommon as s}from"../useCommon.js";import"vue";import{getIndex as c}from"../../utils/index.js";import{filter as u,cloneDeep as d,omit as f,flatten as h}from"lodash-es";import{format as m}from"date-fns";import{OTHER_MENU as p}from"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"./useTop.js";import"@vueuse/core";import"../../../../../shared/utils/index.js";const g=u(p,(t=>"add"!==t.type));function x(u,p,x,v,y,k,C,w,X){const{computedX:A,getXValue:b}=r(p),{getEqualXTypes:P,handleAddPrevent:E,isGridLimit:j,getPointEventProps:S}=s(u,x,p),{createShadowLines:L}=l(),{canvasWidth:M,other:z,yCellHeight:H,xCellWidth:T,endX:I,originX:W,originY:Y,endY:B,markHeight:O,event:D,topGridYCellHeight:V,extracorporealCirculationHeight:G}=p,$=new Map,K=d(z);function _(){var i;if(!(null==(i=null==K?void 0:K.horizontal)?void 0:i.length))return;const n="horizontal";$.set(n,[]);const{horizontal:r}=K;let a=Y+H/2;r.forEach(((i,r)=>{const{title:l,type:s,pointAttr:c={},textStyle:u={},data:d,showIcon:f=!0}=i;let h=null;d.forEach(((i,d)=>{const{time:m,value:p}=i,g=A(m);if(!Z(g))return;const x=[],v=f&&e(s,{...c,left:g,top:a});v&&x.push(v);const y=f?g+v.width/2+2:g,k=o([y,a],{value:p,...u,originX:"left"});x.push(k);const C=new t.Group(x,{lockMovementY:!0,objectCaching:!1,hasControls:!1,hasBorders:!1,hoverCursor:"pointer",...S()});Object.assign(C,{originLeft:g,iconHalfWidth:v?v.width/2:0,origin:{type:"other",key:n,dataIndex:r,index:d,data:i,title:l},limitX:{x1:W,x2:I-C.width}}),h&&(C.limitX.x1=h.left,h.limitX.x2=C.left,C.prevPoint=h,h.nextPoint=C),h=C,Q(C),$.get(n).push(C)})),a+=H})),u.value.add(...$.get(n))}function q(){var t;if(!(null==(t=null==K?void 0:K.vertical)?void 0:t.length))return;const o="vertical";$.set(o,[]);const{vertical:i}=K;i.forEach(((t,i)=>{const{show:n=!0,marginTop:r=0,textStyle:a={},data:l,time:s}=t,c=A(s);if(!n||!Z(c))return;const{lineHeight:u=H}=a;let d=Y+r+u/2;l.forEach(((t,n)=>{const r=e(String(t),{...a,lockMovementY:!0,left:c,originX:"left",top:d,origin:{type:"other",key:o,dataIndex:i,index:n,data:{value:t}},...S()});d+=u,Q(r),$.get(o).push(r)}));const f=$.get(o).filter((t=>t.origin.dataIndex===i)),h=Math.max(...f.map((t=>t.width))),m=c>I-h;f.forEach(((t,e,o)=>{t.siblingPoints=o.filter((e=>e.origin.index!==t.origin.index)),t.maxTextWidth=h,m&&t.set("originX","right")}))})),u.value.add(...$.get(o))}function F(t,e="add"){const{dataIndex:o,data:i,index:n,key:r,dataKey:a}=t,l=K[r],s=["mark"].includes(r)||"extracorporealCirculation"===r?l.dataList[o]:l[o];switch(e){case"remove":s.data.splice(n,1);break;case"change":"extracorporealCirculation"===r?s[a]=i:s.data[n]=i;break;default:{const t=Array.isArray(i)?i[0].time:i.time,e=c(t,s.data),o=Array.isArray(i)?i:[i];s.data.splice(e,0,...o);break}}J(t)}function J(t){var e;const{key:o}=t;switch(null==(e=u.value)||e.remove(...$.get(o)),$.delete(o),o){case"horizontal":_();break;case"vertical":q();break;case"mark":N();break;case"extracorporealCirculation":et()}}function N(){if(!(null==z?void 0:z.mark)||!O)return;const{title:t,titleStyle:i,pointAttr:n,dataList:r}=z.mark,a=o([W-5,B+O/2],{value:t,...i,originX:"right"});u.value.add(a);const l=B+O+G,s=G+B,c=[];r.forEach((t=>{const{time:o,list:i=[]}=t,r=A(o);if(!Z(r))return;let a=s;i.forEach((t=>{const{style:o}=t;let i=!1;const d=e((null==o?void 0:o.type)||"circleAndText",{...(null==o?void 0:o.pointAttr)||n,text:t.text,left:r,top:a,origin:{data:t,key:"mark",type:"other"}}),f=d.height;a+f<=l&&a>=s?(d.set("top",a+f/2),a+=f):(i||(a=B,i=!0),d.set("top",a-f/2),a-=f),c.push(d),Q(d),u.value.add(d)}))})),function(t){const e=t=>{var e,o;return null==(o=null==(e=t.origin)?void 0:e.data)?void 0:o.isStart},o=t.find((t=>e(t))),i=t.find((t=>!e(t)&&t.left>o.left)),n=t.filter((t=>!e(t)));t.forEach((t=>{const r={x1:W,x2:I};e(t)?(r.x2=i.left,t.otherPoints=n):(r.x1=o.left,t.startPoint=o),t.limitX=r}))}(c)}function Q(t){if(D.hovered&&(t.on("mouseover",(()=>{R(t)})),t.on("mouseout",(()=>{v.show=!1}))),t.lockMovementX&&t.lockMovementY)return;const{key:e}=t.origin,o=["mark","horizontal"].includes(e),i=["mark","vertical"].includes(e),n="extracorporealCirculation"===e;t.on("moving",(()=>{o?function(t){const e=t.origin.key,o="horizontal"===e;t.setCoords(),t.left<t.limitX.x1&&t.set("left",t.limitX.x1+(o?1:0));t.left>t.limitX.x2&&t.set("left",t.limitX.x2+(o?-1:0));if("mark"===e){t.top<Y&&t.set("top",Y);const e=B+O-t.height/2;t.top>e&&t.set("top",e)}o&&(t.originLeft=t.left+t.iconHalfWidth)}(t):n?function(t){t.setCoords();const{left:e,limitX:o}=t,i=m(new Date,"yyyy-MM-dd HH:mm"),n=A(i);o.isCurrentTime&&o.x2<n&&n>0&&n<M&&(o.x2=n);e<o.x1&&t.set({x1:o.x1,x2:o.x1});e>o.x2&&t.set({x1:o.x2,x2:o.x2});U(t,"left"),U(t,"right")}(t):(k(t),function(t){const e=t.left+t.maxTextWidth>I?"right":"left";t.setCoords().set({originX:e}),t.siblingPoints.forEach((o=>o.setCoords().set({originX:e,left:t.left})))}(t)),D.hovered&&R(t)})),t.on("mouseup",(r=>{var a;if(v.show=!1,1===r.button){o&&function(t){var e,o;if("mark"===t.origin.key){if((null==(o=null==(e=t.origin)?void 0:e.data)?void 0:o.isStart)&&t.otherPoints)t.otherPoints.forEach((e=>{e.limitX.x1=t.left}));else{const e=t.startPoint.otherPoints.map((t=>t.left)),o=Math.min(...e);t.startPoint.limitX.x2=o}return}t.prevPoint&&(t.prevPoint.limitX.x2=t.left);t.nextPoint&&(t.nextPoint.limitX.x1=t.left)}(t);const e=b(null!=(a=t.originLeft)?a:t.left),r={...t.origin,...i?{time:e}:{data:{...t.origin.data,time:e}}};u.value.discardActiveObject(),x("change",r),n&&F(r,"change")}3===r.button&&["horizontal","vertical"].includes(e)&&(y.point={x:t.left,y:t.top},y.show=!0,y.target=t,y.list=g.map((t=>({...t,renderItem:()=>t.label,_type:"other"}))))}))}function R(t){v.isTarget=!0,v.show=!0;const{key:e,data:o={}}=t.origin||{};let i=o.value;const n="extracorporealCirculation"===e||"mark"===e;v.point={x:t.left,y:n?t.top:t.top+V/2};const r=!t.origin.isMenu&&t.originLeft?t.originLeft:t.left,a=b(r);v.list=[`时间 ${a.slice(-5)}`],n&&("mark"===e&&(i=o.name),v.list.unshift(i+" ")),v.sourceData=[{type:"other",key:e,time:a,value:i}]}function U(t,e){const{shadowObjs:o,params:i}=t[`${e}ShadowBox`]||{};if(!o||!i)return;o.forEach((t=>u.value.remove(t)));i["left"===e?1:0]=t.left;const n=tt(...i);t[`${e}ShadowBox`]={shadowObjs:n,params:i}}function Z(t){return t>=W&&t<=I}function tt(...e){const[o,i,r,a]=e,{mode:l,style:s}=a,c=f(s,["angle","space"]),d=[[o,B],[i,B],[i,r],[o,r]],h=new t.Polygon(d.map((t=>({x:t[0],y:t[1]}))),{...n,...c,stroke:"transparent",..."slash"===l?{fill:"transparent"}:{}}),m=[];return["slash"].includes(l)&&m.push(...L(d,s.angle,s.space,c)),u.value.add(h,...m),$.get("extracorporealCirculation").push(h,...m),[h,...m]}function et(){if(!G)return;const{dataList:e,ascendAortaStyle:o,extracorporealCirculationStyle:i}=K.extracorporealCirculation||{};if(!(null==e?void 0:e.length))return;const n="extracorporealCirculation";$.set(n,[]);const r=B+G;let a,l;function s(t){return t&&t>W&&t<M}function c(t){return void 0===t||""===t}e.forEach(((d,f)=>{const h=function(t){const{extracorporealCirculationStart:e,closeAscendAorta:o,openAscendAorta:i,extracorporealCirculationEnd:n}=t;let r,a,l,s;return e&&(r=A(e.time)),o&&(a=A(o.time)),i&&(l=A(i.time)),n&&(s=A(n.time)),[r,a,l,s]}(d);if(-1===h.findIndex((t=>t>0&&t<M)))return;let p;h.forEach(((g,x)=>{if(c(g))return;const v=h[x+1],y=h[x-1];if(s(g)||s(v)){const k=s(g)?g:W,C=s(v)?v:c(v)?null:I,w=s(y)?y:W,X={};if(x<h.length-1&&C&&(X.params=[k,C,r,[0,2].includes(x)?i:o],X.shadowObjs=tt(...X.params)),s(g)){const o=function(t){switch(t){case 0:return"extracorporealCirculationStart";case 1:return"closeAscendAorta";case 2:return"openAscendAorta";case 3:return"extracorporealCirculationEnd"}}(x),i=m(new Date,"yyyy-MM-dd HH:mm"),c=A(i),v=g<c&&s(c)?c:g,y=function(e,o){const i=new t.Line(e,{...o,stroke:"transparent",strokeWidth:5,hasControls:!1,hasBorders:!1,hoverCursor:"e-resize",lockMovementY:!0,originX:"center"});return Q(i),u.value.add(i),$.get("extracorporealCirculation").push(i),i}([g,B,g,r],{origin:{dataIndex:f,dataKey:o,key:n,data:d[o],type:"other"},limitX:{x1:0===x?null!=a?a:W:w,x2:C||v,isCurrentTime:!C&&f===e.length-1},...[1,2,3].includes(x)?{leftShadowBox:p}:{},...[0,1,2].includes(x)?{rightShadowBox:X}:{}});x===h.length-1&&(a=g,l=y),0===x&&l&&(l.limitX.x2=k)}p=X}}))}))}return function(){if(!(null==z?void 0:z.longLine)||!z.longLine.time)return;const{time:t,style:e}=z.longLine,o=A(t),n=i([o,0,o,B],e);u.value.add(n)}(),function(){var t;if(!(null==(t=null==K?void 0:K.horizontal)?void 0:t.length))return;const{horizontal:o}=K,i=W-5;let n=Y+H/2;o.forEach(((t,o)=>{const{title:r,titleStyle:a={},defaultAddValue:l}=t,s=r&&e(r,{...a,originX:"right",left:i,top:n,origin:{defaultAddValue:l,dataIndex:o,type:"other",key:"horizontal",title:r,isMenu:!0},originLeft:i,originTop:n});var c;(c=s).on("moving",(()=>{c.set("originX","center"),j(c)?R(c):v.show=!1})),c.on("mouseup:before",(t=>{if(v.show=!1,0===t.e.button&&j(c))if(P($.get("horizontal"),c.left,"key",T).includes(c.origin.key))E("repeat"),console.log("重复节点");else{const t={data:{time:b(c.left),value:c.origin.defaultAddValue},...c.origin};x("add",f(t,["isMenu"])),F(t)}!function(t){t.setCoords().set({originX:"right",left:t.originLeft,top:t.originTop})}(c)})),u.value.add(s),n+=H}))}(),_(),q(),N(),et(),a.on((()=>{const t="horizontal",e=C($.get(t));e.length>0?w((()=>{const o=function(t){const e=t.reduce(((t,e)=>{const{dataIndex:o}=e.origin;return t[o]=t[o]?t[o].concat(e.origin):[e.origin],t}),{});return h(Object.keys(e).map((t=>{const o=e[t];return K.horizontal[t].data.splice(o[0].index,o.length),o})))}(e);J({key:t}),x("remove",o)})):X()})),{clickMenu:function({item:t,target:e}){if(!e)return;const{type:o,_type:i}=t,n={...e.origin,type:i};x(o,n),"remove"===o&&F(n,o)}}}export{x as useOther};
@@ -11,5 +11,6 @@ export declare function useSurgicalAnesthesiaChart(canvas: Ref<fabric.Canvas>, p
11
11
  useCaliper?: Ref<import("../../../../../shared/types").AnyFn | null | undefined> | undefined;
12
12
  useCaliperRuler?: Ref<import("../../../../../shared/types").AnyFn | null | undefined> | undefined;
13
13
  useRectRuler?: Ref<import("../../../../../shared/types").AnyFn | null | undefined> | undefined;
14
+ redrawLinePoints?: Ref<import("../../../../../shared/types").AnyFn | null | undefined> | undefined;
14
15
  propItems: any;
15
16
  };
@@ -1 +1 @@
1
- import{reactive as e,ref as t,computed as a,unref as r,onMounted as i,nextTick as o,onBeforeUnmount as l,watch as n,toRefs as u}from"vue";import{useDialog as s}from"naive-ui";import{defaultBorderStyle as d}from"../useDraw.js";import"../../../../../shared/utils/fabricjs/index.js";import{format as c}from"date-fns";import{getChildrenSize as p}from"../../utils/index.js";import{cloneDeep as m,range as v,flatten as h}from"lodash-es";import"../useEvent.js";import"../temperature/useShadow.js";import{OTHER_MENU as f}from"../../constants/index.js";import"@vueuse/shared";import"@vueuse/core";import{useTop as g}from"./useTop.js";import{useLeft as w}from"./useLeft.js";import{useCenter as y}from"./useCenter.js";import{useOther as b}from"./useOther.js";function x(x,j,C,Y,H,S,T){var D;const M=s(),k=e({redrawPoints:null,clickMenu:null}),A=t();let P=null;const X=p((null==(D=j.data.top)?void 0:D.treeData)||[]),G=a((()=>j.data.layout||{top:"drug",center:"xAxis",bottom:"intraoperatively"})),N=a((()=>{var e;return null!=(e=j.data.left.width)?e:0})),V=a((()=>{const{grid:e}=j.data;return e.mainXCell*e.subXCell})),L=a((()=>{const{grid:e}=j.data;return e.mainYCell*e.subYCell})),O=a((()=>{const{show:e=!0,tree:t={}}=j.data.top;if(!e)return 0;const{rowNumber:a=X}=t;return X<a?a:X})),E=a((()=>j.data.top.tree.cellHeight)),W=a((()=>E.value*O.value)),I=a((()=>ne(oe("drug")||"top"))),F=a((()=>I.value+W.value)),q=a((()=>{var e;return Date.parse((null==(e=j.data.xAxis)?void 0:e.startTime)||c(new Date,"yyyy-MM-dd HH:mm:ss"))})),z=a((()=>{const e=m(j.data.xAxis),{spaceValue:t,spaceTimeStamp:a}=e,r=v(V.value/t+1).map((r=>0===r?e.startTime:c(new Date(q.value+r*t*a),"yyyy-MM-dd HH:mm:ss")));return{...e,list:r,left:N.value}})),B=function(){const{show:e=!0,tree:t={}}=j.data.top;if(!e)return[];const a=m(j.data.top.treeData);let r=0;const{cellWidth:i,cellHeight:o}=j.data.top.tree,{rowNumber:l=X}=t;X<l&&a.push(...v(l-X).map((()=>({}))));return function e(t,a=0){t.forEach((t=>{var l;const n={top:r*o+I.value,left:a*i,width:i,height:o};if(r++,null==(l=t.children)?void 0:l.length){r--;const i=p(t.children);n.height=i*o,e(t.children,a+1)}else n.width=N.value-n.left;Object.assign(t,n)}))}(a),a}(),J=a((()=>ne(oe("xAxis")||"center"))),K=a((()=>{var e;const{width:t,right:a}=j.data;if(!a)return t;return t-(null!=(e=a.width)?e:0)})),Q=a((()=>ne(oe("intraoperatively")||"bottom"))),R=a((()=>{var e;const{show:t,height:a}=(null==(e=j.data.other)?void 0:e.mark)||{};return t&&a?a:0})),U=a((()=>Q.value+(j.data.height-W.value-z.value.height-R.value))),Z=a((()=>(K.value-N.value)/V.value)),$=a((()=>(U.value-Q.value)/L.value)),_=a((()=>z.value.spaceTimeStamp/Z.value)),ee=a((()=>{const{scaleValues:e}=j.data;return h(e.map((e=>e.dataList.filter((e=>e.show)).map(((t,a)=>({...t,bigType:e.type,unit:e.unit,dataIndex:a}))))))})),te=a((()=>ue("pulse"))),ae=a((()=>ue("temperature"))),re=a((()=>{var e;return(null==(e=j.data.grid)?void 0:e.event)||{selectable:!0,evented:!0,hovered:!0}})),ie=e({canvasWidth:j.data.width,canvasHeight:j.data.height,borderStyle:{...d,...j.data.borderStyle},pointSelectionStyle:j.data.pointSelectionStyle||{},grid:j.data.grid,top:j.data.top,left:j.data.left,other:j.data.other,topGridYNumber:r(O),topGridYCellHeight:r(E),topGridOriginY:r(I),topGridEndY:r(F),treeData:B,xAxis:r(z),originYXAxis:r(J),startTime:r(q),timeXCell:r(_),gridXNumber:r(V),gridYNumber:r(L),xCellWidth:r(Z),yCellHeight:r($),originX:r(N),endX:r(K),originY:r(Q),endY:r(U),markHeight:r(R),itemList:r(ee),scaleValues:j.data.scaleValues,pulseYCell:r(te),temperatureYCell:r(ae),event:r(re),dialog:M});function oe(e){let t="";return Object.entries(G.value).some((([a,r])=>{if(r===e)return t=a,!0})),t}function le(e){const t=G.value[e],a=z.value.height;switch(t){case"drug":return W.value;case"xAxis":return a;default:return j.data.height-W.value-a}}function ne(e){switch(e){case"top":return 0;case"center":return le("top");default:return le("top")+le("center")}}function ue(e){const{scaleValues:t}=j.data,a=t.find((t=>t.type===e));return $.value*(a.spaceGridNumber||1)/(a.spaceValue||1)}return i((async()=>{await o(),g(x,ie,C,H);const{redrawPoints:e,clickMenu:t,moveLimit:a,setPopup:r,updateData:i,getGridPoints:l,getContainPoints:n,showDialog:u,removeCurrentSelection:s,pauseFlickerPoint:d}=y(x,ie,C,H,S,T);A.value=d,w(x,ie,C,H,a,r,i,l);const{clickMenu:c}=b(x,ie,C,H,S,a,n,u,s);k.redrawPoints=e,k.clickMenu=e=>{const{item:a}=e;a.type&&f.map((e=>e.type)).includes(a.type)?c(e):t(e)}})),l((()=>{A.value()})),T&&n((()=>null==H?void 0:H.point),(()=>{H.movable?(H.show=!0,P&&clearTimeout(P),P=setTimeout((()=>{H.show=!1,H.movable=!1}),3e3)):P&&clearTimeout(P)}),{deep:!0}),{propItems:ie,...u(k)}}export{x as useSurgicalAnesthesiaChart};
1
+ import{reactive as e,ref as t,computed as a,unref as r,onMounted as i,nextTick as o,onBeforeUnmount as n,watch as l,toRefs as u}from"vue";import{useDialog as s}from"naive-ui";import{defaultBorderStyle as d}from"../useDraw.js";import"../../../../../shared/utils/fabricjs/index.js";import{format as c}from"date-fns";import{getChildrenSize as m}from"../../utils/index.js";import{cloneDeep as p,range as h,flatten as v}from"lodash-es";import"../useEvent.js";import"../useShadow.js";import"../useCommon.js";import"../../constants/index.js";import"@vueuse/shared";import"@vueuse/core";import{useTop as g}from"./useTop.js";import{useLeft as f}from"./useLeft.js";import{useCenter as w}from"./useCenter.js";import{useOther as x}from"./useOther.js";import{uuidGenerator as b}from"../../../../../shared/utils/index.js";function y(y,C,j,Y,H,M,T){var k;const D=s(),P=e({redrawPoints:null,clickMenu:null,redrawLinePoints:null}),S=t();let A=null;const L=m((null==(k=C.data.top)?void 0:k.treeData)||[]),X=a((()=>C.data.layout||{top:"drug",center:"xAxis",bottom:"intraoperatively"})),G=a((()=>{var e;return null!=(e=C.data.left.width)?e:0})),N=a((()=>{const{grid:e}=C.data;return e.mainXCell*e.subXCell})),V=a((()=>{const{grid:e}=C.data;return e.mainYCell*e.subYCell})),O=a((()=>{const{show:e=!0,tree:t={}}=C.data.top;if(!e)return 0;const{rowNumber:a=L}=t;return L<a?a:L})),E=a((()=>C.data.top.tree.cellHeight)),W=a((()=>E.value*O.value)),I=a((()=>ue(ne("drug")||"top"))),F=a((()=>I.value+W.value)),_=a((()=>{var e;return Date.parse((null==(e=C.data.xAxis)?void 0:e.startTime)||c(new Date,"yyyy-MM-dd HH:mm:ss"))})),q=a((()=>{const e=p(C.data.xAxis),{spaceValue:t,spaceTimeStamp:a}=e,r=h(N.value/t+1).map((r=>0===r?e.startTime:c(new Date(_.value+r*t*a),"yyyy-MM-dd HH:mm:ss")));return{...e,list:r,left:G.value}})),z=se(),B=a((()=>ue(ne("xAxis")||"center"))),J=a((()=>{var e;const{width:t,right:a}=C.data;if(!a)return t;return t-(null!=(e=a.width)?e:0)})),K=a((()=>ue(ne("intraoperatively")||"bottom"))),Q=a((()=>{var e;const{show:t,height:a}=(null==(e=C.data.other)?void 0:e.extracorporealCirculation)||{};return t&&a?a:0})),R=a((()=>{var e;const{show:t,height:a}=(null==(e=C.data.other)?void 0:e.mark)||{};return t&&a?a:0})),U=a((()=>K.value+(C.data.height-W.value-q.value.height-R.value-Q.value))),Z=a((()=>(J.value-G.value)/N.value)),$=a((()=>(U.value-K.value)/V.value)),ee=a((()=>q.value.spaceTimeStamp/Z.value)),te=a((()=>{const{scaleValues:e}=C.data;return v(e.map((e=>e.dataList.filter((e=>e.show)).map(((t,a)=>({...t,bigType:e.type,unit:e.unit,dataIndex:a}))))))})),ae=a((()=>de("pulse"))),re=a((()=>de("temperature"))),ie=a((()=>{var e;return(null==(e=C.data.grid)?void 0:e.event)||{selectable:!0,evented:!0,hovered:!0}})),oe=e({canvasWidth:C.data.width,canvasHeight:C.data.height,borderStyle:{...d,...C.data.borderStyle},pointSelectionStyle:C.data.pointSelectionStyle||{},grid:C.data.grid,top:C.data.top,left:C.data.left,other:C.data.other,topGridYNumber:r(O),topGridYCellHeight:r(E),topGridOriginY:r(I),topGridEndY:r(F),treeData:z,getTreeData:se,xAxis:r(q),originYXAxis:r(B),startTime:r(_),timeXCell:r(ee),gridXNumber:r(N),gridYNumber:r(V),xCellWidth:r(Z),yCellHeight:r($),originX:r(G),endX:r(J),originY:r(K),endY:r(U),markHeight:r(R),extracorporealCirculationHeight:r(Q),itemList:r(te),scaleValues:C.data.scaleValues,pulseYCell:r(ae),temperatureYCell:r(re),event:r(ie),dialog:D,extraMenuConfig:C.data.extraMenuConfig||{}});function ne(e){let t="";return Object.entries(X.value).some((([a,r])=>{if(r===e)return t=a,!0})),t}function le(e){const t=X.value[e],a=q.value.height;switch(t){case"drug":return W.value;case"xAxis":return a;default:return C.data.height-W.value-a}}function ue(e){switch(e){case"top":return 0;case"center":return le("top");default:return le("top")+le("center")}}function se(){const{show:e=!0,tree:t={}}=C.data.top;if(!e)return[];const a=p(C.data.top.treeData);let r=0;const{cellWidth:i,cellHeight:o}=C.data.top.tree,{rowNumber:n=L}=t;return L<n&&a.push(...h(n-L).map((()=>({})))),function e(t,a=0){t.forEach((t=>{var n;const l={top:r*o+I.value,left:a*i,width:i,height:o,uuid:b()};if(r++,null==(n=t.children)?void 0:n.length){r--;const i=m(t.children);l.height=i*o,e(t.children,a+1)}else l.width=G.value-l.left;Object.assign(t,l)}))}(a),a}function de(e){const{scaleValues:t}=C.data,a=t.find((t=>t.type===e));return $.value*(a.spaceGridNumber||1)/(a.spaceValue||1)}return i((async()=>{await o();const{redrawLinePoints:e,clickMenu:t}=g(y,oe,j,H,M),{redrawPoints:a,clickMenu:r,moveLimit:i,setPopup:n,updateData:l,getGridPoints:u,getContainPoints:s,showDialog:d,removeCurrentSelection:c,pauseFlickerPoint:m}=w(y,oe,j,H,M,T);S.value=m,f(y,oe,j,H,i,n,l,u);const{clickMenu:p}=x(y,oe,j,H,M,i,s,d,c);P.redrawPoints=a,P.redrawLinePoints=e,P.clickMenu=e=>{const{item:a}=e;switch(a._type){case"tree":t(e);break;case"other":p(e);break;default:r(e)}}})),n((()=>{S.value()})),T&&l((()=>null==H?void 0:H.point),(()=>{H.movable?(H.show=!0,A&&clearTimeout(A),A=setTimeout((()=>{H.show=!1,H.movable=!1}),3e3)):A&&clearTimeout(A)}),{deep:!0}),{propItems:oe,...u(P)}}export{y as useSurgicalAnesthesiaChart};
@@ -2,4 +2,10 @@ import { type Ref } from 'vue';
2
2
  import { fabric } from '../../../../../shared/utils/fabricjs';
3
3
  import { AnyObject } from '../../../../../shared/types';
4
4
  import { IPointTipProps, IPointMenuProps } from '../../../../../components/fabric-chart/src/interface';
5
- export declare function useTop(canvas: Ref<fabric.Canvas>, propItems: AnyObject, emits: Function, pointTipProps: IPointTipProps, pointMenuProps: IPointMenuProps): void;
5
+ export declare function useTop(canvas: Ref<fabric.Canvas>, propItems: AnyObject, emits: Function, pointTipProps: IPointTipProps, pointMenuProps: IPointMenuProps): {
6
+ redrawLinePoints: () => void;
7
+ clickMenu: ({ item, target }: {
8
+ item: AnyObject;
9
+ target: any;
10
+ }) => void;
11
+ };
@@ -1 +1 @@
1
- import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{defaultStyle as e,drawText as i,defaultRectStyle as n,drawTextGroup as o,drawLine as r,drawPoint as l}from"../useDraw.js";import{useGrid as s}from"../useGrid.js";import{useBirthProcessCumputedPoint as a}from"../useCumputedPoint.js";import"../useEvent.js";import{drawScaleNumber as c}from"../useScaleColumn.js";import{useCommon as f}from"../useCommon.js";import"vue";import{getScaleNumberList as u}from"../../utils/index.js";import{isArray as d,cloneDeep as m}from"lodash-es";import"date-fns";import"../temperature/useShadow.js";import"@vueuse/shared";import"naive-ui";import"@vueuse/core";function p(p,h,g,v,x){const{computedX:L,getXValue:X}=a(h),{originX:C,endX:w,xCellWidth:y,originYXAxis:Y,top:S,canvasWidth:j,borderStyle:b,treeData:G,xAxis:k,topGridYNumber:E,topGridOriginY:I,topGridYCellHeight:M,topGridEndY:z,event:A}=h,{getPointEventProps:$}=f(p,g,h),V=new Set;function D(t,e,i){let n;const{content:o}=t.value||{},{startLine:r,endLine:s,centerLine:a}=e;if(o&&(r||a||s)){const{textStyle:a}=S.dataStyle||{};n=l(o,{fontSize:12,...a,backgroundColor:"#fff",lockMovementX:!0,lockMovementY:!0});const c=N(n,e,i);n&&(n.set(c),n.origin={data:t},T(n),r&&(r.text=n),s&&(s.text=n))}return n}function N(t,e,i){const n=t.width+1,{startLine:o,centerLine:r,endLine:l}=e,s={top:i,originX:"center",originY:"center"};return r&&n<=r.width?s.left=r.x1+r.width/2:l&&n<=l.limitX.x2-l.left?(s.originX="left",s.left=l.left+1):o&&!l&&n<=o.limitX.x2-o.left?(s.originX="left",s.left=o.left+(o.isCustomIcon?5:1)):o&&n<=o.left-o.limitX.x1?(s.originX="right",s.left=o.left-(o.isCustomIcon?5:1)):r?(s.originY="top",s.left=r.x1+r.width/2,s.top=i+1,s.fontSize=10):o&&(s.originX="left",s.originY="top",s.fontSize=10,s.left=o.left,s.top=i+1),s}function P(e,{isCustomIcon:i,isContinue:n,isLeft:o}){const{x:s,y1:a,y2:c,halfY:f}=e;if(!s||s<C||s>w)return;const{lineStyle:u}=S.dataStyle||{};let d;const m={left:s,top:f};d=i?l("circle",{fill:u.stroke,...m}):n?l(">",{fill:u.stroke,...m,fontSize:18}):r([s,a,s,f],u);const p=new t.Rect({width:y,height:M,fill:"transparent",left:s-y/2,top:a}),h=new t.Group([d,p],{originX:"center",originY:"center",hasControls:!1,hasBorders:!1,objectCaching:!1,hoverCursor:"pointer",...$(),lockMovementY:!0});return h.isLeft=o,h.isCustomIcon=i,T(h),h}function T(t){A.hovered&&(t.on("mouseover",(()=>{B(t,"hover")})),t.on("mouseout",(()=>{v.show=!1}))),t.lockMovementX&&t.lockMovementY||(t.on("moving",(()=>{!function(t){t.setCoords(),t.left<t.limitX.x1&&t.set("left",t.limitX.x1);t.left>t.limitX.x2&&t.set("left",t.limitX.x2)}(t),function(t){if(t.centerLine){const e=t.isLeft?{x1:t.left}:{x2:t.left};t.centerLine.setCoords().set(e)}if(t.text){const e=N(t.text,{startLine:t.isLeft?t:t.nearLine,centerLine:t.centerLine,endLine:t.isLeft?t.nearLine:t},t.top);t.text.setCoords().set(e)}}(t),A.hovered&&B(t)})),t.on("mouseup",(e=>{if(1===e.button){!function(t){t.isLeft?(t.prevLine&&(t.prevLine.limitX.x2=t.left),t.nearLine&&(t.nearLine.limitX.x1=t.left)):(t.nextLine&&(t.nextLine.limitX.x1=t.left),t.nearLine&&(t.nearLine.limitX.x2=t.left))}(t);const e={type:"tree",...t.origin};g("change",e)}})))}function B(t,e="moving"){var i,n,o;const{data:r}=t.origin;v.point={x:t.left,y:t.top};let[l="",s=""]=r.time||[];if("moving"===e){const e=X(t.left);t.isLeft?l=e:s=e,r.time=[l,s],t.text&&(t.text.origin.data.time=[l,s])}v.list=[`开始时间 ${l}`,`结束时间 ${s}`,`流速 ${(null==(i=r.value)?void 0:i.currentSpeed)||""}`,`浓度 ${(null==(n=r.value)?void 0:n.consistence)||""}`,`总量 ${(null==(o=r.value)?void 0:o.total)||""}`],v.sourceData=[{type:"tree",startTime:l,endTime:s,value:r.value}],v.isTarget=!0,v.show=!0}s(p,{...h,gridYNumber:E,originY:I,yCellHeight:M,endY:z}),function(){const{height:o,list:r,left:l,spaceValue:s,style:a,marginBottom:c}=k;if(!o)return;const f=[],u=Y+(c?o-c:o/2),d=c?"bottom":"center";r.forEach(((t,e)=>{const n=l+e*y*s;f.push(i([n,u],{value:t.slice(11,16),originY:d,...a}))}));const m=f.length>0?new t.Group([...f],{...e,objectCaching:!1}):null;m&&p.value.add(m);const h=new t.Rect({width:j,height:o,left:0,top:Y,...n,originX:"left",originY:"top",...b});p.value.add(h);const{show:g=!0}=S}(),function(){var i;const n=(null==(i=null==S?void 0:S.tree)?void 0:i.textStyle)||{},l=[];!function t(e){e.forEach((e=>{var i;const{width:s,height:a,left:c,top:f,title:u=""}=e,d={value:u,...n};(null==(i=e.children)?void 0:i.length)?(d.value=u.split("").join("\n"),t(e.children)):(d.textAlign="left",function(t){if(!(null==t?void 0:t.data)||!Array.isArray(t.data))return;const{lineStyle:e}=S.dataStyle||{},i=t.top,n=i+M,o=n-M/2,l={y1:i,y2:n,halfY:o};let s=null;const a=m(t);delete a.data,t.data.forEach(((t,i,n)=>{const{time:c,continue:f}=t,[u,d]=c,m=u&&L(u),p=d&&L(d),h=P({...l,x:m},{isCustomIcon:!p&&!f,isContinue:!1,isLeft:!0}),g=P({...l,x:p},{isCustomIcon:!1,isContinue:!!f});let v;if((h||m<C)&&(g||p>w)){v=r([h?m:C,o,g?p:w,o],e)}const x={startLine:h,centerLine:v,endLine:g};let X,y;!function(t,e,i){const{startLine:n,centerLine:o,endLine:r}=e,{startLine:l,endLine:s}=t||{};if(n){n.origin=i;const t={x1:C,x2:r?r.left:w};s?(t.x1=s.left,s.limitX.x2=n.left,n.prevLine=s,s.nextLine=n):l&&(t.x1=l.left,l.limitX.x2=n.left,n.prevLine=l,l.nextLine=n),n.limitX=t,o&&(n.centerLine=o)}if(r){r.origin=i;const t={x1:n?n.left:C,x2:w};r.limitX=t,o&&(r.centerLine=o)}n&&r&&(n.nearLine=r,r.nearLine=n)}(s,x,Object.assign({},a,{data:t,index:i})),s&&(X=D(n[i-1],s,o)),i===n.length-1&&(y=D(t,x,o)),s=x,v&&V.add(v),h&&V.add(h),g&&V.add(g),X&&V.add(X),y&&V.add(y)}))}(e)),l.push(o({width:s,height:a,...b},d,{left:c,top:f},!0))}))}(G);const s=l.length>0?new t.Group([...l],{...e,objectCaching:!1}):null;s&&p.value.add(s),V.size&&p.value.add(...V)}(),function(){const{show:i=!0,range:n,spaceValue:o=.5,spaceGridNumber:r=1,style:l,margin:s=5}=(null==S?void 0:S.scaleValue)||{};if(!i||!d(n))return;const a=u(n,o),f=[];if(a.forEach(((t,e)=>{if(0===e||e===a.length-1)return;const i=z-e*M*r;Math.abs(i-I)<1||f.push(c(String(t),{style:l,position:"right"},w+s,i))})),!f.length)return;const m=new t.Group(f,{objectCaching:!1,...e});p.value.add(m)}()}export{p as useTop};
1
+ import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{defaultStyle as t,drawText as n,defaultRectStyle as i,drawTextGroup as o,drawLine as r,drawPoint as l}from"../useDraw.js";import{useGrid as s}from"../useGrid.js";import{useBirthProcessCumputedPoint as c}from"../useCumputedPoint.js";import"../useEvent.js";import"../useShadow.js";import{drawScaleNumber as u}from"../useScaleColumn.js";import{useCommon as a}from"../useCommon.js";import"vue";import{getScaleNumberList as f}from"../../utils/index.js";import{filter as d,omit as h,has as p,isArray as m}from"lodash-es";import"date-fns";import{OTHER_MENU as g}from"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"@vueuse/core";import"./useOther.js";import"../../../../../shared/utils/index.js";const v=d(g,(e=>"add"!==e.type));function L(e,t,[n,i]){var o,r;let l=null;for(let s=0;s<e.length;s++){const c=e[s],{left:u,top:a,width:f,height:d}=c;if("tree"===t&&!(null==(o=c.children)?void 0:o.length)&&i>=a&&i<=a+d){l=c;break}if("treeMenu"===t&&n>=u&&n<=u+f&&i>=a&&i<=a+d){l=c;break}if(null==(r=c.children)?void 0:r.length){const e=L(c.children,t,[n,i]);if(e){l=e;break}}}return l?h(l,["uuid","left","top","width","height"]):null}function x(d,g,x,y,w){const{computedX:X,getXValue:C}=c(g),{originX:b,endX:Y,xCellWidth:k,originYXAxis:S,top:j,canvasWidth:M,borderStyle:$,treeData:G,xAxis:I,topGridYNumber:E,topGridOriginY:P,topGridYCellHeight:R,topGridEndY:T,event:z,extraMenuConfig:A,getTreeData:V,grid:D}=g,{getPointEventProps:B}=a(d,x,g);let N=V();const W=new Set;function F(){const{show:e=!0,range:t}=(null==j?void 0:j.scaleValue)||{};return e&&m(t)}function H(){!function e(t){t.forEach((t=>{var i;(null==(i=t.children)?void 0:i.length)?e(t.children):(function(e){if(!(null==e?void 0:e.data)||!Array.isArray(e.data))return;const{lineStyle:t}=j.dataStyle||{},n=e.top,i=n+R,o=i-R/2,l={y1:n,y2:i,halfY:o};let s=null;const c=h(e,["data","width","height","left","top"]);e.data.forEach(((n,i,u)=>{const a={...c,data:n,index:i},{time:f,continue:d}=n,[h,p]=f,m=h&&X(h),g=p&&X(p),v=q({...l,x:m},{isCustomIcon:!g&&!d,isContinue:!1,isLeft:!0}),L=q({...l,x:g},{isCustomIcon:!1,isContinue:!!d});let x,y;if((v||m<b)&&(L||g>Y)){const n=v?m:b,i=L?g:Y;x="wavy"===e.lineType?O([n,i,o],t):r([n,o,i,o],t),y=U({width:i-n-k,left:n+(i-n)/2,top:o,onlyRect:!0}),y.origin=a,x.centerLineRect=y}const w={startLine:v,centerLine:x,endLine:L};let C,S;!function(e,t,n){const{startLine:i,centerLine:o,endLine:r}=t,{startLine:l,endLine:s}=e||{};if(i){i.origin=n;const e={x1:b,x2:r?r.left:Y};s?(e.x1=s.left,s.limitX.x2=i.left,i.prevLine=s,s.nextLine=i):l&&(e.x1=l.left,l.limitX.x2=i.left,i.prevLine=l,l.nextLine=i),i.limitX=e,o&&(i.centerLine=o)}if(r){r.origin=n;const e={x1:i?i.left:b,x2:Y};r.limitX=e,o&&(r.centerLine=o)}o&&(o.origin=n);i&&r&&(i.nearLine=r,r.nearLine=i)}(s,w,a),s&&(C=_(u[i-1],s,o,a)),i===u.length-1&&(S=_(n,w,o,a)),s=w,x&&W.add(x),y&&W.add(y),v&&W.add(v),L&&W.add(L),C&&W.add(C),S&&W.add(S)}))}(t),function(e){if(F())return;const t=M-Y,{divider:i={},style:o}=(null==j?void 0:j.total)||{};if(i.show){const n=e.top+R,o=r([Y,n,Y+t,n],i.style);d.value.add(o)}if(!(null==e?void 0:e.total))return;const l=e.top+R/2,s=Y+t/2,c=n([s,l],{value:e.total,...o}),u=M-$.strokeWidth;s+c.width>u&&c.set({originX:"right",left:u});c&&d.value.add(c)}(t))}))}(N),W.size&&d.value.add(...W)}function O([n,i,o],r){const{stroke:l="#000"}=r||{},{subXCell:s=6}=D,c=k*s,u=R/2,a=c/2,f=o-u,d=o+u;if(n>i)return;let h=n,p=`M${h} ${o}`,m=0;for(;i-h>=c;)p+=` Q${h+a} ${m%2==0?f:d} ${h+c} ${o}`,h+=c,m++;i-h<c&&(p+=` L${i} ${o}`);const g=new e.Gradient({gradientUnits:"pencentage",coords:{x1:i,y1:0,x2:0,y2:0},colorStops:[{offset:0,color:l+"90"},{offset:.5,color:l+"50"},{offset:1,color:l+"20"}]}),v=new e.Path(p,{fill:g,objectCaching:!1,...r,...t});return v.pathPointer=[n,i,o],v.selfStyle=r,v}function _(e,t,n,i){let o;const{content:r}=e.value||{},{startLine:s,endLine:c,centerLine:u}=t;if(r&&(s||u||c)){const{textStyle:e}=j.dataStyle||{};o=l(r,{fontSize:12,...e,backgroundColor:"#fff",lockMovementX:!0,lockMovementY:!0});const u=Q(o,t,n);o&&(o.set(u),o.origin=i,J(o),s&&(s.text=o),c&&(c.text=o))}return o}function Q(e,t,n){var i,o,r;const l=e.width+1,{startLine:s,centerLine:c,endLine:u}=t,a={top:n,originX:"center",originY:"center"},f=null!=(r=null!=(o=null==c?void 0:c.x1)?o:null==(i=null==c?void 0:c.pathPointer)?void 0:i[0])?r:0;return c&&l<=c.width?a.left=f+c.width/2:u&&l<=u.limitX.x2-u.left?(a.originX="left",a.left=u.left+1):s&&!u&&l<=s.limitX.x2-s.left?(a.originX="left",a.left=s.left+(s.isCustomIcon?5:1)):s&&l<=s.left-s.limitX.x1?(a.originX="right",a.left=s.left-(s.isCustomIcon?5:1)):c?(a.originY="top",a.left=f+c.width/2,a.top=n+1,a.fontSize=10):s&&(a.originX="left",a.originY="top",a.fontSize=10,a.left=s.left,a.top=n+1),e.bringToFront(),a}function U(t){const{bindLine:n,width:i,left:o,top:r,props:l,onlyRect:s=!1}=t,c={originX:"center",originY:"center",hasControls:!1,hasBorders:!1,hoverCursor:"pointer",left:o,top:r},u=new e.Rect({width:i,height:R,fill:"transparent",...c});if(s)return u.set({lockMovementX:!0,lockMovementY:!0}),J(u),u;const a=new e.Group([n,u],{...c,...l,lockMovementY:!0});return J(a),a}function q(e,{isCustomIcon:t,isContinue:n,isLeft:i}){const{x:o,y1:s,y2:c,halfY:u}=e;if(!o||o<b||o>Y)return;const{lineStyle:a,customIcon:f={}}=j.dataStyle||{};let d;const h={left:o,top:u};d=t?l(f.type||"circle",{fill:a.stroke,...f.style,...h}):n?l(">",{fill:a.stroke,...h,fontSize:18}):r([o,s,o,u],a);const p=U({...h,width:k,bindLine:d,props:B()});return p.isLeft=i,p.isCustomIcon=t,p}function J(e){z.hovered&&(e.on("mouseover",(()=>{K(e,"hover")})),e.on("mouseout",(()=>{y.show=!1}))),e.lockMovementX&&e.lockMovementY||(e.on("moving",(()=>{!function(e){e.setCoords(),e.left<e.limitX.x1&&e.set("left",e.limitX.x1);e.left>e.limitX.x2&&e.set("left",e.limitX.x2)}(e),function(e){var t,n;if(e.centerLine){const i=e.isLeft?{x1:e.left}:{x2:e.left};if(p(e.centerLine,"pathPointer")){const{pathPointer:t,selfStyle:n}=e.centerLine;t[e.isLeft?0:1]=e.left,d.value.remove(e.centerLine);const{centerLineRect:i}=e.centerLine;e.centerLine=null;const o=O(t,n);o&&(i.bringToFront(),o.centerLineRect=i,e.centerLine=o,e.nearLine.centerLine=o,d.value.add(o))}else e.centerLine.setCoords().set(i);if(e.isLeft){const n=e.limitX.x2-e.left;null==(t=e.centerLine.centerLineRect)||t.setCoords().set({width:n-k,left:e.left+n/2})}else{const t=e.left-e.limitX.x1;null==(n=e.centerLine.centerLineRect)||n.setCoords().set({width:t-k,left:e.limitX.x1+t/2})}}if(e.text){const t=Q(e.text,{startLine:e.isLeft?e:e.nearLine,centerLine:e.centerLine,endLine:e.isLeft?e.nearLine:e},e.top);e.text.setCoords().set(t)}}(e),z.hovered&&K(e)})),e.on("mouseup",(t=>{if(1===t.button){!function(e){e.isLeft?(e.prevLine&&(e.prevLine.limitX.x2=e.left),e.nearLine&&(e.nearLine.limitX.x1=e.left)):(e.nextLine&&(e.nextLine.limitX.x1=e.left),e.nearLine&&(e.nearLine.limitX.x2=e.left))}(e);const t={type:"tree",...e.origin};x("change",h(t,["uuid"]))}})))}function K(e,t="moving"){var n,i,o;y.isTarget=!0,y.show=!0;const{data:r}=e.origin;y.point={x:e.left,y:e.top},y.marginTop=R/2;let[l="",s=""]=r.time||[];if("moving"===t){const t=C(e.left);e.isLeft?l=t:s=t,r.time=[l,s],e.text&&(e.text.origin.data.time=[l,s])}y.list=[`开始时间 ${l}`,`结束时间 ${s}`,`流速 ${(null==(n=r.value)?void 0:n.currentSpeed)||""}`,`浓度 ${(null==(i=r.value)?void 0:i.consistence)||""}`,`总量 ${(null==(o=r.value)?void 0:o.total)||""}`],y.sourceData=[{type:"tree",startTime:l,endTime:s,value:r.value}]}return s(d,{...g,gridYNumber:E,originY:P,yCellHeight:R,endY:T}),function(){var o;const{height:r,list:l,left:s,spaceValue:c,style:u,marginBottom:a}=I;if(!r)return;const f=[],h=S+(a?r-a:r/2),p=a?"bottom":"center";l.forEach(((e,t)=>{const i=s+t*k*c;f.push(n([i,h],{value:e.slice(11,16),originY:p,...u}))}));const m=f.length>0?new e.Group([...f],{...t,objectCaching:!1}):null;m&&d.value.add(m);const g=new e.Rect({width:M,height:r,left:0,top:S,...i,originX:"left",originY:"top",...$});if(d.value.add(g),!F()){const{title:e=(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.234"))||"总量",style:t}=(null==j?void 0:j.total)||{},i=n([Y+(M-Y)/2,h],{value:e,originY:p,...t});d.value.add(i)}}(),function(){var n;const i=(null==(n=null==j?void 0:j.tree)?void 0:n.textStyle)||{},r=[];!function e(t){t.forEach((t=>{var n;const{width:l,height:s,left:c,top:u,title:a=""}=t,f={value:a,...i};(null==(n=t.children)?void 0:n.length)?(f.value=a.split("").join("\n"),e(t.children)):f.textAlign="left",r.push(o({width:l,height:s,...$},f,{left:c,top:u},!0))}))}(G);const l=r.length>0?new e.Group([...r],{...t,objectCaching:!1}):null;l&&d.value.add(l)}(),H(),function(){const{range:n,spaceValue:i=.5,spaceGridNumber:o=1,style:r,margin:l=5}=(null==j?void 0:j.scaleValue)||{};if(!F())return;const s=f(n,i),c=[];if(s.forEach(((e,t)=>{if(0===t||t===s.length-1)return;const n=T-t*R*o;Math.abs(n-P)<1||c.push(u(String(e),{style:r,position:"right"},Y+l,n))})),!c.length)return;const a=new e.Group(c,{objectCaching:!1,...t});d.value.add(a)}(),z.evented&&d.value.on("mouse:up",(e=>{3===e.button&&function(e){y.show=!1;const{x:t=0,y:n=0}=e.pointer||{};if(n>=P&&n<=T)if(t>=b&&t<=Y)if(e.target){const t=e.target;w.point={x:t.left,y:t.top},w.show=!0,w.target=t;const{treeMenuList:n=[]}=A;w.list=v.concat(n).map((e=>({...e,renderItem:()=>e.label,type:e.key||e.type,_type:"tree"})))}else{const e={type:"tree",treeItem:L(N,"tree",[t,n]),time:C(t)};x("right-click",e)}else{const e={type:"treeMenu",treeItem:L(G,"treeMenu",[t,n])};x("right-click",e)}}(e)})),{redrawLinePoints:function(){var e;W.size&&(null==(e=d.value)||e.remove(...W)),W.clear(),N=V(),H()},clickMenu:function({item:e,target:t}){var n;if(!t)return;const{type:i,_type:o}=e,r={...t.origin,type:o};if(v.map((e=>e.type)).includes(i)){if("remove"===i){const e=[...W].filter((e=>{var t;return(null==(t=e.origin)?void 0:t.uuid)===r.uuid}));e.length&&(d.value.remove(...e),e.forEach((e=>{W.delete(e)})))}x(i,h(r,["uuid"]))}else null==(n=A.click)||n.call(A,i,h(r,["uuid"]))}}}export{x as useTop};
@@ -1 +1 @@
1
- import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{drawTextGroup as e,defaultTextStyle as i,defaultStyle as o}from"../useDraw.js";import"date-fns";import"lodash-es";import"../useEvent.js";import"vue";import"./useShadow.js";import"@vueuse/shared";import"naive-ui";import"@vueuse/core";function n(n,s){const{xScaleList:r,originX:a,endX:l,endY:h,xCellWidth:u,canvasWidth:c,canvasHeight:d,bottom:p,breathingHeight:m,iconsWidth:g,borderStyle:v}=s;!function(){var s,c,d;if(!m||!p){const e=new t.Line([g,h-1,l,h-1],v);return n.value.add(e),e.sendToBack(),!1}const f=m,b=(null==(s=p.breathing)?void 0:s.list)||[],w=[];let j=!0;r.forEach(((t,o)=>{const n=a+o*u;let s="";b.forEach(((e,i)=>{const o=new Date(e.time).getTime();o>=t&&o<+t+t.scaleCell&&(s=e.value)}));const r=j?{top:-(f/2-10)}:{top:f/2-10};s&&(j=!j);const l=e({width:u,height:f,...v},Object.assign({},{text:String(s),...i},s?r:{}),{left:n,top:h});w.push(l)}));const x=e({width:l,height:f,...v},{text:String((null==(c=p.breathing)?void 0:c.title)+(null==(d=p.breathing)?void 0:d.unit)),...i,left:-(l-a)/2},{left:0,top:h});w.push(x);const S=w.length>0?new t.Group([...w],{...o}):null;S&&S.sendToBack(),S&&n.value.add(S)}()}export{n as useBottom};
1
+ import{fabric as t}from"../../../../../shared/utils/fabricjs/index.js";import{drawTextGroup as e,defaultTextStyle as i,defaultStyle as s}from"../useDraw.js";import"date-fns";import"lodash-es";import"../useEvent.js";import"../useShadow.js";import"../useCommon.js";import"vue";import"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"../surgicalAnesthesia/useTop.js";import"@vueuse/core";import"../surgicalAnesthesia/useOther.js";import"../../../../../shared/utils/index.js";function o(o,n){const{xScaleList:r,originX:a,endX:l,endY:u,xCellWidth:h,canvasWidth:c,canvasHeight:d,bottom:p,breathingHeight:m,iconsWidth:g,borderStyle:v}=n;!function(){var n,c,d;if(!m||!p){const e=new t.Line([g,u-1,l,u-1],v);return o.value.add(e),e.sendToBack(),!1}const f=m,j=(null==(n=p.breathing)?void 0:n.list)||[],b=[];let x=!0;r.forEach(((t,s)=>{const o=a+s*h;let n="";j.forEach(((e,i)=>{const s=new Date(e.time).getTime();s>=t&&s<+t+t.scaleCell&&(n=e.value)}));const r=x?{top:-(f/2-10)}:{top:f/2-10};n&&(x=!x);const l=e({width:h,height:f,...v},Object.assign({},{text:String(n),...i},n?r:{}),{left:o,top:u});b.push(l)}));const w=e({width:l,height:f,...v},{text:String((null==(c=p.breathing)?void 0:c.title)+(null==(d=p.breathing)?void 0:d.unit)),...i,left:-(l-a)/2},{left:0,top:u});b.push(w);const S=b.length>0?new t.Group([...b],{...s}):null;S&&S.sendToBack(),S&&o.value.add(S)}()}export{o as useBottom};
@@ -1 +1 @@
1
- import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{useShadow as t}from"./useShadow.js";import{drawLine as i,defaultStyle as n,drawPoint as o,drawText as l,drawArrow as s}from"../useDraw.js";import{useGrid as r}from"../useGrid.js";import{format as u}from"date-fns";import{getType as a,getTime as c,isOneLine as d,isOverlapPoint as p,getFloorNumber as f,isValidValue as h,setOtherType as v,isEffectiveNode as g,deleteProperty as m,getIndex as y}from"../../utils/index.js";import{cloneDeep as x,flatten as b,last as j}from"lodash-es";import"../useEvent.js";import{useCommon as w}from"../useCommon.js";import"vue";import"naive-ui";import"@vueuse/core";import{TEMPERATURE_MENU as L,PAIN_MENU as k,OVERLAP as S}from"../../constants/index.js";import{promiseTimeout as Y}from"@vueuse/shared";function E(E,O,$,T,V,P,R,C,A,I){r(E,O);const{getEqualXTypes:X,handleAddPrevent:D,getPointEventProps:H}=w(E,$,O),{createShadowLines:W}=t(),{left:z,xScaleList:F,xCellWidth:_,yCellHeight:q,originX:G,endX:N,originY:B,endY:J,itemList:K,event:Q,vitalSignsOriginY:U,painOriginY:Z,hospitalizationDate:ee,config:te,canvasHeight:ie,painSurplusCell:ne,iconsWidth:oe,canvasWidth:le,borderStyle:se}=O,re=new Set,ue=["xinmai","mai"],ae=new Map,ce=new Set,de=new Set,pe=new Set,fe=x(z.yScaleValue),he=new Set;function ve(t){var o;const l=fe.find((e=>e.show&&"pulse"===e.type));if(l&&(null==(o=l.dataList)?void 0:o.length)&&(re.size&&E.value.remove(...re),re.clear(),ae.size>1)){if(t){const{type:e,key:i}=t.origin||{};if("pulse"===e){const e=ae.get(i),n=null==e?void 0:e.findIndex((e=>e[0]===t.left));e.splice(n,1,[t.left,t.top])}}const o=function(){const e=[],t=[],i=[];for(const e of ae)t.push(e[1]),e[0]===ue[0]&&e[1].forEach((e=>{(ae.get(ue[1])||[]).findIndex((t=>t[0]===e[0]))>-1&&i.push(e[0])}));const[n,o]=t;let l=[],s=[];return i.forEach((t=>{const i=n.findIndex((e=>e[0]===t)),r=o.findIndex((e=>e[0]===t)),u=n[i],a=o[r],c=n[i-1],d=n[i+1],p=o[r-1],f=o[r+1];if(c&&p){if(c[0]!==p[0]){const e=Math.max(c[0],p[0]);l.push([c,p].find((t=>t[0]===e)))}}else c?l.push(c):p&&s.push(p);const h=Math.min(u[1],a[1]);l.push([u,a].find((e=>e[1]===h)));const v=Math.max(u[1],a[1]);s.push([u,a].find((e=>e[1]===v)));const g=()=>{const t=[...l,...s.reverse()],[i]=t,n=j(t);i[0]===n[0]&&i[1]===n[1]&&t.splice(-1,1),e.push(t),l=[],s=[]};if(d&&f){if(d[0]!==f[0]){const e=Math.min(d[0],f[0]);l.push([d,f].find((t=>t[0]===e))),g()}}else d?(l.push(d),g()):f?(s.push(f),g()):g()})),e}();o.length>0&&function(e){Y(0).then((()=>{e.forEach((e=>{const t=[],i=[];Array.from(pe).forEach((n=>{var o,l;"pulse"===(null==(o=null==n?void 0:n.origin)?void 0:o.type)&&e.find((e=>Math.abs(n.left-e[0])<=1&&Math.abs(n.top-e[1])<=1))&&((null==(l=null==n?void 0:n.origin)?void 0:l.key)===ue[0]?t.push(n):i.push(n))})),[t,i].forEach((e=>{1!==(null==e?void 0:e.length)&&e.sort(((e,t)=>e.left-t.left)).forEach(((e,t)=>{0==t?e.rightLine&&E.value.remove(e.rightLine):e.leftLine&&E.value.remove(e.leftLine)}))}))}))}))}(o);const{mode:s,style:r={}}=l.shadow||{};o.forEach((t=>{const o=t.map((e=>({x:e[0],y:e[1]}))),l=new e.Polygon(o,{...n,...r,strokeWidth:1});if(["slash","line"].includes(s)){l.set({fill:"transparent",stroke:r.stroke||"#f00"});const e=[];if(["slash"].includes(s))e.push(...W(t,r._angle,r.space)),e.forEach((e=>{Object.assign(e,{...n,...r}),re.add(e)}));else{const n=function(e){const t=e.reduce(((e,t)=>{const i=Math.trunc(t[0]);return e[i]=e[i]?e[i].concat([t]):[t],e}),{}),i=Object.values(t).filter((e=>2===e.length&&Math.trunc(e[0][1])!==Math.trunc(e[1][1])));return i}(t);n.forEach((t=>{const n=i([...b(t)],{...r,originX:"center"});e.push(n),re.add(n)}))}E.value.add(...e)}re.add(l),E.value.add(l)}))}}function ge(e,t,r){var u;const{type:a,riseStyle:c={},noRiseStyle:p={},verifiedStyle:g={},reduceStyle:m={},pacemaker:y={},upArrowStyle:b={},limitValueStyle:j={},nonePainPointStyle:w={},belowMinValueStyle:L={},respiratorStyle:k={},dataList:S=[],list:Y=[]}=r,{type:O,textStyle:P}=w,C=[],I=[],X=[];let D=null;const W=e=>"breathe"==a&&e.respirator&&k.type&&k.fixedValue&&!e.value&&xe(e.time),z=d(r);if(null==(u=e.list)||u.forEach(((u,d)=>{const w=z?S.find((e=>e.key===u.key)):e,F=be(W(u)?{...u,value:k.fixedValue}:u,r),G=e.list[d+1],N=G?be(W(G)?{...G,value:k.fixedValue}:G,r):void 0,B=G?z?S.find((e=>e.key===G.key)):e:{},{title:J=""}=w;if("脉搏"===J&&"脉搏"!==B.title||"脉搏"!==J&&"脉搏"===B.title||!F||!N||f(F[0],1)!==f(N[0],1))F&&D&&(F[0]=D),D=null;else{const e=F[0]-_/2;F[0]=e+_/4,N[0]=D=F[0]+_/2}const K={};K.value=function(e,t,i){if(!(null==e?void 0:e.length)||!te.showValue)return;const{lineAttr:n={}}=i,o=e[1]<=U.originY+q?e[1]+q:e[1]-q,s=l([e[0],o],{value:W(t)?k.fixedValue:t.value,originX:"center",originY:"center",fill:n.stroke||"#000"});return X.push(s),{obj:s,top:-q}}(F,u,w),function(e,t,r,u){var d,f,v;if(!["temperature","pain","breathe"].includes(a))return;if(!(null==e?void 0:e.length)&&"temperature"===a&&!xe(t.time))return;if(!(null==e?void 0:e.length)&&"pain"===a)return;if(!t.value&&"breathe"===a)return;const{lineAttr:y={},key:x}=r,{value:b}=u,j=T(t.time);let w,L,S,Y,E,O;if(t.noRise&&p.show){const i=M(p,t)?V(a,35):(null==e?void 0:e[1])||0;if(p.text)S=l([j,M(p,t)?i:i+5],{value:p.text.split("").join("\n"),originY:"top",...p.style}),t.value||pe.add(S);else if(t.value){S=s([j,i,i+2*q],{...p.style})}S&&X.push(S),S&&M(p,t)&&he.add(S)}if(null==e?void 0:e[1]){if(t.rise&&c.show&&c.text&&(Y=l([j,e[1]-(b?q:0)-5],{value:c.text.split("").join("\n"),originY:"bottom",...c.style}),X.push(Y)),t.verified){const t=(null==(d=null==g?void 0:g.position)?void 0:d[x])||"top";E=l(["top-right"===t?j+_/2:j,e[1]-(b?q:0)-5],{value:"v",originX:"center",originY:"bottom",...g}),X.push(E)}if(h(t.physicsReduce)||h(t.drugReduce)){const l=V(a,null!=(f=t.physicsReduce)?f:t.drugReduce),s=l<e[1]&&(null==te?void 0:te.hypothermyViewCustom)?j+_/2:j;w=i([...e,s,l],{...y,...m.line,...n}),L=o((null==(v=null==m?void 0:m.point)?void 0:v.type)||"circle",{left:s,top:l,...m.point,...n,originY:l===ie?"bottom":"center"}),w&&X.push(w),L&&X.push(L)}t.respirator&&(O=o(k.type,{left:j,top:e[1]-(b?q:0)-5,originX:"center",originY:"bottom",...k.style}),X.push(O))}Object.assign(u,{reduceLine:{obj:w,type:"line"},noRiseText:{obj:S,top:p.text?5:2*q,isFixed:M(p,t)},riseText:{obj:Y,top:(b?-q:0)-5},verifiedText:{obj:E,left:_/2,top:(b?-q:0)-5},reducePoint:{obj:L,type:"reduce"},respirator:{obj:O,top:(b?-q:0)-5}})}(F,u,w,K),function(e,t,i,n){if(!(null==e?void 0:e.length)||!["pulse"].includes(a))return;const o=Math.max(...Y),r=Math.min(...Y);let u,c,d;const{upArrowShow:p=!1,limitValueShow:f=!1}=i;if(p&&+t.value>180){let t=e[1]-2.5*q,i=[e[1]-q/2,t];t<U.originY&&(t=e[1]+2.5*q,i=[t,e[1]+q/2]),u=s([e[0],i[0],i[1]],b,"up"),X.push(u)}if(f){const i={value:t.value,originX:"center",originY:"center",...j};if(+t.value>o){const t=u?e[1]+q/2+u.height:e[1]+q;c=l([e[0],t],i),X.push(c)}+t.value<r&&(c=l([e[0],e[1]-q],i),X.push(c))}if(L.show&&+t.value<r){const t=e[1];if(L.text)d=l([e[0],e[1]+5],{value:L.text.split("").join("\n"),originY:"top",...L.style});else{const i=t+2*q;d=s([e[0],t,i],{...L.style})}X.push(d)}Object.assign(n,{upArrow:{obj:u},limitValue:{obj:c,top:-q},belowMinValue:{obj:d,top:L.text?5:2*q,moveHide:!0}})}(F,u,w,K),function(n,l,s,u,c,d){let f,h;const{pointAttr:g={},lineAttr:m={},title:b="",key:j,type:w="circle"}=c,L=g.height?g.height/2:5,S=e.list[u+1];let Y=x(n),M=x(l);const D=me(a,e.list[u].value),F=()=>"pulse"==a&&s.pacemakerShow?y.value:W(s)?k.type:D&&"number"===O?0:w,_=e=>e&&p.show&&p.fixed&&xe(e.time)&&e.noRise&&!e.value&&0!==e.value;if((()=>{if(s.breakpoint)return!1;if("temperature"===a&&(n||_(s))&&(l||_(S))){const e=V(a,35);return n||(Y=[T(s.time),e]),l||(M=[T(S.time),e]),!0}return!!n&&!!l})()){Y&&M&&D&&me(a,S.value)&&!ne[1]&&"icon"===O&&(Y[1]=Y[1]-L,M[1]=M[1]-L),h=i([...Y,...M],{...m});const{obj:e}=(null==d?void 0:d.reducePoint)||{};if(n&&l&&(null==e?void 0:e.top)<n[1]&&(null==te?void 0:te.hypothermyViewCustom)){const t=i([e.left,e.top,...l],{...m});X.unshift(t),Object.assign(d,{reduceRightLine:{obj:t,type:"reduce"}}),h.set("stroke","transparent")}}const q=F(),G=I[u-1],N={origin:{data:W(s)?{...s,value:k.fixedValue}:s,title:b,key:j||"",unit:r.unit,type:a,_type:v(b,a),dataIndex:t,index:u,isOneLine:z},leftLine:G,rightLine:h,otherObj:d,...s.pacemakerShow&&"pulse"==a?y.style:W(s)?k.style:g,...H(),lockMovementX:!0,...D?{selectable:!1,evented:!1,..."number"===O?P:{}}:{}};n&&(G?N.leftLine.set("x2",n[0]):N.leftLine=null,f=o(q,{left:n[0],top:D&&!ne[1]?n[1]-L:n[1],...N}));I.push(h),f&&(j===ue[1]?ce.add(f):W(s)||de.add(f),function(e){Q.hovered&&(e.on("mouseover",(()=>{ye(e,"hover")})),e.on("mouseout",(()=>{A.show=!1})));if(e.lockMovementX&&e.lockMovementY)return;e.on("moving",(()=>{!function(e){e.setCoords();const t="pain"===e.origin.type?Z:U;e.top<t.originY&&e.set("top",t.originY);e.top>t.endY&&e.set("top",t.endY)}(e),function(e){var t,i;null==(t=e.leftLine)||t.setCoords().set({x2:e.left,y2:e.top}),null==(i=e.rightLine)||i.setCoords().set({x1:e.left,y1:e.top}),Object.values(e.otherObj).forEach((t=>{const{obj:i,type:n="",top:o=0,isFixed:l,moveHide:s=!1,left:r=0}=t||{};"reduce"!==n&&i&&("line"===n?i.setCoords().set({x1:e.left,y1:e.top}):(l||i.setCoords().set({left:e.left+r,top:e.top+o}),s&&(E.value.remove(i),delete e.otherObj.obj)))})),ve(e)}(e),Q.hovered&&ye(e)})),e.on("mouseup",(t=>{if(A.show=!1,1===t.button){const{type:t}=e.origin,i=R(t,e.top),n={...e.origin,data:{...e.origin.data,value:i}};E.value.discardActiveObject(),$("change",n),we(n,"change")}}))}(f),C.push(f),pe.add(f))}(F,N,u,d,w,K)})),"pulse"===a){let t=null;const i=e=>e.map(((e,i,n)=>{var o,l;const s=n[i+1];if(s&&f(e.left,1)===f(s.left,1)){const i=e.left-_/2;e.set("left",i+_/4),null==(o=e.rightLine)||o.set("x1",e.left),t=e.left+_/2,s.set("left",t)}else t&&(null==(l=e.leftLine)||l.set("x2",t),e.set("left",t)),t=null;return[e.left,e.top]}));if(z){const e={};ue.forEach((t=>{e[t]=C.filter((e=>{var i;return(null==(i=e.origin)?void 0:i.key)===t})),ae.set(t,i(e[t]))}))}else{const{key:t}=e;ae.set(t,i(C))}}const F=I.filter((e=>e));E.value.add(...F,...C,...X)}function me(e,t){return"pain"===e&&0==t}function ye(e,t="moving"){const{title:i,unit:n,type:o,data:l}=e.origin;A.point={x:e.left,y:e.top};let s=`时间 ${((null==l?void 0:l.time)||P(e.left)).slice(-5)}`;A.list=[function(){const{drugReduce:r,physicsReduce:u}=l||{},a="hover"===t?l.value:R(o,e.top);if(h(r))return s+=(null==l?void 0:l.changeTime)?"—>"+(null==l?void 0:l.changeTime.slice(-5)):"",`药物降${"pain"==o?"痛":"温"} ${a}—>${r}${n||""}`;if(h(u))return s+=(null==l?void 0:l.changeTime)?"—>"+(null==l?void 0:l.changeTime.slice(-5)):"",`物理降${"pain"==o?"痛":"温"} ${a}—>${u}${n||""}`;return`${i} ${a}${n||""}`}(),s],A.show=!0}function xe(e){const[t]=F,i=j(F),n=t.start,o=i.end,l=c(e);return l>=n&&l<=o}function be(e,t){const i="pain"===t.type?Z:U;if(!g(e)||!xe(e.time))return;const n=T(e.time),o=V(t.type,e.value);return[n,o<i.originY?i.originY:o>i.endY?i.endY:o]}function je(e){const t=new Date,i=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),o=c(`${t.getFullYear()}-${i}-${n} 23:59:59`),l=c(`${P(e)}:00`);return ee&&l<c(ee)?(D("exceedMin"),!1):!(l>o)||(D("exceedMax"),!1)}function we(e,t="add"){const{type:i,dataIndex:n,index:o,data:l,key:s}=e,r=fe.find((e=>e.type===i));if("add"===t){const e=d(r)?r.dataList.find((e=>e.enable)):r.dataList[n],t=y(l.time,e.list);e.list.splice(t,0,l)}else r.dataList[n].list[o]=l;Le()}function Le(){var e;pe.size&&(null==(e=E.value)||e.remove(...function(e){const t=[];return e.forEach((e=>{e&&t.push(e),(null==e?void 0:e.leftLine)&&t.push(null==e?void 0:e.leftLine),(null==e?void 0:e.rightLine)&&t.push(null==e?void 0:e.rightLine),Object.values((null==e?void 0:e.otherObj)||{}).forEach((e=>{(null==e?void 0:e.obj)&&t.push(null==e?void 0:e.obj)}))})),t}([...pe]))),pe.clear(),ke()}function ke(e){ae.clear(),pe.clear(),ce.clear(),he.clear(),de.clear(),fe.forEach((t=>{t.show&&(null==e||e(t),t.dataList.forEach(((e,i)=>{!e.show||d(t)&&!e.enable||ge(e,i,t)})))})),ve(),[...pe].forEach((e=>{null==e||e.bringToFront()})),function(){var e;const t=fe.find((e=>e.show&&"pulse"===e.type));if(!t||!(null==(e=t.dataList)?void 0:e.length))return;if(!t.dataList.some((e=>e.title.includes("脉搏"))))return;const i=Object.assign({},S,z.overlap||{}),l=[];ce.size&&[...ce].forEach((e=>{[...de].forEach((t=>{if(t.origin&&p(e,t)){const e=t.origin.key;if(e){const s={left:t.left,top:t.top,...n,hoverCursor:"default"};let r="koumai";"yemai"===e&&(r=e),l.push(o(r,{...i[e],...s}))}}}))})),setTimeout((()=>{E.value.add(...l),l.forEach((e=>{null==e||e.bringToFront(),pe.add(e)}))}))}()}return function(){const t=new e.Rect({left:oe,top:0,width:le-oe-se.strokeWidth,height:ie-se.strokeWidth,fill:"transparent",...se});E.value.add(t)}(),ke((e=>function(e){if("temperature"!==e.type||!e.positionLine)return;const t=V(e.type,e.positionLine.value),n=i([G,t,N,t],e.positionLine);E.value.add(n)}(e))),E.value.on("mouse:up",(e=>{const{button:t,target:i,pointer:n={}}=e;if(3===t){if(!O.event.evented)return;const{x:e=0,y:t=0}=n;if(e>=G&&e<=N&&t>=B&&t<=J){I.point={x:e,y:t},I.show=!0;const{type:o}=(null==i?void 0:i.origin)||{};if(i&&["temperature","pain"].includes(o))"temperature"===o&&(I.list=[...L]),"pain"===o&&(I.list=[...k]),I.target=i;else{I.target=null,I.list=["新增节点"],K.forEach((i=>{if(!X([...pe],e,"_type").includes(i.bigType)){const e=["pain"].includes(i.bigType)?Z:U;t>=e.originY&&t<=e.endY&&I.list.push({renderItem:C?C(i):()=>i.title,origin:{title:i.title,unit:i.unit,type:a(i.bigType),dataIndex:i.dataIndex,key:i.key,isOneLine:i.isOneLine},pointer:n})}}));const i=je(e);i&&1!==I.list.length||(I.show=!1,1===I.list.length&&i&&D("repeat"))}}}if(1===t){if(i)return;const{x:e=0,y:t=0}=n;e>=G&&e<=N&&t>0&&t<ie&&$("click:grid",{x:e,y:t,time:P(e)})}})),{clickMenu:function({item:e,target:t}){if(t){const{data:i,type:n,isOneLine:o,dataIndex:l,index:s}=t.origin,r=m(i,[...L,...k]);r[`${e.type}`]=e.value,r.changeTime=u(new Date,"yyyy-MM-dd HH:mm"),o&&(r.key=t.origin.key);const a={...t.origin,data:r};$("change",a),we(a,"change")}else{const t={data:{time:P(e.pointer.x),value:R(e.origin.type,e.pointer.y),...e.origin.isOneLine?{key:e.origin.key}:{}},...e.origin};$("add",t),we(t)}},setPopup:ye,isAddPoint:je,updateData:we,redrawPoints:Le,gridPoints:pe,fixedNoRisePoints:he}}function M(e,t){return e.fixed||!t.value&&0!==t.value}export{E as useCenter};
1
+ import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{drawLine as t,defaultStyle as i,drawPoint as n,drawText as o,drawArrow as l}from"../useDraw.js";import{useGrid as r}from"../useGrid.js";import{format as s}from"date-fns";import{getType as a,getTime as u,isOneLine as d,isOverlapPoint as c,getFloorNumber as p,isValidValue as f,setOtherType as h,isEffectiveNode as v,deleteProperty as g,getIndex as y}from"../../utils/index.js";import{cloneDeep as m,omit as w,flatten as x,last as b}from"lodash-es";import"../useEvent.js";import{useShadow as j}from"../useShadow.js";import{useCommon as L}from"../useCommon.js";import"vue";import"naive-ui";import"../surgicalAnesthesia/useTop.js";import"@vueuse/core";import{TEMPERATURE_MENU as k,PAIN_MENU as S,OVERLAP as Y}from"../../constants/index.js";import"../surgicalAnesthesia/useOther.js";import"../../../../../shared/utils/index.js";import{promiseTimeout as E}from"@vueuse/shared";function M(M,C,$,T,V,A,P,R,I,X){r(M,C);const{getEqualXTypes:B,handleAddPrevent:D,getPointEventProps:H}=L(M,$,C),{createShadowLines:W}=j(),{left:z,xScaleList:F,xCellWidth:_,yCellHeight:K,originX:q,endX:G,originY:N,endY:J,itemList:Q,event:U,vitalSignsOriginY:Z,painOriginY:ee,hospitalizationDate:te,config:ie,canvasHeight:ne,painSurplusCell:oe,iconsWidth:le,canvasWidth:re,borderStyle:se}=C,ae=new Set,ue=["xinmai","mai"],de=new Map,ce=new Set,pe=new Set,fe=new Set,he=m(z.yScaleValue),ve=new Set;function ge(n){var o;const l=he.find((e=>e.show&&"pulse"===e.type));if(l&&(null==(o=l.dataList)?void 0:o.length)&&(ae.size&&M.value.remove(...ae),ae.clear(),de.size>1)){if(n){const{type:e,key:t}=n.origin||{};if("pulse"===e){const e=de.get(t),i=null==e?void 0:e.findIndex((e=>e[0]===n.left));e.splice(i,1,[n.left,n.top])}}const o=function(){const e=[],t=[],i=[];for(const e of de)t.push(e[1]),e[0]===ue[0]&&e[1].forEach((e=>{(de.get(ue[1])||[]).findIndex((t=>t[0]===e[0]))>-1&&i.push(e[0])}));const[n,o]=t;let l=[],r=[];return i.forEach((t=>{const i=n.findIndex((e=>e[0]===t)),s=o.findIndex((e=>e[0]===t)),a=n[i],u=o[s],d=n[i-1],c=n[i+1],p=o[s-1],f=o[s+1];if(d&&p){if(d[0]!==p[0]){const e=Math.max(d[0],p[0]);l.push([d,p].find((t=>t[0]===e)))}}else d?l.push(d):p&&r.push(p);const h=Math.min(a[1],u[1]);l.push([a,u].find((e=>e[1]===h)));const v=Math.max(a[1],u[1]);r.push([a,u].find((e=>e[1]===v)));const g=()=>{const t=[...l,...r.reverse()],[i]=t,n=b(t);i[0]===n[0]&&i[1]===n[1]&&t.splice(-1,1),e.push(t),l=[],r=[]};if(c&&f){if(c[0]!==f[0]){const e=Math.min(c[0],f[0]);l.push([c,f].find((t=>t[0]===e))),g()}}else c?(l.push(c),g()):f?(r.push(f),g()):g()})),e}();o.length>0&&function(e){E(0).then((()=>{e.forEach((e=>{const t=[],i=[];Array.from(fe).forEach((n=>{var o,l;"pulse"===(null==(o=null==n?void 0:n.origin)?void 0:o.type)&&e.find((e=>Math.abs(n.left-e[0])<=1&&Math.abs(n.top-e[1])<=1))&&((null==(l=null==n?void 0:n.origin)?void 0:l.key)===ue[0]?t.push(n):i.push(n))})),[t,i].forEach((e=>{1!==(null==e?void 0:e.length)&&e.sort(((e,t)=>e.left-t.left)).forEach(((e,t)=>{0==t?e.rightLine&&M.value.remove(e.rightLine):e.leftLine&&M.value.remove(e.leftLine)}))}))}))}))}(o);const{mode:r,style:s={}}=l.shadow||{};o.forEach((n=>{const o=n.map((e=>({x:e[0],y:e[1]}))),l=new e.Polygon(o,{...i,...s,strokeWidth:1});if(["slash","line"].includes(r)){l.set({fill:"transparent",stroke:s.stroke||"#f00"});const e=[];if(["slash"].includes(r))e.push(...W(n,s._angle,s.space,w(s,["_angle","space"]))),e.forEach((e=>{ae.add(e)}));else{const i=function(e){const t=e.reduce(((e,t)=>{const i=Math.trunc(t[0]);return e[i]=e[i]?e[i].concat([t]):[t],e}),{}),i=Object.values(t).filter((e=>2===e.length&&Math.trunc(e[0][1])!==Math.trunc(e[1][1])));return i}(n);i.forEach((i=>{const n=t([...x(i)],{...s,originX:"center"});e.push(n),ae.add(n)}))}M.value.add(...e)}ae.add(l),M.value.add(l)}))}}function ye(e,r,s){var a;const{type:u,riseStyle:c={},noRiseStyle:v={},verifiedStyle:g={},reduceStyle:y={},pacemaker:w={},upArrowStyle:x={},limitValueStyle:b={},nonePainPointStyle:j={},belowMinValueStyle:L={},respiratorStyle:k={},dataList:S=[],list:Y=[]}=s,{type:E,textStyle:C}=j,A=[],R=[],X=[];let B=null;const D=e=>"breathe"==u&&e.respirator&&k.type&&k.fixedValue&&!e.value&&xe(e.time),W=d(s);if(null==(a=e.list)||a.forEach(((a,d)=>{var j,z,F,q;const G=W?S.find((e=>e.key===a.key)):e,N=be(D(a)?{...a,value:k.fixedValue}:a,s),J=e.list[d+1],Q=J?be(D(J)?{...J,value:k.fixedValue}:J,s):void 0,te=J?W?S.find((e=>e.key===J.key)):e:{},{title:le=""}=G;if(le===((null==(j=window.getLanguageByCode)?void 0:j.call(window,"10010.1.235"))||"脉搏")&&te.title!==((null==(z=window.getLanguageByCode)?void 0:z.call(window,"10010.1.235"))||"脉搏")||le!==((null==(F=window.getLanguageByCode)?void 0:F.call(window,"10010.1.235"))||"脉搏")&&te.title===((null==(q=window.getLanguageByCode)?void 0:q.call(window,"10010.1.235"))||"脉搏")||!N||!Q||p(N[0],1)!==p(Q[0],1))N&&B&&(N[0]=B),B=null;else{const e=N[0]-_/2;N[0]=e+_/4,Q[0]=B=N[0]+_/2}const re={};re.value=function(e,t,i){if(!(null==e?void 0:e.length)||!ie.showValue)return;const{lineAttr:n={}}=i,l=e[1]<=Z.originY+K?e[1]+K:e[1]-K,r=o([e[0],l],{value:D(t)?k.fixedValue:t.value,originX:"center",originY:"center",fill:n.stroke||"#000"});return X.push(r),{obj:r,top:-K}}(N,a,G),function(e,r,s,a){var d,p,h;if(!["temperature","pain","breathe"].includes(u))return;if(!(null==e?void 0:e.length)&&"temperature"===u&&!xe(r.time))return;if(!(null==e?void 0:e.length)&&"pain"===u)return;if(!r.value&&"breathe"===u)return;const{lineAttr:m={},key:w}=s,{value:x}=a,b=T(r.time);let j,L,S,Y,E,M;if(r.noRise&&v.show){const t=O(v,r)?V(u,35):(null==e?void 0:e[1])||0;if(v.text)S=o([b,O(v,r)?t:t+5],{value:v.text.split("").join("\n"),originY:"top",...v.style}),r.value||fe.add(S);else if(r.value){S=l([b,t,t+2*K],{...v.style})}S&&X.push(S),S&&O(v,r)&&ve.add(S)}if(null==e?void 0:e[1]){if(r.rise&&c.show&&c.text&&(Y=o([b,e[1]-(x?K:0)-5],{value:c.text.split("").join("\n"),originY:"bottom",...c.style}),X.push(Y)),r.verified){const t=(null==(d=null==g?void 0:g.position)?void 0:d[w])||"top";E=o(["top-right"===t?b+_/2:b,e[1]-(x?K:0)-5],{value:"v",originX:"center",originY:"bottom",...g}),X.push(E)}if(f(r.physicsReduce)||f(r.drugReduce)){const o=V(u,null!=(p=r.physicsReduce)?p:r.drugReduce),l=o<e[1]&&(null==ie?void 0:ie.hypothermyViewCustom)?b+_/2:b;j=t([...e,l,o],{...m,...y.line,...i}),L=n((null==(h=null==y?void 0:y.point)?void 0:h.type)||"circle",{left:l,top:o,...y.point,...i,originY:o===ne?"bottom":"center"}),j&&X.push(j),L&&X.push(L)}r.respirator&&(M=n(k.type,{left:b,top:e[1]-(x?K:0)-5,originX:"center",originY:"bottom",...k.style}),X.push(M))}Object.assign(a,{reduceLine:{obj:j,type:"line"},noRiseText:{obj:S,top:v.text?5:2*K,isFixed:O(v,r)},riseText:{obj:Y,top:(x?-K:0)-5},verifiedText:{obj:E,left:_/2,top:(x?-K:0)-5},reducePoint:{obj:L,type:"reduce"},respirator:{obj:M,top:(x?-K:0)-5}})}(N,a,G,re),function(e,t,i,n){if(!(null==e?void 0:e.length)||!["pulse"].includes(u))return;const r=Math.max(...Y),s=Math.min(...Y);let a,d,c;const{upArrowShow:p=!1,limitValueShow:f=!1}=i;if(p&&+t.value>180){let t=e[1]-2.5*K,i=[e[1]-K/2,t];t<Z.originY&&(t=e[1]+2.5*K,i=[t,e[1]+K/2]),a=l([e[0],i[0],i[1]],x,"up"),X.push(a)}if(f){const i={value:t.value,originX:"center",originY:"center",...b};if(+t.value>r){const t=a?e[1]+K/2+a.height:e[1]+K;d=o([e[0],t],i),X.push(d)}+t.value<s&&(d=o([e[0],e[1]-K],i),X.push(d))}if(L.show&&+t.value<s){const t=e[1];if(L.text)c=o([e[0],e[1]+5],{value:L.text.split("").join("\n"),originY:"top",...L.style});else{const i=t+2*K;c=l([e[0],t,i],{...L.style})}X.push(c)}Object.assign(n,{upArrow:{obj:a},limitValue:{obj:d,top:-K},belowMinValue:{obj:c,top:L.text?5:2*K,moveHide:!0}})}(N,a,G,re),function(i,o,l,a,d,c){let p,f;const{pointAttr:g={},lineAttr:y={},title:x="",key:b,type:j="circle",overlapKey:L}=d,S=g.height?g.height/2:5,Y=e.list[a+1];let O=m(i),B=m(o);const z=me(u,e.list[a].value),F=()=>"pulse"==u&&l.pacemakerShow?w.value:D(l)?k.type:z&&"number"===E?0:j,_=e=>e&&v.show&&v.fixed&&xe(e.time)&&e.noRise&&!e.value&&0!==e.value;if((()=>{if(l.breakpoint)return!1;if("temperature"===u&&(i||_(l))&&(o||_(Y))){const e=V(u,35);return i||(O=[T(l.time),e]),o||(B=[T(Y.time),e]),!0}return!!i&&!!o})()){O&&B&&z&&me(u,Y.value)&&!oe[1]&&"icon"===E&&(O[1]=O[1]-S,B[1]=B[1]-S),f=t([...O,...B],{...y});const{obj:e}=(null==c?void 0:c.reducePoint)||{};if(i&&o&&(null==e?void 0:e.top)<i[1]&&(null==ie?void 0:ie.hypothermyViewCustom)){const i=t([e.left,e.top,...o],{...y});X.unshift(i),Object.assign(c,{reduceRightLine:{obj:i,type:"reduce"}}),f.set("stroke","transparent")}}const K=F(),q=R[a-1],G={origin:{data:D(l)?{...l,value:k.fixedValue}:l,title:x,key:b||"",overlapKey:L,unit:s.unit,type:u,_type:h(x,u),dataIndex:r,index:a,isOneLine:W},leftLine:q,rightLine:f,otherObj:c,...l.pacemakerShow&&"pulse"==u?w.style:D(l)?k.style:g,...H(),lockMovementX:!0,...z?{selectable:!1,evented:!1,..."number"===E?C:{}}:{}};i&&(q?G.leftLine.set("x2",i[0]):G.leftLine=null,p=n(K,{left:i[0],top:z&&!oe[1]?i[1]-S:i[1],...G}));R.push(f),p&&(b===ue[1]?ce.add(p):D(l)||pe.add(p),function(e){U.hovered&&(e.on("mouseover",(()=>{we(e,"hover")})),e.on("mouseout",(()=>{I.show=!1})));if(e.lockMovementX&&e.lockMovementY)return;e.on("moving",(()=>{!function(e){e.setCoords();const t="pain"===e.origin.type?ee:Z;e.top<t.originY&&e.set("top",t.originY);e.top>t.endY&&e.set("top",t.endY)}(e),function(e){var t,i;null==(t=e.leftLine)||t.setCoords().set({x2:e.left,y2:e.top}),null==(i=e.rightLine)||i.setCoords().set({x1:e.left,y1:e.top}),Object.values(e.otherObj).forEach((t=>{const{obj:i,type:n="",top:o=0,isFixed:l,moveHide:r=!1,left:s=0}=t||{};"reduce"!==n&&i&&("line"===n?i.setCoords().set({x1:e.left,y1:e.top}):(l||i.setCoords().set({left:e.left+s,top:e.top+o}),r&&(M.value.remove(i),delete e.otherObj.obj)))})),ge(e)}(e),U.hovered&&we(e)})),e.on("mouseup",(t=>{if(I.show=!1,1===t.button){const{type:t}=e.origin,i=P(t,e.top),n={...e.origin,data:{...e.origin.data,value:i}};M.value.discardActiveObject(),$("change",n),Le(n,"change")}}))}(p),A.push(p),fe.add(p))}(N,Q,a,d,G,re)})),"pulse"===u){let t=null;const i=e=>e.map(((e,i,n)=>{var o,l;const r=n[i+1];if(r&&p(e.left,1)===p(r.left,1)){const i=e.left-_/2;e.set("left",i+_/4),null==(o=e.rightLine)||o.set("x1",e.left),t=e.left+_/2,r.set("left",t)}else t&&(null==(l=e.leftLine)||l.set("x2",t),e.set("left",t)),t=null;return[e.left,e.top]}));if(W){const e={};ue.forEach((t=>{e[t]=A.filter((e=>{var i;return(null==(i=e.origin)?void 0:i.key)===t})),de.set(t,i(e[t]))}))}else{const{key:t}=e;de.set(t,i(A))}}const z=R.filter((e=>e));M.value.add(...z,...A,...X)}function me(e,t){return"pain"===e&&0==t}function we(e,t="moving"){const{title:i,unit:n,type:o,data:l}=e.origin;I.point={x:e.left,y:e.top};let r=`时间 ${((null==l?void 0:l.time)||A(e.left)).slice(-5)}`;I.list=[function(){const{drugReduce:s,physicsReduce:a}=l||{},u="hover"===t?l.value:P(o,e.top);if(f(s))return r+=(null==l?void 0:l.changeTime)?"—>"+(null==l?void 0:l.changeTime.slice(-5)):"",`药物降${"pain"==o?"痛":"温"} ${u}—>${s}${n||""}`;if(f(a))return r+=(null==l?void 0:l.changeTime)?"—>"+(null==l?void 0:l.changeTime.slice(-5)):"",`物理降${"pain"==o?"痛":"温"} ${u}—>${a}${n||""}`;return`${i} ${u}${n||""}`}(),r],I.show=!0}function xe(e){const[t]=F,i=b(F),n=t.start,o=i.end,l=u(e);return l>=n&&l<=o}function be(e,t){const i="pain"===t.type?ee:Z;if(!v(e)||!xe(e.time))return;const n=T(e.time),o=V(t.type,e.value);return[n,o<i.originY?i.originY:o>i.endY?i.endY:o]}function je(e){const t=new Date,i=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),o=u(`${t.getFullYear()}-${i}-${n} 23:59:59`),l=u(`${A(e)}:00`);return te&&l<u(te)?(D("exceedMin"),!1):!(l>o)||(D("exceedMax"),!1)}function Le(e,t="add"){const{type:i,dataIndex:n,index:o,data:l,key:r}=e,s=he.find((e=>e.type===i));if("add"===t){const e=d(s)?s.dataList.find((e=>e.enable)):s.dataList[n],t=y(l.time,e.list);e.list.splice(t,0,l)}else s.dataList[n].list[o]=l;ke()}function ke(){var e;fe.size&&(null==(e=M.value)||e.remove(...function(e){const t=[];return e.forEach((e=>{e&&t.push(e),(null==e?void 0:e.leftLine)&&t.push(null==e?void 0:e.leftLine),(null==e?void 0:e.rightLine)&&t.push(null==e?void 0:e.rightLine),Object.values((null==e?void 0:e.otherObj)||{}).forEach((e=>{(null==e?void 0:e.obj)&&t.push(null==e?void 0:e.obj)}))})),t}([...fe]))),fe.clear(),Se()}function Se(e){de.clear(),fe.clear(),ce.clear(),ve.clear(),pe.clear(),he.forEach((t=>{t.show&&(null==e||e(t),t.dataList.forEach(((e,i)=>{!e.show||d(t)&&!e.enable||ye(e,i,t)})))})),ge(),[...fe].forEach((e=>{null==e||e.bringToFront()})),function(){var e;const t=he.find((e=>e.show&&"pulse"===e.type));if(!t||!(null==(e=t.dataList)?void 0:e.length))return;if(!t.dataList.some((e=>{var t;return e.title.includes((null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.235"))||"脉搏")})))return;const o=Object.assign({},Y,z.overlap||{}),l=[];ce.size&&[...ce].forEach((e=>{[...pe].forEach((t=>{if(t.origin&&c(e,t)){const e=t.origin.key,r=t.origin.overlapKey;if(e){const s={left:t.left,top:t.top,...i,hoverCursor:"default"};let a=r||"koumai";"yemai"===e&&(a=e);const u=r||e;l.push(n(a,{...o[u],...s}))}}}))})),setTimeout((()=>{M.value.add(...l),l.forEach((e=>{null==e||e.bringToFront(),fe.add(e)}))}))}()}return function(){const t=new e.Rect({left:le,top:0,width:re-le-se.strokeWidth,height:ne-se.strokeWidth,fill:"transparent",...se});M.value.add(t)}(),Se((e=>function(e){if("temperature"!==e.type||!e.positionLine)return;const i=V(e.type,e.positionLine.value),n=t([q,i,G,i],e.positionLine);M.value.add(n)}(e))),M.value.on("mouse:up",(e=>{var t;const{button:i,target:n,pointer:o={}}=e;if(3===i){if(!C.event.evented)return;const{x:e=0,y:i=0}=o;if(e>=q&&e<=G&&i>=N&&i<=J){X.point={x:e,y:i},X.show=!0;const{type:l}=(null==n?void 0:n.origin)||{};if(n&&["temperature","pain"].includes(l))"temperature"===l&&(X.list=[...k]),"pain"===l&&(X.list=[...S]),X.target=n;else{X.target=null,X.list=[(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.219"))||"新增节点"],Q.forEach((t=>{if(!B([...fe],e,"_type").includes(t.bigType)){const e=["pain"].includes(t.bigType)?ee:Z;i>=e.originY&&i<=e.endY&&X.list.push({renderItem:R?R(t):()=>t.title,origin:{title:t.title,unit:t.unit,type:a(t.bigType),dataIndex:t.dataIndex,key:t.key,isOneLine:t.isOneLine},pointer:o})}}));const n=je(e);n&&1!==X.list.length||(X.show=!1,1===X.list.length&&n&&D("repeat"))}}}if(1===i){if(n)return;const{x:e=0,y:t=0}=o;e>=q&&e<=G&&t>0&&t<ne&&$("click:grid",{x:e,y:t,time:A(e)})}})),{clickMenu:function({item:e,target:t}){if(t){const{data:i,type:n,isOneLine:o,dataIndex:l,index:r}=t.origin,a=g(i,[...k,...S]);a[`${e.type}`]=e.value,a.changeTime=s(new Date,"yyyy-MM-dd HH:mm"),o&&(a.key=t.origin.key);const u={...t.origin,data:a};$("change",u),Le(u,"change")}else{const t={data:{time:A(e.pointer.x),value:P(e.origin.type,e.pointer.y),...e.origin.isOneLine?{key:e.origin.key}:{}},...e.origin};$("add",t),Le(t)}},setPopup:we,isAddPoint:je,updateData:Le,redrawPoints:ke,gridPoints:fe,fixedNoRisePoints:ve}}function O(e,t){return e.fixed||!t.value&&0!==t.value}export{M as useCenter};
@@ -1 +1 @@
1
- import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{drawLine as t,defaultTextStyle as i,defaultStyle as n,drawTextAndIconGroup as o,drawTextGroup as l}from"../useDraw.js";import"date-fns";import{getType as s}from"../../utils/index.js";import{last as r}from"lodash-es";import"../useEvent.js";import{getScaleInfo as u,drawScaleNumber as a,drawScaleLine as h}from"../useScaleColumn.js";import{useCommon as c}from"../useCommon.js";import"vue";import"./useShadow.js";import"@vueuse/shared";import"naive-ui";import"@vueuse/core";function p(p,d,g,f,m,v,y,w,S,b,Y,x){var j,C;const{getEqualXTypes:L,handleAddPrevent:X,isGridLimit:N}=c(p,g,d),{originY:T,endY:V,originX:O,endX:k,xCellWidth:E,yCellHeight:M,left:G,vitalSignsOriginY:I,painOriginY:W,painHeight:A,iconsWidth:H,itemList:R,painIndex:_,right:B,canvasWidth:J,canvasHeight:$,getRightInfo:q,borderStyle:D,surplusCell:P,painSurplusCell:z}=d;function F(o){var s;if(!(null==o?void 0:o.length))return;const{layout:c}=o[0];let d=H,g=O;"right"===c&&(d=k,g=k+(null!=(s=null==B?void 0:B.width)?s:0));const f=[],m=A&&"right"!==c?o.length-1:o.length,v=(g-d)/m,y=v+(g-d)%m;o.forEach(((o,s)=>{if("pain"===o.type)return void function(n){const{list:o=[],spaceGridNumber:s=5,showScale:r,showNumber:h,position:c,showMaxMinNumber:d,style:g,title:f}=n,m=W.originY-z[0]*M,v=l({width:O-H,height:A+(z[0]+z[1])*M,...D},{value:`${f}`,...i,...g||{}},{left:H,top:m}),y=t([H,m,O,m],D),w=[];if(r||h){const{lineXMain:t,textLeft:i}=u(c,H,O-H),l=o.length;o.forEach(((o,u)=>{let c=W.endY-u*M*s;if(0===u&&0===z[1]&&(c=V-5),h&&(!(0===u||u===l-1)||d||0===u&&z[1]>0||u===l-1&&z[0]>0)&&w.push(a(o,n,i,c)),r&&(0!==u||z[1]>0)){const[i,n]=t,o=new e.Line([i,c,n,c],{...D,...g});w.push(o)}}))}p.value.add(y,v,...w),v.sendToBack()}(o);const g=[],m=0===s?y:v,w=0===s?d:y+d+(s-1)*v,S="right"===c?0:I.originY,b="right"===c?$:I.endY,Y=s>0?t([w,S,w,b],{objectCaching:!1,...D}):null;Y&&g.push(Y);const x=w+m/2,{list:j=[],spaceGridNumber:C=5,showScale:L,showNumber:X,position:N,showMaxMinNumber:k,detailedList:E=[],showdetailedScale:G,showRange:R=[]}=o;if(L||X){const{lineXMain:e,lineXSub:t,textLeft:i}=u(N,w,m),n=(j[1]-j[0])/2,l=G&&!E.length?j.reduce(((e,t,i)=>{const o=e[e.length-1];return 0===i?[t]:e.concat([o+n,o+2*n])}),[]):G&&(null==E?void 0:E.length)?E:j,[s=l[0],c=r(l)]=R;l.forEach(((n,r)=>{if(s&&+n<+s)return;if(c&&+n>+c)return;const u=I.endY-r*M*(G?C/2:C),p=[s,c].includes(n);if(X&&(!p||k)){const e=0==r?u-5:u,t=a(n,o,i,e),l=I.originY+t.height/2;e<l&&t.set({top:l}),g.push(t)}g.push(...h(o,r,e,t,u,M,I.originY,l.findIndex((e=>e==c))+1))}))}let B=o.title||"";o.unit&&(B+="\n"+o.unit);let J=I.originY+2;0!==_&&P[0]>0&&(J=T+2),B&&g.push(new e.Text(String(B),{...i,originY:"top",left:x,top:J,textAlign:"center",...o.style}));const q=new e.Group(g,{...n,objectCaching:!1});f.push(q)}));const w=f.length>0?new e.Group([...f],{...n,objectCaching:!1}):null;w&&p.value.add(w),w&&w.sendToBack()}H&&function(){const e=JSON.parse(JSON.stringify(R));let t=V;const i=H-G.icons.marginRight;e.reverse().forEach((e=>{t-=10;let n=e.title.replace(/(.{2})/g,"$1\n");n.endsWith("\n")&&(n=n.slice(0,n.length-1));const{text:l,icon:r}=o(n,e,{text:{left:i-(e.pointAttr.width||10)-5,top:t,originX:"right"},icon:{originX:"right",left:i,topY:t,origin:{key:e.key,type:s(e.bigType),_type:e.bigType,isOneLine:e.isOneLine},...d.event}});var u;t-=l.height||30,(u=r).on("moving",(()=>{u.set("originX","center"),function(e){if(e.left>=O&&e.left<=k){e.setCoords();const t="pain"===e.origin.type?W:I;e.top<t.originY&&e.set("top",t.originY),e.top>t.endY&&e.set("top",t.endY)}}(u),N(u)?f(u):m.show=!1})),u.on("mouseup:before",(e=>{if(m.show=!1,0===e.e.button&&N(u)){const e=L([...x],u.left,"_type").includes(u.origin._type),t=b(u.left);if(!t||e)e&&t&&X("repeat");else{const e={data:{time:w(u.left),value:S(u.origin.type,u.top),...u.origin.isOneLine?{key:u.origin.key}:{}},...u.origin};g("add",e),Y(e)}}!function(e){e.setCoords().set({originX:"right",left:e.originLeft,top:e.originTop})}(u)})),p.value.add(l,r)}))}();const K=G.yScaleValue.filter((e=>"left"===e.layout&&"pain"!==e.type&&e.show));if((null==B?void 0:B.width)&&"left"===(null==(j=null==B?void 0:B.yScaleValue)?void 0:j.layout)&&(null==(C=null==B?void 0:B.yScaleValue)?void 0:C.show)&&K.push(q),_>0&&G.yScaleValue[_].show){const e=G.yScaleValue[_];0===_&&G.yScaleValue.length>1&&K.unshift(e),_==G.yScaleValue.length-1&&K.push(e)}const Q=K.findIndex((e=>"pulse"===e.type&&e.show&&e.doubleShow)),U=K[Q];return Q>-1&&K.splice(Q,0,{...U,title:(null==U?void 0:U.doubleTitle)||(null==U?void 0:U.title)}),F(K),{drawScaleValue:F}}export{p as useLeft};
1
+ import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{drawLine as t,defaultTextStyle as i,defaultStyle as n,drawTextAndIconGroup as o,drawTextGroup as l}from"../useDraw.js";import"date-fns";import{getType as s}from"../../utils/index.js";import{last as r}from"lodash-es";import"../useEvent.js";import"../useShadow.js";import{getScaleInfo as u,drawScaleNumber as a,drawScaleLine as h}from"../useScaleColumn.js";import{useCommon as c}from"../useCommon.js";import"vue";import"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"../surgicalAnesthesia/useTop.js";import"@vueuse/core";import"../surgicalAnesthesia/useOther.js";import"../../../../../shared/utils/index.js";function p(p,d,g,f,m,v,y,w,S,b,Y,x){var j,C;const{getEqualXTypes:L,handleAddPrevent:X,isGridLimit:T}=c(p,g,d),{originY:N,endY:O,originX:V,endX:k,xCellWidth:E,yCellHeight:M,left:A,vitalSignsOriginY:G,painOriginY:I,painHeight:W,iconsWidth:H,itemList:R,painIndex:_,right:B,canvasWidth:J,canvasHeight:$,getRightInfo:q,borderStyle:D,surplusCell:P,painSurplusCell:z}=d;function F(o){var s;if(!(null==o?void 0:o.length))return;const{layout:c}=o[0];let d=H,g=V;"right"===c&&(d=k,g=k+(null!=(s=null==B?void 0:B.width)?s:0));const f=[],m=W&&"right"!==c?o.length-1:o.length,v=(g-d)/m,y=v+(g-d)%m;o.forEach(((o,s)=>{if("pain"===o.type)return void function(n){const{list:o=[],spaceGridNumber:s=5,showScale:r,showNumber:h,position:c,showMaxMinNumber:d,style:g,title:f}=n,m=I.originY-z[0]*M,v=l({width:V-H,height:W+(z[0]+z[1])*M,...D},{value:`${f}`,...i,...g||{}},{left:H,top:m}),y=t([H,m,V,m],D),w=[];if(r||h){const{lineXMain:t,textLeft:i}=u(c,H,V-H),l=o.length;o.forEach(((o,u)=>{let c=I.endY-u*M*s;if(0===u&&0===z[1]&&(c=O-5),h&&(!(0===u||u===l-1)||d||0===u&&z[1]>0||u===l-1&&z[0]>0)&&w.push(a(o,n,i,c)),r&&(0!==u||z[1]>0)){const[i,n]=t,o=new e.Line([i,c,n,c],{...D,...g});w.push(o)}}))}p.value.add(y,v,...w),v.sendToBack()}(o);const g=[],m=0===s?y:v,w=0===s?d:y+d+(s-1)*v,S="right"===c?0:G.originY,b="right"===c?$:G.endY,Y=s>0?t([w,S,w,b],{objectCaching:!1,...D}):null;Y&&g.push(Y);const x=w+m/2,{list:j=[],spaceGridNumber:C=5,showScale:L,showNumber:X,position:T,showMaxMinNumber:k,detailedList:E=[],showdetailedScale:A,showRange:R=[]}=o;if(L||X){const{lineXMain:e,lineXSub:t,textLeft:i}=u(T,w,m),n=(j[1]-j[0])/2,l=A&&!E.length?j.reduce(((e,t,i)=>{const o=e[e.length-1];return 0===i?[t]:e.concat([o+n,o+2*n])}),[]):A&&(null==E?void 0:E.length)?E:j,[s=l[0],c=r(l)]=R;l.forEach(((n,r)=>{if(s&&+n<+s)return;if(c&&+n>+c)return;const u=G.endY-r*M*(A?C/2:C),p=[s,c].includes(n);if(X&&(!p||k)){const e=0==r?u-5:u,t=a(n,o,i,e),l=G.originY+t.height/2;e<l&&t.set({top:l}),g.push(t)}g.push(...h(o,r,e,t,u,M,G.originY,l.findIndex((e=>e==c))+1))}))}let B=o.title||"";o.unit&&(B+="\n"+o.unit);let J=G.originY+2;0!==_&&P[0]>0&&(J=N+2),B&&g.push(new e.Text(String(B),{...i,originY:"top",left:x,top:J,textAlign:"center",...o.style}));const q=new e.Group(g,{...n,objectCaching:!1});f.push(q)}));const w=f.length>0?new e.Group([...f],{...n,objectCaching:!1}):null;w&&p.value.add(w),w&&w.sendToBack()}H&&function(){const e=JSON.parse(JSON.stringify(R));let t=O;const i=H-A.icons.marginRight;e.reverse().forEach((e=>{t-=10;let n=e.title.replace(/(.{2})/g,"$1\n");n.endsWith("\n")&&(n=n.slice(0,n.length-1));const{text:l,icon:r}=o(n,e,{text:{left:i-(e.pointAttr.width||10)-5,top:t,originX:"right"},icon:{originX:"right",left:i,topY:t,origin:{key:e.key,type:s(e.bigType),_type:e.bigType,isOneLine:e.isOneLine},...d.event}});var u;t-=l.height||30,(u=r).on("moving",(()=>{u.set("originX","center"),function(e){if(e.left>=V&&e.left<=k){e.setCoords();const t="pain"===e.origin.type?I:G;e.top<t.originY&&e.set("top",t.originY),e.top>t.endY&&e.set("top",t.endY)}}(u),T(u)?f(u):m.show=!1})),u.on("mouseup:before",(e=>{if(m.show=!1,0===e.e.button&&T(u)){const e=L([...x],u.left,"_type").includes(u.origin._type),t=b(u.left);if(!t||e)e&&t&&X("repeat");else{const e={data:{time:w(u.left),value:S(u.origin.type,u.top),...u.origin.isOneLine?{key:u.origin.key}:{}},...u.origin};g("add",e),Y(e)}}!function(e){e.setCoords().set({originX:"right",left:e.originLeft,top:e.originTop})}(u)})),p.value.add(l,r)}))}();const K=A.yScaleValue.filter((e=>"left"===e.layout&&"pain"!==e.type&&e.show));if((null==B?void 0:B.width)&&"left"===(null==(j=null==B?void 0:B.yScaleValue)?void 0:j.layout)&&(null==(C=null==B?void 0:B.yScaleValue)?void 0:C.show)&&K.push(q),_>0&&A.yScaleValue[_].show){const e=A.yScaleValue[_];0===_&&A.yScaleValue.length>1&&K.unshift(e),_==A.yScaleValue.length-1&&K.push(e)}const Q=K.findIndex((e=>"pulse"===e.type&&e.show&&e.doubleShow)),U=K[Q];return Q>-1&&K.splice(Q,0,{...U,title:(null==U?void 0:U.doubleTitle)||(null==U?void 0:U.title)}),F(K),{drawScaleValue:F}}export{p as useLeft};
@@ -1 +1 @@
1
- import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{defaultStyle as t}from"../useDraw.js";import"date-fns";import{cloneDeep as i,last as l}from"lodash-es";import"../useEvent.js";import"vue";import"./useShadow.js";import"@vueuse/shared";import"naive-ui";import"@vueuse/core";function n(n,o,r,u,a,s){const{left:h,other:f,vitalSignsOriginY:c,xCellWidth:g,yCellHeight:v,endX:d}=o,p=(()=>{const e=Math.min(...((null==f?void 0:f.list)||[]).map((e=>{var t,i;return null!=(i=null==(t=e.style)?void 0:t.fontSize)?i:12})));return v<11?e:v})();let m=0;function b(i,l,o,u=!1){const a=[],s=u&&i.fixed&&i.fixedValue?i.fixedValue:i.value;String(s).split("").forEach(((l,n)=>{const o=new e.Text(l,{left:0,top:p*n,originX:"center",...t,objectCaching:!1,...i.style||{}});m=(p-(o.height||0))/2,a.push(o)}));const h=new e.Rect({left:0,top:0,width:g,height:p*a.length,fill:"transparent",originX:"center",...t}),{eventHighlight:c=!1}=f||{},d={originX:"center",left:l,top:o+m,baseTop:(i.baseTop||0)*v,trueLeft:l,trueHeight:a.length*p,objectCaching:!1,hoverCursor:"pointer",highlightObject:h,originData:i,selectable:!1,evented:c},b=new e.Group([h,...a],d);return function(e){const{highlightColor:t="#ffff00"}=f||{};e.on("mouseover",(()=>{e.highlightObject.set("fill",t),n.value.requestRenderAll()})),e.on("mouseout",(()=>{e.highlightObject.set("fill","transparent"),n.value.requestRenderAll()})),e.on("mousedown",(function(){r("eventClick",e.originData)}))}(b),n.value.add(b),b}!function(){var e,t;if(!(null==f?void 0:f.list))return!1;const n=[],o=[];i(f.list).forEach(((e,t)=>{e.value=e.value||"";const i=0===t?"vertical":e.align||"vertical",l=u(e.time,!0);if(l>d)return;const n=o.find((e=>e.left==l));if(n)n[i].push(e);else{const t={left:l,vertical:[],horizontal:[]};t[i].push(e),o.push(t)}}));const r=null==(t=null==(e=h.yScaleValue)?void 0:e.find((e=>"temperature"===e.type)))?void 0:t.list,m=(null==r?void 0:r.length)?a("temperature",35):0,j=e=>e.fixed&&m&&(e.fixedValue||e.value);o.forEach((e=>{let t=c.originY,i=e.left,o=0,r=m,u=i;function a(e,t){if(j(e)){const l=[...s].find((e=>Math.abs(e.left-i)<1));l&&(t||Math.abs(i-u)>1)&&(r=l.top+l.height),u=i,n.push(b(e,i,r,!0))}}e.vertical.forEach(((u,s)=>{var h,f,d,m,x;const S=(u.baseTop||0)*v,w=(null==(h=l(n))?void 0:h.left)||0;0===s&&e.left<=w&&(i=w+g);if(n.filter((e=>e.trueLeft===i)).length){const e=String(u.value).length;t+=o,t+e*p+S>c.endY&&(t=c.originY,i+=g)}t+=S,String(u.value).length&&(n.push(b(u,i,t)),o=null!=(d=null==(f=l(n))?void 0:f.trueHeight)?d:0),a(u,0===s),j(u)&&(r+=null!=(x=null==(m=l(n))?void 0:m.trueHeight)?x:0)})),e.horizontal.forEach(((t,o)=>{var u,s;const h=c.originY+(t.baseTop||0)*v;r=m;const f=(null==(u=l(n))?void 0:u.left)||0;e.left<=f+.1&&(i=f+g),String(t.value).length&&n.push(b(t,i,h)),a(t,0===(null==(s=e.vertical)?void 0:s.length)&&0===o)}))}))}()}export{n as useOther};
1
+ import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{defaultStyle as t}from"../useDraw.js";import"date-fns";import{cloneDeep as i,last as n}from"lodash-es";import"../useEvent.js";import"../useShadow.js";import"../useCommon.js";import"vue";import"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"../surgicalAnesthesia/useTop.js";import"@vueuse/core";import"../surgicalAnesthesia/useOther.js";import"../../../../../shared/utils/index.js";function l(l,o,r,s,u,a){const{left:h,other:f,vitalSignsOriginY:c,xCellWidth:g,yCellHeight:p,endX:v}=o,d=(()=>{const e=Math.min(...((null==f?void 0:f.list)||[]).map((e=>{var t,i;return null!=(i=null==(t=e.style)?void 0:t.fontSize)?i:12})));return p<11?e:p})();let m=0;function j(i,n,o,s=!1){const u=[],a=s&&i.fixed&&i.fixedValue?i.fixedValue:i.value;String(a).split("").forEach(((n,l)=>{const o=new e.Text(n,{left:0,top:d*l,originX:"center",...t,objectCaching:!1,...i.style||{}});m=(d-(o.height||0))/2,u.push(o)}));const h=new e.Rect({left:0,top:0,width:g,height:d*u.length,fill:"transparent",originX:"center",...t}),{eventHighlight:c=!1}=f||{},v={originX:"center",left:n,top:o+m,baseTop:(i.baseTop||0)*p,trueLeft:n,trueHeight:u.length*d,objectCaching:!1,hoverCursor:"pointer",highlightObject:h,originData:i,selectable:!1,evented:c},j=new e.Group([h,...u],v);return function(e){const{highlightColor:t="#ffff00"}=f||{};e.on("mouseover",(()=>{e.highlightObject.set("fill",t),l.value.requestRenderAll()})),e.on("mouseout",(()=>{e.highlightObject.set("fill","transparent"),l.value.requestRenderAll()})),e.on("mousedown",(function(){r("eventClick",e.originData)}))}(j),l.value.add(j),j}!function(){var e,t;if(!(null==f?void 0:f.list))return!1;const l=[],o=[];i(f.list).forEach(((e,t)=>{e.value=e.value||"";const i=0===t?"vertical":e.align||"vertical",n=s(e.time,!0);if(n>v)return;const l=o.find((e=>e.left==n));if(l)l[i].push(e);else{const t={left:n,vertical:[],horizontal:[]};t[i].push(e),o.push(t)}}));const r=null==(t=null==(e=h.yScaleValue)?void 0:e.find((e=>"temperature"===e.type)))?void 0:t.list,m=(null==r?void 0:r.length)?u("temperature",35):0,b=e=>e.fixed&&m&&(e.fixedValue||e.value);o.forEach((e=>{let t=c.originY,i=e.left,o=0,r=m,s=i;function u(e,t){if(b(e)){const n=[...a].find((e=>Math.abs(e.left-i)<1));n&&(t||Math.abs(i-s)>1)&&(r=n.top+n.height),s=i,l.push(j(e,i,r,!0))}}e.vertical.forEach(((s,a)=>{var h,f,v,m,x;const C=(s.baseTop||0)*p,S=(null==(h=n(l))?void 0:h.left)||0;0===a&&e.left<=S&&(i=S+g);if(l.filter((e=>e.trueLeft===i)).length){const e=String(s.value).length;t+=o,t+e*d+C>c.endY&&(t=c.originY,i+=g)}t+=C,String(s.value).length&&(l.push(j(s,i,t)),o=null!=(v=null==(f=n(l))?void 0:f.trueHeight)?v:0),u(s,0===a),b(s)&&(r+=null!=(x=null==(m=n(l))?void 0:m.trueHeight)?x:0)})),e.horizontal.forEach(((t,o)=>{var s,a;const h=c.originY+(t.baseTop||0)*p;r=m;const f=(null==(s=n(l))?void 0:s.left)||0;e.left<=f+.1&&(i=f+g),String(t.value).length&&l.push(j(t,i,h)),u(t,0===(null==(a=e.vertical)?void 0:a.length)&&0===o)}))}))}()}export{l as useOther};
@@ -11,5 +11,6 @@ export declare function useTemperatureChart(canvas: Ref<fabric.Canvas>, props: A
11
11
  useCaliper?: Ref<import("../../../../../shared/types").AnyFn | null | undefined> | undefined;
12
12
  useCaliperRuler?: Ref<import("../../../../../shared/types").AnyFn | null | undefined> | undefined;
13
13
  useRectRuler?: Ref<import("../../../../../shared/types").AnyFn | null | undefined> | undefined;
14
+ redrawLinePoints?: Ref<import("../../../../../shared/types").AnyFn | null | undefined> | undefined;
14
15
  propItems: any;
15
16
  };
@@ -1 +1 @@
1
- import{reactive as e,computed as a,watch as t,toRefs as l}from"vue";import{defaultBorderStyle as u}from"../useDraw.js";import"../../../../../shared/utils/fabricjs/index.js";import{useCumputedPoint as i}from"../useCumputedPoint.js";import{useCanvasEvent as n}from"../useEvent.js";import{setOtherType as r,isOneLine as o,getFloorNumber as s}from"../../utils/index.js";import{flatten as v}from"lodash-es";import{format as d,addDays as c}from"date-fns";import"naive-ui";import"@vueuse/core";import{useTop as h}from"./useTop.js";import{useLeft as p}from"./useLeft.js";import{useRight as g}from"./useRight.js";import{useCenter as m}from"./useCenter.js";import{useBottom as f}from"./useBottom.js";import{useOther as y}from"./useOther.js";function S(S,w,b,Y,D,x){const C=15,j=e({select:null,redrawPoints:null,clickMenu:null}),V=a((()=>{const{painSurplusCell:e=[0,0]}=w.data.grid||{};return~K.value?e:[0,0]})),H=a((()=>{var e,a;const t=(null==(a=null==(e=w.data.grid)?void 0:e.surplusCell)?void 0:a.slice())||[0,0,0,0];return 0===K.value?t[0]=t[0]+V.value[1]:K.value>0&&(t[2]=t[2]+V.value[0]),t})),X=a((()=>0===K.value?[V.value[0],H.value[1],H.value[2],H.value[3]]:K.value>0?[H.value[0],H.value[1],V.value[1],H.value[3]]:H.value)),L=a((()=>{const{top:e}=w.data;return e.date.show&&(e.date.height||C)||0})),P=a((()=>{var e;const{top:a}=w.data;return(null==(e=a.hospitalDays)?void 0:e.show)&&(a.hospitalDays.height||C)||0})),M=a((()=>{var e;const{top:a}=w.data;return(null==(e=a.operationDays)?void 0:e.show)&&(a.operationDays.height||C)||0})),I=a((()=>{var e,a,t;const{top:l}=w.data;return((null==(e=l.xScalevalue)?void 0:e.show)&&(l.xScalevalue.height||C)||0)+((null==(a=l.xScalevalue)?void 0:a.show)&&null!=(t=l.dayHeight)?t:0)})),N=a((()=>{var e;const{top:a}=w.data;return(null==(e=a.childbirthDays)?void 0:e.show)&&(a.childbirthDays.height||C)||0})),O=a((()=>{var e;const{bottom:a}=w.data;return(null==(e=null==a?void 0:a.breathing)?void 0:e.show)&&(a.breathing.height||30)||0})),k=a((()=>{const{grid:e}=w.data;return e.mainXCell*e.subXCell+H.value[1]+H.value[3]})),R=a((()=>{const{grid:e}=w.data,a=K.value>0?V.value[1]:V.value[0];return e.mainYCell*e.subYCell+H.value[0]+H.value[2]+a})),W=a((()=>{var e;const{width:a,right:t=null,top:l}=w.data;if(!t)return a;return a-(null!=(e=t.width)?e:0)})),$=a((()=>W.value-H.value[1]*T.value)),q=a((()=>{const{top:e,left:a}=w.data;return e.titleWidth+B.value})),z=a((()=>{const{bottom:e=null,height:a}=w.data;if(!e)return a;return a-(e.height||30)})),G=a((()=>{var e;const{top:a}=w.data,t=a.xScalevalue.show&&(null!=(e=a.dayHeight)?e:0)||0,l=a.xScalevalue.show&&(a.xScalevalue.height||C)||0;return L.value+t+l+P.value+M.value+N.value})),T=a((()=>(W.value-q.value)/k.value)),A=a((()=>(z.value-G.value)/R.value)),B=a((()=>{var e,a;const{left:t}=w.data;return(null==(e=t.icons)?void 0:e.show)&&((null==(a=t.icons)?void 0:a.width)||100)||0})),E=a((()=>{var e,a;const{top:t,grid:l}=w.data,u=(null==(a=null==(e=t.date.list)?void 0:e.slice)?void 0:a.call(e,0,l.mainXCell))||[],i=t.xScalevalue.times;let n=q.value-T.value;const r=t.date.startDate||d(new Date,"yyyy-MM-dd"),o=u.reduce(((e,a,t)=>0===t?e.concat(r):e.concat(d(c(new Date(r.replace(/-/g,"/")),t),"yyyy-MM-dd"))),[]).map((e=>i.map((a=>{n+=T.value;const t=Date.parse(`${e} ${a.start}`),l=Date.parse(`${e} ${a.end}`);return{start:t,end:l,left:n,center:n+T.value/2,scaleCell:(l-t)/T.value}}))));return v(o)})),F=a((()=>{var e;return(null==(e=w.data.grid)?void 0:e.event)||{selectable:!0,evented:!0,hovered:!0}})),J=a((()=>{const{left:e}=w.data;return v(e.yScaleValue.filter((e=>e.show)).map((e=>e.dataList.filter((e=>e.show)).map(((a,t)=>({...a,bigType:r(a.title,e.type),unit:e.unit,dataIndex:t,isOneLine:o(e)}))))))})),K=a((()=>{const{left:e}=w.data,a=e.yScaleValue.findIndex((e=>"pain"===e.type));return a>-1&&e.yScaleValue[a].show?a:-1})),Q=a((()=>{const{grid:e}=w.data;return-1===K.value?0:A.value*e.subYCell})),U=a((()=>{const{left:e}=w.data,a={originY:G.value+V.value[0]*A.value,endY:z.value-V.value[1]*A.value};return 0===K.value&&e.yScaleValue.length>1?a.endY=a.originY+Q.value:K.value===e.yScaleValue.length-1&&(a.originY=a.endY-Q.value),a})),Z=a((()=>{const{left:e}=w.data,a={originY:G.value+H.value[0]*A.value,endY:z.value-H.value[2]*A.value};return 0===K.value&&e.yScaleValue.length>1?a.originY=U.value.endY+H.value[0]*A.value:K.value===e.yScaleValue.length-1&&(a.endY=U.value.originY-H.value[2]*A.value),a})),_=a((()=>{var e,a;const{top:t,grid:l}=w.data,u=[];for(const i in t)t[i].show&&u.push({...t[i],list:(null==(a=null==(e=t[i].list)?void 0:e.slice)?void 0:a.call(e,0,l.mainXCell))||[],key:i});return u.sort(((e,a)=>e.seq-a.seq))})),ee=a((()=>{var e;const{left:a,right:t}=w.data,l=a.yScaleValue.find((e=>"temperature"===e.type)),u=(null==t?void 0:t.yScaleValue)||{};if(null==(e=null==l?void 0:l.list)?void 0:e.length){const e=(null==u?void 0:u.showdetailedScale)?l.list.reduce((e=>{const a=e[e.length-1];return a?e.concat([a+1,a+2]):e.concat([92])}),[]):[],a=l.list.map((e=>s(1.8*e+32)));Object.assign(u,{list:a,detailedList:e,spaceGridNumber:l.spaceGridNumber})}return u})),ae=e({canvasWidth:w.data.width,canvasHeight:w.data.height,borderStyle:{...u,...w.data.borderStyle||{}},selectionStyle:w.data.selectionStyle||{},dateHeight:L.value,hospitalDaysHeight:P.value,operationDaysHeight:M.value,xScalevalueHeight:I.value,childbirthDaysHeight:N.value,topList:_.value,breathingHeight:O.value,hospitalizationDate:w.data.hospitalizationDate,grid:w.data.grid,top:w.data.top,left:w.data.left,right:w.data.right,bottom:w.data.bottom,other:w.data.other,painIndex:K.value,painHeight:Q.value,painOriginY:U.value,vitalSignsOriginY:Z.value,gridXNumber:k.value,gridYNumber:R.value,iconsWidth:B.value,originX:q.value,originY:G.value,endX:W.value,endXLimit:$.value,endY:z.value,xCellWidth:T.value,yCellHeight:A.value,xScaleList:E.value,event:F.value,itemList:J.value,getRightInfo:ee.value,config:w.data.config||{},surplusCell:H.value,painSurplusCell:V.value,mainSurplusCell:X.value}),{computedX:te,computedY:le,getXValue:ue,getYValue:ie}=i(ae);return t((()=>S.value),(e=>{e&&function(){h(S,ae);const{setPopup:e,isAddPoint:a,updateData:t,redrawPoints:l,clickMenu:u,gridPoints:i,fixedNoRisePoints:r}=m(S,ae,b,te,le,ue,ie,w.addRenderItem,D,x);j.redrawPoints=l,j.clickMenu=u;const{drawScaleValue:o}=p(S,ae,b,e,D,te,le,ue,ie,a,t,i);g(S,ae,o),f(S,ae),y(S,ae,b,te,le,r);const{select:s}=n(S,ae,b);j.select=s}()}),{immediate:!0}),{propItems:ae,...l(j)}}export{S as useTemperatureChart};
1
+ import{reactive as e,computed as a,watch as t,toRefs as l}from"vue";import{defaultBorderStyle as u}from"../useDraw.js";import"../../../../../shared/utils/fabricjs/index.js";import{useCumputedPoint as i}from"../useCumputedPoint.js";import{useCanvasEvent as n}from"../useEvent.js";import"../useShadow.js";import"../useCommon.js";import{setOtherType as r,isOneLine as o,getFloorNumber as s}from"../../utils/index.js";import{flatten as v}from"lodash-es";import{format as d,addDays as c}from"date-fns";import"naive-ui";import"../surgicalAnesthesia/useTop.js";import"@vueuse/core";import"../../constants/index.js";import"../surgicalAnesthesia/useOther.js";import"../../../../../shared/utils/index.js";import{useTop as h}from"./useTop.js";import{useLeft as p}from"./useLeft.js";import{useRight as g}from"./useRight.js";import{useCenter as m}from"./useCenter.js";import{useBottom as f}from"./useBottom.js";import{useOther as y}from"./useOther.js";function S(S,w,b,Y,j,x){const C=15,D=e({select:null,redrawPoints:null,clickMenu:null}),V=a((()=>{const{painSurplusCell:e=[0,0]}=w.data.grid||{};return~K.value?e:[0,0]})),H=a((()=>{var e,a;const t=(null==(a=null==(e=w.data.grid)?void 0:e.surplusCell)?void 0:a.slice())||[0,0,0,0];return 0===K.value?t[0]=t[0]+V.value[1]:K.value>0&&(t[2]=t[2]+V.value[0]),t})),X=a((()=>0===K.value?[V.value[0],H.value[1],H.value[2],H.value[3]]:K.value>0?[H.value[0],H.value[1],V.value[1],H.value[3]]:H.value)),L=a((()=>{const{top:e}=w.data;return e.date.show&&(e.date.height||C)||0})),P=a((()=>{var e;const{top:a}=w.data;return(null==(e=a.hospitalDays)?void 0:e.show)&&(a.hospitalDays.height||C)||0})),M=a((()=>{var e;const{top:a}=w.data;return(null==(e=a.operationDays)?void 0:e.show)&&(a.operationDays.height||C)||0})),I=a((()=>{var e,a,t;const{top:l}=w.data;return((null==(e=l.xScalevalue)?void 0:e.show)&&(l.xScalevalue.height||C)||0)+((null==(a=l.xScalevalue)?void 0:a.show)&&null!=(t=l.dayHeight)?t:0)})),O=a((()=>{var e;const{top:a}=w.data;return(null==(e=a.childbirthDays)?void 0:e.show)&&(a.childbirthDays.height||C)||0})),N=a((()=>{var e;const{bottom:a}=w.data;return(null==(e=null==a?void 0:a.breathing)?void 0:e.show)&&(a.breathing.height||30)||0})),k=a((()=>{const{grid:e}=w.data;return e.mainXCell*e.subXCell+H.value[1]+H.value[3]})),R=a((()=>{const{grid:e}=w.data,a=K.value>0?V.value[1]:V.value[0];return e.mainYCell*e.subYCell+H.value[0]+H.value[2]+a})),W=a((()=>{var e;const{width:a,right:t=null,top:l}=w.data;if(!t)return a;return a-(null!=(e=t.width)?e:0)})),$=a((()=>W.value-H.value[1]*z.value)),A=a((()=>{const{top:e,left:a}=w.data;return e.titleWidth+B.value})),T=a((()=>{const{bottom:e=null,height:a}=w.data;if(!e)return a;return a-(e.height||30)})),q=a((()=>{var e;const{top:a}=w.data,t=a.xScalevalue.show&&(null!=(e=a.dayHeight)?e:0)||0,l=a.xScalevalue.show&&(a.xScalevalue.height||C)||0;return L.value+t+l+P.value+M.value+O.value})),z=a((()=>(W.value-A.value)/k.value)),G=a((()=>(T.value-q.value)/R.value)),B=a((()=>{var e,a;const{left:t}=w.data;return(null==(e=t.icons)?void 0:e.show)&&((null==(a=t.icons)?void 0:a.width)||100)||0})),E=a((()=>{var e,a;const{top:t,grid:l}=w.data,u=(null==(a=null==(e=t.date.list)?void 0:e.slice)?void 0:a.call(e,0,l.mainXCell))||[],i=t.xScalevalue.times;let n=A.value-z.value;const r=t.date.startDate||d(new Date,"yyyy-MM-dd"),o=u.reduce(((e,a,t)=>0===t?e.concat(r):e.concat(d(c(new Date(r.replace(/-/g,"/")),t),"yyyy-MM-dd"))),[]).map((e=>i.map((a=>{n+=z.value;const t=Date.parse(`${e} ${a.start}`),l=Date.parse(`${e} ${a.end}`);return{start:t,end:l,left:n,center:n+z.value/2,scaleCell:(l-t)/z.value}}))));return v(o)})),F=a((()=>{var e;return(null==(e=w.data.grid)?void 0:e.event)||{selectable:!0,evented:!0,hovered:!0}})),J=a((()=>{const{left:e}=w.data;return v(e.yScaleValue.filter((e=>e.show)).map((e=>e.dataList.filter((e=>e.show)).map(((a,t)=>({...a,bigType:r(a.title,e.type),unit:e.unit,dataIndex:t,isOneLine:o(e)}))))))})),K=a((()=>{const{left:e}=w.data,a=e.yScaleValue.findIndex((e=>"pain"===e.type));return a>-1&&e.yScaleValue[a].show?a:-1})),Q=a((()=>{const{grid:e}=w.data;return-1===K.value?0:G.value*e.subYCell})),U=a((()=>{const{left:e}=w.data,a={originY:q.value+V.value[0]*G.value,endY:T.value-V.value[1]*G.value};return 0===K.value&&e.yScaleValue.length>1?a.endY=a.originY+Q.value:K.value===e.yScaleValue.length-1&&(a.originY=a.endY-Q.value),a})),Z=a((()=>{const{left:e}=w.data,a={originY:q.value+H.value[0]*G.value,endY:T.value-H.value[2]*G.value};return 0===K.value&&e.yScaleValue.length>1?a.originY=U.value.endY+H.value[0]*G.value:K.value===e.yScaleValue.length-1&&(a.endY=U.value.originY-H.value[2]*G.value),a})),_=a((()=>{var e,a;const{top:t,grid:l}=w.data,u=[];for(const i in t)t[i].show&&u.push({...t[i],list:(null==(a=null==(e=t[i].list)?void 0:e.slice)?void 0:a.call(e,0,l.mainXCell))||[],key:i});return u.sort(((e,a)=>e.seq-a.seq))})),ee=a((()=>{var e;const{left:a,right:t}=w.data,l=a.yScaleValue.find((e=>"temperature"===e.type)),u=(null==t?void 0:t.yScaleValue)||{};if(null==(e=null==l?void 0:l.list)?void 0:e.length){const e=(null==u?void 0:u.showdetailedScale)?l.list.reduce((e=>{const a=e[e.length-1];return a?e.concat([a+1,a+2]):e.concat([92])}),[]):[],a=l.list.map((e=>s(1.8*e+32)));Object.assign(u,{list:a,detailedList:e,spaceGridNumber:l.spaceGridNumber})}return u})),ae=e({canvasWidth:w.data.width,canvasHeight:w.data.height,borderStyle:{...u,...w.data.borderStyle||{}},selectionStyle:w.data.selectionStyle||{},dateHeight:L.value,hospitalDaysHeight:P.value,operationDaysHeight:M.value,xScalevalueHeight:I.value,childbirthDaysHeight:O.value,topList:_.value,breathingHeight:N.value,hospitalizationDate:w.data.hospitalizationDate,grid:w.data.grid,top:w.data.top,left:w.data.left,right:w.data.right,bottom:w.data.bottom,other:w.data.other,painIndex:K.value,painHeight:Q.value,painOriginY:U.value,vitalSignsOriginY:Z.value,gridXNumber:k.value,gridYNumber:R.value,iconsWidth:B.value,originX:A.value,originY:q.value,endX:W.value,endXLimit:$.value,endY:T.value,xCellWidth:z.value,yCellHeight:G.value,xScaleList:E.value,event:F.value,itemList:J.value,getRightInfo:ee.value,config:w.data.config||{},surplusCell:H.value,painSurplusCell:V.value,mainSurplusCell:X.value}),{computedX:te,computedY:le,getXValue:ue,getYValue:ie}=i(ae);return t((()=>S.value),(e=>{e&&function(){h(S,ae);const{setPopup:e,isAddPoint:a,updateData:t,redrawPoints:l,clickMenu:u,gridPoints:i,fixedNoRisePoints:r}=m(S,ae,b,te,le,ue,ie,w.addRenderItem,j,x);D.redrawPoints=l,D.clickMenu=u;const{drawScaleValue:o}=p(S,ae,b,e,j,te,le,ue,ie,a,t,i);g(S,ae,o),f(S,ae),y(S,ae,b,te,le,r);const{select:s}=n(S,ae,b);D.select=s}()}),{immediate:!0}),{propItems:ae,...l(D)}}export{S as useTemperatureChart};
@@ -1 +1 @@
1
- import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{drawLine as t,defaultStyle as l,drawTextGroup as s,defaultTextStyle as i}from"../useDraw.js";import"date-fns";import{flatten as o}from"lodash-es";import"../useEvent.js";import"vue";import"./useShadow.js";import"@vueuse/shared";import"naive-ui";import"@vueuse/core";function u(u,h){const{grid:n,originX:r,endX:a,xCellWidth:c,gridXNumber:p,top:d,xScalevalueHeight:f,iconsWidth:v,topList:g,endXLimit:m,canvasWidth:y,borderStyle:S,surplusCell:w}=h;!function(){const x=[];m&&x.push(new e.Line([m,0,y,0],S));let X=0;g.forEach(((e,l)=>{if(l>0&&(X+=h[`${g[l-1].key}Height`]),"xScalevalue"==e.key)!function(e,l,o){const u=d.dayHeight;if(!u)return;l.push(t([r,o+u,a,o+u],S));const h=c*n.subSecondXCell,f=(p-w[1]-w[3])/n.subSecondXCell;for(let n=0;n<f;n++){const a=r+n*h,c=n%2==0?"上午":"下午",p=s({width:h,height:u,...S},{value:c,...i,...e.style||{}},{left:a,top:o});l.push(p),l.push(t([a+h,o,a+h,o+u],S))}}(e,x,X),function(e,l,u){var h;const p=d.xScalevalue.show&&null!=(h=d.dayHeight)?h:0,g=f-p;if(!g)return;l.push(t([v,u+f,a,u+f],S));const m=s({width:r-v,height:f,...S},{value:d.xScalevalue.title,...i,...e.style||{},...e.titleStyle||{}},{left:v,top:u});l.push(m),l.push(t([r,u,r,u+f],S));const y=[];for(let e=0;e<n.mainXCell;e++)y.push(d.xScalevalue.list);o(y).forEach(((o,h)=>{const n=r+h*c,a=s({width:c,height:g,...S},{value:o.value,...i,...e.style||{},...o.style||{}},{left:n,top:u+p});l.push(a),l.push(t([n+c,u+p,n+c,u+p+g],S))}))}(e,x,X);else{if(!h[`${e.key}Height`])return;const o=h[`${g[l].key}Height`];!function(e,l,o){const u=h[`${e.key}Height`],a=s({width:r-v,height:u,...S},{value:e.title,...i,...(null==e?void 0:e.style)||{},...e.titleStyle||{}},{left:v,top:o});l.push(a);const p=c*n.subXCell;e.list.forEach(((h,n)=>{const a=r+n*p,c=s({width:p,height:u,...S},{value:h,...i,...(null==e?void 0:e.style)||{}},{left:a,top:o});l.push(t([a+p,o,a+p,o+u],S)),l.push(c)}))}(e,x,X),x.push(t([v,X+o,a,X+o],S)),x.push(t([r,X,r,X+o],S))}}));const b=x.length>0?new e.Group([...x],{...l,objectCaching:!1}):null;b&&b.sendToBack(),b&&u.value.add(b)}()}export{u as useTop};
1
+ import{fabric as e}from"../../../../../shared/utils/fabricjs/index.js";import{drawLine as t,defaultStyle as s,drawTextGroup as i,defaultTextStyle as l}from"../useDraw.js";import"date-fns";import{flatten as o}from"lodash-es";import"../useEvent.js";import"../useShadow.js";import"../useCommon.js";import"vue";import"../../constants/index.js";import"@vueuse/shared";import"naive-ui";import"../surgicalAnesthesia/useTop.js";import"@vueuse/core";import"../surgicalAnesthesia/useOther.js";import"../../../../../shared/utils/index.js";function u(u,n){const{grid:h,originX:r,endX:a,xCellWidth:p,gridXNumber:c,top:d,xScalevalueHeight:f,iconsWidth:m,topList:v,endXLimit:g,canvasWidth:y,borderStyle:j,surplusCell:S}=n;!function(){const w=[];g&&w.push(new e.Line([g,0,y,0],j));let x=0;v.forEach(((e,s)=>{if(s>0&&(x+=n[`${v[s-1].key}Height`]),"xScalevalue"==e.key)!function(e,s,o){const u=d.dayHeight;if(!u)return;s.push(t([r,o+u,a,o+u],j));const n=p*h.subSecondXCell,f=(c-S[1]-S[3])/h.subSecondXCell;for(let h=0;h<f;h++){const a=r+h*n,p=h%2==0?"上午":"下午",c=i({width:n,height:u,...j},{value:p,...l,...e.style||{}},{left:a,top:o});s.push(c),s.push(t([a+n,o,a+n,o+u],j))}}(e,w,x),function(e,s,u){var n;const c=d.xScalevalue.show&&null!=(n=d.dayHeight)?n:0,v=f-c;if(!v)return;s.push(t([m,u+f,a,u+f],j));const g=i({width:r-m,height:f,...j},{value:d.xScalevalue.title,...l,...e.style||{},...e.titleStyle||{}},{left:m,top:u});s.push(g),s.push(t([r,u,r,u+f],j));const y=[];for(let e=0;e<h.mainXCell;e++)y.push(d.xScalevalue.list);o(y).forEach(((o,n)=>{const h=r+n*p,a=i({width:p,height:v,...j},{value:o.value,...l,...e.style||{},...o.style||{}},{left:h,top:u+c});s.push(a),s.push(t([h+p,u+c,h+p,u+c+v],j))}))}(e,w,x);else{if(!n[`${e.key}Height`])return;const o=n[`${v[s].key}Height`];!function(e,s,o){const u=n[`${e.key}Height`],a=i({width:r-m,height:u,...j},{value:e.title,...l,...(null==e?void 0:e.style)||{},...e.titleStyle||{}},{left:m,top:o});s.push(a);const c=p*h.subXCell;e.list.forEach(((n,h)=>{const a=r+h*c,p=i({width:c,height:u,...j},{value:n,...l,...(null==e?void 0:e.style)||{}},{left:a,top:o});s.push(t([a+c,o,a+c,o+u],j)),s.push(p)}))}(e,w,x),w.push(t([m,x+o,a,x+o],j)),w.push(t([r,x,r,x+o],j))}}));const C=w.length>0?new e.Group([...w],{...s,objectCaching:!1}):null;C&&C.sendToBack(),C&&u.value.add(C)}()}export{u as useTop};
@@ -1 +1 @@
1
- const e={repeat:"该时段已存在数值不能新增",exceedMax:"未来时间不允许录入",exceedMin:"不允许小于入院时间"};function n(n,t,o){return{getEqualXTypes:function(e,n,t,i=o.xCellWidth){const r=[],c=i/2;return e.forEach((e=>{e.origin&&!e.origin.isMenu&&Math.abs(n-e.left)<=c&&r.push(e.origin[t])})),[...new Set(r)]},handleAddPrevent:function(n){t("add:prevent",{type:n,message:e[n]})},isGridLimit:function(e){const{left:n,top:t}=e,{originX:i,endX:r,originY:c,endY:l}=o;return n>=i&&n<=r&&t>=c&&t<=l},setPrevAndNextPoint:function(e){e.reduce(((e,n)=>e&&n?(n.prevPoint=e,e.nextPoint=n,n):n||e),null)},getPointEventProps:function(){const{hovered:e,evented:n}=o.event;return e?n?{selectable:!0,lockMovementX:!!Reflect.has(o.event,"lockMovementX")&&o.event.lockMovementX}:{selectable:!0,lockMovementX:!0,lockMovementY:!0}:o.event}}}export{n as useCommon};
1
+ var e,n,t;const o={repeat:(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.216"))||"该时段已存在数值不能新增",exceedMax:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.217"))||"未来时间不允许录入",exceedMin:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.218"))||"不允许小于入院时间"};function i(e,n,t){return{getEqualXTypes:function(e,n,o,i=t.xCellWidth){const l=[],d=i/2;return e.forEach((e=>{e.origin&&!e.origin.isMenu&&Math.abs(n-e.left)<=d&&l.push(e.origin[o])})),[...new Set(l)]},handleAddPrevent:function(e){n("add:prevent",{type:e,message:o[e]})},isGridLimit:function(e){const{left:n,top:o}=e,{originX:i,endX:l,originY:d,endY:c}=t;return n>=i&&n<=l&&o>=d&&o<=c},setPrevAndNextPoint:function(e){e.reduce(((e,n)=>e&&n?(n.prevPoint=e,e.nextPoint=n,n):n||e),null)},getPointEventProps:function(){const{hovered:e,evented:n}=t.event;return e?n?{selectable:!0,lockMovementX:!!Reflect.has(t.event,"lockMovementX")&&t.event.lockMovementX}:{selectable:!0,lockMovementX:!0,lockMovementY:!0}:t.event}}}export{i as useCommon};
@@ -1 +1 @@
1
- import{fabric as e}from"../../../../shared/utils/fabricjs/index.js";const t={evented:!1,selectable:!1},i={stroke:"#000",strokeWidth:1,strokeUniform:!0,...t},n={stroke:"#000",strokeWidth:1,strokeDashArray:[0,0],strokeUniform:!0,...t},r={fill:"transparent",stroke:"#000",strokeWidth:1,originX:"center",originY:"center",objectCaching:!1,strokeUniform:!0,...t},o={fontFamily:"微软雅黑",fontSize:12,fill:"#000",centeredRotation:!0,originX:"center",originY:"center",lineHeight:1,objectCaching:!1,strokeUniform:!0,...t};function c(t,i){return new e.Line(t,{...n,...i})}function l([t,i],n){return new e.Text(String(n.value),{...o,left:t,top:i,...n})}function s([i,n,r],o,s="down"){const a=c([i,n,i,r],{strokeWidth:o.strokeWidth||1,stroke:o.fill||o.stroke}),g=l([i+.5,"up"===s?r-3:r+3],{value:"v",originX:"center",originY:"bottom",fontSize:16,angle:"up"===s?180:0,objectCaching:!1,...o});return new e.Group([a,g],{...t,originX:"center",originY:"top",objectCaching:!1})}function a(i,n,c,l=!1){const s=new e.Rect({...r,...i,...l?{}:{stroke:"transparent"}}),{value:a="标题",textAlign:g="center",verticalAlign:u="center"}=n,f=i.width/2,h=i.height/2,d=new e.Text(String(a),{...o,...n,..."left"==g||"right"==g?{originX:g,left:"left"==g?-f:f}:{},..."top"==u||"bottom"==u?{originY:u,top:"top"==u?-h:h}:{}});return new e.Group([s,d],{objectCaching:!1,...t,...c})}function g(t){return new e.Circle({objectCaching:!1,strokeWidth:t.strokeWidth||1,stroke:t.stroke||"red",radius:t.radius||5,fill:"#fff"})}function u(t="circle",i){var n;const r={originX:"center",originY:"center",hasControls:!1,hasBorders:!1,hoverCursor:"pointer",objectCaching:!1,scale:1,...i},o=i.radius?(i.radius||5)+(i.strokeWidth||1):null!=(n=i.width)?n:0;switch(t){case"triangle":return new e.Triangle({width:20,height:20,strokeWidth:1,...r});case"circle":return new e.Circle({objectCaching:!1,strokeWidth:1,radius:5,...r});case"image":return new e.Image(i.element,r);case"yemai":{const t=()=>{const t=2*o,n={stroke:i.strokeX||"blue",strokeWidth:i.strokeWidthX||1,originX:"center",originY:"center"},r=new e.Line([0,o,t,o],n),c=new e.Line([o,0,o,t],n);return new e.Group([r,c])};return new e.Group([g(i),t()],r)}case"koumai":{const t=new e.Circle({objectCaching:!1,radius:i.radiusCircle||2,fill:i.fillCircle||"#000",originX:"center",originY:"center",left:o-.5,top:o-.5});return new e.Group([g(i),t],r)}case"circleAndText":{const t=new e.Text(String(i.text),{fontFamily:"微软雅黑",fontSize:r.fontSize||12,originX:"center",originY:"center",fill:i.textFill||i.stroke,left:o-.5,top:o-1,fontWeight:i.fontWeight||500,objectCaching:!1});return new e.Group([g(i),t],r)}case"circleAndCircle":return u("koumai",i);default:return i&&Reflect.deleteProperty(i,"stroke"),new e.Text(String(t),{fontFamily:"微软雅黑",scale:1,fontSize:14,fill:"#000",...r})}}function f(i,n,r,o="horizontal"){const c=new e.Text(String(i),{...t,objectCaching:!1,...n.titleStyle||{},originX:"left",originY:"bottom",lineHeight:1,fontSize:12,...r.text}),{top:l,topY:s,left:a,leftX:g}=r.icon,f=null!=l?l:"horizontal"===o?s-(c.height||30)/2-1:s+c.height+3,h=null!=a?a:g+c.width+5;return{text:c,icon:u(n.type,{...n.pointAttr,originY:"center",originX:"left",originLeft:h,originTop:f,...r.icon,origin:{title:n.title,unit:n.unit,type:n.bigType,dataIndex:n.dataIndex,key:n.key,isMenu:!0,...r.icon.origin},left:h,top:f})}}export{i as defaultBorderStyle,n as defaultLineStyle,r as defaultRectStyle,t as defaultStyle,o as defaultTextStyle,s as drawArrow,c as drawLine,u as drawPoint,l as drawText,f as drawTextAndIconGroup,a as drawTextGroup};
1
+ import{fabric as e}from"../../../../shared/utils/fabricjs/index.js";import{omit as t}from"lodash-es";const n={evented:!1,selectable:!1},r={stroke:"#000",strokeWidth:1,strokeUniform:!0,...n},i={stroke:"#000",strokeWidth:1,strokeDashArray:[0,0],strokeUniform:!0,...n},o={fill:"transparent",stroke:"#000",strokeWidth:1,originX:"center",originY:"center",objectCaching:!1,strokeUniform:!0,...n},c={fontFamily:"微软雅黑",fontSize:12,fill:"#000",centeredRotation:!0,originX:"center",originY:"center",lineHeight:1,objectCaching:!1,strokeUniform:!0,...n};function l(t,n){return new e.Line(t,{...i,...n})}function s([t,n],r){return new e.Text(String(r.value),{...c,left:t,top:n,...r})}function a([t,r,i],o,c="down"){const a=l([t,r,t,i],{strokeWidth:o.strokeWidth||1,stroke:o.fill||o.stroke}),g=s([t+.5,"up"===c?i-3:i+3],{value:"v",originX:"center",originY:"bottom",fontSize:16,angle:"up"===c?180:0,objectCaching:!1,...o});return new e.Group([a,g],{...n,originX:"center",originY:"top",objectCaching:!1})}function g(t,r,i,l=!1){const s=new e.Rect({...o,...t,...l?{}:{stroke:"transparent"}}),{value:a="标题",textAlign:g="center",verticalAlign:u="center"}=r,f=t.width/2,h=t.height/2,d=new e.Text(String(a),{...c,...r,..."left"==g||"right"==g?{originX:g,left:"left"==g?-f:f}:{},..."top"==u||"bottom"==u?{originY:u,top:"top"==u?-h:h}:{}});return new e.Group([s,d],{objectCaching:!1,...n,...i})}function u(t){return new e.Circle({objectCaching:!1,strokeWidth:t.strokeWidth||1,stroke:t.stroke||"red",radius:t.radius||5,fill:"#fff"})}function f(n="circle",r){var i;const o={originX:"center",originY:"center",hasControls:!1,hasBorders:!1,hoverCursor:"pointer",objectCaching:!1,scale:1,...r},c=r.radius?(r.radius||5)+(r.strokeWidth||1):null!=(i=r.width)?i:0;switch(n){case"triangle":return new e.Triangle({width:20,height:20,strokeWidth:1,...o});case"circle":return new e.Circle({objectCaching:!1,strokeWidth:1,radius:5,...o});case"image":return new e.Image(r.element,o);case"yemai":{const t=()=>{const t=2*c,n={stroke:r.strokeX||"blue",strokeWidth:r.strokeWidthX||1,originX:"center",originY:"center"},i=new e.Line([0,c,t,c],n),o=new e.Line([c,0,c,t],n);return new e.Group([i,o])};return new e.Group([u(r),t()],o)}case"koumai":{const t=new e.Circle({objectCaching:!1,radius:r.radiusCircle||2,fill:r.fillCircle||"#000",originX:"center",originY:"center",left:c-.5,top:c-.5});return new e.Group([u(r),t],o)}case"circleAndText":{const t=new e.Text(String(r.text),{fontFamily:"微软雅黑",fontSize:o.fontSize||12,originX:"center",originY:"center",fill:r.textFill||r.stroke,left:c-.5,top:c-1,fontWeight:r.fontWeight||500,objectCaching:!1});return new e.Group([u(r),t],o)}case"circleAndCircle":return f("koumai",r);case"cg":{const{left:t,radius:n,top:i,stroke:c="#000"}=r,l=new e.Line([0,n,2*n,n],{stroke:c,objectCaching:!1}),s=n+1,a=Math.round(n/2),g=new e.Polyline([{x:s,y:a},{x:2*n,y:n},{x:s,y:n+a}],{stroke:c,fill:"transparent",objectCaching:!1});return new e.Group([u(r),l,g],{...o,left:Math.round(t),top:Math.round(i)})}case"qgcg":{const{radius:t,stroke:n="#000"}=r,i=new e.Line([0,t,4*t,t],{stroke:n,objectCaching:!1,left:-t});return new e.Group([u(r),i],o)}case"zrhz":{const{radius:t,stroke:n="#000"}=r,i=t/3*2,c=new e.Circle({objectCaching:!1,radius:i,fill:"#fff",left:t-i,top:t-i,stroke:n}),l=new e.Line([0,t,4*t,t],{stroke:n,objectCaching:!1,left:-t});return new e.Group([u(r),c,l],o)}case"plus":{const n=t(o,["big","small"]),{big:i,small:c}=r,l=f(i.type,{fill:"#fff",...n,...i.style}),s=f(c.type,{...n,...c.style});return new e.Group([l,s],n)}default:return r&&Reflect.deleteProperty(r,"stroke"),new e.Text(String(n),{fontFamily:"微软雅黑",scale:1,fontSize:14,fill:"#000",...o})}}function h(t,r,i,o="horizontal"){const c=new e.Text(String(t),{...n,objectCaching:!1,...r.titleStyle||{},originX:"left",originY:"bottom",lineHeight:1,fontSize:12,...i.text}),{top:l,topY:s,left:a,leftX:g}=i.icon,u=null!=l?l:"horizontal"===o?s-(c.height||30)/2-1:s+c.height+3,h=null!=a?a:g+c.width+5;return{text:c,icon:f(r.type,{...r.pointAttr,originY:"center",originX:"left",originLeft:h,originTop:u,...i.icon,origin:{title:r.title,unit:r.unit,type:r.bigType,dataIndex:r.dataIndex,key:r.key,isMenu:!0,...i.icon.origin},left:h,top:u})}}export{r as defaultBorderStyle,i as defaultLineStyle,o as defaultRectStyle,n as defaultStyle,c as defaultTextStyle,a as drawArrow,l as drawLine,f as drawPoint,s as drawText,h as drawTextAndIconGroup,g as drawTextGroup};
@@ -1,6 +1,6 @@
1
- import { fabric } from '../../../../../shared/utils/fabricjs';
1
+ import { fabric } from '../../../../shared/utils/fabricjs';
2
2
  type Point = [number, number];
3
3
  export declare function useShadow(): {
4
- createShadowLines: (coordinates: Point[], angle?: number, space?: number) => fabric.Line[];
4
+ createShadowLines: (coordinates: Point[], angle?: number, space?: number, style?: {}) => fabric.Line[];
5
5
  };
6
6
  export {};
@@ -0,0 +1 @@
1
+ import{useMemoize as t}from"@vueuse/core";import{fabric as n}from"../../../../shared/utils/fabricjs/index.js";import{nearlyEqual as r}from"../utils/index.js";import{defaultLineStyle as e}from"./useDraw.js";const o=t((t=>+Math.tan(t*Math.PI/180)));function u(){return{createShadowLines:function(t,u=45,s=10,a={}){const i=[];var c;c=u,u=c=(c=(c%=360)<0?180-c:c)>=180?c-180:c;const f=Math.min(...t.map((([t])=>t))),h=Math.max(...t.map((([t])=>t))),m=Math.min(...t.map((([,t])=>t))),p=Math.max(...t.map((([,t])=>t)));if(0===u){let t=m;for(;t<p-1;)t+=s,i.push(j([f,t],[h,t]));return i}const l=(p-m)/o(u);let M=f,x=h;return u>0&&u<90||u>180&&u<270?x+=l:M+=l,function(t,n){const r=[d([t,m])];for(;t<n;)t+=s,r.push(d([t,m]));return r}(M,x).forEach((n=>{let e=[];var o,u,s,a;if((o=t,o.reduce(((t,n,r)=>{const e=o[r+1]||o[0];return t.push([n,e]),t}),[])).forEach((t=>{const o=function(t,n,e,o){const u=(n[1]-t[1])*(o[0]-e[0])-(t[0]-n[0])*(e[1]-o[1]);if(0===u)return!1;const s=((n[0]-t[0])*(o[0]-e[0])*(e[1]-t[1])+(n[1]-t[1])*(o[0]-e[0])*t[0]-(o[1]-e[1])*(n[0]-t[0])*e[0])/u,a=-((n[1]-t[1])*(o[1]-e[1])*(e[0]-t[0])+(n[0]-t[0])*(o[1]-e[1])*t[1]-(o[0]-e[0])*(n[1]-t[1])*e[1])/u;if(((s-t[0])*(s-n[0])<0||r(s,t[0])||r(s,n[0]))&&((a-t[1])*(a-n[1])<0||r(a,t[1])||r(a,n[1]))&&((s-e[0])*(s-o[0])<0||r(s,e[0])||r(s,o[0]))&&((a-e[1])*(a-o[1])<0||r(a,e[1])||r(a,o[1])))return[s,a];return!1}(n[0],n[1],t[0],t[1]);o&&e.push(o)})),u=function(t){return t.reduce(((t,r)=>(n(t,r)||t.push(r),t)),[]);function n(t,n){return t.some((t=>r(t[0],n[0])&&r(t[1],n[1])))}}(e),e=u.sort(((t,n)=>t[1]-n[1])),e.length>=2)for(let n=0;n<e.length;n++)e[n+1]&&(s=e[n],a=e[n+1],function(t,n){let r,e,o,u=0;const s=n.length;e=n[0];for(let a=1;a<=s;a++)o=n[a%s],t[0]>Math.min(e[0],o[0])&&t[0]<=Math.max(e[0],o[0])&&t[1]<=Math.max(e[1],o[1])&&e[0]!=o[0]&&(r=(t[0]-e[0])*(o[1]-e[1])/(o[0]-e[0])+e[1],(e[1]==o[1]||t[1]<=r)&&u++),e=o;return u%2!=0}([(s[0]+a[0])/2,(s[1]+a[1])/2],t))&&i.push(j(e[n],e[n+1]))})),i;function d(t){return[t,[t[0]-l,p]]}function j(t,r){return new n.Line([t[0],t[1],r[0],r[1]],{...e,...a})}}}}export{u as useShadow};
@@ -21,6 +21,7 @@ export type ITreeItem = Partial<{
21
21
  left: number;
22
22
  width: number;
23
23
  height: number;
24
+ [key: string]: any;
24
25
  }>;
25
26
  interface ImainLineStyle {
26
27
  x: fabric.ILineOptions;
@@ -173,6 +174,7 @@ export type IPointTipProps = {
173
174
  movable: boolean;
174
175
  sourceData: AnyObject[];
175
176
  isTarget: boolean;
177
+ marginTop?: number;
176
178
  };
177
179
  export type IPointMenuProps = Pick<IPointTipProps, 'show' | 'point'> & {
178
180
  list: Array<any>;
@@ -189,5 +191,6 @@ export type IexposeMethods = Partial<{
189
191
  useCaliper: AnyFn | null;
190
192
  useCaliperRuler: AnyFn | null;
191
193
  useRectRuler: AnyFn | null;
194
+ redrawLinePoints: AnyFn | null;
192
195
  }>;
193
196
  export {};
@@ -8,7 +8,7 @@ export declare function deleteProperty(data: AnyObject, list: AnyObject[]): {};
8
8
  * @return {*}
9
9
  */
10
10
  export declare function isOneLine(scaleItem: AnyObject): any;
11
- export declare function getIndex(time: string, list: AnyObject[]): number;
11
+ export declare function getIndex(time: string, list: AnyObject[], isEqual?: boolean): number;
12
12
  export declare function setOtherType(title: string, type: string): string;
13
13
  export declare function getType(type: string): string;
14
14
  export declare function isValidValue(value: number | string): boolean;
@@ -30,3 +30,4 @@ export declare function getPointRange(target: any): {
30
30
  minTop: number;
31
31
  maxTop: any;
32
32
  };
33
+ export declare function nearlyEqual(v1: number, v2: number): boolean;