hy-dispatch-ui-v3 0.2.66 → 0.2.68

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 (288) hide show
  1. package/dist/tailwind.css +257 -21
  2. package/es/api/device.mjs +2 -3
  3. package/es/api/exportExcel.mjs +57 -0
  4. package/es/api/index.mjs +27 -16
  5. package/es/api/mapRail.mjs +31 -0
  6. package/es/api/organization.mjs +17 -9
  7. package/es/api/rule.mjs +30 -0
  8. package/es/api/sypct.mjs +2 -3
  9. package/es/api/task.mjs +2 -3
  10. package/es/bussiness/hyAddDepartmentType/addDepartmentType.vue.mjs +18 -19
  11. package/es/bussiness/hyAddDepartmentType/style/addDepartmentType.scss +28 -28
  12. package/es/bussiness/hyElectronicFence/cpns/addElectronicFenceDialog/addElectronicFenceDialog.vue.mjs +511 -0
  13. package/es/bussiness/hyElectronicFence/cpns/batchSetElectronicFenceUserDialog/batchSetElectronicFenceUserDialog.vue.mjs +169 -0
  14. package/es/bussiness/hyElectronicFence/cpns/electronicFenceAssociatedUsersDialog/electronicFenceAssociatedUsersDialog.vue.mjs +318 -0
  15. package/es/bussiness/hyElectronicFence/cpns/electronicFenceAssociatedUsersDialog/electronicFenceAssociatedUsersItem.vue.mjs +123 -0
  16. package/es/bussiness/hyElectronicFence/electronicFence.vue.mjs +358 -0
  17. package/es/bussiness/hyElectronicFence/index.mjs +13 -0
  18. package/es/bussiness/hyElectronicFence/style/electronicFence.scss +0 -0
  19. package/es/bussiness/hyMapAearchPlace/js/index.mjs +1 -1
  20. package/es/bussiness/hyMapAearchPlace/mapAearchPlace.vue.mjs +4 -6
  21. package/es/bussiness/hyMapAearchPlace/style/mapAearchPlace.scss +4 -3
  22. package/es/bussiness/hyRuleSetting/cpns/gatheringPeople/gatheringPeople.vue.mjs +270 -0
  23. package/es/bussiness/hyRuleSetting/cpns/missionInRule/missionInRule.vue.mjs +251 -0
  24. package/es/bussiness/hyRuleSetting/cpns/missionOutRule/missionOutRule.vue.mjs +251 -0
  25. package/es/bussiness/hyRuleSetting/cpns/ruleAssignDialog/ruleAssignDialog.vue.mjs +395 -0
  26. package/es/bussiness/hyRuleSetting/cpns/ruleFenceDialog/ruleFenceDialog.vue.mjs +651 -0
  27. package/es/bussiness/hyRuleSetting/cpns/ruleSettingDialog/ruleSettingDialog.vue.mjs +357 -0
  28. package/es/bussiness/hyRuleSetting/cpns/sedentary/sedentary.vue.mjs +261 -0
  29. package/es/bussiness/hyRuleSetting/cpns/setRuleAggregationAlarmDialog/setRuleAggregationAlarmDialog.vue.mjs +360 -0
  30. package/es/bussiness/hyRuleSetting/cpns/timedVideo/timedVideo.vue.mjs +240 -0
  31. package/es/bussiness/hyRuleSetting/cpns/timerCamera/timerCamera.vue.mjs +258 -0
  32. package/es/bussiness/hyRuleSetting/cpns/timingReturn/timingReturn.vue.mjs +240 -0
  33. package/es/bussiness/hyRuleSetting/index.mjs +15 -0
  34. package/es/bussiness/hyRuleSetting/js/ruleSetting.mjs +65 -0
  35. package/es/bussiness/hyRuleSetting/ruleSetting.vue.mjs +129 -0
  36. package/es/bussiness/hyRuleSetting/style/ruleSetting.scss +0 -0
  37. package/es/bussiness/index.mjs +2 -0
  38. package/es/components/hyAudioPlayer/audioPlayer.vue.mjs +5 -13
  39. package/es/components/hyAudioPlayer/js/index.mjs +9 -14
  40. package/es/components/hyAudioPlayer/style/audioPlayer.scss +7 -2
  41. package/es/components/hyBatchUploadDialog/batchUploadDialog.vue.mjs +174 -142
  42. package/es/components/hyButton/button.vue.mjs +18 -5
  43. package/es/components/hyButton/style/button.scss +50 -74
  44. package/es/components/hyCheckboxGroup/checkboxGroup.vue.mjs +119 -0
  45. package/es/components/hyCheckboxGroup/index.mjs +7 -0
  46. package/es/components/hyCheckboxGroup/style/checkboxGroup.scss +58 -0
  47. package/es/components/hyConfigProvider/configProvider.vue.mjs +51 -38
  48. package/es/components/hyConfirmDialog/confirmDialog.vue.mjs +57 -62
  49. package/es/components/hyConfirmDialog/confirmMethod.mjs +24 -22
  50. package/es/components/hyCutter/cutter.vue.mjs +9 -23
  51. package/es/components/hyDatePicker/datePicker.vue.mjs +12 -17
  52. package/es/components/hyDialog/dialog.vue.mjs +5 -9
  53. package/es/components/hyDialog/style/dialog.scss +12 -13
  54. package/es/components/hyDrawer/drawer.vue.mjs +100 -0
  55. package/es/components/hyDrawer/index.mjs +7 -0
  56. package/es/components/hyDrawer/style/drawer.scss +0 -0
  57. package/es/components/hyForm/cpns/arrayItem.vue.mjs +10 -28
  58. package/es/components/hyForm/cpns/arrayItem2.vue.mjs +198 -0
  59. package/es/components/hyForm/cpns/extraItem.vue.mjs +2 -3
  60. package/es/components/hyForm/cpns/formItem.vue.mjs +149 -69
  61. package/es/components/hyForm/cpns/locationSelect.vue.mjs +26 -26
  62. package/es/components/hyForm/form.vue.mjs +74 -28
  63. package/es/components/hyForm/js/index.mjs +4 -8
  64. package/es/components/hyForm/js/useAppForm.mjs +4 -9
  65. package/es/components/hyForm/style/form.scss +4 -13
  66. package/es/components/hyIcon/icon.vue.mjs +3 -3
  67. package/es/components/hyIconBox/style/iconBox.scss +2 -6
  68. package/es/components/hyInput/inputSearch.vue.mjs +8 -11
  69. package/es/components/hyInput/style/inputSearch.scss +3 -0
  70. package/es/components/hyLoading/index.mjs +3 -5
  71. package/es/components/hyMap/js/index.mjs +35 -10
  72. package/es/components/hyMap/map.vue.mjs +30 -6
  73. package/es/components/hyMenu/style/menu.scss +5 -15
  74. package/es/components/hyNoPermissions/noPermissions.vue.mjs +3 -4
  75. package/es/components/hyNoPermissionsMap/noPermissionsMap.vue.mjs +3 -6
  76. package/es/components/hyOrgCascader/js/index.mjs +1 -5
  77. package/es/components/hyOrgCascader/orgCascader.vue.mjs +31 -12
  78. package/es/components/hyOrgCascader/style/orgCascader.scss +7 -0
  79. package/es/components/hyRadioGroup/radioGroup.vue.mjs +48 -41
  80. package/es/components/hyRadioGroup/style/radioGroup.scss +9 -0
  81. package/es/components/hySearch/cpns/searchItem.vue.mjs +409 -324
  82. package/es/components/hySearch/js/index.mjs +1 -4
  83. package/es/components/hySearch/js/useAppSearch.mjs +5 -10
  84. package/es/components/hySearch/search.vue.mjs +23 -20
  85. package/es/components/hySearch/style/search.scss +9 -0
  86. package/es/components/hyStatus/index.mjs +7 -0
  87. package/es/components/hyStatus/status.vue.mjs +110 -0
  88. package/es/components/hyStatus/style/status.scss +0 -0
  89. package/es/components/hyTable/cpns/columnSelect.vue.mjs +24 -28
  90. package/es/components/hyTable/cpns/columnSelectItem.vue.mjs +8 -9
  91. package/es/components/hyTable/cpns/headerItem.vue.mjs +2 -2
  92. package/es/components/hyTable/cpns/virtualTable.vue.mjs +43 -34
  93. package/es/components/hyTable/js/index.mjs +67 -64
  94. package/es/components/hyTable/js/search.mjs +25 -1
  95. package/es/components/hyTable/js/useAppTable.mjs +3 -4
  96. package/es/components/hyTable/style/table.scss +8 -0
  97. package/es/components/hyTable/table.vue.mjs +68 -53
  98. package/es/components/hyTableActionButton/tableActionButton.vue.mjs +13 -6
  99. package/es/components/hyTableForm/batchTableForm.vue.mjs +26 -9
  100. package/es/components/hyTableForm/js/index.mjs +2 -8
  101. package/es/components/hyTableForm/js/useAppTableForm.mjs +3 -8
  102. package/es/components/hyTableForm/style/batchTableForm.scss +26 -54
  103. package/es/components/hyTableForm/style/tableForm.scss +3 -2
  104. package/es/components/hyTableForm/tableForm.vue.mjs +160 -70
  105. package/es/components/hyTimePicker/timePicker.vue.mjs +4 -5
  106. package/es/components/hyTree/js/index.mjs +113 -72
  107. package/es/components/hyTree/style/index.css +1 -1
  108. package/es/components/hyTree/tree.vue.mjs +21 -18
  109. package/es/components/hyUserAvatar/userAvatar.vue.mjs +3 -6
  110. package/es/components/hyVideoPlayer/js/index.mjs +14 -23
  111. package/es/components/hyVideoPlayer/style/videoPlayer.scss +5 -7
  112. package/es/components/hyVideoPlayer/videoPlayer.vue.mjs +16 -26
  113. package/es/components/index.mjs +3 -0
  114. package/es/hooks/index.mjs +6 -2
  115. package/es/hooks/useAudioPlayerConfig.mjs +1 -3
  116. package/es/hooks/useBaseMainStore.mjs +29 -0
  117. package/es/hooks/useCurrentBus.mjs +20 -0
  118. package/es/hooks/useDialog.mjs +327 -0
  119. package/es/hooks/useExportFile.mjs +133 -0
  120. package/es/hooks/useGlobalConfig.mjs +10 -6
  121. package/es/hooks/useLocale.mjs +22 -12
  122. package/es/hooks/usePermissionMap.mjs +1 -3
  123. package/es/hooks/useResizeHandler.mjs +1 -4
  124. package/es/hooks/useResizeObserver.mjs +3 -1
  125. package/es/hooks/useSubscribe.mjs +2 -2
  126. package/es/hooks/useUserAvatarMap.mjs +1 -3
  127. package/es/hooks/useVideoPlayerConfig.mjs +1 -3
  128. package/es/index.mjs +11 -2
  129. package/es/locale/{en.mjs → en_US.mjs} +79 -4
  130. package/es/locale/index.mjs +2 -2
  131. package/es/locale/zh_CN.mjs +79 -2
  132. package/es/style/index.scss +0 -1
  133. package/es/style/tailwind.scss +7 -4
  134. package/es/utils/adaptive.mjs +1 -3
  135. package/es/utils/form.mjs +7 -10
  136. package/es/utils/handler.mjs +4 -8
  137. package/es/utils/input.mjs +8 -9
  138. package/es/utils/is.mjs +3 -1
  139. package/es/utils/map/hook/bigMap.mjs +16 -53
  140. package/es/utils/map/hook/gaode.mjs +53 -33
  141. package/es/utils/map/hook/leafletjs.mjs +38 -82
  142. package/es/utils/map/index.mjs +3 -9
  143. package/es/utils/map/js/webgis.mjs +12 -12
  144. package/es/version.mjs +1 -1
  145. package/lib/api/device.js +2 -3
  146. package/lib/api/exportExcel.js +62 -0
  147. package/lib/api/index.js +27 -16
  148. package/lib/api/mapRail.js +34 -0
  149. package/lib/api/organization.js +17 -8
  150. package/lib/api/rule.js +33 -0
  151. package/lib/api/sypct.js +2 -3
  152. package/lib/api/task.js +2 -3
  153. package/lib/bussiness/hyAddDepartmentType/addDepartmentType.vue.js +17 -18
  154. package/lib/bussiness/hyAddDepartmentType/style/addDepartmentType.scss +28 -28
  155. package/lib/bussiness/hyElectronicFence/cpns/addElectronicFenceDialog/addElectronicFenceDialog.vue.js +515 -0
  156. package/lib/bussiness/hyElectronicFence/cpns/batchSetElectronicFenceUserDialog/batchSetElectronicFenceUserDialog.vue.js +173 -0
  157. package/lib/bussiness/hyElectronicFence/cpns/electronicFenceAssociatedUsersDialog/electronicFenceAssociatedUsersDialog.vue.js +322 -0
  158. package/lib/bussiness/hyElectronicFence/cpns/electronicFenceAssociatedUsersDialog/electronicFenceAssociatedUsersItem.vue.js +127 -0
  159. package/lib/bussiness/hyElectronicFence/electronicFence.vue.js +362 -0
  160. package/lib/bussiness/hyElectronicFence/index.js +21 -0
  161. package/lib/bussiness/hyElectronicFence/style/electronicFence.scss +0 -0
  162. package/lib/bussiness/hyMapAearchPlace/js/index.js +1 -1
  163. package/lib/bussiness/hyMapAearchPlace/mapAearchPlace.vue.js +4 -6
  164. package/lib/bussiness/hyMapAearchPlace/style/mapAearchPlace.scss +4 -3
  165. package/lib/bussiness/hyRuleSetting/cpns/gatheringPeople/gatheringPeople.vue.js +274 -0
  166. package/lib/bussiness/hyRuleSetting/cpns/missionInRule/missionInRule.vue.js +255 -0
  167. package/lib/bussiness/hyRuleSetting/cpns/missionOutRule/missionOutRule.vue.js +255 -0
  168. package/lib/bussiness/hyRuleSetting/cpns/ruleAssignDialog/ruleAssignDialog.vue.js +399 -0
  169. package/lib/bussiness/hyRuleSetting/cpns/ruleFenceDialog/ruleFenceDialog.vue.js +655 -0
  170. package/lib/bussiness/hyRuleSetting/cpns/ruleSettingDialog/ruleSettingDialog.vue.js +361 -0
  171. package/lib/bussiness/hyRuleSetting/cpns/sedentary/sedentary.vue.js +265 -0
  172. package/lib/bussiness/hyRuleSetting/cpns/setRuleAggregationAlarmDialog/setRuleAggregationAlarmDialog.vue.js +364 -0
  173. package/lib/bussiness/hyRuleSetting/cpns/timedVideo/timedVideo.vue.js +244 -0
  174. package/lib/bussiness/hyRuleSetting/cpns/timerCamera/timerCamera.vue.js +262 -0
  175. package/lib/bussiness/hyRuleSetting/cpns/timingReturn/timingReturn.vue.js +244 -0
  176. package/lib/bussiness/hyRuleSetting/index.js +24 -0
  177. package/lib/bussiness/hyRuleSetting/js/ruleSetting.js +68 -0
  178. package/lib/bussiness/hyRuleSetting/ruleSetting.vue.js +133 -0
  179. package/lib/bussiness/hyRuleSetting/style/ruleSetting.scss +0 -0
  180. package/lib/bussiness/index.js +21 -10
  181. package/lib/components/hyAudioPlayer/audioPlayer.vue.js +5 -13
  182. package/lib/components/hyAudioPlayer/js/index.js +9 -14
  183. package/lib/components/hyAudioPlayer/style/audioPlayer.scss +7 -2
  184. package/lib/components/hyBatchUploadDialog/batchUploadDialog.vue.js +173 -141
  185. package/lib/components/hyButton/button.vue.js +17 -4
  186. package/lib/components/hyButton/style/button.scss +50 -74
  187. package/lib/components/hyCheckboxGroup/checkboxGroup.vue.js +123 -0
  188. package/lib/components/hyCheckboxGroup/index.js +12 -0
  189. package/lib/components/hyCheckboxGroup/style/checkboxGroup.scss +58 -0
  190. package/lib/components/hyConfigProvider/configProvider.vue.js +50 -56
  191. package/lib/components/hyConfirmDialog/confirmDialog.vue.js +56 -61
  192. package/lib/components/hyConfirmDialog/confirmMethod.js +23 -21
  193. package/lib/components/hyCutter/cutter.vue.js +8 -22
  194. package/lib/components/hyDatePicker/datePicker.vue.js +11 -16
  195. package/lib/components/hyDialog/dialog.vue.js +5 -9
  196. package/lib/components/hyDialog/style/dialog.scss +12 -13
  197. package/lib/components/hyDrawer/drawer.vue.js +104 -0
  198. package/lib/components/hyDrawer/index.js +12 -0
  199. package/lib/components/hyDrawer/style/drawer.scss +0 -0
  200. package/lib/components/hyForm/cpns/arrayItem.vue.js +9 -27
  201. package/lib/components/hyForm/cpns/arrayItem2.vue.js +202 -0
  202. package/lib/components/hyForm/cpns/extraItem.vue.js +2 -3
  203. package/lib/components/hyForm/cpns/formItem.vue.js +148 -68
  204. package/lib/components/hyForm/cpns/locationSelect.vue.js +26 -26
  205. package/lib/components/hyForm/form.vue.js +69 -23
  206. package/lib/components/hyForm/js/index.js +3 -7
  207. package/lib/components/hyForm/js/useAppForm.js +4 -9
  208. package/lib/components/hyForm/style/form.scss +4 -13
  209. package/lib/components/hyIcon/icon.vue.js +3 -3
  210. package/lib/components/hyIconBox/style/iconBox.scss +2 -6
  211. package/lib/components/hyInput/inputSearch.vue.js +7 -10
  212. package/lib/components/hyInput/style/inputSearch.scss +3 -0
  213. package/lib/components/hyLoading/index.js +2 -4
  214. package/lib/components/hyMap/js/index.js +34 -9
  215. package/lib/components/hyMap/map.vue.js +29 -5
  216. package/lib/components/hyMenu/style/menu.scss +5 -15
  217. package/lib/components/hyNoPermissions/noPermissions.vue.js +3 -4
  218. package/lib/components/hyNoPermissionsMap/noPermissionsMap.vue.js +3 -6
  219. package/lib/components/hyOrgCascader/js/index.js +1 -5
  220. package/lib/components/hyOrgCascader/orgCascader.vue.js +29 -10
  221. package/lib/components/hyOrgCascader/style/orgCascader.scss +7 -0
  222. package/lib/components/hyRadioGroup/radioGroup.vue.js +47 -40
  223. package/lib/components/hyRadioGroup/style/radioGroup.scss +9 -0
  224. package/lib/components/hySearch/cpns/searchItem.vue.js +407 -322
  225. package/lib/components/hySearch/js/index.js +1 -4
  226. package/lib/components/hySearch/js/useAppSearch.js +5 -10
  227. package/lib/components/hySearch/search.vue.js +23 -20
  228. package/lib/components/hySearch/style/search.scss +9 -0
  229. package/lib/components/hyStatus/index.js +12 -0
  230. package/lib/components/hyStatus/status.vue.js +114 -0
  231. package/lib/components/hyStatus/style/status.scss +0 -0
  232. package/lib/components/hyTable/cpns/columnSelect.vue.js +22 -26
  233. package/lib/components/hyTable/cpns/columnSelectItem.vue.js +7 -8
  234. package/lib/components/hyTable/cpns/headerItem.vue.js +2 -2
  235. package/lib/components/hyTable/cpns/virtualTable.vue.js +41 -32
  236. package/lib/components/hyTable/js/index.js +65 -61
  237. package/lib/components/hyTable/js/search.js +25 -1
  238. package/lib/components/hyTable/js/useAppTable.js +2 -3
  239. package/lib/components/hyTable/style/table.scss +8 -0
  240. package/lib/components/hyTable/table.vue.js +67 -52
  241. package/lib/components/hyTableActionButton/tableActionButton.vue.js +13 -6
  242. package/lib/components/hyTableForm/batchTableForm.vue.js +26 -9
  243. package/lib/components/hyTableForm/js/index.js +2 -8
  244. package/lib/components/hyTableForm/js/useAppTableForm.js +3 -8
  245. package/lib/components/hyTableForm/style/batchTableForm.scss +26 -54
  246. package/lib/components/hyTableForm/style/tableForm.scss +3 -2
  247. package/lib/components/hyTableForm/tableForm.vue.js +159 -69
  248. package/lib/components/hyTimePicker/timePicker.vue.js +3 -4
  249. package/lib/components/hyTree/js/index.js +113 -72
  250. package/lib/components/hyTree/style/index.css +1 -1
  251. package/lib/components/hyTree/tree.vue.js +21 -18
  252. package/lib/components/hyUserAvatar/userAvatar.vue.js +3 -6
  253. package/lib/components/hyVideoPlayer/js/index.js +14 -23
  254. package/lib/components/hyVideoPlayer/style/videoPlayer.scss +5 -7
  255. package/lib/components/hyVideoPlayer/videoPlayer.vue.js +16 -26
  256. package/lib/components/index.js +46 -40
  257. package/lib/hooks/index.js +17 -0
  258. package/lib/hooks/useAudioPlayerConfig.js +1 -3
  259. package/lib/hooks/useBaseMainStore.js +32 -0
  260. package/lib/hooks/useCurrentBus.js +23 -0
  261. package/lib/hooks/useDialog.js +331 -0
  262. package/lib/hooks/useExportFile.js +135 -0
  263. package/lib/hooks/useGlobalConfig.js +10 -6
  264. package/lib/hooks/useLocale.js +25 -11
  265. package/lib/hooks/usePermissionMap.js +1 -3
  266. package/lib/hooks/useResizeHandler.js +1 -4
  267. package/lib/hooks/useResizeObserver.js +3 -1
  268. package/lib/hooks/useSubscribe.js +2 -1
  269. package/lib/hooks/useUserAvatarMap.js +1 -3
  270. package/lib/hooks/useVideoPlayerConfig.js +1 -3
  271. package/lib/index.js +107 -73
  272. package/lib/locale/{en.js → en_US.js} +79 -4
  273. package/lib/locale/index.js +3 -3
  274. package/lib/locale/zh_CN.js +79 -2
  275. package/lib/style/index.scss +0 -1
  276. package/lib/style/tailwind.scss +7 -4
  277. package/lib/utils/adaptive.js +1 -3
  278. package/lib/utils/form.js +6 -9
  279. package/lib/utils/handler.js +3 -7
  280. package/lib/utils/input.js +7 -8
  281. package/lib/utils/is.js +5 -3
  282. package/lib/utils/map/hook/bigMap.js +16 -53
  283. package/lib/utils/map/hook/gaode.js +53 -33
  284. package/lib/utils/map/hook/leafletjs.js +38 -82
  285. package/lib/utils/map/index.js +3 -9
  286. package/lib/utils/map/js/webgis.js +12 -12
  287. package/lib/version.js +1 -1
  288. package/package.json +3 -2
@@ -7,7 +7,6 @@
7
7
  height: 340px;
8
8
  position: relative;
9
9
  border-radius: 8px;
10
- border: 1px dashed rgba(var(--hy-auxiliary));
11
10
  box-sizing: border-box;
12
11
  &:hover {
13
12
  border-color: rgba(var(--hy-theme));
@@ -29,34 +28,22 @@
29
28
  height: 200%;
30
29
  /* 绘制网格线:使用青色,透明度调低,让它融合在 #14273a 背景里 */
31
30
  background-image:
32
- /* 纵向线 */ linear-gradient(
33
- 90deg,
34
- rgba(0, 229, 255, 0.1) 1px,
35
- transparent 1px
36
- ),
37
- /* 横向线 */
38
- linear-gradient(rgba(0, 229, 255, 0.1) 1px, transparent 1px);
39
-
31
+ /* 纵向线 */
32
+ linear-gradient(90deg, rgba(0, 229, 255, 0.1) 1px, transparent 1px),
33
+ /* 横向线 */ linear-gradient(rgba(0, 229, 255, 0.1) 1px, transparent 1px);
34
+
40
35
  /* 网格尺寸 40px */
41
36
  background-size: 40px 40px;
42
-
37
+
43
38
  /* 3D 倒伏效果 */
44
39
  transform: rotateX(60deg);
45
-
40
+
46
41
  /* 动效:无限流动 */
47
42
  animation: grid-flow 20s linear infinite;
48
-
43
+
49
44
  /* 遮罩:四周渐隐,让网格不那么生硬 */
50
- mask-image: radial-gradient(
51
- circle at 50% 50%,
52
- black 10%,
53
- transparent 80%
54
- );
55
- -webkit-mask-image: radial-gradient(
56
- circle at 50% 50%,
57
- black 10%,
58
- transparent 80%
59
- );
45
+ mask-image: radial-gradient(circle at 50% 50%, black 10%, transparent 80%);
46
+ -webkit-mask-image: radial-gradient(circle at 50% 50%, black 10%, transparent 80%);
60
47
  }
61
48
  &::after {
62
49
  display: block;
@@ -66,14 +53,10 @@
66
53
  left: 0;
67
54
  width: 100%;
68
55
  height: 100%;
69
- background: radial-gradient(
70
- circle at 50% 50%,
71
- rgba(0, 229, 255, 0.05) 0%,
72
- transparent 70%
73
- );
56
+ background: radial-gradient(circle at 50% 50%, rgba(0, 229, 255, 0.05) 0%, transparent 70%);
74
57
  }
75
58
  }
76
-
59
+
77
60
  .hy-el-upload {
78
61
  width: 100%;
79
62
  height: 100%;
@@ -84,17 +67,21 @@
84
67
  flex-direction: column;
85
68
  align-items: center;
86
69
  justify-content: center;
87
- border: none;
70
+ border: 1px dashed rgba(var(--hy-auxiliary));
88
71
  &:hover {
89
- border-color: var(--theme);
90
72
  .type-icon-box {
91
73
  transform: translateY(-10px);
92
74
  }
93
75
  }
76
+ &.is-dragover {
77
+ border: 1px solid rgba(var(--hy-theme)) !important;
78
+ box-shadow: 0px 0px 6px 0px rgba(var(--hy-theme));
79
+ background-color: var(--hy-el-fill-color-blank) !important;
80
+ }
94
81
  }
95
82
  }
96
83
  }
97
-
84
+
98
85
  .hy-batch-table-form-step-box {
99
86
  width: 100%;
100
87
  height: 260px;
@@ -103,6 +90,7 @@
103
90
  padding-top: 24px;
104
91
  border-radius: 8px;
105
92
  background-color: rgba(var(--hy-background-2), 0.5);
93
+ box-sizing: border-box;
106
94
  .hy-el-step {
107
95
  .hy-el-step__description {
108
96
  padding-left: 0px !important;
@@ -122,6 +110,7 @@
122
110
  border: 1px dashed rgba(var(--hy-auxiliary), 0.5);
123
111
  border-radius: 4px;
124
112
  background: rgba(var(--hy-background-2), 0.5);
113
+ box-sizing: border-box;
125
114
  }
126
115
 
127
116
  .hy-batch-table-form-upload-bg {
@@ -141,13 +130,9 @@
141
130
  height: 200%;
142
131
  /* 绘制网格线:使用青色,透明度调低,让它融合在 #14273a 背景里 */
143
132
  background-image:
144
- /* 纵向线 */ linear-gradient(
145
- 90deg,
146
- rgba(0, 229, 255, 0.1) 1px,
147
- transparent 1px
148
- ),
149
- /* 横向线 */
150
- linear-gradient(rgba(0, 229, 255, 0.1) 1px, transparent 1px);
133
+ /* 纵向线 */
134
+ linear-gradient(90deg, rgba(0, 229, 255, 0.1) 1px, transparent 1px),
135
+ /* 横向线 */ linear-gradient(rgba(0, 229, 255, 0.1) 1px, transparent 1px);
151
136
 
152
137
  /* 网格尺寸 40px */
153
138
  background-size: 40px 40px;
@@ -159,16 +144,8 @@
159
144
  animation: grid-flow 20s linear infinite;
160
145
 
161
146
  /* 遮罩:四周渐隐,让网格不那么生硬 */
162
- mask-image: radial-gradient(
163
- circle at 50% 50%,
164
- black 10%,
165
- transparent 80%
166
- );
167
- -webkit-mask-image: radial-gradient(
168
- circle at 50% 50%,
169
- black 10%,
170
- transparent 80%
171
- );
147
+ mask-image: radial-gradient(circle at 50% 50%, black 10%, transparent 80%);
148
+ -webkit-mask-image: radial-gradient(circle at 50% 50%, black 10%, transparent 80%);
172
149
  }
173
150
  &::after {
174
151
  display: block;
@@ -178,12 +155,7 @@
178
155
  left: 0;
179
156
  width: 100%;
180
157
  height: 100%;
181
- background: radial-gradient(
182
- circle at 50% 50%,
183
- rgba(0, 229, 255, 0.05) 0%,
184
- transparent 70%
185
- );
158
+ background: radial-gradient(circle at 50% 50%, rgba(0, 229, 255, 0.05) 0%, transparent 70%);
186
159
  }
187
160
  }
188
161
  }
189
-
@@ -19,6 +19,7 @@
19
19
  border-radius: 4px;
20
20
  padding: 2px;
21
21
  font-size: 0.75rem;
22
+ box-sizing: border-box;
22
23
  .hy-table-form-tab-button {
23
24
  display: flex;
24
25
  align-items: center;
@@ -28,15 +29,15 @@
28
29
  border-radius: 2px;
29
30
  cursor: pointer;
30
31
  transition: all 0.3s linear;
32
+ box-sizing: border-box;
31
33
  &:hover {
32
34
  color: rgba(var(--hy-main));
33
35
  }
34
36
  &.is-select {
35
37
  color: rgba(var(--hy-main));
36
- background: linear-gradient(180deg, rgba(var(--hy-theme)) 0%, #2A4968 100%);
38
+ background: linear-gradient(180deg, rgba(var(--hy-theme)) 0%, #2a4968 100%);
37
39
  border-image: linear-gradient(180deg, rgba(var(--hy-theme)) 80%, rgba(var(--hy-auxiliary))) 1 1;
38
40
  }
39
41
  }
40
42
  }
41
43
  }
42
-
@@ -5,8 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var vue = require('vue');
6
6
  require('../index.js');
7
7
  require('../../utils/index.js');
8
+ require('../../hooks/index.js');
8
9
  var index = require('./js/index.js');
9
10
  var useAppTable = require('../hyTable/js/useAppTable.js');
11
+ var useResizeObserver = require('../../hooks/useResizeObserver.js');
10
12
  var useAppForm = require('../hyForm/js/useAppForm.js');
11
13
  var is = require('../../utils/is.js');
12
14
  var handler = require('../../utils/handler.js');
@@ -75,16 +77,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
75
77
  setup(__props, { expose: __expose, emit: __emit }) {
76
78
  const props = __props;
77
79
  const emits = __emit;
78
- vue.onMounted(() => {
79
- vue.watch(
80
- () => dataSource.value,
81
- () => {
82
- emits("tableDataChange", dataSource.value);
83
- },
84
- { deep: true, immediate: true }
85
- );
86
- });
87
80
  const tableRef = vue.useTemplateRef("tableRef");
81
+ const formContainerRef = vue.useTemplateRef("formContainerRef");
88
82
  const formRef = vue.useTemplateRef("formRef");
89
83
  const dataSource = vue.ref([]);
90
84
  const tabList = vue.ref([
@@ -110,7 +104,11 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
110
104
  }
111
105
  ]
112
106
  });
113
- const isExpandValidate = vue.ref(false);
107
+ const statistics = vue.ref({
108
+ success: 0,
109
+ failed: 0,
110
+ total: dataSource.value.length
111
+ });
114
112
  const tableFormColumns = vue.computed(() => {
115
113
  if (!props.tableColumns) return [];
116
114
  return [...props.tableColumns, ...operatorColumn.value];
@@ -118,25 +116,12 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
118
116
  const expandColumn = vue.computed(() => {
119
117
  return props.tableColumns.find((item) => item.type === "expand");
120
118
  });
121
- const statistics = vue.computed(() => {
122
- return dataSource.value.reduce(
123
- ({ success, failed, total }, data) => {
124
- if (!data.errorMsg) {
125
- success++;
126
- } else {
127
- failed++;
128
- }
129
- return { success, failed, total };
130
- },
131
- { success: 0, failed: 0, total: dataSource.value.length }
132
- );
133
- });
134
119
  function setData(dataSource2) {
135
120
  if (!tableRef.value) return;
136
121
  tableRef.value.setData(dataSource2);
137
122
  }
138
123
  function rowClassName({ row, rowIndex }) {
139
- if (row.errorMsg) {
124
+ if (row.errorMsg && row.errorMsg.message) {
140
125
  return "hy-el-table-v2__row-error";
141
126
  }
142
127
  }
@@ -147,21 +132,40 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
147
132
  setData(dataSource.value);
148
133
  } else {
149
134
  const data = dataSource.value.filter((data2) => {
150
- return !!data2.errorMsg;
135
+ return data2.errorMsg && data2.errorMsg.message;
151
136
  });
152
137
  setData(data);
153
138
  }
154
139
  }
155
- async function onExpandRowChange(row) {
140
+ let formClientHeight, removeResize, tableScrollTop, expanding;
141
+ async function onExpandRowChange2(row, isExpanded) {
156
142
  if (props.onExpandRowChange) {
157
143
  props.onExpandRowChange(row);
158
144
  }
159
145
  await vue.nextTick();
160
- if (!formRef.value) return;
146
+ if (!formRef.value || !isExpanded) {
147
+ removeResize && removeResize();
148
+ return;
149
+ }
150
+ const instance = useResizeObserver.useResizeObserver(formContainerRef.value, async () => {
151
+ if (!formContainerRef.value) return;
152
+ const [key] = tableRef.value.getRowExpansion();
153
+ if (formClientHeight === formContainerRef.value.clientHeight) return;
154
+ if (!key) return;
155
+ removeResize && removeResize();
156
+ expanding = true;
157
+ tableRef.value.toggleRowExpansion(key, false);
158
+ await vue.nextTick();
159
+ tableRef.value.toggleRowExpansion(key, true);
160
+ await new Promise((resolve) => setTimeout(resolve, 1));
161
+ tableRef.value.scrollToTop(tableScrollTop);
162
+ expanding = false;
163
+ });
164
+ formClientHeight = formContainerRef.value.clientHeight;
165
+ removeResize = instance.removeResize;
161
166
  const valid = await initValidateHandler([row]);
162
167
  if (valid) return;
163
- formRef.value.validate();
164
- isExpandValidate.value = true;
168
+ triggerValidate();
165
169
  }
166
170
  function onDeleteRowHandler(params) {
167
171
  const { $index } = params;
@@ -185,6 +189,14 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
185
189
  ...statistics.value
186
190
  });
187
191
  }
192
+ function onScrollHandler(params) {
193
+ if (expanding) return;
194
+ tableScrollTop = params.scrollTop;
195
+ }
196
+ const validateTriggerId = vue.ref(0);
197
+ function triggerValidate() {
198
+ validateTriggerId.value++;
199
+ }
188
200
  async function initValidateHandler(dataSource2) {
189
201
  let promiseList = [];
190
202
  for (const data of dataSource2) {
@@ -192,7 +204,12 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
192
204
  new Promise(async (resolve, reject) => {
193
205
  try {
194
206
  await index.doValidate(data, props.formColumns, props.rules);
195
- data.errorMsg = data.errorMsg && !data.errorMsg.prop ? data.errorMsg : null;
207
+ if (!data.errorMsg) {
208
+ data.errorMsg = { prop: "", message: "" };
209
+ } else if (!data.errorMsg.prop) {
210
+ data.errorMsg.prop = data.errorMsg.prop;
211
+ data.errorMsg.message = data.errorMsg.message;
212
+ }
196
213
  data.errorMap = /* @__PURE__ */ new Map();
197
214
  resolve();
198
215
  } catch (error) {
@@ -202,8 +219,11 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
202
219
  prop: item.field,
203
220
  message: item.message || `${item.field} is required`
204
221
  };
205
- if (!data.errorMsg) {
222
+ if (data && !data.errorMsg) {
206
223
  data.errorMsg = errData;
224
+ } else if (data && !data.errorMsg.prop && !data.errorMsg.message) {
225
+ data.errorMsg.prop = errData.errorMsg.prop;
226
+ data.errorMsg.message = errData.errorMsg.message;
207
227
  }
208
228
  errorMap.set(errData.prop, errData.message);
209
229
  });
@@ -223,7 +243,12 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
223
243
  }
224
244
  try {
225
245
  await index.doValidate(row, props.formColumns, props.rules);
226
- row.errorMsg = null;
246
+ if (!row.errorMsg) {
247
+ row.errorMsg = { prop: "", message: "" };
248
+ } else {
249
+ row.errorMsg.prop = "";
250
+ row.errorMsg.message = "";
251
+ }
227
252
  row.errorMap = /* @__PURE__ */ new Map();
228
253
  } catch (error) {
229
254
  let errMsg = null;
@@ -239,8 +264,14 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
239
264
  errorMap2.set(errData.prop, errData.message);
240
265
  });
241
266
  row.errorMap = errorMap2;
242
- row.errorMsg = errMsg;
267
+ if (!row.errorMsg) {
268
+ row.errorMsg = { prop: "", message: "" };
269
+ } else {
270
+ row.errorMsg.prop = errMsg.prop;
271
+ row.errorMsg.message = errMsg.message;
272
+ }
243
273
  }
274
+ await vue.nextTick();
244
275
  const { onlyId, errorMsg, errorMap, children, ...data } = row;
245
276
  emits("validate", {
246
277
  row: data,
@@ -250,6 +281,30 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
250
281
  ...statistics.value
251
282
  });
252
283
  }
284
+ vue.provide("validateTriggerId", validateTriggerId);
285
+ vue.onMounted(() => {
286
+ vue.watch(
287
+ () => dataSource.value,
288
+ () => {
289
+ emits("tableDataChange", dataSource.value);
290
+ const { success, failed } = dataSource.value.reduce(
291
+ ({ success: success2, failed: failed2 }, data) => {
292
+ if (data.errorMsg && data.errorMsg.message) {
293
+ failed2++;
294
+ } else {
295
+ success2++;
296
+ }
297
+ return { success: success2, failed: failed2 };
298
+ },
299
+ { success: 0, failed: 0 }
300
+ );
301
+ statistics.value.success = success;
302
+ statistics.value.failed = failed;
303
+ statistics.value.total = dataSource.value.length;
304
+ },
305
+ { deep: true, immediate: true }
306
+ );
307
+ });
253
308
  __expose({
254
309
  setData(data) {
255
310
  dataSource.value = handler.cloneDeep(data, true);
@@ -270,7 +325,6 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
270
325
  if (item.onlyId) set.add(item.onlyId);
271
326
  return set;
272
327
  }, /* @__PURE__ */ new Set());
273
- console.log("keySet", Array.from(keySet.values()));
274
328
  if (!keySet.size) return;
275
329
  for (let i = 0; i < dataSource.value.length; i++) {
276
330
  const target = dataSource.value[i];
@@ -297,6 +351,26 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
297
351
  ...statistics.value,
298
352
  dataSource: dataSource.value
299
353
  };
354
+ },
355
+ async getOptions() {
356
+ if (formRef.value) {
357
+ await formRef.value.getOptions();
358
+ }
359
+ },
360
+ async getOptionsFields(keys) {
361
+ if (formRef.value) {
362
+ await formRef.value.getOptionsFields(keys);
363
+ }
364
+ },
365
+ async getOptionsError() {
366
+ if (formRef.value) {
367
+ await formRef.value.getOptionsError();
368
+ }
369
+ },
370
+ getOptionsByField(key) {
371
+ if (formRef.value) {
372
+ return formRef.value.getOptionsByField(key);
373
+ }
300
374
  }
301
375
  });
302
376
  return (_ctx, _cache) => {
@@ -395,19 +469,20 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
395
469
  showOperate: false,
396
470
  showPagination: false,
397
471
  expandMode: "accordion",
398
- onExpandChange: onExpandRowChange
472
+ onExpandChange: onExpandRowChange2,
473
+ onScroll: onScrollHandler
399
474
  }), vue.createSlots({
400
475
  validateStatus: vue.withCtx(({ row }) => [
401
476
  vue.createElementVNode(
402
477
  "div",
403
478
  {
404
- class: vue.normalizeClass(["flex items-center gap-1.5", [row.errorMsg ? "text-danger-2" : "text-success"]])
479
+ class: vue.normalizeClass(["flex items-center gap-1.5", [row.errorMsg && row.errorMsg.message ? "text-danger-2" : "text-success"]])
405
480
  },
406
481
  [
407
482
  vue.createElementVNode(
408
483
  "div",
409
484
  {
410
- class: vue.normalizeClass(["w-1.5 h-1.5 rounded-full", [row.errorMsg ? "bg-danger-2" : "bg-success"]])
485
+ class: vue.normalizeClass(["w-1.5 h-1.5 rounded-full", [row.errorMsg && row.errorMsg.message ? "bg-danger-2" : "bg-success"]])
411
486
  },
412
487
  null,
413
488
  2
@@ -416,7 +491,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
416
491
  vue.createElementVNode(
417
492
  "div",
418
493
  { class: "text-sm" },
419
- vue.toDisplayString(!row.errorMsg ? "\u51C6\u5907\u5C31\u7EEA" : row.errorMsg.prop ? "\u5185\u5BB9\u6709\u8BEF" : "\u6821\u9A8C\u5931\u8D25"),
494
+ vue.toDisplayString(row.errorMsg && row.errorMsg.message ? row.errorMsg.prop ? "\u5185\u5BB9\u6709\u8BEF" : "\u6821\u9A8C\u5931\u8D25" : "\u51C6\u5907\u5C31\u7EEA"),
420
495
  1
421
496
  /* TEXT */
422
497
  )
@@ -441,53 +516,68 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
441
516
  fn: vue.withCtx(({ row }) => [
442
517
  vue.createElementVNode("div", { class: "w-full pl-[52px] pr-[62px] pb-2" }, [
443
518
  vue.createElementVNode("div", { class: "h-[32px]" }, [
444
- vue.createElementVNode(
519
+ vue.withDirectives(vue.createElementVNode(
445
520
  "div",
446
521
  {
447
- class: vue.normalizeClass(["flex items-center gap-1.5 text-danger-2 transition-all duration-300 overflow-hidden", [row.errorMsg ? "h-full" : "h-0"]])
522
+ class: vue.normalizeClass(["flex items-center gap-1.5 text-danger-2 transition-all duration-300 overflow-hidden", [row.errorMsg && row.errorMsg.message ? "h-full" : "h-0"]])
448
523
  },
449
524
  [
450
- row.errorMsg ? (vue.openBlock(), vue.createBlock(vue.unref(index$3.HyIcon), {
451
- key: 0,
525
+ vue.createVNode(vue.unref(index$3.HyIcon), {
452
526
  "svg-name": "dispatch-share1-prompt",
453
527
  class: "!w-3 !h-3"
454
- })) : vue.createCommentVNode("v-if", true),
528
+ }),
455
529
  vue.createElementVNode(
456
530
  "span",
457
531
  null,
458
- vue.toDisplayString(row.errorMsg ? row.errorMsg.message : ""),
532
+ vue.toDisplayString(row.errorMsg && row.errorMsg.message ? row.errorMsg.message : ""),
459
533
  1
460
534
  /* TEXT */
461
535
  )
462
536
  ],
463
537
  2
464
538
  /* CLASS */
465
- )
539
+ ), [
540
+ [vue.vShow, row.errorMsg && row.errorMsg.message]
541
+ ])
466
542
  ]),
467
- vue.createVNode(vue.unref(index$4.HyForm), {
468
- ref_key: "formRef",
469
- ref: formRef,
470
- model: row,
471
- columns: __props.formColumns,
472
- rules: __props.rules,
473
- "show-message": false,
474
- class: "px-0",
475
- columnNum: __props.columnNum,
476
- size: __props.size,
477
- onValidate: (prop, isValid, message) => onValidateHandler(row, { prop, isValid, message })
478
- }, vue.createSlots({
479
- _: 2
480
- /* DYNAMIC */
481
- }, [
482
- vue.renderList(_ctx.$slots, (_, slotName) => {
483
- return {
484
- name: slotName,
485
- fn: vue.withCtx((scope) => [
486
- vue.renderSlot(_ctx.$slots, slotName, vue.normalizeProps(vue.guardReactiveProps(scope)))
487
- ])
488
- };
489
- })
490
- ]), 1032, ["model", "columns", "rules", "columnNum", "size", "onValidate"])
543
+ vue.createElementVNode(
544
+ "div",
545
+ {
546
+ ref_key: "formContainerRef",
547
+ ref: formContainerRef,
548
+ class: "w-full"
549
+ },
550
+ [
551
+ vue.createVNode(vue.unref(index$4.HyForm), {
552
+ ref_key: "formRef",
553
+ ref: formRef,
554
+ model: row,
555
+ columns: __props.formColumns,
556
+ rules: __props.rules,
557
+ "show-message": false,
558
+ class: "px-0",
559
+ columnNum: __props.columnNum,
560
+ size: __props.size,
561
+ isTableForm: "",
562
+ onValidate: (prop, isValid, message) => onValidateHandler(row, { prop, isValid, message }),
563
+ onOptionsStatus: _ctx.$attrs.onOptionsStatus
564
+ }, vue.createSlots({
565
+ _: 2
566
+ /* DYNAMIC */
567
+ }, [
568
+ vue.renderList(_ctx.$slots, (_, slotName) => {
569
+ return {
570
+ name: slotName,
571
+ fn: vue.withCtx((scope) => [
572
+ vue.renderSlot(_ctx.$slots, slotName, vue.normalizeProps(vue.guardReactiveProps(scope)))
573
+ ])
574
+ };
575
+ })
576
+ ]), 1032, ["model", "columns", "rules", "columnNum", "size", "onValidate", "onOptionsStatus"])
577
+ ],
578
+ 512
579
+ /* NEED_PATCH */
580
+ )
491
581
  ])
492
582
  ]),
493
583
  key: "0"
@@ -45,7 +45,6 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
45
45
  setup(__props, { expose: __expose, emit: __emit }) {
46
46
  const props = __props;
47
47
  const emits = __emit;
48
- const { t } = useLocale.useLocale();
49
48
  const appTimePicker = vue.useTemplateRef("appTimePicker");
50
49
  const timeValue = vue.useModel(__props, "modelValue");
51
50
  const startValue = vue.useModel(__props, "start");
@@ -54,13 +53,13 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
54
53
  if (props.startPlaceholder) {
55
54
  return props.startPlaceholder;
56
55
  }
57
- return t("timePicker.startTime");
56
+ return useLocale.$t("timePicker.startTime");
58
57
  });
59
58
  const endPlaceholder = vue.computed(() => {
60
59
  if (props.endPlaceholder) {
61
60
  return props.endPlaceholder;
62
61
  }
63
- return t("timePicker.endTime");
62
+ return useLocale.$t("timePicker.endTime");
64
63
  });
65
64
  const disabledSecondsHandler = vue.computed(() => {
66
65
  return (hour, minute, role, comparingDate) => {
@@ -149,7 +148,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
149
148
  valueFormat: timeFormHandler(__props.valueFormat),
150
149
  disabledSeconds: disabledSecondsHandler.value,
151
150
  "start-placeholder": startPlaceholder.value,
152
- "range-separator": vue.unref(t)("timePicker.to"),
151
+ "range-separator": vue.unref(useLocale.$t)("timePicker.to"),
153
152
  "end-placeholder": endPlaceholder.value,
154
153
  onChange: onChangeHandler
155
154
  }), vue.createSlots({