smart-admin-web 10.15.0 → 10.20.1

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 (432) hide show
  1. package/README.md +1 -1
  2. package/dist/api/index.d.ts +4 -2
  3. package/dist/api/index.js +1 -1
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/schema.d.ts +39 -5
  6. package/dist/assets/icons/ph-subset.json.js +5 -5
  7. package/dist/components/AppIcon.vue.js +9 -9
  8. package/dist/components/AppIcon.vue.js.map +1 -1
  9. package/dist/components/AppWatermark.vue.d.ts +14 -0
  10. package/dist/components/AppWatermark.vue.js +38 -0
  11. package/dist/components/AppWatermark.vue.js.map +1 -0
  12. package/dist/components/AppWatermark2.vue.js +5 -0
  13. package/dist/components/AppWatermark2.vue.js.map +1 -0
  14. package/dist/components/Chart/PieChart.vue.d.ts +1 -1
  15. package/dist/components/Chart/echarts.js +15 -20
  16. package/dist/components/Chart/echarts.js.map +1 -1
  17. package/dist/components/CronEditor/index.vue.js +1 -1
  18. package/dist/components/CronEditor/index2.vue.js +2 -1
  19. package/dist/components/CronEditor/index2.vue.js.map +1 -1
  20. package/dist/components/DetailPage/index.vue.js +2 -2
  21. package/dist/components/DetailPage/index2.vue.js.map +1 -1
  22. package/dist/components/DictTag/index.vue.js.map +1 -1
  23. package/dist/components/ErrorBoundary/index.vue.js +2 -2
  24. package/dist/components/ErrorBoundary/index2.vue.js +1 -1
  25. package/dist/components/ErrorBoundary/index2.vue.js.map +1 -1
  26. package/dist/components/FormContainer/index.vue.js +91 -56
  27. package/dist/components/FormContainer/index.vue.js.map +1 -1
  28. package/dist/components/ImportWizard/index.vue.js +1 -1
  29. package/dist/components/ImportWizard/index2.vue.js +44 -41
  30. package/dist/components/ImportWizard/index2.vue.js.map +1 -1
  31. package/dist/components/MenuSearch.vue.js +2 -2
  32. package/dist/components/MenuSearch2.vue.js +19 -18
  33. package/dist/components/MenuSearch2.vue.js.map +1 -1
  34. package/dist/components/PasswordStrength/index.vue.js +2 -2
  35. package/dist/components/PasswordStrength/index2.vue.js +20 -18
  36. package/dist/components/PasswordStrength/index2.vue.js.map +1 -1
  37. package/dist/components/TableTotal/index.vue.d.ts +6 -0
  38. package/dist/components/{SelectTable → TableTotal}/index.vue.js +1 -1
  39. package/dist/components/TableTotal/index2.vue.js +16 -0
  40. package/dist/components/TableTotal/index2.vue.js.map +1 -0
  41. package/dist/components/TableZoomButton/index.vue.js.map +1 -1
  42. package/dist/components/UserPicker/index.vue.js +2 -2
  43. package/dist/components/UserPicker/index2.vue.js +176 -117
  44. package/dist/components/UserPicker/index2.vue.js.map +1 -1
  45. package/dist/composables/useBatchDelete.js.map +1 -1
  46. package/dist/composables/useLayoutMenu.js +17 -16
  47. package/dist/composables/useLayoutMenu.js.map +1 -1
  48. package/dist/composables/useModule.js +39 -29
  49. package/dist/composables/useModule.js.map +1 -1
  50. package/dist/composables/useShellBreakpoint.d.ts +19 -0
  51. package/dist/composables/useShellBreakpoint.js +37 -0
  52. package/dist/composables/useShellBreakpoint.js.map +1 -0
  53. package/dist/composables/useSite.d.ts +15 -0
  54. package/dist/composables/useSite.js +16 -14
  55. package/dist/composables/useSite.js.map +1 -1
  56. package/dist/composables/useTabTitle.js.map +1 -1
  57. package/dist/composables/useTableTitle.d.ts +6 -0
  58. package/dist/composables/useTableTitle.js +11 -0
  59. package/dist/composables/useTableTitle.js.map +1 -0
  60. package/dist/composables/useTableZoom.d.ts +5 -0
  61. package/dist/composables/useTableZoom.js.map +1 -1
  62. package/dist/composables/useTheme.d.ts +2 -2
  63. package/dist/composables/useTheme.js +23 -20
  64. package/dist/composables/useTheme.js.map +1 -1
  65. package/dist/createSmartAdmin.d.ts +12 -2
  66. package/dist/createSmartAdmin.js +72 -60
  67. package/dist/createSmartAdmin.js.map +1 -1
  68. package/dist/index.d.ts +5 -2
  69. package/dist/index.js +219 -205
  70. package/dist/index.js.map +1 -1
  71. package/dist/layouts/AccentPicker.vue.js +8 -0
  72. package/dist/layouts/AccentPicker.vue.js.map +1 -0
  73. package/dist/layouts/AccentPicker2.vue.js +131 -0
  74. package/dist/layouts/AccentPicker2.vue.js.map +1 -0
  75. package/dist/layouts/AppHeader.vue.d.ts +8 -1
  76. package/dist/layouts/AppHeader.vue.js +2 -2
  77. package/dist/layouts/AppHeader2.vue.js +317 -235
  78. package/dist/layouts/AppHeader2.vue.js.map +1 -1
  79. package/dist/layouts/NoticeBell.vue.js +2 -2
  80. package/dist/layouts/NoticeBell2.vue.js +19 -18
  81. package/dist/layouts/NoticeBell2.vue.js.map +1 -1
  82. package/dist/layouts/PersonalLayout.vue.js +2 -2
  83. package/dist/layouts/PersonalLayout2.vue.js +69 -47
  84. package/dist/layouts/PersonalLayout2.vue.js.map +1 -1
  85. package/dist/layouts/SettingsDrawer.vue.js +3 -3
  86. package/dist/layouts/SettingsDrawer2.vue.js +261 -325
  87. package/dist/layouts/SettingsDrawer2.vue.js.map +1 -1
  88. package/dist/layouts/TabsBar.vue.js +2 -2
  89. package/dist/layouts/TabsBar2.vue.js +97 -69
  90. package/dist/layouts/TabsBar2.vue.js.map +1 -1
  91. package/dist/layouts/components/SideNav.vue.d.ts +3 -0
  92. package/dist/layouts/components/SideNav.vue.js +1 -1
  93. package/dist/layouts/components/SideNav2.vue.js +54 -26
  94. package/dist/layouts/components/SideNav2.vue.js.map +1 -1
  95. package/dist/layouts/default.vue.js +1 -1
  96. package/dist/layouts/default2.vue.js +170 -140
  97. package/dist/layouts/default2.vue.js.map +1 -1
  98. package/dist/lib/loginHero.d.ts +2 -2
  99. package/dist/lib/loginHero.js.map +1 -1
  100. package/dist/lib/runtime.js +1 -1
  101. package/dist/lib/watermark.d.ts +110 -0
  102. package/dist/lib/watermark.js +151 -0
  103. package/dist/lib/watermark.js.map +1 -0
  104. package/dist/locales/en-US.d.ts +221 -15
  105. package/dist/locales/en-US.js +230 -21
  106. package/dist/locales/en-US.js.map +1 -1
  107. package/dist/locales/kernelMenuTitles.d.ts +1 -0
  108. package/dist/locales/kernelMenuTitles.js +128 -0
  109. package/dist/locales/kernelMenuTitles.js.map +1 -0
  110. package/dist/locales/menuTitle.d.ts +3 -0
  111. package/dist/locales/menuTitle.js +14 -12
  112. package/dist/locales/menuTitle.js.map +1 -1
  113. package/dist/locales/zh-CN.d.ts +221 -15
  114. package/dist/locales/zh-CN.js +238 -28
  115. package/dist/locales/zh-CN.js.map +1 -1
  116. package/dist/router/index.js +41 -32
  117. package/dist/router/index.js.map +1 -1
  118. package/dist/router/namedPage.d.ts +4 -0
  119. package/dist/router/namedPage.js +7 -7
  120. package/dist/router/namedPage.js.map +1 -1
  121. package/dist/router/viewRegistry.js +8 -8
  122. package/dist/router/viewRegistry.js.map +1 -1
  123. package/dist/stores/app.d.ts +0 -12
  124. package/dist/stores/app.js +11 -12
  125. package/dist/stores/app.js.map +1 -1
  126. package/dist/stores/tabs.js.map +1 -1
  127. package/dist/stores/user.d.ts +10 -0
  128. package/dist/stores/user.js.map +1 -1
  129. package/dist/style.css +1 -1
  130. package/dist/theme/accentTokens.d.ts +27 -0
  131. package/dist/theme/accentTokens.js +54 -0
  132. package/dist/theme/accentTokens.js.map +1 -0
  133. package/dist/theme/accents.d.ts +21 -1
  134. package/dist/theme/accents.js +11 -2
  135. package/dist/theme/accents.js.map +1 -1
  136. package/dist/theme/mix.d.ts +58 -7
  137. package/dist/theme/mix.js +115 -30
  138. package/dist/theme/mix.js.map +1 -1
  139. package/dist/theme/naive-theme.d.ts +5 -2
  140. package/dist/theme/naive-theme.js +407 -75
  141. package/dist/theme/naive-theme.js.map +1 -1
  142. package/dist/utils/jwt.d.ts +8 -0
  143. package/dist/utils/jwt.js +14 -0
  144. package/dist/utils/jwt.js.map +1 -0
  145. package/dist/utils/menuIcon.d.ts +2 -0
  146. package/dist/utils/menuIcon.js +8 -0
  147. package/dist/utils/menuIcon.js.map +1 -0
  148. package/dist/utils/oauthBrand.js.map +1 -1
  149. package/dist/utils/tableFilter.d.ts +88 -0
  150. package/dist/utils/tableFilter.js +116 -0
  151. package/dist/utils/tableFilter.js.map +1 -0
  152. package/dist/utils/tableToolbar.d.ts +18 -0
  153. package/dist/utils/tableToolbar.js +11 -0
  154. package/dist/utils/tableToolbar.js.map +1 -0
  155. package/dist/utils/treeFilter.d.ts +20 -0
  156. package/dist/utils/treeFilter.js +24 -0
  157. package/dist/utils/treeFilter.js.map +1 -0
  158. package/dist/views/dashboard/ShortcutPicker.vue.js +1 -1
  159. package/dist/views/dashboard/ShortcutPicker2.vue.js +73 -48
  160. package/dist/views/dashboard/ShortcutPicker2.vue.js.map +1 -1
  161. package/dist/views/dashboard/biz.vue.js +1 -1
  162. package/dist/views/dashboard/biz2.vue.js +310 -257
  163. package/dist/views/dashboard/biz2.vue.js.map +1 -1
  164. package/dist/views/dashboard/workbench.vue.js +2 -2
  165. package/dist/views/dashboard/workbench2.vue.js +141 -155
  166. package/dist/views/dashboard/workbench2.vue.js.map +1 -1
  167. package/dist/views/embed/iframe.vue.js +2 -2
  168. package/dist/views/embed/iframe2.vue.js +22 -15
  169. package/dist/views/embed/iframe2.vue.js.map +1 -1
  170. package/dist/views/error/404.vue.js +2 -2
  171. package/dist/views/error/4042.vue.js +33 -24
  172. package/dist/views/error/4042.vue.js.map +1 -1
  173. package/dist/views/error/BootError.vue.js +1 -1
  174. package/dist/views/error/BootError2.vue.js +59 -48
  175. package/dist/views/error/BootError2.vue.js.map +1 -1
  176. package/dist/views/error/MissingRoute.vue.js +2 -2
  177. package/dist/views/error/MissingRoute2.vue.js +34 -15
  178. package/dist/views/error/MissingRoute2.vue.js.map +1 -1
  179. package/dist/views/login/LoginForm.vue.d.ts +7 -1
  180. package/dist/views/login/LoginForm.vue.js +2 -2
  181. package/dist/views/login/LoginForm2.vue.js +580 -488
  182. package/dist/views/login/LoginForm2.vue.js.map +1 -1
  183. package/dist/views/login/components/LoginDesk.vue.d.ts +36 -0
  184. package/dist/views/login/components/LoginDesk.vue.js +9 -0
  185. package/dist/views/login/components/LoginDesk.vue.js.map +1 -0
  186. package/dist/views/login/components/LoginDesk2.vue.js +100 -0
  187. package/dist/views/login/components/LoginDesk2.vue.js.map +1 -0
  188. package/dist/views/login/components/LoginHeroPanel.vue.js +3 -3
  189. package/dist/views/login/components/LoginHeroPanel2.vue.js +34 -39
  190. package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
  191. package/dist/views/login/index.vue.js +1 -1
  192. package/dist/views/login/index2.vue.js +141 -71
  193. package/dist/views/login/index2.vue.js.map +1 -1
  194. package/dist/views/login/layout.d.ts +11 -0
  195. package/dist/views/login/layout.js +27 -0
  196. package/dist/views/login/layout.js.map +1 -0
  197. package/dist/views/mfa/index.vue.js +2 -2
  198. package/dist/views/mfa/index2.vue.js +367 -321
  199. package/dist/views/mfa/index2.vue.js.map +1 -1
  200. package/dist/views/module/index.vue.js +2 -2
  201. package/dist/views/module/index2.vue.js +132 -99
  202. package/dist/views/module/index2.vue.js.map +1 -1
  203. package/dist/views/oauth/callback.vue.js +2 -2
  204. package/dist/views/oauth/callback2.vue.js +65 -51
  205. package/dist/views/oauth/callback2.vue.js.map +1 -1
  206. package/dist/views/personal/bindings.vue.js +2 -2
  207. package/dist/views/personal/bindings2.vue.js +98 -94
  208. package/dist/views/personal/bindings2.vue.js.map +1 -1
  209. package/dist/views/personal/notice2.vue.js +103 -76
  210. package/dist/views/personal/notice2.vue.js.map +1 -1
  211. package/dist/views/personal/password2.vue.js +47 -40
  212. package/dist/views/personal/password2.vue.js.map +1 -1
  213. package/dist/views/personal/profile.vue.js +3 -3
  214. package/dist/views/personal/profile2.vue.js +24 -18
  215. package/dist/views/personal/profile2.vue.js.map +1 -1
  216. package/dist/views/personal/security.vue.js +2 -2
  217. package/dist/views/personal/security2.vue.js +65 -53
  218. package/dist/views/personal/security2.vue.js.map +1 -1
  219. package/dist/views/personal/sessions.vue.js +2 -2
  220. package/dist/views/personal/sessions2.vue.js +67 -62
  221. package/dist/views/personal/sessions2.vue.js.map +1 -1
  222. package/dist/views/system/ai-model/components/ProviderCard.vue.js +2 -2
  223. package/dist/views/system/ai-model/components/ProviderCard2.vue.js +142 -130
  224. package/dist/views/system/ai-model/components/ProviderCard2.vue.js.map +1 -1
  225. package/dist/views/system/ai-model/components/ProviderForm.vue.js +2 -2
  226. package/dist/views/system/ai-model/components/ProviderForm2.vue.js +71 -70
  227. package/dist/views/system/ai-model/components/ProviderForm2.vue.js.map +1 -1
  228. package/dist/views/system/ai-model/index.vue.js +2 -2
  229. package/dist/views/system/ai-model/index2.vue.js +99 -99
  230. package/dist/views/system/ai-model/index2.vue.js.map +1 -1
  231. package/dist/views/system/ai-model/presets.d.ts +1 -1
  232. package/dist/views/system/ai-model/presets.js +18 -18
  233. package/dist/views/system/ai-model/presets.js.map +1 -1
  234. package/dist/views/system/ai-usage/index.vue.js +2 -2
  235. package/dist/views/system/ai-usage/index2.vue.js +356 -258
  236. package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
  237. package/dist/views/system/api-docs/index.vue.js +5 -2
  238. package/dist/views/system/api-docs/index.vue.js.map +1 -1
  239. package/dist/views/system/api-docs/index2.vue.js +92 -42
  240. package/dist/views/system/api-docs/index2.vue.js.map +1 -1
  241. package/dist/views/system/cache/index.vue.js +2 -2
  242. package/dist/views/system/cache/index2.vue.js +74 -80
  243. package/dist/views/system/cache/index2.vue.js.map +1 -1
  244. package/dist/views/system/config/components/AdminMock.vue.js +2 -2
  245. package/dist/views/system/config/components/AdminMock2.vue.js +60 -43
  246. package/dist/views/system/config/components/AdminMock2.vue.js.map +1 -1
  247. package/dist/views/system/config/components/AdvancedSection.vue.js +5 -2
  248. package/dist/views/system/config/components/AdvancedSection.vue.js.map +1 -1
  249. package/dist/views/system/config/components/AdvancedSection2.vue.js +98 -70
  250. package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
  251. package/dist/views/system/config/components/BrandSection.vue.js +2 -2
  252. package/dist/views/system/config/components/BrandSection2.vue.js +121 -119
  253. package/dist/views/system/config/components/BrandSection2.vue.js.map +1 -1
  254. package/dist/views/system/config/components/CfgGroup.vue.js +3 -3
  255. package/dist/views/system/config/components/CfgGroup2.vue.js.map +1 -1
  256. package/dist/views/system/config/components/CfgRow.vue.js +1 -1
  257. package/dist/views/system/config/components/CfgRow2.vue.js +24 -23
  258. package/dist/views/system/config/components/CfgRow2.vue.js.map +1 -1
  259. package/dist/views/system/config/components/CfgSegment.vue.js +1 -1
  260. package/dist/views/system/config/components/CfgSegment2.vue.js +16 -15
  261. package/dist/views/system/config/components/CfgSegment2.vue.js.map +1 -1
  262. package/dist/views/system/config/components/ConfigFormModal.vue.js +2 -2
  263. package/dist/views/system/config/components/ConfigFormModal2.vue.js +35 -33
  264. package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -1
  265. package/dist/views/system/config/components/JobSection.vue.js +2 -2
  266. package/dist/views/system/config/components/JobSection2.vue.js +46 -44
  267. package/dist/views/system/config/components/JobSection2.vue.js.map +1 -1
  268. package/dist/views/system/config/components/LoginMock.vue.js +3 -3
  269. package/dist/views/system/config/components/LoginMock2.vue.js +83 -72
  270. package/dist/views/system/config/components/LoginMock2.vue.js.map +1 -1
  271. package/dist/views/system/config/components/LogoCropper.vue.js +1 -1
  272. package/dist/views/system/config/components/LogoCropper2.vue.js.map +1 -1
  273. package/dist/views/system/config/components/LogoEditor.vue.js +2 -2
  274. package/dist/views/system/config/components/LogoEditor2.vue.js +11 -13
  275. package/dist/views/system/config/components/LogoEditor2.vue.js.map +1 -1
  276. package/dist/views/system/config/components/ProviderSheet.vue.js +3 -3
  277. package/dist/views/system/config/components/ProviderSheet2.vue.js.map +1 -1
  278. package/dist/views/system/config/components/SectionLayout.vue.d.ts +4 -2
  279. package/dist/views/system/config/components/SectionLayout.vue.js +2 -2
  280. package/dist/views/system/config/components/SectionLayout2.vue.js +51 -27
  281. package/dist/views/system/config/components/SectionLayout2.vue.js.map +1 -1
  282. package/dist/views/system/config/components/SecuritySection.vue.js +2 -2
  283. package/dist/views/system/config/components/SecuritySection2.vue.js +207 -206
  284. package/dist/views/system/config/components/SecuritySection2.vue.js.map +1 -1
  285. package/dist/views/system/config/components/SensitiveSection.vue.js +2 -2
  286. package/dist/views/system/config/components/SensitiveSection2.vue.js +107 -102
  287. package/dist/views/system/config/components/SensitiveSection2.vue.js.map +1 -1
  288. package/dist/views/system/config/components/UploadSection.vue.js +2 -2
  289. package/dist/views/system/config/components/UploadSection2.vue.js +86 -77
  290. package/dist/views/system/config/components/UploadSection2.vue.js.map +1 -1
  291. package/dist/views/system/config/components/WatermarkSection.vue.js +8 -0
  292. package/dist/views/system/config/components/WatermarkSection.vue.js.map +1 -0
  293. package/dist/views/system/config/components/WatermarkSection2.vue.js +284 -0
  294. package/dist/views/system/config/components/WatermarkSection2.vue.js.map +1 -0
  295. package/dist/views/system/config/draft.d.ts +2 -2
  296. package/dist/views/system/config/draft.js.map +1 -1
  297. package/dist/views/system/config/groups.d.ts +4 -1
  298. package/dist/views/system/config/groups.js +54 -49
  299. package/dist/views/system/config/groups.js.map +1 -1
  300. package/dist/views/system/config/index.vue.js +3 -2
  301. package/dist/views/system/config/index.vue.js.map +1 -1
  302. package/dist/views/system/config/index2.vue.js +173 -148
  303. package/dist/views/system/config/index2.vue.js.map +1 -1
  304. package/dist/views/system/config/layoutMode.d.ts +23 -0
  305. package/dist/views/system/config/layoutMode.js +28 -0
  306. package/dist/views/system/config/layoutMode.js.map +1 -0
  307. package/dist/views/system/dict/index.vue.js +2 -2
  308. package/dist/views/system/dict/index2.vue.js +471 -366
  309. package/dist/views/system/dict/index2.vue.js.map +1 -1
  310. package/dist/views/system/file/index2.vue.js +91 -76
  311. package/dist/views/system/file/index2.vue.js.map +1 -1
  312. package/dist/views/system/job/index.vue.js +3 -3
  313. package/dist/views/system/job/index2.vue.js +897 -828
  314. package/dist/views/system/job/index2.vue.js.map +1 -1
  315. package/dist/views/system/job-log/components/AttemptTable.vue.d.ts +8 -0
  316. package/dist/views/system/job-log/components/AttemptTable.vue.js +5 -0
  317. package/dist/views/system/job-log/components/AttemptTable.vue.js.map +1 -0
  318. package/dist/views/system/job-log/components/AttemptTable2.vue.js +54 -0
  319. package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -0
  320. package/dist/views/system/job-log/index.vue.js +2 -2
  321. package/dist/views/system/job-log/index2.vue.js +193 -207
  322. package/dist/views/system/job-log/index2.vue.js.map +1 -1
  323. package/dist/views/system/job-log/runStatus.d.ts +13 -0
  324. package/dist/views/system/job-log/runStatus.js +26 -0
  325. package/dist/views/system/job-log/runStatus.js.map +1 -0
  326. package/dist/views/system/job-monitor/index.vue.js +2 -2
  327. package/dist/views/system/job-monitor/index2.vue.js +172 -180
  328. package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
  329. package/dist/views/system/log/exception/index.vue.js +2 -2
  330. package/dist/views/system/log/exception/index2.vue.js +135 -96
  331. package/dist/views/system/log/exception/index2.vue.js.map +1 -1
  332. package/dist/views/system/log/login/index2.vue.js +62 -41
  333. package/dist/views/system/log/login/index2.vue.js.map +1 -1
  334. package/dist/views/system/log/op/index.vue.js +2 -2
  335. package/dist/views/system/log/op/index2.vue.js +200 -162
  336. package/dist/views/system/log/op/index2.vue.js.map +1 -1
  337. package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
  338. package/dist/views/system/menu/components/ButtonManager2.vue.js +206 -190
  339. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
  340. package/dist/views/system/menu/components/MenuFormModal.vue.js +2 -2
  341. package/dist/views/system/menu/components/MenuFormModal2.vue.js +127 -118
  342. package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -1
  343. package/dist/views/system/menu/index.vue.js +1 -1
  344. package/dist/views/system/menu/index2.vue.js +216 -183
  345. package/dist/views/system/menu/index2.vue.js.map +1 -1
  346. package/dist/views/system/module/index.vue.js +1 -1
  347. package/dist/views/system/module/index2.vue.js +177 -144
  348. package/dist/views/system/module/index2.vue.js.map +1 -1
  349. package/dist/views/system/monitor/index.vue.js +2 -2
  350. package/dist/views/system/monitor/index2.vue.js +134 -149
  351. package/dist/views/system/monitor/index2.vue.js.map +1 -1
  352. package/dist/views/system/notice/index.vue.js +1 -1
  353. package/dist/views/system/notice/index2.vue.js +209 -181
  354. package/dist/views/system/notice/index2.vue.js.map +1 -1
  355. package/dist/views/system/org/index.vue.js +1 -1
  356. package/dist/views/system/org/index2.vue.js +278 -248
  357. package/dist/views/system/org/index2.vue.js.map +1 -1
  358. package/dist/views/system/position/index.vue.js +5 -2
  359. package/dist/views/system/position/index.vue.js.map +1 -1
  360. package/dist/views/system/position/index2.vue.js +128 -92
  361. package/dist/views/system/position/index2.vue.js.map +1 -1
  362. package/dist/views/system/recycle/index.vue.js +2 -2
  363. package/dist/views/system/recycle/index2.vue.js +90 -67
  364. package/dist/views/system/recycle/index2.vue.js.map +1 -1
  365. package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +20 -0
  366. package/dist/views/system/role/components/GrantMenuSheet.vue.js +8 -0
  367. package/dist/views/system/role/components/GrantMenuSheet.vue.js.map +1 -0
  368. package/dist/views/system/role/components/GrantMenuSheet2.vue.js +117 -0
  369. package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -0
  370. package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +6 -4
  371. package/dist/views/system/role/components/GrantMenuTable.vue.js +2 -2
  372. package/dist/views/system/role/components/GrantMenuTable2.vue.js +279 -177
  373. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
  374. package/dist/views/system/role/components/MatchText.vue.d.ts +7 -0
  375. package/dist/views/system/role/components/MatchText.vue.js +8 -0
  376. package/dist/views/system/role/components/MatchText.vue.js.map +1 -0
  377. package/dist/views/system/role/components/MatchText2.vue.js +29 -0
  378. package/dist/views/system/role/components/MatchText2.vue.js.map +1 -0
  379. package/dist/views/system/role/components/grantMenuGroups.d.ts +36 -0
  380. package/dist/views/system/role/components/grantMenuGroups.js +110 -48
  381. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
  382. package/dist/views/system/role/index.vue.js +5 -2
  383. package/dist/views/system/role/index.vue.js.map +1 -1
  384. package/dist/views/system/role/index2.vue.js +181 -165
  385. package/dist/views/system/role/index2.vue.js.map +1 -1
  386. package/dist/views/system/session/index2.vue.js +75 -49
  387. package/dist/views/system/session/index2.vue.js.map +1 -1
  388. package/dist/views/system/user/components/ResetPasswordModal.vue.js +2 -2
  389. package/dist/views/system/user/components/ResetPasswordModal2.vue.js +2 -0
  390. package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -1
  391. package/dist/views/system/user/components/UserFormModal.vue.js +2 -2
  392. package/dist/views/system/user/components/UserFormModal2.vue.js +77 -76
  393. package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -1
  394. package/dist/views/system/user/index.vue.js +2 -2
  395. package/dist/views/system/user/index2.vue.js +362 -275
  396. package/dist/views/system/user/index2.vue.js.map +1 -1
  397. package/package.json +3 -5
  398. package/dist/components/SelectTable/index.vue.d.ts +0 -76
  399. package/dist/components/SelectTable/index2.vue.js +0 -256
  400. package/dist/components/SelectTable/index2.vue.js.map +0 -1
  401. package/dist/composables/useTableRowSort.d.ts +0 -20
  402. package/dist/composables/useTableRowSort.js +0 -59
  403. package/dist/composables/useTableRowSort.js.map +0 -1
  404. package/dist/layouts/LayoutModeCards.vue.js +0 -8
  405. package/dist/layouts/LayoutModeCards.vue.js.map +0 -1
  406. package/dist/layouts/LayoutModeCards2.vue.js +0 -67
  407. package/dist/layouts/LayoutModeCards2.vue.js.map +0 -1
  408. package/dist/layouts/SettingRow.vue.d.ts +0 -16
  409. package/dist/layouts/SettingRow.vue.js +0 -8
  410. package/dist/layouts/SettingRow.vue.js.map +0 -1
  411. package/dist/layouts/SettingRow2.vue.js +0 -23
  412. package/dist/layouts/SettingRow2.vue.js.map +0 -1
  413. package/dist/views/login/skins/AuroraGlass.vue.js +0 -8
  414. package/dist/views/login/skins/AuroraGlass.vue.js.map +0 -1
  415. package/dist/views/login/skins/AuroraGlass2.vue.js +0 -80
  416. package/dist/views/login/skins/AuroraGlass2.vue.js.map +0 -1
  417. package/dist/views/login/skins/SplitPanel.vue.d.ts +0 -3
  418. package/dist/views/login/skins/SplitPanel.vue.js +0 -8
  419. package/dist/views/login/skins/SplitPanel.vue.js.map +0 -1
  420. package/dist/views/login/skins/SplitPanel2.vue.js +0 -65
  421. package/dist/views/login/skins/SplitPanel2.vue.js.map +0 -1
  422. package/dist/views/login/skins/Spotlight.vue.d.ts +0 -3
  423. package/dist/views/login/skins/Spotlight.vue.js +0 -8
  424. package/dist/views/login/skins/Spotlight.vue.js.map +0 -1
  425. package/dist/views/login/skins/Spotlight2.vue.js +0 -36
  426. package/dist/views/login/skins/Spotlight2.vue.js.map +0 -1
  427. package/dist/views/login/skins.d.ts +0 -8
  428. package/dist/views/login/skins.js +0 -13
  429. package/dist/views/login/skins.js.map +0 -1
  430. /package/dist/components/{SelectTable → TableTotal}/index.vue.js.map +0 -0
  431. /package/dist/layouts/{LayoutModeCards.vue.d.ts → AccentPicker.vue.d.ts} +0 -0
  432. /package/dist/views/{login/skins/AuroraGlass.vue.d.ts → system/config/components/WatermarkSection.vue.d.ts} +0 -0
@@ -1,222 +1,234 @@
1
- import { defineComponent as Ce, ref as N, reactive as Ue, resolveDirective as Ne, openBlock as p, createElementBlock as k, Fragment as R, createVNode as o, unref as e, withCtx as n, withDirectives as ae, createBlock as q, createTextVNode as c, toDisplayString as u, createElementVNode as y, createCommentVNode as w, renderList as re, h as m } from "vue";
2
- import { useMessage as _e, NButton as g, NForm as Ee, NCollapse as qe, NCollapseItem as B, NGrid as H, NFormItemGi as d, NInput as h, NRadioGroup as A, NSpace as _, NRadio as j, NInputNumber as P, NDatePicker as G, NSelect as oe, NSwitch as Ke, NTag as W, NTooltip as ne, NPopconfirm as Re } from "naive-ui";
3
- import { useRouter as Pe } from "vue-router";
4
- import { useI18n as ze } from "vue-i18n";
5
- import { SmartTable as Oe } from "smart-naive-table";
6
- import K from "../../../components/AppIcon.vue.js";
7
- import Me from "../../../components/FormContainer/index.vue.js";
8
- /* empty css */
9
- import Ie from "../../../components/StatusSwitch/index.vue.js";
10
- import Be from "../../../components/CronEditor/index.vue.js";
11
- import { useConfirm as He } from "../../../composables/useConfirm.js";
12
- import { useBatchDelete as Ae } from "../../../composables/useBatchDelete.js";
13
- import { useAuthStore as De } from "../../../stores/auth.js";
14
- import { jobApi as x } from "../../../api/index.js";
15
- import { translateError as se } from "../../../utils/error.js";
16
- import { fmtDateTime as Ve } from "../../../utils/format.js";
17
- import { JobHandlerKind as f, JobStatus as b, JobTriggerKind as v, JobMisfireStrategy as D, JobConcurrencyMode as V } from "../../../types/api.js";
18
- const Je = { class: "job-sec-text" }, Le = { class: "job-sec-text" }, $e = { class: "job-sec-text" }, Fe = {
1
+ import { defineComponent as Ke, ref as w, computed as ze, h as m, reactive as Re, onDeactivated as Oe, resolveDirective as Pe, openBlock as c, createElementBlock as k, Fragment as P, createVNode as o, unref as e, withCtx as n, withDirectives as ie, createBlock as z, createTextVNode as p, toDisplayString as d, normalizeClass as de, createElementVNode as y, createCommentVNode as x, renderList as ue } from "vue";
2
+ import { useMediaQuery as Me } from "@vueuse/core";
3
+ import { useMessage as Ie, NSpace as U, NButton as h, NTooltip as me, NPopconfirm as Be, NDrawer as He, NDrawerContent as Ae, NForm as De, NCollapse as Le, NCollapseItem as A, NGrid as D, NFormItemGi as u, NInput as g, NRadioGroup as L, NRadio as j, NInputNumber as M, NDatePicker as Q, NSelect as pe, NSwitch as Ve, NTag as X } from "naive-ui";
4
+ import { useRouter as Je } from "vue-router";
5
+ import { useI18n as Fe } from "vue-i18n";
6
+ import { SmartTable as Ge } from "smart-naive-table";
7
+ import R from "../../../components/AppIcon.vue.js";
8
+ import $e from "../../../components/StatusSwitch/index.vue.js";
9
+ import We from "../../../components/CronEditor/index.vue.js";
10
+ import { useConfirm as Qe } from "../../../composables/useConfirm.js";
11
+ import { useBatchDelete as Xe } from "../../../composables/useBatchDelete.js";
12
+ import { useShellBreakpoint as Ye } from "../../../composables/useShellBreakpoint.js";
13
+ import { useAuthStore as Ze } from "../../../stores/auth.js";
14
+ import { jobApi as C } from "../../../api/index.js";
15
+ import { translateError as ce } from "../../../utils/error.js";
16
+ import { SEARCH_ACTIONS as Y, deriveHeaderFilters as el } from "../../../utils/tableFilter.js";
17
+ import { TABLE_MIN_ROW_HEIGHT as ll, TABLE_TOOLBAR as al } from "../../../utils/tableToolbar.js";
18
+ import tl from "../../../components/TableTotal/index.vue.js";
19
+ import { fmtDateTime as rl } from "../../../utils/format.js";
20
+ import { JobHandlerKind as f, JobStatus as b, JobTriggerKind as v, JobMisfireStrategy as V, JobConcurrencyMode as J } from "../../../types/api.js";
21
+ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { class: "job-sec-text" }, il = {
19
22
  key: 0,
20
23
  class: "job-hint"
21
- }, Ge = { class: "kv-editor" }, We = { class: "kv-editor" }, Qe = {
24
+ }, dl = { class: "kv-editor" }, ul = { class: "kv-editor" }, ml = {
22
25
  key: 0,
23
26
  class: "kv-hint"
24
- }, Xe = { class: "job-sec-text" }, Ye = { class: "job-hint" }, Ze = { class: "job-inline" }, et = { class: "job-hint" }, tt = { class: "job-inline" }, lt = { class: "job-hint" }, St = /* @__PURE__ */ Ce({
27
+ }, pl = { class: "job-sec-text" }, cl = { class: "job-hint" }, fl = { class: "job-inline" }, bl = { class: "job-hint" }, hl = { class: "job-inline" }, vl = { class: "job-hint" }, Bl = /* @__PURE__ */ Ke({
25
28
  __name: "index",
26
- setup(at) {
27
- const { t: l } = ze(), J = _e(), ie = Pe(), { run: de, confirm: ue } = He(), z = De(), E = N(), {
28
- checkedKeys: Q,
29
- hasSelection: me,
30
- run: pe
31
- } = Ae({
32
- remove: x.batchRemove,
29
+ setup(yl) {
30
+ const { t: a } = Fe(), F = Ie(), fe = Je(), { run: be, confirm: he } = Qe(), I = Ze(), q = w(), Z = Me("(min-width: 820px)"), { bp: ve } = Ye(), O = ze(() => ve.value === "narrow"), { checkedKeys: ee, run: ye } = Xe({
31
+ remove: C.batchRemove,
33
32
  refresh: () => {
34
- var a;
35
- return (a = E.value) == null ? void 0 : a.refresh();
33
+ var t;
34
+ return (t = q.value) == null ? void 0 : t.refresh();
36
35
  },
37
- successMsg: l("job.deleted")
38
- }), ce = [
36
+ successMsg: a("job.deleted")
37
+ }), ge = [
39
38
  {
40
- label: () => l("job.handler.compiled"),
39
+ label: () => a("job.handler.compiled"),
41
40
  value: f.Compiled,
42
41
  tagType: "info"
43
42
  },
44
- { label: () => l("job.handler.http"), value: f.Http, tagType: "success" },
45
- { label: () => l("job.handler.sql"), value: f.Sql, tagType: "warning" }
46
- ], fe = [
47
- { label: () => l("job.status.ready"), value: b.Ready, tagType: "success" },
48
- { label: () => l("job.status.paused"), value: b.Paused, tagType: "default" },
43
+ { label: () => a("job.handler.http"), value: f.Http, tagType: "success" },
44
+ { label: () => a("job.handler.sql"), value: f.Sql, tagType: "warning" }
45
+ ], je = [
46
+ { label: () => a("job.status.ready"), value: b.Ready, tagType: "success" },
47
+ { label: () => a("job.status.paused"), value: b.Paused, tagType: "default" },
49
48
  {
50
- label: () => l("job.status.completed"),
49
+ label: () => a("job.status.completed"),
51
50
  value: b.Completed,
52
51
  tagType: "default"
53
52
  },
54
- { label: () => l("job.status.panic"), value: b.Panic, tagType: "error" }
53
+ { label: () => a("job.status.panic"), value: b.Panic, tagType: "error" }
55
54
  ];
56
- function be(a) {
57
- switch (a.triggerKind) {
55
+ function Se(t) {
56
+ switch (t.triggerKind) {
58
57
  case v.Interval:
59
- return l("job.trigger.everySeconds", { n: a.intervalSeconds ?? 0 });
58
+ return a("job.trigger.everySeconds", { n: t.intervalSeconds ?? 0 });
60
59
  case v.OneShot:
61
- return Ve(a.oneShotTime, { empty: "—" });
60
+ return rl(t.oneShotTime, { empty: "—" });
62
61
  default:
63
- return a.cronExpression || "—";
62
+ return t.cronExpression || "—";
64
63
  }
65
64
  }
66
- const he = {
65
+ const ke = {
67
66
  [b.Ready]: "success",
68
67
  [b.Paused]: "default",
69
68
  [b.Completed]: "default",
70
69
  [b.Panic]: "error"
71
- }, X = (a) => l(
72
- a === b.Ready ? "job.status.ready" : a === b.Paused ? "job.status.paused" : a === b.Completed ? "job.status.completed" : "job.status.panic"
70
+ }, le = (t) => a(
71
+ t === b.Ready ? "job.status.ready" : t === b.Paused ? "job.status.paused" : t === b.Completed ? "job.status.completed" : "job.status.panic"
73
72
  );
74
- function ve(a) {
75
- if (a.status === b.Completed)
76
- return m(W, { size: "small", bordered: !1 }, () => X(a.status));
77
- if (!z.hasPerm("PUT:/api/v1/sys/job/{id}/enabled"))
73
+ function Te(t) {
74
+ if (t.status === b.Completed)
75
+ return m(X, { size: "small", bordered: !1 }, () => le(t.status));
76
+ if (!I.hasPerm("PUT:/api/v1/sys/job/{id}/enabled"))
78
77
  return m(
79
- W,
80
- { size: "small", bordered: !1, type: he[a.status] },
81
- () => X(a.status)
78
+ X,
79
+ { size: "small", bordered: !1, type: ke[t.status] },
80
+ () => le(t.status)
82
81
  );
83
- const r = m(Ie, {
84
- value: a.status === b.Ready,
85
- confirm: (i) => i ? null : l("job.pauseConfirm", { name: a.name }),
86
- request: (i) => x.setEnabled(a.id, i),
82
+ const r = m($e, {
83
+ value: t.status === b.Ready,
84
+ confirm: (i) => i ? null : a("job.pauseConfirm", { name: t.name }),
85
+ request: (i) => C.setEnabled(t.id, i),
87
86
  // 启停会重算 nextRunTime / 清连败计数,本地写回拼不出来 → 直接重拉
88
87
  "onUpdate:value": () => {
89
88
  var i;
90
- return (i = E.value) == null ? void 0 : i.refresh();
89
+ return (i = q.value) == null ? void 0 : i.refresh();
91
90
  }
92
91
  });
93
- return a.status !== b.Panic ? r : m(_, { size: 6, wrapItem: !1, align: "center" }, () => [
92
+ return t.status !== b.Panic ? r : m(U, { size: 6, wrapItem: !1, align: "center" }, () => [
94
93
  r,
95
- m(ne, null, {
96
- trigger: () => m(W, { size: "small", bordered: !1, type: "error" }, () => l("job.status.panic")),
97
- default: () => l("job.panicTooltip", { n: a.consecutiveErrors })
94
+ m(me, null, {
95
+ trigger: () => m(X, { size: "small", bordered: !1, type: "error" }, () => a("job.status.panic")),
96
+ default: () => a("job.panicTooltip", { n: t.consecutiveErrors })
98
97
  })
99
98
  ]);
100
99
  }
101
- const ye = [
102
- { type: "index", title: () => l("common.rowNo"), width: 64, align: "center" },
100
+ const ae = [
101
+ { type: "index", title: () => a("common.rowNo"), width: 64, align: "center", fixed: "left" },
103
102
  // 内置任务禁删,批量删除同样不可含内置(后端整批拒绝 47014)
104
- { type: "selection", disabled: (a) => a.isSystem },
103
+ { type: "selection", width: 44, fixed: "left", disabled: (t) => t.isSystem },
105
104
  {
106
105
  key: "name",
107
- title: () => l("job.name"),
108
- search: !0,
109
- minWidth: 160,
110
- render: (a) => m("div", null, [
111
- m("div", null, a.name),
112
- m("div", { style: "font-size:12px;color:var(--color-text-tertiary);" }, a.code)
106
+ title: () => a("job.name"),
107
+ search: { actions: Y.fuzzy },
108
+ minWidth: 180,
109
+ card: "title",
110
+ render: (t) => m("div", null, [
111
+ m("div", { style: "font-weight:500;" }, t.name),
112
+ m(
113
+ "div",
114
+ {
115
+ style: "font-size:12px;color:var(--text-3);font-family:var(--font-mono,ui-monospace,monospace);"
116
+ },
117
+ t.code
118
+ )
113
119
  ])
114
120
  },
115
121
  {
116
122
  key: "handlerKind",
117
- title: () => l("job.handler.kind"),
123
+ title: () => a("job.handler.kind"),
118
124
  width: 100,
119
125
  tag: !0,
120
- search: !0,
121
- options: ce
126
+ search: { actions: Y.exact },
127
+ options: ge
122
128
  },
123
129
  {
124
130
  key: "trigger",
125
- title: () => l("job.trigger.kind"),
126
- minWidth: 130,
131
+ title: () => a("job.trigger.kind"),
132
+ minWidth: 150,
127
133
  ellipsis: { tooltip: !0 },
128
- render: (a) => be(a)
134
+ // cron 原文用等宽字体,间隔 / 一次性时刻用等宽数字
135
+ render: (t) => m(
136
+ "span",
137
+ { class: t.triggerKind === v.Cron ? "job-mono" : "tabular" },
138
+ Se(t)
139
+ )
129
140
  },
130
141
  {
131
142
  key: "status",
132
- title: () => l("common.status"),
143
+ title: () => a("common.status"),
133
144
  width: 130,
134
- search: !0,
135
- options: fe,
136
- render: ve
145
+ search: { actions: Y.exact },
146
+ options: je,
147
+ render: Te
137
148
  },
138
- { key: "nextRunTime", title: () => l("job.nextRunTime"), width: 160, format: "datetime" },
139
- { key: "lastRunTime", title: () => l("job.lastRunTime"), width: 160, format: "datetime" },
149
+ { key: "nextRunTime", title: () => a("job.nextRunTime"), width: 176, format: "datetime" },
150
+ { key: "lastRunTime", title: () => a("job.lastRunTime"), width: 176, format: "datetime" },
140
151
  {
141
152
  key: "numberOfRuns",
142
- title: () => l("job.runCount"),
153
+ title: () => a("job.runCount"),
143
154
  width: 110,
144
155
  align: "center",
145
- render: (a) => m("span", { class: "tabular" }, [
146
- m("span", null, String(a.numberOfRuns)),
147
- m("span", { style: "color:var(--color-text-tertiary);" }, " / "),
156
+ render: (t) => m("span", { class: "tabular" }, [
157
+ m("span", null, String(t.numberOfRuns)),
158
+ m("span", { style: "color:var(--text-3);" }, " / "),
148
159
  m(
149
160
  "span",
150
- { style: a.numberOfErrors > 0 ? "color:var(--color-danger);" : "" },
151
- String(a.numberOfErrors)
161
+ { style: t.numberOfErrors > 0 ? "color:var(--err);" : "" },
162
+ String(t.numberOfErrors)
152
163
  )
153
164
  ])
154
165
  },
155
166
  {
156
167
  key: "op",
157
- title: () => l("common.operation"),
168
+ title: () => a("common.operation"),
158
169
  width: 240,
159
170
  fixed: "right",
160
171
  hideInSetting: !0,
161
- render: (a) => m(_, { size: 4, wrapItem: !1 }, () => [
162
- z.hasPerm("PUT:/api/v1/sys/job/{id}") ? m(
163
- g,
164
- { size: "small", quaternary: !0, type: "primary", onClick: () => we(a) },
165
- () => l("common.edit")
172
+ render: (t) => m(U, { size: 4, wrapItem: !1 }, () => [
173
+ I.hasPerm("PUT:/api/v1/sys/job/{id}") ? m(
174
+ h,
175
+ { size: "small", quaternary: !0, type: "primary", onClick: () => Ee(t) },
176
+ () => a("common.edit")
166
177
  ) : null,
167
- z.hasPerm("POST:/api/v1/sys/job/{id}/run") ? m(
168
- g,
169
- { size: "small", quaternary: !0, onClick: () => ge(a) },
170
- () => l("job.runOnce")
178
+ I.hasPerm("POST:/api/v1/sys/job/{id}/run") ? m(
179
+ h,
180
+ { size: "small", quaternary: !0, onClick: () => we(t) },
181
+ () => a("job.runOnce")
171
182
  ) : null,
172
183
  // 记录:携 jobId 跳执行记录页(那边 watch query 自动带上筛选)
173
184
  m(
174
- g,
185
+ h,
175
186
  {
176
187
  size: "small",
177
188
  quaternary: !0,
178
- onClick: () => ie.push({ path: "/system/job-log", query: { jobId: String(a.id) } })
189
+ onClick: () => fe.push({ path: "/system/job-log", query: { jobId: String(t.id) } })
179
190
  },
180
- () => l("job.viewLogs")
191
+ () => a("job.viewLogs")
181
192
  ),
182
- z.hasPerm("DELETE:/api/v1/sys/job/{id}") ? a.isSystem ? m(ne, null, {
193
+ I.hasPerm("DELETE:/api/v1/sys/job/{id}") ? t.isSystem ? m(me, null, {
183
194
  trigger: () => m(
184
- g,
195
+ h,
185
196
  { size: "small", quaternary: !0, type: "error", disabled: !0 },
186
- () => l("common.delete")
197
+ () => a("common.delete")
187
198
  ),
188
- default: () => l("job.protectedTip")
199
+ default: () => a("job.protectedTip")
189
200
  }) : m(
190
- Re,
201
+ Be,
191
202
  {
192
- onPositiveClick: () => de(() => x.remove(a.id), l("job.deleted")).then((r) => {
203
+ onPositiveClick: () => be(() => C.remove(t.id), a("job.deleted")).then((r) => {
193
204
  var i;
194
- r && ((i = E.value) == null || i.refresh());
205
+ r && ((i = q.value) == null || i.refresh());
195
206
  })
196
207
  },
197
208
  {
198
209
  trigger: () => m(
199
- g,
210
+ h,
200
211
  { size: "small", quaternary: !0, type: "error" },
201
- () => l("common.delete")
212
+ () => a("common.delete")
202
213
  ),
203
- default: () => l("job.deleteConfirm", { name: a.name })
214
+ default: () => a("job.deleteConfirm", { name: t.name })
204
215
  }
205
216
  ) : null
206
217
  ])
207
218
  }
208
219
  ];
209
- function ge(a) {
210
- ue({
211
- content: l("job.runConfirm", { name: a.name }),
212
- action: () => x.run(a.id),
213
- successMsg: l("job.runStarted")
220
+ el(ae);
221
+ function we(t) {
222
+ he({
223
+ content: a("job.runConfirm", { name: t.name }),
224
+ action: () => C.run(t.id),
225
+ successMsg: a("job.runStarted")
214
226
  }).then((r) => {
215
227
  var i;
216
- r && ((i = E.value) == null || i.refresh());
228
+ r && ((i = q.value) == null || i.refresh());
217
229
  });
218
230
  }
219
- const O = N(!1), Y = N(null), C = N(null), L = () => ({
231
+ const N = w(!1), te = w(null), _ = w(null), G = () => ({
220
232
  code: "",
221
233
  name: "",
222
234
  remark: "",
@@ -228,8 +240,8 @@ const Je = { class: "job-sec-text" }, Le = { class: "job-sec-text" }, $e = { cla
228
240
  oneShotTime: null,
229
241
  startTime: null,
230
242
  endTime: null,
231
- misfireStrategy: D.Skip,
232
- concurrencyMode: V.SerialSkip,
243
+ misfireStrategy: V.Skip,
244
+ concurrencyMode: J.SerialSkip,
233
245
  handlerKind: f.Compiled,
234
246
  handlerName: "",
235
247
  props: [],
@@ -245,923 +257,980 @@ const Je = { class: "job-sec-text" }, Le = { class: "job-sec-text" }, $e = { cla
245
257
  failAlertThreshold: 0,
246
258
  alertByNotice: !0,
247
259
  alertEmails: ""
248
- }), t = Ue(L()), je = {
260
+ }), l = Re(G()), xe = {
249
261
  code: {
250
262
  required: !0,
251
263
  whitespace: !0,
252
- message: () => l("job.codeRequired"),
264
+ message: () => a("job.codeRequired"),
253
265
  trigger: ["input", "blur"]
254
266
  },
255
267
  name: {
256
268
  required: !0,
257
269
  whitespace: !0,
258
- message: () => l("job.nameRequired"),
270
+ message: () => a("job.nameRequired"),
259
271
  trigger: ["input", "blur"]
260
272
  },
261
273
  // 条件字段的 form-item 随 triggerKind/handlerKind v-if 切换,只有挂着的才参与校验
262
274
  cronExpression: {
263
275
  required: !0,
264
- validator: () => !!t.cronExpression.trim(),
265
- message: () => l("job.trigger.cronRequired"),
276
+ validator: () => !!l.cronExpression.trim(),
277
+ message: () => a("job.trigger.cronRequired"),
266
278
  trigger: ["change", "blur"]
267
279
  },
268
280
  intervalSeconds: {
269
281
  required: !0,
270
- validator: () => t.intervalSeconds != null && t.intervalSeconds >= 5,
271
- message: () => l("job.trigger.intervalRequired"),
282
+ validator: () => l.intervalSeconds != null && l.intervalSeconds >= 5,
283
+ message: () => a("job.trigger.intervalRequired"),
272
284
  trigger: ["change", "blur"]
273
285
  },
274
286
  oneShotTime: {
275
287
  required: !0,
276
- validator: () => !!t.oneShotTime,
277
- message: () => l("job.trigger.oneShotRequired"),
288
+ validator: () => !!l.oneShotTime,
289
+ message: () => a("job.trigger.oneShotRequired"),
278
290
  trigger: ["change", "blur"]
279
291
  },
280
292
  handlerName: {
281
293
  required: !0,
282
- validator: () => !!t.handlerName,
283
- message: () => l("job.handler.nameRequired"),
294
+ validator: () => !!l.handlerName,
295
+ message: () => a("job.handler.nameRequired"),
284
296
  trigger: ["change", "blur"]
285
297
  },
286
298
  httpUrl: {
287
299
  required: !0,
288
300
  whitespace: !0,
289
- message: () => l("job.handler.httpUrlRequired"),
301
+ message: () => a("job.handler.httpUrlRequired"),
290
302
  trigger: ["input", "blur"]
291
303
  },
292
304
  sqlText: {
293
305
  required: !0,
294
306
  whitespace: !0,
295
- message: () => l("job.handler.sqlRequired"),
307
+ message: () => a("job.handler.sqlRequired"),
296
308
  trigger: ["input", "blur"]
297
309
  }
298
- }, Z = N([]), $ = N(!0);
299
- let ee = !1;
300
- async function te() {
301
- if (!ee)
310
+ }, re = w([]), $ = w(!0);
311
+ let oe = !1;
312
+ async function ne() {
313
+ if (!oe)
302
314
  try {
303
- const a = await x.handlers();
304
- Z.value = a.handlers.map((r) => ({ label: r, value: r })), $.value = a.sqlEnabled, ee = !0;
315
+ const t = await C.handlers();
316
+ re.value = t.handlers.map((r) => ({ label: r, value: r })), $.value = t.sqlEnabled, oe = !0;
305
317
  } catch {
306
318
  }
307
319
  }
308
- const Se = ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD"].map((a) => ({
309
- label: a,
310
- value: a
320
+ const Ce = ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD"].map((t) => ({
321
+ label: t,
322
+ value: t
311
323
  })), T = {
312
324
  basic: "basic",
313
325
  trigger: "trigger",
314
326
  handler: "handler",
315
327
  advanced: "advanced"
316
- }, M = [T.basic, T.trigger, T.handler], I = N([...M]);
317
- function ke(a) {
318
- return !!a.startTime || !!a.endTime || a.misfireStrategy !== D.Skip || a.concurrencyMode !== V.SerialSkip || a.timeoutSeconds > 0 || a.retryCount > 0 || a.retryIntervalSeconds !== 30 || a.failAlertThreshold > 0 || !a.alertByNotice || !!a.alertEmails;
328
+ }, B = [T.basic, T.trigger, T.handler], H = w([...B]);
329
+ function Ne(t) {
330
+ return !!t.startTime || !!t.endTime || t.misfireStrategy !== V.Skip || t.concurrencyMode !== J.SerialSkip || t.timeoutSeconds > 0 || t.retryCount > 0 || t.retryIntervalSeconds !== 30 || t.failAlertThreshold > 0 || !t.alertByNotice || !!t.alertEmails;
319
331
  }
320
- const F = (a) => a ? a.slice(0, 19) : null;
321
- function Te() {
322
- C.value = null, Object.assign(t, L()), I.value = [...M], O.value = !0, te();
332
+ const W = (t) => t ? t.slice(0, 19) : null;
333
+ function _e() {
334
+ _.value = null, Object.assign(l, G()), H.value = [...B], N.value = !0, ne();
323
335
  }
324
- function we(a) {
325
- C.value = a.id, Object.assign(t, L()), I.value = ke(a) ? [...M, T.advanced] : [...M];
336
+ function Ee(t) {
337
+ _.value = t.id, Object.assign(l, G()), H.value = Ne(t) ? [...B, T.advanced] : [...B];
326
338
  let r = {};
327
339
  try {
328
- r = JSON.parse(a.propsJson || "{}");
340
+ r = JSON.parse(t.propsJson || "{}");
329
341
  } catch {
330
342
  }
331
- if (t.code = a.code, t.name = a.name, t.remark = a.remark ?? "", t.triggerKind = a.triggerKind, t.cronExpression = a.cronExpression ?? "", t.intervalSeconds = a.intervalSeconds ?? 60, t.oneShotTime = F(a.oneShotTime), t.startTime = F(a.startTime), t.endTime = F(a.endTime), t.misfireStrategy = a.misfireStrategy, t.concurrencyMode = a.concurrencyMode, t.handlerKind = a.handlerKind, t.timeoutSeconds = a.timeoutSeconds, t.retryCount = a.retryCount, t.retryIntervalSeconds = a.retryIntervalSeconds, t.failAlertThreshold = a.failAlertThreshold, t.alertByNotice = a.alertByNotice, t.alertEmails = a.alertEmails ?? "", a.handlerKind === f.Http) {
332
- t.httpUrl = r.url ?? "", t.httpMethod = (r.method ?? "GET").toUpperCase(), t.httpBody = r.body ?? "", t.successStatuses = r.successStatuses ?? "";
343
+ if (l.code = t.code, l.name = t.name, l.remark = t.remark ?? "", l.triggerKind = t.triggerKind, l.cronExpression = t.cronExpression ?? "", l.intervalSeconds = t.intervalSeconds ?? 60, l.oneShotTime = W(t.oneShotTime), l.startTime = W(t.startTime), l.endTime = W(t.endTime), l.misfireStrategy = t.misfireStrategy, l.concurrencyMode = t.concurrencyMode, l.handlerKind = t.handlerKind, l.timeoutSeconds = t.timeoutSeconds, l.retryCount = t.retryCount, l.retryIntervalSeconds = t.retryIntervalSeconds, l.failAlertThreshold = t.failAlertThreshold, l.alertByNotice = t.alertByNotice, l.alertEmails = t.alertEmails ?? "", t.handlerKind === f.Http) {
344
+ l.httpUrl = r.url ?? "", l.httpMethod = (r.method ?? "GET").toUpperCase(), l.httpBody = r.body ?? "", l.successStatuses = r.successStatuses ?? "";
333
345
  let i = {};
334
346
  try {
335
347
  i = JSON.parse(r.headers || "{}");
336
348
  } catch {
337
349
  }
338
- t.headers = Object.entries(i).map(([s, U]) => ({ key: s, value: U ?? "" }));
339
- } else a.handlerKind === f.Sql ? t.sqlText = r.sql ?? "" : (t.handlerName = a.handlerName, t.props = Object.entries(r).map(([i, s]) => ({ key: i, value: s ?? "" })));
340
- O.value = !0, te();
350
+ l.headers = Object.entries(i).map(([s, E]) => ({ key: s, value: E ?? "" }));
351
+ } else t.handlerKind === f.Sql ? l.sqlText = r.sql ?? "" : (l.handlerName = t.handlerName, l.props = Object.entries(r).map(([i, s]) => ({ key: i, value: s ?? "" })));
352
+ N.value = !0, ne();
341
353
  }
342
- function le() {
343
- const a = {};
344
- if (t.handlerKind === f.Http) {
345
- a.url = t.httpUrl.trim(), a.method = t.httpMethod;
354
+ function se() {
355
+ const t = {};
356
+ if (l.handlerKind === f.Http) {
357
+ t.url = l.httpUrl.trim(), t.method = l.httpMethod;
346
358
  const r = {};
347
- for (const i of t.headers) i.key.trim() && (r[i.key.trim()] = i.value);
348
- Object.keys(r).length && (a.headers = JSON.stringify(r)), t.httpBody.trim() && (a.body = t.httpBody), t.successStatuses.trim() && (a.successStatuses = t.successStatuses.trim());
349
- } else if (t.handlerKind === f.Sql)
350
- a.sql = t.sqlText;
359
+ for (const i of l.headers) i.key.trim() && (r[i.key.trim()] = i.value);
360
+ Object.keys(r).length && (t.headers = JSON.stringify(r)), l.httpBody.trim() && (t.body = l.httpBody), l.successStatuses.trim() && (t.successStatuses = l.successStatuses.trim());
361
+ } else if (l.handlerKind === f.Sql)
362
+ t.sql = l.sqlText;
351
363
  else
352
- for (const r of t.props) r.key.trim() && (a[r.key.trim()] = r.value);
364
+ for (const r of l.props) r.key.trim() && (t[r.key.trim()] = r.value);
353
365
  return {
354
- code: t.code.trim(),
355
- name: t.name.trim(),
356
- handlerKind: t.handlerKind,
366
+ code: l.code.trim(),
367
+ name: l.name.trim(),
368
+ handlerKind: l.handlerKind,
357
369
  // HTTP/SQL 的处理器名由服务端固定填内置处理器,这里传空即可
358
- handlerName: t.handlerKind === f.Compiled ? t.handlerName : "",
359
- properties: a,
360
- triggerKind: t.triggerKind,
361
- cronExpression: t.triggerKind === v.Cron ? t.cronExpression.trim() : null,
362
- intervalSeconds: t.triggerKind === v.Interval ? t.intervalSeconds : null,
363
- oneShotTime: t.triggerKind === v.OneShot ? t.oneShotTime : null,
364
- startTime: t.startTime || null,
365
- endTime: t.endTime || null,
366
- misfireStrategy: t.misfireStrategy,
367
- concurrencyMode: t.concurrencyMode,
368
- timeoutSeconds: t.timeoutSeconds,
369
- retryCount: t.retryCount,
370
- retryIntervalSeconds: t.retryIntervalSeconds,
371
- failAlertThreshold: t.failAlertThreshold,
372
- alertByNotice: t.alertByNotice,
373
- alertEmails: t.alertEmails.trim() || null,
374
- remark: t.remark.trim() || null
370
+ handlerName: l.handlerKind === f.Compiled ? l.handlerName : "",
371
+ properties: t,
372
+ triggerKind: l.triggerKind,
373
+ cronExpression: l.triggerKind === v.Cron ? l.cronExpression.trim() : null,
374
+ intervalSeconds: l.triggerKind === v.Interval ? l.intervalSeconds : null,
375
+ oneShotTime: l.triggerKind === v.OneShot ? l.oneShotTime : null,
376
+ startTime: l.startTime || null,
377
+ endTime: l.endTime || null,
378
+ misfireStrategy: l.misfireStrategy,
379
+ concurrencyMode: l.concurrencyMode,
380
+ timeoutSeconds: l.timeoutSeconds,
381
+ retryCount: l.retryCount,
382
+ retryIntervalSeconds: l.retryIntervalSeconds,
383
+ failAlertThreshold: l.failAlertThreshold,
384
+ alertByNotice: l.alertByNotice,
385
+ alertEmails: l.alertEmails.trim() || null,
386
+ remark: l.remark.trim() || null
375
387
  };
376
388
  }
377
- async function xe() {
378
- var a, r;
379
- await ((a = Y.value) == null ? void 0 : a.validate());
389
+ const K = w(!1);
390
+ async function Ue() {
391
+ K.value = !0;
392
+ try {
393
+ await qe() !== !1 && (N.value = !1);
394
+ } catch {
395
+ } finally {
396
+ K.value = !1;
397
+ }
398
+ }
399
+ Oe(() => {
400
+ N.value = !1;
401
+ });
402
+ async function qe() {
403
+ var t, r;
404
+ await ((t = te.value) == null ? void 0 : t.validate());
380
405
  try {
381
- C.value === null ? await x.add(le()) : await x.update(C.value, le()), J.success(l("job.saved")), await ((r = E.value) == null ? void 0 : r.refresh());
406
+ _.value === null ? await C.add(se()) : await C.update(_.value, se()), F.success(a("job.saved")), await ((r = q.value) == null ? void 0 : r.refresh());
382
407
  } catch (i) {
383
- return J.error(se(i)), !1;
408
+ return F.error(ce(i)), !1;
384
409
  }
385
410
  }
386
- return (a, r) => {
387
- const i = Ne("auth");
388
- return p(), k(R, null, [
389
- o(e(Oe), {
390
- "default-page-size": 100,
411
+ return (t, r) => {
412
+ const i = Pe("auth");
413
+ return c(), k(P, null, [
414
+ o(e(Ge), {
415
+ toolbar: e(al),
391
416
  ref_key: "tableRef",
392
- ref: E,
393
- columns: ye,
394
- fetcher: e(x).page,
395
- "flex-height": "",
396
- "virtual-scroll": "",
417
+ ref: q,
418
+ columns: ae,
419
+ fetcher: e(C).page,
420
+ search: { container: "table" },
421
+ "fill-height": "",
422
+ "min-row-height": e(ll),
423
+ "card-on-narrow": "",
397
424
  "storage-key": "sys-job",
398
- "checked-row-keys": e(Q),
399
- "onUpdate:checkedRowKeys": r[0] || (r[0] = (s) => Q.value = s),
400
- onError: r[1] || (r[1] = (s) => e(J).error(e(se)(s)))
425
+ "checked-row-keys": e(ee),
426
+ "onUpdate:checkedRowKeys": r[0] || (r[0] = (s) => ee.value = s),
427
+ onError: r[1] || (r[1] = (s) => e(F).error(e(ce)(s)))
401
428
  }, {
402
- toolbar: n(() => [
403
- ae((p(), q(e(g), {
429
+ "pagination-prefix": n(({ itemCount: s }) => [
430
+ o(tl, { count: s }, null, 8, ["count"])
431
+ ]),
432
+ "toolbar-right": n(() => [
433
+ ie((c(), z(e(h), {
404
434
  type: "primary",
405
- onClick: Te
435
+ onClick: _e
406
436
  }, {
407
437
  icon: n(() => [
408
- o(K, {
438
+ o(R, {
409
439
  icon: "ph:plus",
410
440
  size: 16
411
441
  })
412
442
  ]),
413
443
  default: n(() => [
414
- c(" " + u(e(l)("common.add")), 1)
444
+ p(" " + d(e(a)("common.add")), 1)
415
445
  ]),
416
446
  _: 1
417
447
  })), [
418
448
  [i, "POST:/api/v1/sys/job"]
419
- ]),
420
- ae((p(), q(e(g), {
449
+ ])
450
+ ]),
451
+ batch: n(() => [
452
+ ie((c(), z(e(h), {
421
453
  type: "error",
422
- disabled: !e(me),
423
- onClick: e(pe)
454
+ onClick: e(ye)
424
455
  }, {
425
456
  icon: n(() => [
426
- o(K, {
457
+ o(R, {
427
458
  icon: "ph:trash",
428
459
  size: 16
429
460
  })
430
461
  ]),
431
462
  default: n(() => [
432
- c(" " + u(e(l)("common.batchDelete")), 1)
463
+ p(" " + d(e(a)("common.batchDelete")), 1)
433
464
  ]),
434
465
  _: 1
435
- }, 8, ["disabled", "onClick"])), [
466
+ }, 8, ["onClick"])), [
436
467
  [i, "POST:/api/v1/sys/job/batch-delete"]
437
468
  ])
438
469
  ]),
439
470
  _: 1
440
- }, 8, ["fetcher", "checked-row-keys"]),
441
- o(Me, {
442
- show: O.value,
443
- "onUpdate:show": r[29] || (r[29] = (s) => O.value = s),
444
- title: C.value === null ? e(l)("job.addTitle") : e(l)("job.editTitle"),
445
- width: 880,
446
- "on-confirm": xe,
447
- "confirm-text": e(l)("common.save")
471
+ }, 8, ["toolbar", "fetcher", "min-row-height", "checked-row-keys"]),
472
+ o(e(He), {
473
+ show: N.value,
474
+ "onUpdate:show": r[30] || (r[30] = (s) => N.value = s),
475
+ placement: O.value ? "bottom" : "right",
476
+ width: "min(880px, 100vw)",
477
+ height: "92vh",
478
+ class: de({ "st-sheet": O.value }),
479
+ "mask-closable": !1,
480
+ "close-on-esc": !K.value
448
481
  }, {
449
482
  default: n(() => [
450
- o(e(Ee), {
451
- ref_key: "formRef",
452
- ref: Y,
453
- model: t,
454
- rules: je,
455
- "label-placement": "left",
456
- "label-width": 112,
457
- class: "job-form"
483
+ o(e(Ae), {
484
+ title: _.value === null ? e(a)("job.addTitle") : e(a)("job.editTitle"),
485
+ closable: !K.value,
486
+ "native-scrollbar": !1
458
487
  }, {
488
+ footer: n(() => [
489
+ y("div", {
490
+ class: de(["drawer-foot", { "sheet-foot": O.value }])
491
+ }, [
492
+ o(e(h), {
493
+ size: O.value ? "large" : "medium",
494
+ disabled: K.value,
495
+ onClick: r[29] || (r[29] = (s) => N.value = !1)
496
+ }, {
497
+ default: n(() => [
498
+ p(d(e(a)("common.cancel")), 1)
499
+ ]),
500
+ _: 1
501
+ }, 8, ["size", "disabled"]),
502
+ o(e(h), {
503
+ type: "primary",
504
+ size: O.value ? "large" : "medium",
505
+ loading: K.value,
506
+ onClick: Ue
507
+ }, {
508
+ default: n(() => [
509
+ p(d(e(a)("common.save")), 1)
510
+ ]),
511
+ _: 1
512
+ }, 8, ["size", "loading"])
513
+ ], 2)
514
+ ]),
459
515
  default: n(() => [
460
- o(e(qe), {
461
- "expanded-names": I.value,
462
- "onUpdate:expandedNames": r[28] || (r[28] = (s) => I.value = s),
463
- "display-directive": "show",
464
- class: "job-sections"
516
+ o(e(De), {
517
+ ref_key: "formRef",
518
+ ref: te,
519
+ model: l,
520
+ rules: xe,
521
+ "label-placement": e(Z) ? "left" : "top",
522
+ "label-width": e(Z) ? 112 : void 0,
523
+ class: "job-form"
465
524
  }, {
466
525
  default: n(() => [
467
- o(e(B), {
468
- name: T.basic
526
+ o(e(Le), {
527
+ "expanded-names": H.value,
528
+ "onUpdate:expandedNames": r[28] || (r[28] = (s) => H.value = s),
529
+ "display-directive": "show",
530
+ class: "job-sections"
469
531
  }, {
470
- header: n(() => [
471
- y("span", Je, u(e(l)("job.form.sectionBasic")), 1)
472
- ]),
473
532
  default: n(() => [
474
- o(e(H), {
475
- cols: "1 s:2",
476
- responsive: "screen",
477
- "x-gap": 16,
478
- "y-gap": 0
533
+ o(e(A), {
534
+ name: T.basic
479
535
  }, {
480
- default: n(() => [
481
- o(e(d), {
482
- label: e(l)("job.code"),
483
- path: "code"
484
- }, {
485
- default: n(() => [
486
- o(e(h), {
487
- value: t.code,
488
- "onUpdate:value": r[2] || (r[2] = (s) => t.code = s),
489
- placeholder: e(l)("job.codePlaceholder"),
490
- disabled: C.value !== null
491
- }, null, 8, ["value", "placeholder", "disabled"])
492
- ]),
493
- _: 1
494
- }, 8, ["label"]),
495
- o(e(d), {
496
- label: e(l)("job.name"),
497
- path: "name"
498
- }, {
499
- default: n(() => [
500
- o(e(h), {
501
- value: t.name,
502
- "onUpdate:value": r[3] || (r[3] = (s) => t.name = s),
503
- placeholder: e(l)("job.name")
504
- }, null, 8, ["value", "placeholder"])
505
- ]),
506
- _: 1
507
- }, 8, ["label"]),
508
- o(e(d), {
509
- span: 2,
510
- label: e(l)("job.remark"),
511
- "show-feedback": !1
512
- }, {
513
- default: n(() => [
514
- o(e(h), {
515
- value: t.remark,
516
- "onUpdate:value": r[4] || (r[4] = (s) => t.remark = s),
517
- type: "textarea",
518
- autosize: { minRows: 1, maxRows: 2 }
519
- }, null, 8, ["value"])
520
- ]),
521
- _: 1
522
- }, 8, ["label"])
536
+ header: n(() => [
537
+ y("span", ol, d(e(a)("job.form.sectionBasic")), 1)
523
538
  ]),
524
- _: 1
525
- })
526
- ]),
527
- _: 1
528
- }, 8, ["name"]),
529
- o(e(B), {
530
- name: T.trigger
531
- }, {
532
- header: n(() => [
533
- y("span", Le, u(e(l)("job.form.sectionTrigger")), 1)
534
- ]),
535
- default: n(() => [
536
- o(e(H), {
537
- cols: "1 s:2",
538
- responsive: "screen",
539
- "x-gap": 16,
540
- "y-gap": 0
541
- }, {
542
539
  default: n(() => [
543
- o(e(d), {
544
- label: e(l)("job.trigger.kind"),
545
- "show-feedback": !1
540
+ o(e(D), {
541
+ cols: "1 s:2",
542
+ responsive: "screen",
543
+ "x-gap": 16,
544
+ "y-gap": 0
546
545
  }, {
547
546
  default: n(() => [
548
- o(e(A), {
549
- value: t.triggerKind,
550
- "onUpdate:value": r[5] || (r[5] = (s) => t.triggerKind = s)
547
+ o(e(u), {
548
+ label: e(a)("job.code"),
549
+ path: "code"
551
550
  }, {
552
551
  default: n(() => [
553
- o(e(_), null, {
554
- default: n(() => [
555
- o(e(j), {
556
- value: e(v).Cron
557
- }, {
558
- default: n(() => [
559
- c(u(e(l)("job.trigger.cron")), 1)
560
- ]),
561
- _: 1
562
- }, 8, ["value"]),
563
- o(e(j), {
564
- value: e(v).Interval
565
- }, {
566
- default: n(() => [
567
- c(u(e(l)("job.trigger.interval")), 1)
568
- ]),
569
- _: 1
570
- }, 8, ["value"]),
571
- o(e(j), {
572
- value: e(v).OneShot
573
- }, {
574
- default: n(() => [
575
- c(u(e(l)("job.trigger.oneShot")), 1)
576
- ]),
577
- _: 1
578
- }, 8, ["value"])
579
- ]),
580
- _: 1
581
- })
552
+ o(e(g), {
553
+ value: l.code,
554
+ "onUpdate:value": r[2] || (r[2] = (s) => l.code = s),
555
+ placeholder: e(a)("job.codePlaceholder"),
556
+ disabled: _.value !== null
557
+ }, null, 8, ["value", "placeholder", "disabled"])
582
558
  ]),
583
559
  _: 1
584
- }, 8, ["value"])
585
- ]),
586
- _: 1
587
- }, 8, ["label"]),
588
- t.triggerKind === e(v).Interval ? (p(), q(e(d), {
589
- key: 0,
590
- label: e(l)("job.trigger.intervalSeconds"),
591
- path: "intervalSeconds"
592
- }, {
593
- default: n(() => [
594
- o(e(P), {
595
- value: t.intervalSeconds,
596
- "onUpdate:value": r[6] || (r[6] = (s) => t.intervalSeconds = s),
597
- min: 5,
598
- style: { width: "200px" }
560
+ }, 8, ["label"]),
561
+ o(e(u), {
562
+ label: e(a)("job.name"),
563
+ path: "name"
599
564
  }, {
600
- suffix: n(() => [
601
- c(u(e(l)("job.trigger.seconds")), 1)
565
+ default: n(() => [
566
+ o(e(g), {
567
+ value: l.name,
568
+ "onUpdate:value": r[3] || (r[3] = (s) => l.name = s),
569
+ placeholder: e(a)("job.name")
570
+ }, null, 8, ["value", "placeholder"])
602
571
  ]),
603
572
  _: 1
604
- }, 8, ["value"])
605
- ]),
606
- _: 1
607
- }, 8, ["label"])) : w("", !0),
608
- t.triggerKind === e(v).OneShot ? (p(), q(e(d), {
609
- key: 1,
610
- label: e(l)("job.trigger.oneShotTime"),
611
- path: "oneShotTime"
612
- }, {
613
- default: n(() => [
614
- o(e(G), {
615
- "formatted-value": t.oneShotTime,
616
- "onUpdate:formattedValue": r[7] || (r[7] = (s) => t.oneShotTime = s),
617
- type: "datetime",
618
- "value-format": "yyyy-MM-dd'T'HH:mm:ss",
619
- clearable: "",
620
- style: { width: "240px" }
621
- }, null, 8, ["formatted-value"])
622
- ]),
623
- _: 1
624
- }, 8, ["label"])) : w("", !0),
625
- t.triggerKind === e(v).Cron ? (p(), q(e(d), {
626
- key: 2,
627
- span: 2,
628
- label: e(l)("job.trigger.cronExpression"),
629
- path: "cronExpression"
630
- }, {
631
- default: n(() => [
632
- o(Be, {
633
- "model-value": t.cronExpression,
634
- "onUpdate:modelValue": r[8] || (r[8] = (s) => t.cronExpression = s)
635
- }, null, 8, ["model-value"])
573
+ }, 8, ["label"]),
574
+ o(e(u), {
575
+ span: 2,
576
+ label: e(a)("job.remark"),
577
+ "show-feedback": !1
578
+ }, {
579
+ default: n(() => [
580
+ o(e(g), {
581
+ value: l.remark,
582
+ "onUpdate:value": r[4] || (r[4] = (s) => l.remark = s),
583
+ type: "textarea",
584
+ autosize: { minRows: 1, maxRows: 2 }
585
+ }, null, 8, ["value"])
586
+ ]),
587
+ _: 1
588
+ }, 8, ["label"])
636
589
  ]),
637
590
  _: 1
638
- }, 8, ["label"])) : w("", !0)
591
+ })
639
592
  ]),
640
593
  _: 1
641
- })
642
- ]),
643
- _: 1
644
- }, 8, ["name"]),
645
- o(e(B), {
646
- name: T.handler
647
- }, {
648
- header: n(() => [
649
- y("span", $e, u(e(l)("job.form.sectionHandler")), 1)
650
- ]),
651
- default: n(() => [
652
- o(e(H), {
653
- cols: "1 s:2",
654
- responsive: "screen",
655
- "x-gap": 16,
656
- "y-gap": 0
594
+ }, 8, ["name"]),
595
+ o(e(A), {
596
+ name: T.trigger
657
597
  }, {
598
+ header: n(() => [
599
+ y("span", nl, d(e(a)("job.form.sectionTrigger")), 1)
600
+ ]),
658
601
  default: n(() => [
659
- o(e(d), {
660
- span: 2,
661
- label: e(l)("job.handler.kind"),
662
- "show-feedback": !1
602
+ o(e(D), {
603
+ cols: "1 s:2",
604
+ responsive: "screen",
605
+ "x-gap": 16,
606
+ "y-gap": 0
663
607
  }, {
664
608
  default: n(() => [
665
- o(e(_), { align: "center" }, {
609
+ o(e(u), {
610
+ label: e(a)("job.trigger.kind"),
611
+ "show-feedback": !1
612
+ }, {
666
613
  default: n(() => [
667
- o(e(A), {
668
- value: t.handlerKind,
669
- "onUpdate:value": r[9] || (r[9] = (s) => t.handlerKind = s)
614
+ o(e(L), {
615
+ value: l.triggerKind,
616
+ "onUpdate:value": r[5] || (r[5] = (s) => l.triggerKind = s)
670
617
  }, {
671
618
  default: n(() => [
672
- o(e(_), null, {
619
+ o(e(U), null, {
673
620
  default: n(() => [
674
621
  o(e(j), {
675
- value: e(f).Compiled
622
+ value: e(v).Cron
676
623
  }, {
677
624
  default: n(() => [
678
- c(u(e(l)("job.handler.compiled")), 1)
625
+ p(d(e(a)("job.trigger.cron")), 1)
679
626
  ]),
680
627
  _: 1
681
628
  }, 8, ["value"]),
682
629
  o(e(j), {
683
- value: e(f).Http
630
+ value: e(v).Interval
684
631
  }, {
685
632
  default: n(() => [
686
- c(u(e(l)("job.handler.http")), 1)
633
+ p(d(e(a)("job.trigger.interval")), 1)
687
634
  ]),
688
635
  _: 1
689
636
  }, 8, ["value"]),
690
637
  o(e(j), {
691
- value: e(f).Sql,
692
- disabled: !$.value
638
+ value: e(v).OneShot
693
639
  }, {
694
640
  default: n(() => [
695
- c(u(e(l)("job.handler.sql")), 1)
641
+ p(d(e(a)("job.trigger.oneShot")), 1)
696
642
  ]),
697
643
  _: 1
698
- }, 8, ["value", "disabled"])
644
+ }, 8, ["value"])
699
645
  ]),
700
646
  _: 1
701
647
  })
702
648
  ]),
703
649
  _: 1
704
- }, 8, ["value"]),
705
- $.value ? w("", !0) : (p(), k("span", Fe, u(e(l)("job.handler.sqlDisabledHint")), 1))
650
+ }, 8, ["value"])
706
651
  ]),
707
652
  _: 1
708
- })
709
- ]),
710
- _: 1
711
- }, 8, ["label"]),
712
- t.handlerKind === e(f).Compiled ? (p(), k(R, { key: 0 }, [
713
- o(e(d), {
714
- span: 2,
715
- label: e(l)("job.handler.name"),
716
- path: "handlerName"
717
- }, {
718
- default: n(() => [
719
- o(e(oe), {
720
- value: t.handlerName,
721
- "onUpdate:value": r[10] || (r[10] = (s) => t.handlerName = s),
722
- filterable: "",
723
- options: Z.value,
724
- placeholder: e(l)("job.handler.namePlaceholder")
725
- }, null, 8, ["value", "options", "placeholder"])
726
- ]),
727
- _: 1
728
- }, 8, ["label"]),
729
- o(e(d), {
730
- span: 2,
731
- label: e(l)("job.handler.props"),
732
- "show-feedback": !1
733
- }, {
734
- default: n(() => [
735
- y("div", Ge, [
736
- (p(!0), k(R, null, re(t.props, (s, U) => (p(), k("div", {
737
- key: U,
738
- class: "kv-row"
739
- }, [
740
- o(e(h), {
741
- value: s.key,
742
- "onUpdate:value": (S) => s.key = S,
743
- size: "small",
744
- placeholder: e(l)("job.handler.propKey")
745
- }, null, 8, ["value", "onUpdate:value", "placeholder"]),
746
- o(e(h), {
747
- value: s.value,
748
- "onUpdate:value": (S) => s.value = S,
749
- size: "small",
750
- placeholder: e(l)("job.handler.propValue")
751
- }, null, 8, ["value", "onUpdate:value", "placeholder"]),
752
- o(e(g), {
753
- quaternary: "",
754
- circle: "",
755
- size: "small",
756
- "aria-label": e(l)("common.delete"),
757
- onClick: (S) => t.props.splice(U, 1)
758
- }, {
759
- icon: n(() => [
760
- o(K, {
761
- icon: "ph:x",
762
- size: 14
763
- })
764
- ]),
765
- _: 1
766
- }, 8, ["aria-label", "onClick"])
767
- ]))), 128)),
768
- o(e(g), {
769
- dashed: "",
770
- size: "small",
771
- onClick: r[11] || (r[11] = (s) => t.props.push({ key: "", value: "" }))
653
+ }, 8, ["label"]),
654
+ l.triggerKind === e(v).Interval ? (c(), z(e(u), {
655
+ key: 0,
656
+ label: e(a)("job.trigger.intervalSeconds"),
657
+ path: "intervalSeconds"
658
+ }, {
659
+ default: n(() => [
660
+ o(e(M), {
661
+ value: l.intervalSeconds,
662
+ "onUpdate:value": r[6] || (r[6] = (s) => l.intervalSeconds = s),
663
+ min: 5,
664
+ style: { width: "200px" }
772
665
  }, {
773
- icon: n(() => [
774
- o(K, {
775
- icon: "ph:plus",
776
- size: 14
777
- })
778
- ]),
779
- default: n(() => [
780
- c(" " + u(e(l)("job.handler.addProp")), 1)
666
+ suffix: n(() => [
667
+ p(d(e(a)("job.trigger.seconds")), 1)
781
668
  ]),
782
669
  _: 1
783
- })
784
- ])
785
- ]),
786
- _: 1
787
- }, 8, ["label"])
788
- ], 64)) : w("", !0),
789
- t.handlerKind === e(f).Http ? (p(), k(R, { key: 1 }, [
790
- o(e(d), {
791
- span: 2,
792
- label: e(l)("job.handler.httpUrl"),
793
- path: "httpUrl"
794
- }, {
795
- default: n(() => [
796
- o(e(h), {
797
- value: t.httpUrl,
798
- "onUpdate:value": r[12] || (r[12] = (s) => t.httpUrl = s),
799
- placeholder: "https://example.com/api/task"
800
- }, null, 8, ["value"])
801
- ]),
802
- _: 1
803
- }, 8, ["label"]),
804
- o(e(d), {
805
- label: e(l)("job.handler.httpMethod"),
806
- "show-feedback": !1
807
- }, {
808
- default: n(() => [
809
- o(e(oe), {
810
- value: t.httpMethod,
811
- "onUpdate:value": r[13] || (r[13] = (s) => t.httpMethod = s),
812
- options: e(Se),
813
- style: { width: "160px" }
814
- }, null, 8, ["value", "options"])
815
- ]),
816
- _: 1
817
- }, 8, ["label"]),
818
- o(e(d), {
819
- label: e(l)("job.handler.successStatuses"),
820
- "show-feedback": !1
821
- }, {
822
- default: n(() => [
823
- o(e(h), {
824
- value: t.successStatuses,
825
- "onUpdate:value": r[14] || (r[14] = (s) => t.successStatuses = s),
826
- placeholder: e(l)("job.handler.successStatusesPlaceholder"),
827
- style: { width: "240px" }
828
- }, null, 8, ["value", "placeholder"])
829
- ]),
830
- _: 1
831
- }, 8, ["label"]),
832
- o(e(d), {
833
- span: 2,
834
- label: e(l)("job.handler.httpHeaders"),
835
- "show-feedback": !1
836
- }, {
837
- default: n(() => [
838
- y("div", We, [
839
- (p(!0), k(R, null, re(t.headers, (s, U) => (p(), k("div", {
840
- key: U,
841
- class: "kv-row"
842
- }, [
843
- o(e(h), {
844
- value: s.key,
845
- "onUpdate:value": (S) => s.key = S,
846
- size: "small",
847
- placeholder: e(l)("job.handler.propKey")
848
- }, null, 8, ["value", "onUpdate:value", "placeholder"]),
849
- o(e(h), {
850
- value: s.value,
851
- "onUpdate:value": (S) => s.value = S,
852
- size: "small",
853
- placeholder: e(l)("job.handler.propValue")
854
- }, null, 8, ["value", "onUpdate:value", "placeholder"]),
855
- o(e(g), {
856
- quaternary: "",
857
- circle: "",
858
- size: "small",
859
- "aria-label": e(l)("common.delete"),
860
- onClick: (S) => t.headers.splice(U, 1)
861
- }, {
862
- icon: n(() => [
863
- o(K, {
864
- icon: "ph:x",
865
- size: 14
866
- })
867
- ]),
868
- _: 1
869
- }, 8, ["aria-label", "onClick"])
870
- ]))), 128)),
871
- o(e(g), {
872
- dashed: "",
873
- size: "small",
874
- onClick: r[15] || (r[15] = (s) => t.headers.push({ key: "", value: "" }))
875
- }, {
876
- icon: n(() => [
877
- o(K, {
878
- icon: "ph:plus",
879
- size: 14
880
- })
881
- ]),
882
- default: n(() => [
883
- c(" " + u(e(l)("job.handler.addProp")), 1)
884
- ]),
885
- _: 1
886
- }),
887
- C.value !== null ? (p(), k("span", Qe, u(e(l)("job.handler.headersMaskHint")), 1)) : w("", !0)
888
- ])
889
- ]),
890
- _: 1
891
- }, 8, ["label"]),
892
- o(e(d), {
893
- span: 2,
894
- label: e(l)("job.handler.httpBody"),
895
- "show-feedback": !1
896
- }, {
897
- default: n(() => [
898
- o(e(h), {
899
- value: t.httpBody,
900
- "onUpdate:value": r[16] || (r[16] = (s) => t.httpBody = s),
901
- type: "textarea",
902
- autosize: { minRows: 2, maxRows: 5 }
903
- }, null, 8, ["value"])
904
- ]),
905
- _: 1
906
- }, 8, ["label"])
907
- ], 64)) : w("", !0),
908
- t.handlerKind === e(f).Sql ? (p(), q(e(d), {
909
- key: 2,
910
- span: 2,
911
- label: e(l)("job.handler.sqlText"),
912
- path: "sqlText"
913
- }, {
914
- default: n(() => [
915
- o(e(h), {
916
- value: t.sqlText,
917
- "onUpdate:value": r[17] || (r[17] = (s) => t.sqlText = s),
918
- type: "textarea",
919
- autosize: { minRows: 3, maxRows: 8 },
920
- placeholder: "UPDATE ..."
921
- }, null, 8, ["value"])
670
+ }, 8, ["value"])
671
+ ]),
672
+ _: 1
673
+ }, 8, ["label"])) : x("", !0),
674
+ l.triggerKind === e(v).OneShot ? (c(), z(e(u), {
675
+ key: 1,
676
+ label: e(a)("job.trigger.oneShotTime"),
677
+ path: "oneShotTime"
678
+ }, {
679
+ default: n(() => [
680
+ o(e(Q), {
681
+ "formatted-value": l.oneShotTime,
682
+ "onUpdate:formattedValue": r[7] || (r[7] = (s) => l.oneShotTime = s),
683
+ type: "datetime",
684
+ "value-format": "yyyy-MM-dd'T'HH:mm:ss",
685
+ clearable: "",
686
+ style: { width: "240px" }
687
+ }, null, 8, ["formatted-value"])
688
+ ]),
689
+ _: 1
690
+ }, 8, ["label"])) : x("", !0),
691
+ l.triggerKind === e(v).Cron ? (c(), z(e(u), {
692
+ key: 2,
693
+ span: 2,
694
+ label: e(a)("job.trigger.cronExpression"),
695
+ path: "cronExpression"
696
+ }, {
697
+ default: n(() => [
698
+ o(We, {
699
+ "model-value": l.cronExpression,
700
+ "onUpdate:modelValue": r[8] || (r[8] = (s) => l.cronExpression = s)
701
+ }, null, 8, ["model-value"])
702
+ ]),
703
+ _: 1
704
+ }, 8, ["label"])) : x("", !0)
922
705
  ]),
923
706
  _: 1
924
- }, 8, ["label"])) : w("", !0)
707
+ })
925
708
  ]),
926
709
  _: 1
927
- })
928
- ]),
929
- _: 1
930
- }, 8, ["name"]),
931
- o(e(B), {
932
- name: T.advanced,
933
- class: "job-advanced"
934
- }, {
935
- header: n(() => [
936
- y("span", Xe, u(e(l)("job.form.sectionAdvanced")), 1),
937
- y("span", Ye, u(e(l)("job.form.sectionAdvancedHint")), 1)
938
- ]),
939
- default: n(() => [
940
- o(e(H), {
941
- cols: "1 s:2",
942
- responsive: "screen",
943
- "x-gap": 24,
944
- "y-gap": 4
710
+ }, 8, ["name"]),
711
+ o(e(A), {
712
+ name: T.handler
945
713
  }, {
714
+ header: n(() => [
715
+ y("span", sl, d(e(a)("job.form.sectionHandler")), 1)
716
+ ]),
946
717
  default: n(() => [
947
- o(e(d), {
948
- label: e(l)("job.form.startTime"),
949
- "show-feedback": !1
718
+ o(e(D), {
719
+ cols: "1 s:2",
720
+ responsive: "screen",
721
+ "x-gap": 16,
722
+ "y-gap": 0
950
723
  }, {
951
724
  default: n(() => [
952
- o(e(G), {
953
- "formatted-value": t.startTime,
954
- "onUpdate:formattedValue": r[18] || (r[18] = (s) => t.startTime = s),
955
- type: "datetime",
956
- "value-format": "yyyy-MM-dd'T'HH:mm:ss",
957
- clearable: "",
958
- placeholder: e(l)("job.form.windowPlaceholder"),
959
- style: { width: "100%" }
960
- }, null, 8, ["formatted-value", "placeholder"])
961
- ]),
962
- _: 1
963
- }, 8, ["label"]),
964
- o(e(d), {
965
- label: e(l)("job.form.endTime"),
966
- "show-feedback": !1
967
- }, {
968
- default: n(() => [
969
- o(e(G), {
970
- "formatted-value": t.endTime,
971
- "onUpdate:formattedValue": r[19] || (r[19] = (s) => t.endTime = s),
972
- type: "datetime",
973
- "value-format": "yyyy-MM-dd'T'HH:mm:ss",
974
- clearable: "",
975
- placeholder: e(l)("job.form.windowPlaceholder"),
976
- style: { width: "100%" }
977
- }, null, 8, ["formatted-value", "placeholder"])
978
- ]),
979
- _: 1
980
- }, 8, ["label"]),
981
- o(e(d), {
982
- span: 2,
983
- label: e(l)("job.form.misfireStrategy"),
984
- "show-feedback": !1
985
- }, {
986
- default: n(() => [
987
- o(e(A), {
988
- value: t.misfireStrategy,
989
- "onUpdate:value": r[20] || (r[20] = (s) => t.misfireStrategy = s)
725
+ o(e(u), {
726
+ span: 2,
727
+ label: e(a)("job.handler.kind"),
728
+ "show-feedback": !1
990
729
  }, {
991
730
  default: n(() => [
992
- o(e(_), { size: 16 }, {
731
+ o(e(U), { align: "center" }, {
993
732
  default: n(() => [
994
- o(e(j), {
995
- value: e(D).Skip
733
+ o(e(L), {
734
+ value: l.handlerKind,
735
+ "onUpdate:value": r[9] || (r[9] = (s) => l.handlerKind = s)
996
736
  }, {
997
737
  default: n(() => [
998
- c(u(e(l)("job.form.misfireSkip")), 1)
738
+ o(e(U), null, {
739
+ default: n(() => [
740
+ o(e(j), {
741
+ value: e(f).Compiled
742
+ }, {
743
+ default: n(() => [
744
+ p(d(e(a)("job.handler.compiled")), 1)
745
+ ]),
746
+ _: 1
747
+ }, 8, ["value"]),
748
+ o(e(j), {
749
+ value: e(f).Http
750
+ }, {
751
+ default: n(() => [
752
+ p(d(e(a)("job.handler.http")), 1)
753
+ ]),
754
+ _: 1
755
+ }, 8, ["value"]),
756
+ o(e(j), {
757
+ value: e(f).Sql,
758
+ disabled: !$.value
759
+ }, {
760
+ default: n(() => [
761
+ p(d(e(a)("job.handler.sql")), 1)
762
+ ]),
763
+ _: 1
764
+ }, 8, ["value", "disabled"])
765
+ ]),
766
+ _: 1
767
+ })
999
768
  ]),
1000
769
  _: 1
1001
770
  }, 8, ["value"]),
1002
- o(e(j), {
1003
- value: e(D).FireOnceNow
771
+ $.value ? x("", !0) : (c(), k("span", il, d(e(a)("job.handler.sqlDisabledHint")), 1))
772
+ ]),
773
+ _: 1
774
+ })
775
+ ]),
776
+ _: 1
777
+ }, 8, ["label"]),
778
+ l.handlerKind === e(f).Compiled ? (c(), k(P, { key: 0 }, [
779
+ o(e(u), {
780
+ span: 2,
781
+ label: e(a)("job.handler.name"),
782
+ path: "handlerName"
783
+ }, {
784
+ default: n(() => [
785
+ o(e(pe), {
786
+ value: l.handlerName,
787
+ "onUpdate:value": r[10] || (r[10] = (s) => l.handlerName = s),
788
+ filterable: "",
789
+ options: re.value,
790
+ placeholder: e(a)("job.handler.namePlaceholder")
791
+ }, null, 8, ["value", "options", "placeholder"])
792
+ ]),
793
+ _: 1
794
+ }, 8, ["label"]),
795
+ o(e(u), {
796
+ span: 2,
797
+ label: e(a)("job.handler.props"),
798
+ "show-feedback": !1
799
+ }, {
800
+ default: n(() => [
801
+ y("div", dl, [
802
+ (c(!0), k(P, null, ue(l.props, (s, E) => (c(), k("div", {
803
+ key: E,
804
+ class: "kv-row"
805
+ }, [
806
+ o(e(g), {
807
+ value: s.key,
808
+ "onUpdate:value": (S) => s.key = S,
809
+ size: "small",
810
+ placeholder: e(a)("job.handler.propKey")
811
+ }, null, 8, ["value", "onUpdate:value", "placeholder"]),
812
+ o(e(g), {
813
+ value: s.value,
814
+ "onUpdate:value": (S) => s.value = S,
815
+ size: "small",
816
+ placeholder: e(a)("job.handler.propValue")
817
+ }, null, 8, ["value", "onUpdate:value", "placeholder"]),
818
+ o(e(h), {
819
+ quaternary: "",
820
+ circle: "",
821
+ size: "small",
822
+ "aria-label": e(a)("common.delete"),
823
+ onClick: (S) => l.props.splice(E, 1)
824
+ }, {
825
+ icon: n(() => [
826
+ o(R, {
827
+ icon: "ph:x",
828
+ size: 14
829
+ })
830
+ ]),
831
+ _: 1
832
+ }, 8, ["aria-label", "onClick"])
833
+ ]))), 128)),
834
+ o(e(h), {
835
+ dashed: "",
836
+ size: "small",
837
+ onClick: r[11] || (r[11] = (s) => l.props.push({ key: "", value: "" }))
1004
838
  }, {
839
+ icon: n(() => [
840
+ o(R, {
841
+ icon: "ph:plus",
842
+ size: 14
843
+ })
844
+ ]),
1005
845
  default: n(() => [
1006
- c(u(e(l)("job.form.misfireFireOnceNow")), 1)
846
+ p(" " + d(e(a)("job.handler.addProp")), 1)
1007
847
  ]),
1008
848
  _: 1
1009
- }, 8, ["value"])
1010
- ]),
1011
- _: 1
1012
- })
849
+ })
850
+ ])
851
+ ]),
852
+ _: 1
853
+ }, 8, ["label"])
854
+ ], 64)) : x("", !0),
855
+ l.handlerKind === e(f).Http ? (c(), k(P, { key: 1 }, [
856
+ o(e(u), {
857
+ span: 2,
858
+ label: e(a)("job.handler.httpUrl"),
859
+ path: "httpUrl"
860
+ }, {
861
+ default: n(() => [
862
+ o(e(g), {
863
+ value: l.httpUrl,
864
+ "onUpdate:value": r[12] || (r[12] = (s) => l.httpUrl = s),
865
+ placeholder: "https://example.com/api/task"
866
+ }, null, 8, ["value"])
867
+ ]),
868
+ _: 1
869
+ }, 8, ["label"]),
870
+ o(e(u), {
871
+ label: e(a)("job.handler.httpMethod"),
872
+ "show-feedback": !1
873
+ }, {
874
+ default: n(() => [
875
+ o(e(pe), {
876
+ value: l.httpMethod,
877
+ "onUpdate:value": r[13] || (r[13] = (s) => l.httpMethod = s),
878
+ options: e(Ce),
879
+ style: { width: "160px" }
880
+ }, null, 8, ["value", "options"])
881
+ ]),
882
+ _: 1
883
+ }, 8, ["label"]),
884
+ o(e(u), {
885
+ label: e(a)("job.handler.successStatuses"),
886
+ "show-feedback": !1
887
+ }, {
888
+ default: n(() => [
889
+ o(e(g), {
890
+ value: l.successStatuses,
891
+ "onUpdate:value": r[14] || (r[14] = (s) => l.successStatuses = s),
892
+ placeholder: e(a)("job.handler.successStatusesPlaceholder"),
893
+ style: { width: "240px" }
894
+ }, null, 8, ["value", "placeholder"])
895
+ ]),
896
+ _: 1
897
+ }, 8, ["label"]),
898
+ o(e(u), {
899
+ span: 2,
900
+ label: e(a)("job.handler.httpHeaders"),
901
+ "show-feedback": !1
902
+ }, {
903
+ default: n(() => [
904
+ y("div", ul, [
905
+ (c(!0), k(P, null, ue(l.headers, (s, E) => (c(), k("div", {
906
+ key: E,
907
+ class: "kv-row"
908
+ }, [
909
+ o(e(g), {
910
+ value: s.key,
911
+ "onUpdate:value": (S) => s.key = S,
912
+ size: "small",
913
+ placeholder: e(a)("job.handler.propKey")
914
+ }, null, 8, ["value", "onUpdate:value", "placeholder"]),
915
+ o(e(g), {
916
+ value: s.value,
917
+ "onUpdate:value": (S) => s.value = S,
918
+ size: "small",
919
+ placeholder: e(a)("job.handler.propValue")
920
+ }, null, 8, ["value", "onUpdate:value", "placeholder"]),
921
+ o(e(h), {
922
+ quaternary: "",
923
+ circle: "",
924
+ size: "small",
925
+ "aria-label": e(a)("common.delete"),
926
+ onClick: (S) => l.headers.splice(E, 1)
927
+ }, {
928
+ icon: n(() => [
929
+ o(R, {
930
+ icon: "ph:x",
931
+ size: 14
932
+ })
933
+ ]),
934
+ _: 1
935
+ }, 8, ["aria-label", "onClick"])
936
+ ]))), 128)),
937
+ o(e(h), {
938
+ dashed: "",
939
+ size: "small",
940
+ onClick: r[15] || (r[15] = (s) => l.headers.push({ key: "", value: "" }))
941
+ }, {
942
+ icon: n(() => [
943
+ o(R, {
944
+ icon: "ph:plus",
945
+ size: 14
946
+ })
947
+ ]),
948
+ default: n(() => [
949
+ p(" " + d(e(a)("job.handler.addProp")), 1)
950
+ ]),
951
+ _: 1
952
+ }),
953
+ _.value !== null ? (c(), k("span", ml, d(e(a)("job.handler.headersMaskHint")), 1)) : x("", !0)
954
+ ])
955
+ ]),
956
+ _: 1
957
+ }, 8, ["label"]),
958
+ o(e(u), {
959
+ span: 2,
960
+ label: e(a)("job.handler.httpBody"),
961
+ "show-feedback": !1
962
+ }, {
963
+ default: n(() => [
964
+ o(e(g), {
965
+ value: l.httpBody,
966
+ "onUpdate:value": r[16] || (r[16] = (s) => l.httpBody = s),
967
+ type: "textarea",
968
+ autosize: { minRows: 2, maxRows: 5 }
969
+ }, null, 8, ["value"])
970
+ ]),
971
+ _: 1
972
+ }, 8, ["label"])
973
+ ], 64)) : x("", !0),
974
+ l.handlerKind === e(f).Sql ? (c(), z(e(u), {
975
+ key: 2,
976
+ span: 2,
977
+ label: e(a)("job.handler.sqlText"),
978
+ path: "sqlText"
979
+ }, {
980
+ default: n(() => [
981
+ o(e(g), {
982
+ value: l.sqlText,
983
+ "onUpdate:value": r[17] || (r[17] = (s) => l.sqlText = s),
984
+ type: "textarea",
985
+ autosize: { minRows: 3, maxRows: 8 },
986
+ placeholder: "UPDATE ..."
987
+ }, null, 8, ["value"])
1013
988
  ]),
1014
989
  _: 1
1015
- }, 8, ["value"])
990
+ }, 8, ["label"])) : x("", !0)
1016
991
  ]),
1017
992
  _: 1
1018
- }, 8, ["label"]),
1019
- o(e(d), {
1020
- span: 2,
1021
- label: e(l)("job.form.concurrencyMode"),
1022
- "show-feedback": !1
993
+ })
994
+ ]),
995
+ _: 1
996
+ }, 8, ["name"]),
997
+ o(e(A), {
998
+ name: T.advanced,
999
+ class: "job-advanced"
1000
+ }, {
1001
+ header: n(() => [
1002
+ y("span", pl, d(e(a)("job.form.sectionAdvanced")), 1),
1003
+ y("span", cl, d(e(a)("job.form.sectionAdvancedHint")), 1)
1004
+ ]),
1005
+ default: n(() => [
1006
+ o(e(D), {
1007
+ cols: "1 s:2",
1008
+ responsive: "screen",
1009
+ "x-gap": 24,
1010
+ "y-gap": 4
1023
1011
  }, {
1024
1012
  default: n(() => [
1025
- o(e(A), {
1026
- value: t.concurrencyMode,
1027
- "onUpdate:value": r[21] || (r[21] = (s) => t.concurrencyMode = s)
1013
+ o(e(u), {
1014
+ label: e(a)("job.form.startTime"),
1015
+ "show-feedback": !1
1028
1016
  }, {
1029
1017
  default: n(() => [
1030
- o(e(_), { size: 16 }, {
1018
+ o(e(Q), {
1019
+ "formatted-value": l.startTime,
1020
+ "onUpdate:formattedValue": r[18] || (r[18] = (s) => l.startTime = s),
1021
+ type: "datetime",
1022
+ "value-format": "yyyy-MM-dd'T'HH:mm:ss",
1023
+ clearable: "",
1024
+ placeholder: e(a)("job.form.windowPlaceholder"),
1025
+ style: { width: "100%" }
1026
+ }, null, 8, ["formatted-value", "placeholder"])
1027
+ ]),
1028
+ _: 1
1029
+ }, 8, ["label"]),
1030
+ o(e(u), {
1031
+ label: e(a)("job.form.endTime"),
1032
+ "show-feedback": !1
1033
+ }, {
1034
+ default: n(() => [
1035
+ o(e(Q), {
1036
+ "formatted-value": l.endTime,
1037
+ "onUpdate:formattedValue": r[19] || (r[19] = (s) => l.endTime = s),
1038
+ type: "datetime",
1039
+ "value-format": "yyyy-MM-dd'T'HH:mm:ss",
1040
+ clearable: "",
1041
+ placeholder: e(a)("job.form.windowPlaceholder"),
1042
+ style: { width: "100%" }
1043
+ }, null, 8, ["formatted-value", "placeholder"])
1044
+ ]),
1045
+ _: 1
1046
+ }, 8, ["label"]),
1047
+ o(e(u), {
1048
+ span: 2,
1049
+ label: e(a)("job.form.misfireStrategy"),
1050
+ "show-feedback": !1
1051
+ }, {
1052
+ default: n(() => [
1053
+ o(e(L), {
1054
+ value: l.misfireStrategy,
1055
+ "onUpdate:value": r[20] || (r[20] = (s) => l.misfireStrategy = s)
1056
+ }, {
1031
1057
  default: n(() => [
1032
- o(e(j), {
1033
- value: e(V).SerialSkip
1034
- }, {
1058
+ o(e(U), { size: 16 }, {
1035
1059
  default: n(() => [
1036
- c(u(e(l)("job.form.concurrencySerial")), 1)
1060
+ o(e(j), {
1061
+ value: e(V).Skip
1062
+ }, {
1063
+ default: n(() => [
1064
+ p(d(e(a)("job.form.misfireSkip")), 1)
1065
+ ]),
1066
+ _: 1
1067
+ }, 8, ["value"]),
1068
+ o(e(j), {
1069
+ value: e(V).FireOnceNow
1070
+ }, {
1071
+ default: n(() => [
1072
+ p(d(e(a)("job.form.misfireFireOnceNow")), 1)
1073
+ ]),
1074
+ _: 1
1075
+ }, 8, ["value"])
1037
1076
  ]),
1038
1077
  _: 1
1039
- }, 8, ["value"]),
1040
- o(e(j), {
1041
- value: e(V).Parallel
1042
- }, {
1078
+ })
1079
+ ]),
1080
+ _: 1
1081
+ }, 8, ["value"])
1082
+ ]),
1083
+ _: 1
1084
+ }, 8, ["label"]),
1085
+ o(e(u), {
1086
+ span: 2,
1087
+ label: e(a)("job.form.concurrencyMode"),
1088
+ "show-feedback": !1
1089
+ }, {
1090
+ default: n(() => [
1091
+ o(e(L), {
1092
+ value: l.concurrencyMode,
1093
+ "onUpdate:value": r[21] || (r[21] = (s) => l.concurrencyMode = s)
1094
+ }, {
1095
+ default: n(() => [
1096
+ o(e(U), { size: 16 }, {
1043
1097
  default: n(() => [
1044
- c(u(e(l)("job.form.concurrencyParallel")), 1)
1098
+ o(e(j), {
1099
+ value: e(J).SerialSkip
1100
+ }, {
1101
+ default: n(() => [
1102
+ p(d(e(a)("job.form.concurrencySerial")), 1)
1103
+ ]),
1104
+ _: 1
1105
+ }, 8, ["value"]),
1106
+ o(e(j), {
1107
+ value: e(J).Parallel
1108
+ }, {
1109
+ default: n(() => [
1110
+ p(d(e(a)("job.form.concurrencyParallel")), 1)
1111
+ ]),
1112
+ _: 1
1113
+ }, 8, ["value"])
1045
1114
  ]),
1046
1115
  _: 1
1047
- }, 8, ["value"])
1116
+ })
1048
1117
  ]),
1049
1118
  _: 1
1050
- })
1119
+ }, 8, ["value"])
1051
1120
  ]),
1052
1121
  _: 1
1053
- }, 8, ["value"])
1054
- ]),
1055
- _: 1
1056
- }, 8, ["label"]),
1057
- o(e(d), {
1058
- label: e(l)("job.form.timeoutSeconds"),
1059
- "show-feedback": !1
1060
- }, {
1061
- default: n(() => [
1062
- y("div", Ze, [
1063
- o(e(P), {
1064
- value: t.timeoutSeconds,
1065
- "onUpdate:value": r[22] || (r[22] = (s) => t.timeoutSeconds = s),
1066
- min: 0,
1067
- style: { width: "140px" }
1068
- }, null, 8, ["value"]),
1069
- y("span", et, u(e(l)("job.form.timeoutHint")), 1)
1070
- ])
1071
- ]),
1072
- _: 1
1073
- }, 8, ["label"]),
1074
- o(e(d), {
1075
- label: e(l)("job.form.retryCount"),
1076
- "show-feedback": !1
1077
- }, {
1078
- default: n(() => [
1079
- o(e(P), {
1080
- value: t.retryCount,
1081
- "onUpdate:value": r[23] || (r[23] = (s) => t.retryCount = s),
1082
- min: 0,
1083
- max: 10,
1084
- style: { width: "140px" }
1085
- }, null, 8, ["value"])
1086
- ]),
1087
- _: 1
1088
- }, 8, ["label"]),
1089
- o(e(d), {
1090
- label: e(l)("job.form.retryIntervalSeconds"),
1091
- "show-feedback": !1
1092
- }, {
1093
- default: n(() => [
1094
- o(e(P), {
1095
- value: t.retryIntervalSeconds,
1096
- "onUpdate:value": r[24] || (r[24] = (s) => t.retryIntervalSeconds = s),
1097
- min: 0,
1098
- style: { width: "140px" }
1099
- }, null, 8, ["value"])
1100
- ]),
1101
- _: 1
1102
- }, 8, ["label"]),
1103
- o(e(d), {
1104
- label: e(l)("job.form.failAlertThreshold"),
1105
- "show-feedback": !1
1106
- }, {
1107
- default: n(() => [
1108
- y("div", tt, [
1109
- o(e(P), {
1110
- value: t.failAlertThreshold,
1111
- "onUpdate:value": r[25] || (r[25] = (s) => t.failAlertThreshold = s),
1112
- min: 0,
1113
- style: { width: "140px" }
1114
- }, null, 8, ["value"]),
1115
- y("span", lt, u(e(l)("job.form.failAlertHint")), 1)
1116
- ])
1117
- ]),
1118
- _: 1
1119
- }, 8, ["label"]),
1120
- o(e(d), {
1121
- label: e(l)("job.form.alertByNotice"),
1122
- "show-feedback": !1
1123
- }, {
1124
- default: n(() => [
1125
- o(e(Ke), {
1126
- value: t.alertByNotice,
1127
- "onUpdate:value": r[26] || (r[26] = (s) => t.alertByNotice = s)
1128
- }, null, 8, ["value"])
1129
- ]),
1130
- _: 1
1131
- }, 8, ["label"]),
1132
- o(e(d), {
1133
- label: e(l)("job.form.alertEmails"),
1134
- "show-feedback": !1
1135
- }, {
1136
- default: n(() => [
1137
- o(e(h), {
1138
- value: t.alertEmails,
1139
- "onUpdate:value": r[27] || (r[27] = (s) => t.alertEmails = s),
1140
- placeholder: e(l)("job.form.alertEmailsPlaceholder")
1141
- }, null, 8, ["value", "placeholder"])
1122
+ }, 8, ["label"]),
1123
+ o(e(u), {
1124
+ label: e(a)("job.form.timeoutSeconds"),
1125
+ "show-feedback": !1
1126
+ }, {
1127
+ default: n(() => [
1128
+ y("div", fl, [
1129
+ o(e(M), {
1130
+ value: l.timeoutSeconds,
1131
+ "onUpdate:value": r[22] || (r[22] = (s) => l.timeoutSeconds = s),
1132
+ min: 0,
1133
+ style: { width: "140px" }
1134
+ }, null, 8, ["value"]),
1135
+ y("span", bl, d(e(a)("job.form.timeoutHint")), 1)
1136
+ ])
1137
+ ]),
1138
+ _: 1
1139
+ }, 8, ["label"]),
1140
+ o(e(u), {
1141
+ label: e(a)("job.form.retryCount"),
1142
+ "show-feedback": !1
1143
+ }, {
1144
+ default: n(() => [
1145
+ o(e(M), {
1146
+ value: l.retryCount,
1147
+ "onUpdate:value": r[23] || (r[23] = (s) => l.retryCount = s),
1148
+ min: 0,
1149
+ max: 10,
1150
+ style: { width: "140px" }
1151
+ }, null, 8, ["value"])
1152
+ ]),
1153
+ _: 1
1154
+ }, 8, ["label"]),
1155
+ o(e(u), {
1156
+ label: e(a)("job.form.retryIntervalSeconds"),
1157
+ "show-feedback": !1
1158
+ }, {
1159
+ default: n(() => [
1160
+ o(e(M), {
1161
+ value: l.retryIntervalSeconds,
1162
+ "onUpdate:value": r[24] || (r[24] = (s) => l.retryIntervalSeconds = s),
1163
+ min: 0,
1164
+ style: { width: "140px" }
1165
+ }, null, 8, ["value"])
1166
+ ]),
1167
+ _: 1
1168
+ }, 8, ["label"]),
1169
+ o(e(u), {
1170
+ label: e(a)("job.form.failAlertThreshold"),
1171
+ "show-feedback": !1
1172
+ }, {
1173
+ default: n(() => [
1174
+ y("div", hl, [
1175
+ o(e(M), {
1176
+ value: l.failAlertThreshold,
1177
+ "onUpdate:value": r[25] || (r[25] = (s) => l.failAlertThreshold = s),
1178
+ min: 0,
1179
+ style: { width: "140px" }
1180
+ }, null, 8, ["value"]),
1181
+ y("span", vl, d(e(a)("job.form.failAlertHint")), 1)
1182
+ ])
1183
+ ]),
1184
+ _: 1
1185
+ }, 8, ["label"]),
1186
+ o(e(u), {
1187
+ label: e(a)("job.form.alertByNotice"),
1188
+ "show-feedback": !1
1189
+ }, {
1190
+ default: n(() => [
1191
+ o(e(Ve), {
1192
+ value: l.alertByNotice,
1193
+ "onUpdate:value": r[26] || (r[26] = (s) => l.alertByNotice = s)
1194
+ }, null, 8, ["value"])
1195
+ ]),
1196
+ _: 1
1197
+ }, 8, ["label"]),
1198
+ o(e(u), {
1199
+ label: e(a)("job.form.alertEmails"),
1200
+ "show-feedback": !1
1201
+ }, {
1202
+ default: n(() => [
1203
+ o(e(g), {
1204
+ value: l.alertEmails,
1205
+ "onUpdate:value": r[27] || (r[27] = (s) => l.alertEmails = s),
1206
+ placeholder: e(a)("job.form.alertEmailsPlaceholder")
1207
+ }, null, 8, ["value", "placeholder"])
1208
+ ]),
1209
+ _: 1
1210
+ }, 8, ["label"])
1142
1211
  ]),
1143
1212
  _: 1
1144
- }, 8, ["label"])
1213
+ })
1145
1214
  ]),
1146
1215
  _: 1
1147
- })
1216
+ }, 8, ["name"])
1148
1217
  ]),
1149
1218
  _: 1
1150
- }, 8, ["name"])
1219
+ }, 8, ["expanded-names"])
1151
1220
  ]),
1152
1221
  _: 1
1153
- }, 8, ["expanded-names"])
1222
+ }, 8, ["model", "label-placement", "label-width"])
1154
1223
  ]),
1155
1224
  _: 1
1156
- }, 8, ["model"])
1225
+ }, 8, ["title", "closable"])
1157
1226
  ]),
1158
1227
  _: 1
1159
- }, 8, ["show", "title", "confirm-text"])
1228
+ }, 8, ["show", "placement", "class", "close-on-esc"])
1160
1229
  ], 64);
1161
1230
  };
1162
1231
  }
1163
1232
  });
1164
1233
  export {
1165
- St as default
1234
+ Bl as default
1166
1235
  };
1167
1236
  //# sourceMappingURL=index2.vue.js.map