kn-cli 1.0.90 → 1.0.92
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/package.json +1 -1
- package/readme.md +7 -0
- package/src/create.js +22 -2
- package/src/utils/index.js +1 -1
- package/templates/template_admin/cli.config.js +1 -1
- package/templates/template_admin/jsconfig.json +5 -1
- package/templates/template_admin/package.json +1 -1
- package/templates/template_admin/public/index.html +2 -2
- package/templates/template_admin/public/src/components/{Auth → auth}/index.jsx +21 -3
- package/templates/template_admin/public/src/components/{IconFont → iconFont}/index.jsx +10 -0
- package/templates/template_admin/public/src/components/{Layout/Basic → layout/basic}/index.jsx +13 -3
- package/templates/template_admin/public/src/components/layout/centerBody/index.jsx +25 -0
- package/templates/template_admin/public/src/components/{Layout → layout}/index.jsx +15 -6
- package/templates/template_admin/public/src/components/layout/provider/index.jsx +19 -0
- package/templates/{template_app/public/src/components/Link → template_admin/public/src/components/link}/index.jsx +15 -0
- package/templates/template_admin/public/src/components/{Menu → menu}/index.jsx +15 -8
- package/templates/{template_app/public/src/components/Page/PageLoading → template_admin/public/src/components/page/pageLoading}/index.jsx +25 -4
- package/templates/{template_app/public/src/components/Popup → template_admin/public/src/components/popup}/index.jsx +13 -0
- package/templates/template_admin/public/src/components/{Toast → toast}/index.jsx +20 -1
- package/templates/template_admin/public/src/components/{TopMenu → topMenu}/index.jsx +13 -8
- package/templates/template_admin/public/src/dictionary/index.js +8 -3
- package/templates/template_admin/public/src/hooks/index.jsx +1 -0
- package/templates/template_admin/public/src/hooks/useDelay.jsx +5 -0
- package/templates/template_admin/public/src/hooks/useImageLoader.jsx +1 -2
- package/templates/template_admin/public/src/hooks/useLoading.jsx +5 -1
- package/templates/template_admin/public/src/hooks/usePreload.jsx +2 -1
- package/templates/template_admin/public/src/hooks/useScrollTop.jsx +12 -0
- package/templates/template_admin/public/src/hooks/useSearch.jsx +28 -2
- package/templates/template_admin/public/src/hooks/useUpdate.jsx +5 -0
- package/templates/template_admin/public/src/index.jsx +16 -2
- package/templates/template_admin/public/src/pages/material/index.jsx +2 -1
- package/templates/template_admin/public/src/pages/user/index.jsx +7 -2
- package/templates/template_admin/public/src/provider/app.jsx +39 -4
- package/templates/template_admin/public/src/provider/menu.jsx +4 -1
- package/templates/template_admin/public/src/route.jsx +8 -5
- package/templates/template_admin/public/src/services/index.js +38 -4
- package/templates/template_admin/public/src/services/user.js +3 -3
- package/templates/template_admin/public/src/type.js +48 -0
- package/templates/template_admin/public/src/utils/index.js +34 -18
- package/templates/template_app/cli.config.js +1 -1
- package/templates/template_app/jsconfig.json +5 -1
- package/templates/template_app/package.json +1 -1
- package/templates/template_app/public/src/components/{Auth → auth}/index.jsx +20 -2
- package/templates/template_app/public/src/components/{Header → header}/index.jsx +25 -1
- package/templates/{template_oa_jwt/public/src/components/IconFont → template_app/public/src/components/iconFont}/index.jsx +10 -0
- package/templates/template_app/public/src/components/{Layout/App → layout/app}/index.jsx +12 -2
- package/templates/template_app/public/src/components/layout/index.jsx +6 -0
- package/templates/{template_admin/public/src/components/Layout/Provider → template_app/public/src/components/layout/provider}/index.jsx +3 -0
- package/templates/template_app/public/src/components/link/index.jsx +39 -0
- package/templates/template_app/public/src/components/{Marquee → marquee}/index.jsx +11 -2
- package/templates/{template_oa/public/src/components/Page/PageLoading → template_app/public/src/components/page/pageLoading}/index.jsx +23 -3
- package/templates/{template_oa_jwt/public/src/components/Popup → template_app/public/src/components/popup}/index.jsx +13 -0
- package/templates/{template_oa_jwt/public/src/components/Toast → template_app/public/src/components/toast}/index.jsx +21 -1
- package/templates/template_app/public/src/dictionary/index.js +7 -3
- package/templates/template_app/public/src/hooks/index.jsx +1 -0
- package/templates/template_app/public/src/hooks/useDelay.jsx +5 -0
- package/templates/template_app/public/src/hooks/useImageLoader.jsx +1 -2
- package/templates/template_app/public/src/hooks/useLoading.jsx +5 -1
- package/templates/template_app/public/src/hooks/usePreload.jsx +2 -1
- package/templates/template_app/public/src/hooks/useScrollTop.jsx +12 -0
- package/templates/template_app/public/src/index.jsx +22 -5
- package/templates/template_app/public/src/pages/dictionary/index.jsx +9 -1
- package/templates/template_app/public/src/pages/index.jsx +16 -4
- package/templates/template_app/public/src/pages/list/index.jsx +7 -1
- package/templates/template_app/public/src/pages/login/index.jsx +10 -4
- package/templates/template_app/public/src/pages/user/index.jsx +7 -2
- package/templates/template_app/public/src/provider/app.jsx +5 -3
- package/templates/template_app/public/src/route.jsx +5 -2
- package/templates/template_app/public/src/services/index.js +10 -8
- package/templates/template_app/public/src/services/user.js +4 -4
- package/templates/template_app/public/src/type.js +27 -0
- package/templates/template_app/public/src/utils/index.js +6 -0
- package/templates/template_oa/cli.config.js +1 -1
- package/templates/template_oa/jsconfig.json +5 -1
- package/templates/template_oa/package.json +1 -1
- package/templates/template_oa/public/src/components/dialog/index.jsx +237 -0
- package/templates/{template_oa_jwt/public/src/components/Empty → template_oa/public/src/components/empty}/index.jsx +9 -0
- package/templates/{template_oa_jwt/public/src/components/FormRow → template_oa/public/src/components/formRow}/index.jsx +25 -3
- package/templates/{template_oa_jwt/public/src/components/FormTable → template_oa/public/src/components/formTable}/index.jsx +39 -1
- package/templates/template_oa/public/src/components/iconFont/index.jsx +22 -0
- package/templates/template_oa/public/src/components/{IFrame → iframe}/index.jsx +18 -4
- package/templates/template_oa/public/src/components/{Layout/Basic → layout/basic}/index.jsx +7 -1
- package/templates/template_oa/public/src/components/{Layout/CenterBody → layout/centerBody}/index.jsx +2 -0
- package/templates/template_oa/public/src/components/{Layout/FormBlock → layout/formBlock}/index.jsx +3 -1
- package/templates/{template_oa_jwt/public/src/components/Layout → template_oa/public/src/components/layout}/index.jsx +12 -6
- package/templates/{template_oa_jwt/public/src/components/Layout/Provider → template_oa/public/src/components/layout/provider}/index.jsx +4 -0
- package/templates/{template_offcial/public/src/components/Link → template_oa/public/src/components/link}/index.jsx +16 -0
- package/templates/template_oa/public/src/components/{Nav → nav}/index.jsx +8 -2
- package/templates/{template_admin/public/src/components/Page/PageLoading → template_oa/public/src/components/page/pageLoading}/index.jsx +25 -4
- package/templates/{template_admin/public/src/components/Popup → template_oa/public/src/components/popup}/index.jsx +13 -0
- package/templates/{template_oa_jwt/public/src/components/Select/DepSelect → template_oa/public/src/components/select/depSelect}/index.jsx +15 -0
- package/templates/template_oa/public/src/components/{Select/StaffSelect → select/staffSelect}/index.jsx +27 -0
- package/templates/template_oa/public/src/components/title/index.jsx +3 -0
- package/templates/template_oa/public/src/components/{Toast → toast}/index.jsx +21 -1
- package/templates/template_oa/public/src/components/{Upload → upload}/index.jsx +41 -3
- package/templates/template_oa/public/src/hooks/index.jsx +1 -0
- package/templates/template_oa/public/src/hooks/useDelay.jsx +5 -0
- package/templates/template_oa/public/src/hooks/useImageLoader.jsx +1 -2
- package/templates/template_oa/public/src/hooks/useLoading.jsx +5 -1
- package/templates/template_oa/public/src/hooks/usePreload.jsx +2 -1
- package/templates/template_oa/public/src/hooks/useScrollTop.jsx +12 -0
- package/templates/template_oa/public/src/hooks/useSearch.jsx +28 -2
- package/templates/template_oa/public/src/hooks/useUpdate.jsx +5 -0
- package/templates/template_oa/public/src/index.jsx +15 -1
- package/templates/template_oa/public/src/pages/video/index.jsx +17 -13
- package/templates/template_oa/public/src/provider/app.jsx +33 -2
- package/templates/template_oa/public/src/route.jsx +4 -2
- package/templates/template_oa/public/src/services/common.js +11 -0
- package/templates/template_oa/public/src/services/index.js +44 -2
- package/templates/template_oa/public/src/type.js +48 -0
- package/templates/template_oa/public/src/utils/index.js +34 -17
- package/templates/template_oa_jwt/cli.config.js +1 -1
- package/templates/template_oa_jwt/jsconfig.json +5 -1
- package/templates/template_oa_jwt/package.json +1 -1
- package/templates/template_oa_jwt/public/src/components/dialog/index.jsx +237 -0
- package/templates/{template_oa/public/src/components/Empty → template_oa_jwt/public/src/components/empty}/index.jsx +9 -0
- package/templates/{template_oa/public/src/components/FormRow → template_oa_jwt/public/src/components/formRow}/index.jsx +25 -3
- package/templates/{template_oa/public/src/components/FormTable → template_oa_jwt/public/src/components/formTable}/index.jsx +41 -2
- package/templates/template_oa_jwt/public/src/components/formTable/index.less +18 -0
- package/templates/template_oa_jwt/public/src/components/iconFont/index.jsx +22 -0
- package/templates/template_oa_jwt/public/src/components/{IFrame → iframe}/index.jsx +15 -0
- package/templates/template_oa_jwt/public/src/components/{Layout/Basic → layout/basic}/index.jsx +11 -6
- package/templates/template_oa_jwt/public/src/components/{Layout/CenterBody → layout/centerBody}/index.jsx +2 -0
- package/templates/template_oa_jwt/public/src/components/{Layout/FormBlock → layout/formBlock}/index.jsx +3 -1
- package/templates/{template_oa/public/src/components/Layout → template_oa_jwt/public/src/components/layout}/index.jsx +10 -4
- package/templates/{template_oa/public/src/components/Layout/Provider → template_oa_jwt/public/src/components/layout/provider}/index.jsx +4 -0
- package/templates/template_oa_jwt/public/src/components/{Link → link}/index.jsx +16 -0
- package/templates/template_oa_jwt/public/src/components/{Nav → nav}/index.jsx +11 -5
- package/templates/template_oa_jwt/public/src/components/{Page/PageLoading → page/pageLoading}/index.jsx +25 -4
- package/templates/{template_oa/public/src/components/Popup → template_oa_jwt/public/src/components/popup}/index.jsx +13 -0
- package/templates/{template_oa/public/src/components/Select/DepSelect → template_oa_jwt/public/src/components/select/depSelect}/index.jsx +15 -0
- package/templates/template_oa_jwt/public/src/components/{Select/StaffSelect → select/staffSelect}/index.jsx +27 -0
- package/templates/template_oa_jwt/public/src/components/title/index.jsx +3 -0
- package/templates/template_oa_jwt/public/src/components/toast/index.jsx +80 -0
- package/templates/template_oa_jwt/public/src/components/{Upload → upload}/index.jsx +41 -3
- package/templates/template_oa_jwt/public/src/dictionary/index.js +2 -0
- package/templates/template_oa_jwt/public/src/hooks/index.jsx +2 -2
- package/templates/template_oa_jwt/public/src/hooks/useDelay.jsx +5 -0
- package/templates/template_oa_jwt/public/src/hooks/useImageLoader.jsx +1 -2
- package/templates/template_oa_jwt/public/src/hooks/useLoading.jsx +5 -1
- package/templates/template_oa_jwt/public/src/hooks/usePreload.jsx +2 -1
- package/templates/template_oa_jwt/public/src/hooks/useScrollTop.jsx +12 -0
- package/templates/template_oa_jwt/public/src/hooks/useSearch.jsx +28 -2
- package/templates/template_oa_jwt/public/src/hooks/useUpdate.jsx +5 -0
- package/templates/template_oa_jwt/public/src/pages/demo/index.jsx +17 -11
- package/templates/template_oa_jwt/public/src/provider/app.jsx +30 -1
- package/templates/template_oa_jwt/public/src/route.jsx +4 -2
- package/templates/template_oa_jwt/public/src/services/common.js +13 -1
- package/templates/template_oa_jwt/public/src/services/index.js +52 -8
- package/templates/template_oa_jwt/public/src/services/token.js +7 -0
- package/templates/template_oa_jwt/public/src/utils/index.js +62 -22
- package/templates/template_offcial/cli.config.js +1 -1
- package/templates/template_offcial/jsconfig.json +5 -1
- package/templates/template_offcial/package.json +1 -1
- package/templates/template_offcial/public/src/components/{Footer → footer}/index.jsx +15 -1
- package/templates/template_offcial/public/src/components/{Header → header}/index.jsx +14 -0
- package/templates/{template_app/public/src/components/IconFont → template_offcial/public/src/components/iconFont}/index.jsx +10 -0
- package/templates/template_offcial/public/src/components/{Layout → layout}/index.jsx +10 -3
- package/templates/{template_app/public/src/components/Layout/Provider → template_offcial/public/src/components/layout/provider}/index.jsx +7 -0
- package/templates/template_offcial/public/src/components/link/index.jsx +39 -0
- package/templates/template_offcial/public/src/components/page/pageLoading/index.jsx +51 -0
- package/templates/template_offcial/public/src/components/popup/index.jsx +35 -0
- package/templates/{template_app/public/src/components/Toast → template_offcial/public/src/components/toast}/index.jsx +20 -1
- package/templates/template_offcial/public/src/hooks/index.jsx +1 -0
- package/templates/template_offcial/public/src/hooks/useImageLoader.jsx +1 -0
- package/templates/template_offcial/public/src/hooks/useInToView.jsx +3 -0
- package/templates/template_offcial/public/src/hooks/usePreload.jsx +1 -0
- package/templates/template_offcial/public/src/hooks/useScroll.jsx +8 -0
- package/templates/template_offcial/public/src/index.jsx +15 -2
- package/templates/template_offcial/public/src/pages/index.jsx +8 -1
- package/templates/template_offcial/public/src/pages/pc/index.jsx +4 -2
- package/templates/template_offcial/public/src/provider/app.jsx +28 -2
- package/templates/template_offcial/public/src/route.jsx +4 -2
- package/templates/template_offcial/public/src/services/index.js +38 -2
- package/templates/template_offcial/public/src/services/user.js +3 -3
- package/templates/template_offcial/public/src/type.js +47 -0
- package/templates/template_admin/public/src/components/Alert/index.jsx +0 -0
- package/templates/template_admin/public/src/components/Alert/index.less +0 -0
- package/templates/template_admin/public/src/components/Header/index.jsx +0 -57
- package/templates/template_admin/public/src/components/Layout/CenterBody/index.jsx +0 -15
- package/templates/template_admin/public/src/components/Link/index.jsx +0 -24
- package/templates/template_admin/public/src/components/Loading/index.jsx +0 -14
- package/templates/template_admin/public/src/components/Loading/index.less +0 -85
- package/templates/template_admin/public/src/components/mask/index.jsx +0 -47
- package/templates/template_admin/public/src/components/mask/index.less +0 -32
- package/templates/template_admin/public/src/hooks/useLogin.jsx +0 -33
- package/templates/template_app/public/src/components/Header/index.less +0 -57
- package/templates/template_app/public/src/components/Layout/index.jsx +0 -4
- package/templates/template_app/public/src/hooks/useLogin.jsx +0 -33
- package/templates/template_oa/public/src/components/Alert/index.jsx +0 -0
- package/templates/template_oa/public/src/components/Alert/index.less +0 -0
- package/templates/template_oa/public/src/components/Auth/index.jsx +0 -44
- package/templates/template_oa/public/src/components/Dialog/index.jsx +0 -150
- package/templates/template_oa/public/src/components/Footer/index.jsx +0 -17
- package/templates/template_oa/public/src/components/Footer/index.less +0 -28
- package/templates/template_oa/public/src/components/IconFont/index.jsx +0 -10
- package/templates/template_oa/public/src/components/Link/index.jsx +0 -24
- package/templates/template_oa/public/src/components/Loading/index.jsx +0 -14
- package/templates/template_oa/public/src/components/Loading/index.less +0 -85
- package/templates/template_oa_jwt/public/src/components/Alert/index.jsx +0 -0
- package/templates/template_oa_jwt/public/src/components/Alert/index.less +0 -0
- package/templates/template_oa_jwt/public/src/components/Auth/index.jsx +0 -44
- package/templates/template_oa_jwt/public/src/components/Dialog/index.jsx +0 -150
- package/templates/template_oa_jwt/public/src/components/Footer/index.jsx +0 -17
- package/templates/template_oa_jwt/public/src/components/Footer/index.less +0 -28
- package/templates/template_oa_jwt/public/src/components/Loading/index.jsx +0 -16
- package/templates/template_oa_jwt/public/src/components/Loading/index.less +0 -96
- package/templates/template_offcial/public/src/components/Alert/index.jsx +0 -0
- package/templates/template_offcial/public/src/components/Alert/index.less +0 -0
- package/templates/template_offcial/public/src/components/IconFont/index.jsx +0 -10
- package/templates/template_offcial/public/src/components/Layout/Provider/index.jsx +0 -12
- package/templates/template_offcial/public/src/components/Page/PageLoading/index.jsx +0 -30
- package/templates/template_offcial/public/src/components/Popup/index.jsx +0 -22
- package/templates/template_offcial/public/src/components/Toast/index.jsx +0 -60
- /package/templates/template_admin/public/src/components/{IconFont → iconFont}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{Layout/Basic → layout/basic}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{Layout/CenterBody → layout/centerBody}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{Layout → layout}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{Link → link}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{Menu → menu}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{Page/PageLoading → page/pageLoading}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{Popup → popup}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{Toast → toast}/index.less +0 -0
- /package/templates/template_admin/public/src/components/{TopMenu → topMenu}/index.less +0 -0
- /package/templates/{template_admin/public/src/components/Header → template_app/public/src/components/header}/index.less +0 -0
- /package/templates/template_app/public/src/components/{IconFont → iconFont}/index.less +0 -0
- /package/templates/template_app/public/src/components/{Layout/App → layout/app}/index.less +0 -0
- /package/templates/template_app/public/src/components/{Link → link}/index.less +0 -0
- /package/templates/template_app/public/src/components/{Marquee → marquee}/index.less +0 -0
- /package/templates/template_app/public/src/components/{Page/PageLoading → page/pageLoading}/index.less +0 -0
- /package/templates/template_app/public/src/components/{Popup → popup}/index.less +0 -0
- /package/templates/template_app/public/src/components/{Toast → toast}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Dialog → dialog}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Empty → empty}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{FormRow → formRow}/index.less +0 -0
- /package/templates/{template_oa_jwt/public/src/components/FormTable → template_oa/public/src/components/formTable}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{IconFont → iconFont}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{IFrame → iframe}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Layout/Basic → layout/basic}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Layout/CenterBody → layout/centerBody}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Layout/FormBlock → layout/formBlock}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Layout → layout}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Link → link}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Nav → nav}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Page/PageLoading → page/pageLoading}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Popup → popup}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Select/StaffSelect → select/staffSelect}/index.less +0 -0
- /package/templates/template_oa/public/src/components/{Toast → toast}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Dialog → dialog}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Empty → empty}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{FormRow → formRow}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{IconFont → iconFont}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{IFrame → iframe}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Layout/Basic → layout/basic}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Layout/CenterBody → layout/centerBody}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Layout/FormBlock → layout/formBlock}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Layout → layout}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Link → link}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Nav → nav}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Page/PageLoading → page/pageLoading}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Popup → popup}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Select/StaffSelect → select/staffSelect}/index.less +0 -0
- /package/templates/template_oa_jwt/public/src/components/{Toast → toast}/index.less +0 -0
- /package/templates/template_offcial/public/src/components/{Footer → footer}/index.less +0 -0
- /package/templates/template_offcial/public/src/components/{Header → header}/index.less +0 -0
- /package/templates/template_offcial/public/src/components/{IconFont → iconFont}/index.less +0 -0
- /package/templates/template_offcial/public/src/components/{Layout → layout}/index.less +0 -0
- /package/templates/template_offcial/public/src/components/{Link → link}/index.less +0 -0
- /package/templates/template_offcial/public/src/components/{Page/PageLoading → page/pageLoading}/index.less +0 -0
- /package/templates/template_offcial/public/src/components/{Popup → popup}/index.less +0 -0
- /package/templates/template_offcial/public/src/components/{Toast → toast}/index.less +0 -0
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
// @ts-ignore
|
|
1
2
|
import Axios from 'axios';
|
|
3
|
+
// @ts-ignore
|
|
2
4
|
import qs from 'qs';
|
|
5
|
+
// @ts-ignore
|
|
3
6
|
import { message } from 'antd';
|
|
7
|
+
|
|
8
|
+
|
|
4
9
|
const axios = Axios.create();
|
|
10
|
+
// @ts-ignore
|
|
5
11
|
console.log(`========API_ROOT:${API_HOST}========`);
|
|
6
12
|
|
|
13
|
+
// @ts-ignore
|
|
7
14
|
export const API_ROOT = API_HOST;
|
|
8
15
|
const tokenMode='header';//header,cookie
|
|
9
16
|
const tokenName='Authorization';
|
|
@@ -29,6 +36,7 @@ export const setJwt = (value) => {
|
|
|
29
36
|
jwt = value;
|
|
30
37
|
};
|
|
31
38
|
|
|
39
|
+
// @ts-ignore
|
|
32
40
|
window.setJwt=setJwt;
|
|
33
41
|
export const setLogout=(fn)=>{
|
|
34
42
|
logout=fn;
|
|
@@ -93,9 +101,23 @@ axios.interceptors.response.use(
|
|
|
93
101
|
);
|
|
94
102
|
|
|
95
103
|
|
|
104
|
+
/**
|
|
105
|
+
* @typedef RequestOptions 发送请求的扩展信息
|
|
106
|
+
* @property {number|boolean} ttl=false - 接口缓存周期,开启后默认为2秒,ttl单位为毫秒
|
|
107
|
+
* @property {string|boolean} noInterceptors=false - 关闭拦截类型,'all'为关闭包括401、403在内的所有异常,默认情况下只拦截response.code不为0的情况
|
|
108
|
+
*
|
|
109
|
+
*/
|
|
96
110
|
|
|
97
111
|
|
|
98
112
|
let buffer = {};
|
|
113
|
+
/**
|
|
114
|
+
* @function
|
|
115
|
+
* @description 发送一个GET请求
|
|
116
|
+
* @param {string} url - 请求地址
|
|
117
|
+
* @param {Object} [param] - 请求的参数
|
|
118
|
+
* @param {RequestOptions} [options] - 扩展参数
|
|
119
|
+
* @returns {Promise<Object>}
|
|
120
|
+
*/
|
|
99
121
|
export async function GET_DEFAULT(url, param, options) {
|
|
100
122
|
if (param) param = qs.stringify(param, { arrayFormat: 'indices' });
|
|
101
123
|
let now = Date.now();
|
|
@@ -128,6 +150,13 @@ export async function GET_DEFAULT(url, param, options) {
|
|
|
128
150
|
return response && response.data ? response.data : null;
|
|
129
151
|
}
|
|
130
152
|
|
|
153
|
+
/**
|
|
154
|
+
* @function
|
|
155
|
+
* @description 发送一个GET请求
|
|
156
|
+
* @param {string} url - 请求地址
|
|
157
|
+
* @param {Object} [param] - 请求的参数
|
|
158
|
+
* @returns {Promise<Object>}
|
|
159
|
+
*/
|
|
131
160
|
export async function GET_DEFAULT_CROSS(url, param) {
|
|
132
161
|
if (param) param = qs.stringify(param, { arrayFormat: 'indices' });
|
|
133
162
|
|
|
@@ -141,7 +170,14 @@ export async function GET_DEFAULT_CROSS(url, param) {
|
|
|
141
170
|
return response && response.data ? response.data : null;
|
|
142
171
|
}
|
|
143
172
|
|
|
144
|
-
|
|
173
|
+
/**
|
|
174
|
+
* 发送一个POST请求
|
|
175
|
+
* @param {string} url - 请求地址
|
|
176
|
+
* @param {Object} [params] - 请求的参数
|
|
177
|
+
* @param {RequestOptions} [options] - 扩展参数
|
|
178
|
+
* @returns {Promise<Object>}
|
|
179
|
+
*/
|
|
180
|
+
export async function POST_DEFAULT(url, params, options) {
|
|
145
181
|
let data = params;
|
|
146
182
|
// if (params) params = qs.stringify(params, { arrayFormat: 'indices' });
|
|
147
183
|
// if (typeof params === 'string') {
|
|
@@ -151,7 +187,7 @@ export async function POST_DEFAULT(url, params, method, options) {
|
|
|
151
187
|
// }
|
|
152
188
|
let token= await GET_TOKEN();
|
|
153
189
|
let response = await axios({
|
|
154
|
-
method:
|
|
190
|
+
method: 'POST',
|
|
155
191
|
url: url,
|
|
156
192
|
data:{
|
|
157
193
|
_token:token,
|
|
@@ -163,6 +199,12 @@ export async function POST_DEFAULT(url, params, method, options) {
|
|
|
163
199
|
return response && response.data ? response.data : null;
|
|
164
200
|
}
|
|
165
201
|
|
|
202
|
+
/**
|
|
203
|
+
* 发送一个POST请求
|
|
204
|
+
* @param {string} url - 请求地址
|
|
205
|
+
* @param {Object} [params] - 请求的参数
|
|
206
|
+
* @returns {Promise<Object>}
|
|
207
|
+
*/
|
|
166
208
|
export async function POST_DEFAULT_CROSS(url, params) {
|
|
167
209
|
let token= await GET_TOKEN();
|
|
168
210
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* 可自行扩展任意数量的属性
|
|
4
|
+
* @typedef {Object<string, any>} OtherAny
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 指向DOM节点的ref
|
|
9
|
+
* @typedef {object} RefDomElement
|
|
10
|
+
* @property {HTMLElement} current - DOM节点
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @typedef {object} FormDataInfo
|
|
17
|
+
* @property {string} btnControl
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @typedef {[FormDataInfo,Function]} UseStateFormData
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @typedef {FormDataInfo & OtherAny} TableContentData
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 分页
|
|
32
|
+
* @typedef {object} Pagination
|
|
33
|
+
* @property {number} current - 当前页码,1~N
|
|
34
|
+
* @property {number} pageSize=10 - 分页大小
|
|
35
|
+
* @property {number} total - 总记录条数
|
|
36
|
+
* @property {number} startIdx - 当前页面第一条的数据索引起始值
|
|
37
|
+
*
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 接口response数据
|
|
43
|
+
* @typedef {object} ServicesResponse
|
|
44
|
+
* @property {number} code - 接口处理结果,0为成功
|
|
45
|
+
* @property {object} data - 接口返回的数据
|
|
46
|
+
* @property {Pagination} page - 分页数据
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* 打开一个第三方链接
|
|
5
|
+
* @param {string} link - 链接地址
|
|
6
|
+
* @param {string} [target='_blank'] - 打开方式,_blank:新窗口打开
|
|
7
|
+
*/
|
|
3
8
|
export const openLink = (link, target = '_blank') => {
|
|
4
9
|
let domLink = document.createElement('a');
|
|
5
10
|
domLink.href = link;
|
|
6
11
|
domLink.setAttribute('target', target);
|
|
12
|
+
// @ts-ignore
|
|
7
13
|
domLink.style.opacity = 0;
|
|
14
|
+
// @ts-ignore
|
|
8
15
|
domLink.style.zIndex = -999;
|
|
9
16
|
document.body.appendChild(domLink);
|
|
10
17
|
domLink.click();
|
|
@@ -13,30 +20,38 @@ export const openLink = (link, target = '_blank') => {
|
|
|
13
20
|
}, 200);
|
|
14
21
|
}
|
|
15
22
|
|
|
23
|
+
/**
|
|
24
|
+
* 判断当前是否为移动端
|
|
25
|
+
* @returns {boolean}
|
|
26
|
+
*/
|
|
16
27
|
export const isMobile = () => {
|
|
17
28
|
return navigator.userAgent.match(
|
|
18
29
|
/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
|
|
19
|
-
)
|
|
30
|
+
)?true:false
|
|
20
31
|
}
|
|
21
32
|
|
|
22
|
-
export const toHref = (url, replace, newWindow) => {
|
|
23
|
-
if(window.knFeishu){
|
|
24
|
-
window.knFeishu.ToHref(url,replace,newWindow);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (newWindow) {
|
|
28
|
-
window.open(url);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
if (replace) {
|
|
32
|
-
location.replace(url);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
location.href = url;
|
|
36
|
-
};
|
|
37
33
|
|
|
34
|
+
/**
|
|
35
|
+
* 跳转URL-兼容飞书
|
|
36
|
+
* @param {string} url - 链接地址
|
|
37
|
+
* @param {object} [options] - 参数
|
|
38
|
+
* @param {boolean} [options.replace] - 是否要覆盖当前URL记录
|
|
39
|
+
* @param {boolean} [options.newWindow] - 是否新窗口中打开
|
|
40
|
+
* @param {boolean} [options.reload] - 是否重载当前页面
|
|
41
|
+
*
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
38
44
|
export const jumpUrl=(url,options={})=>{
|
|
39
|
-
const {replace,newWindow,reload}= options;
|
|
45
|
+
const {replace=false,newWindow=false,reload=false}= options;
|
|
46
|
+
if(!reload){
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
if(window.knFeishu){
|
|
49
|
+
// @ts-ignore
|
|
50
|
+
window.knFeishu.ToHref(url,replace,newWindow);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
40
55
|
if(reload){
|
|
41
56
|
location.reload();
|
|
42
57
|
return;
|
|
@@ -56,7 +71,9 @@ export const jumpUrl=(url,options={})=>{
|
|
|
56
71
|
|
|
57
72
|
// 关闭页面
|
|
58
73
|
export const closeWindow = () => {
|
|
74
|
+
// @ts-ignore
|
|
59
75
|
if (window.knFeishu && window.knFeishu.closeWindow) {
|
|
76
|
+
// @ts-ignore
|
|
60
77
|
window.knFeishu.closeWindow();
|
|
61
78
|
} else {
|
|
62
79
|
if (window.close) {
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
import React from 'react';
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
import ReactDOM from 'react-dom';
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
import { Button } from 'antd';
|
|
7
|
+
|
|
8
|
+
import IconFont from '@/components/iconFont';
|
|
9
|
+
|
|
10
|
+
import Popup from '@/components/popup';
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
import styles from './index.less';
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 对话框组件
|
|
17
|
+
* @param {object} props
|
|
18
|
+
* @param {string} props.title - 对话框的标题内容
|
|
19
|
+
* @param {string} [props.okText='确认'] - 确认按钮文案
|
|
20
|
+
* @param {string} [props.cancelText='取消'] - 取消按钮文案
|
|
21
|
+
* @param {boolean} [props.noCancel=false] - 不显示取消按钮
|
|
22
|
+
* @param {()=>Promise<boolean>} [props.onOk] - 点击确认按钮回调
|
|
23
|
+
* @param {()=>Promise<boolean>} [props.onClose] - 点击关闭的回调
|
|
24
|
+
* @param {()=>void} [props.destory] - 对话框销毁的回调
|
|
25
|
+
* @param {JSX.Element|any} [props.children] - 子组件
|
|
26
|
+
*
|
|
27
|
+
* @returns {JSX.Element}
|
|
28
|
+
*/
|
|
29
|
+
const Dialog = (props) => {
|
|
30
|
+
const {
|
|
31
|
+
title='',
|
|
32
|
+
okText='确认',
|
|
33
|
+
cancelText='取消',
|
|
34
|
+
noCancel=false,
|
|
35
|
+
onOk:fnOnOk,
|
|
36
|
+
onClose:fnOnClose,
|
|
37
|
+
destory,
|
|
38
|
+
children
|
|
39
|
+
}= props;
|
|
40
|
+
async function onClose() {
|
|
41
|
+
if (fnOnClose) {
|
|
42
|
+
let ret = await fnOnClose();
|
|
43
|
+
if (ret) {
|
|
44
|
+
destory();
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
destory();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function onOk() {
|
|
51
|
+
if (fnOnOk) {
|
|
52
|
+
let ret = await fnOnOk();
|
|
53
|
+
if (ret) {
|
|
54
|
+
destory();
|
|
55
|
+
}
|
|
56
|
+
} else {
|
|
57
|
+
destory();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return (
|
|
61
|
+
<section className={styles.body}>
|
|
62
|
+
<div className={styles.mask} />
|
|
63
|
+
<section className={styles.wrap}>
|
|
64
|
+
<div className={styles.header}>
|
|
65
|
+
<span>{title}</span>
|
|
66
|
+
<IconFont icon='close' className={styles.close} onClick={onClose} />
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
{children}
|
|
70
|
+
|
|
71
|
+
<div className={styles.footer}>
|
|
72
|
+
<Button type='primary' onClick={onOk}>
|
|
73
|
+
{okText}
|
|
74
|
+
</Button>
|
|
75
|
+
{noCancel ? (
|
|
76
|
+
''
|
|
77
|
+
) : (
|
|
78
|
+
<Button onClick={onClose} style={{ marginLeft: '10px' }}>
|
|
79
|
+
{cancelText}
|
|
80
|
+
</Button>
|
|
81
|
+
)}
|
|
82
|
+
</div>
|
|
83
|
+
</section>
|
|
84
|
+
</section>
|
|
85
|
+
);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* 显示一个对话框
|
|
90
|
+
* @param {Object} props
|
|
91
|
+
* @param {string} props.title - 对话框标题
|
|
92
|
+
* @param {string} [props.okText='确认'] - 确认按钮文案
|
|
93
|
+
* @param {string} [props.cancelText='取消'] - 取消按钮文案
|
|
94
|
+
* @param {boolean} [props.noCancel=false] - 不显示取消按钮
|
|
95
|
+
* @param {()=>Promise<boolean>} [props.onOk] - 点击确认按钮回调
|
|
96
|
+
* @param {()=>Promise<boolean>} [props.onClose] - 点击关闭的回调
|
|
97
|
+
* @param {JSX.Element|any} [props.component] - 对话框内的实际内容
|
|
98
|
+
*
|
|
99
|
+
* @returns {Promise<boolean>}
|
|
100
|
+
*/
|
|
101
|
+
export const ShowDialog = (props={title:''}) => {
|
|
102
|
+
const {title,onOk,okText,cancelText,noCancel,onClose,component}= props;
|
|
103
|
+
return new Promise((reslove) => {
|
|
104
|
+
let popup = Popup(reslove);
|
|
105
|
+
ReactDOM.render(
|
|
106
|
+
<Dialog
|
|
107
|
+
title={title}
|
|
108
|
+
destory={popup.destory}
|
|
109
|
+
onOk={onOk}
|
|
110
|
+
okText={okText}
|
|
111
|
+
cancelText={cancelText}
|
|
112
|
+
noCancel={noCancel}
|
|
113
|
+
onClose={onClose}
|
|
114
|
+
>
|
|
115
|
+
{component}
|
|
116
|
+
</Dialog>,
|
|
117
|
+
popup.dom
|
|
118
|
+
);
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* 一个带确认和取消的确认对话框
|
|
124
|
+
* @param {Object} props
|
|
125
|
+
* @param {string} props.title - 对话框标题
|
|
126
|
+
* @param {string} [props.okText='确认'] - 确认按钮文案
|
|
127
|
+
* @param {string} [props.cancelText='取消'] - 取消按钮文案
|
|
128
|
+
* @param {boolean} [props.noCancel=false] - 不显示取消按钮
|
|
129
|
+
* @param {JSX.Element|any} [props.content] - 对话框内的实际内容
|
|
130
|
+
* @returns {Promise<boolean>}
|
|
131
|
+
*/
|
|
132
|
+
export const ShowConfirm = async (props) => {
|
|
133
|
+
if (typeof props === 'string') {
|
|
134
|
+
// @ts-ignore
|
|
135
|
+
props = { content: props };
|
|
136
|
+
}
|
|
137
|
+
const {title='注意',okText='确认',cancelText='取消',noCancel=false,content}= props;
|
|
138
|
+
|
|
139
|
+
let result = false;
|
|
140
|
+
await ShowDialog({
|
|
141
|
+
title: title || '注意',
|
|
142
|
+
okText: okText || '确认',
|
|
143
|
+
cancelText: cancelText || '取消',
|
|
144
|
+
noCancel: noCancel,
|
|
145
|
+
onClose: async () => {
|
|
146
|
+
result = false;
|
|
147
|
+
return Promise.resolve(true);
|
|
148
|
+
},
|
|
149
|
+
onOk: async () => {
|
|
150
|
+
result = true;
|
|
151
|
+
return Promise.resolve(true);
|
|
152
|
+
},
|
|
153
|
+
component: (
|
|
154
|
+
<div className={styles.confirmWrap}>
|
|
155
|
+
{content}
|
|
156
|
+
</div>
|
|
157
|
+
),
|
|
158
|
+
});
|
|
159
|
+
return result;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* 一个只有确认按钮的提示框
|
|
164
|
+
* @param {Object} props
|
|
165
|
+
* @param {string} [props.okText='确认'] - 确认按钮文案
|
|
166
|
+
* @param {JSX.Element|any} [props.content] - 对话框内的实际内容
|
|
167
|
+
* @param {()=>void} [props.onOk] - 点击确认的回调
|
|
168
|
+
* @param {()=>void} props.destory - 关闭对话框的回调
|
|
169
|
+
* @param {string} [props.type='error'] - 警告类型,'error'|'suuccess'
|
|
170
|
+
*
|
|
171
|
+
* @returns {JSX.Element}
|
|
172
|
+
*/
|
|
173
|
+
const Alert = (props) => {
|
|
174
|
+
const {onOk:fnOnOk,destory,type,content,okText='确认'}= props;
|
|
175
|
+
function onOk() {
|
|
176
|
+
if (fnOnOk) fnOnOk();
|
|
177
|
+
destory();
|
|
178
|
+
}
|
|
179
|
+
return (
|
|
180
|
+
<section className={styles.body }>
|
|
181
|
+
<div className={styles.mask} />
|
|
182
|
+
<section className={styles.wrapAlert}>
|
|
183
|
+
<div className={styles.alertContent}>
|
|
184
|
+
<div className={type === 'success' ? styles.iconSuccess : styles.iconError} />
|
|
185
|
+
<span>{content}</span>
|
|
186
|
+
</div>
|
|
187
|
+
<div className={styles.alertFooter}>
|
|
188
|
+
<span onClick={onOk}>{okText}</span>
|
|
189
|
+
</div>
|
|
190
|
+
</section>
|
|
191
|
+
</section>
|
|
192
|
+
);
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* 显示一个alert
|
|
197
|
+
* @param {Object} props
|
|
198
|
+
* @param {JSX.Element|any} [props.content] - 对话框内的实际内容
|
|
199
|
+
* @param {()=>void} [props.onOk] - 点击确认的回调
|
|
200
|
+
* @param {string} [props.type='success'] - 警告类型,'error'|'suuccess'
|
|
201
|
+
*
|
|
202
|
+
* @returns {Promise<void>}
|
|
203
|
+
*/
|
|
204
|
+
export const ShowAlert = (props) => {
|
|
205
|
+
if (props.constructor === String) {
|
|
206
|
+
// @ts-ignore
|
|
207
|
+
props = { content: props };
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
const {type='success',onOk,content}=props;
|
|
211
|
+
|
|
212
|
+
return new Promise((reslove) => {
|
|
213
|
+
let popup = Popup(reslove);
|
|
214
|
+
|
|
215
|
+
ReactDOM.render(
|
|
216
|
+
<Alert destory={popup.destory} type={type} onOk={onOk} content={content} />,
|
|
217
|
+
popup.dom
|
|
218
|
+
);
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* 显示一个错误提示alert
|
|
224
|
+
* @param {Object} props
|
|
225
|
+
* @param {JSX.Element|any} [props.content] - 对话框内的实际内容
|
|
226
|
+
* @param {()=>void} [props.onOk] - 点击确认的回调
|
|
227
|
+
*
|
|
228
|
+
* @returns {Promise<void>}
|
|
229
|
+
*/
|
|
230
|
+
export const ShowErrorAlert = (props) => {
|
|
231
|
+
if (props.constructor === String) {
|
|
232
|
+
props = { content: props };
|
|
233
|
+
}
|
|
234
|
+
return ShowAlert({ ...props, type: 'fail' });
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
export default Dialog;
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
// @ts-ignore
|
|
1
2
|
import React from 'react';
|
|
3
|
+
// @ts-ignore
|
|
2
4
|
import { Empty, Button } from 'antd';
|
|
5
|
+
|
|
6
|
+
// @ts-ignore
|
|
3
7
|
import styles from './index.less';
|
|
4
8
|
|
|
5
9
|
/**
|
|
6
10
|
* 当table数据为空时下方有“添加数据”按钮
|
|
11
|
+
* @param {object} props
|
|
12
|
+
* @param {()=>void} [props.onClick] - 点击添加数据的回调
|
|
13
|
+
* @param {boolean} [props.editmode] - 是否允许编辑模式,允许的话就会有添加数据的按钮
|
|
14
|
+
*
|
|
15
|
+
* @returns {JSX.Element}
|
|
7
16
|
*/
|
|
8
17
|
function TableEmpty(props) {
|
|
9
18
|
return (
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
// @ts-ignore
|
|
2
5
|
import styles from './index.less';
|
|
3
6
|
|
|
7
|
+
/**
|
|
8
|
+
* 表单的行组件,用于将子组件按照一行2列方式排列
|
|
9
|
+
* @param {Object} props
|
|
10
|
+
* @param {JSX.Element[]|JSX.Element} props.children
|
|
11
|
+
*
|
|
12
|
+
* @returns {JSX.Element}
|
|
13
|
+
*/
|
|
4
14
|
const FormRow = (props) => {
|
|
5
15
|
function createCol(item, idx) {
|
|
6
16
|
if (!item) return '';
|
|
@@ -9,6 +19,7 @@ const FormRow = (props) => {
|
|
|
9
19
|
<div key={idx} className={styles.formRow}>
|
|
10
20
|
<hgroup className={styles.row}>
|
|
11
21
|
<div className={styles.title}>
|
|
22
|
+
{/* @ts-ignore */}
|
|
12
23
|
<div required={editmode && item.props.required}>{item.props.label}</div>
|
|
13
24
|
</div>
|
|
14
25
|
<div className={styles.data}>{item}</div>
|
|
@@ -18,20 +29,31 @@ const FormRow = (props) => {
|
|
|
18
29
|
}
|
|
19
30
|
return (
|
|
20
31
|
<section className={styles.formRowBody}>
|
|
32
|
+
{/* @ts-ignore */}
|
|
21
33
|
{props.children.length > 0 ? props.children.map(createCol) : createCol(props.children)}
|
|
22
34
|
</section>
|
|
23
35
|
);
|
|
24
36
|
};
|
|
25
37
|
|
|
38
|
+
/**
|
|
39
|
+
* 表单的行组件中的列组件
|
|
40
|
+
* @param {Object} props
|
|
41
|
+
* @param {JSX.Element[]|JSX.Element} props.children
|
|
42
|
+
* @param {boolean} [props.editmode=true] - 可编辑模式
|
|
43
|
+
* @param {string} [props.txtdata='-'] - 列的标题
|
|
44
|
+
* @param {boolean} [props.textarea=false] - 是否多行显示文本
|
|
45
|
+
*
|
|
46
|
+
* @returns {JSX.Element|JSX.Element[]|any}
|
|
47
|
+
*/
|
|
26
48
|
function HocEditControl(props) {
|
|
27
49
|
const { editmode = true, txtdata ,textarea} = props;
|
|
28
50
|
if (editmode) {
|
|
29
51
|
return props.children;
|
|
30
52
|
}
|
|
31
53
|
if(textarea){
|
|
32
|
-
return <span style={{whiteSpace:'pre-wrap'}}>{txtdata
|
|
54
|
+
return <span style={{whiteSpace:'pre-wrap'}}>{txtdata}</span>
|
|
33
55
|
}
|
|
34
|
-
return <span>{txtdata
|
|
56
|
+
return <span>{txtdata}</span>;
|
|
35
57
|
}
|
|
36
58
|
|
|
37
59
|
FormRow.Col = HocEditControl;
|
|
@@ -1,6 +1,46 @@
|
|
|
1
|
+
// @ts-ignore
|
|
1
2
|
import React ,{useImperativeHandle,useState,forwardRef} from 'react';
|
|
3
|
+
|
|
4
|
+
// @ts-ignore
|
|
2
5
|
import uuid from 'js-uuid';
|
|
3
6
|
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
import styles from './index.less';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {object} ColumnsOptions
|
|
13
|
+
* @property {string} formItemName
|
|
14
|
+
* @property {(record:any,index:number,event:any)=>void} onDel
|
|
15
|
+
* @property {(record:any,index:number,event:any)=>void} onAdd
|
|
16
|
+
* @property {(record:any,index:number,event:any)=>void} onCopy
|
|
17
|
+
* @property {(initValue:[],event:any)=>void} onReset
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 表格表单组件
|
|
22
|
+
* @param {Object} props
|
|
23
|
+
* @param {JSX.Element|any} props.Table - Table组件,一般为antd的Table组件
|
|
24
|
+
* @param {Object} props.form - Form组件
|
|
25
|
+
* @param {string} props.formItemName - 表格FormItem的name
|
|
26
|
+
* @param {boolean} [props.saveLast=false] - 是否当没有数据时,默认保留一行数据
|
|
27
|
+
* @param {Object[]} [props.initialValue] - 初始数据
|
|
28
|
+
*
|
|
29
|
+
* @param {(record:object,index:number)=>object[]} [props.onCopy] - 点击复制的回调
|
|
30
|
+
* @param {(record:object,index:number)=>object[]} [props.onAdd] - 点击添加的回调
|
|
31
|
+
*
|
|
32
|
+
* @param {(value:any)=>void} [props.onChange] - 数据发生变动时的回调
|
|
33
|
+
* @param {(value:any)=>void} [props.onRefresh] - 刷新时的回调
|
|
34
|
+
*
|
|
35
|
+
* @param {(options:ColumnsOptions)=>[]} props.columns - 获取列配置数据的回调
|
|
36
|
+
*
|
|
37
|
+
* @param {Object} [props.newdata] - 添加新行的数据模版
|
|
38
|
+
* @param {Object} [props.antTableOptions] - antd的Table扩展参数
|
|
39
|
+
*
|
|
40
|
+
* @param {any} ref
|
|
41
|
+
*
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
4
44
|
const TableFormItem =(props,ref)=> {
|
|
5
45
|
const {Table,form,formItemName,saveLast} = props;
|
|
6
46
|
const getNewId=()=>{
|
|
@@ -119,10 +159,9 @@ const TableFormItem =(props,ref)=> {
|
|
|
119
159
|
onReset,
|
|
120
160
|
}));
|
|
121
161
|
|
|
122
|
-
|
|
123
162
|
return (
|
|
124
|
-
|
|
125
163
|
<Table
|
|
164
|
+
className={styles.table}
|
|
126
165
|
{...{rowKey: '_rowKey',...props.antTableOptions}}
|
|
127
166
|
dataSource={value}
|
|
128
167
|
columns={props.columns({formItemName,onDel, onAdd,onReset,onCopy})}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.table {
|
|
2
|
+
tr {
|
|
3
|
+
th, th>div {
|
|
4
|
+
text-align: center;
|
|
5
|
+
&[required]:before {
|
|
6
|
+
font-size: 0.12rem;
|
|
7
|
+
content: '*';
|
|
8
|
+
color: #f04134;
|
|
9
|
+
margin-right: 10px;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
:global {
|
|
14
|
+
.ant-form-item-explain-error {
|
|
15
|
+
text-align: left;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
import styles from'./index.less';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* iconFont图标
|
|
9
|
+
* @param {object} props
|
|
10
|
+
* @param {string} [props.icon] - 图标名称
|
|
11
|
+
* @param {string} [props.className] - 扩展类名
|
|
12
|
+
* @param {()=>void} [props.onClick] - 点击回调
|
|
13
|
+
*
|
|
14
|
+
* @returns {JSX.Element}
|
|
15
|
+
*/
|
|
16
|
+
const IconFont=(props)=>{
|
|
17
|
+
const {icon,className,...others} = props;
|
|
18
|
+
return (
|
|
19
|
+
<span {...others} className={`iconfont icon-${icon} ${styles.iconBox} ${className||''}`} ></span>
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
export default IconFont;
|