@kengic/vue 0.30.1-beta.82 → 0.30.1-beta.85

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 (870) hide show
  1. package/api/WMS/Controllers/DescriptionController/List.ts +84 -0
  2. package/api/WMS/Controllers/DescriptionController/ListByCodeNamesAndCodeValues.ts +21 -0
  3. package/api/WMS/Controllers/DescriptionController/index.ts +2 -0
  4. package/api/WMS/Controllers/SqlClientController/Execute.ts +21 -0
  5. package/api/WMS/Controllers/SqlClientController/ExecutePage.ts +21 -0
  6. package/api/WMS/Controllers/SqlClientController/index.ts +2 -0
  7. package/api/WMS/Controllers/SysPermissionController/List.ts +117 -0
  8. package/api/WMS/Controllers/SysPermissionController/index.ts +1 -0
  9. package/api/WMS/Controllers/VarConfigDescriptionController/Add.ts +21 -0
  10. package/api/WMS/Controllers/VarConfigDescriptionController/ListByFormId.ts +21 -0
  11. package/api/WMS/Controllers/VarConfigPossibilityController/ExecuteQuery.ts +36 -0
  12. package/api/WMS/Controllers/VarConfigPossibilityController/index.ts +1 -0
  13. package/api/WMS/Controllers/VarController/GetAll.ts +21 -0
  14. package/api/WMS/Controllers/VarController/index.ts +1 -0
  15. package/api/WMS/Controllers/VarDdaController/Create.ts +21 -0
  16. package/api/WMS/Controllers/VarDdaController/GetResultSetMetadataFromSql.ts +21 -0
  17. package/api/WMS/Controllers/VarDdaController/ValidateCopySql.ts +21 -0
  18. package/api/WMS/Controllers/VarDdaController/ValidateCreateSql.ts +21 -0
  19. package/api/WMS/Controllers/VarDdaController/ValidateDeleteSql.ts +21 -0
  20. package/api/WMS/Controllers/VarDdaController/ValidateFrmId.ts +21 -0
  21. package/api/WMS/Controllers/VarDdaController/ValidateSearchSql.ts +21 -0
  22. package/api/WMS/Controllers/VarDdaController/ValidateUpdateSql.ts +21 -0
  23. package/api/WMS/Controllers/VarDdaController/ValidateVarButtonVarName.ts +21 -0
  24. package/api/WMS/Controllers/VarDdaController/index.ts +9 -0
  25. package/api/WMS/Controllers/VarGridMasterController/QueryByID.ts +36 -0
  26. package/api/WMS/Controllers/VarGridMasterController/Update.ts +21 -0
  27. package/api/WMS/Controllers/VarGridMasterController/index.ts +2 -0
  28. package/api/WMS/Controllers/VarProfileMasterController/QueryByID.ts +36 -0
  29. package/api/WMS/Controllers/VarProfileMasterController/index.ts +1 -0
  30. package/api/WMS/Controllers/VarVariableController/Delete.ts +21 -0
  31. package/api/WMS/Controllers/VarVariableController/index.ts +1 -0
  32. package/api/WMS/Controllers/WarehouseController/ListVO.ts +45 -0
  33. package/api/WMS/Controllers/WorkstationController/List.ts +45 -0
  34. package/api/WMS/Controllers/WorkstationController/index.ts +1 -0
  35. package/api/WMS/index.ts +2 -0
  36. package/api/WMS/models.ts +2113 -0
  37. package/api/api.ts +1 -0
  38. package/api/def.ts +1 -0
  39. package/api/index.ts +2 -0
  40. package/asset/ant.less +678 -0
  41. package/asset/element-plus.css +112 -0
  42. package/asset/flag/cs_CZ.png +0 -0
  43. package/asset/flag/en.png +0 -0
  44. package/asset/flag/es_ES.png +0 -0
  45. package/asset/flag/fr_FR.png +0 -0
  46. package/asset/flag/km_KH.png +0 -0
  47. package/asset/flag/ko_KR.png +0 -0
  48. package/asset/flag/vi_VN.png +0 -0
  49. package/asset/flag/zh_CN.png +0 -0
  50. package/asset/images/warehouse.000000.svg +9 -0
  51. package/asset/images/warehouse.1890ff.svg +9 -0
  52. package/asset/index.less +347 -0
  53. package/asset/jeecg.less +382 -0
  54. package/asset/var.less +3 -0
  55. package/asset/vxe.less +51 -0
  56. package/bin/bin.mjs +57 -0
  57. package/bin/postinstall.mjs +69 -0
  58. package/component/KgAppSelect/KgAppSelect.event.ts +52 -0
  59. package/component/KgAppSelect/KgAppSelect.hooks.ts +50 -0
  60. package/component/KgAppSelect/KgAppSelect.less +30 -0
  61. package/component/KgAppSelect/KgAppSelect.store.ts +162 -0
  62. package/component/KgAppSelect/KgAppSelect.tsx +60 -0
  63. package/component/KgAppSelect/index.ts +4 -0
  64. package/component/KgButton/KgButton.Copy.tsx +143 -0
  65. package/component/KgButton/KgButton.Create.tsx +208 -0
  66. package/component/KgButton/KgButton.Delete.tsx +156 -0
  67. package/component/KgButton/KgButton.Export.tsx +294 -0
  68. package/component/KgButton/KgButton.Import.tsx +247 -0
  69. package/component/KgButton/KgButton.ImportTemplate.tsx +214 -0
  70. package/component/KgButton/KgButton.Item.tsx +128 -0
  71. package/component/KgButton/KgButton.Other.tsx +292 -0
  72. package/component/KgButton/KgButton.Search.tsx +146 -0
  73. package/component/KgButton/KgButton.Update.tsx +210 -0
  74. package/component/KgButton/KgButton.event.ts +157 -0
  75. package/component/KgButton/KgButton.hooks.ts +117 -0
  76. package/component/KgButton/KgButton.less +187 -0
  77. package/component/KgButton/KgButton.model.tsx +39 -0
  78. package/component/KgButton/KgButton.store.ts +333 -0
  79. package/component/KgButton/KgButton.tsx +221 -0
  80. package/component/KgCanvas/KgCanvas.ContextMenu.tsx +181 -0
  81. package/component/KgCanvas/KgCanvas.ToolbarButton.Fullscreen.tsx +80 -0
  82. package/component/KgCanvas/KgCanvas.ToolbarButton.Mode.tsx +68 -0
  83. package/component/KgCanvas/KgCanvas.ToolbarButton.OverviewScale.tsx +66 -0
  84. package/component/KgCanvas/KgCanvas.Tooltip.tsx +118 -0
  85. package/component/KgCanvas/KgCanvas.css +128 -0
  86. package/component/KgCanvas/KgCanvas.event.ts +380 -0
  87. package/component/KgCanvas/KgCanvas.hooks.ts +181 -0
  88. package/component/KgCanvas/KgCanvas.model.ts +31 -0
  89. package/component/KgCanvas/KgCanvas.service.tsx +116 -0
  90. package/component/KgCanvas/KgCanvas.store.ts +68 -0
  91. package/component/KgCanvas/KgCanvas.tsx +632 -0
  92. package/component/KgCanvas/index.ts +5 -0
  93. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.AreaSelect.tsx +107 -0
  94. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Canvas.service.tsx +3053 -0
  95. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Canvas.tsx +606 -0
  96. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Legend.tsx +71 -0
  97. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Offline.tsx +50 -0
  98. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Setting.tsx +169 -0
  99. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Tab.Log.tsx +30 -0
  100. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Tab.Rgv.tsx +672 -0
  101. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.css +510 -0
  102. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.hooks.ts +78 -0
  103. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.model.ts +161 -0
  104. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.store.tsx +744 -0
  105. package/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.tsx +171 -0
  106. package/component/KgCircularShuttleMonitor/index.ts +4 -0
  107. package/component/KgForm/KgForm.event.ts +328 -0
  108. package/component/KgForm/KgForm.hooks.ts +158 -0
  109. package/component/KgForm/KgForm.less +0 -0
  110. package/component/KgForm/KgForm.store.ts +36 -0
  111. package/component/KgForm/KgForm.tsx +61 -0
  112. package/component/KgForm/index.ts +10 -0
  113. package/component/KgForm.Item/KgForm.Item.Addon.DynamicQueryOperator.tsx +88 -0
  114. package/component/KgForm.Item/KgForm.Item.Addon.Lookup.Modal.tsx +191 -0
  115. package/component/KgForm.Item/KgForm.Item.Addon.Lookup.tsx +76 -0
  116. package/component/KgForm.Item/KgForm.Item.Checkbox.tsx +61 -0
  117. package/component/KgForm.Item/KgForm.Item.CheckboxGroup.tsx +176 -0
  118. package/component/KgForm.Item/KgForm.Item.Date.tsx +88 -0
  119. package/component/KgForm.Item/KgForm.Item.DateRange.tsx +110 -0
  120. package/component/KgForm.Item/KgForm.Item.Image.tsx +35 -0
  121. package/component/KgForm.Item/KgForm.Item.Input.tsx +72 -0
  122. package/component/KgForm.Item/KgForm.Item.InputNumber.tsx +68 -0
  123. package/component/KgForm.Item/KgForm.Item.InputPassword.tsx +72 -0
  124. package/component/KgForm.Item/KgForm.Item.Link.tsx +37 -0
  125. package/component/KgForm.Item/KgForm.Item.RadioGroup.tsx +91 -0
  126. package/component/KgForm.Item/KgForm.Item.Select.service.tsx +317 -0
  127. package/component/KgForm.Item/KgForm.Item.Select.tsx +236 -0
  128. package/component/KgForm.Item/KgForm.Item.Switch.tsx +49 -0
  129. package/component/KgForm.Item/KgForm.Item.TextArea.tsx +99 -0
  130. package/component/KgForm.Item/KgForm.Item.less +476 -0
  131. package/component/KgForm.Item/KgForm.Item.model.ts +129 -0
  132. package/component/KgForm.Item/KgForm.Item.service.tsx +479 -0
  133. package/component/KgForm.Item/KgForm.Item.tsx +642 -0
  134. package/component/KgImage/KgImage.less +12 -0
  135. package/component/KgImage/KgImage.tsx +73 -0
  136. package/component/KgLayoutHeader/KgLayoutHeader.Locale.tsx +118 -0
  137. package/component/KgLayoutHeader/KgLayoutHeader.hooks.ts +31 -0
  138. package/component/KgLayoutHeader/KgLayoutHeader.less +14 -0
  139. package/component/KgLayoutHeader/index.ts +3 -0
  140. package/component/KgModal/KgModal.css +234 -0
  141. package/component/KgModal/KgModal.model.ts +9 -0
  142. package/component/KgModal/KgModal.service.ts +560 -0
  143. package/component/KgModal/KgModal.tsx +207 -0
  144. package/component/KgModal/KgModalHeaderButtons.tsx +130 -0
  145. package/component/KgModal02/KgModal02.css +11 -0
  146. package/component/KgModal02/KgModal02.model.ts +1 -0
  147. package/component/KgModal02/KgModal02.tsx +93 -0
  148. package/component/KgProgressA/KgProgressA.less +35 -0
  149. package/component/KgProgressA/KgProgressA.tsx +90 -0
  150. package/component/KgResizable/KgResizable.less +114 -0
  151. package/component/KgResizable/KgResizable.service.tsx +41 -0
  152. package/component/KgResizable/KgResizable.tsx +239 -0
  153. package/component/KgSearch/KgSearch.event.ts +78 -0
  154. package/component/KgSearch/KgSearch.hooks.ts +160 -0
  155. package/component/KgSearch/KgSearch.less +251 -0
  156. package/component/KgSearch/KgSearch.service.tsx +236 -0
  157. package/component/KgSearch/KgSearch.store.ts +609 -0
  158. package/component/KgSearch/KgSearch.tsx +506 -0
  159. package/component/KgSearch/index.ts +4 -0
  160. package/component/KgSimulator/KgSimulator.Canvas.Title.tsx +71 -0
  161. package/component/KgSimulator/KgSimulator.Canvas.service.tsx +3403 -0
  162. package/component/KgSimulator/KgSimulator.Canvas.tsx +1105 -0
  163. package/component/KgSimulator/KgSimulator.Menu.Scene.Create.CircularConveyor.tsx +258 -0
  164. package/component/KgSimulator/KgSimulator.Menu.Scene.Open.CircularConveyor.tsx +214 -0
  165. package/component/KgSimulator/KgSimulator.Menu.tsx +446 -0
  166. package/component/KgSimulator/KgSimulator.Panel.Prefab.tsx +87 -0
  167. package/component/KgSimulator/KgSimulator.Panel.Property.tsx +1120 -0
  168. package/component/KgSimulator/KgSimulator.Panel.Scene.tsx +819 -0
  169. package/component/KgSimulator/KgSimulator.Panel.tsx +149 -0
  170. package/component/KgSimulator/KgSimulator.Prefab.tsx +142 -0
  171. package/component/KgSimulator/KgSimulator.ToolbarButton.Prefab.tsx +44 -0
  172. package/component/KgSimulator/KgSimulator.ToolbarButton.Property.tsx +40 -0
  173. package/component/KgSimulator/KgSimulator.ToolbarButton.Scene.tsx +40 -0
  174. package/component/KgSimulator/KgSimulator.ToolbarButton.tsx +130 -0
  175. package/component/KgSimulator/KgSimulator.css +610 -0
  176. package/component/KgSimulator/KgSimulator.event.ts +197 -0
  177. package/component/KgSimulator/KgSimulator.hooks.ts +237 -0
  178. package/component/KgSimulator/KgSimulator.icons.tsx +148 -0
  179. package/component/KgSimulator/KgSimulator.model.ts +2629 -0
  180. package/component/KgSimulator/KgSimulator.store.tsx +1192 -0
  181. package/component/KgSimulator/KgSimulator.tsx +235 -0
  182. package/component/KgSimulator/KgSimulator.utils.ts +30 -0
  183. package/component/KgSimulator/index.ts +4 -0
  184. package/component/KgSubmit/KgSubmit.event.ts +272 -0
  185. package/component/KgSubmit/KgSubmit.hooks.ts +662 -0
  186. package/component/KgSubmit/KgSubmit.less +174 -0
  187. package/component/KgSubmit/KgSubmit.model.ts +82 -0
  188. package/component/KgSubmit/KgSubmit.service.tsx +368 -0
  189. package/component/KgSubmit/KgSubmit.store.ts +568 -0
  190. package/component/KgSubmit/KgSubmit.tsx +1132 -0
  191. package/component/KgSubmit/index.ts +5 -0
  192. package/component/KgTable/KgTable.BodyCell.tsx +475 -0
  193. package/component/KgTable/KgTable.HeadCell.tsx +333 -0
  194. package/component/KgTable/KgTable.Info.tsx +133 -0
  195. package/component/KgTable/KgTable.Setting.VarGridMaster.SaveAs.tsx +63 -0
  196. package/component/KgTable/KgTable.Setting.service.tsx +285 -0
  197. package/component/KgTable/KgTable.Setting.tsx +377 -0
  198. package/component/KgTable/KgTable.event.ts +206 -0
  199. package/component/KgTable/KgTable.hooks.ts +235 -0
  200. package/component/KgTable/KgTable.less +912 -0
  201. package/component/KgTable/KgTable.model.ts +73 -0
  202. package/component/KgTable/KgTable.service.tsx +781 -0
  203. package/component/KgTable/KgTable.store.ts +390 -0
  204. package/component/KgTable/KgTable.tsx +1105 -0
  205. package/component/KgTable/index.ts +5 -0
  206. package/component/KgTable02/KgTable02.BodyCell.tsx +407 -0
  207. package/component/KgTable02/KgTable02.css +199 -0
  208. package/component/KgTable02/KgTable02.event.ts +224 -0
  209. package/component/KgTable02/KgTable02.hooks.ts +111 -0
  210. package/component/KgTable02/KgTable02.store.ts +186 -0
  211. package/component/KgTable02/KgTable02.tsx +865 -0
  212. package/component/KgTable02/index.ts +5 -0
  213. package/component/KgVar/KgVar.Factory.tsx +146 -0
  214. package/component/KgVar/KgVar.css +125 -0
  215. package/component/KgVar/KgVar.event.ts +122 -0
  216. package/component/KgVar/KgVar.hooks.ts +543 -0
  217. package/component/KgVar/KgVar.model.ts +86 -0
  218. package/component/KgVar/KgVar.store.ts +2966 -0
  219. package/component/KgVar/KgVar.tsx +276 -0
  220. package/component/KgVar/index.ts +6 -0
  221. package/component/KgVarConfig/KgVarConfig.hooks.ts +19 -0
  222. package/component/KgVarConfig/KgVarConfig.less +499 -0
  223. package/component/KgVarConfig/KgVarConfig.model.ts +56 -0
  224. package/component/KgVarConfig/KgVarConfig.store.ts +29 -0
  225. package/component/KgVarConfig/KgVarConfig.tsx +139 -0
  226. package/component/KgVarConfig/components/KgVarConfig.SelectFormIdModal.tsx +138 -0
  227. package/component/KgVarConfig/components/KgVarConfigModal.tsx +228 -0
  228. package/component/KgVarConfig/components/button/KgVarConfig.Modal.Button.VarButton.tsx +647 -0
  229. package/component/KgVarConfig/components/button/KgVarConfig.Modal.Button.VarButtonConfig.tsx +64 -0
  230. package/component/KgVarConfig/components/button/KgVarConfig.Modal.Button.tsx +44 -0
  231. package/component/KgVarConfig/components/child/KgVarConfig.Modal.Child.tsx +265 -0
  232. package/component/KgVarConfig/components/search/KgVarConfig.Modal.Search.VarProfileConfig.tsx +64 -0
  233. package/component/KgVarConfig/components/search/KgVarConfig.Modal.Search.VarProfileMaster.service.tsx +408 -0
  234. package/component/KgVarConfig/components/search/KgVarConfig.Modal.Search.VarProfileMaster.tsx +399 -0
  235. package/component/KgVarConfig/components/search/KgVarConfig.Modal.Search.tsx +44 -0
  236. package/component/KgVarConfig/components/submit/KgVarConfig.Modal.Submit.VarSubmitConfig.tsx +336 -0
  237. package/component/KgVarConfig/components/submit/KgVarConfig.Modal.Submit.VarSubmitDetail.tsx +165 -0
  238. package/component/KgVarConfig/components/submit/KgVarConfig.Modal.Submit.tsx +44 -0
  239. package/component/KgVarConfig/components/table/KgVarConfig.Modal.Table.VarGridConfig.tsx +209 -0
  240. package/component/KgVarConfig/components/table/KgVarConfig.Modal.Table.VarGridMaster.service.tsx +567 -0
  241. package/component/KgVarConfig/components/table/KgVarConfig.Modal.Table.VarGridMaster.tsx +398 -0
  242. package/component/KgVarConfig/components/table/KgVarConfig.Modal.Table.tsx +44 -0
  243. package/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigControl.tsx +162 -0
  244. package/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigDescription.tsx +119 -0
  245. package/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigInput.tsx +322 -0
  246. package/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigLookup.tsx +222 -0
  247. package/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigPossibility.tsx +194 -0
  248. package/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigTip.tsx +134 -0
  249. package/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarVariable.tsx +129 -0
  250. package/component/KgVarConfig/index.ts +6 -0
  251. package/component/KgWarehouse/KgWarehouse.event.ts +63 -0
  252. package/component/KgWarehouse/KgWarehouse.guard.ts +77 -0
  253. package/component/KgWarehouse/KgWarehouse.hooks.ts +92 -0
  254. package/component/KgWarehouse/KgWarehouse.less +78 -0
  255. package/component/KgWarehouse/KgWarehouse.store.ts +135 -0
  256. package/component/KgWarehouse/KgWarehouse.tsx +321 -0
  257. package/component/KgWarehouse/index.ts +5 -0
  258. package/component/KgWorkStation/KgWorkStation.css +8 -0
  259. package/component/KgWorkStation/KgWorkStation.event.ts +54 -0
  260. package/component/KgWorkStation/KgWorkStation.hooks.ts +59 -0
  261. package/component/KgWorkStation/KgWorkStation.store.ts +144 -0
  262. package/component/KgWorkStation/KgWorkStation.tsx +254 -0
  263. package/component/KgWorkStation/index.ts +3 -0
  264. package/component/KgYesOrNo/KgYesOrNo.less +3 -0
  265. package/component/KgYesOrNo/KgYesOrNo.tsx +50 -0
  266. package/component/index.ts +23 -0
  267. package/config/config.hooks.ts +32 -0
  268. package/config/config.store.ts +705 -0
  269. package/config/index.ts +347 -0
  270. package/i18n/cs_CZ.ts +1 -0
  271. package/i18n/en.ts +236 -0
  272. package/i18n/es_ES.ts +1 -0
  273. package/i18n/fr_FR.ts +1 -0
  274. package/i18n/i18n.setup.ts +61 -0
  275. package/i18n/index.ts +23 -0
  276. package/i18n/km_KH.ts +1 -0
  277. package/i18n/ko_KR.ts +1 -0
  278. package/i18n/vi_VN.ts +1 -0
  279. package/i18n/zh_CN.ts +237 -0
  280. package/index.ts +15 -0
  281. package/model/index.ts +1695 -0
  282. package/package.json +10 -64
  283. package/page/KgPageCircularShuttleMonitor/KgPageCircularShuttleMonitor.tsx +13 -0
  284. package/page/KgPageDda/KgPageDda.css +0 -0
  285. package/page/KgPageDda/KgPageDda.tsx +140 -0
  286. package/page/KgPageDda/components/KgPageDda.Create.Basic.SqlModal.tsx +65 -0
  287. package/page/KgPageDda/components/KgPageDda.Create.Basic.tsx +219 -0
  288. package/page/KgPageDda/components/KgPageDda.Create.Button.tsx +427 -0
  289. package/page/KgPageDda/components/KgPageDda.Create.Menu.tsx +148 -0
  290. package/page/KgPageDda/components/KgPageDda.Create.Search.tsx +371 -0
  291. package/page/KgPageDda/components/KgPageDda.Create.Submit.tsx +362 -0
  292. package/page/KgPageDda/components/KgPageDda.Create.Table.tsx +372 -0
  293. package/page/KgPageDda/components/KgPageDda.Create.less +362 -0
  294. package/page/KgPageDda/components/KgPageDda.Create.store.ts +437 -0
  295. package/page/KgPageDda/components/KgPageDda.Create.tsx +330 -0
  296. package/page/KgPageDda/index.ts +4 -0
  297. package/page/KgPageSqlClient/KgPageSqlClient.tsx +14 -0
  298. package/page/KgPageSqlClient/components/KgSqlClient.Editor.tsx +84 -0
  299. package/page/KgPageSqlClient/components/KgSqlClient.ResultTab.tsx +145 -0
  300. package/page/KgPageSqlClient/components/KgSqlClient.Toolbar.Top.tsx +132 -0
  301. package/page/KgPageSqlClient/components/KgSqlClient.css +171 -0
  302. package/page/KgPageSqlClient/components/KgSqlClient.tsx +110 -0
  303. package/page/index.ts +55 -0
  304. package/project/build/config/themeConfig.ts +67 -0
  305. package/project/build/generate/generateModifyVars.ts +40 -0
  306. package/project/src/api/sys/menu.ts +37 -0
  307. package/project/src/api/sys/model/menuModel.ts +17 -0
  308. package/project/src/api/sys/model/userModel.ts +58 -0
  309. package/project/src/components/Application/src/useAppContext.ts +17 -0
  310. package/project/src/components/index.ts +3 -0
  311. package/project/src/enums/CompTypeEnum.ts +32 -0
  312. package/project/src/enums/DateTypeEnum.ts +8 -0
  313. package/project/src/enums/appEnum.ts +58 -0
  314. package/project/src/enums/breakpointEnum.ts +28 -0
  315. package/project/src/enums/cacheEnum.ts +39 -0
  316. package/project/src/enums/exceptionEnum.ts +27 -0
  317. package/project/src/enums/httpEnum.ts +50 -0
  318. package/project/src/enums/jeecgEnum.ts +23 -0
  319. package/project/src/enums/menuEnum.ts +50 -0
  320. package/project/src/enums/pageEnum.ts +19 -0
  321. package/project/src/enums/roleEnum.ts +7 -0
  322. package/project/src/enums/sizeEnum.ts +27 -0
  323. package/project/src/hooks/component/useFormItem.ts +44 -0
  324. package/project/src/hooks/component/usePageContext.ts +18 -0
  325. package/project/src/hooks/core/onMountedOrActivated.ts +18 -0
  326. package/project/src/hooks/core/useAttrs.ts +41 -0
  327. package/project/src/hooks/core/useContext.ts +30 -0
  328. package/project/src/hooks/core/useRefs.ts +16 -0
  329. package/project/src/hooks/core/useTimeout.ts +45 -0
  330. package/project/src/hooks/event/useBreakpoint.ts +89 -0
  331. package/project/src/hooks/event/useEventListener.ts +52 -0
  332. package/project/src/hooks/event/useIntersectionObserver.ts +42 -0
  333. package/project/src/hooks/event/useScrollTo.ts +59 -0
  334. package/project/src/hooks/event/useWindowSizeFn.ts +36 -0
  335. package/project/src/hooks/index.ts +26 -0
  336. package/project/src/hooks/jeecg/useAdaptiveWidth.ts +82 -0
  337. package/project/src/hooks/setting/index.ts +27 -0
  338. package/project/src/hooks/web/useAppInject.ts +10 -0
  339. package/project/src/hooks/web/useContentHeight.ts +175 -0
  340. package/project/src/hooks/web/useCopyToClipboard.ts +70 -0
  341. package/project/src/hooks/web/useDesign.ts +10 -0
  342. package/project/src/hooks/web/usePage.ts +87 -0
  343. package/project/src/hooks/web/usePagination.ts +31 -0
  344. package/project/src/hooks/web/useWebSocket.ts +95 -0
  345. package/project/src/layouts/default/content/useContentContext.ts +17 -0
  346. package/project/src/layouts/default/content/useContentViewHeight.ts +42 -0
  347. package/project/src/locales/helper.ts +36 -0
  348. package/project/src/locales/setupI18n.ts +43 -0
  349. package/project/src/locales/useLocale.ts +77 -0
  350. package/project/src/router/constant2.ts +5 -0
  351. package/project/src/router/types.ts +73 -0
  352. package/project/src/settings/componentSetting.ts +88 -0
  353. package/project/src/settings/designSetting.ts +14 -0
  354. package/project/src/settings/encryptionSetting.ts +11 -0
  355. package/project/src/settings/projectSetting.ts +194 -0
  356. package/project/src/store/modules/locale.ts +49 -0
  357. package/project/src/utils/auth/index.ts +42 -0
  358. package/project/src/utils/bem.ts +45 -0
  359. package/project/src/utils/cache/index.ts +31 -0
  360. package/project/src/utils/cache/memory.ts +99 -0
  361. package/project/src/utils/cache/persistent.ts +132 -0
  362. package/project/src/utils/cache/storageCache.ts +102 -0
  363. package/project/src/utils/cipher.ts +54 -0
  364. package/project/src/utils/color.ts +93 -0
  365. package/project/src/utils/common/compUtils.ts +292 -0
  366. package/project/src/utils/common/functionUtils.ts +14 -0
  367. package/project/src/utils/dateUtil.ts +14 -0
  368. package/project/src/utils/domUtils.ts +158 -0
  369. package/project/src/utils/encryption/signMd5Utils.ts +122 -0
  370. package/project/src/utils/env.ts +40 -0
  371. package/project/src/utils/event/index.ts +39 -0
  372. package/project/src/utils/factory/createAsyncComponent.tsx +50 -0
  373. package/project/src/utils/file/base64Conver.ts +15 -0
  374. package/project/src/utils/file/download.ts +37 -0
  375. package/project/src/utils/helper/treeHelper.ts +145 -0
  376. package/project/src/utils/helper/tsxHelper.ts +35 -0
  377. package/project/src/utils/index.index.ts +158 -0
  378. package/project/src/utils/is.ts +85 -0
  379. package/project/src/utils/mitt.ts +101 -0
  380. package/project/src/utils/propTypes.ts +34 -0
  381. package/project/src/utils/props.ts +139 -0
  382. package/project/src/utils/uuid.ts +29 -0
  383. package/project/types/axios.ts +57 -0
  384. package/project/types/config.ts +180 -0
  385. package/project/types/global.d.ts +191 -0
  386. package/project/types/store.ts +60 -0
  387. package/project/types/utils.ts +5 -0
  388. package/service/http-client.ts +257 -0
  389. package/type/env.d.ts +7 -0
  390. package/type/index.d.ts +1 -0
  391. package/util/ant-design-vue.ts +146 -0
  392. package/util/event.util.ts +24 -0
  393. package/util/kg-auth.util.ts +16 -0
  394. package/util/kg-route.util.ts +25 -0
  395. package/util/kg.util.tsx +2997 -0
  396. package/util/tsx.helper.tsx +45 -0
  397. package/CHANGELOG.md +0 -470
  398. package/README.md +0 -10
  399. package/dist/aim-outlined.8d38a0f9.mjs +0 -8
  400. package/dist/align-left-outlined.579b01c6.mjs +0 -8
  401. package/dist/audit-outlined.4555f723.mjs +0 -8
  402. package/dist/bubble-loading.cd2fe007.mjs +0 -8
  403. package/dist/bulb-outlined.a5bf22d8.mjs +0 -8
  404. package/dist/card-text-outline.6e053122.mjs +0 -8
  405. package/dist/caret-down-outlined.c0564a3f.mjs +0 -8
  406. package/dist/caret-left-outlined.35b1d7d1.mjs +0 -8
  407. package/dist/caret-right-filled.dbbda237.mjs +0 -8
  408. package/dist/caret-right-outlined-Btgsw6a_.0434903b.mjs +0 -8
  409. package/dist/caret-right-outlined.12fe6699.mjs +0 -8
  410. package/dist/caret-up-outlined.81b559ad.mjs +0 -8
  411. package/dist/check-box-outline-blank.d01a2055.mjs +0 -8
  412. package/dist/check-circle-outlined.b219949f.mjs +0 -8
  413. package/dist/check-outlined.59c42074.mjs +0 -8
  414. package/dist/check-square-outlined.233589d8.mjs +0 -8
  415. package/dist/checkbox-indeterminate.e5386a53.mjs +0 -8
  416. package/dist/clock-circle-outline.b9d0b3dc.mjs +0 -8
  417. package/dist/close-circle-outlined.85f75690.mjs +0 -8
  418. package/dist/close-outlined-DMcSQWxQ.5c3bee6f.mjs +0 -8
  419. package/dist/close-outlined.5757472a.mjs +0 -8
  420. package/dist/collapse-all-rounded.26ee73fc.mjs +0 -8
  421. package/dist/control-outlined.d66ac4d2.mjs +0 -8
  422. package/dist/copy-filled.a3dcd299.mjs +0 -8
  423. package/dist/copy-outlined.6a695d8a.mjs +0 -8
  424. package/dist/delete-outlined.20afb717.mjs +0 -8
  425. package/dist/delete-twotone.1d40696a.mjs +0 -8
  426. package/dist/double-right-outlined.f057a6b2.mjs +0 -8
  427. package/dist/down-circle-outlined.8ba93393.mjs +0 -8
  428. package/dist/download-outlined.e78b5364.mjs +0 -8
  429. package/dist/edit-outlined.0aae2217.mjs +0 -8
  430. package/dist/edit-twotone.67c952fa.mjs +0 -8
  431. package/dist/email-resend-outline.780506de.mjs +0 -8
  432. package/dist/exception-outlined.8c0003a2.mjs +0 -8
  433. package/dist/exclamation-circle-outlined-DZrXCnvM.d94561db.mjs +0 -8
  434. package/dist/expand-all-rounded.e01e6cb9.mjs +0 -8
  435. package/dist/eye-invisible-outlined.5f8d6151.mjs +0 -8
  436. package/dist/eye-outlined.b25b4d28.mjs +0 -8
  437. package/dist/file-text-outline.2fbccab6.mjs +0 -8
  438. package/dist/fit-screen-outline.7341560f.mjs +0 -8
  439. package/dist/fullscreen-exit-outlined-X1iYkFc4.a1640595.mjs +0 -8
  440. package/dist/fullscreen-exit-outlined.b77fa876.mjs +0 -8
  441. package/dist/fullscreen-outlined-DDBrsRcy.b9f9d4a1.mjs +0 -8
  442. package/dist/fullscreen-outlined.cd572ef8.mjs +0 -8
  443. package/dist/holder-outlined.9e698750.mjs +0 -8
  444. package/dist/index.css +0 -1
  445. package/dist/info-circle-outlined.7ddbd554.mjs +0 -8
  446. package/dist/kengic-vue.js +0 -224291
  447. package/dist/key-return-thin.ce6f074c.mjs +0 -8
  448. package/dist/loading-outlined.13a15197.mjs +0 -8
  449. package/dist/more-outlined.8e1202ac.mjs +0 -8
  450. package/dist/one-to-one-outlined.ac265beb.mjs +0 -8
  451. package/dist/palette-swatch-variant.f7258843.mjs +0 -8
  452. package/dist/partition-outlined.1bcf4f37.mjs +0 -8
  453. package/dist/pause-circle-outlined.cd534f5f.mjs +0 -8
  454. package/dist/pause-outlined.fca0d0f9.mjs +0 -8
  455. package/dist/pause-rounded.1ed7cc39.mjs +0 -8
  456. package/dist/play-arrow-rounded.90fc4173.mjs +0 -8
  457. package/dist/plus-outlined.bdaa6481.mjs +0 -8
  458. package/dist/printer-outlined.a8d0d92b.mjs +0 -8
  459. package/dist/profile-outlined.1059fb0d.mjs +0 -8
  460. package/dist/project/build/config/themeConfig.ts +0 -67
  461. package/dist/project/build/generate/generateModifyVars.ts +0 -39
  462. package/dist/project/index.ts +0 -1
  463. package/dist/project/types/global.d.ts +0 -184
  464. package/dist/release-gate-check.8c1ba629.mjs +0 -8
  465. package/dist/reload-outlined.d320578b.mjs +0 -8
  466. package/dist/retweet-outlined.bfa9b123.mjs +0 -8
  467. package/dist/save-as-outline-rounded.c65d61b2.mjs +0 -8
  468. package/dist/save-outline-rounded.c9c3f880.mjs +0 -8
  469. package/dist/search-outlined-Od1M_oxf.71fb0c01.mjs +0 -8
  470. package/dist/search-outlined.ba5c5a3f.mjs +0 -8
  471. package/dist/setting-outlined.a3caf743.mjs +0 -8
  472. package/dist/src/api/WMS/Controllers/DescriptionController/List.d.ts +0 -51
  473. package/dist/src/api/WMS/Controllers/DescriptionController/ListByCodeNamesAndCodeValues.d.ts +0 -16
  474. package/dist/src/api/WMS/Controllers/DescriptionController/index.d.ts +0 -2
  475. package/dist/src/api/WMS/Controllers/SqlClientController/Execute.d.ts +0 -16
  476. package/dist/src/api/WMS/Controllers/SqlClientController/ExecutePage.d.ts +0 -16
  477. package/dist/src/api/WMS/Controllers/SqlClientController/index.d.ts +0 -2
  478. package/dist/src/api/WMS/Controllers/SysPermissionController/List.d.ts +0 -73
  479. package/dist/src/api/WMS/Controllers/SysPermissionController/index.d.ts +0 -1
  480. package/dist/src/api/WMS/Controllers/VarConfigDescriptionController/Add.d.ts +0 -16
  481. package/dist/src/api/WMS/Controllers/VarConfigDescriptionController/ListByFormId.d.ts +0 -16
  482. package/dist/src/api/WMS/Controllers/VarConfigPossibilityController/ExecuteQuery.d.ts +0 -18
  483. package/dist/src/api/WMS/Controllers/VarConfigPossibilityController/index.d.ts +0 -1
  484. package/dist/src/api/WMS/Controllers/VarController/GetAll.d.ts +0 -16
  485. package/dist/src/api/WMS/Controllers/VarController/index.d.ts +0 -1
  486. package/dist/src/api/WMS/Controllers/VarDdaController/Create.d.ts +0 -16
  487. package/dist/src/api/WMS/Controllers/VarDdaController/GetResultSetMetadataFromSql.d.ts +0 -16
  488. package/dist/src/api/WMS/Controllers/VarDdaController/ValidateCopySql.d.ts +0 -16
  489. package/dist/src/api/WMS/Controllers/VarDdaController/ValidateCreateSql.d.ts +0 -16
  490. package/dist/src/api/WMS/Controllers/VarDdaController/ValidateDeleteSql.d.ts +0 -16
  491. package/dist/src/api/WMS/Controllers/VarDdaController/ValidateFrmId.d.ts +0 -16
  492. package/dist/src/api/WMS/Controllers/VarDdaController/ValidateSearchSql.d.ts +0 -16
  493. package/dist/src/api/WMS/Controllers/VarDdaController/ValidateUpdateSql.d.ts +0 -16
  494. package/dist/src/api/WMS/Controllers/VarDdaController/ValidateVarButtonVarName.d.ts +0 -16
  495. package/dist/src/api/WMS/Controllers/VarDdaController/index.d.ts +0 -9
  496. package/dist/src/api/WMS/Controllers/VarGridMasterController/QueryByID.d.ts +0 -19
  497. package/dist/src/api/WMS/Controllers/VarGridMasterController/Update.d.ts +0 -16
  498. package/dist/src/api/WMS/Controllers/VarGridMasterController/index.d.ts +0 -2
  499. package/dist/src/api/WMS/Controllers/VarProfileMasterController/QueryByID.d.ts +0 -19
  500. package/dist/src/api/WMS/Controllers/VarProfileMasterController/index.d.ts +0 -1
  501. package/dist/src/api/WMS/Controllers/VarVariableController/Delete.d.ts +0 -16
  502. package/dist/src/api/WMS/Controllers/VarVariableController/index.d.ts +0 -1
  503. package/dist/src/api/WMS/Controllers/WarehouseController/ListVO.d.ts +0 -25
  504. package/dist/src/api/WMS/Controllers/WorkstationController/List.d.ts +0 -25
  505. package/dist/src/api/WMS/Controllers/WorkstationController/index.d.ts +0 -1
  506. package/dist/src/api/WMS/index.d.ts +0 -2
  507. package/dist/src/api/WMS/models.d.ts +0 -1128
  508. package/dist/src/api/api.d.ts +0 -1
  509. package/dist/src/api/def.d.ts +0 -1
  510. package/dist/src/api/index.d.ts +0 -2
  511. package/dist/src/component/KgAppSelect/KgAppSelect.d.ts +0 -46
  512. package/dist/src/component/KgAppSelect/KgAppSelect.event.d.ts +0 -31
  513. package/dist/src/component/KgAppSelect/KgAppSelect.hooks.d.ts +0 -18
  514. package/dist/src/component/KgAppSelect/KgAppSelect.store.d.ts +0 -33
  515. package/dist/src/component/KgAppSelect/index.d.ts +0 -3
  516. package/dist/src/component/KgButton/KgButton.Copy.d.ts +0 -40
  517. package/dist/src/component/KgButton/KgButton.Create.d.ts +0 -40
  518. package/dist/src/component/KgButton/KgButton.Delete.d.ts +0 -40
  519. package/dist/src/component/KgButton/KgButton.Export.d.ts +0 -40
  520. package/dist/src/component/KgButton/KgButton.Import.d.ts +0 -40
  521. package/dist/src/component/KgButton/KgButton.ImportTemplate.d.ts +0 -40
  522. package/dist/src/component/KgButton/KgButton.Item.d.ts +0 -39
  523. package/dist/src/component/KgButton/KgButton.Other.d.ts +0 -40
  524. package/dist/src/component/KgButton/KgButton.Search.d.ts +0 -40
  525. package/dist/src/component/KgButton/KgButton.Update.d.ts +0 -40
  526. package/dist/src/component/KgButton/KgButton.d.ts +0 -39
  527. package/dist/src/component/KgButton/KgButton.event.d.ts +0 -81
  528. package/dist/src/component/KgButton/KgButton.hooks.d.ts +0 -67
  529. package/dist/src/component/KgButton/KgButton.model.d.ts +0 -31
  530. package/dist/src/component/KgButton/KgButton.store.d.ts +0 -92
  531. package/dist/src/component/KgCanvas/KgCanvas.ContextMenu.d.ts +0 -100
  532. package/dist/src/component/KgCanvas/KgCanvas.ToolbarButton.Fullscreen.d.ts +0 -37
  533. package/dist/src/component/KgCanvas/KgCanvas.ToolbarButton.Mode.d.ts +0 -7
  534. package/dist/src/component/KgCanvas/KgCanvas.ToolbarButton.OverviewScale.d.ts +0 -37
  535. package/dist/src/component/KgCanvas/KgCanvas.Tooltip.d.ts +0 -27
  536. package/dist/src/component/KgCanvas/KgCanvas.d.ts +0 -232
  537. package/dist/src/component/KgCanvas/KgCanvas.event.d.ts +0 -216
  538. package/dist/src/component/KgCanvas/KgCanvas.hooks.d.ts +0 -100
  539. package/dist/src/component/KgCanvas/KgCanvas.model.d.ts +0 -27
  540. package/dist/src/component/KgCanvas/KgCanvas.service.d.ts +0 -17
  541. package/dist/src/component/KgCanvas/KgCanvas.store.d.ts +0 -9
  542. package/dist/src/component/KgCanvas/index.d.ts +0 -4
  543. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.AreaSelect.d.ts +0 -5
  544. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Canvas.d.ts +0 -5
  545. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Canvas.service.d.ts +0 -63
  546. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Legend.d.ts +0 -5
  547. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Offline.d.ts +0 -5
  548. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Setting.d.ts +0 -5
  549. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Tab.Log.d.ts +0 -5
  550. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.Tab.Rgv.d.ts +0 -33
  551. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.d.ts +0 -5
  552. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.hooks.d.ts +0 -29
  553. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.model.d.ts +0 -127
  554. package/dist/src/component/KgCircularShuttleMonitor/KgCircularShuttleMonitor.store.d.ts +0 -354
  555. package/dist/src/component/KgCircularShuttleMonitor/index.d.ts +0 -3
  556. package/dist/src/component/KgForm/KgForm.d.ts +0 -413
  557. package/dist/src/component/KgForm/KgForm.event.d.ts +0 -202
  558. package/dist/src/component/KgForm/KgForm.hooks.d.ts +0 -92
  559. package/dist/src/component/KgForm/KgForm.store.d.ts +0 -23
  560. package/dist/src/component/KgForm/index.d.ts +0 -4
  561. package/dist/src/component/KgForm.Item/KgForm.Item.Addon.DynamicQueryOperator.d.ts +0 -49
  562. package/dist/src/component/KgForm.Item/KgForm.Item.Addon.Lookup.Modal.d.ts +0 -16
  563. package/dist/src/component/KgForm.Item/KgForm.Item.Addon.Lookup.d.ts +0 -31
  564. package/dist/src/component/KgForm.Item/KgForm.Item.Checkbox.d.ts +0 -98
  565. package/dist/src/component/KgForm.Item/KgForm.Item.CheckboxGroup.d.ts +0 -95
  566. package/dist/src/component/KgForm.Item/KgForm.Item.Date.d.ts +0 -95
  567. package/dist/src/component/KgForm.Item/KgForm.Item.DateRange.d.ts +0 -95
  568. package/dist/src/component/KgForm.Item/KgForm.Item.Image.d.ts +0 -90
  569. package/dist/src/component/KgForm.Item/KgForm.Item.Input.d.ts +0 -94
  570. package/dist/src/component/KgForm.Item/KgForm.Item.InputNumber.d.ts +0 -94
  571. package/dist/src/component/KgForm.Item/KgForm.Item.InputPassword.d.ts +0 -94
  572. package/dist/src/component/KgForm.Item/KgForm.Item.Link.d.ts +0 -93
  573. package/dist/src/component/KgForm.Item/KgForm.Item.RadioGroup.d.ts +0 -96
  574. package/dist/src/component/KgForm.Item/KgForm.Item.Select.d.ts +0 -95
  575. package/dist/src/component/KgForm.Item/KgForm.Item.Select.service.d.ts +0 -28
  576. package/dist/src/component/KgForm.Item/KgForm.Item.Switch.d.ts +0 -94
  577. package/dist/src/component/KgForm.Item/KgForm.Item.TextArea.d.ts +0 -94
  578. package/dist/src/component/KgForm.Item/KgForm.Item.d.ts +0 -95
  579. package/dist/src/component/KgForm.Item/KgForm.Item.model.d.ts +0 -111
  580. package/dist/src/component/KgForm.Item/KgForm.Item.service.d.ts +0 -17
  581. package/dist/src/component/KgImage/KgImage.d.ts +0 -100
  582. package/dist/src/component/KgLayoutHeader/KgLayoutHeader.Locale.d.ts +0 -38
  583. package/dist/src/component/KgLayoutHeader/KgLayoutHeader.hooks.d.ts +0 -4
  584. package/dist/src/component/KgLayoutHeader/index.d.ts +0 -2
  585. package/dist/src/component/KgModal/KgModal.d.ts +0 -817
  586. package/dist/src/component/KgModal/KgModal.model.d.ts +0 -8
  587. package/dist/src/component/KgModal/KgModal.service.d.ts +0 -37
  588. package/dist/src/component/KgModal/KgModalHeaderButtons.d.ts +0 -92
  589. package/dist/src/component/KgModal02/KgModal02.d.ts +0 -470
  590. package/dist/src/component/KgModal02/KgModal02.model.d.ts +0 -1
  591. package/dist/src/component/KgProgressA/KgProgressA.d.ts +0 -85
  592. package/dist/src/component/KgResizable/KgResizable.d.ts +0 -119
  593. package/dist/src/component/KgResizable/KgResizable.service.d.ts +0 -12
  594. package/dist/src/component/KgSearch/KgSearch.d.ts +0 -26
  595. package/dist/src/component/KgSearch/KgSearch.event.d.ts +0 -31
  596. package/dist/src/component/KgSearch/KgSearch.hooks.d.ts +0 -72
  597. package/dist/src/component/KgSearch/KgSearch.service.d.ts +0 -32
  598. package/dist/src/component/KgSearch/KgSearch.store.d.ts +0 -103
  599. package/dist/src/component/KgSearch/index.d.ts +0 -3
  600. package/dist/src/component/KgSimulator/KgSimulator.Canvas.Title.d.ts +0 -11
  601. package/dist/src/component/KgSimulator/KgSimulator.Canvas.d.ts +0 -11
  602. package/dist/src/component/KgSimulator/KgSimulator.Canvas.service.d.ts +0 -80
  603. package/dist/src/component/KgSimulator/KgSimulator.Menu.Scene.Create.CircularConveyor.d.ts +0 -36
  604. package/dist/src/component/KgSimulator/KgSimulator.Menu.Scene.Open.CircularConveyor.d.ts +0 -36
  605. package/dist/src/component/KgSimulator/KgSimulator.Menu.d.ts +0 -4
  606. package/dist/src/component/KgSimulator/KgSimulator.Panel.Prefab.d.ts +0 -4
  607. package/dist/src/component/KgSimulator/KgSimulator.Panel.Property.d.ts +0 -4
  608. package/dist/src/component/KgSimulator/KgSimulator.Panel.Scene.d.ts +0 -4
  609. package/dist/src/component/KgSimulator/KgSimulator.Panel.d.ts +0 -97
  610. package/dist/src/component/KgSimulator/KgSimulator.Prefab.d.ts +0 -108
  611. package/dist/src/component/KgSimulator/KgSimulator.ToolbarButton.Prefab.d.ts +0 -9
  612. package/dist/src/component/KgSimulator/KgSimulator.ToolbarButton.Property.d.ts +0 -9
  613. package/dist/src/component/KgSimulator/KgSimulator.ToolbarButton.Scene.d.ts +0 -9
  614. package/dist/src/component/KgSimulator/KgSimulator.ToolbarButton.d.ts +0 -113
  615. package/dist/src/component/KgSimulator/KgSimulator.d.ts +0 -33
  616. package/dist/src/component/KgSimulator/KgSimulator.event.d.ts +0 -93
  617. package/dist/src/component/KgSimulator/KgSimulator.hooks.d.ts +0 -103
  618. package/dist/src/component/KgSimulator/KgSimulator.icons.d.ts +0 -10
  619. package/dist/src/component/KgSimulator/KgSimulator.model.d.ts +0 -1502
  620. package/dist/src/component/KgSimulator/KgSimulator.store.d.ts +0 -474
  621. package/dist/src/component/KgSimulator/KgSimulator.utils.d.ts +0 -21
  622. package/dist/src/component/KgSimulator/index.d.ts +0 -3
  623. package/dist/src/component/KgSubmit/KgSubmit.d.ts +0 -21
  624. package/dist/src/component/KgSubmit/KgSubmit.event.d.ts +0 -135
  625. package/dist/src/component/KgSubmit/KgSubmit.hooks.d.ts +0 -358
  626. package/dist/src/component/KgSubmit/KgSubmit.model.d.ts +0 -57
  627. package/dist/src/component/KgSubmit/KgSubmit.service.d.ts +0 -29
  628. package/dist/src/component/KgSubmit/KgSubmit.store.d.ts +0 -112
  629. package/dist/src/component/KgSubmit/index.d.ts +0 -4
  630. package/dist/src/component/KgTable/KgTable.BodyCell.d.ts +0 -60
  631. package/dist/src/component/KgTable/KgTable.HeadCell.d.ts +0 -51
  632. package/dist/src/component/KgTable/KgTable.Info.d.ts +0 -57
  633. package/dist/src/component/KgTable/KgTable.Setting.VarGridMaster.SaveAs.d.ts +0 -4
  634. package/dist/src/component/KgTable/KgTable.Setting.d.ts +0 -20
  635. package/dist/src/component/KgTable/KgTable.Setting.service.d.ts +0 -22
  636. package/dist/src/component/KgTable/KgTable.d.ts +0 -39
  637. package/dist/src/component/KgTable/KgTable.event.d.ts +0 -111
  638. package/dist/src/component/KgTable/KgTable.hooks.d.ts +0 -135
  639. package/dist/src/component/KgTable/KgTable.model.d.ts +0 -65
  640. package/dist/src/component/KgTable/KgTable.service.d.ts +0 -34
  641. package/dist/src/component/KgTable/KgTable.store.d.ts +0 -91
  642. package/dist/src/component/KgTable/index.d.ts +0 -4
  643. package/dist/src/component/KgTable02/KgTable02.BodyCell.d.ts +0 -72
  644. package/dist/src/component/KgTable02/KgTable02.d.ts +0 -46
  645. package/dist/src/component/KgTable02/KgTable02.event.d.ts +0 -123
  646. package/dist/src/component/KgTable02/KgTable02.hooks.d.ts +0 -62
  647. package/dist/src/component/KgTable02/KgTable02.store.d.ts +0 -62
  648. package/dist/src/component/KgTable02/index.d.ts +0 -4
  649. package/dist/src/component/KgVar/KgVar.Factory.d.ts +0 -106
  650. package/dist/src/component/KgVar/KgVar.d.ts +0 -120
  651. package/dist/src/component/KgVar/KgVar.event.d.ts +0 -75
  652. package/dist/src/component/KgVar/KgVar.hooks.d.ts +0 -307
  653. package/dist/src/component/KgVar/KgVar.model.d.ts +0 -70
  654. package/dist/src/component/KgVar/KgVar.store.d.ts +0 -269
  655. package/dist/src/component/KgVar/index.d.ts +0 -5
  656. package/dist/src/component/KgVarConfig/KgVarConfig.d.ts +0 -3
  657. package/dist/src/component/KgVarConfig/KgVarConfig.hooks.d.ts +0 -3
  658. package/dist/src/component/KgVarConfig/KgVarConfig.model.d.ts +0 -42
  659. package/dist/src/component/KgVarConfig/KgVarConfig.store.d.ts +0 -16
  660. package/dist/src/component/KgVarConfig/components/KgVarConfig.SelectFormIdModal.d.ts +0 -27
  661. package/dist/src/component/KgVarConfig/components/KgVarConfigModal.d.ts +0 -53
  662. package/dist/src/component/KgVarConfig/components/button/KgVarConfig.Modal.Button.VarButton.d.ts +0 -7
  663. package/dist/src/component/KgVarConfig/components/button/KgVarConfig.Modal.Button.VarButtonConfig.d.ts +0 -7
  664. package/dist/src/component/KgVarConfig/components/button/KgVarConfig.Modal.Button.d.ts +0 -5
  665. package/dist/src/component/KgVarConfig/components/child/KgVarConfig.Modal.Child.d.ts +0 -7
  666. package/dist/src/component/KgVarConfig/components/search/KgVarConfig.Modal.Search.VarProfileConfig.d.ts +0 -7
  667. package/dist/src/component/KgVarConfig/components/search/KgVarConfig.Modal.Search.VarProfileMaster.d.ts +0 -7
  668. package/dist/src/component/KgVarConfig/components/search/KgVarConfig.Modal.Search.VarProfileMaster.service.d.ts +0 -17
  669. package/dist/src/component/KgVarConfig/components/search/KgVarConfig.Modal.Search.d.ts +0 -5
  670. package/dist/src/component/KgVarConfig/components/submit/KgVarConfig.Modal.Submit.VarSubmitConfig.d.ts +0 -7
  671. package/dist/src/component/KgVarConfig/components/submit/KgVarConfig.Modal.Submit.VarSubmitDetail.d.ts +0 -7
  672. package/dist/src/component/KgVarConfig/components/submit/KgVarConfig.Modal.Submit.d.ts +0 -5
  673. package/dist/src/component/KgVarConfig/components/table/KgVarConfig.Modal.Table.VarGridConfig.d.ts +0 -7
  674. package/dist/src/component/KgVarConfig/components/table/KgVarConfig.Modal.Table.VarGridMaster.d.ts +0 -7
  675. package/dist/src/component/KgVarConfig/components/table/KgVarConfig.Modal.Table.VarGridMaster.service.d.ts +0 -23
  676. package/dist/src/component/KgVarConfig/components/table/KgVarConfig.Modal.Table.d.ts +0 -5
  677. package/dist/src/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigControl.d.ts +0 -2
  678. package/dist/src/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigDescription.d.ts +0 -2
  679. package/dist/src/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigInput.d.ts +0 -2
  680. package/dist/src/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigLookup.d.ts +0 -2
  681. package/dist/src/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigPossibility.d.ts +0 -2
  682. package/dist/src/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarConfigTip.d.ts +0 -2
  683. package/dist/src/component/KgVarConfig/components/var/KgVarConfig.Modal.Var.VarVariable.d.ts +0 -2
  684. package/dist/src/component/KgVarConfig/index.d.ts +0 -3
  685. package/dist/src/component/KgWarehouse/KgWarehouse.d.ts +0 -50
  686. package/dist/src/component/KgWarehouse/KgWarehouse.event.d.ts +0 -30
  687. package/dist/src/component/KgWarehouse/KgWarehouse.guard.d.ts +0 -8
  688. package/dist/src/component/KgWarehouse/KgWarehouse.hooks.d.ts +0 -41
  689. package/dist/src/component/KgWarehouse/KgWarehouse.store.d.ts +0 -27
  690. package/dist/src/component/KgWarehouse/index.d.ts +0 -4
  691. package/dist/src/component/KgYesOrNo/KgYesOrNo.d.ts +0 -60
  692. package/dist/src/component/index.d.ts +0 -21
  693. package/dist/src/config/config.hooks.d.ts +0 -10
  694. package/dist/src/config/config.store.d.ts +0 -307
  695. package/dist/src/config/index.d.ts +0 -63
  696. package/dist/src/const/const.model.d.ts +0 -1768
  697. package/dist/src/const/form-id.const.d.ts +0 -44
  698. package/dist/src/const/index.d.ts +0 -2
  699. package/dist/src/i18n/cs_CZ.d.ts +0 -2
  700. package/dist/src/i18n/en.d.ts +0 -237
  701. package/dist/src/i18n/es_ES.d.ts +0 -2
  702. package/dist/src/i18n/fr_FR.d.ts +0 -2
  703. package/dist/src/i18n/i18n.setup.d.ts +0 -22
  704. package/dist/src/i18n/index.d.ts +0 -3
  705. package/dist/src/i18n/km_KH.d.ts +0 -2
  706. package/dist/src/i18n/ko_KR.d.ts +0 -2
  707. package/dist/src/i18n/vi_VN.d.ts +0 -2
  708. package/dist/src/i18n/zh_CN.d.ts +0 -238
  709. package/dist/src/index.d.ts +0 -12
  710. package/dist/src/page/KgPageCircularShuttleMonitor/KgPageCircularShuttleMonitor.d.ts +0 -11
  711. package/dist/src/page/KgPageDda/KgPageDda.d.ts +0 -8
  712. package/dist/src/page/KgPageDda/components/KgPageDda.Create.Basic.SqlModal.d.ts +0 -32
  713. package/dist/src/page/KgPageDda/components/KgPageDda.Create.Basic.d.ts +0 -7
  714. package/dist/src/page/KgPageDda/components/KgPageDda.Create.Button.d.ts +0 -7
  715. package/dist/src/page/KgPageDda/components/KgPageDda.Create.Menu.d.ts +0 -7
  716. package/dist/src/page/KgPageDda/components/KgPageDda.Create.Search.d.ts +0 -7
  717. package/dist/src/page/KgPageDda/components/KgPageDda.Create.Submit.d.ts +0 -7
  718. package/dist/src/page/KgPageDda/components/KgPageDda.Create.Table.d.ts +0 -7
  719. package/dist/src/page/KgPageDda/components/KgPageDda.Create.d.ts +0 -33
  720. package/dist/src/page/KgPageDda/components/KgPageDda.Create.store.d.ts +0 -39
  721. package/dist/src/page/KgPageDda/index.d.ts +0 -5
  722. package/dist/src/page/KgPageSqlClient/KgPageSqlClient.d.ts +0 -12
  723. package/dist/src/page/KgPageSqlClient/components/KgSqlClient.Editor.d.ts +0 -13
  724. package/dist/src/page/KgPageSqlClient/components/KgSqlClient.ResultTab.d.ts +0 -36
  725. package/dist/src/page/KgPageSqlClient/components/KgSqlClient.Toolbar.Top.d.ts +0 -7
  726. package/dist/src/page/KgPageSqlClient/components/KgSqlClient.d.ts +0 -5
  727. package/dist/src/page/index.d.ts +0 -8
  728. package/dist/src/project/build/getConfigFileName.d.ts +0 -5
  729. package/dist/src/project/build/index.d.ts +0 -1
  730. package/dist/src/project/src/api/sys/menu.d.ts +0 -4
  731. package/dist/src/project/src/api/sys/model/menuModel.d.ts +0 -15
  732. package/dist/src/project/src/api/sys/model/userModel.d.ts +0 -46
  733. package/dist/src/project/src/components/Application/src/useAppContext.d.ts +0 -9
  734. package/dist/src/project/src/components/index.d.ts +0 -2
  735. package/dist/src/project/src/enums/CompTypeEnum.d.ts +0 -19
  736. package/dist/src/project/src/enums/DateTypeEnum.d.ts +0 -8
  737. package/dist/src/project/src/enums/appEnum.d.ts +0 -40
  738. package/dist/src/project/src/enums/breakpointEnum.d.ts +0 -18
  739. package/dist/src/project/src/enums/cacheEnum.d.ts +0 -18
  740. package/dist/src/project/src/enums/exceptionEnum.d.ts +0 -17
  741. package/dist/src/project/src/enums/httpEnum.d.ts +0 -38
  742. package/dist/src/project/src/enums/jeecgEnum.d.ts +0 -16
  743. package/dist/src/project/src/enums/menuEnum.d.ts +0 -35
  744. package/dist/src/project/src/enums/pageEnum.d.ts +0 -14
  745. package/dist/src/project/src/enums/roleEnum.d.ts +0 -4
  746. package/dist/src/project/src/enums/sizeEnum.d.ts +0 -18
  747. package/dist/src/project/src/hooks/component/useFormItem.d.ts +0 -2
  748. package/dist/src/project/src/hooks/component/usePageContext.d.ts +0 -10
  749. package/dist/src/project/src/hooks/core/onMountedOrActivated.d.ts +0 -1
  750. package/dist/src/project/src/hooks/core/useAttrs.d.ts +0 -9
  751. package/dist/src/project/src/hooks/core/useContext.d.ts +0 -11
  752. package/dist/src/project/src/hooks/core/useRefs.d.ts +0 -2
  753. package/dist/src/project/src/hooks/core/useTimeout.d.ts +0 -10
  754. package/dist/src/project/src/hooks/event/useBreakpoint.d.ts +0 -22
  755. package/dist/src/project/src/hooks/event/useEventListener.d.ts +0 -14
  756. package/dist/src/project/src/hooks/event/useIntersectionObserver.d.ts +0 -13
  757. package/dist/src/project/src/hooks/event/useScrollTo.d.ts +0 -10
  758. package/dist/src/project/src/hooks/event/useWindowSizeFn.d.ts +0 -7
  759. package/dist/src/project/src/hooks/index.d.ts +0 -21
  760. package/dist/src/project/src/hooks/jeecg/useAdaptiveWidth.d.ts +0 -18
  761. package/dist/src/project/src/hooks/setting/index.d.ts +0 -2
  762. package/dist/src/project/src/hooks/web/useAppInject.d.ts +0 -3
  763. package/dist/src/project/src/hooks/web/useContentHeight.d.ts +0 -24
  764. package/dist/src/project/src/hooks/web/useCopyToClipboard.d.ts +0 -10
  765. package/dist/src/project/src/hooks/web/useDesign.d.ts +0 -4
  766. package/dist/src/project/src/hooks/web/usePage.d.ts +0 -10
  767. package/dist/src/project/src/hooks/web/usePagination.d.ts +0 -7
  768. package/dist/src/project/src/hooks/web/useWebSocket.d.ts +0 -18
  769. package/dist/src/project/src/layouts/default/content/useContentContext.d.ts +0 -9
  770. package/dist/src/project/src/layouts/default/content/useContentViewHeight.d.ts +0 -7
  771. package/dist/src/project/src/locales/helper.d.ts +0 -5
  772. package/dist/src/project/src/locales/setupI18n.d.ts +0 -4
  773. package/dist/src/project/src/locales/useLocale.d.ts +0 -11
  774. package/dist/src/project/src/router/constant2.d.ts +0 -3
  775. package/dist/src/project/src/router/types.d.ts +0 -61
  776. package/dist/src/project/src/settings/componentSetting.d.ts +0 -44
  777. package/dist/src/project/src/settings/designSetting.d.ts +0 -6
  778. package/dist/src/project/src/settings/encryptionSetting.d.ts +0 -6
  779. package/dist/src/project/src/settings/projectSetting.d.ts +0 -3
  780. package/dist/src/project/src/store/modules/locale.d.ts +0 -38
  781. package/dist/src/project/src/utils/auth/index.d.ts +0 -19
  782. package/dist/src/project/src/utils/bem.d.ts +0 -15
  783. package/dist/src/project/src/utils/cache/index.d.ts +0 -7
  784. package/dist/src/project/src/utils/cache/memory.d.ts +0 -22
  785. package/dist/src/project/src/utils/cache/persistent.d.ts +0 -33
  786. package/dist/src/project/src/utils/cache/storageCache.d.ts +0 -8
  787. package/dist/src/project/src/utils/cipher.d.ts +0 -19
  788. package/dist/src/project/src/utils/color.d.ts +0 -29
  789. package/dist/src/project/src/utils/common/compUtils.d.ts +0 -87
  790. package/dist/src/project/src/utils/common/functionUtils.d.ts +0 -6
  791. package/dist/src/project/src/utils/dateUtil.d.ts +0 -4
  792. package/dist/src/project/src/utils/domUtils.d.ts +0 -28
  793. package/dist/src/project/src/utils/encryption/signMd5Utils.d.ts +0 -29
  794. package/dist/src/project/src/utils/env.d.ts +0 -16
  795. package/dist/src/project/src/utils/event/index.d.ts +0 -3
  796. package/dist/src/project/src/utils/factory/createAsyncComponent.d.ts +0 -9
  797. package/dist/src/project/src/utils/file/base64Conver.d.ts +0 -4
  798. package/dist/src/project/src/utils/file/download.d.ts +0 -9
  799. package/dist/src/project/src/utils/helper/treeHelper.d.ts +0 -34
  800. package/dist/src/project/src/utils/helper/tsxHelper.d.ts +0 -13
  801. package/dist/src/project/src/utils/index.index.d.ts +0 -42
  802. package/dist/src/project/src/utils/is.d.ts +0 -17
  803. package/dist/src/project/src/utils/mitt.d.ts +0 -26
  804. package/dist/src/project/src/utils/propTypes.d.ts +0 -9
  805. package/dist/src/project/src/utils/props.d.ts +0 -68
  806. package/dist/src/project/src/utils/uuid.d.ts +0 -2
  807. package/dist/src/project/types/axios.d.ts +0 -35
  808. package/dist/src/project/types/config.d.ts +0 -119
  809. package/dist/src/project/types/store.d.ts +0 -43
  810. package/dist/src/project/types/utils.d.ts +0 -4
  811. package/dist/src/service/http-client.d.ts +0 -98
  812. package/dist/src/util/ant-design-vue.d.ts +0 -347
  813. package/dist/src/util/event.util.d.ts +0 -15
  814. package/dist/src/util/kg-auth.util.d.ts +0 -12
  815. package/dist/src/util/kg-route.util.d.ts +0 -18
  816. package/dist/src/util/kg.util.d.ts +0 -349
  817. package/dist/src/util/tsx.helper.d.ts +0 -23
  818. package/dist/stop-outlined.9f2c4f61.mjs +0 -8
  819. package/dist/stop.ea3dde55.mjs +0 -8
  820. package/dist/three-dots-loading-bIlrTJYR.f189f620.mjs +0 -8
  821. package/dist/upload-outlined.c576b26a.mjs +0 -8
  822. /package/{dist/src/api/WMS/Controllers/VarConfigDescriptionController/index.d.ts → api/WMS/Controllers/VarConfigDescriptionController/index.ts} +0 -0
  823. /package/{dist/src/api/WMS/Controllers/WarehouseController/index.d.ts → api/WMS/Controllers/WarehouseController/index.ts} +0 -0
  824. /package/{dist/src/api/WMS/Controllers/index.d.ts → api/WMS/Controllers/index.ts} +0 -0
  825. /package/{dist/src/component/KgButton/index.d.ts → component/KgButton/index.ts} +0 -0
  826. /package/{dist/src/component/KgForm.Item/index.d.ts → component/KgForm.Item/index.ts} +0 -0
  827. /package/{dist/src/component/KgImage/index.d.ts → component/KgImage/index.ts} +0 -0
  828. /package/{dist/src/component/KgModal/index.d.ts → component/KgModal/index.ts} +0 -0
  829. /package/{dist/src/component/KgModal02/index.d.ts → component/KgModal02/index.ts} +0 -0
  830. /package/{dist/src/component/KgProgressA/index.d.ts → component/KgProgressA/index.ts} +0 -0
  831. /package/{dist/src/component/KgResizable/index.d.ts → component/KgResizable/index.ts} +0 -0
  832. /package/{dist/src/component/KgSearch/KgSearch.model.d.ts → component/KgSearch/KgSearch.model.ts} +0 -0
  833. /package/{dist/src/component/KgTable02/KgTable02.model.d.ts → component/KgTable02/KgTable02.model.ts} +0 -0
  834. /package/{dist/src/component/KgYesOrNo/index.d.ts → component/KgYesOrNo/index.ts} +0 -0
  835. /package/{dist/src/page/KgPageCircularShuttleMonitor/index.d.ts → page/KgPageCircularShuttleMonitor/index.ts} +0 -0
  836. /package/{dist/src/page/KgPageSqlClient/index.d.ts → page/KgPageSqlClient/index.ts} +0 -0
  837. /package/{dist/project → project}/build/constant.ts +0 -0
  838. /package/{dist/project → project}/build/generate/icon/index.ts +0 -0
  839. /package/{dist/project → project}/build/getConfigFileName.ts +0 -0
  840. /package/{dist/project → project}/build/index.ts +0 -0
  841. /package/{dist/project → project}/build/script/buildConf.ts +0 -0
  842. /package/{dist/project → project}/build/script/postBuild.ts +0 -0
  843. /package/{dist/project → project}/build/utils.ts +0 -0
  844. /package/{dist/project → project}/build/vite/plugin/compress.ts +0 -0
  845. /package/{dist/project → project}/build/vite/plugin/html.ts +0 -0
  846. /package/{dist/project → project}/build/vite/plugin/imagemin.ts +0 -0
  847. /package/{dist/project → project}/build/vite/plugin/index.ts +0 -0
  848. /package/{dist/project → project}/build/vite/plugin/pwa.ts +0 -0
  849. /package/{dist/project → project}/build/vite/plugin/styleImport.ts +0 -0
  850. /package/{dist/project → project}/build/vite/plugin/svgSprite.ts +0 -0
  851. /package/{dist/project → project}/build/vite/plugin/theme.ts +0 -0
  852. /package/{dist/project → project}/build/vite/plugin/visualizer.ts +0 -0
  853. /package/{dist/project → project}/build/vite/proxy.ts +0 -0
  854. /package/{dist/src/project/index.d.ts → project/index.ts} +0 -0
  855. /package/{dist/src/project/src/api/index.d.ts → project/src/api/index.ts} +0 -0
  856. /package/{dist/src/project/src/api/sys/model/uploadModel.d.ts → project/src/api/sys/model/uploadModel.ts} +0 -0
  857. /package/{dist/src/project/src/components/Dropdown/index.d.ts → project/src/components/Dropdown/index.ts} +0 -0
  858. /package/{dist/src/project/src/components/Dropdown/src/typing.d.ts → project/src/components/Dropdown/src/typing.ts} +0 -0
  859. /package/{dist/src/project/src/enums/index.d.ts → project/src/enums/index.ts} +0 -0
  860. /package/{dist/src/project/src/index.d.ts → project/src/index.ts} +0 -0
  861. /package/{dist/src/project/src/layouts/index.d.ts → project/src/layouts/index.ts} +0 -0
  862. /package/{dist/src/project/src/locales/index.d.ts → project/src/locales/index.ts} +0 -0
  863. /package/{dist/src/project/src/router/index.d.ts → project/src/router/index.ts} +0 -0
  864. /package/{dist/src/project/src/settings/index.d.ts → project/src/settings/index.ts} +0 -0
  865. /package/{dist/src/project/src/store/index.d.ts → project/src/store/index.ts} +0 -0
  866. /package/{dist/src/project/src/store/modules/index.d.ts → project/src/store/modules/index.ts} +0 -0
  867. /package/{dist/src/project/src/utils/index.d.ts → project/src/utils/index.ts} +0 -0
  868. /package/{dist/src/project/types/index.d.ts → project/types/index.ts} +0 -0
  869. /package/{dist/src/service/index.d.ts → service/index.ts} +0 -0
  870. /package/{dist/src/util/index.d.ts → util/index.ts} +0 -0
@@ -0,0 +1,3053 @@
1
+ import { ____ERROR____, ____INFO_____ } from '@kengic/core.core';
2
+ import { Q } from '@thymine/xunee';
3
+ import { uniq } from 'lodash-es';
4
+ import { ref, toRaw } from 'vue';
5
+ import { useKgCircularShuttleMonitor } from './KgCircularShuttleMonitor.hooks';
6
+ import { MapDTO, MapStationVO, StatusDTO, StatusRgvVO, StatusStationDTO } from './KgCircularShuttleMonitor.model';
7
+
8
+ /** 节点类型. */
9
+ export const NODE_KEY = {
10
+ /** 巷道. */
11
+ AISLE: 'AISLE-',
12
+ /** 巷道:巷道编号. */
13
+ AISLE__UI__TEXT: 'AISLE__UI__TEXT-',
14
+ /** 轨道. */
15
+ PATH: 'PATH-',
16
+ /** 小车. */
17
+ RGV: 'RGV-',
18
+ /** 小车:路线. */
19
+ RGV__PATH: 'RGV__PATH-',
20
+ /** 小车:路线:小车和路线的连线. */
21
+ RGV__PATH__LINE: 'RGV__PATH__LINE-',
22
+ /** 小车:路线:路线上的小车. */
23
+ RGV__PATH__RGV: 'RGV__PATH__RGV-',
24
+ /** 小车:托盘. */
25
+ RGV__UI__CONTAINER: 'RGV__UI__CONTAINER-',
26
+ /** 小车:选中. */
27
+ RGV__UI__SELECT: 'RGV__UI__SELECT-',
28
+ /** 小车:小车编号. */
29
+ RGV__UI__TEXT: 'RGV__UI__TEXT-',
30
+ /** 小车:小车编号背景. */
31
+ RGV__UI__TEXT_BACKGROUND: 'RGV__UI__TEXT_BACKGROUND-',
32
+ /** 站点. */
33
+ STATION: 'STATION-',
34
+ /** 站点:方向. */
35
+ STATION_UI_ARROW: 'STATION_UI_ARROW-',
36
+ /** 站点:有货. */
37
+ STATION_UI_CENTER_RECT: 'STATION_UI_CENTER_RECT-',
38
+ /** 站点:选中. */
39
+ STATION_UI_SELECT: 'STATION_UI_SELECT-',
40
+ /** 站点:线体编号. */
41
+ STATION_UI_TEXT: 'STATION_UI_TEXT-',
42
+ };
43
+
44
+ //region 方法: 绘制
45
+ //----------------------------------------------------------------------------------------------------
46
+ export type IUseDraw = {
47
+ /**
48
+ * 绘制图形.
49
+ */
50
+ draw(param?: IUseDrawDrawParam): void;
51
+
52
+ /**
53
+ * 选中小车或者选中站点发生变更.
54
+ */
55
+ onSelectChange(): void;
56
+ };
57
+
58
+ type IUseDrawDrawParam = {
59
+ /**
60
+ * 是否纵览比例.
61
+ *
62
+ * @default false
63
+ */
64
+ isZoomToOverview?: boolean;
65
+
66
+ /**
67
+ * <p>绘制类型.</p>
68
+ * <ul>
69
+ * <li>MAP: 绘制轨道和站点</li>
70
+ * <li>STATUS: 绘制小车</li>
71
+ * </ul>
72
+ */
73
+ type: 'MAP' | 'STATUS';
74
+ };
75
+
76
+ export function useDraw(): IUseDraw {
77
+ const kgCircularShuttleMonitor = useKgCircularShuttleMonitor();
78
+
79
+ //region DATA
80
+ //----------------------------------------------------------------------------------------------------
81
+ /** 线宽. */
82
+ const LINE_WIDTH = Math.min(Math.max(kgCircularShuttleMonitor.store.getProps?.strokeLineWidth ?? 100, 1), 1000);
83
+
84
+ /** 轨道:周长. */
85
+ const PATH_LENGTH$ = ref(0);
86
+ /** 轨道:内矩形宽度. */
87
+ const PATH_WIDTH$ = ref(0);
88
+ /** 轨道:内矩形高度. */
89
+ const PATH_HEIGHT$ = ref(0);
90
+ /** 轨道:线的宽度. */
91
+ const PATH_LINE_WIDTH$ = ref(0);
92
+ /** 轨道:内轨道的圆半径. */
93
+ const PATH_INNER_RADIUS$ = ref(0);
94
+ /** 轨道:外轨道的圆半径. */
95
+ const PATH_OUTER_RADIUS$ = ref(0);
96
+ /** 轨道:轨道方向.0:顺时针,1:逆时针. */
97
+ const PATH_DIRECTION$ = ref(0);
98
+
99
+ /** 内轨道起点的刻度. */
100
+ const SRC_COORDINATE$ = ref(0);
101
+ /** 内轨道终点的刻度. */
102
+ const DST_COORDINATE$ = ref(0);
103
+
104
+ /** 内轨道的矩形的上左位置的刻度. */
105
+ const TOP_LEFT_COORDINATE$ = ref(0);
106
+ /** 内轨道的矩形的上中位置的刻度. */
107
+ const TOP_CENTER_COORDINATE$ = ref(0);
108
+ /** 内轨道的矩形的上右位置的刻度. */
109
+ const TOP_RIGHT_COORDINATE$ = ref(0);
110
+ /** 内轨道的矩形的下左位置的刻度. */
111
+ const BOTTOM_LEFT_COORDINATE$ = ref(0);
112
+ /** 内轨道的矩形的下中位置的刻度. */
113
+ const BOTTOM_CENTER_COORDINATE$ = ref(0);
114
+ /** 内轨道的矩形的下右位置的刻度. */
115
+ const BOTTOM_RIGHT_COORDINATE$ = ref(0);
116
+
117
+ /** 起点所在位置. */
118
+ const SRC_POSITION$ = ref<'TOP_LEFT' | 'TOP_RIGHT' | 'BOTTOM_LEFT' | 'BOTTOM_RIGHT' | 'LEFT' | 'RIGHT' | ''>('');
119
+
120
+ /** 当前站台:宽度. */
121
+ const CURRENT_STATION_WIDTH$ = ref(0);
122
+ /** 当前站台:高度. */
123
+ const CURRENT_STATION_HEIGHT$ = ref(0);
124
+ /** 当前站点在轨道的上边还是下边. */
125
+ const CURRENT_STATION_POSITION$ = ref<'TOP' | 'BOTTOM' | ''>('');
126
+
127
+ /** 当前小车:宽度. */
128
+ const CURRENT_RGV_WIDTH$ = ref(0);
129
+ /** 当前小车:高度. */
130
+ const CURRENT_RGV_HEIGHT$ = ref(0);
131
+ /** 当前小车在轨道的上边还是下边还是左边还是右边. */
132
+ const CURRENT_RGV_POSITION$ = ref<'TOP' | 'BOTTOM' | 'LEFT' | 'RIGHT' | ''>('');
133
+
134
+ /**
135
+ * <p>是否正在绘制. 如果上次绘制尚未完成, 此时又发起了新的绘制请求, 则并不会执行新的绘制.</p>
136
+ */
137
+ let isDrawing = false;
138
+
139
+ /**
140
+ * 为了让选中效果更醒目, 对选中效果进行闪烁, 该变量表示闪烁状态.
141
+ */
142
+ let isSelectBlinkOn: boolean = true;
143
+
144
+ /**
145
+ * 小车路线虚线偏移.
146
+ */
147
+ let selectBlinkDashOffset: number = 0;
148
+
149
+ /**
150
+ * 选中效果闪烁计时器.
151
+ */
152
+ let selectBlinkTimer: number = -1;
153
+ //----------------------------------------------------------------------------------------------------
154
+ //endregion
155
+
156
+ //region WATCH
157
+ //----------------------------------------------------------------------------------------------------
158
+ //----------------------------------------------------------------------------------------------------
159
+ //endregion
160
+
161
+ //region FUNCTION
162
+ //----------------------------------------------------------------------------------------------------
163
+ /**
164
+ * 绘制轨道.
165
+ */
166
+ function drawPath(canvasMapData: MapDTO | null) {
167
+ if (!kgCircularShuttleMonitor.store.getGraph) {
168
+ return;
169
+ }
170
+
171
+ if (!canvasMapData) {
172
+ return;
173
+ }
174
+
175
+ SRC_COORDINATE$.value = canvasMapData.map?.sourceCoordinate ?? 0;
176
+ DST_COORDINATE$.value = canvasMapData.map?.destinationCoordinate ?? 0;
177
+
178
+ PATH_LENGTH$.value = Math.abs((DST_COORDINATE$.value ?? 0) - (SRC_COORDINATE$.value ?? 0));
179
+ PATH_WIDTH$.value = canvasMapData.map?.length ?? 0;
180
+ PATH_HEIGHT$.value = canvasMapData.map?.width ?? 0;
181
+ PATH_LINE_WIDTH$.value = canvasMapData.map?.lineWidth ?? 0;
182
+
183
+ PATH_INNER_RADIUS$.value = PATH_HEIGHT$.value / 2 - LINE_WIDTH / 2;
184
+ PATH_OUTER_RADIUS$.value = PATH_INNER_RADIUS$.value + PATH_LINE_WIDTH$.value + LINE_WIDTH;
185
+
186
+ PATH_DIRECTION$.value = canvasMapData.map?.direction ?? 0;
187
+
188
+ BOTTOM_CENTER_COORDINATE$.value = canvasMapData.map?.offset ?? 0;
189
+ TOP_CENTER_COORDINATE$.value = BOTTOM_CENTER_COORDINATE$.value - PATH_LENGTH$.value / 2;
190
+ if (TOP_CENTER_COORDINATE$.value < SRC_COORDINATE$.value) {
191
+ TOP_CENTER_COORDINATE$.value = BOTTOM_CENTER_COORDINATE$.value + PATH_LENGTH$.value / 2;
192
+ }
193
+
194
+ // 顺时针,
195
+ if (canvasMapData.map?.direction === 0) {
196
+ BOTTOM_LEFT_COORDINATE$.value = BOTTOM_CENTER_COORDINATE$.value + PATH_WIDTH$.value / 2;
197
+
198
+ // 起下左和下中之间,
199
+ if (BOTTOM_LEFT_COORDINATE$.value > DST_COORDINATE$.value) {
200
+ BOTTOM_LEFT_COORDINATE$.value = PATH_WIDTH$.value / 2 - (DST_COORDINATE$.value - BOTTOM_CENTER_COORDINATE$.value) + SRC_COORDINATE$.value;
201
+ SRC_POSITION$.value = 'BOTTOM_LEFT';
202
+ }
203
+
204
+ BOTTOM_RIGHT_COORDINATE$.value = BOTTOM_CENTER_COORDINATE$.value - PATH_WIDTH$.value / 2;
205
+
206
+ // 起下右和下中之间,
207
+ if (BOTTOM_RIGHT_COORDINATE$.value < SRC_COORDINATE$.value) {
208
+ BOTTOM_RIGHT_COORDINATE$.value = DST_COORDINATE$.value - PATH_WIDTH$.value / 2 + (BOTTOM_CENTER_COORDINATE$.value - SRC_COORDINATE$.value);
209
+ SRC_POSITION$.value = 'BOTTOM_RIGHT';
210
+ }
211
+
212
+ TOP_RIGHT_COORDINATE$.value = TOP_CENTER_COORDINATE$.value + PATH_WIDTH$.value / 2;
213
+
214
+ // 起上右和上中之间,
215
+ if (TOP_RIGHT_COORDINATE$.value > DST_COORDINATE$.value) {
216
+ TOP_RIGHT_COORDINATE$.value = PATH_WIDTH$.value / 2 - (DST_COORDINATE$.value - TOP_CENTER_COORDINATE$.value) + SRC_COORDINATE$.value;
217
+ SRC_POSITION$.value = 'TOP_RIGHT';
218
+ }
219
+
220
+ TOP_LEFT_COORDINATE$.value = TOP_CENTER_COORDINATE$.value - PATH_WIDTH$.value / 2;
221
+
222
+ // 起上左和上中之间,
223
+ if (TOP_LEFT_COORDINATE$.value < SRC_COORDINATE$.value) {
224
+ TOP_LEFT_COORDINATE$.value = DST_COORDINATE$.value - PATH_WIDTH$.value / 2 + (TOP_CENTER_COORDINATE$.value - SRC_COORDINATE$.value);
225
+ SRC_POSITION$.value = 'TOP_LEFT';
226
+ }
227
+
228
+ if (SRC_POSITION$.value !== 'BOTTOM_LEFT' && SRC_POSITION$.value !== 'BOTTOM_RIGHT' && SRC_POSITION$.value !== 'TOP_LEFT' && SRC_POSITION$.value !== 'TOP_RIGHT') {
229
+ if (BOTTOM_CENTER_COORDINATE$.value > PATH_LENGTH$.value / 2) {
230
+ SRC_POSITION$.value = 'LEFT';
231
+ } else {
232
+ SRC_POSITION$.value = 'RIGHT';
233
+ }
234
+ }
235
+ }
236
+ // 逆时针,
237
+ else {
238
+ BOTTOM_RIGHT_COORDINATE$.value = BOTTOM_CENTER_COORDINATE$.value + PATH_WIDTH$.value / 2;
239
+
240
+ // 起下右和下中之间,
241
+ if (BOTTOM_RIGHT_COORDINATE$.value > DST_COORDINATE$.value) {
242
+ BOTTOM_RIGHT_COORDINATE$.value = PATH_WIDTH$.value / 2 - (DST_COORDINATE$.value - BOTTOM_CENTER_COORDINATE$.value) + SRC_COORDINATE$.value;
243
+ SRC_POSITION$.value = 'BOTTOM_RIGHT';
244
+ }
245
+
246
+ BOTTOM_LEFT_COORDINATE$.value = BOTTOM_CENTER_COORDINATE$.value - PATH_WIDTH$.value / 2;
247
+
248
+ // 起下左和下中之间,
249
+ if (BOTTOM_LEFT_COORDINATE$.value < SRC_COORDINATE$.value) {
250
+ BOTTOM_LEFT_COORDINATE$.value = DST_COORDINATE$.value - PATH_WIDTH$.value / 2 + (BOTTOM_CENTER_COORDINATE$.value - SRC_COORDINATE$.value);
251
+ SRC_POSITION$.value = 'BOTTOM_LEFT';
252
+ }
253
+
254
+ TOP_LEFT_COORDINATE$.value = TOP_CENTER_COORDINATE$.value + PATH_WIDTH$.value / 2;
255
+
256
+ // 起上左和上中之间,
257
+ if (TOP_LEFT_COORDINATE$.value > DST_COORDINATE$.value) {
258
+ TOP_LEFT_COORDINATE$.value = PATH_WIDTH$.value / 2 - (DST_COORDINATE$.value - TOP_CENTER_COORDINATE$.value) + SRC_COORDINATE$.value;
259
+ SRC_POSITION$.value = 'TOP_LEFT';
260
+ }
261
+
262
+ TOP_RIGHT_COORDINATE$.value = TOP_CENTER_COORDINATE$.value - PATH_WIDTH$.value / 2;
263
+
264
+ // 起上右和上中之间,
265
+ if (TOP_RIGHT_COORDINATE$.value < SRC_COORDINATE$.value) {
266
+ TOP_RIGHT_COORDINATE$.value = DST_COORDINATE$.value - PATH_WIDTH$.value / 2 + (TOP_CENTER_COORDINATE$.value - SRC_COORDINATE$.value);
267
+ SRC_POSITION$.value = 'TOP_RIGHT';
268
+ }
269
+
270
+ if (SRC_POSITION$.value !== 'BOTTOM_LEFT' && SRC_POSITION$.value !== 'BOTTOM_RIGHT' && SRC_POSITION$.value !== 'TOP_LEFT' && SRC_POSITION$.value !== 'TOP_RIGHT') {
271
+ if (BOTTOM_CENTER_COORDINATE$.value > PATH_LENGTH$.value / 2) {
272
+ SRC_POSITION$.value = 'RIGHT';
273
+ } else {
274
+ SRC_POSITION$.value = 'LEFT';
275
+ }
276
+ }
277
+ }
278
+
279
+ if (PATH_WIDTH$.value <= 0 || PATH_HEIGHT$.value <= 0 || PATH_LINE_WIDTH$.value <= 0) {
280
+ return;
281
+ }
282
+
283
+ console.log('--------------------------------------------------');
284
+ console.log('轨道方向:', canvasMapData.map?.direction === 0 ? '顺时针' : '逆时针');
285
+ console.log(
286
+ '起点位置:',
287
+ (() => {
288
+ switch (SRC_POSITION$.value) {
289
+ case 'LEFT':
290
+ return '左';
291
+ case 'RIGHT':
292
+ return '右';
293
+ case 'TOP_LEFT':
294
+ return '上左';
295
+ case 'TOP_RIGHT':
296
+ return '上右';
297
+ case 'BOTTOM_LEFT':
298
+ return '下左';
299
+ case 'BOTTOM_RIGHT':
300
+ return '下右';
301
+
302
+ default:
303
+ return '';
304
+ }
305
+ })(),
306
+ );
307
+ console.log('起点:', SRC_COORDINATE$.value);
308
+ console.log('终点:', DST_COORDINATE$.value);
309
+ console.log('中点:', canvasMapData.map?.offset);
310
+ console.log('上左:', TOP_LEFT_COORDINATE$.value);
311
+ console.log('上中:', TOP_CENTER_COORDINATE$.value);
312
+ console.log('上右:', TOP_RIGHT_COORDINATE$.value);
313
+ console.log('下右:', BOTTOM_RIGHT_COORDINATE$.value);
314
+ console.log('下中:', BOTTOM_CENTER_COORDINATE$.value);
315
+ console.log('下左:', BOTTOM_LEFT_COORDINATE$.value);
316
+ console.log('--------------------------------------------------');
317
+
318
+ const pathNode = kgCircularShuttleMonitor.store.getGraph!.createNode(null, 0, 0);
319
+ pathNode.size = new Q.Size(PATH_WIDTH$.value + (PATH_OUTER_RADIUS$.value + LINE_WIDTH / 2) * 2, PATH_HEIGHT$.value + (PATH_LINE_WIDTH$.value + LINE_WIDTH) * 2);
320
+ pathNode.image = drawPath_GetImage();
321
+ pathNode.zIndex = 1;
322
+ pathNode.movable = false;
323
+ pathNode.selectable = false;
324
+ pathNode.putStyles({
325
+ [Q.Styles.PADDING]: LINE_WIDTH * 2,
326
+ [Q.Styles.SHAPE_STROKE]: LINE_WIDTH,
327
+ [Q.Styles.SHAPE_STROKE_STYLE]: '#000000',
328
+ });
329
+ pathNode.properties = {
330
+ key: `${NODE_KEY.PATH}`,
331
+ };
332
+ }
333
+
334
+ /**
335
+ * 绘制轨道:获取节点图形.
336
+ */
337
+ function drawPath_GetImage(): any {
338
+ const x = 0;
339
+ const y = 0;
340
+
341
+ const path = new Q.Path();
342
+
343
+ // 内轨道画笔中心点的矩形宽度
344
+ const INNER_STROKE_WIDTH = PATH_WIDTH$.value;
345
+ // 内轨道画笔中心点的矩形高度
346
+ const INNER_STROKE_HEIGHT = PATH_INNER_RADIUS$.value * 2;
347
+
348
+ // 绘制内轨道,
349
+ path.moveTo(x - INNER_STROKE_WIDTH / 2, y - INNER_STROKE_HEIGHT / 2);
350
+ path.lineTo(x + INNER_STROKE_WIDTH / 2, y - INNER_STROKE_HEIGHT / 2);
351
+ path.arcTo(x + INNER_STROKE_WIDTH / 2 + INNER_STROKE_HEIGHT / 2, y - INNER_STROKE_HEIGHT / 2, x + INNER_STROKE_WIDTH / 2 + INNER_STROKE_HEIGHT / 2, y, INNER_STROKE_HEIGHT / 2);
352
+ path.arcTo(x + INNER_STROKE_WIDTH / 2 + INNER_STROKE_HEIGHT / 2, y + INNER_STROKE_HEIGHT / 2, x + INNER_STROKE_WIDTH / 2, y + INNER_STROKE_HEIGHT / 2, INNER_STROKE_HEIGHT / 2);
353
+ path.lineTo(x - INNER_STROKE_WIDTH / 2, y + INNER_STROKE_HEIGHT / 2);
354
+ path.arcTo(x - INNER_STROKE_WIDTH / 2 - INNER_STROKE_HEIGHT / 2, y + INNER_STROKE_HEIGHT / 2, x - INNER_STROKE_WIDTH / 2 - INNER_STROKE_HEIGHT / 2, y, INNER_STROKE_HEIGHT / 2);
355
+ path.arcTo(x - INNER_STROKE_WIDTH / 2 - INNER_STROKE_HEIGHT / 2, y - INNER_STROKE_HEIGHT / 2, x - INNER_STROKE_WIDTH / 2, y - INNER_STROKE_HEIGHT / 2, INNER_STROKE_HEIGHT / 2);
356
+
357
+ // 外轨道画笔中心点的矩形宽度
358
+ const OUTER_STROKE_WIDTH = PATH_WIDTH$.value;
359
+ // 外轨道画笔中心点的矩形高度
360
+ const OUTER_STROKE_HEIGHT = PATH_OUTER_RADIUS$.value * 2;
361
+
362
+ // 绘制外轨道,
363
+ path.moveTo(x - OUTER_STROKE_WIDTH / 2, y - OUTER_STROKE_HEIGHT / 2);
364
+ path.lineTo(x + OUTER_STROKE_WIDTH / 2, y - OUTER_STROKE_HEIGHT / 2);
365
+ path.arcTo(x + OUTER_STROKE_WIDTH / 2 + OUTER_STROKE_HEIGHT / 2, y - OUTER_STROKE_HEIGHT / 2, x + OUTER_STROKE_WIDTH / 2 + OUTER_STROKE_HEIGHT / 2, y, OUTER_STROKE_HEIGHT / 2);
366
+ path.arcTo(x + OUTER_STROKE_WIDTH / 2 + OUTER_STROKE_HEIGHT / 2, y + OUTER_STROKE_HEIGHT / 2, x + OUTER_STROKE_WIDTH / 2, y + OUTER_STROKE_HEIGHT / 2, OUTER_STROKE_HEIGHT / 2);
367
+ path.lineTo(x - OUTER_STROKE_WIDTH / 2, y + OUTER_STROKE_HEIGHT / 2);
368
+ path.arcTo(x - OUTER_STROKE_WIDTH / 2 - OUTER_STROKE_HEIGHT / 2, y + OUTER_STROKE_HEIGHT / 2, x - OUTER_STROKE_WIDTH / 2 - OUTER_STROKE_HEIGHT / 2, y, OUTER_STROKE_HEIGHT / 2);
369
+ path.arcTo(x - OUTER_STROKE_WIDTH / 2 - OUTER_STROKE_HEIGHT / 2, y - OUTER_STROKE_HEIGHT / 2, x - OUTER_STROKE_WIDTH / 2, y - OUTER_STROKE_HEIGHT / 2, OUTER_STROKE_HEIGHT / 2);
370
+
371
+ return path;
372
+ }
373
+
374
+ /**
375
+ * 更新站点列表.
376
+ */
377
+ function updateStationList(canvasStatusData: StatusDTO | null) {
378
+ if (!kgCircularShuttleMonitor.store.getGraph) {
379
+ return;
380
+ }
381
+
382
+ if (!canvasStatusData) {
383
+ return;
384
+ }
385
+
386
+ // 地图尚未绘制完成, 不能绘制小车,
387
+ if (PATH_LENGTH$.value <= 0 || PATH_WIDTH$.value <= 0 || PATH_HEIGHT$.value <= 0 || PATH_LINE_WIDTH$.value <= 0) {
388
+ return;
389
+ }
390
+
391
+ canvasStatusData.conveyorState.forEach((data, index) => {
392
+ updateStation(index, data, canvasStatusData);
393
+ });
394
+ }
395
+
396
+ /**
397
+ * 更新站点.
398
+ *
399
+ * @param index 索引
400
+ * @param station 站点.
401
+ * @param canvasStatusData 状态数据.
402
+ */
403
+ function updateStation(index: number, station: StatusStationDTO, canvasStatusData: StatusDTO | null) {
404
+ if (!kgCircularShuttleMonitor.store.getGraph) {
405
+ return;
406
+ }
407
+
408
+ const stationNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && i.properties.data?.conveyorNo === station.conveyorNo) as Q.Node;
409
+ if (stationNode) {
410
+ (stationNode.properties.data as MapStationVO).containerId = station.containerId;
411
+ (stationNode.properties.data as MapStationVO).occupiedFlag = station.occupiedFlag;
412
+
413
+ // 站台有货,
414
+ if (station.occupiedFlag === 1) {
415
+ stationNode.putStyles({
416
+ [Q.Styles.SHAPE_STROKE_STYLE]: '#1890ff',
417
+ });
418
+ getNodeUiByKey<Q.ImageUI>(stationNode, NODE_KEY.STATION_UI_CENTER_RECT).ui.fillColor = '#1890ff';
419
+ getNodeUiByKey<Q.ImageUI>(stationNode, NODE_KEY.STATION_UI_ARROW).ui.strokeStyle = '#ffffff';
420
+ getNodeUiByKey<Q.LabelUI>(stationNode, NODE_KEY.STATION_UI_TEXT).ui.color = '#ffffff';
421
+ }
422
+ // 站台无货,
423
+ else {
424
+ stationNode.putStyles({
425
+ [Q.Styles.SHAPE_STROKE_STYLE]: '#000000',
426
+ });
427
+ getNodeUiByKey<Q.ImageUI>(stationNode, NODE_KEY.STATION_UI_CENTER_RECT).ui.fillColor = '#ffffff';
428
+ getNodeUiByKey<Q.ImageUI>(stationNode, NODE_KEY.STATION_UI_ARROW).ui.strokeStyle = '#000000';
429
+ getNodeUiByKey<Q.LabelUI>(stationNode, NODE_KEY.STATION_UI_TEXT).ui.color = '#000000';
430
+ }
431
+ } else {
432
+ // N/A
433
+ }
434
+ }
435
+
436
+ /**
437
+ * 绘制站点列表.
438
+ */
439
+ function drawStationList(canvasMapData: MapDTO | null) {
440
+ if (!kgCircularShuttleMonitor.store.getGraph) {
441
+ return;
442
+ }
443
+
444
+ if (!canvasMapData) {
445
+ return;
446
+ }
447
+
448
+ canvasMapData.conveyor.forEach((data, index) => {
449
+ drawStation(index, data, canvasMapData);
450
+ });
451
+ }
452
+
453
+ /**
454
+ * 绘制巷道列表.
455
+ */
456
+ function drawAisleList() {
457
+ if (!kgCircularShuttleMonitor.store.getGraph) {
458
+ return;
459
+ }
460
+
461
+ // 移除巷道节点,
462
+ const deleteAisleNodeList = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.filter((i) => i.properties?.key?.startsWith(NODE_KEY.AISLE)) ?? [];
463
+ for (let deleteAisleNode of deleteAisleNodeList) {
464
+ kgCircularShuttleMonitor.store.getGraph!.removeElement(deleteAisleNode);
465
+ }
466
+
467
+ // 隐藏巷道,
468
+ if (!kgCircularShuttleMonitor.store.$Canvas$Setting$getIsAisleVisible) {
469
+ return;
470
+ }
471
+
472
+ // 站点节点列表,
473
+ const stationNodeList = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.filter((i) => i.properties?.key?.startsWith(NODE_KEY.STATION)) ?? [];
474
+
475
+ // 巷道数据,
476
+ const aisleMap: Record<
477
+ /**
478
+ * 巷道编号.
479
+ */
480
+ string,
481
+ Array<{
482
+ /**
483
+ * 站点横坐标.
484
+ */
485
+ x: number;
486
+
487
+ /**
488
+ * 站点纵坐标.
489
+ */
490
+ y: number;
491
+ }>
492
+ > = {};
493
+
494
+ for (let stationNode of stationNodeList) {
495
+ const aisle = String((stationNode.properties.data as MapStationVO)?.aisle);
496
+ if (aisle) {
497
+ if (!aisleMap[aisle]) {
498
+ aisleMap[aisle] = [];
499
+ }
500
+
501
+ aisleMap[aisle].push({ x: stationNode.x, y: stationNode.y });
502
+ }
503
+ }
504
+
505
+ Object.keys(aisleMap).forEach((aisle) => {
506
+ const xyList = aisleMap[aisle];
507
+
508
+ const yList = uniq(xyList.map((i) => i.y));
509
+ if (yList.length > 1) {
510
+ ____ERROR____(`KgCircularShuttleMonitor | 绘制巷道 | 同个巷道的多个站点的纵坐标不同 | ${aisle}`);
511
+ } else {
512
+ const y = yList[0];
513
+
514
+ const xList = uniq(xyList.map((i) => i.x));
515
+
516
+ const fromX = Math.min(...xList);
517
+ const toX = Math.max(...xList);
518
+
519
+ drawAisle(aisle, fromX, toX, y);
520
+ }
521
+ });
522
+ }
523
+
524
+ /**
525
+ * 绘制巷道.
526
+ *
527
+ * @param aisle 巷道编号.
528
+ * @param fromX 起点横坐标.
529
+ * @param toX 终点横坐标.
530
+ * @param y 纵坐标.
531
+ */
532
+ function drawAisle(aisle: string, fromX: number, toX: number, y: number) {
533
+ const aisleNode = kgCircularShuttleMonitor.store.getGraph!.createShapeNode(undefined, undefined, 0, 0);
534
+ aisleNode.movable = false;
535
+ aisleNode.zIndex = 2;
536
+ aisleNode.selectable = false;
537
+ aisleNode.putStyles({
538
+ [Q.Styles.SHAPE_STROKE]: LINE_WIDTH,
539
+ [Q.Styles.SHAPE_STROKE_STYLE]: '#00000080',
540
+ });
541
+ aisleNode.properties = {
542
+ key: `${NODE_KEY.AISLE}${aisle}`,
543
+ };
544
+
545
+ // 巷道矩形高度,
546
+ const HEIGHT = LINE_WIDTH * 10;
547
+
548
+ // 巷道在上,
549
+ if (y < 0) {
550
+ const _y = y - CURRENT_STATION_HEIGHT$.value / 2 - LINE_WIDTH * 2.5;
551
+
552
+ aisleNode.moveTo(fromX - CURRENT_STATION_WIDTH$.value / 2 + LINE_WIDTH / 2, _y - HEIGHT);
553
+ aisleNode.lineTo(fromX - CURRENT_STATION_WIDTH$.value / 2 + LINE_WIDTH / 2, _y);
554
+ aisleNode.lineTo(toX + CURRENT_STATION_WIDTH$.value / 2 - LINE_WIDTH / 2, _y);
555
+ aisleNode.lineTo(toX + CURRENT_STATION_WIDTH$.value / 2 - LINE_WIDTH / 2, _y - HEIGHT);
556
+ }
557
+ // 巷道在下,
558
+ else {
559
+ const _y = y + CURRENT_STATION_HEIGHT$.value / 2 + LINE_WIDTH * 2.5;
560
+
561
+ aisleNode.moveTo(fromX - CURRENT_STATION_WIDTH$.value / 2 + LINE_WIDTH / 2, _y + HEIGHT);
562
+ aisleNode.lineTo(fromX - CURRENT_STATION_WIDTH$.value / 2 + LINE_WIDTH / 2, _y);
563
+ aisleNode.lineTo(toX + CURRENT_STATION_WIDTH$.value / 2 - LINE_WIDTH / 2, _y);
564
+ aisleNode.lineTo(toX + CURRENT_STATION_WIDTH$.value / 2 - LINE_WIDTH / 2, _y + HEIGHT);
565
+ }
566
+
567
+ drawAisle_DrawTextUI(aisle, y, aisleNode);
568
+ }
569
+
570
+ /**
571
+ * 绘制巷道:绘制巷道编号.
572
+ *
573
+ * @param aisle 巷道编号.
574
+ * @param aisleNode 巷道节点.
575
+ * @param y 纵坐标.
576
+ */
577
+ function drawAisle_DrawTextUI(aisle: string, y: number, aisleNode: Q.Node): void {
578
+ const labelUI = new Q.LabelUI(aisle);
579
+
580
+ labelUI.code = NODE_KEY.AISLE__UI__TEXT;
581
+ labelUI.fontSize = LINE_WIDTH * 7;
582
+ labelUI.position = Q.Position.CENTER_TOP;
583
+ labelUI.anchorPosition = Q.Position.CENTER_TOP;
584
+ labelUI.alignPosition = Q.Position.CENTER_BOTTOM;
585
+ labelUI.borderRadius = 0;
586
+ labelUI.showPointer = false;
587
+ labelUI.color = '#00000080';
588
+ labelUI.syncSelection = false;
589
+
590
+ // 巷道在上,
591
+ if (y < 0) {
592
+ labelUI.position = Q.Position.CENTER_BOTTOM;
593
+ labelUI.anchorPosition = Q.Position.CENTER_BOTTOM;
594
+ labelUI.alignPosition = Q.Position.CENTER_BOTTOM;
595
+
596
+ labelUI.offsetY = -LINE_WIDTH;
597
+ }
598
+ // 巷道在下,
599
+ else {
600
+ labelUI.position = Q.Position.CENTER_TOP;
601
+ labelUI.anchorPosition = Q.Position.CENTER_TOP;
602
+
603
+ labelUI.offsetY = LINE_WIDTH * 2;
604
+ }
605
+
606
+ aisleNode.addUI(labelUI);
607
+ }
608
+
609
+ /**
610
+ * 绘制站点.
611
+ */
612
+ function drawStation(index: number, station: MapStationVO, canvasMapData: MapDTO | null) {
613
+ if (!kgCircularShuttleMonitor.store.getGraph) {
614
+ return;
615
+ }
616
+
617
+ CURRENT_STATION_WIDTH$.value = station.width ?? 0;
618
+ CURRENT_STATION_HEIGHT$.value = station.length ?? 0;
619
+
620
+ if (CURRENT_STATION_WIDTH$.value <= 0 || CURRENT_STATION_HEIGHT$.value <= 0) {
621
+ return;
622
+ }
623
+
624
+ // 站点距离轨道的间隔距离,
625
+ const STATION_MARGIN: number = LINE_WIDTH * 2;
626
+
627
+ /**
628
+ * 当前站点在轨道的上边还是下边.
629
+ */
630
+ CURRENT_STATION_POSITION$.value = (() => {
631
+ // 顺时针,
632
+ if (canvasMapData?.map?.direction === 0) {
633
+ // 起点在下,
634
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT' || SRC_POSITION$.value === 'BOTTOM_RIGHT' || BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
635
+ if (station.coordinate <= BOTTOM_LEFT_COORDINATE$.value! || station.coordinate >= BOTTOM_RIGHT_COORDINATE$.value!) {
636
+ return 'BOTTOM';
637
+ } else if (station.coordinate >= TOP_LEFT_COORDINATE$.value && station.coordinate <= TOP_RIGHT_COORDINATE$.value) {
638
+ return 'TOP';
639
+ } else {
640
+ return '';
641
+ }
642
+ }
643
+ // 起点在上,
644
+ else if (SRC_POSITION$.value === 'TOP_LEFT' || SRC_POSITION$.value === 'TOP_RIGHT' || TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
645
+ if (station.coordinate <= TOP_RIGHT_COORDINATE$.value! || station.coordinate >= TOP_LEFT_COORDINATE$.value!) {
646
+ return 'TOP';
647
+ } else if (station.coordinate >= BOTTOM_RIGHT_COORDINATE$.value && station.coordinate <= BOTTOM_LEFT_COORDINATE$.value) {
648
+ return 'BOTTOM';
649
+ } else {
650
+ return '';
651
+ }
652
+ }
653
+ // 起左/起右,
654
+ else {
655
+ if (station.coordinate >= BOTTOM_RIGHT_COORDINATE$.value! && station.coordinate <= BOTTOM_LEFT_COORDINATE$.value!) {
656
+ return 'BOTTOM';
657
+ } else if (station.coordinate >= TOP_LEFT_COORDINATE$.value! && station.coordinate <= TOP_RIGHT_COORDINATE$.value!) {
658
+ return 'TOP';
659
+ } else {
660
+ return '';
661
+ }
662
+ }
663
+ }
664
+ // 逆时针,
665
+ else {
666
+ // 起点在下,
667
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT' || SRC_POSITION$.value === 'BOTTOM_RIGHT' || BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
668
+ if (station.coordinate <= BOTTOM_RIGHT_COORDINATE$.value! || station.coordinate >= BOTTOM_LEFT_COORDINATE$.value!) {
669
+ return 'BOTTOM';
670
+ } else if (station.coordinate >= TOP_RIGHT_COORDINATE$.value && station.coordinate <= TOP_LEFT_COORDINATE$.value) {
671
+ return 'TOP';
672
+ } else {
673
+ return '';
674
+ }
675
+ }
676
+ // 起点在上,
677
+ else if (SRC_POSITION$.value === 'TOP_LEFT' || SRC_POSITION$.value === 'TOP_RIGHT' || TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
678
+ if (station.coordinate <= TOP_LEFT_COORDINATE$.value! || station.coordinate >= TOP_RIGHT_COORDINATE$.value!) {
679
+ return 'TOP';
680
+ } else if (station.coordinate >= BOTTOM_LEFT_COORDINATE$.value && station.coordinate <= BOTTOM_RIGHT_COORDINATE$.value) {
681
+ return 'BOTTOM';
682
+ } else {
683
+ return '';
684
+ }
685
+ }
686
+ // 起左/起右,
687
+ else {
688
+ if (station.coordinate >= BOTTOM_LEFT_COORDINATE$.value! && station.coordinate <= BOTTOM_RIGHT_COORDINATE$.value!) {
689
+ return 'BOTTOM';
690
+ } else if (station.coordinate >= TOP_RIGHT_COORDINATE$.value! && station.coordinate <= TOP_LEFT_COORDINATE$.value!) {
691
+ return 'TOP';
692
+ } else {
693
+ return '';
694
+ }
695
+ }
696
+ }
697
+ })();
698
+
699
+ /**
700
+ * 横坐标.
701
+ */
702
+ let x: number = (() => {
703
+ // 顺时针,
704
+ if (canvasMapData?.map?.direction === 0) {
705
+ // 起点在下,
706
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT' || SRC_POSITION$.value === 'BOTTOM_RIGHT' || BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
707
+ if (CURRENT_STATION_POSITION$.value === 'BOTTOM') {
708
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT') {
709
+ if (station.coordinate >= SRC_COORDINATE$.value && station.coordinate <= BOTTOM_LEFT_COORDINATE$.value) {
710
+ return -(station.coordinate - SRC_COORDINATE$.value + (DST_COORDINATE$.value - BOTTOM_CENTER_COORDINATE$.value));
711
+ } else if (station.coordinate >= BOTTOM_CENTER_COORDINATE$.value && station.coordinate <= DST_COORDINATE$.value) {
712
+ return -(station.coordinate - BOTTOM_CENTER_COORDINATE$.value);
713
+ } else {
714
+ return BOTTOM_CENTER_COORDINATE$.value - station.coordinate;
715
+ }
716
+ }
717
+
718
+ if (SRC_POSITION$.value === 'BOTTOM_RIGHT') {
719
+ if (station.coordinate >= BOTTOM_CENTER_COORDINATE$.value && station.coordinate <= BOTTOM_LEFT_COORDINATE$.value) {
720
+ return -(station.coordinate - BOTTOM_CENTER_COORDINATE$.value);
721
+ } else if (station.coordinate >= SRC_COORDINATE$.value && station.coordinate <= BOTTOM_CENTER_COORDINATE$.value) {
722
+ return BOTTOM_CENTER_COORDINATE$.value - station.coordinate;
723
+ } else {
724
+ return BOTTOM_CENTER_COORDINATE$.value - SRC_COORDINATE$.value + DST_COORDINATE$.value - station.coordinate;
725
+ }
726
+ }
727
+
728
+ if (BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
729
+ if (station.coordinate >= SRC_COORDINATE$.value) {
730
+ return -(station.coordinate - SRC_COORDINATE$.value);
731
+ } else {
732
+ return DST_COORDINATE$.value - station.coordinate;
733
+ }
734
+ }
735
+
736
+ return 0;
737
+ } else if (CURRENT_STATION_POSITION$.value === 'TOP') {
738
+ if (station.coordinate <= TOP_CENTER_COORDINATE$.value) {
739
+ return -(TOP_CENTER_COORDINATE$.value - station.coordinate);
740
+ } else {
741
+ return station.coordinate - TOP_CENTER_COORDINATE$.value;
742
+ }
743
+ } else {
744
+ return 0;
745
+ }
746
+ }
747
+ // 起点在上,
748
+ else if (SRC_POSITION$.value === 'TOP_LEFT' || SRC_POSITION$.value === 'TOP_RIGHT' || TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
749
+ if (CURRENT_STATION_POSITION$.value === 'BOTTOM') {
750
+ if (station.coordinate >= BOTTOM_CENTER_COORDINATE$.value) {
751
+ return -(station.coordinate - BOTTOM_CENTER_COORDINATE$.value);
752
+ } else {
753
+ return BOTTOM_CENTER_COORDINATE$.value - station.coordinate;
754
+ }
755
+ } else if (CURRENT_STATION_POSITION$.value === 'TOP') {
756
+ if (SRC_POSITION$.value === 'TOP_LEFT') {
757
+ if (station.coordinate >= TOP_LEFT_COORDINATE$.value && station.coordinate <= DST_COORDINATE$.value) {
758
+ return -(DST_COORDINATE$.value - station.coordinate + TOP_CENTER_COORDINATE$.value - SRC_COORDINATE$.value);
759
+ } else if (station.coordinate >= SRC_COORDINATE$.value && station.coordinate <= TOP_CENTER_COORDINATE$.value) {
760
+ return -(TOP_CENTER_COORDINATE$.value - station.coordinate);
761
+ } else {
762
+ return station.coordinate - TOP_CENTER_COORDINATE$.value;
763
+ }
764
+ }
765
+
766
+ if (SRC_POSITION$.value === 'TOP_RIGHT') {
767
+ if (station.coordinate >= TOP_LEFT_COORDINATE$.value && station.coordinate <= TOP_CENTER_COORDINATE$.value) {
768
+ return -(TOP_CENTER_COORDINATE$.value - station.coordinate);
769
+ } else if (station.coordinate >= TOP_CENTER_COORDINATE$.value && station.coordinate <= DST_COORDINATE$.value) {
770
+ return station.coordinate - TOP_CENTER_COORDINATE$.value;
771
+ } else {
772
+ return DST_COORDINATE$.value - TOP_CENTER_COORDINATE$.value + station.coordinate - SRC_COORDINATE$.value;
773
+ }
774
+ }
775
+
776
+ if (TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
777
+ if (station.coordinate >= SRC_COORDINATE$.value) {
778
+ return station.coordinate - SRC_COORDINATE$.value;
779
+ } else {
780
+ return -(DST_COORDINATE$.value - station.coordinate);
781
+ }
782
+ }
783
+
784
+ return 0;
785
+ } else {
786
+ return 0;
787
+ }
788
+ }
789
+ // 起左/起右,
790
+ else {
791
+ if (CURRENT_STATION_POSITION$.value === 'BOTTOM') {
792
+ if (station.coordinate >= BOTTOM_CENTER_COORDINATE$.value) {
793
+ return -(station.coordinate - BOTTOM_CENTER_COORDINATE$.value);
794
+ } else {
795
+ return BOTTOM_CENTER_COORDINATE$.value - station.coordinate;
796
+ }
797
+ } else if (CURRENT_STATION_POSITION$.value === 'TOP') {
798
+ if (station.coordinate <= TOP_CENTER_COORDINATE$.value) {
799
+ return -(TOP_CENTER_COORDINATE$.value - station.coordinate);
800
+ } else {
801
+ return station.coordinate - TOP_CENTER_COORDINATE$.value;
802
+ }
803
+ } else {
804
+ return 0;
805
+ }
806
+ }
807
+ }
808
+ // 逆时针,
809
+ else {
810
+ // 起点在下,
811
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT' || SRC_POSITION$.value === 'BOTTOM_RIGHT' || BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
812
+ if (CURRENT_STATION_POSITION$.value === 'BOTTOM') {
813
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT') {
814
+ if (station.coordinate >= BOTTOM_LEFT_COORDINATE$.value && station.coordinate <= DST_COORDINATE$.value) {
815
+ return -(DST_COORDINATE$.value - station.coordinate + BOTTOM_CENTER_COORDINATE$.value - SRC_COORDINATE$.value);
816
+ } else if (station.coordinate >= SRC_COORDINATE$.value && station.coordinate <= BOTTOM_CENTER_COORDINATE$.value) {
817
+ return -(BOTTOM_CENTER_COORDINATE$.value - station.coordinate);
818
+ } else {
819
+ return station.coordinate - BOTTOM_CENTER_COORDINATE$.value;
820
+ }
821
+ }
822
+
823
+ if (SRC_POSITION$.value === 'BOTTOM_RIGHT') {
824
+ if (station.coordinate >= BOTTOM_LEFT_COORDINATE$.value && station.coordinate <= BOTTOM_CENTER_COORDINATE$.value) {
825
+ return -(BOTTOM_CENTER_COORDINATE$.value - station.coordinate);
826
+ } else if (station.coordinate >= BOTTOM_CENTER_COORDINATE$.value && station.coordinate <= DST_COORDINATE$.value) {
827
+ return station.coordinate - BOTTOM_CENTER_COORDINATE$.value;
828
+ } else {
829
+ return DST_COORDINATE$.value - BOTTOM_CENTER_COORDINATE$.value + station.coordinate - SRC_COORDINATE$.value;
830
+ }
831
+ }
832
+
833
+ if (BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
834
+ if (station.coordinate <= DST_COORDINATE$.value) {
835
+ return -(SRC_COORDINATE$.value - station.coordinate);
836
+ } else {
837
+ return station.coordinate - SRC_COORDINATE$.value;
838
+ }
839
+ }
840
+
841
+ return 0;
842
+ } else if (CURRENT_STATION_POSITION$.value === 'TOP') {
843
+ if (station.coordinate >= TOP_CENTER_COORDINATE$.value) {
844
+ return -(station.coordinate - TOP_CENTER_COORDINATE$.value);
845
+ } else {
846
+ return TOP_CENTER_COORDINATE$.value - station.coordinate;
847
+ }
848
+ } else {
849
+ return 0;
850
+ }
851
+ }
852
+ // 起点在上,
853
+ else if (SRC_POSITION$.value === 'TOP_LEFT' || SRC_POSITION$.value === 'TOP_RIGHT' || TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
854
+ if (CURRENT_STATION_POSITION$.value === 'BOTTOM') {
855
+ if (station.coordinate <= BOTTOM_CENTER_COORDINATE$.value) {
856
+ return -(BOTTOM_CENTER_COORDINATE$.value - station.coordinate);
857
+ } else {
858
+ return station.coordinate - BOTTOM_CENTER_COORDINATE$.value;
859
+ }
860
+ } else if (CURRENT_STATION_POSITION$.value === 'TOP') {
861
+ if (SRC_POSITION$.value === 'TOP_LEFT') {
862
+ if (station.coordinate >= SRC_COORDINATE$.value && station.coordinate <= TOP_LEFT_COORDINATE$.value) {
863
+ return -(station.coordinate - SRC_COORDINATE$.value + DST_COORDINATE$.value - TOP_CENTER_COORDINATE$.value);
864
+ } else if (station.coordinate >= TOP_CENTER_COORDINATE$.value && station.coordinate <= DST_COORDINATE$.value) {
865
+ return -(station.coordinate - TOP_CENTER_COORDINATE$.value);
866
+ } else {
867
+ return TOP_CENTER_COORDINATE$.value - station.coordinate;
868
+ }
869
+ }
870
+
871
+ if (SRC_POSITION$.value === 'TOP_RIGHT') {
872
+ if (station.coordinate >= TOP_CENTER_COORDINATE$.value && station.coordinate <= TOP_LEFT_COORDINATE$.value) {
873
+ return -(station.coordinate - TOP_CENTER_COORDINATE$.value);
874
+ } else if (station.coordinate >= SRC_COORDINATE$.value && station.coordinate <= TOP_CENTER_COORDINATE$.value) {
875
+ return TOP_CENTER_COORDINATE$.value - station.coordinate;
876
+ } else {
877
+ return TOP_CENTER_COORDINATE$.value - SRC_COORDINATE$.value + DST_COORDINATE$.value - station.coordinate;
878
+ }
879
+ }
880
+
881
+ if (TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
882
+ if (station.coordinate >= SRC_COORDINATE$.value) {
883
+ return -(station.coordinate - SRC_COORDINATE$.value);
884
+ } else {
885
+ return DST_COORDINATE$.value - station.coordinate;
886
+ }
887
+ }
888
+
889
+ return 0;
890
+ } else {
891
+ return 0;
892
+ }
893
+ }
894
+ // 起左/起右,
895
+ else {
896
+ if (CURRENT_STATION_POSITION$.value === 'BOTTOM') {
897
+ if (station.coordinate >= BOTTOM_CENTER_COORDINATE$.value) {
898
+ return station.coordinate - BOTTOM_CENTER_COORDINATE$.value;
899
+ } else {
900
+ return -(BOTTOM_CENTER_COORDINATE$.value - station.coordinate);
901
+ }
902
+ } else if (CURRENT_STATION_POSITION$.value === 'TOP') {
903
+ if (station.coordinate <= TOP_CENTER_COORDINATE$.value) {
904
+ return TOP_CENTER_COORDINATE$.value - station.coordinate;
905
+ } else {
906
+ return -(station.coordinate - TOP_CENTER_COORDINATE$.value);
907
+ }
908
+ } else {
909
+ return 0;
910
+ }
911
+ }
912
+ }
913
+ })();
914
+
915
+ /**
916
+ * 纵坐标.
917
+ */
918
+ let y: number = (() => {
919
+ if (CURRENT_STATION_POSITION$.value === 'BOTTOM') {
920
+ return PATH_OUTER_RADIUS$.value + LINE_WIDTH / 2 + CURRENT_STATION_HEIGHT$.value / 2 + STATION_MARGIN;
921
+ } else if (CURRENT_STATION_POSITION$.value === 'TOP') {
922
+ return -(PATH_OUTER_RADIUS$.value + LINE_WIDTH / 2 + CURRENT_STATION_HEIGHT$.value / 2 + STATION_MARGIN);
923
+ } else {
924
+ return 0;
925
+ }
926
+ })();
927
+
928
+ // 站点刻度有误, 站点不在上下轨道,
929
+ if (x === 0 || y === 0) {
930
+ ____INFO_____('站点在左右的轨道', { data: toRaw(station) });
931
+ return;
932
+ }
933
+
934
+ const stationNode = kgCircularShuttleMonitor.store.getGraph!.createNode(null, x, y);
935
+ stationNode.size = new Q.Size(CURRENT_STATION_WIDTH$.value, CURRENT_STATION_HEIGHT$.value);
936
+ stationNode.image = drawStation_GetImage(x, y, station);
937
+ stationNode.zIndex = 1;
938
+ stationNode.movable = false;
939
+ stationNode.selectable = false;
940
+ stationNode.putStyles({
941
+ [Q.Styles.SHAPE_FILL_COLOR]: '#ffffff',
942
+ [Q.Styles.SHAPE_STROKE]: LINE_WIDTH,
943
+ [Q.Styles.SHAPE_STROKE_STYLE]: '#000000',
944
+ });
945
+ stationNode.properties = {
946
+ data: station,
947
+ isEnableTooltip: true,
948
+ key: `${NODE_KEY.STATION}${station.conveyorNo}`,
949
+ };
950
+
951
+ const centerRectUI = drawStation_DrawCenterRectUI(x, y, station);
952
+ if (centerRectUI) {
953
+ stationNode.addUI(centerRectUI);
954
+ }
955
+
956
+ const arrowUI = drawStation_DrawArrowUI(x, y, station, canvasMapData);
957
+ if (arrowUI) {
958
+ stationNode.addUI(arrowUI);
959
+ }
960
+
961
+ const textUI = drawStation_DrawTextUI(x, y, station);
962
+ if (textUI) {
963
+ stationNode.addUI(textUI);
964
+ }
965
+
966
+ const selectUI = drawStation_DrawSelectUI(station);
967
+ if (selectUI) {
968
+ stationNode.addUI(selectUI);
969
+ }
970
+ }
971
+
972
+ /**
973
+ * 绘制站点:绘制中间矩形.
974
+ *
975
+ * @param x 站点节点的横坐标.
976
+ * @param y 站点节点的纵坐标.
977
+ * @param station 站点.
978
+ */
979
+ function drawStation_DrawCenterRectUI(x: number, y: number, station: MapStationVO): Q.ImageUI | null {
980
+ if (!kgCircularShuttleMonitor.store.getGraph) {
981
+ return null;
982
+ }
983
+
984
+ const WIDTH = CURRENT_STATION_WIDTH$.value - LINE_WIDTH * 2 - 40;
985
+ const HEIGHT = CURRENT_STATION_HEIGHT$.value - LINE_WIDTH * 2 - 40;
986
+
987
+ const path = new Q.Path();
988
+
989
+ path.moveTo(0, 0);
990
+ path.lineTo(WIDTH, 0);
991
+ path.lineTo(WIDTH, HEIGHT);
992
+ path.lineTo(0, HEIGHT);
993
+ path.closePath();
994
+
995
+ const imageUI = new Q.ImageUI(path);
996
+ imageUI.code = NODE_KEY.STATION_UI_CENTER_RECT;
997
+ imageUI.anchorPosition = Q.Position.CENTER_MIDDLE;
998
+ imageUI.position = Q.Position.CENTER_MIDDLE;
999
+ imageUI.fillColor = '#ffffff';
1000
+ imageUI.syncSelection = false;
1001
+
1002
+ return imageUI;
1003
+ }
1004
+
1005
+ /**
1006
+ * 绘制站点:绘制选中时的遮盖效果.
1007
+ *
1008
+ * @param station 站点.
1009
+ */
1010
+ function drawStation_DrawSelectUI(station: MapStationVO): Q.ImageUI | null {
1011
+ if (!kgCircularShuttleMonitor.store.getGraph) {
1012
+ return null;
1013
+ }
1014
+
1015
+ const WIDTH = station.width ?? 0;
1016
+ const HEIGHT = station.length ?? 0;
1017
+
1018
+ const path = new Q.Path();
1019
+
1020
+ path.moveTo(0, 0);
1021
+ path.lineTo(WIDTH, 0);
1022
+ path.lineTo(WIDTH, HEIGHT);
1023
+ path.lineTo(0, HEIGHT);
1024
+ path.closePath();
1025
+
1026
+ const imageUI = new Q.ImageUI(path);
1027
+ imageUI.code = NODE_KEY.STATION_UI_SELECT;
1028
+ imageUI.anchorPosition = Q.Position.CENTER_MIDDLE;
1029
+ imageUI.position = Q.Position.CENTER_MIDDLE;
1030
+ imageUI.syncSelection = false;
1031
+ imageUI.fillColor = isSelectBlinkOn ? '#ffff0075' : '#ffffff00';
1032
+ imageUI.borderColor = isSelectBlinkOn ? '#ffff00' : '#ffffff00';
1033
+ imageUI.border = LINE_WIDTH;
1034
+ imageUI.visible = !!kgCircularShuttleMonitor.store.$Canvas$getCurrentStationList.find((i) => i.conveyorNo === station.conveyorNo);
1035
+
1036
+ return imageUI;
1037
+ }
1038
+
1039
+ /**
1040
+ * 绘制站点:绘制箭头.
1041
+ *
1042
+ * @param x 站点节点的横坐标.
1043
+ * @param y 站点节点的纵坐标.
1044
+ * @param station 站点.
1045
+ * @param canvasMapData 地图数据.
1046
+ */
1047
+ function drawStation_DrawArrowUI(x: number, y: number, station: MapStationVO, canvasMapData: MapDTO | null): Q.ImageUI | null {
1048
+ if (!kgCircularShuttleMonitor.store.getGraph) {
1049
+ return null;
1050
+ }
1051
+
1052
+ // @ts-ignore
1053
+ const imageUI = new Q.ImageUI();
1054
+ imageUI.code = NODE_KEY.STATION_UI_ARROW;
1055
+ imageUI.anchorPosition = Q.Position.CENTER_MIDDLE;
1056
+ imageUI.position = Q.Position.CENTER_MIDDLE;
1057
+ imageUI.lineWidth = LINE_WIDTH / 2;
1058
+ imageUI.strokeStyle = '#000000';
1059
+ imageUI.syncSelection = false;
1060
+
1061
+ // 箭头向上,
1062
+ if ((station.direction === 0 && CURRENT_STATION_POSITION$.value === 'BOTTOM') || (station.direction === 1 && CURRENT_STATION_POSITION$.value === 'TOP')) {
1063
+ const path = new Q.Path();
1064
+
1065
+ // 箭头,
1066
+ path.moveTo(0, 0);
1067
+ path.lineTo((CURRENT_STATION_WIDTH$.value / 10) * 2, (CURRENT_STATION_WIDTH$.value / 10) * 2);
1068
+ path.lineTo(-(CURRENT_STATION_WIDTH$.value / 10) * 2, (CURRENT_STATION_WIDTH$.value / 10) * 2);
1069
+ path.closePath();
1070
+
1071
+ // 尾巴,
1072
+ path.moveTo(0, (CURRENT_STATION_WIDTH$.value / 10) * 2);
1073
+ path.lineTo(0, (CURRENT_STATION_WIDTH$.value / 10) * 2 + LINE_WIDTH * 2);
1074
+ path.lineTo(0, (CURRENT_STATION_WIDTH$.value / 10) * 2);
1075
+ path.closePath();
1076
+
1077
+ imageUI.data = path;
1078
+ imageUI.offsetY = -CURRENT_STATION_HEIGHT$.value / 2 + (CURRENT_STATION_WIDTH$.value / 10) * 2 + LINE_WIDTH * 2;
1079
+ }
1080
+ // 箭头向下,
1081
+ else {
1082
+ const path = new Q.Path();
1083
+
1084
+ // 箭头,
1085
+ path.moveTo(0, 0);
1086
+ path.lineTo(-(CURRENT_STATION_WIDTH$.value / 10) * 2, -(CURRENT_STATION_WIDTH$.value / 10) * 2);
1087
+ path.lineTo((CURRENT_STATION_WIDTH$.value / 10) * 2, -(CURRENT_STATION_WIDTH$.value / 10) * 2);
1088
+ path.closePath();
1089
+
1090
+ // 尾巴,
1091
+ path.moveTo(0, -(CURRENT_STATION_WIDTH$.value / 10) * 2);
1092
+ path.lineTo(0, -(CURRENT_STATION_WIDTH$.value / 10) * 2 - LINE_WIDTH * 2);
1093
+ path.lineTo(0, -(CURRENT_STATION_WIDTH$.value / 10) * 2);
1094
+ path.closePath();
1095
+
1096
+ imageUI.data = path;
1097
+ imageUI.offsetY = -(-CURRENT_STATION_HEIGHT$.value / 2 + (CURRENT_STATION_WIDTH$.value / 10) * 2 + LINE_WIDTH * 2);
1098
+ }
1099
+
1100
+ return imageUI;
1101
+ }
1102
+
1103
+ /**
1104
+ * 绘制站点:绘制站点编号.
1105
+ *
1106
+ * @param x 站点节点的横坐标.
1107
+ * @param y 站点节点的纵坐标.
1108
+ * @param station 站点.
1109
+ */
1110
+ function drawStation_DrawTextUI(x: number, y: number, station: MapStationVO): Q.LabelUI | null {
1111
+ if (!kgCircularShuttleMonitor.store.getGraph) {
1112
+ return null;
1113
+ }
1114
+
1115
+ const labelUI = new Q.LabelUI(station.conveyorNo);
1116
+ labelUI.code = NODE_KEY.STATION_UI_TEXT;
1117
+ labelUI.fontSize = CURRENT_STATION_WIDTH$.value / 4.5;
1118
+ labelUI.fontStyle = 'bold';
1119
+ labelUI.alignPosition = Q.Position.CENTER_MIDDLE;
1120
+ labelUI.borderRadius = 1;
1121
+ labelUI.showPointer = false;
1122
+ labelUI.color = '#000000';
1123
+ labelUI.offsetX = 0;
1124
+
1125
+ labelUI.syncSelection = false;
1126
+
1127
+ // 箭头向上,
1128
+ if ((station.direction === 0 && CURRENT_STATION_POSITION$.value === 'BOTTOM') || (station.direction === 1 && CURRENT_STATION_POSITION$.value === 'TOP')) {
1129
+ labelUI.position = Q.Position.CENTER_BOTTOM;
1130
+ labelUI.anchorPosition = Q.Position.CENTER_BOTTOM;
1131
+ labelUI.offsetY = -(CURRENT_STATION_WIDTH$.value / 10) + LINE_WIDTH / 2;
1132
+ }
1133
+ // 箭头向下,
1134
+ else {
1135
+ labelUI.position = Q.Position.CENTER_TOP;
1136
+ labelUI.anchorPosition = Q.Position.CENTER_TOP;
1137
+ labelUI.offsetY = CURRENT_STATION_WIDTH$.value / 10 + LINE_WIDTH / 2;
1138
+ }
1139
+
1140
+ return labelUI;
1141
+ }
1142
+
1143
+ /**
1144
+ * 绘制站点:获取节点图形.
1145
+ *
1146
+ * @param x 横坐标.
1147
+ * @param y 纵坐标.
1148
+ * @param station 站点.
1149
+ */
1150
+ function drawStation_GetImage(x: number, y: number, station: MapStationVO): any {
1151
+ const path = new Q.Path();
1152
+
1153
+ // 外矩形,
1154
+ path.moveTo(0 + LINE_WIDTH / 2, 0 + LINE_WIDTH / 2);
1155
+ path.lineTo(CURRENT_STATION_WIDTH$.value - LINE_WIDTH / 2, 0 + LINE_WIDTH / 2);
1156
+ path.lineTo(CURRENT_STATION_WIDTH$.value - LINE_WIDTH / 2, CURRENT_STATION_HEIGHT$.value - LINE_WIDTH / 2);
1157
+ path.lineTo(0 + LINE_WIDTH / 2, CURRENT_STATION_HEIGHT$.value - LINE_WIDTH / 2);
1158
+ path.lineTo(0 + LINE_WIDTH / 2, 0 + LINE_WIDTH / 2);
1159
+ path.closePath();
1160
+
1161
+ return path;
1162
+ }
1163
+
1164
+ /**
1165
+ * 绘制小车列表.
1166
+ */
1167
+ function drawRgvList(canvasStatusData: StatusDTO | null) {
1168
+ if (!kgCircularShuttleMonitor.store.getGraph) {
1169
+ return;
1170
+ }
1171
+
1172
+ if (!canvasStatusData) {
1173
+ return;
1174
+ }
1175
+
1176
+ // 地图尚未绘制完成, 不能绘制小车,
1177
+ if (PATH_LENGTH$.value <= 0 || PATH_WIDTH$.value <= 0 || PATH_HEIGHT$.value <= 0 || PATH_LINE_WIDTH$.value <= 0) {
1178
+ return;
1179
+ }
1180
+
1181
+ // 移除不存在的小车节点,
1182
+ const deleteRgvNodeList = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.filter((i) => i.properties?.key?.startsWith(NODE_KEY.RGV) && !canvasStatusData.rgvState?.find((j) => j.rgvNo === i.properties?.data?.rgvNo)) ?? [];
1183
+ for (let node of deleteRgvNodeList) {
1184
+ kgCircularShuttleMonitor.store.getGraph!.removeElement(node);
1185
+ }
1186
+
1187
+ // 移除不存在的小车路线节点,
1188
+ const deleteRgvPathNodeList =
1189
+ kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.filter(
1190
+ (i) =>
1191
+ (i.properties?.key?.startsWith(NODE_KEY.RGV__PATH) || i.properties?.key?.startsWith(NODE_KEY.RGV__PATH__LINE) || i.properties?.key?.startsWith(NODE_KEY.RGV__PATH__RGV)) &&
1192
+ !canvasStatusData.rgvState?.find((j) => j.rgvNo === i.properties?.data?.rgvNo),
1193
+ ) ?? [];
1194
+ for (let node of deleteRgvPathNodeList) {
1195
+ kgCircularShuttleMonitor.store.getGraph!.removeElement(node);
1196
+ }
1197
+
1198
+ // 移除离线小车节点,
1199
+ for (let rgv of canvasStatusData.rgvState ?? []) {
1200
+ if (rgv.state === 0) {
1201
+ let node = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.RGV) && i.properties.data?.rgvNo === rgv.rgvNo) as Q.Node;
1202
+ if (node) {
1203
+ kgCircularShuttleMonitor.store.getGraph!.removeElement(node);
1204
+ }
1205
+ }
1206
+ }
1207
+
1208
+ (canvasStatusData.rgvState ?? [])
1209
+ .filter((i) => i.state !== 0)
1210
+ .forEach((rgv, index) => {
1211
+ drawRgv(canvasStatusData, index, rgv);
1212
+ });
1213
+ }
1214
+
1215
+ /**
1216
+ * 绘制小车.
1217
+ *
1218
+ * @param canvasStatusData 状态数据.
1219
+ * @param index 序号.
1220
+ * @param rgv 小车.
1221
+ */
1222
+ function drawRgv(canvasStatusData: StatusDTO, index: number, rgv: StatusRgvVO) {
1223
+ if (!kgCircularShuttleMonitor.store.getGraph) {
1224
+ return;
1225
+ }
1226
+
1227
+ CURRENT_RGV_WIDTH$.value = rgv.length ?? 0;
1228
+ CURRENT_RGV_HEIGHT$.value = rgv.width ?? 0;
1229
+
1230
+ if (CURRENT_RGV_WIDTH$.value <= 0 || CURRENT_RGV_HEIGHT$.value <= 0) {
1231
+ return;
1232
+ }
1233
+
1234
+ // 当前小车在轨道上的半径,
1235
+ const rgvRadius = (() => {
1236
+ // 显示小车路线,
1237
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvPathVisible) {
1238
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
1239
+ return PATH_INNER_RADIUS$.value + LINE_WIDTH / 2 + kgCircularShuttleMonitor.store.$Canvas$Setting$getRgvMarginY * (index + 1 + 1) + (rgv.width / 2) * ((index + 1) * 2 + 1);
1240
+ } else {
1241
+ return PATH_INNER_RADIUS$.value + LINE_WIDTH / 2 + kgCircularShuttleMonitor.store.$Canvas$Setting$getRgvMarginY * (0 + 1) + (rgv.width / 2) * (0 * 2 + 1);
1242
+ }
1243
+ }
1244
+ // 隐藏小车路线,
1245
+ else {
1246
+ return PATH_INNER_RADIUS$.value + LINE_WIDTH / 2 + kgCircularShuttleMonitor.store.$Canvas$Setting$getRgvMarginY * (0 + 1) + (rgv.width / 2) * (0 * 2 + 1);
1247
+ }
1248
+ })();
1249
+
1250
+ // 当前小车路线在轨道上的半径,
1251
+ const rgvPathRadius = (() => {
1252
+ // 显示小车路线,
1253
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvPathVisible) {
1254
+ return PATH_INNER_RADIUS$.value + LINE_WIDTH / 2 + kgCircularShuttleMonitor.store.$Canvas$Setting$getRgvMarginY * (index + 1 + 1) + (rgv.width / 2) * ((index + 1) * 2 + 1);
1255
+ }
1256
+ // 隐藏小车路线,
1257
+ else {
1258
+ return PATH_INNER_RADIUS$.value + LINE_WIDTH / 2 + kgCircularShuttleMonitor.store.$Canvas$Setting$getRgvMarginY * (0 + 1) + (rgv.width / 2) * (0 * 2 + 1);
1259
+ }
1260
+ })();
1261
+
1262
+ drawRgv_GetCurrentPosition(rgv);
1263
+
1264
+ const x = drawRgv_GetX(rgv.position, rgvRadius);
1265
+ const y = drawRgv_GetY(rgv.position, rgvRadius);
1266
+ const rotate = drawRgv_GetRotate(rgv.position);
1267
+
1268
+ let rgvNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.RGV) && i.properties.data?.rgvNo === rgv.rgvNo) as Q.Node;
1269
+
1270
+ // 小车节点已经存在, 直接更新状态,
1271
+ if (rgvNode) {
1272
+ rgvNode.x = x;
1273
+ rgvNode.y = y;
1274
+ rgvNode.rotate = rotate;
1275
+ rgvNode.putStyles({
1276
+ [Q.Styles.SHAPE_STROKE_STYLE]: drawRgv_GetColorByState(rgv.state),
1277
+ });
1278
+ rgvNode.properties.data = rgv;
1279
+
1280
+ getNodeUiByKey<Q.LabelUI>(rgvNode, NODE_KEY.RGV__UI__TEXT).ui.color = drawRgv_GetTextColorByState(rgv.state);
1281
+ getNodeUiByKey<Q.ImageUI>(rgvNode, NODE_KEY.RGV__UI__CONTAINER).ui.fillColor = rgv.loadState === 1 ? drawRgv_GetColorByState(rgv.state) : '#ffffff';
1282
+ getNodeUiByKey<Q.ImageUI>(rgvNode, NODE_KEY.RGV__UI__TEXT_BACKGROUND).ui.fillColor = drawRgv_GetColorByState(rgv.state);
1283
+ }
1284
+ // 小车节点尚不存在, 重新绘制,
1285
+ else {
1286
+ rgvNode = kgCircularShuttleMonitor.store.getGraph!.createNode(null, x, y);
1287
+ rgvNode.size = new Q.Size(CURRENT_RGV_WIDTH$.value, CURRENT_RGV_HEIGHT$.value);
1288
+ rgvNode.image = drawRgv_GetImage(x, y, rgv);
1289
+ rgvNode.zIndex = 3;
1290
+ rgvNode.movable = false;
1291
+ rgvNode.selectable = false;
1292
+ rgvNode.rotate = rotate;
1293
+ rgvNode.putStyles({
1294
+ [Q.Styles.SHAPE_FILL_COLOR]: '#ffffff',
1295
+ [Q.Styles.SHAPE_STROKE]: LINE_WIDTH,
1296
+ [Q.Styles.SHAPE_STROKE_STYLE]: drawRgv_GetColorByState(rgv.state),
1297
+ });
1298
+ rgvNode.properties = {
1299
+ data: rgv,
1300
+ isEnableTooltip: true,
1301
+ key: `${NODE_KEY.RGV}${rgv.rgvNo}`,
1302
+ };
1303
+
1304
+ drawRgv_DrawTextBackgroundUI(rgv, rgvNode);
1305
+ drawRgv_DrawTextUI(rgv, rgvNode);
1306
+ drawRgv_DrawContainerUI(rgv, rgvNode);
1307
+ drawRgv_DrawSelectUI(rgv, rgvNode);
1308
+ }
1309
+
1310
+ drawRgv_DrawPath(canvasStatusData, index, rgv, rgvNode, rgvPathRadius);
1311
+ drawRgv_DrawPath_DrawLine(canvasStatusData, index, rgv, rgvNode, rgvPathRadius);
1312
+ drawRgv_DrawPath_DrawRgv(canvasStatusData, index, rgv, rgvNode, rgvPathRadius);
1313
+ }
1314
+
1315
+ /**
1316
+ * <p>绘制小车:计算小车位置.</p>
1317
+ * <p>当前小车在轨道的上边还是下边还是左边还是右边.</p>
1318
+ */
1319
+ function drawRgv_GetCurrentPosition(rgv: StatusRgvVO): void {
1320
+ CURRENT_RGV_POSITION$.value = (() => {
1321
+ // 顺时针,
1322
+ if (PATH_DIRECTION$.value === 0) {
1323
+ // 起点在下,
1324
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT' || SRC_POSITION$.value === 'BOTTOM_RIGHT' || BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1325
+ if (rgv.position <= BOTTOM_LEFT_COORDINATE$.value! || rgv.position >= BOTTOM_RIGHT_COORDINATE$.value!) {
1326
+ return 'BOTTOM';
1327
+ } else if (rgv.position >= TOP_LEFT_COORDINATE$.value && rgv.position <= TOP_RIGHT_COORDINATE$.value) {
1328
+ return 'TOP';
1329
+ } else if (rgv.position >= BOTTOM_LEFT_COORDINATE$.value && rgv.position <= TOP_LEFT_COORDINATE$.value) {
1330
+ return 'LEFT';
1331
+ } else {
1332
+ return 'RIGHT';
1333
+ }
1334
+ }
1335
+ // 起点在上,
1336
+ else if (SRC_POSITION$.value === 'TOP_LEFT' || SRC_POSITION$.value === 'TOP_RIGHT' || TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1337
+ if (rgv.position <= TOP_RIGHT_COORDINATE$.value! || rgv.position >= TOP_LEFT_COORDINATE$.value!) {
1338
+ return 'TOP';
1339
+ } else if (rgv.position >= BOTTOM_RIGHT_COORDINATE$.value && rgv.position <= BOTTOM_LEFT_COORDINATE$.value) {
1340
+ return 'BOTTOM';
1341
+ } else if (rgv.position >= BOTTOM_LEFT_COORDINATE$.value && rgv.position <= TOP_LEFT_COORDINATE$.value) {
1342
+ return 'LEFT';
1343
+ } else {
1344
+ return 'RIGHT';
1345
+ }
1346
+ }
1347
+ // 起点在左,
1348
+ else if (SRC_POSITION$.value === 'LEFT') {
1349
+ if (rgv.position >= TOP_LEFT_COORDINATE$.value! && rgv.position <= TOP_RIGHT_COORDINATE$.value!) {
1350
+ return 'TOP';
1351
+ } else if (rgv.position >= BOTTOM_RIGHT_COORDINATE$.value && rgv.position <= BOTTOM_LEFT_COORDINATE$.value) {
1352
+ return 'BOTTOM';
1353
+ } else if (rgv.position >= TOP_RIGHT_COORDINATE$.value && rgv.position <= BOTTOM_RIGHT_COORDINATE$.value) {
1354
+ return 'RIGHT';
1355
+ } else {
1356
+ return 'LEFT';
1357
+ }
1358
+ }
1359
+ // 起点在右,
1360
+ else {
1361
+ if (rgv.position >= TOP_LEFT_COORDINATE$.value! && rgv.position <= TOP_RIGHT_COORDINATE$.value!) {
1362
+ return 'TOP';
1363
+ } else if (rgv.position >= BOTTOM_RIGHT_COORDINATE$.value && rgv.position <= BOTTOM_LEFT_COORDINATE$.value) {
1364
+ return 'BOTTOM';
1365
+ } else if (rgv.position >= BOTTOM_LEFT_COORDINATE$.value && rgv.position <= TOP_LEFT_COORDINATE$.value) {
1366
+ return 'LEFT';
1367
+ } else {
1368
+ return 'RIGHT';
1369
+ }
1370
+ }
1371
+ }
1372
+ // 逆时针,
1373
+ else {
1374
+ // 起点在下,
1375
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT' || SRC_POSITION$.value === 'BOTTOM_RIGHT' || BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1376
+ if (rgv.position >= BOTTOM_RIGHT_COORDINATE$.value! && rgv.position <= TOP_RIGHT_COORDINATE$.value!) {
1377
+ return 'RIGHT';
1378
+ } else if (rgv.position >= TOP_RIGHT_COORDINATE$.value && rgv.position <= TOP_LEFT_COORDINATE$.value) {
1379
+ return 'TOP';
1380
+ } else if (rgv.position >= TOP_LEFT_COORDINATE$.value && rgv.position <= BOTTOM_LEFT_COORDINATE$.value) {
1381
+ return 'LEFT';
1382
+ } else {
1383
+ return 'BOTTOM';
1384
+ }
1385
+ }
1386
+ // 起点在上,
1387
+ else if (SRC_POSITION$.value === 'TOP_LEFT' || SRC_POSITION$.value === 'TOP_RIGHT' || TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1388
+ if (rgv.position >= TOP_LEFT_COORDINATE$.value! && rgv.position <= BOTTOM_LEFT_COORDINATE$.value!) {
1389
+ return 'LEFT';
1390
+ } else if (rgv.position >= BOTTOM_LEFT_COORDINATE$.value && rgv.position <= BOTTOM_RIGHT_COORDINATE$.value) {
1391
+ return 'BOTTOM';
1392
+ } else if (rgv.position >= BOTTOM_RIGHT_COORDINATE$.value && rgv.position <= TOP_RIGHT_COORDINATE$.value) {
1393
+ return 'RIGHT';
1394
+ } else {
1395
+ return 'TOP';
1396
+ }
1397
+ }
1398
+ // 起点在左,
1399
+ else if (SRC_POSITION$.value === 'LEFT') {
1400
+ if (rgv.position >= TOP_RIGHT_COORDINATE$.value! && rgv.position <= TOP_LEFT_COORDINATE$.value!) {
1401
+ return 'TOP';
1402
+ } else if (rgv.position >= BOTTOM_LEFT_COORDINATE$.value && rgv.position <= BOTTOM_RIGHT_COORDINATE$.value) {
1403
+ return 'BOTTOM';
1404
+ } else if (rgv.position >= BOTTOM_RIGHT_COORDINATE$.value && rgv.position <= TOP_RIGHT_COORDINATE$.value) {
1405
+ return 'RIGHT';
1406
+ } else {
1407
+ return 'LEFT';
1408
+ }
1409
+ }
1410
+ // 起点在右,
1411
+ else {
1412
+ if (rgv.position >= TOP_RIGHT_COORDINATE$.value! && rgv.position <= TOP_LEFT_COORDINATE$.value!) {
1413
+ return 'TOP';
1414
+ } else if (rgv.position >= BOTTOM_LEFT_COORDINATE$.value && rgv.position <= BOTTOM_RIGHT_COORDINATE$.value) {
1415
+ return 'BOTTOM';
1416
+ } else if (rgv.position >= TOP_LEFT_COORDINATE$.value && rgv.position <= BOTTOM_LEFT_COORDINATE$.value) {
1417
+ return 'LEFT';
1418
+ } else {
1419
+ return 'RIGHT';
1420
+ }
1421
+ }
1422
+ }
1423
+ })();
1424
+ }
1425
+
1426
+ /**
1427
+ * 绘制小车:计算横坐标.
1428
+ *
1429
+ * @param coordinate 刻度.
1430
+ * @param radius 轨道半径.
1431
+ */
1432
+ function drawRgv_GetX(coordinate: number, radius: number): number {
1433
+ // 顺时针,
1434
+ if (PATH_DIRECTION$.value === 0) {
1435
+ // 起点在下,
1436
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT' || SRC_POSITION$.value === 'BOTTOM_RIGHT' || BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1437
+ // 小车在下,
1438
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1439
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT') {
1440
+ if (coordinate >= SRC_COORDINATE$.value && coordinate <= BOTTOM_LEFT_COORDINATE$.value) {
1441
+ return -(coordinate - SRC_COORDINATE$.value + (DST_COORDINATE$.value - BOTTOM_CENTER_COORDINATE$.value));
1442
+ } else if (coordinate >= BOTTOM_CENTER_COORDINATE$.value && coordinate <= DST_COORDINATE$.value) {
1443
+ return -(coordinate - BOTTOM_CENTER_COORDINATE$.value);
1444
+ } else {
1445
+ return BOTTOM_CENTER_COORDINATE$.value - coordinate;
1446
+ }
1447
+ }
1448
+
1449
+ if (SRC_POSITION$.value === 'BOTTOM_RIGHT') {
1450
+ if (coordinate >= BOTTOM_CENTER_COORDINATE$.value && coordinate <= BOTTOM_LEFT_COORDINATE$.value) {
1451
+ return -(coordinate - BOTTOM_CENTER_COORDINATE$.value);
1452
+ } else if (coordinate >= SRC_COORDINATE$.value && coordinate <= BOTTOM_CENTER_COORDINATE$.value) {
1453
+ return BOTTOM_CENTER_COORDINATE$.value - coordinate;
1454
+ } else {
1455
+ return BOTTOM_CENTER_COORDINATE$.value - SRC_COORDINATE$.value + DST_COORDINATE$.value - coordinate;
1456
+ }
1457
+ }
1458
+
1459
+ if (BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1460
+ if (coordinate >= SRC_COORDINATE$.value) {
1461
+ return -(coordinate - SRC_COORDINATE$.value);
1462
+ } else {
1463
+ return DST_COORDINATE$.value - coordinate;
1464
+ }
1465
+ }
1466
+
1467
+ return 0;
1468
+ }
1469
+ // 小车在上,
1470
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1471
+ if (coordinate <= TOP_CENTER_COORDINATE$.value) {
1472
+ return -(TOP_CENTER_COORDINATE$.value - coordinate);
1473
+ } else {
1474
+ return coordinate - TOP_CENTER_COORDINATE$.value;
1475
+ }
1476
+ }
1477
+ // 小车在左,
1478
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1479
+ const radian = drawRgv_GetRadianByArcLength(coordinate - BOTTOM_LEFT_COORDINATE$.value);
1480
+ return -radius * Math.sin(radian) - PATH_WIDTH$.value / 2;
1481
+ }
1482
+ // 小车在右,
1483
+ else {
1484
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(coordinate - TOP_RIGHT_COORDINATE$.value);
1485
+ return -radius * Math.sin(radian) + PATH_WIDTH$.value / 2;
1486
+ }
1487
+ }
1488
+ // 起点在上,
1489
+ else if (SRC_POSITION$.value === 'TOP_LEFT' || SRC_POSITION$.value === 'TOP_RIGHT' || TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1490
+ // 小车在下,
1491
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1492
+ if (coordinate >= BOTTOM_CENTER_COORDINATE$.value) {
1493
+ return -(coordinate - BOTTOM_CENTER_COORDINATE$.value);
1494
+ } else {
1495
+ return BOTTOM_CENTER_COORDINATE$.value - coordinate;
1496
+ }
1497
+ }
1498
+ // 小车在上,
1499
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1500
+ if (SRC_POSITION$.value === 'TOP_LEFT') {
1501
+ if (coordinate >= TOP_LEFT_COORDINATE$.value && coordinate <= DST_COORDINATE$.value) {
1502
+ return -(DST_COORDINATE$.value - coordinate + TOP_CENTER_COORDINATE$.value - SRC_COORDINATE$.value);
1503
+ } else if (coordinate >= SRC_COORDINATE$.value && coordinate <= TOP_CENTER_COORDINATE$.value) {
1504
+ return -(TOP_CENTER_COORDINATE$.value - coordinate);
1505
+ } else {
1506
+ return coordinate - TOP_CENTER_COORDINATE$.value;
1507
+ }
1508
+ }
1509
+
1510
+ if (SRC_POSITION$.value === 'TOP_RIGHT') {
1511
+ if (coordinate >= TOP_LEFT_COORDINATE$.value && coordinate <= TOP_CENTER_COORDINATE$.value) {
1512
+ return -(TOP_CENTER_COORDINATE$.value - coordinate);
1513
+ } else if (coordinate >= TOP_CENTER_COORDINATE$.value && coordinate <= DST_COORDINATE$.value) {
1514
+ return coordinate - TOP_CENTER_COORDINATE$.value;
1515
+ } else {
1516
+ return DST_COORDINATE$.value - TOP_CENTER_COORDINATE$.value + coordinate - SRC_COORDINATE$.value;
1517
+ }
1518
+ }
1519
+
1520
+ if (TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1521
+ if (coordinate >= SRC_COORDINATE$.value) {
1522
+ return coordinate - SRC_COORDINATE$.value;
1523
+ } else {
1524
+ return -(DST_COORDINATE$.value - coordinate);
1525
+ }
1526
+ }
1527
+
1528
+ return 0;
1529
+ }
1530
+ // 小车在左,
1531
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1532
+ const radian = drawRgv_GetRadianByArcLength(coordinate - BOTTOM_LEFT_COORDINATE$.value);
1533
+ return -radius * Math.sin(radian) - PATH_WIDTH$.value / 2;
1534
+ }
1535
+ // 小车在右,
1536
+ else {
1537
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(coordinate - TOP_RIGHT_COORDINATE$.value);
1538
+ return -radius * Math.sin(radian) + PATH_WIDTH$.value / 2;
1539
+ }
1540
+ }
1541
+ // 起点在左,
1542
+ else if (SRC_POSITION$.value === 'LEFT') {
1543
+ // 小车在下,
1544
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1545
+ if (coordinate >= BOTTOM_CENTER_COORDINATE$.value) {
1546
+ return -(coordinate - BOTTOM_CENTER_COORDINATE$.value);
1547
+ } else {
1548
+ return BOTTOM_CENTER_COORDINATE$.value - coordinate;
1549
+ }
1550
+ }
1551
+ // 小车在上,
1552
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1553
+ if (coordinate <= TOP_CENTER_COORDINATE$.value) {
1554
+ return -(TOP_CENTER_COORDINATE$.value - coordinate);
1555
+ } else {
1556
+ return coordinate - TOP_CENTER_COORDINATE$.value;
1557
+ }
1558
+ }
1559
+ // 小车在左,
1560
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1561
+ const radian = drawRgv_GetRadianByArcLength((coordinate < BOTTOM_LEFT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - BOTTOM_LEFT_COORDINATE$.value);
1562
+ return -radius * Math.sin(radian) - PATH_WIDTH$.value / 2;
1563
+ }
1564
+ // 小车在右,
1565
+ else {
1566
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(coordinate - TOP_RIGHT_COORDINATE$.value);
1567
+ return -radius * Math.sin(radian) + PATH_WIDTH$.value / 2;
1568
+ }
1569
+ }
1570
+ // 起点在右,
1571
+ else {
1572
+ // 小车在下,
1573
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1574
+ if (coordinate >= BOTTOM_CENTER_COORDINATE$.value) {
1575
+ return -(coordinate - BOTTOM_CENTER_COORDINATE$.value);
1576
+ } else {
1577
+ return BOTTOM_CENTER_COORDINATE$.value - coordinate;
1578
+ }
1579
+ }
1580
+ // 小车在上,
1581
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1582
+ if (coordinate <= TOP_CENTER_COORDINATE$.value) {
1583
+ return -(TOP_CENTER_COORDINATE$.value - coordinate);
1584
+ } else {
1585
+ return coordinate - TOP_CENTER_COORDINATE$.value;
1586
+ }
1587
+ }
1588
+ // 小车在左,
1589
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1590
+ const radian = drawRgv_GetRadianByArcLength(coordinate - BOTTOM_LEFT_COORDINATE$.value);
1591
+ return -radius * Math.sin(radian) - PATH_WIDTH$.value / 2;
1592
+ }
1593
+ // 小车在右,
1594
+ else {
1595
+ const radian = Math.PI + drawRgv_GetRadianByArcLength((coordinate < TOP_RIGHT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - TOP_RIGHT_COORDINATE$.value);
1596
+ return -radius * Math.sin(radian) + PATH_WIDTH$.value / 2;
1597
+ }
1598
+ }
1599
+ }
1600
+ // 逆时针,
1601
+ else {
1602
+ // 起点在下,
1603
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT' || SRC_POSITION$.value === 'BOTTOM_RIGHT' || BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1604
+ // 小车在下,
1605
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1606
+ if (SRC_POSITION$.value === 'BOTTOM_LEFT') {
1607
+ if (coordinate >= BOTTOM_LEFT_COORDINATE$.value && coordinate <= DST_COORDINATE$.value) {
1608
+ return -(DST_COORDINATE$.value - coordinate + BOTTOM_CENTER_COORDINATE$.value - SRC_COORDINATE$.value);
1609
+ } else if (coordinate >= SRC_COORDINATE$.value && coordinate <= BOTTOM_CENTER_COORDINATE$.value) {
1610
+ return -(BOTTOM_CENTER_COORDINATE$.value - coordinate);
1611
+ } else {
1612
+ return coordinate - BOTTOM_CENTER_COORDINATE$.value;
1613
+ }
1614
+ }
1615
+
1616
+ if (SRC_POSITION$.value === 'BOTTOM_RIGHT') {
1617
+ if (coordinate >= BOTTOM_LEFT_COORDINATE$.value && coordinate <= BOTTOM_CENTER_COORDINATE$.value) {
1618
+ return -(BOTTOM_CENTER_COORDINATE$.value - coordinate);
1619
+ } else if (coordinate >= BOTTOM_CENTER_COORDINATE$.value && coordinate <= DST_COORDINATE$.value) {
1620
+ return coordinate - BOTTOM_CENTER_COORDINATE$.value;
1621
+ } else {
1622
+ return DST_COORDINATE$.value - BOTTOM_CENTER_COORDINATE$.value + coordinate - SRC_COORDINATE$.value;
1623
+ }
1624
+ }
1625
+
1626
+ if (BOTTOM_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || BOTTOM_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1627
+ if (coordinate <= DST_COORDINATE$.value) {
1628
+ return -(SRC_COORDINATE$.value - coordinate);
1629
+ } else {
1630
+ return coordinate - SRC_COORDINATE$.value;
1631
+ }
1632
+ }
1633
+
1634
+ return 0;
1635
+ }
1636
+ // 小车在上,
1637
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1638
+ if (coordinate >= TOP_CENTER_COORDINATE$.value) {
1639
+ return -(coordinate - TOP_CENTER_COORDINATE$.value);
1640
+ } else {
1641
+ return TOP_CENTER_COORDINATE$.value - coordinate;
1642
+ }
1643
+ }
1644
+ // 小车在左,
1645
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1646
+ const radian = drawRgv_GetRadianByArcLength(BOTTOM_LEFT_COORDINATE$.value - coordinate);
1647
+ return -radius * Math.sin(radian) - PATH_WIDTH$.value / 2;
1648
+ }
1649
+ // 小车在右,
1650
+ else {
1651
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(TOP_RIGHT_COORDINATE$.value - coordinate);
1652
+ return -radius * Math.sin(radian) + PATH_WIDTH$.value / 2;
1653
+ }
1654
+ }
1655
+ // 起点在上,
1656
+ else if (SRC_POSITION$.value === 'TOP_LEFT' || SRC_POSITION$.value === 'TOP_RIGHT' || TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1657
+ // 小车在下,
1658
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1659
+ if (coordinate <= BOTTOM_CENTER_COORDINATE$.value) {
1660
+ return -(BOTTOM_CENTER_COORDINATE$.value - coordinate);
1661
+ } else {
1662
+ return coordinate - BOTTOM_CENTER_COORDINATE$.value;
1663
+ }
1664
+ }
1665
+ // 小车在上,
1666
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1667
+ if (SRC_POSITION$.value === 'TOP_LEFT') {
1668
+ if (coordinate >= SRC_COORDINATE$.value && coordinate <= TOP_LEFT_COORDINATE$.value) {
1669
+ return -(coordinate - SRC_COORDINATE$.value + DST_COORDINATE$.value - TOP_CENTER_COORDINATE$.value);
1670
+ } else if (coordinate >= TOP_CENTER_COORDINATE$.value && coordinate <= DST_COORDINATE$.value) {
1671
+ return -(coordinate - TOP_CENTER_COORDINATE$.value);
1672
+ } else {
1673
+ return TOP_CENTER_COORDINATE$.value - coordinate;
1674
+ }
1675
+ }
1676
+
1677
+ if (SRC_POSITION$.value === 'TOP_RIGHT') {
1678
+ if (coordinate >= TOP_CENTER_COORDINATE$.value && coordinate <= TOP_LEFT_COORDINATE$.value) {
1679
+ return -(coordinate - TOP_CENTER_COORDINATE$.value);
1680
+ } else if (coordinate >= SRC_COORDINATE$.value && coordinate <= TOP_CENTER_COORDINATE$.value) {
1681
+ return TOP_CENTER_COORDINATE$.value - coordinate;
1682
+ } else {
1683
+ return TOP_CENTER_COORDINATE$.value - SRC_COORDINATE$.value + DST_COORDINATE$.value - coordinate;
1684
+ }
1685
+ }
1686
+
1687
+ if (TOP_CENTER_COORDINATE$.value === SRC_COORDINATE$.value || TOP_CENTER_COORDINATE$.value === DST_COORDINATE$.value) {
1688
+ if (coordinate >= SRC_COORDINATE$.value) {
1689
+ return -(coordinate - SRC_COORDINATE$.value);
1690
+ } else {
1691
+ return DST_COORDINATE$.value - coordinate;
1692
+ }
1693
+ }
1694
+
1695
+ return 0;
1696
+ }
1697
+ // 小车在左,
1698
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1699
+ const radian = drawRgv_GetRadianByArcLength(BOTTOM_LEFT_COORDINATE$.value - coordinate);
1700
+ return -radius * Math.sin(radian) - PATH_WIDTH$.value / 2;
1701
+ }
1702
+ // 小车在右,
1703
+ else {
1704
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(TOP_RIGHT_COORDINATE$.value - coordinate);
1705
+ return -radius * Math.sin(radian) + PATH_WIDTH$.value / 2;
1706
+ }
1707
+ }
1708
+ // 起点在左,
1709
+ else if (SRC_POSITION$.value === 'LEFT') {
1710
+ // 小车在下,
1711
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1712
+ if (coordinate >= BOTTOM_CENTER_COORDINATE$.value) {
1713
+ return coordinate - BOTTOM_CENTER_COORDINATE$.value;
1714
+ } else {
1715
+ return -(BOTTOM_CENTER_COORDINATE$.value - coordinate);
1716
+ }
1717
+ }
1718
+ // 小车在上,
1719
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1720
+ if (coordinate <= TOP_CENTER_COORDINATE$.value) {
1721
+ return TOP_CENTER_COORDINATE$.value - coordinate;
1722
+ } else {
1723
+ return -(coordinate - TOP_CENTER_COORDINATE$.value);
1724
+ }
1725
+ }
1726
+ // 小车在左,
1727
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1728
+ const radian = drawRgv_GetRadianByArcLength(
1729
+ BOTTOM_LEFT_COORDINATE$.value -
1730
+ SRC_COORDINATE$.value +
1731
+ DST_COORDINATE$.value -
1732
+ TOP_LEFT_COORDINATE$.value -
1733
+ ((coordinate < TOP_LEFT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - TOP_LEFT_COORDINATE$.value),
1734
+ );
1735
+ return -radius * Math.sin(radian) - PATH_WIDTH$.value / 2;
1736
+ }
1737
+ // 小车在右,
1738
+ else {
1739
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(TOP_RIGHT_COORDINATE$.value - coordinate);
1740
+ return -radius * Math.sin(radian) + PATH_WIDTH$.value / 2;
1741
+ }
1742
+ }
1743
+ // 起点在右,
1744
+ else {
1745
+ // 小车在下,
1746
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1747
+ if (coordinate >= BOTTOM_CENTER_COORDINATE$.value) {
1748
+ return coordinate - BOTTOM_CENTER_COORDINATE$.value;
1749
+ } else {
1750
+ return -(BOTTOM_CENTER_COORDINATE$.value - coordinate);
1751
+ }
1752
+ }
1753
+ // 小车在上,
1754
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1755
+ if (coordinate <= TOP_CENTER_COORDINATE$.value) {
1756
+ return TOP_CENTER_COORDINATE$.value - coordinate;
1757
+ } else {
1758
+ return -(coordinate - TOP_CENTER_COORDINATE$.value);
1759
+ }
1760
+ }
1761
+ // 小车在左,
1762
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1763
+ const radian = drawRgv_GetRadianByArcLength(BOTTOM_LEFT_COORDINATE$.value - coordinate);
1764
+ return -radius * Math.sin(radian) - PATH_WIDTH$.value / 2;
1765
+ }
1766
+ // 小车在右,
1767
+ else {
1768
+ const radian =
1769
+ Math.PI +
1770
+ drawRgv_GetRadianByArcLength(
1771
+ TOP_RIGHT_COORDINATE$.value -
1772
+ SRC_COORDINATE$.value +
1773
+ DST_COORDINATE$.value -
1774
+ BOTTOM_RIGHT_COORDINATE$.value -
1775
+ ((coordinate < BOTTOM_RIGHT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - BOTTOM_RIGHT_COORDINATE$.value),
1776
+ );
1777
+ return -radius * Math.sin(radian) + PATH_WIDTH$.value / 2;
1778
+ }
1779
+ }
1780
+ }
1781
+ }
1782
+
1783
+ /**
1784
+ * 绘制小车:计算纵坐标.
1785
+ *
1786
+ * @param coordinate 刻度.
1787
+ * @param radius 轨道半径.
1788
+ */
1789
+ function drawRgv_GetY(coordinate: number, radius: number): number {
1790
+ // 顺时针,
1791
+ if (PATH_DIRECTION$.value === 0) {
1792
+ // 小车在下,
1793
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1794
+ return radius;
1795
+ }
1796
+ // 小车在上,
1797
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1798
+ return -radius;
1799
+ }
1800
+ // 小车在左,
1801
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1802
+ // 起点在左,
1803
+ if (SRC_POSITION$.value === 'LEFT') {
1804
+ const radian = drawRgv_GetRadianByArcLength((coordinate < BOTTOM_LEFT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - BOTTOM_LEFT_COORDINATE$.value);
1805
+ return radius * Math.cos(radian);
1806
+ } else {
1807
+ const radian = drawRgv_GetRadianByArcLength(coordinate - BOTTOM_LEFT_COORDINATE$.value);
1808
+ return radius * Math.cos(radian);
1809
+ }
1810
+ }
1811
+ // 小车在右,
1812
+ else {
1813
+ // 起点在右,
1814
+ if (SRC_POSITION$.value === 'RIGHT') {
1815
+ const radian = Math.PI + drawRgv_GetRadianByArcLength((coordinate < TOP_RIGHT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - TOP_RIGHT_COORDINATE$.value);
1816
+ return radius * Math.cos(radian);
1817
+ }
1818
+ // 起上下左,
1819
+ else {
1820
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(coordinate - TOP_RIGHT_COORDINATE$.value);
1821
+ return radius * Math.cos(radian);
1822
+ }
1823
+ }
1824
+ }
1825
+ // 逆时针,
1826
+ else {
1827
+ // 小车在上,
1828
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1829
+ return radius;
1830
+ }
1831
+ // 小车在下,
1832
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1833
+ return -radius;
1834
+ }
1835
+ // 小车在左,
1836
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1837
+ // 起点在左,
1838
+ if (SRC_POSITION$.value === 'LEFT') {
1839
+ const radian = drawRgv_GetRadianByArcLength(
1840
+ BOTTOM_LEFT_COORDINATE$.value -
1841
+ SRC_COORDINATE$.value +
1842
+ DST_COORDINATE$.value -
1843
+ TOP_LEFT_COORDINATE$.value -
1844
+ ((coordinate < TOP_LEFT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - TOP_LEFT_COORDINATE$.value),
1845
+ );
1846
+ return radius * Math.cos(radian);
1847
+ }
1848
+ // 起点在右,
1849
+ else {
1850
+ const radian = drawRgv_GetRadianByArcLength(BOTTOM_LEFT_COORDINATE$.value - coordinate);
1851
+ return radius * Math.cos(radian);
1852
+ }
1853
+ }
1854
+ // 小车在右,
1855
+ else {
1856
+ // 起点在右,
1857
+ if (SRC_POSITION$.value === 'RIGHT') {
1858
+ const radian =
1859
+ Math.PI +
1860
+ drawRgv_GetRadianByArcLength(
1861
+ TOP_RIGHT_COORDINATE$.value -
1862
+ SRC_COORDINATE$.value +
1863
+ DST_COORDINATE$.value -
1864
+ BOTTOM_RIGHT_COORDINATE$.value -
1865
+ ((coordinate < BOTTOM_RIGHT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - BOTTOM_RIGHT_COORDINATE$.value),
1866
+ );
1867
+ return radius * Math.cos(radian);
1868
+ }
1869
+ // 起点在左,
1870
+ else {
1871
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(TOP_RIGHT_COORDINATE$.value - coordinate);
1872
+ return radius * Math.cos(radian);
1873
+ }
1874
+ }
1875
+ }
1876
+ }
1877
+
1878
+ /**
1879
+ * 绘制小车:计算旋转弧度.
1880
+ *
1881
+ * @param coordinate 刻度.
1882
+ */
1883
+ function drawRgv_GetRotate(coordinate: number): number {
1884
+ // 顺时针,
1885
+ if (PATH_DIRECTION$.value === 0) {
1886
+ // 小车在下,
1887
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1888
+ return 0;
1889
+ }
1890
+ // 小车在上,
1891
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1892
+ return Math.PI;
1893
+ }
1894
+ // 小车在左,
1895
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1896
+ // 起点在左,
1897
+ if (SRC_POSITION$.value === 'LEFT') {
1898
+ return drawRgv_GetRadianByArcLength((coordinate < TOP_LEFT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - BOTTOM_LEFT_COORDINATE$.value);
1899
+ } else {
1900
+ return drawRgv_GetRadianByArcLength(coordinate - BOTTOM_LEFT_COORDINATE$.value);
1901
+ }
1902
+ }
1903
+ // 小车在右,
1904
+ else {
1905
+ // 起点在右,
1906
+ if (SRC_POSITION$.value === 'RIGHT') {
1907
+ return Math.PI + drawRgv_GetRadianByArcLength((coordinate < BOTTOM_RIGHT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - TOP_RIGHT_COORDINATE$.value);
1908
+ }
1909
+ // 起上下左,
1910
+ else {
1911
+ return Math.PI + drawRgv_GetRadianByArcLength(coordinate - TOP_RIGHT_COORDINATE$.value);
1912
+ }
1913
+ }
1914
+ }
1915
+ // 逆时针,
1916
+ else {
1917
+ // 小车在下,
1918
+ if (CURRENT_RGV_POSITION$.value === 'BOTTOM') {
1919
+ return 0;
1920
+ }
1921
+ // 小车在上,
1922
+ else if (CURRENT_RGV_POSITION$.value === 'TOP') {
1923
+ return Math.PI;
1924
+ }
1925
+ // 小车在左,
1926
+ else if (CURRENT_RGV_POSITION$.value === 'LEFT') {
1927
+ // 起点在左,
1928
+ if (SRC_POSITION$.value === 'LEFT') {
1929
+ const radian = drawRgv_GetRadianByArcLength(
1930
+ BOTTOM_LEFT_COORDINATE$.value -
1931
+ SRC_COORDINATE$.value +
1932
+ DST_COORDINATE$.value -
1933
+ TOP_LEFT_COORDINATE$.value -
1934
+ ((coordinate < TOP_LEFT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - TOP_LEFT_COORDINATE$.value),
1935
+ );
1936
+ return radian;
1937
+ }
1938
+ // 起点在右,
1939
+ else {
1940
+ const radian = drawRgv_GetRadianByArcLength(BOTTOM_LEFT_COORDINATE$.value - coordinate);
1941
+ return radian;
1942
+ }
1943
+ }
1944
+ // 小车在右,
1945
+ else {
1946
+ // 起点在右,
1947
+ if (SRC_POSITION$.value === 'RIGHT') {
1948
+ const radian =
1949
+ Math.PI +
1950
+ drawRgv_GetRadianByArcLength(
1951
+ TOP_RIGHT_COORDINATE$.value -
1952
+ SRC_COORDINATE$.value +
1953
+ DST_COORDINATE$.value -
1954
+ BOTTOM_RIGHT_COORDINATE$.value -
1955
+ ((coordinate < BOTTOM_RIGHT_COORDINATE$.value ? coordinate + DST_COORDINATE$.value - SRC_COORDINATE$.value : coordinate) - BOTTOM_RIGHT_COORDINATE$.value),
1956
+ );
1957
+ return radian;
1958
+ }
1959
+ // 起上下左,
1960
+ else {
1961
+ const radian = Math.PI + drawRgv_GetRadianByArcLength(TOP_RIGHT_COORDINATE$.value - coordinate);
1962
+ return radian;
1963
+ }
1964
+ }
1965
+ }
1966
+ }
1967
+
1968
+ /**
1969
+ * 绘制小车:绘制路线.
1970
+ *
1971
+ * @param canvasStatusData 状态数据.
1972
+ * @param index 序号.
1973
+ * @param rgv 小车.
1974
+ * @param rgvNode 小车节点.
1975
+ * @param rgvPathRadius 小车路线半径.
1976
+ */
1977
+ function drawRgv_DrawPath(canvasStatusData: StatusDTO, index: number, rgv: StatusRgvVO, rgvNode: Q.Node, rgvPathRadius: number) {
1978
+ let rgvPathNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.RGV__PATH) && i.properties.data?.rgvNo === rgv.rgvNo) as Q.ShapeNode;
1979
+
1980
+ // 节点已经存在, 删除之后重新创建,
1981
+ if (rgvPathNode) {
1982
+ kgCircularShuttleMonitor.store.getGraph!.removeElement(rgvPathNode);
1983
+ }
1984
+
1985
+ // 隐藏小车路线,
1986
+ if (!kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvPathVisible) {
1987
+ return;
1988
+ }
1989
+
1990
+ // 没有起始站点, 没有目的站点,
1991
+ if (!rgv.sourceStation || !rgv.destinationStation) {
1992
+ return;
1993
+ }
1994
+
1995
+ // 起始站点节点,
1996
+ const srcStationNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && (i.properties.data as MapStationVO)?.stationNo === rgv.sourceStation) as Q.Node;
1997
+ if (!srcStationNode) {
1998
+ return;
1999
+ }
2000
+
2001
+ // 目的站点节点,
2002
+ const dstStationNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && (i.properties.data as MapStationVO)?.stationNo === rgv.destinationStation) as Q.Node;
2003
+ if (!dstStationNode) {
2004
+ return;
2005
+ }
2006
+
2007
+ rgvPathNode = kgCircularShuttleMonitor.store.getGraph!.createShapeNode(undefined, undefined, 0, 0);
2008
+ rgvPathNode.movable = false;
2009
+ rgvPathNode.zIndex = 2;
2010
+ rgvPathNode.selectable = false;
2011
+ rgvPathNode.putStyles({
2012
+ [Q.Styles.ARROW_FROM]: Q.Consts.SHAPE_CIRCLE,
2013
+ [Q.Styles.ARROW_FROM_FILL_COLOR]: kgCircularShuttleMonitor.store.$Canvas$Setting$RgvProperty$pathColor(rgv.rgvNo, index),
2014
+ [Q.Styles.ARROW_FROM_SIZE]: LINE_WIDTH * 5,
2015
+ [Q.Styles.ARROW_TO]: Q.Consts.SHAPE_TRIANGLE,
2016
+ [Q.Styles.ARROW_TO_FILL_COLOR]: kgCircularShuttleMonitor.store.$Canvas$Setting$RgvProperty$pathColor(rgv.rgvNo, index),
2017
+ [Q.Styles.ARROW_TO_LINE_JOIN]: Q.Consts.LINE_JOIN_TYPE_MITER,
2018
+ [Q.Styles.ARROW_TO_SIZE]: LINE_WIDTH * 5,
2019
+ [Q.Styles.SHAPE_LINE_DASH]: [LINE_WIDTH * 8, LINE_WIDTH * 4, LINE_WIDTH * 4, LINE_WIDTH * 4],
2020
+ [Q.Styles.SHAPE_STROKE]: LINE_WIDTH,
2021
+ [Q.Styles.SHAPE_STROKE_STYLE]: kgCircularShuttleMonitor.store.$Canvas$Setting$RgvProperty$pathColor(rgv.rgvNo, index),
2022
+ });
2023
+ rgvPathNode.properties = {
2024
+ data: rgv,
2025
+ key: `${NODE_KEY.RGV__PATH}${rgv.rgvNo}`,
2026
+ };
2027
+
2028
+ // 当前是选中小车,
2029
+ if (rgv.rgvNo === kgCircularShuttleMonitor.store.$Canvas$getCurrentRgvList[0]?.rgvNo) {
2030
+ rgvPathNode.putStyles({
2031
+ [Q.Styles.SHAPE_LINE_DASH_OFFSET]: selectBlinkDashOffset * LINE_WIDTH * 2,
2032
+ });
2033
+ }
2034
+ // 当前非选中小车,
2035
+ else {
2036
+ rgvPathNode.putStyles({
2037
+ [Q.Styles.SHAPE_LINE_DASH_OFFSET]: undefined,
2038
+ });
2039
+ }
2040
+
2041
+ // 起始站点位置,
2042
+ const SRC_STATION_POSITION: 'TOP' | 'BOTTOM' = srcStationNode.y < 0 ? 'TOP' : 'BOTTOM';
2043
+ // 目的站点位置,
2044
+ const DST_STATION_POSITION: 'TOP' | 'BOTTOM' = dstStationNode.y < 0 ? 'TOP' : 'BOTTOM';
2045
+
2046
+ // 顺时针,
2047
+ if (PATH_DIRECTION$.value === 0) {
2048
+ // 起始站点在上,
2049
+ if (SRC_STATION_POSITION === 'TOP') {
2050
+ // 目的站点在上,
2051
+ if (DST_STATION_POSITION === 'TOP') {
2052
+ // 起始站点在后,
2053
+ if (srcStationNode.x < dstStationNode.x) {
2054
+ rgvPathNode.moveTo(srcStationNode.x, -rgvPathRadius);
2055
+ rgvPathNode.lineTo(dstStationNode.x, -rgvPathRadius);
2056
+ }
2057
+ // 起始站点在前,
2058
+ else {
2059
+ rgvPathNode.moveTo(srcStationNode.x, -rgvPathRadius);
2060
+ rgvPathNode.lineTo(PATH_WIDTH$.value / 2, -rgvPathRadius);
2061
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, -rgvPathRadius, PATH_WIDTH$.value / 2 + rgvPathRadius, 0, rgvPathRadius);
2062
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, +rgvPathRadius, PATH_WIDTH$.value / 2, +rgvPathRadius, rgvPathRadius);
2063
+ rgvPathNode.lineTo(-(PATH_WIDTH$.value / 2), +rgvPathRadius);
2064
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), rgvPathRadius, -(PATH_WIDTH$.value / 2 + rgvPathRadius), 0, rgvPathRadius);
2065
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), -rgvPathRadius, -(PATH_WIDTH$.value / 2), -rgvPathRadius, rgvPathRadius);
2066
+ rgvPathNode.lineTo(dstStationNode.x, -rgvPathRadius);
2067
+ }
2068
+ }
2069
+ // 目的站点在下,
2070
+ else {
2071
+ rgvPathNode.moveTo(srcStationNode.x, -rgvPathRadius);
2072
+ rgvPathNode.lineTo(PATH_WIDTH$.value / 2, -rgvPathRadius);
2073
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, -rgvPathRadius, PATH_WIDTH$.value / 2 + rgvPathRadius, 0, rgvPathRadius);
2074
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, +rgvPathRadius, PATH_WIDTH$.value / 2, +rgvPathRadius, rgvPathRadius);
2075
+ rgvPathNode.lineTo(dstStationNode.x, +rgvPathRadius);
2076
+ }
2077
+ }
2078
+ // 起始站点在下,
2079
+ else {
2080
+ // 目的站点在上,
2081
+ if (DST_STATION_POSITION === 'TOP') {
2082
+ rgvPathNode.moveTo(srcStationNode.x, +rgvPathRadius);
2083
+ rgvPathNode.lineTo(-(PATH_WIDTH$.value / 2), +rgvPathRadius);
2084
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), +rgvPathRadius, -(PATH_WIDTH$.value / 2 + rgvPathRadius), 0, rgvPathRadius);
2085
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), -rgvPathRadius, -(PATH_WIDTH$.value / 2), -rgvPathRadius, rgvPathRadius);
2086
+ rgvPathNode.lineTo(dstStationNode.x, -rgvPathRadius);
2087
+ }
2088
+ // 目的站点在下,
2089
+ else {
2090
+ // 起始站点在后,
2091
+ if (srcStationNode.x > dstStationNode.x) {
2092
+ rgvPathNode.moveTo(srcStationNode.x, rgvPathRadius);
2093
+ rgvPathNode.lineTo(dstStationNode.x, rgvPathRadius);
2094
+ }
2095
+ // 起始站点在前,
2096
+ else {
2097
+ rgvPathNode.moveTo(srcStationNode.x, rgvPathRadius);
2098
+ rgvPathNode.lineTo(-(PATH_WIDTH$.value / 2), rgvPathRadius);
2099
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), rgvPathRadius, -(PATH_WIDTH$.value / 2 + rgvPathRadius), 0, rgvPathRadius);
2100
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), -rgvPathRadius, -(PATH_WIDTH$.value / 2), -rgvPathRadius, rgvPathRadius);
2101
+ rgvPathNode.lineTo(PATH_WIDTH$.value / 2, -rgvPathRadius);
2102
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, -rgvPathRadius, PATH_WIDTH$.value / 2 + rgvPathRadius, 0, rgvPathRadius);
2103
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, rgvPathRadius, PATH_WIDTH$.value / 2, rgvPathRadius, rgvPathRadius);
2104
+ rgvPathNode.lineTo(dstStationNode.x, rgvPathRadius);
2105
+ }
2106
+ }
2107
+ }
2108
+ }
2109
+ // 逆时针,
2110
+ else {
2111
+ // 起始站点在上,
2112
+ if (SRC_STATION_POSITION === 'TOP') {
2113
+ // 目的站点在上,
2114
+ if (DST_STATION_POSITION === 'TOP') {
2115
+ // 起始站点在后,
2116
+ if (srcStationNode.x > dstStationNode.x) {
2117
+ rgvPathNode.moveTo(srcStationNode.x, -rgvPathRadius);
2118
+ rgvPathNode.lineTo(dstStationNode.x, -rgvPathRadius);
2119
+ }
2120
+ // 起始站点在前,
2121
+ else {
2122
+ rgvPathNode.moveTo(srcStationNode.x, -rgvPathRadius);
2123
+ rgvPathNode.lineTo(-PATH_WIDTH$.value / 2, -rgvPathRadius);
2124
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), -rgvPathRadius, -(PATH_WIDTH$.value / 2 + rgvPathRadius), 0, rgvPathRadius);
2125
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), +rgvPathRadius, -(PATH_WIDTH$.value / 2), rgvPathRadius, rgvPathRadius);
2126
+ rgvPathNode.lineTo(PATH_WIDTH$.value / 2, rgvPathRadius);
2127
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, rgvPathRadius, PATH_WIDTH$.value / 2 + rgvPathRadius, 0, rgvPathRadius);
2128
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, -rgvPathRadius, PATH_WIDTH$.value / 2, -rgvPathRadius, rgvPathRadius);
2129
+ rgvPathNode.lineTo(dstStationNode.x, -rgvPathRadius);
2130
+ }
2131
+ }
2132
+ // 目的站点在下,
2133
+ else {
2134
+ rgvPathNode.moveTo(srcStationNode.x, -rgvPathRadius);
2135
+ rgvPathNode.lineTo(-(PATH_WIDTH$.value / 2), -rgvPathRadius);
2136
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), -rgvPathRadius, -(PATH_WIDTH$.value / 2 + rgvPathRadius), 0, rgvPathRadius);
2137
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), +rgvPathRadius, -(PATH_WIDTH$.value / 2), +rgvPathRadius, rgvPathRadius);
2138
+ rgvPathNode.lineTo(dstStationNode.x, +rgvPathRadius);
2139
+ }
2140
+ }
2141
+ // 起始站点在下,
2142
+ else {
2143
+ // 目的站点在上,
2144
+ if (DST_STATION_POSITION === 'TOP') {
2145
+ rgvPathNode.moveTo(srcStationNode.x, +rgvPathRadius);
2146
+ rgvPathNode.lineTo(PATH_WIDTH$.value / 2, +rgvPathRadius);
2147
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, +rgvPathRadius, PATH_WIDTH$.value / 2 + rgvPathRadius, 0, rgvPathRadius);
2148
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, -rgvPathRadius, PATH_WIDTH$.value / 2, -rgvPathRadius, rgvPathRadius);
2149
+ rgvPathNode.lineTo(dstStationNode.x, -rgvPathRadius);
2150
+ }
2151
+ // 目的站点在下,
2152
+ else {
2153
+ // 起始站点在后,
2154
+ if (srcStationNode.x < dstStationNode.x) {
2155
+ rgvPathNode.moveTo(srcStationNode.x, rgvPathRadius);
2156
+ rgvPathNode.lineTo(dstStationNode.x, rgvPathRadius);
2157
+ }
2158
+ // 起始站点在前,
2159
+ else {
2160
+ rgvPathNode.moveTo(srcStationNode.x, rgvPathRadius);
2161
+ rgvPathNode.lineTo(PATH_WIDTH$.value / 2, rgvPathRadius);
2162
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, rgvPathRadius, PATH_WIDTH$.value / 2 + rgvPathRadius, 0, rgvPathRadius);
2163
+ rgvPathNode.arcTo(PATH_WIDTH$.value / 2 + rgvPathRadius, -rgvPathRadius, PATH_WIDTH$.value / 2, -rgvPathRadius, rgvPathRadius);
2164
+ rgvPathNode.lineTo(-(PATH_WIDTH$.value / 2), -rgvPathRadius);
2165
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), -rgvPathRadius, -(PATH_WIDTH$.value / 2 + rgvPathRadius), 0, rgvPathRadius);
2166
+ rgvPathNode.arcTo(-(PATH_WIDTH$.value / 2 + rgvPathRadius), rgvPathRadius, -(PATH_WIDTH$.value / 2), rgvPathRadius, rgvPathRadius);
2167
+ rgvPathNode.lineTo(dstStationNode.x, rgvPathRadius);
2168
+ }
2169
+ }
2170
+ }
2171
+ }
2172
+ }
2173
+
2174
+ /**
2175
+ * 绘制小车:绘制路线:绘制小车和路线的连线.
2176
+ *
2177
+ * @param canvasStatusData 状态数据.
2178
+ * @param index 序号.
2179
+ * @param rgv 小车.
2180
+ * @param rgvNode 小车节点.
2181
+ * @param rgvPathRadius 小车路线半径.
2182
+ */
2183
+ function drawRgv_DrawPath_DrawLine(canvasStatusData: StatusDTO, index: number, rgv: StatusRgvVO, rgvNode: Q.Node, rgvPathRadius: number) {
2184
+ let rgvPathLineNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.RGV__PATH__LINE) && i.properties.data?.rgvNo === rgv.rgvNo) as Q.ShapeNode;
2185
+
2186
+ // 节点已经存在, 删除之后重新创建,
2187
+ if (rgvPathLineNode) {
2188
+ kgCircularShuttleMonitor.store.getGraph!.removeElement(rgvPathLineNode);
2189
+ }
2190
+
2191
+ // 隐藏小车路线,
2192
+ if (!kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvPathVisible) {
2193
+ return;
2194
+ }
2195
+
2196
+ // 隐藏垂直连线,
2197
+ if (!kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvPathLineVisible) {
2198
+ return;
2199
+ }
2200
+
2201
+ // 小车在路线上,
2202
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2203
+ return;
2204
+ }
2205
+
2206
+ // 没有起始站点, 没有目的站点,
2207
+ if (!rgv.sourceStation || !rgv.destinationStation) {
2208
+ return;
2209
+ }
2210
+
2211
+ // 起始站点节点,
2212
+ const srcStationNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && (i.properties.data as MapStationVO)?.stationNo === rgv.sourceStation) as Q.Node;
2213
+ if (!srcStationNode) {
2214
+ return;
2215
+ }
2216
+
2217
+ // 目的站点节点,
2218
+ const dstStationNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && (i.properties.data as MapStationVO)?.stationNo === rgv.destinationStation) as Q.Node;
2219
+ if (!dstStationNode) {
2220
+ return;
2221
+ }
2222
+
2223
+ const rgvX = drawRgv_GetX(rgv.position, rgvPathRadius);
2224
+ const rgvY = drawRgv_GetY(rgv.position, rgvPathRadius);
2225
+
2226
+ rgvPathLineNode = kgCircularShuttleMonitor.store.getGraph!.createShapeNode(undefined, undefined, 0, 0);
2227
+ rgvPathLineNode.movable = false;
2228
+ rgvPathLineNode.zIndex = 2;
2229
+ rgvPathLineNode.selectable = false;
2230
+ rgvPathLineNode.putStyles({
2231
+ [Q.Styles.SHAPE_LINE_DASH]: [LINE_WIDTH * 8, LINE_WIDTH * 4, LINE_WIDTH * 4, LINE_WIDTH * 4],
2232
+ [Q.Styles.SHAPE_STROKE]: LINE_WIDTH,
2233
+ [Q.Styles.SHAPE_STROKE_STYLE]: kgCircularShuttleMonitor.store.$Canvas$Setting$RgvProperty$pathColor(rgv.rgvNo, index),
2234
+ });
2235
+ rgvPathLineNode.properties = {
2236
+ data: rgv,
2237
+ key: `${NODE_KEY.RGV__PATH__LINE}${rgv.rgvNo}`,
2238
+ };
2239
+
2240
+ // 当前是选中小车,
2241
+ if (rgv.rgvNo === kgCircularShuttleMonitor.store.$Canvas$getCurrentRgvList[0]?.rgvNo) {
2242
+ rgvPathLineNode.putStyles({
2243
+ [Q.Styles.SHAPE_LINE_DASH_OFFSET]: selectBlinkDashOffset * LINE_WIDTH * 2,
2244
+ });
2245
+ }
2246
+ // 当前非选中小车,
2247
+ else {
2248
+ rgvPathLineNode.putStyles({
2249
+ [Q.Styles.SHAPE_LINE_DASH_OFFSET]: undefined,
2250
+ });
2251
+ }
2252
+
2253
+ rgvPathLineNode.moveTo(rgvNode.x, rgvNode.y);
2254
+ rgvPathLineNode.lineTo(rgvX, rgvY);
2255
+ }
2256
+
2257
+ /**
2258
+ * 绘制小车:绘制路线:绘制小车和路线的连线:绘制连线上的小车.
2259
+ *
2260
+ * @param canvasStatusData 状态数据.
2261
+ * @param index 序号.
2262
+ * @param rgv 小车.
2263
+ * @param rgvNode 小车节点.
2264
+ * @param rgvPathRadius 小车路线半径.
2265
+ */
2266
+ function drawRgv_DrawPath_DrawRgv(canvasStatusData: StatusDTO, index: number, rgv: StatusRgvVO, rgvNode: Q.Node, rgvPathRadius: number) {
2267
+ let rgvPathRgvNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.RGV__PATH__RGV) && i.properties.data?.rgvNo === rgv.rgvNo) as Q.Node;
2268
+
2269
+ // 节点已经存在, 删除之后重新创建,
2270
+ if (rgvPathRgvNode) {
2271
+ kgCircularShuttleMonitor.store.getGraph!.removeElement(rgvPathRgvNode);
2272
+ }
2273
+
2274
+ // 隐藏小车路线,
2275
+ if (!kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvPathVisible) {
2276
+ return;
2277
+ }
2278
+
2279
+ // 没有起始站点, 没有目的站点,
2280
+ if (!rgv.sourceStation || !rgv.destinationStation) {
2281
+ return;
2282
+ }
2283
+
2284
+ // 起始站点节点,
2285
+ const srcStationNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && (i.properties.data as MapStationVO)?.stationNo === rgv.sourceStation) as Q.Node;
2286
+ if (!srcStationNode) {
2287
+ return;
2288
+ }
2289
+
2290
+ // 目的站点节点,
2291
+ const dstStationNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && (i.properties.data as MapStationVO)?.stationNo === rgv.destinationStation) as Q.Node;
2292
+ if (!dstStationNode) {
2293
+ return;
2294
+ }
2295
+
2296
+ const x = drawRgv_GetX(rgv.position, rgvPathRadius);
2297
+ const y = drawRgv_GetY(rgv.position, rgvPathRadius);
2298
+ const rotate = drawRgv_GetRotate(rgv.position);
2299
+
2300
+ rgvPathRgvNode = kgCircularShuttleMonitor.store.getGraph!.createNode(null, x, y);
2301
+ rgvPathRgvNode.size = new Q.Size(CURRENT_RGV_WIDTH$.value, CURRENT_RGV_HEIGHT$.value);
2302
+ rgvPathRgvNode.image = drawRgv_DrawPath_DrawRgv_GetImage(x, y, rgv);
2303
+ rgvPathRgvNode.zIndex = 2;
2304
+ rgvPathRgvNode.movable = false;
2305
+ rgvPathRgvNode.selectable = false;
2306
+ rgvPathRgvNode.rotate = rotate;
2307
+ rgvPathRgvNode.putStyles({
2308
+ [Q.Styles.SHAPE_FILL_COLOR]: '#ffffff',
2309
+ [Q.Styles.SHAPE_STROKE]: 0,
2310
+ });
2311
+ rgvPathRgvNode.properties = {
2312
+ data: rgv,
2313
+ key: `${NODE_KEY.RGV__PATH__RGV}${rgv.rgvNo}`,
2314
+ };
2315
+
2316
+ // 当前是选中小车,
2317
+ if (rgv.rgvNo === kgCircularShuttleMonitor.store.$Canvas$getCurrentRgvList[0]?.rgvNo) {
2318
+ rgvPathRgvNode.putStyles({
2319
+ [Q.Styles.SHAPE_LINE_DASH_OFFSET]: selectBlinkDashOffset * LINE_WIDTH * 2,
2320
+ });
2321
+ }
2322
+ // 当前非选中小车,
2323
+ else {
2324
+ rgvPathRgvNode.putStyles({
2325
+ [Q.Styles.SHAPE_LINE_DASH_OFFSET]: undefined,
2326
+ });
2327
+ }
2328
+
2329
+ drawRgv_DrawPath_DrawRgv_DrawTextUI(rgv, index, rgvPathRgvNode);
2330
+ drawRgv_DrawPath_DrawRgv_DrawDstTextUI(rgv, index, rgvPathRgvNode);
2331
+ }
2332
+
2333
+ /**
2334
+ * 绘制小车:绘制路线:绘制小车和路线的连线:绘制连线上的小车:绘制小车编号.
2335
+ *
2336
+ * @param rgv 小车.
2337
+ * @param index 小车序号.
2338
+ * @param rgvPathRgvNode 小车节点.
2339
+ */
2340
+ function drawRgv_DrawPath_DrawRgv_DrawTextUI(rgv: StatusRgvVO, index: number, rgvPathRgvNode: Q.Node): void {
2341
+ const labelUI = new Q.LabelUI(rgv.rgvNo);
2342
+
2343
+ labelUI.code = '';
2344
+ labelUI.fontSize = CURRENT_RGV_HEIGHT$.value * 0.65;
2345
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2346
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2347
+ labelUI.alignPosition = Q.Position.CENTER_BOTTOM;
2348
+ labelUI.borderRadius = 0;
2349
+ labelUI.border = LINE_WIDTH;
2350
+ labelUI.borderColor = kgCircularShuttleMonitor.store.$Canvas$Setting$RgvProperty$pathColor(rgv.rgvNo, index);
2351
+ labelUI.color = kgCircularShuttleMonitor.store.$Canvas$Setting$RgvProperty$pathColor(rgv.rgvNo, index);
2352
+ labelUI.backgroundColor = '#ffffff';
2353
+ labelUI.showPointer = false;
2354
+ labelUI.syncSelection = false;
2355
+ labelUI.size = new Q.Size(CURRENT_RGV_WIDTH$.value * 1.5, CURRENT_RGV_HEIGHT$.value - LINE_WIDTH * 2);
2356
+
2357
+ // 顺时针,
2358
+ if (PATH_DIRECTION$.value === 0) {
2359
+ // 在上,
2360
+ if (rgvPathRgvNode.y < 0) {
2361
+ // 小车是在轨道上,
2362
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2363
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2364
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2365
+
2366
+ labelUI.offsetX = -(CURRENT_RGV_WIDTH$.value + LINE_WIDTH);
2367
+ labelUI.offsetY = 0;
2368
+
2369
+ labelUI.rotate = (Math.PI / 180) * 180;
2370
+ }
2371
+ // 小车不在轨道上,
2372
+ else {
2373
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2374
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2375
+
2376
+ labelUI.rotate = (Math.PI / 180) * 180;
2377
+ }
2378
+ }
2379
+ // 在下,
2380
+ else {
2381
+ // 小车是在轨道上,
2382
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2383
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2384
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2385
+
2386
+ labelUI.offsetX = LINE_WIDTH;
2387
+ labelUI.offsetY = 0;
2388
+ }
2389
+ // 小车不在轨道上,
2390
+ else {
2391
+ labelUI.position = Q.Position.LEFT_MIDDLE;
2392
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2393
+
2394
+ labelUI.offsetX = 0;
2395
+ labelUI.offsetY = 0;
2396
+ }
2397
+ }
2398
+ }
2399
+ // 逆时针,
2400
+ else {
2401
+ // 在上,
2402
+ if (rgvPathRgvNode.y < 0) {
2403
+ // 小车是在轨道上,
2404
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2405
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2406
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2407
+
2408
+ labelUI.offsetX = -(CURRENT_RGV_WIDTH$.value + LINE_WIDTH);
2409
+ labelUI.offsetY = 0;
2410
+
2411
+ labelUI.rotate = (Math.PI / 180) * 180;
2412
+ }
2413
+ // 小车不在轨道上,
2414
+ else {
2415
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2416
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2417
+
2418
+ labelUI.rotate = (Math.PI / 180) * 180;
2419
+ }
2420
+ }
2421
+ // 在下,
2422
+ else {
2423
+ // 小车是在轨道上,
2424
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2425
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2426
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2427
+
2428
+ labelUI.offsetX = LINE_WIDTH;
2429
+ labelUI.offsetY = 0;
2430
+ }
2431
+ // 小车不在轨道上,
2432
+ else {
2433
+ labelUI.position = Q.Position.LEFT_MIDDLE;
2434
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2435
+
2436
+ labelUI.offsetX = 0;
2437
+ labelUI.offsetY = 0;
2438
+ }
2439
+ }
2440
+ }
2441
+
2442
+ rgvPathRgvNode.addUI(labelUI);
2443
+ }
2444
+
2445
+ /**
2446
+ * 绘制小车:绘制路线:绘制小车和路线的连线:绘制连线上的小车:绘制目的站点编号.
2447
+ *
2448
+ * @param rgv 小车.
2449
+ * @param index 小车序号.
2450
+ * @param rgvPathRgvNode 小车节点.
2451
+ */
2452
+ function drawRgv_DrawPath_DrawRgv_DrawDstTextUI(rgv: StatusRgvVO, index: number, rgvPathRgvNode: Q.Node): void {
2453
+ const labelUI = new Q.LabelUI('' + rgv.destinationStation);
2454
+
2455
+ labelUI.code = '';
2456
+ labelUI.fontSize = CURRENT_RGV_HEIGHT$.value * 0.65;
2457
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2458
+ labelUI.anchorPosition = Q.Position.RIGHT_MIDDLE;
2459
+ labelUI.alignPosition = Q.Position.CENTER_BOTTOM;
2460
+ labelUI.borderRadius = 0;
2461
+ labelUI.border = LINE_WIDTH;
2462
+ labelUI.borderColor = kgCircularShuttleMonitor.store.$Canvas$Setting$RgvProperty$pathColor(rgv.rgvNo, index);
2463
+ labelUI.color = kgCircularShuttleMonitor.store.$Canvas$Setting$RgvProperty$pathColor(rgv.rgvNo, index);
2464
+ labelUI.backgroundColor = '#ffffff';
2465
+ labelUI.showPointer = false;
2466
+ labelUI.syncSelection = false;
2467
+ labelUI.size = new Q.Size(CURRENT_RGV_WIDTH$.value, CURRENT_RGV_HEIGHT$.value - LINE_WIDTH * 2);
2468
+
2469
+ // 顺时针,
2470
+ if (PATH_DIRECTION$.value === 0) {
2471
+ // 在上,
2472
+ if (rgvPathRgvNode.y < 0) {
2473
+ // 小车是在轨道上,
2474
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2475
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2476
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2477
+
2478
+ labelUI.offsetX = -(CURRENT_RGV_WIDTH$.value + CURRENT_RGV_WIDTH$.value * 1.5 + LINE_WIDTH * 4);
2479
+
2480
+ labelUI.rotate = (Math.PI / 180) * 180;
2481
+ }
2482
+ // 小车不在轨道上,
2483
+ else {
2484
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2485
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2486
+
2487
+ labelUI.offsetX = -(CURRENT_RGV_WIDTH$.value * 1.5 + LINE_WIDTH * 3);
2488
+
2489
+ labelUI.rotate = (Math.PI / 180) * 180;
2490
+ }
2491
+ }
2492
+ // 在下,
2493
+ else {
2494
+ // 小车是在轨道上,
2495
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2496
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2497
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2498
+
2499
+ labelUI.offsetX = CURRENT_RGV_WIDTH$.value * 1.5 + LINE_WIDTH * 4;
2500
+ labelUI.offsetY = 0;
2501
+ }
2502
+ // 小车不在轨道上,
2503
+ else {
2504
+ labelUI.position = Q.Position.LEFT_MIDDLE;
2505
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2506
+
2507
+ labelUI.offsetX = CURRENT_RGV_WIDTH$.value * 1.5 + LINE_WIDTH * 3;
2508
+ labelUI.offsetY = 0;
2509
+ }
2510
+ }
2511
+ }
2512
+ // 逆时针,
2513
+ else {
2514
+ // 在上,
2515
+ if (rgvPathRgvNode.y < 0) {
2516
+ // 小车是在轨道上,
2517
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2518
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2519
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2520
+
2521
+ labelUI.offsetX = -(CURRENT_RGV_WIDTH$.value + CURRENT_RGV_WIDTH$.value * 1.5 + LINE_WIDTH * 4);
2522
+
2523
+ labelUI.rotate = (Math.PI / 180) * 180;
2524
+ }
2525
+ // 小车不在轨道上,
2526
+ else {
2527
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2528
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2529
+
2530
+ labelUI.offsetX = -(CURRENT_RGV_WIDTH$.value * 1.5 + LINE_WIDTH * 3);
2531
+
2532
+ labelUI.rotate = (Math.PI / 180) * 180;
2533
+ }
2534
+ }
2535
+ // 在下,
2536
+ else {
2537
+ // 小车是在轨道上,
2538
+ if (kgCircularShuttleMonitor.store.$Canvas$Setting$getIsRgvOnPath) {
2539
+ labelUI.position = Q.Position.RIGHT_MIDDLE;
2540
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2541
+
2542
+ labelUI.offsetX = CURRENT_RGV_WIDTH$.value * 1.5 + LINE_WIDTH * 4;
2543
+ labelUI.offsetY = 0;
2544
+ }
2545
+ // 小车不在轨道上,
2546
+ else {
2547
+ labelUI.position = Q.Position.LEFT_MIDDLE;
2548
+ labelUI.anchorPosition = Q.Position.LEFT_MIDDLE;
2549
+
2550
+ labelUI.offsetX = CURRENT_RGV_WIDTH$.value * 1.5 + LINE_WIDTH * 3;
2551
+ labelUI.offsetY = 0;
2552
+ }
2553
+ }
2554
+ }
2555
+
2556
+ rgvPathRgvNode.addUI(labelUI);
2557
+ }
2558
+
2559
+ /**
2560
+ * 绘制小车:根据状态获取颜色.
2561
+ *
2562
+ * @param state 小车状态.
2563
+ */
2564
+ function drawRgv_GetColorByState(state: number): string {
2565
+ switch (state) {
2566
+ case 0:
2567
+ return kgCircularShuttleMonitor.store.getProps?.rgvStatusColor?.offline ?? '#7f7f7f';
2568
+ case 1:
2569
+ return kgCircularShuttleMonitor.store.getProps?.rgvStatusColor?.warn ?? '#ff3a3a';
2570
+ case 2:
2571
+ return kgCircularShuttleMonitor.store.getProps?.rgvStatusColor?.manual ?? '#765708';
2572
+ case 3:
2573
+ return kgCircularShuttleMonitor.store.getProps?.rgvStatusColor?.idle ?? '#000000';
2574
+ case 4:
2575
+ return kgCircularShuttleMonitor.store.getProps?.rgvStatusColor?.get ?? '#2ecc27';
2576
+ case 5:
2577
+ return kgCircularShuttleMonitor.store.getProps?.rgvStatusColor?.put ?? '#1890ff';
2578
+ case 6:
2579
+ return kgCircularShuttleMonitor.store.getProps?.rgvStatusColor?.drive ?? '#ffd262';
2580
+
2581
+ default:
2582
+ return '#000000';
2583
+ }
2584
+ }
2585
+
2586
+ /**
2587
+ * 绘制小车:根据状态获取文本颜色.
2588
+ *
2589
+ * @param state 小车状态.
2590
+ */
2591
+ function drawRgv_GetTextColorByState(state: number): string {
2592
+ switch (state) {
2593
+ case 0:
2594
+ return '#000000';
2595
+ case 1:
2596
+ return '#ffffff';
2597
+ case 2:
2598
+ return '#ffffff';
2599
+ case 3:
2600
+ return '#ffffff';
2601
+ case 4:
2602
+ return '#ffffff';
2603
+ case 5:
2604
+ return '#ffffff';
2605
+ case 6:
2606
+ return '#ffffff';
2607
+
2608
+ default:
2609
+ return '#000000';
2610
+ }
2611
+ }
2612
+
2613
+ /**
2614
+ * 绘制小车:根据弧长获取弧度.
2615
+ *
2616
+ * @param arcLength 弧长.
2617
+ */
2618
+ function drawRgv_GetRadianByArcLength(arcLength: number): number {
2619
+ if (arcLength <= 0) {
2620
+ return 0;
2621
+ }
2622
+
2623
+ return arcLength / (PATH_INNER_RADIUS$.value + LINE_WIDTH / 2);
2624
+ }
2625
+
2626
+ /**
2627
+ * 绘制小车:获取节点图形.
2628
+ *
2629
+ * @param x 横坐标.
2630
+ * @param y 纵坐标.
2631
+ * @param rgv 小车.
2632
+ */
2633
+ function drawRgv_GetImage(x: number, y: number, rgv: StatusRgvVO): any {
2634
+ // 顺时针,
2635
+ if (PATH_DIRECTION$.value === 0) {
2636
+ const path = new Q.Path();
2637
+
2638
+ path.moveTo(-CURRENT_RGV_WIDTH$.value / 2, -CURRENT_RGV_HEIGHT$.value / 2);
2639
+ path.lineTo(CURRENT_RGV_WIDTH$.value / 2, -CURRENT_RGV_HEIGHT$.value / 2);
2640
+ path.lineTo(CURRENT_RGV_WIDTH$.value / 2, CURRENT_RGV_HEIGHT$.value / 2);
2641
+ path.lineTo(-CURRENT_RGV_WIDTH$.value / 2, CURRENT_RGV_HEIGHT$.value / 2);
2642
+ path.closePath();
2643
+
2644
+ path.moveTo(CURRENT_RGV_WIDTH$.value / 4, -CURRENT_RGV_HEIGHT$.value / 2);
2645
+ path.lineTo(CURRENT_RGV_WIDTH$.value / 4, CURRENT_RGV_HEIGHT$.value / 2);
2646
+
2647
+ return path;
2648
+ }
2649
+ // 逆时针,
2650
+ else {
2651
+ const path = new Q.Path();
2652
+
2653
+ path.moveTo(-CURRENT_RGV_WIDTH$.value / 2, -CURRENT_RGV_HEIGHT$.value / 2);
2654
+ path.lineTo(CURRENT_RGV_WIDTH$.value / 2, -CURRENT_RGV_HEIGHT$.value / 2);
2655
+ path.lineTo(CURRENT_RGV_WIDTH$.value / 2, CURRENT_RGV_HEIGHT$.value / 2);
2656
+ path.lineTo(-CURRENT_RGV_WIDTH$.value / 2, CURRENT_RGV_HEIGHT$.value / 2);
2657
+ path.closePath();
2658
+
2659
+ path.moveTo(-CURRENT_RGV_WIDTH$.value / 4, -CURRENT_RGV_HEIGHT$.value / 2);
2660
+ path.lineTo(-CURRENT_RGV_WIDTH$.value / 4, CURRENT_RGV_HEIGHT$.value / 2);
2661
+
2662
+ return path;
2663
+ }
2664
+ }
2665
+
2666
+ /**
2667
+ * 绘制小车:绘制路线:绘制小车和路线的连线:绘制连线上的小车:获取节点图形.
2668
+ *
2669
+ * @param x 横坐标.
2670
+ * @param y 纵坐标.
2671
+ * @param rgv 小车.
2672
+ */
2673
+ function drawRgv_DrawPath_DrawRgv_GetImage(x: number, y: number, rgv: StatusRgvVO): any {
2674
+ const width = CURRENT_RGV_WIDTH$.value;
2675
+ const height = CURRENT_RGV_HEIGHT$.value;
2676
+
2677
+ // 顺时针,
2678
+ if (PATH_DIRECTION$.value === 0) {
2679
+ const path = new Q.Path();
2680
+
2681
+ path.moveTo(-width / 2, -height / 2);
2682
+ path.lineTo(width / 2, -height / 2);
2683
+ path.lineTo(width / 2, height / 2);
2684
+ path.lineTo(-width / 2, height / 2);
2685
+ path.closePath();
2686
+
2687
+ return path;
2688
+ }
2689
+ // 逆时针,
2690
+ else {
2691
+ const path = new Q.Path();
2692
+
2693
+ path.moveTo(-width / 2, -height / 2);
2694
+ path.lineTo(width / 2, -height / 2);
2695
+ path.lineTo(width / 2, height / 2);
2696
+ path.lineTo(-width / 2, height / 2);
2697
+ path.closePath();
2698
+
2699
+ return path;
2700
+ }
2701
+ }
2702
+
2703
+ /**
2704
+ * 绘制小车:绘制小车编号背景.
2705
+ *
2706
+ * @param rgv 小车.
2707
+ * @param rgvNode 小车节点.
2708
+ */
2709
+ function drawRgv_DrawTextBackgroundUI(rgv: StatusRgvVO, rgvNode: Q.Node): void {
2710
+ if (!kgCircularShuttleMonitor.store.getGraph) {
2711
+ return;
2712
+ }
2713
+
2714
+ const WIDTH = (CURRENT_RGV_WIDTH$.value / 4) * 1 - LINE_WIDTH + 40;
2715
+ const HEIGHT = CURRENT_RGV_HEIGHT$.value - LINE_WIDTH * 2 + 40;
2716
+
2717
+ const path = new Q.Path();
2718
+
2719
+ path.moveTo(0, 0);
2720
+ path.lineTo(WIDTH, 0);
2721
+ path.lineTo(WIDTH, HEIGHT);
2722
+ path.lineTo(0, HEIGHT);
2723
+ path.closePath();
2724
+
2725
+ const imageUI = new Q.ImageUI(path);
2726
+ imageUI.code = NODE_KEY.RGV__UI__TEXT_BACKGROUND;
2727
+ imageUI.anchorPosition = Q.Position.CENTER_MIDDLE;
2728
+ imageUI.position = Q.Position.CENTER_MIDDLE;
2729
+ imageUI.fillColor = drawRgv_GetColorByState(rgv.state);
2730
+ imageUI.syncSelection = false;
2731
+
2732
+ // 顺时针,
2733
+ if (PATH_DIRECTION$.value === 0) {
2734
+ imageUI.offsetX = (CURRENT_RGV_WIDTH$.value / 8) * 3 - (LINE_WIDTH / 4) * 1;
2735
+ }
2736
+ // 逆时针,
2737
+ else {
2738
+ imageUI.offsetX = -((CURRENT_RGV_WIDTH$.value / 8) * 3 - (LINE_WIDTH / 4) * 1);
2739
+ }
2740
+
2741
+ rgvNode.addUI(imageUI);
2742
+ }
2743
+
2744
+ /**
2745
+ * 绘制小车:绘制小车编号.
2746
+ *
2747
+ * @param rgv 小车.
2748
+ * @param rgvNode 小车节点.
2749
+ */
2750
+ function drawRgv_DrawTextUI(rgv: StatusRgvVO, rgvNode: Q.Node): void {
2751
+ // 不显示小车编号的前缀「SC」,
2752
+ const labelUI = new Q.LabelUI(rgv.rgvNo?.replace('SC', ''));
2753
+
2754
+ labelUI.code = NODE_KEY.RGV__UI__TEXT;
2755
+ labelUI.fontSize = CURRENT_RGV_WIDTH$.value / 4;
2756
+ labelUI.position = Q.Position.CENTER_MIDDLE;
2757
+ labelUI.anchorPosition = Q.Position.CENTER_MIDDLE;
2758
+ labelUI.alignPosition = Q.Position.CENTER_BOTTOM;
2759
+ labelUI.borderRadius = 0;
2760
+ labelUI.showPointer = false;
2761
+ labelUI.color = drawRgv_GetTextColorByState(rgv.state);
2762
+ labelUI.size = new Q.Size(CURRENT_RGV_HEIGHT$.value - LINE_WIDTH, CURRENT_RGV_WIDTH$.value / 4);
2763
+ labelUI.syncSelection = false;
2764
+
2765
+ // 顺时针,
2766
+ if (PATH_DIRECTION$.value === 0) {
2767
+ labelUI.rotate = (Math.PI / 180) * 270;
2768
+ labelUI.offsetX = (CURRENT_RGV_WIDTH$.value / 8) * 3 - (LINE_WIDTH / 4) * 1 + 40;
2769
+ }
2770
+ // 逆时针,
2771
+ else {
2772
+ labelUI.rotate = (Math.PI / 180) * 90;
2773
+ labelUI.offsetX = -((CURRENT_RGV_WIDTH$.value / 8) * 3 - (LINE_WIDTH / 4) * 1 + 40);
2774
+ }
2775
+
2776
+ rgvNode.addUI(labelUI);
2777
+ }
2778
+
2779
+ /**
2780
+ * 绘制小车:绘制托盘.
2781
+ *
2782
+ * @param rgv 小车.
2783
+ * @param rgvNode 小车节点.
2784
+ */
2785
+ function drawRgv_DrawContainerUI(rgv: StatusRgvVO, rgvNode: Q.Node): void {
2786
+ if (!kgCircularShuttleMonitor.store.getGraph) {
2787
+ return;
2788
+ }
2789
+
2790
+ const WIDTH = (CURRENT_RGV_WIDTH$.value / 4) * 3 - LINE_WIDTH * 1.5 - 80;
2791
+ const HEIGHT = CURRENT_RGV_HEIGHT$.value - LINE_WIDTH * 2 - 40;
2792
+
2793
+ const path = new Q.Path();
2794
+
2795
+ path.moveTo(0, 0);
2796
+ path.lineTo(WIDTH, 0);
2797
+ path.lineTo(WIDTH, HEIGHT);
2798
+ path.lineTo(0, HEIGHT);
2799
+ path.closePath();
2800
+
2801
+ const imageUI = new Q.ImageUI(path);
2802
+ imageUI.code = NODE_KEY.RGV__UI__CONTAINER;
2803
+ imageUI.anchorPosition = Q.Position.CENTER_MIDDLE;
2804
+ imageUI.position = Q.Position.CENTER_MIDDLE;
2805
+ imageUI.fillColor = rgv.loadState === 1 ? drawRgv_GetColorByState(rgv.state) : '#ffffff';
2806
+ imageUI.syncSelection = false;
2807
+
2808
+ // 顺时针,
2809
+ if (PATH_DIRECTION$.value === 0) {
2810
+ imageUI.offsetX = -LINE_WIDTH * 2.5;
2811
+ }
2812
+ // 逆时针,
2813
+ else {
2814
+ imageUI.offsetX = LINE_WIDTH * 2.5;
2815
+ }
2816
+
2817
+ rgvNode.addUI(imageUI);
2818
+ }
2819
+
2820
+ /**
2821
+ * 绘制小车:绘制选中时的遮盖效果.
2822
+ *
2823
+ * @param rgv 小车.
2824
+ * @param rgvNode 小车节点.
2825
+ */
2826
+ function drawRgv_DrawSelectUI(rgv: StatusRgvVO, rgvNode: Q.Node): void {
2827
+ if (!kgCircularShuttleMonitor.store.getGraph) {
2828
+ return;
2829
+ }
2830
+
2831
+ const WIDTH = rgv.length ?? 0;
2832
+ const HEIGHT = rgv.width ?? 0;
2833
+
2834
+ const path = new Q.Path();
2835
+
2836
+ path.moveTo(0, 0);
2837
+ path.lineTo(WIDTH, 0);
2838
+ path.lineTo(WIDTH, HEIGHT);
2839
+ path.lineTo(0, HEIGHT);
2840
+ path.closePath();
2841
+
2842
+ const imageUI = new Q.ImageUI(path);
2843
+ imageUI.code = NODE_KEY.RGV__UI__SELECT;
2844
+ imageUI.anchorPosition = Q.Position.CENTER_MIDDLE;
2845
+ imageUI.position = Q.Position.CENTER_MIDDLE;
2846
+ imageUI.syncSelection = false;
2847
+ imageUI.fillColor = isSelectBlinkOn ? '#ffff0075' : '#ffffff00';
2848
+ imageUI.borderColor = isSelectBlinkOn ? '#ffff00' : '#ffffff00';
2849
+ imageUI.border = LINE_WIDTH;
2850
+ imageUI.visible = !!kgCircularShuttleMonitor.store.$Canvas$getCurrentRgvList.find((i) => i.rgvNo === rgv.rgvNo);
2851
+
2852
+ rgvNode.addUI(imageUI);
2853
+ }
2854
+
2855
+ /**
2856
+ * 删除所有选中效果.
2857
+ */
2858
+ function clearSelectUI() {
2859
+ const stationNodeList = (kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.filter((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && !!getNodeUiByKey<Q.ImageUI>(i, NODE_KEY.STATION_UI_SELECT)) ?? []) as Array<Q.Node>;
2860
+ for (const stationNode of stationNodeList) {
2861
+ stationNode.removeUI(getNodeUiByKey<Q.ImageUI>(stationNode, NODE_KEY.STATION_UI_SELECT).ui);
2862
+ }
2863
+
2864
+ const rgvNodeList = (kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.filter((i) => i.properties.key?.startsWith(NODE_KEY.RGV) && !!getNodeUiByKey<Q.ImageUI>(i, NODE_KEY.RGV__UI__SELECT)) ?? []) as Array<Q.Node>;
2865
+ for (const rgvNode of rgvNodeList) {
2866
+ rgvNode.removeUI(getNodeUiByKey<Q.ImageUI>(rgvNode, NODE_KEY.RGV__UI__SELECT).ui);
2867
+ }
2868
+ }
2869
+
2870
+ /**
2871
+ * 获取节点下的界面元素.
2872
+ *
2873
+ * @param node 节点.
2874
+ * @param key 界面元素编号.
2875
+ */
2876
+ function getNodeUiByKey<T extends Q.BaseUI>(node: Q.Node, key: string): { ui: T } {
2877
+ return (node?.bindingUIs?.toDatas?.()?.find((i) => i.ui.code === key) ?? { ui: {} as Q.BaseUI }) as { ui: T };
2878
+ }
2879
+
2880
+ /**
2881
+ * 闪烁选中.
2882
+ */
2883
+ function blinkSelect() {
2884
+ try {
2885
+ if (!kgCircularShuttleMonitor.store.$Canvas$Setting$getIsSelectBlinkOn) {
2886
+ isSelectBlinkOn = true;
2887
+ } else {
2888
+ isSelectBlinkOn = !isSelectBlinkOn;
2889
+ }
2890
+
2891
+ if (selectBlinkDashOffset <= Number.MIN_SAFE_INTEGER) {
2892
+ selectBlinkDashOffset = 0;
2893
+ }
2894
+
2895
+ selectBlinkDashOffset -= 1;
2896
+
2897
+ const stationNodeList = (kgCircularShuttleMonitor.store.getGraph?.graphModel?.datas?.filter((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && !!getNodeUiByKey<Q.ImageUI>(i, NODE_KEY.STATION_UI_SELECT)) ??
2898
+ []) as Array<Q.Node>;
2899
+ for (const stationNode of stationNodeList) {
2900
+ const selectUI = getNodeUiByKey<Q.ImageUI>(stationNode, NODE_KEY.STATION_UI_SELECT);
2901
+ selectUI.ui.fillColor = isSelectBlinkOn ? '#ffff0075' : '#ffffff00';
2902
+ selectUI.ui.borderColor = isSelectBlinkOn ? '#ffff00' : '#ffffff00';
2903
+ kgCircularShuttleMonitor.graph!.invalidateElement(stationNode);
2904
+ }
2905
+
2906
+ const rgvNodeList = (kgCircularShuttleMonitor.store.getGraph?.graphModel?.datas?.filter((i) => i.properties.key?.startsWith(NODE_KEY.RGV) && !!getNodeUiByKey<Q.ImageUI>(i, NODE_KEY.RGV__UI__SELECT)) ?? []) as Array<Q.Node>;
2907
+ for (const rgvNode of rgvNodeList) {
2908
+ const selectUI = getNodeUiByKey<Q.ImageUI>(rgvNode, NODE_KEY.RGV__UI__SELECT);
2909
+ selectUI.ui.fillColor = isSelectBlinkOn ? '#ffff0075' : '#ffffff00';
2910
+ selectUI.ui.borderColor = isSelectBlinkOn ? '#ffff00' : '#ffffff00';
2911
+ kgCircularShuttleMonitor.graph!.invalidateElement(rgvNode);
2912
+ }
2913
+ } catch (e: any) {
2914
+ ____ERROR____(`KgCircularShuttleMonitor | 闪烁选中 | ${e.message}`);
2915
+ }
2916
+
2917
+ selectBlinkTimer = window.setTimeout(() => {
2918
+ blinkSelect();
2919
+ }, kgCircularShuttleMonitor.store.$Canvas$Setting$getSelectBlinkInterval);
2920
+ }
2921
+ //----------------------------------------------------------------------------------------------------
2922
+ //endregion
2923
+
2924
+ if (selectBlinkTimer && selectBlinkTimer !== -1) {
2925
+ clearTimeout(selectBlinkTimer);
2926
+ }
2927
+
2928
+ selectBlinkTimer = window.setTimeout(() => {
2929
+ blinkSelect();
2930
+ }, kgCircularShuttleMonitor.store.$Canvas$Setting$getSelectBlinkInterval);
2931
+
2932
+ return {
2933
+ draw: (param?: IUseDrawDrawParam) => {
2934
+ try {
2935
+ if (!kgCircularShuttleMonitor.store.getGraph) {
2936
+ return;
2937
+ }
2938
+
2939
+ // 上次绘制尚未完成, 取消本次绘制,
2940
+ if (isDrawing) {
2941
+ return;
2942
+ }
2943
+
2944
+ isDrawing = true;
2945
+
2946
+ const _graph = kgCircularShuttleMonitor.store.getGraph!;
2947
+
2948
+ // 绘制轨道, 绘制站点,
2949
+ if (param?.type === 'MAP') {
2950
+ // 绘制轨道时, 需要清空画布, 重新绘制所有内容,
2951
+ _graph.clear();
2952
+
2953
+ const canvasMapData = kgCircularShuttleMonitor.$Canvas$popMapData();
2954
+
2955
+ PATH_LENGTH$.value = 0;
2956
+ PATH_WIDTH$.value = 0;
2957
+ PATH_HEIGHT$.value = 0;
2958
+ PATH_LINE_WIDTH$.value = 0;
2959
+
2960
+ PATH_INNER_RADIUS$.value = 0;
2961
+ PATH_OUTER_RADIUS$.value = 0;
2962
+
2963
+ kgCircularShuttleMonitor.store.$Canvas$setCurrentStationList([]);
2964
+ kgCircularShuttleMonitor.store.$Canvas$setCurrentRgvList([]);
2965
+
2966
+ drawPath(canvasMapData);
2967
+ drawStationList(canvasMapData);
2968
+ }
2969
+ // 绘制小车, 更新站点,
2970
+ else {
2971
+ const canvasStatusData = kgCircularShuttleMonitor.$Canvas$popStatusData();
2972
+ updateStationList(canvasStatusData);
2973
+ drawAisleList();
2974
+ drawRgvList(canvasStatusData);
2975
+ }
2976
+
2977
+ // 默认纵览比例,
2978
+ if (param?.isZoomToOverview ?? false) {
2979
+ setTimeout(() => {
2980
+ _graph.zoomToOverview(false);
2981
+ }, 200);
2982
+ }
2983
+
2984
+ // 禁用缩放以及拖拽,
2985
+ if (kgCircularShuttleMonitor.store.getProps?.isScalable === false) {
2986
+ _graph.zoomToOverview(false);
2987
+
2988
+ _graph.callLater(
2989
+ () => {
2990
+ let x = _graph.bounds.x;
2991
+ let y = _graph.bounds.y;
2992
+ let width = _graph.bounds.width;
2993
+ let height = _graph.bounds.height;
2994
+
2995
+ // 尚未绘制图形, 比如图形数据为空,
2996
+ if (width <= 0 || height <= 0) {
2997
+ return;
2998
+ }
2999
+
3000
+ // 宽度大于高度
3001
+ if (_graph.viewportBounds.width > _graph.viewportBounds.height) {
3002
+ width = (height * _graph.viewportBounds.width) / _graph.viewportBounds.height;
3003
+ x = -width / 2;
3004
+ }
3005
+ // 宽度小于高度
3006
+ else {
3007
+ height = (width * _graph.viewportBounds.height) / _graph.viewportBounds.width;
3008
+ y = -height / 2;
3009
+ }
3010
+
3011
+ // 限制视窗范围
3012
+ _graph.limitedBounds = new Q.Rect(x, y, width, height);
3013
+ },
3014
+ undefined,
3015
+ 100,
3016
+ );
3017
+ }
3018
+
3019
+ isDrawing = false;
3020
+ } catch (e) {
3021
+ isDrawing = false;
3022
+ throw e;
3023
+ } finally {
3024
+ }
3025
+ },
3026
+
3027
+ onSelectChange: () => {
3028
+ clearSelectUI();
3029
+
3030
+ for (let rgv of kgCircularShuttleMonitor.store.$Canvas$getCurrentRgvList) {
3031
+ const rgvNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.RGV) && (i.properties.data as StatusRgvVO)?.rgvNo === rgv.rgvNo) as Q.Node;
3032
+
3033
+ if (rgvNode) {
3034
+ drawRgv_DrawSelectUI(rgv, rgvNode);
3035
+ }
3036
+ }
3037
+
3038
+ for (let station of kgCircularShuttleMonitor.store.$Canvas$getCurrentStationList) {
3039
+ const stationNode = kgCircularShuttleMonitor.store.getGraph!.graphModel.datas.find((i) => i.properties.key?.startsWith(NODE_KEY.STATION) && (i.properties.data as MapStationVO)?.conveyorNo === station.conveyorNo) as Q.Node;
3040
+
3041
+ if (stationNode) {
3042
+ const selectUI = drawStation_DrawSelectUI(station);
3043
+ if (selectUI) {
3044
+ stationNode.addUI(selectUI);
3045
+ }
3046
+ }
3047
+ }
3048
+ },
3049
+ };
3050
+ }
3051
+
3052
+ //----------------------------------------------------------------------------------------------------
3053
+ //endregion