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.
- package/README.md +132 -0
- package/dist-lib/Empower-789f2826.mjs +94 -0
- package/dist-lib/Empower-789f2826.mjs.map +1 -0
- package/dist-lib/Empower.vue_vue_type_script_setup_true_lang-c454e7a0.mjs +134 -0
- package/dist-lib/Empower.vue_vue_type_script_setup_true_lang-c454e7a0.mjs.map +1 -0
- package/dist-lib/Field-40d74a96.mjs +94 -0
- package/dist-lib/Field-40d74a96.mjs.map +1 -0
- package/dist-lib/Field.vue_vue_type_script_setup_true_lang-e1964a74.mjs +148 -0
- package/dist-lib/Field.vue_vue_type_script_setup_true_lang-e1964a74.mjs.map +1 -0
- package/dist-lib/FieldForm-a5d4038b.mjs +93 -0
- package/dist-lib/FieldForm-a5d4038b.mjs.map +1 -0
- package/dist-lib/FieldForm.vue_vue_type_script_setup_true_lang-f92c7e23.mjs +160 -0
- package/dist-lib/FieldForm.vue_vue_type_script_setup_true_lang-f92c7e23.mjs.map +1 -0
- package/dist-lib/Form-06ee1b64.mjs +97 -0
- package/dist-lib/Form-06ee1b64.mjs.map +1 -0
- package/dist-lib/Form-15a7f801.mjs +95 -0
- package/dist-lib/Form-15a7f801.mjs.map +1 -0
- package/dist-lib/Form-465fe45d.mjs +237 -0
- package/dist-lib/Form-465fe45d.mjs.map +1 -0
- package/dist-lib/Form-6e6a6a0d.mjs +94 -0
- package/dist-lib/Form-6e6a6a0d.mjs.map +1 -0
- package/dist-lib/Form-a61f1446.mjs +93 -0
- package/dist-lib/Form-a61f1446.mjs.map +1 -0
- package/dist-lib/Form-aeafea39.mjs +93 -0
- package/dist-lib/Form-aeafea39.mjs.map +1 -0
- package/dist-lib/Form-b0b8b1f3.mjs +94 -0
- package/dist-lib/Form-b0b8b1f3.mjs.map +1 -0
- package/dist-lib/Form-b2915cd3.mjs +95 -0
- package/dist-lib/Form-b2915cd3.mjs.map +1 -0
- package/dist-lib/Form-b2ce5535.mjs +93 -0
- package/dist-lib/Form-b2ce5535.mjs.map +1 -0
- package/dist-lib/Form-ca6e92bd.mjs +421 -0
- package/dist-lib/Form-ca6e92bd.mjs.map +1 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-039f5c88.mjs +101 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-039f5c88.mjs.map +1 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-1883a047.mjs +91 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-1883a047.mjs.map +1 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-5fbc0f96.mjs +302 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-5fbc0f96.mjs.map +1 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-61497691.mjs +181 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-61497691.mjs.map +1 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-69cc4bfc.mjs +94 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-69cc4bfc.mjs.map +1 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-a3d7f865.mjs +263 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-a3d7f865.mjs.map +1 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-ae83b1bb.mjs +104 -0
- package/dist-lib/Form.vue_vue_type_script_setup_true_lang-ae83b1bb.mjs.map +1 -0
- package/dist-lib/Form.vue_vue_type_style_index_0_lang-f240a568.mjs +838 -0
- package/dist-lib/Form.vue_vue_type_style_index_0_lang-f240a568.mjs.map +1 -0
- package/dist-lib/Info-e9cb4268.mjs +747 -0
- package/dist-lib/Info-e9cb4268.mjs.map +1 -0
- package/dist-lib/Log-b1cc7014.mjs +94 -0
- package/dist-lib/Log-b1cc7014.mjs.map +1 -0
- package/dist-lib/Log.vue_vue_type_script_setup_true_lang-0ba0615b.mjs +93 -0
- package/dist-lib/Log.vue_vue_type_script_setup_true_lang-0ba0615b.mjs.map +1 -0
- package/dist-lib/Login-fc04d844.mjs +109 -0
- package/dist-lib/Login-fc04d844.mjs.map +1 -0
- package/dist-lib/LoginForm-eafdf0bc.mjs +93 -0
- package/dist-lib/LoginForm-eafdf0bc.mjs.map +1 -0
- package/dist-lib/LoginForm.vue_vue_type_script_setup_true_lang-2a241386.mjs +202 -0
- package/dist-lib/LoginForm.vue_vue_type_script_setup_true_lang-2a241386.mjs.map +1 -0
- package/dist-lib/PageExplainModal-efbb4616.mjs +140 -0
- package/dist-lib/PageExplainModal-efbb4616.mjs.map +1 -0
- package/dist-lib/Preview-531e9361.mjs +93 -0
- package/dist-lib/Preview-531e9361.mjs.map +1 -0
- package/dist-lib/Preview-6086e84b.mjs +93 -0
- package/dist-lib/Preview-6086e84b.mjs.map +1 -0
- package/dist-lib/Preview.vue_vue_type_script_setup_true_lang-0013b21d.mjs +137 -0
- package/dist-lib/Preview.vue_vue_type_script_setup_true_lang-0013b21d.mjs.map +1 -0
- package/dist-lib/Preview.vue_vue_type_script_setup_true_lang-815bfd98.mjs +67 -0
- package/dist-lib/Preview.vue_vue_type_script_setup_true_lang-815bfd98.mjs.map +1 -0
- package/dist-lib/TableAction-fcabc30c.mjs +114 -0
- package/dist-lib/TableAction-fcabc30c.mjs.map +1 -0
- package/dist-lib/UserSelect-4e259116.mjs +94 -0
- package/dist-lib/UserSelect-4e259116.mjs.map +1 -0
- package/dist-lib/UserSelect.vue_vue_type_script_setup_true_lang-aa25c5fc.mjs +282 -0
- package/dist-lib/UserSelect.vue_vue_type_script_setup_true_lang-aa25c5fc.mjs.map +1 -0
- package/dist-lib/cdn/socials/dingtalk.png +0 -0
- package/dist-lib/cdn/socials/feishu.png +0 -0
- package/dist-lib/cdn/socials/gitHub.png +0 -0
- package/dist-lib/cdn/socials/qq.png +0 -0
- package/dist-lib/cdn/socials/wechat_open.png +0 -0
- package/dist-lib/cdn/socials/wxWork.png +0 -0
- package/dist-lib/commonFields-5ff2332b.mjs +24 -0
- package/dist-lib/commonFields-5ff2332b.mjs.map +1 -0
- package/dist-lib/css/fonts/ym/iconfont.css +2419 -0
- package/dist-lib/css/fonts/ym/iconfont.ttf +0 -0
- package/dist-lib/css/fonts/ym/iconfont.woff +0 -0
- package/dist-lib/css/fonts/ym/iconfont.woff2 +0 -0
- package/dist-lib/css/fonts/ym-custom/iconfont.css +7203 -0
- package/dist-lib/css/fonts/ym-custom/iconfont.ttf +0 -0
- package/dist-lib/css/fonts/ym-custom/iconfont.woff +0 -0
- package/dist-lib/css/fonts/ym-custom/iconfont.woff2 +0 -0
- package/dist-lib/css/index.css +135 -0
- package/dist-lib/css/print-lock.css +352 -0
- package/dist-lib/emtryImg-85b013aa.mjs +5 -0
- package/dist-lib/emtryImg-85b013aa.mjs.map +1 -0
- package/dist-lib/en_US-6b59f0a7.mjs +774 -0
- package/dist-lib/en_US-6b59f0a7.mjs.map +1 -0
- package/dist-lib/favicon.ico +0 -0
- package/dist-lib/firefly-portal-preview.css +1 -0
- package/dist-lib/firefly-portal-preview.d.ts +82 -0
- package/dist-lib/firefly-portal-preview.es.js +92 -0
- package/dist-lib/firefly-portal-preview.es.js.map +1 -0
- package/dist-lib/firefly-portal-preview.umd.js +79 -0
- package/dist-lib/firefly-portal-preview.umd.js.map +1 -0
- package/dist-lib/formValidate-33d5595a.mjs +68 -0
- package/dist-lib/formValidate-33d5595a.mjs.map +1 -0
- package/dist-lib/index-1a090e82.mjs +173 -0
- package/dist-lib/index-1a090e82.mjs.map +1 -0
- package/dist-lib/index-28ba2ea1.mjs +154 -0
- package/dist-lib/index-28ba2ea1.mjs.map +1 -0
- package/dist-lib/index-29f92d0d.mjs +130 -0
- package/dist-lib/index-29f92d0d.mjs.map +1 -0
- package/dist-lib/index-2c2c19d4.mjs +160 -0
- package/dist-lib/index-2c2c19d4.mjs.map +1 -0
- package/dist-lib/index-2f898c1f.mjs +103 -0
- package/dist-lib/index-2f898c1f.mjs.map +1 -0
- package/dist-lib/index-3462ba0d.mjs +139 -0
- package/dist-lib/index-3462ba0d.mjs.map +1 -0
- package/dist-lib/index-3ebbb3a9.mjs +97 -0
- package/dist-lib/index-3ebbb3a9.mjs.map +1 -0
- package/dist-lib/index-436ec82c.mjs +145 -0
- package/dist-lib/index-436ec82c.mjs.map +1 -0
- package/dist-lib/index-44e8def1.mjs +267 -0
- package/dist-lib/index-44e8def1.mjs.map +1 -0
- package/dist-lib/index-47596f01.mjs +144 -0
- package/dist-lib/index-47596f01.mjs.map +1 -0
- package/dist-lib/index-5888a3a4.mjs +226 -0
- package/dist-lib/index-5888a3a4.mjs.map +1 -0
- package/dist-lib/index-58fb457c.mjs +179 -0
- package/dist-lib/index-58fb457c.mjs.map +1 -0
- package/dist-lib/index-5b8b1ba9.mjs +119766 -0
- package/dist-lib/index-5b8b1ba9.mjs.map +1 -0
- package/dist-lib/index-687fd3de.mjs +396 -0
- package/dist-lib/index-687fd3de.mjs.map +1 -0
- package/dist-lib/index-6eca8dab.mjs +135 -0
- package/dist-lib/index-6eca8dab.mjs.map +1 -0
- package/dist-lib/index-73df4468.mjs +187 -0
- package/dist-lib/index-73df4468.mjs.map +1 -0
- package/dist-lib/index-7ae97180.mjs +597 -0
- package/dist-lib/index-7ae97180.mjs.map +1 -0
- package/dist-lib/index-8374b2f2.mjs +354 -0
- package/dist-lib/index-8374b2f2.mjs.map +1 -0
- package/dist-lib/index-89a27c27.mjs +255 -0
- package/dist-lib/index-89a27c27.mjs.map +1 -0
- package/dist-lib/index-9263cd45.mjs +482 -0
- package/dist-lib/index-9263cd45.mjs.map +1 -0
- package/dist-lib/index-934ca5d0.mjs +93 -0
- package/dist-lib/index-934ca5d0.mjs.map +1 -0
- package/dist-lib/index-97081729.mjs +269 -0
- package/dist-lib/index-97081729.mjs.map +1 -0
- package/dist-lib/index-9dec931e.mjs +145 -0
- package/dist-lib/index-9dec931e.mjs.map +1 -0
- package/dist-lib/index-9fc40c89.mjs +298 -0
- package/dist-lib/index-9fc40c89.mjs.map +1 -0
- package/dist-lib/index-a57664c9.mjs +204 -0
- package/dist-lib/index-a57664c9.mjs.map +1 -0
- package/dist-lib/index-a83288bf.mjs +180 -0
- package/dist-lib/index-a83288bf.mjs.map +1 -0
- package/dist-lib/index-adf15a9e.mjs +392 -0
- package/dist-lib/index-adf15a9e.mjs.map +1 -0
- package/dist-lib/index-b5b20206.mjs +617 -0
- package/dist-lib/index-b5b20206.mjs.map +1 -0
- package/dist-lib/index-b6f446cf.mjs +92 -0
- package/dist-lib/index-b6f446cf.mjs.map +1 -0
- package/dist-lib/index-b9e3947c.mjs +156 -0
- package/dist-lib/index-b9e3947c.mjs.map +1 -0
- package/dist-lib/index-bde150fa.mjs +261 -0
- package/dist-lib/index-bde150fa.mjs.map +1 -0
- package/dist-lib/index-be097ef0.mjs +188 -0
- package/dist-lib/index-be097ef0.mjs.map +1 -0
- package/dist-lib/index-bff033bc.mjs +563 -0
- package/dist-lib/index-bff033bc.mjs.map +1 -0
- package/dist-lib/index-c4d74c6c.mjs +258 -0
- package/dist-lib/index-c4d74c6c.mjs.map +1 -0
- package/dist-lib/index-c708e214.mjs +96 -0
- package/dist-lib/index-c708e214.mjs.map +1 -0
- package/dist-lib/index-d936d570.mjs +191 -0
- package/dist-lib/index-d936d570.mjs.map +1 -0
- package/dist-lib/index-da857153.mjs +223 -0
- package/dist-lib/index-da857153.mjs.map +1 -0
- package/dist-lib/index.vue_vue_type_script_setup_true_lang-0eb8f454.mjs +136 -0
- package/dist-lib/index.vue_vue_type_script_setup_true_lang-0eb8f454.mjs.map +1 -0
- package/dist-lib/index.vue_vue_type_script_setup_true_lang-10a915e2.mjs +137 -0
- package/dist-lib/index.vue_vue_type_script_setup_true_lang-10a915e2.mjs.map +1 -0
- package/dist-lib/index.vue_vue_type_script_setup_true_lang-570dd942.mjs +131 -0
- package/dist-lib/index.vue_vue_type_script_setup_true_lang-570dd942.mjs.map +1 -0
- package/dist-lib/interfaceOauth-bb8e782e.mjs +40 -0
- package/dist-lib/interfaceOauth-bb8e782e.mjs.map +1 -0
- package/dist-lib/preview-e588e33c.mjs +194 -0
- package/dist-lib/preview-e588e33c.mjs.map +1 -0
- package/dist-lib/resource/emoji/100.gif +0 -0
- package/dist-lib/resource/emoji/101.gif +0 -0
- package/dist-lib/resource/emoji/102.gif +0 -0
- package/dist-lib/resource/emoji/103.gif +0 -0
- package/dist-lib/resource/emoji/104.gif +0 -0
- package/dist-lib/resource/emoji/105.gif +0 -0
- package/dist-lib/resource/emoji/106.gif +0 -0
- package/dist-lib/resource/emoji/107.gif +0 -0
- package/dist-lib/resource/emoji/108.gif +0 -0
- package/dist-lib/resource/emoji/109.gif +0 -0
- package/dist-lib/resource/emoji/110.gif +0 -0
- package/dist-lib/resource/emoji/111.gif +0 -0
- package/dist-lib/resource/emoji/112.gif +0 -0
- package/dist-lib/resource/emoji/113.gif +0 -0
- package/dist-lib/resource/emoji/114.gif +0 -0
- package/dist-lib/resource/emoji/115.gif +0 -0
- package/dist-lib/resource/emoji/116.gif +0 -0
- package/dist-lib/resource/emoji/117.gif +0 -0
- package/dist-lib/resource/emoji/118.gif +0 -0
- package/dist-lib/resource/emoji/119.gif +0 -0
- package/dist-lib/resource/emoji/120.gif +0 -0
- package/dist-lib/resource/emoji/121.gif +0 -0
- package/dist-lib/resource/emoji/122.gif +0 -0
- package/dist-lib/resource/emoji/123.gif +0 -0
- package/dist-lib/resource/emoji/124.gif +0 -0
- package/dist-lib/resource/emoji/125.gif +0 -0
- package/dist-lib/resource/emoji/126.gif +0 -0
- package/dist-lib/resource/emoji/127.gif +0 -0
- package/dist-lib/resource/emoji/128.gif +0 -0
- package/dist-lib/resource/emoji/129.gif +0 -0
- package/dist-lib/resource/emoji/130.gif +0 -0
- package/dist-lib/resource/emoji/131.gif +0 -0
- package/dist-lib/resource/emoji/132.gif +0 -0
- package/dist-lib/resource/emoji/133.gif +0 -0
- package/dist-lib/resource/emoji/134.gif +0 -0
- package/dist-lib/resource/emoji/135.gif +0 -0
- package/dist-lib/resource/emoji/136.gif +0 -0
- package/dist-lib/resource/emoji/137.gif +0 -0
- package/dist-lib/resource/emoji/138.gif +0 -0
- package/dist-lib/resource/emoji/139.gif +0 -0
- package/dist-lib/resource/emoji/140.gif +0 -0
- package/dist-lib/resource/emoji/141.gif +0 -0
- package/dist-lib/resource/emoji/142.gif +0 -0
- package/dist-lib/resource/emoji/143.gif +0 -0
- package/dist-lib/resource/emoji/144.gif +0 -0
- package/dist-lib/resource/emoji/145.gif +0 -0
- package/dist-lib/resource/emoji/146.gif +0 -0
- package/dist-lib/resource/emoji/147.gif +0 -0
- package/dist-lib/resource/emoji/148.gif +0 -0
- package/dist-lib/resource/emoji/149.gif +0 -0
- package/dist-lib/resource/emoji/150.gif +0 -0
- package/dist-lib/resource/emoji/151.gif +0 -0
- package/dist-lib/resource/emoji/152.gif +0 -0
- package/dist-lib/resource/emoji/153.gif +0 -0
- package/dist-lib/resource/emoji/154.gif +0 -0
- package/dist-lib/resource/emoji/155.gif +0 -0
- package/dist-lib/resource/emoji/156.gif +0 -0
- package/dist-lib/resource/emoji/157.gif +0 -0
- package/dist-lib/resource/emoji/158.gif +0 -0
- package/dist-lib/resource/emoji/159.gif +0 -0
- package/dist-lib/resource/emoji/160.gif +0 -0
- package/dist-lib/resource/emoji/161.gif +0 -0
- package/dist-lib/resource/emoji/162.gif +0 -0
- package/dist-lib/resource/emoji/163.gif +0 -0
- package/dist-lib/resource/emoji/164.gif +0 -0
- package/dist-lib/resource/emoji/165.gif +0 -0
- package/dist-lib/resource/emoji/166.gif +0 -0
- package/dist-lib/resource/emoji/167.gif +0 -0
- package/dist-lib/resource/emoji/168.gif +0 -0
- package/dist-lib/resource/emoji/169.gif +0 -0
- package/dist-lib/resource/emoji/170.gif +0 -0
- package/dist-lib/resource/emoji/171.gif +0 -0
- package/dist-lib/resource/emoji/172.gif +0 -0
- package/dist-lib/resource/emoji/173.gif +0 -0
- package/dist-lib/resource/emoji/174.gif +0 -0
- package/dist-lib/resource/emoji/175.gif +0 -0
- package/dist-lib/resource/emoji/176.gif +0 -0
- package/dist-lib/resource/emoji/177.gif +0 -0
- package/dist-lib/resource/emoji/178.gif +0 -0
- package/dist-lib/resource/emoji/179.gif +0 -0
- package/dist-lib/resource/emoji/180.gif +0 -0
- package/dist-lib/resource/emoji/181.gif +0 -0
- package/dist-lib/resource/emoji/182.gif +0 -0
- package/dist-lib/resource/emoji/183.gif +0 -0
- package/dist-lib/resource/emoji/184.gif +0 -0
- package/dist-lib/resource/emoji/185.gif +0 -0
- package/dist-lib/resource/emoji/186.gif +0 -0
- package/dist-lib/resource/emoji/187.gif +0 -0
- package/dist-lib/resource/emoji/188.gif +0 -0
- package/dist-lib/resource/emoji/189.gif +0 -0
- package/dist-lib/resource/emoji/190.gif +0 -0
- package/dist-lib/resource/emoji/191.gif +0 -0
- package/dist-lib/resource/emoji/192.gif +0 -0
- package/dist-lib/resource/emoji/193.gif +0 -0
- package/dist-lib/resource/emoji/194.gif +0 -0
- package/dist-lib/resource/emoji/195.gif +0 -0
- package/dist-lib/resource/emoji/196.gif +0 -0
- package/dist-lib/resource/emoji/197.gif +0 -0
- package/dist-lib/resource/emoji/198.gif +0 -0
- package/dist-lib/resource/emoji/199.gif +0 -0
- package/dist-lib/resource/emoji/200.png +0 -0
- package/dist-lib/resource/emoji/201.png +0 -0
- package/dist-lib/resource/emoji/202.png +0 -0
- package/dist-lib/resource/emoji/203.png +0 -0
- package/dist-lib/resource/emoji/204.png +0 -0
- package/dist-lib/resource/emoji/205.png +0 -0
- package/dist-lib/resource/emoji/206.png +0 -0
- package/dist-lib/resource/emoji/207.png +0 -0
- package/dist-lib/resource/emoji/208.png +0 -0
- package/dist-lib/resource/emoji/209.png +0 -0
- package/dist-lib/resource/emoji/210.png +0 -0
- package/dist-lib/resource/emoji/211.png +0 -0
- package/dist-lib/resource/emoji/212.png +0 -0
- package/dist-lib/resource/emoji/213.png +0 -0
- package/dist-lib/resource/emoji/214.png +0 -0
- package/dist-lib/resource/emoji/215.png +0 -0
- package/dist-lib/resource/emoji/216.png +0 -0
- package/dist-lib/resource/emoji/217.png +0 -0
- package/dist-lib/resource/emoji/218.png +0 -0
- package/dist-lib/resource/emoji/219.png +0 -0
- package/dist-lib/resource/img/logo.png +0 -0
- package/dist-lib/resource/img/pwa-192x192.png +0 -0
- package/dist-lib/resource/img/pwa-512x512.png +0 -0
- package/dist-lib/resource/tinymce/langs/en.js +419 -0
- package/dist-lib/resource/tinymce/langs/zh_CN.js +389 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide/content.inline.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide/content.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide/content.mobile.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide/skin.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide/skin.mobile.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide/skin.shadowdom.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide-dark/content.inline.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide-dark/content.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide-dark/content.mobile.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide-dark/skin.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +7 -0
- package/dist-lib/resource/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
- package/dist-lib/useCommon-36969e5f.mjs +110 -0
- package/dist-lib/useCommon-36969e5f.mjs.map +1 -0
- package/dist-lib/useECharts-bb3ba984.mjs +77 -0
- package/dist-lib/useECharts-bb3ba984.mjs.map +1 -0
- package/dist-lib/useTable-99fc521a.mjs +172 -0
- package/dist-lib/useTable-99fc521a.mjs.map +1 -0
- package/dist-lib/zh_CN-5eabc04b.mjs +772 -0
- package/dist-lib/zh_CN-5eabc04b.mjs.map +1 -0
- package/dist-lib/zh_TW-ef5c69c0.mjs +774 -0
- package/dist-lib/zh_TW-ef5c69c0.mjs.map +1 -0
- package/package.json +247 -0
- package/src/components/PortalPreview/__tests__/index.spec.ts +258 -0
- package/src/components/PortalPreview/fonts/ym/iconfont.css +2419 -0
- package/src/components/PortalPreview/fonts/ym/iconfont.ttf +0 -0
- package/src/components/PortalPreview/fonts/ym/iconfont.woff +0 -0
- package/src/components/PortalPreview/fonts/ym/iconfont.woff2 +0 -0
- package/src/components/PortalPreview/fonts/ym-custom/iconfont.css +7203 -0
- package/src/components/PortalPreview/fonts/ym-custom/iconfont.ttf +0 -0
- package/src/components/PortalPreview/fonts/ym-custom/iconfont.woff +0 -0
- package/src/components/PortalPreview/fonts/ym-custom/iconfont.woff2 +0 -0
- package/src/components/PortalPreview/index.ts +31 -0
- package/src/components/PortalPreview/index.vue +329 -0
- package/src/components/PortalPreview/style/overrides.css +15 -0
- 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":";;;;;;;;AAmBQ,UAAA,EAAE,GAAAA,MAAMC,KACRC,IAAc,CAACC,GAAOC,MAAU;;AACpC,aAAIA,OAASC,IAAAC,QAAA,gBAAAD,EAAkB,aAAY,KAAK,CAACE,EAAMH,CAAK,IAAU,QAAQ,OAAO,YAAY,IAC1F,QAAQ;IAAQ,GAQnBI,IAAQC,EAAgB;AAAA,MAC5B,UAAU;AAAA,QACR,MAAM;AAAA,MACR;AAAA,MACA,YAAY;AAAA,IAAA,CACb,GACK,EAAE,UAAAC,GAAU,YAAAC,EAAW,IAAIC,EAAOJ,CAAK,GACvC,EAAE,eAAAK,MAAkBC,KACpBC,IAAOC,GACP,CAACC,GAAe,EAAE,YAAAC,GAAY,eAAAC,GAAe,iBAAAC,GAAiB,IAAIC,EAAcC,CAAI,GACpF,CAACC,GAAc,EAAE,gBAAAC,GAAgB,gBAAAlB,GAAgB,aAAAmB,GAAa,UAAAC,GAAU,eAAAC,GAAe,cAAAC,GAAc,IAAIC,EAAQ;AAAA,MACrH,YAAY;AAAA,MACZ,SAAS;AAAA,QACP;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,UACP,WAAW;AAAA,UACX,gBAAgB,EAAE,aAAa,OAAO,WAAW,IAAI;AAAA,UACrD,OAAO,CAAC,EAAE,UAAU,IAAM,SAAS,QAAQ,SAAS,MAAM;AAAA,QAC5D;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,UACP,WAAW;AAAA,UACX,gBAAgB,EAAE,aAAa,OAAO,WAAW,GAAG;AAAA,UACpD,OAAO;AAAA,YACL,EAAE,UAAU,IAAM,SAAS,QAAQ,SAAS,KAAK;AAAA,YACjD,EAAE,WAAWC,EAAa,QAAQ,GAAG,SAAS,OAAO;AAAA,UACvD;AAAA,QACF;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,UACP,WAAW;AAAA,UACX,gBAAgB,EAAE,aAAa,OAAO,YAAY,GAAK;AAAA,UACvD,OAAO,CAAC,EAAE,UAAU,IAAM,SAAS,UAAU,SAAS,MAAM;AAAA,QAC9D;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,UACP,cAAc;AAAA,UACd,WAAW;AAAA,UACX,gBAAgB;AAAA,YACd,SAAS;AAAA,cACP,EAAE,IAAI,GAAG,UAAU,OAAO;AAAA,cAC1B,EAAE,IAAI,GAAG,UAAU,OAAO;AAAA,YAC5B;AAAA,YACA,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,UAAUC;AAAA,UACZ;AAAA,UACA,OAAO,CAAC,EAAE,UAAU,IAAM,SAAS,UAAU,SAAS,MAAM,MAAM,UAAU;AAAA,QAC9E;AAAA,QACA;AAAA,UACE,QAAQ,CAAC,EAAE,QAAAC,EAAO,MAAMA,EAAO,SAAS;AAAA,UACxC,OAAO;AAAA,UACP,OAAO;AAAA,UACP,cAAc;AAAA,UACd,WAAW;AAAA,UACX,gBAAgB;AAAA,YACd,SAAS;AAAA,cACP,EAAE,IAAI,GAAG,UAAU,KAAK;AAAA,cACxB,EAAE,IAAI,GAAG,UAAU,KAAK;AAAA,YAC1B;AAAA,YACA,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,UAAUC;AAAA,UACZ;AAAA,UACA,OAAO,CAAC,EAAE,UAAU,IAAM,SAAS,UAAU,SAAS,MAAM,MAAM,UAAU;AAAA,QAC9E;AAAA,QACA;AAAA,UACE,QAAQ,CAAC,EAAE,QAAAD,EAAO,MAAMA,EAAO,SAAS;AAAA,UACxC,OAAO;AAAA,UACP,OAAO;AAAA,UACP,WAAW;AAAA,UACX,gBAAgB,EAAE,aAAa,MAAM;AAAA,UACrC,aAAa;AAAA,UACb,OAAO;AAAA,YACL,EAAE,UAAU,IAAM,SAAS,QAAQ,SAAS,KAAK;AAAA,YACjD,EAAE,WAAW9B,GAAa,SAAS,OAAO;AAAA,UAC5C;AAAA,QACF;AAAA,QACA;AAAA,UACE,QAAQ,CAAC,EAAE,QAAA8B,EAAO,MAAMA,EAAO,SAAS;AAAA,UACxC,OAAO;AAAA,UACP,OAAO;AAAA,UACP,WAAW;AAAA,UACX,cAAc;AAAA,UACd,aAAa;AAAA,QACf;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,UACP,cAAc;AAAA,UACd,WAAW;AAAA,UACX,gBAAgB,EAAE,KAAK,GAAG,KAAK,OAAO;AAAA,QACxC;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,UACP,WAAW;AAAA,UACX,gBAAgB,EAAE,aAAa,MAAM;AAAA,QACvC;AAAA,MACF;AAAA,IAAA,CACD;AAED,aAASV,EAAKY,GAAM;AACN,MAAAT,KACNjB,EAAA,SAAS,KAAK0B,EAAK,MAAM,IAC/BN,EAAa,CAAC,EAAE,OAAO,YAAY,gBAAgB,EAAE,SAASM,EAAK,gBAAgB,GAAG,EAAA,CAAG,CAAC,GAC1F1B,EAAM,SAAS,OAAO,GAClBA,EAAM,SAAS,OACjBW,EAAc,EAAI,GAClBgB,EAAQ3B,EAAM,SAAS,EAAE,EACtB,KAAK,CAAO4B,MAAA;AACX,QAAA5B,EAAM,WAAW4B,EAAI,MACJH,EAAAzB,EAAM,SAAS,QAAQ,GACxCgB,EAAehB,EAAM,QAAQ,GAC7BW,EAAc,EAAK;AAAA,MAAA,CACpB,EACA,MAAM,MAAM;AACX,QAAAA,EAAc,EAAK;AAAA,MAAA,CACpB;AAAA,IAEP;AACA,aAASc,EAAiBI,GAAK;AAChB,MAAAT,EAAA;AAAA,QACX,EAAE,OAAO,aAAa,gBAAgB,EAAE,aAAaS,MAAQ,IAAI,aAAa,MAAM,aAAaA,MAAQ,IAAI,2BAA2B,GAAG;AAAA,MAAA,CAC5I,GACcb,EAAA,EAAE,WAAW,GAAA,CAAI,GAChCG,EAAc,WAAW;AAAA,IAC3B;AACA,aAASI,EAAaM,GAAK;;AACzB,MAAA7B,EAAM,SAAS,OAAO6B,GACLJ,GAAA5B,IAAAC,QAAA,gBAAAD,EAAkB,QAAQ;AAAA,IAC7C;AACA,mBAAeiC,EAAaC,GAAO;AAC3B,YAAAP,IAAS,MAAMN;AACrB,UAAI,CAACM;AAAQ;AACb,MAAAO,MAAS,IAAK/B,EAAM,aAAa,KAAQY,EAAgB,EAAI;AAC7D,YAAMoB,IAAQ;AAAA,QACZ,GAAGR;AAAA,QACH,IAAIxB,EAAM,SAAS;AAAA,MAAA;AAGV,OADQA,EAAM,SAAS,KAAKiC,IAAeC,GAC3CF,CAAK,EACb,KAAK,CAAOJ,MAAA;AACG,QAAAvB,EAAA,QAAQuB,EAAI,GAAG,GAC7BhB,EAAgB,EAAK,GACrBZ,EAAM,aAAa,IACRU,KACXH,EAAK,QAAQ,GACRP,EAAM,SAAS,OAAUA,EAAA,SAAS,KAAK4B,EAAI,OAC5CG,KAAQ,KAAQxB,EAAA,UAAU,EAAE,GAAGiB,GAAQ,IAAIxB,EAAM,SAAS,IAAI;AAAA,MAAA,CACnE,EACA,MAAM,MAAM;AACX,QAAAY,EAAgB,EAAK,GACrBZ,EAAM,aAAa;AAAA,MAAA,CACpB;AAAA,IACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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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"}
|