firefly-portal-web 1.0.0

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 (354) hide show
  1. package/README.md +132 -0
  2. package/dist-lib/Empower-789f2826.mjs +94 -0
  3. package/dist-lib/Empower-789f2826.mjs.map +1 -0
  4. package/dist-lib/Empower.vue_vue_type_script_setup_true_lang-c454e7a0.mjs +134 -0
  5. package/dist-lib/Empower.vue_vue_type_script_setup_true_lang-c454e7a0.mjs.map +1 -0
  6. package/dist-lib/Field-40d74a96.mjs +94 -0
  7. package/dist-lib/Field-40d74a96.mjs.map +1 -0
  8. package/dist-lib/Field.vue_vue_type_script_setup_true_lang-e1964a74.mjs +148 -0
  9. package/dist-lib/Field.vue_vue_type_script_setup_true_lang-e1964a74.mjs.map +1 -0
  10. package/dist-lib/FieldForm-a5d4038b.mjs +93 -0
  11. package/dist-lib/FieldForm-a5d4038b.mjs.map +1 -0
  12. package/dist-lib/FieldForm.vue_vue_type_script_setup_true_lang-f92c7e23.mjs +160 -0
  13. package/dist-lib/FieldForm.vue_vue_type_script_setup_true_lang-f92c7e23.mjs.map +1 -0
  14. package/dist-lib/Form-06ee1b64.mjs +97 -0
  15. package/dist-lib/Form-06ee1b64.mjs.map +1 -0
  16. package/dist-lib/Form-15a7f801.mjs +95 -0
  17. package/dist-lib/Form-15a7f801.mjs.map +1 -0
  18. package/dist-lib/Form-465fe45d.mjs +237 -0
  19. package/dist-lib/Form-465fe45d.mjs.map +1 -0
  20. package/dist-lib/Form-6e6a6a0d.mjs +94 -0
  21. package/dist-lib/Form-6e6a6a0d.mjs.map +1 -0
  22. package/dist-lib/Form-a61f1446.mjs +93 -0
  23. package/dist-lib/Form-a61f1446.mjs.map +1 -0
  24. package/dist-lib/Form-aeafea39.mjs +93 -0
  25. package/dist-lib/Form-aeafea39.mjs.map +1 -0
  26. package/dist-lib/Form-b0b8b1f3.mjs +94 -0
  27. package/dist-lib/Form-b0b8b1f3.mjs.map +1 -0
  28. package/dist-lib/Form-b2915cd3.mjs +95 -0
  29. package/dist-lib/Form-b2915cd3.mjs.map +1 -0
  30. package/dist-lib/Form-b2ce5535.mjs +93 -0
  31. package/dist-lib/Form-b2ce5535.mjs.map +1 -0
  32. package/dist-lib/Form-ca6e92bd.mjs +421 -0
  33. package/dist-lib/Form-ca6e92bd.mjs.map +1 -0
  34. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-039f5c88.mjs +101 -0
  35. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-039f5c88.mjs.map +1 -0
  36. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-1883a047.mjs +91 -0
  37. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-1883a047.mjs.map +1 -0
  38. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-5fbc0f96.mjs +302 -0
  39. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-5fbc0f96.mjs.map +1 -0
  40. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-61497691.mjs +181 -0
  41. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-61497691.mjs.map +1 -0
  42. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-69cc4bfc.mjs +94 -0
  43. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-69cc4bfc.mjs.map +1 -0
  44. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-a3d7f865.mjs +263 -0
  45. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-a3d7f865.mjs.map +1 -0
  46. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-ae83b1bb.mjs +104 -0
  47. package/dist-lib/Form.vue_vue_type_script_setup_true_lang-ae83b1bb.mjs.map +1 -0
  48. package/dist-lib/Form.vue_vue_type_style_index_0_lang-f240a568.mjs +838 -0
  49. package/dist-lib/Form.vue_vue_type_style_index_0_lang-f240a568.mjs.map +1 -0
  50. package/dist-lib/Info-e9cb4268.mjs +747 -0
  51. package/dist-lib/Info-e9cb4268.mjs.map +1 -0
  52. package/dist-lib/Log-b1cc7014.mjs +94 -0
  53. package/dist-lib/Log-b1cc7014.mjs.map +1 -0
  54. package/dist-lib/Log.vue_vue_type_script_setup_true_lang-0ba0615b.mjs +93 -0
  55. package/dist-lib/Log.vue_vue_type_script_setup_true_lang-0ba0615b.mjs.map +1 -0
  56. package/dist-lib/Login-fc04d844.mjs +109 -0
  57. package/dist-lib/Login-fc04d844.mjs.map +1 -0
  58. package/dist-lib/LoginForm-eafdf0bc.mjs +93 -0
  59. package/dist-lib/LoginForm-eafdf0bc.mjs.map +1 -0
  60. package/dist-lib/LoginForm.vue_vue_type_script_setup_true_lang-2a241386.mjs +202 -0
  61. package/dist-lib/LoginForm.vue_vue_type_script_setup_true_lang-2a241386.mjs.map +1 -0
  62. package/dist-lib/PageExplainModal-efbb4616.mjs +140 -0
  63. package/dist-lib/PageExplainModal-efbb4616.mjs.map +1 -0
  64. package/dist-lib/Preview-531e9361.mjs +93 -0
  65. package/dist-lib/Preview-531e9361.mjs.map +1 -0
  66. package/dist-lib/Preview-6086e84b.mjs +93 -0
  67. package/dist-lib/Preview-6086e84b.mjs.map +1 -0
  68. package/dist-lib/Preview.vue_vue_type_script_setup_true_lang-0013b21d.mjs +137 -0
  69. package/dist-lib/Preview.vue_vue_type_script_setup_true_lang-0013b21d.mjs.map +1 -0
  70. package/dist-lib/Preview.vue_vue_type_script_setup_true_lang-815bfd98.mjs +67 -0
  71. package/dist-lib/Preview.vue_vue_type_script_setup_true_lang-815bfd98.mjs.map +1 -0
  72. package/dist-lib/TableAction-fcabc30c.mjs +114 -0
  73. package/dist-lib/TableAction-fcabc30c.mjs.map +1 -0
  74. package/dist-lib/UserSelect-4e259116.mjs +94 -0
  75. package/dist-lib/UserSelect-4e259116.mjs.map +1 -0
  76. package/dist-lib/UserSelect.vue_vue_type_script_setup_true_lang-aa25c5fc.mjs +282 -0
  77. package/dist-lib/UserSelect.vue_vue_type_script_setup_true_lang-aa25c5fc.mjs.map +1 -0
  78. package/dist-lib/cdn/socials/dingtalk.png +0 -0
  79. package/dist-lib/cdn/socials/feishu.png +0 -0
  80. package/dist-lib/cdn/socials/gitHub.png +0 -0
  81. package/dist-lib/cdn/socials/qq.png +0 -0
  82. package/dist-lib/cdn/socials/wechat_open.png +0 -0
  83. package/dist-lib/cdn/socials/wxWork.png +0 -0
  84. package/dist-lib/commonFields-5ff2332b.mjs +24 -0
  85. package/dist-lib/commonFields-5ff2332b.mjs.map +1 -0
  86. package/dist-lib/css/fonts/ym/iconfont.css +2419 -0
  87. package/dist-lib/css/fonts/ym/iconfont.ttf +0 -0
  88. package/dist-lib/css/fonts/ym/iconfont.woff +0 -0
  89. package/dist-lib/css/fonts/ym/iconfont.woff2 +0 -0
  90. package/dist-lib/css/fonts/ym-custom/iconfont.css +7203 -0
  91. package/dist-lib/css/fonts/ym-custom/iconfont.ttf +0 -0
  92. package/dist-lib/css/fonts/ym-custom/iconfont.woff +0 -0
  93. package/dist-lib/css/fonts/ym-custom/iconfont.woff2 +0 -0
  94. package/dist-lib/css/index.css +135 -0
  95. package/dist-lib/css/print-lock.css +352 -0
  96. package/dist-lib/emtryImg-85b013aa.mjs +5 -0
  97. package/dist-lib/emtryImg-85b013aa.mjs.map +1 -0
  98. package/dist-lib/en_US-6b59f0a7.mjs +774 -0
  99. package/dist-lib/en_US-6b59f0a7.mjs.map +1 -0
  100. package/dist-lib/favicon.ico +0 -0
  101. package/dist-lib/firefly-portal-preview.css +1 -0
  102. package/dist-lib/firefly-portal-preview.d.ts +82 -0
  103. package/dist-lib/firefly-portal-preview.es.js +92 -0
  104. package/dist-lib/firefly-portal-preview.es.js.map +1 -0
  105. package/dist-lib/firefly-portal-preview.umd.js +79 -0
  106. package/dist-lib/firefly-portal-preview.umd.js.map +1 -0
  107. package/dist-lib/formValidate-33d5595a.mjs +68 -0
  108. package/dist-lib/formValidate-33d5595a.mjs.map +1 -0
  109. package/dist-lib/index-1a090e82.mjs +173 -0
  110. package/dist-lib/index-1a090e82.mjs.map +1 -0
  111. package/dist-lib/index-28ba2ea1.mjs +154 -0
  112. package/dist-lib/index-28ba2ea1.mjs.map +1 -0
  113. package/dist-lib/index-29f92d0d.mjs +130 -0
  114. package/dist-lib/index-29f92d0d.mjs.map +1 -0
  115. package/dist-lib/index-2c2c19d4.mjs +160 -0
  116. package/dist-lib/index-2c2c19d4.mjs.map +1 -0
  117. package/dist-lib/index-2f898c1f.mjs +103 -0
  118. package/dist-lib/index-2f898c1f.mjs.map +1 -0
  119. package/dist-lib/index-3462ba0d.mjs +139 -0
  120. package/dist-lib/index-3462ba0d.mjs.map +1 -0
  121. package/dist-lib/index-3ebbb3a9.mjs +97 -0
  122. package/dist-lib/index-3ebbb3a9.mjs.map +1 -0
  123. package/dist-lib/index-436ec82c.mjs +145 -0
  124. package/dist-lib/index-436ec82c.mjs.map +1 -0
  125. package/dist-lib/index-44e8def1.mjs +267 -0
  126. package/dist-lib/index-44e8def1.mjs.map +1 -0
  127. package/dist-lib/index-47596f01.mjs +144 -0
  128. package/dist-lib/index-47596f01.mjs.map +1 -0
  129. package/dist-lib/index-5888a3a4.mjs +226 -0
  130. package/dist-lib/index-5888a3a4.mjs.map +1 -0
  131. package/dist-lib/index-58fb457c.mjs +179 -0
  132. package/dist-lib/index-58fb457c.mjs.map +1 -0
  133. package/dist-lib/index-5b8b1ba9.mjs +119766 -0
  134. package/dist-lib/index-5b8b1ba9.mjs.map +1 -0
  135. package/dist-lib/index-687fd3de.mjs +396 -0
  136. package/dist-lib/index-687fd3de.mjs.map +1 -0
  137. package/dist-lib/index-6eca8dab.mjs +135 -0
  138. package/dist-lib/index-6eca8dab.mjs.map +1 -0
  139. package/dist-lib/index-73df4468.mjs +187 -0
  140. package/dist-lib/index-73df4468.mjs.map +1 -0
  141. package/dist-lib/index-7ae97180.mjs +597 -0
  142. package/dist-lib/index-7ae97180.mjs.map +1 -0
  143. package/dist-lib/index-8374b2f2.mjs +354 -0
  144. package/dist-lib/index-8374b2f2.mjs.map +1 -0
  145. package/dist-lib/index-89a27c27.mjs +255 -0
  146. package/dist-lib/index-89a27c27.mjs.map +1 -0
  147. package/dist-lib/index-9263cd45.mjs +482 -0
  148. package/dist-lib/index-9263cd45.mjs.map +1 -0
  149. package/dist-lib/index-934ca5d0.mjs +93 -0
  150. package/dist-lib/index-934ca5d0.mjs.map +1 -0
  151. package/dist-lib/index-97081729.mjs +269 -0
  152. package/dist-lib/index-97081729.mjs.map +1 -0
  153. package/dist-lib/index-9dec931e.mjs +145 -0
  154. package/dist-lib/index-9dec931e.mjs.map +1 -0
  155. package/dist-lib/index-9fc40c89.mjs +298 -0
  156. package/dist-lib/index-9fc40c89.mjs.map +1 -0
  157. package/dist-lib/index-a57664c9.mjs +204 -0
  158. package/dist-lib/index-a57664c9.mjs.map +1 -0
  159. package/dist-lib/index-a83288bf.mjs +180 -0
  160. package/dist-lib/index-a83288bf.mjs.map +1 -0
  161. package/dist-lib/index-adf15a9e.mjs +392 -0
  162. package/dist-lib/index-adf15a9e.mjs.map +1 -0
  163. package/dist-lib/index-b5b20206.mjs +617 -0
  164. package/dist-lib/index-b5b20206.mjs.map +1 -0
  165. package/dist-lib/index-b6f446cf.mjs +92 -0
  166. package/dist-lib/index-b6f446cf.mjs.map +1 -0
  167. package/dist-lib/index-b9e3947c.mjs +156 -0
  168. package/dist-lib/index-b9e3947c.mjs.map +1 -0
  169. package/dist-lib/index-bde150fa.mjs +261 -0
  170. package/dist-lib/index-bde150fa.mjs.map +1 -0
  171. package/dist-lib/index-be097ef0.mjs +188 -0
  172. package/dist-lib/index-be097ef0.mjs.map +1 -0
  173. package/dist-lib/index-bff033bc.mjs +563 -0
  174. package/dist-lib/index-bff033bc.mjs.map +1 -0
  175. package/dist-lib/index-c4d74c6c.mjs +258 -0
  176. package/dist-lib/index-c4d74c6c.mjs.map +1 -0
  177. package/dist-lib/index-c708e214.mjs +96 -0
  178. package/dist-lib/index-c708e214.mjs.map +1 -0
  179. package/dist-lib/index-d936d570.mjs +191 -0
  180. package/dist-lib/index-d936d570.mjs.map +1 -0
  181. package/dist-lib/index-da857153.mjs +223 -0
  182. package/dist-lib/index-da857153.mjs.map +1 -0
  183. package/dist-lib/index.vue_vue_type_script_setup_true_lang-0eb8f454.mjs +136 -0
  184. package/dist-lib/index.vue_vue_type_script_setup_true_lang-0eb8f454.mjs.map +1 -0
  185. package/dist-lib/index.vue_vue_type_script_setup_true_lang-10a915e2.mjs +137 -0
  186. package/dist-lib/index.vue_vue_type_script_setup_true_lang-10a915e2.mjs.map +1 -0
  187. package/dist-lib/index.vue_vue_type_script_setup_true_lang-570dd942.mjs +131 -0
  188. package/dist-lib/index.vue_vue_type_script_setup_true_lang-570dd942.mjs.map +1 -0
  189. package/dist-lib/interfaceOauth-bb8e782e.mjs +40 -0
  190. package/dist-lib/interfaceOauth-bb8e782e.mjs.map +1 -0
  191. package/dist-lib/preview-e588e33c.mjs +194 -0
  192. package/dist-lib/preview-e588e33c.mjs.map +1 -0
  193. package/dist-lib/resource/emoji/100.gif +0 -0
  194. package/dist-lib/resource/emoji/101.gif +0 -0
  195. package/dist-lib/resource/emoji/102.gif +0 -0
  196. package/dist-lib/resource/emoji/103.gif +0 -0
  197. package/dist-lib/resource/emoji/104.gif +0 -0
  198. package/dist-lib/resource/emoji/105.gif +0 -0
  199. package/dist-lib/resource/emoji/106.gif +0 -0
  200. package/dist-lib/resource/emoji/107.gif +0 -0
  201. package/dist-lib/resource/emoji/108.gif +0 -0
  202. package/dist-lib/resource/emoji/109.gif +0 -0
  203. package/dist-lib/resource/emoji/110.gif +0 -0
  204. package/dist-lib/resource/emoji/111.gif +0 -0
  205. package/dist-lib/resource/emoji/112.gif +0 -0
  206. package/dist-lib/resource/emoji/113.gif +0 -0
  207. package/dist-lib/resource/emoji/114.gif +0 -0
  208. package/dist-lib/resource/emoji/115.gif +0 -0
  209. package/dist-lib/resource/emoji/116.gif +0 -0
  210. package/dist-lib/resource/emoji/117.gif +0 -0
  211. package/dist-lib/resource/emoji/118.gif +0 -0
  212. package/dist-lib/resource/emoji/119.gif +0 -0
  213. package/dist-lib/resource/emoji/120.gif +0 -0
  214. package/dist-lib/resource/emoji/121.gif +0 -0
  215. package/dist-lib/resource/emoji/122.gif +0 -0
  216. package/dist-lib/resource/emoji/123.gif +0 -0
  217. package/dist-lib/resource/emoji/124.gif +0 -0
  218. package/dist-lib/resource/emoji/125.gif +0 -0
  219. package/dist-lib/resource/emoji/126.gif +0 -0
  220. package/dist-lib/resource/emoji/127.gif +0 -0
  221. package/dist-lib/resource/emoji/128.gif +0 -0
  222. package/dist-lib/resource/emoji/129.gif +0 -0
  223. package/dist-lib/resource/emoji/130.gif +0 -0
  224. package/dist-lib/resource/emoji/131.gif +0 -0
  225. package/dist-lib/resource/emoji/132.gif +0 -0
  226. package/dist-lib/resource/emoji/133.gif +0 -0
  227. package/dist-lib/resource/emoji/134.gif +0 -0
  228. package/dist-lib/resource/emoji/135.gif +0 -0
  229. package/dist-lib/resource/emoji/136.gif +0 -0
  230. package/dist-lib/resource/emoji/137.gif +0 -0
  231. package/dist-lib/resource/emoji/138.gif +0 -0
  232. package/dist-lib/resource/emoji/139.gif +0 -0
  233. package/dist-lib/resource/emoji/140.gif +0 -0
  234. package/dist-lib/resource/emoji/141.gif +0 -0
  235. package/dist-lib/resource/emoji/142.gif +0 -0
  236. package/dist-lib/resource/emoji/143.gif +0 -0
  237. package/dist-lib/resource/emoji/144.gif +0 -0
  238. package/dist-lib/resource/emoji/145.gif +0 -0
  239. package/dist-lib/resource/emoji/146.gif +0 -0
  240. package/dist-lib/resource/emoji/147.gif +0 -0
  241. package/dist-lib/resource/emoji/148.gif +0 -0
  242. package/dist-lib/resource/emoji/149.gif +0 -0
  243. package/dist-lib/resource/emoji/150.gif +0 -0
  244. package/dist-lib/resource/emoji/151.gif +0 -0
  245. package/dist-lib/resource/emoji/152.gif +0 -0
  246. package/dist-lib/resource/emoji/153.gif +0 -0
  247. package/dist-lib/resource/emoji/154.gif +0 -0
  248. package/dist-lib/resource/emoji/155.gif +0 -0
  249. package/dist-lib/resource/emoji/156.gif +0 -0
  250. package/dist-lib/resource/emoji/157.gif +0 -0
  251. package/dist-lib/resource/emoji/158.gif +0 -0
  252. package/dist-lib/resource/emoji/159.gif +0 -0
  253. package/dist-lib/resource/emoji/160.gif +0 -0
  254. package/dist-lib/resource/emoji/161.gif +0 -0
  255. package/dist-lib/resource/emoji/162.gif +0 -0
  256. package/dist-lib/resource/emoji/163.gif +0 -0
  257. package/dist-lib/resource/emoji/164.gif +0 -0
  258. package/dist-lib/resource/emoji/165.gif +0 -0
  259. package/dist-lib/resource/emoji/166.gif +0 -0
  260. package/dist-lib/resource/emoji/167.gif +0 -0
  261. package/dist-lib/resource/emoji/168.gif +0 -0
  262. package/dist-lib/resource/emoji/169.gif +0 -0
  263. package/dist-lib/resource/emoji/170.gif +0 -0
  264. package/dist-lib/resource/emoji/171.gif +0 -0
  265. package/dist-lib/resource/emoji/172.gif +0 -0
  266. package/dist-lib/resource/emoji/173.gif +0 -0
  267. package/dist-lib/resource/emoji/174.gif +0 -0
  268. package/dist-lib/resource/emoji/175.gif +0 -0
  269. package/dist-lib/resource/emoji/176.gif +0 -0
  270. package/dist-lib/resource/emoji/177.gif +0 -0
  271. package/dist-lib/resource/emoji/178.gif +0 -0
  272. package/dist-lib/resource/emoji/179.gif +0 -0
  273. package/dist-lib/resource/emoji/180.gif +0 -0
  274. package/dist-lib/resource/emoji/181.gif +0 -0
  275. package/dist-lib/resource/emoji/182.gif +0 -0
  276. package/dist-lib/resource/emoji/183.gif +0 -0
  277. package/dist-lib/resource/emoji/184.gif +0 -0
  278. package/dist-lib/resource/emoji/185.gif +0 -0
  279. package/dist-lib/resource/emoji/186.gif +0 -0
  280. package/dist-lib/resource/emoji/187.gif +0 -0
  281. package/dist-lib/resource/emoji/188.gif +0 -0
  282. package/dist-lib/resource/emoji/189.gif +0 -0
  283. package/dist-lib/resource/emoji/190.gif +0 -0
  284. package/dist-lib/resource/emoji/191.gif +0 -0
  285. package/dist-lib/resource/emoji/192.gif +0 -0
  286. package/dist-lib/resource/emoji/193.gif +0 -0
  287. package/dist-lib/resource/emoji/194.gif +0 -0
  288. package/dist-lib/resource/emoji/195.gif +0 -0
  289. package/dist-lib/resource/emoji/196.gif +0 -0
  290. package/dist-lib/resource/emoji/197.gif +0 -0
  291. package/dist-lib/resource/emoji/198.gif +0 -0
  292. package/dist-lib/resource/emoji/199.gif +0 -0
  293. package/dist-lib/resource/emoji/200.png +0 -0
  294. package/dist-lib/resource/emoji/201.png +0 -0
  295. package/dist-lib/resource/emoji/202.png +0 -0
  296. package/dist-lib/resource/emoji/203.png +0 -0
  297. package/dist-lib/resource/emoji/204.png +0 -0
  298. package/dist-lib/resource/emoji/205.png +0 -0
  299. package/dist-lib/resource/emoji/206.png +0 -0
  300. package/dist-lib/resource/emoji/207.png +0 -0
  301. package/dist-lib/resource/emoji/208.png +0 -0
  302. package/dist-lib/resource/emoji/209.png +0 -0
  303. package/dist-lib/resource/emoji/210.png +0 -0
  304. package/dist-lib/resource/emoji/211.png +0 -0
  305. package/dist-lib/resource/emoji/212.png +0 -0
  306. package/dist-lib/resource/emoji/213.png +0 -0
  307. package/dist-lib/resource/emoji/214.png +0 -0
  308. package/dist-lib/resource/emoji/215.png +0 -0
  309. package/dist-lib/resource/emoji/216.png +0 -0
  310. package/dist-lib/resource/emoji/217.png +0 -0
  311. package/dist-lib/resource/emoji/218.png +0 -0
  312. package/dist-lib/resource/emoji/219.png +0 -0
  313. package/dist-lib/resource/img/logo.png +0 -0
  314. package/dist-lib/resource/img/pwa-192x192.png +0 -0
  315. package/dist-lib/resource/img/pwa-512x512.png +0 -0
  316. package/dist-lib/resource/tinymce/langs/en.js +419 -0
  317. package/dist-lib/resource/tinymce/langs/zh_CN.js +389 -0
  318. package/dist-lib/resource/tinymce/skins/ui/oxide/content.inline.min.css +7 -0
  319. package/dist-lib/resource/tinymce/skins/ui/oxide/content.min.css +7 -0
  320. package/dist-lib/resource/tinymce/skins/ui/oxide/content.mobile.min.css +7 -0
  321. package/dist-lib/resource/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
  322. package/dist-lib/resource/tinymce/skins/ui/oxide/skin.min.css +7 -0
  323. package/dist-lib/resource/tinymce/skins/ui/oxide/skin.mobile.min.css +7 -0
  324. package/dist-lib/resource/tinymce/skins/ui/oxide/skin.shadowdom.min.css +7 -0
  325. package/dist-lib/resource/tinymce/skins/ui/oxide-dark/content.inline.min.css +7 -0
  326. package/dist-lib/resource/tinymce/skins/ui/oxide-dark/content.min.css +7 -0
  327. package/dist-lib/resource/tinymce/skins/ui/oxide-dark/content.mobile.min.css +7 -0
  328. package/dist-lib/resource/tinymce/skins/ui/oxide-dark/skin.min.css +7 -0
  329. package/dist-lib/resource/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +7 -0
  330. package/dist-lib/resource/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
  331. package/dist-lib/useCommon-36969e5f.mjs +110 -0
  332. package/dist-lib/useCommon-36969e5f.mjs.map +1 -0
  333. package/dist-lib/useECharts-bb3ba984.mjs +77 -0
  334. package/dist-lib/useECharts-bb3ba984.mjs.map +1 -0
  335. package/dist-lib/useTable-99fc521a.mjs +172 -0
  336. package/dist-lib/useTable-99fc521a.mjs.map +1 -0
  337. package/dist-lib/zh_CN-5eabc04b.mjs +772 -0
  338. package/dist-lib/zh_CN-5eabc04b.mjs.map +1 -0
  339. package/dist-lib/zh_TW-ef5c69c0.mjs +774 -0
  340. package/dist-lib/zh_TW-ef5c69c0.mjs.map +1 -0
  341. package/package.json +247 -0
  342. package/src/components/PortalPreview/__tests__/index.spec.ts +258 -0
  343. package/src/components/PortalPreview/fonts/ym/iconfont.css +2419 -0
  344. package/src/components/PortalPreview/fonts/ym/iconfont.ttf +0 -0
  345. package/src/components/PortalPreview/fonts/ym/iconfont.woff +0 -0
  346. package/src/components/PortalPreview/fonts/ym/iconfont.woff2 +0 -0
  347. package/src/components/PortalPreview/fonts/ym-custom/iconfont.css +7203 -0
  348. package/src/components/PortalPreview/fonts/ym-custom/iconfont.ttf +0 -0
  349. package/src/components/PortalPreview/fonts/ym-custom/iconfont.woff +0 -0
  350. package/src/components/PortalPreview/fonts/ym-custom/iconfont.woff2 +0 -0
  351. package/src/components/PortalPreview/index.ts +31 -0
  352. package/src/components/PortalPreview/index.vue +329 -0
  353. package/src/components/PortalPreview/style/overrides.css +15 -0
  354. package/src/components/PortalPreview/types.ts +61 -0
@@ -0,0 +1,181 @@
1
+ import { defineComponent as I, reactive as R, toRefs as U, resolveComponent as P, openBlock as d, createBlock as m, unref as a, mergeProps as B, withCtx as p, createTextVNode as O, createCommentVNode as _, createVNode as $ } from "vue";
2
+ import { n as j, o as A, p as W, q as z, r as D, h as E, s as G, t as H, v as J, m as K } from "./index-5b8b1ba9.mjs";
3
+ import "@vueuse/core";
4
+ import { f as Q } from "./formValidate-33d5595a.mjs";
5
+ const oe = /* @__PURE__ */ I({
6
+ __name: "Form",
7
+ emits: ["register", "reload", "design"],
8
+ setup(X, { emit: C }) {
9
+ const { t: c } = E(), k = (e, o) => {
10
+ var r;
11
+ return o && ((r = h()) == null ? void 0 : r.linkType) == 1 && !G(o) ? Promise.reject("请输入正确的链接地址") : Promise.resolve();
12
+ }, t = R({
13
+ dataForm: {
14
+ type: 0
15
+ },
16
+ btnLoading: !1
17
+ }), { dataForm: u, btnLoading: T } = U(t), { createMessage: M } = K(), g = C, [V, { closeModal: w, changeLoading: n, changeOkLoading: l }] = j(N), [x, { setFieldsValue: f, getFieldsValue: h, resetFields: L, validate: S, clearValidate: v, updateSchema: b }] = A({
18
+ labelWidth: 100,
19
+ schemas: [
20
+ {
21
+ field: "fullName",
22
+ label: "名称",
23
+ component: "Input",
24
+ componentProps: { placeholder: "请输入", maxlength: 100 },
25
+ rules: [{ required: !0, trigger: "blur", message: "必填" }]
26
+ },
27
+ {
28
+ field: "enCode",
29
+ label: "编码",
30
+ component: "Input",
31
+ componentProps: { placeholder: "请输入", maxlength: 50 },
32
+ rules: [
33
+ { required: !0, trigger: "blur", message: "必填" },
34
+ { validator: Q("enCode"), trigger: "blur" }
35
+ ]
36
+ },
37
+ {
38
+ field: "category",
39
+ label: "分类",
40
+ component: "Select",
41
+ componentProps: { placeholder: "请选择", showSearch: !0 },
42
+ rules: [{ required: !0, trigger: "change", message: "必填" }]
43
+ },
44
+ {
45
+ field: "type",
46
+ label: "类型",
47
+ defaultValue: 0,
48
+ component: "Radio",
49
+ componentProps: {
50
+ options: [
51
+ { id: 0, fullName: "门户设计" },
52
+ { id: 1, fullName: "配置路径" }
53
+ ],
54
+ optionType: "button",
55
+ buttonStyle: "solid",
56
+ onChange: q
57
+ },
58
+ rules: [{ required: !0, trigger: "change", message: "必填", type: "number" }]
59
+ },
60
+ {
61
+ ifShow: ({ values: e }) => e.type === 1,
62
+ field: "linkType",
63
+ label: "链接类型",
64
+ defaultValue: 0,
65
+ component: "Radio",
66
+ componentProps: {
67
+ options: [
68
+ { id: 0, fullName: "页面" },
69
+ { id: 1, fullName: "外链" }
70
+ ],
71
+ optionType: "button",
72
+ buttonStyle: "solid",
73
+ onChange: s
74
+ },
75
+ rules: [{ required: !0, trigger: "change", message: "必填", type: "number" }]
76
+ },
77
+ {
78
+ ifShow: ({ values: e }) => e.type === 1,
79
+ field: "customUrl",
80
+ label: "链接地址",
81
+ component: "Input",
82
+ componentProps: { placeholder: "请输入" },
83
+ helpMessage: "链接类型选择页面,只支持PC显示,不支持APP显示。",
84
+ rules: [
85
+ { required: !0, trigger: "blur", message: "必填" },
86
+ { validator: k, trigger: "blur" }
87
+ ]
88
+ },
89
+ {
90
+ ifShow: ({ values: e }) => e.type === 0,
91
+ field: "enabledLock",
92
+ label: "锁定",
93
+ component: "Switch",
94
+ defaultValue: 1,
95
+ helpMessage: "启用:不允许拖拽移动控件;禁用:允许用户在PC门户上拖拽大小及移动控件。"
96
+ },
97
+ {
98
+ field: "sortCode",
99
+ label: "排序",
100
+ defaultValue: 0,
101
+ component: "InputNumber",
102
+ componentProps: { min: 0, max: 999999 }
103
+ },
104
+ {
105
+ field: "description",
106
+ label: "说明 ",
107
+ component: "Textarea",
108
+ componentProps: { placeholder: "请输入" }
109
+ }
110
+ ]
111
+ });
112
+ function N(e) {
113
+ L(), t.dataForm.id = e.id || "", b([{ field: "category", componentProps: { options: e.categoryList || [] } }]), t.dataForm.type = 0, t.dataForm.id && (n(!0), W(t.dataForm.id).then((o) => {
114
+ t.dataForm = o.data, s(t.dataForm.linkType), f(t.dataForm), n(!1);
115
+ }).catch(() => {
116
+ n(!1);
117
+ }));
118
+ }
119
+ function s(e) {
120
+ b([
121
+ { field: "customUrl", componentProps: { addonBefore: e === 0 ? "@/views/" : "" }, helpMessage: e === 1 ? "地址以http://或https://为开头" : "" }
122
+ ]), f({ customUrl: "" }), v("customUrl");
123
+ }
124
+ function q(e) {
125
+ var o;
126
+ t.dataForm.type = e, s((o = h()) == null ? void 0 : o.linkType);
127
+ }
128
+ async function y(e) {
129
+ const o = await S();
130
+ if (!o)
131
+ return;
132
+ e === 1 ? t.btnLoading = !0 : l(!0);
133
+ const r = {
134
+ ...o,
135
+ id: t.dataForm.id
136
+ };
137
+ (t.dataForm.id ? H : J)(r).then((i) => {
138
+ M.success(i.msg), l(!1), t.btnLoading = !1, w(), g("reload"), t.dataForm.id || (t.dataForm.id = i.data), e == 1 && g("design", { ...o, id: t.dataForm.id });
139
+ }).catch(() => {
140
+ l(!1), t.btnLoading = !1;
141
+ });
142
+ }
143
+ return (e, o) => {
144
+ const r = P("a-alert"), F = P("a-button");
145
+ return d(), m(a(z), B(e.$attrs, {
146
+ onRegister: a(V),
147
+ title: t.dataForm.id ? a(c)("common.editText") : a(c)("common.addText"),
148
+ onOk: y
149
+ }), {
150
+ appendFooter: p(() => [
151
+ a(u).type === 0 ? (d(), m(F, {
152
+ key: 0,
153
+ type: "primary",
154
+ loading: a(T),
155
+ onClick: o[0] || (o[0] = (i) => y(1))
156
+ }, {
157
+ default: p(() => [
158
+ O("确定并设计")
159
+ ]),
160
+ _: 1
161
+ }, 8, ["loading"])) : _("", !0)
162
+ ]),
163
+ default: p(() => [
164
+ a(u).id ? _("", !0) : (d(), m(r, {
165
+ key: 0,
166
+ message: "新建成功后,前往【系统管理】>【应用菜单】中添加应用门户并授权。",
167
+ type: "warning",
168
+ "show-icon": "",
169
+ class: "!mb-20px"
170
+ })),
171
+ $(a(D), { onRegister: a(x) }, null, 8, ["onRegister"])
172
+ ]),
173
+ _: 1
174
+ }, 16, ["onRegister", "title"]);
175
+ };
176
+ }
177
+ });
178
+ export {
179
+ oe as _
180
+ };
181
+ //# sourceMappingURL=Form.vue_vue_type_script_setup_true_lang-61497691.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.vue_vue_type_script_setup_true_lang-61497691.mjs","sources":["../src/views/basic/home/Form.vue"],"sourcesContent":["<template>\r\n <BasicModal v-bind=\"$attrs\" @register=\"registerModal\" :title=\"state.dataForm.id ? t('common.editText') : t('common.addText')\" @ok=\"handleSubmit\">\r\n <a-alert message=\"新建成功后,前往【系统管理】>【应用菜单】中添加应用门户并授权。\" type=\"warning\" show-icon v-if=\"!dataForm.id\" class=\"!mb-20px\" />\r\n <BasicForm @register=\"registerForm\" />\r\n <template #appendFooter>\r\n <a-button type=\"primary\" :loading=\"btnLoading\" @click=\"handleSubmit(1)\" v-if=\"dataForm.type === 0\">确定并设计</a-button>\r\n </template>\r\n </BasicModal>\r\n</template>\r\n<script lang=\"ts\" setup>\r\n import { toRefs, reactive } from 'vue';\r\n import { BasicModal, useModalInner } from '@/components/Modal';\r\n import { BasicForm, useForm } from '@/components/Form';\r\n import formValidate from '@/utils/formValidate';\r\n import { getInfo, updatePortal, createPortal } from '@/api/onlineDev/portal';\r\n import { useMessage } from '@/hooks/web/useMessage';\r\n import { isUrl } from '@/utils/is';\r\n import { useI18n } from '@/hooks/web/useI18n';\r\n\r\n const { t } = useI18n();\r\n const validateUrl = (_rule, value) => {\r\n if (value && getFieldsValue()?.linkType == 1 && !isUrl(value)) return Promise.reject('请输入正确的链接地址');\r\n return Promise.resolve();\r\n };\r\n\r\n interface State {\r\n dataForm: any;\r\n btnLoading: boolean;\r\n }\r\n\r\n const state = reactive<State>({\r\n dataForm: {\r\n type: 0,\r\n },\r\n btnLoading: false,\r\n });\r\n const { dataForm, btnLoading } = toRefs(state);\r\n const { createMessage } = useMessage();\r\n const emit = defineEmits(['register', 'reload', 'design']);\r\n const [registerModal, { closeModal, changeLoading, changeOkLoading }] = useModalInner(init);\r\n const [registerForm, { setFieldsValue, getFieldsValue, resetFields, validate, clearValidate, updateSchema }] = useForm({\r\n labelWidth: 100,\r\n schemas: [\r\n {\r\n field: 'fullName',\r\n label: '名称',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入', maxlength: 100 },\r\n rules: [{ required: true, trigger: 'blur', message: '必填' }],\r\n },\r\n {\r\n field: 'enCode',\r\n label: '编码',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入', maxlength: 50 },\r\n rules: [\r\n { required: true, trigger: 'blur', message: '必填' },\r\n { validator: formValidate('enCode'), trigger: 'blur' },\r\n ],\r\n },\r\n {\r\n field: 'category',\r\n label: '分类',\r\n component: 'Select',\r\n componentProps: { placeholder: '请选择', showSearch: true },\r\n rules: [{ required: true, trigger: 'change', message: '必填' }],\r\n },\r\n {\r\n field: 'type',\r\n label: '类型',\r\n defaultValue: 0,\r\n component: 'Radio',\r\n componentProps: {\r\n options: [\r\n { id: 0, fullName: '门户设计' },\r\n { id: 1, fullName: '配置路径' },\r\n ],\r\n optionType: 'button',\r\n buttonStyle: 'solid',\r\n onChange: onTypeChange,\r\n },\r\n rules: [{ required: true, trigger: 'change', message: '必填', type: 'number' }],\r\n },\r\n {\r\n ifShow: ({ values }) => values.type === 1,\r\n field: 'linkType',\r\n label: '链接类型',\r\n defaultValue: 0,\r\n component: 'Radio',\r\n componentProps: {\r\n options: [\r\n { id: 0, fullName: '页面' },\r\n { id: 1, fullName: '外链' },\r\n ],\r\n optionType: 'button',\r\n buttonStyle: 'solid',\r\n onChange: onLinkTypeChange,\r\n },\r\n rules: [{ required: true, trigger: 'change', message: '必填', type: 'number' }],\r\n },\r\n {\r\n ifShow: ({ values }) => values.type === 1,\r\n field: 'customUrl',\r\n label: '链接地址',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入' },\r\n helpMessage: '链接类型选择页面,只支持PC显示,不支持APP显示。',\r\n rules: [\r\n { required: true, trigger: 'blur', message: '必填' },\r\n { validator: validateUrl, trigger: 'blur' },\r\n ],\r\n },\r\n {\r\n ifShow: ({ values }) => values.type === 0,\r\n field: 'enabledLock',\r\n label: '锁定',\r\n component: 'Switch',\r\n defaultValue: 1,\r\n helpMessage: '启用:不允许拖拽移动控件;禁用:允许用户在PC门户上拖拽大小及移动控件。',\r\n },\r\n {\r\n field: 'sortCode',\r\n label: '排序',\r\n defaultValue: 0,\r\n component: 'InputNumber',\r\n componentProps: { min: 0, max: 999999 },\r\n },\r\n {\r\n field: 'description',\r\n label: '说明 ',\r\n component: 'Textarea',\r\n componentProps: { placeholder: '请输入' },\r\n },\r\n ],\r\n });\r\n\r\n function init(data) {\r\n resetFields();\r\n state.dataForm.id = data.id || '';\r\n updateSchema([{ field: 'category', componentProps: { options: data.categoryList || [] } }]);\r\n state.dataForm.type = 0;\r\n if (state.dataForm.id) {\r\n changeLoading(true);\r\n getInfo(state.dataForm.id)\r\n .then(res => {\r\n state.dataForm = res.data;\r\n onLinkTypeChange(state.dataForm.linkType);\r\n setFieldsValue(state.dataForm);\r\n changeLoading(false);\r\n })\r\n .catch(() => {\r\n changeLoading(false);\r\n });\r\n }\r\n }\r\n function onLinkTypeChange(val) {\r\n updateSchema([\r\n { field: 'customUrl', componentProps: { addonBefore: val === 0 ? '@/views/' : '' }, helpMessage: val === 1 ? '地址以http://或https://为开头' : '' },\r\n ]);\r\n setFieldsValue({ customUrl: '' });\r\n clearValidate('customUrl');\r\n }\r\n function onTypeChange(val) {\r\n state.dataForm.type = val;\r\n onLinkTypeChange(getFieldsValue()?.linkType);\r\n }\r\n async function handleSubmit(type?) {\r\n const values = await validate();\r\n if (!values) return;\r\n type === 1 ? (state.btnLoading = true) : changeOkLoading(true);\r\n const query = {\r\n ...values,\r\n id: state.dataForm.id,\r\n };\r\n const formMethod = state.dataForm.id ? updatePortal : createPortal;\r\n formMethod(query)\r\n .then(res => {\r\n createMessage.success(res.msg);\r\n changeOkLoading(false);\r\n state.btnLoading = false;\r\n closeModal();\r\n emit('reload');\r\n if (!state.dataForm.id) state.dataForm.id = res.data;\r\n if (type == 1) emit('design', { ...values, id: state.dataForm.id });\r\n })\r\n .catch(() => {\r\n changeOkLoading(false);\r\n state.btnLoading = false;\r\n });\r\n }\r\n</script>\r\n"],"names":["t","useI18n","validateUrl","_rule","value","_a","getFieldsValue","isUrl","state","reactive","dataForm","btnLoading","toRefs","createMessage","useMessage","emit","__emit","registerModal","closeModal","changeLoading","changeOkLoading","useModalInner","init","registerForm","setFieldsValue","resetFields","validate","clearValidate","updateSchema","useForm","formValidate","onTypeChange","values","onLinkTypeChange","data","getInfo","res","val","handleSubmit","type","query","updatePortal","createPortal"],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import { defineComponent as M, reactive as F, computed as b, openBlock as T, createBlock as $, unref as n, mergeProps as k, withCtx as q, createVNode as v } from "vue";
2
+ import { a3 as r, h as B, o as R, n as w, q as C, r as L, m as P } from "./index-5b8b1ba9.mjs";
3
+ import "@vueuse/core";
4
+ function W(e) {
5
+ return r.get({ url: `/api/system/DataInterfaceVariate/${e.id}`, data: e });
6
+ }
7
+ function A(e) {
8
+ return r.post({ url: "/api/system/DataInterfaceVariate", data: e });
9
+ }
10
+ function N(e) {
11
+ return r.put({ url: "/api/system/DataInterfaceVariate/" + e.id, data: e });
12
+ }
13
+ function O(e) {
14
+ return r.get({ url: `/api/system/DataInterfaceVariate/${e}/Info` });
15
+ }
16
+ function j(e) {
17
+ return r.delete({ url: "/api/system/DataInterfaceVariate/" + e });
18
+ }
19
+ function z(e) {
20
+ return r.post({ url: `/api/system/DataInterfaceVariate/${e}/Actions/Copy` });
21
+ }
22
+ function G(e) {
23
+ return r.get({ url: `/api/system/DataInterfaceVariate/${e}/Actions/Export` });
24
+ }
25
+ const K = /* @__PURE__ */ M({
26
+ __name: "Form",
27
+ emits: ["register", "reload"],
28
+ setup(e, { emit: u }) {
29
+ const t = F({
30
+ id: "",
31
+ interfaceId: "",
32
+ dataForm: {}
33
+ }), l = [
34
+ {
35
+ field: "fullName",
36
+ label: "变量名",
37
+ component: "Input",
38
+ componentProps: { placeholder: "请输入", maxlength: 50 },
39
+ rules: [{ required: !0, message: "必填", trigger: "blur" }]
40
+ },
41
+ {
42
+ field: "expression",
43
+ label: "JS表达式",
44
+ component: "Textarea",
45
+ componentProps: { placeholder: "请输入", rows: 4 },
46
+ rules: [{ required: !0, message: "必填", trigger: "blur" }]
47
+ }
48
+ ], d = b(() => t.id ? c("common.editText") : c("common.addText")), m = u, { createMessage: f } = P(), { t: c } = B(), [p, { validate: g, resetFields: h, setFieldsValue: I }] = R({ labelWidth: 80, schemas: l }), [y, { closeModal: x, changeLoading: o, changeOkLoading: i }] = w(V);
49
+ function V(a) {
50
+ h(), t.interfaceId = a.interfaceId, t.id = a.id, t.id && (o(!0), O(t.id).then((s) => {
51
+ I(s.data), o(!1);
52
+ }).catch(() => {
53
+ o(!1);
54
+ }));
55
+ }
56
+ async function _() {
57
+ const a = await g();
58
+ if (!a)
59
+ return;
60
+ i(!0);
61
+ const s = {
62
+ ...a,
63
+ id: t.id,
64
+ interfaceId: t.interfaceId
65
+ };
66
+ (t.id ? N : A)(s).then((D) => {
67
+ f.success(D.msg), i(!1), x(), setTimeout(() => {
68
+ m("reload");
69
+ }, 200);
70
+ }).catch(() => {
71
+ i(!1);
72
+ });
73
+ }
74
+ return (a, s) => (T(), $(n(C), k(a.$attrs, {
75
+ onRegister: n(y),
76
+ title: d.value,
77
+ onOk: _,
78
+ "destroy-on-close": ""
79
+ }), {
80
+ default: q(() => [
81
+ v(n(L), { onRegister: n(p) }, null, 8, ["onRegister"])
82
+ ]),
83
+ _: 1
84
+ }, 16, ["onRegister", "title"]));
85
+ }
86
+ });
87
+ export {
88
+ K as _,
89
+ z as c,
90
+ j as d,
91
+ G as e,
92
+ W as g
93
+ };
94
+ //# sourceMappingURL=Form.vue_vue_type_script_setup_true_lang-69cc4bfc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.vue_vue_type_script_setup_true_lang-69cc4bfc.mjs","sources":["../src/api/systemData/variate.ts","../src/views/systemData/dataInterface/components/variable/Form.vue"],"sourcesContent":["import { defHttp } from '@/utils/http/axios';\r\n\r\nenum Api {\r\n Prefix = '/api/system/DataInterfaceVariate',\r\n}\r\n// 获取变量列表\r\nexport function getList(data) {\r\n return defHttp.get({ url: Api.Prefix + `/${data.id}`, data });\r\n}\r\n// 新增变量\r\nexport function create(data) {\r\n return defHttp.post({ url: Api.Prefix, data });\r\n}\r\n// 修改变量\r\nexport function update(data) {\r\n return defHttp.put({ url: Api.Prefix + '/' + data.id, data });\r\n}\r\n// 获取变量\r\nexport function getInfo(id) {\r\n return defHttp.get({ url: Api.Prefix + `/${id}/Info` });\r\n}\r\n// 删除变量\r\nexport function del(id) {\r\n return defHttp.delete({ url: Api.Prefix + '/' + id });\r\n}\r\n// 复制变量\r\nexport function copy(id) {\r\n return defHttp.post({ url: Api.Prefix + `/${id}/Actions/Copy` });\r\n}\r\n// 导出变量\r\nexport function exportData(id) {\r\n return defHttp.get({ url: Api.Prefix + `/${id}/Actions/Export` });\r\n}\r\n// 获取变量\r\nexport function getVariateSelector() {\r\n return defHttp.get({ url: Api.Prefix + `/Selector` });\r\n}\r\n","<template>\r\n <BasicModal v-bind=\"$attrs\" @register=\"registerModal\" :title=\"getTitle\" @ok=\"handleSubmit\" destroy-on-close>\r\n <BasicForm @register=\"registerForm\" />\r\n </BasicModal>\r\n</template>\r\n<script lang=\"ts\" setup>\r\n import { computed, reactive } from 'vue';\r\n import { BasicModal, useModalInner } from '@/components/Modal';\r\n import { BasicForm, useForm, FormSchema } from '@/components/Form';\r\n import { useMessage } from '@/hooks/web/useMessage';\r\n import { create, update, getInfo } from '@/api/systemData/variate';\r\n import { useI18n } from '@/hooks/web/useI18n';\r\n\r\n interface State {\r\n id: string;\r\n interfaceId: string;\r\n dataForm: any;\r\n }\r\n\r\n const state = reactive<State>({\r\n id: '',\r\n interfaceId: '',\r\n dataForm: {},\r\n });\r\n const schemas: FormSchema[] = [\r\n {\r\n field: 'fullName',\r\n label: '变量名',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入', maxlength: 50 },\r\n rules: [{ required: true, message: '必填', trigger: 'blur' }],\r\n },\r\n {\r\n field: 'expression',\r\n label: 'JS表达式',\r\n component: 'Textarea',\r\n componentProps: { placeholder: '请输入', rows: 4 },\r\n rules: [{ required: true, message: '必填', trigger: 'blur' }],\r\n },\r\n ];\r\n const getTitle = computed(() => (!state.id ? t('common.addText') : t('common.editText')));\r\n const emit = defineEmits(['register', 'reload']);\r\n const { createMessage } = useMessage();\r\n const { t } = useI18n();\r\n const [registerForm, { validate, resetFields, setFieldsValue }] = useForm({ labelWidth: 80, schemas: schemas });\r\n const [registerModal, { closeModal, changeLoading, changeOkLoading }] = useModalInner(init);\r\n\r\n function init(data) {\r\n resetFields();\r\n state.interfaceId = data.interfaceId;\r\n state.id = data.id;\r\n if (state.id) {\r\n changeLoading(true);\r\n getInfo(state.id)\r\n .then(res => {\r\n setFieldsValue(res.data);\r\n changeLoading(false);\r\n })\r\n .catch(() => {\r\n changeLoading(false);\r\n });\r\n }\r\n }\r\n async function handleSubmit() {\r\n const values = await validate();\r\n if (!values) return;\r\n changeOkLoading(true);\r\n const query = {\r\n ...values,\r\n id: state.id,\r\n interfaceId: state.interfaceId,\r\n };\r\n const formMethod = state.id ? update : create;\r\n formMethod(query)\r\n .then(res => {\r\n createMessage.success(res.msg);\r\n changeOkLoading(false);\r\n closeModal();\r\n setTimeout(() => {\r\n emit('reload');\r\n }, 200);\r\n })\r\n .catch(() => {\r\n changeOkLoading(false);\r\n });\r\n }\r\n</script>\r\n"],"names":["getList","data","defHttp","create","update","getInfo","id","del","copy","exportData","state","reactive","schemas","getTitle","computed","t","emit","__emit","createMessage","useMessage","useI18n","registerForm","validate","resetFields","setFieldsValue","useForm","registerModal","closeModal","changeLoading","changeOkLoading","useModalInner","init","res","handleSubmit","values","query"],"mappings":"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"}
@@ -0,0 +1,263 @@
1
+ import { defineComponent as F, ref as U, reactive as Y, toRefs as $, computed as H, unref as o, resolveComponent as K, openBlock as d, createBlock as i, mergeProps as j, withCtx as p, createVNode as T, createCommentVNode as k, createElementVNode as N } from "vue";
2
+ import { a as W, h as z, o as G, n as J, A as X, aj as Z, q as ee, r as ae, ak as te, al as oe, am as re, m as le } from "./index-5b8b1ba9.mjs";
3
+ import "@vueuse/core";
4
+ import { LoadingOutlined as x } from "@ant-design/icons-vue";
5
+ const pe = /* @__PURE__ */ F({
6
+ __name: "Form",
7
+ emits: ["register", "reload"],
8
+ setup(ne, { emit: L }) {
9
+ const l = U(""), P = W(), n = Y({
10
+ testLoading: !1,
11
+ dbType: ""
12
+ }), { testLoading: f, dbType: u } = $(n), C = [
13
+ {
14
+ field: "dbType",
15
+ label: "连接驱动",
16
+ component: "Select",
17
+ componentProps: { placeholder: "请选择", fieldNames: { label: "fullName", value: "enCode" }, onChange: Q },
18
+ rules: [{ required: !0, trigger: "change", message: "必填" }]
19
+ },
20
+ {
21
+ field: "fullName",
22
+ label: "连接名称",
23
+ component: "Input",
24
+ componentProps: { placeholder: "请输入", maxlength: 50 },
25
+ rules: [{ required: !0, trigger: "blur", message: "必填" }]
26
+ },
27
+ {
28
+ field: "host",
29
+ label: "主机地址",
30
+ component: "Input",
31
+ componentProps: { placeholder: "请输入" },
32
+ rules: [{ required: !0, trigger: "blur", message: "必填" }]
33
+ },
34
+ {
35
+ field: "port",
36
+ label: "端口",
37
+ component: "Input",
38
+ componentProps: { placeholder: "请输入" },
39
+ rules: [
40
+ { required: !0, trigger: "blur", message: "必填" },
41
+ { pattern: /^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/, message: "请输入正确的端口号", trigger: "blur" }
42
+ ]
43
+ },
44
+ {
45
+ field: "userName",
46
+ label: "用户",
47
+ component: "Input",
48
+ componentProps: { placeholder: "请输入" },
49
+ rules: [{ required: !0, trigger: "blur", message: "必填" }]
50
+ },
51
+ {
52
+ field: "password",
53
+ label: "密码",
54
+ component: "InputPassword",
55
+ componentProps: { placeholder: "请输入" },
56
+ rules: [{ required: !0, trigger: "blur", message: "必填" }]
57
+ },
58
+ {
59
+ ifShow: ({ values: e }) => e.dbType === "MySQL" || e.dbType === "SQLServer" || e.dbType === "PostgreSQL" || e.dbType === "KingbaseES",
60
+ field: "serviceName",
61
+ label: "库名",
62
+ component: "Input",
63
+ slot: "serviceName",
64
+ rules: [{ required: !0, trigger: "blur", message: "必填" }]
65
+ },
66
+ {
67
+ ifShow: ({ values: e }) => e.dbType && e.dbType !== "MySQL",
68
+ field: "dbSchema",
69
+ label: "模式",
70
+ component: "InputSearch",
71
+ slot: "dbSchema"
72
+ },
73
+ {
74
+ ifShow: ({ values: e }) => e.dbType === "Oracle",
75
+ field: "oracleExtend",
76
+ label: "更多",
77
+ component: "Switch",
78
+ defaultValue: 0
79
+ },
80
+ {
81
+ ifShow: ({ values: e }) => e.dbType === "Oracle" && !!e.oracleExtend,
82
+ field: "oracleLinkType",
83
+ label: "连接方式",
84
+ component: "Select",
85
+ componentProps: {
86
+ placeholder: "请选择",
87
+ options: [
88
+ { fullName: "SERVICE", id: "SERVICE" },
89
+ { fullName: "SID", id: "SID" },
90
+ { fullName: "SCHEMA", id: "SCHEMA" },
91
+ { fullName: "TNS", id: "TNS" }
92
+ ]
93
+ }
94
+ },
95
+ {
96
+ ifShow: ({ values: e }) => e.dbType === "Oracle" && !!e.oracleExtend,
97
+ field: "oracleRole",
98
+ label: "角色",
99
+ component: "Select",
100
+ componentProps: {
101
+ placeholder: "请选择",
102
+ options: [
103
+ { fullName: "Default", id: "Default" },
104
+ { fullName: "SYSDBA", id: "SYSDBA" },
105
+ { fullName: "SYSOPER", id: "SYSOPER" }
106
+ ]
107
+ }
108
+ },
109
+ {
110
+ ifShow: ({ values: e }) => e.dbType === "Oracle" && !!e.oracleExtend,
111
+ field: "oracleService",
112
+ label: "服务名",
113
+ component: "Input",
114
+ componentProps: { placeholder: "请输入" }
115
+ },
116
+ {
117
+ field: "sortCode",
118
+ label: "排序",
119
+ component: "InputNumber",
120
+ defaultValue: 0,
121
+ componentProps: { min: "0", max: "999999", placeholder: "请输入" }
122
+ }
123
+ ], D = H(() => o(l) ? S("common.editText") : S("common.addText")), I = L, { createMessage: g } = le(), { t: S } = z(), [M, { setFieldsValue: h, validate: y, clearValidate: O, resetFields: A, updateSchema: E }] = G({ labelWidth: 80, schemas: C }), [B, { closeModal: _, changeLoading: v, changeOkLoading: m }] = J(q), b = new X({ useHex: !0 });
124
+ function q(e) {
125
+ n.testLoading = !1, A(), V(), l.value = e.id || 0, E({ field: "dbType", componentProps: { disabled: !!o(l) } }), l.value && (v(!0), Z(l.value).then((a) => {
126
+ const t = a.data;
127
+ t.oracleExtend = t.oracleExtend ? 1 : 0, t.password = b.decryptByAES(t.password), n.dbType = t.dbType, h(t), v(!1);
128
+ }));
129
+ }
130
+ async function R() {
131
+ const e = await y();
132
+ if (!e)
133
+ return;
134
+ m(!0), e.oracleExtend = !!e.oracleExtend;
135
+ const a = {
136
+ ...e,
137
+ id: l.value,
138
+ password: b.encryptByAES(e.password)
139
+ };
140
+ (l.value ? te : oe)(a).then((r) => {
141
+ g.success(r.msg), m(!1), _(), I("reload");
142
+ }).catch(() => {
143
+ m(!1);
144
+ });
145
+ }
146
+ async function V() {
147
+ const e = await P.getDictionaryData("dbType");
148
+ E({ field: "dbType", componentProps: { options: e } });
149
+ }
150
+ async function w() {
151
+ const e = await y();
152
+ if (!e)
153
+ return;
154
+ n.testLoading = !0, e.oracleExtend = !!e.oracleExtend;
155
+ const a = {
156
+ ...e,
157
+ id: l.value,
158
+ password: b.encryptByAES(e.password)
159
+ };
160
+ re(a).then((t) => {
161
+ g.success(t.msg), n.testLoading = !1;
162
+ }).catch(() => {
163
+ n.testLoading = !1;
164
+ });
165
+ }
166
+ function Q(e) {
167
+ n.dbType = e;
168
+ let a = "", t = "";
169
+ switch (e) {
170
+ case "SQLServer":
171
+ a = "1433", t = "dbo";
172
+ break;
173
+ case "MySQL":
174
+ a = "3306";
175
+ break;
176
+ case "Oracle":
177
+ a = "1521";
178
+ break;
179
+ case "DM":
180
+ a = "5236";
181
+ break;
182
+ case "KingbaseES":
183
+ a = "54321", t = "public";
184
+ break;
185
+ case "PostgreSQL":
186
+ a = "5432", t = "public";
187
+ break;
188
+ default:
189
+ a = "";
190
+ break;
191
+ }
192
+ h({ port: a, dbSchema: t }), O();
193
+ }
194
+ return (e, a) => {
195
+ const t = K("a-input");
196
+ return d(), i(o(ee), j(e.$attrs, {
197
+ onRegister: o(B),
198
+ title: D.value,
199
+ showOkBtn: "",
200
+ onOk: R
201
+ }), {
202
+ default: p(() => [
203
+ T(o(ae), { onRegister: o(M) }, {
204
+ dbSchema: p(({ model: r, field: s }) => [
205
+ T(t, {
206
+ value: r[s],
207
+ "onUpdate:value": (c) => r[s] = c,
208
+ allowClear: "",
209
+ placeholder: o(u) === "Oracle" || o(u) === "DM" ? "与用户同名" : "",
210
+ disabled: o(u) !== "KingbaseES"
211
+ }, {
212
+ addonAfter: p(() => [
213
+ o(f) ? (d(), i(o(x), {
214
+ key: 0,
215
+ class: "mr-5px"
216
+ })) : k("", !0),
217
+ N("span", {
218
+ class: "cursor-pointer",
219
+ onClick: a[0] || (a[0] = (c) => w())
220
+ }, "连接测试")
221
+ ]),
222
+ _: 2
223
+ }, 1032, ["value", "onUpdate:value", "placeholder", "disabled"])
224
+ ]),
225
+ serviceName: p(({ model: r, field: s }) => [
226
+ o(u) === "MySQL" ? (d(), i(t, {
227
+ key: 0,
228
+ value: r[s],
229
+ "onUpdate:value": (c) => r[s] = c,
230
+ allowClear: "",
231
+ placeholder: "库名"
232
+ }, {
233
+ addonAfter: p(() => [
234
+ o(f) ? (d(), i(o(x), {
235
+ key: 0,
236
+ class: "mr-5px"
237
+ })) : k("", !0),
238
+ N("span", {
239
+ class: "cursor-pointer",
240
+ onClick: a[1] || (a[1] = (c) => w())
241
+ }, "连接测试")
242
+ ]),
243
+ _: 2
244
+ }, 1032, ["value", "onUpdate:value"])) : (d(), i(t, {
245
+ key: 1,
246
+ value: r[s],
247
+ "onUpdate:value": (c) => r[s] = c,
248
+ allowClear: "",
249
+ placeholder: "库名"
250
+ }, null, 8, ["value", "onUpdate:value"]))
251
+ ]),
252
+ _: 1
253
+ }, 8, ["onRegister"])
254
+ ]),
255
+ _: 1
256
+ }, 16, ["onRegister", "title"]);
257
+ };
258
+ }
259
+ });
260
+ export {
261
+ pe as _
262
+ };
263
+ //# sourceMappingURL=Form.vue_vue_type_script_setup_true_lang-a3d7f865.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.vue_vue_type_script_setup_true_lang-a3d7f865.mjs","sources":["../src/views/systemData/dataSource/Form.vue"],"sourcesContent":["<template>\r\n <BasicModal v-bind=\"$attrs\" @register=\"registerModal\" :title=\"getTitle\" showOkBtn @ok=\"handleSubmit\">\r\n <BasicForm @register=\"registerForm\">\r\n <template #dbSchema=\"{ model, field }\">\r\n <a-input\r\n v-model:value=\"model[field]\"\r\n allowClear\r\n :placeholder=\"dbType === 'Oracle' || dbType === 'DM' ? '与用户同名' : ''\"\r\n :disabled=\"dbType !== 'KingbaseES'\">\r\n <template #addonAfter>\r\n <loading-outlined class=\"mr-5px\" v-if=\"testLoading\" />\r\n <span class=\"cursor-pointer\" @click=\"test()\">连接测试</span>\r\n </template>\r\n </a-input>\r\n </template>\r\n <template #serviceName=\"{ model, field }\">\r\n <a-input v-if=\"dbType === 'MySQL'\" v-model:value=\"model[field]\" allowClear placeholder=\"库名\">\r\n <template #addonAfter>\r\n <loading-outlined class=\"mr-5px\" v-if=\"testLoading\" />\r\n <span class=\"cursor-pointer\" @click=\"test()\">连接测试</span>\r\n </template>\r\n </a-input>\r\n <a-input v-else v-model:value=\"model[field]\" allowClear placeholder=\"库名\" />\r\n </template>\r\n </BasicForm>\r\n </BasicModal>\r\n</template>\r\n<script lang=\"ts\" setup>\r\n import { ref, unref, computed, reactive, toRefs } from 'vue';\r\n import { BasicModal, useModalInner } from '@/components/Modal';\r\n import { BasicForm, useForm, FormSchema } from '@/components/Form';\r\n import { testDbConnection, getDataSourceInfo, createDataSource, updateDataSource } from '@/api/systemData/dataSource';\r\n import { useMessage } from '@/hooks/web/useMessage';\r\n import { useBaseStore } from '@/store/modules/base';\r\n import { LoadingOutlined } from '@ant-design/icons-vue';\r\n import { useI18n } from '@/hooks/web/useI18n';\r\n import { AesEncryption } from '@/utils/cipher';\r\n\r\n interface State {\r\n testLoading: boolean;\r\n dbType: string;\r\n }\r\n\r\n const id = ref('');\r\n const baseStore = useBaseStore();\r\n const state = reactive<State>({\r\n testLoading: false,\r\n dbType: '',\r\n });\r\n const { testLoading, dbType } = toRefs(state);\r\n const schemas: FormSchema[] = [\r\n {\r\n field: 'dbType',\r\n label: '连接驱动',\r\n component: 'Select',\r\n componentProps: { placeholder: '请选择', fieldNames: { label: 'fullName', value: 'enCode' }, onChange },\r\n rules: [{ required: true, trigger: 'change', message: '必填' }],\r\n },\r\n {\r\n field: 'fullName',\r\n label: '连接名称',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入', maxlength: 50 },\r\n rules: [{ required: true, trigger: 'blur', message: '必填' }],\r\n },\r\n {\r\n field: 'host',\r\n label: '主机地址',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入' },\r\n rules: [{ required: true, trigger: 'blur', message: '必填' }],\r\n },\r\n {\r\n field: 'port',\r\n label: '端口',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入' },\r\n rules: [\r\n { required: true, trigger: 'blur', message: '必填' },\r\n { pattern: /^([0-9]|[1-9]\\d{1,3}|[1-5]\\d{4}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])$/, message: '请输入正确的端口号', trigger: 'blur' },\r\n ],\r\n },\r\n {\r\n field: 'userName',\r\n label: '用户',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入' },\r\n rules: [{ required: true, trigger: 'blur', message: '必填' }],\r\n },\r\n {\r\n field: 'password',\r\n label: '密码',\r\n component: 'InputPassword',\r\n componentProps: { placeholder: '请输入' },\r\n rules: [{ required: true, trigger: 'blur', message: '必填' }],\r\n },\r\n {\r\n ifShow: ({ values }) => values.dbType === 'MySQL' || values.dbType === 'SQLServer' || values.dbType === 'PostgreSQL' || values.dbType === 'KingbaseES',\r\n field: 'serviceName',\r\n label: '库名',\r\n component: 'Input',\r\n slot: 'serviceName',\r\n rules: [{ required: true, trigger: 'blur', message: '必填' }],\r\n },\r\n {\r\n ifShow: ({ values }) => values.dbType && values.dbType !== 'MySQL',\r\n field: 'dbSchema',\r\n label: '模式',\r\n component: 'InputSearch',\r\n slot: 'dbSchema',\r\n },\r\n {\r\n ifShow: ({ values }) => values.dbType === 'Oracle',\r\n field: 'oracleExtend',\r\n label: '更多',\r\n component: 'Switch',\r\n defaultValue: 0,\r\n },\r\n {\r\n ifShow: ({ values }) => values.dbType === 'Oracle' && !!values.oracleExtend,\r\n field: 'oracleLinkType',\r\n label: '连接方式',\r\n component: 'Select',\r\n componentProps: {\r\n placeholder: '请选择',\r\n options: [\r\n { fullName: 'SERVICE', id: 'SERVICE' },\r\n { fullName: 'SID', id: 'SID' },\r\n { fullName: 'SCHEMA', id: 'SCHEMA' },\r\n { fullName: 'TNS', id: 'TNS' },\r\n ],\r\n },\r\n },\r\n {\r\n ifShow: ({ values }) => values.dbType === 'Oracle' && !!values.oracleExtend,\r\n field: 'oracleRole',\r\n label: '角色',\r\n component: 'Select',\r\n componentProps: {\r\n placeholder: '请选择',\r\n options: [\r\n { fullName: 'Default', id: 'Default' },\r\n { fullName: 'SYSDBA', id: 'SYSDBA' },\r\n { fullName: 'SYSOPER', id: 'SYSOPER' },\r\n ],\r\n },\r\n },\r\n {\r\n ifShow: ({ values }) => values.dbType === 'Oracle' && !!values.oracleExtend,\r\n field: 'oracleService',\r\n label: '服务名',\r\n component: 'Input',\r\n componentProps: { placeholder: '请输入' },\r\n },\r\n {\r\n field: 'sortCode',\r\n label: '排序',\r\n component: 'InputNumber',\r\n defaultValue: 0,\r\n componentProps: { min: '0', max: '999999', placeholder: '请输入' },\r\n },\r\n ];\r\n const getTitle = computed(() => (!unref(id) ? t('common.addText') : t('common.editText')));\r\n const emit = defineEmits(['register', 'reload']);\r\n const { createMessage } = useMessage();\r\n const { t } = useI18n();\r\n const [registerForm, { setFieldsValue, validate, clearValidate, resetFields, updateSchema }] = useForm({ labelWidth: 80, schemas: schemas });\r\n const [registerModal, { closeModal, changeLoading, changeOkLoading }] = useModalInner(init);\r\n const aesEncryption = new AesEncryption({ useHex: true });\r\n\r\n function init(data) {\r\n state.testLoading = false;\r\n resetFields();\r\n getDictionaryData();\r\n id.value = data.id || 0;\r\n updateSchema({ field: 'dbType', componentProps: { disabled: !!unref(id) } });\r\n if (id.value) {\r\n changeLoading(true);\r\n getDataSourceInfo(id.value).then(res => {\r\n const data = res.data;\r\n data.oracleExtend = data.oracleExtend ? 1 : 0;\r\n data.password = aesEncryption.decryptByAES(data.password);\r\n state.dbType = data.dbType;\r\n setFieldsValue(data);\r\n changeLoading(false);\r\n });\r\n }\r\n }\r\n async function handleSubmit() {\r\n const values = await validate();\r\n if (!values) return;\r\n changeOkLoading(true);\r\n values.oracleExtend = !!values.oracleExtend;\r\n const query = {\r\n ...values,\r\n id: id.value,\r\n password: aesEncryption.encryptByAES(values.password),\r\n };\r\n const formMethod = id.value ? updateDataSource : createDataSource;\r\n formMethod(query)\r\n .then(res => {\r\n createMessage.success(res.msg);\r\n changeOkLoading(false);\r\n closeModal();\r\n emit('reload');\r\n })\r\n .catch(() => {\r\n changeOkLoading(false);\r\n });\r\n }\r\n async function getDictionaryData() {\r\n const categoryList = (await baseStore.getDictionaryData('dbType')) as any[];\r\n updateSchema({ field: 'dbType', componentProps: { options: categoryList } });\r\n }\r\n async function test() {\r\n const values = await validate();\r\n if (!values) return;\r\n state.testLoading = true;\r\n values.oracleExtend = !!values.oracleExtend;\r\n const query = {\r\n ...values,\r\n id: id.value,\r\n password: aesEncryption.encryptByAES(values.password),\r\n };\r\n testDbConnection(query)\r\n .then(res => {\r\n createMessage.success(res.msg);\r\n state.testLoading = false;\r\n })\r\n .catch(() => {\r\n state.testLoading = false;\r\n });\r\n }\r\n function onChange(e) {\r\n state.dbType = e;\r\n let port = '';\r\n let dbSchema = '';\r\n switch (e) {\r\n case 'SQLServer':\r\n port = '1433';\r\n dbSchema = 'dbo';\r\n break;\r\n case 'MySQL':\r\n port = '3306';\r\n break;\r\n case 'Oracle':\r\n port = '1521';\r\n break;\r\n case 'DM':\r\n port = '5236';\r\n break;\r\n case 'KingbaseES':\r\n port = '54321';\r\n dbSchema = 'public';\r\n break;\r\n case 'PostgreSQL':\r\n port = '5432';\r\n dbSchema = 'public';\r\n break;\r\n default:\r\n port = '';\r\n break;\r\n }\r\n setFieldsValue({ port, dbSchema });\r\n clearValidate();\r\n }\r\n</script>\r\n"],"names":["id","ref","baseStore","useBaseStore","state","reactive","testLoading","dbType","toRefs","schemas","onChange","values","getTitle","computed","unref","t","emit","__emit","createMessage","useMessage","useI18n","registerForm","setFieldsValue","validate","clearValidate","resetFields","updateSchema","useForm","registerModal","closeModal","changeLoading","changeOkLoading","useModalInner","init","aesEncryption","AesEncryption","data","getDictionaryData","getDataSourceInfo","res","handleSubmit","query","updateDataSource","createDataSource","categoryList","test","testDbConnection","port","dbSchema"],"mappings":"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"}