From 5046d0d13dc6a8563b8e54e31913bc44cfa1072f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 26 四月 2022 19:23:18 +0800 Subject: [PATCH] 2022-04-26 --- src/components/normalform/modalform/index.scss | 5 src/templates/zshare/modalform/index.jsx | 68 src/mob/components/topbar/normal-navbar/index.scss | 9 src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx | 23 src/tabviews/formtab/index.jsx | 27 src/menu/components/timeline/normal-timeline/index.jsx | 1 src/tabviews/custom/components/editor/braft-editor/index.jsx | 4 src/tabviews/zshare/mutilform/index.scss | 10 src/menu/components/form/dragtitle/options.jsx | 2 src/mob/mobshell/index.jsx | 8 src/menu/components/card/balcony/options.jsx | 31 src/templates/zshare/verifycard/customscript/index.jsx | 57 src/views/menudesign/printmenuform/index.jsx | 6 src/locales/zh-CN/model.js | 1 src/menu/components/chart/antv-scatter/index.jsx | 1 src/menu/components/table/edit-table/columns/editColumn/index.scss | 25 src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx | 11 src/menu/components/chart/antv-dashboard/chartcompile/formconfig.jsx | 24 public/README.txt | 5 src/menu/components/table/edit-table/columns/editColumn/index.jsx | 405 src/templates/zshare/editTable/index.scss | 16 src/tabviews/zshare/actionList/changeuserbutton/index.jsx | 7 src/menu/components/form/normal-form/index.scss | 6 src/menu/components/table/edit-table/columns/tableIn/index.scss | 2 src/menu/datasource/verifycard/index.jsx | 33 src/assets/css/main.scss | 41 src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx | 40 src/components/header/index.scss | 19 src/menu/components/card/cardcellcomponent/index.jsx | 42 src/mob/components/navbar/normal-navbar/menus/drags/card.jsx | 1 src/menu/components/form/tab-form/index.jsx | 39 src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx | 2 src/pc/menushell/card.jsx | 7 src/menu/components/carousel/prop-card/index.jsx | 1 src/mob/searchconfig/searchdragelement/card.jsx | 11 src/menu/components/search/main-search/dragsearch/card.jsx | 20 src/menu/components/card/cardcomponent/index.jsx | 5 src/templates/modalconfig/dragelement/index.scss | 10 src/menu/components/chart/antv-pie/index.jsx | 1 src/menu/components/table/edit-table/columns/index.scss | 8 src/menu/components/card/prop-card/index.jsx | 23 src/templates/zshare/customscript/index.jsx | 12 src/menu/components/tabs/tabcomponents/card.jsx | 6 src/templates/zshare/modalform/modaleditable/index.jsx | 51 src/menu/components/tabs/paste/index.jsx | 11 src/menu/components/table/edit-table/columns/index.jsx | 31 src/tabviews/custom/components/chart/antv-bar-line/index.jsx | 35 package-lock.json | 27 src/assets/css/viewstyle.scss | 7 src/tabviews/custom/components/chart/antv-dashboard/index.jsx | 4 src/views/login/loginform.jsx | 3 src/menu/components/share/actioncomponent/dragaction/card.jsx | 12 src/tabviews/verupmanage/subtabtable/index.jsx | 38 src/tabviews/zshare/topSearch/index.jsx | 42 src/menu/components/form/tab-form/index.scss | 6 .VSCodeCounter/2022-03-01_15-52-00/details.md | 1007 +++ src/menu/components/card/prop-card/index.scss | 26 src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx | 31 src/menu/components/chart/chart-custom/index.jsx | 1 src/menu/components/card/cardsimplecomponent/options.jsx | 2 src/tabviews/custom/components/table/edit-table/index.jsx | 298 src/templates/sharecomponent/columncomponent/dragcolumn/index.jsx | 19 src/mob/components/tabs/tabcomponents/index.jsx | 26 src/api/index.js | 25 src/mob/components/formdragelement/index.scss | 28 src/mob/mobshell/card.jsx | 12 src/menu/sysinterface/index.jsx | 5 src/mob/components/search/single-search/index.jsx | 1 src/tabviews/custom/components/card/prop-card/index.scss | 26 src/menu/components/share/searchcomponent/index.scss | 8 src/pc/bgcontroller/index.jsx | 2 src/views/pcdesign/index.jsx | 103 src/menu/datasource/verifycard/settingform/index.jsx | 15 src/mob/components/formdragelement/index.jsx | 36 src/mob/components/tabs/tabcomponents/card.jsx | 6 src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx | 7 src/menu/components/share/actioncomponent/index.jsx | 7 src/templates/modalconfig/menuform/index.jsx | 2 src/templates/modalconfig/source.jsx | 10 src/menu/components/share/copycomponent/index.jsx | 15 src/templates/sharecomponent/treesettingcomponent/settingform/index.scss | 2 src/pc/createview/settingform/index.jsx | 41 src/templates/zshare/editTable/index.jsx | 54 src/menu/components/editor/braft-editor/options.jsx | 12 src/mob/components/tabs/antv-tabs/index.jsx | 36 src/tabviews/custom/components/tree/antd-tree/index.jsx | 4 src/tabviews/zshare/actionList/popupbutton/index.jsx | 9 src/tabviews/custom/components/tabs/antv-tabs/index.jsx | 20 src/tabviews/zshare/normalTable/index.jsx | 37 src/menu/components/form/formaction/actionform/index.scss | 5 src/tabviews/custom/components/group/normal-group/index.scss | 11 src/views/menudesign/menuform/index.jsx | 2 src/menu/datasource/index.jsx | 96 src/menu/components/module/voucher/index.jsx | 164 src/templates/zshare/menuform/index.jsx | 2 src/menu/components/form/formaction/index.jsx | 2 src/menu/components/tree/antd-tree/index.jsx | 1 src/tabviews/custom/index.scss | 3 src/views/billprint/index.jsx | 250 src/tabviews/subtabtable/index.jsx | 26 src/tabviews/zshare/actionList/normalbutton/index.jsx | 85 src/tabviews/custom/components/table/normal-table/index.scss | 9 src/views/menudesign/index.jsx | 36 src/menu/modulesource/option.jsx | 4 src/tabviews/custom/components/card/data-card/index.jsx | 170 src/menu/replaceField/settingform/index.jsx | 160 src/tabviews/custom/components/module/voucher/index.jsx | 130 src/templates/sharecomponent/actioncomponent/actionform/index.jsx | 9 src/templates/zshare/pasteform/index.jsx | 26 src/tabviews/verupmanage/config.jsx | 12 src/router/index.js | 2 src/menu/pastecontroller/index.jsx | 2 src/menu/components/card/data-card/index.jsx | 24 src/mob/components/menubar/normal-menubar/options.jsx | 37 src/mob/searchconfig/settingform/index.jsx | 15 src/menu/components/chart/antv-dashboard/index.jsx | 1 src/menu/components/form/normal-form/options.jsx | 12 src/mob/components/menubar/common-menubar/index.jsx | 190 src/views/appmanage/index.jsx | 61 .VSCodeCounter/2022-03-01_15-52-00/results.txt | 1506 +++++ src/menu/components/carousel/data-card/index.scss | 4 src/tabviews/verupmanage/index.jsx | 3 src/menu/components/search/main-search/options.jsx | 12 src/menu/components/tabs/antv-tabs/index.jsx | 24 src/tabviews/custom/components/table/edit-table/normalTable/cusSwitch/index.jsx | 49 src/templates/sharecomponent/actioncomponent/verifyexcelout/index.scss | 7 src/templates/sharecomponent/searchcomponent/index.scss | 11 src/mob/searchconfig/searchdragelement/index.jsx | 7 src/menu/components/table/normal-table/options.jsx | 15 src/menu/components/tree/antd-tree/index.scss | 2 src/components/header/index.jsx | 76 src/views/pcdesign/menuform/index.jsx | 4 src/templates/formtabconfig/index.jsx | 4 src/templates/zshare/verifycard/callbackcustomscript/index.jsx | 2 src/tabviews/custom/components/card/cardItem/index.jsx | 22 src/mob/modalconfig/source.jsx | 17 src/tabviews/calendar/index.jsx | 2 src/views/appmanage/scriptform/index.jsx | 5 src/mob/components/topbar/normal-navbar/options.jsx | 213 src/views/rolemanage/index.jsx | 49 src/tabviews/custom/components/carousel/data-card/index.jsx | 33 src/menu/components/code/sandbox/index.jsx | 1 src/views/billprint/index.scss | 8 src/templates/zshare/verifycard/customform/index.jsx | 1 .VSCodeCounter/2022-03-01_15-52-00/results.md | 511 + src/components/normalform/modalform/mkTable/index.jsx | 27 src/tabviews/custom/components/tree/antd-tree/index.scss | 3 src/menu/bgcontroller/index.jsx | 2 src/tabviews/custom/components/share/normalheader/index.jsx | 2 src/tabviews/custom/components/chart/custom-chart/index.jsx | 25 src/menu/components/card/balcony/index.jsx | 3 src/tabviews/zshare/actionList/tabbutton/index.jsx | 7 src/mob/components/search/single-search/options.jsx | 25 src/components/normalform/modalform/index.jsx | 6 src/tabviews/custom/components/module/voucher/voucherTable/index.scss | 259 src/templates/zshare/verifycard/index.jsx | 141 src/templates/formtabconfig/actionform/index.jsx | 6 src/tabviews/zshare/actionList/printbutton/index.jsx | 9 src/tabviews/custom/components/table/edit-table/normalTable/index.scss | 219 src/menu/components/card/cardcellcomponent/formconfig.jsx | 92 src/templates/sharecomponent/actioncomponent/index.jsx | 2 src/pc/components/navbar/normal-navbar/options.jsx | 13 src/tabviews/custom/components/module/voucher/index.scss | 56 src/menu/components/editor/braft-editor/index.jsx | 1 src/menu/components/module/voucher/index.scss | 41 package.json | 1 src/tabviews/zshare/topSearch/advanceform/index.jsx | 6 src/mob/searchconfig/index.jsx | 3 src/menu/components/tree/antd-tree/options.jsx | 12 src/mob/components/tabs/antv-tabs/options.jsx | 92 src/tabviews/custom/components/table/edit-table/normalTable/cusSwitch/index.scss | 40 src/menu/components/card/cardcellcomponent/dragaction/action.jsx | 13 src/menu/components/card/cardcellcomponent/elementform/index.jsx | 76 src/menu/components/tabs/antv-tabs/index.scss | 18 src/menu/components/share/actioncomponent/dragaction/index.jsx | 7 src/menu/components/table/edit-table/options.jsx | 150 src/templates/modalconfig/index.jsx | 28 src/templates/sharecomponent/searchcomponent/searchform/index.scss | 12 src/templates/sharecomponent/tablecomponent/index.jsx | 9 src/tabviews/zshare/actionList/newpagebutton/index.jsx | 7 src/mob/modalconfig/index.jsx | 31 src/tabviews/commontable/index.jsx | 25 src/components/header/loginform.jsx | 4 src/components/mk-icon/index.jsx | 4 src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx | 13 src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx | 224 src/tabviews/custom/components/table/edit-table/index.scss | 59 src/menu/components/form/formaction/formconfig.jsx | 24 src/tabviews/custom/components/card/cardcellList/index.jsx | 83 src/tabviews/custom/components/card/prop-card/index.jsx | 76 src/menu/components/share/searchcomponent/dragsearch/index.jsx | 7 src/menu/components/carousel/data-card/options.jsx | 28 src/menu/components/card/data-card/options.jsx | 130 src/templates/zshare/verifycard/callbackcustomscript/index.scss | 2 src/mob/components/menubar/normal-menubar/index.jsx | 66 src/tabviews/custom/components/table/normal-table/index.jsx | 62 src/menu/components/tabs/antv-tabs/options.jsx | 47 src/mob/components/menubar/normal-menubar/menucomponent/options.jsx | 19 src/tabviews/custom/components/chart/antv-pie/index.jsx | 14 src/tabviews/custom/components/timeline/normal-timeline/index.jsx | 31 .VSCodeCounter/2022-03-01_15-52-00/results.csv | 994 +++ src/tabviews/custom/components/table/edit-table/normalTable/index.jsx | 1273 +++ src/menu/components/group/groupcomponents/card.jsx | 6 src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx | 2 src/assets/mobimg/voucher.jpg | 0 src/tabviews/zshare/mutilform/index.jsx | 271 src/templates/zshare/modalform/index.scss | 12 src/menu/components/share/actioncomponent/actionform/index.jsx | 67 src/mob/components/menubar/normal-menubar/index.scss | 32 src/tabviews/custom/index.jsx | 78 src/mob/components/menubar/common-menubar/index.scss | 105 src/menu/components/table/normal-table/columns/index.jsx | 8 src/views/appmanage/submutilform/index.jsx | 160 src/menu/popview/index.jsx | 17 src/tabviews/zshare/mutilform/mkDatePicker/index.jsx | 32 src/menu/components/timeline/normal-timeline/options.jsx | 12 src/pc/components/navbar/normal-navbar/index.jsx | 2 src/tabviews/custom/components/chart/antv-scatter/index.jsx | 34 src/menu/components/card/cardcellcomponent/dragaction/index.scss | 21 src/menu/components/group/groupcomponents/index.jsx | 1 src/menu/components/form/formaction/actionform/index.jsx | 12 src/menu/components/card/cardcellcomponent/dragaction/index.jsx | 7 src/menu/components/form/normal-form/index.jsx | 23 src/templates/zshare/verifycard/billcodeform/index.jsx | 2 src/tabviews/zshare/actionList/exceloutbutton/index.jsx | 17 src/menu/components/card/cardcellcomponent/dragaction/card.jsx | 27 src/menu/components/chart/antv-scatter/chartcompile/formconfig.jsx | 24 src/menu/components/card/balcony/index.scss | 7 src/menu/components/chart/antv-bar/index.jsx | 1 src/mob/components/menubar/common-menubar/options.jsx | 84 src/assets/img/minview.png | 0 src/tabviews/zshare/actionList/index.jsx | 11 src/tabviews/subtable/index.jsx | 45 src/menu/components/table/edit-table/index.jsx | 9 src/menu/components/carousel/data-card/index.jsx | 1 src/menu/components/group/normal-group/index.scss | 9 src/templates/zshare/verifycard/index.scss | 137 src/tabviews/custom/components/card/table-card/index.jsx | 33 src/menu/components/module/voucher/options.jsx | 83 src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx | 23 src/mob/components/menubar/normal-menubar/menucomponent/index.jsx | 20 src/tabviews/zshare/mutilform/mkCheckCard/index.jsx | 13 src/menu/components/share/normalheader/index.jsx | 2 src/templates/modalconfig/settingform/index.jsx | 4 src/pc/quotecomponent/settingform/index.jsx | 2 src/templates/sharecomponent/columncomponent/dragcolumn/card.jsx | 1 src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx | 22 src/menu/components/search/main-search/index.jsx | 1 src/tabviews/custom/components/module/voucher/voucherTable/index.jsx | 738 ++ src/mob/components/topbar/normal-navbar/index.jsx | 55 src/templates/sharecomponent/actioncomponent/dragaction/index.jsx | 7 src/menu/components/table/edit-table/columns/tableIn/customscript/index.jsx | 3 src/tabviews/zshare/topSearch/mkDatePicker/index.jsx | 23 src/templates/zshare/modalform/modaleditable/index.scss | 21 src/views/login/index.jsx | 79 src/mob/components/navbar/normal-navbar/index.jsx | 1 src/utils/utils-datamanage.js | 10 src/menu/sysinterface/settingform/simplescript/index.jsx | 6 src/tabviews/custom/components/code/sand-box/index.jsx | 4 src/menu/components/table/edit-table/columns/tableIn/index.jsx | 8 src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx | 6 src/menu/components/card/table-card/index.jsx | 1 src/utils/utils-custom.js | 93 src/mob/modulesource/option.jsx | 2 src/templates/modalconfig/checkCard/index.scss | 3 src/tabviews/zshare/actionList/excelInbutton/index.jsx | 9 public/options.json | 2 src/menu/components/share/searchcomponent/dragsearch/card.jsx | 84 src/menu/components/tabs/tabcomponents/index.jsx | 18 src/menu/components/table/normal-table/columns/editColumn/index.jsx | 4 src/menu/components/card/data-card/index.scss | 18 src/views/pcdesign/index.scss | 7 src/menu/menushell/card.jsx | 9 src/templates/sharecomponent/settingcomponent/settingform/index.jsx | 2 src/menu/components/code/sandbox/options.jsx | 12 src/templates/modalconfig/dragelement/card.jsx | 42 src/views/mobdesign/index.jsx | 108 src/menu/datasource/verifycard/columnform/index.jsx | 4 src/templates/sharecomponent/actioncomponent/verifyexcelin/index.scss | 2 src/components/normalform/modalform/mkSelect/index.jsx | 46 src/assets/mobimg/commonbar.png | 0 src/menu/sysinterface/settingform/index.jsx | 2 src/templates/zshare/modalform/datatable/index.jsx | 60 src/menu/components/share/actioncomponent/formconfig.jsx | 99 src/tabviews/custom/components/group/normal-group/index.jsx | 7 src/tabviews/custom/components/tabs/antv-tabs/index.scss | 18 src/views/design/sidemenu/config.jsx | 1 src/menu/components/group/normal-group/options.jsx | 38 src/templates/zshare/verifycard/customscript/index.scss | 2 src/tabviews/custom/components/carousel/prop-card/index.jsx | 60 src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx | 20 src/templates/zshare/modalform/datatable/index.scss | 16 src/menu/components/table/normal-table/index.jsx | 1 src/menu/components/card/cardcomponent/options.jsx | 15 src/menu/components/group/normal-group/index.jsx | 4 src/templates/sharecomponent/searchcomponent/searchform/index.jsx | 77 src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx | 6 src/menu/components/carousel/prop-card/index.scss | 4 src/views/mobdesign/menuform/index.jsx | 81 src/menu/datasource/verifycard/customscript/index.jsx | 7 src/templates/formtabconfig/dragelement/index.jsx | 7 src/templates/sharecomponent/columncomponent/index.jsx | 5 src/locales/en-US/model.js | 1 src/views/mobdesign/index.scss | 7 src/tabviews/custom/components/share/normalTable/index.jsx | 26 src/templates/modalconfig/dragelement/index.jsx | 7 src/tabviews/custom/components/card/data-card/index.scss | 29 src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx | 2 src/utils/utils.js | 200 src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx | 37 src/index.js | 78 src/tabviews/custom/components/form/tab-form/index.jsx | 40 src/views/sso/index.jsx | 118 src/menu/components/search/main-search/dragsearch/index.jsx | 7 src/tabviews/custom/components/share/tabtransfer/index.jsx | 7 src/templates/zshare/formconfig.jsx | 180 src/templates/menuconfig/menuform/index.jsx | 2 src/menu/replaceField/index.jsx | 718 + src/menu/components/chart/chart-custom/chartcompile/formconfig.jsx | 12 src/pc/createview/index.jsx | 6 src/tabviews/custom/components/form/normal-form/index.jsx | 40 src/mob/components/formdragelement/card.jsx | 65 src/pc/components/login/normal-login/index.jsx | 1 /dev/null | 17 src/mob/components/navbar/normal-navbar/options.jsx | 13 src/menu/modalconfig/index.jsx | 26 src/tabviews/custom/components/card/balcony/index.jsx | 65 src/tabviews/custom/components/card/cardcellList/index.scss | 21 src/utils/option.js | 34 src/templates/sharecomponent/columncomponent/columnform/index.jsx | 4 330 files changed, 14,409 insertions(+), 2,830 deletions(-) diff --git a/.VSCodeCounter/2022-03-01_15-52-00/details.md b/.VSCodeCounter/2022-03-01_15-52-00/details.md new file mode 100644 index 0000000..081c54d --- /dev/null +++ b/.VSCodeCounter/2022-03-01_15-52-00/details.md @@ -0,0 +1,1007 @@ +# Details + +Date : 2022-03-01 15:52:00 + +Directory e:\project\pc-plat + +Total : 992 files, 195487 codes, 5743 comments, 20061 blanks, all 221291 lines + +[summary](results.md) + +## Files +| filename | language | code | comment | blank | total | +| :--- | :--- | ---: | ---: | ---: | ---: | +| [README.md](/README.md) | Markdown | 39 | 0 | 34 | 73 | +| [config/env.js](/config/env.js) | JavaScript | 54 | 29 | 11 | 94 | +| [config/jest/cssTransform.js](/config/jest/cssTransform.js) | JavaScript | 9 | 3 | 3 | 15 | +| [config/jest/fileTransform.js](/config/jest/fileTransform.js) | JavaScript | 31 | 4 | 6 | 41 | +| [config/modules.js](/config/modules.js) | JavaScript | 51 | 21 | 17 | 89 | +| [config/paths.js](/config/paths.js) | JavaScript | 65 | 11 | 15 | 91 | +| [config/pnpTs.js](/config/pnpTs.js) | JavaScript | 31 | 1 | 4 | 36 | +| [config/webpack.config.js](/config/webpack.config.js) | JavaScript | 430 | 213 | 18 | 661 | +| [config/webpackDevServer.config.js](/config/webpackDevServer.config.js) | JavaScript | 40 | 59 | 6 | 105 | +| [package-lock.json](/package-lock.json) | JSON | 21,413 | 0 | 1 | 21,414 | +| [package.json](/package.json) | JSON | 201 | 0 | 1 | 202 | +| [public/admin.html](/public/admin.html) | HTML | 38 | 0 | 1 | 39 | +| [public/index.html](/public/index.html) | HTML | 23 | 1 | 1 | 25 | +| [public/manifest.json](/public/manifest.json) | JSON | 9 | 0 | 1 | 10 | +| [public/options.json](/public/options.json) | JSON | 17 | 0 | 0 | 17 | +| [scripts/build.js](/scripts/build.js) | JavaScript | 152 | 24 | 19 | 195 | +| [scripts/start.js](/scripts/start.js) | JavaScript | 112 | 20 | 14 | 146 | +| [scripts/test.js](/scripts/test.js) | JavaScript | 36 | 7 | 11 | 54 | +| [src/api/cacheutils.js](/src/api/cacheutils.js) | JavaScript | 288 | 67 | 45 | 400 | +| [src/api/index.js](/src/api/index.js) | JavaScript | 671 | 105 | 104 | 880 | +| [src/assets/css/action.scss](/src/assets/css/action.scss) | SCSS | 181 | 13 | 22 | 216 | +| [src/assets/css/iconfont.css](/src/assets/css/iconfont.css) | CSS | 33 | 0 | 23 | 56 | +| [src/assets/css/main.scss](/src/assets/css/main.scss) | SCSS | 394 | 23 | 29 | 446 | +| [src/assets/css/minkeicon.css](/src/assets/css/minkeicon.css) | CSS | 43 | 5 | 4 | 52 | +| [src/assets/css/table.scss](/src/assets/css/table.scss) | SCSS | 814 | 30 | 28 | 872 | +| [src/assets/css/viewstyle.scss](/src/assets/css/viewstyle.scss) | SCSS | 586 | 27 | 10 | 623 | +| [src/assets/font/iconfont.js](/src/assets/font/iconfont.js) | JavaScript | 1 | 0 | 0 | 1 | +| [src/assets/font/iconfont.svg](/src/assets/font/iconfont.svg) | XML | 38 | 3 | 43 | 84 | +| [src/assets/font/minkeicon.svg](/src/assets/font/minkeicon.svg) | XML | 18 | 0 | 0 | 18 | +| [src/assets/mobimg/slider-thumb.svg](/src/assets/mobimg/slider-thumb.svg) | XML | 14 | 0 | 1 | 15 | +| [src/components/404/index.jsx](/src/components/404/index.jsx) | JavaScript React | 19 | 0 | 2 | 21 | +| [src/components/404/index.scss](/src/components/404/index.scss) | SCSS | 13 | 0 | 1 | 14 | +| [src/components/Image/index.jsx](/src/components/Image/index.jsx) | JavaScript React | 46 | 0 | 10 | 56 | +| [src/components/Image/index.scss](/src/components/Image/index.scss) | SCSS | 12 | 0 | 2 | 14 | +| [src/components/barcode/index.jsx](/src/components/barcode/index.jsx) | JavaScript React | 53 | 0 | 12 | 65 | +| [src/components/barcode/index.scss](/src/components/barcode/index.scss) | SCSS | 15 | 0 | 1 | 16 | +| [src/components/breadview/index.jsx](/src/components/breadview/index.jsx) | JavaScript React | 176 | 5 | 26 | 207 | +| [src/components/breadview/index.scss](/src/components/breadview/index.scss) | SCSS | 46 | 0 | 1 | 47 | +| [src/components/editor/index.jsx](/src/components/editor/index.jsx) | JavaScript React | 213 | 1 | 34 | 248 | +| [src/components/editor/index.scss](/src/components/editor/index.scss) | SCSS | 29 | 0 | 1 | 30 | +| [src/components/header/index.jsx](/src/components/header/index.jsx) | JavaScript React | 788 | 15 | 87 | 890 | +| [src/components/header/index.scss](/src/components/header/index.scss) | SCSS | 216 | 0 | 6 | 222 | +| [src/components/header/loginform.jsx](/src/components/header/loginform.jsx) | JavaScript React | 114 | 1 | 15 | 130 | +| [src/components/header/resetpwd/index.jsx](/src/components/header/resetpwd/index.jsx) | JavaScript React | 140 | 2 | 16 | 158 | +| [src/components/imgScale/index.jsx](/src/components/imgScale/index.jsx) | JavaScript React | 217 | 0 | 54 | 271 | +| [src/components/imgScale/index.scss](/src/components/imgScale/index.scss) | SCSS | 233 | 0 | 6 | 239 | +| [src/components/loading/index.jsx](/src/components/loading/index.jsx) | JavaScript React | 10 | 0 | 2 | 12 | +| [src/components/lostsvg/index.jsx](/src/components/lostsvg/index.jsx) | JavaScript React | 72 | 0 | 2 | 74 | +| [src/components/mk-icon/index.jsx](/src/components/mk-icon/index.jsx) | JavaScript React | 465 | 0 | 9 | 474 | +| [src/components/mk-icon/index.scss](/src/components/mk-icon/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/mkIcon/index.jsx](/src/components/mkIcon/index.jsx) | JavaScript React | 71 | 1 | 13 | 85 | +| [src/components/mkIcon/index.scss](/src/components/mkIcon/index.scss) | SCSS | 67 | 0 | 2 | 69 | +| [src/components/mkProgress/index.jsx](/src/components/mkProgress/index.jsx) | JavaScript React | 32 | 1 | 10 | 43 | +| [src/components/mkProgress/index.scss](/src/components/mkProgress/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/mutilform/index.jsx](/src/components/mutilform/index.jsx) | JavaScript React | 196 | 2 | 13 | 211 | +| [src/components/mutilform/index.scss](/src/components/mutilform/index.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/components/normalform/index.jsx](/src/components/normalform/index.jsx) | JavaScript React | 80 | 0 | 12 | 92 | +| [src/components/normalform/index.scss](/src/components/normalform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/normalform/modalform/index.jsx](/src/components/normalform/modalform/index.jsx) | JavaScript React | 258 | 1 | 59 | 318 | +| [src/components/normalform/modalform/index.scss](/src/components/normalform/modalform/index.scss) | SCSS | 57 | 0 | 3 | 60 | +| [src/components/normalform/modalform/mkCheckbox/index.jsx](/src/components/normalform/modalform/mkCheckbox/index.jsx) | JavaScript React | 36 | 0 | 8 | 44 | +| [src/components/normalform/modalform/mkCheckbox/index.scss](/src/components/normalform/modalform/mkCheckbox/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/normalform/modalform/mkInput/index.jsx](/src/components/normalform/modalform/mkInput/index.jsx) | JavaScript React | 50 | 4 | 17 | 71 | +| [src/components/normalform/modalform/mkInput/index.scss](/src/components/normalform/modalform/mkInput/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/normalform/modalform/mkNumberInput/index.jsx](/src/components/normalform/modalform/mkNumberInput/index.jsx) | JavaScript React | 46 | 1 | 15 | 62 | +| [src/components/normalform/modalform/mkNumberInput/index.scss](/src/components/normalform/modalform/mkNumberInput/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/normalform/modalform/mkRadio/index.jsx](/src/components/normalform/modalform/mkRadio/index.jsx) | JavaScript React | 74 | 0 | 19 | 93 | +| [src/components/normalform/modalform/mkRadio/index.scss](/src/components/normalform/modalform/mkRadio/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/normalform/modalform/mkSelect/index.jsx](/src/components/normalform/modalform/mkSelect/index.jsx) | JavaScript React | 114 | 0 | 25 | 139 | +| [src/components/normalform/modalform/mkSelect/index.scss](/src/components/normalform/modalform/mkSelect/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/normalform/modalform/mkTable/index.jsx](/src/components/normalform/modalform/mkTable/index.jsx) | JavaScript React | 374 | 3 | 63 | 440 | +| [src/components/normalform/modalform/mkTable/index.scss](/src/components/normalform/modalform/mkTable/index.scss) | SCSS | 104 | 0 | 5 | 109 | +| [src/components/normalform/modalform/styleInput/index.jsx](/src/components/normalform/modalform/styleInput/index.jsx) | JavaScript React | 114 | 0 | 30 | 144 | +| [src/components/normalform/modalform/styleInput/index.scss](/src/components/normalform/modalform/styleInput/index.scss) | SCSS | 11 | 0 | 1 | 12 | +| [src/components/paste/index.jsx](/src/components/paste/index.jsx) | JavaScript React | 63 | 0 | 9 | 72 | +| [src/components/paste/index.scss](/src/components/paste/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/components/qrcode/index.jsx](/src/components/qrcode/index.jsx) | JavaScript React | 49 | 0 | 9 | 58 | +| [src/components/qrcode/index.scss](/src/components/qrcode/index.scss) | SCSS | 8 | 0 | 0 | 8 | +| [src/components/querylog/index.jsx](/src/components/querylog/index.jsx) | JavaScript React | 62 | 6 | 15 | 83 | +| [src/components/sidemenu/index.jsx](/src/components/sidemenu/index.jsx) | JavaScript React | 116 | 2 | 20 | 138 | +| [src/components/sidemenu/index.scss](/src/components/sidemenu/index.scss) | SCSS | 112 | 8 | 3 | 123 | +| [src/components/simpleform/index.jsx](/src/components/simpleform/index.jsx) | JavaScript React | 185 | 2 | 11 | 198 | +| [src/components/simpleform/index.scss](/src/components/simpleform/index.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/components/tabview/index.jsx](/src/components/tabview/index.jsx) | JavaScript React | 284 | 7 | 34 | 325 | +| [src/components/tabview/index.scss](/src/components/tabview/index.scss) | SCSS | 104 | 0 | 0 | 104 | +| [src/components/video/index.jsx](/src/components/video/index.jsx) | JavaScript React | 40 | 0 | 6 | 46 | +| [src/components/video/index.scss](/src/components/video/index.scss) | SCSS | 956 | 5 | 88 | 1,049 | +| [src/index.js](/src/index.js) | JavaScript | 216 | 3 | 31 | 250 | +| [src/locales/en-US/login.js](/src/locales/en-US/login.js) | JavaScript | 19 | 0 | 0 | 19 | +| [src/locales/en-US/main.js](/src/locales/en-US/main.js) | JavaScript | 49 | 0 | 0 | 49 | +| [src/locales/en-US/mob.js](/src/locales/en-US/mob.js) | JavaScript | 29 | 0 | 0 | 29 | +| [src/locales/en-US/model.js](/src/locales/en-US/model.js) | JavaScript | 171 | 0 | 0 | 171 | +| [src/locales/zh-CN/login.js](/src/locales/zh-CN/login.js) | JavaScript | 19 | 0 | 0 | 19 | +| [src/locales/zh-CN/main.js](/src/locales/zh-CN/main.js) | JavaScript | 49 | 0 | 0 | 49 | +| [src/locales/zh-CN/mob.js](/src/locales/zh-CN/mob.js) | JavaScript | 29 | 0 | 0 | 29 | +| [src/locales/zh-CN/model.js](/src/locales/zh-CN/model.js) | JavaScript | 171 | 0 | 0 | 171 | +| [src/menu/bgcontroller/index.jsx](/src/menu/bgcontroller/index.jsx) | JavaScript React | 119 | 3 | 24 | 146 | +| [src/menu/bgcontroller/index.scss](/src/menu/bgcontroller/index.scss) | SCSS | 42 | 0 | 1 | 43 | +| [src/menu/components/card/balcony/index.jsx](/src/menu/components/card/balcony/index.jsx) | JavaScript React | 185 | 8 | 45 | 238 | +| [src/menu/components/card/balcony/index.scss](/src/menu/components/card/balcony/index.scss) | SCSS | 83 | 0 | 5 | 88 | +| [src/menu/components/card/balcony/options.jsx](/src/menu/components/card/balcony/options.jsx) | JavaScript React | 212 | 4 | 4 | 220 | +| [src/menu/components/card/cardcellcomponent/dragaction/action.jsx](/src/menu/components/card/cardcellcomponent/dragaction/action.jsx) | JavaScript React | 68 | 0 | 9 | 77 | +| [src/menu/components/card/cardcellcomponent/dragaction/card.jsx](/src/menu/components/card/cardcellcomponent/dragaction/card.jsx) | JavaScript React | 165 | 7 | 18 | 190 | +| [src/menu/components/card/cardcellcomponent/dragaction/index.jsx](/src/menu/components/card/cardcellcomponent/dragaction/index.jsx) | JavaScript React | 135 | 0 | 24 | 159 | +| [src/menu/components/card/cardcellcomponent/dragaction/index.scss](/src/menu/components/card/cardcellcomponent/dragaction/index.scss) | SCSS | 124 | 0 | 1 | 125 | +| [src/menu/components/card/cardcellcomponent/dragaction/mkProgress/index.jsx](/src/menu/components/card/cardcellcomponent/dragaction/mkProgress/index.jsx) | JavaScript React | 31 | 1 | 11 | 43 | +| [src/menu/components/card/cardcellcomponent/dragaction/mkProgress/index.scss](/src/menu/components/card/cardcellcomponent/dragaction/mkProgress/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/card/cardcellcomponent/elementform/index.jsx](/src/menu/components/card/cardcellcomponent/elementform/index.jsx) | JavaScript React | 488 | 9 | 33 | 530 | +| [src/menu/components/card/cardcellcomponent/elementform/index.scss](/src/menu/components/card/cardcellcomponent/elementform/index.scss) | SCSS | 28 | 0 | 1 | 29 | +| [src/menu/components/card/cardcellcomponent/formconfig.jsx](/src/menu/components/card/cardcellcomponent/formconfig.jsx) | JavaScript React | 502 | 28 | 9 | 539 | +| [src/menu/components/card/cardcellcomponent/index.jsx](/src/menu/components/card/cardcellcomponent/index.jsx) | JavaScript React | 608 | 38 | 114 | 760 | +| [src/menu/components/card/cardcellcomponent/index.scss](/src/menu/components/card/cardcellcomponent/index.scss) | SCSS | 31 | 0 | 2 | 33 | +| [src/menu/components/card/cardcomponent/index.jsx](/src/menu/components/card/cardcomponent/index.jsx) | JavaScript React | 325 | 9 | 67 | 401 | +| [src/menu/components/card/cardcomponent/index.scss](/src/menu/components/card/cardcomponent/index.scss) | SCSS | 48 | 0 | 0 | 48 | +| [src/menu/components/card/cardcomponent/options.jsx](/src/menu/components/card/cardcomponent/options.jsx) | JavaScript React | 230 | 3 | 5 | 238 | +| [src/menu/components/card/cardsimplecomponent/index.jsx](/src/menu/components/card/cardsimplecomponent/index.jsx) | JavaScript React | 192 | 9 | 49 | 250 | +| [src/menu/components/card/cardsimplecomponent/index.scss](/src/menu/components/card/cardsimplecomponent/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/card/cardsimplecomponent/node-wrap/index.jsx](/src/menu/components/card/cardsimplecomponent/node-wrap/index.jsx) | JavaScript React | 57 | 0 | 12 | 69 | +| [src/menu/components/card/cardsimplecomponent/node-wrap/index.scss](/src/menu/components/card/cardsimplecomponent/node-wrap/index.scss) | SCSS | 20 | 0 | 1 | 21 | +| [src/menu/components/card/cardsimplecomponent/node-wrap/menus/columnform/index.jsx](/src/menu/components/card/cardsimplecomponent/node-wrap/menus/columnform/index.jsx) | JavaScript React | 85 | 2 | 7 | 94 | +| [src/menu/components/card/cardsimplecomponent/node-wrap/menus/columnform/index.scss](/src/menu/components/card/cardsimplecomponent/node-wrap/menus/columnform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.jsx](/src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.jsx) | JavaScript React | 73 | 1 | 12 | 86 | +| [src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.scss](/src/menu/components/card/cardsimplecomponent/node-wrap/menus/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/card/cardsimplecomponent/options.jsx](/src/menu/components/card/cardsimplecomponent/options.jsx) | JavaScript React | 245 | 6 | 8 | 259 | +| [src/menu/components/card/data-card/index.jsx](/src/menu/components/card/data-card/index.jsx) | JavaScript React | 554 | 14 | 119 | 687 | +| [src/menu/components/card/data-card/index.scss](/src/menu/components/card/data-card/index.scss) | SCSS | 123 | 0 | 7 | 130 | +| [src/menu/components/card/data-card/options.jsx](/src/menu/components/card/data-card/options.jsx) | JavaScript React | 327 | 17 | 7 | 351 | +| [src/menu/components/card/prop-card/index.jsx](/src/menu/components/card/prop-card/index.jsx) | JavaScript React | 409 | 12 | 87 | 508 | +| [src/menu/components/card/prop-card/index.scss](/src/menu/components/card/prop-card/index.scss) | SCSS | 79 | 0 | 5 | 84 | +| [src/menu/components/card/table-card/index.jsx](/src/menu/components/card/table-card/index.jsx) | JavaScript React | 465 | 14 | 93 | 572 | +| [src/menu/components/card/table-card/index.scss](/src/menu/components/card/table-card/index.scss) | SCSS | 91 | 0 | 6 | 97 | +| [src/menu/components/carousel/data-card/index.jsx](/src/menu/components/carousel/data-card/index.jsx) | JavaScript React | 233 | 12 | 54 | 299 | +| [src/menu/components/carousel/data-card/index.scss](/src/menu/components/carousel/data-card/index.scss) | SCSS | 82 | 0 | 6 | 88 | +| [src/menu/components/carousel/data-card/options.jsx](/src/menu/components/carousel/data-card/options.jsx) | JavaScript React | 128 | 3 | 3 | 134 | +| [src/menu/components/carousel/prop-card/index.jsx](/src/menu/components/carousel/prop-card/index.jsx) | JavaScript React | 301 | 12 | 68 | 381 | +| [src/menu/components/carousel/prop-card/index.scss](/src/menu/components/carousel/prop-card/index.scss) | SCSS | 88 | 0 | 5 | 93 | +| [src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx](/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx) | JavaScript React | 451 | 56 | 10 | 517 | +| [src/menu/components/chart/antv-bar/chartcompile/index.jsx](/src/menu/components/chart/antv-bar/chartcompile/index.jsx) | JavaScript React | 667 | 0 | 48 | 715 | +| [src/menu/components/chart/antv-bar/chartcompile/index.scss](/src/menu/components/chart/antv-bar/chartcompile/index.scss) | SCSS | 35 | 0 | 2 | 37 | +| [src/menu/components/chart/antv-bar/index.jsx](/src/menu/components/chart/antv-bar/index.jsx) | JavaScript React | 1,196 | 20 | 150 | 1,366 | +| [src/menu/components/chart/antv-bar/index.scss](/src/menu/components/chart/antv-bar/index.scss) | SCSS | 64 | 0 | 8 | 72 | +| [src/menu/components/chart/antv-dashboard/chartcompile/formconfig.jsx](/src/menu/components/chart/antv-dashboard/chartcompile/formconfig.jsx) | JavaScript React | 242 | 17 | 7 | 266 | +| [src/menu/components/chart/antv-dashboard/chartcompile/index.jsx](/src/menu/components/chart/antv-dashboard/chartcompile/index.jsx) | JavaScript React | 304 | 0 | 31 | 335 | +| [src/menu/components/chart/antv-dashboard/chartcompile/index.scss](/src/menu/components/chart/antv-dashboard/chartcompile/index.scss) | SCSS | 35 | 0 | 2 | 37 | +| [src/menu/components/chart/antv-dashboard/index.jsx](/src/menu/components/chart/antv-dashboard/index.jsx) | JavaScript React | 476 | 7 | 59 | 542 | +| [src/menu/components/chart/antv-dashboard/index.scss](/src/menu/components/chart/antv-dashboard/index.scss) | SCSS | 44 | 0 | 6 | 50 | +| [src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx](/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx) | JavaScript React | 327 | 14 | 6 | 347 | +| [src/menu/components/chart/antv-pie/chartcompile/index.jsx](/src/menu/components/chart/antv-pie/chartcompile/index.jsx) | JavaScript React | 327 | 0 | 33 | 360 | +| [src/menu/components/chart/antv-pie/chartcompile/index.scss](/src/menu/components/chart/antv-pie/chartcompile/index.scss) | SCSS | 30 | 0 | 2 | 32 | +| [src/menu/components/chart/antv-pie/index.jsx](/src/menu/components/chart/antv-pie/index.jsx) | JavaScript React | 599 | 6 | 89 | 694 | +| [src/menu/components/chart/antv-pie/index.scss](/src/menu/components/chart/antv-pie/index.scss) | SCSS | 44 | 0 | 6 | 50 | +| [src/menu/components/chart/antv-scatter/chartcompile/formconfig.jsx](/src/menu/components/chart/antv-scatter/chartcompile/formconfig.jsx) | JavaScript React | 177 | 10 | 4 | 191 | +| [src/menu/components/chart/antv-scatter/chartcompile/index.jsx](/src/menu/components/chart/antv-scatter/chartcompile/index.jsx) | JavaScript React | 251 | 0 | 21 | 272 | +| [src/menu/components/chart/antv-scatter/chartcompile/index.scss](/src/menu/components/chart/antv-scatter/chartcompile/index.scss) | SCSS | 32 | 0 | 2 | 34 | +| [src/menu/components/chart/antv-scatter/index.jsx](/src/menu/components/chart/antv-scatter/index.jsx) | JavaScript React | 337 | 10 | 53 | 400 | +| [src/menu/components/chart/antv-scatter/index.scss](/src/menu/components/chart/antv-scatter/index.scss) | SCSS | 64 | 0 | 8 | 72 | +| [src/menu/components/chart/chart-custom/chartcompile/formconfig.jsx](/src/menu/components/chart/chart-custom/chartcompile/formconfig.jsx) | JavaScript React | 72 | 24 | 2 | 98 | +| [src/menu/components/chart/chart-custom/chartcompile/index.jsx](/src/menu/components/chart/chart-custom/chartcompile/index.jsx) | JavaScript React | 103 | 0 | 17 | 120 | +| [src/menu/components/chart/chart-custom/chartcompile/index.scss](/src/menu/components/chart/chart-custom/chartcompile/index.scss) | SCSS | 10 | 0 | 2 | 12 | +| [src/menu/components/chart/chart-custom/index.jsx](/src/menu/components/chart/chart-custom/index.jsx) | JavaScript React | 226 | 6 | 39 | 271 | +| [src/menu/components/chart/chart-custom/index.scss](/src/menu/components/chart/chart-custom/index.scss) | SCSS | 64 | 0 | 8 | 72 | +| [src/menu/components/code/sandbox/codecontent/index.jsx](/src/menu/components/code/sandbox/codecontent/index.jsx) | JavaScript React | 65 | 7 | 16 | 88 | +| [src/menu/components/code/sandbox/codecontent/index.scss](/src/menu/components/code/sandbox/codecontent/index.scss) | SCSS | 26 | 0 | 0 | 26 | +| [src/menu/components/code/sandbox/editorcode/index.jsx](/src/menu/components/code/sandbox/editorcode/index.jsx) | JavaScript React | 95 | 0 | 16 | 111 | +| [src/menu/components/code/sandbox/editorcode/index.scss](/src/menu/components/code/sandbox/editorcode/index.scss) | SCSS | 18 | 0 | 2 | 20 | +| [src/menu/components/code/sandbox/index.jsx](/src/menu/components/code/sandbox/index.jsx) | JavaScript React | 155 | 9 | 32 | 196 | +| [src/menu/components/code/sandbox/index.scss](/src/menu/components/code/sandbox/index.scss) | SCSS | 35 | 0 | 2 | 37 | +| [src/menu/components/code/sandbox/options.jsx](/src/menu/components/code/sandbox/options.jsx) | JavaScript React | 56 | 3 | 3 | 62 | +| [src/menu/components/editor/braft-editor/editorcontent/index.jsx](/src/menu/components/editor/braft-editor/editorcontent/index.jsx) | JavaScript React | 69 | 0 | 14 | 83 | +| [src/menu/components/editor/braft-editor/editorcontent/index.scss](/src/menu/components/editor/braft-editor/editorcontent/index.scss) | SCSS | 16 | 0 | 1 | 17 | +| [src/menu/components/editor/braft-editor/index.jsx](/src/menu/components/editor/braft-editor/index.jsx) | JavaScript React | 156 | 6 | 32 | 194 | +| [src/menu/components/editor/braft-editor/index.scss](/src/menu/components/editor/braft-editor/index.scss) | SCSS | 35 | 0 | 2 | 37 | +| [src/menu/components/editor/braft-editor/options.jsx](/src/menu/components/editor/braft-editor/options.jsx) | JavaScript React | 98 | 3 | 3 | 104 | +| [src/menu/components/form/dragtitle/card.jsx](/src/menu/components/form/dragtitle/card.jsx) | JavaScript React | 76 | 0 | 13 | 89 | +| [src/menu/components/form/dragtitle/index.jsx](/src/menu/components/form/dragtitle/index.jsx) | JavaScript React | 50 | 0 | 10 | 60 | +| [src/menu/components/form/dragtitle/index.scss](/src/menu/components/form/dragtitle/index.scss) | SCSS | 88 | 0 | 1 | 89 | +| [src/menu/components/form/dragtitle/options.jsx](/src/menu/components/form/dragtitle/options.jsx) | JavaScript React | 93 | 3 | 3 | 99 | +| [src/menu/components/form/formaction/actionform/index.jsx](/src/menu/components/form/formaction/actionform/index.jsx) | JavaScript React | 333 | 8 | 29 | 370 | +| [src/menu/components/form/formaction/actionform/index.scss](/src/menu/components/form/formaction/actionform/index.scss) | SCSS | 39 | 0 | 0 | 39 | +| [src/menu/components/form/formaction/formconfig.jsx](/src/menu/components/form/formaction/formconfig.jsx) | JavaScript React | 294 | 5 | 6 | 305 | +| [src/menu/components/form/formaction/index.jsx](/src/menu/components/form/formaction/index.jsx) | JavaScript React | 224 | 18 | 37 | 279 | +| [src/menu/components/form/formaction/index.scss](/src/menu/components/form/formaction/index.scss) | SCSS | 16 | 0 | 2 | 18 | +| [src/menu/components/form/normal-form/index.jsx](/src/menu/components/form/normal-form/index.jsx) | JavaScript React | 622 | 18 | 104 | 744 | +| [src/menu/components/form/normal-form/index.scss](/src/menu/components/form/normal-form/index.scss) | SCSS | 82 | 0 | 3 | 85 | +| [src/menu/components/form/normal-form/options.jsx](/src/menu/components/form/normal-form/options.jsx) | JavaScript React | 100 | 3 | 3 | 106 | +| [src/menu/components/form/tab-form/index.jsx](/src/menu/components/form/tab-form/index.jsx) | JavaScript React | 630 | 18 | 104 | 752 | +| [src/menu/components/form/tab-form/index.scss](/src/menu/components/form/tab-form/index.scss) | SCSS | 82 | 0 | 3 | 85 | +| [src/menu/components/group/groupcomponents/card.jsx](/src/menu/components/group/groupcomponents/card.jsx) | JavaScript React | 99 | 0 | 10 | 109 | +| [src/menu/components/group/groupcomponents/index.jsx](/src/menu/components/group/groupcomponents/index.jsx) | JavaScript React | 132 | 0 | 22 | 154 | +| [src/menu/components/group/groupcomponents/index.scss](/src/menu/components/group/groupcomponents/index.scss) | SCSS | 12 | 0 | 2 | 14 | +| [src/menu/components/group/normal-group/index.jsx](/src/menu/components/group/normal-group/index.jsx) | JavaScript React | 161 | 4 | 38 | 203 | +| [src/menu/components/group/normal-group/index.scss](/src/menu/components/group/normal-group/index.scss) | SCSS | 39 | 0 | 2 | 41 | +| [src/menu/components/group/normal-group/options.jsx](/src/menu/components/group/normal-group/options.jsx) | JavaScript React | 87 | 3 | 3 | 93 | +| [src/menu/components/group/paste/index.jsx](/src/menu/components/group/paste/index.jsx) | JavaScript React | 83 | 1 | 18 | 102 | +| [src/menu/components/group/paste/index.scss](/src/menu/components/group/paste/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/module/voucher/index.jsx](/src/menu/components/module/voucher/index.jsx) | JavaScript React | 123 | 12 | 29 | 164 | +| [src/menu/components/module/voucher/index.scss](/src/menu/components/module/voucher/index.scss) | SCSS | 39 | 0 | 3 | 42 | +| [src/menu/components/module/voucher/options.jsx](/src/menu/components/module/voucher/options.jsx) | JavaScript React | 68 | 10 | 5 | 83 | +| [src/menu/components/search/main-search/dategroup/index.jsx](/src/menu/components/search/main-search/dategroup/index.jsx) | JavaScript React | 27 | 0 | 5 | 32 | +| [src/menu/components/search/main-search/dategroup/index.scss](/src/menu/components/search/main-search/dategroup/index.scss) | SCSS | 36 | 0 | 2 | 38 | +| [src/menu/components/search/main-search/dragsearch/card.jsx](/src/menu/components/search/main-search/dragsearch/card.jsx) | JavaScript React | 106 | 0 | 9 | 115 | +| [src/menu/components/search/main-search/dragsearch/index.jsx](/src/menu/components/search/main-search/dragsearch/index.jsx) | JavaScript React | 112 | 0 | 17 | 129 | +| [src/menu/components/search/main-search/dragsearch/index.scss](/src/menu/components/search/main-search/dragsearch/index.scss) | SCSS | 6 | 0 | 1 | 7 | +| [src/menu/components/search/main-search/index.jsx](/src/menu/components/search/main-search/index.jsx) | JavaScript React | 377 | 26 | 64 | 467 | +| [src/menu/components/search/main-search/index.scss](/src/menu/components/search/main-search/index.scss) | SCSS | 140 | 0 | 1 | 141 | +| [src/menu/components/search/main-search/options.jsx](/src/menu/components/search/main-search/options.jsx) | JavaScript React | 78 | 3 | 3 | 84 | +| [src/menu/components/share/actioncomponent/actionform/index.jsx](/src/menu/components/share/actioncomponent/actionform/index.jsx) | JavaScript React | 714 | 10 | 93 | 817 | +| [src/menu/components/share/actioncomponent/actionform/index.scss](/src/menu/components/share/actioncomponent/actionform/index.scss) | SCSS | 39 | 0 | 0 | 39 | +| [src/menu/components/share/actioncomponent/dragaction/card.jsx](/src/menu/components/share/actioncomponent/dragaction/card.jsx) | JavaScript React | 92 | 0 | 9 | 101 | +| [src/menu/components/share/actioncomponent/dragaction/index.jsx](/src/menu/components/share/actioncomponent/dragaction/index.jsx) | JavaScript React | 106 | 0 | 24 | 130 | +| [src/menu/components/share/actioncomponent/dragaction/index.scss](/src/menu/components/share/actioncomponent/dragaction/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/share/actioncomponent/formconfig.jsx](/src/menu/components/share/actioncomponent/formconfig.jsx) | JavaScript React | 849 | 11 | 16 | 876 | +| [src/menu/components/share/actioncomponent/index.jsx](/src/menu/components/share/actioncomponent/index.jsx) | JavaScript React | 439 | 38 | 74 | 551 | +| [src/menu/components/share/actioncomponent/index.scss](/src/menu/components/share/actioncomponent/index.scss) | SCSS | 79 | 0 | 3 | 82 | +| [src/menu/components/share/clockcomponent/index.jsx](/src/menu/components/share/clockcomponent/index.jsx) | JavaScript React | 54 | 0 | 10 | 64 | +| [src/menu/components/share/clockcomponent/index.scss](/src/menu/components/share/clockcomponent/index.scss) | SCSS | 6 | 0 | 1 | 7 | +| [src/menu/components/share/clockcomponent/settingform/index.jsx](/src/menu/components/share/clockcomponent/settingform/index.jsx) | JavaScript React | 98 | 1 | 8 | 107 | +| [src/menu/components/share/clockcomponent/settingform/index.scss](/src/menu/components/share/clockcomponent/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/share/copycomponent/index.jsx](/src/menu/components/share/copycomponent/index.jsx) | JavaScript React | 39 | 0 | 8 | 47 | +| [src/menu/components/share/copycomponent/index.scss](/src/menu/components/share/copycomponent/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/share/logcomponent/index.jsx](/src/menu/components/share/logcomponent/index.jsx) | JavaScript React | 115 | 0 | 16 | 131 | +| [src/menu/components/share/logcomponent/index.scss](/src/menu/components/share/logcomponent/index.scss) | SCSS | 20 | 0 | 1 | 21 | +| [src/menu/components/share/markcomponent/index.jsx](/src/menu/components/share/markcomponent/index.jsx) | JavaScript React | 327 | 0 | 26 | 353 | +| [src/menu/components/share/markcomponent/index.scss](/src/menu/components/share/markcomponent/index.scss) | SCSS | 55 | 0 | 4 | 59 | +| [src/menu/components/share/markcomponent/markform/index.jsx](/src/menu/components/share/markcomponent/markform/index.jsx) | JavaScript React | 124 | 1 | 6 | 131 | +| [src/menu/components/share/markcomponent/markform/index.scss](/src/menu/components/share/markcomponent/markform/index.scss) | SCSS | 17 | 0 | 0 | 17 | +| [src/menu/components/share/mobPagination/index.jsx](/src/menu/components/share/mobPagination/index.jsx) | JavaScript React | 24 | 0 | 3 | 27 | +| [src/menu/components/share/mobPagination/index.scss](/src/menu/components/share/mobPagination/index.scss) | SCSS | 31 | 0 | 0 | 31 | +| [src/menu/components/share/normalform/index.jsx](/src/menu/components/share/normalform/index.jsx) | JavaScript React | 180 | 2 | 12 | 194 | +| [src/menu/components/share/normalform/index.scss](/src/menu/components/share/normalform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/share/normalheader/index.jsx](/src/menu/components/share/normalheader/index.jsx) | JavaScript React | 73 | 3 | 20 | 96 | +| [src/menu/components/share/normalheader/index.scss](/src/menu/components/share/normalheader/index.scss) | SCSS | 40 | 0 | 1 | 41 | +| [src/menu/components/share/pastecomponent/index.jsx](/src/menu/components/share/pastecomponent/index.jsx) | JavaScript React | 208 | 0 | 33 | 241 | +| [src/menu/components/share/pastecomponent/index.scss](/src/menu/components/share/pastecomponent/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/share/searchcomponent/dragsearch/card.jsx](/src/menu/components/share/searchcomponent/dragsearch/card.jsx) | JavaScript React | 102 | 0 | 9 | 111 | +| [src/menu/components/share/searchcomponent/dragsearch/index.jsx](/src/menu/components/share/searchcomponent/dragsearch/index.jsx) | JavaScript React | 83 | 0 | 16 | 99 | +| [src/menu/components/share/searchcomponent/dragsearch/index.scss](/src/menu/components/share/searchcomponent/dragsearch/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/share/searchcomponent/index.jsx](/src/menu/components/share/searchcomponent/index.jsx) | JavaScript React | 248 | 28 | 47 | 323 | +| [src/menu/components/share/searchcomponent/index.scss](/src/menu/components/share/searchcomponent/index.scss) | SCSS | 62 | 0 | 3 | 65 | +| [src/menu/components/share/sourcecomponent/index.jsx](/src/menu/components/share/sourcecomponent/index.jsx) | JavaScript React | 81 | 0 | 14 | 95 | +| [src/menu/components/share/sourcecomponent/index.scss](/src/menu/components/share/sourcecomponent/index.scss) | SCSS | 55 | 0 | 2 | 57 | +| [src/menu/components/share/sourcecomponent/inputform/index.jsx](/src/menu/components/share/sourcecomponent/inputform/index.jsx) | JavaScript React | 188 | 0 | 25 | 213 | +| [src/menu/components/share/sourcecomponent/inputform/index.scss](/src/menu/components/share/sourcecomponent/inputform/index.scss) | SCSS | 59 | 0 | 1 | 60 | +| [src/menu/components/share/styleInput/index.jsx](/src/menu/components/share/styleInput/index.jsx) | JavaScript React | 112 | 3 | 25 | 140 | +| [src/menu/components/share/styleInput/index.scss](/src/menu/components/share/styleInput/index.scss) | SCSS | 11 | 0 | 1 | 12 | +| [src/menu/components/share/usercomponent/index.jsx](/src/menu/components/share/usercomponent/index.jsx) | JavaScript React | 207 | 1 | 25 | 233 | +| [src/menu/components/share/usercomponent/index.scss](/src/menu/components/share/usercomponent/index.scss) | SCSS | 6 | 0 | 1 | 7 | +| [src/menu/components/share/usercomponent/settingform/index.jsx](/src/menu/components/share/usercomponent/settingform/index.jsx) | JavaScript React | 73 | 2 | 12 | 87 | +| [src/menu/components/share/usercomponent/settingform/index.scss](/src/menu/components/share/usercomponent/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx](/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx) | JavaScript React | 318 | 4 | 7 | 329 | +| [src/menu/components/table/edit-table/columns/editColumn/index.jsx](/src/menu/components/table/edit-table/columns/editColumn/index.jsx) | JavaScript React | 366 | 1 | 31 | 398 | +| [src/menu/components/table/edit-table/columns/editColumn/index.scss](/src/menu/components/table/edit-table/columns/editColumn/index.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/menu/components/table/edit-table/columns/index.jsx](/src/menu/components/table/edit-table/columns/index.jsx) | JavaScript React | 514 | 8 | 92 | 614 | +| [src/menu/components/table/edit-table/columns/index.scss](/src/menu/components/table/edit-table/columns/index.scss) | SCSS | 120 | 0 | 3 | 123 | +| [src/menu/components/table/edit-table/columns/tableIn/customscript/index.jsx](/src/menu/components/table/edit-table/columns/tableIn/customscript/index.jsx) | JavaScript React | 297 | 8 | 42 | 347 | +| [src/menu/components/table/edit-table/columns/tableIn/customscript/index.scss](/src/menu/components/table/edit-table/columns/tableIn/customscript/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/table/edit-table/columns/tableIn/index.jsx](/src/menu/components/table/edit-table/columns/tableIn/index.jsx) | JavaScript React | 643 | 8 | 64 | 715 | +| [src/menu/components/table/edit-table/columns/tableIn/index.scss](/src/menu/components/table/edit-table/columns/tableIn/index.scss) | SCSS | 80 | 0 | 0 | 80 | +| [src/menu/components/table/edit-table/columns/tableIn/uniqueform/index.jsx](/src/menu/components/table/edit-table/columns/tableIn/uniqueform/index.jsx) | JavaScript React | 117 | 1 | 11 | 129 | +| [src/menu/components/table/edit-table/columns/tableIn/uniqueform/index.scss](/src/menu/components/table/edit-table/columns/tableIn/uniqueform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/table/edit-table/index.jsx](/src/menu/components/table/edit-table/index.jsx) | JavaScript React | 286 | 10 | 60 | 356 | +| [src/menu/components/table/edit-table/index.scss](/src/menu/components/table/edit-table/index.scss) | SCSS | 78 | 0 | 3 | 81 | +| [src/menu/components/table/edit-table/options.jsx](/src/menu/components/table/edit-table/options.jsx) | JavaScript React | 190 | 4 | 3 | 197 | +| [src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx](/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx) | JavaScript React | 408 | 4 | 10 | 422 | +| [src/menu/components/table/normal-table/columns/editColumn/index.jsx](/src/menu/components/table/normal-table/columns/editColumn/index.jsx) | JavaScript React | 362 | 1 | 28 | 391 | +| [src/menu/components/table/normal-table/columns/editColumn/index.scss](/src/menu/components/table/normal-table/columns/editColumn/index.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/menu/components/table/normal-table/columns/index.jsx](/src/menu/components/table/normal-table/columns/index.jsx) | JavaScript React | 515 | 8 | 91 | 614 | +| [src/menu/components/table/normal-table/columns/index.scss](/src/menu/components/table/normal-table/columns/index.scss) | SCSS | 122 | 0 | 3 | 125 | +| [src/menu/components/table/normal-table/index.jsx](/src/menu/components/table/normal-table/index.jsx) | JavaScript React | 382 | 10 | 76 | 468 | +| [src/menu/components/table/normal-table/index.scss](/src/menu/components/table/normal-table/index.scss) | SCSS | 78 | 0 | 3 | 81 | +| [src/menu/components/table/normal-table/options.jsx](/src/menu/components/table/normal-table/options.jsx) | JavaScript React | 254 | 4 | 3 | 261 | +| [src/menu/components/tabs/antv-tabs/dragabletabs.jsx](/src/menu/components/tabs/antv-tabs/dragabletabs.jsx) | JavaScript React | 106 | 1 | 22 | 129 | +| [src/menu/components/tabs/antv-tabs/index.jsx](/src/menu/components/tabs/antv-tabs/index.jsx) | JavaScript React | 332 | 5 | 69 | 406 | +| [src/menu/components/tabs/antv-tabs/index.scss](/src/menu/components/tabs/antv-tabs/index.scss) | SCSS | 132 | 0 | 9 | 141 | +| [src/menu/components/tabs/antv-tabs/options.jsx](/src/menu/components/tabs/antv-tabs/options.jsx) | JavaScript React | 206 | 22 | 9 | 237 | +| [src/menu/components/tabs/paste/index.jsx](/src/menu/components/tabs/paste/index.jsx) | JavaScript React | 120 | 1 | 28 | 149 | +| [src/menu/components/tabs/paste/index.scss](/src/menu/components/tabs/paste/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/components/tabs/tabcomponents/card.jsx](/src/menu/components/tabs/tabcomponents/card.jsx) | JavaScript React | 108 | 0 | 10 | 118 | +| [src/menu/components/tabs/tabcomponents/index.jsx](/src/menu/components/tabs/tabcomponents/index.jsx) | JavaScript React | 156 | 0 | 24 | 180 | +| [src/menu/components/tabs/tabcomponents/index.scss](/src/menu/components/tabs/tabcomponents/index.scss) | SCSS | 12 | 0 | 2 | 14 | +| [src/menu/components/timeline/normal-timeline/index.jsx](/src/menu/components/timeline/normal-timeline/index.jsx) | JavaScript React | 160 | 6 | 34 | 200 | +| [src/menu/components/timeline/normal-timeline/index.scss](/src/menu/components/timeline/normal-timeline/index.scss) | SCSS | 76 | 0 | 5 | 81 | +| [src/menu/components/timeline/normal-timeline/options.jsx](/src/menu/components/timeline/normal-timeline/options.jsx) | JavaScript React | 112 | 3 | 3 | 118 | +| [src/menu/components/tree/antd-tree/index.jsx](/src/menu/components/tree/antd-tree/index.jsx) | JavaScript React | 160 | 9 | 33 | 202 | +| [src/menu/components/tree/antd-tree/index.scss](/src/menu/components/tree/antd-tree/index.scss) | SCSS | 39 | 0 | 3 | 42 | +| [src/menu/components/tree/antd-tree/options.jsx](/src/menu/components/tree/antd-tree/options.jsx) | JavaScript React | 130 | 3 | 3 | 136 | +| [src/menu/datasource/index.jsx](/src/menu/datasource/index.jsx) | JavaScript React | 199 | 0 | 28 | 227 | +| [src/menu/datasource/index.scss](/src/menu/datasource/index.scss) | SCSS | 79 | 0 | 8 | 87 | +| [src/menu/datasource/verifycard/columnform/index.jsx](/src/menu/datasource/verifycard/columnform/index.jsx) | JavaScript React | 120 | 1 | 7 | 128 | +| [src/menu/datasource/verifycard/columnform/index.scss](/src/menu/datasource/verifycard/columnform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/datasource/verifycard/customscript/index.jsx](/src/menu/datasource/verifycard/customscript/index.jsx) | JavaScript React | 238 | 1 | 31 | 270 | +| [src/menu/datasource/verifycard/customscript/index.scss](/src/menu/datasource/verifycard/customscript/index.scss) | SCSS | 34 | 0 | 0 | 34 | +| [src/menu/datasource/verifycard/index.jsx](/src/menu/datasource/verifycard/index.jsx) | JavaScript React | 606 | 7 | 88 | 701 | +| [src/menu/datasource/verifycard/index.scss](/src/menu/datasource/verifycard/index.scss) | SCSS | 84 | 0 | 0 | 84 | +| [src/menu/datasource/verifycard/settingform/index.jsx](/src/menu/datasource/verifycard/settingform/index.jsx) | JavaScript React | 458 | 2 | 30 | 490 | +| [src/menu/datasource/verifycard/settingform/index.scss](/src/menu/datasource/verifycard/settingform/index.scss) | SCSS | 27 | 0 | 1 | 28 | +| [src/menu/datasource/verifycard/utils.jsx](/src/menu/datasource/verifycard/utils.jsx) | JavaScript React | 175 | 16 | 26 | 217 | +| [src/menu/header/index.jsx](/src/menu/header/index.jsx) | JavaScript React | 28 | 0 | 6 | 34 | +| [src/menu/header/index.scss](/src/menu/header/index.scss) | SCSS | 83 | 0 | 3 | 86 | +| [src/menu/menushell/card.jsx](/src/menu/menushell/card.jsx) | JavaScript React | 111 | 0 | 9 | 120 | +| [src/menu/menushell/index.jsx](/src/menu/menushell/index.jsx) | JavaScript React | 149 | 0 | 23 | 172 | +| [src/menu/menushell/index.scss](/src/menu/menushell/index.scss) | SCSS | 20 | 0 | 3 | 23 | +| [src/menu/modalconfig/controller.jsx](/src/menu/modalconfig/controller.jsx) | JavaScript React | 49 | 3 | 12 | 64 | +| [src/menu/modalconfig/index.jsx](/src/menu/modalconfig/index.jsx) | JavaScript React | 459 | 36 | 63 | 558 | +| [src/menu/modalconfig/index.scss](/src/menu/modalconfig/index.scss) | SCSS | 330 | 0 | 5 | 335 | +| [src/menu/modulesource/dragsource/index.jsx](/src/menu/modulesource/dragsource/index.jsx) | JavaScript React | 14 | 0 | 1 | 15 | +| [src/menu/modulesource/dragsource/index.scss](/src/menu/modulesource/dragsource/index.scss) | SCSS | 40 | 0 | 6 | 46 | +| [src/menu/modulesource/index.jsx](/src/menu/modulesource/index.jsx) | JavaScript React | 82 | 0 | 14 | 96 | +| [src/menu/modulesource/index.scss](/src/menu/modulesource/index.scss) | SCSS | 8 | 0 | 2 | 10 | +| [src/menu/modulesource/option.jsx](/src/menu/modulesource/option.jsx) | JavaScript React | 60 | 1 | 2 | 63 | +| [src/menu/padcontroller/index.jsx](/src/menu/padcontroller/index.jsx) | JavaScript React | 81 | 3 | 11 | 95 | +| [src/menu/padcontroller/index.scss](/src/menu/padcontroller/index.scss) | SCSS | 9 | 0 | 1 | 10 | +| [src/menu/pastecontroller/index.jsx](/src/menu/pastecontroller/index.jsx) | JavaScript React | 102 | 1 | 25 | 128 | +| [src/menu/pastecontroller/index.scss](/src/menu/pastecontroller/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/picturecontroller/editform/index.jsx](/src/menu/picturecontroller/editform/index.jsx) | JavaScript React | 162 | 1 | 10 | 173 | +| [src/menu/picturecontroller/editform/index.scss](/src/menu/picturecontroller/editform/index.scss) | SCSS | 14 | 0 | 0 | 14 | +| [src/menu/picturecontroller/index.jsx](/src/menu/picturecontroller/index.jsx) | JavaScript React | 325 | 0 | 37 | 362 | +| [src/menu/picturecontroller/index.scss](/src/menu/picturecontroller/index.scss) | SCSS | 88 | 0 | 0 | 88 | +| [src/menu/picturecontroller/video/index.jsx](/src/menu/picturecontroller/video/index.jsx) | JavaScript React | 23 | 0 | 6 | 29 | +| [src/menu/picturecontroller/video/index.scss](/src/menu/picturecontroller/video/index.scss) | SCSS | 51 | 0 | 2 | 53 | +| [src/menu/popview/index.jsx](/src/menu/popview/index.jsx) | JavaScript React | 597 | 7 | 79 | 683 | +| [src/menu/popview/index.scss](/src/menu/popview/index.scss) | SCSS | 157 | 0 | 5 | 162 | +| [src/menu/popview/menuform/index.jsx](/src/menu/popview/menuform/index.jsx) | JavaScript React | 123 | 3 | 10 | 136 | +| [src/menu/popview/menuform/index.scss](/src/menu/popview/menuform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/replaceField/index.jsx](/src/menu/replaceField/index.jsx) | JavaScript React | 485 | 4 | 55 | 544 | +| [src/menu/replaceField/index.scss](/src/menu/replaceField/index.scss) | SCSS | 9 | 0 | 0 | 9 | +| [src/menu/replaceField/settingform/index.jsx](/src/menu/replaceField/settingform/index.jsx) | JavaScript React | 209 | 2 | 20 | 231 | +| [src/menu/replaceField/settingform/index.scss](/src/menu/replaceField/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/stylecombcontrolbutton/index.jsx](/src/menu/stylecombcontrolbutton/index.jsx) | JavaScript React | 128 | 3 | 26 | 157 | +| [src/menu/stylecombcontrolbutton/index.scss](/src/menu/stylecombcontrolbutton/index.scss) | SCSS | 48 | 0 | 2 | 50 | +| [src/menu/stylecombcontroller/index.jsx](/src/menu/stylecombcontroller/index.jsx) | JavaScript React | 499 | 33 | 42 | 574 | +| [src/menu/stylecombcontroller/index.scss](/src/menu/stylecombcontroller/index.scss) | SCSS | 184 | 0 | 6 | 190 | +| [src/menu/stylecombcontroller/styleInput/index.jsx](/src/menu/stylecombcontroller/styleInput/index.jsx) | JavaScript React | 121 | 3 | 29 | 153 | +| [src/menu/stylecombcontroller/styleInput/index.scss](/src/menu/stylecombcontroller/styleInput/index.scss) | SCSS | 11 | 0 | 1 | 12 | +| [src/menu/stylecontroller/index.jsx](/src/menu/stylecontroller/index.jsx) | JavaScript React | 704 | 51 | 65 | 820 | +| [src/menu/stylecontroller/index.scss](/src/menu/stylecontroller/index.scss) | SCSS | 196 | 0 | 6 | 202 | +| [src/menu/stylecontroller/styleInput/index.jsx](/src/menu/stylecontroller/styleInput/index.jsx) | JavaScript React | 127 | 3 | 30 | 160 | +| [src/menu/stylecontroller/styleInput/index.scss](/src/menu/stylecontroller/styleInput/index.scss) | SCSS | 11 | 0 | 1 | 12 | +| [src/menu/sysinterface/index.jsx](/src/menu/sysinterface/index.jsx) | JavaScript React | 189 | 0 | 27 | 216 | +| [src/menu/sysinterface/index.scss](/src/menu/sysinterface/index.scss) | SCSS | 20 | 0 | 0 | 20 | +| [src/menu/sysinterface/settingform/baseform/index.jsx](/src/menu/sysinterface/settingform/baseform/index.jsx) | JavaScript React | 242 | 1 | 17 | 260 | +| [src/menu/sysinterface/settingform/baseform/index.scss](/src/menu/sysinterface/settingform/baseform/index.scss) | SCSS | 16 | 0 | 1 | 17 | +| [src/menu/sysinterface/settingform/index.jsx](/src/menu/sysinterface/settingform/index.jsx) | JavaScript React | 153 | 4 | 22 | 179 | +| [src/menu/sysinterface/settingform/index.scss](/src/menu/sysinterface/settingform/index.scss) | SCSS | 60 | 0 | 1 | 61 | +| [src/menu/sysinterface/settingform/simplescript/index.jsx](/src/menu/sysinterface/settingform/simplescript/index.jsx) | JavaScript React | 401 | 0 | 50 | 451 | +| [src/menu/sysinterface/settingform/simplescript/index.scss](/src/menu/sysinterface/settingform/simplescript/index.scss) | SCSS | 45 | 0 | 0 | 45 | +| [src/menu/sysinterface/settingform/utils.jsx](/src/menu/sysinterface/settingform/utils.jsx) | JavaScript React | 33 | 5 | 7 | 45 | +| [src/menu/urlfieldcomponent/index.jsx](/src/menu/urlfieldcomponent/index.jsx) | JavaScript React | 115 | 0 | 21 | 136 | +| [src/menu/urlfieldcomponent/index.scss](/src/menu/urlfieldcomponent/index.scss) | SCSS | 23 | 0 | 1 | 24 | +| [src/menu/urlfieldcomponent/settingform/index.jsx](/src/menu/urlfieldcomponent/settingform/index.jsx) | JavaScript React | 70 | 2 | 10 | 82 | +| [src/menu/urlfieldcomponent/settingform/index.scss](/src/menu/urlfieldcomponent/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/menu/versions/index.jsx](/src/menu/versions/index.jsx) | JavaScript React | 136 | 1 | 20 | 157 | +| [src/menu/versions/index.scss](/src/menu/versions/index.scss) | SCSS | 30 | 0 | 0 | 30 | +| [src/mob/colorsketch/index.jsx](/src/mob/colorsketch/index.jsx) | JavaScript React | 84 | 0 | 15 | 99 | +| [src/mob/colorsketch/index.scss](/src/mob/colorsketch/index.scss) | SCSS | 60 | 0 | 3 | 63 | +| [src/mob/components/formdragelement/card.jsx](/src/mob/components/formdragelement/card.jsx) | JavaScript React | 194 | 0 | 14 | 208 | +| [src/mob/components/formdragelement/index.jsx](/src/mob/components/formdragelement/index.jsx) | JavaScript React | 114 | 1 | 25 | 140 | +| [src/mob/components/formdragelement/index.scss](/src/mob/components/formdragelement/index.scss) | SCSS | 281 | 1 | 3 | 285 | +| [src/mob/components/menubar/normal-menubar/index.jsx](/src/mob/components/menubar/normal-menubar/index.jsx) | JavaScript React | 230 | 12 | 52 | 294 | +| [src/mob/components/menubar/normal-menubar/index.scss](/src/mob/components/menubar/normal-menubar/index.scss) | SCSS | 69 | 0 | 3 | 72 | +| [src/mob/components/menubar/normal-menubar/menucomponent/index.jsx](/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx) | JavaScript React | 137 | 3 | 29 | 169 | +| [src/mob/components/menubar/normal-menubar/menucomponent/index.scss](/src/mob/components/menubar/normal-menubar/menucomponent/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/mob/components/menubar/normal-menubar/menucomponent/options.jsx](/src/mob/components/menubar/normal-menubar/menucomponent/options.jsx) | JavaScript React | 180 | 4 | 3 | 187 | +| [src/mob/components/menubar/normal-menubar/options.jsx](/src/mob/components/menubar/normal-menubar/options.jsx) | JavaScript React | 43 | 3 | 1 | 47 | +| [src/mob/components/navbar/normal-navbar/index.jsx](/src/mob/components/navbar/normal-navbar/index.jsx) | JavaScript React | 122 | 6 | 29 | 157 | +| [src/mob/components/navbar/normal-navbar/index.scss](/src/mob/components/navbar/normal-navbar/index.scss) | SCSS | 65 | 0 | 3 | 68 | +| [src/mob/components/navbar/normal-navbar/menus/drags/card.jsx](/src/mob/components/navbar/normal-navbar/menus/drags/card.jsx) | JavaScript React | 58 | 0 | 7 | 65 | +| [src/mob/components/navbar/normal-navbar/menus/drags/index.jsx](/src/mob/components/navbar/normal-navbar/menus/drags/index.jsx) | JavaScript React | 48 | 1 | 8 | 57 | +| [src/mob/components/navbar/normal-navbar/menus/drags/index.scss](/src/mob/components/navbar/normal-navbar/menus/drags/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/mob/components/navbar/normal-navbar/menus/index.jsx](/src/mob/components/navbar/normal-navbar/menus/index.jsx) | JavaScript React | 148 | 22 | 26 | 196 | +| [src/mob/components/navbar/normal-navbar/menus/index.scss](/src/mob/components/navbar/normal-navbar/menus/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx](/src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx) | JavaScript React | 207 | 1 | 17 | 225 | +| [src/mob/components/navbar/normal-navbar/menus/menuform/index.scss](/src/mob/components/navbar/normal-navbar/menus/menuform/index.scss) | SCSS | 16 | 0 | 1 | 17 | +| [src/mob/components/navbar/normal-navbar/options.jsx](/src/mob/components/navbar/normal-navbar/options.jsx) | JavaScript React | 41 | 3 | 1 | 45 | +| [src/mob/components/search/single-search/index.jsx](/src/mob/components/search/single-search/index.jsx) | JavaScript React | 125 | 9 | 26 | 160 | +| [src/mob/components/search/single-search/index.scss](/src/mob/components/search/single-search/index.scss) | SCSS | 51 | 0 | 2 | 53 | +| [src/mob/components/search/single-search/options.jsx](/src/mob/components/search/single-search/options.jsx) | JavaScript React | 111 | 3 | 1 | 115 | +| [src/mob/components/tabs/antv-tabs/dragabletabs.jsx](/src/mob/components/tabs/antv-tabs/dragabletabs.jsx) | JavaScript React | 106 | 1 | 22 | 129 | +| [src/mob/components/tabs/antv-tabs/index.jsx](/src/mob/components/tabs/antv-tabs/index.jsx) | JavaScript React | 356 | 5 | 76 | 437 | +| [src/mob/components/tabs/antv-tabs/index.scss](/src/mob/components/tabs/antv-tabs/index.scss) | SCSS | 123 | 0 | 8 | 131 | +| [src/mob/components/tabs/antv-tabs/options.jsx](/src/mob/components/tabs/antv-tabs/options.jsx) | JavaScript React | 91 | 45 | 5 | 141 | +| [src/mob/components/tabs/tabcomponents/card.jsx](/src/mob/components/tabs/tabcomponents/card.jsx) | JavaScript React | 105 | 0 | 10 | 115 | +| [src/mob/components/tabs/tabcomponents/index.jsx](/src/mob/components/tabs/tabcomponents/index.jsx) | JavaScript React | 150 | 8 | 24 | 182 | +| [src/mob/components/tabs/tabcomponents/index.scss](/src/mob/components/tabs/tabcomponents/index.scss) | SCSS | 12 | 0 | 2 | 14 | +| [src/mob/components/topbar/normal-navbar/index.jsx](/src/mob/components/topbar/normal-navbar/index.jsx) | JavaScript React | 204 | 6 | 42 | 252 | +| [src/mob/components/topbar/normal-navbar/index.scss](/src/mob/components/topbar/normal-navbar/index.scss) | SCSS | 88 | 0 | 2 | 90 | +| [src/mob/components/topbar/normal-navbar/options.jsx](/src/mob/components/topbar/normal-navbar/options.jsx) | JavaScript React | 149 | 14 | 4 | 167 | +| [src/mob/header/index.jsx](/src/mob/header/index.jsx) | JavaScript React | 37 | 0 | 5 | 42 | +| [src/mob/header/index.scss](/src/mob/header/index.scss) | SCSS | 54 | 0 | 2 | 56 | +| [src/mob/mobshell/card.jsx](/src/mob/mobshell/card.jsx) | JavaScript React | 127 | 3 | 13 | 143 | +| [src/mob/mobshell/index.jsx](/src/mob/mobshell/index.jsx) | JavaScript React | 202 | 0 | 27 | 229 | +| [src/mob/mobshell/index.scss](/src/mob/mobshell/index.scss) | SCSS | 33 | 1 | 0 | 34 | +| [src/mob/modalconfig/controller.jsx](/src/mob/modalconfig/controller.jsx) | JavaScript React | 49 | 3 | 12 | 64 | +| [src/mob/modalconfig/index.jsx](/src/mob/modalconfig/index.jsx) | JavaScript React | 410 | 36 | 59 | 505 | +| [src/mob/modalconfig/index.scss](/src/mob/modalconfig/index.scss) | SCSS | 323 | 0 | 8 | 331 | +| [src/mob/modalconfig/pastecomponent/index.jsx](/src/mob/modalconfig/pastecomponent/index.jsx) | JavaScript React | 62 | 1 | 13 | 76 | +| [src/mob/modalconfig/pastecomponent/index.scss](/src/mob/modalconfig/pastecomponent/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/mob/modalconfig/source.jsx](/src/mob/modalconfig/source.jsx) | JavaScript React | 112 | 0 | 4 | 116 | +| [src/mob/modulesource/dragsource/index.jsx](/src/mob/modulesource/dragsource/index.jsx) | JavaScript React | 14 | 0 | 1 | 15 | +| [src/mob/modulesource/dragsource/index.scss](/src/mob/modulesource/dragsource/index.scss) | SCSS | 40 | 0 | 6 | 46 | +| [src/mob/modulesource/index.jsx](/src/mob/modulesource/index.jsx) | JavaScript React | 81 | 0 | 13 | 94 | +| [src/mob/modulesource/index.scss](/src/mob/modulesource/index.scss) | SCSS | 8 | 0 | 2 | 10 | +| [src/mob/modulesource/option.jsx](/src/mob/modulesource/option.jsx) | JavaScript React | 55 | 3 | 2 | 60 | +| [src/mob/searchconfig/controller.jsx](/src/mob/searchconfig/controller.jsx) | JavaScript React | 46 | 3 | 13 | 62 | +| [src/mob/searchconfig/groupdragelement/card.jsx](/src/mob/searchconfig/groupdragelement/card.jsx) | JavaScript React | 56 | 0 | 8 | 64 | +| [src/mob/searchconfig/groupdragelement/index.jsx](/src/mob/searchconfig/groupdragelement/index.jsx) | JavaScript React | 53 | 0 | 12 | 65 | +| [src/mob/searchconfig/groupdragelement/index.scss](/src/mob/searchconfig/groupdragelement/index.scss) | SCSS | 27 | 0 | 1 | 28 | +| [src/mob/searchconfig/groupform/index.jsx](/src/mob/searchconfig/groupform/index.jsx) | JavaScript React | 78 | 1 | 10 | 89 | +| [src/mob/searchconfig/groupform/index.scss](/src/mob/searchconfig/groupform/index.scss) | SCSS | 10 | 0 | 0 | 10 | +| [src/mob/searchconfig/index.jsx](/src/mob/searchconfig/index.jsx) | JavaScript React | 496 | 36 | 67 | 599 | +| [src/mob/searchconfig/index.scss](/src/mob/searchconfig/index.scss) | SCSS | 365 | 0 | 9 | 374 | +| [src/mob/searchconfig/pastecomponent/index.jsx](/src/mob/searchconfig/pastecomponent/index.jsx) | JavaScript React | 46 | 1 | 10 | 57 | +| [src/mob/searchconfig/pastecomponent/index.scss](/src/mob/searchconfig/pastecomponent/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/mob/searchconfig/searchdragelement/card.jsx](/src/mob/searchconfig/searchdragelement/card.jsx) | JavaScript React | 110 | 21 | 10 | 141 | +| [src/mob/searchconfig/searchdragelement/index.jsx](/src/mob/searchconfig/searchdragelement/index.jsx) | JavaScript React | 99 | 1 | 24 | 124 | +| [src/mob/searchconfig/searchdragelement/index.scss](/src/mob/searchconfig/searchdragelement/index.scss) | SCSS | 185 | 1 | 3 | 189 | +| [src/mob/searchconfig/settingform/index.jsx](/src/mob/searchconfig/settingform/index.jsx) | JavaScript React | 233 | 1 | 13 | 247 | +| [src/mob/searchconfig/settingform/index.scss](/src/mob/searchconfig/settingform/index.scss) | SCSS | 20 | 0 | 0 | 20 | +| [src/mob/searchconfig/source.jsx](/src/mob/searchconfig/source.jsx) | JavaScript React | 26 | 6 | 2 | 34 | +| [src/pc/bgcontroller/index.jsx](/src/pc/bgcontroller/index.jsx) | JavaScript React | 210 | 6 | 30 | 246 | +| [src/pc/bgcontroller/index.scss](/src/pc/bgcontroller/index.scss) | SCSS | 19 | 0 | 1 | 20 | +| [src/pc/components/login/normal-login/index.jsx](/src/pc/components/login/normal-login/index.jsx) | JavaScript React | 156 | 6 | 34 | 196 | +| [src/pc/components/login/normal-login/index.scss](/src/pc/components/login/normal-login/index.scss) | SCSS | 182 | 3 | 5 | 190 | +| [src/pc/components/login/normal-login/loginform.jsx](/src/pc/components/login/normal-login/loginform.jsx) | JavaScript React | 162 | 4 | 18 | 184 | +| [src/pc/components/login/normal-login/options.jsx](/src/pc/components/login/normal-login/options.jsx) | JavaScript React | 116 | 67 | 4 | 187 | +| [src/pc/components/navbar/normal-navbar/index.jsx](/src/pc/components/navbar/normal-navbar/index.jsx) | JavaScript React | 206 | 6 | 35 | 247 | +| [src/pc/components/navbar/normal-navbar/index.scss](/src/pc/components/navbar/normal-navbar/index.scss) | SCSS | 153 | 0 | 6 | 159 | +| [src/pc/components/navbar/normal-navbar/linksetting/index.jsx](/src/pc/components/navbar/normal-navbar/linksetting/index.jsx) | JavaScript React | 53 | 0 | 9 | 62 | +| [src/pc/components/navbar/normal-navbar/linksetting/index.scss](/src/pc/components/navbar/normal-navbar/linksetting/index.scss) | SCSS | 9 | 0 | 2 | 11 | +| [src/pc/components/navbar/normal-navbar/linksetting/linkform/index.jsx](/src/pc/components/navbar/normal-navbar/linksetting/linkform/index.jsx) | JavaScript React | 147 | 1 | 17 | 165 | +| [src/pc/components/navbar/normal-navbar/linksetting/linkform/index.scss](/src/pc/components/navbar/normal-navbar/linksetting/linkform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/pc/components/navbar/normal-navbar/linksetting/linktable/index.jsx](/src/pc/components/navbar/normal-navbar/linksetting/linktable/index.jsx) | JavaScript React | 134 | 0 | 27 | 161 | +| [src/pc/components/navbar/normal-navbar/linksetting/linktable/index.scss](/src/pc/components/navbar/normal-navbar/linksetting/linktable/index.scss) | SCSS | 18 | 0 | 2 | 20 | +| [src/pc/components/navbar/normal-navbar/menusetting/index.jsx](/src/pc/components/navbar/normal-navbar/menusetting/index.jsx) | JavaScript React | 54 | 0 | 9 | 63 | +| [src/pc/components/navbar/normal-navbar/menusetting/index.scss](/src/pc/components/navbar/normal-navbar/menusetting/index.scss) | SCSS | 9 | 0 | 2 | 11 | +| [src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx](/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx) | JavaScript React | 190 | 1 | 17 | 208 | +| [src/pc/components/navbar/normal-navbar/menusetting/menuform/index.scss](/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/pc/components/navbar/normal-navbar/menusetting/menutable/index.jsx](/src/pc/components/navbar/normal-navbar/menusetting/menutable/index.jsx) | JavaScript React | 501 | 0 | 83 | 584 | +| [src/pc/components/navbar/normal-navbar/menusetting/menutable/index.scss](/src/pc/components/navbar/normal-navbar/menusetting/menutable/index.scss) | SCSS | 60 | 0 | 4 | 64 | +| [src/pc/components/navbar/normal-navbar/options.jsx](/src/pc/components/navbar/normal-navbar/options.jsx) | JavaScript React | 113 | 3 | 2 | 118 | +| [src/pc/createview/index.jsx](/src/pc/createview/index.jsx) | JavaScript React | 204 | 0 | 26 | 230 | +| [src/pc/createview/index.scss](/src/pc/createview/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/pc/createview/settingform/index.jsx](/src/pc/createview/settingform/index.jsx) | JavaScript React | 119 | 1 | 10 | 130 | +| [src/pc/createview/settingform/index.scss](/src/pc/createview/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/pc/menushell/card.jsx](/src/pc/menushell/card.jsx) | JavaScript React | 130 | 3 | 12 | 145 | +| [src/pc/menushell/index.jsx](/src/pc/menushell/index.jsx) | JavaScript React | 166 | 0 | 25 | 191 | +| [src/pc/menushell/index.scss](/src/pc/menushell/index.scss) | SCSS | 20 | 0 | 3 | 23 | +| [src/pc/modulesource/dragsource/index.jsx](/src/pc/modulesource/dragsource/index.jsx) | JavaScript React | 14 | 0 | 1 | 15 | +| [src/pc/modulesource/dragsource/index.scss](/src/pc/modulesource/dragsource/index.scss) | SCSS | 40 | 0 | 6 | 46 | +| [src/pc/modulesource/index.jsx](/src/pc/modulesource/index.jsx) | JavaScript React | 81 | 0 | 13 | 94 | +| [src/pc/modulesource/index.scss](/src/pc/modulesource/index.scss) | SCSS | 8 | 0 | 2 | 10 | +| [src/pc/modulesource/option.jsx](/src/pc/modulesource/option.jsx) | JavaScript React | 62 | 1 | 2 | 65 | +| [src/pc/quotecomponent/index.jsx](/src/pc/quotecomponent/index.jsx) | JavaScript React | 113 | 0 | 16 | 129 | +| [src/pc/quotecomponent/index.scss](/src/pc/quotecomponent/index.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/pc/quotecomponent/settingform/index.jsx](/src/pc/quotecomponent/settingform/index.jsx) | JavaScript React | 76 | 1 | 9 | 86 | +| [src/pc/quotecomponent/settingform/index.scss](/src/pc/quotecomponent/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/pc/transfer/index.jsx](/src/pc/transfer/index.jsx) | JavaScript React | 113 | 0 | 14 | 127 | +| [src/pc/transfer/index.scss](/src/pc/transfer/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/pc/transfer/settingform/index.jsx](/src/pc/transfer/settingform/index.jsx) | JavaScript React | 58 | 2 | 8 | 68 | +| [src/pc/transfer/settingform/index.scss](/src/pc/transfer/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/router/index.js](/src/router/index.js) | JavaScript | 100 | 1 | 13 | 114 | +| [src/serviceWorker.js](/src/serviceWorker.js) | JavaScript | 90 | 31 | 13 | 134 | +| [src/setupProxy.js](/src/setupProxy.js) | JavaScript | 1 | 46 | 5 | 52 | +| [src/store/action-type.js](/src/store/action-type.js) | JavaScript | 9 | 9 | 8 | 26 | +| [src/store/action.js](/src/store/action.js) | JavaScript | 48 | 8 | 8 | 64 | +| [src/store/index.js](/src/store/index.js) | JavaScript | 8 | 0 | 2 | 10 | +| [src/store/options.js](/src/store/options.js) | JavaScript | 36 | 10 | 1 | 47 | +| [src/store/reducer.js](/src/store/reducer.js) | JavaScript | 79 | 8 | 5 | 92 | +| [src/tabviews/calendar/index.jsx](/src/tabviews/calendar/index.jsx) | JavaScript React | 472 | 33 | 82 | 587 | +| [src/tabviews/calendar/index.scss](/src/tabviews/calendar/index.scss) | SCSS | 40 | 0 | 5 | 45 | +| [src/tabviews/commontable/index.jsx](/src/tabviews/commontable/index.jsx) | JavaScript React | 1,038 | 60 | 157 | 1,255 | +| [src/tabviews/commontable/index.scss](/src/tabviews/commontable/index.scss) | SCSS | 140 | 0 | 0 | 140 | +| [src/tabviews/custom/components/card/balcony/index.jsx](/src/tabviews/custom/components/card/balcony/index.jsx) | JavaScript React | 291 | 9 | 65 | 365 | +| [src/tabviews/custom/components/card/balcony/index.scss](/src/tabviews/custom/components/card/balcony/index.scss) | SCSS | 69 | 0 | 8 | 77 | +| [src/tabviews/custom/components/card/cardItem/index.jsx](/src/tabviews/custom/components/card/cardItem/index.jsx) | JavaScript React | 148 | 6 | 33 | 187 | +| [src/tabviews/custom/components/card/cardItem/index.scss](/src/tabviews/custom/components/card/cardItem/index.scss) | SCSS | 63 | 0 | 2 | 65 | +| [src/tabviews/custom/components/card/cardcellList/asyncButtonComponent.jsx](/src/tabviews/custom/components/card/cardcellList/asyncButtonComponent.jsx) | JavaScript React | 19 | 5 | 5 | 29 | +| [src/tabviews/custom/components/card/cardcellList/index.jsx](/src/tabviews/custom/components/card/cardcellList/index.jsx) | JavaScript React | 709 | 11 | 95 | 815 | +| [src/tabviews/custom/components/card/cardcellList/index.scss](/src/tabviews/custom/components/card/cardcellList/index.scss) | SCSS | 154 | 0 | 2 | 156 | +| [src/tabviews/custom/components/card/data-card/index.jsx](/src/tabviews/custom/components/card/data-card/index.jsx) | JavaScript React | 678 | 12 | 105 | 795 | +| [src/tabviews/custom/components/card/data-card/index.scss](/src/tabviews/custom/components/card/data-card/index.scss) | SCSS | 134 | 0 | 6 | 140 | +| [src/tabviews/custom/components/card/prop-card/index.jsx](/src/tabviews/custom/components/card/prop-card/index.jsx) | JavaScript React | 353 | 9 | 68 | 430 | +| [src/tabviews/custom/components/card/prop-card/index.scss](/src/tabviews/custom/components/card/prop-card/index.scss) | SCSS | 58 | 0 | 7 | 65 | +| [src/tabviews/custom/components/card/table-card/index.jsx](/src/tabviews/custom/components/card/table-card/index.jsx) | JavaScript React | 362 | 16 | 68 | 446 | +| [src/tabviews/custom/components/card/table-card/index.scss](/src/tabviews/custom/components/card/table-card/index.scss) | SCSS | 85 | 2 | 9 | 96 | +| [src/tabviews/custom/components/carousel/cardItem/index.jsx](/src/tabviews/custom/components/carousel/cardItem/index.jsx) | JavaScript React | 75 | 6 | 21 | 102 | +| [src/tabviews/custom/components/carousel/cardItem/index.scss](/src/tabviews/custom/components/carousel/cardItem/index.scss) | SCSS | 57 | 0 | 1 | 58 | +| [src/tabviews/custom/components/carousel/data-card/index.jsx](/src/tabviews/custom/components/carousel/data-card/index.jsx) | JavaScript React | 228 | 9 | 41 | 278 | +| [src/tabviews/custom/components/carousel/data-card/index.scss](/src/tabviews/custom/components/carousel/data-card/index.scss) | SCSS | 45 | 0 | 6 | 51 | +| [src/tabviews/custom/components/carousel/prop-card/index.jsx](/src/tabviews/custom/components/carousel/prop-card/index.jsx) | JavaScript React | 222 | 9 | 43 | 274 | +| [src/tabviews/custom/components/carousel/prop-card/index.scss](/src/tabviews/custom/components/carousel/prop-card/index.scss) | SCSS | 39 | 0 | 5 | 44 | +| [src/tabviews/custom/components/chart/antv-bar-line/asyncButtonComponent.jsx](/src/tabviews/custom/components/chart/antv-bar-line/asyncButtonComponent.jsx) | JavaScript React | 23 | 5 | 6 | 34 | +| [src/tabviews/custom/components/chart/antv-bar-line/index.jsx](/src/tabviews/custom/components/chart/antv-bar-line/index.jsx) | JavaScript React | 1,542 | 47 | 223 | 1,812 | +| [src/tabviews/custom/components/chart/antv-bar-line/index.scss](/src/tabviews/custom/components/chart/antv-bar-line/index.scss) | SCSS | 86 | 0 | 5 | 91 | +| [src/tabviews/custom/components/chart/antv-dashboard/index.jsx](/src/tabviews/custom/components/chart/antv-dashboard/index.jsx) | JavaScript React | 573 | 13 | 76 | 662 | +| [src/tabviews/custom/components/chart/antv-dashboard/index.scss](/src/tabviews/custom/components/chart/antv-dashboard/index.scss) | SCSS | 61 | 0 | 6 | 67 | +| [src/tabviews/custom/components/chart/antv-pie/index.jsx](/src/tabviews/custom/components/chart/antv-pie/index.jsx) | JavaScript React | 925 | 16 | 136 | 1,077 | +| [src/tabviews/custom/components/chart/antv-pie/index.scss](/src/tabviews/custom/components/chart/antv-pie/index.scss) | SCSS | 74 | 0 | 5 | 79 | +| [src/tabviews/custom/components/chart/antv-scatter/asyncButtonComponent.jsx](/src/tabviews/custom/components/chart/antv-scatter/asyncButtonComponent.jsx) | JavaScript React | 23 | 5 | 6 | 34 | +| [src/tabviews/custom/components/chart/antv-scatter/index.jsx](/src/tabviews/custom/components/chart/antv-scatter/index.jsx) | JavaScript React | 389 | 24 | 62 | 475 | +| [src/tabviews/custom/components/chart/antv-scatter/index.scss](/src/tabviews/custom/components/chart/antv-scatter/index.scss) | SCSS | 86 | 0 | 7 | 93 | +| [src/tabviews/custom/components/chart/custom-chart/index.jsx](/src/tabviews/custom/components/chart/custom-chart/index.jsx) | JavaScript React | 305 | 26 | 60 | 391 | +| [src/tabviews/custom/components/chart/custom-chart/index.scss](/src/tabviews/custom/components/chart/custom-chart/index.scss) | SCSS | 54 | 0 | 4 | 58 | +| [src/tabviews/custom/components/code/sand-box/index.jsx](/src/tabviews/custom/components/code/sand-box/index.jsx) | JavaScript React | 188 | 4 | 32 | 224 | +| [src/tabviews/custom/components/code/sand-box/index.scss](/src/tabviews/custom/components/code/sand-box/index.scss) | SCSS | 31 | 0 | 4 | 35 | +| [src/tabviews/custom/components/editor/braft-editor/index.jsx](/src/tabviews/custom/components/editor/braft-editor/index.jsx) | JavaScript React | 164 | 3 | 30 | 197 | +| [src/tabviews/custom/components/editor/braft-editor/index.scss](/src/tabviews/custom/components/editor/braft-editor/index.scss) | SCSS | 32 | 0 | 4 | 36 | +| [src/tabviews/custom/components/form/normal-form/index.jsx](/src/tabviews/custom/components/form/normal-form/index.jsx) | JavaScript React | 327 | 11 | 68 | 406 | +| [src/tabviews/custom/components/form/normal-form/index.scss](/src/tabviews/custom/components/form/normal-form/index.scss) | SCSS | 103 | 0 | 7 | 110 | +| [src/tabviews/custom/components/form/tab-form/index.jsx](/src/tabviews/custom/components/form/tab-form/index.jsx) | JavaScript React | 284 | 11 | 56 | 351 | +| [src/tabviews/custom/components/form/tab-form/index.scss](/src/tabviews/custom/components/form/tab-form/index.scss) | SCSS | 92 | 0 | 7 | 99 | +| [src/tabviews/custom/components/group/normal-group/index.jsx](/src/tabviews/custom/components/group/normal-group/index.jsx) | JavaScript React | 313 | 5 | 36 | 354 | +| [src/tabviews/custom/components/group/normal-group/index.scss](/src/tabviews/custom/components/group/normal-group/index.scss) | SCSS | 15 | 0 | 2 | 17 | +| [src/tabviews/custom/components/module/voucher/index.jsx](/src/tabviews/custom/components/module/voucher/index.jsx) | JavaScript React | 104 | 5 | 21 | 130 | +| [src/tabviews/custom/components/module/voucher/index.scss](/src/tabviews/custom/components/module/voucher/index.scss) | SCSS | 51 | 0 | 6 | 57 | +| [src/tabviews/custom/components/module/voucher/voucherTable/index.jsx](/src/tabviews/custom/components/module/voucher/voucherTable/index.jsx) | JavaScript React | 574 | 48 | 116 | 738 | +| [src/tabviews/custom/components/module/voucher/voucherTable/index.scss](/src/tabviews/custom/components/module/voucher/voucherTable/index.scss) | SCSS | 251 | 0 | 8 | 259 | +| [src/tabviews/custom/components/share/braftContent/index.jsx](/src/tabviews/custom/components/share/braftContent/index.jsx) | JavaScript React | 46 | 0 | 12 | 58 | +| [src/tabviews/custom/components/share/braftContent/index.scss](/src/tabviews/custom/components/share/braftContent/index.scss) | SCSS | 26 | 0 | 0 | 26 | +| [src/tabviews/custom/components/share/normalTable/index.jsx](/src/tabviews/custom/components/share/normalTable/index.jsx) | JavaScript React | 760 | 13 | 150 | 923 | +| [src/tabviews/custom/components/share/normalTable/index.scss](/src/tabviews/custom/components/share/normalTable/index.scss) | SCSS | 248 | 16 | 4 | 268 | +| [src/tabviews/custom/components/share/normalheader/index.jsx](/src/tabviews/custom/components/share/normalheader/index.jsx) | JavaScript React | 42 | 3 | 12 | 57 | +| [src/tabviews/custom/components/share/normalheader/index.scss](/src/tabviews/custom/components/share/normalheader/index.scss) | SCSS | 48 | 0 | 1 | 49 | +| [src/tabviews/custom/components/share/tabtransfer/index.jsx](/src/tabviews/custom/components/share/tabtransfer/index.jsx) | JavaScript React | 288 | 5 | 27 | 320 | +| [src/tabviews/custom/components/share/tabtransfer/index.scss](/src/tabviews/custom/components/share/tabtransfer/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/custom/components/table/edit-table/index.jsx](/src/tabviews/custom/components/table/edit-table/index.jsx) | JavaScript React | 418 | 35 | 58 | 511 | +| [src/tabviews/custom/components/table/edit-table/index.scss](/src/tabviews/custom/components/table/edit-table/index.scss) | SCSS | 119 | 0 | 1 | 120 | +| [src/tabviews/custom/components/table/edit-table/normalTable/index.jsx](/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx) | JavaScript React | 901 | 17 | 160 | 1,078 | +| [src/tabviews/custom/components/table/edit-table/normalTable/index.scss](/src/tabviews/custom/components/table/edit-table/normalTable/index.scss) | SCSS | 290 | 7 | 4 | 301 | +| [src/tabviews/custom/components/table/normal-table/index.jsx](/src/tabviews/custom/components/table/normal-table/index.jsx) | JavaScript React | 591 | 38 | 80 | 709 | +| [src/tabviews/custom/components/table/normal-table/index.scss](/src/tabviews/custom/components/table/normal-table/index.scss) | SCSS | 95 | 0 | 1 | 96 | +| [src/tabviews/custom/components/tabs/antv-tabs/index.jsx](/src/tabviews/custom/components/tabs/antv-tabs/index.jsx) | JavaScript React | 109 | 3 | 24 | 136 | +| [src/tabviews/custom/components/tabs/antv-tabs/index.scss](/src/tabviews/custom/components/tabs/antv-tabs/index.scss) | SCSS | 28 | 0 | 3 | 31 | +| [src/tabviews/custom/components/timeline/normal-timeline/index.jsx](/src/tabviews/custom/components/timeline/normal-timeline/index.jsx) | JavaScript React | 266 | 20 | 47 | 333 | +| [src/tabviews/custom/components/timeline/normal-timeline/index.scss](/src/tabviews/custom/components/timeline/normal-timeline/index.scss) | SCSS | 92 | 2 | 10 | 104 | +| [src/tabviews/custom/components/tree/antd-tree/index.jsx](/src/tabviews/custom/components/tree/antd-tree/index.jsx) | JavaScript React | 406 | 20 | 70 | 496 | +| [src/tabviews/custom/components/tree/antd-tree/index.scss](/src/tabviews/custom/components/tree/antd-tree/index.scss) | SCSS | 92 | 0 | 7 | 99 | +| [src/tabviews/custom/index.jsx](/src/tabviews/custom/index.jsx) | JavaScript React | 1,043 | 29 | 145 | 1,217 | +| [src/tabviews/custom/index.scss](/src/tabviews/custom/index.scss) | SCSS | 54 | 0 | 4 | 58 | +| [src/tabviews/formtab/actionList/index.jsx](/src/tabviews/formtab/actionList/index.jsx) | JavaScript React | 289 | 32 | 46 | 367 | +| [src/tabviews/formtab/actionList/index.scss](/src/tabviews/formtab/actionList/index.scss) | SCSS | 19 | 0 | 1 | 20 | +| [src/tabviews/formtab/formgroup/index.jsx](/src/tabviews/formtab/formgroup/index.jsx) | JavaScript React | 639 | 4 | 82 | 725 | +| [src/tabviews/formtab/formgroup/index.scss](/src/tabviews/formtab/formgroup/index.scss) | SCSS | 47 | 0 | 0 | 47 | +| [src/tabviews/formtab/index.jsx](/src/tabviews/formtab/index.jsx) | JavaScript React | 545 | 33 | 93 | 671 | +| [src/tabviews/formtab/index.scss](/src/tabviews/formtab/index.scss) | SCSS | 111 | 0 | 2 | 113 | +| [src/tabviews/home/defaulthome/index.jsx](/src/tabviews/home/defaulthome/index.jsx) | JavaScript React | 276 | 0 | 8 | 284 | +| [src/tabviews/home/defaulthome/index.scss](/src/tabviews/home/defaulthome/index.scss) | SCSS | 198 | 0 | 0 | 198 | +| [src/tabviews/home/index.jsx](/src/tabviews/home/index.jsx) | JavaScript React | 87 | 0 | 12 | 99 | +| [src/tabviews/home/index.scss](/src/tabviews/home/index.scss) | SCSS | 9 | 0 | 0 | 9 | +| [src/tabviews/iframe/index.jsx](/src/tabviews/iframe/index.jsx) | JavaScript React | 37 | 3 | 10 | 50 | +| [src/tabviews/rolemanage/index.jsx](/src/tabviews/rolemanage/index.jsx) | JavaScript React | 805 | 60 | 113 | 978 | +| [src/tabviews/rolemanage/index.scss](/src/tabviews/rolemanage/index.scss) | SCSS | 112 | 1 | 1 | 114 | +| [src/tabviews/scriptmanage/actionList/index.jsx](/src/tabviews/scriptmanage/actionList/index.jsx) | JavaScript React | 245 | 32 | 35 | 312 | +| [src/tabviews/scriptmanage/actionList/index.scss](/src/tabviews/scriptmanage/actionList/index.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/tabviews/scriptmanage/config.jsx](/src/tabviews/scriptmanage/config.jsx) | JavaScript React | 86 | 1 | 2 | 89 | +| [src/tabviews/scriptmanage/index.jsx](/src/tabviews/scriptmanage/index.jsx) | JavaScript React | 272 | 34 | 43 | 349 | +| [src/tabviews/scriptmanage/index.scss](/src/tabviews/scriptmanage/index.scss) | SCSS | 70 | 0 | 3 | 73 | +| [src/tabviews/subtable/index.jsx](/src/tabviews/subtable/index.jsx) | JavaScript React | 902 | 56 | 139 | 1,097 | +| [src/tabviews/subtable/index.scss](/src/tabviews/subtable/index.scss) | SCSS | 102 | 0 | 4 | 106 | +| [src/tabviews/subtabtable/index.jsx](/src/tabviews/subtabtable/index.jsx) | JavaScript React | 734 | 47 | 121 | 902 | +| [src/tabviews/subtabtable/index.scss](/src/tabviews/subtabtable/index.scss) | SCSS | 82 | 0 | 1 | 83 | +| [src/tabviews/tabmanage/index.jsx](/src/tabviews/tabmanage/index.jsx) | JavaScript React | 513 | 4 | 60 | 577 | +| [src/tabviews/tabmanage/index.scss](/src/tabviews/tabmanage/index.scss) | SCSS | 56 | 0 | 3 | 59 | +| [src/tabviews/tabmanage/mutilform/index.jsx](/src/tabviews/tabmanage/mutilform/index.jsx) | JavaScript React | 90 | 1 | 8 | 99 | +| [src/tabviews/tabmanage/mutilform/index.scss](/src/tabviews/tabmanage/mutilform/index.scss) | SCSS | 47 | 0 | 0 | 47 | +| [src/tabviews/tabmanage/transferform/index.jsx](/src/tabviews/tabmanage/transferform/index.jsx) | JavaScript React | 35 | 0 | 9 | 44 | +| [src/tabviews/tabmanage/transferform/index.scss](/src/tabviews/tabmanage/transferform/index.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/tabviews/treepage/index.jsx](/src/tabviews/treepage/index.jsx) | JavaScript React | 540 | 29 | 88 | 657 | +| [src/tabviews/treepage/index.scss](/src/tabviews/treepage/index.scss) | SCSS | 171 | 0 | 8 | 179 | +| [src/tabviews/verupmanage/actionList/index.jsx](/src/tabviews/verupmanage/actionList/index.jsx) | JavaScript React | 665 | 51 | 101 | 817 | +| [src/tabviews/verupmanage/actionList/index.scss](/src/tabviews/verupmanage/actionList/index.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/tabviews/verupmanage/config.jsx](/src/tabviews/verupmanage/config.jsx) | JavaScript React | 154 | 3 | 3 | 160 | +| [src/tabviews/verupmanage/index.jsx](/src/tabviews/verupmanage/index.jsx) | JavaScript React | 413 | 43 | 64 | 520 | +| [src/tabviews/verupmanage/index.scss](/src/tabviews/verupmanage/index.scss) | SCSS | 77 | 0 | 3 | 80 | +| [src/tabviews/verupmanage/subtabtable/index.jsx](/src/tabviews/verupmanage/subtabtable/index.jsx) | JavaScript React | 395 | 43 | 62 | 500 | +| [src/tabviews/verupmanage/subtabtable/index.scss](/src/tabviews/verupmanage/subtabtable/index.scss) | SCSS | 46 | 0 | 2 | 48 | +| [src/tabviews/zshare/actionList/asyncButtonComponent.jsx](/src/tabviews/zshare/actionList/asyncButtonComponent.jsx) | JavaScript React | 30 | 5 | 7 | 42 | +| [src/tabviews/zshare/actionList/changeuserbutton/index.jsx](/src/tabviews/zshare/actionList/changeuserbutton/index.jsx) | JavaScript React | 240 | 10 | 35 | 285 | +| [src/tabviews/zshare/actionList/changeuserbutton/index.scss](/src/tabviews/zshare/actionList/changeuserbutton/index.scss) | SCSS | 0 | 0 | 2 | 2 | +| [src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx](/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx) | JavaScript React | 97 | 5 | 18 | 120 | +| [src/tabviews/zshare/actionList/excelInbutton/excelin/index.scss](/src/tabviews/zshare/actionList/excelInbutton/excelin/index.scss) | SCSS | 5 | 0 | 0 | 5 | +| [src/tabviews/zshare/actionList/excelInbutton/index.jsx](/src/tabviews/zshare/actionList/excelInbutton/index.jsx) | JavaScript React | 454 | 29 | 61 | 544 | +| [src/tabviews/zshare/actionList/excelInbutton/index.scss](/src/tabviews/zshare/actionList/excelInbutton/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/actionList/exceloutbutton/index.jsx](/src/tabviews/zshare/actionList/exceloutbutton/index.jsx) | JavaScript React | 807 | 47 | 136 | 990 | +| [src/tabviews/zshare/actionList/exceloutbutton/index.scss](/src/tabviews/zshare/actionList/exceloutbutton/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/actionList/index.jsx](/src/tabviews/zshare/actionList/index.jsx) | JavaScript React | 163 | 0 | 10 | 173 | +| [src/tabviews/zshare/actionList/index.scss](/src/tabviews/zshare/actionList/index.scss) | SCSS | 26 | 0 | 3 | 29 | +| [src/tabviews/zshare/actionList/newpagebutton/index.jsx](/src/tabviews/zshare/actionList/newpagebutton/index.jsx) | JavaScript React | 242 | 7 | 32 | 281 | +| [src/tabviews/zshare/actionList/newpagebutton/index.scss](/src/tabviews/zshare/actionList/newpagebutton/index.scss) | SCSS | 10 | 0 | 2 | 12 | +| [src/tabviews/zshare/actionList/normalbutton/index.jsx](/src/tabviews/zshare/actionList/normalbutton/index.jsx) | JavaScript React | 1,808 | 85 | 272 | 2,165 | +| [src/tabviews/zshare/actionList/normalbutton/index.scss](/src/tabviews/zshare/actionList/normalbutton/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/actionList/popupbutton/index.jsx](/src/tabviews/zshare/actionList/popupbutton/index.jsx) | JavaScript React | 315 | 13 | 42 | 370 | +| [src/tabviews/zshare/actionList/popupbutton/index.scss](/src/tabviews/zshare/actionList/popupbutton/index.scss) | SCSS | 48 | 0 | 1 | 49 | +| [src/tabviews/zshare/actionList/printbutton/index.jsx](/src/tabviews/zshare/actionList/printbutton/index.jsx) | JavaScript React | 1,184 | 271 | 214 | 1,669 | +| [src/tabviews/zshare/actionList/printbutton/index.scss](/src/tabviews/zshare/actionList/printbutton/index.scss) | SCSS | 0 | 0 | 2 | 2 | +| [src/tabviews/zshare/actionList/tabbutton/index.jsx](/src/tabviews/zshare/actionList/tabbutton/index.jsx) | JavaScript React | 225 | 6 | 34 | 265 | +| [src/tabviews/zshare/actionList/tabbutton/index.scss](/src/tabviews/zshare/actionList/tabbutton/index.scss) | SCSS | 0 | 0 | 2 | 2 | +| [src/tabviews/zshare/automatic/index.jsx](/src/tabviews/zshare/automatic/index.jsx) | JavaScript React | 172 | 3 | 38 | 213 | +| [src/tabviews/zshare/automatic/index.scss](/src/tabviews/zshare/automatic/index.scss) | SCSS | 14 | 0 | 1 | 15 | +| [src/tabviews/zshare/calendar/index.jsx](/src/tabviews/zshare/calendar/index.jsx) | JavaScript React | 350 | 0 | 48 | 398 | +| [src/tabviews/zshare/calendar/index.scss](/src/tabviews/zshare/calendar/index.scss) | SCSS | 206 | 1 | 2 | 209 | +| [src/tabviews/zshare/cardcomponent/asyncButtonComponent.jsx](/src/tabviews/zshare/cardcomponent/asyncButtonComponent.jsx) | JavaScript React | 23 | 4 | 6 | 33 | +| [src/tabviews/zshare/cardcomponent/index.jsx](/src/tabviews/zshare/cardcomponent/index.jsx) | JavaScript React | 698 | 27 | 101 | 826 | +| [src/tabviews/zshare/cardcomponent/index.scss](/src/tabviews/zshare/cardcomponent/index.scss) | SCSS | 302 | 0 | 23 | 325 | +| [src/tabviews/zshare/chartcomponent/asyncButtonComponent.jsx](/src/tabviews/zshare/chartcomponent/asyncButtonComponent.jsx) | JavaScript React | 23 | 5 | 6 | 34 | +| [src/tabviews/zshare/chartcomponent/index.jsx](/src/tabviews/zshare/chartcomponent/index.jsx) | JavaScript React | 933 | 41 | 141 | 1,115 | +| [src/tabviews/zshare/chartcomponent/index.scss](/src/tabviews/zshare/chartcomponent/index.scss) | SCSS | 108 | 0 | 7 | 115 | +| [src/tabviews/zshare/fileupload/index.jsx](/src/tabviews/zshare/fileupload/index.jsx) | JavaScript React | 393 | 4 | 72 | 469 | +| [src/tabviews/zshare/fileupload/index.scss](/src/tabviews/zshare/fileupload/index.scss) | SCSS | 52 | 0 | 1 | 53 | +| [src/tabviews/zshare/mutilform/index.jsx](/src/tabviews/zshare/mutilform/index.jsx) | JavaScript React | 757 | 22 | 128 | 907 | +| [src/tabviews/zshare/mutilform/index.scss](/src/tabviews/zshare/mutilform/index.scss) | SCSS | 129 | 0 | 1 | 130 | +| [src/tabviews/zshare/mutilform/mkCheckCard/index.jsx](/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx) | JavaScript React | 183 | 0 | 35 | 218 | +| [src/tabviews/zshare/mutilform/mkCheckCard/index.scss](/src/tabviews/zshare/mutilform/mkCheckCard/index.scss) | SCSS | 101 | 1 | 2 | 104 | +| [src/tabviews/zshare/mutilform/mkCheckbox/index.jsx](/src/tabviews/zshare/mutilform/mkCheckbox/index.jsx) | JavaScript React | 30 | 0 | 7 | 37 | +| [src/tabviews/zshare/mutilform/mkCheckbox/index.scss](/src/tabviews/zshare/mutilform/mkCheckbox/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/mutilform/mkColor/index.jsx](/src/tabviews/zshare/mutilform/mkColor/index.jsx) | JavaScript React | 50 | 0 | 10 | 60 | +| [src/tabviews/zshare/mutilform/mkColor/index.scss](/src/tabviews/zshare/mutilform/mkColor/index.scss) | SCSS | 39 | 0 | 2 | 41 | +| [src/tabviews/zshare/mutilform/mkDatePicker/index.jsx](/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx) | JavaScript React | 68 | 3 | 16 | 87 | +| [src/tabviews/zshare/mutilform/mkDatePicker/index.scss](/src/tabviews/zshare/mutilform/mkDatePicker/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/mutilform/mkInput/index.jsx](/src/tabviews/zshare/mutilform/mkInput/index.jsx) | JavaScript React | 68 | 3 | 18 | 89 | +| [src/tabviews/zshare/mutilform/mkInput/index.scss](/src/tabviews/zshare/mutilform/mkInput/index.scss) | SCSS | 11 | 0 | 0 | 11 | +| [src/tabviews/zshare/mutilform/mkNumberInput/index.jsx](/src/tabviews/zshare/mutilform/mkNumberInput/index.jsx) | JavaScript React | 61 | 1 | 16 | 78 | +| [src/tabviews/zshare/mutilform/mkNumberInput/index.scss](/src/tabviews/zshare/mutilform/mkNumberInput/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/mutilform/mkRadio/index.jsx](/src/tabviews/zshare/mutilform/mkRadio/index.jsx) | JavaScript React | 120 | 0 | 26 | 146 | +| [src/tabviews/zshare/mutilform/mkRadio/index.scss](/src/tabviews/zshare/mutilform/mkRadio/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/mutilform/mkSelect/index.jsx](/src/tabviews/zshare/mutilform/mkSelect/index.jsx) | JavaScript React | 182 | 0 | 29 | 211 | +| [src/tabviews/zshare/mutilform/mkSelect/index.scss](/src/tabviews/zshare/mutilform/mkSelect/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/mutilform/mkSwitch/index.jsx](/src/tabviews/zshare/mutilform/mkSwitch/index.jsx) | JavaScript React | 33 | 0 | 8 | 41 | +| [src/tabviews/zshare/mutilform/mkSwitch/index.scss](/src/tabviews/zshare/mutilform/mkSwitch/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/mutilform/mkTextArea/index.jsx](/src/tabviews/zshare/mutilform/mkTextArea/index.jsx) | JavaScript React | 75 | 0 | 17 | 92 | +| [src/tabviews/zshare/mutilform/mkTextArea/index.scss](/src/tabviews/zshare/mutilform/mkTextArea/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/normalTable/index.jsx](/src/tabviews/zshare/normalTable/index.jsx) | JavaScript React | 1,197 | 13 | 177 | 1,387 | +| [src/tabviews/zshare/normalTable/index.scss](/src/tabviews/zshare/normalTable/index.scss) | SCSS | 264 | 0 | 12 | 276 | +| [src/tabviews/zshare/pageMessage/index.jsx](/src/tabviews/zshare/pageMessage/index.jsx) | JavaScript React | 301 | 5 | 47 | 353 | +| [src/tabviews/zshare/pageMessage/index.scss](/src/tabviews/zshare/pageMessage/index.scss) | SCSS | 35 | 0 | 0 | 35 | +| [src/tabviews/zshare/settingcomponent/editTable/index.jsx](/src/tabviews/zshare/settingcomponent/editTable/index.jsx) | JavaScript React | 293 | 0 | 29 | 322 | +| [src/tabviews/zshare/settingcomponent/editTable/index.scss](/src/tabviews/zshare/settingcomponent/editTable/index.scss) | SCSS | 64 | 0 | 3 | 67 | +| [src/tabviews/zshare/settingcomponent/index.jsx](/src/tabviews/zshare/settingcomponent/index.jsx) | JavaScript React | 477 | 2 | 70 | 549 | +| [src/tabviews/zshare/settingcomponent/index.scss](/src/tabviews/zshare/settingcomponent/index.scss) | SCSS | 62 | 0 | 2 | 64 | +| [src/tabviews/zshare/topSearch/advanceform/index.jsx](/src/tabviews/zshare/topSearch/advanceform/index.jsx) | JavaScript React | 91 | 1 | 16 | 108 | +| [src/tabviews/zshare/topSearch/advanceform/index.scss](/src/tabviews/zshare/topSearch/advanceform/index.scss) | SCSS | 49 | 0 | 0 | 49 | +| [src/tabviews/zshare/topSearch/dategroup/index.jsx](/src/tabviews/zshare/topSearch/dategroup/index.jsx) | JavaScript React | 125 | 0 | 14 | 139 | +| [src/tabviews/zshare/topSearch/dategroup/index.scss](/src/tabviews/zshare/topSearch/dategroup/index.scss) | SCSS | 95 | 0 | 4 | 99 | +| [src/tabviews/zshare/topSearch/dategroup/quarterpicker/index.jsx](/src/tabviews/zshare/topSearch/dategroup/quarterpicker/index.jsx) | JavaScript React | 135 | 0 | 16 | 151 | +| [src/tabviews/zshare/topSearch/dategroup/quarterpicker/index.scss](/src/tabviews/zshare/topSearch/dategroup/quarterpicker/index.scss) | SCSS | 40 | 0 | 3 | 43 | +| [src/tabviews/zshare/topSearch/dategroup/yearpicker/index.jsx](/src/tabviews/zshare/topSearch/dategroup/yearpicker/index.jsx) | JavaScript React | 105 | 0 | 15 | 120 | +| [src/tabviews/zshare/topSearch/dategroup/yearpicker/index.scss](/src/tabviews/zshare/topSearch/dategroup/yearpicker/index.scss) | SCSS | 46 | 0 | 4 | 50 | +| [src/tabviews/zshare/topSearch/index.jsx](/src/tabviews/zshare/topSearch/index.jsx) | JavaScript React | 641 | 11 | 101 | 753 | +| [src/tabviews/zshare/topSearch/index.scss](/src/tabviews/zshare/topSearch/index.scss) | SCSS | 100 | 0 | 2 | 102 | +| [src/tabviews/zshare/topSearch/mkDatePicker/index.jsx](/src/tabviews/zshare/topSearch/mkDatePicker/index.jsx) | JavaScript React | 73 | 3 | 15 | 91 | +| [src/tabviews/zshare/topSearch/mkDatePicker/index.scss](/src/tabviews/zshare/topSearch/mkDatePicker/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/topSearch/mkInput/index.jsx](/src/tabviews/zshare/topSearch/mkInput/index.jsx) | JavaScript React | 14 | 0 | 4 | 18 | +| [src/tabviews/zshare/topSearch/mkInput/index.scss](/src/tabviews/zshare/topSearch/mkInput/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/tabviews/zshare/topSearch/mkSelect/index.jsx](/src/tabviews/zshare/topSearch/mkSelect/index.jsx) | JavaScript React | 97 | 0 | 24 | 121 | +| [src/tabviews/zshare/topSearch/mkSelect/index.scss](/src/tabviews/zshare/topSearch/mkSelect/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/calendarconfig/calcomponent/calendarform/index.jsx](/src/templates/calendarconfig/calcomponent/calendarform/index.jsx) | JavaScript React | 151 | 2 | 4 | 157 | +| [src/templates/calendarconfig/calcomponent/calendarform/index.scss](/src/templates/calendarconfig/calcomponent/calendarform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/calendarconfig/calcomponent/index.jsx](/src/templates/calendarconfig/calcomponent/index.jsx) | JavaScript React | 74 | 9 | 14 | 97 | +| [src/templates/calendarconfig/calcomponent/index.scss](/src/templates/calendarconfig/calcomponent/index.scss) | SCSS | 40 | 0 | 1 | 41 | +| [src/templates/calendarconfig/index.jsx](/src/templates/calendarconfig/index.jsx) | JavaScript React | 682 | 78 | 98 | 858 | +| [src/templates/calendarconfig/index.scss](/src/templates/calendarconfig/index.scss) | SCSS | 188 | 0 | 3 | 191 | +| [src/templates/calendarconfig/source.jsx](/src/templates/calendarconfig/source.jsx) | JavaScript React | 136 | 0 | 5 | 141 | +| [src/templates/calendarconfig/tabcomponent/index.jsx](/src/templates/calendarconfig/tabcomponent/index.jsx) | JavaScript React | 95 | 9 | 15 | 119 | +| [src/templates/calendarconfig/tabcomponent/index.scss](/src/templates/calendarconfig/tabcomponent/index.scss) | SCSS | 80 | 3 | 3 | 86 | +| [src/templates/calendarconfig/tabcomponent/tabform/index.jsx](/src/templates/calendarconfig/tabcomponent/tabform/index.jsx) | JavaScript React | 202 | 7 | 22 | 231 | +| [src/templates/calendarconfig/tabcomponent/tabform/index.scss](/src/templates/calendarconfig/tabcomponent/tabform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/comtableconfig/index.jsx](/src/templates/comtableconfig/index.jsx) | JavaScript React | 1,156 | 65 | 140 | 1,361 | +| [src/templates/comtableconfig/index.scss](/src/templates/comtableconfig/index.scss) | SCSS | 205 | 0 | 5 | 210 | +| [src/templates/comtableconfig/menuform/index.jsx](/src/templates/comtableconfig/menuform/index.jsx) | JavaScript React | 232 | 0 | 16 | 248 | +| [src/templates/comtableconfig/menuform/index.scss](/src/templates/comtableconfig/menuform/index.scss) | SCSS | 7 | 0 | 0 | 7 | +| [src/templates/comtableconfig/source.jsx](/src/templates/comtableconfig/source.jsx) | JavaScript React | 362 | 0 | 8 | 370 | +| [src/templates/formtabconfig/actionform/index.jsx](/src/templates/formtabconfig/actionform/index.jsx) | JavaScript React | 409 | 1 | 33 | 443 | +| [src/templates/formtabconfig/actionform/index.scss](/src/templates/formtabconfig/actionform/index.scss) | SCSS | 33 | 0 | 0 | 33 | +| [src/templates/formtabconfig/dragelement/card.jsx](/src/templates/formtabconfig/dragelement/card.jsx) | JavaScript React | 150 | 0 | 12 | 162 | +| [src/templates/formtabconfig/dragelement/index.jsx](/src/templates/formtabconfig/dragelement/index.jsx) | JavaScript React | 164 | 1 | 28 | 193 | +| [src/templates/formtabconfig/dragelement/index.scss](/src/templates/formtabconfig/dragelement/index.scss) | SCSS | 15 | 0 | 0 | 15 | +| [src/templates/formtabconfig/dragelement/itemtypes.js](/src/templates/formtabconfig/dragelement/itemtypes.js) | JavaScript | 8 | 0 | 1 | 9 | +| [src/templates/formtabconfig/dragelement/source.jsx](/src/templates/formtabconfig/dragelement/source.jsx) | JavaScript React | 12 | 0 | 1 | 13 | +| [src/templates/formtabconfig/groupform/index.jsx](/src/templates/formtabconfig/groupform/index.jsx) | JavaScript React | 111 | 3 | 16 | 130 | +| [src/templates/formtabconfig/groupform/index.scss](/src/templates/formtabconfig/groupform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/formtabconfig/index.jsx](/src/templates/formtabconfig/index.jsx) | JavaScript React | 1,847 | 66 | 211 | 2,124 | +| [src/templates/formtabconfig/index.scss](/src/templates/formtabconfig/index.scss) | SCSS | 424 | 0 | 6 | 430 | +| [src/templates/formtabconfig/settingform/index.jsx](/src/templates/formtabconfig/settingform/index.jsx) | JavaScript React | 330 | 1 | 26 | 357 | +| [src/templates/formtabconfig/settingform/index.scss](/src/templates/formtabconfig/settingform/index.scss) | SCSS | 10 | 0 | 0 | 10 | +| [src/templates/formtabconfig/source.jsx](/src/templates/formtabconfig/source.jsx) | JavaScript React | 182 | 0 | 7 | 189 | +| [src/templates/formtabconfig/transferform/index.jsx](/src/templates/formtabconfig/transferform/index.jsx) | JavaScript React | 61 | 0 | 12 | 73 | +| [src/templates/formtabconfig/transferform/index.scss](/src/templates/formtabconfig/transferform/index.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/templates/menuconfig/editfirstmenu/dragelement/card.jsx](/src/templates/menuconfig/editfirstmenu/dragelement/card.jsx) | JavaScript React | 47 | 0 | 5 | 52 | +| [src/templates/menuconfig/editfirstmenu/dragelement/index.jsx](/src/templates/menuconfig/editfirstmenu/dragelement/index.jsx) | JavaScript React | 75 | 0 | 11 | 86 | +| [src/templates/menuconfig/editfirstmenu/dragelement/index.scss](/src/templates/menuconfig/editfirstmenu/dragelement/index.scss) | SCSS | 53 | 0 | 2 | 55 | +| [src/templates/menuconfig/editfirstmenu/dragelement/itemtypes.js](/src/templates/menuconfig/editfirstmenu/dragelement/itemtypes.js) | JavaScript | 3 | 0 | 1 | 4 | +| [src/templates/menuconfig/editfirstmenu/index.jsx](/src/templates/menuconfig/editfirstmenu/index.jsx) | JavaScript React | 378 | 7 | 26 | 411 | +| [src/templates/menuconfig/editfirstmenu/index.scss](/src/templates/menuconfig/editfirstmenu/index.scss) | SCSS | 79 | 0 | 0 | 79 | +| [src/templates/menuconfig/editfirstmenu/menuform/index.jsx](/src/templates/menuconfig/editfirstmenu/menuform/index.jsx) | JavaScript React | 223 | 2 | 14 | 239 | +| [src/templates/menuconfig/editfirstmenu/menuform/index.scss](/src/templates/menuconfig/editfirstmenu/menuform/index.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/templates/menuconfig/editsecmenu/index.jsx](/src/templates/menuconfig/editsecmenu/index.jsx) | JavaScript React | 439 | 2 | 22 | 463 | +| [src/templates/menuconfig/editsecmenu/index.scss](/src/templates/menuconfig/editsecmenu/index.scss) | SCSS | 81 | 0 | 0 | 81 | +| [src/templates/menuconfig/editthdmenu/index.jsx](/src/templates/menuconfig/editthdmenu/index.jsx) | JavaScript React | 875 | 29 | 76 | 980 | +| [src/templates/menuconfig/editthdmenu/index.scss](/src/templates/menuconfig/editthdmenu/index.scss) | SCSS | 183 | 0 | 2 | 185 | +| [src/templates/menuconfig/editthdmenu/menuform/index.jsx](/src/templates/menuconfig/editthdmenu/menuform/index.jsx) | JavaScript React | 156 | 2 | 13 | 171 | +| [src/templates/menuconfig/editthdmenu/menuform/index.scss](/src/templates/menuconfig/editthdmenu/menuform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/menuconfig/editthdmenu/preview/index.jsx](/src/templates/menuconfig/editthdmenu/preview/index.jsx) | JavaScript React | 60 | 0 | 7 | 67 | +| [src/templates/menuconfig/editthdmenu/preview/index.scss](/src/templates/menuconfig/editthdmenu/preview/index.scss) | SCSS | 30 | 0 | 0 | 30 | +| [src/templates/menuconfig/menuelement/card.jsx](/src/templates/menuconfig/menuelement/card.jsx) | JavaScript React | 56 | 0 | 6 | 62 | +| [src/templates/menuconfig/menuelement/index.jsx](/src/templates/menuconfig/menuelement/index.jsx) | JavaScript React | 58 | 0 | 7 | 65 | +| [src/templates/menuconfig/menuelement/index.scss](/src/templates/menuconfig/menuelement/index.scss) | SCSS | 68 | 0 | 1 | 69 | +| [src/templates/menuconfig/menuelement/itemtypes.js](/src/templates/menuconfig/menuelement/itemtypes.js) | JavaScript | 3 | 0 | 1 | 4 | +| [src/templates/menuconfig/menuform/index.jsx](/src/templates/menuconfig/menuform/index.jsx) | JavaScript React | 137 | 2 | 10 | 149 | +| [src/templates/menuconfig/menuform/index.scss](/src/templates/menuconfig/menuform/index.scss) | SCSS | 17 | 0 | 1 | 18 | +| [src/templates/modalconfig/checkCard/index.jsx](/src/templates/modalconfig/checkCard/index.jsx) | JavaScript React | 72 | 0 | 11 | 83 | +| [src/templates/modalconfig/checkCard/index.scss](/src/templates/modalconfig/checkCard/index.scss) | SCSS | 35 | 0 | 0 | 35 | +| [src/templates/modalconfig/dragelement/card.jsx](/src/templates/modalconfig/dragelement/card.jsx) | JavaScript React | 156 | 0 | 13 | 169 | +| [src/templates/modalconfig/dragelement/index.jsx](/src/templates/modalconfig/dragelement/index.jsx) | JavaScript React | 110 | 1 | 25 | 136 | +| [src/templates/modalconfig/dragelement/index.scss](/src/templates/modalconfig/dragelement/index.scss) | SCSS | 129 | 0 | 0 | 129 | +| [src/templates/modalconfig/dragelement/source.jsx](/src/templates/modalconfig/dragelement/source.jsx) | JavaScript React | 12 | 0 | 1 | 13 | +| [src/templates/modalconfig/editcard/index.jsx](/src/templates/modalconfig/editcard/index.jsx) | JavaScript React | 103 | 0 | 12 | 115 | +| [src/templates/modalconfig/editcard/index.scss](/src/templates/modalconfig/editcard/index.scss) | SCSS | 49 | 0 | 1 | 50 | +| [src/templates/modalconfig/index.jsx](/src/templates/modalconfig/index.jsx) | JavaScript React | 728 | 43 | 97 | 868 | +| [src/templates/modalconfig/index.scss](/src/templates/modalconfig/index.scss) | SCSS | 260 | 0 | 3 | 263 | +| [src/templates/modalconfig/menuform/index.jsx](/src/templates/modalconfig/menuform/index.jsx) | JavaScript React | 91 | 1 | 5 | 97 | +| [src/templates/modalconfig/menuform/index.scss](/src/templates/modalconfig/menuform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/modalconfig/settingform/index.jsx](/src/templates/modalconfig/settingform/index.jsx) | JavaScript React | 292 | 7 | 14 | 313 | +| [src/templates/modalconfig/settingform/index.scss](/src/templates/modalconfig/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/modalconfig/source.jsx](/src/templates/modalconfig/source.jsx) | JavaScript React | 179 | 0 | 5 | 184 | +| [src/templates/modalconfig/transferform/index.jsx](/src/templates/modalconfig/transferform/index.jsx) | JavaScript React | 61 | 0 | 12 | 73 | +| [src/templates/modalconfig/transferform/index.scss](/src/templates/modalconfig/transferform/index.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/templates/sharecomponent/actioncomponent/actionform/index.jsx](/src/templates/sharecomponent/actioncomponent/actionform/index.jsx) | JavaScript React | 606 | 4 | 81 | 691 | +| [src/templates/sharecomponent/actioncomponent/actionform/index.scss](/src/templates/sharecomponent/actioncomponent/actionform/index.scss) | SCSS | 39 | 0 | 0 | 39 | +| [src/templates/sharecomponent/actioncomponent/dragaction/card.jsx](/src/templates/sharecomponent/actioncomponent/dragaction/card.jsx) | JavaScript React | 67 | 0 | 5 | 72 | +| [src/templates/sharecomponent/actioncomponent/dragaction/index.jsx](/src/templates/sharecomponent/actioncomponent/dragaction/index.jsx) | JavaScript React | 143 | 1 | 28 | 172 | +| [src/templates/sharecomponent/actioncomponent/dragaction/index.scss](/src/templates/sharecomponent/actioncomponent/dragaction/index.scss) | SCSS | 6 | 0 | 1 | 7 | +| [src/templates/sharecomponent/actioncomponent/index.jsx](/src/templates/sharecomponent/actioncomponent/index.jsx) | JavaScript React | 792 | 59 | 112 | 963 | +| [src/templates/sharecomponent/actioncomponent/index.scss](/src/templates/sharecomponent/actioncomponent/index.scss) | SCSS | 67 | 0 | 2 | 69 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx](/src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx) | JavaScript React | 174 | 1 | 9 | 184 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.scss](/src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx](/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx) | JavaScript React | 309 | 8 | 45 | 362 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.scss](/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx](/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx) | JavaScript React | 836 | 8 | 79 | 923 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelin/index.scss](/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.scss) | SCSS | 80 | 0 | 0 | 80 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelin/uniqueform/index.jsx](/src/templates/sharecomponent/actioncomponent/verifyexcelin/uniqueform/index.jsx) | JavaScript React | 117 | 1 | 11 | 129 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelin/uniqueform/index.scss](/src/templates/sharecomponent/actioncomponent/verifyexcelin/uniqueform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx](/src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx) | JavaScript React | 99 | 1 | 5 | 105 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.scss](/src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx](/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx) | JavaScript React | 566 | 5 | 62 | 633 | +| [src/templates/sharecomponent/actioncomponent/verifyexcelout/index.scss](/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.scss) | SCSS | 86 | 0 | 0 | 86 | +| [src/templates/sharecomponent/actioncomponent/verifyprint/editable/index.jsx](/src/templates/sharecomponent/actioncomponent/verifyprint/editable/index.jsx) | JavaScript React | 213 | 0 | 25 | 238 | +| [src/templates/sharecomponent/actioncomponent/verifyprint/editable/index.scss](/src/templates/sharecomponent/actioncomponent/verifyprint/editable/index.scss) | SCSS | 51 | 0 | 1 | 52 | +| [src/templates/sharecomponent/actioncomponent/verifyprint/index.jsx](/src/templates/sharecomponent/actioncomponent/verifyprint/index.jsx) | JavaScript React | 416 | 1 | 37 | 454 | +| [src/templates/sharecomponent/actioncomponent/verifyprint/index.scss](/src/templates/sharecomponent/actioncomponent/verifyprint/index.scss) | SCSS | 68 | 0 | 0 | 68 | +| [src/templates/sharecomponent/cardcomponent/carddetailform/index.jsx](/src/templates/sharecomponent/cardcomponent/carddetailform/index.jsx) | JavaScript React | 277 | 2 | 23 | 302 | +| [src/templates/sharecomponent/cardcomponent/carddetailform/index.scss](/src/templates/sharecomponent/cardcomponent/carddetailform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/cardcomponent/dragdetail/card.jsx](/src/templates/sharecomponent/cardcomponent/dragdetail/card.jsx) | JavaScript React | 39 | 0 | 6 | 45 | +| [src/templates/sharecomponent/cardcomponent/dragdetail/index.jsx](/src/templates/sharecomponent/cardcomponent/dragdetail/index.jsx) | JavaScript React | 43 | 0 | 7 | 50 | +| [src/templates/sharecomponent/cardcomponent/dragdetail/index.scss](/src/templates/sharecomponent/cardcomponent/dragdetail/index.scss) | SCSS | 63 | 0 | 3 | 66 | +| [src/templates/sharecomponent/cardcomponent/index.jsx](/src/templates/sharecomponent/cardcomponent/index.jsx) | JavaScript React | 423 | 1 | 54 | 478 | +| [src/templates/sharecomponent/cardcomponent/index.scss](/src/templates/sharecomponent/cardcomponent/index.scss) | SCSS | 205 | 0 | 14 | 219 | +| [src/templates/sharecomponent/chartcomponent/chartcompile/index.jsx](/src/templates/sharecomponent/chartcomponent/chartcompile/index.jsx) | JavaScript React | 490 | 0 | 54 | 544 | +| [src/templates/sharecomponent/chartcomponent/chartcompile/index.scss](/src/templates/sharecomponent/chartcomponent/chartcompile/index.scss) | SCSS | 40 | 0 | 5 | 45 | +| [src/templates/sharecomponent/chartcomponent/index.jsx](/src/templates/sharecomponent/chartcomponent/index.jsx) | JavaScript React | 530 | 0 | 99 | 629 | +| [src/templates/sharecomponent/chartcomponent/index.scss](/src/templates/sharecomponent/chartcomponent/index.scss) | SCSS | 11 | 0 | 3 | 14 | +| [src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx](/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx) | JavaScript React | 511 | 2 | 32 | 545 | +| [src/templates/sharecomponent/chartgroupcomponent/chartform/index.scss](/src/templates/sharecomponent/chartgroupcomponent/chartform/index.scss) | SCSS | 19 | 0 | 1 | 20 | +| [src/templates/sharecomponent/chartgroupcomponent/dragchartview/card.jsx](/src/templates/sharecomponent/chartgroupcomponent/dragchartview/card.jsx) | JavaScript React | 48 | 0 | 9 | 57 | +| [src/templates/sharecomponent/chartgroupcomponent/dragchartview/index.jsx](/src/templates/sharecomponent/chartgroupcomponent/dragchartview/index.jsx) | JavaScript React | 63 | 0 | 12 | 75 | +| [src/templates/sharecomponent/chartgroupcomponent/dragchartview/index.scss](/src/templates/sharecomponent/chartgroupcomponent/dragchartview/index.scss) | SCSS | 29 | 0 | 3 | 32 | +| [src/templates/sharecomponent/chartgroupcomponent/index.jsx](/src/templates/sharecomponent/chartgroupcomponent/index.jsx) | JavaScript React | 228 | 27 | 42 | 297 | +| [src/templates/sharecomponent/chartgroupcomponent/index.scss](/src/templates/sharecomponent/chartgroupcomponent/index.scss) | SCSS | 27 | 0 | 0 | 27 | +| [src/templates/sharecomponent/columncomponent/colspanform/index.jsx](/src/templates/sharecomponent/columncomponent/colspanform/index.jsx) | JavaScript React | 196 | 2 | 13 | 211 | +| [src/templates/sharecomponent/columncomponent/colspanform/index.scss](/src/templates/sharecomponent/columncomponent/colspanform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/columncomponent/columnform/index.jsx](/src/templates/sharecomponent/columncomponent/columnform/index.jsx) | JavaScript React | 334 | 4 | 28 | 366 | +| [src/templates/sharecomponent/columncomponent/columnform/index.scss](/src/templates/sharecomponent/columncomponent/columnform/index.scss) | SCSS | 17 | 0 | 2 | 19 | +| [src/templates/sharecomponent/columncomponent/dragcolumn/card.jsx](/src/templates/sharecomponent/columncomponent/dragcolumn/card.jsx) | JavaScript React | 60 | 0 | 5 | 65 | +| [src/templates/sharecomponent/columncomponent/dragcolumn/index.jsx](/src/templates/sharecomponent/columncomponent/dragcolumn/index.jsx) | JavaScript React | 168 | 2 | 23 | 193 | +| [src/templates/sharecomponent/columncomponent/dragcolumn/index.scss](/src/templates/sharecomponent/columncomponent/dragcolumn/index.scss) | SCSS | 6 | 0 | 1 | 7 | +| [src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx](/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx) | JavaScript React | 194 | 2 | 8 | 204 | +| [src/templates/sharecomponent/columncomponent/gridbtnform/index.scss](/src/templates/sharecomponent/columncomponent/gridbtnform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/columncomponent/index.jsx](/src/templates/sharecomponent/columncomponent/index.jsx) | JavaScript React | 492 | 37 | 71 | 600 | +| [src/templates/sharecomponent/columncomponent/index.scss](/src/templates/sharecomponent/columncomponent/index.scss) | SCSS | 95 | 1 | 2 | 98 | +| [src/templates/sharecomponent/columncomponent/markcolumn/index.jsx](/src/templates/sharecomponent/columncomponent/markcolumn/index.jsx) | JavaScript React | 216 | 0 | 26 | 242 | +| [src/templates/sharecomponent/columncomponent/markcolumn/index.scss](/src/templates/sharecomponent/columncomponent/markcolumn/index.scss) | SCSS | 55 | 0 | 4 | 59 | +| [src/templates/sharecomponent/columncomponent/markcolumn/markform/index.jsx](/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.jsx) | JavaScript React | 328 | 16 | 27 | 371 | +| [src/templates/sharecomponent/columncomponent/markcolumn/markform/index.scss](/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.scss) | SCSS | 7 | 0 | 0 | 7 | +| [src/templates/sharecomponent/fieldscomponent/editcard/index.jsx](/src/templates/sharecomponent/fieldscomponent/editcard/index.jsx) | JavaScript React | 159 | 0 | 25 | 184 | +| [src/templates/sharecomponent/fieldscomponent/editcard/index.scss](/src/templates/sharecomponent/fieldscomponent/editcard/index.scss) | SCSS | 55 | 0 | 1 | 56 | +| [src/templates/sharecomponent/fieldscomponent/index.jsx](/src/templates/sharecomponent/fieldscomponent/index.jsx) | JavaScript React | 250 | 10 | 29 | 289 | +| [src/templates/sharecomponent/fieldscomponent/index.scss](/src/templates/sharecomponent/fieldscomponent/index.scss) | SCSS | 30 | 0 | 0 | 30 | +| [src/templates/sharecomponent/searchcomponent/dategroup/index.jsx](/src/templates/sharecomponent/searchcomponent/dategroup/index.jsx) | JavaScript React | 27 | 0 | 5 | 32 | +| [src/templates/sharecomponent/searchcomponent/dategroup/index.scss](/src/templates/sharecomponent/searchcomponent/dategroup/index.scss) | SCSS | 36 | 0 | 2 | 38 | +| [src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx](/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx) | JavaScript React | 114 | 0 | 9 | 123 | +| [src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx](/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx) | JavaScript React | 139 | 0 | 26 | 165 | +| [src/templates/sharecomponent/searchcomponent/dragsearch/index.scss](/src/templates/sharecomponent/searchcomponent/dragsearch/index.scss) | SCSS | 6 | 0 | 1 | 7 | +| [src/templates/sharecomponent/searchcomponent/index.jsx](/src/templates/sharecomponent/searchcomponent/index.jsx) | JavaScript React | 291 | 39 | 52 | 382 | +| [src/templates/sharecomponent/searchcomponent/index.scss](/src/templates/sharecomponent/searchcomponent/index.scss) | SCSS | 84 | 0 | 1 | 85 | +| [src/templates/sharecomponent/searchcomponent/searcheditable/index.jsx](/src/templates/sharecomponent/searchcomponent/searcheditable/index.jsx) | JavaScript React | 283 | 0 | 25 | 308 | +| [src/templates/sharecomponent/searchcomponent/searcheditable/index.scss](/src/templates/sharecomponent/searchcomponent/searcheditable/index.scss) | SCSS | 43 | 0 | 1 | 44 | +| [src/templates/sharecomponent/searchcomponent/searchform/index.jsx](/src/templates/sharecomponent/searchcomponent/searchform/index.jsx) | JavaScript React | 650 | 2 | 68 | 720 | +| [src/templates/sharecomponent/searchcomponent/searchform/index.scss](/src/templates/sharecomponent/searchcomponent/searchform/index.scss) | SCSS | 36 | 1 | 1 | 38 | +| [src/templates/sharecomponent/settingcalcomponent/index.jsx](/src/templates/sharecomponent/settingcalcomponent/index.jsx) | JavaScript React | 86 | 0 | 13 | 99 | +| [src/templates/sharecomponent/settingcalcomponent/index.scss](/src/templates/sharecomponent/settingcalcomponent/index.scss) | SCSS | 79 | 0 | 8 | 87 | +| [src/templates/sharecomponent/settingcalcomponent/verifycard/columnform/index.jsx](/src/templates/sharecomponent/settingcalcomponent/verifycard/columnform/index.jsx) | JavaScript React | 133 | 1 | 11 | 145 | +| [src/templates/sharecomponent/settingcalcomponent/verifycard/columnform/index.scss](/src/templates/sharecomponent/settingcalcomponent/verifycard/columnform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx](/src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx) | JavaScript React | 358 | 6 | 43 | 407 | +| [src/templates/sharecomponent/settingcalcomponent/verifycard/index.scss](/src/templates/sharecomponent/settingcalcomponent/verifycard/index.scss) | SCSS | 80 | 0 | 0 | 80 | +| [src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.jsx](/src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.jsx) | JavaScript React | 295 | 16 | 24 | 335 | +| [src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.scss](/src/templates/sharecomponent/settingcalcomponent/verifycard/settingform/index.scss) | SCSS | 19 | 0 | 1 | 20 | +| [src/templates/sharecomponent/settingcalcomponent/verifycard/utils.jsx](/src/templates/sharecomponent/settingcalcomponent/verifycard/utils.jsx) | JavaScript React | 114 | 11 | 19 | 144 | +| [src/templates/sharecomponent/settingcomponent/index.jsx](/src/templates/sharecomponent/settingcomponent/index.jsx) | JavaScript React | 162 | 15 | 29 | 206 | +| [src/templates/sharecomponent/settingcomponent/index.scss](/src/templates/sharecomponent/settingcomponent/index.scss) | SCSS | 39 | 0 | 1 | 40 | +| [src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx](/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx) | JavaScript React | 801 | 3 | 26 | 830 | +| [src/templates/sharecomponent/settingcomponent/settingform/datasource/index.scss](/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.scss) | SCSS | 20 | 0 | 2 | 22 | +| [src/templates/sharecomponent/settingcomponent/settingform/index.jsx](/src/templates/sharecomponent/settingcomponent/settingform/index.jsx) | JavaScript React | 486 | 12 | 50 | 548 | +| [src/templates/sharecomponent/settingcomponent/settingform/index.scss](/src/templates/sharecomponent/settingcomponent/settingform/index.scss) | SCSS | 60 | 0 | 1 | 61 | +| [src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx](/src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx) | JavaScript React | 440 | 0 | 53 | 493 | +| [src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.scss](/src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.scss) | SCSS | 45 | 0 | 0 | 45 | +| [src/templates/sharecomponent/settingcomponent/settingform/utils.jsx](/src/templates/sharecomponent/settingcomponent/settingform/utils.jsx) | JavaScript React | 171 | 18 | 28 | 217 | +| [src/templates/sharecomponent/tablecomponent/index.jsx](/src/templates/sharecomponent/tablecomponent/index.jsx) | JavaScript React | 268 | 15 | 35 | 318 | +| [src/templates/sharecomponent/tablecomponent/index.scss](/src/templates/sharecomponent/tablecomponent/index.scss) | SCSS | 7 | 0 | 0 | 7 | +| [src/templates/sharecomponent/tabscomponent/index.jsx](/src/templates/sharecomponent/tabscomponent/index.jsx) | JavaScript React | 350 | 35 | 54 | 439 | +| [src/templates/sharecomponent/tabscomponent/index.scss](/src/templates/sharecomponent/tabscomponent/index.scss) | SCSS | 81 | 0 | 0 | 81 | +| [src/templates/sharecomponent/tabscomponent/tabdragelement/card.jsx](/src/templates/sharecomponent/tabscomponent/tabdragelement/card.jsx) | JavaScript React | 54 | 0 | 9 | 63 | +| [src/templates/sharecomponent/tabscomponent/tabdragelement/index.jsx](/src/templates/sharecomponent/tabscomponent/tabdragelement/index.jsx) | JavaScript React | 94 | 0 | 18 | 112 | +| [src/templates/sharecomponent/tabscomponent/tabdragelement/index.scss](/src/templates/sharecomponent/tabscomponent/tabdragelement/index.scss) | SCSS | 12 | 0 | 0 | 12 | +| [src/templates/sharecomponent/tabscomponent/tabform/index.jsx](/src/templates/sharecomponent/tabscomponent/tabform/index.jsx) | JavaScript React | 302 | 9 | 29 | 340 | +| [src/templates/sharecomponent/tabscomponent/tabform/index.scss](/src/templates/sharecomponent/tabscomponent/tabform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/sharecomponent/treesettingcomponent/index.jsx](/src/templates/sharecomponent/treesettingcomponent/index.jsx) | JavaScript React | 92 | 9 | 13 | 114 | +| [src/templates/sharecomponent/treesettingcomponent/index.scss](/src/templates/sharecomponent/treesettingcomponent/index.scss) | SCSS | 39 | 0 | 1 | 40 | +| [src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.jsx](/src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.jsx) | JavaScript React | 478 | 3 | 26 | 507 | +| [src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.scss](/src/templates/sharecomponent/treesettingcomponent/settingform/datasource/index.scss) | SCSS | 16 | 0 | 1 | 17 | +| [src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx](/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx) | JavaScript React | 254 | 2 | 30 | 286 | +| [src/templates/sharecomponent/treesettingcomponent/settingform/index.scss](/src/templates/sharecomponent/treesettingcomponent/settingform/index.scss) | SCSS | 52 | 0 | 1 | 53 | +| [src/templates/sharecomponent/treesettingcomponent/settingform/utils.jsx](/src/templates/sharecomponent/treesettingcomponent/settingform/utils.jsx) | JavaScript React | 64 | 8 | 13 | 85 | +| [src/templates/subtableconfig/index.jsx](/src/templates/subtableconfig/index.jsx) | JavaScript React | 1,019 | 55 | 123 | 1,197 | +| [src/templates/subtableconfig/index.scss](/src/templates/subtableconfig/index.scss) | SCSS | 199 | 0 | 5 | 204 | +| [src/templates/subtableconfig/menuform/index.jsx](/src/templates/subtableconfig/menuform/index.jsx) | JavaScript React | 106 | 0 | 10 | 116 | +| [src/templates/subtableconfig/menuform/index.scss](/src/templates/subtableconfig/menuform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/subtableconfig/source.jsx](/src/templates/subtableconfig/source.jsx) | JavaScript React | 333 | 0 | 7 | 340 | +| [src/templates/treepageconfig/index.jsx](/src/templates/treepageconfig/index.jsx) | JavaScript React | 690 | 52 | 85 | 827 | +| [src/templates/treepageconfig/index.scss](/src/templates/treepageconfig/index.scss) | SCSS | 252 | 0 | 6 | 258 | +| [src/templates/treepageconfig/source.jsx](/src/templates/treepageconfig/source.jsx) | JavaScript React | 53 | 0 | 5 | 58 | +| [src/templates/zshare/basetransferform/index.jsx](/src/templates/zshare/basetransferform/index.jsx) | JavaScript React | 37 | 0 | 9 | 46 | +| [src/templates/zshare/basetransferform/index.scss](/src/templates/zshare/basetransferform/index.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/templates/zshare/codemirror/index.jsx](/src/templates/zshare/codemirror/index.jsx) | JavaScript React | 151 | 1 | 19 | 171 | +| [src/templates/zshare/codemirror/index.scss](/src/templates/zshare/codemirror/index.scss) | SCSS | 77 | 1 | 1 | 79 | +| [src/templates/zshare/createfunc/index.jsx](/src/templates/zshare/createfunc/index.jsx) | JavaScript React | 179 | 11 | 24 | 214 | +| [src/templates/zshare/createfunc/index.scss](/src/templates/zshare/createfunc/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/createinterface/index.jsx](/src/templates/zshare/createinterface/index.jsx) | JavaScript React | 933 | 49 | 157 | 1,139 | +| [src/templates/zshare/createinterface/index.scss](/src/templates/zshare/createinterface/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/createinterface/mutilform/index.jsx](/src/templates/zshare/createinterface/mutilform/index.jsx) | JavaScript React | 132 | 2 | 11 | 145 | +| [src/templates/zshare/createinterface/mutilform/index.scss](/src/templates/zshare/createinterface/mutilform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/customscript/index.jsx](/src/templates/zshare/customscript/index.jsx) | JavaScript React | 378 | 0 | 50 | 428 | +| [src/templates/zshare/customscript/index.scss](/src/templates/zshare/customscript/index.scss) | SCSS | 45 | 0 | 0 | 45 | +| [src/templates/zshare/dragsource/index.jsx](/src/templates/zshare/dragsource/index.jsx) | JavaScript React | 12 | 0 | 1 | 13 | +| [src/templates/zshare/dragsource/index.scss](/src/templates/zshare/dragsource/index.scss) | SCSS | 9 | 0 | 0 | 9 | +| [src/templates/zshare/editTable/cusSwitch/index.jsx](/src/templates/zshare/editTable/cusSwitch/index.jsx) | JavaScript React | 44 | 1 | 9 | 54 | +| [src/templates/zshare/editTable/cusSwitch/index.scss](/src/templates/zshare/editTable/cusSwitch/index.scss) | SCSS | 38 | 0 | 2 | 40 | +| [src/templates/zshare/editTable/index.jsx](/src/templates/zshare/editTable/index.jsx) | JavaScript React | 551 | 0 | 85 | 636 | +| [src/templates/zshare/editTable/index.scss](/src/templates/zshare/editTable/index.scss) | SCSS | 107 | 0 | 4 | 111 | +| [src/templates/zshare/editcard/index.jsx](/src/templates/zshare/editcard/index.jsx) | JavaScript React | 142 | 0 | 17 | 159 | +| [src/templates/zshare/editcard/index.scss](/src/templates/zshare/editcard/index.scss) | SCSS | 49 | 0 | 1 | 50 | +| [src/templates/zshare/editcomponent/index.jsx](/src/templates/zshare/editcomponent/index.jsx) | JavaScript React | 206 | 6 | 25 | 237 | +| [src/templates/zshare/editcomponent/index.scss](/src/templates/zshare/editcomponent/index.scss) | SCSS | 5 | 0 | 0 | 5 | +| [src/templates/zshare/formconfig.jsx](/src/templates/zshare/formconfig.jsx) | JavaScript React | 3,511 | 132 | 39 | 3,682 | +| [src/templates/zshare/menuform/index.jsx](/src/templates/zshare/menuform/index.jsx) | JavaScript React | 122 | 1 | 10 | 133 | +| [src/templates/zshare/menuform/index.scss](/src/templates/zshare/menuform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/modalform/datatable/index.jsx](/src/templates/zshare/modalform/datatable/index.jsx) | JavaScript React | 395 | 1 | 55 | 451 | +| [src/templates/zshare/modalform/datatable/index.scss](/src/templates/zshare/modalform/datatable/index.scss) | SCSS | 76 | 0 | 1 | 77 | +| [src/templates/zshare/modalform/fieldtable/index.jsx](/src/templates/zshare/modalform/fieldtable/index.jsx) | JavaScript React | 115 | 0 | 16 | 131 | +| [src/templates/zshare/modalform/fieldtable/index.scss](/src/templates/zshare/modalform/fieldtable/index.scss) | SCSS | 14 | 0 | 1 | 15 | +| [src/templates/zshare/modalform/index.jsx](/src/templates/zshare/modalform/index.jsx) | JavaScript React | 660 | 5 | 83 | 748 | +| [src/templates/zshare/modalform/index.scss](/src/templates/zshare/modalform/index.scss) | SCSS | 37 | 0 | 0 | 37 | +| [src/templates/zshare/modalform/modaleditable/index.jsx](/src/templates/zshare/modalform/modaleditable/index.jsx) | JavaScript React | 425 | 0 | 56 | 481 | +| [src/templates/zshare/modalform/modaleditable/index.scss](/src/templates/zshare/modalform/modaleditable/index.scss) | SCSS | 56 | 0 | 1 | 57 | +| [src/templates/zshare/pasteform/index.jsx](/src/templates/zshare/pasteform/index.jsx) | JavaScript React | 84 | 1 | 9 | 94 | +| [src/templates/zshare/pasteform/index.scss](/src/templates/zshare/pasteform/index.scss) | SCSS | 6 | 0 | 1 | 7 | +| [src/templates/zshare/transferform/index.jsx](/src/templates/zshare/transferform/index.jsx) | JavaScript React | 105 | 0 | 22 | 127 | +| [src/templates/zshare/transferform/index.scss](/src/templates/zshare/transferform/index.scss) | SCSS | 36 | 0 | 2 | 38 | +| [src/templates/zshare/unattended/index.jsx](/src/templates/zshare/unattended/index.jsx) | JavaScript React | 66 | 0 | 12 | 78 | +| [src/templates/zshare/unattended/index.scss](/src/templates/zshare/unattended/index.scss) | SCSS | 8 | 0 | 0 | 8 | +| [src/templates/zshare/unattended/settingform/index.jsx](/src/templates/zshare/unattended/settingform/index.jsx) | JavaScript React | 163 | 2 | 8 | 173 | +| [src/templates/zshare/unattended/settingform/index.scss](/src/templates/zshare/unattended/settingform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/verifycard/billcodeform/index.jsx](/src/templates/zshare/verifycard/billcodeform/index.jsx) | JavaScript React | 347 | 5 | 29 | 381 | +| [src/templates/zshare/verifycard/billcodeform/index.scss](/src/templates/zshare/verifycard/billcodeform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/verifycard/callbackcustomscript/index.jsx](/src/templates/zshare/verifycard/callbackcustomscript/index.jsx) | JavaScript React | 259 | 8 | 34 | 301 | +| [src/templates/zshare/verifycard/callbackcustomscript/index.scss](/src/templates/zshare/verifycard/callbackcustomscript/index.scss) | SCSS | 5 | 0 | 0 | 5 | +| [src/templates/zshare/verifycard/contrastform/index.jsx](/src/templates/zshare/verifycard/contrastform/index.jsx) | JavaScript React | 134 | 1 | 5 | 140 | +| [src/templates/zshare/verifycard/contrastform/index.scss](/src/templates/zshare/verifycard/contrastform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/verifycard/customform/index.jsx](/src/templates/zshare/verifycard/customform/index.jsx) | JavaScript React | 232 | 3 | 23 | 258 | +| [src/templates/zshare/verifycard/customform/index.scss](/src/templates/zshare/verifycard/customform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/verifycard/customscript/index.jsx](/src/templates/zshare/verifycard/customscript/index.jsx) | JavaScript React | 287 | 10 | 36 | 333 | +| [src/templates/zshare/verifycard/customscript/index.scss](/src/templates/zshare/verifycard/customscript/index.scss) | SCSS | 5 | 0 | 0 | 5 | +| [src/templates/zshare/verifycard/index.jsx](/src/templates/zshare/verifycard/index.jsx) | JavaScript React | 1,730 | 6 | 134 | 1,870 | +| [src/templates/zshare/verifycard/index.scss](/src/templates/zshare/verifycard/index.scss) | SCSS | 204 | 0 | 8 | 212 | +| [src/templates/zshare/verifycard/uniqueform/index.jsx](/src/templates/zshare/verifycard/uniqueform/index.jsx) | JavaScript React | 117 | 1 | 9 | 127 | +| [src/templates/zshare/verifycard/uniqueform/index.scss](/src/templates/zshare/verifycard/uniqueform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/templates/zshare/verifycard/voucherform/index.jsx](/src/templates/zshare/verifycard/voucherform/index.jsx) | JavaScript React | 243 | 1 | 25 | 269 | +| [src/templates/zshare/verifycard/voucherform/index.scss](/src/templates/zshare/verifycard/voucherform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/utils/asyncComponent.jsx](/src/utils/asyncComponent.jsx) | JavaScript React | 19 | 4 | 6 | 29 | +| [src/utils/asyncIconComponent.jsx](/src/utils/asyncIconComponent.jsx) | JavaScript React | 20 | 4 | 6 | 30 | +| [src/utils/asyncLoadComponent.jsx](/src/utils/asyncLoadComponent.jsx) | JavaScript React | 22 | 4 | 6 | 32 | +| [src/utils/asyncSpinComponent.jsx](/src/utils/asyncSpinComponent.jsx) | JavaScript React | 22 | 4 | 6 | 32 | +| [src/utils/events.js](/src/utils/events.js) | JavaScript | 4 | 0 | 2 | 6 | +| [src/utils/option.js](/src/utils/option.js) | JavaScript | 903 | 9 | 15 | 927 | +| [src/utils/utils-custom.js](/src/utils/utils-custom.js) | JavaScript | 687 | 43 | 89 | 819 | +| [src/utils/utils-datamanage.js](/src/utils/utils-datamanage.js) | JavaScript | 582 | 76 | 114 | 772 | +| [src/utils/utils-update.js](/src/utils/utils-update.js) | JavaScript | 205 | 29 | 27 | 261 | +| [src/utils/utils.js](/src/utils/utils.js) | JavaScript | 1,997 | 252 | 366 | 2,615 | +| [src/views/404/index.jsx](/src/views/404/index.jsx) | JavaScript React | 27 | 0 | 4 | 31 | +| [src/views/404/index.scss](/src/views/404/index.scss) | SCSS | 10 | 0 | 0 | 10 | +| [src/views/appcheck/header/index.jsx](/src/views/appcheck/header/index.jsx) | JavaScript React | 27 | 0 | 4 | 31 | +| [src/views/appcheck/header/index.scss](/src/views/appcheck/header/index.scss) | SCSS | 55 | 0 | 2 | 57 | +| [src/views/appcheck/index.jsx](/src/views/appcheck/index.jsx) | JavaScript React | 231 | 6 | 24 | 261 | +| [src/views/appcheck/index.scss](/src/views/appcheck/index.scss) | SCSS | 94 | 0 | 7 | 101 | +| [src/views/appmanage/header/index.jsx](/src/views/appmanage/header/index.jsx) | JavaScript React | 27 | 0 | 4 | 31 | +| [src/views/appmanage/header/index.scss](/src/views/appmanage/header/index.scss) | SCSS | 55 | 0 | 2 | 57 | +| [src/views/appmanage/index.jsx](/src/views/appmanage/index.jsx) | JavaScript React | 1,089 | 9 | 113 | 1,211 | +| [src/views/appmanage/index.scss](/src/views/appmanage/index.scss) | SCSS | 119 | 0 | 7 | 126 | +| [src/views/appmanage/mutilform/index.jsx](/src/views/appmanage/mutilform/index.jsx) | JavaScript React | 76 | 7 | 6 | 89 | +| [src/views/appmanage/mutilform/index.scss](/src/views/appmanage/mutilform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/views/appmanage/scriptform/index.jsx](/src/views/appmanage/scriptform/index.jsx) | JavaScript React | 216 | 6 | 30 | 252 | +| [src/views/appmanage/scriptform/index.scss](/src/views/appmanage/scriptform/index.scss) | SCSS | 11 | 0 | 1 | 12 | +| [src/views/appmanage/submutilform/index.jsx](/src/views/appmanage/submutilform/index.jsx) | JavaScript React | 231 | 69 | 14 | 314 | +| [src/views/appmanage/submutilform/index.scss](/src/views/appmanage/submutilform/index.scss) | SCSS | 22 | 0 | 1 | 23 | +| [src/views/appmanage/transform/index.jsx](/src/views/appmanage/transform/index.jsx) | JavaScript React | 76 | 7 | 6 | 89 | +| [src/views/appmanage/transform/index.scss](/src/views/appmanage/transform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/views/billprint/index.jsx](/src/views/billprint/index.jsx) | JavaScript React | 556 | 16 | 95 | 667 | +| [src/views/billprint/index.scss](/src/views/billprint/index.scss) | SCSS | 52 | 0 | 4 | 56 | +| [src/views/design/header/index.jsx](/src/views/design/header/index.jsx) | JavaScript React | 361 | 14 | 49 | 424 | +| [src/views/design/header/index.scss](/src/views/design/header/index.scss) | SCSS | 205 | 0 | 6 | 211 | +| [src/views/design/header/versions/index.jsx](/src/views/design/header/versions/index.jsx) | JavaScript React | 389 | 0 | 59 | 448 | +| [src/views/design/header/versions/index.scss](/src/views/design/header/versions/index.scss) | SCSS | 31 | 0 | 0 | 31 | +| [src/views/design/index.jsx](/src/views/design/index.jsx) | JavaScript React | 28 | 0 | 6 | 34 | +| [src/views/design/index.scss](/src/views/design/index.scss) | SCSS | 19 | 0 | 0 | 19 | +| [src/views/design/sidemenu/config.jsx](/src/views/design/sidemenu/config.jsx) | JavaScript React | 229 | 22 | 1 | 252 | +| [src/views/design/sidemenu/index.jsx](/src/views/design/sidemenu/index.jsx) | JavaScript React | 268 | 4 | 37 | 309 | +| [src/views/design/sidemenu/index.scss](/src/views/design/sidemenu/index.scss) | SCSS | 118 | 0 | 1 | 119 | +| [src/views/imdesign/index.jsx](/src/views/imdesign/index.jsx) | JavaScript React | 496 | 7 | 65 | 568 | +| [src/views/imdesign/index.scss](/src/views/imdesign/index.scss) | SCSS | 330 | 0 | 21 | 351 | +| [src/views/imdesign/menuform/index.jsx](/src/views/imdesign/menuform/index.jsx) | JavaScript React | 67 | 2 | 8 | 77 | +| [src/views/imdesign/menuform/index.scss](/src/views/imdesign/menuform/index.scss) | SCSS | 25 | 0 | 0 | 25 | +| [src/views/imdesign/options.jsx](/src/views/imdesign/options.jsx) | JavaScript React | 23 | 3 | 3 | 29 | +| [src/views/interface/api/index.js](/src/views/interface/api/index.js) | JavaScript | 142 | 11 | 22 | 175 | +| [src/views/interface/header/index.jsx](/src/views/interface/header/index.jsx) | JavaScript React | 38 | 0 | 7 | 45 | +| [src/views/interface/header/index.scss](/src/views/interface/header/index.scss) | SCSS | 59 | 0 | 5 | 64 | +| [src/views/interface/history/index.jsx](/src/views/interface/history/index.jsx) | JavaScript React | 251 | 3 | 37 | 291 | +| [src/views/interface/history/index.scss](/src/views/interface/history/index.scss) | SCSS | 111 | 0 | 2 | 113 | +| [src/views/interface/index.jsx](/src/views/interface/index.jsx) | JavaScript React | 23 | 0 | 5 | 28 | +| [src/views/interface/index.scss](/src/views/interface/index.scss) | SCSS | 6 | 0 | 0 | 6 | +| [src/views/interface/workspace/editTable/index.jsx](/src/views/interface/workspace/editTable/index.jsx) | JavaScript React | 219 | 0 | 31 | 250 | +| [src/views/interface/workspace/editTable/index.scss](/src/views/interface/workspace/editTable/index.scss) | SCSS | 85 | 0 | 1 | 86 | +| [src/views/interface/workspace/index.jsx](/src/views/interface/workspace/index.jsx) | JavaScript React | 107 | 3 | 14 | 124 | +| [src/views/interface/workspace/index.scss](/src/views/interface/workspace/index.scss) | SCSS | 51 | 0 | 1 | 52 | +| [src/views/interface/workspace/request/index.jsx](/src/views/interface/workspace/request/index.jsx) | JavaScript React | 254 | 3 | 53 | 310 | +| [src/views/interface/workspace/request/index.scss](/src/views/interface/workspace/request/index.scss) | SCSS | 159 | 0 | 3 | 162 | +| [src/views/login/index.jsx](/src/views/login/index.jsx) | JavaScript React | 742 | 37 | 109 | 888 | +| [src/views/login/index.scss](/src/views/login/index.scss) | SCSS | 293 | 1 | 7 | 301 | +| [src/views/login/logincloudform.jsx](/src/views/login/logincloudform.jsx) | JavaScript React | 79 | 1 | 8 | 88 | +| [src/views/login/loginform.jsx](/src/views/login/loginform.jsx) | JavaScript React | 455 | 5 | 47 | 507 | +| [src/views/main/index.jsx](/src/views/main/index.jsx) | JavaScript React | 35 | 0 | 7 | 42 | +| [src/views/main/index.scss](/src/views/main/index.scss) | SCSS | 5 | 0 | 0 | 5 | +| [src/views/menudesign/homeform/index.jsx](/src/views/menudesign/homeform/index.jsx) | JavaScript React | 161 | 2 | 18 | 181 | +| [src/views/menudesign/homeform/index.scss](/src/views/menudesign/homeform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/views/menudesign/index.jsx](/src/views/menudesign/index.jsx) | JavaScript React | 998 | 4 | 110 | 1,112 | +| [src/views/menudesign/index.scss](/src/views/menudesign/index.scss) | SCSS | 178 | 0 | 5 | 183 | +| [src/views/menudesign/menuform/index.jsx](/src/views/menudesign/menuform/index.jsx) | JavaScript React | 355 | 5 | 26 | 386 | +| [src/views/menudesign/menuform/index.scss](/src/views/menudesign/menuform/index.scss) | SCSS | 8 | 0 | 0 | 8 | +| [src/views/menudesign/printmenuform/index.jsx](/src/views/menudesign/printmenuform/index.jsx) | JavaScript React | 236 | 1 | 20 | 257 | +| [src/views/menudesign/printmenuform/index.scss](/src/views/menudesign/printmenuform/index.scss) | SCSS | 0 | 0 | 1 | 1 | +| [src/views/mobdesign/index.jsx](/src/views/mobdesign/index.jsx) | JavaScript React | 1,566 | 4 | 206 | 1,776 | +| [src/views/mobdesign/index.scss](/src/views/mobdesign/index.scss) | SCSS | 274 | 1 | 16 | 291 | +| [src/views/mobdesign/menuform/index.jsx](/src/views/mobdesign/menuform/index.jsx) | JavaScript React | 239 | 3 | 13 | 255 | +| [src/views/mobdesign/menuform/index.scss](/src/views/mobdesign/menuform/index.scss) | SCSS | 25 | 0 | 0 | 25 | +| [src/views/pay/index.jsx](/src/views/pay/index.jsx) | JavaScript React | 258 | 11 | 30 | 299 | +| [src/views/pay/index.scss](/src/views/pay/index.scss) | SCSS | 146 | 3 | 8 | 157 | +| [src/views/pcdesign/index.jsx](/src/views/pcdesign/index.jsx) | JavaScript React | 1,615 | 4 | 202 | 1,821 | +| [src/views/pcdesign/index.scss](/src/views/pcdesign/index.scss) | SCSS | 227 | 0 | 11 | 238 | +| [src/views/pcdesign/menuform/index.jsx](/src/views/pcdesign/menuform/index.jsx) | JavaScript React | 176 | 3 | 13 | 192 | +| [src/views/pcdesign/menuform/index.scss](/src/views/pcdesign/menuform/index.scss) | SCSS | 8 | 0 | 0 | 8 | +| [src/views/printTemplate/dragelement/index.jsx](/src/views/printTemplate/dragelement/index.jsx) | JavaScript React | 17 | 0 | 4 | 21 | +| [src/views/printTemplate/dragelement/index.scss](/src/views/printTemplate/dragelement/index.scss) | SCSS | 22 | 0 | 4 | 26 | +| [src/views/printTemplate/dragelement/source.jsx](/src/views/printTemplate/dragelement/source.jsx) | JavaScript React | 14 | 0 | 2 | 16 | +| [src/views/printTemplate/index.jsx](/src/views/printTemplate/index.jsx) | JavaScript React | 824 | 9 | 119 | 952 | +| [src/views/printTemplate/index.scss](/src/views/printTemplate/index.scss) | SCSS | 122 | 0 | 2 | 124 | +| [src/views/printTemplate/mutilform/index.jsx](/src/views/printTemplate/mutilform/index.jsx) | JavaScript React | 290 | 1 | 32 | 323 | +| [src/views/printTemplate/mutilform/index.scss](/src/views/printTemplate/mutilform/index.scss) | SCSS | 49 | 8 | 0 | 57 | +| [src/views/printTemplate/option.js](/src/views/printTemplate/option.js) | JavaScript | 909 | 2 | 11 | 922 | +| [src/views/printTemplate/print.js](/src/views/printTemplate/print.js) | JavaScript | 394 | 19 | 42 | 455 | +| [src/views/rolemanage/header/index.jsx](/src/views/rolemanage/header/index.jsx) | JavaScript React | 28 | 0 | 4 | 32 | +| [src/views/rolemanage/header/index.scss](/src/views/rolemanage/header/index.scss) | SCSS | 56 | 0 | 2 | 58 | +| [src/views/rolemanage/index.jsx](/src/views/rolemanage/index.jsx) | JavaScript React | 814 | 4 | 109 | 927 | +| [src/views/rolemanage/index.scss](/src/views/rolemanage/index.scss) | SCSS | 86 | 0 | 5 | 91 | +| [src/views/sso/index.jsx](/src/views/sso/index.jsx) | JavaScript React | 131 | 2 | 21 | 154 | +| [src/views/sso/index.scss](/src/views/sso/index.scss) | SCSS | 7 | 0 | 0 | 7 | + +[summary](results.md) \ No newline at end of file diff --git a/.VSCodeCounter/2022-03-01_15-52-00/results.csv b/.VSCodeCounter/2022-03-01_15-52-00/results.csv new file mode 100644 index 0000000..d382e7c --- /dev/null +++ b/.VSCodeCounter/2022-03-01_15-52-00/results.csv @@ -0,0 +1,994 @@ +"filename", "language", "Markdown", "HTML", "JavaScript", "JSON", "SCSS", "JavaScript React", "CSS", "XML", "comment", "blank", "total" +"e:\project\pc-plat\README.md", "Markdown", 39, 0, 0, 0, 0, 0, 0, 0, 0, 34, 73 +"e:\project\pc-plat\config\env.js", "JavaScript", 0, 0, 54, 0, 0, 0, 0, 0, 29, 11, 94 +"e:\project\pc-plat\config\jest\cssTransform.js", "JavaScript", 0, 0, 9, 0, 0, 0, 0, 0, 3, 3, 15 +"e:\project\pc-plat\config\jest\fileTransform.js", "JavaScript", 0, 0, 31, 0, 0, 0, 0, 0, 4, 6, 41 +"e:\project\pc-plat\config\modules.js", "JavaScript", 0, 0, 51, 0, 0, 0, 0, 0, 21, 17, 89 +"e:\project\pc-plat\config\paths.js", "JavaScript", 0, 0, 65, 0, 0, 0, 0, 0, 11, 15, 91 +"e:\project\pc-plat\config\pnpTs.js", "JavaScript", 0, 0, 31, 0, 0, 0, 0, 0, 1, 4, 36 +"e:\project\pc-plat\config\webpack.config.js", "JavaScript", 0, 0, 430, 0, 0, 0, 0, 0, 213, 18, 661 +"e:\project\pc-plat\config\webpackDevServer.config.js", "JavaScript", 0, 0, 40, 0, 0, 0, 0, 0, 59, 6, 105 +"e:\project\pc-plat\package-lock.json", "JSON", 0, 0, 0, 21413, 0, 0, 0, 0, 0, 1, 21414 +"e:\project\pc-plat\package.json", "JSON", 0, 0, 0, 201, 0, 0, 0, 0, 0, 1, 202 +"e:\project\pc-plat\public\admin.html", "HTML", 0, 38, 0, 0, 0, 0, 0, 0, 0, 1, 39 +"e:\project\pc-plat\public\index.html", "HTML", 0, 23, 0, 0, 0, 0, 0, 0, 1, 1, 25 +"e:\project\pc-plat\public\manifest.json", "JSON", 0, 0, 0, 9, 0, 0, 0, 0, 0, 1, 10 +"e:\project\pc-plat\public\options.json", "JSON", 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 17 +"e:\project\pc-plat\scripts\build.js", "JavaScript", 0, 0, 152, 0, 0, 0, 0, 0, 24, 19, 195 +"e:\project\pc-plat\scripts\start.js", "JavaScript", 0, 0, 112, 0, 0, 0, 0, 0, 20, 14, 146 +"e:\project\pc-plat\scripts\test.js", "JavaScript", 0, 0, 36, 0, 0, 0, 0, 0, 7, 11, 54 +"e:\project\pc-plat\src\api\cacheutils.js", "JavaScript", 0, 0, 288, 0, 0, 0, 0, 0, 67, 45, 400 +"e:\project\pc-plat\src\api\index.js", "JavaScript", 0, 0, 671, 0, 0, 0, 0, 0, 105, 104, 880 +"e:\project\pc-plat\src\assets\css\action.scss", "SCSS", 0, 0, 0, 0, 181, 0, 0, 0, 13, 22, 216 +"e:\project\pc-plat\src\assets\css\iconfont.css", "CSS", 0, 0, 0, 0, 0, 0, 33, 0, 0, 23, 56 +"e:\project\pc-plat\src\assets\css\main.scss", "SCSS", 0, 0, 0, 0, 394, 0, 0, 0, 23, 29, 446 +"e:\project\pc-plat\src\assets\css\minkeicon.css", "CSS", 0, 0, 0, 0, 0, 0, 43, 0, 5, 4, 52 +"e:\project\pc-plat\src\assets\css\table.scss", "SCSS", 0, 0, 0, 0, 814, 0, 0, 0, 30, 28, 872 +"e:\project\pc-plat\src\assets\css\viewstyle.scss", "SCSS", 0, 0, 0, 0, 586, 0, 0, 0, 27, 10, 623 +"e:\project\pc-plat\src\assets\font\iconfont.js", "JavaScript", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1 +"e:\project\pc-plat\src\assets\font\iconfont.svg", "XML", 0, 0, 0, 0, 0, 0, 0, 38, 3, 43, 84 +"e:\project\pc-plat\src\assets\font\minkeicon.svg", "XML", 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 18 +"e:\project\pc-plat\src\assets\mobimg\slider-thumb.svg", "XML", 0, 0, 0, 0, 0, 0, 0, 14, 0, 1, 15 +"e:\project\pc-plat\src\components\404\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 19, 0, 0, 0, 2, 21 +"e:\project\pc-plat\src\components\404\index.scss", "SCSS", 0, 0, 0, 0, 13, 0, 0, 0, 0, 1, 14 +"e:\project\pc-plat\src\components\Image\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 46, 0, 0, 0, 10, 56 +"e:\project\pc-plat\src\components\Image\index.scss", "SCSS", 0, 0, 0, 0, 12, 0, 0, 0, 0, 2, 14 +"e:\project\pc-plat\src\components\barcode\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 53, 0, 0, 0, 12, 65 +"e:\project\pc-plat\src\components\barcode\index.scss", "SCSS", 0, 0, 0, 0, 15, 0, 0, 0, 0, 1, 16 +"e:\project\pc-plat\src\components\breadview\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 176, 0, 0, 5, 26, 207 +"e:\project\pc-plat\src\components\breadview\index.scss", "SCSS", 0, 0, 0, 0, 46, 0, 0, 0, 0, 1, 47 +"e:\project\pc-plat\src\components\editor\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 213, 0, 0, 1, 34, 248 +"e:\project\pc-plat\src\components\editor\index.scss", "SCSS", 0, 0, 0, 0, 29, 0, 0, 0, 0, 1, 30 +"e:\project\pc-plat\src\components\header\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 788, 0, 0, 15, 87, 890 +"e:\project\pc-plat\src\components\header\index.scss", "SCSS", 0, 0, 0, 0, 216, 0, 0, 0, 0, 6, 222 +"e:\project\pc-plat\src\components\header\loginform.jsx", "JavaScript React", 0, 0, 0, 0, 0, 114, 0, 0, 1, 15, 130 +"e:\project\pc-plat\src\components\header\resetpwd\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 140, 0, 0, 2, 16, 158 +"e:\project\pc-plat\src\components\imgScale\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 217, 0, 0, 0, 54, 271 +"e:\project\pc-plat\src\components\imgScale\index.scss", "SCSS", 0, 0, 0, 0, 233, 0, 0, 0, 0, 6, 239 +"e:\project\pc-plat\src\components\loading\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 10, 0, 0, 0, 2, 12 +"e:\project\pc-plat\src\components\lostsvg\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 72, 0, 0, 0, 2, 74 +"e:\project\pc-plat\src\components\mk-icon\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 465, 0, 0, 0, 9, 474 +"e:\project\pc-plat\src\components\mk-icon\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\mkIcon\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 71, 0, 0, 1, 13, 85 +"e:\project\pc-plat\src\components\mkIcon\index.scss", "SCSS", 0, 0, 0, 0, 67, 0, 0, 0, 0, 2, 69 +"e:\project\pc-plat\src\components\mkProgress\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 32, 0, 0, 1, 10, 43 +"e:\project\pc-plat\src\components\mkProgress\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\mutilform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 196, 0, 0, 2, 13, 211 +"e:\project\pc-plat\src\components\mutilform\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 1, 18 +"e:\project\pc-plat\src\components\normalform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 80, 0, 0, 0, 12, 92 +"e:\project\pc-plat\src\components\normalform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\normalform\modalform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 258, 0, 0, 1, 59, 318 +"e:\project\pc-plat\src\components\normalform\modalform\index.scss", "SCSS", 0, 0, 0, 0, 57, 0, 0, 0, 0, 3, 60 +"e:\project\pc-plat\src\components\normalform\modalform\mkCheckbox\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 36, 0, 0, 0, 8, 44 +"e:\project\pc-plat\src\components\normalform\modalform\mkCheckbox\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\normalform\modalform\mkInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 50, 0, 0, 4, 17, 71 +"e:\project\pc-plat\src\components\normalform\modalform\mkInput\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\normalform\modalform\mkNumberInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 46, 0, 0, 1, 15, 62 +"e:\project\pc-plat\src\components\normalform\modalform\mkNumberInput\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\normalform\modalform\mkRadio\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 74, 0, 0, 0, 19, 93 +"e:\project\pc-plat\src\components\normalform\modalform\mkRadio\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\normalform\modalform\mkSelect\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 114, 0, 0, 0, 25, 139 +"e:\project\pc-plat\src\components\normalform\modalform\mkSelect\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\normalform\modalform\mkTable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 374, 0, 0, 3, 63, 440 +"e:\project\pc-plat\src\components\normalform\modalform\mkTable\index.scss", "SCSS", 0, 0, 0, 0, 104, 0, 0, 0, 0, 5, 109 +"e:\project\pc-plat\src\components\normalform\modalform\styleInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 114, 0, 0, 0, 30, 144 +"e:\project\pc-plat\src\components\normalform\modalform\styleInput\index.scss", "SCSS", 0, 0, 0, 0, 11, 0, 0, 0, 0, 1, 12 +"e:\project\pc-plat\src\components\paste\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 63, 0, 0, 0, 9, 72 +"e:\project\pc-plat\src\components\paste\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\components\qrcode\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 49, 0, 0, 0, 9, 58 +"e:\project\pc-plat\src\components\qrcode\index.scss", "SCSS", 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8 +"e:\project\pc-plat\src\components\querylog\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 62, 0, 0, 6, 15, 83 +"e:\project\pc-plat\src\components\sidemenu\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 116, 0, 0, 2, 20, 138 +"e:\project\pc-plat\src\components\sidemenu\index.scss", "SCSS", 0, 0, 0, 0, 112, 0, 0, 0, 8, 3, 123 +"e:\project\pc-plat\src\components\simpleform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 185, 0, 0, 2, 11, 198 +"e:\project\pc-plat\src\components\simpleform\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 1, 18 +"e:\project\pc-plat\src\components\tabview\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 284, 0, 0, 7, 34, 325 +"e:\project\pc-plat\src\components\tabview\index.scss", "SCSS", 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 104 +"e:\project\pc-plat\src\components\video\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 40, 0, 0, 0, 6, 46 +"e:\project\pc-plat\src\components\video\index.scss", "SCSS", 0, 0, 0, 0, 956, 0, 0, 0, 5, 88, 1049 +"e:\project\pc-plat\src\index.js", "JavaScript", 0, 0, 216, 0, 0, 0, 0, 0, 3, 31, 250 +"e:\project\pc-plat\src\locales\en-US\login.js", "JavaScript", 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19 +"e:\project\pc-plat\src\locales\en-US\main.js", "JavaScript", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 49 +"e:\project\pc-plat\src\locales\en-US\mob.js", "JavaScript", 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 29 +"e:\project\pc-plat\src\locales\en-US\model.js", "JavaScript", 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 171 +"e:\project\pc-plat\src\locales\zh-CN\login.js", "JavaScript", 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 19 +"e:\project\pc-plat\src\locales\zh-CN\main.js", "JavaScript", 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 49 +"e:\project\pc-plat\src\locales\zh-CN\mob.js", "JavaScript", 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 29 +"e:\project\pc-plat\src\locales\zh-CN\model.js", "JavaScript", 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 171 +"e:\project\pc-plat\src\menu\bgcontroller\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 119, 0, 0, 3, 24, 146 +"e:\project\pc-plat\src\menu\bgcontroller\index.scss", "SCSS", 0, 0, 0, 0, 42, 0, 0, 0, 0, 1, 43 +"e:\project\pc-plat\src\menu\components\card\balcony\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 185, 0, 0, 8, 45, 238 +"e:\project\pc-plat\src\menu\components\card\balcony\index.scss", "SCSS", 0, 0, 0, 0, 83, 0, 0, 0, 0, 5, 88 +"e:\project\pc-plat\src\menu\components\card\balcony\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 212, 0, 0, 4, 4, 220 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\action.jsx", "JavaScript React", 0, 0, 0, 0, 0, 68, 0, 0, 0, 9, 77 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 165, 0, 0, 7, 18, 190 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 135, 0, 0, 0, 24, 159 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\index.scss", "SCSS", 0, 0, 0, 0, 124, 0, 0, 0, 0, 1, 125 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\mkProgress\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 31, 0, 0, 1, 11, 43 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\mkProgress\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\elementform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 488, 0, 0, 9, 33, 530 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\elementform\index.scss", "SCSS", 0, 0, 0, 0, 28, 0, 0, 0, 0, 1, 29 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 502, 0, 0, 28, 9, 539 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 608, 0, 0, 38, 114, 760 +"e:\project\pc-plat\src\menu\components\card\cardcellcomponent\index.scss", "SCSS", 0, 0, 0, 0, 31, 0, 0, 0, 0, 2, 33 +"e:\project\pc-plat\src\menu\components\card\cardcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 325, 0, 0, 9, 67, 401 +"e:\project\pc-plat\src\menu\components\card\cardcomponent\index.scss", "SCSS", 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 48 +"e:\project\pc-plat\src\menu\components\card\cardcomponent\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 230, 0, 0, 3, 5, 238 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 192, 0, 0, 9, 49, 250 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 57, 0, 0, 0, 12, 69 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\index.scss", "SCSS", 0, 0, 0, 0, 20, 0, 0, 0, 0, 1, 21 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\menus\columnform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 85, 0, 0, 2, 7, 94 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\menus\columnform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\menus\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 73, 0, 0, 1, 12, 86 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\menus\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 245, 0, 0, 6, 8, 259 +"e:\project\pc-plat\src\menu\components\card\data-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 554, 0, 0, 14, 119, 687 +"e:\project\pc-plat\src\menu\components\card\data-card\index.scss", "SCSS", 0, 0, 0, 0, 123, 0, 0, 0, 0, 7, 130 +"e:\project\pc-plat\src\menu\components\card\data-card\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 327, 0, 0, 17, 7, 351 +"e:\project\pc-plat\src\menu\components\card\prop-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 409, 0, 0, 12, 87, 508 +"e:\project\pc-plat\src\menu\components\card\prop-card\index.scss", "SCSS", 0, 0, 0, 0, 79, 0, 0, 0, 0, 5, 84 +"e:\project\pc-plat\src\menu\components\card\table-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 465, 0, 0, 14, 93, 572 +"e:\project\pc-plat\src\menu\components\card\table-card\index.scss", "SCSS", 0, 0, 0, 0, 91, 0, 0, 0, 0, 6, 97 +"e:\project\pc-plat\src\menu\components\carousel\data-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 233, 0, 0, 12, 54, 299 +"e:\project\pc-plat\src\menu\components\carousel\data-card\index.scss", "SCSS", 0, 0, 0, 0, 82, 0, 0, 0, 0, 6, 88 +"e:\project\pc-plat\src\menu\components\carousel\data-card\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 128, 0, 0, 3, 3, 134 +"e:\project\pc-plat\src\menu\components\carousel\prop-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 301, 0, 0, 12, 68, 381 +"e:\project\pc-plat\src\menu\components\carousel\prop-card\index.scss", "SCSS", 0, 0, 0, 0, 88, 0, 0, 0, 0, 5, 93 +"e:\project\pc-plat\src\menu\components\chart\antv-bar\chartcompile\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 451, 0, 0, 56, 10, 517 +"e:\project\pc-plat\src\menu\components\chart\antv-bar\chartcompile\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 667, 0, 0, 0, 48, 715 +"e:\project\pc-plat\src\menu\components\chart\antv-bar\chartcompile\index.scss", "SCSS", 0, 0, 0, 0, 35, 0, 0, 0, 0, 2, 37 +"e:\project\pc-plat\src\menu\components\chart\antv-bar\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1196, 0, 0, 20, 150, 1366 +"e:\project\pc-plat\src\menu\components\chart\antv-bar\index.scss", "SCSS", 0, 0, 0, 0, 64, 0, 0, 0, 0, 8, 72 +"e:\project\pc-plat\src\menu\components\chart\antv-dashboard\chartcompile\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 242, 0, 0, 17, 7, 266 +"e:\project\pc-plat\src\menu\components\chart\antv-dashboard\chartcompile\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 304, 0, 0, 0, 31, 335 +"e:\project\pc-plat\src\menu\components\chart\antv-dashboard\chartcompile\index.scss", "SCSS", 0, 0, 0, 0, 35, 0, 0, 0, 0, 2, 37 +"e:\project\pc-plat\src\menu\components\chart\antv-dashboard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 476, 0, 0, 7, 59, 542 +"e:\project\pc-plat\src\menu\components\chart\antv-dashboard\index.scss", "SCSS", 0, 0, 0, 0, 44, 0, 0, 0, 0, 6, 50 +"e:\project\pc-plat\src\menu\components\chart\antv-pie\chartcompile\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 327, 0, 0, 14, 6, 347 +"e:\project\pc-plat\src\menu\components\chart\antv-pie\chartcompile\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 327, 0, 0, 0, 33, 360 +"e:\project\pc-plat\src\menu\components\chart\antv-pie\chartcompile\index.scss", "SCSS", 0, 0, 0, 0, 30, 0, 0, 0, 0, 2, 32 +"e:\project\pc-plat\src\menu\components\chart\antv-pie\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 599, 0, 0, 6, 89, 694 +"e:\project\pc-plat\src\menu\components\chart\antv-pie\index.scss", "SCSS", 0, 0, 0, 0, 44, 0, 0, 0, 0, 6, 50 +"e:\project\pc-plat\src\menu\components\chart\antv-scatter\chartcompile\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 177, 0, 0, 10, 4, 191 +"e:\project\pc-plat\src\menu\components\chart\antv-scatter\chartcompile\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 251, 0, 0, 0, 21, 272 +"e:\project\pc-plat\src\menu\components\chart\antv-scatter\chartcompile\index.scss", "SCSS", 0, 0, 0, 0, 32, 0, 0, 0, 0, 2, 34 +"e:\project\pc-plat\src\menu\components\chart\antv-scatter\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 337, 0, 0, 10, 53, 400 +"e:\project\pc-plat\src\menu\components\chart\antv-scatter\index.scss", "SCSS", 0, 0, 0, 0, 64, 0, 0, 0, 0, 8, 72 +"e:\project\pc-plat\src\menu\components\chart\chart-custom\chartcompile\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 72, 0, 0, 24, 2, 98 +"e:\project\pc-plat\src\menu\components\chart\chart-custom\chartcompile\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 103, 0, 0, 0, 17, 120 +"e:\project\pc-plat\src\menu\components\chart\chart-custom\chartcompile\index.scss", "SCSS", 0, 0, 0, 0, 10, 0, 0, 0, 0, 2, 12 +"e:\project\pc-plat\src\menu\components\chart\chart-custom\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 226, 0, 0, 6, 39, 271 +"e:\project\pc-plat\src\menu\components\chart\chart-custom\index.scss", "SCSS", 0, 0, 0, 0, 64, 0, 0, 0, 0, 8, 72 +"e:\project\pc-plat\src\menu\components\code\sandbox\codecontent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 65, 0, 0, 7, 16, 88 +"e:\project\pc-plat\src\menu\components\code\sandbox\codecontent\index.scss", "SCSS", 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 26 +"e:\project\pc-plat\src\menu\components\code\sandbox\editorcode\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 95, 0, 0, 0, 16, 111 +"e:\project\pc-plat\src\menu\components\code\sandbox\editorcode\index.scss", "SCSS", 0, 0, 0, 0, 18, 0, 0, 0, 0, 2, 20 +"e:\project\pc-plat\src\menu\components\code\sandbox\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 155, 0, 0, 9, 32, 196 +"e:\project\pc-plat\src\menu\components\code\sandbox\index.scss", "SCSS", 0, 0, 0, 0, 35, 0, 0, 0, 0, 2, 37 +"e:\project\pc-plat\src\menu\components\code\sandbox\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 56, 0, 0, 3, 3, 62 +"e:\project\pc-plat\src\menu\components\editor\braft-editor\editorcontent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 69, 0, 0, 0, 14, 83 +"e:\project\pc-plat\src\menu\components\editor\braft-editor\editorcontent\index.scss", "SCSS", 0, 0, 0, 0, 16, 0, 0, 0, 0, 1, 17 +"e:\project\pc-plat\src\menu\components\editor\braft-editor\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 156, 0, 0, 6, 32, 194 +"e:\project\pc-plat\src\menu\components\editor\braft-editor\index.scss", "SCSS", 0, 0, 0, 0, 35, 0, 0, 0, 0, 2, 37 +"e:\project\pc-plat\src\menu\components\editor\braft-editor\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 98, 0, 0, 3, 3, 104 +"e:\project\pc-plat\src\menu\components\form\dragtitle\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 76, 0, 0, 0, 13, 89 +"e:\project\pc-plat\src\menu\components\form\dragtitle\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 50, 0, 0, 0, 10, 60 +"e:\project\pc-plat\src\menu\components\form\dragtitle\index.scss", "SCSS", 0, 0, 0, 0, 88, 0, 0, 0, 0, 1, 89 +"e:\project\pc-plat\src\menu\components\form\dragtitle\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 93, 0, 0, 3, 3, 99 +"e:\project\pc-plat\src\menu\components\form\formaction\actionform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 333, 0, 0, 8, 29, 370 +"e:\project\pc-plat\src\menu\components\form\formaction\actionform\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 39 +"e:\project\pc-plat\src\menu\components\form\formaction\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 294, 0, 0, 5, 6, 305 +"e:\project\pc-plat\src\menu\components\form\formaction\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 224, 0, 0, 18, 37, 279 +"e:\project\pc-plat\src\menu\components\form\formaction\index.scss", "SCSS", 0, 0, 0, 0, 16, 0, 0, 0, 0, 2, 18 +"e:\project\pc-plat\src\menu\components\form\normal-form\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 622, 0, 0, 18, 104, 744 +"e:\project\pc-plat\src\menu\components\form\normal-form\index.scss", "SCSS", 0, 0, 0, 0, 82, 0, 0, 0, 0, 3, 85 +"e:\project\pc-plat\src\menu\components\form\normal-form\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 100, 0, 0, 3, 3, 106 +"e:\project\pc-plat\src\menu\components\form\tab-form\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 630, 0, 0, 18, 104, 752 +"e:\project\pc-plat\src\menu\components\form\tab-form\index.scss", "SCSS", 0, 0, 0, 0, 82, 0, 0, 0, 0, 3, 85 +"e:\project\pc-plat\src\menu\components\group\groupcomponents\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 99, 0, 0, 0, 10, 109 +"e:\project\pc-plat\src\menu\components\group\groupcomponents\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 132, 0, 0, 0, 22, 154 +"e:\project\pc-plat\src\menu\components\group\groupcomponents\index.scss", "SCSS", 0, 0, 0, 0, 12, 0, 0, 0, 0, 2, 14 +"e:\project\pc-plat\src\menu\components\group\normal-group\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 161, 0, 0, 4, 38, 203 +"e:\project\pc-plat\src\menu\components\group\normal-group\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 2, 41 +"e:\project\pc-plat\src\menu\components\group\normal-group\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 87, 0, 0, 3, 3, 93 +"e:\project\pc-plat\src\menu\components\group\paste\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 83, 0, 0, 1, 18, 102 +"e:\project\pc-plat\src\menu\components\group\paste\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\module\voucher\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 123, 0, 0, 12, 29, 164 +"e:\project\pc-plat\src\menu\components\module\voucher\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 3, 42 +"e:\project\pc-plat\src\menu\components\module\voucher\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 68, 0, 0, 10, 5, 83 +"e:\project\pc-plat\src\menu\components\search\main-search\dategroup\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 27, 0, 0, 0, 5, 32 +"e:\project\pc-plat\src\menu\components\search\main-search\dategroup\index.scss", "SCSS", 0, 0, 0, 0, 36, 0, 0, 0, 0, 2, 38 +"e:\project\pc-plat\src\menu\components\search\main-search\dragsearch\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 106, 0, 0, 0, 9, 115 +"e:\project\pc-plat\src\menu\components\search\main-search\dragsearch\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 112, 0, 0, 0, 17, 129 +"e:\project\pc-plat\src\menu\components\search\main-search\dragsearch\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 7 +"e:\project\pc-plat\src\menu\components\search\main-search\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 377, 0, 0, 26, 64, 467 +"e:\project\pc-plat\src\menu\components\search\main-search\index.scss", "SCSS", 0, 0, 0, 0, 140, 0, 0, 0, 0, 1, 141 +"e:\project\pc-plat\src\menu\components\search\main-search\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 78, 0, 0, 3, 3, 84 +"e:\project\pc-plat\src\menu\components\share\actioncomponent\actionform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 714, 0, 0, 10, 93, 817 +"e:\project\pc-plat\src\menu\components\share\actioncomponent\actionform\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 39 +"e:\project\pc-plat\src\menu\components\share\actioncomponent\dragaction\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 92, 0, 0, 0, 9, 101 +"e:\project\pc-plat\src\menu\components\share\actioncomponent\dragaction\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 106, 0, 0, 0, 24, 130 +"e:\project\pc-plat\src\menu\components\share\actioncomponent\dragaction\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\share\actioncomponent\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 849, 0, 0, 11, 16, 876 +"e:\project\pc-plat\src\menu\components\share\actioncomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 439, 0, 0, 38, 74, 551 +"e:\project\pc-plat\src\menu\components\share\actioncomponent\index.scss", "SCSS", 0, 0, 0, 0, 79, 0, 0, 0, 0, 3, 82 +"e:\project\pc-plat\src\menu\components\share\clockcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 54, 0, 0, 0, 10, 64 +"e:\project\pc-plat\src\menu\components\share\clockcomponent\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 7 +"e:\project\pc-plat\src\menu\components\share\clockcomponent\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 98, 0, 0, 1, 8, 107 +"e:\project\pc-plat\src\menu\components\share\clockcomponent\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\share\copycomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 39, 0, 0, 0, 8, 47 +"e:\project\pc-plat\src\menu\components\share\copycomponent\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\share\logcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 115, 0, 0, 0, 16, 131 +"e:\project\pc-plat\src\menu\components\share\logcomponent\index.scss", "SCSS", 0, 0, 0, 0, 20, 0, 0, 0, 0, 1, 21 +"e:\project\pc-plat\src\menu\components\share\markcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 327, 0, 0, 0, 26, 353 +"e:\project\pc-plat\src\menu\components\share\markcomponent\index.scss", "SCSS", 0, 0, 0, 0, 55, 0, 0, 0, 0, 4, 59 +"e:\project\pc-plat\src\menu\components\share\markcomponent\markform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 124, 0, 0, 1, 6, 131 +"e:\project\pc-plat\src\menu\components\share\markcomponent\markform\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 17 +"e:\project\pc-plat\src\menu\components\share\mobPagination\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 24, 0, 0, 0, 3, 27 +"e:\project\pc-plat\src\menu\components\share\mobPagination\index.scss", "SCSS", 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 31 +"e:\project\pc-plat\src\menu\components\share\normalform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 180, 0, 0, 2, 12, 194 +"e:\project\pc-plat\src\menu\components\share\normalform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\share\normalheader\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 73, 0, 0, 3, 20, 96 +"e:\project\pc-plat\src\menu\components\share\normalheader\index.scss", "SCSS", 0, 0, 0, 0, 40, 0, 0, 0, 0, 1, 41 +"e:\project\pc-plat\src\menu\components\share\pastecomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 208, 0, 0, 0, 33, 241 +"e:\project\pc-plat\src\menu\components\share\pastecomponent\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\share\searchcomponent\dragsearch\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 102, 0, 0, 0, 9, 111 +"e:\project\pc-plat\src\menu\components\share\searchcomponent\dragsearch\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 83, 0, 0, 0, 16, 99 +"e:\project\pc-plat\src\menu\components\share\searchcomponent\dragsearch\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\share\searchcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 248, 0, 0, 28, 47, 323 +"e:\project\pc-plat\src\menu\components\share\searchcomponent\index.scss", "SCSS", 0, 0, 0, 0, 62, 0, 0, 0, 0, 3, 65 +"e:\project\pc-plat\src\menu\components\share\sourcecomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 81, 0, 0, 0, 14, 95 +"e:\project\pc-plat\src\menu\components\share\sourcecomponent\index.scss", "SCSS", 0, 0, 0, 0, 55, 0, 0, 0, 0, 2, 57 +"e:\project\pc-plat\src\menu\components\share\sourcecomponent\inputform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 188, 0, 0, 0, 25, 213 +"e:\project\pc-plat\src\menu\components\share\sourcecomponent\inputform\index.scss", "SCSS", 0, 0, 0, 0, 59, 0, 0, 0, 0, 1, 60 +"e:\project\pc-plat\src\menu\components\share\styleInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 112, 0, 0, 3, 25, 140 +"e:\project\pc-plat\src\menu\components\share\styleInput\index.scss", "SCSS", 0, 0, 0, 0, 11, 0, 0, 0, 0, 1, 12 +"e:\project\pc-plat\src\menu\components\share\usercomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 207, 0, 0, 1, 25, 233 +"e:\project\pc-plat\src\menu\components\share\usercomponent\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 7 +"e:\project\pc-plat\src\menu\components\share\usercomponent\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 73, 0, 0, 2, 12, 87 +"e:\project\pc-plat\src\menu\components\share\usercomponent\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\editColumn\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 318, 0, 0, 4, 7, 329 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\editColumn\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 366, 0, 0, 1, 31, 398 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\editColumn\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 1, 18 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 514, 0, 0, 8, 92, 614 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\index.scss", "SCSS", 0, 0, 0, 0, 120, 0, 0, 0, 0, 3, 123 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\customscript\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 297, 0, 0, 8, 42, 347 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\customscript\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 643, 0, 0, 8, 64, 715 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\index.scss", "SCSS", 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 80 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\uniqueform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 117, 0, 0, 1, 11, 129 +"e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\uniqueform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\table\edit-table\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 286, 0, 0, 10, 60, 356 +"e:\project\pc-plat\src\menu\components\table\edit-table\index.scss", "SCSS", 0, 0, 0, 0, 78, 0, 0, 0, 0, 3, 81 +"e:\project\pc-plat\src\menu\components\table\edit-table\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 190, 0, 0, 4, 3, 197 +"e:\project\pc-plat\src\menu\components\table\normal-table\columns\editColumn\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 408, 0, 0, 4, 10, 422 +"e:\project\pc-plat\src\menu\components\table\normal-table\columns\editColumn\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 362, 0, 0, 1, 28, 391 +"e:\project\pc-plat\src\menu\components\table\normal-table\columns\editColumn\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 1, 18 +"e:\project\pc-plat\src\menu\components\table\normal-table\columns\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 515, 0, 0, 8, 91, 614 +"e:\project\pc-plat\src\menu\components\table\normal-table\columns\index.scss", "SCSS", 0, 0, 0, 0, 122, 0, 0, 0, 0, 3, 125 +"e:\project\pc-plat\src\menu\components\table\normal-table\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 382, 0, 0, 10, 76, 468 +"e:\project\pc-plat\src\menu\components\table\normal-table\index.scss", "SCSS", 0, 0, 0, 0, 78, 0, 0, 0, 0, 3, 81 +"e:\project\pc-plat\src\menu\components\table\normal-table\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 254, 0, 0, 4, 3, 261 +"e:\project\pc-plat\src\menu\components\tabs\antv-tabs\dragabletabs.jsx", "JavaScript React", 0, 0, 0, 0, 0, 106, 0, 0, 1, 22, 129 +"e:\project\pc-plat\src\menu\components\tabs\antv-tabs\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 332, 0, 0, 5, 69, 406 +"e:\project\pc-plat\src\menu\components\tabs\antv-tabs\index.scss", "SCSS", 0, 0, 0, 0, 132, 0, 0, 0, 0, 9, 141 +"e:\project\pc-plat\src\menu\components\tabs\antv-tabs\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 206, 0, 0, 22, 9, 237 +"e:\project\pc-plat\src\menu\components\tabs\paste\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 120, 0, 0, 1, 28, 149 +"e:\project\pc-plat\src\menu\components\tabs\paste\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\components\tabs\tabcomponents\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 108, 0, 0, 0, 10, 118 +"e:\project\pc-plat\src\menu\components\tabs\tabcomponents\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 156, 0, 0, 0, 24, 180 +"e:\project\pc-plat\src\menu\components\tabs\tabcomponents\index.scss", "SCSS", 0, 0, 0, 0, 12, 0, 0, 0, 0, 2, 14 +"e:\project\pc-plat\src\menu\components\timeline\normal-timeline\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 160, 0, 0, 6, 34, 200 +"e:\project\pc-plat\src\menu\components\timeline\normal-timeline\index.scss", "SCSS", 0, 0, 0, 0, 76, 0, 0, 0, 0, 5, 81 +"e:\project\pc-plat\src\menu\components\timeline\normal-timeline\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 112, 0, 0, 3, 3, 118 +"e:\project\pc-plat\src\menu\components\tree\antd-tree\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 160, 0, 0, 9, 33, 202 +"e:\project\pc-plat\src\menu\components\tree\antd-tree\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 3, 42 +"e:\project\pc-plat\src\menu\components\tree\antd-tree\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 130, 0, 0, 3, 3, 136 +"e:\project\pc-plat\src\menu\datasource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 199, 0, 0, 0, 28, 227 +"e:\project\pc-plat\src\menu\datasource\index.scss", "SCSS", 0, 0, 0, 0, 79, 0, 0, 0, 0, 8, 87 +"e:\project\pc-plat\src\menu\datasource\verifycard\columnform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 120, 0, 0, 1, 7, 128 +"e:\project\pc-plat\src\menu\datasource\verifycard\columnform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\datasource\verifycard\customscript\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 238, 0, 0, 1, 31, 270 +"e:\project\pc-plat\src\menu\datasource\verifycard\customscript\index.scss", "SCSS", 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34 +"e:\project\pc-plat\src\menu\datasource\verifycard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 606, 0, 0, 7, 88, 701 +"e:\project\pc-plat\src\menu\datasource\verifycard\index.scss", "SCSS", 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 84 +"e:\project\pc-plat\src\menu\datasource\verifycard\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 458, 0, 0, 2, 30, 490 +"e:\project\pc-plat\src\menu\datasource\verifycard\settingform\index.scss", "SCSS", 0, 0, 0, 0, 27, 0, 0, 0, 0, 1, 28 +"e:\project\pc-plat\src\menu\datasource\verifycard\utils.jsx", "JavaScript React", 0, 0, 0, 0, 0, 175, 0, 0, 16, 26, 217 +"e:\project\pc-plat\src\menu\header\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 28, 0, 0, 0, 6, 34 +"e:\project\pc-plat\src\menu\header\index.scss", "SCSS", 0, 0, 0, 0, 83, 0, 0, 0, 0, 3, 86 +"e:\project\pc-plat\src\menu\menushell\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 111, 0, 0, 0, 9, 120 +"e:\project\pc-plat\src\menu\menushell\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 149, 0, 0, 0, 23, 172 +"e:\project\pc-plat\src\menu\menushell\index.scss", "SCSS", 0, 0, 0, 0, 20, 0, 0, 0, 0, 3, 23 +"e:\project\pc-plat\src\menu\modalconfig\controller.jsx", "JavaScript React", 0, 0, 0, 0, 0, 49, 0, 0, 3, 12, 64 +"e:\project\pc-plat\src\menu\modalconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 459, 0, 0, 36, 63, 558 +"e:\project\pc-plat\src\menu\modalconfig\index.scss", "SCSS", 0, 0, 0, 0, 330, 0, 0, 0, 0, 5, 335 +"e:\project\pc-plat\src\menu\modulesource\dragsource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 14, 0, 0, 0, 1, 15 +"e:\project\pc-plat\src\menu\modulesource\dragsource\index.scss", "SCSS", 0, 0, 0, 0, 40, 0, 0, 0, 0, 6, 46 +"e:\project\pc-plat\src\menu\modulesource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 82, 0, 0, 0, 14, 96 +"e:\project\pc-plat\src\menu\modulesource\index.scss", "SCSS", 0, 0, 0, 0, 8, 0, 0, 0, 0, 2, 10 +"e:\project\pc-plat\src\menu\modulesource\option.jsx", "JavaScript React", 0, 0, 0, 0, 0, 60, 0, 0, 1, 2, 63 +"e:\project\pc-plat\src\menu\padcontroller\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 81, 0, 0, 3, 11, 95 +"e:\project\pc-plat\src\menu\padcontroller\index.scss", "SCSS", 0, 0, 0, 0, 9, 0, 0, 0, 0, 1, 10 +"e:\project\pc-plat\src\menu\pastecontroller\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 102, 0, 0, 1, 25, 128 +"e:\project\pc-plat\src\menu\pastecontroller\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\picturecontroller\editform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 162, 0, 0, 1, 10, 173 +"e:\project\pc-plat\src\menu\picturecontroller\editform\index.scss", "SCSS", 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 14 +"e:\project\pc-plat\src\menu\picturecontroller\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 325, 0, 0, 0, 37, 362 +"e:\project\pc-plat\src\menu\picturecontroller\index.scss", "SCSS", 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 88 +"e:\project\pc-plat\src\menu\picturecontroller\video\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 23, 0, 0, 0, 6, 29 +"e:\project\pc-plat\src\menu\picturecontroller\video\index.scss", "SCSS", 0, 0, 0, 0, 51, 0, 0, 0, 0, 2, 53 +"e:\project\pc-plat\src\menu\popview\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 597, 0, 0, 7, 79, 683 +"e:\project\pc-plat\src\menu\popview\index.scss", "SCSS", 0, 0, 0, 0, 157, 0, 0, 0, 0, 5, 162 +"e:\project\pc-plat\src\menu\popview\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 123, 0, 0, 3, 10, 136 +"e:\project\pc-plat\src\menu\popview\menuform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\replaceField\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 485, 0, 0, 4, 55, 544 +"e:\project\pc-plat\src\menu\replaceField\index.scss", "SCSS", 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9 +"e:\project\pc-plat\src\menu\replaceField\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 209, 0, 0, 2, 20, 231 +"e:\project\pc-plat\src\menu\replaceField\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\stylecombcontrolbutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 128, 0, 0, 3, 26, 157 +"e:\project\pc-plat\src\menu\stylecombcontrolbutton\index.scss", "SCSS", 0, 0, 0, 0, 48, 0, 0, 0, 0, 2, 50 +"e:\project\pc-plat\src\menu\stylecombcontroller\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 499, 0, 0, 33, 42, 574 +"e:\project\pc-plat\src\menu\stylecombcontroller\index.scss", "SCSS", 0, 0, 0, 0, 184, 0, 0, 0, 0, 6, 190 +"e:\project\pc-plat\src\menu\stylecombcontroller\styleInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 121, 0, 0, 3, 29, 153 +"e:\project\pc-plat\src\menu\stylecombcontroller\styleInput\index.scss", "SCSS", 0, 0, 0, 0, 11, 0, 0, 0, 0, 1, 12 +"e:\project\pc-plat\src\menu\stylecontroller\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 704, 0, 0, 51, 65, 820 +"e:\project\pc-plat\src\menu\stylecontroller\index.scss", "SCSS", 0, 0, 0, 0, 196, 0, 0, 0, 0, 6, 202 +"e:\project\pc-plat\src\menu\stylecontroller\styleInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 127, 0, 0, 3, 30, 160 +"e:\project\pc-plat\src\menu\stylecontroller\styleInput\index.scss", "SCSS", 0, 0, 0, 0, 11, 0, 0, 0, 0, 1, 12 +"e:\project\pc-plat\src\menu\sysinterface\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 189, 0, 0, 0, 27, 216 +"e:\project\pc-plat\src\menu\sysinterface\index.scss", "SCSS", 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 20 +"e:\project\pc-plat\src\menu\sysinterface\settingform\baseform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 242, 0, 0, 1, 17, 260 +"e:\project\pc-plat\src\menu\sysinterface\settingform\baseform\index.scss", "SCSS", 0, 0, 0, 0, 16, 0, 0, 0, 0, 1, 17 +"e:\project\pc-plat\src\menu\sysinterface\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 153, 0, 0, 4, 22, 179 +"e:\project\pc-plat\src\menu\sysinterface\settingform\index.scss", "SCSS", 0, 0, 0, 0, 60, 0, 0, 0, 0, 1, 61 +"e:\project\pc-plat\src\menu\sysinterface\settingform\simplescript\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 401, 0, 0, 0, 50, 451 +"e:\project\pc-plat\src\menu\sysinterface\settingform\simplescript\index.scss", "SCSS", 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 45 +"e:\project\pc-plat\src\menu\sysinterface\settingform\utils.jsx", "JavaScript React", 0, 0, 0, 0, 0, 33, 0, 0, 5, 7, 45 +"e:\project\pc-plat\src\menu\urlfieldcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 115, 0, 0, 0, 21, 136 +"e:\project\pc-plat\src\menu\urlfieldcomponent\index.scss", "SCSS", 0, 0, 0, 0, 23, 0, 0, 0, 0, 1, 24 +"e:\project\pc-plat\src\menu\urlfieldcomponent\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 70, 0, 0, 2, 10, 82 +"e:\project\pc-plat\src\menu\urlfieldcomponent\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\menu\versions\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 136, 0, 0, 1, 20, 157 +"e:\project\pc-plat\src\menu\versions\index.scss", "SCSS", 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 30 +"e:\project\pc-plat\src\mob\colorsketch\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 84, 0, 0, 0, 15, 99 +"e:\project\pc-plat\src\mob\colorsketch\index.scss", "SCSS", 0, 0, 0, 0, 60, 0, 0, 0, 0, 3, 63 +"e:\project\pc-plat\src\mob\components\formdragelement\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 194, 0, 0, 0, 14, 208 +"e:\project\pc-plat\src\mob\components\formdragelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 114, 0, 0, 1, 25, 140 +"e:\project\pc-plat\src\mob\components\formdragelement\index.scss", "SCSS", 0, 0, 0, 0, 281, 0, 0, 0, 1, 3, 285 +"e:\project\pc-plat\src\mob\components\menubar\normal-menubar\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 230, 0, 0, 12, 52, 294 +"e:\project\pc-plat\src\mob\components\menubar\normal-menubar\index.scss", "SCSS", 0, 0, 0, 0, 69, 0, 0, 0, 0, 3, 72 +"e:\project\pc-plat\src\mob\components\menubar\normal-menubar\menucomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 137, 0, 0, 3, 29, 169 +"e:\project\pc-plat\src\mob\components\menubar\normal-menubar\menucomponent\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\mob\components\menubar\normal-menubar\menucomponent\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 180, 0, 0, 4, 3, 187 +"e:\project\pc-plat\src\mob\components\menubar\normal-menubar\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 43, 0, 0, 3, 1, 47 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 122, 0, 0, 6, 29, 157 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\index.scss", "SCSS", 0, 0, 0, 0, 65, 0, 0, 0, 0, 3, 68 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\drags\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 58, 0, 0, 0, 7, 65 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\drags\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 48, 0, 0, 1, 8, 57 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\drags\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 148, 0, 0, 22, 26, 196 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 207, 0, 0, 1, 17, 225 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\menuform\index.scss", "SCSS", 0, 0, 0, 0, 16, 0, 0, 0, 0, 1, 17 +"e:\project\pc-plat\src\mob\components\navbar\normal-navbar\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 41, 0, 0, 3, 1, 45 +"e:\project\pc-plat\src\mob\components\search\single-search\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 125, 0, 0, 9, 26, 160 +"e:\project\pc-plat\src\mob\components\search\single-search\index.scss", "SCSS", 0, 0, 0, 0, 51, 0, 0, 0, 0, 2, 53 +"e:\project\pc-plat\src\mob\components\search\single-search\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 111, 0, 0, 3, 1, 115 +"e:\project\pc-plat\src\mob\components\tabs\antv-tabs\dragabletabs.jsx", "JavaScript React", 0, 0, 0, 0, 0, 106, 0, 0, 1, 22, 129 +"e:\project\pc-plat\src\mob\components\tabs\antv-tabs\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 356, 0, 0, 5, 76, 437 +"e:\project\pc-plat\src\mob\components\tabs\antv-tabs\index.scss", "SCSS", 0, 0, 0, 0, 123, 0, 0, 0, 0, 8, 131 +"e:\project\pc-plat\src\mob\components\tabs\antv-tabs\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 91, 0, 0, 45, 5, 141 +"e:\project\pc-plat\src\mob\components\tabs\tabcomponents\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 105, 0, 0, 0, 10, 115 +"e:\project\pc-plat\src\mob\components\tabs\tabcomponents\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 150, 0, 0, 8, 24, 182 +"e:\project\pc-plat\src\mob\components\tabs\tabcomponents\index.scss", "SCSS", 0, 0, 0, 0, 12, 0, 0, 0, 0, 2, 14 +"e:\project\pc-plat\src\mob\components\topbar\normal-navbar\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 204, 0, 0, 6, 42, 252 +"e:\project\pc-plat\src\mob\components\topbar\normal-navbar\index.scss", "SCSS", 0, 0, 0, 0, 88, 0, 0, 0, 0, 2, 90 +"e:\project\pc-plat\src\mob\components\topbar\normal-navbar\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 149, 0, 0, 14, 4, 167 +"e:\project\pc-plat\src\mob\header\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 37, 0, 0, 0, 5, 42 +"e:\project\pc-plat\src\mob\header\index.scss", "SCSS", 0, 0, 0, 0, 54, 0, 0, 0, 0, 2, 56 +"e:\project\pc-plat\src\mob\mobshell\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 127, 0, 0, 3, 13, 143 +"e:\project\pc-plat\src\mob\mobshell\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 202, 0, 0, 0, 27, 229 +"e:\project\pc-plat\src\mob\mobshell\index.scss", "SCSS", 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 34 +"e:\project\pc-plat\src\mob\modalconfig\controller.jsx", "JavaScript React", 0, 0, 0, 0, 0, 49, 0, 0, 3, 12, 64 +"e:\project\pc-plat\src\mob\modalconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 410, 0, 0, 36, 59, 505 +"e:\project\pc-plat\src\mob\modalconfig\index.scss", "SCSS", 0, 0, 0, 0, 323, 0, 0, 0, 0, 8, 331 +"e:\project\pc-plat\src\mob\modalconfig\pastecomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 62, 0, 0, 1, 13, 76 +"e:\project\pc-plat\src\mob\modalconfig\pastecomponent\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\mob\modalconfig\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 112, 0, 0, 0, 4, 116 +"e:\project\pc-plat\src\mob\modulesource\dragsource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 14, 0, 0, 0, 1, 15 +"e:\project\pc-plat\src\mob\modulesource\dragsource\index.scss", "SCSS", 0, 0, 0, 0, 40, 0, 0, 0, 0, 6, 46 +"e:\project\pc-plat\src\mob\modulesource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 81, 0, 0, 0, 13, 94 +"e:\project\pc-plat\src\mob\modulesource\index.scss", "SCSS", 0, 0, 0, 0, 8, 0, 0, 0, 0, 2, 10 +"e:\project\pc-plat\src\mob\modulesource\option.jsx", "JavaScript React", 0, 0, 0, 0, 0, 55, 0, 0, 3, 2, 60 +"e:\project\pc-plat\src\mob\searchconfig\controller.jsx", "JavaScript React", 0, 0, 0, 0, 0, 46, 0, 0, 3, 13, 62 +"e:\project\pc-plat\src\mob\searchconfig\groupdragelement\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 56, 0, 0, 0, 8, 64 +"e:\project\pc-plat\src\mob\searchconfig\groupdragelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 53, 0, 0, 0, 12, 65 +"e:\project\pc-plat\src\mob\searchconfig\groupdragelement\index.scss", "SCSS", 0, 0, 0, 0, 27, 0, 0, 0, 0, 1, 28 +"e:\project\pc-plat\src\mob\searchconfig\groupform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 78, 0, 0, 1, 10, 89 +"e:\project\pc-plat\src\mob\searchconfig\groupform\index.scss", "SCSS", 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 10 +"e:\project\pc-plat\src\mob\searchconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 496, 0, 0, 36, 67, 599 +"e:\project\pc-plat\src\mob\searchconfig\index.scss", "SCSS", 0, 0, 0, 0, 365, 0, 0, 0, 0, 9, 374 +"e:\project\pc-plat\src\mob\searchconfig\pastecomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 46, 0, 0, 1, 10, 57 +"e:\project\pc-plat\src\mob\searchconfig\pastecomponent\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\mob\searchconfig\searchdragelement\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 110, 0, 0, 21, 10, 141 +"e:\project\pc-plat\src\mob\searchconfig\searchdragelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 99, 0, 0, 1, 24, 124 +"e:\project\pc-plat\src\mob\searchconfig\searchdragelement\index.scss", "SCSS", 0, 0, 0, 0, 185, 0, 0, 0, 1, 3, 189 +"e:\project\pc-plat\src\mob\searchconfig\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 233, 0, 0, 1, 13, 247 +"e:\project\pc-plat\src\mob\searchconfig\settingform\index.scss", "SCSS", 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 20 +"e:\project\pc-plat\src\mob\searchconfig\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 26, 0, 0, 6, 2, 34 +"e:\project\pc-plat\src\pc\bgcontroller\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 210, 0, 0, 6, 30, 246 +"e:\project\pc-plat\src\pc\bgcontroller\index.scss", "SCSS", 0, 0, 0, 0, 19, 0, 0, 0, 0, 1, 20 +"e:\project\pc-plat\src\pc\components\login\normal-login\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 156, 0, 0, 6, 34, 196 +"e:\project\pc-plat\src\pc\components\login\normal-login\index.scss", "SCSS", 0, 0, 0, 0, 182, 0, 0, 0, 3, 5, 190 +"e:\project\pc-plat\src\pc\components\login\normal-login\loginform.jsx", "JavaScript React", 0, 0, 0, 0, 0, 162, 0, 0, 4, 18, 184 +"e:\project\pc-plat\src\pc\components\login\normal-login\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 116, 0, 0, 67, 4, 187 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 206, 0, 0, 6, 35, 247 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\index.scss", "SCSS", 0, 0, 0, 0, 153, 0, 0, 0, 0, 6, 159 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 53, 0, 0, 0, 9, 62 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\index.scss", "SCSS", 0, 0, 0, 0, 9, 0, 0, 0, 0, 2, 11 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\linkform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 147, 0, 0, 1, 17, 165 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\linkform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\linktable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 134, 0, 0, 0, 27, 161 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\linktable\index.scss", "SCSS", 0, 0, 0, 0, 18, 0, 0, 0, 0, 2, 20 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 54, 0, 0, 0, 9, 63 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\index.scss", "SCSS", 0, 0, 0, 0, 9, 0, 0, 0, 0, 2, 11 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 190, 0, 0, 1, 17, 208 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\menuform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\menutable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 501, 0, 0, 0, 83, 584 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\menutable\index.scss", "SCSS", 0, 0, 0, 0, 60, 0, 0, 0, 0, 4, 64 +"e:\project\pc-plat\src\pc\components\navbar\normal-navbar\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 113, 0, 0, 3, 2, 118 +"e:\project\pc-plat\src\pc\createview\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 204, 0, 0, 0, 26, 230 +"e:\project\pc-plat\src\pc\createview\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\pc\createview\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 119, 0, 0, 1, 10, 130 +"e:\project\pc-plat\src\pc\createview\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\pc\menushell\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 130, 0, 0, 3, 12, 145 +"e:\project\pc-plat\src\pc\menushell\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 166, 0, 0, 0, 25, 191 +"e:\project\pc-plat\src\pc\menushell\index.scss", "SCSS", 0, 0, 0, 0, 20, 0, 0, 0, 0, 3, 23 +"e:\project\pc-plat\src\pc\modulesource\dragsource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 14, 0, 0, 0, 1, 15 +"e:\project\pc-plat\src\pc\modulesource\dragsource\index.scss", "SCSS", 0, 0, 0, 0, 40, 0, 0, 0, 0, 6, 46 +"e:\project\pc-plat\src\pc\modulesource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 81, 0, 0, 0, 13, 94 +"e:\project\pc-plat\src\pc\modulesource\index.scss", "SCSS", 0, 0, 0, 0, 8, 0, 0, 0, 0, 2, 10 +"e:\project\pc-plat\src\pc\modulesource\option.jsx", "JavaScript React", 0, 0, 0, 0, 0, 62, 0, 0, 1, 2, 65 +"e:\project\pc-plat\src\pc\quotecomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 113, 0, 0, 0, 16, 129 +"e:\project\pc-plat\src\pc\quotecomponent\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6 +"e:\project\pc-plat\src\pc\quotecomponent\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 76, 0, 0, 1, 9, 86 +"e:\project\pc-plat\src\pc\quotecomponent\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\pc\transfer\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 113, 0, 0, 0, 14, 127 +"e:\project\pc-plat\src\pc\transfer\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\pc\transfer\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 58, 0, 0, 2, 8, 68 +"e:\project\pc-plat\src\pc\transfer\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\router\index.js", "JavaScript", 0, 0, 100, 0, 0, 0, 0, 0, 1, 13, 114 +"e:\project\pc-plat\src\serviceWorker.js", "JavaScript", 0, 0, 90, 0, 0, 0, 0, 0, 31, 13, 134 +"e:\project\pc-plat\src\setupProxy.js", "JavaScript", 0, 0, 1, 0, 0, 0, 0, 0, 46, 5, 52 +"e:\project\pc-plat\src\store\action-type.js", "JavaScript", 0, 0, 9, 0, 0, 0, 0, 0, 9, 8, 26 +"e:\project\pc-plat\src\store\action.js", "JavaScript", 0, 0, 48, 0, 0, 0, 0, 0, 8, 8, 64 +"e:\project\pc-plat\src\store\index.js", "JavaScript", 0, 0, 8, 0, 0, 0, 0, 0, 0, 2, 10 +"e:\project\pc-plat\src\store\options.js", "JavaScript", 0, 0, 36, 0, 0, 0, 0, 0, 10, 1, 47 +"e:\project\pc-plat\src\store\reducer.js", "JavaScript", 0, 0, 79, 0, 0, 0, 0, 0, 8, 5, 92 +"e:\project\pc-plat\src\tabviews\calendar\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 472, 0, 0, 33, 82, 587 +"e:\project\pc-plat\src\tabviews\calendar\index.scss", "SCSS", 0, 0, 0, 0, 40, 0, 0, 0, 0, 5, 45 +"e:\project\pc-plat\src\tabviews\commontable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1038, 0, 0, 60, 157, 1255 +"e:\project\pc-plat\src\tabviews\commontable\index.scss", "SCSS", 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, 140 +"e:\project\pc-plat\src\tabviews\custom\components\card\balcony\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 291, 0, 0, 9, 65, 365 +"e:\project\pc-plat\src\tabviews\custom\components\card\balcony\index.scss", "SCSS", 0, 0, 0, 0, 69, 0, 0, 0, 0, 8, 77 +"e:\project\pc-plat\src\tabviews\custom\components\card\cardItem\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 148, 0, 0, 6, 33, 187 +"e:\project\pc-plat\src\tabviews\custom\components\card\cardItem\index.scss", "SCSS", 0, 0, 0, 0, 63, 0, 0, 0, 0, 2, 65 +"e:\project\pc-plat\src\tabviews\custom\components\card\cardcellList\asyncButtonComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 19, 0, 0, 5, 5, 29 +"e:\project\pc-plat\src\tabviews\custom\components\card\cardcellList\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 709, 0, 0, 11, 95, 815 +"e:\project\pc-plat\src\tabviews\custom\components\card\cardcellList\index.scss", "SCSS", 0, 0, 0, 0, 154, 0, 0, 0, 0, 2, 156 +"e:\project\pc-plat\src\tabviews\custom\components\card\data-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 678, 0, 0, 12, 105, 795 +"e:\project\pc-plat\src\tabviews\custom\components\card\data-card\index.scss", "SCSS", 0, 0, 0, 0, 134, 0, 0, 0, 0, 6, 140 +"e:\project\pc-plat\src\tabviews\custom\components\card\prop-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 353, 0, 0, 9, 68, 430 +"e:\project\pc-plat\src\tabviews\custom\components\card\prop-card\index.scss", "SCSS", 0, 0, 0, 0, 58, 0, 0, 0, 0, 7, 65 +"e:\project\pc-plat\src\tabviews\custom\components\card\table-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 362, 0, 0, 16, 68, 446 +"e:\project\pc-plat\src\tabviews\custom\components\card\table-card\index.scss", "SCSS", 0, 0, 0, 0, 85, 0, 0, 0, 2, 9, 96 +"e:\project\pc-plat\src\tabviews\custom\components\carousel\cardItem\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 75, 0, 0, 6, 21, 102 +"e:\project\pc-plat\src\tabviews\custom\components\carousel\cardItem\index.scss", "SCSS", 0, 0, 0, 0, 57, 0, 0, 0, 0, 1, 58 +"e:\project\pc-plat\src\tabviews\custom\components\carousel\data-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 228, 0, 0, 9, 41, 278 +"e:\project\pc-plat\src\tabviews\custom\components\carousel\data-card\index.scss", "SCSS", 0, 0, 0, 0, 45, 0, 0, 0, 0, 6, 51 +"e:\project\pc-plat\src\tabviews\custom\components\carousel\prop-card\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 222, 0, 0, 9, 43, 274 +"e:\project\pc-plat\src\tabviews\custom\components\carousel\prop-card\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 5, 44 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-bar-line\asyncButtonComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 23, 0, 0, 5, 6, 34 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-bar-line\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1542, 0, 0, 47, 223, 1812 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-bar-line\index.scss", "SCSS", 0, 0, 0, 0, 86, 0, 0, 0, 0, 5, 91 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-dashboard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 573, 0, 0, 13, 76, 662 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-dashboard\index.scss", "SCSS", 0, 0, 0, 0, 61, 0, 0, 0, 0, 6, 67 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-pie\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 925, 0, 0, 16, 136, 1077 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-pie\index.scss", "SCSS", 0, 0, 0, 0, 74, 0, 0, 0, 0, 5, 79 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-scatter\asyncButtonComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 23, 0, 0, 5, 6, 34 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-scatter\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 389, 0, 0, 24, 62, 475 +"e:\project\pc-plat\src\tabviews\custom\components\chart\antv-scatter\index.scss", "SCSS", 0, 0, 0, 0, 86, 0, 0, 0, 0, 7, 93 +"e:\project\pc-plat\src\tabviews\custom\components\chart\custom-chart\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 305, 0, 0, 26, 60, 391 +"e:\project\pc-plat\src\tabviews\custom\components\chart\custom-chart\index.scss", "SCSS", 0, 0, 0, 0, 54, 0, 0, 0, 0, 4, 58 +"e:\project\pc-plat\src\tabviews\custom\components\code\sand-box\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 188, 0, 0, 4, 32, 224 +"e:\project\pc-plat\src\tabviews\custom\components\code\sand-box\index.scss", "SCSS", 0, 0, 0, 0, 31, 0, 0, 0, 0, 4, 35 +"e:\project\pc-plat\src\tabviews\custom\components\editor\braft-editor\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 164, 0, 0, 3, 30, 197 +"e:\project\pc-plat\src\tabviews\custom\components\editor\braft-editor\index.scss", "SCSS", 0, 0, 0, 0, 32, 0, 0, 0, 0, 4, 36 +"e:\project\pc-plat\src\tabviews\custom\components\form\normal-form\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 327, 0, 0, 11, 68, 406 +"e:\project\pc-plat\src\tabviews\custom\components\form\normal-form\index.scss", "SCSS", 0, 0, 0, 0, 103, 0, 0, 0, 0, 7, 110 +"e:\project\pc-plat\src\tabviews\custom\components\form\tab-form\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 284, 0, 0, 11, 56, 351 +"e:\project\pc-plat\src\tabviews\custom\components\form\tab-form\index.scss", "SCSS", 0, 0, 0, 0, 92, 0, 0, 0, 0, 7, 99 +"e:\project\pc-plat\src\tabviews\custom\components\group\normal-group\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 313, 0, 0, 5, 36, 354 +"e:\project\pc-plat\src\tabviews\custom\components\group\normal-group\index.scss", "SCSS", 0, 0, 0, 0, 15, 0, 0, 0, 0, 2, 17 +"e:\project\pc-plat\src\tabviews\custom\components\module\voucher\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 104, 0, 0, 5, 21, 130 +"e:\project\pc-plat\src\tabviews\custom\components\module\voucher\index.scss", "SCSS", 0, 0, 0, 0, 51, 0, 0, 0, 0, 6, 57 +"e:\project\pc-plat\src\tabviews\custom\components\module\voucher\voucherTable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 574, 0, 0, 48, 116, 738 +"e:\project\pc-plat\src\tabviews\custom\components\module\voucher\voucherTable\index.scss", "SCSS", 0, 0, 0, 0, 251, 0, 0, 0, 0, 8, 259 +"e:\project\pc-plat\src\tabviews\custom\components\share\braftContent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 46, 0, 0, 0, 12, 58 +"e:\project\pc-plat\src\tabviews\custom\components\share\braftContent\index.scss", "SCSS", 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 26 +"e:\project\pc-plat\src\tabviews\custom\components\share\normalTable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 760, 0, 0, 13, 150, 923 +"e:\project\pc-plat\src\tabviews\custom\components\share\normalTable\index.scss", "SCSS", 0, 0, 0, 0, 248, 0, 0, 0, 16, 4, 268 +"e:\project\pc-plat\src\tabviews\custom\components\share\normalheader\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 42, 0, 0, 3, 12, 57 +"e:\project\pc-plat\src\tabviews\custom\components\share\normalheader\index.scss", "SCSS", 0, 0, 0, 0, 48, 0, 0, 0, 0, 1, 49 +"e:\project\pc-plat\src\tabviews\custom\components\share\tabtransfer\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 288, 0, 0, 5, 27, 320 +"e:\project\pc-plat\src\tabviews\custom\components\share\tabtransfer\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\custom\components\table\edit-table\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 418, 0, 0, 35, 58, 511 +"e:\project\pc-plat\src\tabviews\custom\components\table\edit-table\index.scss", "SCSS", 0, 0, 0, 0, 119, 0, 0, 0, 0, 1, 120 +"e:\project\pc-plat\src\tabviews\custom\components\table\edit-table\normalTable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 901, 0, 0, 17, 160, 1078 +"e:\project\pc-plat\src\tabviews\custom\components\table\edit-table\normalTable\index.scss", "SCSS", 0, 0, 0, 0, 290, 0, 0, 0, 7, 4, 301 +"e:\project\pc-plat\src\tabviews\custom\components\table\normal-table\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 591, 0, 0, 38, 80, 709 +"e:\project\pc-plat\src\tabviews\custom\components\table\normal-table\index.scss", "SCSS", 0, 0, 0, 0, 95, 0, 0, 0, 0, 1, 96 +"e:\project\pc-plat\src\tabviews\custom\components\tabs\antv-tabs\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 109, 0, 0, 3, 24, 136 +"e:\project\pc-plat\src\tabviews\custom\components\tabs\antv-tabs\index.scss", "SCSS", 0, 0, 0, 0, 28, 0, 0, 0, 0, 3, 31 +"e:\project\pc-plat\src\tabviews\custom\components\timeline\normal-timeline\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 266, 0, 0, 20, 47, 333 +"e:\project\pc-plat\src\tabviews\custom\components\timeline\normal-timeline\index.scss", "SCSS", 0, 0, 0, 0, 92, 0, 0, 0, 2, 10, 104 +"e:\project\pc-plat\src\tabviews\custom\components\tree\antd-tree\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 406, 0, 0, 20, 70, 496 +"e:\project\pc-plat\src\tabviews\custom\components\tree\antd-tree\index.scss", "SCSS", 0, 0, 0, 0, 92, 0, 0, 0, 0, 7, 99 +"e:\project\pc-plat\src\tabviews\custom\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1043, 0, 0, 29, 145, 1217 +"e:\project\pc-plat\src\tabviews\custom\index.scss", "SCSS", 0, 0, 0, 0, 54, 0, 0, 0, 0, 4, 58 +"e:\project\pc-plat\src\tabviews\formtab\actionList\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 289, 0, 0, 32, 46, 367 +"e:\project\pc-plat\src\tabviews\formtab\actionList\index.scss", "SCSS", 0, 0, 0, 0, 19, 0, 0, 0, 0, 1, 20 +"e:\project\pc-plat\src\tabviews\formtab\formgroup\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 639, 0, 0, 4, 82, 725 +"e:\project\pc-plat\src\tabviews\formtab\formgroup\index.scss", "SCSS", 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 47 +"e:\project\pc-plat\src\tabviews\formtab\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 545, 0, 0, 33, 93, 671 +"e:\project\pc-plat\src\tabviews\formtab\index.scss", "SCSS", 0, 0, 0, 0, 111, 0, 0, 0, 0, 2, 113 +"e:\project\pc-plat\src\tabviews\home\defaulthome\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 276, 0, 0, 0, 8, 284 +"e:\project\pc-plat\src\tabviews\home\defaulthome\index.scss", "SCSS", 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 198 +"e:\project\pc-plat\src\tabviews\home\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 87, 0, 0, 0, 12, 99 +"e:\project\pc-plat\src\tabviews\home\index.scss", "SCSS", 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9 +"e:\project\pc-plat\src\tabviews\iframe\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 37, 0, 0, 3, 10, 50 +"e:\project\pc-plat\src\tabviews\rolemanage\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 805, 0, 0, 60, 113, 978 +"e:\project\pc-plat\src\tabviews\rolemanage\index.scss", "SCSS", 0, 0, 0, 0, 112, 0, 0, 0, 1, 1, 114 +"e:\project\pc-plat\src\tabviews\scriptmanage\actionList\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 245, 0, 0, 32, 35, 312 +"e:\project\pc-plat\src\tabviews\scriptmanage\actionList\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 1, 18 +"e:\project\pc-plat\src\tabviews\scriptmanage\config.jsx", "JavaScript React", 0, 0, 0, 0, 0, 86, 0, 0, 1, 2, 89 +"e:\project\pc-plat\src\tabviews\scriptmanage\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 272, 0, 0, 34, 43, 349 +"e:\project\pc-plat\src\tabviews\scriptmanage\index.scss", "SCSS", 0, 0, 0, 0, 70, 0, 0, 0, 0, 3, 73 +"e:\project\pc-plat\src\tabviews\subtable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 902, 0, 0, 56, 139, 1097 +"e:\project\pc-plat\src\tabviews\subtable\index.scss", "SCSS", 0, 0, 0, 0, 102, 0, 0, 0, 0, 4, 106 +"e:\project\pc-plat\src\tabviews\subtabtable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 734, 0, 0, 47, 121, 902 +"e:\project\pc-plat\src\tabviews\subtabtable\index.scss", "SCSS", 0, 0, 0, 0, 82, 0, 0, 0, 0, 1, 83 +"e:\project\pc-plat\src\tabviews\tabmanage\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 513, 0, 0, 4, 60, 577 +"e:\project\pc-plat\src\tabviews\tabmanage\index.scss", "SCSS", 0, 0, 0, 0, 56, 0, 0, 0, 0, 3, 59 +"e:\project\pc-plat\src\tabviews\tabmanage\mutilform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 90, 0, 0, 1, 8, 99 +"e:\project\pc-plat\src\tabviews\tabmanage\mutilform\index.scss", "SCSS", 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 47 +"e:\project\pc-plat\src\tabviews\tabmanage\transferform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 35, 0, 0, 0, 9, 44 +"e:\project\pc-plat\src\tabviews\tabmanage\transferform\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6 +"e:\project\pc-plat\src\tabviews\treepage\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 540, 0, 0, 29, 88, 657 +"e:\project\pc-plat\src\tabviews\treepage\index.scss", "SCSS", 0, 0, 0, 0, 171, 0, 0, 0, 0, 8, 179 +"e:\project\pc-plat\src\tabviews\verupmanage\actionList\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 665, 0, 0, 51, 101, 817 +"e:\project\pc-plat\src\tabviews\verupmanage\actionList\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 1, 18 +"e:\project\pc-plat\src\tabviews\verupmanage\config.jsx", "JavaScript React", 0, 0, 0, 0, 0, 154, 0, 0, 3, 3, 160 +"e:\project\pc-plat\src\tabviews\verupmanage\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 413, 0, 0, 43, 64, 520 +"e:\project\pc-plat\src\tabviews\verupmanage\index.scss", "SCSS", 0, 0, 0, 0, 77, 0, 0, 0, 0, 3, 80 +"e:\project\pc-plat\src\tabviews\verupmanage\subtabtable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 395, 0, 0, 43, 62, 500 +"e:\project\pc-plat\src\tabviews\verupmanage\subtabtable\index.scss", "SCSS", 0, 0, 0, 0, 46, 0, 0, 0, 0, 2, 48 +"e:\project\pc-plat\src\tabviews\zshare\actionList\asyncButtonComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 30, 0, 0, 5, 7, 42 +"e:\project\pc-plat\src\tabviews\zshare\actionList\changeuserbutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 240, 0, 0, 10, 35, 285 +"e:\project\pc-plat\src\tabviews\zshare\actionList\changeuserbutton\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +"e:\project\pc-plat\src\tabviews\zshare\actionList\excelInbutton\excelin\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 97, 0, 0, 5, 18, 120 +"e:\project\pc-plat\src\tabviews\zshare\actionList\excelInbutton\excelin\index.scss", "SCSS", 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5 +"e:\project\pc-plat\src\tabviews\zshare\actionList\excelInbutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 454, 0, 0, 29, 61, 544 +"e:\project\pc-plat\src\tabviews\zshare\actionList\excelInbutton\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\actionList\exceloutbutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 807, 0, 0, 47, 136, 990 +"e:\project\pc-plat\src\tabviews\zshare\actionList\exceloutbutton\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\actionList\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 163, 0, 0, 0, 10, 173 +"e:\project\pc-plat\src\tabviews\zshare\actionList\index.scss", "SCSS", 0, 0, 0, 0, 26, 0, 0, 0, 0, 3, 29 +"e:\project\pc-plat\src\tabviews\zshare\actionList\newpagebutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 242, 0, 0, 7, 32, 281 +"e:\project\pc-plat\src\tabviews\zshare\actionList\newpagebutton\index.scss", "SCSS", 0, 0, 0, 0, 10, 0, 0, 0, 0, 2, 12 +"e:\project\pc-plat\src\tabviews\zshare\actionList\normalbutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1808, 0, 0, 85, 272, 2165 +"e:\project\pc-plat\src\tabviews\zshare\actionList\normalbutton\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\actionList\popupbutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 315, 0, 0, 13, 42, 370 +"e:\project\pc-plat\src\tabviews\zshare\actionList\popupbutton\index.scss", "SCSS", 0, 0, 0, 0, 48, 0, 0, 0, 0, 1, 49 +"e:\project\pc-plat\src\tabviews\zshare\actionList\printbutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1184, 0, 0, 271, 214, 1669 +"e:\project\pc-plat\src\tabviews\zshare\actionList\printbutton\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +"e:\project\pc-plat\src\tabviews\zshare\actionList\tabbutton\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 225, 0, 0, 6, 34, 265 +"e:\project\pc-plat\src\tabviews\zshare\actionList\tabbutton\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2 +"e:\project\pc-plat\src\tabviews\zshare\automatic\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 172, 0, 0, 3, 38, 213 +"e:\project\pc-plat\src\tabviews\zshare\automatic\index.scss", "SCSS", 0, 0, 0, 0, 14, 0, 0, 0, 0, 1, 15 +"e:\project\pc-plat\src\tabviews\zshare\calendar\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 350, 0, 0, 0, 48, 398 +"e:\project\pc-plat\src\tabviews\zshare\calendar\index.scss", "SCSS", 0, 0, 0, 0, 206, 0, 0, 0, 1, 2, 209 +"e:\project\pc-plat\src\tabviews\zshare\cardcomponent\asyncButtonComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 23, 0, 0, 4, 6, 33 +"e:\project\pc-plat\src\tabviews\zshare\cardcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 698, 0, 0, 27, 101, 826 +"e:\project\pc-plat\src\tabviews\zshare\cardcomponent\index.scss", "SCSS", 0, 0, 0, 0, 302, 0, 0, 0, 0, 23, 325 +"e:\project\pc-plat\src\tabviews\zshare\chartcomponent\asyncButtonComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 23, 0, 0, 5, 6, 34 +"e:\project\pc-plat\src\tabviews\zshare\chartcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 933, 0, 0, 41, 141, 1115 +"e:\project\pc-plat\src\tabviews\zshare\chartcomponent\index.scss", "SCSS", 0, 0, 0, 0, 108, 0, 0, 0, 0, 7, 115 +"e:\project\pc-plat\src\tabviews\zshare\fileupload\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 393, 0, 0, 4, 72, 469 +"e:\project\pc-plat\src\tabviews\zshare\fileupload\index.scss", "SCSS", 0, 0, 0, 0, 52, 0, 0, 0, 0, 1, 53 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 757, 0, 0, 22, 128, 907 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\index.scss", "SCSS", 0, 0, 0, 0, 129, 0, 0, 0, 0, 1, 130 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkCheckCard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 183, 0, 0, 0, 35, 218 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkCheckCard\index.scss", "SCSS", 0, 0, 0, 0, 101, 0, 0, 0, 1, 2, 104 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkCheckbox\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 30, 0, 0, 0, 7, 37 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkCheckbox\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkColor\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 50, 0, 0, 0, 10, 60 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkColor\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 2, 41 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkDatePicker\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 68, 0, 0, 3, 16, 87 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkDatePicker\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 68, 0, 0, 3, 18, 89 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkInput\index.scss", "SCSS", 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 11 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkNumberInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 61, 0, 0, 1, 16, 78 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkNumberInput\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkRadio\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 120, 0, 0, 0, 26, 146 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkRadio\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkSelect\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 182, 0, 0, 0, 29, 211 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkSelect\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkSwitch\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 33, 0, 0, 0, 8, 41 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkSwitch\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkTextArea\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 75, 0, 0, 0, 17, 92 +"e:\project\pc-plat\src\tabviews\zshare\mutilform\mkTextArea\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\normalTable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1197, 0, 0, 13, 177, 1387 +"e:\project\pc-plat\src\tabviews\zshare\normalTable\index.scss", "SCSS", 0, 0, 0, 0, 264, 0, 0, 0, 0, 12, 276 +"e:\project\pc-plat\src\tabviews\zshare\pageMessage\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 301, 0, 0, 5, 47, 353 +"e:\project\pc-plat\src\tabviews\zshare\pageMessage\index.scss", "SCSS", 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 35 +"e:\project\pc-plat\src\tabviews\zshare\settingcomponent\editTable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 293, 0, 0, 0, 29, 322 +"e:\project\pc-plat\src\tabviews\zshare\settingcomponent\editTable\index.scss", "SCSS", 0, 0, 0, 0, 64, 0, 0, 0, 0, 3, 67 +"e:\project\pc-plat\src\tabviews\zshare\settingcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 477, 0, 0, 2, 70, 549 +"e:\project\pc-plat\src\tabviews\zshare\settingcomponent\index.scss", "SCSS", 0, 0, 0, 0, 62, 0, 0, 0, 0, 2, 64 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\advanceform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 91, 0, 0, 1, 16, 108 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\advanceform\index.scss", "SCSS", 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 49 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 125, 0, 0, 0, 14, 139 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\index.scss", "SCSS", 0, 0, 0, 0, 95, 0, 0, 0, 0, 4, 99 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\quarterpicker\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 135, 0, 0, 0, 16, 151 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\quarterpicker\index.scss", "SCSS", 0, 0, 0, 0, 40, 0, 0, 0, 0, 3, 43 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\yearpicker\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 105, 0, 0, 0, 15, 120 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\yearpicker\index.scss", "SCSS", 0, 0, 0, 0, 46, 0, 0, 0, 0, 4, 50 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 641, 0, 0, 11, 101, 753 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\index.scss", "SCSS", 0, 0, 0, 0, 100, 0, 0, 0, 0, 2, 102 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\mkDatePicker\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 73, 0, 0, 3, 15, 91 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\mkDatePicker\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\mkInput\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 14, 0, 0, 0, 4, 18 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\mkInput\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\mkSelect\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 97, 0, 0, 0, 24, 121 +"e:\project\pc-plat\src\tabviews\zshare\topSearch\mkSelect\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\calendarconfig\calcomponent\calendarform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 151, 0, 0, 2, 4, 157 +"e:\project\pc-plat\src\templates\calendarconfig\calcomponent\calendarform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\calendarconfig\calcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 74, 0, 0, 9, 14, 97 +"e:\project\pc-plat\src\templates\calendarconfig\calcomponent\index.scss", "SCSS", 0, 0, 0, 0, 40, 0, 0, 0, 0, 1, 41 +"e:\project\pc-plat\src\templates\calendarconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 682, 0, 0, 78, 98, 858 +"e:\project\pc-plat\src\templates\calendarconfig\index.scss", "SCSS", 0, 0, 0, 0, 188, 0, 0, 0, 0, 3, 191 +"e:\project\pc-plat\src\templates\calendarconfig\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 136, 0, 0, 0, 5, 141 +"e:\project\pc-plat\src\templates\calendarconfig\tabcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 95, 0, 0, 9, 15, 119 +"e:\project\pc-plat\src\templates\calendarconfig\tabcomponent\index.scss", "SCSS", 0, 0, 0, 0, 80, 0, 0, 0, 3, 3, 86 +"e:\project\pc-plat\src\templates\calendarconfig\tabcomponent\tabform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 202, 0, 0, 7, 22, 231 +"e:\project\pc-plat\src\templates\calendarconfig\tabcomponent\tabform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\comtableconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1156, 0, 0, 65, 140, 1361 +"e:\project\pc-plat\src\templates\comtableconfig\index.scss", "SCSS", 0, 0, 0, 0, 205, 0, 0, 0, 0, 5, 210 +"e:\project\pc-plat\src\templates\comtableconfig\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 232, 0, 0, 0, 16, 248 +"e:\project\pc-plat\src\templates\comtableconfig\menuform\index.scss", "SCSS", 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 7 +"e:\project\pc-plat\src\templates\comtableconfig\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 362, 0, 0, 0, 8, 370 +"e:\project\pc-plat\src\templates\formtabconfig\actionform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 409, 0, 0, 1, 33, 443 +"e:\project\pc-plat\src\templates\formtabconfig\actionform\index.scss", "SCSS", 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 33 +"e:\project\pc-plat\src\templates\formtabconfig\dragelement\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 150, 0, 0, 0, 12, 162 +"e:\project\pc-plat\src\templates\formtabconfig\dragelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 164, 0, 0, 1, 28, 193 +"e:\project\pc-plat\src\templates\formtabconfig\dragelement\index.scss", "SCSS", 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 15 +"e:\project\pc-plat\src\templates\formtabconfig\dragelement\itemtypes.js", "JavaScript", 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 9 +"e:\project\pc-plat\src\templates\formtabconfig\dragelement\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 12, 0, 0, 0, 1, 13 +"e:\project\pc-plat\src\templates\formtabconfig\groupform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 111, 0, 0, 3, 16, 130 +"e:\project\pc-plat\src\templates\formtabconfig\groupform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\formtabconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1847, 0, 0, 66, 211, 2124 +"e:\project\pc-plat\src\templates\formtabconfig\index.scss", "SCSS", 0, 0, 0, 0, 424, 0, 0, 0, 0, 6, 430 +"e:\project\pc-plat\src\templates\formtabconfig\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 330, 0, 0, 1, 26, 357 +"e:\project\pc-plat\src\templates\formtabconfig\settingform\index.scss", "SCSS", 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 10 +"e:\project\pc-plat\src\templates\formtabconfig\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 182, 0, 0, 0, 7, 189 +"e:\project\pc-plat\src\templates\formtabconfig\transferform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 61, 0, 0, 0, 12, 73 +"e:\project\pc-plat\src\templates\formtabconfig\transferform\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6 +"e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\dragelement\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 47, 0, 0, 0, 5, 52 +"e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\dragelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 75, 0, 0, 0, 11, 86 +"e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\dragelement\index.scss", "SCSS", 0, 0, 0, 0, 53, 0, 0, 0, 0, 2, 55 +"e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\dragelement\itemtypes.js", "JavaScript", 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 4 +"e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 378, 0, 0, 7, 26, 411 +"e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\index.scss", "SCSS", 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 79 +"e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 223, 0, 0, 2, 14, 239 +"e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\menuform\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 1, 18 +"e:\project\pc-plat\src\templates\menuconfig\editsecmenu\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 439, 0, 0, 2, 22, 463 +"e:\project\pc-plat\src\templates\menuconfig\editsecmenu\index.scss", "SCSS", 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 81 +"e:\project\pc-plat\src\templates\menuconfig\editthdmenu\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 875, 0, 0, 29, 76, 980 +"e:\project\pc-plat\src\templates\menuconfig\editthdmenu\index.scss", "SCSS", 0, 0, 0, 0, 183, 0, 0, 0, 0, 2, 185 +"e:\project\pc-plat\src\templates\menuconfig\editthdmenu\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 156, 0, 0, 2, 13, 171 +"e:\project\pc-plat\src\templates\menuconfig\editthdmenu\menuform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\menuconfig\editthdmenu\preview\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 60, 0, 0, 0, 7, 67 +"e:\project\pc-plat\src\templates\menuconfig\editthdmenu\preview\index.scss", "SCSS", 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 30 +"e:\project\pc-plat\src\templates\menuconfig\menuelement\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 56, 0, 0, 0, 6, 62 +"e:\project\pc-plat\src\templates\menuconfig\menuelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 58, 0, 0, 0, 7, 65 +"e:\project\pc-plat\src\templates\menuconfig\menuelement\index.scss", "SCSS", 0, 0, 0, 0, 68, 0, 0, 0, 0, 1, 69 +"e:\project\pc-plat\src\templates\menuconfig\menuelement\itemtypes.js", "JavaScript", 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 4 +"e:\project\pc-plat\src\templates\menuconfig\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 137, 0, 0, 2, 10, 149 +"e:\project\pc-plat\src\templates\menuconfig\menuform\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 1, 18 +"e:\project\pc-plat\src\templates\modalconfig\checkCard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 72, 0, 0, 0, 11, 83 +"e:\project\pc-plat\src\templates\modalconfig\checkCard\index.scss", "SCSS", 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 35 +"e:\project\pc-plat\src\templates\modalconfig\dragelement\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 156, 0, 0, 0, 13, 169 +"e:\project\pc-plat\src\templates\modalconfig\dragelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 110, 0, 0, 1, 25, 136 +"e:\project\pc-plat\src\templates\modalconfig\dragelement\index.scss", "SCSS", 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 129 +"e:\project\pc-plat\src\templates\modalconfig\dragelement\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 12, 0, 0, 0, 1, 13 +"e:\project\pc-plat\src\templates\modalconfig\editcard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 103, 0, 0, 0, 12, 115 +"e:\project\pc-plat\src\templates\modalconfig\editcard\index.scss", "SCSS", 0, 0, 0, 0, 49, 0, 0, 0, 0, 1, 50 +"e:\project\pc-plat\src\templates\modalconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 728, 0, 0, 43, 97, 868 +"e:\project\pc-plat\src\templates\modalconfig\index.scss", "SCSS", 0, 0, 0, 0, 260, 0, 0, 0, 0, 3, 263 +"e:\project\pc-plat\src\templates\modalconfig\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 91, 0, 0, 1, 5, 97 +"e:\project\pc-plat\src\templates\modalconfig\menuform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\modalconfig\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 292, 0, 0, 7, 14, 313 +"e:\project\pc-plat\src\templates\modalconfig\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\modalconfig\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 179, 0, 0, 0, 5, 184 +"e:\project\pc-plat\src\templates\modalconfig\transferform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 61, 0, 0, 0, 12, 73 +"e:\project\pc-plat\src\templates\modalconfig\transferform\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\actionform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 606, 0, 0, 4, 81, 691 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\actionform\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 39 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\dragaction\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 67, 0, 0, 0, 5, 72 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\dragaction\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 143, 0, 0, 1, 28, 172 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\dragaction\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 7 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 792, 0, 0, 59, 112, 963 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\index.scss", "SCSS", 0, 0, 0, 0, 67, 0, 0, 0, 0, 2, 69 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\columnform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 174, 0, 0, 1, 9, 184 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\columnform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\customscript\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 309, 0, 0, 8, 45, 362 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\customscript\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 836, 0, 0, 8, 79, 923 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\index.scss", "SCSS", 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 80 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\uniqueform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 117, 0, 0, 1, 11, 129 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\uniqueform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelout\columnform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 99, 0, 0, 1, 5, 105 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelout\columnform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelout\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 566, 0, 0, 5, 62, 633 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelout\index.scss", "SCSS", 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 86 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyprint\editable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 213, 0, 0, 0, 25, 238 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyprint\editable\index.scss", "SCSS", 0, 0, 0, 0, 51, 0, 0, 0, 0, 1, 52 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyprint\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 416, 0, 0, 1, 37, 454 +"e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyprint\index.scss", "SCSS", 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 68 +"e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\carddetailform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 277, 0, 0, 2, 23, 302 +"e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\carddetailform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\dragdetail\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 39, 0, 0, 0, 6, 45 +"e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\dragdetail\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 43, 0, 0, 0, 7, 50 +"e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\dragdetail\index.scss", "SCSS", 0, 0, 0, 0, 63, 0, 0, 0, 0, 3, 66 +"e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 423, 0, 0, 1, 54, 478 +"e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\index.scss", "SCSS", 0, 0, 0, 0, 205, 0, 0, 0, 0, 14, 219 +"e:\project\pc-plat\src\templates\sharecomponent\chartcomponent\chartcompile\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 490, 0, 0, 0, 54, 544 +"e:\project\pc-plat\src\templates\sharecomponent\chartcomponent\chartcompile\index.scss", "SCSS", 0, 0, 0, 0, 40, 0, 0, 0, 0, 5, 45 +"e:\project\pc-plat\src\templates\sharecomponent\chartcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 530, 0, 0, 0, 99, 629 +"e:\project\pc-plat\src\templates\sharecomponent\chartcomponent\index.scss", "SCSS", 0, 0, 0, 0, 11, 0, 0, 0, 0, 3, 14 +"e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\chartform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 511, 0, 0, 2, 32, 545 +"e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\chartform\index.scss", "SCSS", 0, 0, 0, 0, 19, 0, 0, 0, 0, 1, 20 +"e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\dragchartview\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 48, 0, 0, 0, 9, 57 +"e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\dragchartview\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 63, 0, 0, 0, 12, 75 +"e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\dragchartview\index.scss", "SCSS", 0, 0, 0, 0, 29, 0, 0, 0, 0, 3, 32 +"e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 228, 0, 0, 27, 42, 297 +"e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\index.scss", "SCSS", 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 27 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\colspanform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 196, 0, 0, 2, 13, 211 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\colspanform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\columnform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 334, 0, 0, 4, 28, 366 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\columnform\index.scss", "SCSS", 0, 0, 0, 0, 17, 0, 0, 0, 0, 2, 19 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\dragcolumn\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 60, 0, 0, 0, 5, 65 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\dragcolumn\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 168, 0, 0, 2, 23, 193 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\dragcolumn\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 7 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\gridbtnform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 194, 0, 0, 2, 8, 204 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\gridbtnform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 492, 0, 0, 37, 71, 600 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\index.scss", "SCSS", 0, 0, 0, 0, 95, 0, 0, 0, 1, 2, 98 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\markcolumn\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 216, 0, 0, 0, 26, 242 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\markcolumn\index.scss", "SCSS", 0, 0, 0, 0, 55, 0, 0, 0, 0, 4, 59 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\markcolumn\markform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 328, 0, 0, 16, 27, 371 +"e:\project\pc-plat\src\templates\sharecomponent\columncomponent\markcolumn\markform\index.scss", "SCSS", 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 7 +"e:\project\pc-plat\src\templates\sharecomponent\fieldscomponent\editcard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 159, 0, 0, 0, 25, 184 +"e:\project\pc-plat\src\templates\sharecomponent\fieldscomponent\editcard\index.scss", "SCSS", 0, 0, 0, 0, 55, 0, 0, 0, 0, 1, 56 +"e:\project\pc-plat\src\templates\sharecomponent\fieldscomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 250, 0, 0, 10, 29, 289 +"e:\project\pc-plat\src\templates\sharecomponent\fieldscomponent\index.scss", "SCSS", 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 30 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dategroup\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 27, 0, 0, 0, 5, 32 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dategroup\index.scss", "SCSS", 0, 0, 0, 0, 36, 0, 0, 0, 0, 2, 38 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dragsearch\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 114, 0, 0, 0, 9, 123 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dragsearch\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 139, 0, 0, 0, 26, 165 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dragsearch\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 7 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 291, 0, 0, 39, 52, 382 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\index.scss", "SCSS", 0, 0, 0, 0, 84, 0, 0, 0, 0, 1, 85 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\searcheditable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 283, 0, 0, 0, 25, 308 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\searcheditable\index.scss", "SCSS", 0, 0, 0, 0, 43, 0, 0, 0, 0, 1, 44 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\searchform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 650, 0, 0, 2, 68, 720 +"e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\searchform\index.scss", "SCSS", 0, 0, 0, 0, 36, 0, 0, 0, 1, 1, 38 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 86, 0, 0, 0, 13, 99 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\index.scss", "SCSS", 0, 0, 0, 0, 79, 0, 0, 0, 0, 8, 87 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\columnform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 133, 0, 0, 1, 11, 145 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\columnform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 358, 0, 0, 6, 43, 407 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\index.scss", "SCSS", 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 80 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 295, 0, 0, 16, 24, 335 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\settingform\index.scss", "SCSS", 0, 0, 0, 0, 19, 0, 0, 0, 0, 1, 20 +"e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\utils.jsx", "JavaScript React", 0, 0, 0, 0, 0, 114, 0, 0, 11, 19, 144 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 162, 0, 0, 15, 29, 206 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 1, 40 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\datasource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 801, 0, 0, 3, 26, 830 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\datasource\index.scss", "SCSS", 0, 0, 0, 0, 20, 0, 0, 0, 0, 2, 22 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 486, 0, 0, 12, 50, 548 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\index.scss", "SCSS", 0, 0, 0, 0, 60, 0, 0, 0, 0, 1, 61 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\simplescript\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 440, 0, 0, 0, 53, 493 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\simplescript\index.scss", "SCSS", 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 45 +"e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\utils.jsx", "JavaScript React", 0, 0, 0, 0, 0, 171, 0, 0, 18, 28, 217 +"e:\project\pc-plat\src\templates\sharecomponent\tablecomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 268, 0, 0, 15, 35, 318 +"e:\project\pc-plat\src\templates\sharecomponent\tablecomponent\index.scss", "SCSS", 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 7 +"e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 350, 0, 0, 35, 54, 439 +"e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\index.scss", "SCSS", 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 81 +"e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabdragelement\card.jsx", "JavaScript React", 0, 0, 0, 0, 0, 54, 0, 0, 0, 9, 63 +"e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabdragelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 94, 0, 0, 0, 18, 112 +"e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabdragelement\index.scss", "SCSS", 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 12 +"e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 302, 0, 0, 9, 29, 340 +"e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 92, 0, 0, 9, 13, 114 +"e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\index.scss", "SCSS", 0, 0, 0, 0, 39, 0, 0, 0, 0, 1, 40 +"e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\datasource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 478, 0, 0, 3, 26, 507 +"e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\datasource\index.scss", "SCSS", 0, 0, 0, 0, 16, 0, 0, 0, 0, 1, 17 +"e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 254, 0, 0, 2, 30, 286 +"e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\index.scss", "SCSS", 0, 0, 0, 0, 52, 0, 0, 0, 0, 1, 53 +"e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\utils.jsx", "JavaScript React", 0, 0, 0, 0, 0, 64, 0, 0, 8, 13, 85 +"e:\project\pc-plat\src\templates\subtableconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1019, 0, 0, 55, 123, 1197 +"e:\project\pc-plat\src\templates\subtableconfig\index.scss", "SCSS", 0, 0, 0, 0, 199, 0, 0, 0, 0, 5, 204 +"e:\project\pc-plat\src\templates\subtableconfig\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 106, 0, 0, 0, 10, 116 +"e:\project\pc-plat\src\templates\subtableconfig\menuform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\subtableconfig\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 333, 0, 0, 0, 7, 340 +"e:\project\pc-plat\src\templates\treepageconfig\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 690, 0, 0, 52, 85, 827 +"e:\project\pc-plat\src\templates\treepageconfig\index.scss", "SCSS", 0, 0, 0, 0, 252, 0, 0, 0, 0, 6, 258 +"e:\project\pc-plat\src\templates\treepageconfig\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 53, 0, 0, 0, 5, 58 +"e:\project\pc-plat\src\templates\zshare\basetransferform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 37, 0, 0, 0, 9, 46 +"e:\project\pc-plat\src\templates\zshare\basetransferform\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6 +"e:\project\pc-plat\src\templates\zshare\codemirror\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 151, 0, 0, 1, 19, 171 +"e:\project\pc-plat\src\templates\zshare\codemirror\index.scss", "SCSS", 0, 0, 0, 0, 77, 0, 0, 0, 1, 1, 79 +"e:\project\pc-plat\src\templates\zshare\createfunc\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 179, 0, 0, 11, 24, 214 +"e:\project\pc-plat\src\templates\zshare\createfunc\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\createinterface\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 933, 0, 0, 49, 157, 1139 +"e:\project\pc-plat\src\templates\zshare\createinterface\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\createinterface\mutilform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 132, 0, 0, 2, 11, 145 +"e:\project\pc-plat\src\templates\zshare\createinterface\mutilform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\customscript\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 378, 0, 0, 0, 50, 428 +"e:\project\pc-plat\src\templates\zshare\customscript\index.scss", "SCSS", 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 45 +"e:\project\pc-plat\src\templates\zshare\dragsource\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 12, 0, 0, 0, 1, 13 +"e:\project\pc-plat\src\templates\zshare\dragsource\index.scss", "SCSS", 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9 +"e:\project\pc-plat\src\templates\zshare\editTable\cusSwitch\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 44, 0, 0, 1, 9, 54 +"e:\project\pc-plat\src\templates\zshare\editTable\cusSwitch\index.scss", "SCSS", 0, 0, 0, 0, 38, 0, 0, 0, 0, 2, 40 +"e:\project\pc-plat\src\templates\zshare\editTable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 551, 0, 0, 0, 85, 636 +"e:\project\pc-plat\src\templates\zshare\editTable\index.scss", "SCSS", 0, 0, 0, 0, 107, 0, 0, 0, 0, 4, 111 +"e:\project\pc-plat\src\templates\zshare\editcard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 142, 0, 0, 0, 17, 159 +"e:\project\pc-plat\src\templates\zshare\editcard\index.scss", "SCSS", 0, 0, 0, 0, 49, 0, 0, 0, 0, 1, 50 +"e:\project\pc-plat\src\templates\zshare\editcomponent\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 206, 0, 0, 6, 25, 237 +"e:\project\pc-plat\src\templates\zshare\editcomponent\index.scss", "SCSS", 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5 +"e:\project\pc-plat\src\templates\zshare\formconfig.jsx", "JavaScript React", 0, 0, 0, 0, 0, 3511, 0, 0, 132, 39, 3682 +"e:\project\pc-plat\src\templates\zshare\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 122, 0, 0, 1, 10, 133 +"e:\project\pc-plat\src\templates\zshare\menuform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\modalform\datatable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 395, 0, 0, 1, 55, 451 +"e:\project\pc-plat\src\templates\zshare\modalform\datatable\index.scss", "SCSS", 0, 0, 0, 0, 76, 0, 0, 0, 0, 1, 77 +"e:\project\pc-plat\src\templates\zshare\modalform\fieldtable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 115, 0, 0, 0, 16, 131 +"e:\project\pc-plat\src\templates\zshare\modalform\fieldtable\index.scss", "SCSS", 0, 0, 0, 0, 14, 0, 0, 0, 0, 1, 15 +"e:\project\pc-plat\src\templates\zshare\modalform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 660, 0, 0, 5, 83, 748 +"e:\project\pc-plat\src\templates\zshare\modalform\index.scss", "SCSS", 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 37 +"e:\project\pc-plat\src\templates\zshare\modalform\modaleditable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 425, 0, 0, 0, 56, 481 +"e:\project\pc-plat\src\templates\zshare\modalform\modaleditable\index.scss", "SCSS", 0, 0, 0, 0, 56, 0, 0, 0, 0, 1, 57 +"e:\project\pc-plat\src\templates\zshare\pasteform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 84, 0, 0, 1, 9, 94 +"e:\project\pc-plat\src\templates\zshare\pasteform\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 7 +"e:\project\pc-plat\src\templates\zshare\transferform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 105, 0, 0, 0, 22, 127 +"e:\project\pc-plat\src\templates\zshare\transferform\index.scss", "SCSS", 0, 0, 0, 0, 36, 0, 0, 0, 0, 2, 38 +"e:\project\pc-plat\src\templates\zshare\unattended\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 66, 0, 0, 0, 12, 78 +"e:\project\pc-plat\src\templates\zshare\unattended\index.scss", "SCSS", 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8 +"e:\project\pc-plat\src\templates\zshare\unattended\settingform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 163, 0, 0, 2, 8, 173 +"e:\project\pc-plat\src\templates\zshare\unattended\settingform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\verifycard\billcodeform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 347, 0, 0, 5, 29, 381 +"e:\project\pc-plat\src\templates\zshare\verifycard\billcodeform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\verifycard\callbackcustomscript\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 259, 0, 0, 8, 34, 301 +"e:\project\pc-plat\src\templates\zshare\verifycard\callbackcustomscript\index.scss", "SCSS", 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5 +"e:\project\pc-plat\src\templates\zshare\verifycard\contrastform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 134, 0, 0, 1, 5, 140 +"e:\project\pc-plat\src\templates\zshare\verifycard\contrastform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\verifycard\customform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 232, 0, 0, 3, 23, 258 +"e:\project\pc-plat\src\templates\zshare\verifycard\customform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\verifycard\customscript\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 287, 0, 0, 10, 36, 333 +"e:\project\pc-plat\src\templates\zshare\verifycard\customscript\index.scss", "SCSS", 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5 +"e:\project\pc-plat\src\templates\zshare\verifycard\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1730, 0, 0, 6, 134, 1870 +"e:\project\pc-plat\src\templates\zshare\verifycard\index.scss", "SCSS", 0, 0, 0, 0, 204, 0, 0, 0, 0, 8, 212 +"e:\project\pc-plat\src\templates\zshare\verifycard\uniqueform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 117, 0, 0, 1, 9, 127 +"e:\project\pc-plat\src\templates\zshare\verifycard\uniqueform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\templates\zshare\verifycard\voucherform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 243, 0, 0, 1, 25, 269 +"e:\project\pc-plat\src\templates\zshare\verifycard\voucherform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\utils\asyncComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 19, 0, 0, 4, 6, 29 +"e:\project\pc-plat\src\utils\asyncIconComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 20, 0, 0, 4, 6, 30 +"e:\project\pc-plat\src\utils\asyncLoadComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 22, 0, 0, 4, 6, 32 +"e:\project\pc-plat\src\utils\asyncSpinComponent.jsx", "JavaScript React", 0, 0, 0, 0, 0, 22, 0, 0, 4, 6, 32 +"e:\project\pc-plat\src\utils\events.js", "JavaScript", 0, 0, 4, 0, 0, 0, 0, 0, 0, 2, 6 +"e:\project\pc-plat\src\utils\option.js", "JavaScript", 0, 0, 903, 0, 0, 0, 0, 0, 9, 15, 927 +"e:\project\pc-plat\src\utils\utils-custom.js", "JavaScript", 0, 0, 687, 0, 0, 0, 0, 0, 43, 89, 819 +"e:\project\pc-plat\src\utils\utils-datamanage.js", "JavaScript", 0, 0, 582, 0, 0, 0, 0, 0, 76, 114, 772 +"e:\project\pc-plat\src\utils\utils-update.js", "JavaScript", 0, 0, 205, 0, 0, 0, 0, 0, 29, 27, 261 +"e:\project\pc-plat\src\utils\utils.js", "JavaScript", 0, 0, 1997, 0, 0, 0, 0, 0, 252, 366, 2615 +"e:\project\pc-plat\src\views\404\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, 31 +"e:\project\pc-plat\src\views\404\index.scss", "SCSS", 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 10 +"e:\project\pc-plat\src\views\appcheck\header\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, 31 +"e:\project\pc-plat\src\views\appcheck\header\index.scss", "SCSS", 0, 0, 0, 0, 55, 0, 0, 0, 0, 2, 57 +"e:\project\pc-plat\src\views\appcheck\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 231, 0, 0, 6, 24, 261 +"e:\project\pc-plat\src\views\appcheck\index.scss", "SCSS", 0, 0, 0, 0, 94, 0, 0, 0, 0, 7, 101 +"e:\project\pc-plat\src\views\appmanage\header\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, 31 +"e:\project\pc-plat\src\views\appmanage\header\index.scss", "SCSS", 0, 0, 0, 0, 55, 0, 0, 0, 0, 2, 57 +"e:\project\pc-plat\src\views\appmanage\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1089, 0, 0, 9, 113, 1211 +"e:\project\pc-plat\src\views\appmanage\index.scss", "SCSS", 0, 0, 0, 0, 119, 0, 0, 0, 0, 7, 126 +"e:\project\pc-plat\src\views\appmanage\mutilform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 76, 0, 0, 7, 6, 89 +"e:\project\pc-plat\src\views\appmanage\mutilform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\views\appmanage\scriptform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 216, 0, 0, 6, 30, 252 +"e:\project\pc-plat\src\views\appmanage\scriptform\index.scss", "SCSS", 0, 0, 0, 0, 11, 0, 0, 0, 0, 1, 12 +"e:\project\pc-plat\src\views\appmanage\submutilform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 231, 0, 0, 69, 14, 314 +"e:\project\pc-plat\src\views\appmanage\submutilform\index.scss", "SCSS", 0, 0, 0, 0, 22, 0, 0, 0, 0, 1, 23 +"e:\project\pc-plat\src\views\appmanage\transform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 76, 0, 0, 7, 6, 89 +"e:\project\pc-plat\src\views\appmanage\transform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\views\billprint\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 556, 0, 0, 16, 95, 667 +"e:\project\pc-plat\src\views\billprint\index.scss", "SCSS", 0, 0, 0, 0, 52, 0, 0, 0, 0, 4, 56 +"e:\project\pc-plat\src\views\design\header\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 361, 0, 0, 14, 49, 424 +"e:\project\pc-plat\src\views\design\header\index.scss", "SCSS", 0, 0, 0, 0, 205, 0, 0, 0, 0, 6, 211 +"e:\project\pc-plat\src\views\design\header\versions\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 389, 0, 0, 0, 59, 448 +"e:\project\pc-plat\src\views\design\header\versions\index.scss", "SCSS", 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 31 +"e:\project\pc-plat\src\views\design\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 28, 0, 0, 0, 6, 34 +"e:\project\pc-plat\src\views\design\index.scss", "SCSS", 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 19 +"e:\project\pc-plat\src\views\design\sidemenu\config.jsx", "JavaScript React", 0, 0, 0, 0, 0, 229, 0, 0, 22, 1, 252 +"e:\project\pc-plat\src\views\design\sidemenu\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 268, 0, 0, 4, 37, 309 +"e:\project\pc-plat\src\views\design\sidemenu\index.scss", "SCSS", 0, 0, 0, 0, 118, 0, 0, 0, 0, 1, 119 +"e:\project\pc-plat\src\views\imdesign\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 496, 0, 0, 7, 65, 568 +"e:\project\pc-plat\src\views\imdesign\index.scss", "SCSS", 0, 0, 0, 0, 330, 0, 0, 0, 0, 21, 351 +"e:\project\pc-plat\src\views\imdesign\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 67, 0, 0, 2, 8, 77 +"e:\project\pc-plat\src\views\imdesign\menuform\index.scss", "SCSS", 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 25 +"e:\project\pc-plat\src\views\imdesign\options.jsx", "JavaScript React", 0, 0, 0, 0, 0, 23, 0, 0, 3, 3, 29 +"e:\project\pc-plat\src\views\interface\api\index.js", "JavaScript", 0, 0, 142, 0, 0, 0, 0, 0, 11, 22, 175 +"e:\project\pc-plat\src\views\interface\header\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 38, 0, 0, 0, 7, 45 +"e:\project\pc-plat\src\views\interface\header\index.scss", "SCSS", 0, 0, 0, 0, 59, 0, 0, 0, 0, 5, 64 +"e:\project\pc-plat\src\views\interface\history\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 251, 0, 0, 3, 37, 291 +"e:\project\pc-plat\src\views\interface\history\index.scss", "SCSS", 0, 0, 0, 0, 111, 0, 0, 0, 0, 2, 113 +"e:\project\pc-plat\src\views\interface\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 23, 0, 0, 0, 5, 28 +"e:\project\pc-plat\src\views\interface\index.scss", "SCSS", 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6 +"e:\project\pc-plat\src\views\interface\workspace\editTable\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 219, 0, 0, 0, 31, 250 +"e:\project\pc-plat\src\views\interface\workspace\editTable\index.scss", "SCSS", 0, 0, 0, 0, 85, 0, 0, 0, 0, 1, 86 +"e:\project\pc-plat\src\views\interface\workspace\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 107, 0, 0, 3, 14, 124 +"e:\project\pc-plat\src\views\interface\workspace\index.scss", "SCSS", 0, 0, 0, 0, 51, 0, 0, 0, 0, 1, 52 +"e:\project\pc-plat\src\views\interface\workspace\request\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 254, 0, 0, 3, 53, 310 +"e:\project\pc-plat\src\views\interface\workspace\request\index.scss", "SCSS", 0, 0, 0, 0, 159, 0, 0, 0, 0, 3, 162 +"e:\project\pc-plat\src\views\login\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 742, 0, 0, 37, 109, 888 +"e:\project\pc-plat\src\views\login\index.scss", "SCSS", 0, 0, 0, 0, 293, 0, 0, 0, 1, 7, 301 +"e:\project\pc-plat\src\views\login\logincloudform.jsx", "JavaScript React", 0, 0, 0, 0, 0, 79, 0, 0, 1, 8, 88 +"e:\project\pc-plat\src\views\login\loginform.jsx", "JavaScript React", 0, 0, 0, 0, 0, 455, 0, 0, 5, 47, 507 +"e:\project\pc-plat\src\views\main\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 35, 0, 0, 0, 7, 42 +"e:\project\pc-plat\src\views\main\index.scss", "SCSS", 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5 +"e:\project\pc-plat\src\views\menudesign\homeform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 161, 0, 0, 2, 18, 181 +"e:\project\pc-plat\src\views\menudesign\homeform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\views\menudesign\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 998, 0, 0, 4, 110, 1112 +"e:\project\pc-plat\src\views\menudesign\index.scss", "SCSS", 0, 0, 0, 0, 178, 0, 0, 0, 0, 5, 183 +"e:\project\pc-plat\src\views\menudesign\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 355, 0, 0, 5, 26, 386 +"e:\project\pc-plat\src\views\menudesign\menuform\index.scss", "SCSS", 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8 +"e:\project\pc-plat\src\views\menudesign\printmenuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 236, 0, 0, 1, 20, 257 +"e:\project\pc-plat\src\views\menudesign\printmenuform\index.scss", "SCSS", 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 +"e:\project\pc-plat\src\views\mobdesign\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1566, 0, 0, 4, 206, 1776 +"e:\project\pc-plat\src\views\mobdesign\index.scss", "SCSS", 0, 0, 0, 0, 274, 0, 0, 0, 1, 16, 291 +"e:\project\pc-plat\src\views\mobdesign\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 239, 0, 0, 3, 13, 255 +"e:\project\pc-plat\src\views\mobdesign\menuform\index.scss", "SCSS", 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 25 +"e:\project\pc-plat\src\views\pay\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 258, 0, 0, 11, 30, 299 +"e:\project\pc-plat\src\views\pay\index.scss", "SCSS", 0, 0, 0, 0, 146, 0, 0, 0, 3, 8, 157 +"e:\project\pc-plat\src\views\pcdesign\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 1615, 0, 0, 4, 202, 1821 +"e:\project\pc-plat\src\views\pcdesign\index.scss", "SCSS", 0, 0, 0, 0, 227, 0, 0, 0, 0, 11, 238 +"e:\project\pc-plat\src\views\pcdesign\menuform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 176, 0, 0, 3, 13, 192 +"e:\project\pc-plat\src\views\pcdesign\menuform\index.scss", "SCSS", 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 8 +"e:\project\pc-plat\src\views\printTemplate\dragelement\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 17, 0, 0, 0, 4, 21 +"e:\project\pc-plat\src\views\printTemplate\dragelement\index.scss", "SCSS", 0, 0, 0, 0, 22, 0, 0, 0, 0, 4, 26 +"e:\project\pc-plat\src\views\printTemplate\dragelement\source.jsx", "JavaScript React", 0, 0, 0, 0, 0, 14, 0, 0, 0, 2, 16 +"e:\project\pc-plat\src\views\printTemplate\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 824, 0, 0, 9, 119, 952 +"e:\project\pc-plat\src\views\printTemplate\index.scss", "SCSS", 0, 0, 0, 0, 122, 0, 0, 0, 0, 2, 124 +"e:\project\pc-plat\src\views\printTemplate\mutilform\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 290, 0, 0, 1, 32, 323 +"e:\project\pc-plat\src\views\printTemplate\mutilform\index.scss", "SCSS", 0, 0, 0, 0, 49, 0, 0, 0, 8, 0, 57 +"e:\project\pc-plat\src\views\printTemplate\option.js", "JavaScript", 0, 0, 909, 0, 0, 0, 0, 0, 2, 11, 922 +"e:\project\pc-plat\src\views\printTemplate\print.js", "JavaScript", 0, 0, 394, 0, 0, 0, 0, 0, 19, 42, 455 +"e:\project\pc-plat\src\views\rolemanage\header\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 28, 0, 0, 0, 4, 32 +"e:\project\pc-plat\src\views\rolemanage\header\index.scss", "SCSS", 0, 0, 0, 0, 56, 0, 0, 0, 0, 2, 58 +"e:\project\pc-plat\src\views\rolemanage\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 814, 0, 0, 4, 109, 927 +"e:\project\pc-plat\src\views\rolemanage\index.scss", "SCSS", 0, 0, 0, 0, 86, 0, 0, 0, 0, 5, 91 +"e:\project\pc-plat\src\views\sso\index.jsx", "JavaScript React", 0, 0, 0, 0, 0, 131, 0, 0, 2, 21, 154 +"e:\project\pc-plat\src\views\sso\index.scss", "SCSS", 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 7 +"Total", "-", 39, 61, 8931, 21640, 25331, 139339, 76, 70, 5743, 20061, 221291 \ No newline at end of file diff --git a/.VSCodeCounter/2022-03-01_15-52-00/results.md b/.VSCodeCounter/2022-03-01_15-52-00/results.md new file mode 100644 index 0000000..503a9e3 --- /dev/null +++ b/.VSCodeCounter/2022-03-01_15-52-00/results.md @@ -0,0 +1,511 @@ +# Summary + +Date : 2022-03-01 15:52:00 + +Directory e:\project\pc-plat + +Total : 992 files, 195487 codes, 5743 comments, 20061 blanks, all 221291 lines + +[details](details.md) + +## Languages +| language | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| JavaScript React | 521 | 139,339 | 4,452 | 17,782 | 161,573 | +| SCSS | 416 | 25,331 | 161 | 1,119 | 26,611 | +| JSON | 4 | 21,640 | 0 | 3 | 21,643 | +| JavaScript | 43 | 8,931 | 1,121 | 1,050 | 11,102 | +| CSS | 2 | 76 | 5 | 27 | 108 | +| XML | 3 | 70 | 3 | 44 | 117 | +| HTML | 2 | 61 | 1 | 2 | 64 | +| Markdown | 1 | 39 | 0 | 34 | 73 | + +## Directories +| path | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| . | 992 | 195,487 | 5,743 | 20,061 | 221,291 | +| config | 8 | 711 | 341 | 80 | 1,132 | +| config\jest | 2 | 40 | 7 | 9 | 56 | +| public | 4 | 87 | 1 | 3 | 91 | +| scripts | 3 | 300 | 51 | 44 | 395 | +| src | 974 | 172,736 | 5,350 | 19,898 | 197,984 | +| src\api | 2 | 959 | 172 | 149 | 1,280 | +| src\assets | 10 | 2,122 | 101 | 160 | 2,383 | +| src\assets\css | 6 | 2,051 | 98 | 116 | 2,265 | +| src\assets\font | 3 | 57 | 3 | 43 | 103 | +| src\assets\mobimg | 1 | 14 | 0 | 1 | 15 | +| src\components | 57 | 6,574 | 67 | 788 | 7,429 | +| src\components\404 | 2 | 32 | 0 | 3 | 35 | +| src\components\Image | 2 | 58 | 0 | 12 | 70 | +| src\components\barcode | 2 | 68 | 0 | 13 | 81 | +| src\components\breadview | 2 | 222 | 5 | 27 | 254 | +| src\components\editor | 2 | 242 | 1 | 35 | 278 | +| src\components\header | 4 | 1,258 | 18 | 124 | 1,400 | +| src\components\header\resetpwd | 1 | 140 | 2 | 16 | 158 | +| src\components\imgScale | 2 | 450 | 0 | 60 | 510 | +| src\components\loading | 1 | 10 | 0 | 2 | 12 | +| src\components\lostsvg | 1 | 72 | 0 | 2 | 74 | +| src\components\mk-icon | 2 | 465 | 0 | 10 | 475 | +| src\components\mkIcon | 2 | 138 | 1 | 15 | 154 | +| src\components\mkProgress | 2 | 32 | 1 | 11 | 44 | +| src\components\mutilform | 2 | 213 | 2 | 14 | 229 | +| src\components\normalform | 18 | 1,318 | 9 | 263 | 1,590 | +| src\components\normalform\modalform | 16 | 1,238 | 9 | 250 | 1,497 | +| src\components\normalform\modalform\mkCheckbox | 2 | 36 | 0 | 9 | 45 | +| src\components\normalform\modalform\mkInput | 2 | 50 | 4 | 18 | 72 | +| src\components\normalform\modalform\mkNumberInput | 2 | 46 | 1 | 16 | 63 | +| src\components\normalform\modalform\mkRadio | 2 | 74 | 0 | 20 | 94 | +| src\components\normalform\modalform\mkSelect | 2 | 114 | 0 | 26 | 140 | +| src\components\normalform\modalform\mkTable | 2 | 478 | 3 | 68 | 549 | +| src\components\normalform\modalform\styleInput | 2 | 125 | 0 | 31 | 156 | +| src\components\paste | 2 | 63 | 0 | 10 | 73 | +| src\components\qrcode | 2 | 57 | 0 | 9 | 66 | +| src\components\querylog | 1 | 62 | 6 | 15 | 83 | +| src\components\sidemenu | 2 | 228 | 10 | 23 | 261 | +| src\components\simpleform | 2 | 202 | 2 | 12 | 216 | +| src\components\tabview | 2 | 388 | 7 | 34 | 429 | +| src\components\video | 2 | 996 | 5 | 94 | 1,095 | +| src\locales | 8 | 536 | 0 | 0 | 536 | +| src\locales\en-US | 4 | 268 | 0 | 0 | 268 | +| src\locales\zh-CN | 4 | 268 | 0 | 0 | 268 | +| src\menu | 257 | 39,910 | 957 | 4,581 | 45,448 | +| src\menu\bgcontroller | 2 | 161 | 3 | 25 | 189 | +| src\menu\components | 188 | 30,299 | 760 | 3,537 | 34,596 | +| src\menu\components\card | 33 | 5,983 | 182 | 765 | 6,930 | +| src\menu\components\card\balcony | 3 | 480 | 12 | 54 | 546 | +| src\menu\components\card\cardcellcomponent | 11 | 2,180 | 83 | 223 | 2,486 | +| src\menu\components\card\cardcellcomponent\dragaction | 6 | 523 | 8 | 64 | 595 | +| src\menu\components\card\cardcellcomponent\dragaction\mkProgress | 2 | 31 | 1 | 12 | 44 | +| src\menu\components\card\cardcellcomponent\elementform | 2 | 516 | 9 | 34 | 559 | +| src\menu\components\card\cardcomponent | 3 | 603 | 12 | 72 | 687 | +| src\menu\components\card\cardsimplecomponent | 9 | 672 | 18 | 92 | 782 | +| src\menu\components\card\cardsimplecomponent\node-wrap | 6 | 235 | 3 | 34 | 272 | +| src\menu\components\card\cardsimplecomponent\node-wrap\menus | 4 | 158 | 3 | 21 | 182 | +| src\menu\components\card\cardsimplecomponent\node-wrap\menus\columnform | 2 | 85 | 2 | 8 | 95 | +| src\menu\components\card\data-card | 3 | 1,004 | 31 | 133 | 1,168 | +| src\menu\components\card\prop-card | 2 | 488 | 12 | 92 | 592 | +| src\menu\components\card\table-card | 2 | 556 | 14 | 99 | 669 | +| src\menu\components\carousel | 5 | 832 | 27 | 136 | 995 | +| src\menu\components\carousel\data-card | 3 | 443 | 15 | 63 | 521 | +| src\menu\components\carousel\prop-card | 2 | 389 | 12 | 73 | 474 | +| src\menu\components\chart | 25 | 6,177 | 170 | 615 | 6,962 | +| src\menu\components\chart\antv-bar | 5 | 2,413 | 76 | 218 | 2,707 | +| src\menu\components\chart\antv-bar\chartcompile | 3 | 1,153 | 56 | 60 | 1,269 | +| src\menu\components\chart\antv-dashboard | 5 | 1,101 | 24 | 105 | 1,230 | +| src\menu\components\chart\antv-dashboard\chartcompile | 3 | 581 | 17 | 40 | 638 | +| src\menu\components\chart\antv-pie | 5 | 1,327 | 20 | 136 | 1,483 | +| src\menu\components\chart\antv-pie\chartcompile | 3 | 684 | 14 | 41 | 739 | +| src\menu\components\chart\antv-scatter | 5 | 861 | 20 | 88 | 969 | +| src\menu\components\chart\antv-scatter\chartcompile | 3 | 460 | 10 | 27 | 497 | +| src\menu\components\chart\chart-custom | 5 | 475 | 30 | 68 | 573 | +| src\menu\components\chart\chart-custom\chartcompile | 3 | 185 | 24 | 21 | 230 | +| src\menu\components\code | 7 | 450 | 19 | 71 | 540 | +| src\menu\components\code\sandbox | 7 | 450 | 19 | 71 | 540 | +| src\menu\components\code\sandbox\codecontent | 2 | 91 | 7 | 16 | 114 | +| src\menu\components\code\sandbox\editorcode | 2 | 113 | 0 | 18 | 131 | +| src\menu\components\editor | 5 | 374 | 9 | 52 | 435 | +| src\menu\components\editor\braft-editor | 5 | 374 | 9 | 52 | 435 | +| src\menu\components\editor\braft-editor\editorcontent | 2 | 85 | 0 | 15 | 100 | +| src\menu\components\form | 14 | 2,729 | 73 | 318 | 3,120 | +| src\menu\components\form\dragtitle | 4 | 307 | 3 | 27 | 337 | +| src\menu\components\form\formaction | 5 | 906 | 31 | 74 | 1,011 | +| src\menu\components\form\formaction\actionform | 2 | 372 | 8 | 29 | 409 | +| src\menu\components\form\normal-form | 3 | 804 | 21 | 110 | 935 | +| src\menu\components\form\tab-form | 2 | 712 | 18 | 107 | 837 | +| src\menu\components\group | 8 | 613 | 8 | 96 | 717 | +| src\menu\components\group\groupcomponents | 3 | 243 | 0 | 34 | 277 | +| src\menu\components\group\normal-group | 3 | 287 | 7 | 43 | 337 | +| src\menu\components\group\paste | 2 | 83 | 1 | 19 | 103 | +| src\menu\components\module | 3 | 230 | 22 | 37 | 289 | +| src\menu\components\module\voucher | 3 | 230 | 22 | 37 | 289 | +| src\menu\components\search | 8 | 882 | 29 | 102 | 1,013 | +| src\menu\components\search\main-search | 8 | 882 | 29 | 102 | 1,013 | +| src\menu\components\search\main-search\dategroup | 2 | 63 | 0 | 7 | 70 | +| src\menu\components\search\main-search\dragsearch | 3 | 224 | 0 | 27 | 251 | +| src\menu\components\share | 43 | 5,016 | 100 | 556 | 5,672 | +| src\menu\components\share\actioncomponent | 8 | 2,318 | 59 | 220 | 2,597 | +| src\menu\components\share\actioncomponent\actionform | 2 | 753 | 10 | 93 | 856 | +| src\menu\components\share\actioncomponent\dragaction | 3 | 198 | 0 | 34 | 232 | +| src\menu\components\share\clockcomponent | 4 | 158 | 1 | 20 | 179 | +| src\menu\components\share\clockcomponent\settingform | 2 | 98 | 1 | 9 | 108 | +| src\menu\components\share\copycomponent | 2 | 39 | 0 | 9 | 48 | +| src\menu\components\share\logcomponent | 2 | 135 | 0 | 17 | 152 | +| src\menu\components\share\markcomponent | 4 | 523 | 1 | 36 | 560 | +| src\menu\components\share\markcomponent\markform | 2 | 141 | 1 | 6 | 148 | +| src\menu\components\share\mobPagination | 2 | 55 | 0 | 3 | 58 | +| src\menu\components\share\normalform | 2 | 180 | 2 | 13 | 195 | +| src\menu\components\share\normalheader | 2 | 113 | 3 | 21 | 137 | +| src\menu\components\share\pastecomponent | 2 | 208 | 0 | 34 | 242 | +| src\menu\components\share\searchcomponent | 5 | 495 | 28 | 76 | 599 | +| src\menu\components\share\searchcomponent\dragsearch | 3 | 185 | 0 | 26 | 211 | +| src\menu\components\share\sourcecomponent | 4 | 383 | 0 | 42 | 425 | +| src\menu\components\share\sourcecomponent\inputform | 2 | 247 | 0 | 26 | 273 | +| src\menu\components\share\styleInput | 2 | 123 | 3 | 26 | 152 | +| src\menu\components\share\usercomponent | 4 | 286 | 3 | 39 | 328 | +| src\menu\components\share\usercomponent\settingform | 2 | 73 | 2 | 13 | 88 | +| src\menu\components\table | 22 | 5,164 | 71 | 534 | 5,769 | +| src\menu\components\table\edit-table | 14 | 3,026 | 44 | 319 | 3,389 | +| src\menu\components\table\edit-table\columns | 11 | 2,472 | 30 | 253 | 2,755 | +| src\menu\components\table\edit-table\columns\editColumn | 3 | 701 | 5 | 39 | 745 | +| src\menu\components\table\edit-table\columns\tableIn | 6 | 1,137 | 17 | 119 | 1,273 | +| src\menu\components\table\edit-table\columns\tableIn\customscript | 2 | 297 | 8 | 43 | 348 | +| src\menu\components\table\edit-table\columns\tableIn\uniqueform | 2 | 117 | 1 | 12 | 130 | +| src\menu\components\table\normal-table | 8 | 2,138 | 27 | 215 | 2,380 | +| src\menu\components\table\normal-table\columns | 5 | 1,424 | 13 | 133 | 1,570 | +| src\menu\components\table\normal-table\columns\editColumn | 3 | 787 | 5 | 39 | 831 | +| src\menu\components\tabs | 9 | 1,172 | 29 | 174 | 1,375 | +| src\menu\components\tabs\antv-tabs | 4 | 776 | 28 | 109 | 913 | +| src\menu\components\tabs\paste | 2 | 120 | 1 | 29 | 150 | +| src\menu\components\tabs\tabcomponents | 3 | 276 | 0 | 36 | 312 | +| src\menu\components\timeline | 3 | 348 | 9 | 42 | 399 | +| src\menu\components\timeline\normal-timeline | 3 | 348 | 9 | 42 | 399 | +| src\menu\components\tree | 3 | 329 | 12 | 39 | 380 | +| src\menu\components\tree\antd-tree | 3 | 329 | 12 | 39 | 380 | +| src\menu\datasource | 11 | 2,020 | 27 | 220 | 2,267 | +| src\menu\datasource\verifycard | 9 | 1,742 | 27 | 184 | 1,953 | +| src\menu\datasource\verifycard\columnform | 2 | 120 | 1 | 8 | 129 | +| src\menu\datasource\verifycard\customscript | 2 | 272 | 1 | 31 | 304 | +| src\menu\datasource\verifycard\settingform | 2 | 485 | 2 | 31 | 518 | +| src\menu\header | 2 | 111 | 0 | 9 | 120 | +| src\menu\menushell | 3 | 280 | 0 | 35 | 315 | +| src\menu\modalconfig | 3 | 838 | 39 | 80 | 957 | +| src\menu\modulesource | 5 | 204 | 1 | 25 | 230 | +| src\menu\modulesource\dragsource | 2 | 54 | 0 | 7 | 61 | +| src\menu\padcontroller | 2 | 90 | 3 | 12 | 105 | +| src\menu\pastecontroller | 2 | 102 | 1 | 26 | 129 | +| src\menu\picturecontroller | 6 | 663 | 1 | 55 | 719 | +| src\menu\picturecontroller\editform | 2 | 176 | 1 | 10 | 187 | +| src\menu\picturecontroller\video | 2 | 74 | 0 | 8 | 82 | +| src\menu\popview | 4 | 877 | 10 | 95 | 982 | +| src\menu\popview\menuform | 2 | 123 | 3 | 11 | 137 | +| src\menu\replaceField | 4 | 703 | 6 | 76 | 785 | +| src\menu\replaceField\settingform | 2 | 209 | 2 | 21 | 232 | +| src\menu\stylecombcontrolbutton | 2 | 176 | 3 | 28 | 207 | +| src\menu\stylecombcontroller | 4 | 815 | 36 | 78 | 929 | +| src\menu\stylecombcontroller\styleInput | 2 | 132 | 3 | 30 | 165 | +| src\menu\stylecontroller | 4 | 1,038 | 54 | 102 | 1,194 | +| src\menu\stylecontroller\styleInput | 2 | 138 | 3 | 31 | 172 | +| src\menu\sysinterface | 9 | 1,159 | 10 | 125 | 1,294 | +| src\menu\sysinterface\settingform | 7 | 950 | 10 | 98 | 1,058 | +| src\menu\sysinterface\settingform\baseform | 2 | 258 | 1 | 18 | 277 | +| src\menu\sysinterface\settingform\simplescript | 2 | 446 | 0 | 50 | 496 | +| src\menu\urlfieldcomponent | 4 | 208 | 2 | 33 | 243 | +| src\menu\urlfieldcomponent\settingform | 2 | 70 | 2 | 11 | 83 | +| src\menu\versions | 2 | 166 | 1 | 20 | 187 | +| src\mob | 66 | 7,225 | 266 | 818 | 8,309 | +| src\mob\colorsketch | 2 | 144 | 0 | 18 | 162 | +| src\mob\components | 32 | 3,624 | 148 | 449 | 4,221 | +| src\mob\components\formdragelement | 3 | 589 | 2 | 42 | 633 | +| src\mob\components\menubar | 6 | 659 | 22 | 89 | 770 | +| src\mob\components\menubar\normal-menubar | 6 | 659 | 22 | 89 | 770 | +| src\mob\components\menubar\normal-menubar\menucomponent | 3 | 317 | 7 | 33 | 357 | +| src\mob\components\navbar | 10 | 705 | 33 | 94 | 832 | +| src\mob\components\navbar\normal-navbar | 10 | 705 | 33 | 94 | 832 | +| src\mob\components\navbar\normal-navbar\menus | 7 | 477 | 24 | 61 | 562 | +| src\mob\components\navbar\normal-navbar\menus\drags | 3 | 106 | 1 | 16 | 123 | +| src\mob\components\navbar\normal-navbar\menus\menuform | 2 | 223 | 1 | 18 | 242 | +| src\mob\components\search | 3 | 287 | 12 | 29 | 328 | +| src\mob\components\search\single-search | 3 | 287 | 12 | 29 | 328 | +| src\mob\components\tabs | 7 | 943 | 59 | 147 | 1,149 | +| src\mob\components\tabs\antv-tabs | 4 | 676 | 51 | 111 | 838 | +| src\mob\components\tabs\tabcomponents | 3 | 267 | 8 | 36 | 311 | +| src\mob\components\topbar | 3 | 441 | 20 | 48 | 509 | +| src\mob\components\topbar\normal-navbar | 3 | 441 | 20 | 48 | 509 | +| src\mob\header | 2 | 91 | 0 | 7 | 98 | +| src\mob\mobshell | 3 | 362 | 4 | 40 | 406 | +| src\mob\modalconfig | 6 | 956 | 40 | 97 | 1,093 | +| src\mob\modalconfig\pastecomponent | 2 | 62 | 1 | 14 | 77 | +| src\mob\modulesource | 5 | 198 | 3 | 24 | 225 | +| src\mob\modulesource\dragsource | 2 | 54 | 0 | 7 | 61 | +| src\mob\searchconfig | 16 | 1,850 | 71 | 183 | 2,104 | +| src\mob\searchconfig\groupdragelement | 3 | 136 | 0 | 21 | 157 | +| src\mob\searchconfig\groupform | 2 | 88 | 1 | 10 | 99 | +| src\mob\searchconfig\pastecomponent | 2 | 46 | 1 | 11 | 58 | +| src\mob\searchconfig\searchdragelement | 3 | 394 | 23 | 37 | 454 | +| src\mob\searchconfig\settingform | 2 | 253 | 1 | 13 | 267 | +| src\pc | 41 | 3,702 | 105 | 461 | 4,268 | +| src\pc\bgcontroller | 2 | 229 | 6 | 31 | 266 | +| src\pc\components | 19 | 2,263 | 91 | 278 | 2,632 | +| src\pc\components\login | 4 | 616 | 80 | 61 | 757 | +| src\pc\components\login\normal-login | 4 | 616 | 80 | 61 | 757 | +| src\pc\components\navbar | 15 | 1,647 | 11 | 217 | 1,875 | +| src\pc\components\navbar\normal-navbar | 15 | 1,647 | 11 | 217 | 1,875 | +| src\pc\components\navbar\normal-navbar\linksetting | 6 | 361 | 1 | 58 | 420 | +| src\pc\components\navbar\normal-navbar\linksetting\linkform | 2 | 147 | 1 | 18 | 166 | +| src\pc\components\navbar\normal-navbar\linksetting\linktable | 2 | 152 | 0 | 29 | 181 | +| src\pc\components\navbar\normal-navbar\menusetting | 6 | 814 | 1 | 116 | 931 | +| src\pc\components\navbar\normal-navbar\menusetting\menuform | 2 | 190 | 1 | 18 | 209 | +| src\pc\components\navbar\normal-navbar\menusetting\menutable | 2 | 561 | 0 | 87 | 648 | +| src\pc\createview | 4 | 323 | 1 | 38 | 362 | +| src\pc\createview\settingform | 2 | 119 | 1 | 11 | 131 | +| src\pc\menushell | 3 | 316 | 3 | 40 | 359 | +| src\pc\modulesource | 5 | 205 | 1 | 24 | 230 | +| src\pc\modulesource\dragsource | 2 | 54 | 0 | 7 | 61 | +| src\pc\quotecomponent | 4 | 195 | 1 | 26 | 222 | +| src\pc\quotecomponent\settingform | 2 | 76 | 1 | 10 | 87 | +| src\pc\transfer | 4 | 171 | 2 | 24 | 197 | +| src\pc\transfer\settingform | 2 | 58 | 2 | 9 | 69 | +| src\router | 1 | 100 | 1 | 13 | 114 | +| src\store | 5 | 180 | 35 | 24 | 239 | +| src\tabviews | 187 | 42,159 | 1,723 | 5,982 | 49,864 | +| src\tabviews\calendar | 2 | 512 | 33 | 87 | 632 | +| src\tabviews\commontable | 2 | 1,178 | 60 | 157 | 1,395 | +| src\tabviews\custom | 67 | 16,421 | 525 | 2,404 | 19,350 | +| src\tabviews\custom\components | 65 | 15,324 | 496 | 2,255 | 18,075 | +| src\tabviews\custom\components\card | 13 | 3,123 | 70 | 473 | 3,666 | +| src\tabviews\custom\components\card\balcony | 2 | 360 | 9 | 73 | 442 | +| src\tabviews\custom\components\card\cardItem | 2 | 211 | 6 | 35 | 252 | +| src\tabviews\custom\components\card\cardcellList | 3 | 882 | 16 | 102 | 1,000 | +| src\tabviews\custom\components\card\data-card | 2 | 812 | 12 | 111 | 935 | +| src\tabviews\custom\components\card\prop-card | 2 | 411 | 9 | 75 | 495 | +| src\tabviews\custom\components\card\table-card | 2 | 447 | 18 | 77 | 542 | +| src\tabviews\custom\components\carousel | 6 | 666 | 24 | 117 | 807 | +| src\tabviews\custom\components\carousel\cardItem | 2 | 132 | 6 | 22 | 160 | +| src\tabviews\custom\components\carousel\data-card | 2 | 273 | 9 | 47 | 329 | +| src\tabviews\custom\components\carousel\prop-card | 2 | 261 | 9 | 48 | 318 | +| src\tabviews\custom\components\chart | 12 | 4,141 | 136 | 596 | 4,873 | +| src\tabviews\custom\components\chart\antv-bar-line | 3 | 1,651 | 52 | 234 | 1,937 | +| src\tabviews\custom\components\chart\antv-dashboard | 2 | 634 | 13 | 82 | 729 | +| src\tabviews\custom\components\chart\antv-pie | 2 | 999 | 16 | 141 | 1,156 | +| src\tabviews\custom\components\chart\antv-scatter | 3 | 498 | 29 | 75 | 602 | +| src\tabviews\custom\components\chart\custom-chart | 2 | 359 | 26 | 64 | 449 | +| src\tabviews\custom\components\code | 2 | 219 | 4 | 36 | 259 | +| src\tabviews\custom\components\code\sand-box | 2 | 219 | 4 | 36 | 259 | +| src\tabviews\custom\components\editor | 2 | 196 | 3 | 34 | 233 | +| src\tabviews\custom\components\editor\braft-editor | 2 | 196 | 3 | 34 | 233 | +| src\tabviews\custom\components\form | 4 | 806 | 22 | 138 | 966 | +| src\tabviews\custom\components\form\normal-form | 2 | 430 | 11 | 75 | 516 | +| src\tabviews\custom\components\form\tab-form | 2 | 376 | 11 | 63 | 450 | +| src\tabviews\custom\components\group | 2 | 328 | 5 | 38 | 371 | +| src\tabviews\custom\components\group\normal-group | 2 | 328 | 5 | 38 | 371 | +| src\tabviews\custom\components\module | 4 | 980 | 53 | 151 | 1,184 | +| src\tabviews\custom\components\module\voucher | 4 | 980 | 53 | 151 | 1,184 | +| src\tabviews\custom\components\module\voucher\voucherTable | 2 | 825 | 48 | 124 | 997 | +| src\tabviews\custom\components\share | 8 | 1,458 | 37 | 207 | 1,702 | +| src\tabviews\custom\components\share\braftContent | 2 | 72 | 0 | 12 | 84 | +| src\tabviews\custom\components\share\normalTable | 2 | 1,008 | 29 | 154 | 1,191 | +| src\tabviews\custom\components\share\normalheader | 2 | 90 | 3 | 13 | 106 | +| src\tabviews\custom\components\share\tabtransfer | 2 | 288 | 5 | 28 | 321 | +| src\tabviews\custom\components\table | 6 | 2,414 | 97 | 304 | 2,815 | +| src\tabviews\custom\components\table\edit-table | 4 | 1,728 | 59 | 223 | 2,010 | +| src\tabviews\custom\components\table\edit-table\normalTable | 2 | 1,191 | 24 | 164 | 1,379 | +| src\tabviews\custom\components\table\normal-table | 2 | 686 | 38 | 81 | 805 | +| src\tabviews\custom\components\tabs | 2 | 137 | 3 | 27 | 167 | +| src\tabviews\custom\components\tabs\antv-tabs | 2 | 137 | 3 | 27 | 167 | +| src\tabviews\custom\components\timeline | 2 | 358 | 22 | 57 | 437 | +| src\tabviews\custom\components\timeline\normal-timeline | 2 | 358 | 22 | 57 | 437 | +| src\tabviews\custom\components\tree | 2 | 498 | 20 | 77 | 595 | +| src\tabviews\custom\components\tree\antd-tree | 2 | 498 | 20 | 77 | 595 | +| src\tabviews\formtab | 6 | 1,650 | 69 | 224 | 1,943 | +| src\tabviews\formtab\actionList | 2 | 308 | 32 | 47 | 387 | +| src\tabviews\formtab\formgroup | 2 | 686 | 4 | 82 | 772 | +| src\tabviews\home | 4 | 570 | 0 | 20 | 590 | +| src\tabviews\home\defaulthome | 2 | 474 | 0 | 8 | 482 | +| src\tabviews\iframe | 1 | 37 | 3 | 10 | 50 | +| src\tabviews\rolemanage | 2 | 917 | 61 | 114 | 1,092 | +| src\tabviews\scriptmanage | 5 | 690 | 67 | 84 | 841 | +| src\tabviews\scriptmanage\actionList | 2 | 262 | 32 | 36 | 330 | +| src\tabviews\subtable | 2 | 1,004 | 56 | 143 | 1,203 | +| src\tabviews\subtabtable | 2 | 816 | 47 | 122 | 985 | +| src\tabviews\tabmanage | 6 | 747 | 5 | 80 | 832 | +| src\tabviews\tabmanage\mutilform | 2 | 137 | 1 | 8 | 146 | +| src\tabviews\tabmanage\transferform | 2 | 41 | 0 | 9 | 50 | +| src\tabviews\treepage | 2 | 711 | 29 | 96 | 836 | +| src\tabviews\verupmanage | 7 | 1,767 | 140 | 236 | 2,143 | +| src\tabviews\verupmanage\actionList | 2 | 682 | 51 | 102 | 835 | +| src\tabviews\verupmanage\subtabtable | 2 | 441 | 43 | 64 | 548 | +| src\tabviews\zshare | 79 | 15,139 | 628 | 2,205 | 17,972 | +| src\tabviews\zshare\actionList | 21 | 5,654 | 478 | 876 | 7,008 | +| src\tabviews\zshare\actionList\changeuserbutton | 2 | 240 | 10 | 37 | 287 | +| src\tabviews\zshare\actionList\excelInbutton | 4 | 556 | 34 | 80 | 670 | +| src\tabviews\zshare\actionList\excelInbutton\excelin | 2 | 102 | 5 | 18 | 125 | +| src\tabviews\zshare\actionList\exceloutbutton | 2 | 807 | 47 | 137 | 991 | +| src\tabviews\zshare\actionList\newpagebutton | 2 | 252 | 7 | 34 | 293 | +| src\tabviews\zshare\actionList\normalbutton | 2 | 1,808 | 85 | 273 | 2,166 | +| src\tabviews\zshare\actionList\popupbutton | 2 | 363 | 13 | 43 | 419 | +| src\tabviews\zshare\actionList\printbutton | 2 | 1,184 | 271 | 216 | 1,671 | +| src\tabviews\zshare\actionList\tabbutton | 2 | 225 | 6 | 36 | 267 | +| src\tabviews\zshare\automatic | 2 | 186 | 3 | 39 | 228 | +| src\tabviews\zshare\calendar | 2 | 556 | 1 | 50 | 607 | +| src\tabviews\zshare\cardcomponent | 3 | 1,023 | 31 | 130 | 1,184 | +| src\tabviews\zshare\chartcomponent | 3 | 1,064 | 46 | 154 | 1,264 | +| src\tabviews\zshare\fileupload | 2 | 445 | 4 | 73 | 522 | +| src\tabviews\zshare\mutilform | 22 | 1,907 | 30 | 322 | 2,259 | +| src\tabviews\zshare\mutilform\mkCheckCard | 2 | 284 | 1 | 37 | 322 | +| src\tabviews\zshare\mutilform\mkCheckbox | 2 | 30 | 0 | 8 | 38 | +| src\tabviews\zshare\mutilform\mkColor | 2 | 89 | 0 | 12 | 101 | +| src\tabviews\zshare\mutilform\mkDatePicker | 2 | 68 | 3 | 17 | 88 | +| src\tabviews\zshare\mutilform\mkInput | 2 | 79 | 3 | 18 | 100 | +| src\tabviews\zshare\mutilform\mkNumberInput | 2 | 61 | 1 | 17 | 79 | +| src\tabviews\zshare\mutilform\mkRadio | 2 | 120 | 0 | 27 | 147 | +| src\tabviews\zshare\mutilform\mkSelect | 2 | 182 | 0 | 30 | 212 | +| src\tabviews\zshare\mutilform\mkSwitch | 2 | 33 | 0 | 9 | 42 | +| src\tabviews\zshare\mutilform\mkTextArea | 2 | 75 | 0 | 18 | 93 | +| src\tabviews\zshare\normalTable | 2 | 1,461 | 13 | 189 | 1,663 | +| src\tabviews\zshare\pageMessage | 2 | 336 | 5 | 47 | 388 | +| src\tabviews\zshare\settingcomponent | 4 | 896 | 2 | 104 | 1,002 | +| src\tabviews\zshare\settingcomponent\editTable | 2 | 357 | 0 | 32 | 389 | +| src\tabviews\zshare\topSearch | 16 | 1,611 | 15 | 221 | 1,847 | +| src\tabviews\zshare\topSearch\advanceform | 2 | 140 | 1 | 16 | 157 | +| src\tabviews\zshare\topSearch\dategroup | 6 | 546 | 0 | 56 | 602 | +| src\tabviews\zshare\topSearch\dategroup\quarterpicker | 2 | 175 | 0 | 19 | 194 | +| src\tabviews\zshare\topSearch\dategroup\yearpicker | 2 | 151 | 0 | 19 | 170 | +| src\tabviews\zshare\topSearch\mkDatePicker | 2 | 73 | 3 | 16 | 92 | +| src\tabviews\zshare\topSearch\mkInput | 2 | 14 | 0 | 5 | 19 | +| src\tabviews\zshare\topSearch\mkSelect | 2 | 97 | 0 | 25 | 122 | +| src\templates | 241 | 45,591 | 1,096 | 4,258 | 50,945 | +| src\templates\calendarconfig | 11 | 1,648 | 108 | 167 | 1,923 | +| src\templates\calendarconfig\calcomponent | 4 | 265 | 11 | 20 | 296 | +| src\templates\calendarconfig\calcomponent\calendarform | 2 | 151 | 2 | 5 | 158 | +| src\templates\calendarconfig\tabcomponent | 4 | 377 | 19 | 41 | 437 | +| src\templates\calendarconfig\tabcomponent\tabform | 2 | 202 | 7 | 23 | 232 | +| src\templates\comtableconfig | 5 | 1,962 | 65 | 169 | 2,196 | +| src\templates\comtableconfig\menuform | 2 | 239 | 0 | 16 | 255 | +| src\templates\formtabconfig | 16 | 3,762 | 72 | 354 | 4,188 | +| src\templates\formtabconfig\actionform | 2 | 442 | 1 | 33 | 476 | +| src\templates\formtabconfig\dragelement | 5 | 349 | 1 | 42 | 392 | +| src\templates\formtabconfig\groupform | 2 | 111 | 3 | 17 | 131 | +| src\templates\formtabconfig\settingform | 2 | 340 | 1 | 26 | 367 | +| src\templates\formtabconfig\transferform | 2 | 67 | 0 | 12 | 79 | +| src\templates\menuconfig | 22 | 3,038 | 44 | 207 | 3,289 | +| src\templates\menuconfig\editfirstmenu | 8 | 875 | 9 | 60 | 944 | +| src\templates\menuconfig\editfirstmenu\dragelement | 4 | 178 | 0 | 19 | 197 | +| src\templates\menuconfig\editfirstmenu\menuform | 2 | 240 | 2 | 15 | 257 | +| src\templates\menuconfig\editsecmenu | 2 | 520 | 2 | 22 | 544 | +| src\templates\menuconfig\editthdmenu | 6 | 1,304 | 31 | 99 | 1,434 | +| src\templates\menuconfig\editthdmenu\menuform | 2 | 156 | 2 | 14 | 172 | +| src\templates\menuconfig\editthdmenu\preview | 2 | 90 | 0 | 7 | 97 | +| src\templates\menuconfig\menuelement | 4 | 185 | 0 | 15 | 200 | +| src\templates\menuconfig\menuform | 2 | 154 | 2 | 11 | 167 | +| src\templates\modalconfig | 17 | 2,283 | 52 | 201 | 2,536 | +| src\templates\modalconfig\checkCard | 2 | 107 | 0 | 11 | 118 | +| src\templates\modalconfig\dragelement | 4 | 407 | 1 | 39 | 447 | +| src\templates\modalconfig\editcard | 2 | 152 | 0 | 13 | 165 | +| src\templates\modalconfig\menuform | 2 | 91 | 1 | 6 | 98 | +| src\templates\modalconfig\settingform | 2 | 292 | 7 | 15 | 314 | +| src\templates\modalconfig\transferform | 2 | 67 | 0 | 12 | 79 | +| src\templates\sharecomponent | 105 | 17,703 | 400 | 1,874 | 19,977 | +| src\templates\sharecomponent\actioncomponent | 23 | 4,735 | 89 | 507 | 5,331 | +| src\templates\sharecomponent\actioncomponent\actionform | 2 | 645 | 4 | 81 | 730 | +| src\templates\sharecomponent\actioncomponent\dragaction | 3 | 216 | 1 | 34 | 251 | +| src\templates\sharecomponent\actioncomponent\verifyexcelin | 8 | 1,516 | 18 | 147 | 1,681 | +| src\templates\sharecomponent\actioncomponent\verifyexcelin\columnform | 2 | 174 | 1 | 10 | 185 | +| src\templates\sharecomponent\actioncomponent\verifyexcelin\customscript | 2 | 309 | 8 | 46 | 363 | +| src\templates\sharecomponent\actioncomponent\verifyexcelin\uniqueform | 2 | 117 | 1 | 12 | 130 | +| src\templates\sharecomponent\actioncomponent\verifyexcelout | 4 | 751 | 6 | 68 | 825 | +| src\templates\sharecomponent\actioncomponent\verifyexcelout\columnform | 2 | 99 | 1 | 6 | 106 | +| src\templates\sharecomponent\actioncomponent\verifyprint | 4 | 748 | 1 | 63 | 812 | +| src\templates\sharecomponent\actioncomponent\verifyprint\editable | 2 | 264 | 0 | 26 | 290 | +| src\templates\sharecomponent\cardcomponent | 7 | 1,050 | 3 | 108 | 1,161 | +| src\templates\sharecomponent\cardcomponent\carddetailform | 2 | 277 | 2 | 24 | 303 | +| src\templates\sharecomponent\cardcomponent\dragdetail | 3 | 145 | 0 | 16 | 161 | +| src\templates\sharecomponent\chartcomponent | 4 | 1,071 | 0 | 161 | 1,232 | +| src\templates\sharecomponent\chartcomponent\chartcompile | 2 | 530 | 0 | 59 | 589 | +| src\templates\sharecomponent\chartgroupcomponent | 7 | 925 | 29 | 99 | 1,053 | +| src\templates\sharecomponent\chartgroupcomponent\chartform | 2 | 530 | 2 | 33 | 565 | +| src\templates\sharecomponent\chartgroupcomponent\dragchartview | 3 | 140 | 0 | 24 | 164 | +| src\templates\sharecomponent\columncomponent | 15 | 2,168 | 64 | 212 | 2,444 | +| src\templates\sharecomponent\columncomponent\colspanform | 2 | 196 | 2 | 14 | 212 | +| src\templates\sharecomponent\columncomponent\columnform | 2 | 351 | 4 | 30 | 385 | +| src\templates\sharecomponent\columncomponent\dragcolumn | 3 | 234 | 2 | 29 | 265 | +| src\templates\sharecomponent\columncomponent\gridbtnform | 2 | 194 | 2 | 9 | 205 | +| src\templates\sharecomponent\columncomponent\markcolumn | 4 | 606 | 16 | 57 | 679 | +| src\templates\sharecomponent\columncomponent\markcolumn\markform | 2 | 335 | 16 | 27 | 378 | +| src\templates\sharecomponent\fieldscomponent | 4 | 494 | 10 | 55 | 559 | +| src\templates\sharecomponent\fieldscomponent\editcard | 2 | 214 | 0 | 26 | 240 | +| src\templates\sharecomponent\searchcomponent | 11 | 1,709 | 42 | 191 | 1,942 | +| src\templates\sharecomponent\searchcomponent\dategroup | 2 | 63 | 0 | 7 | 70 | +| src\templates\sharecomponent\searchcomponent\dragsearch | 3 | 259 | 0 | 36 | 295 | +| src\templates\sharecomponent\searchcomponent\searcheditable | 2 | 326 | 0 | 26 | 352 | +| src\templates\sharecomponent\searchcomponent\searchform | 2 | 686 | 3 | 69 | 758 | +| src\templates\sharecomponent\settingcalcomponent | 9 | 1,164 | 34 | 120 | 1,318 | +| src\templates\sharecomponent\settingcalcomponent\verifycard | 7 | 999 | 34 | 99 | 1,132 | +| src\templates\sharecomponent\settingcalcomponent\verifycard\columnform | 2 | 133 | 1 | 12 | 146 | +| src\templates\sharecomponent\settingcalcomponent\verifycard\settingform | 2 | 314 | 16 | 25 | 355 | +| src\templates\sharecomponent\settingcomponent | 9 | 2,224 | 48 | 190 | 2,462 | +| src\templates\sharecomponent\settingcomponent\settingform | 7 | 2,023 | 33 | 160 | 2,216 | +| src\templates\sharecomponent\settingcomponent\settingform\datasource | 2 | 821 | 3 | 28 | 852 | +| src\templates\sharecomponent\settingcomponent\settingform\simplescript | 2 | 485 | 0 | 53 | 538 | +| src\templates\sharecomponent\tablecomponent | 2 | 275 | 15 | 35 | 325 | +| src\templates\sharecomponent\tabscomponent | 7 | 893 | 44 | 111 | 1,048 | +| src\templates\sharecomponent\tabscomponent\tabdragelement | 3 | 160 | 0 | 27 | 187 | +| src\templates\sharecomponent\tabscomponent\tabform | 2 | 302 | 9 | 30 | 341 | +| src\templates\sharecomponent\treesettingcomponent | 7 | 995 | 22 | 85 | 1,102 | +| src\templates\sharecomponent\treesettingcomponent\settingform | 5 | 864 | 13 | 71 | 948 | +| src\templates\sharecomponent\treesettingcomponent\settingform\datasource | 2 | 494 | 3 | 27 | 524 | +| src\templates\subtableconfig | 5 | 1,657 | 55 | 146 | 1,858 | +| src\templates\subtableconfig\menuform | 2 | 106 | 0 | 11 | 117 | +| src\templates\treepageconfig | 3 | 995 | 52 | 96 | 1,143 | +| src\templates\zshare | 57 | 12,543 | 248 | 1,044 | 13,835 | +| src\templates\zshare\basetransferform | 2 | 43 | 0 | 9 | 52 | +| src\templates\zshare\codemirror | 2 | 228 | 2 | 20 | 250 | +| src\templates\zshare\createfunc | 2 | 179 | 11 | 25 | 215 | +| src\templates\zshare\createinterface | 4 | 1,065 | 51 | 170 | 1,286 | +| src\templates\zshare\createinterface\mutilform | 2 | 132 | 2 | 12 | 146 | +| src\templates\zshare\customscript | 2 | 423 | 0 | 50 | 473 | +| src\templates\zshare\dragsource | 2 | 21 | 0 | 1 | 22 | +| src\templates\zshare\editTable | 4 | 740 | 1 | 100 | 841 | +| src\templates\zshare\editTable\cusSwitch | 2 | 82 | 1 | 11 | 94 | +| src\templates\zshare\editcard | 2 | 191 | 0 | 18 | 209 | +| src\templates\zshare\editcomponent | 2 | 211 | 6 | 25 | 242 | +| src\templates\zshare\menuform | 2 | 122 | 1 | 11 | 134 | +| src\templates\zshare\modalform | 8 | 1,778 | 6 | 213 | 1,997 | +| src\templates\zshare\modalform\datatable | 2 | 471 | 1 | 56 | 528 | +| src\templates\zshare\modalform\fieldtable | 2 | 129 | 0 | 17 | 146 | +| src\templates\zshare\modalform\modaleditable | 2 | 481 | 0 | 57 | 538 | +| src\templates\zshare\pasteform | 2 | 90 | 1 | 10 | 101 | +| src\templates\zshare\transferform | 2 | 141 | 0 | 24 | 165 | +| src\templates\zshare\unattended | 4 | 237 | 2 | 21 | 260 | +| src\templates\zshare\unattended\settingform | 2 | 163 | 2 | 9 | 174 | +| src\templates\zshare\verifycard | 16 | 3,563 | 35 | 308 | 3,906 | +| src\templates\zshare\verifycard\billcodeform | 2 | 347 | 5 | 30 | 382 | +| src\templates\zshare\verifycard\callbackcustomscript | 2 | 264 | 8 | 34 | 306 | +| src\templates\zshare\verifycard\contrastform | 2 | 134 | 1 | 6 | 141 | +| src\templates\zshare\verifycard\customform | 2 | 232 | 3 | 24 | 259 | +| src\templates\zshare\verifycard\customscript | 2 | 292 | 10 | 36 | 338 | +| src\templates\zshare\verifycard\uniqueform | 2 | 117 | 1 | 10 | 128 | +| src\templates\zshare\verifycard\voucherform | 2 | 243 | 1 | 26 | 270 | +| src\utils | 10 | 4,461 | 425 | 637 | 5,523 | +| src\views | 86 | 18,910 | 322 | 1,978 | 21,210 | +| src\views\404 | 2 | 37 | 0 | 4 | 41 | +| src\views\appcheck | 4 | 407 | 6 | 37 | 450 | +| src\views\appcheck\header | 2 | 82 | 0 | 6 | 88 | +| src\views\appmanage | 12 | 1,922 | 98 | 186 | 2,206 | +| src\views\appmanage\header | 2 | 82 | 0 | 6 | 88 | +| src\views\appmanage\mutilform | 2 | 76 | 7 | 7 | 90 | +| src\views\appmanage\scriptform | 2 | 227 | 6 | 31 | 264 | +| src\views\appmanage\submutilform | 2 | 253 | 69 | 15 | 337 | +| src\views\appmanage\transform | 2 | 76 | 7 | 7 | 90 | +| src\views\billprint | 2 | 608 | 16 | 99 | 723 | +| src\views\design | 9 | 1,648 | 40 | 159 | 1,847 | +| src\views\design\header | 4 | 986 | 14 | 114 | 1,114 | +| src\views\design\header\versions | 2 | 420 | 0 | 59 | 479 | +| src\views\design\sidemenu | 3 | 615 | 26 | 39 | 680 | +| src\views\imdesign | 5 | 941 | 12 | 97 | 1,050 | +| src\views\imdesign\menuform | 2 | 92 | 2 | 8 | 102 | +| src\views\interface | 13 | 1,505 | 20 | 181 | 1,706 | +| src\views\interface\api | 1 | 142 | 11 | 22 | 175 | +| src\views\interface\header | 2 | 97 | 0 | 12 | 109 | +| src\views\interface\history | 2 | 362 | 3 | 39 | 404 | +| src\views\interface\workspace | 6 | 875 | 6 | 103 | 984 | +| src\views\interface\workspace\editTable | 2 | 304 | 0 | 32 | 336 | +| src\views\interface\workspace\request | 2 | 413 | 3 | 56 | 472 | +| src\views\login | 4 | 1,569 | 44 | 171 | 1,784 | +| src\views\main | 2 | 40 | 0 | 7 | 47 | +| src\views\menudesign | 8 | 1,936 | 12 | 181 | 2,129 | +| src\views\menudesign\homeform | 2 | 161 | 2 | 19 | 182 | +| src\views\menudesign\menuform | 2 | 363 | 5 | 26 | 394 | +| src\views\menudesign\printmenuform | 2 | 236 | 1 | 21 | 258 | +| src\views\mobdesign | 4 | 2,104 | 8 | 235 | 2,347 | +| src\views\mobdesign\menuform | 2 | 264 | 3 | 13 | 280 | +| src\views\pay | 2 | 404 | 14 | 38 | 456 | +| src\views\pcdesign | 4 | 2,026 | 7 | 226 | 2,259 | +| src\views\pcdesign\menuform | 2 | 184 | 3 | 13 | 200 | +| src\views\printTemplate | 9 | 2,641 | 39 | 216 | 2,896 | +| src\views\printTemplate\dragelement | 3 | 53 | 0 | 10 | 63 | +| src\views\printTemplate\mutilform | 2 | 339 | 9 | 32 | 380 | +| src\views\rolemanage | 4 | 984 | 4 | 120 | 1,108 | +| src\views\rolemanage\header | 2 | 84 | 0 | 6 | 90 | +| src\views\sso | 2 | 138 | 2 | 21 | 161 | + +[details](details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2022-03-01_15-52-00/results.txt b/.VSCodeCounter/2022-03-01_15-52-00/results.txt new file mode 100644 index 0000000..9daa155 --- /dev/null +++ b/.VSCodeCounter/2022-03-01_15-52-00/results.txt @@ -0,0 +1,1506 @@ +Date : 2022-03-01 15:52:00 +Directory : e:\project\pc-plat +Total : 992 files, 195487 codes, 5743 comments, 20061 blanks, all 221291 lines + +Languages ++------------------+------------+------------+------------+------------+------------+ +| language | files | code | comment | blank | total | ++------------------+------------+------------+------------+------------+------------+ +| JavaScript React | 521 | 139,339 | 4,452 | 17,782 | 161,573 | +| SCSS | 416 | 25,331 | 161 | 1,119 | 26,611 | +| JSON | 4 | 21,640 | 0 | 3 | 21,643 | +| JavaScript | 43 | 8,931 | 1,121 | 1,050 | 11,102 | +| CSS | 2 | 76 | 5 | 27 | 108 | +| XML | 3 | 70 | 3 | 44 | 117 | +| HTML | 2 | 61 | 1 | 2 | 64 | +| Markdown | 1 | 39 | 0 | 34 | 73 | ++------------------+------------+------------+------------+------------+------------+ + +Directories ++--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| path | files | code | comment | blank | total | ++--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| . | 992 | 195,487 | 5,743 | 20,061 | 221,291 | +| config | 8 | 711 | 341 | 80 | 1,132 | +| config\jest | 2 | 40 | 7 | 9 | 56 | +| public | 4 | 87 | 1 | 3 | 91 | +| scripts | 3 | 300 | 51 | 44 | 395 | +| src | 974 | 172,736 | 5,350 | 19,898 | 197,984 | +| src\api | 2 | 959 | 172 | 149 | 1,280 | +| src\assets | 10 | 2,122 | 101 | 160 | 2,383 | +| src\assets\css | 6 | 2,051 | 98 | 116 | 2,265 | +| src\assets\font | 3 | 57 | 3 | 43 | 103 | +| src\assets\mobimg | 1 | 14 | 0 | 1 | 15 | +| src\components | 57 | 6,574 | 67 | 788 | 7,429 | +| src\components\404 | 2 | 32 | 0 | 3 | 35 | +| src\components\Image | 2 | 58 | 0 | 12 | 70 | +| src\components\barcode | 2 | 68 | 0 | 13 | 81 | +| src\components\breadview | 2 | 222 | 5 | 27 | 254 | +| src\components\editor | 2 | 242 | 1 | 35 | 278 | +| src\components\header | 4 | 1,258 | 18 | 124 | 1,400 | +| src\components\header\resetpwd | 1 | 140 | 2 | 16 | 158 | +| src\components\imgScale | 2 | 450 | 0 | 60 | 510 | +| src\components\loading | 1 | 10 | 0 | 2 | 12 | +| src\components\lostsvg | 1 | 72 | 0 | 2 | 74 | +| src\components\mk-icon | 2 | 465 | 0 | 10 | 475 | +| src\components\mkIcon | 2 | 138 | 1 | 15 | 154 | +| src\components\mkProgress | 2 | 32 | 1 | 11 | 44 | +| src\components\mutilform | 2 | 213 | 2 | 14 | 229 | +| src\components\normalform | 18 | 1,318 | 9 | 263 | 1,590 | +| src\components\normalform\modalform | 16 | 1,238 | 9 | 250 | 1,497 | +| src\components\normalform\modalform\mkCheckbox | 2 | 36 | 0 | 9 | 45 | +| src\components\normalform\modalform\mkInput | 2 | 50 | 4 | 18 | 72 | +| src\components\normalform\modalform\mkNumberInput | 2 | 46 | 1 | 16 | 63 | +| src\components\normalform\modalform\mkRadio | 2 | 74 | 0 | 20 | 94 | +| src\components\normalform\modalform\mkSelect | 2 | 114 | 0 | 26 | 140 | +| src\components\normalform\modalform\mkTable | 2 | 478 | 3 | 68 | 549 | +| src\components\normalform\modalform\styleInput | 2 | 125 | 0 | 31 | 156 | +| src\components\paste | 2 | 63 | 0 | 10 | 73 | +| src\components\qrcode | 2 | 57 | 0 | 9 | 66 | +| src\components\querylog | 1 | 62 | 6 | 15 | 83 | +| src\components\sidemenu | 2 | 228 | 10 | 23 | 261 | +| src\components\simpleform | 2 | 202 | 2 | 12 | 216 | +| src\components\tabview | 2 | 388 | 7 | 34 | 429 | +| src\components\video | 2 | 996 | 5 | 94 | 1,095 | +| src\locales | 8 | 536 | 0 | 0 | 536 | +| src\locales\en-US | 4 | 268 | 0 | 0 | 268 | +| src\locales\zh-CN | 4 | 268 | 0 | 0 | 268 | +| src\menu | 257 | 39,910 | 957 | 4,581 | 45,448 | +| src\menu\bgcontroller | 2 | 161 | 3 | 25 | 189 | +| src\menu\components | 188 | 30,299 | 760 | 3,537 | 34,596 | +| src\menu\components\card | 33 | 5,983 | 182 | 765 | 6,930 | +| src\menu\components\card\balcony | 3 | 480 | 12 | 54 | 546 | +| src\menu\components\card\cardcellcomponent | 11 | 2,180 | 83 | 223 | 2,486 | +| src\menu\components\card\cardcellcomponent\dragaction | 6 | 523 | 8 | 64 | 595 | +| src\menu\components\card\cardcellcomponent\dragaction\mkProgress | 2 | 31 | 1 | 12 | 44 | +| src\menu\components\card\cardcellcomponent\elementform | 2 | 516 | 9 | 34 | 559 | +| src\menu\components\card\cardcomponent | 3 | 603 | 12 | 72 | 687 | +| src\menu\components\card\cardsimplecomponent | 9 | 672 | 18 | 92 | 782 | +| src\menu\components\card\cardsimplecomponent\node-wrap | 6 | 235 | 3 | 34 | 272 | +| src\menu\components\card\cardsimplecomponent\node-wrap\menus | 4 | 158 | 3 | 21 | 182 | +| src\menu\components\card\cardsimplecomponent\node-wrap\menus\columnform | 2 | 85 | 2 | 8 | 95 | +| src\menu\components\card\data-card | 3 | 1,004 | 31 | 133 | 1,168 | +| src\menu\components\card\prop-card | 2 | 488 | 12 | 92 | 592 | +| src\menu\components\card\table-card | 2 | 556 | 14 | 99 | 669 | +| src\menu\components\carousel | 5 | 832 | 27 | 136 | 995 | +| src\menu\components\carousel\data-card | 3 | 443 | 15 | 63 | 521 | +| src\menu\components\carousel\prop-card | 2 | 389 | 12 | 73 | 474 | +| src\menu\components\chart | 25 | 6,177 | 170 | 615 | 6,962 | +| src\menu\components\chart\antv-bar | 5 | 2,413 | 76 | 218 | 2,707 | +| src\menu\components\chart\antv-bar\chartcompile | 3 | 1,153 | 56 | 60 | 1,269 | +| src\menu\components\chart\antv-dashboard | 5 | 1,101 | 24 | 105 | 1,230 | +| src\menu\components\chart\antv-dashboard\chartcompile | 3 | 581 | 17 | 40 | 638 | +| src\menu\components\chart\antv-pie | 5 | 1,327 | 20 | 136 | 1,483 | +| src\menu\components\chart\antv-pie\chartcompile | 3 | 684 | 14 | 41 | 739 | +| src\menu\components\chart\antv-scatter | 5 | 861 | 20 | 88 | 969 | +| src\menu\components\chart\antv-scatter\chartcompile | 3 | 460 | 10 | 27 | 497 | +| src\menu\components\chart\chart-custom | 5 | 475 | 30 | 68 | 573 | +| src\menu\components\chart\chart-custom\chartcompile | 3 | 185 | 24 | 21 | 230 | +| src\menu\components\code | 7 | 450 | 19 | 71 | 540 | +| src\menu\components\code\sandbox | 7 | 450 | 19 | 71 | 540 | +| src\menu\components\code\sandbox\codecontent | 2 | 91 | 7 | 16 | 114 | +| src\menu\components\code\sandbox\editorcode | 2 | 113 | 0 | 18 | 131 | +| src\menu\components\editor | 5 | 374 | 9 | 52 | 435 | +| src\menu\components\editor\braft-editor | 5 | 374 | 9 | 52 | 435 | +| src\menu\components\editor\braft-editor\editorcontent | 2 | 85 | 0 | 15 | 100 | +| src\menu\components\form | 14 | 2,729 | 73 | 318 | 3,120 | +| src\menu\components\form\dragtitle | 4 | 307 | 3 | 27 | 337 | +| src\menu\components\form\formaction | 5 | 906 | 31 | 74 | 1,011 | +| src\menu\components\form\formaction\actionform | 2 | 372 | 8 | 29 | 409 | +| src\menu\components\form\normal-form | 3 | 804 | 21 | 110 | 935 | +| src\menu\components\form\tab-form | 2 | 712 | 18 | 107 | 837 | +| src\menu\components\group | 8 | 613 | 8 | 96 | 717 | +| src\menu\components\group\groupcomponents | 3 | 243 | 0 | 34 | 277 | +| src\menu\components\group\normal-group | 3 | 287 | 7 | 43 | 337 | +| src\menu\components\group\paste | 2 | 83 | 1 | 19 | 103 | +| src\menu\components\module | 3 | 230 | 22 | 37 | 289 | +| src\menu\components\module\voucher | 3 | 230 | 22 | 37 | 289 | +| src\menu\components\search | 8 | 882 | 29 | 102 | 1,013 | +| src\menu\components\search\main-search | 8 | 882 | 29 | 102 | 1,013 | +| src\menu\components\search\main-search\dategroup | 2 | 63 | 0 | 7 | 70 | +| src\menu\components\search\main-search\dragsearch | 3 | 224 | 0 | 27 | 251 | +| src\menu\components\share | 43 | 5,016 | 100 | 556 | 5,672 | +| src\menu\components\share\actioncomponent | 8 | 2,318 | 59 | 220 | 2,597 | +| src\menu\components\share\actioncomponent\actionform | 2 | 753 | 10 | 93 | 856 | +| src\menu\components\share\actioncomponent\dragaction | 3 | 198 | 0 | 34 | 232 | +| src\menu\components\share\clockcomponent | 4 | 158 | 1 | 20 | 179 | +| src\menu\components\share\clockcomponent\settingform | 2 | 98 | 1 | 9 | 108 | +| src\menu\components\share\copycomponent | 2 | 39 | 0 | 9 | 48 | +| src\menu\components\share\logcomponent | 2 | 135 | 0 | 17 | 152 | +| src\menu\components\share\markcomponent | 4 | 523 | 1 | 36 | 560 | +| src\menu\components\share\markcomponent\markform | 2 | 141 | 1 | 6 | 148 | +| src\menu\components\share\mobPagination | 2 | 55 | 0 | 3 | 58 | +| src\menu\components\share\normalform | 2 | 180 | 2 | 13 | 195 | +| src\menu\components\share\normalheader | 2 | 113 | 3 | 21 | 137 | +| src\menu\components\share\pastecomponent | 2 | 208 | 0 | 34 | 242 | +| src\menu\components\share\searchcomponent | 5 | 495 | 28 | 76 | 599 | +| src\menu\components\share\searchcomponent\dragsearch | 3 | 185 | 0 | 26 | 211 | +| src\menu\components\share\sourcecomponent | 4 | 383 | 0 | 42 | 425 | +| src\menu\components\share\sourcecomponent\inputform | 2 | 247 | 0 | 26 | 273 | +| src\menu\components\share\styleInput | 2 | 123 | 3 | 26 | 152 | +| src\menu\components\share\usercomponent | 4 | 286 | 3 | 39 | 328 | +| src\menu\components\share\usercomponent\settingform | 2 | 73 | 2 | 13 | 88 | +| src\menu\components\table | 22 | 5,164 | 71 | 534 | 5,769 | +| src\menu\components\table\edit-table | 14 | 3,026 | 44 | 319 | 3,389 | +| src\menu\components\table\edit-table\columns | 11 | 2,472 | 30 | 253 | 2,755 | +| src\menu\components\table\edit-table\columns\editColumn | 3 | 701 | 5 | 39 | 745 | +| src\menu\components\table\edit-table\columns\tableIn | 6 | 1,137 | 17 | 119 | 1,273 | +| src\menu\components\table\edit-table\columns\tableIn\customscript | 2 | 297 | 8 | 43 | 348 | +| src\menu\components\table\edit-table\columns\tableIn\uniqueform | 2 | 117 | 1 | 12 | 130 | +| src\menu\components\table\normal-table | 8 | 2,138 | 27 | 215 | 2,380 | +| src\menu\components\table\normal-table\columns | 5 | 1,424 | 13 | 133 | 1,570 | +| src\menu\components\table\normal-table\columns\editColumn | 3 | 787 | 5 | 39 | 831 | +| src\menu\components\tabs | 9 | 1,172 | 29 | 174 | 1,375 | +| src\menu\components\tabs\antv-tabs | 4 | 776 | 28 | 109 | 913 | +| src\menu\components\tabs\paste | 2 | 120 | 1 | 29 | 150 | +| src\menu\components\tabs\tabcomponents | 3 | 276 | 0 | 36 | 312 | +| src\menu\components\timeline | 3 | 348 | 9 | 42 | 399 | +| src\menu\components\timeline\normal-timeline | 3 | 348 | 9 | 42 | 399 | +| src\menu\components\tree | 3 | 329 | 12 | 39 | 380 | +| src\menu\components\tree\antd-tree | 3 | 329 | 12 | 39 | 380 | +| src\menu\datasource | 11 | 2,020 | 27 | 220 | 2,267 | +| src\menu\datasource\verifycard | 9 | 1,742 | 27 | 184 | 1,953 | +| src\menu\datasource\verifycard\columnform | 2 | 120 | 1 | 8 | 129 | +| src\menu\datasource\verifycard\customscript | 2 | 272 | 1 | 31 | 304 | +| src\menu\datasource\verifycard\settingform | 2 | 485 | 2 | 31 | 518 | +| src\menu\header | 2 | 111 | 0 | 9 | 120 | +| src\menu\menushell | 3 | 280 | 0 | 35 | 315 | +| src\menu\modalconfig | 3 | 838 | 39 | 80 | 957 | +| src\menu\modulesource | 5 | 204 | 1 | 25 | 230 | +| src\menu\modulesource\dragsource | 2 | 54 | 0 | 7 | 61 | +| src\menu\padcontroller | 2 | 90 | 3 | 12 | 105 | +| src\menu\pastecontroller | 2 | 102 | 1 | 26 | 129 | +| src\menu\picturecontroller | 6 | 663 | 1 | 55 | 719 | +| src\menu\picturecontroller\editform | 2 | 176 | 1 | 10 | 187 | +| src\menu\picturecontroller\video | 2 | 74 | 0 | 8 | 82 | +| src\menu\popview | 4 | 877 | 10 | 95 | 982 | +| src\menu\popview\menuform | 2 | 123 | 3 | 11 | 137 | +| src\menu\replaceField | 4 | 703 | 6 | 76 | 785 | +| src\menu\replaceField\settingform | 2 | 209 | 2 | 21 | 232 | +| src\menu\stylecombcontrolbutton | 2 | 176 | 3 | 28 | 207 | +| src\menu\stylecombcontroller | 4 | 815 | 36 | 78 | 929 | +| src\menu\stylecombcontroller\styleInput | 2 | 132 | 3 | 30 | 165 | +| src\menu\stylecontroller | 4 | 1,038 | 54 | 102 | 1,194 | +| src\menu\stylecontroller\styleInput | 2 | 138 | 3 | 31 | 172 | +| src\menu\sysinterface | 9 | 1,159 | 10 | 125 | 1,294 | +| src\menu\sysinterface\settingform | 7 | 950 | 10 | 98 | 1,058 | +| src\menu\sysinterface\settingform\baseform | 2 | 258 | 1 | 18 | 277 | +| src\menu\sysinterface\settingform\simplescript | 2 | 446 | 0 | 50 | 496 | +| src\menu\urlfieldcomponent | 4 | 208 | 2 | 33 | 243 | +| src\menu\urlfieldcomponent\settingform | 2 | 70 | 2 | 11 | 83 | +| src\menu\versions | 2 | 166 | 1 | 20 | 187 | +| src\mob | 66 | 7,225 | 266 | 818 | 8,309 | +| src\mob\colorsketch | 2 | 144 | 0 | 18 | 162 | +| src\mob\components | 32 | 3,624 | 148 | 449 | 4,221 | +| src\mob\components\formdragelement | 3 | 589 | 2 | 42 | 633 | +| src\mob\components\menubar | 6 | 659 | 22 | 89 | 770 | +| src\mob\components\menubar\normal-menubar | 6 | 659 | 22 | 89 | 770 | +| src\mob\components\menubar\normal-menubar\menucomponent | 3 | 317 | 7 | 33 | 357 | +| src\mob\components\navbar | 10 | 705 | 33 | 94 | 832 | +| src\mob\components\navbar\normal-navbar | 10 | 705 | 33 | 94 | 832 | +| src\mob\components\navbar\normal-navbar\menus | 7 | 477 | 24 | 61 | 562 | +| src\mob\components\navbar\normal-navbar\menus\drags | 3 | 106 | 1 | 16 | 123 | +| src\mob\components\navbar\normal-navbar\menus\menuform | 2 | 223 | 1 | 18 | 242 | +| src\mob\components\search | 3 | 287 | 12 | 29 | 328 | +| src\mob\components\search\single-search | 3 | 287 | 12 | 29 | 328 | +| src\mob\components\tabs | 7 | 943 | 59 | 147 | 1,149 | +| src\mob\components\tabs\antv-tabs | 4 | 676 | 51 | 111 | 838 | +| src\mob\components\tabs\tabcomponents | 3 | 267 | 8 | 36 | 311 | +| src\mob\components\topbar | 3 | 441 | 20 | 48 | 509 | +| src\mob\components\topbar\normal-navbar | 3 | 441 | 20 | 48 | 509 | +| src\mob\header | 2 | 91 | 0 | 7 | 98 | +| src\mob\mobshell | 3 | 362 | 4 | 40 | 406 | +| src\mob\modalconfig | 6 | 956 | 40 | 97 | 1,093 | +| src\mob\modalconfig\pastecomponent | 2 | 62 | 1 | 14 | 77 | +| src\mob\modulesource | 5 | 198 | 3 | 24 | 225 | +| src\mob\modulesource\dragsource | 2 | 54 | 0 | 7 | 61 | +| src\mob\searchconfig | 16 | 1,850 | 71 | 183 | 2,104 | +| src\mob\searchconfig\groupdragelement | 3 | 136 | 0 | 21 | 157 | +| src\mob\searchconfig\groupform | 2 | 88 | 1 | 10 | 99 | +| src\mob\searchconfig\pastecomponent | 2 | 46 | 1 | 11 | 58 | +| src\mob\searchconfig\searchdragelement | 3 | 394 | 23 | 37 | 454 | +| src\mob\searchconfig\settingform | 2 | 253 | 1 | 13 | 267 | +| src\pc | 41 | 3,702 | 105 | 461 | 4,268 | +| src\pc\bgcontroller | 2 | 229 | 6 | 31 | 266 | +| src\pc\components | 19 | 2,263 | 91 | 278 | 2,632 | +| src\pc\components\login | 4 | 616 | 80 | 61 | 757 | +| src\pc\components\login\normal-login | 4 | 616 | 80 | 61 | 757 | +| src\pc\components\navbar | 15 | 1,647 | 11 | 217 | 1,875 | +| src\pc\components\navbar\normal-navbar | 15 | 1,647 | 11 | 217 | 1,875 | +| src\pc\components\navbar\normal-navbar\linksetting | 6 | 361 | 1 | 58 | 420 | +| src\pc\components\navbar\normal-navbar\linksetting\linkform | 2 | 147 | 1 | 18 | 166 | +| src\pc\components\navbar\normal-navbar\linksetting\linktable | 2 | 152 | 0 | 29 | 181 | +| src\pc\components\navbar\normal-navbar\menusetting | 6 | 814 | 1 | 116 | 931 | +| src\pc\components\navbar\normal-navbar\menusetting\menuform | 2 | 190 | 1 | 18 | 209 | +| src\pc\components\navbar\normal-navbar\menusetting\menutable | 2 | 561 | 0 | 87 | 648 | +| src\pc\createview | 4 | 323 | 1 | 38 | 362 | +| src\pc\createview\settingform | 2 | 119 | 1 | 11 | 131 | +| src\pc\menushell | 3 | 316 | 3 | 40 | 359 | +| src\pc\modulesource | 5 | 205 | 1 | 24 | 230 | +| src\pc\modulesource\dragsource | 2 | 54 | 0 | 7 | 61 | +| src\pc\quotecomponent | 4 | 195 | 1 | 26 | 222 | +| src\pc\quotecomponent\settingform | 2 | 76 | 1 | 10 | 87 | +| src\pc\transfer | 4 | 171 | 2 | 24 | 197 | +| src\pc\transfer\settingform | 2 | 58 | 2 | 9 | 69 | +| src\router | 1 | 100 | 1 | 13 | 114 | +| src\store | 5 | 180 | 35 | 24 | 239 | +| src\tabviews | 187 | 42,159 | 1,723 | 5,982 | 49,864 | +| src\tabviews\calendar | 2 | 512 | 33 | 87 | 632 | +| src\tabviews\commontable | 2 | 1,178 | 60 | 157 | 1,395 | +| src\tabviews\custom | 67 | 16,421 | 525 | 2,404 | 19,350 | +| src\tabviews\custom\components | 65 | 15,324 | 496 | 2,255 | 18,075 | +| src\tabviews\custom\components\card | 13 | 3,123 | 70 | 473 | 3,666 | +| src\tabviews\custom\components\card\balcony | 2 | 360 | 9 | 73 | 442 | +| src\tabviews\custom\components\card\cardItem | 2 | 211 | 6 | 35 | 252 | +| src\tabviews\custom\components\card\cardcellList | 3 | 882 | 16 | 102 | 1,000 | +| src\tabviews\custom\components\card\data-card | 2 | 812 | 12 | 111 | 935 | +| src\tabviews\custom\components\card\prop-card | 2 | 411 | 9 | 75 | 495 | +| src\tabviews\custom\components\card\table-card | 2 | 447 | 18 | 77 | 542 | +| src\tabviews\custom\components\carousel | 6 | 666 | 24 | 117 | 807 | +| src\tabviews\custom\components\carousel\cardItem | 2 | 132 | 6 | 22 | 160 | +| src\tabviews\custom\components\carousel\data-card | 2 | 273 | 9 | 47 | 329 | +| src\tabviews\custom\components\carousel\prop-card | 2 | 261 | 9 | 48 | 318 | +| src\tabviews\custom\components\chart | 12 | 4,141 | 136 | 596 | 4,873 | +| src\tabviews\custom\components\chart\antv-bar-line | 3 | 1,651 | 52 | 234 | 1,937 | +| src\tabviews\custom\components\chart\antv-dashboard | 2 | 634 | 13 | 82 | 729 | +| src\tabviews\custom\components\chart\antv-pie | 2 | 999 | 16 | 141 | 1,156 | +| src\tabviews\custom\components\chart\antv-scatter | 3 | 498 | 29 | 75 | 602 | +| src\tabviews\custom\components\chart\custom-chart | 2 | 359 | 26 | 64 | 449 | +| src\tabviews\custom\components\code | 2 | 219 | 4 | 36 | 259 | +| src\tabviews\custom\components\code\sand-box | 2 | 219 | 4 | 36 | 259 | +| src\tabviews\custom\components\editor | 2 | 196 | 3 | 34 | 233 | +| src\tabviews\custom\components\editor\braft-editor | 2 | 196 | 3 | 34 | 233 | +| src\tabviews\custom\components\form | 4 | 806 | 22 | 138 | 966 | +| src\tabviews\custom\components\form\normal-form | 2 | 430 | 11 | 75 | 516 | +| src\tabviews\custom\components\form\tab-form | 2 | 376 | 11 | 63 | 450 | +| src\tabviews\custom\components\group | 2 | 328 | 5 | 38 | 371 | +| src\tabviews\custom\components\group\normal-group | 2 | 328 | 5 | 38 | 371 | +| src\tabviews\custom\components\module | 4 | 980 | 53 | 151 | 1,184 | +| src\tabviews\custom\components\module\voucher | 4 | 980 | 53 | 151 | 1,184 | +| src\tabviews\custom\components\module\voucher\voucherTable | 2 | 825 | 48 | 124 | 997 | +| src\tabviews\custom\components\share | 8 | 1,458 | 37 | 207 | 1,702 | +| src\tabviews\custom\components\share\braftContent | 2 | 72 | 0 | 12 | 84 | +| src\tabviews\custom\components\share\normalTable | 2 | 1,008 | 29 | 154 | 1,191 | +| src\tabviews\custom\components\share\normalheader | 2 | 90 | 3 | 13 | 106 | +| src\tabviews\custom\components\share\tabtransfer | 2 | 288 | 5 | 28 | 321 | +| src\tabviews\custom\components\table | 6 | 2,414 | 97 | 304 | 2,815 | +| src\tabviews\custom\components\table\edit-table | 4 | 1,728 | 59 | 223 | 2,010 | +| src\tabviews\custom\components\table\edit-table\normalTable | 2 | 1,191 | 24 | 164 | 1,379 | +| src\tabviews\custom\components\table\normal-table | 2 | 686 | 38 | 81 | 805 | +| src\tabviews\custom\components\tabs | 2 | 137 | 3 | 27 | 167 | +| src\tabviews\custom\components\tabs\antv-tabs | 2 | 137 | 3 | 27 | 167 | +| src\tabviews\custom\components\timeline | 2 | 358 | 22 | 57 | 437 | +| src\tabviews\custom\components\timeline\normal-timeline | 2 | 358 | 22 | 57 | 437 | +| src\tabviews\custom\components\tree | 2 | 498 | 20 | 77 | 595 | +| src\tabviews\custom\components\tree\antd-tree | 2 | 498 | 20 | 77 | 595 | +| src\tabviews\formtab | 6 | 1,650 | 69 | 224 | 1,943 | +| src\tabviews\formtab\actionList | 2 | 308 | 32 | 47 | 387 | +| src\tabviews\formtab\formgroup | 2 | 686 | 4 | 82 | 772 | +| src\tabviews\home | 4 | 570 | 0 | 20 | 590 | +| src\tabviews\home\defaulthome | 2 | 474 | 0 | 8 | 482 | +| src\tabviews\iframe | 1 | 37 | 3 | 10 | 50 | +| src\tabviews\rolemanage | 2 | 917 | 61 | 114 | 1,092 | +| src\tabviews\scriptmanage | 5 | 690 | 67 | 84 | 841 | +| src\tabviews\scriptmanage\actionList | 2 | 262 | 32 | 36 | 330 | +| src\tabviews\subtable | 2 | 1,004 | 56 | 143 | 1,203 | +| src\tabviews\subtabtable | 2 | 816 | 47 | 122 | 985 | +| src\tabviews\tabmanage | 6 | 747 | 5 | 80 | 832 | +| src\tabviews\tabmanage\mutilform | 2 | 137 | 1 | 8 | 146 | +| src\tabviews\tabmanage\transferform | 2 | 41 | 0 | 9 | 50 | +| src\tabviews\treepage | 2 | 711 | 29 | 96 | 836 | +| src\tabviews\verupmanage | 7 | 1,767 | 140 | 236 | 2,143 | +| src\tabviews\verupmanage\actionList | 2 | 682 | 51 | 102 | 835 | +| src\tabviews\verupmanage\subtabtable | 2 | 441 | 43 | 64 | 548 | +| src\tabviews\zshare | 79 | 15,139 | 628 | 2,205 | 17,972 | +| src\tabviews\zshare\actionList | 21 | 5,654 | 478 | 876 | 7,008 | +| src\tabviews\zshare\actionList\changeuserbutton | 2 | 240 | 10 | 37 | 287 | +| src\tabviews\zshare\actionList\excelInbutton | 4 | 556 | 34 | 80 | 670 | +| src\tabviews\zshare\actionList\excelInbutton\excelin | 2 | 102 | 5 | 18 | 125 | +| src\tabviews\zshare\actionList\exceloutbutton | 2 | 807 | 47 | 137 | 991 | +| src\tabviews\zshare\actionList\newpagebutton | 2 | 252 | 7 | 34 | 293 | +| src\tabviews\zshare\actionList\normalbutton | 2 | 1,808 | 85 | 273 | 2,166 | +| src\tabviews\zshare\actionList\popupbutton | 2 | 363 | 13 | 43 | 419 | +| src\tabviews\zshare\actionList\printbutton | 2 | 1,184 | 271 | 216 | 1,671 | +| src\tabviews\zshare\actionList\tabbutton | 2 | 225 | 6 | 36 | 267 | +| src\tabviews\zshare\automatic | 2 | 186 | 3 | 39 | 228 | +| src\tabviews\zshare\calendar | 2 | 556 | 1 | 50 | 607 | +| src\tabviews\zshare\cardcomponent | 3 | 1,023 | 31 | 130 | 1,184 | +| src\tabviews\zshare\chartcomponent | 3 | 1,064 | 46 | 154 | 1,264 | +| src\tabviews\zshare\fileupload | 2 | 445 | 4 | 73 | 522 | +| src\tabviews\zshare\mutilform | 22 | 1,907 | 30 | 322 | 2,259 | +| src\tabviews\zshare\mutilform\mkCheckCard | 2 | 284 | 1 | 37 | 322 | +| src\tabviews\zshare\mutilform\mkCheckbox | 2 | 30 | 0 | 8 | 38 | +| src\tabviews\zshare\mutilform\mkColor | 2 | 89 | 0 | 12 | 101 | +| src\tabviews\zshare\mutilform\mkDatePicker | 2 | 68 | 3 | 17 | 88 | +| src\tabviews\zshare\mutilform\mkInput | 2 | 79 | 3 | 18 | 100 | +| src\tabviews\zshare\mutilform\mkNumberInput | 2 | 61 | 1 | 17 | 79 | +| src\tabviews\zshare\mutilform\mkRadio | 2 | 120 | 0 | 27 | 147 | +| src\tabviews\zshare\mutilform\mkSelect | 2 | 182 | 0 | 30 | 212 | +| src\tabviews\zshare\mutilform\mkSwitch | 2 | 33 | 0 | 9 | 42 | +| src\tabviews\zshare\mutilform\mkTextArea | 2 | 75 | 0 | 18 | 93 | +| src\tabviews\zshare\normalTable | 2 | 1,461 | 13 | 189 | 1,663 | +| src\tabviews\zshare\pageMessage | 2 | 336 | 5 | 47 | 388 | +| src\tabviews\zshare\settingcomponent | 4 | 896 | 2 | 104 | 1,002 | +| src\tabviews\zshare\settingcomponent\editTable | 2 | 357 | 0 | 32 | 389 | +| src\tabviews\zshare\topSearch | 16 | 1,611 | 15 | 221 | 1,847 | +| src\tabviews\zshare\topSearch\advanceform | 2 | 140 | 1 | 16 | 157 | +| src\tabviews\zshare\topSearch\dategroup | 6 | 546 | 0 | 56 | 602 | +| src\tabviews\zshare\topSearch\dategroup\quarterpicker | 2 | 175 | 0 | 19 | 194 | +| src\tabviews\zshare\topSearch\dategroup\yearpicker | 2 | 151 | 0 | 19 | 170 | +| src\tabviews\zshare\topSearch\mkDatePicker | 2 | 73 | 3 | 16 | 92 | +| src\tabviews\zshare\topSearch\mkInput | 2 | 14 | 0 | 5 | 19 | +| src\tabviews\zshare\topSearch\mkSelect | 2 | 97 | 0 | 25 | 122 | +| src\templates | 241 | 45,591 | 1,096 | 4,258 | 50,945 | +| src\templates\calendarconfig | 11 | 1,648 | 108 | 167 | 1,923 | +| src\templates\calendarconfig\calcomponent | 4 | 265 | 11 | 20 | 296 | +| src\templates\calendarconfig\calcomponent\calendarform | 2 | 151 | 2 | 5 | 158 | +| src\templates\calendarconfig\tabcomponent | 4 | 377 | 19 | 41 | 437 | +| src\templates\calendarconfig\tabcomponent\tabform | 2 | 202 | 7 | 23 | 232 | +| src\templates\comtableconfig | 5 | 1,962 | 65 | 169 | 2,196 | +| src\templates\comtableconfig\menuform | 2 | 239 | 0 | 16 | 255 | +| src\templates\formtabconfig | 16 | 3,762 | 72 | 354 | 4,188 | +| src\templates\formtabconfig\actionform | 2 | 442 | 1 | 33 | 476 | +| src\templates\formtabconfig\dragelement | 5 | 349 | 1 | 42 | 392 | +| src\templates\formtabconfig\groupform | 2 | 111 | 3 | 17 | 131 | +| src\templates\formtabconfig\settingform | 2 | 340 | 1 | 26 | 367 | +| src\templates\formtabconfig\transferform | 2 | 67 | 0 | 12 | 79 | +| src\templates\menuconfig | 22 | 3,038 | 44 | 207 | 3,289 | +| src\templates\menuconfig\editfirstmenu | 8 | 875 | 9 | 60 | 944 | +| src\templates\menuconfig\editfirstmenu\dragelement | 4 | 178 | 0 | 19 | 197 | +| src\templates\menuconfig\editfirstmenu\menuform | 2 | 240 | 2 | 15 | 257 | +| src\templates\menuconfig\editsecmenu | 2 | 520 | 2 | 22 | 544 | +| src\templates\menuconfig\editthdmenu | 6 | 1,304 | 31 | 99 | 1,434 | +| src\templates\menuconfig\editthdmenu\menuform | 2 | 156 | 2 | 14 | 172 | +| src\templates\menuconfig\editthdmenu\preview | 2 | 90 | 0 | 7 | 97 | +| src\templates\menuconfig\menuelement | 4 | 185 | 0 | 15 | 200 | +| src\templates\menuconfig\menuform | 2 | 154 | 2 | 11 | 167 | +| src\templates\modalconfig | 17 | 2,283 | 52 | 201 | 2,536 | +| src\templates\modalconfig\checkCard | 2 | 107 | 0 | 11 | 118 | +| src\templates\modalconfig\dragelement | 4 | 407 | 1 | 39 | 447 | +| src\templates\modalconfig\editcard | 2 | 152 | 0 | 13 | 165 | +| src\templates\modalconfig\menuform | 2 | 91 | 1 | 6 | 98 | +| src\templates\modalconfig\settingform | 2 | 292 | 7 | 15 | 314 | +| src\templates\modalconfig\transferform | 2 | 67 | 0 | 12 | 79 | +| src\templates\sharecomponent | 105 | 17,703 | 400 | 1,874 | 19,977 | +| src\templates\sharecomponent\actioncomponent | 23 | 4,735 | 89 | 507 | 5,331 | +| src\templates\sharecomponent\actioncomponent\actionform | 2 | 645 | 4 | 81 | 730 | +| src\templates\sharecomponent\actioncomponent\dragaction | 3 | 216 | 1 | 34 | 251 | +| src\templates\sharecomponent\actioncomponent\verifyexcelin | 8 | 1,516 | 18 | 147 | 1,681 | +| src\templates\sharecomponent\actioncomponent\verifyexcelin\columnform | 2 | 174 | 1 | 10 | 185 | +| src\templates\sharecomponent\actioncomponent\verifyexcelin\customscript | 2 | 309 | 8 | 46 | 363 | +| src\templates\sharecomponent\actioncomponent\verifyexcelin\uniqueform | 2 | 117 | 1 | 12 | 130 | +| src\templates\sharecomponent\actioncomponent\verifyexcelout | 4 | 751 | 6 | 68 | 825 | +| src\templates\sharecomponent\actioncomponent\verifyexcelout\columnform | 2 | 99 | 1 | 6 | 106 | +| src\templates\sharecomponent\actioncomponent\verifyprint | 4 | 748 | 1 | 63 | 812 | +| src\templates\sharecomponent\actioncomponent\verifyprint\editable | 2 | 264 | 0 | 26 | 290 | +| src\templates\sharecomponent\cardcomponent | 7 | 1,050 | 3 | 108 | 1,161 | +| src\templates\sharecomponent\cardcomponent\carddetailform | 2 | 277 | 2 | 24 | 303 | +| src\templates\sharecomponent\cardcomponent\dragdetail | 3 | 145 | 0 | 16 | 161 | +| src\templates\sharecomponent\chartcomponent | 4 | 1,071 | 0 | 161 | 1,232 | +| src\templates\sharecomponent\chartcomponent\chartcompile | 2 | 530 | 0 | 59 | 589 | +| src\templates\sharecomponent\chartgroupcomponent | 7 | 925 | 29 | 99 | 1,053 | +| src\templates\sharecomponent\chartgroupcomponent\chartform | 2 | 530 | 2 | 33 | 565 | +| src\templates\sharecomponent\chartgroupcomponent\dragchartview | 3 | 140 | 0 | 24 | 164 | +| src\templates\sharecomponent\columncomponent | 15 | 2,168 | 64 | 212 | 2,444 | +| src\templates\sharecomponent\columncomponent\colspanform | 2 | 196 | 2 | 14 | 212 | +| src\templates\sharecomponent\columncomponent\columnform | 2 | 351 | 4 | 30 | 385 | +| src\templates\sharecomponent\columncomponent\dragcolumn | 3 | 234 | 2 | 29 | 265 | +| src\templates\sharecomponent\columncomponent\gridbtnform | 2 | 194 | 2 | 9 | 205 | +| src\templates\sharecomponent\columncomponent\markcolumn | 4 | 606 | 16 | 57 | 679 | +| src\templates\sharecomponent\columncomponent\markcolumn\markform | 2 | 335 | 16 | 27 | 378 | +| src\templates\sharecomponent\fieldscomponent | 4 | 494 | 10 | 55 | 559 | +| src\templates\sharecomponent\fieldscomponent\editcard | 2 | 214 | 0 | 26 | 240 | +| src\templates\sharecomponent\searchcomponent | 11 | 1,709 | 42 | 191 | 1,942 | +| src\templates\sharecomponent\searchcomponent\dategroup | 2 | 63 | 0 | 7 | 70 | +| src\templates\sharecomponent\searchcomponent\dragsearch | 3 | 259 | 0 | 36 | 295 | +| src\templates\sharecomponent\searchcomponent\searcheditable | 2 | 326 | 0 | 26 | 352 | +| src\templates\sharecomponent\searchcomponent\searchform | 2 | 686 | 3 | 69 | 758 | +| src\templates\sharecomponent\settingcalcomponent | 9 | 1,164 | 34 | 120 | 1,318 | +| src\templates\sharecomponent\settingcalcomponent\verifycard | 7 | 999 | 34 | 99 | 1,132 | +| src\templates\sharecomponent\settingcalcomponent\verifycard\columnform | 2 | 133 | 1 | 12 | 146 | +| src\templates\sharecomponent\settingcalcomponent\verifycard\settingform | 2 | 314 | 16 | 25 | 355 | +| src\templates\sharecomponent\settingcomponent | 9 | 2,224 | 48 | 190 | 2,462 | +| src\templates\sharecomponent\settingcomponent\settingform | 7 | 2,023 | 33 | 160 | 2,216 | +| src\templates\sharecomponent\settingcomponent\settingform\datasource | 2 | 821 | 3 | 28 | 852 | +| src\templates\sharecomponent\settingcomponent\settingform\simplescript | 2 | 485 | 0 | 53 | 538 | +| src\templates\sharecomponent\tablecomponent | 2 | 275 | 15 | 35 | 325 | +| src\templates\sharecomponent\tabscomponent | 7 | 893 | 44 | 111 | 1,048 | +| src\templates\sharecomponent\tabscomponent\tabdragelement | 3 | 160 | 0 | 27 | 187 | +| src\templates\sharecomponent\tabscomponent\tabform | 2 | 302 | 9 | 30 | 341 | +| src\templates\sharecomponent\treesettingcomponent | 7 | 995 | 22 | 85 | 1,102 | +| src\templates\sharecomponent\treesettingcomponent\settingform | 5 | 864 | 13 | 71 | 948 | +| src\templates\sharecomponent\treesettingcomponent\settingform\datasource | 2 | 494 | 3 | 27 | 524 | +| src\templates\subtableconfig | 5 | 1,657 | 55 | 146 | 1,858 | +| src\templates\subtableconfig\menuform | 2 | 106 | 0 | 11 | 117 | +| src\templates\treepageconfig | 3 | 995 | 52 | 96 | 1,143 | +| src\templates\zshare | 57 | 12,543 | 248 | 1,044 | 13,835 | +| src\templates\zshare\basetransferform | 2 | 43 | 0 | 9 | 52 | +| src\templates\zshare\codemirror | 2 | 228 | 2 | 20 | 250 | +| src\templates\zshare\createfunc | 2 | 179 | 11 | 25 | 215 | +| src\templates\zshare\createinterface | 4 | 1,065 | 51 | 170 | 1,286 | +| src\templates\zshare\createinterface\mutilform | 2 | 132 | 2 | 12 | 146 | +| src\templates\zshare\customscript | 2 | 423 | 0 | 50 | 473 | +| src\templates\zshare\dragsource | 2 | 21 | 0 | 1 | 22 | +| src\templates\zshare\editTable | 4 | 740 | 1 | 100 | 841 | +| src\templates\zshare\editTable\cusSwitch | 2 | 82 | 1 | 11 | 94 | +| src\templates\zshare\editcard | 2 | 191 | 0 | 18 | 209 | +| src\templates\zshare\editcomponent | 2 | 211 | 6 | 25 | 242 | +| src\templates\zshare\menuform | 2 | 122 | 1 | 11 | 134 | +| src\templates\zshare\modalform | 8 | 1,778 | 6 | 213 | 1,997 | +| src\templates\zshare\modalform\datatable | 2 | 471 | 1 | 56 | 528 | +| src\templates\zshare\modalform\fieldtable | 2 | 129 | 0 | 17 | 146 | +| src\templates\zshare\modalform\modaleditable | 2 | 481 | 0 | 57 | 538 | +| src\templates\zshare\pasteform | 2 | 90 | 1 | 10 | 101 | +| src\templates\zshare\transferform | 2 | 141 | 0 | 24 | 165 | +| src\templates\zshare\unattended | 4 | 237 | 2 | 21 | 260 | +| src\templates\zshare\unattended\settingform | 2 | 163 | 2 | 9 | 174 | +| src\templates\zshare\verifycard | 16 | 3,563 | 35 | 308 | 3,906 | +| src\templates\zshare\verifycard\billcodeform | 2 | 347 | 5 | 30 | 382 | +| src\templates\zshare\verifycard\callbackcustomscript | 2 | 264 | 8 | 34 | 306 | +| src\templates\zshare\verifycard\contrastform | 2 | 134 | 1 | 6 | 141 | +| src\templates\zshare\verifycard\customform | 2 | 232 | 3 | 24 | 259 | +| src\templates\zshare\verifycard\customscript | 2 | 292 | 10 | 36 | 338 | +| src\templates\zshare\verifycard\uniqueform | 2 | 117 | 1 | 10 | 128 | +| src\templates\zshare\verifycard\voucherform | 2 | 243 | 1 | 26 | 270 | +| src\utils | 10 | 4,461 | 425 | 637 | 5,523 | +| src\views | 86 | 18,910 | 322 | 1,978 | 21,210 | +| src\views\404 | 2 | 37 | 0 | 4 | 41 | +| src\views\appcheck | 4 | 407 | 6 | 37 | 450 | +| src\views\appcheck\header | 2 | 82 | 0 | 6 | 88 | +| src\views\appmanage | 12 | 1,922 | 98 | 186 | 2,206 | +| src\views\appmanage\header | 2 | 82 | 0 | 6 | 88 | +| src\views\appmanage\mutilform | 2 | 76 | 7 | 7 | 90 | +| src\views\appmanage\scriptform | 2 | 227 | 6 | 31 | 264 | +| src\views\appmanage\submutilform | 2 | 253 | 69 | 15 | 337 | +| src\views\appmanage\transform | 2 | 76 | 7 | 7 | 90 | +| src\views\billprint | 2 | 608 | 16 | 99 | 723 | +| src\views\design | 9 | 1,648 | 40 | 159 | 1,847 | +| src\views\design\header | 4 | 986 | 14 | 114 | 1,114 | +| src\views\design\header\versions | 2 | 420 | 0 | 59 | 479 | +| src\views\design\sidemenu | 3 | 615 | 26 | 39 | 680 | +| src\views\imdesign | 5 | 941 | 12 | 97 | 1,050 | +| src\views\imdesign\menuform | 2 | 92 | 2 | 8 | 102 | +| src\views\interface | 13 | 1,505 | 20 | 181 | 1,706 | +| src\views\interface\api | 1 | 142 | 11 | 22 | 175 | +| src\views\interface\header | 2 | 97 | 0 | 12 | 109 | +| src\views\interface\history | 2 | 362 | 3 | 39 | 404 | +| src\views\interface\workspace | 6 | 875 | 6 | 103 | 984 | +| src\views\interface\workspace\editTable | 2 | 304 | 0 | 32 | 336 | +| src\views\interface\workspace\request | 2 | 413 | 3 | 56 | 472 | +| src\views\login | 4 | 1,569 | 44 | 171 | 1,784 | +| src\views\main | 2 | 40 | 0 | 7 | 47 | +| src\views\menudesign | 8 | 1,936 | 12 | 181 | 2,129 | +| src\views\menudesign\homeform | 2 | 161 | 2 | 19 | 182 | +| src\views\menudesign\menuform | 2 | 363 | 5 | 26 | 394 | +| src\views\menudesign\printmenuform | 2 | 236 | 1 | 21 | 258 | +| src\views\mobdesign | 4 | 2,104 | 8 | 235 | 2,347 | +| src\views\mobdesign\menuform | 2 | 264 | 3 | 13 | 280 | +| src\views\pay | 2 | 404 | 14 | 38 | 456 | +| src\views\pcdesign | 4 | 2,026 | 7 | 226 | 2,259 | +| src\views\pcdesign\menuform | 2 | 184 | 3 | 13 | 200 | +| src\views\printTemplate | 9 | 2,641 | 39 | 216 | 2,896 | +| src\views\printTemplate\dragelement | 3 | 53 | 0 | 10 | 63 | +| src\views\printTemplate\mutilform | 2 | 339 | 9 | 32 | 380 | +| src\views\rolemanage | 4 | 984 | 4 | 120 | 1,108 | +| src\views\rolemanage\header | 2 | 84 | 0 | 6 | 90 | +| src\views\sso | 2 | 138 | 2 | 21 | 161 | ++--------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ + +Files ++--------------------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+ +| filename | language | code | comment | blank | total | ++--------------------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+ +| e:\project\pc-plat\README.md | Markdown | 39 | 0 | 34 | 73 | +| e:\project\pc-plat\config\env.js | JavaScript | 54 | 29 | 11 | 94 | +| e:\project\pc-plat\config\jest\cssTransform.js | JavaScript | 9 | 3 | 3 | 15 | +| e:\project\pc-plat\config\jest\fileTransform.js | JavaScript | 31 | 4 | 6 | 41 | +| e:\project\pc-plat\config\modules.js | JavaScript | 51 | 21 | 17 | 89 | +| e:\project\pc-plat\config\paths.js | JavaScript | 65 | 11 | 15 | 91 | +| e:\project\pc-plat\config\pnpTs.js | JavaScript | 31 | 1 | 4 | 36 | +| e:\project\pc-plat\config\webpack.config.js | JavaScript | 430 | 213 | 18 | 661 | +| e:\project\pc-plat\config\webpackDevServer.config.js | JavaScript | 40 | 59 | 6 | 105 | +| e:\project\pc-plat\package-lock.json | JSON | 21,413 | 0 | 1 | 21,414 | +| e:\project\pc-plat\package.json | JSON | 201 | 0 | 1 | 202 | +| e:\project\pc-plat\public\admin.html | HTML | 38 | 0 | 1 | 39 | +| e:\project\pc-plat\public\index.html | HTML | 23 | 1 | 1 | 25 | +| e:\project\pc-plat\public\manifest.json | JSON | 9 | 0 | 1 | 10 | +| e:\project\pc-plat\public\options.json | JSON | 17 | 0 | 0 | 17 | +| e:\project\pc-plat\scripts\build.js | JavaScript | 152 | 24 | 19 | 195 | +| e:\project\pc-plat\scripts\start.js | JavaScript | 112 | 20 | 14 | 146 | +| e:\project\pc-plat\scripts\test.js | JavaScript | 36 | 7 | 11 | 54 | +| e:\project\pc-plat\src\api\cacheutils.js | JavaScript | 288 | 67 | 45 | 400 | +| e:\project\pc-plat\src\api\index.js | JavaScript | 671 | 105 | 104 | 880 | +| e:\project\pc-plat\src\assets\css\action.scss | SCSS | 181 | 13 | 22 | 216 | +| e:\project\pc-plat\src\assets\css\iconfont.css | CSS | 33 | 0 | 23 | 56 | +| e:\project\pc-plat\src\assets\css\main.scss | SCSS | 394 | 23 | 29 | 446 | +| e:\project\pc-plat\src\assets\css\minkeicon.css | CSS | 43 | 5 | 4 | 52 | +| e:\project\pc-plat\src\assets\css\table.scss | SCSS | 814 | 30 | 28 | 872 | +| e:\project\pc-plat\src\assets\css\viewstyle.scss | SCSS | 586 | 27 | 10 | 623 | +| e:\project\pc-plat\src\assets\font\iconfont.js | JavaScript | 1 | 0 | 0 | 1 | +| e:\project\pc-plat\src\assets\font\iconfont.svg | XML | 38 | 3 | 43 | 84 | +| e:\project\pc-plat\src\assets\font\minkeicon.svg | XML | 18 | 0 | 0 | 18 | +| e:\project\pc-plat\src\assets\mobimg\slider-thumb.svg | XML | 14 | 0 | 1 | 15 | +| e:\project\pc-plat\src\components\404\index.jsx | JavaScript React | 19 | 0 | 2 | 21 | +| e:\project\pc-plat\src\components\404\index.scss | SCSS | 13 | 0 | 1 | 14 | +| e:\project\pc-plat\src\components\Image\index.jsx | JavaScript React | 46 | 0 | 10 | 56 | +| e:\project\pc-plat\src\components\Image\index.scss | SCSS | 12 | 0 | 2 | 14 | +| e:\project\pc-plat\src\components\barcode\index.jsx | JavaScript React | 53 | 0 | 12 | 65 | +| e:\project\pc-plat\src\components\barcode\index.scss | SCSS | 15 | 0 | 1 | 16 | +| e:\project\pc-plat\src\components\breadview\index.jsx | JavaScript React | 176 | 5 | 26 | 207 | +| e:\project\pc-plat\src\components\breadview\index.scss | SCSS | 46 | 0 | 1 | 47 | +| e:\project\pc-plat\src\components\editor\index.jsx | JavaScript React | 213 | 1 | 34 | 248 | +| e:\project\pc-plat\src\components\editor\index.scss | SCSS | 29 | 0 | 1 | 30 | +| e:\project\pc-plat\src\components\header\index.jsx | JavaScript React | 788 | 15 | 87 | 890 | +| e:\project\pc-plat\src\components\header\index.scss | SCSS | 216 | 0 | 6 | 222 | +| e:\project\pc-plat\src\components\header\loginform.jsx | JavaScript React | 114 | 1 | 15 | 130 | +| e:\project\pc-plat\src\components\header\resetpwd\index.jsx | JavaScript React | 140 | 2 | 16 | 158 | +| e:\project\pc-plat\src\components\imgScale\index.jsx | JavaScript React | 217 | 0 | 54 | 271 | +| e:\project\pc-plat\src\components\imgScale\index.scss | SCSS | 233 | 0 | 6 | 239 | +| e:\project\pc-plat\src\components\loading\index.jsx | JavaScript React | 10 | 0 | 2 | 12 | +| e:\project\pc-plat\src\components\lostsvg\index.jsx | JavaScript React | 72 | 0 | 2 | 74 | +| e:\project\pc-plat\src\components\mk-icon\index.jsx | JavaScript React | 465 | 0 | 9 | 474 | +| e:\project\pc-plat\src\components\mk-icon\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\mkIcon\index.jsx | JavaScript React | 71 | 1 | 13 | 85 | +| e:\project\pc-plat\src\components\mkIcon\index.scss | SCSS | 67 | 0 | 2 | 69 | +| e:\project\pc-plat\src\components\mkProgress\index.jsx | JavaScript React | 32 | 1 | 10 | 43 | +| e:\project\pc-plat\src\components\mkProgress\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\mutilform\index.jsx | JavaScript React | 196 | 2 | 13 | 211 | +| e:\project\pc-plat\src\components\mutilform\index.scss | SCSS | 17 | 0 | 1 | 18 | +| e:\project\pc-plat\src\components\normalform\index.jsx | JavaScript React | 80 | 0 | 12 | 92 | +| e:\project\pc-plat\src\components\normalform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\normalform\modalform\index.jsx | JavaScript React | 258 | 1 | 59 | 318 | +| e:\project\pc-plat\src\components\normalform\modalform\index.scss | SCSS | 57 | 0 | 3 | 60 | +| e:\project\pc-plat\src\components\normalform\modalform\mkCheckbox\index.jsx | JavaScript React | 36 | 0 | 8 | 44 | +| e:\project\pc-plat\src\components\normalform\modalform\mkCheckbox\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\normalform\modalform\mkInput\index.jsx | JavaScript React | 50 | 4 | 17 | 71 | +| e:\project\pc-plat\src\components\normalform\modalform\mkInput\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\normalform\modalform\mkNumberInput\index.jsx | JavaScript React | 46 | 1 | 15 | 62 | +| e:\project\pc-plat\src\components\normalform\modalform\mkNumberInput\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\normalform\modalform\mkRadio\index.jsx | JavaScript React | 74 | 0 | 19 | 93 | +| e:\project\pc-plat\src\components\normalform\modalform\mkRadio\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\normalform\modalform\mkSelect\index.jsx | JavaScript React | 114 | 0 | 25 | 139 | +| e:\project\pc-plat\src\components\normalform\modalform\mkSelect\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\normalform\modalform\mkTable\index.jsx | JavaScript React | 374 | 3 | 63 | 440 | +| e:\project\pc-plat\src\components\normalform\modalform\mkTable\index.scss | SCSS | 104 | 0 | 5 | 109 | +| e:\project\pc-plat\src\components\normalform\modalform\styleInput\index.jsx | JavaScript React | 114 | 0 | 30 | 144 | +| e:\project\pc-plat\src\components\normalform\modalform\styleInput\index.scss | SCSS | 11 | 0 | 1 | 12 | +| e:\project\pc-plat\src\components\paste\index.jsx | JavaScript React | 63 | 0 | 9 | 72 | +| e:\project\pc-plat\src\components\paste\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\components\qrcode\index.jsx | JavaScript React | 49 | 0 | 9 | 58 | +| e:\project\pc-plat\src\components\qrcode\index.scss | SCSS | 8 | 0 | 0 | 8 | +| e:\project\pc-plat\src\components\querylog\index.jsx | JavaScript React | 62 | 6 | 15 | 83 | +| e:\project\pc-plat\src\components\sidemenu\index.jsx | JavaScript React | 116 | 2 | 20 | 138 | +| e:\project\pc-plat\src\components\sidemenu\index.scss | SCSS | 112 | 8 | 3 | 123 | +| e:\project\pc-plat\src\components\simpleform\index.jsx | JavaScript React | 185 | 2 | 11 | 198 | +| e:\project\pc-plat\src\components\simpleform\index.scss | SCSS | 17 | 0 | 1 | 18 | +| e:\project\pc-plat\src\components\tabview\index.jsx | JavaScript React | 284 | 7 | 34 | 325 | +| e:\project\pc-plat\src\components\tabview\index.scss | SCSS | 104 | 0 | 0 | 104 | +| e:\project\pc-plat\src\components\video\index.jsx | JavaScript React | 40 | 0 | 6 | 46 | +| e:\project\pc-plat\src\components\video\index.scss | SCSS | 956 | 5 | 88 | 1,049 | +| e:\project\pc-plat\src\index.js | JavaScript | 216 | 3 | 31 | 250 | +| e:\project\pc-plat\src\locales\en-US\login.js | JavaScript | 19 | 0 | 0 | 19 | +| e:\project\pc-plat\src\locales\en-US\main.js | JavaScript | 49 | 0 | 0 | 49 | +| e:\project\pc-plat\src\locales\en-US\mob.js | JavaScript | 29 | 0 | 0 | 29 | +| e:\project\pc-plat\src\locales\en-US\model.js | JavaScript | 171 | 0 | 0 | 171 | +| e:\project\pc-plat\src\locales\zh-CN\login.js | JavaScript | 19 | 0 | 0 | 19 | +| e:\project\pc-plat\src\locales\zh-CN\main.js | JavaScript | 49 | 0 | 0 | 49 | +| e:\project\pc-plat\src\locales\zh-CN\mob.js | JavaScript | 29 | 0 | 0 | 29 | +| e:\project\pc-plat\src\locales\zh-CN\model.js | JavaScript | 171 | 0 | 0 | 171 | +| e:\project\pc-plat\src\menu\bgcontroller\index.jsx | JavaScript React | 119 | 3 | 24 | 146 | +| e:\project\pc-plat\src\menu\bgcontroller\index.scss | SCSS | 42 | 0 | 1 | 43 | +| e:\project\pc-plat\src\menu\components\card\balcony\index.jsx | JavaScript React | 185 | 8 | 45 | 238 | +| e:\project\pc-plat\src\menu\components\card\balcony\index.scss | SCSS | 83 | 0 | 5 | 88 | +| e:\project\pc-plat\src\menu\components\card\balcony\options.jsx | JavaScript React | 212 | 4 | 4 | 220 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\action.jsx | JavaScript React | 68 | 0 | 9 | 77 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\card.jsx | JavaScript React | 165 | 7 | 18 | 190 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\index.jsx | JavaScript React | 135 | 0 | 24 | 159 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\index.scss | SCSS | 124 | 0 | 1 | 125 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\mkProgress\index.jsx | JavaScript React | 31 | 1 | 11 | 43 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\dragaction\mkProgress\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\elementform\index.jsx | JavaScript React | 488 | 9 | 33 | 530 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\elementform\index.scss | SCSS | 28 | 0 | 1 | 29 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\formconfig.jsx | JavaScript React | 502 | 28 | 9 | 539 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\index.jsx | JavaScript React | 608 | 38 | 114 | 760 | +| e:\project\pc-plat\src\menu\components\card\cardcellcomponent\index.scss | SCSS | 31 | 0 | 2 | 33 | +| e:\project\pc-plat\src\menu\components\card\cardcomponent\index.jsx | JavaScript React | 325 | 9 | 67 | 401 | +| e:\project\pc-plat\src\menu\components\card\cardcomponent\index.scss | SCSS | 48 | 0 | 0 | 48 | +| e:\project\pc-plat\src\menu\components\card\cardcomponent\options.jsx | JavaScript React | 230 | 3 | 5 | 238 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\index.jsx | JavaScript React | 192 | 9 | 49 | 250 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\index.jsx | JavaScript React | 57 | 0 | 12 | 69 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\index.scss | SCSS | 20 | 0 | 1 | 21 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\menus\columnform\index.jsx | JavaScript React | 85 | 2 | 7 | 94 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\menus\columnform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\menus\index.jsx | JavaScript React | 73 | 1 | 12 | 86 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\node-wrap\menus\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\card\cardsimplecomponent\options.jsx | JavaScript React | 245 | 6 | 8 | 259 | +| e:\project\pc-plat\src\menu\components\card\data-card\index.jsx | JavaScript React | 554 | 14 | 119 | 687 | +| e:\project\pc-plat\src\menu\components\card\data-card\index.scss | SCSS | 123 | 0 | 7 | 130 | +| e:\project\pc-plat\src\menu\components\card\data-card\options.jsx | JavaScript React | 327 | 17 | 7 | 351 | +| e:\project\pc-plat\src\menu\components\card\prop-card\index.jsx | JavaScript React | 409 | 12 | 87 | 508 | +| e:\project\pc-plat\src\menu\components\card\prop-card\index.scss | SCSS | 79 | 0 | 5 | 84 | +| e:\project\pc-plat\src\menu\components\card\table-card\index.jsx | JavaScript React | 465 | 14 | 93 | 572 | +| e:\project\pc-plat\src\menu\components\card\table-card\index.scss | SCSS | 91 | 0 | 6 | 97 | +| e:\project\pc-plat\src\menu\components\carousel\data-card\index.jsx | JavaScript React | 233 | 12 | 54 | 299 | +| e:\project\pc-plat\src\menu\components\carousel\data-card\index.scss | SCSS | 82 | 0 | 6 | 88 | +| e:\project\pc-plat\src\menu\components\carousel\data-card\options.jsx | JavaScript React | 128 | 3 | 3 | 134 | +| e:\project\pc-plat\src\menu\components\carousel\prop-card\index.jsx | JavaScript React | 301 | 12 | 68 | 381 | +| e:\project\pc-plat\src\menu\components\carousel\prop-card\index.scss | SCSS | 88 | 0 | 5 | 93 | +| e:\project\pc-plat\src\menu\components\chart\antv-bar\chartcompile\formconfig.jsx | JavaScript React | 451 | 56 | 10 | 517 | +| e:\project\pc-plat\src\menu\components\chart\antv-bar\chartcompile\index.jsx | JavaScript React | 667 | 0 | 48 | 715 | +| e:\project\pc-plat\src\menu\components\chart\antv-bar\chartcompile\index.scss | SCSS | 35 | 0 | 2 | 37 | +| e:\project\pc-plat\src\menu\components\chart\antv-bar\index.jsx | JavaScript React | 1,196 | 20 | 150 | 1,366 | +| e:\project\pc-plat\src\menu\components\chart\antv-bar\index.scss | SCSS | 64 | 0 | 8 | 72 | +| e:\project\pc-plat\src\menu\components\chart\antv-dashboard\chartcompile\formconfig.jsx | JavaScript React | 242 | 17 | 7 | 266 | +| e:\project\pc-plat\src\menu\components\chart\antv-dashboard\chartcompile\index.jsx | JavaScript React | 304 | 0 | 31 | 335 | +| e:\project\pc-plat\src\menu\components\chart\antv-dashboard\chartcompile\index.scss | SCSS | 35 | 0 | 2 | 37 | +| e:\project\pc-plat\src\menu\components\chart\antv-dashboard\index.jsx | JavaScript React | 476 | 7 | 59 | 542 | +| e:\project\pc-plat\src\menu\components\chart\antv-dashboard\index.scss | SCSS | 44 | 0 | 6 | 50 | +| e:\project\pc-plat\src\menu\components\chart\antv-pie\chartcompile\formconfig.jsx | JavaScript React | 327 | 14 | 6 | 347 | +| e:\project\pc-plat\src\menu\components\chart\antv-pie\chartcompile\index.jsx | JavaScript React | 327 | 0 | 33 | 360 | +| e:\project\pc-plat\src\menu\components\chart\antv-pie\chartcompile\index.scss | SCSS | 30 | 0 | 2 | 32 | +| e:\project\pc-plat\src\menu\components\chart\antv-pie\index.jsx | JavaScript React | 599 | 6 | 89 | 694 | +| e:\project\pc-plat\src\menu\components\chart\antv-pie\index.scss | SCSS | 44 | 0 | 6 | 50 | +| e:\project\pc-plat\src\menu\components\chart\antv-scatter\chartcompile\formconfig.jsx | JavaScript React | 177 | 10 | 4 | 191 | +| e:\project\pc-plat\src\menu\components\chart\antv-scatter\chartcompile\index.jsx | JavaScript React | 251 | 0 | 21 | 272 | +| e:\project\pc-plat\src\menu\components\chart\antv-scatter\chartcompile\index.scss | SCSS | 32 | 0 | 2 | 34 | +| e:\project\pc-plat\src\menu\components\chart\antv-scatter\index.jsx | JavaScript React | 337 | 10 | 53 | 400 | +| e:\project\pc-plat\src\menu\components\chart\antv-scatter\index.scss | SCSS | 64 | 0 | 8 | 72 | +| e:\project\pc-plat\src\menu\components\chart\chart-custom\chartcompile\formconfig.jsx | JavaScript React | 72 | 24 | 2 | 98 | +| e:\project\pc-plat\src\menu\components\chart\chart-custom\chartcompile\index.jsx | JavaScript React | 103 | 0 | 17 | 120 | +| e:\project\pc-plat\src\menu\components\chart\chart-custom\chartcompile\index.scss | SCSS | 10 | 0 | 2 | 12 | +| e:\project\pc-plat\src\menu\components\chart\chart-custom\index.jsx | JavaScript React | 226 | 6 | 39 | 271 | +| e:\project\pc-plat\src\menu\components\chart\chart-custom\index.scss | SCSS | 64 | 0 | 8 | 72 | +| e:\project\pc-plat\src\menu\components\code\sandbox\codecontent\index.jsx | JavaScript React | 65 | 7 | 16 | 88 | +| e:\project\pc-plat\src\menu\components\code\sandbox\codecontent\index.scss | SCSS | 26 | 0 | 0 | 26 | +| e:\project\pc-plat\src\menu\components\code\sandbox\editorcode\index.jsx | JavaScript React | 95 | 0 | 16 | 111 | +| e:\project\pc-plat\src\menu\components\code\sandbox\editorcode\index.scss | SCSS | 18 | 0 | 2 | 20 | +| e:\project\pc-plat\src\menu\components\code\sandbox\index.jsx | JavaScript React | 155 | 9 | 32 | 196 | +| e:\project\pc-plat\src\menu\components\code\sandbox\index.scss | SCSS | 35 | 0 | 2 | 37 | +| e:\project\pc-plat\src\menu\components\code\sandbox\options.jsx | JavaScript React | 56 | 3 | 3 | 62 | +| e:\project\pc-plat\src\menu\components\editor\braft-editor\editorcontent\index.jsx | JavaScript React | 69 | 0 | 14 | 83 | +| e:\project\pc-plat\src\menu\components\editor\braft-editor\editorcontent\index.scss | SCSS | 16 | 0 | 1 | 17 | +| e:\project\pc-plat\src\menu\components\editor\braft-editor\index.jsx | JavaScript React | 156 | 6 | 32 | 194 | +| e:\project\pc-plat\src\menu\components\editor\braft-editor\index.scss | SCSS | 35 | 0 | 2 | 37 | +| e:\project\pc-plat\src\menu\components\editor\braft-editor\options.jsx | JavaScript React | 98 | 3 | 3 | 104 | +| e:\project\pc-plat\src\menu\components\form\dragtitle\card.jsx | JavaScript React | 76 | 0 | 13 | 89 | +| e:\project\pc-plat\src\menu\components\form\dragtitle\index.jsx | JavaScript React | 50 | 0 | 10 | 60 | +| e:\project\pc-plat\src\menu\components\form\dragtitle\index.scss | SCSS | 88 | 0 | 1 | 89 | +| e:\project\pc-plat\src\menu\components\form\dragtitle\options.jsx | JavaScript React | 93 | 3 | 3 | 99 | +| e:\project\pc-plat\src\menu\components\form\formaction\actionform\index.jsx | JavaScript React | 333 | 8 | 29 | 370 | +| e:\project\pc-plat\src\menu\components\form\formaction\actionform\index.scss | SCSS | 39 | 0 | 0 | 39 | +| e:\project\pc-plat\src\menu\components\form\formaction\formconfig.jsx | JavaScript React | 294 | 5 | 6 | 305 | +| e:\project\pc-plat\src\menu\components\form\formaction\index.jsx | JavaScript React | 224 | 18 | 37 | 279 | +| e:\project\pc-plat\src\menu\components\form\formaction\index.scss | SCSS | 16 | 0 | 2 | 18 | +| e:\project\pc-plat\src\menu\components\form\normal-form\index.jsx | JavaScript React | 622 | 18 | 104 | 744 | +| e:\project\pc-plat\src\menu\components\form\normal-form\index.scss | SCSS | 82 | 0 | 3 | 85 | +| e:\project\pc-plat\src\menu\components\form\normal-form\options.jsx | JavaScript React | 100 | 3 | 3 | 106 | +| e:\project\pc-plat\src\menu\components\form\tab-form\index.jsx | JavaScript React | 630 | 18 | 104 | 752 | +| e:\project\pc-plat\src\menu\components\form\tab-form\index.scss | SCSS | 82 | 0 | 3 | 85 | +| e:\project\pc-plat\src\menu\components\group\groupcomponents\card.jsx | JavaScript React | 99 | 0 | 10 | 109 | +| e:\project\pc-plat\src\menu\components\group\groupcomponents\index.jsx | JavaScript React | 132 | 0 | 22 | 154 | +| e:\project\pc-plat\src\menu\components\group\groupcomponents\index.scss | SCSS | 12 | 0 | 2 | 14 | +| e:\project\pc-plat\src\menu\components\group\normal-group\index.jsx | JavaScript React | 161 | 4 | 38 | 203 | +| e:\project\pc-plat\src\menu\components\group\normal-group\index.scss | SCSS | 39 | 0 | 2 | 41 | +| e:\project\pc-plat\src\menu\components\group\normal-group\options.jsx | JavaScript React | 87 | 3 | 3 | 93 | +| e:\project\pc-plat\src\menu\components\group\paste\index.jsx | JavaScript React | 83 | 1 | 18 | 102 | +| e:\project\pc-plat\src\menu\components\group\paste\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\module\voucher\index.jsx | JavaScript React | 123 | 12 | 29 | 164 | +| e:\project\pc-plat\src\menu\components\module\voucher\index.scss | SCSS | 39 | 0 | 3 | 42 | +| e:\project\pc-plat\src\menu\components\module\voucher\options.jsx | JavaScript React | 68 | 10 | 5 | 83 | +| e:\project\pc-plat\src\menu\components\search\main-search\dategroup\index.jsx | JavaScript React | 27 | 0 | 5 | 32 | +| e:\project\pc-plat\src\menu\components\search\main-search\dategroup\index.scss | SCSS | 36 | 0 | 2 | 38 | +| e:\project\pc-plat\src\menu\components\search\main-search\dragsearch\card.jsx | JavaScript React | 106 | 0 | 9 | 115 | +| e:\project\pc-plat\src\menu\components\search\main-search\dragsearch\index.jsx | JavaScript React | 112 | 0 | 17 | 129 | +| e:\project\pc-plat\src\menu\components\search\main-search\dragsearch\index.scss | SCSS | 6 | 0 | 1 | 7 | +| e:\project\pc-plat\src\menu\components\search\main-search\index.jsx | JavaScript React | 377 | 26 | 64 | 467 | +| e:\project\pc-plat\src\menu\components\search\main-search\index.scss | SCSS | 140 | 0 | 1 | 141 | +| e:\project\pc-plat\src\menu\components\search\main-search\options.jsx | JavaScript React | 78 | 3 | 3 | 84 | +| e:\project\pc-plat\src\menu\components\share\actioncomponent\actionform\index.jsx | JavaScript React | 714 | 10 | 93 | 817 | +| e:\project\pc-plat\src\menu\components\share\actioncomponent\actionform\index.scss | SCSS | 39 | 0 | 0 | 39 | +| e:\project\pc-plat\src\menu\components\share\actioncomponent\dragaction\card.jsx | JavaScript React | 92 | 0 | 9 | 101 | +| e:\project\pc-plat\src\menu\components\share\actioncomponent\dragaction\index.jsx | JavaScript React | 106 | 0 | 24 | 130 | +| e:\project\pc-plat\src\menu\components\share\actioncomponent\dragaction\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\share\actioncomponent\formconfig.jsx | JavaScript React | 849 | 11 | 16 | 876 | +| e:\project\pc-plat\src\menu\components\share\actioncomponent\index.jsx | JavaScript React | 439 | 38 | 74 | 551 | +| e:\project\pc-plat\src\menu\components\share\actioncomponent\index.scss | SCSS | 79 | 0 | 3 | 82 | +| e:\project\pc-plat\src\menu\components\share\clockcomponent\index.jsx | JavaScript React | 54 | 0 | 10 | 64 | +| e:\project\pc-plat\src\menu\components\share\clockcomponent\index.scss | SCSS | 6 | 0 | 1 | 7 | +| e:\project\pc-plat\src\menu\components\share\clockcomponent\settingform\index.jsx | JavaScript React | 98 | 1 | 8 | 107 | +| e:\project\pc-plat\src\menu\components\share\clockcomponent\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\share\copycomponent\index.jsx | JavaScript React | 39 | 0 | 8 | 47 | +| e:\project\pc-plat\src\menu\components\share\copycomponent\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\share\logcomponent\index.jsx | JavaScript React | 115 | 0 | 16 | 131 | +| e:\project\pc-plat\src\menu\components\share\logcomponent\index.scss | SCSS | 20 | 0 | 1 | 21 | +| e:\project\pc-plat\src\menu\components\share\markcomponent\index.jsx | JavaScript React | 327 | 0 | 26 | 353 | +| e:\project\pc-plat\src\menu\components\share\markcomponent\index.scss | SCSS | 55 | 0 | 4 | 59 | +| e:\project\pc-plat\src\menu\components\share\markcomponent\markform\index.jsx | JavaScript React | 124 | 1 | 6 | 131 | +| e:\project\pc-plat\src\menu\components\share\markcomponent\markform\index.scss | SCSS | 17 | 0 | 0 | 17 | +| e:\project\pc-plat\src\menu\components\share\mobPagination\index.jsx | JavaScript React | 24 | 0 | 3 | 27 | +| e:\project\pc-plat\src\menu\components\share\mobPagination\index.scss | SCSS | 31 | 0 | 0 | 31 | +| e:\project\pc-plat\src\menu\components\share\normalform\index.jsx | JavaScript React | 180 | 2 | 12 | 194 | +| e:\project\pc-plat\src\menu\components\share\normalform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\share\normalheader\index.jsx | JavaScript React | 73 | 3 | 20 | 96 | +| e:\project\pc-plat\src\menu\components\share\normalheader\index.scss | SCSS | 40 | 0 | 1 | 41 | +| e:\project\pc-plat\src\menu\components\share\pastecomponent\index.jsx | JavaScript React | 208 | 0 | 33 | 241 | +| e:\project\pc-plat\src\menu\components\share\pastecomponent\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\share\searchcomponent\dragsearch\card.jsx | JavaScript React | 102 | 0 | 9 | 111 | +| e:\project\pc-plat\src\menu\components\share\searchcomponent\dragsearch\index.jsx | JavaScript React | 83 | 0 | 16 | 99 | +| e:\project\pc-plat\src\menu\components\share\searchcomponent\dragsearch\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\share\searchcomponent\index.jsx | JavaScript React | 248 | 28 | 47 | 323 | +| e:\project\pc-plat\src\menu\components\share\searchcomponent\index.scss | SCSS | 62 | 0 | 3 | 65 | +| e:\project\pc-plat\src\menu\components\share\sourcecomponent\index.jsx | JavaScript React | 81 | 0 | 14 | 95 | +| e:\project\pc-plat\src\menu\components\share\sourcecomponent\index.scss | SCSS | 55 | 0 | 2 | 57 | +| e:\project\pc-plat\src\menu\components\share\sourcecomponent\inputform\index.jsx | JavaScript React | 188 | 0 | 25 | 213 | +| e:\project\pc-plat\src\menu\components\share\sourcecomponent\inputform\index.scss | SCSS | 59 | 0 | 1 | 60 | +| e:\project\pc-plat\src\menu\components\share\styleInput\index.jsx | JavaScript React | 112 | 3 | 25 | 140 | +| e:\project\pc-plat\src\menu\components\share\styleInput\index.scss | SCSS | 11 | 0 | 1 | 12 | +| e:\project\pc-plat\src\menu\components\share\usercomponent\index.jsx | JavaScript React | 207 | 1 | 25 | 233 | +| e:\project\pc-plat\src\menu\components\share\usercomponent\index.scss | SCSS | 6 | 0 | 1 | 7 | +| e:\project\pc-plat\src\menu\components\share\usercomponent\settingform\index.jsx | JavaScript React | 73 | 2 | 12 | 87 | +| e:\project\pc-plat\src\menu\components\share\usercomponent\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\editColumn\formconfig.jsx | JavaScript React | 318 | 4 | 7 | 329 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\editColumn\index.jsx | JavaScript React | 366 | 1 | 31 | 398 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\editColumn\index.scss | SCSS | 17 | 0 | 1 | 18 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\index.jsx | JavaScript React | 514 | 8 | 92 | 614 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\index.scss | SCSS | 120 | 0 | 3 | 123 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\customscript\index.jsx | JavaScript React | 297 | 8 | 42 | 347 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\customscript\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\index.jsx | JavaScript React | 643 | 8 | 64 | 715 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\index.scss | SCSS | 80 | 0 | 0 | 80 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\uniqueform\index.jsx | JavaScript React | 117 | 1 | 11 | 129 | +| e:\project\pc-plat\src\menu\components\table\edit-table\columns\tableIn\uniqueform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\table\edit-table\index.jsx | JavaScript React | 286 | 10 | 60 | 356 | +| e:\project\pc-plat\src\menu\components\table\edit-table\index.scss | SCSS | 78 | 0 | 3 | 81 | +| e:\project\pc-plat\src\menu\components\table\edit-table\options.jsx | JavaScript React | 190 | 4 | 3 | 197 | +| e:\project\pc-plat\src\menu\components\table\normal-table\columns\editColumn\formconfig.jsx | JavaScript React | 408 | 4 | 10 | 422 | +| e:\project\pc-plat\src\menu\components\table\normal-table\columns\editColumn\index.jsx | JavaScript React | 362 | 1 | 28 | 391 | +| e:\project\pc-plat\src\menu\components\table\normal-table\columns\editColumn\index.scss | SCSS | 17 | 0 | 1 | 18 | +| e:\project\pc-plat\src\menu\components\table\normal-table\columns\index.jsx | JavaScript React | 515 | 8 | 91 | 614 | +| e:\project\pc-plat\src\menu\components\table\normal-table\columns\index.scss | SCSS | 122 | 0 | 3 | 125 | +| e:\project\pc-plat\src\menu\components\table\normal-table\index.jsx | JavaScript React | 382 | 10 | 76 | 468 | +| e:\project\pc-plat\src\menu\components\table\normal-table\index.scss | SCSS | 78 | 0 | 3 | 81 | +| e:\project\pc-plat\src\menu\components\table\normal-table\options.jsx | JavaScript React | 254 | 4 | 3 | 261 | +| e:\project\pc-plat\src\menu\components\tabs\antv-tabs\dragabletabs.jsx | JavaScript React | 106 | 1 | 22 | 129 | +| e:\project\pc-plat\src\menu\components\tabs\antv-tabs\index.jsx | JavaScript React | 332 | 5 | 69 | 406 | +| e:\project\pc-plat\src\menu\components\tabs\antv-tabs\index.scss | SCSS | 132 | 0 | 9 | 141 | +| e:\project\pc-plat\src\menu\components\tabs\antv-tabs\options.jsx | JavaScript React | 206 | 22 | 9 | 237 | +| e:\project\pc-plat\src\menu\components\tabs\paste\index.jsx | JavaScript React | 120 | 1 | 28 | 149 | +| e:\project\pc-plat\src\menu\components\tabs\paste\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\components\tabs\tabcomponents\card.jsx | JavaScript React | 108 | 0 | 10 | 118 | +| e:\project\pc-plat\src\menu\components\tabs\tabcomponents\index.jsx | JavaScript React | 156 | 0 | 24 | 180 | +| e:\project\pc-plat\src\menu\components\tabs\tabcomponents\index.scss | SCSS | 12 | 0 | 2 | 14 | +| e:\project\pc-plat\src\menu\components\timeline\normal-timeline\index.jsx | JavaScript React | 160 | 6 | 34 | 200 | +| e:\project\pc-plat\src\menu\components\timeline\normal-timeline\index.scss | SCSS | 76 | 0 | 5 | 81 | +| e:\project\pc-plat\src\menu\components\timeline\normal-timeline\options.jsx | JavaScript React | 112 | 3 | 3 | 118 | +| e:\project\pc-plat\src\menu\components\tree\antd-tree\index.jsx | JavaScript React | 160 | 9 | 33 | 202 | +| e:\project\pc-plat\src\menu\components\tree\antd-tree\index.scss | SCSS | 39 | 0 | 3 | 42 | +| e:\project\pc-plat\src\menu\components\tree\antd-tree\options.jsx | JavaScript React | 130 | 3 | 3 | 136 | +| e:\project\pc-plat\src\menu\datasource\index.jsx | JavaScript React | 199 | 0 | 28 | 227 | +| e:\project\pc-plat\src\menu\datasource\index.scss | SCSS | 79 | 0 | 8 | 87 | +| e:\project\pc-plat\src\menu\datasource\verifycard\columnform\index.jsx | JavaScript React | 120 | 1 | 7 | 128 | +| e:\project\pc-plat\src\menu\datasource\verifycard\columnform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\datasource\verifycard\customscript\index.jsx | JavaScript React | 238 | 1 | 31 | 270 | +| e:\project\pc-plat\src\menu\datasource\verifycard\customscript\index.scss | SCSS | 34 | 0 | 0 | 34 | +| e:\project\pc-plat\src\menu\datasource\verifycard\index.jsx | JavaScript React | 606 | 7 | 88 | 701 | +| e:\project\pc-plat\src\menu\datasource\verifycard\index.scss | SCSS | 84 | 0 | 0 | 84 | +| e:\project\pc-plat\src\menu\datasource\verifycard\settingform\index.jsx | JavaScript React | 458 | 2 | 30 | 490 | +| e:\project\pc-plat\src\menu\datasource\verifycard\settingform\index.scss | SCSS | 27 | 0 | 1 | 28 | +| e:\project\pc-plat\src\menu\datasource\verifycard\utils.jsx | JavaScript React | 175 | 16 | 26 | 217 | +| e:\project\pc-plat\src\menu\header\index.jsx | JavaScript React | 28 | 0 | 6 | 34 | +| e:\project\pc-plat\src\menu\header\index.scss | SCSS | 83 | 0 | 3 | 86 | +| e:\project\pc-plat\src\menu\menushell\card.jsx | JavaScript React | 111 | 0 | 9 | 120 | +| e:\project\pc-plat\src\menu\menushell\index.jsx | JavaScript React | 149 | 0 | 23 | 172 | +| e:\project\pc-plat\src\menu\menushell\index.scss | SCSS | 20 | 0 | 3 | 23 | +| e:\project\pc-plat\src\menu\modalconfig\controller.jsx | JavaScript React | 49 | 3 | 12 | 64 | +| e:\project\pc-plat\src\menu\modalconfig\index.jsx | JavaScript React | 459 | 36 | 63 | 558 | +| e:\project\pc-plat\src\menu\modalconfig\index.scss | SCSS | 330 | 0 | 5 | 335 | +| e:\project\pc-plat\src\menu\modulesource\dragsource\index.jsx | JavaScript React | 14 | 0 | 1 | 15 | +| e:\project\pc-plat\src\menu\modulesource\dragsource\index.scss | SCSS | 40 | 0 | 6 | 46 | +| e:\project\pc-plat\src\menu\modulesource\index.jsx | JavaScript React | 82 | 0 | 14 | 96 | +| e:\project\pc-plat\src\menu\modulesource\index.scss | SCSS | 8 | 0 | 2 | 10 | +| e:\project\pc-plat\src\menu\modulesource\option.jsx | JavaScript React | 60 | 1 | 2 | 63 | +| e:\project\pc-plat\src\menu\padcontroller\index.jsx | JavaScript React | 81 | 3 | 11 | 95 | +| e:\project\pc-plat\src\menu\padcontroller\index.scss | SCSS | 9 | 0 | 1 | 10 | +| e:\project\pc-plat\src\menu\pastecontroller\index.jsx | JavaScript React | 102 | 1 | 25 | 128 | +| e:\project\pc-plat\src\menu\pastecontroller\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\picturecontroller\editform\index.jsx | JavaScript React | 162 | 1 | 10 | 173 | +| e:\project\pc-plat\src\menu\picturecontroller\editform\index.scss | SCSS | 14 | 0 | 0 | 14 | +| e:\project\pc-plat\src\menu\picturecontroller\index.jsx | JavaScript React | 325 | 0 | 37 | 362 | +| e:\project\pc-plat\src\menu\picturecontroller\index.scss | SCSS | 88 | 0 | 0 | 88 | +| e:\project\pc-plat\src\menu\picturecontroller\video\index.jsx | JavaScript React | 23 | 0 | 6 | 29 | +| e:\project\pc-plat\src\menu\picturecontroller\video\index.scss | SCSS | 51 | 0 | 2 | 53 | +| e:\project\pc-plat\src\menu\popview\index.jsx | JavaScript React | 597 | 7 | 79 | 683 | +| e:\project\pc-plat\src\menu\popview\index.scss | SCSS | 157 | 0 | 5 | 162 | +| e:\project\pc-plat\src\menu\popview\menuform\index.jsx | JavaScript React | 123 | 3 | 10 | 136 | +| e:\project\pc-plat\src\menu\popview\menuform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\replaceField\index.jsx | JavaScript React | 485 | 4 | 55 | 544 | +| e:\project\pc-plat\src\menu\replaceField\index.scss | SCSS | 9 | 0 | 0 | 9 | +| e:\project\pc-plat\src\menu\replaceField\settingform\index.jsx | JavaScript React | 209 | 2 | 20 | 231 | +| e:\project\pc-plat\src\menu\replaceField\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\stylecombcontrolbutton\index.jsx | JavaScript React | 128 | 3 | 26 | 157 | +| e:\project\pc-plat\src\menu\stylecombcontrolbutton\index.scss | SCSS | 48 | 0 | 2 | 50 | +| e:\project\pc-plat\src\menu\stylecombcontroller\index.jsx | JavaScript React | 499 | 33 | 42 | 574 | +| e:\project\pc-plat\src\menu\stylecombcontroller\index.scss | SCSS | 184 | 0 | 6 | 190 | +| e:\project\pc-plat\src\menu\stylecombcontroller\styleInput\index.jsx | JavaScript React | 121 | 3 | 29 | 153 | +| e:\project\pc-plat\src\menu\stylecombcontroller\styleInput\index.scss | SCSS | 11 | 0 | 1 | 12 | +| e:\project\pc-plat\src\menu\stylecontroller\index.jsx | JavaScript React | 704 | 51 | 65 | 820 | +| e:\project\pc-plat\src\menu\stylecontroller\index.scss | SCSS | 196 | 0 | 6 | 202 | +| e:\project\pc-plat\src\menu\stylecontroller\styleInput\index.jsx | JavaScript React | 127 | 3 | 30 | 160 | +| e:\project\pc-plat\src\menu\stylecontroller\styleInput\index.scss | SCSS | 11 | 0 | 1 | 12 | +| e:\project\pc-plat\src\menu\sysinterface\index.jsx | JavaScript React | 189 | 0 | 27 | 216 | +| e:\project\pc-plat\src\menu\sysinterface\index.scss | SCSS | 20 | 0 | 0 | 20 | +| e:\project\pc-plat\src\menu\sysinterface\settingform\baseform\index.jsx | JavaScript React | 242 | 1 | 17 | 260 | +| e:\project\pc-plat\src\menu\sysinterface\settingform\baseform\index.scss | SCSS | 16 | 0 | 1 | 17 | +| e:\project\pc-plat\src\menu\sysinterface\settingform\index.jsx | JavaScript React | 153 | 4 | 22 | 179 | +| e:\project\pc-plat\src\menu\sysinterface\settingform\index.scss | SCSS | 60 | 0 | 1 | 61 | +| e:\project\pc-plat\src\menu\sysinterface\settingform\simplescript\index.jsx | JavaScript React | 401 | 0 | 50 | 451 | +| e:\project\pc-plat\src\menu\sysinterface\settingform\simplescript\index.scss | SCSS | 45 | 0 | 0 | 45 | +| e:\project\pc-plat\src\menu\sysinterface\settingform\utils.jsx | JavaScript React | 33 | 5 | 7 | 45 | +| e:\project\pc-plat\src\menu\urlfieldcomponent\index.jsx | JavaScript React | 115 | 0 | 21 | 136 | +| e:\project\pc-plat\src\menu\urlfieldcomponent\index.scss | SCSS | 23 | 0 | 1 | 24 | +| e:\project\pc-plat\src\menu\urlfieldcomponent\settingform\index.jsx | JavaScript React | 70 | 2 | 10 | 82 | +| e:\project\pc-plat\src\menu\urlfieldcomponent\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\menu\versions\index.jsx | JavaScript React | 136 | 1 | 20 | 157 | +| e:\project\pc-plat\src\menu\versions\index.scss | SCSS | 30 | 0 | 0 | 30 | +| e:\project\pc-plat\src\mob\colorsketch\index.jsx | JavaScript React | 84 | 0 | 15 | 99 | +| e:\project\pc-plat\src\mob\colorsketch\index.scss | SCSS | 60 | 0 | 3 | 63 | +| e:\project\pc-plat\src\mob\components\formdragelement\card.jsx | JavaScript React | 194 | 0 | 14 | 208 | +| e:\project\pc-plat\src\mob\components\formdragelement\index.jsx | JavaScript React | 114 | 1 | 25 | 140 | +| e:\project\pc-plat\src\mob\components\formdragelement\index.scss | SCSS | 281 | 1 | 3 | 285 | +| e:\project\pc-plat\src\mob\components\menubar\normal-menubar\index.jsx | JavaScript React | 230 | 12 | 52 | 294 | +| e:\project\pc-plat\src\mob\components\menubar\normal-menubar\index.scss | SCSS | 69 | 0 | 3 | 72 | +| e:\project\pc-plat\src\mob\components\menubar\normal-menubar\menucomponent\index.jsx | JavaScript React | 137 | 3 | 29 | 169 | +| e:\project\pc-plat\src\mob\components\menubar\normal-menubar\menucomponent\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\mob\components\menubar\normal-menubar\menucomponent\options.jsx | JavaScript React | 180 | 4 | 3 | 187 | +| e:\project\pc-plat\src\mob\components\menubar\normal-menubar\options.jsx | JavaScript React | 43 | 3 | 1 | 47 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\index.jsx | JavaScript React | 122 | 6 | 29 | 157 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\index.scss | SCSS | 65 | 0 | 3 | 68 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\drags\card.jsx | JavaScript React | 58 | 0 | 7 | 65 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\drags\index.jsx | JavaScript React | 48 | 1 | 8 | 57 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\drags\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\index.jsx | JavaScript React | 148 | 22 | 26 | 196 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\menuform\index.jsx | JavaScript React | 207 | 1 | 17 | 225 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\menus\menuform\index.scss | SCSS | 16 | 0 | 1 | 17 | +| e:\project\pc-plat\src\mob\components\navbar\normal-navbar\options.jsx | JavaScript React | 41 | 3 | 1 | 45 | +| e:\project\pc-plat\src\mob\components\search\single-search\index.jsx | JavaScript React | 125 | 9 | 26 | 160 | +| e:\project\pc-plat\src\mob\components\search\single-search\index.scss | SCSS | 51 | 0 | 2 | 53 | +| e:\project\pc-plat\src\mob\components\search\single-search\options.jsx | JavaScript React | 111 | 3 | 1 | 115 | +| e:\project\pc-plat\src\mob\components\tabs\antv-tabs\dragabletabs.jsx | JavaScript React | 106 | 1 | 22 | 129 | +| e:\project\pc-plat\src\mob\components\tabs\antv-tabs\index.jsx | JavaScript React | 356 | 5 | 76 | 437 | +| e:\project\pc-plat\src\mob\components\tabs\antv-tabs\index.scss | SCSS | 123 | 0 | 8 | 131 | +| e:\project\pc-plat\src\mob\components\tabs\antv-tabs\options.jsx | JavaScript React | 91 | 45 | 5 | 141 | +| e:\project\pc-plat\src\mob\components\tabs\tabcomponents\card.jsx | JavaScript React | 105 | 0 | 10 | 115 | +| e:\project\pc-plat\src\mob\components\tabs\tabcomponents\index.jsx | JavaScript React | 150 | 8 | 24 | 182 | +| e:\project\pc-plat\src\mob\components\tabs\tabcomponents\index.scss | SCSS | 12 | 0 | 2 | 14 | +| e:\project\pc-plat\src\mob\components\topbar\normal-navbar\index.jsx | JavaScript React | 204 | 6 | 42 | 252 | +| e:\project\pc-plat\src\mob\components\topbar\normal-navbar\index.scss | SCSS | 88 | 0 | 2 | 90 | +| e:\project\pc-plat\src\mob\components\topbar\normal-navbar\options.jsx | JavaScript React | 149 | 14 | 4 | 167 | +| e:\project\pc-plat\src\mob\header\index.jsx | JavaScript React | 37 | 0 | 5 | 42 | +| e:\project\pc-plat\src\mob\header\index.scss | SCSS | 54 | 0 | 2 | 56 | +| e:\project\pc-plat\src\mob\mobshell\card.jsx | JavaScript React | 127 | 3 | 13 | 143 | +| e:\project\pc-plat\src\mob\mobshell\index.jsx | JavaScript React | 202 | 0 | 27 | 229 | +| e:\project\pc-plat\src\mob\mobshell\index.scss | SCSS | 33 | 1 | 0 | 34 | +| e:\project\pc-plat\src\mob\modalconfig\controller.jsx | JavaScript React | 49 | 3 | 12 | 64 | +| e:\project\pc-plat\src\mob\modalconfig\index.jsx | JavaScript React | 410 | 36 | 59 | 505 | +| e:\project\pc-plat\src\mob\modalconfig\index.scss | SCSS | 323 | 0 | 8 | 331 | +| e:\project\pc-plat\src\mob\modalconfig\pastecomponent\index.jsx | JavaScript React | 62 | 1 | 13 | 76 | +| e:\project\pc-plat\src\mob\modalconfig\pastecomponent\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\mob\modalconfig\source.jsx | JavaScript React | 112 | 0 | 4 | 116 | +| e:\project\pc-plat\src\mob\modulesource\dragsource\index.jsx | JavaScript React | 14 | 0 | 1 | 15 | +| e:\project\pc-plat\src\mob\modulesource\dragsource\index.scss | SCSS | 40 | 0 | 6 | 46 | +| e:\project\pc-plat\src\mob\modulesource\index.jsx | JavaScript React | 81 | 0 | 13 | 94 | +| e:\project\pc-plat\src\mob\modulesource\index.scss | SCSS | 8 | 0 | 2 | 10 | +| e:\project\pc-plat\src\mob\modulesource\option.jsx | JavaScript React | 55 | 3 | 2 | 60 | +| e:\project\pc-plat\src\mob\searchconfig\controller.jsx | JavaScript React | 46 | 3 | 13 | 62 | +| e:\project\pc-plat\src\mob\searchconfig\groupdragelement\card.jsx | JavaScript React | 56 | 0 | 8 | 64 | +| e:\project\pc-plat\src\mob\searchconfig\groupdragelement\index.jsx | JavaScript React | 53 | 0 | 12 | 65 | +| e:\project\pc-plat\src\mob\searchconfig\groupdragelement\index.scss | SCSS | 27 | 0 | 1 | 28 | +| e:\project\pc-plat\src\mob\searchconfig\groupform\index.jsx | JavaScript React | 78 | 1 | 10 | 89 | +| e:\project\pc-plat\src\mob\searchconfig\groupform\index.scss | SCSS | 10 | 0 | 0 | 10 | +| e:\project\pc-plat\src\mob\searchconfig\index.jsx | JavaScript React | 496 | 36 | 67 | 599 | +| e:\project\pc-plat\src\mob\searchconfig\index.scss | SCSS | 365 | 0 | 9 | 374 | +| e:\project\pc-plat\src\mob\searchconfig\pastecomponent\index.jsx | JavaScript React | 46 | 1 | 10 | 57 | +| e:\project\pc-plat\src\mob\searchconfig\pastecomponent\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\mob\searchconfig\searchdragelement\card.jsx | JavaScript React | 110 | 21 | 10 | 141 | +| e:\project\pc-plat\src\mob\searchconfig\searchdragelement\index.jsx | JavaScript React | 99 | 1 | 24 | 124 | +| e:\project\pc-plat\src\mob\searchconfig\searchdragelement\index.scss | SCSS | 185 | 1 | 3 | 189 | +| e:\project\pc-plat\src\mob\searchconfig\settingform\index.jsx | JavaScript React | 233 | 1 | 13 | 247 | +| e:\project\pc-plat\src\mob\searchconfig\settingform\index.scss | SCSS | 20 | 0 | 0 | 20 | +| e:\project\pc-plat\src\mob\searchconfig\source.jsx | JavaScript React | 26 | 6 | 2 | 34 | +| e:\project\pc-plat\src\pc\bgcontroller\index.jsx | JavaScript React | 210 | 6 | 30 | 246 | +| e:\project\pc-plat\src\pc\bgcontroller\index.scss | SCSS | 19 | 0 | 1 | 20 | +| e:\project\pc-plat\src\pc\components\login\normal-login\index.jsx | JavaScript React | 156 | 6 | 34 | 196 | +| e:\project\pc-plat\src\pc\components\login\normal-login\index.scss | SCSS | 182 | 3 | 5 | 190 | +| e:\project\pc-plat\src\pc\components\login\normal-login\loginform.jsx | JavaScript React | 162 | 4 | 18 | 184 | +| e:\project\pc-plat\src\pc\components\login\normal-login\options.jsx | JavaScript React | 116 | 67 | 4 | 187 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\index.jsx | JavaScript React | 206 | 6 | 35 | 247 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\index.scss | SCSS | 153 | 0 | 6 | 159 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\index.jsx | JavaScript React | 53 | 0 | 9 | 62 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\index.scss | SCSS | 9 | 0 | 2 | 11 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\linkform\index.jsx | JavaScript React | 147 | 1 | 17 | 165 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\linkform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\linktable\index.jsx | JavaScript React | 134 | 0 | 27 | 161 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\linksetting\linktable\index.scss | SCSS | 18 | 0 | 2 | 20 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\index.jsx | JavaScript React | 54 | 0 | 9 | 63 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\index.scss | SCSS | 9 | 0 | 2 | 11 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\menuform\index.jsx | JavaScript React | 190 | 1 | 17 | 208 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\menuform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\menutable\index.jsx | JavaScript React | 501 | 0 | 83 | 584 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\menusetting\menutable\index.scss | SCSS | 60 | 0 | 4 | 64 | +| e:\project\pc-plat\src\pc\components\navbar\normal-navbar\options.jsx | JavaScript React | 113 | 3 | 2 | 118 | +| e:\project\pc-plat\src\pc\createview\index.jsx | JavaScript React | 204 | 0 | 26 | 230 | +| e:\project\pc-plat\src\pc\createview\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\pc\createview\settingform\index.jsx | JavaScript React | 119 | 1 | 10 | 130 | +| e:\project\pc-plat\src\pc\createview\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\pc\menushell\card.jsx | JavaScript React | 130 | 3 | 12 | 145 | +| e:\project\pc-plat\src\pc\menushell\index.jsx | JavaScript React | 166 | 0 | 25 | 191 | +| e:\project\pc-plat\src\pc\menushell\index.scss | SCSS | 20 | 0 | 3 | 23 | +| e:\project\pc-plat\src\pc\modulesource\dragsource\index.jsx | JavaScript React | 14 | 0 | 1 | 15 | +| e:\project\pc-plat\src\pc\modulesource\dragsource\index.scss | SCSS | 40 | 0 | 6 | 46 | +| e:\project\pc-plat\src\pc\modulesource\index.jsx | JavaScript React | 81 | 0 | 13 | 94 | +| e:\project\pc-plat\src\pc\modulesource\index.scss | SCSS | 8 | 0 | 2 | 10 | +| e:\project\pc-plat\src\pc\modulesource\option.jsx | JavaScript React | 62 | 1 | 2 | 65 | +| e:\project\pc-plat\src\pc\quotecomponent\index.jsx | JavaScript React | 113 | 0 | 16 | 129 | +| e:\project\pc-plat\src\pc\quotecomponent\index.scss | SCSS | 6 | 0 | 0 | 6 | +| e:\project\pc-plat\src\pc\quotecomponent\settingform\index.jsx | JavaScript React | 76 | 1 | 9 | 86 | +| e:\project\pc-plat\src\pc\quotecomponent\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\pc\transfer\index.jsx | JavaScript React | 113 | 0 | 14 | 127 | +| e:\project\pc-plat\src\pc\transfer\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\pc\transfer\settingform\index.jsx | JavaScript React | 58 | 2 | 8 | 68 | +| e:\project\pc-plat\src\pc\transfer\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\router\index.js | JavaScript | 100 | 1 | 13 | 114 | +| e:\project\pc-plat\src\serviceWorker.js | JavaScript | 90 | 31 | 13 | 134 | +| e:\project\pc-plat\src\setupProxy.js | JavaScript | 1 | 46 | 5 | 52 | +| e:\project\pc-plat\src\store\action-type.js | JavaScript | 9 | 9 | 8 | 26 | +| e:\project\pc-plat\src\store\action.js | JavaScript | 48 | 8 | 8 | 64 | +| e:\project\pc-plat\src\store\index.js | JavaScript | 8 | 0 | 2 | 10 | +| e:\project\pc-plat\src\store\options.js | JavaScript | 36 | 10 | 1 | 47 | +| e:\project\pc-plat\src\store\reducer.js | JavaScript | 79 | 8 | 5 | 92 | +| e:\project\pc-plat\src\tabviews\calendar\index.jsx | JavaScript React | 472 | 33 | 82 | 587 | +| e:\project\pc-plat\src\tabviews\calendar\index.scss | SCSS | 40 | 0 | 5 | 45 | +| e:\project\pc-plat\src\tabviews\commontable\index.jsx | JavaScript React | 1,038 | 60 | 157 | 1,255 | +| e:\project\pc-plat\src\tabviews\commontable\index.scss | SCSS | 140 | 0 | 0 | 140 | +| e:\project\pc-plat\src\tabviews\custom\components\card\balcony\index.jsx | JavaScript React | 291 | 9 | 65 | 365 | +| e:\project\pc-plat\src\tabviews\custom\components\card\balcony\index.scss | SCSS | 69 | 0 | 8 | 77 | +| e:\project\pc-plat\src\tabviews\custom\components\card\cardItem\index.jsx | JavaScript React | 148 | 6 | 33 | 187 | +| e:\project\pc-plat\src\tabviews\custom\components\card\cardItem\index.scss | SCSS | 63 | 0 | 2 | 65 | +| e:\project\pc-plat\src\tabviews\custom\components\card\cardcellList\asyncButtonComponent.jsx | JavaScript React | 19 | 5 | 5 | 29 | +| e:\project\pc-plat\src\tabviews\custom\components\card\cardcellList\index.jsx | JavaScript React | 709 | 11 | 95 | 815 | +| e:\project\pc-plat\src\tabviews\custom\components\card\cardcellList\index.scss | SCSS | 154 | 0 | 2 | 156 | +| e:\project\pc-plat\src\tabviews\custom\components\card\data-card\index.jsx | JavaScript React | 678 | 12 | 105 | 795 | +| e:\project\pc-plat\src\tabviews\custom\components\card\data-card\index.scss | SCSS | 134 | 0 | 6 | 140 | +| e:\project\pc-plat\src\tabviews\custom\components\card\prop-card\index.jsx | JavaScript React | 353 | 9 | 68 | 430 | +| e:\project\pc-plat\src\tabviews\custom\components\card\prop-card\index.scss | SCSS | 58 | 0 | 7 | 65 | +| e:\project\pc-plat\src\tabviews\custom\components\card\table-card\index.jsx | JavaScript React | 362 | 16 | 68 | 446 | +| e:\project\pc-plat\src\tabviews\custom\components\card\table-card\index.scss | SCSS | 85 | 2 | 9 | 96 | +| e:\project\pc-plat\src\tabviews\custom\components\carousel\cardItem\index.jsx | JavaScript React | 75 | 6 | 21 | 102 | +| e:\project\pc-plat\src\tabviews\custom\components\carousel\cardItem\index.scss | SCSS | 57 | 0 | 1 | 58 | +| e:\project\pc-plat\src\tabviews\custom\components\carousel\data-card\index.jsx | JavaScript React | 228 | 9 | 41 | 278 | +| e:\project\pc-plat\src\tabviews\custom\components\carousel\data-card\index.scss | SCSS | 45 | 0 | 6 | 51 | +| e:\project\pc-plat\src\tabviews\custom\components\carousel\prop-card\index.jsx | JavaScript React | 222 | 9 | 43 | 274 | +| e:\project\pc-plat\src\tabviews\custom\components\carousel\prop-card\index.scss | SCSS | 39 | 0 | 5 | 44 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-bar-line\asyncButtonComponent.jsx | JavaScript React | 23 | 5 | 6 | 34 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-bar-line\index.jsx | JavaScript React | 1,542 | 47 | 223 | 1,812 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-bar-line\index.scss | SCSS | 86 | 0 | 5 | 91 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-dashboard\index.jsx | JavaScript React | 573 | 13 | 76 | 662 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-dashboard\index.scss | SCSS | 61 | 0 | 6 | 67 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-pie\index.jsx | JavaScript React | 925 | 16 | 136 | 1,077 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-pie\index.scss | SCSS | 74 | 0 | 5 | 79 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-scatter\asyncButtonComponent.jsx | JavaScript React | 23 | 5 | 6 | 34 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-scatter\index.jsx | JavaScript React | 389 | 24 | 62 | 475 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\antv-scatter\index.scss | SCSS | 86 | 0 | 7 | 93 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\custom-chart\index.jsx | JavaScript React | 305 | 26 | 60 | 391 | +| e:\project\pc-plat\src\tabviews\custom\components\chart\custom-chart\index.scss | SCSS | 54 | 0 | 4 | 58 | +| e:\project\pc-plat\src\tabviews\custom\components\code\sand-box\index.jsx | JavaScript React | 188 | 4 | 32 | 224 | +| e:\project\pc-plat\src\tabviews\custom\components\code\sand-box\index.scss | SCSS | 31 | 0 | 4 | 35 | +| e:\project\pc-plat\src\tabviews\custom\components\editor\braft-editor\index.jsx | JavaScript React | 164 | 3 | 30 | 197 | +| e:\project\pc-plat\src\tabviews\custom\components\editor\braft-editor\index.scss | SCSS | 32 | 0 | 4 | 36 | +| e:\project\pc-plat\src\tabviews\custom\components\form\normal-form\index.jsx | JavaScript React | 327 | 11 | 68 | 406 | +| e:\project\pc-plat\src\tabviews\custom\components\form\normal-form\index.scss | SCSS | 103 | 0 | 7 | 110 | +| e:\project\pc-plat\src\tabviews\custom\components\form\tab-form\index.jsx | JavaScript React | 284 | 11 | 56 | 351 | +| e:\project\pc-plat\src\tabviews\custom\components\form\tab-form\index.scss | SCSS | 92 | 0 | 7 | 99 | +| e:\project\pc-plat\src\tabviews\custom\components\group\normal-group\index.jsx | JavaScript React | 313 | 5 | 36 | 354 | +| e:\project\pc-plat\src\tabviews\custom\components\group\normal-group\index.scss | SCSS | 15 | 0 | 2 | 17 | +| e:\project\pc-plat\src\tabviews\custom\components\module\voucher\index.jsx | JavaScript React | 104 | 5 | 21 | 130 | +| e:\project\pc-plat\src\tabviews\custom\components\module\voucher\index.scss | SCSS | 51 | 0 | 6 | 57 | +| e:\project\pc-plat\src\tabviews\custom\components\module\voucher\voucherTable\index.jsx | JavaScript React | 574 | 48 | 116 | 738 | +| e:\project\pc-plat\src\tabviews\custom\components\module\voucher\voucherTable\index.scss | SCSS | 251 | 0 | 8 | 259 | +| e:\project\pc-plat\src\tabviews\custom\components\share\braftContent\index.jsx | JavaScript React | 46 | 0 | 12 | 58 | +| e:\project\pc-plat\src\tabviews\custom\components\share\braftContent\index.scss | SCSS | 26 | 0 | 0 | 26 | +| e:\project\pc-plat\src\tabviews\custom\components\share\normalTable\index.jsx | JavaScript React | 760 | 13 | 150 | 923 | +| e:\project\pc-plat\src\tabviews\custom\components\share\normalTable\index.scss | SCSS | 248 | 16 | 4 | 268 | +| e:\project\pc-plat\src\tabviews\custom\components\share\normalheader\index.jsx | JavaScript React | 42 | 3 | 12 | 57 | +| e:\project\pc-plat\src\tabviews\custom\components\share\normalheader\index.scss | SCSS | 48 | 0 | 1 | 49 | +| e:\project\pc-plat\src\tabviews\custom\components\share\tabtransfer\index.jsx | JavaScript React | 288 | 5 | 27 | 320 | +| e:\project\pc-plat\src\tabviews\custom\components\share\tabtransfer\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\custom\components\table\edit-table\index.jsx | JavaScript React | 418 | 35 | 58 | 511 | +| e:\project\pc-plat\src\tabviews\custom\components\table\edit-table\index.scss | SCSS | 119 | 0 | 1 | 120 | +| e:\project\pc-plat\src\tabviews\custom\components\table\edit-table\normalTable\index.jsx | JavaScript React | 901 | 17 | 160 | 1,078 | +| e:\project\pc-plat\src\tabviews\custom\components\table\edit-table\normalTable\index.scss | SCSS | 290 | 7 | 4 | 301 | +| e:\project\pc-plat\src\tabviews\custom\components\table\normal-table\index.jsx | JavaScript React | 591 | 38 | 80 | 709 | +| e:\project\pc-plat\src\tabviews\custom\components\table\normal-table\index.scss | SCSS | 95 | 0 | 1 | 96 | +| e:\project\pc-plat\src\tabviews\custom\components\tabs\antv-tabs\index.jsx | JavaScript React | 109 | 3 | 24 | 136 | +| e:\project\pc-plat\src\tabviews\custom\components\tabs\antv-tabs\index.scss | SCSS | 28 | 0 | 3 | 31 | +| e:\project\pc-plat\src\tabviews\custom\components\timeline\normal-timeline\index.jsx | JavaScript React | 266 | 20 | 47 | 333 | +| e:\project\pc-plat\src\tabviews\custom\components\timeline\normal-timeline\index.scss | SCSS | 92 | 2 | 10 | 104 | +| e:\project\pc-plat\src\tabviews\custom\components\tree\antd-tree\index.jsx | JavaScript React | 406 | 20 | 70 | 496 | +| e:\project\pc-plat\src\tabviews\custom\components\tree\antd-tree\index.scss | SCSS | 92 | 0 | 7 | 99 | +| e:\project\pc-plat\src\tabviews\custom\index.jsx | JavaScript React | 1,043 | 29 | 145 | 1,217 | +| e:\project\pc-plat\src\tabviews\custom\index.scss | SCSS | 54 | 0 | 4 | 58 | +| e:\project\pc-plat\src\tabviews\formtab\actionList\index.jsx | JavaScript React | 289 | 32 | 46 | 367 | +| e:\project\pc-plat\src\tabviews\formtab\actionList\index.scss | SCSS | 19 | 0 | 1 | 20 | +| e:\project\pc-plat\src\tabviews\formtab\formgroup\index.jsx | JavaScript React | 639 | 4 | 82 | 725 | +| e:\project\pc-plat\src\tabviews\formtab\formgroup\index.scss | SCSS | 47 | 0 | 0 | 47 | +| e:\project\pc-plat\src\tabviews\formtab\index.jsx | JavaScript React | 545 | 33 | 93 | 671 | +| e:\project\pc-plat\src\tabviews\formtab\index.scss | SCSS | 111 | 0 | 2 | 113 | +| e:\project\pc-plat\src\tabviews\home\defaulthome\index.jsx | JavaScript React | 276 | 0 | 8 | 284 | +| e:\project\pc-plat\src\tabviews\home\defaulthome\index.scss | SCSS | 198 | 0 | 0 | 198 | +| e:\project\pc-plat\src\tabviews\home\index.jsx | JavaScript React | 87 | 0 | 12 | 99 | +| e:\project\pc-plat\src\tabviews\home\index.scss | SCSS | 9 | 0 | 0 | 9 | +| e:\project\pc-plat\src\tabviews\iframe\index.jsx | JavaScript React | 37 | 3 | 10 | 50 | +| e:\project\pc-plat\src\tabviews\rolemanage\index.jsx | JavaScript React | 805 | 60 | 113 | 978 | +| e:\project\pc-plat\src\tabviews\rolemanage\index.scss | SCSS | 112 | 1 | 1 | 114 | +| e:\project\pc-plat\src\tabviews\scriptmanage\actionList\index.jsx | JavaScript React | 245 | 32 | 35 | 312 | +| e:\project\pc-plat\src\tabviews\scriptmanage\actionList\index.scss | SCSS | 17 | 0 | 1 | 18 | +| e:\project\pc-plat\src\tabviews\scriptmanage\config.jsx | JavaScript React | 86 | 1 | 2 | 89 | +| e:\project\pc-plat\src\tabviews\scriptmanage\index.jsx | JavaScript React | 272 | 34 | 43 | 349 | +| e:\project\pc-plat\src\tabviews\scriptmanage\index.scss | SCSS | 70 | 0 | 3 | 73 | +| e:\project\pc-plat\src\tabviews\subtable\index.jsx | JavaScript React | 902 | 56 | 139 | 1,097 | +| e:\project\pc-plat\src\tabviews\subtable\index.scss | SCSS | 102 | 0 | 4 | 106 | +| e:\project\pc-plat\src\tabviews\subtabtable\index.jsx | JavaScript React | 734 | 47 | 121 | 902 | +| e:\project\pc-plat\src\tabviews\subtabtable\index.scss | SCSS | 82 | 0 | 1 | 83 | +| e:\project\pc-plat\src\tabviews\tabmanage\index.jsx | JavaScript React | 513 | 4 | 60 | 577 | +| e:\project\pc-plat\src\tabviews\tabmanage\index.scss | SCSS | 56 | 0 | 3 | 59 | +| e:\project\pc-plat\src\tabviews\tabmanage\mutilform\index.jsx | JavaScript React | 90 | 1 | 8 | 99 | +| e:\project\pc-plat\src\tabviews\tabmanage\mutilform\index.scss | SCSS | 47 | 0 | 0 | 47 | +| e:\project\pc-plat\src\tabviews\tabmanage\transferform\index.jsx | JavaScript React | 35 | 0 | 9 | 44 | +| e:\project\pc-plat\src\tabviews\tabmanage\transferform\index.scss | SCSS | 6 | 0 | 0 | 6 | +| e:\project\pc-plat\src\tabviews\treepage\index.jsx | JavaScript React | 540 | 29 | 88 | 657 | +| e:\project\pc-plat\src\tabviews\treepage\index.scss | SCSS | 171 | 0 | 8 | 179 | +| e:\project\pc-plat\src\tabviews\verupmanage\actionList\index.jsx | JavaScript React | 665 | 51 | 101 | 817 | +| e:\project\pc-plat\src\tabviews\verupmanage\actionList\index.scss | SCSS | 17 | 0 | 1 | 18 | +| e:\project\pc-plat\src\tabviews\verupmanage\config.jsx | JavaScript React | 154 | 3 | 3 | 160 | +| e:\project\pc-plat\src\tabviews\verupmanage\index.jsx | JavaScript React | 413 | 43 | 64 | 520 | +| e:\project\pc-plat\src\tabviews\verupmanage\index.scss | SCSS | 77 | 0 | 3 | 80 | +| e:\project\pc-plat\src\tabviews\verupmanage\subtabtable\index.jsx | JavaScript React | 395 | 43 | 62 | 500 | +| e:\project\pc-plat\src\tabviews\verupmanage\subtabtable\index.scss | SCSS | 46 | 0 | 2 | 48 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\asyncButtonComponent.jsx | JavaScript React | 30 | 5 | 7 | 42 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\changeuserbutton\index.jsx | JavaScript React | 240 | 10 | 35 | 285 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\changeuserbutton\index.scss | SCSS | 0 | 0 | 2 | 2 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\excelInbutton\excelin\index.jsx | JavaScript React | 97 | 5 | 18 | 120 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\excelInbutton\excelin\index.scss | SCSS | 5 | 0 | 0 | 5 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\excelInbutton\index.jsx | JavaScript React | 454 | 29 | 61 | 544 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\excelInbutton\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\exceloutbutton\index.jsx | JavaScript React | 807 | 47 | 136 | 990 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\exceloutbutton\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\index.jsx | JavaScript React | 163 | 0 | 10 | 173 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\index.scss | SCSS | 26 | 0 | 3 | 29 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\newpagebutton\index.jsx | JavaScript React | 242 | 7 | 32 | 281 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\newpagebutton\index.scss | SCSS | 10 | 0 | 2 | 12 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\normalbutton\index.jsx | JavaScript React | 1,808 | 85 | 272 | 2,165 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\normalbutton\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\popupbutton\index.jsx | JavaScript React | 315 | 13 | 42 | 370 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\popupbutton\index.scss | SCSS | 48 | 0 | 1 | 49 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\printbutton\index.jsx | JavaScript React | 1,184 | 271 | 214 | 1,669 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\printbutton\index.scss | SCSS | 0 | 0 | 2 | 2 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\tabbutton\index.jsx | JavaScript React | 225 | 6 | 34 | 265 | +| e:\project\pc-plat\src\tabviews\zshare\actionList\tabbutton\index.scss | SCSS | 0 | 0 | 2 | 2 | +| e:\project\pc-plat\src\tabviews\zshare\automatic\index.jsx | JavaScript React | 172 | 3 | 38 | 213 | +| e:\project\pc-plat\src\tabviews\zshare\automatic\index.scss | SCSS | 14 | 0 | 1 | 15 | +| e:\project\pc-plat\src\tabviews\zshare\calendar\index.jsx | JavaScript React | 350 | 0 | 48 | 398 | +| e:\project\pc-plat\src\tabviews\zshare\calendar\index.scss | SCSS | 206 | 1 | 2 | 209 | +| e:\project\pc-plat\src\tabviews\zshare\cardcomponent\asyncButtonComponent.jsx | JavaScript React | 23 | 4 | 6 | 33 | +| e:\project\pc-plat\src\tabviews\zshare\cardcomponent\index.jsx | JavaScript React | 698 | 27 | 101 | 826 | +| e:\project\pc-plat\src\tabviews\zshare\cardcomponent\index.scss | SCSS | 302 | 0 | 23 | 325 | +| e:\project\pc-plat\src\tabviews\zshare\chartcomponent\asyncButtonComponent.jsx | JavaScript React | 23 | 5 | 6 | 34 | +| e:\project\pc-plat\src\tabviews\zshare\chartcomponent\index.jsx | JavaScript React | 933 | 41 | 141 | 1,115 | +| e:\project\pc-plat\src\tabviews\zshare\chartcomponent\index.scss | SCSS | 108 | 0 | 7 | 115 | +| e:\project\pc-plat\src\tabviews\zshare\fileupload\index.jsx | JavaScript React | 393 | 4 | 72 | 469 | +| e:\project\pc-plat\src\tabviews\zshare\fileupload\index.scss | SCSS | 52 | 0 | 1 | 53 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\index.jsx | JavaScript React | 757 | 22 | 128 | 907 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\index.scss | SCSS | 129 | 0 | 1 | 130 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkCheckCard\index.jsx | JavaScript React | 183 | 0 | 35 | 218 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkCheckCard\index.scss | SCSS | 101 | 1 | 2 | 104 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkCheckbox\index.jsx | JavaScript React | 30 | 0 | 7 | 37 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkCheckbox\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkColor\index.jsx | JavaScript React | 50 | 0 | 10 | 60 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkColor\index.scss | SCSS | 39 | 0 | 2 | 41 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkDatePicker\index.jsx | JavaScript React | 68 | 3 | 16 | 87 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkDatePicker\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkInput\index.jsx | JavaScript React | 68 | 3 | 18 | 89 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkInput\index.scss | SCSS | 11 | 0 | 0 | 11 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkNumberInput\index.jsx | JavaScript React | 61 | 1 | 16 | 78 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkNumberInput\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkRadio\index.jsx | JavaScript React | 120 | 0 | 26 | 146 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkRadio\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkSelect\index.jsx | JavaScript React | 182 | 0 | 29 | 211 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkSelect\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkSwitch\index.jsx | JavaScript React | 33 | 0 | 8 | 41 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkSwitch\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkTextArea\index.jsx | JavaScript React | 75 | 0 | 17 | 92 | +| e:\project\pc-plat\src\tabviews\zshare\mutilform\mkTextArea\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\normalTable\index.jsx | JavaScript React | 1,197 | 13 | 177 | 1,387 | +| e:\project\pc-plat\src\tabviews\zshare\normalTable\index.scss | SCSS | 264 | 0 | 12 | 276 | +| e:\project\pc-plat\src\tabviews\zshare\pageMessage\index.jsx | JavaScript React | 301 | 5 | 47 | 353 | +| e:\project\pc-plat\src\tabviews\zshare\pageMessage\index.scss | SCSS | 35 | 0 | 0 | 35 | +| e:\project\pc-plat\src\tabviews\zshare\settingcomponent\editTable\index.jsx | JavaScript React | 293 | 0 | 29 | 322 | +| e:\project\pc-plat\src\tabviews\zshare\settingcomponent\editTable\index.scss | SCSS | 64 | 0 | 3 | 67 | +| e:\project\pc-plat\src\tabviews\zshare\settingcomponent\index.jsx | JavaScript React | 477 | 2 | 70 | 549 | +| e:\project\pc-plat\src\tabviews\zshare\settingcomponent\index.scss | SCSS | 62 | 0 | 2 | 64 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\advanceform\index.jsx | JavaScript React | 91 | 1 | 16 | 108 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\advanceform\index.scss | SCSS | 49 | 0 | 0 | 49 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\index.jsx | JavaScript React | 125 | 0 | 14 | 139 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\index.scss | SCSS | 95 | 0 | 4 | 99 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\quarterpicker\index.jsx | JavaScript React | 135 | 0 | 16 | 151 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\quarterpicker\index.scss | SCSS | 40 | 0 | 3 | 43 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\yearpicker\index.jsx | JavaScript React | 105 | 0 | 15 | 120 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\dategroup\yearpicker\index.scss | SCSS | 46 | 0 | 4 | 50 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\index.jsx | JavaScript React | 641 | 11 | 101 | 753 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\index.scss | SCSS | 100 | 0 | 2 | 102 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\mkDatePicker\index.jsx | JavaScript React | 73 | 3 | 15 | 91 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\mkDatePicker\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\mkInput\index.jsx | JavaScript React | 14 | 0 | 4 | 18 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\mkInput\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\mkSelect\index.jsx | JavaScript React | 97 | 0 | 24 | 121 | +| e:\project\pc-plat\src\tabviews\zshare\topSearch\mkSelect\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\calendarconfig\calcomponent\calendarform\index.jsx | JavaScript React | 151 | 2 | 4 | 157 | +| e:\project\pc-plat\src\templates\calendarconfig\calcomponent\calendarform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\calendarconfig\calcomponent\index.jsx | JavaScript React | 74 | 9 | 14 | 97 | +| e:\project\pc-plat\src\templates\calendarconfig\calcomponent\index.scss | SCSS | 40 | 0 | 1 | 41 | +| e:\project\pc-plat\src\templates\calendarconfig\index.jsx | JavaScript React | 682 | 78 | 98 | 858 | +| e:\project\pc-plat\src\templates\calendarconfig\index.scss | SCSS | 188 | 0 | 3 | 191 | +| e:\project\pc-plat\src\templates\calendarconfig\source.jsx | JavaScript React | 136 | 0 | 5 | 141 | +| e:\project\pc-plat\src\templates\calendarconfig\tabcomponent\index.jsx | JavaScript React | 95 | 9 | 15 | 119 | +| e:\project\pc-plat\src\templates\calendarconfig\tabcomponent\index.scss | SCSS | 80 | 3 | 3 | 86 | +| e:\project\pc-plat\src\templates\calendarconfig\tabcomponent\tabform\index.jsx | JavaScript React | 202 | 7 | 22 | 231 | +| e:\project\pc-plat\src\templates\calendarconfig\tabcomponent\tabform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\comtableconfig\index.jsx | JavaScript React | 1,156 | 65 | 140 | 1,361 | +| e:\project\pc-plat\src\templates\comtableconfig\index.scss | SCSS | 205 | 0 | 5 | 210 | +| e:\project\pc-plat\src\templates\comtableconfig\menuform\index.jsx | JavaScript React | 232 | 0 | 16 | 248 | +| e:\project\pc-plat\src\templates\comtableconfig\menuform\index.scss | SCSS | 7 | 0 | 0 | 7 | +| e:\project\pc-plat\src\templates\comtableconfig\source.jsx | JavaScript React | 362 | 0 | 8 | 370 | +| e:\project\pc-plat\src\templates\formtabconfig\actionform\index.jsx | JavaScript React | 409 | 1 | 33 | 443 | +| e:\project\pc-plat\src\templates\formtabconfig\actionform\index.scss | SCSS | 33 | 0 | 0 | 33 | +| e:\project\pc-plat\src\templates\formtabconfig\dragelement\card.jsx | JavaScript React | 150 | 0 | 12 | 162 | +| e:\project\pc-plat\src\templates\formtabconfig\dragelement\index.jsx | JavaScript React | 164 | 1 | 28 | 193 | +| e:\project\pc-plat\src\templates\formtabconfig\dragelement\index.scss | SCSS | 15 | 0 | 0 | 15 | +| e:\project\pc-plat\src\templates\formtabconfig\dragelement\itemtypes.js | JavaScript | 8 | 0 | 1 | 9 | +| e:\project\pc-plat\src\templates\formtabconfig\dragelement\source.jsx | JavaScript React | 12 | 0 | 1 | 13 | +| e:\project\pc-plat\src\templates\formtabconfig\groupform\index.jsx | JavaScript React | 111 | 3 | 16 | 130 | +| e:\project\pc-plat\src\templates\formtabconfig\groupform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\formtabconfig\index.jsx | JavaScript React | 1,847 | 66 | 211 | 2,124 | +| e:\project\pc-plat\src\templates\formtabconfig\index.scss | SCSS | 424 | 0 | 6 | 430 | +| e:\project\pc-plat\src\templates\formtabconfig\settingform\index.jsx | JavaScript React | 330 | 1 | 26 | 357 | +| e:\project\pc-plat\src\templates\formtabconfig\settingform\index.scss | SCSS | 10 | 0 | 0 | 10 | +| e:\project\pc-plat\src\templates\formtabconfig\source.jsx | JavaScript React | 182 | 0 | 7 | 189 | +| e:\project\pc-plat\src\templates\formtabconfig\transferform\index.jsx | JavaScript React | 61 | 0 | 12 | 73 | +| e:\project\pc-plat\src\templates\formtabconfig\transferform\index.scss | SCSS | 6 | 0 | 0 | 6 | +| e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\dragelement\card.jsx | JavaScript React | 47 | 0 | 5 | 52 | +| e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\dragelement\index.jsx | JavaScript React | 75 | 0 | 11 | 86 | +| e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\dragelement\index.scss | SCSS | 53 | 0 | 2 | 55 | +| e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\dragelement\itemtypes.js | JavaScript | 3 | 0 | 1 | 4 | +| e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\index.jsx | JavaScript React | 378 | 7 | 26 | 411 | +| e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\index.scss | SCSS | 79 | 0 | 0 | 79 | +| e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\menuform\index.jsx | JavaScript React | 223 | 2 | 14 | 239 | +| e:\project\pc-plat\src\templates\menuconfig\editfirstmenu\menuform\index.scss | SCSS | 17 | 0 | 1 | 18 | +| e:\project\pc-plat\src\templates\menuconfig\editsecmenu\index.jsx | JavaScript React | 439 | 2 | 22 | 463 | +| e:\project\pc-plat\src\templates\menuconfig\editsecmenu\index.scss | SCSS | 81 | 0 | 0 | 81 | +| e:\project\pc-plat\src\templates\menuconfig\editthdmenu\index.jsx | JavaScript React | 875 | 29 | 76 | 980 | +| e:\project\pc-plat\src\templates\menuconfig\editthdmenu\index.scss | SCSS | 183 | 0 | 2 | 185 | +| e:\project\pc-plat\src\templates\menuconfig\editthdmenu\menuform\index.jsx | JavaScript React | 156 | 2 | 13 | 171 | +| e:\project\pc-plat\src\templates\menuconfig\editthdmenu\menuform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\menuconfig\editthdmenu\preview\index.jsx | JavaScript React | 60 | 0 | 7 | 67 | +| e:\project\pc-plat\src\templates\menuconfig\editthdmenu\preview\index.scss | SCSS | 30 | 0 | 0 | 30 | +| e:\project\pc-plat\src\templates\menuconfig\menuelement\card.jsx | JavaScript React | 56 | 0 | 6 | 62 | +| e:\project\pc-plat\src\templates\menuconfig\menuelement\index.jsx | JavaScript React | 58 | 0 | 7 | 65 | +| e:\project\pc-plat\src\templates\menuconfig\menuelement\index.scss | SCSS | 68 | 0 | 1 | 69 | +| e:\project\pc-plat\src\templates\menuconfig\menuelement\itemtypes.js | JavaScript | 3 | 0 | 1 | 4 | +| e:\project\pc-plat\src\templates\menuconfig\menuform\index.jsx | JavaScript React | 137 | 2 | 10 | 149 | +| e:\project\pc-plat\src\templates\menuconfig\menuform\index.scss | SCSS | 17 | 0 | 1 | 18 | +| e:\project\pc-plat\src\templates\modalconfig\checkCard\index.jsx | JavaScript React | 72 | 0 | 11 | 83 | +| e:\project\pc-plat\src\templates\modalconfig\checkCard\index.scss | SCSS | 35 | 0 | 0 | 35 | +| e:\project\pc-plat\src\templates\modalconfig\dragelement\card.jsx | JavaScript React | 156 | 0 | 13 | 169 | +| e:\project\pc-plat\src\templates\modalconfig\dragelement\index.jsx | JavaScript React | 110 | 1 | 25 | 136 | +| e:\project\pc-plat\src\templates\modalconfig\dragelement\index.scss | SCSS | 129 | 0 | 0 | 129 | +| e:\project\pc-plat\src\templates\modalconfig\dragelement\source.jsx | JavaScript React | 12 | 0 | 1 | 13 | +| e:\project\pc-plat\src\templates\modalconfig\editcard\index.jsx | JavaScript React | 103 | 0 | 12 | 115 | +| e:\project\pc-plat\src\templates\modalconfig\editcard\index.scss | SCSS | 49 | 0 | 1 | 50 | +| e:\project\pc-plat\src\templates\modalconfig\index.jsx | JavaScript React | 728 | 43 | 97 | 868 | +| e:\project\pc-plat\src\templates\modalconfig\index.scss | SCSS | 260 | 0 | 3 | 263 | +| e:\project\pc-plat\src\templates\modalconfig\menuform\index.jsx | JavaScript React | 91 | 1 | 5 | 97 | +| e:\project\pc-plat\src\templates\modalconfig\menuform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\modalconfig\settingform\index.jsx | JavaScript React | 292 | 7 | 14 | 313 | +| e:\project\pc-plat\src\templates\modalconfig\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\modalconfig\source.jsx | JavaScript React | 179 | 0 | 5 | 184 | +| e:\project\pc-plat\src\templates\modalconfig\transferform\index.jsx | JavaScript React | 61 | 0 | 12 | 73 | +| e:\project\pc-plat\src\templates\modalconfig\transferform\index.scss | SCSS | 6 | 0 | 0 | 6 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\actionform\index.jsx | JavaScript React | 606 | 4 | 81 | 691 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\actionform\index.scss | SCSS | 39 | 0 | 0 | 39 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\dragaction\card.jsx | JavaScript React | 67 | 0 | 5 | 72 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\dragaction\index.jsx | JavaScript React | 143 | 1 | 28 | 172 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\dragaction\index.scss | SCSS | 6 | 0 | 1 | 7 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\index.jsx | JavaScript React | 792 | 59 | 112 | 963 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\index.scss | SCSS | 67 | 0 | 2 | 69 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\columnform\index.jsx | JavaScript React | 174 | 1 | 9 | 184 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\columnform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\customscript\index.jsx | JavaScript React | 309 | 8 | 45 | 362 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\customscript\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\index.jsx | JavaScript React | 836 | 8 | 79 | 923 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\index.scss | SCSS | 80 | 0 | 0 | 80 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\uniqueform\index.jsx | JavaScript React | 117 | 1 | 11 | 129 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelin\uniqueform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelout\columnform\index.jsx | JavaScript React | 99 | 1 | 5 | 105 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelout\columnform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelout\index.jsx | JavaScript React | 566 | 5 | 62 | 633 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyexcelout\index.scss | SCSS | 86 | 0 | 0 | 86 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyprint\editable\index.jsx | JavaScript React | 213 | 0 | 25 | 238 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyprint\editable\index.scss | SCSS | 51 | 0 | 1 | 52 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyprint\index.jsx | JavaScript React | 416 | 1 | 37 | 454 | +| e:\project\pc-plat\src\templates\sharecomponent\actioncomponent\verifyprint\index.scss | SCSS | 68 | 0 | 0 | 68 | +| e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\carddetailform\index.jsx | JavaScript React | 277 | 2 | 23 | 302 | +| e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\carddetailform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\dragdetail\card.jsx | JavaScript React | 39 | 0 | 6 | 45 | +| e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\dragdetail\index.jsx | JavaScript React | 43 | 0 | 7 | 50 | +| e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\dragdetail\index.scss | SCSS | 63 | 0 | 3 | 66 | +| e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\index.jsx | JavaScript React | 423 | 1 | 54 | 478 | +| e:\project\pc-plat\src\templates\sharecomponent\cardcomponent\index.scss | SCSS | 205 | 0 | 14 | 219 | +| e:\project\pc-plat\src\templates\sharecomponent\chartcomponent\chartcompile\index.jsx | JavaScript React | 490 | 0 | 54 | 544 | +| e:\project\pc-plat\src\templates\sharecomponent\chartcomponent\chartcompile\index.scss | SCSS | 40 | 0 | 5 | 45 | +| e:\project\pc-plat\src\templates\sharecomponent\chartcomponent\index.jsx | JavaScript React | 530 | 0 | 99 | 629 | +| e:\project\pc-plat\src\templates\sharecomponent\chartcomponent\index.scss | SCSS | 11 | 0 | 3 | 14 | +| e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\chartform\index.jsx | JavaScript React | 511 | 2 | 32 | 545 | +| e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\chartform\index.scss | SCSS | 19 | 0 | 1 | 20 | +| e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\dragchartview\card.jsx | JavaScript React | 48 | 0 | 9 | 57 | +| e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\dragchartview\index.jsx | JavaScript React | 63 | 0 | 12 | 75 | +| e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\dragchartview\index.scss | SCSS | 29 | 0 | 3 | 32 | +| e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\index.jsx | JavaScript React | 228 | 27 | 42 | 297 | +| e:\project\pc-plat\src\templates\sharecomponent\chartgroupcomponent\index.scss | SCSS | 27 | 0 | 0 | 27 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\colspanform\index.jsx | JavaScript React | 196 | 2 | 13 | 211 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\colspanform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\columnform\index.jsx | JavaScript React | 334 | 4 | 28 | 366 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\columnform\index.scss | SCSS | 17 | 0 | 2 | 19 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\dragcolumn\card.jsx | JavaScript React | 60 | 0 | 5 | 65 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\dragcolumn\index.jsx | JavaScript React | 168 | 2 | 23 | 193 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\dragcolumn\index.scss | SCSS | 6 | 0 | 1 | 7 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\gridbtnform\index.jsx | JavaScript React | 194 | 2 | 8 | 204 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\gridbtnform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\index.jsx | JavaScript React | 492 | 37 | 71 | 600 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\index.scss | SCSS | 95 | 1 | 2 | 98 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\markcolumn\index.jsx | JavaScript React | 216 | 0 | 26 | 242 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\markcolumn\index.scss | SCSS | 55 | 0 | 4 | 59 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\markcolumn\markform\index.jsx | JavaScript React | 328 | 16 | 27 | 371 | +| e:\project\pc-plat\src\templates\sharecomponent\columncomponent\markcolumn\markform\index.scss | SCSS | 7 | 0 | 0 | 7 | +| e:\project\pc-plat\src\templates\sharecomponent\fieldscomponent\editcard\index.jsx | JavaScript React | 159 | 0 | 25 | 184 | +| e:\project\pc-plat\src\templates\sharecomponent\fieldscomponent\editcard\index.scss | SCSS | 55 | 0 | 1 | 56 | +| e:\project\pc-plat\src\templates\sharecomponent\fieldscomponent\index.jsx | JavaScript React | 250 | 10 | 29 | 289 | +| e:\project\pc-plat\src\templates\sharecomponent\fieldscomponent\index.scss | SCSS | 30 | 0 | 0 | 30 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dategroup\index.jsx | JavaScript React | 27 | 0 | 5 | 32 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dategroup\index.scss | SCSS | 36 | 0 | 2 | 38 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dragsearch\card.jsx | JavaScript React | 114 | 0 | 9 | 123 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dragsearch\index.jsx | JavaScript React | 139 | 0 | 26 | 165 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\dragsearch\index.scss | SCSS | 6 | 0 | 1 | 7 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\index.jsx | JavaScript React | 291 | 39 | 52 | 382 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\index.scss | SCSS | 84 | 0 | 1 | 85 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\searcheditable\index.jsx | JavaScript React | 283 | 0 | 25 | 308 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\searcheditable\index.scss | SCSS | 43 | 0 | 1 | 44 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\searchform\index.jsx | JavaScript React | 650 | 2 | 68 | 720 | +| e:\project\pc-plat\src\templates\sharecomponent\searchcomponent\searchform\index.scss | SCSS | 36 | 1 | 1 | 38 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\index.jsx | JavaScript React | 86 | 0 | 13 | 99 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\index.scss | SCSS | 79 | 0 | 8 | 87 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\columnform\index.jsx | JavaScript React | 133 | 1 | 11 | 145 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\columnform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\index.jsx | JavaScript React | 358 | 6 | 43 | 407 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\index.scss | SCSS | 80 | 0 | 0 | 80 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\settingform\index.jsx | JavaScript React | 295 | 16 | 24 | 335 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\settingform\index.scss | SCSS | 19 | 0 | 1 | 20 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcalcomponent\verifycard\utils.jsx | JavaScript React | 114 | 11 | 19 | 144 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\index.jsx | JavaScript React | 162 | 15 | 29 | 206 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\index.scss | SCSS | 39 | 0 | 1 | 40 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\datasource\index.jsx | JavaScript React | 801 | 3 | 26 | 830 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\datasource\index.scss | SCSS | 20 | 0 | 2 | 22 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\index.jsx | JavaScript React | 486 | 12 | 50 | 548 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\index.scss | SCSS | 60 | 0 | 1 | 61 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\simplescript\index.jsx | JavaScript React | 440 | 0 | 53 | 493 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\simplescript\index.scss | SCSS | 45 | 0 | 0 | 45 | +| e:\project\pc-plat\src\templates\sharecomponent\settingcomponent\settingform\utils.jsx | JavaScript React | 171 | 18 | 28 | 217 | +| e:\project\pc-plat\src\templates\sharecomponent\tablecomponent\index.jsx | JavaScript React | 268 | 15 | 35 | 318 | +| e:\project\pc-plat\src\templates\sharecomponent\tablecomponent\index.scss | SCSS | 7 | 0 | 0 | 7 | +| e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\index.jsx | JavaScript React | 350 | 35 | 54 | 439 | +| e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\index.scss | SCSS | 81 | 0 | 0 | 81 | +| e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabdragelement\card.jsx | JavaScript React | 54 | 0 | 9 | 63 | +| e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabdragelement\index.jsx | JavaScript React | 94 | 0 | 18 | 112 | +| e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabdragelement\index.scss | SCSS | 12 | 0 | 0 | 12 | +| e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabform\index.jsx | JavaScript React | 302 | 9 | 29 | 340 | +| e:\project\pc-plat\src\templates\sharecomponent\tabscomponent\tabform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\index.jsx | JavaScript React | 92 | 9 | 13 | 114 | +| e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\index.scss | SCSS | 39 | 0 | 1 | 40 | +| e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\datasource\index.jsx | JavaScript React | 478 | 3 | 26 | 507 | +| e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\datasource\index.scss | SCSS | 16 | 0 | 1 | 17 | +| e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\index.jsx | JavaScript React | 254 | 2 | 30 | 286 | +| e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\index.scss | SCSS | 52 | 0 | 1 | 53 | +| e:\project\pc-plat\src\templates\sharecomponent\treesettingcomponent\settingform\utils.jsx | JavaScript React | 64 | 8 | 13 | 85 | +| e:\project\pc-plat\src\templates\subtableconfig\index.jsx | JavaScript React | 1,019 | 55 | 123 | 1,197 | +| e:\project\pc-plat\src\templates\subtableconfig\index.scss | SCSS | 199 | 0 | 5 | 204 | +| e:\project\pc-plat\src\templates\subtableconfig\menuform\index.jsx | JavaScript React | 106 | 0 | 10 | 116 | +| e:\project\pc-plat\src\templates\subtableconfig\menuform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\subtableconfig\source.jsx | JavaScript React | 333 | 0 | 7 | 340 | +| e:\project\pc-plat\src\templates\treepageconfig\index.jsx | JavaScript React | 690 | 52 | 85 | 827 | +| e:\project\pc-plat\src\templates\treepageconfig\index.scss | SCSS | 252 | 0 | 6 | 258 | +| e:\project\pc-plat\src\templates\treepageconfig\source.jsx | JavaScript React | 53 | 0 | 5 | 58 | +| e:\project\pc-plat\src\templates\zshare\basetransferform\index.jsx | JavaScript React | 37 | 0 | 9 | 46 | +| e:\project\pc-plat\src\templates\zshare\basetransferform\index.scss | SCSS | 6 | 0 | 0 | 6 | +| e:\project\pc-plat\src\templates\zshare\codemirror\index.jsx | JavaScript React | 151 | 1 | 19 | 171 | +| e:\project\pc-plat\src\templates\zshare\codemirror\index.scss | SCSS | 77 | 1 | 1 | 79 | +| e:\project\pc-plat\src\templates\zshare\createfunc\index.jsx | JavaScript React | 179 | 11 | 24 | 214 | +| e:\project\pc-plat\src\templates\zshare\createfunc\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\createinterface\index.jsx | JavaScript React | 933 | 49 | 157 | 1,139 | +| e:\project\pc-plat\src\templates\zshare\createinterface\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\createinterface\mutilform\index.jsx | JavaScript React | 132 | 2 | 11 | 145 | +| e:\project\pc-plat\src\templates\zshare\createinterface\mutilform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\customscript\index.jsx | JavaScript React | 378 | 0 | 50 | 428 | +| e:\project\pc-plat\src\templates\zshare\customscript\index.scss | SCSS | 45 | 0 | 0 | 45 | +| e:\project\pc-plat\src\templates\zshare\dragsource\index.jsx | JavaScript React | 12 | 0 | 1 | 13 | +| e:\project\pc-plat\src\templates\zshare\dragsource\index.scss | SCSS | 9 | 0 | 0 | 9 | +| e:\project\pc-plat\src\templates\zshare\editTable\cusSwitch\index.jsx | JavaScript React | 44 | 1 | 9 | 54 | +| e:\project\pc-plat\src\templates\zshare\editTable\cusSwitch\index.scss | SCSS | 38 | 0 | 2 | 40 | +| e:\project\pc-plat\src\templates\zshare\editTable\index.jsx | JavaScript React | 551 | 0 | 85 | 636 | +| e:\project\pc-plat\src\templates\zshare\editTable\index.scss | SCSS | 107 | 0 | 4 | 111 | +| e:\project\pc-plat\src\templates\zshare\editcard\index.jsx | JavaScript React | 142 | 0 | 17 | 159 | +| e:\project\pc-plat\src\templates\zshare\editcard\index.scss | SCSS | 49 | 0 | 1 | 50 | +| e:\project\pc-plat\src\templates\zshare\editcomponent\index.jsx | JavaScript React | 206 | 6 | 25 | 237 | +| e:\project\pc-plat\src\templates\zshare\editcomponent\index.scss | SCSS | 5 | 0 | 0 | 5 | +| e:\project\pc-plat\src\templates\zshare\formconfig.jsx | JavaScript React | 3,511 | 132 | 39 | 3,682 | +| e:\project\pc-plat\src\templates\zshare\menuform\index.jsx | JavaScript React | 122 | 1 | 10 | 133 | +| e:\project\pc-plat\src\templates\zshare\menuform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\modalform\datatable\index.jsx | JavaScript React | 395 | 1 | 55 | 451 | +| e:\project\pc-plat\src\templates\zshare\modalform\datatable\index.scss | SCSS | 76 | 0 | 1 | 77 | +| e:\project\pc-plat\src\templates\zshare\modalform\fieldtable\index.jsx | JavaScript React | 115 | 0 | 16 | 131 | +| e:\project\pc-plat\src\templates\zshare\modalform\fieldtable\index.scss | SCSS | 14 | 0 | 1 | 15 | +| e:\project\pc-plat\src\templates\zshare\modalform\index.jsx | JavaScript React | 660 | 5 | 83 | 748 | +| e:\project\pc-plat\src\templates\zshare\modalform\index.scss | SCSS | 37 | 0 | 0 | 37 | +| e:\project\pc-plat\src\templates\zshare\modalform\modaleditable\index.jsx | JavaScript React | 425 | 0 | 56 | 481 | +| e:\project\pc-plat\src\templates\zshare\modalform\modaleditable\index.scss | SCSS | 56 | 0 | 1 | 57 | +| e:\project\pc-plat\src\templates\zshare\pasteform\index.jsx | JavaScript React | 84 | 1 | 9 | 94 | +| e:\project\pc-plat\src\templates\zshare\pasteform\index.scss | SCSS | 6 | 0 | 1 | 7 | +| e:\project\pc-plat\src\templates\zshare\transferform\index.jsx | JavaScript React | 105 | 0 | 22 | 127 | +| e:\project\pc-plat\src\templates\zshare\transferform\index.scss | SCSS | 36 | 0 | 2 | 38 | +| e:\project\pc-plat\src\templates\zshare\unattended\index.jsx | JavaScript React | 66 | 0 | 12 | 78 | +| e:\project\pc-plat\src\templates\zshare\unattended\index.scss | SCSS | 8 | 0 | 0 | 8 | +| e:\project\pc-plat\src\templates\zshare\unattended\settingform\index.jsx | JavaScript React | 163 | 2 | 8 | 173 | +| e:\project\pc-plat\src\templates\zshare\unattended\settingform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\verifycard\billcodeform\index.jsx | JavaScript React | 347 | 5 | 29 | 381 | +| e:\project\pc-plat\src\templates\zshare\verifycard\billcodeform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\verifycard\callbackcustomscript\index.jsx | JavaScript React | 259 | 8 | 34 | 301 | +| e:\project\pc-plat\src\templates\zshare\verifycard\callbackcustomscript\index.scss | SCSS | 5 | 0 | 0 | 5 | +| e:\project\pc-plat\src\templates\zshare\verifycard\contrastform\index.jsx | JavaScript React | 134 | 1 | 5 | 140 | +| e:\project\pc-plat\src\templates\zshare\verifycard\contrastform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\verifycard\customform\index.jsx | JavaScript React | 232 | 3 | 23 | 258 | +| e:\project\pc-plat\src\templates\zshare\verifycard\customform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\verifycard\customscript\index.jsx | JavaScript React | 287 | 10 | 36 | 333 | +| e:\project\pc-plat\src\templates\zshare\verifycard\customscript\index.scss | SCSS | 5 | 0 | 0 | 5 | +| e:\project\pc-plat\src\templates\zshare\verifycard\index.jsx | JavaScript React | 1,730 | 6 | 134 | 1,870 | +| e:\project\pc-plat\src\templates\zshare\verifycard\index.scss | SCSS | 204 | 0 | 8 | 212 | +| e:\project\pc-plat\src\templates\zshare\verifycard\uniqueform\index.jsx | JavaScript React | 117 | 1 | 9 | 127 | +| e:\project\pc-plat\src\templates\zshare\verifycard\uniqueform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\templates\zshare\verifycard\voucherform\index.jsx | JavaScript React | 243 | 1 | 25 | 269 | +| e:\project\pc-plat\src\templates\zshare\verifycard\voucherform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\utils\asyncComponent.jsx | JavaScript React | 19 | 4 | 6 | 29 | +| e:\project\pc-plat\src\utils\asyncIconComponent.jsx | JavaScript React | 20 | 4 | 6 | 30 | +| e:\project\pc-plat\src\utils\asyncLoadComponent.jsx | JavaScript React | 22 | 4 | 6 | 32 | +| e:\project\pc-plat\src\utils\asyncSpinComponent.jsx | JavaScript React | 22 | 4 | 6 | 32 | +| e:\project\pc-plat\src\utils\events.js | JavaScript | 4 | 0 | 2 | 6 | +| e:\project\pc-plat\src\utils\option.js | JavaScript | 903 | 9 | 15 | 927 | +| e:\project\pc-plat\src\utils\utils-custom.js | JavaScript | 687 | 43 | 89 | 819 | +| e:\project\pc-plat\src\utils\utils-datamanage.js | JavaScript | 582 | 76 | 114 | 772 | +| e:\project\pc-plat\src\utils\utils-update.js | JavaScript | 205 | 29 | 27 | 261 | +| e:\project\pc-plat\src\utils\utils.js | JavaScript | 1,997 | 252 | 366 | 2,615 | +| e:\project\pc-plat\src\views\404\index.jsx | JavaScript React | 27 | 0 | 4 | 31 | +| e:\project\pc-plat\src\views\404\index.scss | SCSS | 10 | 0 | 0 | 10 | +| e:\project\pc-plat\src\views\appcheck\header\index.jsx | JavaScript React | 27 | 0 | 4 | 31 | +| e:\project\pc-plat\src\views\appcheck\header\index.scss | SCSS | 55 | 0 | 2 | 57 | +| e:\project\pc-plat\src\views\appcheck\index.jsx | JavaScript React | 231 | 6 | 24 | 261 | +| e:\project\pc-plat\src\views\appcheck\index.scss | SCSS | 94 | 0 | 7 | 101 | +| e:\project\pc-plat\src\views\appmanage\header\index.jsx | JavaScript React | 27 | 0 | 4 | 31 | +| e:\project\pc-plat\src\views\appmanage\header\index.scss | SCSS | 55 | 0 | 2 | 57 | +| e:\project\pc-plat\src\views\appmanage\index.jsx | JavaScript React | 1,089 | 9 | 113 | 1,211 | +| e:\project\pc-plat\src\views\appmanage\index.scss | SCSS | 119 | 0 | 7 | 126 | +| e:\project\pc-plat\src\views\appmanage\mutilform\index.jsx | JavaScript React | 76 | 7 | 6 | 89 | +| e:\project\pc-plat\src\views\appmanage\mutilform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\views\appmanage\scriptform\index.jsx | JavaScript React | 216 | 6 | 30 | 252 | +| e:\project\pc-plat\src\views\appmanage\scriptform\index.scss | SCSS | 11 | 0 | 1 | 12 | +| e:\project\pc-plat\src\views\appmanage\submutilform\index.jsx | JavaScript React | 231 | 69 | 14 | 314 | +| e:\project\pc-plat\src\views\appmanage\submutilform\index.scss | SCSS | 22 | 0 | 1 | 23 | +| e:\project\pc-plat\src\views\appmanage\transform\index.jsx | JavaScript React | 76 | 7 | 6 | 89 | +| e:\project\pc-plat\src\views\appmanage\transform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\views\billprint\index.jsx | JavaScript React | 556 | 16 | 95 | 667 | +| e:\project\pc-plat\src\views\billprint\index.scss | SCSS | 52 | 0 | 4 | 56 | +| e:\project\pc-plat\src\views\design\header\index.jsx | JavaScript React | 361 | 14 | 49 | 424 | +| e:\project\pc-plat\src\views\design\header\index.scss | SCSS | 205 | 0 | 6 | 211 | +| e:\project\pc-plat\src\views\design\header\versions\index.jsx | JavaScript React | 389 | 0 | 59 | 448 | +| e:\project\pc-plat\src\views\design\header\versions\index.scss | SCSS | 31 | 0 | 0 | 31 | +| e:\project\pc-plat\src\views\design\index.jsx | JavaScript React | 28 | 0 | 6 | 34 | +| e:\project\pc-plat\src\views\design\index.scss | SCSS | 19 | 0 | 0 | 19 | +| e:\project\pc-plat\src\views\design\sidemenu\config.jsx | JavaScript React | 229 | 22 | 1 | 252 | +| e:\project\pc-plat\src\views\design\sidemenu\index.jsx | JavaScript React | 268 | 4 | 37 | 309 | +| e:\project\pc-plat\src\views\design\sidemenu\index.scss | SCSS | 118 | 0 | 1 | 119 | +| e:\project\pc-plat\src\views\imdesign\index.jsx | JavaScript React | 496 | 7 | 65 | 568 | +| e:\project\pc-plat\src\views\imdesign\index.scss | SCSS | 330 | 0 | 21 | 351 | +| e:\project\pc-plat\src\views\imdesign\menuform\index.jsx | JavaScript React | 67 | 2 | 8 | 77 | +| e:\project\pc-plat\src\views\imdesign\menuform\index.scss | SCSS | 25 | 0 | 0 | 25 | +| e:\project\pc-plat\src\views\imdesign\options.jsx | JavaScript React | 23 | 3 | 3 | 29 | +| e:\project\pc-plat\src\views\interface\api\index.js | JavaScript | 142 | 11 | 22 | 175 | +| e:\project\pc-plat\src\views\interface\header\index.jsx | JavaScript React | 38 | 0 | 7 | 45 | +| e:\project\pc-plat\src\views\interface\header\index.scss | SCSS | 59 | 0 | 5 | 64 | +| e:\project\pc-plat\src\views\interface\history\index.jsx | JavaScript React | 251 | 3 | 37 | 291 | +| e:\project\pc-plat\src\views\interface\history\index.scss | SCSS | 111 | 0 | 2 | 113 | +| e:\project\pc-plat\src\views\interface\index.jsx | JavaScript React | 23 | 0 | 5 | 28 | +| e:\project\pc-plat\src\views\interface\index.scss | SCSS | 6 | 0 | 0 | 6 | +| e:\project\pc-plat\src\views\interface\workspace\editTable\index.jsx | JavaScript React | 219 | 0 | 31 | 250 | +| e:\project\pc-plat\src\views\interface\workspace\editTable\index.scss | SCSS | 85 | 0 | 1 | 86 | +| e:\project\pc-plat\src\views\interface\workspace\index.jsx | JavaScript React | 107 | 3 | 14 | 124 | +| e:\project\pc-plat\src\views\interface\workspace\index.scss | SCSS | 51 | 0 | 1 | 52 | +| e:\project\pc-plat\src\views\interface\workspace\request\index.jsx | JavaScript React | 254 | 3 | 53 | 310 | +| e:\project\pc-plat\src\views\interface\workspace\request\index.scss | SCSS | 159 | 0 | 3 | 162 | +| e:\project\pc-plat\src\views\login\index.jsx | JavaScript React | 742 | 37 | 109 | 888 | +| e:\project\pc-plat\src\views\login\index.scss | SCSS | 293 | 1 | 7 | 301 | +| e:\project\pc-plat\src\views\login\logincloudform.jsx | JavaScript React | 79 | 1 | 8 | 88 | +| e:\project\pc-plat\src\views\login\loginform.jsx | JavaScript React | 455 | 5 | 47 | 507 | +| e:\project\pc-plat\src\views\main\index.jsx | JavaScript React | 35 | 0 | 7 | 42 | +| e:\project\pc-plat\src\views\main\index.scss | SCSS | 5 | 0 | 0 | 5 | +| e:\project\pc-plat\src\views\menudesign\homeform\index.jsx | JavaScript React | 161 | 2 | 18 | 181 | +| e:\project\pc-plat\src\views\menudesign\homeform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\views\menudesign\index.jsx | JavaScript React | 998 | 4 | 110 | 1,112 | +| e:\project\pc-plat\src\views\menudesign\index.scss | SCSS | 178 | 0 | 5 | 183 | +| e:\project\pc-plat\src\views\menudesign\menuform\index.jsx | JavaScript React | 355 | 5 | 26 | 386 | +| e:\project\pc-plat\src\views\menudesign\menuform\index.scss | SCSS | 8 | 0 | 0 | 8 | +| e:\project\pc-plat\src\views\menudesign\printmenuform\index.jsx | JavaScript React | 236 | 1 | 20 | 257 | +| e:\project\pc-plat\src\views\menudesign\printmenuform\index.scss | SCSS | 0 | 0 | 1 | 1 | +| e:\project\pc-plat\src\views\mobdesign\index.jsx | JavaScript React | 1,566 | 4 | 206 | 1,776 | +| e:\project\pc-plat\src\views\mobdesign\index.scss | SCSS | 274 | 1 | 16 | 291 | +| e:\project\pc-plat\src\views\mobdesign\menuform\index.jsx | JavaScript React | 239 | 3 | 13 | 255 | +| e:\project\pc-plat\src\views\mobdesign\menuform\index.scss | SCSS | 25 | 0 | 0 | 25 | +| e:\project\pc-plat\src\views\pay\index.jsx | JavaScript React | 258 | 11 | 30 | 299 | +| e:\project\pc-plat\src\views\pay\index.scss | SCSS | 146 | 3 | 8 | 157 | +| e:\project\pc-plat\src\views\pcdesign\index.jsx | JavaScript React | 1,615 | 4 | 202 | 1,821 | +| e:\project\pc-plat\src\views\pcdesign\index.scss | SCSS | 227 | 0 | 11 | 238 | +| e:\project\pc-plat\src\views\pcdesign\menuform\index.jsx | JavaScript React | 176 | 3 | 13 | 192 | +| e:\project\pc-plat\src\views\pcdesign\menuform\index.scss | SCSS | 8 | 0 | 0 | 8 | +| e:\project\pc-plat\src\views\printTemplate\dragelement\index.jsx | JavaScript React | 17 | 0 | 4 | 21 | +| e:\project\pc-plat\src\views\printTemplate\dragelement\index.scss | SCSS | 22 | 0 | 4 | 26 | +| e:\project\pc-plat\src\views\printTemplate\dragelement\source.jsx | JavaScript React | 14 | 0 | 2 | 16 | +| e:\project\pc-plat\src\views\printTemplate\index.jsx | JavaScript React | 824 | 9 | 119 | 952 | +| e:\project\pc-plat\src\views\printTemplate\index.scss | SCSS | 122 | 0 | 2 | 124 | +| e:\project\pc-plat\src\views\printTemplate\mutilform\index.jsx | JavaScript React | 290 | 1 | 32 | 323 | +| e:\project\pc-plat\src\views\printTemplate\mutilform\index.scss | SCSS | 49 | 8 | 0 | 57 | +| e:\project\pc-plat\src\views\printTemplate\option.js | JavaScript | 909 | 2 | 11 | 922 | +| e:\project\pc-plat\src\views\printTemplate\print.js | JavaScript | 394 | 19 | 42 | 455 | +| e:\project\pc-plat\src\views\rolemanage\header\index.jsx | JavaScript React | 28 | 0 | 4 | 32 | +| e:\project\pc-plat\src\views\rolemanage\header\index.scss | SCSS | 56 | 0 | 2 | 58 | +| e:\project\pc-plat\src\views\rolemanage\index.jsx | JavaScript React | 814 | 4 | 109 | 927 | +| e:\project\pc-plat\src\views\rolemanage\index.scss | SCSS | 86 | 0 | 5 | 91 | +| e:\project\pc-plat\src\views\sso\index.jsx | JavaScript React | 131 | 2 | 21 | 154 | +| e:\project\pc-plat\src\views\sso\index.scss | SCSS | 7 | 0 | 0 | 7 | +| Total | | 195,487 | 5,743 | 20,061 | 221,291 | ++--------------------------------------------------------------------------------------------------------+------------------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 8a03d23..92f1936 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2955,6 +2955,11 @@ "@xtuc/long": "4.2.2" } }, + "@xmldom/xmldom": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.5.tgz", + "integrity": "sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==" + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -4933,12 +4938,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001260", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz", - "integrity": "sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg==", - "requires": { - "nanocolors": "^0.1.0" - } + "version": "1.0.30001319", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz", + "integrity": "sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==" }, "capture-exit": { "version": "2.0.0", @@ -13937,11 +13939,6 @@ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" }, - "nanocolors": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", - "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==" - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -21234,6 +21231,14 @@ "async-limiter": "~1.0.0" } }, + "x2js": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/x2js/-/x2js-3.4.3.tgz", + "integrity": "sha512-+65+WHCaQ9E0Gb2FDz/tYRSRBGGvFsSMiWDGn8KbgJOLkJhZBMCU1lxuRMLyTcx/54IopT0rDQWCUz2f7FTsyQ==", + "requires": { + "@xmldom/xmldom": "^0.7.4" + } + }, "xcode": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/xcode/-/xcode-2.1.0.tgz", diff --git a/package.json b/package.json index 7ceec02..ff154ab 100644 --- a/package.json +++ b/package.json @@ -100,6 +100,7 @@ "webpack-dev-server": "3.2.1", "webpack-manifest-plugin": "2.0.4", "workbox-webpack-plugin": "4.3.1", + "x2js": "^3.4.3", "xlsx": "^0.15.5" }, "scripts": { diff --git a/public/README.txt b/public/README.txt index 70fe1db..96a1b4e 100644 --- a/public/README.txt +++ b/public/README.txt @@ -6,10 +6,11 @@ systemType -- 绯荤粺绫诲瀷锛屾寮忕郴缁熸槸濉玴roduction锛屽紑鍙戠郴缁熶负绌猴紝寮�鍙戠郴缁熶細鏈変竴閮ㄥ垎鐨勬暟鎹ā绯婂寲 externalDatabase -- 澶栬仈搴擄紝涓嶄娇鐢ㄦ椂榛樿涓篺alse lineColor -- 鐧诲綍椤靛垎鍓茬嚎棰滆壊 -filter -- 椤甸潰婊ら暅锛屽�间负'true'鏃讹紝椤甸潰鏄剧ず涓洪粦鐧借壊 +filter -- 椤甸潰婊ら暅锛屽�间负"true"鏃讹紝椤甸潰鏄剧ず涓洪粦鐧借壊锛涘綋璁剧疆涓烘棩鏈熸椂锛圷YYY-MM-DD锛夛紝鎴鍒板綋鍓嶆棩鏈燂紝椤甸潰鏄剧ず涓洪粦鐧借壊 defaultApp -- 榛樿搴旂敤锛岀郴缁熼粯璁ゆ墦寮�鏌愪釜瀛愬簲鐢ㄦ椂闇�濉啓搴旂敤缂栫爜 defaultLang -- 鎵撳紑鐨勫瓙搴旂敤璇█绫诲瀷锛岄粯璁や负zh-CN WXAppID -- 浣跨敤鍏紬鍙锋椂锛岀粦瀹氱殑鍏紬鍙稩D debugger -- 鍊间负true鏃跺紑鍚皟璇曟ā寮忥紝寮�鍚悗绉诲姩绔瓙搴旂敤涓細鏈夋帶鍒跺彴 licenseKey -- 璁稿彲瀵嗛挜锛屽湪鍐呴儴缃戠粶涓娇鐢ㄧ郴缁熸椂锛屼細璺宠繃epc楠岃瘉 -probation -- 璇曠敤鏈燂紙YYYY-MM-DD锛夛紝鍦ㄦ寮忕郴缁熶腑锛岃瘯鐢ㄦ湡鍐呰皟鐢ㄧ郴缁熸帴鍙g殑鑴氭湰浼氳褰曚笅鏉� \ No newline at end of file +probation -- 璇曠敤鏈燂紙YYYY-MM-DD锛夛紝鍦ㄦ寮忕郴缁熶腑锛岃瘯鐢ㄦ湡鍐呰皟鐢ㄧ郴缁熸帴鍙g殑鑴氭湰浼氳褰曚笅鏉� +keepPassword -- 璁颁綇瀵嗙爜锛岄粯璁ゅ紑鍚紝褰撳�间负"false"鏃剁鐢� \ No newline at end of file diff --git a/public/options.json b/public/options.json index 20cd20a..bf2dc44 100644 --- a/public/options.json +++ b/public/options.json @@ -6,7 +6,7 @@ "externalDatabase": "mkdata_kress_test", "lineColor": "", "filter": "false", - "defaultApp": "mkindustry", + "defaultApp": "mk", "defaultLang": "zh-CN", "WXAppID": "", "debugger": false, diff --git a/src/api/index.js b/src/api/index.js index 9201129..11224af 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -58,7 +58,7 @@ localStorage.removeItem('localRole_id') sessionStorage.clear() - sessionStorage.setItem('loginError', JSON.stringify({request: res.config ? res.config.data : '', response: JSON.stringify(res.data)})) + sessionStorage.setItem('loginError', JSON.stringify({url: res.config ? res.config.url : '', request: res.config ? res.config.data : '', response: JSON.stringify(res.data)})) window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') window.location.reload() } @@ -69,7 +69,7 @@ if (window.debugger === true) { response.data.ErrCode = 'E' return Promise.resolve(response.data) - } else { + } else if (!sessionStorage.getItem('loginError')) { setCurrentUrl(response) } } else { @@ -181,7 +181,8 @@ func: 's_visitor_login', timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), SessionUid: _SessionUid, - TypeCharOne: 'pc' + TypeCharOne: 'pc', + kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)) } param.LText = md5(window.btoa(_SessionUid + param.timestamp)) @@ -223,7 +224,9 @@ way_no: 'sms_vcode', systemType: options.sysType, login_city: city, - login_id_address: ipAddress + login_id_address: ipAddress, + kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)), + device_id: localStorage.getItem('SessionUid') } param.appkey = window.GLOB.appkey || '' @@ -260,7 +263,9 @@ systemType: options.sysType, Type: 'S', login_city: city, - login_id_address: ipAddress + login_id_address: ipAddress, + kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)), + device_id: localStorage.getItem('SessionUid') } param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -694,7 +699,15 @@ } }) param.sign = md5(values) - param.t = new Date().getTime() + param.t = new Date().getTime(); + + ['arr_field', 'LText_field', 'custom_script', 'LText1', 'LText', 'LText2', 'DateCount'].forEach(key => { + if (param[key]) { + let val = param[key] + delete param[key] + param[key] = val + } + }) return param } diff --git a/src/assets/css/main.scss b/src/assets/css/main.scss index a137096..d9922e3 100644 --- a/src/assets/css/main.scss +++ b/src/assets/css/main.scss @@ -123,15 +123,18 @@ } // 閲嶇疆鏃堕棿鎻掍欢鏃堕棿婊氬姩鏉� -.ant-calendar-time-picker-select:hover::-webkit-scrollbar { - width: 7px; +.ant-calendar-time-picker-select { + overflow-y: auto!important; } -.ant-calendar-time-picker-select:hover::-webkit-scrollbar-thumb { +.ant-calendar-time-picker-select::-webkit-scrollbar { + width: 6px; +} +.ant-calendar-time-picker-select::-webkit-scrollbar-thumb { border-radius: 5px; - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13); - background: rgba(0, 0, 0, 0.13); + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.08); + background: rgba(0, 0, 0, 0.08); } -.ant-calendar-time-picker-select:hover::-webkit-scrollbar-track { +.ant-calendar-time-picker-select::-webkit-scrollbar-track { box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05); border-radius: 3px; border: 1px solid rgba(0, 0, 0, 0.07); @@ -163,7 +166,7 @@ width: 100%; display: inline-block; .ant-calendar-picker { - width: 100%; + width: 100%!important; } } .ant-calendar-picker-container { @@ -443,4 +446,26 @@ // } // .ant-table.ant-table-mini .ant-table-tbody > tr > td { // padding: 4px 4px; -// } \ No newline at end of file +// } +.mk-date-picker.minute { + .ant-calendar-time-picker-combobox { + .ant-calendar-time-picker-select { + width: 50%; + } + + >.ant-calendar-time-picker-select:last-child { + display: none; + } + } +} +.mk-date-picker.hour { + .ant-calendar-time-picker-combobox { + .ant-calendar-time-picker-select { + width: 100%; + } + + >.ant-calendar-time-picker-select:not(:first-child) { + display: none; + } + } +} \ No newline at end of file diff --git a/src/assets/css/viewstyle.scss b/src/assets/css/viewstyle.scss index 588eb0a..17f3272 100644 --- a/src/assets/css/viewstyle.scss +++ b/src/assets/css/viewstyle.scss @@ -413,9 +413,14 @@ .system-color { color: $color6; } + .system-background { + background: $color6; + border-color: $color6; + color: #ffffff; + } .ant-timeline.system { .ant-timeline-item-tail { - border-color: $color2;; + border-color: $color2; } } .custom-tab-form-box .mk-normal-form-title.mkbtn { diff --git a/src/assets/img/minview.png b/src/assets/img/minview.png new file mode 100644 index 0000000..7cffe9a --- /dev/null +++ b/src/assets/img/minview.png Binary files differ diff --git a/src/assets/mobimg/commonbar.png b/src/assets/mobimg/commonbar.png new file mode 100644 index 0000000..9b0822f --- /dev/null +++ b/src/assets/mobimg/commonbar.png Binary files differ diff --git a/src/assets/mobimg/voucher.jpg b/src/assets/mobimg/voucher.jpg new file mode 100644 index 0000000..82a4512 --- /dev/null +++ b/src/assets/mobimg/voucher.jpg Binary files differ diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx index dca77b8..5b2824b 100644 --- a/src/components/header/index.jsx +++ b/src/components/header/index.jsx @@ -38,7 +38,8 @@ visible: false, // 淇敼瀵嗙爜妯℃�佹 dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, confirmLoading: false, - userName: sessionStorage.getItem('User_Name'), + userName: '', + fullName: '', logourl: window.GLOB.mainlogo, appVersion: window.GLOB.appVersion, loginVisible: false, @@ -189,10 +190,19 @@ const { menulist, thdMenuList } = this.getMenulist(result) + let systems = [] + if ((options.sysType === 'local' || options.sysType === 'SSO') && result.sys_list) { + systems = result.sys_list + + if (options.sysType === 'local' && window.GLOB.systemType !== 'production' && systems.length > 10) { + systems.length = 10 + } + } + this.setState({ menulist, thdMenuList, - systems: window.GLOB.systemType === 'production' || options.sysType === 'SSO' ? (result.sys_list || []) : [] + systems: systems }) let mainMenu = menulist[0] || '' @@ -446,7 +456,6 @@ message: result.message, duration: 10 }) - return } else if (result.func_detail && result.func_detail.length > 0) { this.writeFuncs(result.func_detail) } @@ -551,18 +560,40 @@ url = url + '/' } - let href = url + 'index.html#/ssologin/' + window.btoa(window.encodeURIComponent(JSON.stringify({ - UserID: sessionStorage.getItem('UserID'), - LoginUID: sessionStorage.getItem('LoginUID'), - User_Name: sessionStorage.getItem('User_Name'), - Full_Name: sessionStorage.getItem('Full_Name'), - avatar: sessionStorage.getItem('avatar'), - dataM: system.dataM ? 'true' : '', - debug: system.debug || '', - role_id: system.role_id || '' - }))) + let key = Utils.getuuid() - window.open(href) + let _param = { + func: 'webapi_scan_binding_key', + binding_type: 'mk', + scan_type: 'toggle', + scan_appkey: system.scan_appkey, + id: key + } + + Api.getSystemConfig(_param).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } else if (res.thd_party_appid && res.thd_party_member_id && res.thd_party_openid) { + let href = url + 'admin/index.html#/ssologin/' + window.btoa(window.encodeURIComponent(JSON.stringify({ + appid: res.thd_party_appid, + memberId: res.thd_party_member_id, + openid: res.thd_party_openid, + key: key + }))) + + window.open(href) + } else { + notification.warning({ + top: 92, + message: '淇℃伅缂哄け锛岃鑱旂郴绠$悊鍛橈紒', + duration: 5 + }) + } + }) } dropdownMenuChange = (visible) => { @@ -579,6 +610,15 @@ UNSAFE_componentWillMount () { // 缁勪欢鍔犺浇鏃讹紝鑾峰彇鑿滃崟鏁版嵁 this.getRolesMenu() + + let fullName = sessionStorage.getItem('Full_Name') || '' + let userName = sessionStorage.getItem('User_Name') || '' + + if (fullName.toLowerCase() === userName.toLowerCase()) { + userName = '' + } + + this.setState({fullName, userName}) } componentDidMount () { @@ -586,6 +626,12 @@ setTimeout(() => { Api.getAppVersion().then(() => {}, () => {}) }, 1000) + // Api.genericInterface({ + // func: 's_get_fcc_account_data', + // fcc_date: '2022-03-01', + // search_type: '' + // }).then(res => { + // }) } shouldComponentUpdate (nextProps, nextState) { @@ -802,7 +848,7 @@ <div> <img src={this.state.avatar || avatar} alt=""/> <span> - <span className="username">{this.state.userName}</span> <DownOutlined /> + <span className="username"><span>{this.state.fullName}</span>{this.state.userName ? <span>{this.state.userName}</span> : null}</span> <DownOutlined /> </span> </div> </Dropdown> diff --git a/src/components/header/index.scss b/src/components/header/index.scss index 78fb275..27850ef 100644 --- a/src/components/header/index.scss +++ b/src/components/header/index.scss @@ -97,12 +97,21 @@ color: #ffffff; font-size: 0.95rem; .username { + vertical-align: middle; display: inline-block; - height: 30px; - max-width: 95px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; + span { + display: block; + line-height: 15px; + padding: 0 3px; + font-size: 0.95rem; + max-width: 100px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + span + span { + font-size: 12px; + } } } } diff --git a/src/components/header/loginform.jsx b/src/components/header/loginform.jsx index be94096..6e066ec 100644 --- a/src/components/header/loginform.jsx +++ b/src/components/header/loginform.jsx @@ -115,13 +115,13 @@ ] })(<Input.Password onPressEnter={(e) => {this.handleSubmit(e, 'username')}} placeholder={this.state.dict['login.password']} prefix={<LockOutlined style={{ color: 'rgba(0,0,0,.25)' }} />} />)} </Form.Item> - <Form.Item style={{marginBottom: '10px'}}> + {window.GLOB.keepKey ? <Form.Item style={{marginBottom: '10px'}}> {getFieldDecorator('remember', { valuePropName: 'checked', initialValue: remember, })( <Checkbox onChange={this.rememberChange}>璁颁綇瀵嗙爜</Checkbox>)} - </Form.Item> + </Form.Item> : <div style={{height: '20px'}}></div>} </Form> ) } diff --git a/src/components/mk-icon/index.jsx b/src/components/mk-icon/index.jsx index eae7087..9fff348 100644 --- a/src/components/mk-icon/index.jsx +++ b/src/components/mk-icon/index.jsx @@ -12,8 +12,6 @@ DownloadOutlined, StepBackwardOutlined, StepForwardOutlined, - FastBackwardOutlined, - FastForwardOutlined, DoubleRightOutlined, DoubleLeftOutlined, ForwardOutlined, @@ -242,8 +240,6 @@ 'download': (props) => <DownloadOutlined {...props} />, 'step-backward': (props) => <StepBackwardOutlined {...props} />, 'step-forward': (props) => <StepForwardOutlined {...props} />, - 'fast-backward': (props) => <FastBackwardOutlined {...props} />, - 'fast-forward': (props) => <FastForwardOutlined {...props} />, 'double-right': (props) => <DoubleRightOutlined {...props} />, 'double-left': (props) => <DoubleLeftOutlined {...props} />, 'forward': (props) => <ForwardOutlined {...props} />, diff --git a/src/components/mutilform/index.jsx b/src/components/mutilform/index.jsx deleted file mode 100644 index 11ff99a..0000000 --- a/src/components/mutilform/index.jsx +++ /dev/null @@ -1,211 +0,0 @@ -import React, {Component} from 'react' -import PropTypes from 'prop-types' -import { Form, Row, Col, Input, InputNumber, Select, DatePicker } from 'antd' -import moment from 'moment' -import './index.scss' - -const dateFormat = 'YYYY-MM-DD' -const timeFormat = 'YYYY-MM-DD HH:mm:ss' - -class MainSearch extends Component { - static propTpyes = { - formlist: PropTypes.array, // 鎼滅储鏉′欢鍒楄〃 - dict: PropTypes.object, // 瀛楀吀椤� - data: PropTypes.any, // 琛ㄦ牸鏁版嵁 - cols: PropTypes.number - } - - state = { - formats: null, // 浜嬩欢鏍¢獙瑙勫垯 - datatype: null - } - - UNSAFE_componentWillMount () { - let formats = {} - let datatype = {} - this.props.formlist.forEach(item => { - if (item.InputType === 'date') { - formats[item.FieldName] = dateFormat - } else if (item.InputType === 'datetime') { - formats[item.FieldName] = timeFormat - } - datatype[item.FieldName] = item.InputType - }) - this.setState({ - formats: formats, - datatype: datatype - }) - } - - getFields() { - const { getFieldDecorator } = this.props.form - const fields = [] - this.props.formlist.forEach((item, index) => { - if (item.Hide !== 'false') return // input闅愯棌 - - let validate = item.Validate ? JSON.parse(item.Validate) : {} // 妫�楠屾槸鍚﹀繀濉� - let _required = validate.required || false - if (item.InputType === 'text') { // 鏂囨湰 - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.Label}> - {getFieldDecorator(item.FieldName, { - initialValue: this.props.data ? this.props.data[item.FieldName] : item.InitVal, - rules: [ - { - required: _required, - message: this.props.dict['form.required.input'] + item.Label + '!' - } - ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} - </Form.Item> - </Col> - ) - } else if (item.InputType === 'spinner') { // 鏁板瓧 - validate.min = (validate.min || validate.min === 0) ? validate.min : -Infinity - validate.max = (validate.max || validate.max === 0) ? validate.max : Infinity - validate.precision = (validate.precision || validate.precision === 0) ? validate.precision : '' - let _initval = (this.props.data ? this.props.data[item.FieldName] : item.InitVal) || 0 - let model = <InputNumber initialValue={_initval} disabled={item.readonly} min={validate.min} max={validate.max} /> - - if (validate.precision === +validate.precision) { // 鏁版嵁绮惧害 - model = <InputNumber initialValue={_initval} disabled={item.readonly} min={validate.min} max={validate.max} precision={validate.precision} /> - } - - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.Label}> - {getFieldDecorator(item.FieldName, { - initialValue: _initval, - rules: [ - { - required: _required, - message: this.props.dict['form.required.input'] + item.Label + '!' - } - ] - })(model)} - </Form.Item> - </Col> - ) - } else if (item.InputType === 'select') { // 涓嬫媺鎼滅储 - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.Label}> - {getFieldDecorator(item.FieldName, { - initialValue: this.props.data ? this.props.data[item.FieldName] : item.InitVal, - rules: [ - { - required: _required, - message: this.props.dict['form.required.select'] + item.Label + '!' - } - ] - })( - <Select - showSearch - filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - getPopupContainer={() => document.getElementById('form-box')} - > - {item.DynOptions.map(option => - <Select.Option id={option.id} title={option.text} key={option.id} value={option.id}>{option.text}</Select.Option> - )} - </Select> - )} - </Form.Item> - </Col> - ) - } else if (item.InputType === 'date') { // 鏃堕棿鎼滅储 - let _initval = this.props.data ? this.props.data[item.FieldName] : item.InitVal - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.Label}> - {getFieldDecorator(item.FieldName, { - initialValue: _initval ? moment(_initval, dateFormat) : null, - rules: [ - { - required: _required, - message: this.props.dict['form.required.select'] + item.Label + '!' - } - ] - })( - <DatePicker getCalendarContainer={() => document.getElementById('form-box')} format={dateFormat} /> - )} - </Form.Item> - </Col> - ) - } else if (item.InputType === 'datetime') { - let _initval = this.props.data ? this.props.data[item.FieldName] : item.InitVal - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.Label}> - {getFieldDecorator(item.FieldName, { - initialValue: _initval ? moment(_initval, timeFormat) : null, - rules: [ - { - required: _required, - message: this.props.dict['form.required.select'] + item.Label + '!' - } - ] - })( - <DatePicker showTime format={timeFormat} /> - )} - </Form.Item> - </Col> - ) - } - }) - - return fields - } - - handleConfirm = () => { - // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� - return new Promise((resolve, reject) => { - this.props.form.validateFieldsAndScroll((err, values) => { - if (!err) { - let formdata = {} - Object.keys(values).forEach(key => { - if (values[key] && typeof(values[key]) === 'object') { - formdata[key] = moment(values[key]).format(this.state.formats[key]) - } else if (values[key] || values[key] === 0) { - if (this.state.datatype[key] === 'spinner') { - formdata[key] = parseFloat(values[key]) - } else { - formdata[key] = values[key].replace(/\t|\v|\n|\r/g,'') - } - } else { - formdata[key] = '' - } - }) - resolve(formdata) - } else { - reject(err) - } - }) - }) - } - - handleReset = () => { - // 閲嶇疆 - this.props.form.resetFields() - } - - render() { - const formItemLayout = { - labelCol: { - xs: { span: 24 }, - sm: { span: 8 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 } - } - } - return ( - <Form {...formItemLayout} className="ant-advanced-search-form" id="form-box"> - <Row gutter={24}>{this.getFields()}</Row> - </Form> - ) - } -} - -export default Form.create()(MainSearch) \ No newline at end of file diff --git a/src/components/mutilform/index.scss b/src/components/mutilform/index.scss deleted file mode 100644 index 9914d8e..0000000 --- a/src/components/mutilform/index.scss +++ /dev/null @@ -1,17 +0,0 @@ -.ant-advanced-search-form.main-search { - padding: 0px 24px 20px; - border-bottom: 1px solid #d9d9d9; - .ant-form-item { - display: flex; - margin-bottom: 10px; - } - .ant-form-item-control-wrapper { - flex: 1; - } - .ant-form-item-label { - width: 100px; - } -} -.ant-advanced-search-form { - position: relative; -} diff --git a/src/components/normalform/modalform/index.jsx b/src/components/normalform/modalform/index.jsx index 7162b0c..6586950 100644 --- a/src/components/normalform/modalform/index.jsx +++ b/src/components/normalform/modalform/index.jsx @@ -109,7 +109,9 @@ if (cell.hidden) return - if (supItem.hidden) { + if (cell.skip && supItem.forbid) { // 涓婄骇琛ㄥ崟绂佺敤鏃讹紝姝よ〃鍗曚笉鍙楁帶鍒� + + } else if (supItem.hidden) { cell.hidden = true } else if (supItem.type === 'checkbox') { let vals = [...supItem.initval, ...item.values] @@ -261,7 +263,7 @@ } else if (item.type === 'source') { content = (<SourceComponent type="" placement="right"/>) } else if (item.type === 'table') { - content = (<MKTable columns={item.columns || []}/>) + content = (<MKTable columns={item.columns || []} actions={item.actions || []}/>) } if (!content) return diff --git a/src/components/normalform/modalform/index.scss b/src/components/normalform/modalform/index.scss index 2d38c93..4bd743d 100644 --- a/src/components/normalform/modalform/index.scss +++ b/src/components/normalform/modalform/index.scss @@ -57,4 +57,9 @@ width: 16%; } } + .ant-col-12 + .ant-col-24 + .ant-col-24 { + .ant-form-item-label { + width: 16%; + } + } } \ No newline at end of file diff --git a/src/components/normalform/modalform/mkSelect/index.jsx b/src/components/normalform/modalform/mkSelect/index.jsx index 73c44d9..0c9e069 100644 --- a/src/components/normalform/modalform/mkSelect/index.jsx +++ b/src/components/normalform/modalform/mkSelect/index.jsx @@ -106,20 +106,38 @@ const { value, config, options } = this.state if (config.type !== 'multiselect') { - return ( - <Select - showSearch - allowClear - value={value} - filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - onSelect={this.selectChange} - onChange={(val) => val === undefined && this.selectChange('')} - > - {options.map((option, i) => - <Select.Option key={i} disabled={option.disabled} value={option.value || option.field || ''}>{option.label || option.text}</Select.Option> - )} - </Select> - ) + if (config.extendName) { + return ( + <Select + showSearch + allowClear + value={value} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 || + option.props.extend.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onSelect={this.selectChange} + onChange={(val) => val === undefined && this.selectChange('')} + > + {options.map((option, i) => + <Select.Option key={i} disabled={option.disabled} extend={option[config.extendName] || ''} value={option.value || option.field || ''}>{option.label || option.text}</Select.Option> + )} + </Select> + ) + } else { + return ( + <Select + showSearch + allowClear + value={value} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onSelect={this.selectChange} + onChange={(val) => val === undefined && this.selectChange('')} + > + {options.map((option, i) => + <Select.Option key={i} disabled={option.disabled} value={option.value || option.field || ''}>{option.label || option.text}</Select.Option> + )} + </Select> + ) + } } else { return (<Select showSearch diff --git a/src/components/normalform/modalform/mkTable/index.jsx b/src/components/normalform/modalform/mkTable/index.jsx index 2760640..c5ae0e9 100644 --- a/src/components/normalform/modalform/mkTable/index.jsx +++ b/src/components/normalform/modalform/mkTable/index.jsx @@ -3,9 +3,10 @@ import { fromJS } from 'immutable' import { DndProvider, DragSource, DropTarget } from 'react-dnd' import { Table, Input, InputNumber, Popconfirm, Form, Select, Radio, Cascader, notification, Typography, Button } from 'antd' -import { PlusOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons' +import { PlusOutlined, EditOutlined, DeleteOutlined, ArrowRightOutlined } from '@ant-design/icons' import Utils from '@/utils/utils.js' +import MKEmitter from '@/utils/events.js' import ColorSketch from '@/mob/colorsketch' import asyncComponent from '@/utils/asyncComponent' import './index.scss' @@ -86,8 +87,8 @@ return <MkEditIcon allowClear/> } else if (inputType === 'select') { return ( - <Select> - {options.map((item, i) => (<Select.Option key={i} value={item.field || item.value}> {item.label || item.text} </Select.Option>))} + <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}> + {options.map((item, i) => (<Select.Option key={i} value={item.field || item.value}>{item.label || item.text}</Select.Option>))} </Select> ) } else if (inputType === 'multiStr') { @@ -165,6 +166,7 @@ } UNSAFE_componentWillMount () { + let actions = this.props.actions || [] let columns = fromJS(this.props.columns).toJS() let operation = { @@ -196,6 +198,7 @@ <span className="danger"><DeleteOutlined /></span> </Popconfirm> : null} {editingKey !== '' ? <span className="danger"><DeleteOutlined /></span> : null} + {actions.includes('view') ? <span className="copy" onClick={() => {editingKey === '' && this.changeMenu(record.menu)}}><ArrowRightOutlined /></span> : null} </div> ) } @@ -214,6 +217,24 @@ // return !is(fromJS(this.state), fromJS(nextState)) // } + changeMenu = (MenuId) => { + if (MenuId === 'IM') { + if (!sessionStorage.getItem('instantMessage')) return + + let param = { + MenuID: sessionStorage.getItem('instantMessage'), + copyMenuId: '', + type: 'view' + } + + param = window.btoa(window.encodeURIComponent(JSON.stringify(param))) + + MKEmitter.emit('changeEditMenu', {routerUrl: '/imdesign/' + param}) + } else { + MKEmitter.emit('changeEditMenu', {MenuID: MenuId}) + } + } + isEditing = record => record.uuid === this.state.editingKey cancel = () => { diff --git a/src/components/simpleform/index.jsx b/src/components/simpleform/index.jsx deleted file mode 100644 index 6788adb..0000000 --- a/src/components/simpleform/index.jsx +++ /dev/null @@ -1,198 +0,0 @@ -import React, {Component} from 'react' -import PropTypes from 'prop-types' -import { Form, Row, Col, Input, InputNumber, Select, DatePicker } from 'antd' -import moment from 'moment' -import './index.scss' - -const dateFormat = 'YYYY-MM-DD' -const timeFormat = 'YYYY-MM-DD HH:mm:ss' - -class MainSearch extends Component { - static propTpyes = { - formlist: PropTypes.array, // 鎼滅储鏉′欢鍒楄〃 - dict: PropTypes.object, // 瀛楀吀椤� - cols: PropTypes.number - } - - state = { - formats: null, // 浜嬩欢鏍¢獙瑙勫垯 - datatype: null - } - - UNSAFE_componentWillMount () { - let formats = {} - let datatype = {} - this.props.formlist.forEach(item => { - if (item.InputType === 'date') { - formats[item.FieldName] = dateFormat - } else if (item.InputType === 'datetime') { - formats[item.FieldName] = timeFormat - } - datatype[item.FieldName] = item.InputType - }) - this.setState({ - formats: formats, - datatype: datatype - }) - } - - getFields() { - const { getFieldDecorator } = this.props.form - const fields = [] - this.props.formlist.forEach((item, index) => { - if (item.type === 'text') { // 鏂囨湰鎼滅储 - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.label}> - {getFieldDecorator(item.key, { - initialValue: item.initVal || '', - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' - } - ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} - </Form.Item> - </Col> - ) - } else if (item.type === 'spinner') { // 鏁板瓧 - let min = item.hasOwnProperty('validate') && item.validate.hasOwnProperty('min') ? item.validate.min : -Infinity - let max = item.hasOwnProperty('validate') && item.validate.hasOwnProperty('max') ? item.validate.max : Infinity - let model = <InputNumber initialValue={item.initVal || 0} disabled={item.readonly} min={min} max={max} /> - - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.label}> - {getFieldDecorator(item.key, { - initialValue: item.initVal || 0, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' - } - ] - })(model)} - </Form.Item> - </Col> - ) - } else if (item.type === 'select') { // 涓嬫媺鎼滅储 - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.label}> - {getFieldDecorator(item.key, { - initialValue: item.initVal || '', - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' - } - ] - })( - <Select - showSearch - filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - getPopupContainer={() => document.getElementById('form-box')} - > - {item.options.map(option => - <Select.Option id={option.id} title={option.text} key={option.id} value={option.id}>{option.text}</Select.Option> - )} - </Select> - )} - </Form.Item> - </Col> - ) - } else if (item.type === 'date') { // 鏃堕棿鎼滅储 - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.label}> - {getFieldDecorator(item.key, { - initialValue: item.initVal ? moment(item.initVal, dateFormat) : null, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' - } - ] - })( - <DatePicker getCalendarContainer={() => document.getElementById('form-box')} format={dateFormat} /> - )} - </Form.Item> - </Col> - ) - } else if (item.type === 'datetime') { - fields.push( - <Col span={24 / this.props.cols} key={index}> - <Form.Item label={item.label}> - {getFieldDecorator(item.key, { - initialValue: item.initVal ? moment(item.initVal, timeFormat) : null, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' - } - ] - })( - <DatePicker showTime format={timeFormat} /> - )} - </Form.Item> - </Col> - ) - } - }) - - return fields - } - - handleConfirm = () => { - // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� - return new Promise((resolve, reject) => { - this.props.form.validateFieldsAndScroll((err, values) => { - if (!err) { - let formdata = {} - Object.keys(values).forEach(key => { - if (values[key] && typeof(values[key]) === 'object') { - formdata[key] = moment(values[key]).format(this.state.formats[key]) - } else if (values[key] || values[key] === 0) { - if (this.state.datatype[key] === 'spinner') { - formdata[key] = parseFloat(values[key]) - } else { - formdata[key] = values[key].replace(/\t|\v|\n|\r/g,'') - } - } else { - formdata[key] = '' - } - }) - resolve(formdata) - } else { - reject(err) - } - }) - }) - } - - handleReset = () => { - // 閲嶇疆 - this.props.form.resetFields() - } - - render() { - const formItemLayout = { - labelCol: { - xs: { span: 24 }, - sm: { span: 8 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 } - } - } - return ( - <Form {...formItemLayout} className="ant-advanced-search-form" id="form-box"> - <Row gutter={24}>{this.getFields()}</Row> - </Form> - ) - } -} - -export default Form.create()(MainSearch) \ No newline at end of file diff --git a/src/components/simpleform/index.scss b/src/components/simpleform/index.scss deleted file mode 100644 index 9914d8e..0000000 --- a/src/components/simpleform/index.scss +++ /dev/null @@ -1,17 +0,0 @@ -.ant-advanced-search-form.main-search { - padding: 0px 24px 20px; - border-bottom: 1px solid #d9d9d9; - .ant-form-item { - display: flex; - margin-bottom: 10px; - } - .ant-form-item-control-wrapper { - flex: 1; - } - .ant-form-item-label { - width: 100px; - } -} -.ant-advanced-search-form { - position: relative; -} diff --git a/src/index.js b/src/index.js index fd5d16d..1831681 100644 --- a/src/index.js +++ b/src/index.js @@ -66,7 +66,6 @@ } catch (e) {} } sessionStorage.removeItem('isEditState') -sessionStorage.removeItem('loginError') sessionStorage.setItem('role_id', sessionStorage.getItem('localRole_id') || '') sessionStorage.setItem('dataM', sessionStorage.getItem('localDataM') || '') @@ -92,6 +91,8 @@ GLOB.lineColor = config.lineColor || '' GLOB.licenseKey = config.licenseKey || '' GLOB.probation = false + GLOB.watermark = config.watermark !== false + GLOB.keepKey = config.keepPassword !== 'false' if (config.externalDatabase !== false && config.externalDatabase !== 'false' && config.externalDatabase !== undefined) { GLOB.externalDatabase = config.externalDatabase ? `[${config.externalDatabase}]..` : '' @@ -105,44 +106,54 @@ if (config.probation && /^20\d{2}-\d{2}-\d{2}$/.test(config.probation) && new Date(config.probation).getTime() > new Date().getTime()) { GLOB.probation = true } + + if (!config.mainSystemApi) { + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">绯荤粺鏈缃崟鐐瑰湴鍧�锛岃鑱旂郴绠$悊鍛橈紒</div>' + return + } else if (/http(s?):\/\/sso.mk9h.cn\/cloud/ig.test(config.mainSystemApi)) { + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">姝e紡绯荤粺涓嶅彲浣跨敤 http://sso.mk9h.cn/cloud 鍋氫负鍗曠偣鍦板潃锛岃鑱旂郴绠$悊鍛橈紒</div>' + return + } else if (/http(s?):\/\/cloud.mk9h.cn/ig.test(config.mainSystemApi)) { + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">姝e紡绯荤粺涓嶅彲浣跨敤 http://cloud.mk9h.cn 鍋氫负鍗曠偣鍦板潃锛岃鑱旂郴绠$悊鍛橈紒</div>' + return + } } else if (options.sysType === 'local') { GLOB.probation = true GLOB.systemType = '' + + GLOB.mainSystemApi = 'https://cloud.positecgroup.com/webapi/dostars' + + // GLOB.mainSystemApi = 'http://sso.mk9h.cn/cloud/webapi/dostars' + + if (GLOB.watermark) { + GLOB.dataFormat = true + } } else { GLOB.systemType = '' + GLOB.mainSystemApi = '' + } + + GLOB.debugger = options.sysType === 'local' && GLOB.systemType !== 'production' + + if (options.sysType !== 'cloud') { + if (config.appkey === options.cakey) { + document.getElementById('root').innerHTML = '<div style="text-align: center; font-size: 30px; margin-top: 40vh;">涓嶅彲浣跨敤浜戠appkey锛岃鑱旂郴绠$悊鍛橈紒</div>' + return + } } if (options.sysType === 'cloud') { // cloud涓嶅彲璁剧疆鍗曠偣鏈嶅姟鍣ㄥ湴鍧�,浜戠appkey涓虹郴缁熻缃� GLOB.appkey = options.cakey - GLOB.mainSystemApi = '' } else if (options.sysType === 'SSO') { // sso涓嶅彲璁剧疆鍗曠偣鏈嶅姟鍣ㄥ湴鍧� - GLOB.mainSystemApi = '' - if (config.appkey === options.cakey) { - GLOB.appkey = '' - console.warn('鍗曠偣绯荤粺appkey涓嶅彲涓庝簯绔浉鍚�') - } else { - GLOB.appkey = config.appkey - } + GLOB.appkey = config.appkey } else if (options.sysType === 'local') { // 涓氬姟绯荤粺 - if (config.appkey === options.cakey) { - GLOB.appkey = '' - console.warn('涓氬姟绯荤粺appkey涓嶅彲涓庝簯绔浉鍚�') - } else { - GLOB.appkey = config.appkey - } - if (config.mainSystemApi) { + GLOB.appkey = config.appkey + if (GLOB.systemType === 'production') { let systemApi = config.mainSystemApi - // 涓氬姟绯荤粺涓嶅厑璁歌繛鎺ヤ簯绔紝涓氬姟绯荤粺杩炴帴sso.mk9h.cn鏃讹紝鏁版嵁铏氬寲澶勭悊 - if (systemApi.indexOf('cloud.mk9h.cn') > -1) { - systemApi = '' - } else if (/index.html/ig.test(systemApi)) { + if (/index.html/ig.test(systemApi)) { systemApi = systemApi.replace(/index.html.*/ig, 'webapi/dostars') } else if (!/webapi\/dostars$/ig.test(systemApi)) { systemApi = systemApi.replace(/\/?$/, '/webapi/dostars') - } - - if (systemApi.indexOf('sso.mk9h.cn') > -1 && process.env.NODE_ENV === 'production') { - GLOB.dataFormat = true } GLOB.mainSystemApi = systemApi @@ -187,9 +198,16 @@ } } + if (/^https/.test(window.location.protocol)) { // https杞崲 + let meta = document.createElement('meta') + meta.content = 'upgrade-insecure-requests' + meta.httpEquiv = 'Content-Security-Policy' + document.getElementsByTagName('head')[0].appendChild(meta) + } + document.title = GLOB.platTitle || '' - if (config.filter === 'true') { + if (config.filter === 'true' || (/^20\d{2}-\d{2}-\d{2}$/.test(config.filter) && new Date(config.filter).getTime() + 86400000 >= new Date().getTime())) { let html = document.getElementsByTagName('html')[0] if (html) { @@ -204,10 +222,12 @@ GLOB.linkurl = GLOB.linkurl + 'index.html' } GLOB.service = _service ? _service + '/' : '' + GLOB.host = window.location.host + (_service ? '_' + _service : '') } else { GLOB.linkurl = '' GLOB.location = config.host GLOB.service = config.service + GLOB.host = config.host.replace(/http(s)?:\/\//ig, '') + (config.service ? '_' + config.service.replace(/\//ig, '') : '') } let mark = sessionStorage.getItem('system_mark') @@ -235,6 +255,10 @@ writable: false, value: GLOB.systemType }) + Object.defineProperty(GLOB, 'debugger', { + writable: false, + value: GLOB.debugger + }) Object.defineProperty(GLOB, 'mainSystemApi', { writable: false, value: GLOB.mainSystemApi @@ -242,10 +266,6 @@ Object.defineProperty(GLOB, 'linkurl', { writable: false, value: GLOB.linkurl - }) - Object.defineProperty(GLOB, 'dataFormat', { - writable: false, - value: GLOB.dataFormat }) Object.defineProperty(window, 'GLOB', { writable: false, diff --git a/src/locales/en-US/model.js b/src/locales/en-US/model.js index 4421fbf..12c2d81 100644 --- a/src/locales/en-US/model.js +++ b/src/locales/en-US/model.js @@ -100,7 +100,6 @@ 'model.form.link': 'Linkage menu', 'model.form.linkform': 'Linkage form', 'model.form.dateday': 'Date(Day)', - 'model.form.datetime': 'Date(Second)', 'model.form.dateweek': 'Date(Week)', 'model.form.datemonth': 'Date(Month)', 'model.form.daterange': 'Date(Range)', diff --git a/src/locales/zh-CN/model.js b/src/locales/zh-CN/model.js index 0cc3079..59648cb 100644 --- a/src/locales/zh-CN/model.js +++ b/src/locales/zh-CN/model.js @@ -100,7 +100,6 @@ 'model.form.link': '鑱斿姩鑿滃崟', 'model.form.linkform': '鍏宠仈琛ㄥ崟', 'model.form.dateday': '鏃ユ湡锛堝ぉ锛�', - 'model.form.datetime': '鏃ユ湡锛堝垎/绉掞級', 'model.form.dateweek': '鏃ユ湡锛堝懆锛�', 'model.form.datemonth': '鏃ユ湡锛堟湀锛�', 'model.form.daterange': '鏃ユ湡锛堝尯闂达級', diff --git a/src/menu/bgcontroller/index.jsx b/src/menu/bgcontroller/index.jsx index ef3cdd6..9a0f560 100644 --- a/src/menu/bgcontroller/index.jsx +++ b/src/menu/bgcontroller/index.jsx @@ -123,6 +123,8 @@ <Option value="100%">100%</Option> <Option value="100% 100%">100% 100%</Option> <Option value="auto 100%">auto 100%</Option> + <Option value="100% auto">100% auto</Option> + <Option value="auto">auto</Option> <Option value="contain">contain</Option> <Option value="cover">cover</Option> </Select> diff --git a/src/menu/components/card/balcony/index.jsx b/src/menu/components/card/balcony/index.jsx index cd956c7..08638ca 100644 --- a/src/menu/components/card/balcony/index.jsx +++ b/src/menu/components/card/balcony/index.jsx @@ -39,7 +39,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 @@ -214,7 +213,7 @@ <div className="mk-popover-control"> <PlusOutlined className="plus" title="娣诲姞鍏冪礌" onClick={this.addElement} /> <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} /> - <NormalForm title="娴姩鍗¤缃�" width={800} update={this.updateWrap} getForms={this.getWrapForms}> + <NormalForm title="娴姩鍗¤缃�" width={850} update={this.updateWrap} getForms={this.getWrapForms}> <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <CopyComponent type="balcony" card={card}/> diff --git a/src/menu/components/card/balcony/index.scss b/src/menu/components/card/balcony/index.scss index 8359299..97c2b34 100644 --- a/src/menu/components/card/balcony/index.scss +++ b/src/menu/components/card/balcony/index.scss @@ -85,3 +85,10 @@ z-index: 1; box-shadow: 0px 0px 4px #1890ff; } +.mk-mob-view { + .check-all { + .ant-checkbox-inner { + border-radius: 10px; + } + } +} \ No newline at end of file diff --git a/src/menu/components/card/balcony/options.jsx b/src/menu/components/card/balcony/options.jsx index 5adf31f..77696ba 100644 --- a/src/menu/components/card/balcony/options.jsx +++ b/src/menu/components/card/balcony/options.jsx @@ -1,3 +1,4 @@ +import React from 'react' import { fromJS } from 'immutable' import MenuUtils from '@/utils/utils-custom.js' @@ -57,7 +58,12 @@ field: 'linkType', label: '鍙楁帶绫诲瀷', initval: wrap.linkType || 'static', - tooltip: '缁勪欢涓庡叾浠栫粍浠朵箣闂寸殑鎺у埗绫诲瀷锛岀嫭绔嬭〃绀轰笌鍏朵粬娌℃湁鍏宠仈銆�', + tooltip: <div> + <div>缁勪欢涓庡叾浠栫粍浠朵箣闂寸殑鎺у埗绫诲瀷: </div> + <div>1銆佺嫭绔嬭〃绀轰笌鍏朵粬缁勪欢娌℃湁鍏宠仈銆�</div> + <div>2銆佸悓姝ョ被鍨嬩腑鍏紡銆佹寜閽互鍙婂叏閫夊厓绱犳瘮杈冪壒娈婏紝鎿嶄綔鏁版嵁涓哄叾鍚屾缁勪欢鐨勬暟鎹��</div> + <div>3銆佷笂绾х被鍨嬮渶娣诲姞褰撳墠缁勪欢鐨勪笂绾х粍浠讹紝骞跺彲璁剧疆褰撳墠缁勪欢涓哄缁堟樉绀猴紝杩樻槸鍙湁鍦ㄤ笂绾х粍浠堕�夎鍚庢墠鏄剧ず銆�</div> + </div>, required: false, options: [ {value: 'static', label: '鐙珛'}, @@ -118,20 +124,17 @@ field: 'position', label: '浣嶇疆', initval: wrap.position || 'relative', - tooltip: '浣跨敤鍥哄畾瀹氫綅鏃讹紝璇峰湪娴嬭瘯鐜涓煡鐪嬪畾浣嶆晥鏋溿��', + tooltip: '鐩稿瀹氫綅鏄浉瀵瑰叾姝e父浣嶇疆鐨勫亸绉伙紱缁濆瀹氫綅鏄浉瀵逛簬鍘熺粍浠剁殑鍋忕Щ锛屽師缁勪欢楂樺害鍙涓�0锛涘浐瀹氬畾浣嶆槸鐩稿浜庣獥鍙g殑浣嶇疆锛屽畾浣嶆晥鏋滄祴璇曠幆澧冧腑鏌ョ湅銆�', required: false, options: [ {value: 'relative', label: '鐩稿瀹氫綅'}, + {value: 'absolute', label: '缁濆瀹氫綅'}, {value: 'fixed', label: '鍥哄畾瀹氫綅'}, ], controlFields: [ {field: 'quick', values: ['fixed']}, - {field: 'top', values: ['fixed']}, - {field: 'right', values: ['fixed']}, - {field: 'bottom', values: ['fixed']}, - {field: 'left', values: ['fixed']}, - {field: 'realwidth', values: ['fixed']}, - {field: 'transform', values: ['fixed']}, + {field: 'realwidth', values: ['fixed', 'absolute']}, + {field: 'transform', values: ['fixed', 'absolute']}, ] }, { @@ -206,6 +209,18 @@ ] }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/card/cardcellcomponent/dragaction/action.jsx b/src/menu/components/card/cardcellcomponent/dragaction/action.jsx index 364400e..8aa9cc2 100644 --- a/src/menu/components/card/cardcellcomponent/dragaction/action.jsx +++ b/src/menu/components/card/cardcellcomponent/dragaction/action.jsx @@ -1,7 +1,7 @@ import React from 'react' import { useDrag, useDrop } from 'react-dnd' import { Popover, Button, Switch, Checkbox } from 'antd' -import { EditOutlined, CopyOutlined, CloseOutlined, FontColorsOutlined, ProfileOutlined } from '@ant-design/icons' +import { EditOutlined, CopyOutlined, CloseOutlined, FontColorsOutlined, ProfileOutlined, WarningOutlined } from '@ant-design/icons' import { resetStyle } from '@/utils/utils-custom.js' import MkIcon from '@/components/mk-icon' @@ -30,12 +30,15 @@ }) let hasProfile = false + let warning = null if (['pop', 'prompt', 'exec', 'form'].includes(card.OpenType)) { hasProfile = true } else if (card.OpenType === 'excelIn' || card.OpenType === 'excelOut') { hasProfile = true } else if (card.funcType === 'print') { hasProfile = true + } else if (card.OpenType === 'innerpage' && !card.pageTemplate) { + warning = <WarningOutlined style={{color: 'orange', marginLeft: '5px'}}/> } let btnElement = null @@ -43,16 +46,16 @@ if (card.OpenType === 'form') { if (card.formType === 'switch') { - btnElement = (<Switch style={_style} size={card.size} checkedChildren={card.openText || ''} unCheckedChildren={card.closeText || ''}/>) + btnElement = (<Switch style={_style} className={card.size === 'large' ? 'ant-switch-large' : ''} size={card.size} checkedChildren={card.openText || ''} unCheckedChildren={card.closeText || ''}/>) } else { btnElement = (<Checkbox style={_style}></Checkbox>) } } else if (card.show === 'icon') { - btnElement = (<Button style={_style} type="link"><MkIcon type={card.icon}/></Button>) + btnElement = (<Button style={_style} type="link"><MkIcon type={card.icon}/>{warning}</Button>) } else if (card.show === 'link') { - btnElement = (<Button style={_style} type="link">{card.label}{card.icon ? <MkIcon type={card.icon}/> : null}</Button>) + btnElement = (<Button style={_style} type="link">{card.label}{card.icon ? <MkIcon type={card.icon}/> : null}{warning}</Button>) } else { - btnElement = (<Button style={_style}> {card.icon ? <MkIcon type={card.icon}/> : null}{card.label} </Button>) + btnElement = (<Button style={_style}>{card.icon ? <MkIcon type={card.icon}/> : null}{card.label}{warning}</Button>) } return ( diff --git a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx index 9b75923..480b17c 100644 --- a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx +++ b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx @@ -27,6 +27,7 @@ '5:1': '20%', '6:1': '16.67%', '7:1': '14.29%', '8:1': '12.5%', '9:1': '11.11%', '10:1': '10%', '3:4': '133.33%', '2:3': '150%', '9:16': '177.78%' } +const appType = sessionStorage.getItem('appType') const Card = ({ id, parent, fields, card, moveCard, findCard, editCard, delCard, copyCard, changeStyle, updateMarks }) => { const originalIndex = findCard(id).index @@ -74,6 +75,10 @@ ) } else if (card.eleType === 'text' || card.eleType === 'number') { let val = `${card.prefix || ''}${card.datatype === 'static' ? (card.value || '') : (card.field || '')}${card.postfix || ''}` + if (card.fixStyle === 'alone') { + let _s = {fontSize: card.fixSize, color: card.fixColor, marginLeft: card.fixLeft, marginRight: card.fixRight} + val = <><span style={_s}>{card.prefix || ''}</span>{`${card.datatype === 'static' ? (card.value || '') : (card.field || '')}`}<span style={_s}>{card.postfix || ''}</span></> + } return ( <div className={'ant-mk-text line' + (card.height || '')} style={{height: card.innerHeight || 'auto'}}>{val}</div> ) @@ -141,15 +146,25 @@ </div> ) } else if (card.eleType === 'currentDate') { + let val = `${card.prefix || ''}${moment().format(card.dateFormat)}${card.postfix || ''}` + if (card.fixStyle === 'alone') { + let _s = {fontSize: card.fixSize, color: card.fixColor, marginLeft: card.fixLeft, marginRight: card.fixRight} + val = <><span style={_s}>{card.prefix || ''}</span>{moment().format(card.dateFormat)}<span style={_s}>{card.postfix || ''}</span></> + } return ( <div className="ant-mk-date"> - {`${card.prefix || ''}${moment().format(card.dateFormat)}${card.postfix || ''}`} + {val} </div> ) } else if (card.eleType === 'formula') { + let val = `${card.prefix || ''}${card.formula}${card.postfix || ''}` + if (card.fixStyle === 'alone') { + let _s = {fontSize: card.fixSize, color: card.fixColor, marginLeft: card.fixLeft, marginRight: card.fixRight} + val = <><span style={_s}>{card.prefix || ''}</span>{card.formula}<span style={_s}>{card.postfix || ''}</span></> + } return ( <div className="ant-mk-date"> - {`${card.prefix || ''}${card.formula}${card.postfix || ''}`} + {val} </div> ) } @@ -160,6 +175,12 @@ e.stopPropagation() MKEmitter.emit('clickComponent', card, parent, 'cardcell') } + } + + let able = true + if ((appType === 'mob' || appType === 'pc') && parent && (parent.setting.click === 'menu' || parent.setting.click === 'menus')) { + // if ((appType === 'mob' || appType === 'pc') && parent && parent.setting.click === 'menu') { + able = false } return ( @@ -173,7 +194,7 @@ </div> } trigger="hover"> <div ref={node => drag(drop(node))} className={'ant-col card-cell ant-col-' + card.width}> - <div style={_style} onClick={clickComponent} id={card.uuid}> + <div style={_style} onClick={clickComponent} onDoubleClick={() => able && editCard(id)} id={card.uuid}> {getContent()} </div> </div> diff --git a/src/menu/components/card/cardcellcomponent/dragaction/index.jsx b/src/menu/components/card/cardcellcomponent/dragaction/index.jsx index abb9604..bba223b 100644 --- a/src/menu/components/card/cardcellcomponent/dragaction/index.jsx +++ b/src/menu/components/card/cardcellcomponent/dragaction/index.jsx @@ -58,6 +58,13 @@ copycard.originCard = card try { + delete _val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + _val.$srcId = srcid + } + _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) } catch (e) { console.warn('Stringify Failure') diff --git a/src/menu/components/card/cardcellcomponent/dragaction/index.scss b/src/menu/components/card/cardcellcomponent/dragaction/index.scss index b851536..ab11c7e 100644 --- a/src/menu/components/card/cardcellcomponent/dragaction/index.scss +++ b/src/menu/components/card/cardcellcomponent/dragaction/index.scss @@ -122,4 +122,25 @@ background-position: center center; background-repeat: no-repeat; } + .ant-switch-large { + min-width: 60px; + height: 30px; + line-height: 28px; + + .ant-switch-inner { + margin-right: 5px; + margin-left: 30px; + font-size: 16px; + } + } + .ant-switch-large.ant-switch-checked { + .ant-switch-inner { + margin-right: 30px; + margin-left: 5px; + } + } + .ant-switch-large::after { + width: 26px; + height: 26px; + } } \ No newline at end of file diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx index 5a4fad8..5395ef5 100644 --- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx +++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx @@ -15,8 +15,8 @@ const cardTypeOptions = { sequence: ['eleType', 'width'], - text: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix', 'link', 'noValue'], - number: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix'], + text: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix', 'link', 'noValue', 'bgImage', 'fixStyle'], + number: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix', 'noValue', 'fixStyle'], picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'maxWidth', 'link', 'noValue'], video: ['eleType', 'datatype', 'width', 'aspectRatio', 'autoPlay', 'loop', 'noValue'], icon: ['eleType', 'icon', 'datatype', 'width'], @@ -24,8 +24,8 @@ splitline: ['eleType', 'color', 'width', 'borderWidth'], barcode: ['eleType', 'datatype', 'width', 'barHeight', 'displayValue', 'interval', 'noValue'], qrcode: ['eleType', 'datatype', 'width', 'qrWidth', 'color', 'url', 'noValue'], - currentDate: ['eleType', 'width', 'dateFormat', 'prefix', 'postfix'], - formula: ['eleType', 'width', 'height', 'prefix', 'postfix', 'eval', 'formula'], + currentDate: ['eleType', 'width', 'dateFormat', 'prefix', 'postfix', 'fixStyle'], + formula: ['eleType', 'width', 'height', 'prefix', 'postfix', 'eval', 'formula', 'noValue', 'fixStyle'], } class MainSearch extends Component { @@ -43,12 +43,13 @@ datatype: '', showType: '', showInfo: 'false', + fixStyle: '', link: '' } UNSAFE_componentWillMount () { const { card, config } = this.props - let _options = this.getOptions(card.eleType, card.datatype, card.link, (card.showType || 'line'), card.showInfo) + let _options = this.getOptions(card.eleType, card.datatype, card.link, (card.showType || 'line'), card.showInfo, card.fixStyle || '') this.setState({ link: card.link, @@ -56,21 +57,26 @@ datatype: card.datatype, showType: card.showType || 'line', showInfo: card.showInfo || 'false', + fixStyle: card.fixStyle || '', formlist: this.props.formlist.map(item => { item.hidden = !_options.includes(item.key) - if (item.key === 'field' || item.key === 'linkurl') { + if (item.key === 'field' || item.key === 'linkurl' || item.key === 'bgImage') { item.options = [] config.columns.forEach(col => { + let label = col.label + if (label !== col.field) { + label = col.field + ' ' + col.label + } if (/^(Int|Decimal)/ig.test(col.datatype) && (card.eleType === 'number' || card.eleType === 'slider')) { item.options.push({ value: col.field, - text: col.label + text: label }) } else if (/^(Nvarchar|date)/ig.test(col.datatype) && card.eleType !== 'number' && card.eleType !== 'slider') { item.options.push({ value: col.field, - text: col.label + text: label }) } }) @@ -95,12 +101,15 @@ }) } - getOptions = (eleType, datatype, link, showType, showInfo) => { + getOptions = (eleType, datatype, link, showType, showInfo, fixStyle) => { let _options = fromJS(cardTypeOptions[eleType]).toJS() // 閫夐」鍒楄〃 if (['text', 'number', 'picture', 'slider', 'barcode', 'qrcode', 'video'].includes(eleType)) { if (datatype === 'dynamic') { _options.push('field') + if (eleType === 'number') { + _options.push('decimal') + } } else if (eleType === 'picture' || eleType === 'video') { _options.push('url') } else { @@ -128,6 +137,9 @@ _options.push('tooltip') } } + if (_options.includes('fixStyle') && fixStyle === 'alone') { + _options.push('fixSize', 'fixColor', 'fixLeft', 'fixRight') + } return _options } @@ -140,10 +152,10 @@ */ selectChange = (key, value, option) => { const { card, config } = this.props - const { datatype, eleType, showType, showInfo } = this.state + const { datatype, eleType, showType, showInfo, fixStyle } = this.state if (key === 'eleType') { - let _options = this.getOptions(value, datatype, '', showType, showInfo) + let _options = this.getOptions(value, datatype, '', showType, showInfo, fixStyle) let _formlist = this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -151,15 +163,20 @@ if (item.key === 'field') { item.options = [] config.columns.forEach(col => { + let label = col.label + if (label !== col.field) { + label = col.field + ' ' + col.label + } + if (/^(Int|Decimal)/ig.test(col.datatype) && (value === 'number' || value === 'slider')) { item.options.push({ value: col.field, - text: col.label + text: label }) } else if (/^(Nvarchar|date)/ig.test(col.datatype) && value !== 'number' && value !== 'slider') { item.options.push({ value: col.field, - text: col.label + text: label }) } }) @@ -181,6 +198,8 @@ item.required = value !== 'qrcode' } else if (item.key === 'showInfo') { item.initVal = showInfo + } else if (item.key === 'fixStyle') { + item.initVal = fixStyle } return item @@ -210,7 +229,7 @@ this.props.form.setFieldsValue({value: option.props.title}) } } else if (key === 'link') { - let _options = this.getOptions(eleType, datatype, value, showType, showInfo) + let _options = this.getOptions(eleType, datatype, value, showType, showInfo, fixStyle) this.setState({ link: value, formlist: this.state.formlist.map(item => { @@ -225,11 +244,11 @@ } onChange = (e, key) => { - const { eleType, datatype, link, showType, showInfo } = this.state + const { eleType, datatype, link, showType, showInfo, fixStyle } = this.state let value = e.target.value if (key === 'datatype') { - let _options = this.getOptions(eleType, value, link, showType, showInfo) + let _options = this.getOptions(eleType, value, link, showType, showInfo, fixStyle) this.setState({ datatype: value, @@ -240,7 +259,7 @@ }) }) } else if (key === 'link') { - let _options = this.getOptions(eleType, datatype, value, showType, showInfo) + let _options = this.getOptions(eleType, datatype, value, showType, showInfo, fixStyle) this.setState({ link: value, formlist: this.state.formlist.map(item => { @@ -252,7 +271,7 @@ }) }) } else if (key === 'showInfo') { - let _options = this.getOptions(eleType, datatype, link, showType, value) + let _options = this.getOptions(eleType, datatype, link, showType, value, fixStyle) this.setState({ showInfo: value, formlist: this.state.formlist.map(item => { @@ -264,7 +283,19 @@ this.setState({ showType: value }, () => { - let _options = this.getOptions(eleType, datatype, link, value, showInfo) + let _options = this.getOptions(eleType, datatype, link, value, showInfo, fixStyle) + this.setState({ + formlist: this.state.formlist.map(item => { + item.hidden = !_options.includes(item.key) + return item + }) + }) + }) + } else if (key === 'fixStyle') { + this.setState({ + fixStyle: value + }, () => { + let _options = this.getOptions(eleType, datatype, link, showType, showInfo, value) this.setState({ formlist: this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -290,7 +321,7 @@ this.state.formlist.forEach((item, index) => { if (item.hidden || item.forbid) return - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { fields.push( <Col span={12} key={index}> <Form.Item label={item.tooltip ? @@ -315,7 +346,7 @@ </Form.Item> </Col> ) - } else if (item.type === 'textarea') { // 鏂囨湰鎼滅储 + } else if (item.type === 'textarea') { fields.push( <Col span={24} className="textarea" key={index}> <Form.Item label={item.tooltip ? @@ -377,7 +408,8 @@ })( <Select showSearch - filterOption={(input, option) => option.props.children[2].toLowerCase().indexOf(input.toLowerCase()) >= 0} + allowClear={item.allowClear || false} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} onChange={(value, option) => {this.selectChange(item.key, value, option)}} getPopupContainer={() => document.getElementById('card-winter')} > diff --git a/src/menu/components/card/cardcellcomponent/formconfig.jsx b/src/menu/components/card/cardcellcomponent/formconfig.jsx index c101166..c664528 100644 --- a/src/menu/components/card/cardcellcomponent/formconfig.jsx +++ b/src/menu/components/card/cardcellcomponent/formconfig.jsx @@ -47,11 +47,13 @@ { value: 'dynamic', text: '鍔ㄦ��' }, { value: 'static', text: '闈欐��' } ] + let tooltip = '' if (cardCell.$cardType === 'extendCard') { - card.datatype = 'static' - dataTypes = [ - { value: 'static', text: '闈欐��' } - ] + // card.datatype = 'static' + // dataTypes = [ + // { value: 'static', text: '闈欐��' } + // ] + tooltip = '鍦ㄦ墿灞曞崱鐗囦腑锛屽姩鎬佹暟鎹樉绀哄�间负鑾峰彇鍒扮殑绗竴琛屾暟鎹��' } let forms = [ @@ -75,6 +77,7 @@ key: 'datatype', label: '鏁版嵁绫诲瀷', initVal: card.datatype || 'static', + tooltip, required: true, options: dataTypes }, @@ -160,6 +163,16 @@ { value: 'YYYY-MM-DD HH:mm', text: 'YYYY-MM-DD HH:mm' }, { value: 'YYYY-MM-DD HH:mm:ss', text: 'YYYY-MM-DD HH:mm:ss' }, ] + }, + { + type: 'number', + key: 'decimal', + min: 0, + max: 18, + decimal: 0, + label: '灏忔暟浣�', + initVal: card.decimal === undefined ? '' : card.decimal, + required: false }, { type: 'text', @@ -301,6 +314,16 @@ initVal: card.height, tooltip: '鍐呭鏄剧ず琛屾暟锛屽�间负绌烘椂楂樺害鑷�傚簲锛屾敞锛氳嚜閫傚簲楂樺害浠呭湪璁剧疆鍗$墖楂樺害鍚庢湁鏁堛��', required: false + }, + { + type: 'select', + key: 'bgImage', + label: '鍔ㄦ�佽儗鏅�', + initVal: card.bgImage || '', + tooltip: '缁戝畾鏁版嵁婧愬瓧娈碉紝鍙牴鎹繑鍥炲�兼敼鍙樿儗鏅浘銆�', + required: false, + allowClear: true, + options: [] }, { type: 'number', @@ -455,15 +478,6 @@ // { value: 'self', text: '褰撳墠椤甸潰' } // ] // }, - // { - // type: 'select', - // key: 'copyMenuId', - // label: '澶嶅埗鑿滃崟', - // initVal: card.copyMenuId || '', - // required: false, - // forbid: !isApp, - // options: appMenus - // }, { type: 'select', key: 'linkurl', @@ -506,7 +520,7 @@ key: 'formula', label: '鍏紡', initVal: card.formula || '', - tooltip: '鎵ц鏃朵細浣跨敤鏌ヨ鍒扮殑鏁版嵁鏇挎崲鐩稿簲鐨勫瓧娈碉紝灞曠ず鑾峰緱鐨勭粨鏋溿�傚彲浣跨敤JS鐨勪竴浜涜娉曪紝濡傦細涓夊厓琛ㄨ揪寮� @field1@ > @field2@ ? 0 : 1锛汳ath瀵硅薄锛屽彇缁濆鍊� Math.abs(@field@)銆佸洓鑸嶄簲鍏� Math.round(@field@)绛�', + tooltip: '鎵ц鏃朵細浣跨敤鏌ヨ鍒扮殑鏁版嵁鏇挎崲鐩稿簲鐨勫瓧娈碉紝灞曠ず鑾峰緱鐨勭粨鏋滐紝鍦ㄤ笉浣跨敤瑙f瀽鏃舵崲琛岀鎴栫┖鏍间細鏇挎崲涓洪〉闈㈠厓绱犮�傚彲浣跨敤JS鐨勪竴浜涜娉曪紝濡傦細涓夊厓琛ㄨ揪寮� @field1@ > @field2@ ? 0 : 1锛汳ath瀵硅薄锛屽彇缁濆鍊� Math.abs(@field@)銆佸洓鑸嶄簲鍏� Math.round(@field@)绛�', placeholder: '渚嬪锛欯price@ * @number@', required: true }, @@ -522,6 +536,56 @@ { value: 'hide', text: '闅愯棌' } ] }, + { + type: 'radio', + key: 'fixStyle', + label: '鍓嶅悗缂�', + initVal: card.fixStyle || '', + tooltip: '鍓嶇紑涓庡悗缂�锛屼娇鐢ㄤ笌鍐呭缁熶竴鐨勬牱寮忚繕鏄嫭绔嬫牱寮忋��', + required: false, + options: [ + { value: '', text: '缁熶竴鏍峰紡' }, + { value: 'alone', text: '鐙珛鏍峰紡' } + ] + }, + { + type: 'number', + key: 'fixSize', + min: 10, + max: 100, + label: '瀛椾綋澶у皬', + initVal: card.fixSize || 14, + tooltip: '鍓嶇紑銆佸悗缂�鐨勫瓧浣撳ぇ灏忋��', + required: true + }, + { + type: 'color', + key: 'fixColor', + label: '瀛椾綋棰滆壊', + initVal: card.fixColor || 'rgba(0, 0, 0, 0.65)', + tooltip: '鍓嶇紑銆佸悗缂�鐨勫瓧浣撻鑹层��', + required: true + }, + { + type: 'number', + key: 'fixLeft', + min: 0, + max: 1000, + label: '宸﹁竟璺�', + initVal: card.fixLeft || 0, + tooltip: '鍓嶇紑銆佸悗缂�鐨勫乏杈硅窛銆�', + required: false + }, + { + type: 'number', + key: 'fixRight', + min: 0, + max: 1000, + label: '鍙宠竟璺�', + initVal: card.fixRight || 0, + tooltip: '鍓嶇紑銆佸悗缂�鐨勫彸杈硅窛銆�', + required: false + }, ] return forms diff --git a/src/menu/components/card/cardcellcomponent/index.jsx b/src/menu/components/card/cardcellcomponent/index.jsx index db7b2ed..dbe882a 100644 --- a/src/menu/components/card/cardcellcomponent/index.jsx +++ b/src/menu/components/card/cardcellcomponent/index.jsx @@ -525,33 +525,23 @@ if ((sessionStorage.getItem('style-control') && sessionStorage.getItem('style-control') === 'true')) return - if (btn.eleType === 'button') { - if (btn.OpenType === 'pop' || btn.execMode === 'pop') { - if (!btn.modal) { - btn.modal = { - setting: { title: btn.label, width: appType === 'mob' ? 100 : 60, cols: '2', container: 'view', focus: '', finish: 'close', clickouter: 'unclose', display: 'modal' }, - tables: [], - groups: [], - fields: [] - } + if (btn.OpenType === 'pop' || btn.execMode === 'pop') { + if (!btn.modal) { + btn.modal = { + setting: { title: btn.label, width: appType === 'mob' ? 100 : 60, cols: '2', container: 'view', focus: '', finish: 'close', clickouter: 'unclose', display: 'modal' }, + tables: [], + groups: [], + fields: [] } - - MKEmitter.emit('changeModal', cards, btn) - } else if (btn.OpenType === 'popview') { - MKEmitter.emit('changePopview', cards, btn) - } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'page') { - MKEmitter.emit('changeEditMenu', {MenuID: btn.uuid, copyMenuId: btn.copyMenuId}) - } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'linkpage') { - MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu}) - } else { - this.handleElement(item) } + + MKEmitter.emit('changeModal', cards, btn) + } else if (btn.OpenType === 'popview') { + MKEmitter.emit('changePopview', cards, btn) + } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'linkpage') { + MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu}) } else { - if (btn.link === 'page') { - MKEmitter.emit('changeEditMenu', {MenuID: btn.uuid, copyMenuId: btn.copyMenuId}) - } else if (btn.link === 'linkpage') { - MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu}) - } + this.handleElement(item) } } @@ -676,7 +666,7 @@ </Modal> {/* 缂栬緫鎸夐挳锛氬鍒躲�佺紪杈� */} <Modal - title={dict['model.action'] + '-' + (card && card.copyType === 'action' ? dict['model.copy'] : dict['model.edit'])} + title="鎸夐挳路缂栬緫" visible={actvisible} width={800} maskClosable={false} @@ -702,7 +692,7 @@ wrapClassName="model-table-action-verify-modal" title={(card && card.label ? card.label + ' - ' : '') + '楠岃瘉淇℃伅'} visible={profVisible} - width={'75vw'} + width={'90vw'} maskClosable={false} okText={dict['model.submit']} onOk={this.verifySubmit} diff --git a/src/menu/components/card/cardcomponent/index.jsx b/src/menu/components/card/cardcomponent/index.jsx index 7e36906..5554b8f 100644 --- a/src/menu/components/card/cardcomponent/index.jsx +++ b/src/menu/components/card/cardcomponent/index.jsx @@ -19,7 +19,6 @@ class CardBoxComponent extends Component { static propTpyes = { - offset: PropTypes.any, // 鍋忕Щ閲� cards: PropTypes.object, // 鍗$墖琛岄厤缃俊鎭� card: PropTypes.object, // 鍗$墖閰嶇疆淇℃伅 move: PropTypes.func, // 鍗$墖绉诲姩 @@ -320,7 +319,7 @@ } render() { - const { cards, offset } = this.props + const { cards } = this.props const { card, elements, side, visible } = this.state let _style = {...card.style} @@ -338,7 +337,7 @@ _style = resetStyle(_style) return ( - <Col span={card.setting.width || 6} offset={offset || 0}> + <Col span={card.setting.width || 6}> <div className={'card-item ' + (card.setting.btnControl || '')} style={_style} onClick={this.clickComponent} onDoubleClick={(e) => {e.stopPropagation(); this.doubleClickCard()}} id={card.uuid}> <CardCellComponent cards={cards} cardCell={card} side={side} elements={elements} updateElement={this.updateCard}/> <div className="card-control" onDoubleClick={(e) => e.stopPropagation()}> diff --git a/src/menu/components/card/cardcomponent/options.jsx b/src/menu/components/card/cardcomponent/options.jsx index b4bdd99..dfbcf7c 100644 --- a/src/menu/components/card/cardcomponent/options.jsx +++ b/src/menu/components/card/cardcomponent/options.jsx @@ -116,6 +116,7 @@ {field: 'open', values: ['menu', 'link', 'menus']}, {field: 'joint', values: ['menu', 'link', 'menus']}, {field: 'linkbtn', values: ['button']}, + {field: 'clickType', values: ['button']}, {field: 'menuType', values: ['menus']}, {field: 'menus', values: ['menus']}, ] @@ -134,6 +135,7 @@ label: '鍏宠仈鑿滃崟', initval: setting.menu || (appType ? '' : []), required: true, + extendName: 'MenuNo', options: menulist, }, { @@ -178,6 +180,18 @@ }, { type: 'radio', + field: 'clickType', + label: '瑙﹀彂鏂瑰紡', + initval: setting.clickType || 'normal', + required: false, + options: [ + {value: 'normal', label: '鍗曞嚮'}, + {value: 'multi', label: '鍙屽嚮'}, + ], + forbid: appType === 'mob' + }, + { + type: 'radio', field: 'btnControl', label: '鎸夐挳鎺у埗', initval: setting.btnControl || 'show', @@ -196,6 +210,7 @@ initval: menus, required: true, span: 24, + actions: ['view'], columns: [ { title: '鏍囪瘑', diff --git a/src/menu/components/card/cardsimplecomponent/options.jsx b/src/menu/components/card/cardsimplecomponent/options.jsx index 6c649dd..28680d5 100644 --- a/src/menu/components/card/cardsimplecomponent/options.jsx +++ b/src/menu/components/card/cardsimplecomponent/options.jsx @@ -116,6 +116,7 @@ label: '鍏宠仈鑿滃崟', initval: setting.menu || (appType ? '' : []), required: true, + extendName: 'MenuNo', options: appType ? appmenulist : menulist, }, { @@ -219,6 +220,7 @@ label: '鍏宠仈鑿滃崟', initval: setting.menu || (appType ? '' : []), required: true, + extendName: 'MenuNo', options: appType ? appmenulist : menulist, }, { diff --git a/src/menu/components/card/data-card/index.jsx b/src/menu/components/card/data-card/index.jsx index 335e3f9..7b10cf3 100644 --- a/src/menu/components/card/data-card/index.jsx +++ b/src/menu/components/card/data-card/index.jsx @@ -46,7 +46,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 @@ -57,7 +56,7 @@ name: card.name, subtype: card.subtype, setting: { interType: 'system' }, - wrap: { name: card.name, width: card.width || 24, title: '', pagestyle: 'page', switch: 'false', cardType: '' }, + wrap: { name: card.name, width: card.width || 24, title: '', pagestyle: 'page', cardType: '' }, style: { marginLeft: '0px', marginRight: '0px', marginTop: '8px', marginBottom: '8px' }, headerStyle: { fontSize: '16px', borderBottomWidth: '1px', borderBottomColor: '#e8e8e8' }, columns: [], @@ -436,7 +435,7 @@ newcard = { uuid: Utils.getuuid(), $cardType: 'extendCard', - setting: { width: 6, type: 'simple', click: 'button'}, + setting: { width: 6, type: 'simple', click: ''}, style: { height, borderWidth: '1px', borderColor: '#e8e8e8', @@ -494,6 +493,10 @@ delete res.supNodes } else { delete _card.supNodes + } + + if (res.layout === 'flex') { + _card.wrap.pagestyle = 'page' } this.updateComponent(_card) @@ -640,17 +643,6 @@ render() { const { card, appType } = this.state - let offset = 0 - if (card.wrap.cardFloat && card.wrap.cardFloat !== 'left') { - let _width = 0 - card.subcards.forEach(card => { - _width += card.setting.width - }) - offset = _width < 24 ? 24 - _width : 0 - if (card.wrap.cardFloat === 'center') { - offset = Math.floor(offset / 2) - } - } let _style = resetStyle(card.style) return ( @@ -676,7 +668,9 @@ <ToolOutlined /> </Popover> <ActionComponent config={card} type="datacard" setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/> - {card.subcards.map((subcard, index) => (<CardComponent key={subcard.uuid} offset={!index ? offset : 0} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} + <div className={'float-' + (card.wrap.cardFloat || 'left')}> + {card.subcards.map((subcard, index) => (<CardComponent key={subcard.uuid} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} + </div> <div style={{clear: 'both'}}></div> {card.wrap.pagestyle === 'page' && card.setting.laypage === 'true' && appType !== 'mob' ? <Pagination total={85} size="small" showTotal={total => `鍏� ${total} 鏉} pageSize={20} defaultCurrent={1}/> : null} {card.wrap.pagestyle === 'page' && card.setting.laypage === 'true' && appType === 'mob' ? <MobPagination /> : null} diff --git a/src/menu/components/card/data-card/index.scss b/src/menu/components/card/data-card/index.scss index 900f85c..c49a471 100644 --- a/src/menu/components/card/data-card/index.scss +++ b/src/menu/components/card/data-card/index.scss @@ -91,6 +91,24 @@ font-size: 16px; } } + .float-center { + text-align: center; + >.ant-col { + display: inline-block; + float: none; + text-align: left; + vertical-align: top; + } + } + .float-right { + text-align: right; + >.ant-col { + display: inline-block; + float: none; + text-align: left; + vertical-align: top; + } + } } .menu-data-card-edit-box::-webkit-scrollbar { diff --git a/src/menu/components/card/data-card/options.jsx b/src/menu/components/card/data-card/options.jsx index 33b8ebc..913aba8 100644 --- a/src/menu/components/card/data-card/options.jsx +++ b/src/menu/components/card/data-card/options.jsx @@ -29,6 +29,21 @@ roleList = [] } + let menulist = [] + + if (appType === 'mob') { + menulist = sessionStorage.getItem('appMenus') + if (menulist) { + try { + menulist = JSON.parse(menulist) + } catch (e) { + menulist = [] + } + } else { + menulist = [] + } + } + const cardWrapForm = [ { type: 'text', @@ -70,9 +85,28 @@ linkFields: ['priKeyType'], controlFields: [ {field: 'goback', values: ['dynamic']}, + {field: 'empty', values: ['dynamic']}, + {field: 'jump', values: ['dynamic']}, {field: 'supModule', values: ['static']}, ], forbid: subtype !== 'propcard' + }, + { + type: 'radio', + field: 'layout', + label: '鍗$墖甯冨眬', + initval: wrap.layout || 'grid', + tooltip: appType === 'mob' ? '寮规�у竷灞�鏃讹紝婊戝姩鍔犺浇鏃犳晥' : '寮规�у竷灞�鏃讹紝宸﹀彸鍒囨崲鏃犳晥', + required: false, + options: [ + {value: 'grid', label: '鏍呮牸甯冨眬'}, + {value: 'flex', label: '寮规�у竷灞�'}, + ], + controlFields: subtype !== 'propcard' ? [ + {field: 'printHeight', values: ['flex']}, + {field: 'cardFloat', values: ['grid']}, + ] : [{field: 'cardFloat', values: ['grid']}], + forbid: subtype === 'tablecard' }, { type: 'radio', @@ -128,6 +162,7 @@ field: 'selected', label: '棣栬閫変腑', initval: wrap.selected || 'false', + tooltip: '褰撴寜閽墽琛屽畬鎴愬苟杩斿洖涓婚敭鍊兼椂锛岄粯璁ら�変腑涓婚敭鍊煎搴旇銆�', required: false, options: [ {value: 'false', label: '鏃�'}, @@ -168,7 +203,7 @@ field: 'cardFloat', label: '瀵归綈鏂瑰紡', initval: wrap.cardFloat || 'left', - tooltip: '璁剧疆涓哄眳涓榻愭垨鍙冲榻愶紝鍙湪鍗$墖涓�1琛屾椂鏈夋晥銆�', + tooltip: '璁剧疆鍗$墖鐨勫榻愭柟寮忋��', required: false, options: [ {value: 'left', label: '宸﹀榻�'}, @@ -201,7 +236,19 @@ {value: 'content', label: '鍐呭'}, {value: 'headerOrfooter', label: '椤电湁/椤佃剼'}, ], + controlFields: [ + {field: 'printHeight', values: ['content']}, + ], forbid: subtype !== 'propcard' || MenuType !== 'billPrint' + }, + { + type: 'number', + field: 'printHeight', + label: '鎹㈢畻楂樺害', + initval: wrap.printHeight || '', + tooltip: subtype !== 'propcard' ? '褰撳墠鏁版嵁鍗¢珮搴︾浉褰撲簬鍑犳潯鏁版嵁銆�' : '褰撳墠灞炴�у崱楂樺害鐩稿綋浜庡嚑鏉℃暟鎹��', + required: false, + forbid: subtype === 'tablecard' || MenuType !== 'billPrint' }, { type: 'select', @@ -211,7 +258,7 @@ tooltip: '璇煶鎾姤鍦ㄧЩ鍔ㄧapp涓湁鏁堛�傛敞锛氫娇鐢ㄨ闊虫挱鎶ユ椂锛屾暟鎹簮涓嶈浣跨敤鍚屾鏌ヨ锛屾坊鍔犲畾鏃跺櫒鏃讹紝鍙惊鐜挱鎶�', required: false, options: columns, - forbid: !columns || appType !== 'mob' + forbid: !columns || appType !== 'mob' || subtype !== 'propcard' }, { type: 'radio', @@ -233,11 +280,72 @@ initval: wrap.empty || 'show', tooltip: '褰撴煡璇㈡暟鎹负绌烘椂锛岄殣钘忚缁勪欢銆�', required: false, + skip: true, options: [ {value: 'show', label: '鍚�'}, {value: 'hidden', label: '鏄�'}, ], - forbid: subtype !== 'datacard' + }, + { + type: 'radio', + field: 'jump', + label: '椤甸潰璺宠浆', + initval: wrap.jump || '', + tooltip: '閫氳繃鏌ヨ杩斿洖鍊煎垽鏂〉闈㈡槸鍚﹁璺宠浆銆�', + required: false, + options: [ + {value: '', label: '鏃�'}, + {value: 'menu', label: '鑿滃崟'}, + {value: 'link', label: '閾炬帴'}, + ], + controlFields: [ + {field: 'jumpField', values: ['menu', 'link']}, + {field: 'joint', values: ['menu', 'link']}, + {field: 'menu', values: ['menu']}, + {field: 'link', values: ['link']}, + ], + forbid: subtype !== 'propcard' || appType !== 'mob' + }, + { + type: 'select', + field: 'jumpField', + label: '鎺у埗瀛楁', + initval: wrap.jumpField || '', + tooltip: '褰撳瓧娈靛�间负true鏃�', + required: true, + options: columns, + forbid: subtype !== 'propcard' || appType !== 'mob' + }, + { + type: 'select', + field: 'menu', + label: '鑿滃崟', + initval: wrap.menu || '', + required: true, + options: menulist, + forbid: subtype !== 'propcard' || appType !== 'mob' + }, + { + type: 'select', + field: 'link', + label: '閾炬帴瀛楁', + initval: wrap.link || '', + tooltip: '璺宠浆閾炬帴涓烘煡璇㈡暟鎹殑杩斿洖鍊笺��', + required: true, + options: columns, + forbid: subtype !== 'propcard' || appType !== 'mob' + }, + { + type: 'radio', + field: 'joint', + label: '鍙傛暟鎷兼帴', + initval: wrap.joint || 'true', + required: false, + options: [ + {value: 'true', label: '鏄�'}, + {value: 'false', label: '鍚�'}, + ], + forbid: subtype !== 'propcard' || appType !== 'mob' }, { type: 'radio', @@ -302,6 +410,18 @@ ] }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', @@ -341,11 +461,11 @@ } ] - return cardWrapForm.map(item => { + return cardWrapForm.filter(item => { if (['pagestyle'].includes(item.field)) { item.options = item.options.filter(option => !option.forbid) } - return item + return !item.forbid }) } \ No newline at end of file diff --git a/src/menu/components/card/prop-card/index.jsx b/src/menu/components/card/prop-card/index.jsx index 96e0fd7..b42cc9a 100644 --- a/src/menu/components/card/prop-card/index.jsx +++ b/src/menu/components/card/prop-card/index.jsx @@ -45,7 +45,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 @@ -56,7 +55,7 @@ name: card.name, subtype: card.subtype, setting: { interType: 'system' }, - wrap: { name: card.name, width: card.width || 24, title: '', switch: 'false', datatype: 'static' }, + wrap: { name: card.name, width: card.width || 24, title: '', datatype: 'static' }, style: { marginLeft: '0px', marginRight: '0px', marginTop: '8px', marginBottom: '8px' }, headerStyle: { fontSize: '16px', borderBottomWidth: '1px', borderBottomColor: '#e8e8e8' }, columns: [], @@ -451,6 +450,10 @@ if (res.supModule && res.supModule.length > 0) { _card.setting.supModule = res.supModule } + if (res.layout === 'flex') { + _card.wrap.pagestyle = 'page' + } + this.updateComponent(_card) } @@ -463,18 +466,6 @@ render() { const { card } = this.state - - let offset = 0 - if (card.wrap.cardFloat && card.wrap.cardFloat !== 'left') { - let _width = 0 - card.subcards.forEach(card => { - _width += card.setting.width - }) - offset = _width < 24 ? 24 - _width : 0 - if (card.wrap.cardFloat === 'center') { - offset = Math.floor(offset / 2) - } - } let _style = resetStyle(card.style) @@ -500,7 +491,9 @@ } trigger="hover"> <ToolOutlined /> </Popover> - {card.subcards.map((subcard, index) => (<CardComponent key={subcard.uuid} offset={!index ? offset : 0} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} + <div className={(card.wrap.layout || 'grid') + '-layout float-' + (card.wrap.cardFloat || 'left')}> + {card.subcards.map(subcard => (<CardComponent key={subcard.uuid} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} + </div> </div> ) } diff --git a/src/menu/components/card/prop-card/index.scss b/src/menu/components/card/prop-card/index.scss index 827cf17..f8633d4 100644 --- a/src/menu/components/card/prop-card/index.scss +++ b/src/menu/components/card/prop-card/index.scss @@ -71,6 +71,32 @@ margin-right: 10px; } } + .flex-layout { + display: flex; + width: 100%; + >.ant-col { + width: 5%; + flex: 1; + } + } + .float-center { + text-align: center; + >.ant-col { + display: inline-block; + float: none; + text-align: left; + vertical-align: top; + } + } + .float-right { + text-align: right; + >.ant-col { + display: inline-block; + float: none; + text-align: left; + vertical-align: top; + } + } } .menu-prop-card-edit-box::after { display: block; diff --git a/src/menu/components/card/table-card/index.jsx b/src/menu/components/card/table-card/index.jsx index 6470b65..ad0934f 100644 --- a/src/menu/components/card/table-card/index.jsx +++ b/src/menu/components/card/table-card/index.jsx @@ -45,7 +45,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/carousel/data-card/index.jsx b/src/menu/components/carousel/data-card/index.jsx index 61806d1..ebf521e 100644 --- a/src/menu/components/carousel/data-card/index.jsx +++ b/src/menu/components/carousel/data-card/index.jsx @@ -41,7 +41,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/carousel/data-card/index.scss b/src/menu/components/carousel/data-card/index.scss index b62bd6b..cd42494 100644 --- a/src/menu/components/carousel/data-card/index.scss +++ b/src/menu/components/carousel/data-card/index.scss @@ -76,12 +76,12 @@ } } } -.menu-carousel-edit-box::after { +.menu-data-carousel-edit-box::after { display: block; content: ' '; clear: both; } -.menu-carousel-edit-box:hover { +.menu-data-carousel-edit-box:hover { z-index: 1; box-shadow: 0px 0px 4px #1890ff; } diff --git a/src/menu/components/carousel/data-card/options.jsx b/src/menu/components/carousel/data-card/options.jsx index 6aa1852..36441fe 100644 --- a/src/menu/components/carousel/data-card/options.jsx +++ b/src/menu/components/carousel/data-card/options.jsx @@ -46,6 +46,9 @@ {value: 'dynamic', label: '鍔ㄦ��'}, {value: 'static', label: '闈欐��'}, ], + controlFields: [ + {field: 'empty', values: ['dynamic']}, + ], forbid: subtype !== 'propcard' }, { @@ -120,6 +123,31 @@ forbid: appType === 'mob' }, { + type: 'radio', + field: 'empty', + label: '绌哄�奸殣钘�', + initval: wrap.empty || 'show', + tooltip: '褰撴煡璇㈡暟鎹负绌烘椂锛岄殣钘忚缁勪欢銆�', + required: false, + skip: true, + options: [ + {value: 'show', label: '鍚�'}, + {value: 'hidden', label: '鏄�'}, + ], + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/carousel/prop-card/index.jsx b/src/menu/components/carousel/prop-card/index.jsx index b9d3a01..1795efc 100644 --- a/src/menu/components/carousel/prop-card/index.jsx +++ b/src/menu/components/carousel/prop-card/index.jsx @@ -42,7 +42,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/carousel/prop-card/index.scss b/src/menu/components/carousel/prop-card/index.scss index a21b98f..3121478 100644 --- a/src/menu/components/carousel/prop-card/index.scss +++ b/src/menu/components/carousel/prop-card/index.scss @@ -81,12 +81,12 @@ } } } -.menu-prop-card-edit-box::after { +.menu-prop-carousel-edit-box::after { display: block; content: ' '; clear: both; } -.menu-prop-card-edit-box:hover { +.menu-prop-carousel-edit-box:hover { z-index: 1; box-shadow: 0px 0px 4px #1890ff; } diff --git a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx index 05158b6..e88e500 100644 --- a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx @@ -58,6 +58,18 @@ required: true }, { + type: 'radio', + key: 'permission', + label: '鏉冮檺楠岃瘉', + initVal: card.permission || 'false', + required: false, + options: [ + {value: 'true', text: '鍚敤'}, + {value: 'false', text: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'select', key: 'blacklist', label: '榛戝悕鍗�', @@ -419,6 +431,17 @@ text: '鍚敤' }] }, { + type: 'radio', + key: 'empty', + label: '绌哄�奸殣钘�', + initVal: card.empty || 'show', + tooltip: '褰撴煡璇㈡暟鎹负绌烘椂锛岄殣钘忚缁勪欢銆�', + required: false, + options: [ + {value: 'show', text: '鍚�'}, + {value: 'hidden', text: '鏄�'}, + ], + }, { type: 'number', key: 'barSize', label: '鏌卞舰瀹藉害', diff --git a/src/menu/components/chart/antv-bar/index.jsx b/src/menu/components/chart/antv-bar/index.jsx index 56af912..704fe48 100644 --- a/src/menu/components/chart/antv-bar/index.jsx +++ b/src/menu/components/chart/antv-bar/index.jsx @@ -71,7 +71,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/chart/antv-dashboard/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-dashboard/chartcompile/formconfig.jsx index 9a90e00..3add00e 100644 --- a/src/menu/components/chart/antv-dashboard/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-dashboard/chartcompile/formconfig.jsx @@ -58,6 +58,18 @@ required: true }, { + type: 'radio', + key: 'permission', + label: '鏉冮檺楠岃瘉', + initVal: card.permission || 'false', + required: false, + options: [ + {value: 'true', text: '鍚敤'}, + {value: 'false', text: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'select', key: 'blacklist', label: '榛戝悕鍗�', @@ -144,6 +156,18 @@ text: '鍚敤' }] }, + // { + // type: 'radio', + // key: 'empty', + // label: '绌哄�奸殣钘�', + // initVal: card.empty || 'show', + // tooltip: '褰撴煡璇㈡暟鎹负绌烘椂锛岄殣钘忚缁勪欢銆�', + // required: false, + // options: [ + // {value: 'show', text: '鍚�'}, + // {value: 'hidden', text: '鏄�'}, + // ], + // }, { type: 'color', key: 'tickColor', diff --git a/src/menu/components/chart/antv-dashboard/index.jsx b/src/menu/components/chart/antv-dashboard/index.jsx index f26312a..03305f3 100644 --- a/src/menu/components/chart/antv-dashboard/index.jsx +++ b/src/menu/components/chart/antv-dashboard/index.jsx @@ -112,7 +112,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: card.subtype === 'ratioboard' ? 'array' : 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx index aaa4b33..494a36f 100644 --- a/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-pie/chartcompile/formconfig.jsx @@ -111,6 +111,18 @@ ] }, { + type: 'radio', + key: 'permission', + label: '鏉冮檺楠岃瘉', + initVal: card.permission || 'false', + required: false, + options: [ + {value: 'true', text: '鍚敤'}, + {value: 'false', text: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'select', key: 'blacklist', label: '榛戝悕鍗�', @@ -296,6 +308,17 @@ text: '鍚敤' }] }, { + type: 'radio', + key: 'empty', + label: '绌哄�奸殣钘�', + initVal: card.empty || 'show', + tooltip: '褰撴煡璇㈡暟鎹负绌烘椂锛岄殣钘忚缁勪欢銆�', + required: false, + options: [ + {value: 'show', text: '鍚�'}, + {value: 'hidden', text: '鏄�'}, + ], + }, { type: 'number', key: 'splitLine', label: '鍒嗛殧绾�', diff --git a/src/menu/components/chart/antv-pie/index.jsx b/src/menu/components/chart/antv-pie/index.jsx index 14f1db8..6029781 100644 --- a/src/menu/components/chart/antv-pie/index.jsx +++ b/src/menu/components/chart/antv-pie/index.jsx @@ -62,7 +62,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/chart/antv-scatter/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-scatter/chartcompile/formconfig.jsx index cf6c5da..79b4f14 100644 --- a/src/menu/components/chart/antv-scatter/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-scatter/chartcompile/formconfig.jsx @@ -53,6 +53,18 @@ required: true }, { + type: 'radio', + key: 'permission', + label: '鏉冮檺楠岃瘉', + initVal: card.permission || 'false', + required: false, + options: [ + {value: 'true', text: '鍚敤'}, + {value: 'false', text: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'select', key: 'blacklist', label: '榛戝悕鍗�', @@ -143,6 +155,18 @@ }] }, { + type: 'radio', + key: 'empty', + label: '绌哄�奸殣钘�', + initVal: card.empty || 'show', + tooltip: '褰撴煡璇㈡暟鎹负绌烘椂锛岄殣钘忚缁勪欢銆�', + required: false, + options: [ + {value: 'show', text: '鍚�'}, + {value: 'hidden', text: '鏄�'}, + ], + }, + { type: 'text', key: 'Xunit', label: 'X杞村崟浣�', diff --git a/src/menu/components/chart/antv-scatter/index.jsx b/src/menu/components/chart/antv-scatter/index.jsx index 2cca38a..e8b381e 100644 --- a/src/menu/components/chart/antv-scatter/index.jsx +++ b/src/menu/components/chart/antv-scatter/index.jsx @@ -58,7 +58,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/chart/chart-custom/chartcompile/formconfig.jsx b/src/menu/components/chart/chart-custom/chartcompile/formconfig.jsx index 58786ea..26955ae 100644 --- a/src/menu/components/chart/chart-custom/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/chart-custom/chartcompile/formconfig.jsx @@ -64,6 +64,18 @@ required: true }, { + type: 'radio', + key: 'permission', + label: '鏉冮檺楠岃瘉', + initVal: card.permission || 'false', + required: false, + options: [ + {value: 'true', text: '鍚敤'}, + {value: 'false', text: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'select', key: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/chart/chart-custom/index.jsx b/src/menu/components/chart/chart-custom/index.jsx index 929d17c..924baa8 100644 --- a/src/menu/components/chart/chart-custom/index.jsx +++ b/src/menu/components/chart/chart-custom/index.jsx @@ -50,7 +50,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/code/sandbox/index.jsx b/src/menu/components/code/sandbox/index.jsx index ba13288..6395466 100644 --- a/src/menu/components/code/sandbox/index.jsx +++ b/src/menu/components/code/sandbox/index.jsx @@ -41,7 +41,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', dataName: card.dataName || '', diff --git a/src/menu/components/code/sandbox/options.jsx b/src/menu/components/code/sandbox/options.jsx index 3576742..6aab039 100644 --- a/src/menu/components/code/sandbox/options.jsx +++ b/src/menu/components/code/sandbox/options.jsx @@ -48,6 +48,18 @@ ] }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/editor/braft-editor/index.jsx b/src/menu/components/editor/braft-editor/index.jsx index ac8dd29..56f1dff 100644 --- a/src/menu/components/editor/braft-editor/index.jsx +++ b/src/menu/components/editor/braft-editor/index.jsx @@ -38,7 +38,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', dataName: card.dataName || '', diff --git a/src/menu/components/editor/braft-editor/options.jsx b/src/menu/components/editor/braft-editor/options.jsx index 7f53cc7..0cf69e3 100644 --- a/src/menu/components/editor/braft-editor/options.jsx +++ b/src/menu/components/editor/braft-editor/options.jsx @@ -90,6 +90,18 @@ required: false }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/form/dragtitle/options.jsx b/src/menu/components/form/dragtitle/options.jsx index 90f9176..39849e5 100644 --- a/src/menu/components/form/dragtitle/options.jsx +++ b/src/menu/components/form/dragtitle/options.jsx @@ -7,7 +7,7 @@ if (appType === 'mob') { group.fields.forEach(f => { - if (f.field && ['text', 'number'].includes(f.type) && f.hidden !== 'true' && f.readonly !== 'true') { + if (f.field && ['select', 'text', 'number'].includes(f.type) && f.hidden !== 'true' && f.readonly !== 'true') { fields.push(f) } }) diff --git a/src/menu/components/form/formaction/actionform/index.jsx b/src/menu/components/form/formaction/actionform/index.jsx index f36d0b1..4a4ecf1 100644 --- a/src/menu/components/form/formaction/actionform/index.jsx +++ b/src/menu/components/form/formaction/actionform/index.jsx @@ -54,7 +54,7 @@ } else if (card.type === 'next') { return ['type', 'label', 'enable'] } - let _options = ['type', 'label', 'intertype', 'syncComponent', 'linkmenu', 'open', 'enable', 'output'] // 閫夐」鍒楄〃 + let _options = ['type', 'label', 'intertype', 'syncComponent', 'linkmenu', 'open', 'enable', 'output', 'reload'] // 閫夐」鍒楄〃 if (_intertype === 'custom') { _options.pop() @@ -149,7 +149,7 @@ this.state.formlist.forEach((item, index) => { if (item.hidden || item.forbid) return - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { let _rules = [] if (item.key === 'innerFunc') { let str = '^(' + item.fields.join('|') + ')' @@ -221,14 +221,14 @@ message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(<InputNumber min={0} max={10000} precision={0} />)} + })(<InputNumber min={0} max={10000} precision={0} onPressEnter={this.handleSubmit}/>)} </Form.Item> </Col> ) } else if (item.type === 'select') { // 涓嬫媺鎼滅储 fields.push( <Col span={12} key={index}> - <Form.Item label={item.tooltip ? + <Form.Item help={item.help || null} label={item.tooltip ? <Tooltip placement="topLeft" overlayClassName={item.tooltipClass} title={item.tooltip}> <QuestionCircleOutlined className="mk-form-tip" /> {item.label} @@ -245,7 +245,7 @@ })( <Select showSearch - filterOption={(input, option) => option.props.children[2].toLowerCase().indexOf(input.toLowerCase()) >= 0} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} onChange={(value) => {this.optionChange(item.key, value)}} getPopupContainer={() => document.getElementById('winter')} allowClear={item.allowClear} @@ -360,7 +360,7 @@ } } return ( - <Form {...formItemLayout} className="menu-action-list-form" id="winter"> + <Form {...formItemLayout} className="menu-form-action-list" id="winter"> <Row gutter={24}>{this.getFields()}</Row> </Form> ) diff --git a/src/menu/components/form/formaction/actionform/index.scss b/src/menu/components/form/formaction/actionform/index.scss index 2573ed4..ca43400 100644 --- a/src/menu/components/form/formaction/actionform/index.scss +++ b/src/menu/components/form/formaction/actionform/index.scss @@ -1,4 +1,4 @@ -.menu-action-list-form { +.menu-form-action-list { min-height: 190px; .superconfig { color: #1890ff; @@ -36,4 +36,7 @@ border-color: #d9d9d9; box-shadow: none; } + .ant-form-explain { + font-size: 12px; + } } \ No newline at end of file diff --git a/src/menu/components/form/formaction/formconfig.jsx b/src/menu/components/form/formaction/formconfig.jsx index 63770ba..01b6326 100644 --- a/src/menu/components/form/formaction/formconfig.jsx +++ b/src/menu/components/form/formaction/formconfig.jsx @@ -32,7 +32,7 @@ menulist = [] } if (appType === 'mob') { - menulist.push({value: 'goback', text: '杩斿洖'}) + menulist.push({value: 'goback', text: '杩斿洖锛堜笂涓�椤碉級'}) } } else { menulist = sessionStorage.getItem('fstMenuList') @@ -246,9 +246,10 @@ { type: (appType === 'pc' || appType === 'mob') ? 'select' : 'cascader', key: 'linkmenu', - label: '鎵撳紑鑿滃崟', + label: '涓嬩竴姝ユ搷浣�', tooltip: '鎵ц鎴愬姛鍚庨渶瑕佹墦寮�鐨勮彍鍗曘��', initVal: card.linkmenu, + help: '鍙繑鍥炰笂涓�椤点��', required: false, allowClear: true, options: menulist @@ -257,7 +258,7 @@ type: 'text', key: 'output', label: '杩斿洖鍊�', - tooltip: '鎵ц鎴愬姛鍚庣殑杩斿洖鍊笺��', + tooltip: '鎵ц鎴愬姛鍚庣殑杩斿洖鍊笺�備緥濡傦細@id', initVal: card.output || '', required: false }, @@ -284,6 +285,21 @@ tooltip: '鎵ц鎴愬姛鍚庨渶瑕佸埛鏂扮殑缁勪欢銆�', required: false, options: modules - } + }, + { + type: 'radio', + key: 'reload', + label: '涓婁竴椤�', + initVal: card.reload || 'false', + tooltip: '鎴愬姛鍚庢槸鍚﹀埛鏂颁笂椤电殑鏁版嵁銆傛敞锛氬湪鏄庣浜慉PP鎴栧皬绋嬪簭涓湁鏁堛��', + forbid: appType !== 'mob', + options: [{ + value: 'false', + text: '涓嶅埛鏂�' + }, { + value: 'true', + text: '鍒锋柊' + }] + }, ] } diff --git a/src/menu/components/form/formaction/index.jsx b/src/menu/components/form/formaction/index.jsx index 12cc00f..5a19faa 100644 --- a/src/menu/components/form/formaction/index.jsx +++ b/src/menu/components/form/formaction/index.jsx @@ -248,7 +248,7 @@ wrapClassName="model-table-action-verify-modal" title={'楠岃瘉淇℃伅'} visible={profVisible} - width={'75vw'} + width={'90vw'} maskClosable={false} okText={dict['model.submit']} onOk={this.verifySubmit} diff --git a/src/menu/components/form/normal-form/index.jsx b/src/menu/components/form/normal-form/index.jsx index 47d8a42..7635452 100644 --- a/src/menu/components/form/normal-form/index.jsx +++ b/src/menu/components/form/normal-form/index.jsx @@ -59,7 +59,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 @@ -194,7 +193,21 @@ } getStyle = (comIds, style) => { - const { card } = this.state + const { card, group } = this.state + + if (comIds[0] === 'form') { + let Index = group.fields.findIndex(n => n.uuid === comIds[1]) + + if (Index === -1) return + + let _group = fromJS(group).toJS() + + _group.fields[Index].style = style + + this.updateGroup(_group) + + return + } if (comIds.length !== 1 || comIds[0] !== card.uuid) return @@ -554,6 +567,9 @@ } if (item.uuid === res.uuid) { + if (item.style) { + res.style = item.style + } return res } else { return item @@ -722,7 +738,8 @@ <Modal title={this.state.dict['model.edit']} visible={this.state.visible} - width={850} + width={950} + maskClosable={false} onCancel={this.editModalCancel} onOk={this.handleSubmit} confirmLoading={this.state.sqlVerifing} diff --git a/src/menu/components/form/normal-form/index.scss b/src/menu/components/form/normal-form/index.scss index 0fb6111..ff50139 100644 --- a/src/menu/components/form/normal-form/index.scss +++ b/src/menu/components/form/normal-form/index.scss @@ -36,6 +36,9 @@ } .form-area { position: relative; + .page-card { + background: transparent; + } >.plus { color: #26C281; cursor: pointer; @@ -65,6 +68,9 @@ padding-top: 10px; padding-bottom: 30px; } + .am-list-item { + background-color: transparent; + } } } .menu-normal-form-edit-box::after { diff --git a/src/menu/components/form/normal-form/options.jsx b/src/menu/components/form/normal-form/options.jsx index 93a7c7a..13dddcf 100644 --- a/src/menu/components/form/normal-form/options.jsx +++ b/src/menu/components/form/normal-form/options.jsx @@ -92,6 +92,18 @@ forbid: config.subtype === 'tabform' }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/form/tab-form/index.jsx b/src/menu/components/form/tab-form/index.jsx index 5939b12..6117825 100644 --- a/src/menu/components/form/tab-form/index.jsx +++ b/src/menu/components/form/tab-form/index.jsx @@ -59,7 +59,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 @@ -76,7 +75,21 @@ scripts: [], subcards: [{ uuid: Utils.getuuid(), - setting: {title: '绗竴姝�', align: 'left_right'}, + setting: {title: '鍒嗙粍1', align: 'left_right'}, + sort: 1, + style: {}, + fields: [], + subButton: {label: '鎻愪氦', type: 'submit', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}}, + }, { + uuid: Utils.getuuid(), + setting: {title: '鍒嗙粍2', align: 'left_right'}, + sort: 1, + style: {}, + fields: [], + subButton: {label: '鎻愪氦', type: 'submit', enable: 'true', style: {backgroundColor: '#1890ff', color: '#ffffff', paddingLeft: '25px', paddingRight: '25px', paddingTop: '5px', paddingBottom: '5px'}}, + }, { + uuid: Utils.getuuid(), + setting: {title: '鍒嗙粍3', align: 'left_right'}, sort: 1, style: {}, fields: [], @@ -192,7 +205,21 @@ } getStyle = (comIds, style) => { - const { card } = this.state + const { card, group } = this.state + + if (comIds[0] === 'form') { + let Index = group.fields.findIndex(n => n.uuid === comIds[1]) + + if (Index === -1) return + + let _group = fromJS(group).toJS() + + _group.fields[Index].style = style + + this.updateGroup(_group) + + return + } if (comIds.length !== 1 || comIds[0] !== card.uuid) return @@ -547,6 +574,9 @@ } if (item.uuid === res.uuid) { + if (item.style) { + res.style = item.style + } return res } else { return item @@ -716,7 +746,8 @@ <Modal title={this.state.dict['model.edit']} visible={this.state.visible} - width={850} + width={950} + maskClosable={false} onCancel={this.editModalCancel} onOk={this.handleSubmit} confirmLoading={this.state.sqlVerifing} diff --git a/src/menu/components/form/tab-form/index.scss b/src/menu/components/form/tab-form/index.scss index 0fb6111..ff50139 100644 --- a/src/menu/components/form/tab-form/index.scss +++ b/src/menu/components/form/tab-form/index.scss @@ -36,6 +36,9 @@ } .form-area { position: relative; + .page-card { + background: transparent; + } >.plus { color: #26C281; cursor: pointer; @@ -65,6 +68,9 @@ padding-top: 10px; padding-bottom: 30px; } + .am-list-item { + background-color: transparent; + } } } .menu-normal-form-edit-box::after { diff --git a/src/menu/components/group/groupcomponents/card.jsx b/src/menu/components/group/groupcomponents/card.jsx index bc2c4c4..29710b2 100644 --- a/src/menu/components/group/groupcomponents/card.jsx +++ b/src/menu/components/group/groupcomponents/card.jsx @@ -27,7 +27,7 @@ const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ - item: { type: 'menu', id, originalIndex, floor: card.floor }, + item: { type: 'menu', id, originalIndex }, collect: monitor => ({ isDragging: monitor.isDragging(), }), @@ -36,10 +36,10 @@ accept: 'menu', canDrop: () => true, drop: (item) => { - const { id: draggedId, originalIndex, floor } = item + const { id: draggedId, originalIndex } = item if (originalIndex === undefined) { item.dropTargetId = id - } else if (draggedId && floor === card.floor) { + } else if (draggedId) { if (draggedId === id) return const { index: originIndex } = findCard(draggedId) diff --git a/src/menu/components/group/groupcomponents/index.jsx b/src/menu/components/group/groupcomponents/index.jsx index abf16c9..858b5b1 100644 --- a/src/menu/components/group/groupcomponents/index.jsx +++ b/src/menu/components/group/groupcomponents/index.jsx @@ -106,7 +106,6 @@ width: item.width || 24, dataName: Utils.getdataName(), name: name, - floor: config.floor || 1, // 缁勪欢鐨勫眰绾� isNew: true // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖� } diff --git a/src/menu/components/group/normal-group/index.jsx b/src/menu/components/group/normal-group/index.jsx index 2c087bc..509829e 100644 --- a/src/menu/components/group/normal-group/index.jsx +++ b/src/menu/components/group/normal-group/index.jsx @@ -35,7 +35,6 @@ let _group = { uuid: group.uuid, type: group.type, - floor: group.floor, tabId: group.tabId || '', parentId: group.parentId || '', subtype: group.subtype, @@ -145,7 +144,6 @@ insert = (item) => { let group = fromJS(this.state.group).toJS() - item.floor = group.floor || 1 item.parentId = group.parentId group.components.push(item) @@ -181,7 +179,7 @@ } return ( - <div className={'menu-group-edit-box' + (paddingTop ? ' padding' : '')} style={_style} onClick={this.clickComponent} id={group.uuid}> + <div className={'menu-group-edit-box ' + (paddingTop ? 'padding ' : '') + (group.setting.layout || '')} style={_style} onClick={this.clickComponent} id={group.uuid}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <NormalForm title="鍒嗙粍璁剧疆" width={700} update={this.updateWrap} getForms={this.getWrapForms}> diff --git a/src/menu/components/group/normal-group/index.scss b/src/menu/components/group/normal-group/index.scss index 54c6b75..63a4dd9 100644 --- a/src/menu/components/group/normal-group/index.scss +++ b/src/menu/components/group/normal-group/index.scss @@ -38,3 +38,12 @@ z-index: 1; box-shadow: 0px 0px 4px #1890ff; } +.menu-group-edit-box.flex { + >.group-shell-inner { + display: flex; + width: 100%; + >.mk-component-card { + flex: 1; + } + } +} diff --git a/src/menu/components/group/normal-group/options.jsx b/src/menu/components/group/normal-group/options.jsx index fcaca1a..9c6f2e6 100644 --- a/src/menu/components/group/normal-group/options.jsx +++ b/src/menu/components/group/normal-group/options.jsx @@ -50,6 +50,7 @@ {field: 'pageLayout', values: ['true']}, {field: 'syncModule', values: ['true']}, {field: 'checkAll', values: ['true']}, + {field: 'hide', values: ['true']}, ], forbid: appType === 'mob' }, @@ -79,6 +80,43 @@ forbid: appType === 'mob' }, { + type: 'checkbox', + field: 'hide', + label: '闅愯棌鍏冪礌', + initval: setting.hide || [], + tooltip: '鎵ц鎵撳嵃鏃堕渶瑕侀殣钘忕殑椤甸潰鍏冪礌銆�', + required: false, + options: [ + {value: 'search', label: '鎼滅储'}, + {value: 'button', label: '鎸夐挳'}, + ], + forbid: appType === 'mob' + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: setting.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { + type: 'radio', + field: 'layout', + label: '鍏冪礌甯冨眬', + initval: setting.layout || 'grid', + tooltip: '鍒嗙粍涓厓绱犵殑鎺掑垪鏂瑰紡', + required: false, + options: [ + {value: 'grid', label: '鏍呮牸甯冨眬'}, + {value: 'flex', label: '寮规�у竷灞�'}, + ] + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/module/voucher/index.jsx b/src/menu/components/module/voucher/index.jsx new file mode 100644 index 0000000..e150d22 --- /dev/null +++ b/src/menu/components/module/voucher/index.jsx @@ -0,0 +1,164 @@ +import React, {Component} from 'react' +import PropTypes from 'prop-types' +import { is, fromJS } from 'immutable' +import { Popover } from 'antd' +import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons' + +// import asyncComponent from '@/utils/asyncComponent' +import asyncIconComponent from '@/utils/asyncIconComponent' +import MKEmitter from '@/utils/events.js' +import getWrapForm from './options' + +import './index.scss' + +const NormalForm = asyncIconComponent(() => import('@/components/normalform')) +// const NormalHeader = asyncComponent(() => import('@/menu/components/share/normalheader')) + +class Voucher extends Component { + static propTpyes = { + card: PropTypes.object, + deletecomponent: PropTypes.func, + updateConfig: PropTypes.func, + } + + state = { + card: null, + back: false + } + + UNSAFE_componentWillMount () { + const { card } = this.props + + if (card.isNew) { + let _card = { + uuid: card.uuid, + type: card.type, + tabId: card.tabId || '', + parentId: card.parentId || '', + dataName: card.dataName || '', + format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 + pageable: false, // 缁勪欢灞炴�� - 鏄惁鍙垎椤� + switchable: false, // 缁勪欢灞炴�� - 鏁版嵁鏄惁鍙垏鎹� + width: card.width || 12, + name: '鍑瘉', + subtype: card.subtype, + // setting: { interType: 'system' }, + wrap: { name: '鍑瘉', title: '', width: card.width || 12, type: 'edit' }, + style: { marginLeft: '8px', marginRight: '8px', marginTop: '8px', marginBottom: '8px' }, + headerStyle: {}, + columns: [], + scripts: [], + } + + this.setState({ + card: _card + }) + this.props.updateConfig(_card) + } else { + this.setState({ + card: fromJS(card).toJS() + }) + } + } + + componentDidMount () { + MKEmitter.addListener('submitStyle', this.getStyle) + } + + shouldComponentUpdate (nextProps, nextState) { + return !is(fromJS(this.state), fromJS(nextState)) + } + + /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊锛屾竻闄ゅ揩鎹烽敭璁剧疆 + */ + componentWillUnmount () { + this.setState = () => { + return + } + MKEmitter.removeListener('submitStyle', this.getStyle) + } + + /** + * @description 鍗$墖琛屽灞備俊鎭洿鏂帮紙鏁版嵁婧愶紝鏍峰紡绛夛級 + */ + updateComponent = (component) => { + this.setState({ + card: component + }) + + component.width = component.wrap.width + component.name = component.wrap.name + + this.props.updateConfig(component) + } + + changeStyle = () => { + const { card } = this.state + + MKEmitter.emit('changeStyle', [card.uuid], ['background', 'border', 'padding', 'margin', 'shadow'], card.style) + } + + getStyle = (comIds, style) => { + const { card } = this.state + + if (comIds[0] !== card.uuid || comIds.length !== 1) return + + let _card = {...card, style} + + this.setState({ + card: _card + }) + + this.props.updateConfig(_card) + } + + /** + * @description 鏇存柊鎼滅储鏉′欢閰嶇疆淇℃伅 + */ + updateconfig = (config) => { + this.setState({ + card: config + }) + this.props.updateConfig(config) + } + + getWrapForms = () => { + const { card } = this.state + + return getWrapForm(card.wrap, card.uuid) + } + + updateWrap = (res) => { + let _card = {...this.state.card, wrap: res} + _card.switchable = res.type !== 'edit' + + this.updateComponent(_card) + } + + render() { + const { card } = this.state + + return ( + <div className="menu-voucher-box" style={card.style} id={card.uuid}> + {/* <NormalHeader config={card} updateComponent={this.updateComponent}/> */} + <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ + <div className="mk-popover-control"> + <NormalForm title="鍩烘湰璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}> + <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> + </NormalForm> + <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/> + <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} /> + </div> + } trigger="hover"> + <ToolOutlined /> + </Popover> + <div className="voucher-box"> + jjj + </div> + </div> + ) + } +} + +export default Voucher \ No newline at end of file diff --git a/src/menu/components/module/voucher/index.scss b/src/menu/components/module/voucher/index.scss new file mode 100644 index 0000000..c5f6e98 --- /dev/null +++ b/src/menu/components/module/voucher/index.scss @@ -0,0 +1,41 @@ +.menu-voucher-box { + position: relative; + box-sizing: border-box; + background: #ffffff; + background-position: center center; + background-repeat: no-repeat; + background-size: cover; + min-height: 150px; + overflow-y: auto; + + .anticon-tool { + position: absolute; + z-index: 2; + font-size: 16px; + right: 1px; + top: 1px; + cursor: pointer; + padding: 5px; + background: rgba(255, 255, 255, 0.55); + } + .empty-content { + text-align: center; + font-size: 30px; + margin: 0; + line-height: 90px; + color: #bcbcbc; + } +} +.menu-voucher-box::after { + display: block; + content: ' '; + clear: both; +} +.menu-voucher-box:hover { + z-index: 1; + box-shadow: 0px 0px 4px #1890ff; +} +.menu-voucher-box::-webkit-scrollbar { + display: none; +} + diff --git a/src/menu/components/module/voucher/options.jsx b/src/menu/components/module/voucher/options.jsx new file mode 100644 index 0000000..df667c8 --- /dev/null +++ b/src/menu/components/module/voucher/options.jsx @@ -0,0 +1,83 @@ +import { fromJS } from 'immutable' +import MenuUtils from '@/utils/utils-custom.js' + +/** + * @description Wrap琛ㄥ崟閰嶇疆淇℃伅 + */ +export default function (wrap, id) { + let roleList = sessionStorage.getItem('sysRoles') + let appType = sessionStorage.getItem('appType') + + let menu = fromJS(window.GLOB.customMenu).toJS() + let modules = MenuUtils.getSupModules(menu.components, id) || [] + + if (roleList) { + try { + roleList = JSON.parse(roleList) + } catch (e) { + roleList = [] + } + } else { + roleList = [] + } + + const wrapForm = [ + // { + // type: 'text', + // field: 'title', + // label: '鏍囬', + // initval: wrap.title || '', + // required: false + // }, + { + type: 'radio', + field: 'type', + label: '绫诲瀷', + initval: wrap.type || 'edit', + required: true, + options: [ + {value: 'edit', label: '缂栬緫'}, + {value: 'check', label: '鏌ョ湅'}, + ] + }, + { + type: 'text', + field: 'name', + label: '缁勪欢鍚嶇О', + initval: wrap.name || '', + tooltip: '鐢ㄤ簬缁勪欢闂寸殑鍖哄垎銆�', + required: true + }, + { + type: 'number', + field: 'width', + label: '瀹藉害', + initval: wrap.width || 24, + tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��', + min: 1, + max: 24, + precision: 0, + required: true + }, + { + type: 'cascader', + field: 'supModule', + label: '涓婄骇缁勪欢', + initval: wrap.supModule || [], + required: false, + options: modules, + allowClear: true, + }, + { + type: 'multiselect', + field: 'blacklist', + label: '榛戝悕鍗�', + initval: wrap.blacklist || [], + required: false, + options: roleList, + forbid: !!appType + }, + ] + + return wrapForm +} \ No newline at end of file diff --git a/src/menu/components/search/main-search/dragsearch/card.jsx b/src/menu/components/search/main-search/dragsearch/card.jsx index 3ab0c51..1508196 100644 --- a/src/menu/components/search/main-search/dragsearch/card.jsx +++ b/src/menu/components/search/main-search/dragsearch/card.jsx @@ -69,13 +69,31 @@ } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') { formItem = (<Select value={_defaultValue}></Select>) } else if (card.type === 'date') { - formItem = (<Input style={{marginTop: '4px'}} placeholder={card.labelShow === 'false' ? card.label : ''} value={card.initval} />) + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + formItem = (<DatePicker format={format} value={card.initval ? moment().subtract(card.initval, 'days') : null} />) } else if (card.type === 'dateweek') { formItem = (<WeekPicker value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} />) } else if (card.type === 'datemonth') { formItem = (<MonthPicker value={card.initval ? moment().subtract(card.initval, 'month') : null} />) } else if (card.type === 'daterange') { + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + formItem = (<RangePicker + format={format} className="data-range" placeholder={['BeginTime', 'EndTime']} renderExtraFooter={() => 'extra footer'} diff --git a/src/menu/components/search/main-search/dragsearch/index.jsx b/src/menu/components/search/main-search/dragsearch/index.jsx index 36b39dc..0d48039 100644 --- a/src/menu/components/search/main-search/dragsearch/index.jsx +++ b/src/menu/components/search/main-search/dragsearch/index.jsx @@ -50,6 +50,13 @@ let _val = fromJS(copycard).toJS() try { + delete _val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + _val.$srcId = srcid + } + _val.uuid = Utils.getuuid() _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) } catch (e) { diff --git a/src/menu/components/search/main-search/index.jsx b/src/menu/components/search/main-search/index.jsx index 618db11..c44b673 100644 --- a/src/menu/components/search/main-search/index.jsx +++ b/src/menu/components/search/main-search/index.jsx @@ -53,7 +53,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', width: 24, diff --git a/src/menu/components/search/main-search/options.jsx b/src/menu/components/search/main-search/options.jsx index 996e994..117f5ff 100644 --- a/src/menu/components/search/main-search/options.jsx +++ b/src/menu/components/search/main-search/options.jsx @@ -70,6 +70,18 @@ ] }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/share/actioncomponent/actionform/index.jsx b/src/menu/components/share/actioncomponent/actionform/index.jsx index d9bb436..ce4fea6 100644 --- a/src/menu/components/share/actioncomponent/actionform/index.jsx +++ b/src/menu/components/share/actioncomponent/actionform/index.jsx @@ -11,8 +11,8 @@ const { TextArea } = Input const MkEditIcon = asyncComponent(() => import('@/components/mkIcon')) const acTyOptions = { - pop: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'refreshTab'], - prompt: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'refreshTab'], + pop: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'refreshTab', 'position', 'tipTitle'], + prompt: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'refreshTab', 'position', 'tipTitle'], exec: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'refreshTab'], excelIn: ['label', 'Ot', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'sheet', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width'], excelOut: ['label', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'resetPageIndex', 'pagination', 'search', 'width'], @@ -198,9 +198,9 @@ } else { reOptions.sqlType = this.state.insertUpdateOptions } - if (this.record.execSuccess === 'goback') { + // if (this.record.execSuccess === 'goback') { shows.push('reload') - } + // } } else if (openType === 'form') { let intertype = this.record.intertype @@ -296,7 +296,11 @@ if (this.record.pageTemplate === 'custom') { shows.push('url', 'joint') } else if (this.record.pageTemplate === 'linkpage') { - shows.push('linkmenu', 'joint') + shows.push('linkmenu') + + if (Ot === 'requiredSgl') { + shows.push('joint') + } reRequired.linkmenu = true reTooltip.linkmenu = '' @@ -340,6 +344,8 @@ reTooltip.linkmenu = '浣跨敤鎵爜鐧诲綍鍔熻兘鎴栬彍鍗曡烦杞姛鑳芥椂锛岄渶閫夋嫨璺宠浆鐨勮彍鍗曘��' } else if (_funcType === 'goBack') { shows.push('reload') + // } else if (_funcType === 'megvii') { + // shows.push('subFunc') } } @@ -353,6 +359,9 @@ ] if (this.record.control) { shows.push('controlField', 'controlVal') + } + if (this.record.control === 'disabled') { + shows.push('reason') } } } else { @@ -377,6 +386,9 @@ } if (this.record.control) { shows.push('controlField', 'controlVal') + } + if (this.record.control === 'disabled') { + shows.push('reason') } } @@ -635,25 +647,42 @@ { required: item.required, message: dict['form.required.input'] + item.label + '!' } ] - content = <InputNumber min={item.min} max={item.max} precision={item.precision} /> + content = <InputNumber min={item.min} max={item.max} precision={item.precision} onPressEnter={this.handleSubmit}/> } else if (item.type === 'select') { rules = [ { required: item.required, message: dict['form.required.select'] + item.label + '!' } ] - content = <Select - showSearch - allowClear={item.allowClear === true} - filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - onChange={(value) => {this.optionChange(item.key, value)}} - getPopupContainer={() => document.getElementById('winter')} - > - {item.options.map((option, index) => - <Select.Option key={index} value={(option.value || option.field)}> - {(option.text || option.label)} - </Select.Option> - )} - </Select> + if (item.extendName) { + content = <Select + showSearch + allowClear={item.allowClear === true} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 || + option.props.extend.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onChange={(value) => {this.optionChange(item.key, value)}} + getPopupContainer={() => document.getElementById('winter')} + > + {item.options.map((option, index) => + <Select.Option key={index} extend={option[item.extendName] || ''} value={(option.value || option.field)}> + {(option.text || option.label)} + </Select.Option> + )} + </Select> + } else { + content = <Select + showSearch + allowClear={item.allowClear === true} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onChange={(value) => {this.optionChange(item.key, value)}} + getPopupContainer={() => document.getElementById('winter')} + > + {item.options.map((option, index) => + <Select.Option key={index} value={(option.value || option.field)}> + {(option.text || option.label)} + </Select.Option> + )} + </Select> + } } else if (item.type === 'radio') { rules = [ { required: item.required, message: dict['form.required.select'] + item.label + '!' } diff --git a/src/menu/components/share/actioncomponent/dragaction/card.jsx b/src/menu/components/share/actioncomponent/dragaction/card.jsx index d9219b1..2e38f86 100644 --- a/src/menu/components/share/actioncomponent/dragaction/card.jsx +++ b/src/menu/components/share/actioncomponent/dragaction/card.jsx @@ -1,7 +1,7 @@ import React from 'react' import { useDrag, useDrop } from 'react-dnd' import { Button, Popover } from 'antd' -import { CopyOutlined, EditOutlined, FontColorsOutlined, CloseOutlined, ProfileOutlined } from '@ant-design/icons' +import { CopyOutlined, EditOutlined, FontColorsOutlined, CloseOutlined, ProfileOutlined, WarningOutlined } from '@ant-design/icons' import MkIcon from '@/components/mk-icon' import { resetStyle } from '@/utils/utils-custom.js' @@ -48,6 +48,10 @@ _class = 'swiper swiper-' + card.color show = 'button' } + let warning = null + if (card.OpenType === 'innerpage' && !card.pageTemplate) { + warning = <WarningOutlined style={{color: 'orange', marginLeft: '5px'}}/> + } if (show === 'icon') { btnElement = ( @@ -56,7 +60,7 @@ style={_style} className={_class} onDoubleClick={() => doubleClickCard(id)} - >{card.icon ? <MkIcon type={card.icon}/> : card.label}</Button> + >{card.icon ? <MkIcon type={card.icon}/> : card.label}{warning}</Button> ) } else if (show === 'link') { btnElement = ( @@ -65,7 +69,7 @@ style={_style} className={_class} onDoubleClick={() => doubleClickCard(id)} - >{card.label}{card.icon ? <MkIcon type={card.icon}/> : null}</Button> + >{card.label}{card.icon ? <MkIcon type={card.icon}/> : null}{warning}</Button> ) } else { btnElement = ( @@ -74,7 +78,7 @@ className={_class} onDoubleClick={() => doubleClickCard(id)} > - <MkIcon type={card.icon}/>{card.label} + <MkIcon type={card.icon}/>{card.label}{warning} </Button> ) } diff --git a/src/menu/components/share/actioncomponent/dragaction/index.jsx b/src/menu/components/share/actioncomponent/dragaction/index.jsx index e834be6..13bbd48 100644 --- a/src/menu/components/share/actioncomponent/dragaction/index.jsx +++ b/src/menu/components/share/actioncomponent/dragaction/index.jsx @@ -74,6 +74,13 @@ copycard.originCard = card try { + delete _val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + _val.$srcId = srcid + } + _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) } catch (e) { console.warn('Stringify Failure') diff --git a/src/menu/components/share/actioncomponent/formconfig.jsx b/src/menu/components/share/actioncomponent/formconfig.jsx index 2516398..171b5ef 100644 --- a/src/menu/components/share/actioncomponent/formconfig.jsx +++ b/src/menu/components/share/actioncomponent/formconfig.jsx @@ -63,17 +63,17 @@ }) } - if (type === 'editable') { - opentypes = [ - { - value: 'excelIn', - text: Formdict['model.form.excelIn'] - }, { - value: 'excelOut', - text: Formdict['model.form.excelOut'] - } - ] - } + // if (type === 'editable') { + // opentypes = [ + // { + // value: 'excelIn', + // text: Formdict['model.form.excelIn'] + // }, { + // value: 'excelOut', + // text: Formdict['model.form.excelOut'] + // } + // ] + // } let tabs = getTabs(JSON.parse(JSON.stringify(modules))) @@ -109,8 +109,10 @@ { value: 'logout', text: '閫�鍑�' }, { value: 'mkBinding', text: '寮�閫氭壂鐮佺櫥褰�' }, { value: 'mkUnBinding', text: '鐢ㄦ埛瑙g粦' }, + { value: 'mkUnsubscribe', text: '娉ㄩ攢璐︽埛' }, { value: 'reAuth', text: '鍒囨崲绯荤粺锛堟竻绌虹紦瀛�-灏忕▼搴忥級' }, { value: 'goBack', text: '杩斿洖' }, + // { value: 'megvii', text: '鏃疯闈㈡澘鏈�' }, ] pageTemps = [ { value: 'linkpage', text: '鍏宠仈鑿滃崟' }, @@ -149,7 +151,7 @@ if (type === 'card') { opentypes.push({ value: 'form', - text: '琛ㄥ崟' + text: '琛ㄥ崟锛堝紑鍏虫垨鍕鹃�夋锛�' }) } @@ -177,6 +179,16 @@ required: true, options: funTypes }, + // { + // type: 'select', + // key: 'subFunc', + // label: '鎺ュ彛鍚嶇О', + // initVal: card.subFunc || '', + // required: true, + // options: [ + // { value: 'login', text: '鐧诲綍' } + // ] + // }, { type: 'radio', key: 'formType', @@ -283,6 +295,7 @@ label: '鍏宠仈鑿滃崟', initVal: card.linkmenu || (isApp ? '' : []), required: true, + extendName: 'MenuNo', options: isApp ? appMenus : menulist }, { @@ -399,18 +412,18 @@ type: 'select', key: 'execSuccess', label: Formdict['model.form.afterSuccess'], - initVal: card.execSuccess || 'never', - tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '鍒锋柊涓婄骇缁勪欢-琛屾椂锛屼細鍚屾鍒锋柊褰撳墠缁勪欢锛屾敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�', + initVal: card.execSuccess || 'grid', + tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂拌〃鏍笺�傛敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�', required: true, options: [{ value: 'never', text: Formdict['header.form.refresh.never'] }, { - value: 'grid', - text: '鍒锋柊褰撳墠缁勪欢' - }, { value: 'line', text: '鍒锋柊琛�' + }, { + value: 'grid', + text: '鍒锋柊褰撳墠缁勪欢' }, { value: 'mainline', text: '鍒锋柊涓婄骇缁勪欢 - 琛�' @@ -425,17 +438,17 @@ key: 'execError', label: Formdict['model.form.afterError'], initVal: card.execError || 'never', - tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '鍒锋柊涓婄骇缁勪欢-琛屾椂锛屼細鍚屾鍒锋柊褰撳墠缁勪欢锛屾敞锛氫笂绾х粍浠跺湪鏁版嵁婧愪腑娣诲姞銆�', + tooltip: refresh.length ? '鎵ц鍒锋柊婧愮粍浠舵椂锛岃鍦ㄦ簮鎸夐挳涓缃叧闂悗鍒锋柊閭d竴椤癸紝娉細姝ゆ椂浼氬悓姝ュ埛鏂板綋鍓嶇粍浠跺拰涓婄骇缁勪欢-琛屻��' : '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂拌〃鏍硷紝娉細涓婄骇缁勪欢鍦ㄦ暟鎹簮涓坊鍔犮��', required: true, options: [{ value: 'never', text: Formdict['header.form.refresh.never'] }, { - value: 'grid', - text: '鍒锋柊褰撳墠缁勪欢' - }, { value: 'line', text: '鍒锋柊琛�' + }, { + value: 'grid', + text: '鍒锋柊褰撳墠缁勪欢' }, { value: 'mainline', text: '鍒锋柊涓婄骇缁勪欢 - 琛�' @@ -649,17 +662,25 @@ initVal: card.openmenu || (!appType ? [] : ''), required: false, allowClear: true, - options: appType === 'mob' ? [...appMenus, {value: 'goback', text: '杩斿洖'}] : (appType === 'pc' ? appMenus : menulist), + options: appType === 'mob' ? [...appMenus, {value: 'goback', text: '杩斿洖锛堜笂涓�椤碉級'}] : (appType === 'pc' ? appMenus : menulist), forbid: viewType === 'popview' }, { type: 'text', key: 'output', label: '杩斿洖鍊�', - tooltip: '鎵ц鎴愬姛鍚庣殑杩斿洖鍊笺��', + tooltip: '鎵ц鎴愬姛鍚庣殑杩斿洖鍊笺�備緥濡傦細@id', initVal: card.output || '', required: false, forbid: viewType === 'popview' + }, + { + type: 'text', + key: 'tipTitle', + label: '纭鎻愮ず', + initVal: card.tipTitle || '', + tooltip: '娉細寮圭獥锛堣〃鍗曪級鍦ㄦ樉绀轰负鏄惁妗嗘椂鏈夋晥銆�', + required: false }, { type: 'radio', @@ -738,9 +759,9 @@ { type: 'radio', key: 'reload', - label: '杩斿洖鍚�', + label: '涓婁竴椤�', initVal: card.reload || 'false', - tooltip: '杩斿洖鍚庢槸鍚﹀埛鏂版暟鎹�傛敞锛氬湪鏄庣浜慉PP鎴栧皬绋嬪簭涓湁鏁堛��', + tooltip: '鎴愬姛鍚庢槸鍚﹀埛鏂颁笂椤电殑鏁版嵁銆傛敞锛氬湪鏄庣浜慉PP鎴栧皬绋嬪簭涓湁鏁堛��', forbid: appType !== 'mob', options: [{ value: 'false', @@ -748,6 +769,22 @@ }, { value: 'true', text: '鍒锋柊' + }] + }, + { + type: 'radio', + key: 'position', + label: '鏄剧ず浣嶇疆', + initVal: card.position || 'middle', + tooltip: '娉細寮圭獥锛堣〃鍗曪級鍦ㄦ樉绀轰负鏄惁妗嗘椂鏈夋晥銆�', + required: false, + forbid: appType !== 'mob', + options: [{ + value: 'middle', + text: '涓儴' + }, { + value: 'bottom', + text: '搴曢儴' }] }, { @@ -788,6 +825,13 @@ required: false }, { + type: 'text', + key: 'reason', + label: '绂佺敤鍘熷洜', + initVal: card.reason || '', + required: false + }, + { type: 'splitLine', key: 'title', label: '琛ㄥ崟', @@ -807,9 +851,12 @@ label: '寮�鍏冲昂瀵�', initVal: card.size || 'default', options: [{ - value: 'default', + value: 'large', text: '澶�' }, { + value: 'default', + text: '涓�' + }, { value: 'small', text: '灏�' }] diff --git a/src/menu/components/share/actioncomponent/index.jsx b/src/menu/components/share/actioncomponent/index.jsx index a924679..6f5275c 100644 --- a/src/menu/components/share/actioncomponent/index.jsx +++ b/src/menu/components/share/actioncomponent/index.jsx @@ -410,8 +410,6 @@ if (element.OpenType === 'pop' || element.OpenType === 'popview' || element.execMode === 'pop') { this.props.setSubConfig(element) - } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'page') { - MKEmitter.emit('changeEditMenu', {MenuID: element.uuid, copyMenuId: element.copyMenuId}) } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'linkpage') { MKEmitter.emit('changeEditMenu', {MenuID: element.linkmenu}) } else { @@ -467,7 +465,8 @@ /> {/* 缂栬緫鎸夐挳锛氬鍒躲�佺紪杈� */} <Modal - title={dict['model.action'] + '-' + (card && card.copyType === 'action' ? dict['model.copy'] : dict['model.edit'])} + // title={dict['model.action'] + '-' + (card && card.copyType === 'action' ? dict['model.copy'] : dict['model.edit'])} + title="鎸夐挳路缂栬緫" visible={visible} width={850} maskClosable={false} @@ -493,7 +492,7 @@ wrapClassName="model-table-action-verify-modal" title={(card && card.label ? card.label + ' - ' : '') + '楠岃瘉淇℃伅'} visible={profVisible} - width={'75vw'} + width={'90vw'} maskClosable={false} okText={dict['model.submit']} onOk={this.verifySubmit} diff --git a/src/menu/components/share/copycomponent/index.jsx b/src/menu/components/share/copycomponent/index.jsx index 2ed4914..74bacff 100644 --- a/src/menu/components/share/copycomponent/index.jsx +++ b/src/menu/components/share/copycomponent/index.jsx @@ -13,13 +13,18 @@ trigger = () => { const { card, type } = this.props - let copycard = fromJS(card).toJS() - copycard.copyType = type - - let _val = '' + let _val = fromJS(card).toJS() + _val.copyType = type try { - _val = window.btoa(window.encodeURIComponent(JSON.stringify(copycard))) + delete _val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + _val.$srcId = srcid + } + + _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) } catch (e) { message.warning('澶嶅埗澶辫触锛岃閲嶈瘯锛�') _val = '' diff --git a/src/menu/components/share/normalheader/index.jsx b/src/menu/components/share/normalheader/index.jsx index 72a5d5e..802787f 100644 --- a/src/menu/components/share/normalheader/index.jsx +++ b/src/menu/components/share/normalheader/index.jsx @@ -53,7 +53,7 @@ changeStyle = () => { const { config } = this.props - let options = ['font', 'border'] + let options = ['font', 'border', 'background'] if (config.type === 'menubar') { options.push('padding') } diff --git a/src/menu/components/share/searchcomponent/dragsearch/card.jsx b/src/menu/components/share/searchcomponent/dragsearch/card.jsx index 19b27ed..f6f78e3 100644 --- a/src/menu/components/share/searchcomponent/dragsearch/card.jsx +++ b/src/menu/components/share/searchcomponent/dragsearch/card.jsx @@ -58,6 +58,56 @@ } } + let formItem = null + if (card.type === 'text') { + if (card.inputType !== 'search') { + formItem = <Input placeholder={card.label} value={card.initval} /> + } else { + formItem = <Search placeholder={card.label} value={card.initval} enterButton/> + } + + } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') { + formItem = <Select placeholder={card.label} value={_defaultValue}></Select> + } else if (card.type === 'date') { + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + formItem = <DatePicker format={format} placeholder={card.label} value={card.initval ? moment().subtract(card.initval, 'days') : null} /> + } else if (card.type === 'dateweek') { + formItem = <WeekPicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} /> + } else if (card.type === 'datemonth') { + formItem = <MonthPicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval, 'month') : null} /> + } else if (card.type === 'daterange') { + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + + formItem = <RangePicker + format={format} + className="data-range" + placeholder={['BeginTime', 'EndTime']} + renderExtraFooter={() => 'extra footer'} + value={_defaultValue} + /> + } else if (card.type === 'group') { + formItem = <DateGroup card={card} /> + } + + let labelwidth = card.labelwidth || 33.3 + if (card.labelShow === 'false') { + labelwidth = 0 + } + return ( <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> @@ -69,38 +119,14 @@ <div className={'page-card ' + (card.labelShow || '')} style={{ opacity: opacity}}> <div ref={node => drag(drop(node))}> <Form.Item - labelCol={{xs: { span: 24 }, sm: { span: 8 }}} - wrapperCol = {{xs: { span: 24 }, sm: { span: 16 }}} + labelCol={{style: {width: labelwidth + '%'}}} + wrapperCol={{style: {width: (100 - labelwidth) + '%'}}} + // labelCol={{xs: { span: 24 }, sm: { span: 8 }}} + // wrapperCol = {{xs: { span: 24 }, sm: { span: 16 }}} label={card.labelShow !== 'false' ? card.label : ''} required={card.required === 'true'} > - {card.type === 'text' && card.inputType !== 'search' ? - <Input placeholder={card.label} value={card.initval} /> : null - } - {card.type === 'text' && card.inputType === 'search' ? - <Search placeholder={card.label} value={card.initval} enterButton/> : null - } - {(card.type === 'multiselect' || card.type === 'select' || card.type === 'link') ? - <Select placeholder={card.label} value={_defaultValue}></Select> : null - } - {card.type === 'date' ? - <DatePicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval, 'days') : null} /> : null - } - {card.type === 'dateweek' ? - <WeekPicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} /> : null - } - {card.type === 'datemonth' ? - <MonthPicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval, 'month') : null} /> : null - } - {card.type === 'daterange' ? - <RangePicker - className="data-range" - placeholder={['BeginTime', 'EndTime']} - renderExtraFooter={() => 'extra footer'} - value={_defaultValue} - /> : null - } - {card.type === 'group' ? <DateGroup card={card} /> : null } + {formItem} </Form.Item> </div> </div> diff --git a/src/menu/components/share/searchcomponent/dragsearch/index.jsx b/src/menu/components/share/searchcomponent/dragsearch/index.jsx index 36d7603..a5013eb 100644 --- a/src/menu/components/share/searchcomponent/dragsearch/index.jsx +++ b/src/menu/components/share/searchcomponent/dragsearch/index.jsx @@ -44,6 +44,13 @@ let _val = fromJS(copycard).toJS() try { + delete _val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + _val.$srcId = srcid + } + _val.uuid = Utils.getuuid() _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) } catch (e) { diff --git a/src/menu/components/share/searchcomponent/index.scss b/src/menu/components/share/searchcomponent/index.scss index 8effaa7..fccf1bf 100644 --- a/src/menu/components/share/searchcomponent/index.scss +++ b/src/menu/components/share/searchcomponent/index.scss @@ -1,7 +1,7 @@ .model-custom-header-search-list { padding: 0px; - .ant-row .ant-col { + .ant-row >.ant-col { float: right; padding: 0 6px; } @@ -49,6 +49,12 @@ opacity: 0; z-index: 2; } + .ant-form-item-label { + float: left; + } + .ant-form-item-control-wrapper { + float: left; + } } .page-card.false { .ant-form-item-label { diff --git a/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx b/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx index dc695ac..adbb88b 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx +++ b/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx @@ -48,8 +48,16 @@ let editCols = [ { + field: '$sub', + label: '鎻愪氦' + }, + { field: '$next', label: '涓嬩竴琛�' + }, + { + field: '$noAct', + label: '鏃犲姩浣�' } ] columns.forEach(col => { @@ -90,7 +98,7 @@ key: 'Width', min: 20, max: 1000, - decimal: 0, + precision: 0, label: Formdict['model.form.columnWidth'], initVal: card.Width || 120, required: true @@ -115,7 +123,6 @@ label: Formdict['model.sort'], initVal: card.IsSort || 'false', required: true, - forbidden: card.isSub, options: [{ value: 'true', text: Formdict['model.true'] @@ -172,6 +179,153 @@ }, { type: 'radio', + key: 'editType', + label: '缂栬緫绫诲瀷', + initVal: card.editType || 'text', + required: true, + options: [{ + value: 'text', + text: '鏂囨湰' + }, { + value: 'select', + text: '涓嬫媺' + }, { + value: 'switch', + text: '寮�鍏�' + }] + }, + { + type: 'text', + key: 'initval', + label: '榛樿鍊�', + initVal: card.initval, + tooltip: '浣跨敤$copy鏃讹紝琛ㄧず鏂板鏃跺鍒朵笂涓�琛屼俊鎭��', + required: false + }, + { + type: 'text', + key: 'openVal', + label: '寮�鍚��', + initVal: card.openVal || '', + required: false + }, + { + type: 'text', + key: 'closeVal', + label: '鍏抽棴鍊�', + initVal: card.closeVal || '', + required: false + }, + { + type: 'text', + key: 'openText', + label: '寮�鍚彁绀�', + initVal: card.openText || '', + required: false + }, + { + type: 'text', + key: 'closeText', + label: '鍏抽棴鎻愮ず', + initVal: card.closeText || '', + required: false + }, + { + type: 'radio', + key: 'resourceType', + label: '閫夐」鏉ユ簮', + initVal: card.resourceType || '0', + required: true, + options: [{ + value: '0', + text: '鑷畾涔�' + }, { + value: '1', + text: '鏁版嵁婧�' + }] + }, + { + type: 'select', + key: 'editField', + label: '缂栬緫瀛楁', + initVal: card.editField || '', + tooltip: '褰撳�间笌鎻愮ず鏂囧瓧涓嶅悓鏃讹紝鍙澶栨坊鍔犵紪杈戝瓧娈碉紝浣滀负瀹為檯鍊肩殑褰曞叆瀛楁銆�', + allowClear: true, + required: false, + options: fields + }, + { + type: 'options', + key: 'options', + label: '閫夐」', + initVal: card.options || [], + required: true, + }, + { + type: 'codemirror', + key: 'dataSource', + label: '鏁版嵁婧�', + initVal: card.dataSource || '', + required: true, + }, + { + type: 'text', + key: 'valueField', + label: '鍊悸峰瓧娈�', + initVal: card.valueField || '', + required: true, + }, + { + type: 'text', + key: 'valueText', + label: '鏂囨湰路瀛楁', + initVal: card.valueText || '', + required: true, + }, + { + type: 'text', + key: 'orderBy', + label: '鎺掑簭路瀛楁', + initVal: card.orderBy || '', + required: false, + }, + { + type: 'select', + key: 'orderType', + label: '鎺掑簭鏂瑰紡', + initVal: card.orderType || 'asc', + options: [{ + value: 'asc', + text: Formdict['header.form.asc'] + }, { + value: 'desc', + text: Formdict['header.form.desc'] + }] + }, + { + type: 'text', + key: 'disableField', + label: '绂佺敤路瀛楁', + initVal: card.disableField || '', + tooltip: '璁剧疆绂佺敤瀛楁锛屼笖瀛楁鍊间负true鏃讹紝閫夐」涓嶅彲閫夈��', + required: false, + }, + { + type: 'radio', + key: 'dropdown', + label: '涓嬫媺瀹藉害', + initVal: card.dropdown || 'flex', + required: false, + options: [{ + value: 'flex', + text: '鑷�傚簲' + }, { + value: 'fixed', + text: '瀹氬' + }] + }, + { + type: 'radio', key: 'required', label: '蹇呭~', initVal: card.required || 'false', @@ -185,43 +339,49 @@ }] }, { - type: 'text', - key: 'initval', - label: '榛樿鍊�', - initVal: card.initval, - tooltip: '浣跨敤$copy鏃讹紝琛ㄧず鏂板鏃跺鍒朵笂涓�琛屼俊鎭��', - required: false + type: 'radio', + key: 'database', + label: '鏁版嵁搴�', + initVal: card.database || 'local', + options: [{ + value: 'local', + text: '鏈湴' + }, { + value: 'sso', + text: '绯荤粺' + }] }, { type: 'select', key: 'enter', label: '鍥炶溅鍒囨崲', initVal: card.enter || '$next', + tooltip: '鍖呮嫭鏂囨湰鎴栨暟鍊煎洖杞︿簨浠躲�佷笅鎷夎彍鍗曢�変腑浜嬩欢銆佸紑鍏冲垏鎹簨浠躲��', options: editCols }, - { - type: 'radio', - key: 'footEnter', - label: '鏈鍥炶溅', - initVal: card.footEnter || 'false', - tooltip: '鏂板鍔熻兘浠呭湪琛ㄦ牸鍙柊澧炴椂鏈夋晥銆�', - options: [{ - value: 'sub', - text: '鎻愪氦' - }, { - value: 'add', - text: '鏂板' - }, { - value: 'false', - text: '鏃犲姩浣�' - }] - }, + // { + // type: 'radio', + // key: 'footEnter', + // label: '鏈鍥炶溅', + // initVal: card.footEnter || 'false', + // tooltip: '鏂板鍔熻兘浠呭湪琛ㄦ牸鍙柊澧炴椂鏈夋晥銆�', + // options: [{ + // value: 'sub', + // text: '鎻愪氦' + // }, { + // value: 'add', + // text: '鏂板' + // }, { + // value: 'false', + // text: '鏃犲姩浣�' + // }] + // }, { type: 'number', key: 'decimal', min: 0, max: 18, - decimal: 0, + precision: 0, label: Formdict['header.form.decimal'], initVal: card.decimal || 0, required: true @@ -285,7 +445,6 @@ label: Formdict['header.form.prefix'], initVal: card.prefix || '', required: false, - readonly: false }, { type: 'text', @@ -293,7 +452,6 @@ label: Formdict['header.form.postfix'], initVal: card.postfix || '', required: false, - readonly: false }, { type: 'radio', @@ -312,12 +470,20 @@ key: 'formula', label: '鍏紡', initVal: card.formula || '', - tooltip: '鎵ц鏃朵細浣跨敤鏌ヨ鍒扮殑鏁版嵁鏇挎崲鐩稿簲鐨勫瓧娈碉紝灞曠ず鑾峰緱鐨勭粨鏋溿�傚彲浣跨敤JS鐨勪竴浜涜娉曪紝濡傦細涓夊厓琛ㄨ揪寮� @field1@ > @field2@ ? 0 : 1锛汳ath瀵硅薄锛屽彇缁濆鍊� Math.abs(@field@)銆佸洓鑸嶄簲鍏� Math.round(@field@)绛�', + tooltip: '鎵ц鏃朵細浣跨敤鏌ヨ鍒扮殑鏁版嵁鏇挎崲鐩稿簲鐨勫瓧娈碉紝灞曠ず鑾峰緱鐨勭粨鏋滐紝鍦ㄤ笉浣跨敤瑙f瀽鏃舵崲琛岀鎴栫┖鏍间細鏇挎崲涓洪〉闈㈠厓绱犮�傚彲浣跨敤JS鐨勪竴浜涜娉曪紝濡傦細涓夊厓琛ㄨ揪寮� @field1@ > @field2@ ? 0 : 1锛汳ath瀵硅薄锛屽彇缁濆鍊� Math.abs(@field@)銆佸洓鑸嶄簲鍏� Math.round(@field@)绛�', placeholder: '渚嬪锛欯price@ * @number@', required: true }, { type: 'multiselect', + key: 'linkSubField', + label: '濉厖琛ㄥ崟', + tooltip: '鍦ㄥ垏鎹㈤�夐」鏃朵細鎶婁俊鎭嚜鍔ㄥ~鍏ュ叧鑱旂殑瀛楁涓��', + initVal: card.linkSubField || [], + options: fields + }, + { + type: 'multiselect', key: 'blacklist', label: Formdict['header.form.blacklist'], initVal: card.blacklist || [], diff --git a/src/menu/components/table/edit-table/columns/editColumn/index.jsx b/src/menu/components/table/edit-table/columns/editColumn/index.jsx index d664236..ca299fb 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/edit-table/columns/editColumn/index.jsx @@ -6,7 +6,10 @@ import { getColumnForm } from './formconfig' import { formRule } from '@/utils/option.js' +import CodeMirror from '@/templates/zshare/codemirror' +import EditTable from '@/templates/zshare/modalform/modaleditable' import './index.scss' + const { TextArea } = Input const columnTypeOptions = { @@ -32,7 +35,19 @@ state = { visible: false, - formlist: null + formlist: null, + transfield: {} + } + + column = null + + UNSAFE_componentWillMount() { + let transfield = {} + this.props.columns.forEach(item => { + transfield[item.field] = item.label + }) + + this.setState({transfield}) } UNSAFE_componentWillReceiveProps (nextProps) { @@ -41,22 +56,45 @@ } } - editColumn = (column) => { - let formlist = getColumnForm(column, this.props.fields, this.props.columns) - let _options = fromJS(columnTypeOptions[column.type]).toJS() + getOptions = () => { + let _options = fromJS(columnTypeOptions[this.column.type]).toJS() - if (column.editable === 'true') { - if (column.type === 'text') { - _options.push('required', 'enter', 'footEnter') - } else if (column.type === 'number') { - _options.push('max', 'min', 'enter', 'footEnter') + if (this.column.editable === 'true') { + if (this.column.type === 'text') { + _options.push('editType') + + if (this.column.editType === 'switch') { + _options.push('enter', 'openVal', 'closeVal', 'openText', 'closeText', 'editField') + } else if (this.column.editType === 'select') { + _options.push('required', 'enter', 'resourceType', 'linkSubField', 'editField', 'dropdown') + + if (this.column.resourceType === '0') { + _options.push('options') + } else { + _options.push('dataSource', 'valueField', 'valueText', 'orderBy', 'orderType', 'disableField', 'database') + } + } else { + _options.push('required', 'enter') + } + } else if (this.column.type === 'number') { + _options.push('max', 'min', 'enter') } } + return _options + } + + editColumn = (column) => { + let formlist = getColumnForm(column, this.props.fields, this.props.columns) + + this.column = fromJS(column).toJS() + this.column.editType = this.column.editType || 'text' + this.column.resourceType = this.column.resourceType || '0' + + let _options = this.getOptions() + this.setState({ visible: true, - editable: column.editable || 'false', - type: column.type, formlist: formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -76,24 +114,14 @@ } typeChange = (key, value, option) => { - const { editable, type } = this.state - if (key === 'type') { - let _options = fromJS(columnTypeOptions[value]).toJS() + this.column[key] = value - if (editable === 'true') { - if (value === 'text') { - _options.push('required', 'enter', 'footEnter') - } else if (value === 'number') { - _options.push('max', 'min', 'enter', 'footEnter') - } - } + if (key === 'type') { + let _options = this.getOptions() this.setState({ - type: value, formlist: this.state.formlist.map(item => { - if (item.key === 'editable') { - item.initVal = editable - } + item.initVal = this.column[item.key] || item.initVal item.hidden = !_options.includes(item.key) return item @@ -116,23 +144,15 @@ values.type = 'text' } - if (values.type !== this.state.type) { - let _options = fromJS(columnTypeOptions[values.type]).toJS() + let _type = this.column.type + this.column.type = values.type - if (editable === 'true') { - if (values.type === 'text') { - _options.push('required', 'enter', 'footEnter') - } else if (values.type === 'number') { - _options.push('max', 'min', 'enter', 'footEnter') - } - } + if (values.type !== _type) { + let _options = this.getOptions() this.setState({ - type: values.type, formlist: this.state.formlist.map(item => { - if (item.key === 'editable') { - item.initVal = editable - } + item.initVal = this.column[item.key] || item.initVal item.hidden = !_options.includes(item.key) return item @@ -145,20 +165,12 @@ } } else if (key === 'format' && value === 'percent') { this.props.form.setFieldsValue({postfix: '%'}) - } else if (key === 'editable') { - let _options = fromJS(columnTypeOptions[type]).toJS() - - if (value === 'true') { - if (type === 'text') { - _options.push('required', 'enter', 'footEnter') - } else if (type === 'number') { - _options.push('max', 'min', 'enter', 'footEnter') - } - } + } else if (key === 'editable' || key === 'editType' || key === 'resourceType') { + let _options = this.getOptions() this.setState({ - editable: value, formlist: this.state.formlist.map(item => { + item.initVal = this.column[item.key] || item.initVal item.hidden = !_options.includes(item.key) return item @@ -167,9 +179,50 @@ } } + multiselectChange = (key, value) => { + if (key !== 'linkSubField') return + + this.column[key] = value + } + + handleEmpty = () => { + let field = this.props.form.getFieldValue('valueField') + + if (!field) { + notification.warning({ + top: 92, + message: '璇峰~鍐欏�悸峰瓧娈点��', + duration: 5 + }) + return + } + + let text = this.props.form.getFieldValue('valueText') + + if (!text) { + notification.warning({ + top: 92, + message: '璇峰~鍐欐枃鏈峰瓧娈点��', + duration: 5 + }) + return + } + + let resource = this.props.form.getFieldValue('dataSource') || '' + + resource = `select '' as ${field},'鍏ㄩ儴' as ${text} union all \n${resource}` + + this.props.form.setFieldsValue({dataSource: resource}) + } + + changeOptions = (data) => { + this.column.options = data || [] + } + getFields() { + const { dict } = this.props const { getFieldDecorator } = this.props.form - const { formlist } = this.state + const { formlist, transfield } = this.state const fields = [] if (!formlist) return null @@ -177,159 +230,113 @@ formlist.forEach((item, index) => { if (item.hidden || item.forbidden) return - if (item.type === 'text') { // 鏂囨湰鎼滅储 - let rules = [] - if (item.key !== 'linkurl') { - rules = [{ + let span = 12 + let rules = [] + let className = '' + let content = null + let extra = null + let initVal = item.initVal || '' + + if (item.type === 'text') { + rules = [ + { required: item.required, message: dict['form.required.input'] + item.label + '!' }, + { max: formRule.input.max, message: formRule.input.message - }] - } - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" title={item.tooltip}> - <QuestionCircleOutlined className="mk-form-tip" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal || '', - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' - }, - ...rules - ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} - </Form.Item> - </Col> - ) + } + ] + + content = <Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} /> } else if (item.type === 'number') { - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" title={item.tooltip}> - <QuestionCircleOutlined className="mk-form-tip" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' - } - ] - })(item.unlimit ? <InputNumber onPressEnter={this.handleSubmit}/> : - <InputNumber min={item.min} max={item.max} precision={item.decimal} onPressEnter={this.handleSubmit}/>)} - </Form.Item> - </Col> - ) + rules = [ + { required: item.required, message: dict['form.required.input'] + item.label + '!' } + ] + initVal = item.initVal + + if (!item.unlimit) { + content = <InputNumber min={item.min} max={item.max} precision={item.precision} onPressEnter={this.handleSubmit}/> + } else { + content = <InputNumber onPressEnter={this.handleSubmit}/> + } } else if (item.type === 'select') { - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.label}> - {getFieldDecorator(item.key, { - initialValue: item.initVal || '', - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' - } - ] - })( - <Select - showSearch - filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - onChange={(value, option) => {this.typeChange(item.key, value, option)}} - getPopupContainer={() => document.getElementById('columnwinter')} - > - {item.options.map((option, index) => - <Select.Option key={index} datatype={option.datatype || ''} value={(option.value || option.field || option.MenuID)}> - {(option.text || option.label || option.MenuName)} - </Select.Option> - )} - </Select> - )} - </Form.Item> - </Col> - ) + rules = [ + { required: item.required, message: dict['form.required.select'] + item.label + '!' } + ] + content = <Select + showSearch + allowClear={item.allowClear === true} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onChange={(value, option) => {this.typeChange(item.key, value, option)}} + getPopupContainer={() => document.getElementById('edit-table-column-winter')} + > + {item.options.map((option, i) => + <Select.Option key={i} datatype={option.datatype || ''} value={(option.value || option.field || option.MenuID)}> + {(option.text || option.label || option.MenuName)} + </Select.Option> + )} + </Select> } else if (item.type === 'radio') { - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" title={item.tooltip}> - <QuestionCircleOutlined className="mk-form-tip" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' - } - ] - })( - <Radio.Group onChange={(e) => {this.typeChange(item.key, e.target.value)}}> - { - item.options.map(option => { - return ( - <Radio key={option.value} value={option.value}>{option.text}</Radio> - ) - }) - } - </Radio.Group> - )} - </Form.Item> - </Col> - ) + rules = [ + { required: item.required, message: dict['form.required.select'] + item.label + '!' } + ] + initVal = item.initVal + + content = <Radio.Group onChange={(e) => {this.typeChange(item.key, e.target.value)}}> + {item.options.map(option => <Radio key={option.value} value={option.value}>{option.text}</Radio>)} + </Radio.Group> } else if (item.type === 'multiselect') { // 澶氶�� - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.label}> - {getFieldDecorator(item.key, { - initialValue: item.initVal || [] - })( - <Select - showSearch - mode="multiple" - filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - > - {item.options.map((option, i) => - <Select.Option id={i} key={i} value={option.value || option.field}>{option.text || option.label}</Select.Option> - )} - </Select> - )} - </Form.Item> - </Col> - ) - } else if (item.type === 'textarea') { // 鏂囨湰鎼滅储 - fields.push( - <Col span={24} key={index} className="textarea"> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" title={item.tooltip}> - <QuestionCircleOutlined className="mk-form-tip" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal || '', - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' - } - ] - })(<TextArea rows={2} disabled={item.readonly} placeholder={item.placeholder || ''} />)} - </Form.Item> - </Col> - ) + content = <Select + showSearch + mode="multiple" + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onChange={(value) => this.multiselectChange(item.key, value)} + > + {item.options.map((option, i) => + <Select.Option key={i} value={option.value || option.field}>{option.text || option.label}</Select.Option> + )} + </Select> + } else if (item.type === 'textarea') { + span = 24 + className = 'text-area' + rules = [ + { required: item.required, message: dict['form.required.input'] + item.label + '!' } + ] + + content = <TextArea rows={item.rows || 2}/> + } else if (item.type === 'codemirror') { + rules = [ + { required: item.required, message: dict['form.required.input'] + item.label + '!' } + ] + span = 24 + className = 'text-area' + + extra = <span className="add-resource-empty" onClick={this.handleEmpty}>绌�</span> + + content = <CodeMirror /> + } else if (item.type === 'options') { + span = 24 + className = 'text-area' + + let linkSubFields = this.column.linkSubField || [] + + content = <EditTable type={'select'} module="form" transfield={transfield} linkSubFields={linkSubFields} onChange={this.changeOptions}/> } + + fields.push( + <Col span={span} key={index}> + <Form.Item className={className} extra={extra} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <QuestionCircleOutlined className="mk-form-tip" /> + {item.label} + </Tooltip> : item.label + }> + {getFieldDecorator(item.key, { + initialValue: initVal, + rules: rules + })(content)} + </Form.Item> + </Col> + ) }) return fields } @@ -352,6 +359,8 @@ } this.setState({visible: false, formlist: null}) this.props.submitCol(values) + + this.column = null } }) } @@ -380,13 +389,13 @@ <Modal title="鏄剧ず鍒楃紪杈�" visible={visible} - width={800} + width={900} maskClosable={false} onOk={this.handleSubmit} onCancel={this.editModalCancel} destroyOnClose > - <Form {...formItemLayout} className="commontable-column-form" id="columnwinter"> + <Form {...formItemLayout} className="commontable-column-form" id="edit-table-column-winter"> <Row gutter={24}>{this.getFields()}</Row> </Form> </Modal> diff --git a/src/menu/components/table/edit-table/columns/editColumn/index.scss b/src/menu/components/table/edit-table/columns/editColumn/index.scss index 9885df8..e9dd7c5 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/index.scss +++ b/src/menu/components/table/edit-table/columns/editColumn/index.scss @@ -6,12 +6,27 @@ padding-right: 3px; } } - .textarea { - .ant-form-item-label { - width: 12%; - } - .ant-form-item-control-wrapper { + .ant-form-item.text-area { + >.ant-form-item-control-wrapper { width: 88%; } + >.ant-form-item-label { + width: 12%; + } + .CodeMirror { + height: 150px; + } + } + .ant-form-extra { + padding-top: 0px; + min-height: 0px; + } + .add-resource-empty { + position: absolute; + right: 10px; + top: -25px; + color: #1890ff; + cursor: pointer; + font-size: 14px; } } diff --git a/src/menu/components/table/edit-table/columns/index.jsx b/src/menu/components/table/edit-table/columns/index.jsx index 4ed5e10..cbf2d50 100644 --- a/src/menu/components/table/edit-table/columns/index.jsx +++ b/src/menu/components/table/edit-table/columns/index.jsx @@ -43,7 +43,7 @@ return true } - if (!nextProps.column) return false + if (!nextProps.column) return true return !is(fromJS(this.props.column), fromJS(nextProps.column)) || !is(fromJS(this.props.fields), fromJS(nextProps.fields)) || @@ -53,17 +53,23 @@ render() { const { connectDragSource, connectDropTarget, moveCol, addElement, updateCol, editColumn, changeStyle, deleteCol, index, column, align, fields, children, ...restProps } = this.props + if (!column) return ( + <th {...restProps} index={index}> + {children} + </th> + ) + return connectDragSource( - connectDropTarget(<th {...restProps} index={index} style={{ cursor: 'move', textAlign: align }} onDoubleClick={() => column && this.props.editColumn(column)}> + connectDropTarget(<th {...restProps} index={index} style={{ cursor: 'move', textAlign: align }} onDoubleClick={() => this.props.editColumn(column)}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}> - {column && ['custom', 'action'].includes(column.type) ? + {['custom', 'action'].includes(column.type) ? <PlusOutlined className="plus" title="娣诲姞" onClick={() => this.props.addElement(column)} /> : null } <EditOutlined className="edit" title="缂栬緫" onClick={() => this.props.editColumn(column)} /> - {column && column.type === 'custom' ? <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={() => this.props.changeStyle(column)}/> : null} + {column.type === 'custom' ? <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={() => this.props.changeStyle(column)}/> : null} <DeleteOutlined className="close" title="鍒犻櫎" onClick={this.deleteCol} /> - {column && ['text', 'number', 'formula'].includes(column.type) ? <MarkColumn columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } + {['text', 'number', 'formula'].includes(column.type) ? <MarkColumn columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } </div> } trigger="hover"> {children} @@ -405,6 +411,11 @@ cols: columns.filter(col => !col.origin) } + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + val.$srcId = srcid + } + oInput.value = window.btoa(window.encodeURIComponent(JSON.stringify(val))) document.body.appendChild(oInput) oInput.select() @@ -511,10 +522,17 @@ } } + let rowSelection = null + if (config.wrap.tableType) { + rowSelection = { + type: config.wrap.tableType === 'radio' ? 'radio' : 'checkbox', + } + } + const columns = this.state.columns.map((col, index) => { let title = col.label if (col.editable === 'true') { - title = <span>{col.label}<EditOutlined style={{position: 'absolute', bottom: 0, right: 0, color: '#1890ff'}}/></span> + title = <span>{col.label}<EditOutlined style={{position: 'absolute', bottom: 0, right: 0, color: '#1890ff', opacity: '0.7'}}/></span> } return { title: title, @@ -573,6 +591,7 @@ rowClassName="editable-row" style={style} bordered={config.wrap.bordered !== 'false'} + rowSelection={rowSelection} components={components} dataSource={this.state.data} columns={columns} diff --git a/src/menu/components/table/edit-table/columns/index.scss b/src/menu/components/table/edit-table/columns/index.scss index 2934fd7..3703f0e 100644 --- a/src/menu/components/table/edit-table/columns/index.scss +++ b/src/menu/components/table/edit-table/columns/index.scss @@ -5,7 +5,8 @@ font-size: inherit; } .submit-btn { - height: 24px; + min-height: 24px; + height: auto; margin-right: 10px; background-color: #1890ff; border-width: 0; @@ -63,10 +64,9 @@ } } .col-control { - position: absolute; + position: relative; + float: right; z-index: 2; - right: 0; - top: -25px; >.anticon, >div > .anticon { font-size: 16px; margin-right: 10px; diff --git a/src/menu/components/table/edit-table/columns/tableIn/customscript/index.jsx b/src/menu/components/table/edit-table/columns/tableIn/customscript/index.jsx index 1c83631..baf0e0c 100644 --- a/src/menu/components/table/edit-table/columns/tableIn/customscript/index.jsx +++ b/src/menu/components/table/edit-table/columns/tableIn/customscript/index.jsx @@ -306,6 +306,9 @@ <Select.Option key="default" value={'default'}> 榛樿sql </Select.Option> + <Select.Option key="debugger" value={`z_debug: select @ErrorCode='E',@retmsg='娴嬭瘯鏂偣' goto aaa`}> + 娴嬭瘯鏂偣 + </Select.Option> {systemScripts.map((option, i) => <Select.Option key={i} value={option.value}> {option.name} diff --git a/src/menu/components/table/edit-table/columns/tableIn/index.jsx b/src/menu/components/table/edit-table/columns/tableIn/index.jsx index 633ae38..9e83517 100644 --- a/src/menu/components/table/edit-table/columns/tableIn/index.jsx +++ b/src/menu/components/table/edit-table/columns/tableIn/index.jsx @@ -100,12 +100,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } @@ -527,7 +527,7 @@ return ( <div id="verify-excel-box-tab"> - <Tabs activeKey={activeKey} className="verify-card-box" onChange={this.tabchange}> + <Tabs activeKey={activeKey} className="tablein-verify-card-box" onChange={this.tabchange}> <TabPane tab="鍩虹楠岃瘉" key="basemsg"> <Form {...formItemLayout}> <Row gutter={24}> diff --git a/src/menu/components/table/edit-table/columns/tableIn/index.scss b/src/menu/components/table/edit-table/columns/tableIn/index.scss index 0b2c26b..39e908f 100644 --- a/src/menu/components/table/edit-table/columns/tableIn/index.scss +++ b/src/menu/components/table/edit-table/columns/tableIn/index.scss @@ -1,4 +1,4 @@ -.verify-card-box { +.tablein-verify-card-box { .ant-tabs-nav-scroll { text-align: center; } diff --git a/src/menu/components/table/edit-table/index.jsx b/src/menu/components/table/edit-table/index.jsx index 5ac87be..933ea98 100644 --- a/src/menu/components/table/edit-table/index.jsx +++ b/src/menu/components/table/edit-table/index.jsx @@ -46,7 +46,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 @@ -311,7 +310,13 @@ } updateWrap = (res) => { - this.updateComponent({...this.state.card, wrap: res}) + let card = {...this.state.card, wrap: res} + + if (res.tableType) { + card.switchable = true + } + + this.updateComponent(card) } clickComponent = (e) => { diff --git a/src/menu/components/table/edit-table/options.jsx b/src/menu/components/table/edit-table/options.jsx index 3dcd8b3..d99be1f 100644 --- a/src/menu/components/table/edit-table/options.jsx +++ b/src/menu/components/table/edit-table/options.jsx @@ -55,6 +55,111 @@ }, { type: 'radio', + field: 'editable', + label: '鍒濆鍖�', + initval: wrap.editable || 'false', + required: false, + options: [ + {value: 'true', label: '鍙紪杈�'}, + {value: 'false', label: '涓嶅彲缂栬緫'}, + ] + }, + { + type: 'radio', + field: 'submittal', + label: '鎻愪氦鍚�', + initval: wrap.submittal || 'false', + required: false, + options: [ + {value: 'true', label: '鍙紪杈�'}, + {value: 'false', label: '涓嶅彲缂栬緫'}, + ] + }, + { + type: 'radio', + field: 'addable', + label: '鍙柊澧�', + initval: wrap.addable || 'false', + required: false, + options: [ + {value: 'true', label: '鏄�'}, + {value: 'false', label: '鍚�'}, + ] + }, + { + type: 'radio', + field: 'delable', + label: '鍙垹闄�', + initval: wrap.delable || 'true', + required: false, + options: [ + {value: 'true', label: '鏄�'}, + {value: 'false', label: '鍚�'}, + ] + }, + { + type: 'radio', + field: 'commit', + label: '鏁版嵁鎻愪氦', + initval: wrap.commit || 'all', + tooltip: '鍗曢」鎻愪氦鎸囧湪琛ㄥ崟涓洖杞︽垨鍒犻櫎琛屾椂锛岃缃负鍗曢」鏃跺鐐瑰嚮鎻愪氦鎸夐挳锛屼細鎻愪氦淇敼椤广��', + required: false, + options: [ + {value: 'all', label: '鍏ㄩ儴'}, + {value: 'change', label: '淇敼椤�'}, + {value: 'simple', label: '鍗曢」'}, + ] + }, + { + type: 'radio', + field: 'operType', + label: '缂栬緫鎸夐挳', + initval: wrap.operType || 'btnMode', + tooltip: '缂栬緫鏃剁殑娣诲姞銆佸垹闄ゆ寜閽樉绀轰綅缃紝娉細浣跨敤娴爣鏃惰〃鏍兼í鍚戞粴鍔ㄥけ鏁堬紝琛ㄦ牸璁剧疆楂樺害鏃舵诞鏍囨棤鏁堛��', + required: false, + options: [ + {value: 'btnMode', label: '鎸夐挳寮�'}, + {value: 'buoyMode', label: '娴爣寮�'}, + ] + }, + { + type: 'radio', + field: 'editType', + label: '缂栬緫妯″紡', + initval: wrap.editType || 'simple', + tooltip: '鍙紪杈戣〃鍗曟槸鍚﹀叏閮ㄦ斁寮�銆�', + required: false, + options: [ + {value: 'simple', label: '鍗曢」'}, + {value: 'multi', label: '鏁翠綋'}, + ] + }, + { + type: 'radio', + field: 'cache', + label: '缂撳瓨', + initval: wrap.cache || 'true', + tooltip: '瀵逛簬浣跨敤鏁版嵁婧愮殑涓嬫媺鑿滃崟锛屼笅鎷夐�夐」鏄惁缂撳瓨鍒版湰鍦般��', + required: false, + options: [ + {value: 'true', label: '浣跨敤'}, + {value: 'false', label: '涓嶄娇鐢�'}, + ] + }, + { + type: 'radio', + field: 'tableType', + label: '琛ㄦ牸灞炴��', + initval: wrap.tableType || '', + required: false, + options: [ + {value: '', label: '涓嶅彲閫�'}, + {value: 'radio', label: '鍗曢��'}, + {value: 'checkbox', label: '澶氶��'}, + ] + }, + { + type: 'radio', field: 'bordered', label: '杈规', initval: wrap.bordered || 'true', @@ -113,39 +218,6 @@ ] }, { - type: 'radio', - field: 'addable', - label: '鍙柊澧�', - initval: wrap.addable || 'false', - required: false, - options: [ - {value: 'true', label: '鏄�'}, - {value: 'false', label: '鍚�'}, - ] - }, - { - type: 'radio', - field: 'delable', - label: '鍙垹闄�', - initval: wrap.delable || 'true', - required: false, - options: [ - {value: 'true', label: '鏄�'}, - {value: 'false', label: '鍚�'}, - ] - }, - { - type: 'radio', - field: 'editable', - label: '鍒濆鍖�', - initval: wrap.editable || 'false', - required: false, - options: [ - {value: 'true', label: '鍙紪杈�'}, - {value: 'false', label: '涓嶅彲缂栬緫'}, - ] - }, - { type: 'color', field: 'borderColor', label: '杈规棰滆壊', @@ -183,6 +255,18 @@ required: false }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx b/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx index b861cf1..d8a652f 100644 --- a/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx +++ b/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx @@ -152,9 +152,9 @@ type: 'radio', key: 'IsSort', label: Formdict['model.sort'], - initVal: card.IsSort || 'true', + initVal: card.IsSort || (card.isSub ? 'false' : 'true'), required: true, - forbidden: card.isSub, + // forbidden: card.isSub, options: [{ value: 'true', text: Formdict['model.true'] @@ -405,7 +405,7 @@ key: 'formula', label: '鍏紡', initVal: card.formula || '', - tooltip: '鎵ц鏃朵細浣跨敤鏌ヨ鍒扮殑鏁版嵁鏇挎崲鐩稿簲鐨勫瓧娈碉紝灞曠ず鑾峰緱鐨勭粨鏋溿�傚彲浣跨敤JS鐨勪竴浜涜娉曪紝濡傦細涓夊厓琛ㄨ揪寮� @field1@ > @field2@ ? 0 : 1锛汳ath瀵硅薄锛屽彇缁濆鍊� Math.abs(@field@)銆佸洓鑸嶄簲鍏� Math.round(@field@)绛�', + tooltip: '鎵ц鏃朵細浣跨敤鏌ヨ鍒扮殑鏁版嵁鏇挎崲鐩稿簲鐨勫瓧娈碉紝灞曠ず鑾峰緱鐨勭粨鏋滐紝鍦ㄤ笉浣跨敤瑙f瀽鏃舵崲琛岀鎴栫┖鏍间細鏇挎崲涓洪〉闈㈠厓绱犮�傚彲浣跨敤JS鐨勪竴浜涜娉曪紝濡傦細涓夊厓琛ㄨ揪寮� @field1@ > @field2@ ? 0 : 1锛汳ath瀵硅薄锛屽彇缁濆鍊� Math.abs(@field@)銆佸洓鑸嶄簲鍏� Math.round(@field@)绛�', placeholder: '渚嬪锛欯price@ * @number@', required: true }, diff --git a/src/menu/components/table/normal-table/columns/editColumn/index.jsx b/src/menu/components/table/normal-table/columns/editColumn/index.jsx index 6222466..7aa7940 100644 --- a/src/menu/components/table/normal-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/normal-table/columns/editColumn/index.jsx @@ -160,7 +160,7 @@ formlist.forEach((item, index) => { if (item.hidden || item.forbidden) return - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { let rules = [] if (item.key !== 'linkurl') { rules = [{ @@ -313,7 +313,7 @@ </Form.Item> </Col> ) - } else if (item.type === 'textarea') { // 鏂囨湰鎼滅储 + } else if (item.type === 'textarea') { fields.push( <Col span={24} key={index} className="textarea"> <Form.Item label={item.tooltip ? diff --git a/src/menu/components/table/normal-table/columns/index.jsx b/src/menu/components/table/normal-table/columns/index.jsx index 6baf48a..5d7552b 100644 --- a/src/menu/components/table/normal-table/columns/index.jsx +++ b/src/menu/components/table/normal-table/columns/index.jsx @@ -442,6 +442,11 @@ cols: columns.filter(col => !col.origin) } + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + val.$srcId = srcid + } + oInput.value = window.btoa(window.encodeURIComponent(JSON.stringify(val))) document.body.appendChild(oInput) oInput.select() @@ -460,7 +465,8 @@ title: col.label, dataIndex: col.uuid, align: col.Align, - sorter: !isSub && col.IsSort === 'true', + // sorter: !isSub && col.IsSort === 'true', + sorter: col.IsSort === 'true', onCell: () => ({ column: col, width: col.Width, diff --git a/src/menu/components/table/normal-table/index.jsx b/src/menu/components/table/normal-table/index.jsx index 17a55c8..39da770 100644 --- a/src/menu/components/table/normal-table/index.jsx +++ b/src/menu/components/table/normal-table/index.jsx @@ -45,7 +45,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/table/normal-table/options.jsx b/src/menu/components/table/normal-table/options.jsx index 22d3d39..b1ad632 100644 --- a/src/menu/components/table/normal-table/options.jsx +++ b/src/menu/components/table/normal-table/options.jsx @@ -58,7 +58,7 @@ type: 'radio', field: 'tableType', label: '琛ㄦ牸灞炴��', - initval: wrap.tableType, + initval: wrap.tableType || '', required: false, options: [ {value: '', label: '涓嶅彲閫�'}, @@ -133,6 +133,7 @@ field: 'selected', label: '棣栬閫変腑', initval: wrap.selected || 'false', + tooltip: '褰撴寜閽墽琛屽畬鎴愬苟杩斿洖涓婚敭鍊兼椂锛岄粯璁ら�変腑涓婚敭鍊煎搴旇銆�', required: false, options: [ {value: 'false', label: '鏃�'}, @@ -247,6 +248,18 @@ ], }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/tabs/antv-tabs/index.jsx b/src/menu/components/tabs/antv-tabs/index.jsx index e85c5fb..a6feb86 100644 --- a/src/menu/components/tabs/antv-tabs/index.jsx +++ b/src/menu/components/tabs/antv-tabs/index.jsx @@ -44,7 +44,6 @@ let _tabs = { uuid: tabs.uuid, type: tabs.type, - floor: tabs.floor, tabId: tabs.tabId || '', parentId: tabs.parentId || '', subtype: tabs.subtype, @@ -53,9 +52,9 @@ setting: {width: 24, position: 'top', tabStyle: 'line', name: tabs.name}, style: { marginLeft: '8px', marginRight: '8px', marginTop: '8px', marginBottom: '8px' }, subtabs: [ - { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 1', icon: '', components: [] }, - { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 2', icon: '', components: [] }, - { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 3', icon: '', components: [] } + { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 1', icon: '', components: [] }, + { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 2', icon: '', components: [] }, + { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 3', icon: '', components: [] } ] } this.setState({ @@ -296,7 +295,6 @@ tab = { uuid: '', parentId: tabs.uuid, - floor: tabs.floor, label: '', icon: '', components: [] @@ -317,6 +315,8 @@ editab.label = res.label editab.icon = res.icon // editab.hasSearch = res.hasSearch || '' + editab.hide = res.hide || 'false' + editab.backgroundColor = res.backgroundColor editab.controlVal = res.controlVal || '' editab.blacklist = res.blacklist @@ -361,22 +361,22 @@ let _style = resetStyle(tabs.style) return ( - <div className={'menu-tabs-edit-box ' + tabs.setting.display} style={_style} onClick={this.clickComponent} id={tabs.uuid}> - <DraggableTabs defaultActiveKey={defaultActiveKey} tabPosition={tabs.setting.position} type={tabs.setting.tabStyle} tabsMove={this.moveSwitch} onChange={this.onChange}> + <div className={'menu-tabs-edit-box ' + (tabs.setting.display || '')} style={_style} onClick={this.clickComponent} id={tabs.uuid}> + <DraggableTabs defaultActiveKey={defaultActiveKey} tabBarStyle={{background: tabs.setting.backgroundColor || 'transparent'}} tabPosition={tabs.setting.position} type={tabs.setting.tabStyle} tabsMove={this.moveSwitch} onChange={this.onChange}> {tabs.subtabs.map(tab => ( <TabPane tab={ <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <NormalForm title="鏍囩缂栬緫" width={600} update={this.updateTab} getForms={() => this.getTabForms(tab)}> + <NormalForm title="鏍囩缂栬緫" width={800} update={this.updateTab} getForms={() => this.getTabForms(tab)}> <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <PasteComponent Tab={tab} insert={this.insert} /> <CloseOutlined className="close" onClick={() => this.delTab(tab)} /> </div> } trigger="hover"> - <span>{tab.icon ? <MkIcon type={tab.icon} /> : null}{tab.label}</span> + <span style={{textDecoration: tab.hide === 'true' ? 'line-through' : 'none'}}>{tab.icon ? <MkIcon type={tab.icon} /> : null}{tab.label}</span> </Popover> - } key={tab.uuid}> + } key={tab.uuid} style={{backgroundColor: tab.backgroundColor || 'transparent'}}> {/* {appType === 'mob' && tabs.setting.position === 'top' && tabs.setting.display === 'inline-block' && tab.hasSearch === 'icon' ? <SearchOutlined className="search-icon" onDoubleClick={() => this.setSearch(tab)}/> : null} */} <TabComponents config={tab} handleList={this.updateTabComponent} deleteCard={this.deleteCard} /> @@ -385,10 +385,10 @@ </DraggableTabs> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <NormalForm title="娣诲姞鏍囩" width={600} update={this.updateTab} getForms={() => this.getTabForms()}> + <NormalForm title="娣诲姞鏍囩" width={800} update={this.updateTab} getForms={() => this.getTabForms()}> <PlusOutlined className="plus" title="娣诲姞鏍囩"/> </NormalForm> - <NormalForm title="鏍囩椤佃缃�" width={700} update={this.updateTabs} getForms={this.getTabsForms}> + <NormalForm title="鏍囩椤佃缃�" width={800} update={this.updateTabs} getForms={this.getTabsForms}> <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <CopyComponent type="tabs" card={tabs}/> diff --git a/src/menu/components/tabs/antv-tabs/index.scss b/src/menu/components/tabs/antv-tabs/index.scss index 7ad16c9..7466ab4 100644 --- a/src/menu/components/tabs/antv-tabs/index.scss +++ b/src/menu/components/tabs/antv-tabs/index.scss @@ -6,6 +6,24 @@ background-repeat: no-repeat; background-size: cover; + .ant-tabs-top-bar { + margin-bottom: 0; + } + .ant-tabs-top-content { + .tab-shell-inner { + padding-top: 15px; + } + } + .ant-tabs-left-content { + padding-left: 0; + } + .ant-tabs-right-content { + padding-right: 0; + } + .ant-tabs-bottom-bar { + margin-top: 0; + } + >.anticon-tool { position: absolute; z-index: 2; diff --git a/src/menu/components/tabs/antv-tabs/options.jsx b/src/menu/components/tabs/antv-tabs/options.jsx index 3132c06..c0430ab 100644 --- a/src/menu/components/tabs/antv-tabs/options.jsx +++ b/src/menu/components/tabs/antv-tabs/options.jsx @@ -25,7 +25,6 @@ initval: tab.label || '', required: true, focus: true, - span: 22 }, { type: 'mkicon', @@ -34,7 +33,6 @@ initval: tab.icon || '', required: false, allowClear: true, - span: 22 }, // { // type: 'radio', @@ -56,8 +54,25 @@ initval: tab.controlVal || '', tooltip: '褰撶鐢ㄥ瓧娈靛�间笌闅愯棌鏍囪鐩哥瓑鏃讹紝鏍囩椤典細闅愯棌銆�', required: false, - forbid: appType === 'mob', - span: 22 + // forbid: appType === 'mob', + }, + { + type: 'color', + field: 'backgroundColor', + label: '鑳屾櫙(鍐呭鍖�)', + initval: tab.backgroundColor || 'transparent', + required: false, + }, + { + type: 'radio', + field: 'hide', + label: '闅愯棌', + initval: tab.hide || 'false', + required: false, + options: [ + {value: 'false', label: '鍚�'}, + {value: 'true', label: '鏄�'}, + ], }, { type: 'multiselect', @@ -67,7 +82,6 @@ required: false, options: roleList, forbid: !!appType, - span: 22 }, ] @@ -190,7 +204,7 @@ controlFields: [ {field: 'controlField', notNull: true}, ], - forbid: appType === 'mob', + // forbid: appType === 'mob', }, { type: 'text', @@ -199,7 +213,26 @@ initval: setting.controlField || '', tooltip: '鐢ㄤ簬鎺у埗鏍囩闅愯棌鐨勫瓧娈碉紝鍦ㄦ爣绛句腑濉叆闅愯棌鏍囪銆�', required: true, - forbid: appType === 'mob', + // forbid: appType === 'mob', + }, + { + type: 'color', + field: 'backgroundColor', + label: '鑳屾櫙(鏍囬鏍�)', + initval: setting.backgroundColor || 'transparent', + required: false + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: setting.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType }, { type: 'multiselect', diff --git a/src/menu/components/tabs/paste/index.jsx b/src/menu/components/tabs/paste/index.jsx index 59eb081..3e73e8d 100644 --- a/src/menu/components/tabs/paste/index.jsx +++ b/src/menu/components/tabs/paste/index.jsx @@ -24,8 +24,7 @@ this.setState({visible: true}) } - resetconfig = (item, Tab, copyBtns, uuids = {}) => { - item.floor = Tab.floor + 1 + resetconfig = (item, Tab, copyBtns, uuids = {}, floor) => { item.tabId = Tab.uuid item.parentId = Tab.parentId @@ -40,12 +39,12 @@ tab.uuid = uuids[tab.uuid] tab.parentId = item.uuid - if (item.floor >= 3) { + if (floor >= 3) { tab.components = tab.components.filter(cell => cell.type !== 'tabs') } tab.components = tab.components.map(cell => { - cell = this.resetconfig(cell, tab, copyBtns, uuids) + cell = this.resetconfig(cell, tab, copyBtns, uuids, floor + 1) return cell }) }) @@ -56,7 +55,6 @@ item.name = item.setting.name item.components = item.components.map(cell => { - cell.floor = Tab.floor + 1 cell.tabId = Tab.uuid cell.parentId = Tab.parentId @@ -102,8 +100,9 @@ } let copyBtns = new Map() + let floor = MenuUtils.getFloor(Tab.parentId) - res = this.resetconfig(res, Tab, copyBtns) + res = this.resetconfig(res, Tab, copyBtns, {}, floor) delete res.copyType diff --git a/src/menu/components/tabs/tabcomponents/card.jsx b/src/menu/components/tabs/tabcomponents/card.jsx index 27d0a0b..5b4ac68 100644 --- a/src/menu/components/tabs/tabcomponents/card.jsx +++ b/src/menu/components/tabs/tabcomponents/card.jsx @@ -30,7 +30,7 @@ const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ - item: { type: 'menu', id, originalIndex, floor: card.floor }, + item: { type: 'menu', id, originalIndex }, collect: monitor => ({ isDragging: monitor.isDragging(), }), @@ -39,10 +39,10 @@ accept: 'menu', canDrop: () => true, drop: (item) => { - const { id: draggedId, originalIndex, floor } = item + const { id: draggedId, originalIndex } = item if (originalIndex === undefined) { item.dropTargetId = id - } else if (draggedId && floor === card.floor) { + } else if (draggedId) { if (draggedId === id) return const { index: originIndex } = findCard(draggedId) diff --git a/src/menu/components/tabs/tabcomponents/index.jsx b/src/menu/components/tabs/tabcomponents/index.jsx index bc80a38..1e30e2a 100644 --- a/src/menu/components/tabs/tabcomponents/index.jsx +++ b/src/menu/components/tabs/tabcomponents/index.jsx @@ -84,13 +84,16 @@ }) return } - } else if (item.component === 'tabs' && config.floor === 3) { - notification.warning({ - top: 92, - message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�', - duration: 5 - }) - return + } else if (item.component === 'tabs') { + let floor = MenuUtils.getFloor(config.parentId) + if (floor >= 3 ) { + notification.warning({ + top: 92, + message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�', + duration: 5 + }) + return + } } let name = '' @@ -134,7 +137,6 @@ width: item.width || 24, dataName: Utils.getdataName(), name: name, - floor: config.floor ? (config.floor + 1) : 2, // 缁勪欢鐨勫眰绾� isNew: true // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖� } diff --git a/src/menu/components/timeline/normal-timeline/index.jsx b/src/menu/components/timeline/normal-timeline/index.jsx index 416d62d..432b1b1 100644 --- a/src/menu/components/timeline/normal-timeline/index.jsx +++ b/src/menu/components/timeline/normal-timeline/index.jsx @@ -38,7 +38,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 diff --git a/src/menu/components/timeline/normal-timeline/options.jsx b/src/menu/components/timeline/normal-timeline/options.jsx index b1f0327..61cc83d 100644 --- a/src/menu/components/timeline/normal-timeline/options.jsx +++ b/src/menu/components/timeline/normal-timeline/options.jsx @@ -104,6 +104,18 @@ options: columns }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/tree/antd-tree/index.jsx b/src/menu/components/tree/antd-tree/index.jsx index 5911a79..2b63b79 100644 --- a/src/menu/components/tree/antd-tree/index.jsx +++ b/src/menu/components/tree/antd-tree/index.jsx @@ -40,7 +40,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', dataName: card.dataName || '', diff --git a/src/menu/components/tree/antd-tree/index.scss b/src/menu/components/tree/antd-tree/index.scss index ff7b7fb..a1255ef 100644 --- a/src/menu/components/tree/antd-tree/index.scss +++ b/src/menu/components/tree/antd-tree/index.scss @@ -5,7 +5,7 @@ background-position: center center; background-repeat: no-repeat; background-size: cover; - min-height: 50px; + min-height: 100px; overflow-y: auto; .anticon-tool { diff --git a/src/menu/components/tree/antd-tree/options.jsx b/src/menu/components/tree/antd-tree/options.jsx index f03e80a..ee531ff 100644 --- a/src/menu/components/tree/antd-tree/options.jsx +++ b/src/menu/components/tree/antd-tree/options.jsx @@ -122,6 +122,18 @@ ] }, { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ], + forbid: !appType + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/datasource/index.jsx b/src/menu/datasource/index.jsx index f7964eb..f405cf1 100644 --- a/src/menu/datasource/index.jsx +++ b/src/menu/datasource/index.jsx @@ -45,45 +45,19 @@ if (appType === 'mob') { let ms = null menu.components.forEach(item => { - if (item.type === 'topbar' && (item.wrap.type === 'search' || (item.wrap.type === 'navbar' && item.wrap.search === 'true'))) { + if (item.type === 'topbar' && item.wrap.type !== 'navbar' && item.search) { ms = item.search - } - }) - - if (config.floor > 1) { - let _search = null - let filterComponent = (box) => { - box.components.forEach(item => { - if (_search) return - - if (item.uuid === config.uuid) { - _search = box.slist.pop() - } else if (item.type === 'group') { - item.components.forEach(m => { - if (m.uuid !== config.uuid) return - _search = box.slist.pop() - }) - } else if (item.type === 'tabs') { - let able = item.setting.display === 'inline-block' && item.setting.position === 'top' - item.subtabs.forEach(tab => { - if (able && tab.hasSearch === 'icon' && tab.search) { - tab.slist = [...box.slist, tab.search] - } else { - tab.slist = [...box.slist] - } - - filterComponent(tab) - }) - } + } else if (item.type === 'search' && item.wrap.field) { + search.push({ + type: 'text', + label: item.wrap.label, + field: item.wrap.field, + match: item.wrap.match, + required: item.wrap.required, + value: item.wrap.initval || '' }) } - menu.slist = [] - filterComponent(menu) - - if (_search) { - ms = _search - } - } + }) if (ms) { if (ms.setting.type === 'search') { @@ -124,35 +98,33 @@ }) } } else { - if (config.floor > 1) { - let _search = null - let filterComponent = (box) => { - box.components.forEach(item => { - if (_search) return + let _search = null + let filterComponent = (box) => { + box.components.forEach(item => { + if (_search) return - if (item.type === 'search') { - box.slist = [...box.slist, item.search] - } else if (item.uuid === config.uuid) { + if (item.type === 'search') { + box.slist = [...box.slist, item.search] + } else if (item.uuid === config.uuid) { + _search = box.slist.pop() + } else if (item.type === 'group') { + item.components.forEach(m => { + if (m.uuid !== config.uuid) return _search = box.slist.pop() - } else if (item.type === 'group') { - item.components.forEach(m => { - if (m.uuid !== config.uuid) return - _search = box.slist.pop() - }) - } else if (item.type === 'tabs') { - item.subtabs.forEach(tab => { - tab.slist = [...box.slist] - filterComponent(tab) - }) - } - }) - } - menu.slist = [] - filterComponent(menu) + }) + } else if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + tab.slist = [...box.slist] + filterComponent(tab) + }) + } + }) + } + menu.slist = [] + filterComponent(menu) - if (_search) { - search = _search - } + if (_search) { + search = _search } else { menu.components.forEach(item => { if (item.type !== 'search') return diff --git a/src/menu/datasource/verifycard/columnform/index.jsx b/src/menu/datasource/verifycard/columnform/index.jsx index 3b054c7..9e2108d 100644 --- a/src/menu/datasource/verifycard/columnform/index.jsx +++ b/src/menu/datasource/verifycard/columnform/index.jsx @@ -63,6 +63,10 @@ { required: true, message: dict['form.required.input'] + '瀛楁!' + }, + { + pattern: /^[\u4E00-\u9FA50-9a-zA-Z_]*$/ig, + message: '瀛楁鍚嶅彧鍏佽鍖呭惈鏁板瓧銆佸瓧姣嶃�佹眽瀛椾互鍙奯' } ] })(<Input placeholder="" autoComplete="off" />)} diff --git a/src/menu/datasource/verifycard/customscript/index.jsx b/src/menu/datasource/verifycard/customscript/index.jsx index bcf0edb..2b009a3 100644 --- a/src/menu/datasource/verifycard/customscript/index.jsx +++ b/src/menu/datasource/verifycard/customscript/index.jsx @@ -5,6 +5,7 @@ import Utils from '@/utils/utils.js' import CodeMirror from '@/templates/zshare/codemirror' +import MKEmitter from '@/utils/events.js' import './index.scss' class CustomForm extends Component { @@ -150,6 +151,9 @@ editItem: null, loading: false }) + + MKEmitter.emit('editLineId', values.uuid) + this.props.form.setFieldsValue({ sql: ' ' }) @@ -227,6 +231,9 @@ onSelect={this.selectScript} > <Select.Option style={{whiteSpace: 'normal'}} key="default" value="defaultsql">榛樿sql</Select.Option> + <Select.Option key="debugger" value={`z_debug: select @ErrorCode='E',@retmsg='娴嬭瘯鏂偣' goto aaa`}> + 娴嬭瘯鏂偣 + </Select.Option> {systemScripts.map((option, i) => <Select.Option style={{whiteSpace: 'normal'}} key={i} value={option.value}>{option.name}</Select.Option> )} diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx index 549d3fa..51338af 100644 --- a/src/menu/datasource/verifycard/index.jsx +++ b/src/menu/datasource/verifycard/index.jsx @@ -51,6 +51,10 @@ editable: true, unique: true, copy: true, + rules: [{ + pattern: /^[\u4E00-\u9FA50-9a-zA-Z_]*$/ig, + message: '瀛楁鍚嶅彧鍏佽鍖呭惈鏁板瓧銆佸瓧姣嶃�佹眽瀛椾互鍙奯' + }], width: '28%' }, { @@ -101,12 +105,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } @@ -375,6 +379,18 @@ this.setState({loading: false}) }) } else if (activeKey === 'columns') { + if (this.datasource && this.datasource.state.editingKey) { + notification.warning({ + top: 92, + message: '瀛楁鏈繚瀛橈紝璇蜂繚瀛樺悗鍒囨崲锛�', + duration: 5 + }) + this.setState({ + loading: false + }) + return + } + this.setState({ activeKey: val, loading: false @@ -504,6 +520,15 @@ reject() }) } else if (activeKey === 'columns') { + if (this.datasource && this.datasource.state.editingKey) { + notification.warning({ + top: 92, + message: '瀛楁鏈繚瀛橈紝璇蜂繚瀛樺悗鎻愪氦锛�', + duration: 5 + }) + reject() + return + } this.sqlverify(() => { resolve({setting, columns, scripts }) }, reject, false) } else if (activeKey === 'scripts') { let _loading = false @@ -670,7 +695,7 @@ updatefield={this.updatefields} /> <CopyOutlined title="浠ラ�楀彿鎷兼帴褰㈠紡澶嶅埗瀛楁" onClick={this.copyColumns} style={{position: 'absolute', cursor: 'pointer', zIndex: 1, top: '-35px', right: '0px', color: '#1890ff'}} /> - <EditTable actions={['edit', 'move', 'copy', 'del', 'clear']} type="datasourcefield" data={columns} columns={colColumns} onChange={(columns) => this.setState({columns})}/> + <EditTable actions={['edit', 'move', 'copy', 'del', 'clear']} type="datasourcefield" wrappedComponentRef={(inst) => this.datasource = inst} data={columns} columns={colColumns} onChange={(columns) => this.setState({columns})}/> </TabPane> <TabPane tab={ <span> diff --git a/src/menu/datasource/verifycard/settingform/index.jsx b/src/menu/datasource/verifycard/settingform/index.jsx index fe0d88c..9f89d35 100644 --- a/src/menu/datasource/verifycard/settingform/index.jsx +++ b/src/menu/datasource/verifycard/settingform/index.jsx @@ -27,7 +27,8 @@ modules: [], usefulFields: [], useMSearch: this.props.setting.useMSearch || 'false', - supModule: this.props.setting.supModule || [] + supModule: this.props.setting.supModule || [], + appType: sessionStorage.getItem('appType') } UNSAFE_componentWillMount () { @@ -55,11 +56,17 @@ } handleConfirm = () => { + const { appType } = this.state // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { values.sync = values.sync || 'false' + + if (appType === 'mob' && values.useMSearch === 'true') { + values.syncRefresh = 'true' + } + // 鏁版嵁婧愬墠绔獙璇� if (values.interType === 'system' && values.execute !== 'false' && !values.dataresource) { notification.warning({ @@ -150,7 +157,7 @@ render() { const { setting, columns, config } = this.props const { getFieldDecorator } = this.props.form - const { interType, modules, useMSearch, laypage, supModule, usefulFields } = this.state + const { interType, modules, useMSearch, laypage, supModule, usefulFields, appType } = this.state const formItemLayout = { labelCol: { @@ -399,7 +406,7 @@ </Form.Item> </Col> : null} {/* 1銆佷笉鍒嗛〉涓斾笉瀛樺湪涓婄骇妯″潡 */} - {!['navbar'].includes(config.type) && (!config.pageable || (config.pageable && laypage === 'false')) && (!supModule || supModule.length === 0 || supModule[0] === 'empty') ? <Col span={8}> + {!['navbar'].includes(config.type) && !['editable'].includes(config.subtype) && (!config.pageable || (config.pageable && laypage === 'false')) && (!supModule || supModule.length === 0 || supModule[0] === 'empty') ? <Col span={8}> <Form.Item label={ <Tooltip placement="topLeft" title={'鍒濆鍖栧姞杞芥椂锛屾槸鍚︿笌鍏朵粬缁勪欢涓�鍚屽姞杞芥暟鎹紝娉細浠呭湪浣跨敤绯荤粺鍑芥暟锛屼笖鍒濆鍖栧姞杞芥暟鎹椂鏈夋晥锛屽垎椤佃姹傛椂鏃犳晥銆�'}> <QuestionCircleOutlined className="mk-form-tip" /> @@ -433,7 +440,7 @@ )} </Form.Item> </Col> : null} - {!['navbar', 'balcony', 'menubar'].includes(config.type) && useMSearch === 'true' ? <Col span={8}> + {!['navbar', 'balcony', 'menubar'].includes(config.type) && useMSearch === 'true' && appType !== 'mob' ? <Col span={8}> <Form.Item label={ <Tooltip placement="topLeft" title={'澶栧眰鎼滅储鏉′欢鏀瑰彉鏃讹紝鏄惁鍒锋柊褰撳墠缁勪欢鏁版嵁銆�'}> <QuestionCircleOutlined className="mk-form-tip" /> diff --git a/src/menu/menushell/card.jsx b/src/menu/menushell/card.jsx index 83cfc00..2331154 100644 --- a/src/menu/menushell/card.jsx +++ b/src/menu/menushell/card.jsx @@ -26,11 +26,12 @@ const CodeSandbox = asyncComponent(() => import('@/menu/components/code/sandbox')) const CustomChart = asyncComponent(() => import('@/menu/components/chart/chart-custom')) const Timeline = asyncComponent(() => import('@/menu/components/timeline/normal-timeline')) +const Voucher = asyncComponent(() => import('@/menu/components/module/voucher')) const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ - item: { type: 'menu', id, originalIndex, floor: card.floor }, + item: { type: 'menu', id, originalIndex }, collect: monitor => ({ isDragging: monitor.isDragging(), }), @@ -39,10 +40,10 @@ accept: 'menu', canDrop: () => true, drop: (item) => { - const { id: draggedId, originalIndex, floor } = item + const { id: draggedId, originalIndex } = item if (originalIndex === undefined) { item.dropTargetId = id - } else if (draggedId && floor === card.floor) { + } else if (draggedId) { if (draggedId === id) return const { index: originIndex } = findCard(draggedId) @@ -105,6 +106,8 @@ return (<Timeline card={card} updateConfig={updateConfig} deletecomponent={delCard}/>) } else if (card.type === 'chart') { return (<CustomChart card={card} updateConfig={updateConfig} deletecomponent={delCard}/>) + } else if (card.type === 'module' && card.subtype === 'voucher') { + return (<Voucher card={card} updateConfig={updateConfig} deletecomponent={delCard}/>) } } return ( diff --git a/src/menu/modalconfig/index.jsx b/src/menu/modalconfig/index.jsx index 2d63246..659bbbb 100644 --- a/src/menu/modalconfig/index.jsx +++ b/src/menu/modalconfig/index.jsx @@ -66,6 +66,7 @@ componentDidMount () { MKEmitter.addListener('completeSave', this.completeSave) + MKEmitter.addListener('submitStyle', this.getStyle) } /** @@ -76,6 +77,7 @@ return } MKEmitter.removeListener('completeSave', this.completeSave) + MKEmitter.removeListener('submitStyle', this.getStyle) } /** @@ -207,6 +209,24 @@ }) } + getStyle = (comIds, style) => { + const { config } = this.state + + if (comIds[0] !== 'form') return + + let Index = config.fields.findIndex(n => n.uuid === comIds[1]) + + if (Index === -1) return + + let _config = fromJS(config).toJS() + + _config.fields[Index].style = style + + this.setState({ + config: _config + }) + } + /** * @description 缂栬緫鍚庢彁浜� * 1銆佽幏鍙栫紪杈戝悗鐨勮〃鍗曚俊鎭� @@ -224,6 +244,9 @@ } if (item.uuid === res.uuid) { + if (item.style) { + res.style = item.style + } return res } else { return item @@ -518,7 +541,8 @@ <Modal title={this.state.dict['model.edit']} visible={this.state.visible} - width={850} + width={950} + maskClosable={false} onCancel={this.editModalCancel} onOk={this.handleSubmit} confirmLoading={this.state.sqlVerifing} diff --git a/src/menu/modulesource/option.jsx b/src/menu/modulesource/option.jsx index c9a112a..8368f81 100644 --- a/src/menu/modulesource/option.jsx +++ b/src/menu/modulesource/option.jsx @@ -25,6 +25,7 @@ import chart from '@/assets/mobimg/chart.png' import tree from '@/assets/mobimg/tree.png' import timeline from '@/assets/mobimg/timeline.png' +// import Voucher from '@/assets/mobimg/voucher.jpg' // 缁勪欢閰嶇疆淇℃伅 export const menuOptions = [ @@ -32,7 +33,7 @@ { type: 'menu', url: Mainsearch, component: 'search', subtype: 'mainsearch', title: '鎼滅储鏉′欢', width: 24, forbid: ['billPrint'] }, { type: 'menu', url: card1, component: 'card', subtype: 'datacard', title: '鏁版嵁鍗�', width: 24 }, { type: 'menu', url: card2, component: 'card', subtype: 'propcard', title: '灞炴�у崱', width: 24 }, - { type: 'menu', url: card2, component: 'balcony', subtype: 'balcony', title: '娴姩鍗�', width: 24, forbid: ['billPrint'] }, + { type: 'menu', url: card2, component: 'balcony', subtype: 'balcony', title: '娴姩鍗�', width: 24}, { type: 'menu', url: form, component: 'form', subtype: 'stepform', title: '琛ㄥ崟锛堝垎姝ワ級', width: 24, forbid: ['billPrint'] }, { type: 'menu', url: tabForm, component: 'form', subtype: 'tabform', title: '琛ㄥ崟锛坱ab椤碉級', width: 24, forbid: ['billPrint'] }, { type: 'menu', url: Carousel, component: 'carousel', subtype: 'datacard', title: '杞挱-鍔ㄦ�佹暟鎹�', width: 24, forbid: ['billPrint'] }, @@ -57,4 +58,5 @@ { type: 'menu', url: Editor, component: 'editor', subtype: 'brafteditor', title: '瀵屾枃鏈�', width: 24, forbid: ['billPrint'] }, { type: 'menu', url: SandBox, component: 'code', subtype: 'sandbox', title: '鑷畾涔�', width: 24 }, { type: 'menu', url: group, component: 'group', subtype: 'normalgroup', title: '鍒嗙粍', width: 24, forbid: ['billPrint'] }, + // { type: 'menu', url: Voucher, component: 'module', subtype: 'voucher', title: '鍑瘉', width: 24, forbid: ['billPrint'] }, ] diff --git a/src/menu/pastecontroller/index.jsx b/src/menu/pastecontroller/index.jsx index 858866b..8ed2307 100644 --- a/src/menu/pastecontroller/index.jsx +++ b/src/menu/pastecontroller/index.jsx @@ -38,7 +38,6 @@ } tab.components = tab.components.map(cell => { - cell.floor = tab.floor + 1 cell.tabId = tab.uuid cell.parentId = tab.parentId @@ -53,7 +52,6 @@ item.name = item.setting.name item.components = item.components.map(cell => { - cell.floor = item.floor cell.tabId = item.tabId || '' cell.parentId = item.parentId || '' diff --git a/src/menu/popview/index.jsx b/src/menu/popview/index.jsx index 7e90b9a..e820385 100644 --- a/src/menu/popview/index.jsx +++ b/src/menu/popview/index.jsx @@ -46,7 +46,8 @@ menuloading: false, oriConfig: null, config: null, - customComponents: [] + customComponents: [], + comloading: false } UNSAFE_componentWillMount() { @@ -133,10 +134,11 @@ }) this.setState({ - config: {...config, components: []} + config: {...config, components}, + comloading: true }, () => { this.setState({ - config: {...config, components: components} + comloading: false }) }) } @@ -577,10 +579,11 @@ resetConfig = (config) => { this.setState({ - config: {...config, components: []}, + config, + comloading: true }, () => { this.setState({ - config: config + comloading: false }) }) @@ -625,7 +628,7 @@ render () { const { btn } = this.props - const { activeKey, dict, config, menuloading, customComponents, MenuId } = this.state + const { activeKey, comloading, dict, config, menuloading, customComponents, MenuId } = this.state return ( <div className="pc-poper-view"> @@ -670,7 +673,7 @@ <Button type="default" onClick={this.closeView}>{dict['mob.return']}</Button> </div> } style={{ width: '100%' }}> - {config && config.components ? <MenuShell menu={config} handleList={this.updateConfig} /> : null} + {config && !comloading ? <MenuShell menu={config} handleList={this.updateConfig} /> : null} </Card> </div> </div> diff --git a/src/menu/replaceField/index.jsx b/src/menu/replaceField/index.jsx index 74e0380..81e4921 100644 --- a/src/menu/replaceField/index.jsx +++ b/src/menu/replaceField/index.jsx @@ -9,6 +9,7 @@ import Utils from '@/utils/utils.js' import SettingForm from './settingform' import { queryTableSql } from '@/utils/option.js' +import MKEmitter from '@/utils/events.js' import './index.scss' class ReplaceField extends Component { @@ -84,142 +85,152 @@ } submit = () => { - let config = fromJS(this.props.config).toJS() - this.settingRef.handleConfirm().then(res => { this.setState({confirming: true}) - let param = {func: 'sPC_Get_FieldName', TBName: res.table} - if (options.cloudServiceApi) { // 涓斿瓨鍦ㄤ簯绔湴鍧� - param.rduri = options.cloudServiceApi - param.userid = sessionStorage.getItem('CloudUserID') || '' - param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' - } - - Api.getSystemCacheConfig(param).then(result => { - if (!result.status) { - this.setState({ - confirming: false - }) - notification.warning({ - top: 92, - message: result.message, - duration: 5 - }) - return - } - - let map = {} - - result.FDName.forEach(item => { - if (/NVARCHAR|INT|Decimal/ig.test(item.FieldType)) { - item.datatype = item.FieldType - } - map[item.FieldDec] = item - }) - - if (this.props.type === 'custom') { - let _replace = (components) => { - return components.map(item => { - if (item.type === 'tabs') { - item.subtabs.forEach(tab => { - tab.components = _replace(tab.components) - }) - return item - } else if (item.type === 'group') { - item.components = _replace(item.components) - return item - } - - if (item.columns) { - item.columns = item.columns.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - if (map[col.field].datatype) { - col.datatype = map[col.field].datatype - } - } - return col - }) - } - if (item.search) { - item.search = item.search.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - } - return col - }) - } + if (res.resource === 'custom') { + if (res.reType === 'name') { + let map = {[res.label.toLowerCase()]: { + FieldDec: res.label, + FieldName: res.field, + datatype: '' + }} - if (item.action) { - item.action.forEach(m => { + this.exec(map) + } else { + let map = {[res.field.toLowerCase()]: { + FieldDec: res.label, + FieldName: res.field, + datatype: '' + }} + + this.execLabel(map) + } + } else { + let param = {func: 'sPC_Get_FieldName', TBName: res.table} + if (options.cloudServiceApi) { // 涓斿瓨鍦ㄤ簯绔湴鍧� + param.rduri = options.cloudServiceApi + param.userid = sessionStorage.getItem('CloudUserID') || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' + } + + Api.getSystemCacheConfig(param).then(result => { + if (!result.status) { + this.setState({ + confirming: false + }) + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + return + } + + if (res.reType === 'name') { + let map = {} + + result.FDName.forEach(item => { + if (!item.FieldDec) return + if (/NVARCHAR|INT|Decimal/ig.test(item.FieldType)) { + item.datatype = item.FieldType + } + map[item.FieldDec.toLowerCase()] = item + }) + + this.exec(map) + } else { + let map = {} + + result.FDName.forEach(item => { + if (!item.FieldName) return + map[item.FieldName.toLowerCase()] = item + }) + + this.execLabel(map) + } + }) + } + }) + } + + exec = (map) => { + let config = fromJS(this.props.config).toJS() + + if (this.props.type === 'custom') { + let _replace = (components) => { + return components.map(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + tab.components = _replace(tab.components) + }) + return item + } else if (item.type === 'group') { + item.components = _replace(item.components) + return item + } + + if (item.columns) { + item.columns = item.columns.map(col => { + let cell = map[col.field.toLowerCase()] + if (cell) { + col.field = cell.FieldName + if (cell.datatype) { + col.datatype = cell.datatype + } + } + return col + }) + } + if (item.search) { + item.search = item.search.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + + if (item.action) { + item.action.forEach(m => { + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName + } + return col + }) + } + }) + } + + if (item.subcards) { + item.subcards.forEach(card => { + if (card.elements) { // 鍗$墖 + card.elements = card.elements.map(m => { + if (m.datatype === 'dynamic' && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName + } if (m.modal && m.modal.fields) { m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName } return col }) } - }) - } - - if (item.subcards) { - item.subcards.forEach(card => { - if (card.elements) { // 鍗$墖 - card.elements = card.elements.map(m => { - if (m.datatype === 'dynamic' && map[m.field]) { - m.field = map[m.field].FieldName - } - if (m.modal && m.modal.fields) { - m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - } - return col - }) - } - return m - }) - } - - if (card.backElements) { // 鍗$墖 - card.backElements = card.backElements.map(m => { - if (m.datatype === 'dynamic' && map[m.field]) { - m.field = map[m.field].FieldName - } - if (m.modal && m.modal.fields) { - m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - } - return col - }) - } - return m - }) - } - - if (card.fields) { // 琛ㄥ崟 - card.fields = card.fields.map(m => { - if (map[m.field]) { - m.field = map[m.field].FieldName - } - return m - }) - } - }) - } - - if (item.elements) { - item.elements = item.elements.map(m => { - if (m.datatype === 'dynamic' && map[m.field]) { - m.field = map[m.field].FieldName - } - if (m.modal && m.modal.fields) { - m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName } return col }) @@ -227,131 +238,364 @@ return m }) } - - if (item.plot) { - if (item.plot.Xaxis && map[item.plot.Xaxis]) { - item.plot.Xaxis = map[item.plot.Xaxis].FieldName - } - // 缁熻鍥� - if (item.plot.InfoValue && map[item.plot.InfoValue]) { - item.plot.InfoValue = map[item.plot.InfoValue].FieldName - } - if (item.plot.InfoType && map[item.plot.InfoType]) { - item.plot.InfoType = map[item.plot.InfoType].FieldName - } - // 鍗犳瘮鍥� - if (item.plot.valueField && map[item.plot.valueField]) { - item.plot.valueField = map[item.plot.valueField].FieldName - } - if (item.plot.labelField && map[item.plot.labelField]) { - item.plot.labelField = map[item.plot.labelField].FieldName - } - // 楗煎浘 - if (item.plot.type && map[item.plot.type]) { - item.plot.type = map[item.plot.type].FieldName - } - // 鏁g偣鍥� - if (item.plot.gender && map[item.plot.gender]) { - item.plot.gender = map[item.plot.gender].FieldName - } - if (item.Yaxis) { - if (Array.isArray(item.Yaxis)) { - item.Yaxis = item.Yaxis.map(m => { - if (map[m]) { - return map[m].FieldName - } - return m - }) - } else { - if (map[item.Yaxis]) { - item.Yaxis = map[item.Yaxis].FieldName - } + + if (card.backElements) { // 鍗$墖 + card.backElements = card.backElements.map(m => { + if (m.datatype === 'dynamic' && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName } - } - } - - if (item.cols) { - let _update = (cols) => { - return cols.map(col => { - if (col.type === 'action' && col.elements) { - col.elements = col.elements.map(m => { - if (m.modal && m.modal.fields) { - m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - } - return col - }) - } - - return m - }) - } else if (col.type === 'custom' && col.elements) { - col.elements = col.elements.map(m => { - if (m.datatype === 'dynamic' && map[m.field]) { - m.field = map[m.field].FieldName - } - - return m - }) - } else if (col.type === 'colspan') { - col.subcols = _update(col.subcols) - } else if (col.field) { - if (map[col.field]) { - col.field = map[col.field].FieldName + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName } - } - - return col - }) - } - - item.cols = _update(item.cols) + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName + } + return col + }) + } + return m + }) } - - return item + + if (card.fields) { // 琛ㄥ崟 + card.fields = card.fields.map(m => { + if (m.field && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName + } + return m + }) + } }) } - - config.components = _replace(config.components) - } else if (this.props.type === 'table') { - config.columns = config.columns.map(col => { - if (col.field && map[col.field]) { - col.field = map[col.field].FieldName + + if (item.elements) { + item.elements = item.elements.map(m => { + if (m.datatype === 'dynamic' && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName + } + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName + } + return col + }) + } + return m + }) + } + + if (item.plot) { + if (item.plot.Xaxis && map[item.plot.Xaxis.toLowerCase()]) { + item.plot.Xaxis = map[item.plot.Xaxis.toLowerCase()].FieldName } - return col - }) - config.search = config.search.map(col => { - if (col.field && map[col.field]) { - col.field = map[col.field].FieldName + // 缁熻鍥� + if (item.plot.InfoValue && map[item.plot.InfoValue.toLowerCase()]) { + item.plot.InfoValue = map[item.plot.InfoValue.toLowerCase()].FieldName } - if (col.datefield && map[col.datefield]) { - col.datefield = map[col.datefield].FieldName + if (item.plot.InfoType && map[item.plot.InfoType.toLowerCase()]) { + item.plot.InfoType = map[item.plot.InfoType.toLowerCase()].FieldName } - return col - }) - } else if (this.props.type === 'form') { - config.fields = config.fields.map(col => { - if (col.field && map[col.field]) { - col.field = map[col.field].FieldName + // 鍗犳瘮鍥� + if (item.plot.valueField && map[item.plot.valueField.toLowerCase()]) { + item.plot.valueField = map[item.plot.valueField.toLowerCase()].FieldName + } + if (item.plot.labelField && map[item.plot.labelField.toLowerCase()]) { + item.plot.labelField = map[item.plot.labelField.toLowerCase()].FieldName + } + // 楗煎浘 + if (item.plot.type && map[item.plot.type.toLowerCase()]) { + item.plot.type = map[item.plot.type.toLowerCase()].FieldName + } + // 鏁g偣鍥� + if (item.plot.gender && map[item.plot.gender.toLowerCase()]) { + item.plot.gender = map[item.plot.gender.toLowerCase()].FieldName + } + if (item.Yaxis) { + if (Array.isArray(item.Yaxis)) { + item.Yaxis = item.Yaxis.map(m => { + if (map[m.toLowerCase()]) { + return map[m.toLowerCase()].FieldName + } + return m + }) + } else { + if (item.Yaxis && map[item.Yaxis.toLowerCase()]) { + item.Yaxis = map[item.Yaxis.toLowerCase()].FieldName + } + } + } + } + + if (item.cols) { + let _update = (cols) => { + return cols.map(col => { + if (col.type === 'action' && col.elements) { + col.elements = col.elements.map(m => { + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName + } + return col + }) + } + + return m + }) + } else if (col.type === 'custom' && col.elements) { + col.elements = col.elements.map(m => { + if (m.datatype === 'dynamic' && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName + } + + return m + }) + } else if (col.type === 'colspan') { + col.subcols = _update(col.subcols) + } else if (col.field) { + if (map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + } + + return col + }) + } + + item.cols = _update(item.cols) + } + + return item + }) + } + + config.components = _replace(config.components) + } else if (this.props.type === 'table') { + config.columns = config.columns.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + + config.search = config.search.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + if (col.datefield && map[col.datefield.toLowerCase()]) { + col.datefield = map[col.datefield.toLowerCase()].FieldName + } + return col + }) + + config.action = config.action.map(m => { + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName } return col }) } - - this.setState({ - confirming: false, - visible: false - }) - - notification.success({ - top: 92, - message: '鏇存柊宸插畬鎴愩��', - duration: 3 - }) - this.props.updateConfig(config) + return m }) + } else if (this.props.type === 'form') { + config.fields = config.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + + this.setState({ + confirming: false, + visible: false }) + + notification.success({ + top: 92, + message: '鏇存柊宸插畬鎴愩��', + duration: 3 + }) + this.props.updateConfig(config) + + setTimeout(() => { + MKEmitter.emit('revert') + }, 300) + } + + execLabel = (map) => { + let config = fromJS(this.props.config).toJS() + + if (this.props.type === 'custom') { + let _replace = (components) => { + return components.map(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + tab.components = _replace(tab.components) + }) + return item + } else if (item.type === 'group') { + item.components = _replace(item.components) + return item + } + + if (item.columns) { + item.columns = item.columns.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + if (item.search) { + item.search = item.search.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + + if (item.action) { + item.action.forEach(m => { + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Text = map[col.Column.toLowerCase()].FieldDec + } + return col + }) + } + }) + } + + if (item.cols) { + let _update = (cols) => { + return cols.map(col => { + if (col.type === 'action' && col.elements) { + col.elements = col.elements.map(m => { + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Text = map[col.Column.toLowerCase()].FieldDec + } + return col + }) + } + + return m + }) + } else if (col.type === 'colspan') { + col.subcols = _update(col.subcols) + } else if (col.field) { + if (map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + } + + return col + }) + } + + item.cols = _update(item.cols) + } + + return item + }) + } + + config.components = _replace(config.components) + } else if (this.props.type === 'table') { + config.columns = config.columns.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + + config.search = config.search.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + + config.action = config.action.map(m => { + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Text = map[col.Column.toLowerCase()].FieldDec + } + return col + }) + } + return m + }) + } else if (this.props.type === 'form') { + config.fields = config.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + + this.setState({ + confirming: false, + visible: false + }) + + notification.success({ + top: 92, + message: '鏇存柊宸插畬鎴愩��', + duration: 3 + }) + this.props.updateConfig(config) + setTimeout(() => { + MKEmitter.emit('revert') + }, 500) } render() { diff --git a/src/menu/replaceField/settingform/index.jsx b/src/menu/replaceField/settingform/index.jsx index ed8d59a..1bc080f 100644 --- a/src/menu/replaceField/settingform/index.jsx +++ b/src/menu/replaceField/settingform/index.jsx @@ -1,22 +1,72 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Tooltip, Select } from 'antd' -import { QuestionCircleOutlined } from '@ant-design/icons' +import { Form, Row, Col, Tooltip, Select, Radio, AutoComplete, Modal } from 'antd' +import { QuestionCircleOutlined, SwapRightOutlined, DeleteOutlined } from '@ant-design/icons' // import './index.scss' +const { confirm } = Modal class SettingForm extends Component { static propTpyes = { tables: PropTypes.object } - state = {} + state = { + resource: 'custom', + reType: 'field', + field: '', + label: '', + fields: [], + labels: [] + } + + UNSAFE_componentWillMount() { + let records = localStorage.getItem('replaceRecord') + + if (records) { + records = JSON.parse(records) + + let fields = records.fields || [] + let labels = records.labels || [] + + this.setState({fields, labels, field: fields[0] || '', label: labels[0] || ''}) + } + + } handleConfirm = () => { // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { + if (values.resource === 'custom') { + let records = localStorage.getItem('replaceRecord') + + if (records) { + records = JSON.parse(records) + } else { + records = {fields: [], labels: []} + } + + records.fields.unshift(values.field) + records.labels.unshift(values.label) + + let _fields = [] + let _labels = [] + + records.fields = records.fields.filter(m => { + if (_fields.includes(m.toLowerCase())) return false + _fields.push(m.toLowerCase()) + return true + }) + records.labels = records.labels.filter(m => { + if (_labels.includes(m.toLowerCase())) return false + _labels.push(m.toLowerCase()) + return true + }) + + localStorage.setItem('replaceRecord', JSON.stringify(records)) + } resolve(values) } else { reject(err) @@ -25,9 +75,23 @@ }) } + clear = () => { + let _this = this + confirm({ + title: '纭畾娓呴櫎鍘嗗彶璁板綍鍚楋紵', + content: '', + onOk() { + localStorage.removeItem('replaceRecord') + _this.setState({fields: [], labels: []}) + }, + onCancel() {} + }) + } + render() { const { tables } = this.props const { getFieldDecorator } = this.props.form + const { resource, fields, labels, field, label, reType } = this.state const formItemLayout = { labelCol: { @@ -40,10 +104,43 @@ } } + let _fields = fields + if (field) { + _fields = fields.filter(item => item.toLowerCase().indexOf(field.toLowerCase()) > -1) + } + let _labels = labels + if (label) { + _labels = labels.filter(item => item.indexOf(label) > -1) + } + return ( <Form {...formItemLayout}> <Row gutter={24}> <Col span={20}> + <Form.Item label="鏇挎崲鏉ユ簮"> + {getFieldDecorator('resource', { + initialValue: 'custom' + })( + <Radio.Group onChange={(e) => this.setState({resource: e.target.value})}> + <Radio value="dict">鏁版嵁瀛楀吀</Radio> + <Radio value="custom">鑷畾涔�</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> + <Col span={20}> + <Form.Item label="鏇挎崲渚濇嵁"> + {getFieldDecorator('reType', { + initialValue: 'field' + })( + <Radio.Group onChange={(e) => this.setState({reType: e.target.value})}> + <Radio value="field">瀛楁 <SwapRightOutlined /> 鍚嶇О</Radio> + <Radio value="name">鍘熷瓧娈� <SwapRightOutlined /> 鏂板瓧娈�</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> + {resource === 'dict' ? <Col span={20}> <Form.Item label={ <Tooltip placement="topLeft" title="鐢ㄤ簬瀛楁鏇挎崲鐨勮〃鍚嶃��"> <QuestionCircleOutlined className="mk-form-tip" /> @@ -69,7 +166,62 @@ </Select> )} </Form.Item> - </Col> + </Col> : null} + {resource === 'custom' && reType === 'field' ? <Col span={20}> + <Form.Item label="瀛楁"> + {getFieldDecorator('field', { + initialValue: field, + rules: [ + { + required: true, + message: '璇疯緭鍏ュ瓧娈�!' + } + ] + })(<AutoComplete dataSource={_fields} autoFocus onSearch={(val) => this.setState({ field: val})} placeholder="" />)} + </Form.Item> + </Col> : null} + {resource === 'custom' && reType === 'field' ? <Col span={20}> + <Form.Item label="鍚嶇О"> + {getFieldDecorator('label', { + initialValue: label, + rules: [ + { + required: true, + message: '璇疯緭鍏ュ悕绉�!' + } + ] + })(<AutoComplete dataSource={_labels} onSearch={(val) => this.setState({ label: val})} placeholder="" />)} + </Form.Item> + </Col> : null} + {resource === 'custom' && reType === 'name' ? <Col span={20}> + <Form.Item label="鍘熷瓧娈�"> + {getFieldDecorator('label', { + initialValue: label, + rules: [ + { + required: true, + message: '璇疯緭鍏ュ悕绉�!' + } + ] + })(<AutoComplete dataSource={_labels} autoFocus onSearch={(val) => this.setState({ label: val})} placeholder="" />)} + </Form.Item> + </Col> : null} + {resource === 'custom' && reType === 'name' ? <Col span={20}> + <Form.Item label="鏇挎崲涓�"> + {getFieldDecorator('field', { + initialValue: field, + rules: [ + { + required: true, + message: '璇疯緭鍏ュ瓧娈�!' + } + ] + })(<AutoComplete dataSource={_fields} onSearch={(val) => this.setState({ field: val})} placeholder="" />)} + </Form.Item> + </Col> : null} + {resource === 'custom' && fields.length > 0 ? <Col span={24}> + <DeleteOutlined onClick={this.clear} style={{float: 'right', fontSize: '18px', marginTop: '-10px', cursor: 'pointer', color: '#ff4d4f'}} title="娓呯┖鍘嗗彶璁板綍" /> + </Col> : null} </Row> </Form> ) diff --git a/src/menu/sysinterface/index.jsx b/src/menu/sysinterface/index.jsx index bec6e8a..fcd9dcb 100644 --- a/src/menu/sysinterface/index.jsx +++ b/src/menu/sysinterface/index.jsx @@ -74,6 +74,11 @@ copy = (item) => { let msg = { key: 'interface', type: 'line', data: item } + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + msg.$srcId = srcid + } + try { msg = window.btoa(window.encodeURIComponent(JSON.stringify(msg))) } catch (e) { diff --git a/src/menu/sysinterface/settingform/index.jsx b/src/menu/sysinterface/settingform/index.jsx index 2f6e4d0..6309ec8 100644 --- a/src/menu/sysinterface/settingform/index.jsx +++ b/src/menu/sysinterface/settingform/index.jsx @@ -131,7 +131,7 @@ return ( <div className="model-interface-form-box" id="model-interface-form-body"> - <Tabs activeKey={activeKey} className="verify-card-box" onChange={this.changeTab}> + <Tabs activeKey={activeKey} onChange={this.changeTab}> <TabPane tab="鎺ュ彛璁剧疆" key="setting"> <BaseForm dict={dict} diff --git a/src/menu/sysinterface/settingform/simplescript/index.jsx b/src/menu/sysinterface/settingform/simplescript/index.jsx index 5b6a80f..ea519cb 100644 --- a/src/menu/sysinterface/settingform/simplescript/index.jsx +++ b/src/menu/sysinterface/settingform/simplescript/index.jsx @@ -37,12 +37,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } diff --git a/src/mob/components/formdragelement/card.jsx b/src/mob/components/formdragelement/card.jsx index 4bfe3dd..4c35773 100644 --- a/src/mob/components/formdragelement/card.jsx +++ b/src/mob/components/formdragelement/card.jsx @@ -1,11 +1,12 @@ import React from 'react' import { useDrag, useDrop } from 'react-dnd' import { Button, Popover, Switch, Checkbox, Form, Rate } from 'antd' -import { ScanOutlined, RightOutlined, PlusOutlined, StarFilled, EditOutlined, CopyOutlined, CloseOutlined } from '@ant-design/icons' +import { ScanOutlined, RightOutlined, PlusOutlined, StarFilled, EditOutlined, CopyOutlined, CloseOutlined, FontColorsOutlined } from '@ant-design/icons' import moment from 'moment' import asyncComponent from '@/utils/asyncComponent' import MkIcon from '@/components/mk-icon' +import MKEmitter from '@/utils/events.js' import './index.scss' const CheckCard = asyncComponent(() => import('@/templates/modalconfig/checkCard')) @@ -46,6 +47,12 @@ copyCard(id) } + const changeStyle = () => { + let options = ['font'] + + MKEmitter.emit('changeStyle', ['form', card.uuid], options, card.style || {}) + } + let selectval = '' if (card.type === 'select' || card.type === 'link') { if (card.initval) { @@ -59,23 +66,33 @@ } let formItem = null - if (card.type === 'text' || card.type === 'number') { - formItem = (<div className={'am-list-item ' + (card.place || '')}><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval ? card.initval : <span style={{color: '#bcbcbc'}}>{card.placeholder || ''}</span> }</div>{card.scan && card.scan !== 'false' ? <div className="am-list-extra"><ScanOutlined /></div> : null}</div></div>) + if (card.type === 'text' || card.type === 'linkMain') { + formItem = (<div className={'am-list-item input ' + (card.place || '')}><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval ? card.initval : <span style={{color: '#bcbcbc'}}>{card.placeholder || <span style={{color: 'transparent'}}>input</span>}</span> }</div>{card.scan && card.scan !== 'false' ? <div className="am-list-extra"><ScanOutlined /></div> : null}</div></div>) } else if (card.type === 'number') { - formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval}</div></div></div>) + formItem = (<div className={'am-list-item input ' + (card.place || '')}><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval ? card.initval : <span style={{color: '#bcbcbc'}}><span style={{color: 'transparent'}}>input</span></span> }</div>{card.placeholder ? <div className="am-list-extra" style={{color: '#999999', width: 'auto', lineHeight: 1.5}}>{card.placeholder}</div> : null}</div></div>) + } else if (card.type === 'number') { + formItem = (<div className="am-list-item input"><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval || <span style={{color: 'transparent'}}>input</span>}</div></div></div>) } else if (card.type === 'select' || card.type === 'link') { - formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className="am-input-control">{selectval || '璇烽�夋嫨'}</div><div className="am-list-extra"><RightOutlined /></div></div></div>) + formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className="am-input-control">{selectval || '璇烽�夋嫨'}</div><div className="am-list-extra"><RightOutlined /></div></div></div>) } else if (card.type === 'date') { - formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'days').format('YYYY-MM-DD') : '璇烽�夋嫨'}</div><div className="am-list-extra"><RightOutlined /></div></div></div>) + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'days').format(format) : '璇烽�夋嫨'}</div><div className="am-list-extra"><RightOutlined /></div></div></div>) } else if (card.type === 'datemonth') { - formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'month').format('YYYY-MM') : '璇烽�夋嫨'}</div><div className="am-list-extra"><RightOutlined /></div></div></div>) + formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'month').format('YYYY-MM') : '璇烽�夋嫨'}</div><div className="am-list-extra"><RightOutlined /></div></div></div>) } else if (card.type === 'datetime') { - formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'days').format('YYYY-MM-DD HH:mm') : '璇烽�夋嫨'}</div><div className="am-list-extra"><RightOutlined /></div></div></div>) + formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'days').format('YYYY-MM-DD HH:mm') : '璇烽�夋嫨'}</div><div className="am-list-extra"><RightOutlined /></div></div></div>) } else if (card.type === 'textarea') { let height = (card.maxRows || 2) * 25 formItem = (<div className="am-list-item check-card"> <div className="am-list-line"> - <div className="am-input-label">{card.label}</div> + <div className="am-input-label" style={card.style}>{card.label}</div> <div className="am-input-control"> <div style={{textAlign: 'left', position: 'relative', height, lineHeight: 1.5}}> {card.initval ? card.initval : <span style={{color: '#bcbcbc'}}>{card.placeholder || ''}</span> } @@ -85,14 +102,14 @@ </div> </div>) } else if (card.type === 'rate') { - formItem = (<div className={'am-list-item ' + (card.place || '')}><div className="am-list-line"><div className="am-input-label">{card.label}</div><div style={{textAlign: 'left'}} className={'am-input-control ' + (card.place === 'up_down' ? 'left' : '')}> + formItem = (<div className={'am-list-item ' + (card.place || '')}><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div style={{textAlign: 'left'}} className={'am-input-control ' + (card.place === 'up_down' ? 'left' : '')}> <Rate value={card.initval || 0} count={card.rateCount || 5} character={card.character ? <MkIcon type={card.character}/> : <StarFilled />} allowHalf={card.allowHalf === 'true'} /> </div></div></div>) } else if (card.type === 'fileupload') { formItem = ( <div className="am-list-item checkbox"> <div className="am-list-line"> - <div className="am-input-label">{card.label}</div> + <div className="am-input-label" style={card.style}>{card.label}</div> <div className="am-input-control" style={{textAlign: 'left'}}> <Button style={{width: '100px', marginBottom: '10px', height: '100px', fontSize: '50px', color: '#d9d9d9'}}><PlusOutlined /></Button> </div> @@ -100,9 +117,9 @@ </div> ) } else if (card.type === 'funcvar') { - formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className="am-input-control">{card.linkfield}</div></div></div>) + formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className="am-input-control">{card.linkfield}</div></div></div>) } else if (card.type === 'switch') { - formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className="am-list-switch"><Switch checked={card.initval}/></div></div></div>) + formItem = (<div className="am-list-item"><div className="am-list-line"><div className="am-input-label" style={card.style}>{card.label}</div><div className="am-list-switch"><Switch checked={card.initval}/></div></div></div>) } else if (card.type === 'radio') { let options = null if (card.options && card.options.length > 0) { @@ -118,7 +135,7 @@ formItem = ( <div className={'am-list-item checkbox mk-radio ' + (card.arrange || '')}> <div className="am-list-line"> - <div className="am-input-label">{card.label}</div> + <div className="am-input-label" style={card.style}>{card.label}</div> <div className="am-input-control"> {card.arrange !== 'line' ? <Checkbox.Group value={[card.initval]}> {options.map(cell => <Checkbox key={cell.key} value={cell.Value}>{cell.Text}</Checkbox>)} @@ -147,7 +164,7 @@ formItem = ( <div className={'am-list-item checkbox ' + (card.arrange || '')}> <div className="am-list-line"> - <div className="am-input-label">{card.label}</div> + <div className="am-input-label" style={card.style}>{card.label}</div> <div className="am-input-control"> {<Checkbox.Group value={_val}> {options.map(cell => <Checkbox key={cell.key} value={cell.Value}>{cell.Text}</Checkbox>)} @@ -160,18 +177,18 @@ } else if (card.type === 'hint') { formItem = <div className="am-list-item hint"> <div className="am-list-line"> - <div className="am-input-label">{card.label}</div> - <div className="am-input-control"> + <div className="am-input-label" style={card.style}>{card.label}</div> + <div className="am-input-control" style={card.style}> {card.message} </div> </div> </div> } else if (card.type === 'split') { - formItem = <div className="split-line">{card.label}</div> + formItem = <div className="split-line" style={card.style}>{card.label}</div> } else if (card.type === 'checkcard') { formItem = (<div className="am-list-item check-card"> <div className="am-list-line"> - {card.hidelabel !== 'true' ? <div className="am-input-label">{card.label}</div> : null} + {card.hidelabel !== 'true' ? <div className="am-input-label" style={card.style}>{card.label}</div> : null} <div className="am-input-control"> <CheckCard config={card} /> </div> @@ -184,20 +201,22 @@ <div className="mk-popover-control"> <EditOutlined className="edit" onClick={edit} /> <CopyOutlined className="copy" onClick={copy} /> + <FontColorsOutlined className="style" onClick={changeStyle} /> <CloseOutlined className="close" onClick={close} /> </div> } trigger="hover"> <div className="page-card" style={{ opacity: opacity}}> <div ref={node => drag(drop(node))} style={{ border: '0.5px solid transparent'}} onDoubleClick={edit}> - {card.type === 'split' ? formItem : <Form.Item + <Form.Item style={{marginTop: card.marginTop || 0, marginBottom: card.marginBottom || 0}} className={'ant-form-item' + (card.required === 'true' ? ' required' : '') + (card.splitline === 'false' ? ' no-boder' : '')} > {formItem} - {showField ? <div className="field-name" style={card.writein === 'false' ? {color: 'orange'} : {}}> - {card.field}{card.hidden === 'true' ? '锛堥殣钘忥級' : ''}{card.readonly === 'true' ? '锛堝彧璇伙級' : ''} + <div></div> + {showField && card.field ? <div className="field-name" style={card.writein === 'false' ? {color: 'orange'} : {}}> + {card.field}{card.hidden === 'true' || card.type === 'funcvar' ? '锛堥殣钘忥級' : ''}{card.readonly === 'true' ? '锛堝彧璇伙級' : ''}{card.linkField ? <span style={{color: '#1890ff'}}>{`锛堝叧鑱�${card.linkField}锛塦}</span> : ''}{card.supField ? <span style={{color: '#8E44AD'}}>{`锛堜笂绾�${card.supField}锛塦}</span> : ''} </div> : ''} - </Form.Item>} + </Form.Item> </div> </div> </Popover> diff --git a/src/mob/components/formdragelement/index.jsx b/src/mob/components/formdragelement/index.jsx index 38485bc..45f4207 100644 --- a/src/mob/components/formdragelement/index.jsx +++ b/src/mob/components/formdragelement/index.jsx @@ -1,6 +1,7 @@ import React, { useState } from 'react' import { useDrop } from 'react-dnd' import { is, fromJS } from 'immutable' +import { Col } from 'antd' import update from 'immutability-helper' import Utils from '@/utils/utils.js' import Card from './card' @@ -52,6 +53,13 @@ let oInput = document.createElement('input') let val = JSON.parse(JSON.stringify(_card)) val.copyType = 'form' + + delete val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + val.$srcId = srcid + } oInput.value = window.btoa(window.encodeURIComponent(JSON.stringify(val))) document.body.appendChild(oInput) @@ -114,17 +122,23 @@ return ( <div ref={drop} className="ant-row modal-fields-row mob-form" style={style}> {cards.map(card => { - return <Card - id={card.uuid} - key={card.uuid} - card={card} - showField={showField} - moveCard={moveCard} - editCard={editCard} - closeCard={closeCard} - copyCard={copyCard} - findCard={findCard} - /> + let span = card.span || 24 + if (![24, 12, 8, 6].includes(span)) { + span = 24 + } + return <Col key={card.uuid} span={span}> + <Card + id={card.uuid} + key={card.uuid} + card={card} + showField={showField} + moveCard={moveCard} + editCard={editCard} + closeCard={closeCard} + copyCard={copyCard} + findCard={findCard} + /> + </Col> })} </div> ) diff --git a/src/mob/components/formdragelement/index.scss b/src/mob/components/formdragelement/index.scss index 4438434..e4b9d51 100644 --- a/src/mob/components/formdragelement/index.scss +++ b/src/mob/components/formdragelement/index.scss @@ -1,12 +1,29 @@ .modal-fields-row { padding-bottom: 35px; - .mob-col.ant-col { + .ant-col { display: inline-block; float: none; vertical-align: top; - padding-left: 1.2%; - padding-right: 1.2%; + padding-left: 0px; + padding-right: 0px; + } + >.ant-col:not(.ant-col-24) { + padding-right: 10px; + .am-list-line .am-input-label { + width: auto; + padding-right: 10px; + } + .ant-form-item.no-boder { + .am-list-item.input { + .am-list-line { + padding-right: 0px; + } + .am-input-control { + border-bottom: 1px solid #ddd; + } + } + } } .am-list-item { font-size: 16px; @@ -28,7 +45,7 @@ display: flex; flex: 1 1; align-self: stretch; - padding-right: 15px; + padding-right: 10px; overflow: hidden; .am-input-label { width: 28%; @@ -259,6 +276,9 @@ .am-list-line { border-bottom: none; } + .split-line { + border: 0; + } } } .mob-form.modal-fields-row { diff --git a/src/mob/components/menubar/common-menubar/index.jsx b/src/mob/components/menubar/common-menubar/index.jsx new file mode 100644 index 0000000..479cbf5 --- /dev/null +++ b/src/mob/components/menubar/common-menubar/index.jsx @@ -0,0 +1,190 @@ +import React, {Component} from 'react' +import PropTypes from 'prop-types' +import { is, fromJS } from 'immutable' +import { Popover, Col } from 'antd' +import { ToolOutlined, RightOutlined, MenuOutlined, SettingOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined } from '@ant-design/icons' + +import asyncComponent from '@/utils/asyncComponent' +import asyncIconComponent from '@/utils/asyncIconComponent' +import { resetStyle } from '@/utils/utils-custom.js' +import MKEmitter from '@/utils/events.js' +import getWrapForm from './options' +import './index.scss' + +const NormalForm = asyncIconComponent(() => import('@/components/normalform')) +const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent')) +const PasteComponent = asyncIconComponent(() => import('@/menu/components/share/pastecomponent')) +const NormalHeader = asyncComponent(() => import('@/menu/components/share/normalheader')) +const SettingComponent = asyncIconComponent(() => import('@/menu/datasource')) + +class CommonMenuBar extends Component { + static propTpyes = { + card: PropTypes.object, + deletecomponent: PropTypes.func, + updateConfig: PropTypes.func, + } + + state = { + card: null, + back: false + } + + UNSAFE_componentWillMount () { + const { card } = this.props + + if (card.isNew) { + let _card = { + uuid: card.uuid, + type: card.type, + tabId: '', + parentId: '', + format: 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 + pageable: false, // 缁勪欢灞炴�� - 鏄惁鍙垎椤� + switchable: false, // 缁勪欢灞炴�� - 鏁版嵁鏄惁鍙垏鎹� + dataName: card.dataName || '', + width: card.width || 24, + name: card.name, + subtype: card.subtype, + setting: { interType: 'system' }, + wrap: { name: card.name, width: card.width || 24, title: '鎴戠殑鑿滃崟', menuWidth: 6 }, + style: { marginLeft: '0px', marginRight: '0px', marginTop: '8px', marginBottom: '8px' }, + headerStyle: { fontSize: '16px', borderBottomWidth: '1px', borderBottomColor: '#e8e8e8' }, + subMenus: [] + } + + if (card.config) { + let config = fromJS(card.config).toJS() + + _card.wrap = config.wrap + _card.wrap.name = card.name + _card.style = config.style + _card.headerStyle = config.headerStyle + } + this.setState({ + card: _card + }) + this.props.updateConfig(_card) + } else { + this.setState({ + card: fromJS(card).toJS() + }) + } + } + + componentDidMount () { + MKEmitter.addListener('submitStyle', this.getStyle) + } + + shouldComponentUpdate (nextProps, nextState) { + return !is(fromJS(this.state), fromJS(nextState)) + } + + /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊锛屾竻闄ゅ揩鎹烽敭璁剧疆 + */ + componentWillUnmount () { + this.setState = () => { + return + } + MKEmitter.removeListener('submitStyle', this.getStyle) + } + + /** + * @description 鍗$墖琛屽灞備俊鎭洿鏂帮紙鏁版嵁婧愶紝鏍峰紡绛夛級 + */ + updateComponent = (component) => { + this.setState({ + card: component + }) + + component.width = component.wrap.width + component.name = component.wrap.name + + this.props.updateConfig(component) + } + + changeStyle = () => { + const { card } = this.state + + MKEmitter.emit('changeStyle', [card.uuid], ['background', 'border', 'padding', 'margin', 'shadow'], card.style) + } + + getStyle = (comIds, style) => { + const { card } = this.state + + if (comIds.length !== 1 || comIds[0] !== card.uuid) return + + let _card = {...card, style} + + this.setState({ + card: _card + }) + + this.props.updateConfig(_card) + } + + getWrapForms = () => { + const { card } = this.state + + return getWrapForm(card.wrap) + } + + updateWrap = (res) => { + let card = {...this.state.card, wrap: res} + if (res.datatype === 'dynamic' && !card.format) { + card.format = 'object' + card.pageable = false + card.switchable = false + card.setting = { interType: 'system' } + card.columns = [] + card.scripts = [] + } + this.updateComponent(card) + } + + clickComponent = (e) => { + if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') { + e.stopPropagation() + MKEmitter.emit('clickComponent', this.state.card) + } + } + + render() { + const { card } = this.state + let _style = resetStyle(card.style) + + return ( + <div className="menu-commonbar-edit-box" style={_style} onClick={this.clickComponent} id={card.uuid}> + {card.wrap.title ? <NormalHeader config={card} updateComponent={this.updateComponent}/> : null} + <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ + <div className="mk-popover-control"> + <NormalForm title="鑿滃崟璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}> + <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> + </NormalForm> + <CopyComponent type="menubar" card={card}/> + <PasteComponent config={card} options={['menucell']} updateConfig={this.updateComponent} /> + <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} /> + <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} /> + {card.wrap.datatype === 'dynamic' ? <SettingComponent config={card} updateConfig={this.updateComponent} /> : null} + {card.wrap.datatype !== 'dynamic' ? <SettingOutlined style={{color: '#eeeeee', cursor: 'not-allowed'}}/> : null} + </div> + } trigger="hover"> + <ToolOutlined /> + </Popover> + <div className={(card.wrap.layout || 'grid') + '-layout'}> + <Col span={card.wrap.menuWidth || 24}> + <div className="menu-item"> + <div className="menu-sign"> + <MenuOutlined /> + </div> + <div className="menu-name" >甯哥敤鑿滃崟</div> + <RightOutlined className="menu-right" /> + </div> + </Col> + </div> + </div> + ) + } +} + +export default CommonMenuBar \ No newline at end of file diff --git a/src/mob/components/menubar/common-menubar/index.scss b/src/mob/components/menubar/common-menubar/index.scss new file mode 100644 index 0000000..d28f371 --- /dev/null +++ b/src/mob/components/menubar/common-menubar/index.scss @@ -0,0 +1,105 @@ +.menu-commonbar-edit-box { + position: relative; + box-sizing: border-box; + background: #ffffff; + background-position: center center; + background-repeat: no-repeat; + background-size: cover; + min-height: 20px; + + .card-control { + position: absolute; + top: 0px; + left: 0px; + .anticon-tool { + right: auto; + left: 1px; + padding: 1px; + } + } + >.anticon-tool { + position: absolute; + z-index: 2; + font-size: 16px; + right: 1px; + top: 1px; + cursor: pointer; + padding: 5px; + background: rgba(255, 255, 255, 0.55); + } + .menu-right { + display: none; + } + .vertical-layout { + >.ant-col { + width: 100%; + .menu-item { + display: flex; + align-items: center; + .menu-sign { + margin-right: 10px; + } + .menu-name { + text-align: inherit; + flex: 10; + } + .menu-right { + margin-left: 5px; + display: inline-block; + } + } + } + } + .flex-layout { + display: flex; + >.ant-col { + flex: 1; + width: 5%; + } + } + + .menu-item { + overflow: hidden; + position: relative; + min-height: 20px; + padding: 15px; + .menu-name { + text-align: center; + font-style: inherit; + font-weight: inherit; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: 17px; + line-height: 2; + } + .menu-sign { + position: relative; + text-align: center; + .anticon { + border-radius: 15%; + color: #ffffff; + font-size: 20px; + padding: 12px; + background: #1890ff; + } + .am-badge-text { + position: absolute; + height: 8px; + width: 8px; + border-radius: 100%; + background: #ff5b05; + z-index: 1; + } + } + } +} +.menu-commonbar-edit-box::after { + display: block; + content: ' '; + clear: both; +} +.menu-commonbar-edit-box:hover { + z-index: 1; + box-shadow: 0px 0px 4px #1890ff; +} diff --git a/src/mob/components/menubar/common-menubar/options.jsx b/src/mob/components/menubar/common-menubar/options.jsx new file mode 100644 index 0000000..114ec44 --- /dev/null +++ b/src/mob/components/menubar/common-menubar/options.jsx @@ -0,0 +1,84 @@ +/** + * @description Wrap琛ㄥ崟閰嶇疆淇℃伅 + */ +export default function (wrap) { + const menuWrapForm = [ + { + type: 'text', + field: 'title', + label: '鏍囬', + initval: wrap.title || '', + required: false + }, + { + type: 'text', + field: 'name', + label: '缁勪欢鍚嶇О', + initval: wrap.name || '', + tooltip: '鐢ㄤ簬缁勪欢闂寸殑鍖哄垎銆�', + required: true + }, + { + type: 'number', + field: 'width', + label: '缁勪欢瀹藉害', + initval: wrap.width || 24, + tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��', + min: 1, + max: 24, + precision: 0, + required: true + }, + { + type: 'number', + field: 'maxcount', + label: '鑿滃崟鏁�', + initval: wrap.maxcount || '', + tooltip: '鑿滃崟鐨勬渶澶ф樉绀烘暟閲忥紝绌烘椂涓嶅仛闄愬埗銆�', + min: 1, + max: 9999, + precision: 0, + required: false + }, + { + type: 'radio', + field: 'datatype', + label: '鏁版嵁鏉ユ簮', + initval: wrap.datatype || 'static', + tooltip: '閫夋嫨闈欐�佸�硷紝鏃犻渶閰嶇疆鏁版嵁婧愩��', + required: false, + options: [ + {value: 'dynamic', label: '鍔ㄦ��'}, + {value: 'static', label: '闈欐��'}, + ] + }, + { + type: 'radio', + field: 'layout', + label: '鑿滃崟甯冨眬', + initval: wrap.layout || 'grid', + required: false, + options: [ + {value: 'grid', label: '鏍呮牸'}, + {value: 'vertical', label: '涓婁笅'}, + {value: 'flex', label: '寮规��'}, + ], + controlFields: [ + {field: 'menuWidth', values: ['grid']}, + ], + }, + { + type: 'number', + field: 'menuWidth', + label: '鑿滃崟瀹藉害', + initval: wrap.menuWidth || 6, + tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��', + min: 1, + max: 24, + precision: 0, + required: true + }, + ] + + return menuWrapForm +} \ No newline at end of file diff --git a/src/mob/components/menubar/normal-menubar/index.jsx b/src/mob/components/menubar/normal-menubar/index.jsx index 93d9aff..13b61c7 100644 --- a/src/mob/components/menubar/normal-menubar/index.jsx +++ b/src/mob/components/menubar/normal-menubar/index.jsx @@ -41,7 +41,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: '', parentId: '', format: 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 @@ -52,7 +51,7 @@ name: card.name, subtype: card.subtype, setting: { interType: 'system' }, - wrap: { name: card.name, width: card.width || 24, title: '' }, + wrap: { name: card.name, width: card.width || 24, title: '', permission: 'true' }, style: { marginLeft: '0px', marginRight: '0px', marginTop: '8px', marginBottom: '8px' }, headerStyle: { fontSize: '16px', borderBottomWidth: '1px', borderBottomColor: '#e8e8e8' }, subMenus: [{ @@ -145,20 +144,27 @@ /** * @description 鍗曚釜鍗$墖淇℃伅鏇存柊 */ - deleteCard = (cell) => { + deleteCard = (cell, type) => { let card = fromJS(this.state.card).toJS() let _this = this - confirm({ - content: '纭畾鍒犻櫎鍗$墖鍚楋紵', - onOk() { - card.subMenus = card.subMenus.filter(item => item.uuid !== cell.uuid) - - _this.setState({card}) - _this.props.updateConfig(card) - }, - onCancel() {} - }) + if (type !== 'direct') { + confirm({ + content: '纭畾鍒犻櫎鍗$墖鍚楋紵', + onOk() { + card.subMenus = card.subMenus.filter(item => item.uuid !== cell.uuid) + + _this.setState({card}) + _this.props.updateConfig(card) + }, + onCancel() {} + }) + } else { + card.subMenus = card.subMenus.filter(item => item.uuid !== cell.uuid) + + this.setState({card}) + this.props.updateConfig(card) + } } changeStyle = () => { @@ -186,7 +192,7 @@ let newcard = { uuid: Utils.getuuid(), - setting: { type: 'menu', width: 6, sign: 'icon', icon: 'user', name: '瀹㈡埛', url: '', color: '#ffffff', iconFont: 20, padding: 12, background: '#1890ff', imgWidth: '' }, + setting: { type: 'menu', width: 6, sign: 'icon', icon: '', name: '', url: '', color: '#ffffff', iconFont: 20, padding: 12, background: '#1890ff', imgWidth: '' }, style: { paddingTop: '15px', paddingBottom: '15px' } @@ -195,12 +201,28 @@ if (card.subMenus.length > 0) { newcard = fromJS(card.subMenus.slice(-1)[0]).toJS() newcard.uuid = Utils.getuuid() + + newcard.setting.clearMenu = 'true' + newcard.setting.icon = '' + newcard.setting.name = '' + newcard.setting.MenuNo = '' + newcard.setting.type = 'menu' + newcard.setting.copyMenuId = '' + newcard.setting.linkMenuId = '' + newcard.setting.linkurl = '' + newcard.setting.tip = '' + newcard.setting.url = '' } card.subMenus.push(newcard) this.setState({card}) this.props.updateConfig(card) + + setTimeout(() => { + let node = document.getElementById(newcard.uuid) + node && node.click() + }, 200) } move = (item, direction) => { @@ -252,18 +274,6 @@ render() { const { card } = this.state - let offset = 0 - if (card.wrap.cardFloat && card.wrap.cardFloat !== 'left') { - let _width = 0 - card.subMenus.forEach(card => { - _width += card.setting.width - }) - offset = _width < 24 ? 24 - _width : 0 - if (card.wrap.cardFloat === 'center') { - offset = Math.floor(offset / 2) - } - } - let _style = resetStyle(card.style) return ( @@ -286,7 +296,9 @@ } trigger="hover"> <ToolOutlined /> </Popover> - {card.subMenus.map((menu, index) => (<MenuComponent key={menu.uuid} offset={!index ? offset : 0} cards={card} card={menu} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} + <div className={(card.wrap.layout || 'grid') + '-layout'}> + {card.subMenus.map((menu, index) => (<MenuComponent key={menu.uuid} cards={card} card={menu} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} + </div> </div> ) } diff --git a/src/mob/components/menubar/normal-menubar/index.scss b/src/mob/components/menubar/normal-menubar/index.scss index 0686562..8732c16 100644 --- a/src/mob/components/menubar/normal-menubar/index.scss +++ b/src/mob/components/menubar/normal-menubar/index.scss @@ -17,7 +17,7 @@ padding: 1px; } } - .anticon-tool { + >.anticon-tool { position: absolute; z-index: 2; font-size: 16px; @@ -27,6 +27,36 @@ padding: 5px; background: rgba(255, 255, 255, 0.55); } + .menu-right { + display: none; + } + .vertical-layout { + >.ant-col { + width: 100%; + .menu-item { + display: flex; + align-items: center; + .menu-sign { + margin-right: 10px; + } + .menu-name { + text-align: inherit; + flex: 10; + } + .menu-right { + margin-left: 5px; + display: inline-block; + } + } + } + } + .flex-layout { + display: flex; + >.ant-col { + flex: 1; + width: 5%; + } + } .menu-item { overflow: hidden; diff --git a/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx b/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx index 2fe6362..daac1c6 100644 --- a/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx +++ b/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx @@ -2,7 +2,7 @@ import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { Popover, Col } from 'antd' -import { SwapOutlined, ArrowLeftOutlined, ArrowRightOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined } from '@ant-design/icons' +import { SwapOutlined, ArrowLeftOutlined, ArrowRightOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined, RightOutlined } from '@ant-design/icons' import asyncIconComponent from '@/utils/asyncIconComponent' import Utils from '@/utils/utils.js' @@ -17,7 +17,6 @@ class MenuBoxComponent extends Component { static propTpyes = { - offset: PropTypes.any, // 鍋忕Щ閲� cards: PropTypes.object, // 鍗$墖琛岄厤缃俊鎭� card: PropTypes.object, // 鍗$墖閰嶇疆淇℃伅 move: PropTypes.func, // 鍗$墖绉诲姩 @@ -76,7 +75,7 @@ const { card } = this.state let _style = card.style ? fromJS(card.style).toJS() : {} - let options = ['font', 'border', 'padding'] + let options = ['font', 'border', 'padding', 'margin', 'background'] MKEmitter.emit('changeStyle', [cards.uuid, card.uuid], options, _style) } @@ -110,6 +109,7 @@ MKEmitter.emit('changeEditMenu', { MenuID: card.setting.type === 'linkmenu' ? card.setting.linkMenuId : card.uuid, copyMenuId: card.setting.type === 'menu' ? card.setting.copyMenuId : '', + clearMenu: card.setting.clearMenu || 'true', MenuNo: card.setting.MenuNo || '', MenuName: card.setting.name, }) @@ -117,7 +117,6 @@ } render() { - const { offset } = this.props const { card } = this.state let _style = {...card.style} @@ -125,7 +124,7 @@ _style = resetStyle(_style) return ( - <Col span={card.setting.width || 6} offset={offset || 0}> + <Col span={card.setting.width || 6}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <NormalForm title="鑿滃崟缂栬緫" width={900} update={this.updateSetting} getForms={this.getSettingForms}> @@ -151,14 +150,19 @@ padding: card.setting.padding, background: card.setting.background, color: card.setting.color, - borderRadius: card.setting.borderRadius || '15%' - }} type={card.setting.icon}/> + borderRadius: card.setting.borderRadius || '15%', + opacity: !card.setting.icon ? 0 : 1 + }} type={card.setting.icon || 'cloud'}/> {card.setting.tip ? <sup className="am-badge-text"></sup> : null} </div> : <div className="menu-sign"> <img style={{width: card.setting.imgWidth, height: card.setting.imgWidth, borderRadius: card.setting.borderRadius || '15%'}} src={card.setting.url} alt=""/> {card.setting.tip ? <sup className="am-badge-text"></sup> : null} </div>} - <div className="menu-name">{card.setting.name}</div> + <div className="menu-name" style={{opacity: !card.setting.name ? 0 : 1}}>{card.setting.name || '鏄庣'}</div> + <RightOutlined className="menu-right" /> + {!card.setting.name ? <NormalForm title="鑿滃崟缂栬緫" width={900} update={this.updateSetting} cancel={() => this.props.deleteElement(card, 'direct')} getForms={this.getSettingForms}> + <span id={card.uuid}></span> + </NormalForm> : null} </div> </Popover> </Col> diff --git a/src/mob/components/menubar/normal-menubar/menucomponent/options.jsx b/src/mob/components/menubar/normal-menubar/menucomponent/options.jsx index fd5ce24..ed3e96c 100644 --- a/src/mob/components/menubar/normal-menubar/menucomponent/options.jsx +++ b/src/mob/components/menubar/normal-menubar/menucomponent/options.jsx @@ -64,7 +64,23 @@ initval: setting.copyMenuId || '', tooltip: '澶嶅埗鑿滃崟浠呭湪褰撳墠鑿滃崟鍒涘缓鏃舵湁鏁堛��', required: false, - options: menulist + options: menulist, + extendName: 'MenuNo', + controlFields: [ + {field: 'clearMenu', notNull: true}, + ], + }, + { + type: 'radio', + field: 'clearMenu', + label: '娓呯┖鍏宠仈鑿滃崟', + initval: setting.clearMenu || 'true', + tooltip: '澶嶅埗鑿滃崟鏃讹紝鏄惁娓呯┖鍘熼〉闈腑鐨勫叧鑱旇彍鍗曘��', + required: false, + options: [ + {value: 'true', label: '鏄�'}, + {value: 'false', label: '鍚�'} + ] }, { type: 'select', @@ -72,6 +88,7 @@ label: '鍏宠仈鑿滃崟', initval: setting.linkMenuId || '', required: true, + extendName: 'MenuNo', options: [ ...menulist, // {value: 'IM', label: '鍗虫椂閫氫俊锛堢郴缁熼〉锛�'}, diff --git a/src/mob/components/menubar/normal-menubar/options.jsx b/src/mob/components/menubar/normal-menubar/options.jsx index 45e6b8a..0cdd7bc 100644 --- a/src/mob/components/menubar/normal-menubar/options.jsx +++ b/src/mob/components/menubar/normal-menubar/options.jsx @@ -40,7 +40,42 @@ {value: 'dynamic', label: '鍔ㄦ��'}, {value: 'static', label: '闈欐��'}, ] - } + }, + { + type: 'radio', + field: 'layout', + label: '鑿滃崟甯冨眬', + initval: wrap.layout || 'grid', + required: false, + options: [ + {value: 'grid', label: '鏍呮牸'}, + {value: 'vertical', label: '涓婁笅'}, + {value: 'flex', label: '寮规��'}, + ] + }, + { + type: 'radio', + field: 'common', + label: '甯哥敤', + initval: wrap.common || 'true', + tooltip: '褰撳墠鑿滃崟缁勪腑鐨勮彍鍗曟槸鍚﹀彲娣诲姞鑷冲父鐢ㄨ彍鍗曠粍銆�', + required: false, + options: [ + {value: 'true', label: '鍙坊鍔�'}, + {value: 'false', label: '涓嶅彲娣诲姞'}, + ] + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ] + }, ] return menuWrapForm diff --git a/src/mob/components/navbar/normal-navbar/index.jsx b/src/mob/components/navbar/normal-navbar/index.jsx index 680cd0a..8244a70 100644 --- a/src/mob/components/navbar/normal-navbar/index.jsx +++ b/src/mob/components/navbar/normal-navbar/index.jsx @@ -32,7 +32,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, format: 'object', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 pageable: false, // 缁勪欢灞炴�� - 鏄惁鍙垎椤� switchable: false, // 缁勪欢灞炴�� - 鏁版嵁鏄惁鍙垏鎹� diff --git a/src/mob/components/navbar/normal-navbar/menus/drags/card.jsx b/src/mob/components/navbar/normal-navbar/menus/drags/card.jsx index 11e395f..fe9dd41 100644 --- a/src/mob/components/navbar/normal-navbar/menus/drags/card.jsx +++ b/src/mob/components/navbar/normal-navbar/menus/drags/card.jsx @@ -36,6 +36,7 @@ MKEmitter.emit('changeEditMenu', { MenuID: card.property === 'linkmenu' ? card.linkMenuId : card.MenuID, copyMenuId: card.property === 'menu' ? card.copyMenuId : '', + clearMenu: card.clearMenu || 'true', MenuNo: card.MenuNo, MenuName: card.name }) diff --git a/src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx b/src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx index 441de0a..8efdcec 100644 --- a/src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx +++ b/src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx @@ -18,6 +18,7 @@ state = { property: this.props.menu.property || 'menu', + copyMenu: this.props.menu.copyMenuId || '', appMenus: [], } @@ -75,7 +76,7 @@ render() { const { menu, cols } = this.props const { getFieldDecorator } = this.props.form - const { property, appMenus } = this.state + const { property, appMenus, copyMenu } = this.state const formItemLayout = { labelCol: { @@ -192,10 +193,14 @@ message: '璇烽�夋嫨鍏宠仈鑿滃崟!' }] })( - <Select> - {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))} + <Select + showSearch + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 || + option.props.extend.toLowerCase().indexOf(input.toLowerCase()) >= 0} + > + {appMenus.map(item => (<Select.Option key={item.MenuID} extend={item.MenuNo || ''} value={item.MenuID}>{item.MenuName}</Select.Option>))} {/* <Select.Option key="IM" value="IM">鍗虫椂閫氫俊锛堢郴缁熼〉锛�</Select.Option> */} - <Select.Option key="AIService" value="AIService">鏅鸿兘瀹㈡湇锛堢郴缁熼〉锛�</Select.Option> + <Select.Option key="AIService" extend={''} value="AIService">鏅鸿兘瀹㈡湇锛堢郴缁熼〉锛�</Select.Option> </Select> )} </Form.Item> @@ -210,12 +215,35 @@ {getFieldDecorator('copyMenuId', { initialValue: menu.copyMenuId || '' })( - <Select> - {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))} + <Select + allowClear + showSearch + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 || + option.props.extend.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onChange={(val) => this.setState({copyMenu: val})} + > + {appMenus.map(item => (<Select.Option key={item.MenuID} extend={item.MenuNo || ''} value={item.MenuID}>{item.MenuName}</Select.Option>))} </Select> )} </Form.Item> </Col> : null} + {property === 'menu' && copyMenu ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="澶嶅埗鑿滃崟鏃讹紝鏄惁娓呯┖鍘熼〉闈腑鐨勫叧鑱旇彍鍗曘��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 娓呯┖鍏宠仈鑿滃崟 + </Tooltip> + }> + {getFieldDecorator('clearMenu', { + initialValue: menu.clearMenu || 'true' + })( + <Radio.Group> + <Radio value="true">鏄�</Radio> + <Radio value="false">鍚�</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> : null} </Row> </Form> ) diff --git a/src/mob/components/navbar/normal-navbar/options.jsx b/src/mob/components/navbar/normal-navbar/options.jsx index 2a7ebc2..1b4f32e 100644 --- a/src/mob/components/navbar/normal-navbar/options.jsx +++ b/src/mob/components/navbar/normal-navbar/options.jsx @@ -38,7 +38,18 @@ max: 200, precision: 0, required: true - } + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ] + }, ] return wrapForm diff --git a/src/mob/components/search/single-search/index.jsx b/src/mob/components/search/single-search/index.jsx index 6f11afb..ec9400c 100644 --- a/src/mob/components/search/single-search/index.jsx +++ b/src/mob/components/search/single-search/index.jsx @@ -39,7 +39,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', width: 24, diff --git a/src/mob/components/search/single-search/options.jsx b/src/mob/components/search/single-search/options.jsx index 8b31c35..7acafab 100644 --- a/src/mob/components/search/single-search/options.jsx +++ b/src/mob/components/search/single-search/options.jsx @@ -46,6 +46,18 @@ }, { type: 'radio', + field: 'focus', + label: '鑷姩鑱氱劍', + initval: wrap.focus || 'false', + tooltip: '娉細ios绯荤粺涓棤鏁堛��', + required: false, + options: [ + {value: 'true', label: '鏄�'}, + {value: 'false', label: '鍚�'}, + ] + }, + { + type: 'radio', field: 'required', label: '蹇呭~', initval: wrap.required || 'false', @@ -108,7 +120,18 @@ precision: 0, initval: wrap.height || 32, required: false - } + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ] + }, ] return wrapForm diff --git a/src/mob/components/tabs/antv-tabs/index.jsx b/src/mob/components/tabs/antv-tabs/index.jsx index c644570..108b32a 100644 --- a/src/mob/components/tabs/antv-tabs/index.jsx +++ b/src/mob/components/tabs/antv-tabs/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Tabs, Popover, Modal } from 'antd' +import { Tabs, Popover, Modal, notification } from 'antd' import { ToolOutlined, PlusOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined, CloseOutlined } from '@ant-design/icons' import MKEmitter from '@/utils/events.js' @@ -44,7 +44,6 @@ let _tabs = { uuid: tabs.uuid, type: tabs.type, - floor: tabs.floor, tabId: tabs.tabId || '', parentId: tabs.parentId || '', subtype: tabs.subtype, @@ -53,9 +52,9 @@ setting: {width: 24, position: 'top', tabStyle: 'line', name: tabs.name}, style: { marginLeft: '8px', marginRight: '8px', marginTop: '8px', marginBottom: '8px' }, subtabs: [ - { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 1', icon: '', components: [] }, - { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 2', icon: '', components: [] }, - { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 3', icon: '', components: [] } + { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 1', icon: '', components: [] }, + { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 2', icon: '', components: [] }, + { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 3', icon: '', components: [] } ] } @@ -254,6 +253,15 @@ insert = (item, tab) => { let tabs = fromJS(this.state.tabs).toJS() + if (item.type === 'search') { + notification.warning({ + top: 92, + message: '绉诲姩绔悳绱㈢粍浠朵笉鍙矘璐达紒', + duration: 5 + }) + return + } + tabs.subtabs.forEach(stab => { if (stab.uuid === tab.uuid) { stab.components.push(item) @@ -310,7 +318,6 @@ tab = { uuid: '', parentId: tabs.uuid, - floor: tabs.floor, label: '', icon: '', components: [] @@ -331,6 +338,9 @@ editab.label = res.label editab.icon = res.icon // editab.hasSearch = res.hasSearch || '' + editab.hide = res.hide || 'false' + editab.backgroundColor = res.backgroundColor + editab.controlVal = res.controlVal || '' editab.blacklist = res.blacklist if (editab.uuid) { @@ -357,7 +367,7 @@ getTabsForms = () => { const { tabs } = this.state - return getTabsSetForm(tabs.setting) + return getTabsSetForm(tabs.setting, tabs.uuid) } updateTabs = (res) => { @@ -383,12 +393,12 @@ return ( <div className={'mob-tabs-edit-box ' + tabs.setting.display} style={_style} onClick={this.clickComponent} id={tabs.uuid}> - <DraggableTabs defaultActiveKey={defaultActiveKey} tabPosition={'top'} type={tabs.setting.tabStyle} tabsMove={this.moveSwitch} onChange={this.onChange}> + <DraggableTabs defaultActiveKey={defaultActiveKey} tabBarStyle={{background: tabs.setting.backgroundColor || 'transparent'}} tabPosition={'top'} type={tabs.setting.tabStyle} tabsMove={this.moveSwitch} onChange={this.onChange}> {tabs.subtabs.map(tab => ( <TabPane tab={ <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <NormalForm title="鏍囩缂栬緫" width={600} update={this.updateTab} getForms={() => this.getTabForms(tab)}> + <NormalForm title="鏍囩缂栬緫" width={800} update={this.updateTab} getForms={() => this.getTabForms(tab)}> <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <PasteComponent Tab={tab} insert={this.insert} /> @@ -396,9 +406,9 @@ <CloseOutlined className="close" onClick={() => this.delTab(tab)} /> </div> } trigger="hover"> - <span style={_tabStyle}>{tab.icon ? <MkIcon type={tab.icon} /> : null}{tab.label}</span> + <span style={{..._tabStyle, textDecoration: tab.hide === 'true' ? 'line-through' : 'none'}}>{tab.icon ? <MkIcon type={tab.icon} /> : null}{tab.label}</span> </Popover> - } key={tab.uuid}> + } key={tab.uuid} style={{backgroundColor: tab.backgroundColor || 'transparent'}}> {/* {appType === 'mob' && tabs.setting.display === 'inline-block' && tab.hasSearch === 'icon' ? <SearchOutlined className="search-icon" onDoubleClick={() => this.setSearch(tab)}/> : null} */} <TabComponents config={tab} handleList={this.updateTabComponent} deleteCard={this.deleteCard} /> @@ -407,10 +417,10 @@ </DraggableTabs> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <NormalForm title="娣诲姞鏍囩" width={600} update={this.updateTab} getForms={() => this.getTabForms()}> + <NormalForm title="娣诲姞鏍囩" width={800} update={this.updateTab} getForms={() => this.getTabForms()}> <PlusOutlined className="plus" title="娣诲姞鏍囩"/> </NormalForm> - <NormalForm title="鏍囩椤佃缃�" width={700} update={this.updateTabs} getForms={this.getTabsForms}> + <NormalForm title="鏍囩椤佃缃�" width={800} update={this.updateTabs} getForms={this.getTabsForms}> <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <CopyComponent type="tabs" card={tabs}/> diff --git a/src/mob/components/tabs/antv-tabs/options.jsx b/src/mob/components/tabs/antv-tabs/options.jsx index 43ac1d4..74643d9 100644 --- a/src/mob/components/tabs/antv-tabs/options.jsx +++ b/src/mob/components/tabs/antv-tabs/options.jsx @@ -1,8 +1,10 @@ +import MenuUtils from '@/utils/utils-custom.js' + /** * @description Wrap琛ㄥ崟閰嶇疆淇℃伅 */ export function getTabForm(tab, setting) { - let appType = sessionStorage.getItem('appType') + // let appType = sessionStorage.getItem('appType') let roleList = sessionStorage.getItem('sysRoles') if (roleList) { @@ -23,7 +25,6 @@ initval: tab.label || '', required: true, focus: true, - span: 22 }, { type: 'mkicon', @@ -32,7 +33,6 @@ initval: tab.icon || '', required: false, allowClear: true, - span: 22 }, // { // type: 'radio', @@ -48,15 +48,40 @@ // span: 22 // }, { - type: 'multiselect', - field: 'blacklist', - label: '榛戝悕鍗�', - initval: tab.blacklist || [], - required: false, - options: roleList, - forbid: !!appType, - span: 22 + type: 'text', + field: 'controlVal', + label: '闅愯棌鏍囪', + initval: tab.controlVal || '', + tooltip: '褰撶鐢ㄥ瓧娈靛�间笌闅愯棌鏍囪鐩哥瓑鏃讹紝鏍囩椤典細闅愯棌銆�', + required: false }, + { + type: 'color', + field: 'backgroundColor', + label: '鑳屾櫙(鍐呭鍖�)', + initval: tab.backgroundColor || 'transparent', + required: false, + }, + { + type: 'radio', + field: 'hide', + label: '闅愯棌', + initval: tab.hide || 'false', + required: false, + options: [ + {value: 'false', label: '鍚�'}, + {value: 'true', label: '鏄�'}, + ], + }, + // { + // type: 'multiselect', + // field: 'blacklist', + // label: '榛戝悕鍗�', + // initval: tab.blacklist || [], + // required: false, + // options: roleList, + // forbid: !!appType, + // }, ] return tabForm @@ -65,7 +90,9 @@ /** * @description tabs琛ㄥ崟閰嶇疆淇℃伅 */ -export function getTabsSetForm(setting) { +export function getTabsSetForm(setting, uuid) { + let modules = MenuUtils.getSupModules(window.GLOB.customMenu.components, uuid) || [] + const tabForm = [ { type: 'text', @@ -112,7 +139,46 @@ {value: 'flex', label: '寮规�у竷灞�'}, {value: 'inline-block', label: '瀹氬'}, ], - } + }, + { + type: 'cascader', + field: 'supModule', + label: '涓婄骇缁勪欢', + initval: setting.supModule || [], + tooltip: '鏍囩缁勫彲浠ラ�夋嫨涓婄骇缁勪欢锛屽~鍏ョ鐢ㄥ瓧娈碉紝鐢ㄤ簬鎺у埗鏍囩闅愯棌銆�', + required: false, + allowClear: true, + options: modules, + controlFields: [ + {field: 'controlField', notNull: true}, + ], + }, + { + type: 'text', + field: 'controlField', + label: '绂佺敤瀛楁', + initval: setting.controlField || '', + tooltip: '鐢ㄤ簬鎺у埗鏍囩闅愯棌鐨勫瓧娈碉紝鍦ㄦ爣绛句腑濉叆闅愯棌鏍囪銆�', + required: true + }, + { + type: 'color', + field: 'backgroundColor', + label: '鑳屾櫙(鏍囬鏍�)', + initval: setting.backgroundColor || 'transparent', + required: false + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: setting.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ] + }, ] return tabForm diff --git a/src/mob/components/tabs/tabcomponents/card.jsx b/src/mob/components/tabs/tabcomponents/card.jsx index 2d1ace5..bbd5724 100644 --- a/src/mob/components/tabs/tabcomponents/card.jsx +++ b/src/mob/components/tabs/tabcomponents/card.jsx @@ -29,7 +29,7 @@ const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ - item: { type: 'menu', id, originalIndex, floor: card.floor }, + item: { type: 'menu', id, originalIndex }, collect: monitor => ({ isDragging: monitor.isDragging(), }), @@ -38,10 +38,10 @@ accept: 'menu', canDrop: () => true, drop: (item) => { - const { id: draggedId, originalIndex, floor } = item + const { id: draggedId, originalIndex } = item if (originalIndex === undefined) { item.dropTargetId = id - } else if (draggedId && floor === card.floor) { + } else if (draggedId) { if (draggedId === id) return const { index: originIndex } = findCard(draggedId) diff --git a/src/mob/components/tabs/tabcomponents/index.jsx b/src/mob/components/tabs/tabcomponents/index.jsx index 3ed31ed..84ee423 100644 --- a/src/mob/components/tabs/tabcomponents/index.jsx +++ b/src/mob/components/tabs/tabcomponents/index.jsx @@ -75,22 +75,27 @@ item.added = true - if (item.component === 'search') { // 鎼滅储缁勪欢涓嶅彲閲嶅娣诲姞 - if (cards.filter(card => card.type === 'search').length > 0) { + if (item.component === 'search') { // 绉诲姩绔爣绛鹃〉涓笉鍙坊鍔犳悳绱� + // if (cards.filter(card => card.type === 'search').length > 0) { + // notification.warning({ + // top: 92, + // message: '鎼滅储鏉′欢涓嶅彲閲嶅娣诲姞锛�', + // duration: 5 + // }) + // return + // } + item.added = false + return + } else if (item.component === 'tabs') { + let floor = MenuUtils.getFloor(config.parentId) + if (floor >= 3 ) { notification.warning({ top: 92, - message: '鎼滅储鏉′欢涓嶅彲閲嶅娣诲姞锛�', + message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�', duration: 5 }) return } - } else if (item.component === 'tabs' && config.floor === 3) { - notification.warning({ - top: 92, - message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�', - duration: 5 - }) - return } let name = '' @@ -134,7 +139,6 @@ width: item.width || 24, dataName: Utils.getdataName(), name: name, - floor: config.floor ? (config.floor + 1) : 2, // 缁勪欢鐨勫眰绾� isNew: true // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖� } diff --git a/src/mob/components/topbar/normal-navbar/index.jsx b/src/mob/components/topbar/normal-navbar/index.jsx index 3473c20..b8ece4c 100644 --- a/src/mob/components/topbar/normal-navbar/index.jsx +++ b/src/mob/components/topbar/normal-navbar/index.jsx @@ -2,11 +2,12 @@ import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { Popover } from 'antd' -import { ExpandOutlined, ReloadOutlined, EllipsisOutlined, LogoutOutlined, ToolOutlined, ScanOutlined, LeftOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined, SearchOutlined } from '@ant-design/icons' +import { ExpandOutlined, ReloadOutlined, EllipsisOutlined, LogoutOutlined, ToolOutlined, ScanOutlined, LeftOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined, SearchOutlined, MenuOutlined } from '@ant-design/icons' import asyncIconComponent from '@/utils/asyncIconComponent' import getWrapForm from './options' import MKEmitter from '@/utils/events.js' +import avatar from '@/assets/img/avatar.jpg' import './index.scss' const NormalForm = asyncIconComponent(() => import('@/components/normalform')) @@ -20,6 +21,7 @@ } state = { + avatar: sessionStorage.getItem('CloudAvatar') || avatar, card: null, back: false } @@ -31,12 +33,12 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, width: 24, subtype: card.subtype, wrap: { type: 'navbar', height: 50, title: 'NavBar', back: 'true', logout: 'false' }, style: {boxShadow: '0 0 3px #D9D9D9', shadowColor: '#D9D9D9', shadowBlur: '3px', paddingLeft: '10px', paddingRight: '10px', lineHeight: '2.8', fontSize: '18px' }, - searchStyle: {} + searchStyle: {}, + titleStyle: {} } if (card.config) { @@ -101,6 +103,8 @@ if (comIds[1] === 'search') { _card.searchStyle = style + } else if (comIds[1] === 'title') { + _card.titleStyle = style } else { _card.style = style } @@ -118,6 +122,12 @@ MKEmitter.emit('changeStyle', [card.uuid], ['font', 'background', 'border', 'padding', 'shadow'], card.style) } + changeTitleStyle = () => { + const { card } = this.state + + MKEmitter.emit('changeStyle', [card.uuid, 'title'], ['font'], card.titleStyle || {}) + } + changeSearchStyle = () => { const { card } = this.state @@ -128,19 +138,6 @@ if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') { e.stopPropagation() MKEmitter.emit('clickComponent', this.state.card) - } - } - - changeMenu = (menu) => { - if (menu.property === 'link') { - window.open(menu.link) - } else { - MKEmitter.emit('changeEditMenu', { - MenuID: menu.property === 'linkmenu' ? menu.linkMenuId : menu.MenuID, - copyMenuId: menu.property === 'menu' ? menu.copyMenuId : '', - MenuNo: menu.MenuNo, - MenuName: menu.name, - }) } } @@ -178,6 +175,14 @@ } updateWrap = (res) => { + let funs = res.funs || [] + + delete res.funs + + funs.forEach(n => { + res[n] = 'true' + }) + this.updateComponent({...this.state.card, wrap: res}) } @@ -195,7 +200,7 @@ } render() { - const { card } = this.state + const { card, avatar } = this.state let right = null if (card.wrap.logout === 'true') { @@ -207,12 +212,15 @@ if (card.wrap.refresh === 'true') { right = !right ? <ReloadOutlined /> : <EllipsisOutlined onDoubleClick={this.skip}/> } + if (card.wrap.menus && card.wrap.menus.length > 0) { + right = !right ? <MenuOutlined /> : <EllipsisOutlined onDoubleClick={this.skip}/> + } return ( <div className="normal-topbar-edit-box" style={card.style} onClick={this.clickComponent} id={card.uuid}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <NormalForm title="瀵艰埅鏍忚缃�" width={750} update={this.updateWrap} getForms={this.getWrapForms}> + <NormalForm title="瀵艰埅鏍忚缃�" width={850} update={this.updateWrap} getForms={this.getWrapForms}> <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <CopyComponent type="topbar" card={card}/> @@ -224,10 +232,17 @@ </Popover> <div className="am-navbar"> <div className="am-navbar-left"> - {card.wrap.back !== 'false' ? <LeftOutlined /> : null} + {card.wrap.back !== 'false' && card.wrap.menuPosition !== 'left' ? <LeftOutlined /> : null} + {card.wrap.menuPosition === 'left' ? <div className="img" style={{backgroundImage: `url(${avatar})`}}></div> : null} </div> {card.wrap.type !== 'search' ? - <div className="am-navbar-title">{card.wrap.title || ''}</div> : + <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ + <div className="mk-popover-control"> + <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeTitleStyle}/> + </div> + } trigger="hover"> + <div className="am-navbar-title" style={card.titleStyle}>{card.wrap.title || ''}</div> + </Popover> : <div className="am-navbar-search" onDoubleClick={this.setSearch}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> diff --git a/src/mob/components/topbar/normal-navbar/index.scss b/src/mob/components/topbar/normal-navbar/index.scss index fe4a5c8..46e93c6 100644 --- a/src/mob/components/topbar/normal-navbar/index.scss +++ b/src/mob/components/topbar/normal-navbar/index.scss @@ -36,6 +36,15 @@ .anticon-left { margin: 0 8px 0 5px; } + .img { + width: 30px; + height: 30px; + border-radius: 4px; + margin-top: 9px; + margin-right: 5px; + background-size: cover; + background-position: center center; + } } .am-navbar-title { text-align: center; diff --git a/src/mob/components/topbar/normal-navbar/options.jsx b/src/mob/components/topbar/normal-navbar/options.jsx index 3185952..5a016d9 100644 --- a/src/mob/components/topbar/normal-navbar/options.jsx +++ b/src/mob/components/topbar/normal-navbar/options.jsx @@ -1,8 +1,17 @@ +import React from 'react' +import MkIcon from '@/components/mk-icon' + /** * @description Wrap琛ㄥ崟閰嶇疆淇℃伅 */ export default function (wrap) { let menulist = sessionStorage.getItem('appMenus') + let searchable = true + window.GLOB.customMenu.components.forEach(item => { + if (item.type === 'search') { + searchable = false + } + }) if (menulist) { try { @@ -14,6 +23,21 @@ menulist = [] } + let funs = [] + + if (wrap.back === 'true') { + funs.push('back') + } + if (wrap.logout === 'true') { + funs.push('logout') + } + if (wrap.scan === 'true') { + funs.push('scan') + } + if (wrap.refresh === 'true') { + funs.push('refresh') + } + const topbarWrapForm = [ { type: 'radio', @@ -23,8 +47,8 @@ required: false, options: [ {value: 'navbar', label: '瀵艰埅鏍�'}, - {value: 'search', label: '鎼滅储妗�'}, - {value: 'searchIcon', label: '鎼滅储鏍�'}, + {value: 'search', label: '鎼滅储妗�', disabled: !searchable}, + {value: 'searchIcon', label: '鎼滅储鏍�', disabled: !searchable}, ], }, { @@ -37,76 +61,101 @@ }, { type: 'radio', - field: 'back', - label: '杩斿洖', - initval: wrap.back || 'true', + field: 'menuPosition', + label: '鑿滃崟浣嶇疆', + initval: wrap.menuPosition || 'right', + tooltip: '鑷畾涔夎彍鍗曠殑浣嶇疆銆�', required: false, options: [ - {value: 'true', label: '鏄剧ず'}, - {value: 'false', label: '闅愯棌'}, + {value: 'left', label: '宸︿晶'}, + {value: 'right', label: '鍙充晶'}, ], controlFields: [ - {field: 'reload', values: ['true']}, + {field: 'back', values: ['right']}, ] + }, + { + type: 'radio', + field: 'mode', + label: '寮规鑳屾櫙', + initval: wrap.mode || 'dark', + required: false, + options: [ + {value: 'light', label: '鐧借壊'}, + {value: 'dark', label: '榛戣壊'}, + ] + }, + { + type: 'checkbox', + field: 'funs', + label: '鎵╁睍鍔熻兘', + tooltip: '1銆佽繑鍥炰笂涓�椤碉紱2銆佺粦瀹氬叕浼楀彿鍚庡彲鍒嗕韩褰撳墠椤甸潰锛�3銆佷簩缁寸爜浠モ�渓ogin鈥濆紑澶存椂涓烘壂鐮佺櫥褰曪紝浜岀淮鐮佷互鈥渉ttp鈥濆紑澶翠负椤甸潰璺宠浆锛屼簩缁寸爜浠モ�渕kbid鈥濆紑澶翠负鑿滃崟璺宠浆锛屼笖璁剧疆鏈夊叧鑱旇彍鍗曪紱4銆佸綋鍓嶉〉闈㈠埛鏂帮紱5銆侀��鍑虹郴缁燂紝杩斿洖绗竴涓〉闈€��', + initval: funs, + required: false, + options: [ + {value: 'back', label: '杩斿洖'}, + {value: 'scan', label: '鎵竴鎵�'}, + {value: 'refresh', label: '鍒锋柊'}, + {value: 'logout', label: '閫�鍑�'}, + ], + controlFields: [ + {field: 'reload', values: ['back']}, + {field: 'linkmenu', values: ['scan']}, + ], + span: 24 }, // { // type: 'radio', - // field: 'search', - // label: '鎼滅储', - // initval: wrap.search || 'false', + // field: 'back', + // label: '杩斿洖', + // initval: wrap.back || 'true', + // required: false, + // options: [ + // {value: 'true', label: '鏄剧ず'}, + // {value: 'false', label: '闅愯棌'}, + // ], + // controlFields: [ + // {field: 'reload', values: ['true']}, + // ] + // }, + // { + // type: 'radio', + // field: 'logout', + // label: '閫�鍑�', + // initval: wrap.logout || 'false', + // tooltip: '鐐瑰嚮閫�鍑烘椂锛岃繑鍥炵涓�涓〉闈€��', // required: false, // options: [ // {value: 'true', label: '鏄剧ず'}, // {value: 'false', label: '闅愯棌'}, // ] // }, - { - type: 'radio', - field: 'logout', - label: '閫�鍑�', - initval: wrap.logout || 'false', - tooltip: '鐐瑰嚮閫�鍑烘椂锛岃繑鍥炵涓�涓〉闈€��', - required: false, - options: [ - {value: 'true', label: '鏄剧ず'}, - {value: 'false', label: '闅愯棌'}, - ] - }, - { - type: 'radio', - field: 'scan', - label: '鎵竴鎵�', - initval: wrap.scan || 'false', - tooltip: '绯荤粺鍔熻兘锛�1銆佹壂鐮佺櫥褰曪紝浜岀淮鐮佷互鈥渓ogin鈥濆紑澶达紝2銆侀〉闈㈣烦杞紝浜岀淮鐮佷互鈥渉ttp鈥濆紑澶达紝3銆佽彍鍗曡烦杞紝浜岀淮鐮佷互鈥渕kbid鈥濆紑澶达紝涓旇缃叧鑱旇彍鍗�', - required: false, - options: [ - {value: 'true', label: '鏄剧ず'}, - {value: 'false', label: '闅愯棌'}, - ], - controlFields: [ - {field: 'linkmenu', values: ['true']}, - ] - }, - { - type: 'radio', - field: 'refresh', - label: '鍒锋柊', - initval: wrap.refresh || 'false', - required: false, - options: [ - {value: 'true', label: '鏄剧ず'}, - {value: 'false', label: '闅愯棌'}, - ] - }, - { - type: 'select', - field: 'linkmenu', - label: '鍏宠仈鑿滃崟', - initval: wrap.linkmenu || '', - tooltip: '浣跨敤鎵爜鐧诲綍鍔熻兘鎴栬彍鍗曡烦杞姛鑳芥椂锛岄渶閫夋嫨璺宠浆鐨勮彍鍗曘��', - required: false, - options: menulist - }, + // { + // type: 'radio', + // field: 'scan', + // label: '鎵竴鎵�', + // initval: wrap.scan || 'false', + // tooltip: '绯荤粺鍔熻兘锛�1銆佹壂鐮佺櫥褰曪紝浜岀淮鐮佷互鈥渓ogin鈥濆紑澶达紝2銆侀〉闈㈣烦杞紝浜岀淮鐮佷互鈥渉ttp鈥濆紑澶达紝3銆佽彍鍗曡烦杞紝浜岀淮鐮佷互鈥渕kbid鈥濆紑澶达紝涓旇缃叧鑱旇彍鍗�', + // required: false, + // options: [ + // {value: 'true', label: '鏄剧ず'}, + // {value: 'false', label: '闅愯棌'}, + // ], + // controlFields: [ + // {field: 'linkmenu', values: ['true']}, + // ] + // }, + // { + // type: 'radio', + // field: 'refresh', + // label: '鍒锋柊', + // initval: wrap.refresh || 'false', + // required: false, + // options: [ + // {value: 'true', label: '鏄剧ず'}, + // {value: 'false', label: '闅愯棌'}, + // ] + // }, { type: 'radio', field: 'reload', @@ -122,6 +171,54 @@ label: '鍒锋柊' }] }, + { + type: 'select', + field: 'linkmenu', + label: '鍏宠仈鑿滃崟', + initval: wrap.linkmenu || '', + tooltip: '浣跨敤鎵爜鐧诲綍鍔熻兘鎴栬彍鍗曡烦杞姛鑳芥椂锛岄渶閫夋嫨璺宠浆鐨勮彍鍗曘��', + required: false, + options: menulist + }, + { + type: 'table', + field: 'menus', + label: '鑷畾涔夎彍鍗�', + initval: wrap.menus || [], + required: false, + span: 24, + actions: ['view'], + columns: [ + { + title: '鍥炬爣', + dataIndex: 'icon', + inputType: 'icon', + editable: true, + required: true, + render: (text, record) => <MkIcon type={text}/>, + width: '23%' + }, + { + title: '鑷畾涔夊悕绉�', + dataIndex: 'name', + inputType: 'text', + editable: true, + required: false, + width: '23%' + }, + { + title: '鑿滃崟', + dataIndex: 'menu', + inputType: 'select', + editable: true, + required: true, + extends: [{key: 'label', value: 'label'}], + width: '23%', + render: (text, record) => record.label, + options: menulist + } + ] + } ] return topbarWrapForm diff --git a/src/mob/mobshell/card.jsx b/src/mob/mobshell/card.jsx index b03a40f..7095000 100644 --- a/src/mob/mobshell/card.jsx +++ b/src/mob/mobshell/card.jsx @@ -25,13 +25,14 @@ const NormalNavbar = asyncComponent(() => import('@/mob/components/navbar/normal-navbar')) const NormalTopbar = asyncComponent(() => import('@/mob/components/topbar/normal-navbar')) const NormalMenuBar = asyncComponent(() => import('@/mob/components/menubar/normal-menubar')) +const CommonMenuBar = asyncComponent(() => import('@/mob/components/menubar/common-menubar')) const Balcony = asyncComponent(() => import('@/menu/components/card/balcony')) const Timeline = asyncComponent(() => import('@/menu/components/timeline/normal-timeline')) const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ - item: { type: 'menu', id, originalIndex, floor: card.floor }, + item: { type: 'menu', id, originalIndex }, collect: monitor => ({ isDragging: monitor.isDragging(), }), @@ -40,10 +41,11 @@ accept: 'menu', canDrop: () => true, drop: (item) => { - const { id: draggedId, originalIndex, floor } = item + const { id: draggedId, originalIndex } = item + if (originalIndex === undefined) { item.dropTargetId = id - } else if (draggedId && floor === card.floor) { + } else if (draggedId) { if (draggedId === id) return const { index: originIndex } = findCard(draggedId) @@ -119,8 +121,10 @@ return (<NormalNavbar card={card} updateConfig={updateConfig} deletecomponent={delCard}/>) } else if (card.type === 'topbar') { return (<NormalTopbar card={card} updateConfig={updateConfig} deletecomponent={delCard}/>) - } else if (card.type === 'menubar') { + } else if (card.type === 'menubar' && card.subtype === 'menubar') { return (<NormalMenuBar card={card} updateConfig={updateConfig} deletecomponent={delCard}/>) + } else if (card.type === 'menubar' && card.subtype === 'commonbar') { + return (<CommonMenuBar card={card} updateConfig={updateConfig} deletecomponent={delCard}/>) } else if (card.type === 'balcony') { return (<Balcony card={card} updateConfig={updateConfig} deletecomponent={delCard}/>) } else if (card.type === 'timeline') { diff --git a/src/mob/mobshell/index.jsx b/src/mob/mobshell/index.jsx index f4e149b..36e8761 100644 --- a/src/mob/mobshell/index.jsx +++ b/src/mob/mobshell/index.jsx @@ -79,6 +79,14 @@ let style = null if (item.component === 'search') { // 鎼滅储缁勪欢涓嶅彲閲嶅娣诲姞 + if (cards.filter(card => card.type === 'topbar' && card.wrap.type !== 'navbar').length > 0) { + notification.warning({ + top: 92, + message: '瀵艰埅鏍忎娇鐢ㄤ簡鎼滅储锛屼笉鍙坊鍔犳悳绱㈢粍浠讹紒', + duration: 5 + }) + return + } if (cards.filter(card => card.type === 'search').length > 0) { notification.warning({ top: 92, diff --git a/src/mob/modalconfig/index.jsx b/src/mob/modalconfig/index.jsx index 2aaddfc..6c60904 100644 --- a/src/mob/modalconfig/index.jsx +++ b/src/mob/modalconfig/index.jsx @@ -65,6 +65,7 @@ } componentDidMount () { + MKEmitter.addListener('submitStyle', this.getStyle) MKEmitter.addListener('completeSave', this.completeSave) } @@ -75,11 +76,30 @@ this.setState = () => { return } + MKEmitter.removeListener('submitStyle', this.getStyle) MKEmitter.removeListener('completeSave', this.completeSave) } completeSave = () => { this.setState({saving: false}) + } + + getStyle = (comIds, style) => { + const { config } = this.state + + if (comIds[0] !== 'form') return + + let Index = config.fields.findIndex(n => n.uuid === comIds[1]) + + if (Index === -1) return + + let _config = fromJS(config).toJS() + + _config.fields[Index].style = style + + this.setState({ + config: _config + }) } /** @@ -198,11 +218,6 @@ card.linkSubField = card.linkSubField.filter(item => fields.includes(item)) } - if (!card.span && standardform && standardform.span) { - card.span = standardform.span - card.labelwidth = standardform.labelwidth - } - this.setState({ standardform, visible: true, @@ -228,6 +243,9 @@ } if (item.uuid === res.uuid) { + if (item.style) { + res.style = item.style + } return res } else { return item @@ -470,7 +488,8 @@ <Modal title={this.state.dict['model.edit']} visible={this.state.visible} - width={850} + width={950} + maskClosable={false} onCancel={this.editModalCancel} onOk={this.handleSubmit} confirmLoading={this.state.sqlVerifing} diff --git a/src/mob/modalconfig/source.jsx b/src/mob/modalconfig/source.jsx index 190030d..42363a7 100644 --- a/src/mob/modalconfig/source.jsx +++ b/src/mob/modalconfig/source.jsx @@ -70,12 +70,12 @@ subType: 'datemonth', url: '' }, - { - type: 'form', - label: CommonDict['model.form.datetime'], - subType: 'datetime', - url: '' - }, + // { + // type: 'form', + // label: '鏃ユ湡锛堝垎/绉掞級', + // subType: 'datetime', + // url: '' + // }, { type: 'form', label: CommonDict['model.form.textarea'], @@ -105,6 +105,11 @@ label: '鍒嗗壊绾�', subType: 'split', url: '' + }, + { + type: 'form', + label: '鍏宠仈涓昏〃', + subType: 'linkMain', } ] diff --git a/src/mob/modulesource/option.jsx b/src/mob/modulesource/option.jsx index 0869dff..34798d2 100644 --- a/src/mob/modulesource/option.jsx +++ b/src/mob/modulesource/option.jsx @@ -24,6 +24,7 @@ import NavTop from '@/assets/mobimg/navtop-mob.png' import scatter from '@/assets/mobimg/scatter.png' import MenuBar from '@/assets/mobimg/menubar.png' +import CommonBar from '@/assets/mobimg/commonbar.png' import timeline from '@/assets/mobimg/timeline.png' // 缁勪欢閰嶇疆淇℃伅 @@ -31,6 +32,7 @@ { type: 'menu', url: NavTop, component: 'topbar', subtype: 'topbar', title: '瀵艰埅鏍�' }, { type: 'menu', url: Navbar, component: 'navbar', subtype: 'tabbar', title: '鑿滃崟鏍�' }, { type: 'menu', url: MenuBar, component: 'menubar', subtype: 'menubar', title: '鑿滃崟' }, + { type: 'menu', url: CommonBar, component: 'menubar', subtype: 'commonbar', title: '甯哥敤鑿滃崟' }, { type: 'menu', url: tabs, component: 'tabs', subtype: 'tabs', title: '鏍囩椤�', width: 24 }, { type: 'menu', url: singlesearch, component: 'search', subtype: 'mainsearch', title: '鎼滅储鏉′欢', width: 24 }, { type: 'menu', url: card1, component: 'card', subtype: 'datacard', title: '鏁版嵁鍗�', width: 24 }, diff --git a/src/mob/searchconfig/index.jsx b/src/mob/searchconfig/index.jsx index 127b319..afd204d 100644 --- a/src/mob/searchconfig/index.jsx +++ b/src/mob/searchconfig/index.jsx @@ -486,6 +486,7 @@ render () { const { dict, group, editGroup, saving } = this.state + return ( <div className="mob-search-board"> <DndProvider backend={HTML5Backend}> @@ -516,7 +517,7 @@ <div className="am-navbar-title">{group.setting.title}</div> </div> : <div className="am-navbar"> {/* <LeftOutlined /> */} - <div className="search-bar"><SearchOutlined /></div> + <div className="search-bar"><SearchOutlined style={{marginRight: '10px'}}/>{group.setting.label || ''}</div> <Button >鍙栨秷</Button> </div>} {group.floor === 1 ? <PlusOutlined className="plus-group" onClick={this.plusGroup} /> : null} diff --git a/src/mob/searchconfig/searchdragelement/card.jsx b/src/mob/searchconfig/searchdragelement/card.jsx index df3e2c6..48d90df 100644 --- a/src/mob/searchconfig/searchdragelement/card.jsx +++ b/src/mob/searchconfig/searchdragelement/card.jsx @@ -47,10 +47,18 @@ let formItem = null if (card.type === 'date') { + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } formItem = (<div className="am-list-item"> <div className="am-list-line"> {card.labelShow !== 'false' ? <div className="am-input-label">{card.label}</div> : null} - <div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'days').format('YYYY-MM-DD') : '璇烽�夋嫨'}</div> + <div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'days').format(format) : '璇烽�夋嫨'}</div> <div className="am-list-extra"><RightOutlined /></div> </div> </div>) @@ -129,6 +137,7 @@ className={'ant-form-item' + (card.required === 'true' ? ' required' : '') + (card.splitline === 'false' ? ' no-boder' : '')} > {formItem} + <div></div> {showField ? <div className="field-name">{card.field}{card.hidden === 'true' ? '(闅愯棌)' : ''}</div> : ''} </Form.Item>} </div> diff --git a/src/mob/searchconfig/searchdragelement/index.jsx b/src/mob/searchconfig/searchdragelement/index.jsx index 10a535e..1583c99 100644 --- a/src/mob/searchconfig/searchdragelement/index.jsx +++ b/src/mob/searchconfig/searchdragelement/index.jsx @@ -53,6 +53,13 @@ let val = JSON.parse(JSON.stringify(_card)) val.copyType = 'search' + delete val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + val.$srcId = srcid + } + oInput.value = window.btoa(window.encodeURIComponent(JSON.stringify(val))) document.body.appendChild(oInput) oInput.select() diff --git a/src/mob/searchconfig/settingform/index.jsx b/src/mob/searchconfig/settingform/index.jsx index 5dbc386..96693bb 100644 --- a/src/mob/searchconfig/settingform/index.jsx +++ b/src/mob/searchconfig/settingform/index.jsx @@ -140,6 +140,19 @@ </Form.Item> </Col> : null} {type === 'search' ? <Col span={12}> + <Form.Item label="鎻愮ず鏂囧瓧"> + {getFieldDecorator('label', { + initialValue: config.setting.label, + rules: [ + { + max: formRule.input.max, + message: formRule.input.message + } + ] + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} + </Form.Item> + </Col> : null} + {type === 'search' ? <Col span={12}> <Form.Item label="鍖归厤鏂瑰紡"> {getFieldDecorator('match', { initialValue: config.setting.match || 'like' @@ -200,7 +213,7 @@ )} </Form.Item> </Col> - {type === 'search' ? <Col span={12}> + {type === 'search' && config.floor === 1 ? <Col span={12}> <Form.Item label="鎵爜"> {getFieldDecorator('scan', { initialValue: config.setting.scan || 'false' diff --git a/src/pc/bgcontroller/index.jsx b/src/pc/bgcontroller/index.jsx index 9b149f7..88fdafa 100644 --- a/src/pc/bgcontroller/index.jsx +++ b/src/pc/bgcontroller/index.jsx @@ -158,6 +158,8 @@ <Option value="100%">100%</Option> <Option value="100% 100%">100% 100%</Option> <Option value="auto 100%">auto 100%</Option> + <Option value="100% auto">100% auto</Option> + <Option value="auto">auto</Option> <Option value="contain">contain</Option> <Option value="cover">cover</Option> </Select> diff --git a/src/pc/components/login/normal-login/index.jsx b/src/pc/components/login/normal-login/index.jsx index 48d29f8..5e04721 100644 --- a/src/pc/components/login/normal-login/index.jsx +++ b/src/pc/components/login/normal-login/index.jsx @@ -35,7 +35,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, tabId: card.tabId || '', parentId: card.parentId || '', dataName: card.dataName || '', diff --git a/src/pc/components/navbar/normal-navbar/index.jsx b/src/pc/components/navbar/normal-navbar/index.jsx index 4c560c4..0c8d24e 100644 --- a/src/pc/components/navbar/normal-navbar/index.jsx +++ b/src/pc/components/navbar/normal-navbar/index.jsx @@ -34,7 +34,6 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, dataName: card.dataName || '', name: card.name, subtype: card.subtype, @@ -141,6 +140,7 @@ MKEmitter.emit('changeEditMenu', { MenuID: menu.property === 'linkmenu' ? menu.linkMenuId : menu.MenuID, copyMenuId: menu.property === 'menu' ? menu.copyMenuId : '', + clearMenu: menu.clearMenu || 'true', MenuNo: menu.MenuNo, MenuName: menu.name, }) diff --git a/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx b/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx index 39da53f..b57fb2b 100644 --- a/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx +++ b/src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx @@ -15,6 +15,7 @@ state = { property: this.props.menu.property || 'menu', + copyMenu: this.props.menu.copyMenuId || '', appMenus: [], } @@ -72,7 +73,7 @@ render() { const { menu } = this.props const { getFieldDecorator } = this.props.form - const { property, appMenus } = this.state + const { property, appMenus, copyMenu } = this.state const formItemLayout = { labelCol: { @@ -193,12 +194,29 @@ {getFieldDecorator('copyMenuId', { initialValue: menu.copyMenuId || '' })( - <Select allowClear> + <Select allowClear onChange={(val) => this.setState({copyMenu: val})}> {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))} </Select> )} </Form.Item> </Col> : null} + {property === 'menu' && copyMenu ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="澶嶅埗鑿滃崟鏃讹紝鏄惁娓呯┖鍘熼〉闈腑鐨勫叧鑱旇彍鍗曘��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 娓呯┖鍏宠仈鑿滃崟 + </Tooltip> + }> + {getFieldDecorator('clearMenu', { + initialValue: menu.clearMenu || 'true' + })( + <Radio.Group> + <Radio value="true">鏄�</Radio> + <Radio value="false">鍚�</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> : null} </Row> </Form> ) diff --git a/src/pc/components/navbar/normal-navbar/options.jsx b/src/pc/components/navbar/normal-navbar/options.jsx index 4940158..51b2f10 100644 --- a/src/pc/components/navbar/normal-navbar/options.jsx +++ b/src/pc/components/navbar/normal-navbar/options.jsx @@ -111,7 +111,18 @@ {value: 'false', label: '涓嶅惎鐢�'}, {value: 'true', label: '鍚敤'}, ] - } + }, + { + type: 'radio', + field: 'permission', + label: '鏉冮檺楠岃瘉', + initval: wrap.permission || 'false', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ] + }, ] return wrapForm diff --git a/src/pc/createview/index.jsx b/src/pc/createview/index.jsx index bff41f3..63e233f 100644 --- a/src/pc/createview/index.jsx +++ b/src/pc/createview/index.jsx @@ -29,8 +29,6 @@ verifySubmit = () => { this.verifyRef.handleConfirm().then(res => { - - let parMenuId = sessionStorage.getItem('kei_no') + sessionStorage.getItem('typename') + sessionStorage.getItem('lang') let menuId = Utils.getuuid() @@ -163,7 +161,7 @@ } if (_config.components) { - config.components = MenuUtils.resetConfig(_config.components) + config.components = MenuUtils.resetConfig(_config.components, {}, res.clearMenu === 'true') config.tables = _config.tables || [] config.style = _config.style || {} config.statusBarbgColor = _config.statusBarbgColor || '' @@ -208,7 +206,7 @@ <Modal title="鏂板缓椤甸潰" visible={visible} - width={500} + width={600} maskClosable={false} okText={dict['model.submit']} onOk={this.verifySubmit} diff --git a/src/pc/createview/settingform/index.jsx b/src/pc/createview/settingform/index.jsx index a8e54c8..eb82755 100644 --- a/src/pc/createview/settingform/index.jsx +++ b/src/pc/createview/settingform/index.jsx @@ -1,6 +1,6 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Select, Input, Tooltip } from 'antd' +import { Form, Row, Col, Select, Input, Tooltip, Radio } from 'antd' import { QuestionCircleOutlined } from '@ant-design/icons' import './index.scss' @@ -11,7 +11,8 @@ } state = { - appMenus: [] + appMenus: [], + copymenuId: '' } UNSAFE_componentWillMount () { @@ -19,6 +20,14 @@ if (appMenus) { try { appMenus = JSON.parse(appMenus) + appMenus = appMenus.map(item => { + item.name = item.MenuName + if (item.MenuNo && item.MenuNo !== item.MenuName) { + item.name = item.MenuName + `锛�${item.MenuNo}锛塦 + } + + return item + }) } catch (e) { appMenus = [] } @@ -44,7 +53,7 @@ render() { const { getFieldDecorator } = this.props.form - const { appMenus } = this.state + const { appMenus, copymenuId } = this.state const formItemLayout = { labelCol: { @@ -113,14 +122,36 @@ {getFieldDecorator('copymenuId', { initialValue: '' })( - <Select allowClear showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}> + <Select + allowClear + showSearch + onChange={(val) => this.setState({copymenuId: val})} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + > {appMenus.map(option => - <Select.Option key={option.MenuID} value={option.MenuID}>{option.MenuName}</Select.Option> + <Select.Option key={option.MenuID} value={option.MenuID}>{option.name}</Select.Option> )} </Select> )} </Form.Item> </Col> + {copymenuId ? <Col span={20}> + <Form.Item label={ + <Tooltip placement="topLeft" title="澶嶅埗鑿滃崟鏃讹紝鏄惁娓呯┖鍘熼〉闈腑鐨勫叧鑱旇彍鍗曘��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 娓呯┖鍏宠仈鑿滃崟 + </Tooltip> + }> + {getFieldDecorator('clearMenu', { + initialValue: 'true' + })( + <Radio.Group> + <Radio value={'true'}>鏄�</Radio> + <Radio value={'false'}>鍚�</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> : null} </Row> </Form> ) diff --git a/src/pc/menushell/card.jsx b/src/pc/menushell/card.jsx index f30bf5e..bd25267 100644 --- a/src/pc/menushell/card.jsx +++ b/src/pc/menushell/card.jsx @@ -32,7 +32,7 @@ const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ - item: { type: 'menu', id, originalIndex, floor: card.floor }, + item: { type: 'menu', id, originalIndex }, collect: monitor => ({ isDragging: monitor.isDragging(), }), @@ -41,10 +41,11 @@ accept: 'menu', canDrop: () => true, drop: (item) => { - const { id: draggedId, originalIndex, floor } = item + const { id: draggedId, originalIndex } = item + if (originalIndex === undefined) { item.dropTargetId = id - } else if (draggedId && floor === card.floor) { + } else if (draggedId) { if (draggedId === id) return const { index: originIndex } = findCard(draggedId) diff --git a/src/pc/quotecomponent/settingform/index.jsx b/src/pc/quotecomponent/settingform/index.jsx index 96a871f..6ab0f32 100644 --- a/src/pc/quotecomponent/settingform/index.jsx +++ b/src/pc/quotecomponent/settingform/index.jsx @@ -16,7 +16,7 @@ if (appMenus) { try { appMenus = JSON.parse(appMenus) - appMenus = appMenus.filter(item => item.keys_type !== 'index') + appMenus = appMenus.filter(item => item.keys_type === 'navbar') } catch (e) { appMenus = [] } diff --git a/src/router/index.js b/src/router/index.js index 204b72b..444f1bb 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -37,6 +37,8 @@ {path: '/imdesign/:param', name: 'imdesign', component: ImDesign, auth: true}, {path: '/menudesign/:param', name: 'menudesign', component: MenuDesign, auth: true}, {path: '/billprint/:param', name: 'billprint', component: BillPrint, auth: true}, + {path: '/docprint/:menuId', name: 'docprint', component: BillPrint, auth: false}, + {path: '/docprint/:menuId/:id', name: 'docprint', component: BillPrint, auth: false}, {path: '/paramsmain/:param', name: 'pmain', component: Main, auth: true}, {path: '/role/:param', name: 'role', component: RoleManage, auth: true}, {path: '/interface', name: 'interface', component: Interface, auth: true} diff --git a/src/tabviews/calendar/index.jsx b/src/tabviews/calendar/index.jsx index 783c13e..d78d54d 100644 --- a/src/tabviews/calendar/index.jsx +++ b/src/tabviews/calendar/index.jsx @@ -424,7 +424,7 @@ } // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 - if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { param.custom_script && console.info(`${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${param.custom_script}`) LText && console.info(LText) } diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx index c11195d..3b32650 100644 --- a/src/tabviews/commontable/index.jsx +++ b/src/tabviews/commontable/index.jsx @@ -386,6 +386,8 @@ config.setting.selected = 'false' } else if (config.setting.selected === 'init' && config.setting.onload === 'false') { config.setting.selected = 'false' + } else { + config.setting.orisel = true } let autoMatic = null @@ -485,7 +487,7 @@ } } - loadData = () => { + loadData = (id) => { const { MenuID } = this.props const { setting, search, loadCustomApi, hasReqFields, ContainerId } = this.state @@ -521,10 +523,10 @@ this.loadOutResource() if (setting.execType === 'async') { - this.loadmaindata() + this.loadmaindata(id) } } else { - this.loadmaindata() + this.loadmaindata(id) } } @@ -664,7 +666,7 @@ Sort: index + 1 })) - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { let sql = lines.map(item => (` ${item.insert} ${item.selects.join(` union all @@ -698,7 +700,7 @@ /** * @description 涓昏〃鏁版嵁鍔犺浇 */ - async loadmaindata () { + async loadmaindata (id) { const { setting, arr_field, search, orderBy, BID, pageIndex, pageSize, absFields, autoMatic } = this.state this.setState({ @@ -718,9 +720,9 @@ start = pageSize * (pageIndex - 1) + 1 } - if (setting.selected !== 'false') { + if (setting.selected !== 'false' || (setting.orisel && id)) { setTimeout(() => { - MKEmitter.emit('mkTableCheckTopLine', this.props.MenuID) + MKEmitter.emit('mkTableCheckTopLine', this.props.MenuID, id) }, 200) if (setting.selected === 'init') { this.setState({setting: {...setting, selected: 'false'}}) @@ -952,17 +954,17 @@ /** * @description 琛ㄦ牸鍒锋柊 */ - reloadtable = (btn) => { + reloadtable = (btn, id = '') => { if (!btn || btn.resetPageIndex !== 'false') { MKEmitter.emit('resetTable', this.props.MenuID) // 鍒楄〃閲嶇疆 this.setState({ pageIndex: 1 }, () => { - this.loadData() + this.loadData(id) }) } else { MKEmitter.emit('resetTable', this.props.MenuID, 'false') // 鍒楄〃閲嶇疆 - this.loadData() + this.loadData(id) } } @@ -1023,7 +1025,6 @@ const { MenuID } = this.props if (MenuID !== menuId) return - if (id === 'empty') return if (id === 'formtab') { // 琛ㄥ崟鏍囩椤靛埛鏂� this.reloadtable(btn) @@ -1079,7 +1080,7 @@ if (position === 'line' && lines && lines.length === 1) { this.loadmainLinedata(lines[0].$$uuid) } else { - this.reloadtable(btn) + this.reloadtable(btn, id) } } diff --git a/src/tabviews/custom/components/card/balcony/index.jsx b/src/tabviews/custom/components/card/balcony/index.jsx index 72ad28f..c92528f 100644 --- a/src/tabviews/custom/components/card/balcony/index.jsx +++ b/src/tabviews/custom/components/card/balcony/index.jsx @@ -35,9 +35,8 @@ } UNSAFE_componentWillMount () { - const { data, BID } = this.props + const { data, BID, initdata } = this.props let _config = fromJS(this.props.config).toJS() - let _cols = new Map() let _data = { $$empty: true } let _sync = false @@ -51,6 +50,12 @@ _data = _data[0] || {} } _sync = false + } else if (_sync && initdata) { + _data = initdata + if (Array.isArray(_data)) { + _data = _data[0] || {$$empty: true} + } + _sync = false } } @@ -58,12 +63,8 @@ _data.$$BID = BID || '' } - _config.columns.forEach(item => { - _cols.set(item.field, item) - }) - - if (_config.wrap.position === 'fixed') { - _config.style.position = 'fixed' + if (_config.wrap.position === 'fixed' || _config.wrap.position === 'absolute') { + _config.style.position = _config.wrap.position _config.style.zIndex = 2 _config.style.left = _config.wrap.left || '' _config.style.right = _config.wrap.right || '' @@ -71,6 +72,12 @@ _config.style.bottom = _config.wrap.bottom || '' _config.style.transform = _config.wrap.transform || '' _config.style.width = _config.wrap.realwidth || '' + } else { + _config.style.zIndex = 2 + _config.style.left = _config.wrap.left || '' + _config.style.right = _config.wrap.right || '' + _config.style.top = _config.wrap.top || '' + _config.style.bottom = _config.wrap.bottom || '' } let show = true @@ -101,7 +108,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.wrap.datatype !== 'static' && _config.setting && _config.setting.sync !== 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } }) } @@ -208,30 +217,35 @@ * @param {*} position // 鍒锋柊浣嶇疆 * @param {*} btn // 鎵ц鐨勬寜閽� */ - refreshByButtonResult = (menuId, position, btn) => { + refreshByButtonResult = (menuId, position, btn, id, lines) => { const { config, BID, syncConfig } = this.state if (config.uuid !== menuId) return - this.loadData() // 鏁版嵁鍒锋柊 - - let supModule = config.wrap.supModule - if (syncConfig) { - supModule = syncConfig.setting.supModule + MKEmitter.emit('refreshByButtonResult', syncConfig.uuid, position, btn, id, lines) - MKEmitter.emit('refreshByButtonResult', syncConfig.uuid, position, btn) - } + this.loadData() + } else { + let supModule = config.wrap.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 - } + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) - if (position === 'mainline' && supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - supModule && MKEmitter.emit('reloadData', supModule, (BID || 'empty')) - btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } + } + + if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 + btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) + } } } @@ -316,6 +330,7 @@ _data.$$BID = BID || '' _data.$$BData = BData + _data.$$uuid = _data[config.setting.primaryKey] || '' this.setState({ data: _data, diff --git a/src/tabviews/custom/components/card/cardItem/index.jsx b/src/tabviews/custom/components/card/cardItem/index.jsx index 3e03eee..a5a6694 100644 --- a/src/tabviews/custom/components/card/cardItem/index.jsx +++ b/src/tabviews/custom/components/card/cardItem/index.jsx @@ -44,6 +44,8 @@ openView = () => { const { card, data, cards } = this.props + if (!card.setting.click) return + if (card.setting.click === 'menus' && cards.subtype === 'datacard' && card.$cardType !== 'extendCard') { let menu = null @@ -131,7 +133,23 @@ } window.open(src) - } else if (card.setting.click === 'button' && card.setting.linkbtn) { + } else if (card.setting.click === 'button' && card.setting.clickType !== 'multi' && card.setting.linkbtn) { + if (data.$$type === 'extendCard') { + MKEmitter.emit('triggerBtnId', card.setting.linkbtn, []) + } else if (cards.subtype === 'datacard') { + MKEmitter.emit('triggerBtnId', card.setting.linkbtn, [data], 'linkbtn') + } else { + MKEmitter.emit('triggerBtnId', card.setting.linkbtn, [data]) + } + } + } + + doubleClick = () => { + const { card, data, cards } = this.props + + if (card.setting.click !== 'button' || card.setting.clickType !== 'multi') return + + if (card.setting.linkbtn) { if (data.$$type === 'extendCard') { MKEmitter.emit('triggerBtnId', card.setting.linkbtn, []) } else if (cards.subtype === 'datacard') { @@ -146,7 +164,7 @@ const { card, data, cards } = this.props return ( - <div className={'card-item-box ' + (card.setting.btnControl || '')} style={card.style} onClick={this.openView}> + <div className={'card-item-box ' + (card.setting.btnControl || '')} style={card.style} onClick={this.openView} onDoubleClick={this.doubleClick}> <CardCellComponent data={data} cards={cards} cardCell={card} elements={card.elements}/> {card.setting.type === 'multi' ? <div className={'back-side ' + card.setting.transform} style={card.backStyle}> <CardCellComponent data={data} cards={cards} cardCell={card} elements={card.backElements}/> diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx index 5608b31..de5702b 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.jsx +++ b/src/tabviews/custom/components/card/cardcellList/index.jsx @@ -290,7 +290,12 @@ } if (val !== '') { - val = `${card.prefix || ''}${val}${card.postfix || ''}` + if (card.fixStyle === 'alone') { + let _s = {fontSize: card.fixSize, color: card.fixColor, marginLeft: card.fixLeft, marginRight: card.fixRight} + val = <><span style={_s}>{card.prefix || ''}</span>{val}<span style={_s}>{card.postfix || ''}</span></> + } else { + val = `${card.prefix || ''}${val}${card.postfix || ''}` + } } if (card.marks) { @@ -311,6 +316,10 @@ _style.cursor = 'pointer' } + if (card.bgImage && data[card.bgImage]) { + _style.backgroundImage = `url('${data[card.bgImage]}')` + } + return ( <Col key={card.uuid} span={card.width}> <div style={_style} onClick={(e) => {this.openNewView(e, card)}}> @@ -328,6 +337,10 @@ val = data[card.field] } + if (!val && card.noValue === 'hide') { // 绌哄�奸殣钘� + return null + } + if (typeof(val) === 'number') { if (card.format === 'percent') { val = val * 100 @@ -335,8 +348,8 @@ val = Math.abs(val) } - if (card.col && card.col.type === 'number') { - let decimal = card.col.decimal || 0 + if (typeof(card.decimal) === 'number') { + let decimal = card.decimal if (card.format === 'percent') { decimal = decimal - 2 @@ -358,7 +371,12 @@ } if (val !== '') { - val = `${card.prefix || ''}${val}${card.postfix || ''}` + if (card.fixStyle === 'alone') { + let _s = {fontSize: card.fixSize, color: card.fixColor, marginLeft: card.fixLeft, marginRight: card.fixRight} + val = <><span style={_s}>{card.prefix || ''}</span>{val}<span style={_s}>{card.postfix || ''}</span></> + } else { + val = `${card.prefix || ''}${val}${card.postfix || ''}` + } } if (card.marks) { @@ -567,10 +585,19 @@ </Col> ) } else if (card.eleType === 'currentDate') { + let val = moment().format(card.dateFormat || 'YYYY-MM-DD') + + if (card.fixStyle === 'alone') { + let _s = {fontSize: card.fixSize, color: card.fixColor, marginLeft: card.fixLeft, marginRight: card.fixRight} + val = <><span style={_s}>{card.prefix || ''}</span>{val}<span style={_s}>{card.postfix || ''}</span></> + } else { + val = `${card.prefix || ''}${val}${card.postfix || ''}` + } + return ( <Col key={card.uuid} span={card.width}> <div className="ant-mk-date" style={card.style}> - {card.dateFormat ? `${card.prefix || ''}${moment().format(card.dateFormat)}${card.postfix || ''}` : null} + {val} </div> </Col> ) @@ -597,7 +624,7 @@ } } - if (!val) return + // if (!val) return val += _val }) @@ -620,11 +647,21 @@ val = _val === undefined ? '' : _val } + if (val === '' && card.noValue === 'hide') { // 绌哄�奸殣钘� + return null + } + if (val !== '') { - val = `${card.prefix || ''}${val}${card.postfix || ''}` - if (card.eval === 'false' && /\s/ig.test(val)) { - val = val.replace(/\s/ig, ' ') + if (val && typeof(val) === 'string') { + val = val.replace(/\n/ig, '<br/>').replace(/\s/ig, ' ') val = <span dangerouslySetInnerHTML={{__html: val}}></span> + } + + if (card.fixStyle === 'alone') { + let _s = {fontSize: card.fixSize, color: card.fixColor, marginLeft: card.fixLeft, marginRight: card.fixRight} + val = <><span style={_s}>{card.prefix || ''}</span>{val}<span style={_s}>{card.postfix || ''}</span></> + } else { + val = `${card.prefix || ''}${val}${card.postfix || ''}` } } @@ -650,10 +687,16 @@ </Col> ) } else if (card.eleType === 'button') { + let _disabled = data.$disabled if (card.control === 'hidden') { - let s = data[card.controlField] + let s = data[card.controlField] !== undefined ? data[card.controlField] + '' : '' if (s === card.controlVal || (card.controlVal && card.controlVal.split(',').includes(s))) { return null + } + } else if (card.control === 'disabled') { + let s = data[card.controlField] !== undefined ? data[card.controlField] + '' : '' + if (s === card.controlVal || (card.controlVal && card.controlVal.split(',').includes(s))) { + _disabled = true } } @@ -661,10 +704,10 @@ if (data.$$type === 'extendCard') { _data = data.$$selectedData || [] - } else if (data.$$empty) { - _data = [] } else if (card.$sync) { _data = this.props.syncData + } else if (data.$$empty) { + _data = [] } if (['exec', 'prompt', 'pop', 'form'].includes(card.OpenType)) { @@ -673,7 +716,7 @@ <NormalButton BID={data.$$BID} BData={data.$$BData || ''} - disabled={data.$disabled} + disabled={_disabled} lineId={data.$$key || ''} btn={card} show={card.show} @@ -690,7 +733,7 @@ <ExcelInButton BID={data.$$BID} BData={data.$$BData || ''} - disabled={data.$disabled} + disabled={_disabled} lineId={data.$$key || ''} btn={card} show={card.show} @@ -707,7 +750,7 @@ BID={data.$$BID} BData={data.$$BData || ''} lineId={data.$$key || ''} - disabled={data.$disabled} + disabled={_disabled} btn={card} show={card.show} style={card.style} @@ -721,7 +764,7 @@ <PopupButton BID={data.$$BID} BData={data.$$BData || ''} - disabled={data.$disabled} + disabled={_disabled} lineId={data.$$key || ''} btn={card} show={card.show} @@ -736,7 +779,7 @@ <Col key={card.uuid} className="mk-cell-btn" style={card.wrapStyle} span={card.width}> <TabButton BData={data.$$BData || ''} - disabled={data.$disabled} + disabled={_disabled} lineId={data.$$key || ''} btn={card} show={card.show} @@ -751,7 +794,7 @@ <Col key={card.uuid} className="mk-cell-btn" style={card.wrapStyle} span={card.width}> <NewPageButton BData={data.$$BData || ''} - disabled={data.$disabled} + disabled={_disabled} lineId={data.$$key || ''} btn={card} show={card.show} @@ -768,7 +811,7 @@ <ChangeUserButton BID={data.$$BID} BData={data.$$BData || ''} - disabled={data.$disabled} + disabled={_disabled} lineId={data.$$key || ''} btn={card} show={card.show} @@ -784,7 +827,7 @@ <PrintButton BID={data.$$BID} BData={data.$$BData || ''} - disabled={data.$disabled} + disabled={_disabled} lineId={data.$$key || ''} btn={card} show={card.show} diff --git a/src/tabviews/custom/components/card/cardcellList/index.scss b/src/tabviews/custom/components/card/cardcellList/index.scss index f48154a..ec32d1f 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.scss +++ b/src/tabviews/custom/components/card/cardcellList/index.scss @@ -148,6 +148,27 @@ .ant-mk-picture.scale { cursor: zoom-in; } + .ant-switch-large { + min-width: 60px; + height: 30px; + line-height: 28px; + + .ant-switch-inner { + margin-right: 5px; + margin-left: 30px; + font-size: 16px; + } + } + .ant-switch-large.ant-switch-checked { + .ant-switch-inner { + margin-right: 30px; + margin-left: 5px; + } + } + .ant-switch-large::after { + width: 26px; + height: 26px; + } } .card-cell-list::after { content: ' '; diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx index 704b8bc..3b9a2bc 100644 --- a/src/tabviews/custom/components/card/data-card/index.jsx +++ b/src/tabviews/custom/components/card/data-card/index.jsx @@ -98,23 +98,11 @@ _sync = false } - if (_config.wrap.cardFloat && _config.wrap.cardFloat !== 'left') { - let _width = 0 - precards.forEach(card => { - _width += card.setting.width - }) - nextcards.forEach(card => { - _width += card.setting.width - }) - - _config.$offset = _width - } else { - _config.wrap.cardFloat = null - } - let selected = 'false' if (_config.wrap.selected === 'always' || _config.wrap.selected === 'init') { selected = _config.wrap.selected + } else { + _config.wrap.selected = 'false' } if (_data) { @@ -144,18 +132,19 @@ } _config.columns.forEach(item => { + if (item.type !== 'number') return _cols.set(item.field, item) }) _card.elements = _card.elements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) _card.backElements = _card.backElements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) @@ -167,6 +156,7 @@ _config.wrap.selStyle = _config.wrap.selStyle || 'active' _config.wrap.scale = _config.wrap.scale === 'true' ? 'scale' : '' + _config.wrap.layout = (_config.wrap.layout || 'grid') + '-layout float-' + (_config.wrap.cardFloat || 'left') _config.wrap.wrapClass = `${_config.wrap.selStyle} ${_config.wrap.cardType || ''} ${_config.wrap.scale}` @@ -185,7 +175,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } }) } @@ -260,32 +252,19 @@ * @param {*} position // 鍒锋柊浣嶇疆 * @param {*} btn // 鎵ц鐨勬寜閽� */ - refreshByButtonResult = (menuId, position, btn, id, lines) => { + refreshByButtonResult = (menuId, position, btn, id = '', lines) => { const { config, BID, supComs, supNodes } = this.state if (config.uuid !== menuId) return - if (position === 'line' && lines && lines.length === 1) { - this.loadLinedata(lines[0].$$uuid) - } else if (!btn || btn.resetPageIndex !== 'false') { - this.setState({ - pageIndex: 1 - }, () => { - this.loadData() - }) - } else { - this.loadData() - } - - if (supComs) { - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && !supComs.includes(btn.syncComponentId)) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 - } - - if (position === 'mainline' || position === 'popclose') { // 涓昏〃琛屽埛鏂� + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (position === 'mainline' || position === 'popclose') { // 涓昏〃鍒锋柊锛屽幓闄ゅ悓姝ュ埛鏂扮粍浠� let supNode = supNodes[supNodes.length - 1] supComs.forEach((item, i) => { + if (item === btn.syncComponentId) return + setTimeout(() => { if (supNode && supNode.key === item) { MKEmitter.emit('reloadData', item, supNode.value) @@ -294,25 +273,59 @@ } }, i * 10) }) - if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) + } else if (!btn.syncComponentId || !supComs.includes(btn.syncComponentId)) { + if (position === 'line') { + if (lines && lines.length === 1) { + this.loadLinedata(lines[0].$$uuid) + } else { + this.loadData(id) + } + } else if (!btn || btn.resetPageIndex !== 'false') { + this.setState({ + pageIndex: 1 + }, () => { + this.loadData(id) + }) + } else { + this.loadData(id) } } } else { - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + let supModule = config.setting.supModule + + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'line') { + if (lines && lines.length === 1) { + this.loadLinedata(lines[0].$$uuid) + } else { + this.loadData(id) + } + } else if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData(id) + } + } else if (!btn || btn.resetPageIndex !== 'false') { + this.setState({ + pageIndex: 1 + }, () => { + this.loadData(id) + }) + } else { + this.loadData(id) + } } - - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) - } + } + + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 + btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } - checkTopLine = () => { + checkTopLine = (id) => { const { config, data } = this.state if (!data || data.length === 0 || data[0].$disabled) { @@ -329,15 +342,23 @@ return } + let index = 0 + if (id) { + index = data.findIndex(item => item.$$uuid === id) + if (index === -1) { + index = 0 + } + } + this.setState({ - activeKey: 0, - selectKeys: [0], - selectedData: [data[0]] + activeKey: index, + selectKeys: [index], + selectedData: [data[index]] }) - MKEmitter.emit('resetSelectLine', config.uuid, data[0].$$uuid, data[0]) + MKEmitter.emit('resetSelectLine', config.uuid, data[index].$$uuid, data[index]) if (config.setting.$hasSyncModule) { - MKEmitter.emit('syncBalconyData', config.uuid, [data[0]], data.length === 1) + MKEmitter.emit('syncBalconyData', config.uuid, [data[index]], data.length === 1) } } @@ -374,7 +395,6 @@ const { config } = this.state if (config.uuid !== menuId) return - if (id === 'empty') return if (!id) { this.loadData() @@ -401,9 +421,11 @@ } if (bid !== this.state.BID || bid !== '') { - this.setState({ BID: bid, BData: _data, pageIndex: 1 }, () => { + this.setState({ BID: bid, BData: _data, pageIndex: 1, supNodes }, () => { this.loadData() }) + } else { + this.setState({ supNodes }) } } else { if (!config.setting.supModule || config.setting.supModule !== MenuID) return @@ -442,7 +464,7 @@ }) } - async loadData () { + async loadData (id) { const { mainSearch, menuType } = this.props const { config, arr_field, pageIndex, search, BID, BData, selected } = this.state @@ -457,9 +479,9 @@ loading: false }) - if (selected !== 'false') { + if (selected !== 'false' || (id && config.wrap.selected !== 'false')) { setTimeout(() => { - this.checkTopLine() + this.checkTopLine(id) }, 200) if (selected === 'init') { this.setState({selected: 'false'}) @@ -502,9 +524,9 @@ start = config.setting.pageSize * (pageIndex - 1) + 1 } - if (selected !== 'false') { + if (selected !== 'false' || (id && config.wrap.selected !== 'false')) { setTimeout(() => { - this.checkTopLine() + this.checkTopLine(id) }, 200) if (selected === 'init') { this.setState({selected: 'false'}) @@ -586,7 +608,7 @@ _data.key = item.key _data.$$uuid = _data[config.setting.primaryKey] || '' _data.$$BID = BID || '' - item.$$BData = BData || '' + _data.$$BData = BData || '' _data.$Index = item.$Index return _data } else { @@ -596,6 +618,8 @@ } catch (e) { console.warn('鏁版嵁鏌ヨ閿欒') } + + MKEmitter.emit('resetSelectLine', config.uuid, _data.$$uuid || '', _data) } this.setState({ @@ -712,16 +736,11 @@ _total = config.setting.pageSize * pageIndex switchable = true } - let offset = 0 - if (config.wrap.cardFloat) { - let length = data ? data.length : 0 - if (card.setting.width * length + config.$offset < 24) { - offset = 24 - card.setting.width * length - config.$offset - if (config.wrap.cardFloat === 'center') { - offset = Math.floor(offset / 2) - } - } + let extendData = {$$BID: BID, $$BData: BData, $$selectedData: selectedData, $$type: 'extendCard'} + + if (data && data[0]) { + extendData = {...extendData, ...data[0]} } return ( @@ -745,11 +764,10 @@ } <div className={`data-zoom ${config.wrap.wrapClass}`}> {switchable ? <div className={'prev-page ' + (pageIndex === 1 ? 'disabled' : '')} onClick={this.prevPage}><div><div><img src={preImg} alt=""/></div></div></div> : null} - <Row className="card-row-list"> - {offset ? <Col span={offset} style={{height: '10px'}}> </Col> : null} + <Row className={'card-row-list ' + config.wrap.layout}> {precards.map((item, index) => ( <Col key={'pre' + index} className="extend-card" span={item.setting.width || 6}> - <CardItem card={item} cards={config} data={{$$BID: BID, $$BData: BData, $$selectedData: selectedData, $$type: 'extendCard'}}/> + <CardItem card={item} cards={config} data={extendData}/> </Col> ))} {data && data.map((item, index) => { @@ -770,7 +788,7 @@ })} {nextcards.map((item, index) => ( <Col key={'next' + index} className="extend-card" span={item.setting.width || 6}> - <CardItem card={item} cards={config} data={{$$BID: BID, $$BData: BData, $$selectedData: selectedData, $$type: 'extendCard'}}/> + <CardItem card={item} cards={config} data={extendData}/> </Col> ))} </Row> diff --git a/src/tabviews/custom/components/card/data-card/index.scss b/src/tabviews/custom/components/card/data-card/index.scss index 3cfc493..a9d15b4 100644 --- a/src/tabviews/custom/components/card/data-card/index.scss +++ b/src/tabviews/custom/components/card/data-card/index.scss @@ -26,6 +26,9 @@ color: #bcbcbc; .ant-mk-text, .ant-mk-date, .anticon { color: #bcbcbc!important; + span { + color: #bcbcbc!important; + } } } } @@ -46,6 +49,32 @@ cursor: pointer; } } + .card-row-list.flex-layout { + display: flex; + width: 100%; + >.ant-col { + width: 5%; + flex: 1; + } + } + .card-row-list.float-center { + text-align: center; + >.ant-col { + display: inline-block; + float: none; + text-align: left; + vertical-align: top; + } + } + .card-row-list.float-right { + text-align: right; + >.ant-col { + display: inline-block; + float: none; + text-align: left; + vertical-align: top; + } + } .card-item-box { position: relative; background-color: #ffffff; diff --git a/src/tabviews/custom/components/card/prop-card/index.jsx b/src/tabviews/custom/components/card/prop-card/index.jsx index e4dc898..921b4a9 100644 --- a/src/tabviews/custom/components/card/prop-card/index.jsx +++ b/src/tabviews/custom/components/card/prop-card/index.jsx @@ -47,33 +47,31 @@ _sync = _config.setting.sync === 'true' if (_sync && data) { - _data = data[_config.dataName] || {} - if (_data && Array.isArray(_data)) { - _data = _data[0] || {} + _data = data[_config.dataName] || {$$empty: true} + if (Array.isArray(_data)) { + _data = _data[0] || {$$empty: true} } _sync = false } else if (_sync && initdata) { - _data = initdata || {} - if (_data && Array.isArray(_data)) { - _data = _data[0] || {} + _data = initdata + if (Array.isArray(_data)) { + _data = _data[0] || {$$empty: true} } _sync = false } } - if (_data) { - _data.$$BID = BID || '' - _data.$$BData = BData || '' - if (_config.setting.primaryKey) { - _data.$$uuid = _data[_config.setting.primaryKey] || '' - } + _data.$$BID = BID || '' + _data.$$BData = BData || '' + if (_config.setting.primaryKey) { + _data.$$uuid = _data[_config.setting.primaryKey] || '' } _config.columns.forEach(item => { + if (item.type !== 'number') return _cols.set(item.field, item) }) - let _width = 0 _config.subcards.forEach(card => { if (card.setting.click === 'button' && !card.setting.linkbtn) { card.elements.forEach(ele => { @@ -85,29 +83,19 @@ card.setting.click = '' } } - _width += card.setting.width card.elements = card.elements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) card.backElements = card.backElements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) }) - - let offset = 0 - if (_config.wrap.cardFloat && _config.wrap.cardFloat !== 'left' && _width < 24) { - offset = 24 - _width - if (_config.wrap.cardFloat === 'center') { - offset = Math.floor(offset / 2) - } - _config.subcards[0].offset = offset - } let selected = _config.wrap.selected || 'false' @@ -115,7 +103,7 @@ _config.wrap.priKeyType = _config.wrap.priKeyType || 'static' _config.wrap.scale = _config.wrap.scale === 'true' ? 'scale' : '' - _config.wrap.wrapClass = `${_config.wrap.selStyle} ${_config.wrap.cardType || ''} ${_config.wrap.scale || ''}` + _config.wrap.wrapClass = `${_config.wrap.selStyle} ${_config.wrap.cardType || ''} ${_config.wrap.scale || ''} ${_config.wrap.layout || 'grid'}-layout float-${_config.wrap.cardFloat || 'left'}` this.setState({ selected, @@ -127,7 +115,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.wrap.datatype !== 'static' && _config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } else if ((!_sync || _config.wrap.priKeyType === 'static') && selected !== 'false') { setTimeout(() => { this.checkTopLine() @@ -166,9 +156,9 @@ if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) { let _data = { $$empty: true } if (nextProps.data && nextProps.data[config.dataName]) { - _data = nextProps.data[config.dataName] || {} + _data = nextProps.data[config.dataName] if (Array.isArray(_data)) { - _data = _data[0] || {} + _data = _data[0] || {$$empty: true} } } @@ -269,16 +259,23 @@ if (config.uuid !== menuId) return - this.loadData() // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } @@ -287,6 +284,7 @@ const { config } = this.state if (!config.setting.supModule || config.setting.supModule !== MenuID) return + if (id !== this.state.BID || id !== '') { this.setState({ BID: id, BData: data }, () => { this.loadData() @@ -398,6 +396,8 @@ render() { const { config, loading, data, activeKey } = this.state + if (config.wrap.empty === 'hidden' && (!data || data.$$empty)) return null + return ( <div className="custom-prop-card-box" style={config.style}> {loading ? diff --git a/src/tabviews/custom/components/card/prop-card/index.scss b/src/tabviews/custom/components/card/prop-card/index.scss index 7d7e25b..7b10775 100644 --- a/src/tabviews/custom/components/card/prop-card/index.scss +++ b/src/tabviews/custom/components/card/prop-card/index.scss @@ -17,6 +17,32 @@ cursor: pointer; } } + .card-row-list.flex-layout { + display: flex; + width: 100%; + >.ant-col { + width: 5%; + flex: 1; + } + } + .card-row-list.float-center { + text-align: center; + >.ant-col { + display: inline-block; + float: none; + text-align: left; + vertical-align: top; + } + } + .card-row-list.float-right { + text-align: right; + >.ant-col { + display: inline-block; + float: none; + text-align: left; + vertical-align: top; + } + } .card-row-list.scale { .mk-card:hover { >.card-item-box { diff --git a/src/tabviews/custom/components/card/table-card/index.jsx b/src/tabviews/custom/components/card/table-card/index.jsx index 14107bf..845703f 100644 --- a/src/tabviews/custom/components/card/table-card/index.jsx +++ b/src/tabviews/custom/components/card/table-card/index.jsx @@ -60,6 +60,7 @@ item.key = index item.$$uuid = item[_config.setting.primaryKey] || '' item.$$BID = BID || '' + item.$$BData = BData || '' item.$Index = index + 1 + '' return item }) @@ -77,13 +78,14 @@ } _config.columns.forEach(item => { + if (item.type !== 'number') return _cols.set(item.field, item) }) _config.subcards.forEach(card => { card.elements = card.elements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) @@ -99,7 +101,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } }) } @@ -165,16 +169,23 @@ if (config.uuid !== menuId) return - this.loadData(btn) // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } @@ -408,6 +419,8 @@ render() { const { config, loading, data, BID, pageIndex, total } = this.state + if (config.wrap.empty === 'hidden' && (!data || data.length === 0)) return null + return ( <div className="custom-table-card-box" style={{...config.style}}> {loading ? diff --git a/src/tabviews/custom/components/carousel/data-card/index.jsx b/src/tabviews/custom/components/carousel/data-card/index.jsx index 7de4d1f..9fe7608 100644 --- a/src/tabviews/custom/components/carousel/data-card/index.jsx +++ b/src/tabviews/custom/components/carousel/data-card/index.jsx @@ -52,12 +52,14 @@ item.key = index item.$$uuid = item[_config.setting.primaryKey] || '' item.$$BID = BID || '' + item.$$BData = BData || '' item.$Index = index + 1 return item }) } _config.columns.forEach(item => { + if (item.type !== 'number') return _cols.set(item.field, item) }) @@ -68,8 +70,8 @@ } _card.elements = _card.elements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) @@ -86,7 +88,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } }) } @@ -147,16 +151,23 @@ if (config.uuid !== menuId) return - this.loadData(btn) // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } @@ -244,6 +255,8 @@ render() { const { config, loading, data, card } = this.state + if (config.wrap.empty === 'hidden' && (!data || data.length === 0)) return null + return ( <div className="custom-data-carousel-box" style={config.style}> {loading ? diff --git a/src/tabviews/custom/components/carousel/prop-card/index.jsx b/src/tabviews/custom/components/carousel/prop-card/index.jsx index 4004576..34f0eb3 100644 --- a/src/tabviews/custom/components/carousel/prop-card/index.jsx +++ b/src/tabviews/custom/components/carousel/prop-card/index.jsx @@ -41,26 +41,25 @@ _sync = _config.setting.sync === 'true' if (_sync && data) { - _data = data[_config.dataName] || {} - if (_data && Array.isArray(_data)) { - _data = _data[0] || {} + _data = data[_config.dataName] || {$$empty: true} + if (Array.isArray(_data)) { + _data = _data[0] || {$$empty: true} } _sync = false } else if (_sync && initdata) { - _data = initdata || {} - if (_data && Array.isArray(_data)) { - _data = _data[0] || {} + _data = initdata + if (Array.isArray(_data)) { + _data = _data[0] || {$$empty: true} } _sync = false } } - if (_data) { - _data.$$BID = BID || '' - _data.$$BData = BData || '' - } + _data.$$BID = BID || '' + _data.$$BData = BData || '' _config.columns.forEach(item => { + if (item.type !== 'number') return _cols.set(item.field, item) }) @@ -70,8 +69,8 @@ card.style.cursor = 'pointer' } card.elements = card.elements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) @@ -88,7 +87,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.wrap.datatype !== 'static' && _config.setting && _config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } }) } @@ -122,15 +123,13 @@ let _data = {$$empty: true} if (nextProps.data && nextProps.data[config.dataName]) { _data = nextProps.data[config.dataName] - if (_data && Array.isArray(_data)) { - _data = _data[0] + if (Array.isArray(_data)) { + _data = _data[0] || {$$empty: true} } } - if (_data) { - _data.$$BID = BID || '' - _data.$$BData = BData || '' - } + _data.$$BID = BID || '' + _data.$$BData = BData || '' this.setState({sync: false, data: _data}) } else if (config.setting.syncRefresh && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) { @@ -151,16 +150,23 @@ if (config.uuid !== menuId) return - this.loadData() // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } @@ -246,6 +252,8 @@ render() { const { config, loading, data } = this.state + if (config.wrap.empty === 'hidden' && (!data || data.$$empty)) return null + return ( <div className="custom-prop-carousel-box" style={config.style}> {loading ? diff --git a/src/tabviews/custom/components/chart/antv-bar-line/index.jsx b/src/tabviews/custom/components/chart/antv-bar-line/index.jsx index b83a695..2184ac3 100644 --- a/src/tabviews/custom/components/chart/antv-bar-line/index.jsx +++ b/src/tabviews/custom/components/chart/antv-bar-line/index.jsx @@ -323,7 +323,9 @@ transfield }, () => { if (config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } else if (config.setting.sync === 'true' && _data) { this.handleData() } @@ -439,16 +441,23 @@ if (config.uuid !== menuId) return - this.loadData() // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } @@ -1763,8 +1772,16 @@ render() { const { config, loading, empty, BID } = this.state + let style = {...config.style} + if (empty && config.plot.empty === 'hidden') { + style.opacity = 0 + style.position = 'absolute' + style.zIndex = -1 + style.width = '100%' + } + return ( - <div className="custom-line-chart-plot-box" style={config.style}> + <div className="custom-line-chart-plot-box" style={style}> {loading ? <div className="loading-mask"> <div className="ant-spin-blur"></div> diff --git a/src/tabviews/custom/components/chart/antv-dashboard/index.jsx b/src/tabviews/custom/components/chart/antv-dashboard/index.jsx index 63d21b7..280fa16 100644 --- a/src/tabviews/custom/components/chart/antv-dashboard/index.jsx +++ b/src/tabviews/custom/components/chart/antv-dashboard/index.jsx @@ -108,7 +108,9 @@ title: config.plot.title }, () => { if (config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } else if (config.setting.sync === 'true') { this.handleData() } diff --git a/src/tabviews/custom/components/chart/antv-pie/index.jsx b/src/tabviews/custom/components/chart/antv-pie/index.jsx index e5aa7e7..be6d309 100644 --- a/src/tabviews/custom/components/chart/antv-pie/index.jsx +++ b/src/tabviews/custom/components/chart/antv-pie/index.jsx @@ -76,7 +76,9 @@ search: Utils.initMainSearch(config.search) }, () => { if (config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } else if (config.setting.sync === 'true' && _data) { this.handleData() } @@ -1043,8 +1045,16 @@ render() { const { config, loading, empty, BID } = this.state + let style = {...config.style} + if (empty && config.plot.empty === 'hidden') { + style.opacity = 0 + style.position = 'absolute' + style.zIndex = -1 + style.width = '100%' + } + return ( - <div className="custom-pie-chart-plot-box" style={config.style}> + <div className="custom-pie-chart-plot-box" style={style}> {loading ? <div className="loading-mask"> <div className="ant-spin-blur"></div> diff --git a/src/tabviews/custom/components/chart/antv-scatter/index.jsx b/src/tabviews/custom/components/chart/antv-scatter/index.jsx index 074d4ea..9a9d578 100644 --- a/src/tabviews/custom/components/chart/antv-scatter/index.jsx +++ b/src/tabviews/custom/components/chart/antv-scatter/index.jsx @@ -66,7 +66,9 @@ search: Utils.initMainSearch(config.search), }, () => { if (config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } else if (config.setting.sync === 'true' && _data) { this.handleData() } @@ -182,14 +184,24 @@ if (config.uuid !== menuId) return - this.loadData() // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 + btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } @@ -426,8 +438,16 @@ render() { const { config, loading, empty, BID } = this.state + let style = {...config.style} + if (empty && config.plot.empty === 'hidden') { + style.opacity = 0 + style.position = 'absolute' + style.zIndex = -1 + style.width = '100%' + } + return ( - <div className="custom-scatter-plot-box" style={config.style}> + <div className="custom-scatter-plot-box" style={style}> {loading ? <div className="loading-mask"> <div className="ant-spin-blur"></div> diff --git a/src/tabviews/custom/components/chart/custom-chart/index.jsx b/src/tabviews/custom/components/chart/custom-chart/index.jsx index f7d88bd..41cc2ac 100644 --- a/src/tabviews/custom/components/chart/custom-chart/index.jsx +++ b/src/tabviews/custom/components/chart/custom-chart/index.jsx @@ -61,7 +61,9 @@ search: Utils.initMainSearch(config.search) }, () => { if (config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } else if (config.setting.sync === 'true' && _data) { this.handleData() } @@ -177,16 +179,23 @@ if (config.uuid !== menuId) return - this.loadData() // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } diff --git a/src/tabviews/custom/components/code/sand-box/index.jsx b/src/tabviews/custom/components/code/sand-box/index.jsx index 508932b..e7c6a74 100644 --- a/src/tabviews/custom/components/code/sand-box/index.jsx +++ b/src/tabviews/custom/components/code/sand-box/index.jsx @@ -67,7 +67,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.wrap.datatype !== 'static' && _config.setting && _config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } this.renderView() }) diff --git a/src/tabviews/custom/components/editor/braft-editor/index.jsx b/src/tabviews/custom/components/editor/braft-editor/index.jsx index c2f8d55..54ee6a6 100644 --- a/src/tabviews/custom/components/editor/braft-editor/index.jsx +++ b/src/tabviews/custom/components/editor/braft-editor/index.jsx @@ -68,7 +68,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.wrap.datatype !== 'static' && _config.setting && _config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } }) } diff --git a/src/tabviews/custom/components/form/normal-form/index.jsx b/src/tabviews/custom/components/form/normal-form/index.jsx index 3d7cd2b..1fdc49f 100644 --- a/src/tabviews/custom/components/form/normal-form/index.jsx +++ b/src/tabviews/custom/components/form/normal-form/index.jsx @@ -50,12 +50,12 @@ if (_sync && data && data[config.dataName]) { _data = data[config.dataName] if (Array.isArray(_data)) { - _data = _data[0] || {} + _data = _data[0] || {$$empty: true} } _sync = false } } else { - _data = {} + _data = {$$empty: true} } if (!config.wrap.groupLabel) { @@ -71,10 +71,16 @@ config.subcards = config.subcards.map(group => { group.subButton.uuid = group.uuid group.subButton.$menuId = group.uuid - group.subButton.Ot = 'requiredSgl' + group.subButton.Ot = config.wrap.datatype === 'static' ? 'notRequired' : 'requiredSgl' group.subButton.$forbid = true group.subButton.OpenType = 'formSubmit' group.subButton.execError = 'never' + + group.subButton.syncComponentId = group.subButton.syncComponent ? group.subButton.syncComponent.pop() : '' + + if (group.subButton.syncComponentId === config.uuid) { + group.subButton.syncComponentId = '' + } if (group.subButton.enable === 'false') { group.subButton.style.display = 'none' @@ -125,7 +131,9 @@ arr_field: config.columns.map(col => col.field).join(','), }, () => { if (config.wrap.datatype !== 'static' && config.setting && config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, config.setting.delay || 0) } }) } @@ -158,12 +166,12 @@ const { sync, config, group } = this.state if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) { - let _data = {} + let _data = {$$empty: true} let _group = group if (nextProps.data && nextProps.data[config.dataName]) { _data = nextProps.data[config.dataName] if (Array.isArray(_data)) { - _data = _data[0] || {} + _data = _data[0] || {$$empty: true} } } if (config.wrap.statusControl && _data[config.wrap.statusControl]) { @@ -199,12 +207,12 @@ if (group.uuid !== menuId) return - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 - } + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) - if (config.wrap.datatype !== 'static' && config.setting) { - this.loadData() + if (!btn.syncComponentId || btn.syncComponentId !== config.setting.supModule) { + if (config.wrap.datatype !== 'static' && config.setting) { + this.loadData() + } } if (id) { @@ -216,7 +224,9 @@ resetParentParam = (MenuID, id) => { const { config } = this.state + if (config.wrap.datatype === 'static' || !config.setting.supModule || config.setting.supModule !== MenuID) return + if (id !== this.state.BID || id !== '') { this.setState({ BID: id }, () => { this.loadData() @@ -262,7 +272,7 @@ if (config.wrap.datatype === 'static' || (config.setting.supModule && !BID)) { this.setState({ - data: {} + data: {$$empty: true} }) return } @@ -283,7 +293,7 @@ let result = await Api.genericInterface(param) if (result.status) { - let _data = result.data && result.data[0] ? result.data[0] : {} + let _data = result.data && result.data[0] ? result.data[0] : {$$empty: true} let _group = group if (type === 'refresh') { @@ -298,7 +308,7 @@ this.setState({ group: null, step: _group.sort - 1, - data: _data || {}, + data: _data || {$$empty: true}, loading: false }, () => { this.setState({group: _group}) @@ -382,7 +392,7 @@ btn={group.subButton} setting={config.setting} columns={config.columns} - selectedData={[data]} + selectedData={data.$$empty ? [] : [data]} /> {group.nextButton.enable === 'true' && group.sort !== config.subcards.length ? <Button type="link" className="skip" onClick={this.nextStep} style={group.nextButton.style}>{group.nextButton.label}</Button> : null} </div> : null} diff --git a/src/tabviews/custom/components/form/tab-form/index.jsx b/src/tabviews/custom/components/form/tab-form/index.jsx index 20cfcac..a3f9f60 100644 --- a/src/tabviews/custom/components/form/tab-form/index.jsx +++ b/src/tabviews/custom/components/form/tab-form/index.jsx @@ -49,12 +49,12 @@ if (_sync && data && data[config.dataName]) { _data = data[config.dataName] if (Array.isArray(_data)) { - _data = _data[0] || {} + _data = _data[0] || {$$empty: true} } _sync = false } } else { - _data = {} + _data = {$$empty: true} } if (!config.wrap.groupLabel) { @@ -70,10 +70,16 @@ config.subcards = config.subcards.map(group => { group.subButton.uuid = group.uuid group.subButton.$menuId = group.uuid - group.subButton.Ot = 'requiredSgl' + group.subButton.Ot = config.wrap.datatype === 'static' ? 'notRequired' : 'requiredSgl' group.subButton.$forbid = true group.subButton.OpenType = 'formSubmit' group.subButton.execError = 'never' + + group.subButton.syncComponentId = group.subButton.syncComponent ? group.subButton.syncComponent.pop() : '' + + if (group.subButton.syncComponentId === config.uuid) { + group.subButton.syncComponentId = '' + } if (group.subButton.enable === 'false') { group.subButton.style.display = 'none' @@ -111,7 +117,9 @@ arr_field: config.columns.map(col => col.field).join(','), }, () => { if (config.wrap.datatype !== 'static' && config.setting && config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, config.setting.delay || 0) } }) } @@ -144,12 +152,12 @@ const { sync, config, group } = this.state if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) { - let _data = {} + let _data = {$$empty: true} let _group = group if (nextProps.data && nextProps.data[config.dataName]) { _data = nextProps.data[config.dataName] if (Array.isArray(_data)) { - _data = _data[0] || {} + _data = _data[0] || {$$empty: true} } } @@ -182,16 +190,16 @@ if (group.uuid !== menuId) return - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== config.setting.supModule) { + if (config.wrap.datatype !== 'static' && config.setting) { + this.loadData() + } } if (id) { MKEmitter.emit('resetSelectLine', config.uuid, id, '') - } - - if (config.wrap.datatype !== 'static' && config.setting) { - this.loadData() } this.execSuccess(btn, id) @@ -233,7 +241,7 @@ if (config.wrap.datatype === 'static' || (config.setting.supModule && !BID)) { this.setState({ - data: {} + data: {$$empty: true} }) return } @@ -254,13 +262,13 @@ let result = await Api.genericInterface(param) if (result.status) { - let _data = result.data && result.data[0] ? result.data[0] : {} + let _data = result.data && result.data[0] ? result.data[0] : {$$empty: true} let _group = group this.setState({ group: null, - data: _data || {}, + data: _data || {$$empty: true}, loading: false }, () => { this.setState({group: _group}) @@ -328,7 +336,7 @@ btn={group.subButton} setting={config.setting} columns={config.columns} - selectedData={[data]} + selectedData={data.$$empty ? [] : [data]} /> </div> : null} </div> diff --git a/src/tabviews/custom/components/group/normal-group/index.jsx b/src/tabviews/custom/components/group/normal-group/index.jsx index 99486fe..19c4411 100644 --- a/src/tabviews/custom/components/group/normal-group/index.jsx +++ b/src/tabviews/custom/components/group/normal-group/index.jsx @@ -266,6 +266,7 @@ let pageSize = ['A4', 'A3', 'A5'].includes(config.setting.pageSize) ? config.setting.pageSize : 'A4' let pageLayout = config.setting.pageLayout !== 'horizontal' ? 'vertical' : 'horizontal' + let hides = config.setting.hide || [] let pageParam = { A4: { @@ -301,7 +302,7 @@ doc.write(`<LINK rel="stylesheet" type="text/css" href="${linkList[i].href}">`) } } - doc.write(`<style>body{width: ${width}px!important;}*{border-style: solid;border-width: 0;}.print-button, .top-search{display: none!important;}</style>`) + doc.write(`<style>body{width: ${width}px!important;} *{border-style: solid;border-width: 0;} .print-button{display: none!important;} ${hides.includes('search') ? '.top-search{display: none!important;}' : ''} ${hides.includes('button') ? '.ant-btn{opacity: 0!important;}' : ''}</style>`) for (let i = 0;i < styleList.length;i++) { doc.write('<style>' + styleList[i].innerHTML + '</style>') } @@ -333,9 +334,9 @@ const { printing } = this.state return ( - <div className="normal-group-wrap" id={config.uuid} style={config.style}> + <div className={'normal-group-wrap ' + (config.setting.layout || '')} id={config.uuid} style={config.style}> {config.setting && config.setting.print === 'true' ? <Button className="print-button" icon="printer" loading={printing} onClick={this.print}></Button> : null} - <Row>{this.getComponents()}</Row> + <Row className="component-wrap">{this.getComponents()}</Row> </div> ) } diff --git a/src/tabviews/custom/components/group/normal-group/index.scss b/src/tabviews/custom/components/group/normal-group/index.scss index e502301..419bf1b 100644 --- a/src/tabviews/custom/components/group/normal-group/index.scss +++ b/src/tabviews/custom/components/group/normal-group/index.scss @@ -14,3 +14,14 @@ display: block; clear: both; } + +.normal-group-wrap.flex { + >.ant-row { + display: flex; + >.ant-col { + flex: 1; + max-width: unset; + width: 5%; + } + } +} \ No newline at end of file diff --git a/src/tabviews/custom/components/module/voucher/index.jsx b/src/tabviews/custom/components/module/voucher/index.jsx new file mode 100644 index 0000000..b36187e --- /dev/null +++ b/src/tabviews/custom/components/module/voucher/index.jsx @@ -0,0 +1,130 @@ +import React, {Component} from 'react' +import PropTypes from 'prop-types' +import { is, fromJS } from 'immutable' +import { Button, Select, Input, DatePicker } from 'antd' +// import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons' + +import asyncComponent from '@/utils/asyncComponent' +// import MKEmitter from '@/utils/events.js' +import './index.scss' + +const VoucherTable = asyncComponent(() => import('./voucherTable')) + +class VoucherModule extends Component { + static propTpyes = { + BID: PropTypes.any, // 鐖剁骇Id + config: PropTypes.object, // 缁勪欢閰嶇疆淇℃伅 + } + + state = { + BID: '', + type: '', + config: null, + loading: false, + data: null, + searchkey: null, + disableAdd: true, + disableSave: true, + typeOptions: [] + } + + UNSAFE_componentWillMount () { + const { config, BID } = this.props + + this.setState({ + config: fromJS(config).toJS(), + BID: BID || '', + type: config.wrap.type + }, () => { + this.loadData() + }) + } + + componentDidMount () { + + } + + shouldComponentUpdate (nextProps, nextState) { + return !is(fromJS(this.state), fromJS(nextState)) + } + + /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊锛屾竻闄ゅ揩鎹烽敭璁剧疆 + */ + componentWillUnmount () { + this.setState = () => { + return + } + } + + loadData = () => { + + } + + triggeradd = () => { + + } + + triggersave = () => { + + } + + triggerprint = () => { + + } + + render() { + const { config, disableSave, disableAdd, typeOptions, data, type } = this.state + + return ( + <div className="menu-voucher-wrap" style={config.style}> + <div className="voucher-header"> + <Button className="system-background header-btn" disabled={disableAdd} onClick={this.triggeradd}>鏂板</Button> + <Button className="system-background header-btn" disabled={disableSave} onClick={this.triggersave}>淇濆瓨</Button> + <Button className="system-background header-btn" disabled={disableSave} onClick={this.triggerprint}>鎵撳嵃</Button> + <Button className="system-background header-btn" disabled={disableSave} onClick={this.triggerprint}>瀵煎叆</Button> + <Button className="system-background header-btn" disabled={disableSave} onClick={this.triggerprint}>瀵煎嚭</Button> + </div> + {type === 'edit' ? <div className="voucher-body"> + <div className="pre-wrap"> + <div className="voucher-code"> + <Select> + {typeOptions.map(option => + <Select.Option value={option.value}>{option.label}</Select.Option> + )} + </Select> + <Input autoComplete="off" /> 鍙� + </div> + <div className="voucher-date"> + 鏃ユ湡锛�<DatePicker onChange={this.onChange}/> + </div> + <div className="voucher-affix"> + 闄勫崟鎹� <Input autoComplete="off" /> 寮� + <Button type="link" className="" onClick={this.triggerprint}>闄勪欢</Button> + <Button type="link" className="" onClick={this.triggerprint}>澶囨敞</Button> + </div> + </div> + <VoucherTable config={config} data={data}/> + </div> : null} + {type === 'check' ? <div className="voucher-body"> + <div className="pre-wrap"> + <div className="voucher-code"> + 璁� 1 鍙� + </div> + <div className="voucher-date"> + 鏃ユ湡锛�2022-02-24 + </div> + <div className="voucher-affix"> + 闄勫崟鎹� 2 寮� + <Button type="link" className="" onClick={this.triggerprint}>闄勪欢</Button> + <Button type="link" className="" onClick={this.triggerprint}>澶囨敞</Button> + </div> + </div> + <VoucherTable config={config} data={data}/> + </div> : null} + </div> + ) + } +} + +export default VoucherModule \ No newline at end of file diff --git a/src/tabviews/custom/components/module/voucher/index.scss b/src/tabviews/custom/components/module/voucher/index.scss new file mode 100644 index 0000000..0137321 --- /dev/null +++ b/src/tabviews/custom/components/module/voucher/index.scss @@ -0,0 +1,56 @@ +.menu-voucher-wrap { + position: relative; + box-sizing: border-box; + background: #ffffff; + background-position: center center; + background-repeat: no-repeat; + background-size: cover; + min-height: 150px; + overflow-y: auto; + color: #000000; + + .voucher-header { + padding: 10px; + border-bottom: 1px solid #eeeeee; + + .header-btn { + height: 28px; + min-width: 80px; + margin-right: 10px; + } + } + .voucher-body { + padding: 0 15px; + .voucher-code { + display: inline-block; + width: 160px; + margin-right: 15px; + + .ant-select { + width: 65px; + margin-right: 10px; + } + .ant-input { + width: 60px; + } + } + .pre-wrap { + padding: 10px 0px; + } + .voucher-date { + display: inline-block; + .ant-calendar-picker { + width: 120px; + } + } + .voucher-affix { + float: right; + width: 250px; + .ant-input { + width: 60px; + } + } + } +} + + diff --git a/src/tabviews/custom/components/module/voucher/voucherTable/index.jsx b/src/tabviews/custom/components/module/voucher/voucherTable/index.jsx new file mode 100644 index 0000000..d4bb231 --- /dev/null +++ b/src/tabviews/custom/components/module/voucher/voucherTable/index.jsx @@ -0,0 +1,738 @@ +import React, {Component} from 'react' +import PropTypes from 'prop-types' +import { is, fromJS } from 'immutable' +import { Table, Modal, Input, InputNumber, notification, message } from 'antd' +// import { EditOutlined } from '@ant-design/icons' + +import Api from '@/api' +import Utils from '@/utils/utils.js' +import MKEmitter from '@/utils/events.js' +import zhCN from '@/locales/zh-CN/main.js' +import enUS from '@/locales/en-US/main.js' +import '@/assets/css/table.scss' +import './index.scss' + +class BodyRow extends React.Component { + shouldComponentUpdate (nextProps, nextState) { + return !is(fromJS(this.props.data), fromJS(nextProps.data)) + } + + render() { + let { data, ...resProps } = this.props + let style = {} + let className = '' + + return <tr {...resProps} className={className} style={style}/> + } +} + +class BodyCell extends React.Component { + state = { + editing: false, + } + + shouldComponentUpdate (nextProps, nextState) { + return !is(fromJS(this.props.record), fromJS(nextProps.record)) || + nextState.editing !== this.state.editing + } + + componentDidMount () { + MKEmitter.addListener('tdFocus', this.tdFocus) + } + + /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊锛屾竻闄ゅ揩鎹烽敭璁剧疆 + */ + componentWillUnmount () { + this.setState = () => { + return + } + MKEmitter.removeListener('tdFocus', this.tdFocus) + } + + tdFocus = (id) => { + const { col, record } = this.props + + if (id !== col.uuid + record.uuid) return + + this.focus() + } + + enterPress = () => { + const { col, record } = this.props + const { value } = this.state + + this.setState({editing: false}) + + if (value !== record[col.field]) { + let line = {...record, [col.field]: value} + + if (col.field === 'debtor') { + line.creditor = '' + } else { + line.debtor = '' + } + + MKEmitter.emit('changeRecord', col.tableId, line) + } + + setTimeout(() => { + if (col.field === 'creditor') { + MKEmitter.emit('nextLine', col, record) + } else { + let cl = {remark: 'subject', subject: 'debtor', debtor: 'creditor'} + MKEmitter.emit('tdFocus', cl[col.uuid] + record.uuid) + } + }, 50) + } + + focus = () => { + const { col, record } = this.props + + if (record.type === 'total') return + + this.setState({editing: true, value: record[col.field]}, () => { + let node = document.getElementById(col.uuid + record.uuid) + node && node.select() + }) + } + + onBlur = () => { + const { col, record } = this.props + const { value } = this.state + + this.setState({editing: false}) + + if (value !== record[col.field]) { + let line = {...record, [col.field]: value} + + if (col.field === 'debtor') { + line.creditor = '' + } else { + line.debtor = '' + } + + MKEmitter.emit('changeRecord', col.tableId, line) + } + } + + onChange = (val) => { + this.setState({value: val}) + } + + render() { + let { col, record, className } = this.props + const { editing } = this.state + + let children = null + let colSpan = 1 + + if (col.field === 'remark') { + let val = record.remark || '' + + if (record.type === 'total') { + children = <div className="content-wrap" style={{lineHeight: '60px'}}>鍚堣: {val}</div> + colSpan = 2 + } else { + if (editing) { + children = <Input.TextArea id={col.uuid + record.uuid} autoSize={false} defaultValue={val} onChange={(e) => this.onChange(e.target.value)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> + } else { + children = <div className="content-wrap" onClick={this.focus}>{val}</div> + } + } + } else if (col.field === 'subject') { + if (record.type === 'total') { + colSpan = 0 + } else { + let val = record.subject || '' + + if (editing) { + children = <Input.TextArea id={col.uuid + record.uuid} autoSize={false} defaultValue={val} onChange={(e) => this.onChange(e.target.value)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> + } else { + children = <div className="content-wrap" onClick={this.focus}>{val}</div> + } + } + } else if (col.field === 'debtor') { + let val = record.debtor + let down = false + let vals = [] + if (typeof(val) === 'number') { + if (val < 0) { + down = true + val = Math.abs(val) + } + vals = (val * 100).toFixed(0).split('').reverse() + } + + if (editing) { + children = <InputNumber id={col.uuid + record.uuid} defaultValue={val} onChange={(val) => this.onChange(val)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> + } else { + children = <div className={'money-uint' + (down ? ' down' : '')} onClick={this.focus}> + <span>{vals[10] || ''}</span> <span>{vals[9] || ''}</span> <span>{vals[8] || ''}</span> <span>{vals[7] || ''}</span> <span>{vals[6] || ''}</span> <span>{vals[5] || ''}</span> + <span>{vals[4] || ''}</span> <span>{vals[3] || ''}</span> <span>{vals[2] || ''}</span> <span>{vals[1] || ''}</span> <span className="last">{vals[0] || ''}</span> + </div> + } + } else if (col.field === 'creditor') { + let val = record.creditor + let down = false + let vals = [] + if (typeof(val) === 'number') { + if (val < 0) { + down = true + val = Math.abs(val) + } + vals = (val * 100).toFixed(0).split('').reverse() + } + + if (editing) { + children = <InputNumber id={col.uuid + record.uuid} defaultValue={val} onChange={(val) => this.onChange(val)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> + } else { + children = <div className={'money-uint' + (down ? ' down' : '')} onClick={this.focus}> + <span>{vals[10] || ''}</span> <span>{vals[9] || ''}</span> <span>{vals[8] || ''}</span> <span>{vals[7] || ''}</span> <span>{vals[6] || ''}</span> <span>{vals[5] || ''}</span> + <span>{vals[4] || ''}</span> <span>{vals[3] || ''}</span> <span>{vals[2] || ''}</span> <span>{vals[1] || ''}</span> <span className="last">{vals[0] || ''}</span> + </div> + } + } + + if (!colSpan) return null + + return (<td colSpan={colSpan} className={className}>{children}</td>) + } +} + +class VoucherTable extends Component { + static propTpyes = { + config: PropTypes.object, // 鑿滃崟Id + BID: PropTypes.any, // 涓昏〃ID + data: PropTypes.any, // 琛ㄦ牸鏁版嵁 + total: PropTypes.any, // 鎬绘暟 + loading: PropTypes.bool, // 琛ㄦ牸鍔犺浇涓� + refreshdata: PropTypes.func, // 琛ㄦ牸涓帓搴忓垪銆侀〉鐮佺殑鍙樺寲鏃跺埛鏂� + } + + state = { + dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, + data: [], + edData: [], + edColumns: [], + tableId: '', // 琛ㄦ牸ID + pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 + columns: null, // 鏄剧ず鍒� + loading: false, + } + + UNSAFE_componentWillMount () { + const { config } = this.props + + let data = [ + {remark: '鎻愮幇', subject: '1001 搴撳瓨鐜伴噾', debtor: 124, creditor: ''}, + {remark: '璐叆鍥哄畾璧勪骇', subject: '1001 搴撳瓨鐜伴噾', debtor: '', creditor: 124}, + {remark: '杞粨閿�鍞垚鏈�', subject: '1001 搴撳瓨鐜伴噾', debtor: -524, creditor: ''}, + {remark: '鎻愮幇', subject: '1001 搴撳瓨鐜伴噾', debtor: 34, creditor: ''}, + ] + + data = this.initData(data) + data.push(this.getTotalLine(data)) + + let columns = [ + { + title: '鎽樿', + dataIndex: 'remark', + key: 'remark', + width: '22%', + onCell: record => ({ + record, + col: {uuid: 'remark', field: 'remark', tableId: config.uuid}, + }) + }, + { + title: '浼氳绉戠洰', + dataIndex: 'subject', + key: 'subject', + width: '34%', + onCell: record => ({ + record, + col: {uuid: 'subject', field: 'subject', tableId: config.uuid}, + }) + }, + { + title: () => (<> + <div className="money-title">鍊熸柟閲戦</div> + <div className="money-uint"> + <span>浜�</span> <span>鍗�</span> <span>鐧�</span> <span>鍗�</span> <span>涓�</span> <span>鍗�</span> + <span>鐧�</span> <span>鍗�</span> <span>鍏�</span> <span>瑙�</span> <span className="last">鍒�</span> + </div> + </>), + dataIndex: 'debtor', + key: 'debtor', + width: '22%', + onCell: record => ({ + record, + col: {uuid: 'debtor', field: 'debtor', tableId: config.uuid}, + }) + }, + { + title: () => (<> + <div className="money-title">璐锋柟閲戦</div> + <div className="money-uint"> + <span>浜�</span> <span>鍗�</span> <span>鐧�</span> <span>鍗�</span> <span>涓�</span> <span>鍗�</span> + <span>鐧�</span> <span>鍗�</span> <span>鍏�</span> <span>瑙�</span> <span className="last">鍒�</span> + </div> + </>), + dataIndex: 'creditor', + key: 'creditor', + width: '22%', + onCell: record => ({ + record, + col: {uuid: 'creditor', field: 'creditor', tableId: config.uuid}, + }) + } + ] + + this.setState({ + data: data, + edData: fromJS(data).toJS(), + columns, + tableId: config.uuid + }) + } + + shouldComponentUpdate (nextProps, nextState) { + return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState)) + } + + componentDidMount () { + MKEmitter.addListener('nextLine', this.nextLine) + MKEmitter.addListener('delRecord', this.delRecord) + MKEmitter.addListener('changeRecord', this.changeRecord) + } + + /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊 + */ + componentWillUnmount () { + this.setState = () => { + return + } + MKEmitter.removeListener('nextLine', this.nextLine) + MKEmitter.removeListener('delRecord', this.delRecord) + MKEmitter.removeListener('changeRecord', this.changeRecord) + } + + UNSAFE_componentWillReceiveProps(nextProps) { + if (!is(fromJS(this.props.data), fromJS(nextProps.data))) { + this.setState({data: nextProps.data || []}) + } + } + + initData = (data) => { + let _data = data.map((item, i) => { + item.uuid = Utils.getuuid() + item.index = i + + return item + }) + + if (_data.length < 4) { + for (let i = _data.length - 1; i < 4; i++) { + _data.push({uuid: Utils.getuuid(), index: i + 1, remark: '', subject: '', debtor: '', creditor: ''}) + } + } + return _data + } + + getTotalLine = (data) => { + let totalLine = {uuid: Utils.getuuid(), type: 'total'} + let debtor = '' + let creditor = '' + + data.forEach(item => { + if (typeof(item.debtor) === 'number') { + if (debtor === '') { + debtor = 0 + } + + debtor += item.debtor + } else if (typeof(item.creditor) === 'number') { + if (debtor === '') { + debtor = 0 + } + if (creditor === '') { + creditor = 0 + } + creditor += item.creditor + } + }) + + totalLine.debtor = debtor + totalLine.creditor = creditor + + totalLine.remark = this.changeMoneyToChinese(debtor) + + return totalLine + } + + changeMoneyToChinese = (money) => { + let cnNums = ['闆�', '澹�', '璐�', '鍙�', '鑲�', '浼�', '闄�', '鏌�', '鎹�', '鐜�'] + let cnIntRadice = ['', '鎷�', '浣�', '浠�'] + let cnIntUnits = ['', '涓�', '浜�', '鍏�'] + let cnDecUnits = ['瑙�', '鍒�', '姣�', '鍘�'] + let cnInteger = '鏁�' + let cnIntLast = '鍏�' + let maxNum = 999999999999999.9999 // 鏈�澶у鐞嗙殑鏁板瓧 + let IntegerNum = null + let DecimalNum = null + let ChineseStr = '' + let parts = null // 鍒嗙閲戦鍚庣敤鐨勬暟缁勶紝棰勫畾涔� + let Symbol = '' // 姝h礋鍊兼爣璁� + + if (money === '') return '' + + if (money >= maxNum) return '瓒呭嚭鏈�澶у鐞嗘暟瀛�' + + if (money === 0) { + ChineseStr = cnNums[0] + cnIntLast + cnInteger; + return ChineseStr + } + if(money < 0) { + money = -money + Symbol = '璐�' + } + money = money.toString() // 杞崲涓哄瓧绗︿覆 + if (money.indexOf('.') === -1) { + IntegerNum = money + DecimalNum = '' + } else { + parts = money.split('.') + IntegerNum = parts[0] + DecimalNum = parts[1].substr(0, 4) + } + + if (parseInt(IntegerNum, 10) > 0) { // 鑾峰彇鏁村瀷閮ㄥ垎杞崲 + let zeroCount = 0 + let IntLen = IntegerNum.length + for (let i = 0; i < IntLen; i++) { + let n = IntegerNum.substr(i, 1) + let p = IntLen - i - 1 + let q = p / 4 + let m = p % 4 + + if (n === '0') { + zeroCount++ + } else { + if (zeroCount > 0) { + ChineseStr += cnNums[0] + } + zeroCount = 0 // 褰掗浂 + ChineseStr += cnNums[parseInt(n)] + cnIntRadice[m] + } + + if (m === 0 && zeroCount < 4) { + ChineseStr += cnIntUnits[q] + } + } + ChineseStr += cnIntLast + } + + if (DecimalNum !== '') { // 灏忔暟閮ㄥ垎 + let decLen = DecimalNum.length + + for (let i = 0; i < decLen; i++) { + let n = DecimalNum.substr(i, 1) + if (n !== '0') { + ChineseStr += cnNums[Number(n)] + cnDecUnits[i] + } + } + } + if (ChineseStr === '') { + ChineseStr += cnNums[0] + cnIntLast + cnInteger + } else if (DecimalNum === '') { + ChineseStr += cnInteger + } + + ChineseStr = Symbol + ChineseStr + + return ChineseStr + } + + nextLine = (col, record) => { + const { edData, tableId } = this.state + + if (col.tableId !== tableId) return + + if (record.index < edData.length - 2) { + MKEmitter.emit('tdFocus', 'remark' + edData[record.index + 1].uuid) + } else { + let _data = fromJS(edData).toJS() + let line = {uuid: Utils.getuuid(), index: _data.length - 1, remark: record.remark || '', subject: '', debtor: '', creditor: ''} + + _data.splice(_data.length - 1, 0, line) + + this.setState({edData: _data}, () => { + MKEmitter.emit('tdFocus', 'remark' + line.uuid) + }) + } + } + + plusLine = (initEditLine) => { + const { edData } = this.state + + let item = {...edData[edData.length - 1]} + + item.key = item.key + 1 + item.$$uuid = '$new' + + this.setState({edData: [...edData, item]}, () => { + MKEmitter.emit('tdFocus', initEditLine.uuid + item.uuid) + }) + } + + delRecord = (id, record) => { + const { tableId, edData } = this.state + + if (id !== tableId) return + + let _data = edData.filter(item => item.uuid !== record.uuid) + + _data.pop() + + if (_data.length < 4) { + for (let i = _data.length - 1; i < 4; i++) { + _data.push({uuid: Utils.getuuid(), index: i + 1, remark: '', subject: '', debtor: '', creditor: ''}) + } + } + + _data.push(this.getTotalLine(_data)) + + this.setState({edData: _data}) + } + + changeRecord = (tableId, record) => { + if (tableId !== this.state.tableId) return + + let _data = this.state.edData.map(item => { + if (item.uuid === record.uuid) { + return record + } else { + return item + } + }) + + _data.pop() + + if (record.index === _data.length - 1) { + _data.push({uuid: Utils.getuuid(), index: record.index + 1, remark: '', subject: '', debtor: '', creditor: ''}) + } + + _data.push(this.getTotalLine(_data)) + + this.setState({edData: _data}) + } + + addLine = () => { + const { BID } = this.props + const { edData } = this.state + + let item = {} + if (edData.length > 0) { + item = {...edData[edData.length - 1]} + item.key = item.key + 1 + item.$$uuid = '$new' + } else { + item.key = 0 + item.$$uuid = '$new' + item.$$BID = BID || '' + } + + this.setState({edData: [...edData, item]}) + } + + checkData = () => { + const { edData } = this.state + + if (edData.length === 0) { + notification.warning({ + top: 92, + message: '鎻愪氦鏁版嵁涓嶅彲涓虹┖锛�', + duration: 5 + }) + return + } + let err = '' + let data = fromJS(edData).toJS().map(item => { + // let line = [] + // fields.forEach(col => { + // if (col.editable !== 'true' || item.$deleted) { + // if (col.type === 'number') { + // item[col.field] = +item[col.field] + // if (isNaN(item[col.field])) { + // item[col.field] = 0 + // } + // } else { + // item[col.field] = item[col.field] !== undefined ? (item[col.field] + '') : '' + // } + // return + // } + // if (col.type === 'text') { + // let val = item[col.field] !== undefined ? (item[col.field] + '') : '' + // if (col.required === 'true' && !val) { + // line.push(`${col.label}涓嶅彲涓虹┖`) + // } + // item[col.field] = val + // } else if (col.type === 'number') { + // let val = item[col.field] + // if (!val && val !== 0) { + // line.push(`${col.label}涓嶅彲涓虹┖`) + // return + // } + // val = +val + // if (isNaN(val)) { + // line.push(`${col.label}鏁版嵁鏍煎紡閿欒`) + // return + // } + + // val = +val.toFixed(col.decimal || 0) + + // if (typeof(col.max) === 'number' && val > col.max) { + // line.push(`${col.label}涓嶅彲澶т簬${col.max}`) + // } else if (typeof(col.min) === 'number' && val < col.min) { + // line.push(`${col.label}涓嶅彲灏忎簬${col.min}`) + // } + + // item[col.field] = val + // } + // }) + + return item + }) + + if (err) { + notification.warning({ + top: 92, + message: err, + duration: 5 + }) + } else { + this.submit(data) + } + } + + submit = (data) => { + const { BID } = this.props + + let param = { + // excel_in: result.lines, + BID: BID || '' + } + + this.setState({ + loading: true + }) + + param.func = 'submit.innerFunc' + + Api.genericInterface(param).then((res) => { + if (res.status) { + this.execSuccess(res) + } else { + this.execError(res) + } + }, () => { + this.execError({}) + }) + } + + execSuccess = (res) => { + const { submit } = this.props + + if (res && res.ErrCode === 'S') { // 鎵ц鎴愬姛 + notification.success({ + top: 92, + message: res.ErrMesg || this.state.dict['main.action.confirm.success'], + duration: submit.stime ? submit.stime : 2 + }) + } else if (res && res.ErrCode === 'Y') { // 鎵ц鎴愬姛 + Modal.success({ + title: res.ErrMesg || this.state.dict['main.action.confirm.success'] + }) + } else if (res && res.ErrCode === '-1') { // 瀹屾垚鍚庝笉鎻愮ず + + } + + this.setState({ + loading: false + }) + + if (submit.closetab === 'true') { + MKEmitter.emit('popclose') + } + if (submit.execSuccess !== 'never') { + MKEmitter.emit('refreshByButtonResult', submit.$menuId, submit.execSuccess, submit) + } + } + + execError = (res) => { + const { submit } = this.props + + if (res.ErrCode === 'E') { + Modal.error({ + title: res.message || res.ErrMesg, + }) + } else if (res.ErrCode === 'N') { + notification.error({ + top: 92, + message: res.message || res.ErrMesg, + duration: submit.ntime ? submit.ntime : 10 + }) + } else if (res.ErrCode === 'F') { + notification.error({ + className: 'notification-custom-error', + top: 92, + message: res.message || res.ErrMesg, + duration: submit.ftime ? submit.ftime : 10 + }) + } else if (res.ErrCode === 'NM') { + message.error(res.message || res.ErrMesg) + } + + this.setState({ + loading: false + }) + + if (submit.execError !== 'never') { + MKEmitter.emit('refreshByButtonResult', submit.$menuId, submit.execError, submit) + } + } + + render() { + const { edData, columns} = this.state + + const components = { + body: { + row: BodyRow, + cell: BodyCell + } + } + + return ( + <div className="voucher-table-wrap"> + <Table + rowKey="uuid" + components={components} + columns={columns} + dataSource={edData} + bordered={true} + // loading={this.props.loading} + onRow={(record, index) => { + return { + data: record + } + }} + pagination={false} + /> + </div> + ) + } +} + +export default VoucherTable \ No newline at end of file diff --git a/src/tabviews/custom/components/module/voucher/voucherTable/index.scss b/src/tabviews/custom/components/module/voucher/voucherTable/index.scss new file mode 100644 index 0000000..e8175c8 --- /dev/null +++ b/src/tabviews/custom/components/module/voucher/voucherTable/index.scss @@ -0,0 +1,259 @@ +.voucher-table-wrap { + position: relative; + padding: 0px; + + .normal-table-footer { + padding: 10px 0px; + color: rgba(0, 0, 0, 0.65); + } + .normal-table-footer.pagination { + position: absolute; + bottom: 10px; + } + >.ant-table-wrapper { + position: relative; + z-index: 1; + } + .ant-table { + color: inherit; + font-size: inherit; + } + + .money-uint { + display: flex; + span { + display: inline-block; + flex: 1; + text-align: center; + font-size: 12px; + } + span:not(.last) { + border-right: 1px solid #e9e9e9; + } + span:nth-child(3), span:nth-child(6) { + border-color: #91d5ff; + } + span:nth-child(9) { + border-color: #ffa39e; + } + } + + table { + max-width: 100%; + width: 100%; + .ant-table-thead { + tr { + th { + position: relative; + background-color: transparent; + padding: 0; + height: 60px; + line-height: 60px; + text-align: center; + + .ant-table-header-column { + display: block; + width: 100%; + height: 100%; + + .ant-table-column-title { + display: block; + width: 100%; + height: 100%; + font-weight: bold; + font-size: 13px; + } + } + .money-title { + line-height: 30px; + font-weight: bold; + font-size: 13px; + } + .money-uint { + line-height: 30px; + border-top: 1px solid #dadada; + } + } + } + } + .ant-table-selection-column { + width: 60px; + min-width: 60px; + max-width: 60px; + } + .ant-table-tbody { + tr td { + position: relative; + background-color: transparent; + padding: 0; + height: 60px; + vertical-align: top; + + .content-wrap { + padding: 5px; + height: 100%; + font-size: 13px; + font-weight: bold; + } + .money-uint { + height: 100%; + line-height: 60px; + + span { + font-size: 14px; + font-weight: bold; + } + } + .money-uint.down { + span { + color: #ff4d4f; + } + } + } + } + } + .ant-input { + height: 60px; + border-radius: 0; + resize: none; + } + .ant-input-number { + height: 60px; + border-radius: 0; + + .ant-input-number-handler-wrap { + display: none; + } + .ant-input-number-input { + border-radius: 0; + height: 60px; + } + } + .editing_table_cell { + .ant-input { + padding: 0px; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + border: 1px solid #1890ff; + } + .ant-input-number-input { + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + border: 1px solid #1890ff; + } + .anticon { + color: #ff4d4f; + position: absolute; + right: 3px; + top: calc(50% - 8px); + } + } + td.pointer { + position: relative; + } + td.pointer { + .mk-mask { + display: none; + cursor: pointer; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + } + } +} +.edit-custom-table.editable { + td { + background-color: #ffffff!important; + } + td.pointer .mk-mask { + display: block; + } + .mk-operation { + display: none; + } + .ant-table-placeholder { + display: none; + } +} +.edit-custom-table:not(.fixed-height) { + .ant-table-body::-webkit-scrollbar { + width: 8px; + height: 10px; + } + ::-webkit-scrollbar-thumb { + border-radius: 5px; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13); + background: rgba(0, 0, 0, 0.13); + } + ::-webkit-scrollbar-track {/*婊氬姩鏉¢噷闈㈣建閬�*/ + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05); + border-radius: 3px; + border: 1px solid rgba(0, 0, 0, 0.07); + background: rgba(0, 0, 0, 0); + } +} +.edit-custom-table.fixed-height { + .ant-table-body { + border-bottom: 1px solid rgba(0, 0, 0, .05); + .ant-table-fixed { + border-bottom: 0; + } + } +} +.edit-custom-table.hidden { + thead { + display: none; + } +} +.edit-custom-table.ghost { + .ant-table-thead > tr { + > th { + color: inherit; + background: transparent; + .ant-table-column-sorter .ant-table-column-sorter-inner { + color: inherit; + } + } + > th:hover { + background: transparent; + } + } + .ant-table-body { + overflow-x: auto; + tr { + td { + background: transparent!important; + } + } + tr:hover td { + background: transparent!important; + } + } +} +.image-scale-modal { + width: 70vw; + min-height: 80vh; + top: 10vh; + .ant-modal-body { + min-height: calc(80vh - 110px); + line-height: calc(80vh - 160px); + text-align: center; + } + .ant-modal-footer { + text-align: center; + span { + display: inline-block; + color: #1890ff; + padding: 5px 15px; + cursor: pointer; + } + } +} \ No newline at end of file diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx index 4a50717..0c6f9ad 100644 --- a/src/tabviews/custom/components/share/normalTable/index.jsx +++ b/src/tabviews/custom/components/share/normalTable/index.jsx @@ -382,7 +382,6 @@ lineMarks: PropTypes.array, // 琛屾爣璁� fields: PropTypes.array, // 缁勪欢瀛楁闆� ContainerId: PropTypes.any, // 鏍囩椤靛灞侷d - BData: PropTypes.any, // 涓昏〃鏁版嵁 data: PropTypes.any, // 琛ㄦ牸鏁版嵁 total: PropTypes.any, // 鎬绘暟 loading: PropTypes.bool, // 琛ㄦ牸鍔犺浇涓� @@ -528,18 +527,27 @@ MKEmitter.removeListener('resetTable', this.resetTable) } - mkCheckTopLine = (menuId) => { + mkCheckTopLine = (menuId, id) => { const { MenuID, data, setting } = this.props if (MenuID !== menuId || !data || data.length === 0) return - if (data[0].$disabled) return - this.changedata(0) - this.setState({ selectedRowKeys: [0], activeIndex: 0 }) - this.props.chgSelectData([data[0]]) + let index = 0 + if (id) { + index = data.findIndex(item => item.$$uuid === id) + if (index === -1) { + index = 0 + } + } + + if (data[index].$disabled) return + + this.changedata(index) + this.setState({ selectedRowKeys: [index], activeIndex: index }) + this.props.chgSelectData([data[index]]) if (setting.$hasSyncModule) { - MKEmitter.emit('syncBalconyData', MenuID, [data[0]], data.length === 1) + MKEmitter.emit('syncBalconyData', MenuID, [data[index]], data.length === 1) } } @@ -722,13 +730,13 @@ } changedata = (index) => { - const { MenuID, data, setting } = this.props + const { MenuID, data } = this.props let _id = '' let _data = '' if (data && data.length > 0 && index !== '') { - _id = data[index][setting.primaryKey] || '' + _id = data[index].$$uuid || '' _data = data[index] || '' } diff --git a/src/tabviews/custom/components/share/normalheader/index.jsx b/src/tabviews/custom/components/share/normalheader/index.jsx index 570a190..92848b7 100644 --- a/src/tabviews/custom/components/share/normalheader/index.jsx +++ b/src/tabviews/custom/components/share/normalheader/index.jsx @@ -24,7 +24,7 @@ this.setState({ title: config.plot ? config.plot.title : config.wrap.title, - show: !['normaltable', 'propcard'].includes(config.subtype) && config.search && config.search.length > 0 + show: !['normaltable', 'propcard', 'editable'].includes(config.subtype) && config.search && config.search.length > 0 }) } diff --git a/src/tabviews/custom/components/share/tabtransfer/index.jsx b/src/tabviews/custom/components/share/tabtransfer/index.jsx index ae8f36b..2754f25 100644 --- a/src/tabviews/custom/components/share/tabtransfer/index.jsx +++ b/src/tabviews/custom/components/share/tabtransfer/index.jsx @@ -68,6 +68,7 @@ } let params = [] + let delay = 20 config.components.forEach(item => { if (item.type === 'tabs' || item.type === 'group') return @@ -96,6 +97,8 @@ } } else { item.setting.sync = 'false' + item.setting.delay = delay + delay += 20 } }) @@ -240,7 +243,7 @@ } else if (item.type === 'table' && item.subtype === 'editable') { return ( <Col span={item.width} key={item.uuid}> - <EditTable config={item} data={data} BID={BID} BData={BData} mainSearch={mainSearch} menuType={menuType} /> + <EditTable config={item} BID={BID} BData={BData} mainSearch={mainSearch} menuType={menuType} /> </Col> ) } else if (item.type === 'group' && item.subtype === 'normalgroup') { @@ -299,7 +302,7 @@ render() { return ( - <Row gutter={8}>{this.getComponents()}</Row> + <Row className="component-wrap" gutter={8}>{this.getComponents()}</Row> ) } } diff --git a/src/tabviews/custom/components/table/edit-table/index.jsx b/src/tabviews/custom/components/table/edit-table/index.jsx index 083affa..613acf2 100644 --- a/src/tabviews/custom/components/table/edit-table/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/index.jsx @@ -1,6 +1,6 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import {connect} from 'react-redux' +import { connect } from 'react-redux' import { is, fromJS } from 'immutable' import { notification } from 'antd' @@ -9,18 +9,17 @@ import UtilsDM from '@/utils/utils-datamanage.js' import asyncComponent from '@/utils/asyncComponent' import MKEmitter from '@/utils/events.js' +import MainTable from './normalTable' import './index.scss' // 閫氱敤缁勪欢 const MainSearch = asyncComponent(() => import('@/tabviews/zshare/topSearch')) const MainAction = asyncComponent(() => import('@/tabviews/zshare/actionList')) -const MainTable = asyncComponent(() => import('./normalTable')) const NormalHeader = asyncComponent(() => import('@/tabviews/custom/components/share/normalheader')) class EditableTable extends Component { static propTpyes = { BID: PropTypes.any, // 鐖剁骇Id - data: PropTypes.array, // 缁熶竴鏌ヨ鏁版嵁 config: PropTypes.object, // 缁勪欢閰嶇疆淇℃伅 mainSearch: PropTypes.any, // 澶栧眰鎼滅储鏉′欢 menuType: PropTypes.any, // 鑿滃崟绫诲瀷 @@ -36,13 +35,15 @@ arr_field: '', // 浣跨敤 sPC_Get_TableData 鏃剁殑鏌ヨ瀛楁闆� setting: null, // 椤甸潰鍏ㄥ眬璁剧疆锛氭暟鎹簮銆佹寜閽強鏄剧ず鍒楀浐瀹氥�佷富閿瓑 data: [], // 鍒楄〃鏁版嵁闆� + selectedData: [], // 宸查�夎〃鏍兼暟鎹� total: 0, // 鎬绘暟 loading: false, // 鍒楄〃鏁版嵁鍔犺浇涓� pageIndex: 1, // 椤电爜 pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 orderBy: '', // 鎺掑簭 search: '', // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞� - statFValue: [] // 鍚堣鍊� + statFValue: [], // 鍚堣鍊� + lock: false } /** @@ -50,48 +51,86 @@ * 1銆� initdata 涓烘墦鍗版椂浣跨敤鐨勬暟鎹泦 */ UNSAFE_componentWillMount () { - const { data, initdata, BID, BData } = this.props + const { BID, BData } = this.props let _config = fromJS(this.props.config).toJS() let _cols = new Map() - let _data = null - let _sync = _config.setting.sync === 'true' let setting = {..._config.setting, ..._config.wrap, style: {}} + setting.tableId = Utils.getuuid() - if (_config.setting.sync === 'true' && data) { - _data = data[_config.dataName] || [] - _sync = false - } else if (_config.setting.sync === 'true' && initdata) { - _data = initdata || [] - _sync = false + _config.submit.style = _config.submit.style || {} + _config.submit.wrapStyle = {} + _config.submit.hasAction = _config.action.length > 0 + if (!_config.submit.hasAction) { + if (_config.submit.style.marginTop) { + _config.submit.wrapStyle.paddingTop = _config.submit.style.marginTop + } + if (_config.submit.style.marginBottom) { + _config.submit.wrapStyle.paddingBottom = _config.submit.style.marginBottom + } + } else { + _config.submit.wrapStyle.paddingTop = '15px' } - if (_data) { - _data = _data.map((item, index) => { - item.key = index - item.$$uuid = item[_config.setting.primaryKey] || '' - item.$$BID = BID || '' - item.$$BData = BData || '' - item.$Index = index + 1 + '' - return item - }) + if (setting.height) { + setting.operType = 'btnMode' } _config.columns.forEach(item => { + if (item.type !== 'number') return _cols.set(item.field, item) }) + let _columns = [] + let signAdd = false _config.cols.forEach(column => { + if (column.Hide === 'true') return + if (column.type === 'index') { + column.field = '$Index' + column.type = 'text' + } + + if (setting.addable === 'true' && setting.operType === 'buoyMode' && column.type !== 'action' && !signAdd) { + column.addable = true + signAdd = true + } + + if (column.marks && column.marks.length === 0) { + column.marks = '' + } + + column.tableId = setting.tableId + + if (column.type === 'text' && column.editable === 'true' && column.editType === 'select') { + column.options = column.options || [] + column.options = column.options.filter(cell => { + cell.value = cell.Value + cell.label = cell.Text + + return !cell.Hide + }) + } + if (column.type === 'custom') { column.elements = column.elements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) } else if (column.type === 'action') { column.operations = column.elements } + + _columns.push(column) }) + + if (setting.delable !== 'false' && setting.operType === 'buoyMode') { + if (_columns[_columns.length - 1] && _columns[_columns.length - 1].type !== 'action') { + _columns[_columns.length - 1].delable = true + } else if (_columns[_columns.length - 2] && _columns[_columns.length - 2].type !== 'action') { + _columns[_columns.length - 2].delable = true + } + } if (setting.color) { setting.style.color = setting.color @@ -109,21 +148,19 @@ BID: BID || '', BData: BData || '', title: _config.wrap.title, - sync: _sync, - data: _data, config: _config, setting: setting, searchlist: _config.search, actions: _config.action, - columns: _config.cols, + columns: _columns, arr_field: _config.columns.map(col => col.field).join(','), search: Utils.initMainSearch(_config.search) // 鎼滅储鏉′欢鍒濆鍖栵紙鍚湁鏃堕棿鏍煎紡锛岄渶瑕佽浆鍖栵級 }, () => { - if (_config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadmaindata() - this.getStatFieldsValue() - } else if (_config.setting.onload === 'true') { - this.getStatFieldsValue() + if (_config.setting.onload === 'true') { + setTimeout(() => { + this.loadmaindata() + this.getStatFieldsValue() + }, _config.setting.delay || 0) } }) } @@ -140,6 +177,7 @@ if (setting.supModule && !BID) { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇� this.setState({ data: [], + selectedData: [], total: 0 }) reset && MKEmitter.emit('resetTable', config.uuid, repage) // 鍒楄〃閲嶇疆 @@ -176,17 +214,105 @@ if (setting.laypage) { start = pageSize * (pageIndex - 1) + 1 } + let data = result.data.map((item, index) => { + item.key = index + item.$$uuid = item[setting.primaryKey] || '' + item.$$BID = BID || '' + item.$$BData = BData || '' + item.$Index = start + index + '' + item.$type = 'upt' + item.$origin = true + return item + }) this.setState({ - data: result.data.map((item, index) => { - item.key = index - item.$$uuid = item[setting.primaryKey] || '' - item.$$BID = BID || '' - item.$$BData = BData || '' - item.$Index = start + index + '' - return item - }), + data: data, + selectedData: [], total: result.total, + loading: false + }) + + MKEmitter.emit('transferData', config.uuid, data) + } else { + this.setState({ + loading: false + }) + notification.error({ + top: 92, + message: result.message, + duration: 10 + }) + } + } + + /** + * @description 鑾峰彇鍗曡鏁版嵁 + */ + async loadmainLinedata (id, line) { + const { mainSearch } = this.props + const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize, BData } = this.state + + let searches = fromJS(search).toJS() + if (config.setting.useMSearch && mainSearch && mainSearch.length > 0) { // 涓昏〃鎼滅储鏉′欢 + let keys = searches.map(item => item.key.toLowerCase()) + mainSearch.forEach(item => { + if (!keys.includes(item.key.toLowerCase())) { + searches.push(item) + } + }) + } + + this.setState({ + loading: true + }) + + let _orderBy = orderBy || setting.order + let param = UtilsDM.getQueryDataParams(setting, arr_field, searches, _orderBy, pageIndex, pageSize, BID, this.props.menuType, id) + + let result = await Api.genericInterface(param) + if (result.status) { + let data = fromJS(this.state.data).toJS() + let selectedData = fromJS(this.state.selectedData).toJS() + + let _data = result.data[0] || {} + _data.$$uuid = _data[setting.primaryKey] || '' + _data.$$BID = BID || '' + _data.$$BData = BData || '' + _data.$type = 'upt' + _data.$origin = true + + try { + data = data.map(item => { + if (item.$$uuid === _data.$$uuid) { + _data.key = item.key + _data.$Index = item.$Index + return _data + } else { + return item + } + }) + selectedData = selectedData.map(item => { + if (_data.$$uuid === item.$$uuid) { + return _data + } + return item + }) + } catch (e) { + console.warn('鏁版嵁鏌ヨ閿欒') + } + + if (line) { + if (line.$type === 'del' && !result.data[0]) { + data = data.filter(m => m.$$uuid === line.$$uuid) + } + MKEmitter.emit('transferData', config.uuid, _data, 'line') + } else { + MKEmitter.emit('resetSelectLine', config.uuid, _data.$$uuid || '', _data) + } + + this.setState({ + data, + selectedData, loading: false }) } else { @@ -359,12 +485,16 @@ }) } - reloadData = (menuId, id) => { + reloadData = (menuId, id, item) => { const { config } = this.state if (config.uuid !== menuId) return - this.reloadtable() + if (!id) { + this.reloadtable() + } else { + this.loadmainLinedata(id, item) + } } resetParentParam = (MenuID, id, data) => { @@ -389,44 +519,42 @@ * @param {*} position // 鍒锋柊浣嶇疆 * @param {*} btn // 鎵ц鐨勬寜閽� */ - refreshByButtonResult = (menuId, position, btn) => { + refreshByButtonResult = (menuId, position, btn, id, lines) => { const { config, BID } = this.state if (config.uuid !== menuId) return - this.reloadtable(btn) // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'line') { + if (lines && lines.length === 1) { + this.loadmainLinedata(lines[0].$$uuid) + } else { + this.reloadtable(btn) + } + } else if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.reloadtable(btn) + } + } else { + this.reloadtable(btn) + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } UNSAFE_componentWillReceiveProps(nextProps) { - const { sync, config, BID, BData } = this.state + const { config } = this.state - if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) { - let _data = [] - if (nextProps.data && nextProps.data[config.dataName]) { - _data = nextProps.data[config.dataName] || [] - _data = _data.map((item, index) => { - item.key = index - item.$$uuid = item[config.setting.primaryKey] || '' - item.$$BID = BID || '' - item.$$BData = BData || '' - item.$Index = index + 1 + '' - return item - }) - } - - this.setState({sync: false, data: _data}) - } else if (config.setting.syncRefresh && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) { + if (config.setting.syncRefresh && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) { this.setState({pageIndex: 1}, () => { this.reloadtable() }) @@ -458,7 +586,7 @@ } render() { - const { BID, setting, searchlist, actions, config, columns, BData } = this.state + const { BID, setting, searchlist, actions, config, columns, BData, selectedData, lock } = this.state return ( <div className="custom-edit-table" style={config.style}> @@ -471,25 +599,25 @@ setting={setting} actions={actions} BData={BData} + lock={lock} columns={config.columns} - selectedData={[]} + selectedData={selectedData} /> - <div className={'main-table-box ' + (!actions || actions.length === 0 ? 'no-action' : '')}> - <MainTable - BID={BID} - setting={setting} - columns={columns} - MenuID={config.uuid} - data={this.state.data} - submit={config.submit} - fields={config.columns} - total={this.state.total} - lineMarks={config.lineMarks} - loading={this.state.loading} - refreshdata={this.refreshbytable} - statFValue={this.state.statFValue} - /> - </div> + <MainTable + BID={BID} + setting={setting} + columns={columns} + MenuID={config.uuid} + submit={config.submit} + fields={config.columns} + total={this.state.total} + lineMarks={config.lineMarks} + loading={this.state.loading} + refreshdata={this.refreshbytable} + chgSelectData={(selects) => this.setState({selectedData: selects})} + changeLock={(lock) => this.setState({lock: lock})} + statFValue={this.state.statFValue} + /> </div> ) } diff --git a/src/tabviews/custom/components/table/edit-table/index.scss b/src/tabviews/custom/components/table/edit-table/index.scss index 0519a10..686b44b 100644 --- a/src/tabviews/custom/components/table/edit-table/index.scss +++ b/src/tabviews/custom/components/table/edit-table/index.scss @@ -11,7 +11,9 @@ >.button-list.toolbar-button { padding: 0; line-height: 45px; - padding-right: 60px; + float: left; + position: relative; + z-index: 2; button { margin-right: 0px; margin-bottom: 0px; @@ -30,61 +32,6 @@ max-width: 95%; .ant-modal-body { max-height: calc(100vh - 265px); - } - } - .main-table-box { - position: relative; - min-height: 150px; - .main-pickup { - position: absolute; - right: 5px; - top: -24px; - z-index: 2; - } - .submit-table { - position: absolute; - z-index: 2; - right: 60px; - top: -26px; - height: 24px; - color: #ffffff; - background-color: #1890ff; - border-width: 0; - } - .custom-control { - position: absolute; - z-index: 1; - right: 0px; - top: -23px; - font-size: 18px; - padding: 3px; - cursor: pointer; - } - >.async-spin { - line-height: 150px!important; - } - } - .no-action.main-table-box { - .main-pickup { - position: relative; - right: 0px; - top: 0px; - z-index: 2; - margin-bottom: 4px; - float: right; - } - .submit-table { - float: right; - position: relative; - z-index: 2; - right: 0px; - top: 0px; - height: 24px; - color: #ffffff; - background-color: #1890ff; - margin-right: 15px; - margin-bottom: 2px; - border-width: 0; } } .ant-collapse { diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/cusSwitch/index.jsx b/src/tabviews/custom/components/table/edit-table/normalTable/cusSwitch/index.jsx new file mode 100644 index 0000000..6b16aea --- /dev/null +++ b/src/tabviews/custom/components/table/edit-table/normalTable/cusSwitch/index.jsx @@ -0,0 +1,49 @@ +import React, {Component} from 'react' +import PropTypes from 'prop-types' +// import { is, fromJS } from 'immutable' +import { Switch } from 'antd' + +import './index.scss' + +class ColorSketch extends Component { + static propTpyes = { + defaultValue: PropTypes.any, + autoFocus: PropTypes.any, + config: PropTypes.object, + onChange: PropTypes.func + } + state = { + status: false + } + + UNSAFE_componentWillMount () { + const { defaultValue, config } = this.props + + let status = false + + if (defaultValue === config.openVal) { + status = true + } + + this.setState({status}) + } + + changeStatus = (val) => { + const { config } = this.props + this.setState({ status: val }, () => { + let _val = val ? config.openVal : config.closeVal + let _text = val ? config.openText : config.closeText + this.props.onChange(_val, _text) + }) + } + + render() { + const { config, autoFocus } = this.props + const { status } = this.state + return ( + <Switch checkedChildren={config.openText} autoFocus={autoFocus} onBlur={this.props.onBlur} unCheckedChildren={config.closeText} checked={status} onChange={this.changeStatus} /> + ) + } +} + +export default ColorSketch \ No newline at end of file diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/cusSwitch/index.scss b/src/tabviews/custom/components/table/edit-table/normalTable/cusSwitch/index.scss new file mode 100644 index 0000000..96900ce --- /dev/null +++ b/src/tabviews/custom/components/table/edit-table/normalTable/cusSwitch/index.scss @@ -0,0 +1,40 @@ +.color-sketch-block { + height: 25px; + width: 100%; + + .color-sketch-block-box { + display: inline-block; + width: calc(100% - 160px); + height: 100%; + border-radius: 2px; + background: #ffffff url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==') left center; + } + .color-sketch-block-inner { + display: inline-block; + cursor: pointer; + border-radius: 2px; + box-shadow: 0 0 0 1px rgba(0, 0, 0, .1); + width: 100%; + height: 100%; + } + .color-sketch-value { + display: inline-block; + width: 160px; + padding-left: 10px; + height: 25px; + line-height: 25px; + vertical-align: top; + white-space: nowrap; + overflow: visible; + } +} + +.color-sketch-popover { + z-index: 1090!important; + .ant-popover-inner-content { + padding: 0; + .sketch-picker { + width: 250px!important; + } + } +} \ No newline at end of file diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx index 1464bfa..9d7eaf9 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx @@ -1,17 +1,19 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Table, Typography, Switch, Modal, Input, InputNumber, Tooltip, Button, notification, message } from 'antd' -import { ExclamationCircleOutlined, EditOutlined, PlusOutlined } from '@ant-design/icons' +import { Table, Typography, Switch, Modal, Input, InputNumber, Tooltip, Button, notification, message, Select } from 'antd' +import { ExclamationCircleOutlined, EditOutlined, PlusOutlined, PlusCircleOutlined, DeleteOutlined } from '@ant-design/icons' import moment from 'moment' import Api from '@/api' +import options from '@/store/options.js' import asyncComponent from '@/utils/asyncComponent' import Utils, { getEditTableSql, getMark } from '@/utils/utils.js' import MkIcon from '@/components/mk-icon' import MKEmitter from '@/utils/events.js' import zhCN from '@/locales/zh-CN/main.js' import enUS from '@/locales/en-US/main.js' +import CusSwitch from './cusSwitch' import '@/assets/css/table.scss' import './index.scss' @@ -124,7 +126,7 @@ tdFocus = (id) => { const { col, record } = this.props - if (id !== col.uuid + record.$Index) return + if (id !== col.uuid + record.$$uuid) return this.focus() } @@ -135,9 +137,11 @@ this.setState({editing: false}) setTimeout(() => { if (col.enter === '$next') { - MKEmitter.emit('nextLine', col, record.$Index) - } else { - MKEmitter.emit('tdFocus', col.enter + record.$Index) + MKEmitter.emit('nextLine', col, record.$$uuid) + } else if (col.enter === '$sub') { + MKEmitter.emit('subLine', col, record) + } else if (col.enter !== '$noAct') { + MKEmitter.emit('tdFocus', col.enter + record.$$uuid) } }, 50) @@ -149,27 +153,34 @@ focus = () => { const { col, record } = this.props - let err = null - let val = record[col.field] !== undefined ? record[col.field] : '' - - if (col.type === 'number') { - val = +val - if (isNaN(val)) { - val = 0 + if (col.editType === 'switch' || col.editType === 'select') { + this.setState({editing: true}, () => { + let node = document.getElementById(col.uuid + record.$$uuid) + node && node.click() + }) + } else { + let err = null + let val = record[col.field] !== undefined ? record[col.field] : '' + + if (col.type === 'number') { + val = +val + if (isNaN(val)) { + val = 0 + } + if (typeof(col.max) === 'number' && val > col.max) { + err = col.label + '鏈�澶т负' + col.max + } else if (typeof(col.min) === 'number' && val < col.min) { + err = col.label + '鏈�灏忎负' + col.min + } + } else if (col.required === 'true' && !val) { + err = '璇峰~鍐�' + col.label } - if (typeof(col.max) === 'number' && val > col.max) { - err = col.label + '鏈�澶т负' + col.max - } else if (typeof(col.min) === 'number' && val < col.min) { - err = col.label + '鏈�灏忎负' + col.min - } - } else if (col.required === 'true' && !val) { - err = '璇峰~鍐�' + col.label + + this.setState({editing: true, value: val, err}, () => { + let node = document.getElementById(col.uuid + record.$$uuid) + node && node.select() + }) } - - this.setState({editing: true, value: val, err}, () => { - let node = document.getElementById(col.uuid + record.$Index) - node && node.select() - }) } onBlur = () => { @@ -204,9 +215,79 @@ this.setState({value: val, err}) } + onSwitchChange = (val, label) => { + const { col, record } = this.props + + this.setState({editing: false}) + + setTimeout(() => { + if (col.enter === '$next') { + MKEmitter.emit('nextLine', col, record.$$uuid) + } else if (col.enter === '$sub') { + MKEmitter.emit('subLine', col, record) + } else if (col.enter !== '$noAct') { + MKEmitter.emit('tdFocus', col.enter + record.$$uuid) + } + }, 50) + + let values = {} + if (col.editField) { + values[col.field] = label + values[col.editField] = val + } else { + values[col.field] = val + } + + MKEmitter.emit('changeRecord', col.tableId, {...record, ...values}) + } + + onSelectChange = (val, option) => { + const { col, record } = this.props + + let values = {} + let _option = col.options.filter(m => m.key === option.key)[0] + + if (_option) { + if (col.linkSubField) { + col.linkSubField.forEach(m => { + values[m] = _option[m] !== undefined ? _option[m] : '' + }) + } + + if (col.editField) { + values[col.field] = _option.label + values[col.editField] = val + } else { + values[col.field] = val + } + } + + this.setState({editing: false}) + + setTimeout(() => { + if (col.enter === '$next') { + MKEmitter.emit('nextLine', col, record.$$uuid) + } else if (col.enter === '$sub') { + MKEmitter.emit('subLine', col, record) + } else if (col.enter !== '$noAct') { + MKEmitter.emit('tdFocus', col.enter + record.$$uuid) + } + }, 50) + + MKEmitter.emit('changeRecord', col.tableId, {...record, ...values}) + } + + switchBlur = () => { + setTimeout(() => { + this.setState({editing: false}) + }, 10) + } + render() { - let { col, config, record, style, className } = this.props + let { col, config, record, style, className, ...resProps } = this.props const { editing, value, err } = this.state + + if (!col) return (<td {...resProps} className={className} style={style}/>) let children = null if (col.type === 'text') { @@ -241,12 +322,49 @@ if (col.editable === 'true') { if (editing) { - return (<td className="editing_table_cell"> - <Input id={col.uuid + record.$Index} defaultValue={value} onChange={(e) => this.onChange(e.target.value)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> - {err ? <Tooltip title={err}><ExclamationCircleOutlined /></Tooltip> : null} - </td>) + if (!col.editType || col.editType === 'text') { + return (<td className="editing_table_cell"> + <Input id={col.uuid + record.$$uuid} defaultValue={value} onChange={(e) => this.onChange(e.target.value)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> + {err ? <Tooltip title={err}><ExclamationCircleOutlined /></Tooltip> : null} + </td>) + } else if (col.editType === 'switch') { + let _value = '' + if (col.editField) { + _value = record[col.editField] !== undefined ? record[col.editField] : '' + } else { + _value = record[col.field] !== undefined ? record[col.field] : '' + } + return (<td className="editing_table_cell"> + <CusSwitch config={col} defaultValue={_value} autoFocus={true} onChange={this.onSwitchChange} onBlur={this.switchBlur}/> + </td>) + } else { + let _value = '' + if (col.editField) { + _value = record[col.editField] !== undefined ? record[col.editField] : '' + } else { + _value = record[col.field] !== undefined ? record[col.field] : '' + } + return (<td className="editing_table_cell"> + <Select + showSearch + defaultValue={_value} + dropdownClassName="edit-table-dropdown" + dropdownMatchSelectWidth={col.dropdown === 'fixed'} + id={col.uuid + record.$$uuid} + onBlur={() => this.setState({editing: false})} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onSelect={this.onSelectChange} + > + {col.options.map((item, i) => (<Select.Option key={item.key} disabled={item.$disabled} value={item.value}>{item.label}</Select.Option>))} + </Select> + </td>) + } } else { - return (<td className={className + ' pointer'} style={style}><div className="mk-mask" onClick={this.focus}></div>{content}</td>) + return (<td className={className + ' pointer'} style={style}> + {col.addable ? <PlusCircleOutlined onClick={() => MKEmitter.emit('addRecord', col.tableId, {...record})} className="mk-editable mk-plus"/> : null} + <div className="mk-mask" onClick={this.focus}></div>{content} + {col.delable ? <DeleteOutlined onClick={() => MKEmitter.emit('delRecord', col.tableId, {...record})} className="mk-editable mk-del"/> : null} + </td>) } } else { children = content @@ -297,11 +415,15 @@ if (col.editable === 'true') { if (editing) { return (<td className="editing_table_cell"> - <InputNumber id={col.uuid + record.$Index} defaultValue={value} onChange={(val) => this.onChange(val)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> + <InputNumber id={col.uuid + record.$$uuid} defaultValue={value} onChange={(val) => this.onChange(val)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> {err ? <Tooltip title={err}><ExclamationCircleOutlined /></Tooltip> : null} </td>) } else { - return (<td className={className + ' pointer'} style={style}><div className="mk-mask" onClick={this.focus}></div>{content}</td>) + return (<td className={className + ' pointer'} style={style}> + {col.addable ? <PlusCircleOutlined onClick={() => MKEmitter.emit('addRecord', col.tableId, {...record})} className="mk-editable mk-plus"/> : null} + <div className="mk-mask" onClick={this.focus}></div>{content} + {col.delable ? <DeleteOutlined onClick={() => MKEmitter.emit('delRecord', col.tableId, {...record})} className="mk-editable mk-del"/> : null} + </td>) } } else { children = content @@ -384,7 +506,361 @@ ) } - return (<td className={className} style={style}>{children}</td>) + return (<td className={className} style={style}>{col.addable ? <PlusCircleOutlined onClick={() => MKEmitter.emit('addRecord', col.tableId, {...record})} className="mk-editable mk-plus"/> : null}{children}{col.delable ? <DeleteOutlined onClick={() => MKEmitter.emit('delRecord', col.tableId, {...record})} className="mk-editable mk-del"/> : null}</td>) + // return (<td className={className} style={style}>{children}</td>) + } +} + +class BodyAllCell extends React.Component { + state = { + err: null + } + + shouldComponentUpdate (nextProps, nextState) { + return !is(fromJS(this.props.record), fromJS(nextProps.record)) || + nextState.err !== this.state.err + } + + componentDidMount () { + MKEmitter.addListener('tdFocus', this.tdFocus) + } + + /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊锛屾竻闄ゅ揩鎹烽敭璁剧疆 + */ + componentWillUnmount () { + this.setState = () => { + return + } + MKEmitter.removeListener('tdFocus', this.tdFocus) + } + + tdFocus = (id) => { + const { col, record } = this.props + + if (id !== col.uuid + record.$$uuid) return + this.focus() + } + + enterPress = () => { + const { col, record } = this.props + + setTimeout(() => { + if (col.enter === '$next') { + MKEmitter.emit('nextLine', col, record.$$uuid) + } else if (col.enter === '$sub') { + MKEmitter.emit('subLine', col, record) + } else if (col.enter !== '$noAct') { + MKEmitter.emit('tdFocus', col.enter + record.$$uuid) + } + }, 50) + } + + focus = () => { + const { col, record } = this.props + + if (col.editType === 'switch' || col.editType === 'select') { + let node = document.getElementById(col.uuid + record.$$uuid) + node && node.click() + } else { + let err = null + let val = record[col.field] !== undefined ? record[col.field] : '' + + if (col.type === 'number') { + val = +val + if (isNaN(val)) { + val = 0 + } + if (typeof(col.max) === 'number' && val > col.max) { + err = col.label + '鏈�澶т负' + col.max + } else if (typeof(col.min) === 'number' && val < col.min) { + err = col.label + '鏈�灏忎负' + col.min + } + } else if (col.required === 'true' && !val) { + err = '璇峰~鍐�' + col.label + } + + this.setState({err}, () => { + let node = document.getElementById(col.uuid + record.$$uuid) + node && node.select() + }) + } + } + + onChange = (val) => { + const { col, record } = this.props + + let err = null + + if (col.type === 'number') { + val = +val + if (isNaN(val)) { + val = 0 + } + if (typeof(col.max) === 'number' && val > col.max) { + err = col.label + '鏈�澶т负' + col.max + } else if (typeof(col.min) === 'number' && val < col.min) { + err = col.label + '鏈�灏忎负' + col.min + } + } else if (col.required === 'true' && !val) { + err = '璇峰~鍐�' + col.label + } + this.setState({err}) + MKEmitter.emit('changeRecord', col.tableId, {...record, [col.field]: val}) + } + + onSwitchChange = (val, label) => { + const { col, record } = this.props + + setTimeout(() => { + if (col.enter === '$next') { + MKEmitter.emit('nextLine', col, record.$$uuid) + } else if (col.enter === '$sub') { + MKEmitter.emit('subLine', col, record) + } else if (col.enter !== '$noAct') { + MKEmitter.emit('tdFocus', col.enter + record.$$uuid) + } + }, 50) + + let values = {} + if (col.editField) { + values[col.field] = label + values[col.editField] = val + } else { + values[col.field] = val + } + + MKEmitter.emit('changeRecord', col.tableId, {...record, ...values}) + } + + onSelectChange = (val, option) => { + const { col, record } = this.props + + let values = {} + let _option = col.options.filter(m => m.key === option.key)[0] + + if (_option) { + if (col.linkSubField) { + col.linkSubField.forEach(m => { + values[m] = _option[m] !== undefined ? _option[m] : '' + }) + } + + if (col.editField) { + values[col.field] = _option.label + values[col.editField] = val + } else { + values[col.field] = val + } + } + + setTimeout(() => { + if (col.enter === '$next') { + MKEmitter.emit('nextLine', col, record.$$uuid) + } else if (col.enter === '$sub') { + MKEmitter.emit('subLine', col, record) + } else if (col.enter !== '$noAct') { + MKEmitter.emit('tdFocus', col.enter + record.$$uuid) + } + }, 50) + + MKEmitter.emit('changeRecord', col.tableId, {...record, ...values}) + } + + render() { + let { col, config, record, style, className } = this.props + const { err } = this.state + + let children = null + if (col.type === 'text') { + if (col.editable === 'true') { + let _value = '' + if (col.editField) { + _value = record[col.editField] !== undefined ? record[col.editField] : '' + } else { + _value = record[col.field] !== undefined ? record[col.field] : '' + } + + if (!col.editType || col.editType === 'text') { + children = (<> + <Input id={col.uuid + record.$$uuid} defaultValue={_value} onChange={(e) => this.onChange(e.target.value)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> + {err ? <Tooltip title={err}><ExclamationCircleOutlined /></Tooltip> : null} + </>) + } else if (col.editType === 'switch') { + children = ( + <CusSwitch config={col} autoFocus={false} defaultValue={_value} onChange={this.onSwitchChange} onBlur={() => {}}/> + ) + } else { + children = (<> + <Select + showSearch + dropdownClassName="edit-table-dropdown" + dropdownMatchSelectWidth={col.dropdown === 'fixed'} + defaultValue={_value} + id={col.uuid + record.$$uuid} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onSelect={this.onSelectChange} + > + {col.options.map((item, i) => (<Select.Option key={item.key} disabled={item.$disabled} value={item.value}>{item.label}</Select.Option>))} + </Select> + </>) + } + } else { + let content = '' + if (record[col.field] !== undefined) { + content = `${record[col.field]}` + } + + if (content !== '') { + if (col.textFormat === 'YYYY-MM-DD' && /^[1-9]\d{3}(-|\/)(0[1-9]|1[0-2])(-|\/)(0[1-9]|[1-2][0-9]|3[0-1])/.test(content)) { + content = `${content.substr(0, 4)}-${content.substr(5, 2)}-${content.substr(8, 2)}` + } else if (col.textFormat === 'YYYY-MM-DD HH:mm:ss' && /^[1-9]\d{3}(-|\/)(0[1-9]|1[0-2])(-|\/)(0[1-9]|[1-2][0-9]|3[0-1]).([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/.test(content)) { + content = `${content.substr(0, 4)}-${content.substr(5, 2)}-${content.substr(8, 2)} ${content.substr(11, 2)}:${content.substr(14, 2)}:${content.substr(17, 2)}` + } + + content = (col.prefix || '') + content + (col.postfix || '') + } + + if (col.marks) { + let mark = getMark(col.marks, record, style) + + style = mark.style + + if (mark.icon) { + if (mark.position === 'front') { + content = <span><MkIcon style={{color: mark.color}} type={mark.icon} /> {content}</span> + } else { + content = <span>{content} <MkIcon style={{color: mark.color}} type={mark.icon} /></span> + } + } + } + children = content + } + } else if (col.type === 'number') { + if (col.editable === 'true') { + let _value = record[col.field] !== undefined ? record[col.field] : '' + children = (<> + <InputNumber id={col.uuid + record.$$uuid} defaultValue={_value} onChange={(val) => this.onChange(val)} onPressEnter={this.enterPress}/> + {err ? <Tooltip title={err}><ExclamationCircleOutlined /></Tooltip> : null} + </>) + } else { + let content = '' + try { + content = parseFloat(record[col.field]) + if (isNaN(content)) { + content = '' + } + } catch (e) { + content = '' + } + + if (content !== '') { + let decimal = col.decimal || 0 + if (col.format === 'percent') { + content = content * 100 + decimal = decimal > 2 ? decimal - 2 : 0 + } else if (col.format === 'abs') { + content = Math.abs(content) + } + + content = content.toFixed(decimal) + + if (col.format === 'thdSeparator') { + content = content.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') + } + + content = col.prefix + content + col.postfix + } + + if (col.marks) { + let mark = getMark(col.marks, record, style) + + style = mark.style + + if (mark.icon) { + if (mark.position === 'front') { + content = <span><MkIcon style={{color: mark.color}} type={mark.icon} /> {content}</span> + } else { + content = <span>{content} <MkIcon style={{color: mark.color}} type={mark.icon} /></span> + } + } + } + children = content + } + } else if (col.type === 'textarea') { + let content = '' + if (record[col.field] !== undefined) { + content = `${record[col.field]}` + } + + if (content) { + content = col.prefix + content + col.postfix + } + + children = ( + <div> + {content ? <Paragraph copyable ellipsis={{ rows: 3, expandable: true }}>{content}</Paragraph> : null } + </div> + ) + } else if (col.type === 'formula') { + let content = col.formula + Object.keys(record).forEach(key => { + let reg = new RegExp('@' + key + '@', 'ig') + content = content.replace(reg, record[key]) + }) + + if (col.eval !== 'false') { + try { + // eslint-disable-next-line + content = eval(content) + } catch (e) { + content = '' + } + } + + content = content === undefined ? '' : content + + if (content !== '') { + content = `${col.prefix || ''}${content}${col.postfix || ''}` + + if (col.eval === 'false') { + content = content.replace(/\n/ig, '<br/>').replace(/\s/ig, ' ') + content = <span dangerouslySetInnerHTML={{__html: content}}></span> + } + } + + if (col.marks) { + let mark = getMark(col.marks, record, style) + + style = mark.style + + if (mark.icon) { + if (mark.position === 'front') { + content = <span><MkIcon style={{color: mark.color}} type={mark.icon} /> {content}</span> + } else { + content = <span>{content} <MkIcon style={{color: mark.color}} type={mark.icon} /></span> + } + } + } + + children = content + } else if (col.type === 'custom') { + style.padding = '0px' + if (col.style) { + style = {...style, ...col.style} + } + + children = ( + <CardCellComponent data={record} cards={config} elements={col.elements}/> + ) + } else if (col.type === 'operation') { + style.padding = '0px 5px' + children = ( + <Button type="link" style={{color: 'rgb(255, 77, 79)', backgroundColor: 'transparent'}} onClick={() => MKEmitter.emit('delRecord', col.tableId, {...record})}>鍒犻櫎</Button> + ) + } + + return (<td className={'editing_all_table_cell ' + className} style={style}>{col.addable ? <PlusCircleOutlined onClick={() => MKEmitter.emit('addRecord', col.tableId, {...record})} className="mk-editable mk-plus"/> : null}{children}{col.delable ? <DeleteOutlined onClick={() => MKEmitter.emit('delRecord', col.tableId, {...record})} className="mk-editable mk-del"/> : null}</td>) } } @@ -397,10 +873,11 @@ lineMarks: PropTypes.any, // 琛屾爣璁� fields: PropTypes.array, // 缁勪欢瀛楁闆� BID: PropTypes.any, // 涓昏〃ID - data: PropTypes.any, // 琛ㄦ牸鏁版嵁 total: PropTypes.any, // 鎬绘暟 loading: PropTypes.bool, // 琛ㄦ牸鍔犺浇涓� refreshdata: PropTypes.func, // 琛ㄦ牸涓帓搴忓垪銆侀〉鐮佺殑鍙樺寲鏃跺埛鏂� + changeLock: PropTypes.func, + chgSelectData: PropTypes.func, } state = { @@ -408,6 +885,7 @@ data: [], edData: [], edColumns: [], + selectedRowKeys: [], // 琛ㄦ牸涓�変腑琛� tableId: '', // 琛ㄦ牸ID pageIndex: 1, // 鍒濆椤甸潰绱㈠紩 pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 @@ -416,40 +894,30 @@ pickup: false, // 鏀惰捣鏈�夋嫨椤� orderfields: {}, // 鎺掑簭id涓巉ield杞崲 loading: false, - editable: 'false', + editable: false, pageOptions: [] } UNSAFE_componentWillMount () { - const { setting, fields, columns, data } = this.props + const { setting, fields, columns } = this.props let orderfields = {} let initEditLine = null let edColumns = [] - let tableId = (() => { - let uuid = [] - let _options = 'abcdefghigklmnopqrstuv' - for (let i = 0; i < 19; i++) { - uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1)) - } - return uuid.join('') - }) () let _columns = [] + let deForms = [] columns.forEach(item => { - if (item.Hide === 'true') return - if (item.type === 'index') { - item.field = '$Index' - item.type = 'text' - } - - item.tableId = tableId - if (!initEditLine && item.editable === 'true') { initEditLine = item } - if (item.marks && item.marks.length === 0) { - item.marks = '' + if (item.type === 'text' && item.editable === 'true' && item.editType === 'select' && item.resourceType === '1') { + let _option = Utils.getSelectQueryOptions(item) + + item.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) + item.arr_field = _option.field + + deForms.push(item) } if (item.field) { @@ -474,14 +942,14 @@ _copy.sorter = false if (item.editable === 'true') { - _copy.title = <span>{item.label}<EditOutlined className="system-color" style={{position: 'absolute', bottom: '2px', right: '5px'}}/></span> + _copy.title = <span>{item.label}<EditOutlined className="system-color mk-edit-sign"/></span> } edColumns.push(_copy) } _columns.push(_item) }) - if (setting.delable !== 'false') { + if (setting.delable !== 'false' && setting.operType !== 'buoyMode') { edColumns.push({ align: 'center', dataIndex: 'mkoperation', @@ -490,13 +958,13 @@ width: 100, onCell: record => ({ record, - col: {type: 'operation', tableId: tableId}, + col: {type: 'operation', tableId: setting.tableId}, }) }) } if (setting.borderColor) { // 杈规棰滆壊 - let style = `#${tableId} table, #${tableId} tr, #${tableId} th, #${tableId} td {border-color: ${setting.borderColor}}` + let style = `#${setting.tableId} table, #${setting.tableId} tr, #${setting.tableId} th, #${setting.tableId} td {border-color: ${setting.borderColor}}` let ele = document.createElement('style') ele.innerHTML = style document.getElementsByTagName('head')[0].appendChild(ele) @@ -513,13 +981,16 @@ this.setState({ pageSize: setting.pageSize || 10, pageOptions, - data, columns: _columns, edColumns, - tableId, + tableId: setting.tableId, orderfields, initEditLine, - editable: setting.editable + editable: setting.editable === 'true' + }, () => { + if (deForms.length > 0) { + this.improveActionForm(deForms) + } }) } @@ -529,34 +1000,17 @@ componentDidMount () { const { fields, setting } = this.props - const { data, editable } = this.state - - // let _fields = [] // 瀹氫箟鍏ㄩ儴瀛楁锛屼笉鍦ㄤ粠鍙紪杈戝垪涓�夊彇 - - // let fieldType = {} - // fields.forEach(item => { - // fieldType[item.field] = item.datatype - // }) - - // columns.forEach(col => { - // if (!col.field || col.type === 'index') return - - // _fields.push({...col, datatype: fieldType[col.field] || 'Nvarchar(50)'}) - // }) this.setState({ fields: fields.filter(item => item.field !== setting.primaryKey), }) - if (editable === 'true' && data && data.length > 0) { - setTimeout(() => { - this.pickupChange() - }, 200) - } - + MKEmitter.addListener('subLine', this.subLine) MKEmitter.addListener('nextLine', this.nextLine) + MKEmitter.addListener('addRecord', this.addLine) MKEmitter.addListener('delRecord', this.delRecord) MKEmitter.addListener('resetTable', this.resetTable) + MKEmitter.addListener('transferData', this.transferData) MKEmitter.addListener('changeRecord', this.changeRecord) } @@ -567,52 +1021,310 @@ this.setState = () => { return } + MKEmitter.removeListener('subLine', this.subLine) MKEmitter.removeListener('nextLine', this.nextLine) + MKEmitter.removeListener('addRecord', this.addLine) MKEmitter.removeListener('delRecord', this.delRecord) MKEmitter.removeListener('resetTable', this.resetTable) + MKEmitter.removeListener('transferData', this.transferData) MKEmitter.removeListener('changeRecord', this.changeRecord) } - UNSAFE_componentWillReceiveProps(nextProps) { - if (!is(fromJS(this.props.data), fromJS(nextProps.data))) { - this.setState({data: nextProps.data || []}) - if (this.state.editable === 'true') { + transferData = (menuid, data, type) => { + if (menuid !== this.props.MenuID) return + + if (type !== 'line') { + this.setState({data: data || []}) + + if (this.state.editable && !this.state.pickup) { setTimeout(() => { this.pickupChange() }, 200) } + } else if (type === 'line' && data.$$uuid) { + let _data = this.state.data.map(item => { + if (item.$$uuid === data.$$uuid) { + return data + } else { + return item + } + }) + let _edData = this.state.edData.map(item => { + if (item.$$uuid === data.$$uuid) { + return data + } else { + return item + } + }) + + this.setState({edData: _edData, data: _data}) + } + this.setState({editable: false}) + } + + improveActionForm = (deForms) => { + const { BID, setting } = this.props + + let deffers = [] + let mainItems = [] // 浜戠鎴栧崟鐐规暟鎹� + let localItems = [] // 鏈湴鏁版嵁 + let cache = setting.cache !== 'false' + + deForms.forEach(item => { + if (item.database === 'sso') { + mainItems.push(`select '${item.uuid}' as obj_name,'${item.arr_field}' as arr_field,'${item.base_sql}' as LText`) + } else { + localItems.push(`select '${item.uuid}' as obj_name,'${item.arr_field}' as arr_field,'${item.base_sql}' as LText`) + } + }) + + if (options.sysType !== 'local') { + localItems = [...localItems, ...mainItems] + mainItems = [] + } + + // 鏈湴璇锋眰 + let param = { + func: 'sPC_Get_SelectedList', + LText: localItems.join(' union all '), + obj_name: '', + arr_field: '', + table_type: 'Y', + BID: BID || '' + } + + if (param.LText) { + param.LText = Utils.formatOptions(param.LText) + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.secretkey = Utils.encrypt(param.LText, param.timestamp) + + deffers.push( + new Promise(resolve => { + Api.getSystemCacheConfig(param, cache).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } + resolve(res) + }) + }) + ) + } + + // 绯荤粺璇锋眰 + let mainparam = { + func: 'sPC_Get_SelectedList', + LText: mainItems.join(' union all '), + obj_name: '', + arr_field: '', + table_type: 'Y', + BID: BID || '' + } + + if (mainparam.LText) { + mainparam.LText = Utils.formatOptions(mainparam.LText) + mainparam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + mainparam.secretkey = Utils.encrypt(mainparam.LText, mainparam.timestamp) + + if (window.GLOB.mainSystemApi) { + mainparam.rduri = window.GLOB.mainSystemApi + } + + deffers.push( + new Promise(resolve => { + Api.getSystemCacheConfig(mainparam, cache).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } + resolve(res) + }) + }) + ) + } + + Promise.all(deffers).then(response => { + let result = {...response[0], ...(response[1] || {})} + + delete result.ErrCode + delete result.ErrMesg + delete result.message + delete result.status + + this.resetFormList(result) + }) + } + + resetFormList = (result) => { + const { columns } = this.props + const { edColumns } = this.state + + let _edColumns = [] + + let reCols = {} + columns.forEach(item => { + if (item.resourceType === '1' && result[item.uuid] && result[item.uuid].length > 0) { + let options = [] + let _map = new Map() + result[item.uuid].forEach(cell => { + let _cell = {key: Utils.getuuid()} + + _cell.value = cell[item.valueField] + _cell.label = cell[item.valueText] + + if (!_cell.label && _cell.label !== 0) return + + if (_map.has(_cell.value)) return + _map.set(_cell.value, true) + + if (item.linkSubField) { + item.linkSubField.forEach(m => { + _cell[m] = cell[m] === undefined ? '' : cell[m] + }) + } + + if (item.disableField && cell[item.disableField] && /^true$/ig.test(cell[item.disableField])) { + _cell.$disabled = true + } + + options.push(_cell) + }) + + item.options = options + + reCols[item.uuid] = item + } + }) + + _edColumns = edColumns.map(item => { + if (reCols[item.dataIndex]) { + item.onCell = record => ({ + record, + col: reCols[item.dataIndex] + }) + } + + return item + }) + + if (this.state.pickup) { + this.setState({ + pickup: false + }, () => { + this.setState({pickup: true, edColumns: _edColumns}) + }) + } else { + this.setState({edColumns: _edColumns}) } } - nextLine = (col, index) => { + nextLine = (col, uuid) => { const { setting } = this.props const { edData, initEditLine, tableId } = this.state if (col.tableId !== tableId) return - index = +index + let index = edData.findIndex(item => item.$$uuid === uuid) + let next = edData[index + 1] || null - if (index < edData.length && initEditLine) { - MKEmitter.emit('tdFocus', initEditLine.uuid + (index + 1)) - } else if (col.footEnter === 'add' && setting.addable === 'true') { + if (next && initEditLine) { + MKEmitter.emit('tdFocus', initEditLine.uuid + next.$$uuid) + } else if (setting.addable === 'true') { setTimeout(() => { - this.plusLine(initEditLine) + this.plusLine() }, 10) - } else if (col.footEnter === 'sub') { + } else if (edData[index]) { setTimeout(() => { - this.checkData() + this.subLine(col, edData[index]) }, 10) } } - plusLine = (initEditLine) => { - const { edData, fields } = this.state + subLine = (col, record) => { + const { tableId, fields, edData } = this.state + + if (col && col.tableId !== tableId) return + + if (edData.filter(item => !item.$origin).length > 1) { + setTimeout(() => { + this.submit(edData) + }, 10) + return + } + + setTimeout(() => { + let item = fromJS(record).toJS() + let line = [] + fields.forEach(col => { + if (col.editable !== 'true' || item.$deleted) { + if (col.type === 'number') { + item[col.field] = +item[col.field] + if (isNaN(item[col.field])) { + item[col.field] = 0 + } + } else { + item[col.field] = item[col.field] !== undefined ? (item[col.field] + '') : '' + } + return + } + if (col.type === 'text') { + let val = item[col.field] !== undefined ? (item[col.field] + '') : '' + if (col.required === 'true' && !val) { + line.push(`${col.label}涓嶅彲涓虹┖`) + } + item[col.field] = val + } else if (col.type === 'number') { + let val = item[col.field] + if (!val && val !== 0) { + line.push(`${col.label}涓嶅彲涓虹┖`) + return + } + val = +val + if (isNaN(val)) { + line.push(`${col.label}鏁版嵁鏍煎紡閿欒`) + return + } + + val = +val.toFixed(col.decimal || 0) + + if (typeof(col.max) === 'number' && val > col.max) { + line.push(`${col.label}涓嶅彲澶т簬${col.max}`) + } else if (typeof(col.min) === 'number' && val < col.min) { + line.push(`${col.label}涓嶅彲灏忎簬${col.min}`) + } + + item[col.field] = val + } + }) + + let err = line.join('锛�') + + if (err) { + notification.warning({ + top: 92, + message: err, + duration: 5 + }) + } else { + this.submit([item], 'simple') + } + }, 10) + } + + plusLine = () => { + const { edData, fields, initEditLine } = this.state let item = {...edData[edData.length - 1]} - item.key = item.key + 1 - item.$$uuid = '$new' - item.$Index = item.key + 1 + '' + item.$$uuid = Utils.getguid() + item.$type = 'add' + item.$Index = '' fields.forEach(col => { if (col.initval !== '$copy') { @@ -630,33 +1342,35 @@ }) this.setState({edData: [...edData, item]}, () => { - MKEmitter.emit('tdFocus', initEditLine.uuid + item.$Index) + MKEmitter.emit('tdFocus', initEditLine.uuid + item.$$uuid) }) } delRecord = (id, record) => { + const { setting } = this.props const { tableId, edData } = this.state if (id !== tableId) return let _data = [] - if (record.$$uuid === '$new') { - _data = edData.filter(item => item.$Index !== record.$Index) - _data = _data.map((item, index) => { - item.key = index - item.$Index = 1 + index + '' - return item - }) + if (record.$type === 'add') { + _data = edData.filter(item => item.$$uuid !== record.$$uuid) } else { _data = edData.map(item => { - if (item.$Index === record.$Index) { + if (item.$$uuid === record.$$uuid) { record.$deleted = true + record.$origin = false + record.$type = 'del' return record } else { return item } }) + + if (setting.commit === 'simple' && record.$deleted) { + this.subLine(null, record) + } } this.setState({edData: _data}) @@ -668,7 +1382,8 @@ if (id !== tableId) return let _data = this.state.edData.map(item => { - if (item.$Index === record.$Index) { + if (item.$$uuid === record.$$uuid) { + record.$origin = false return record } else { return item @@ -678,40 +1393,73 @@ this.setState({edData: _data}) } - addLine = () => { + addLine = (id, record) => { const { BID } = this.props - const { edData, fields } = this.state + const { edData, fields, tableId } = this.state - let item = {} - if (edData.length > 0) { - item = {...edData[edData.length - 1]} - item.key = item.key + 1 - item.$$uuid = '$new' - item.$Index = item.key + 1 + '' - } else { - item.key = 0 - item.$$uuid = '$new' - item.$Index = item.key + 1 + '' + if (id) { + if (id !== tableId) return + let _edData = fromJS(edData).toJS() + let index = _edData.findIndex(item => record.$$uuid === item.$$uuid) + + let item = {} + + item.$$uuid = Utils.getguid() + item.$type = 'add' + item.$Index = '' item.$$BID = BID || '' - } - - fields.forEach(col => { - if (col.initval !== '$copy') { - item[col.field] = col.initval - } - if (col.type === 'number') { - item[col.field] = +item[col.field] - if (isNaN(item[col.field])) { - item[col.field] = 0 + + fields.forEach(col => { + if (col.initval !== '$copy') { + item[col.field] = col.initval } - } + if (col.type === 'number') { + item[col.field] = +item[col.field] + if (isNaN(item[col.field])) { + item[col.field] = 0 + } + } + + if (item[col.field] === undefined) { + item[col.field] = '' + } + }) - if (item[col.field] === undefined) { - item[col.field] = '' - } - }) + _edData.splice(index, 0, item) - this.setState({edData: [...edData, item]}) + this.setState({edData: _edData}) + } else { + let item = {} + if (edData.length > 0) { + item = {...edData[edData.length - 1]} + item.$$uuid = Utils.getguid() + item.$type = 'add' + item.$Index = '' + } else { + item.$$uuid = Utils.getguid() + item.$type = 'add' + item.$Index = '' + item.$$BID = BID || '' + } + + fields.forEach(col => { + if (col.initval !== '$copy') { + item[col.field] = col.initval + } + if (col.type === 'number') { + item[col.field] = +item[col.field] + if (isNaN(item[col.field])) { + item[col.field] = 0 + } + } + + if (item[col.field] === undefined) { + item[col.field] = '' + } + }) + + this.setState({edData: [...edData, item]}) + } } checkData = () => { @@ -726,6 +1474,7 @@ return } let err = '' + let Index = 1 let data = fromJS(edData).toJS().map(item => { let line = [] fields.forEach(col => { @@ -771,7 +1520,10 @@ }) if (line.length > 0) { - err += `绗�${item.$Index}琛岋細` + line.join('锛�') + '锛�' + err += `绗�${Index}琛岋細` + line.join('锛�') + '锛�' + } + if (!item.$deleted) { + Index++ } return item @@ -788,9 +1540,22 @@ } } - submit = (data) => { - const { submit, BID } = this.props + submit = (data, type) => { + const { submit, BID, setting } = this.props const { fields } = this.state + + if (type !== 'simple' && (setting.commit === 'change' || setting.commit === 'simple')) { + data = data.filter(item => !item.$origin) + } + + if (data.length === 0) { + notification.warning({ + top: 92, + message: '鏁版嵁鏈慨鏀癸紝涓嶅彲鎻愪氦锛�', + duration: 5 + }) + return + } let result = getEditTableSql(submit, data, fields) @@ -831,7 +1596,12 @@ Api.genericInterface(param).then((res) => { if (res.status) { - this.execSuccess(res) + if (type === 'simple') { + this.updataLine(data[0]) + this.execSuccess(res, type) + } else { + this.execSuccess(res) + } } else { this.execError(res) } @@ -843,7 +1613,12 @@ Api.genericInterface(param).then((res) => { if (res.status) { - this.execSuccess(res) + if (type === 'simple') { + this.updataLine(data[0]) + this.execSuccess(res, type) + } else { + this.execSuccess(res) + } } else { this.execError(res) } @@ -853,7 +1628,26 @@ } } - execSuccess = (res) => { + updataLine = (item) => { + if (item.$type === 'del') { + let _data = this.state.edData.filter(m => m.$$uuid !== item.$$uuid) + + this.setState({edData: _data}) + } else { + let _data = this.state.edData.map(m => { + if (m.$$uuid === item.$$uuid) { + item.$origin = true + return item + } + return m + }) + + this.setState({edData: _data}) + } + MKEmitter.emit('reloadData', this.props.MenuID, item.$$uuid, item) + } + + execSuccess = (res, type) => { const { submit } = this.props if (res && res.ErrCode === 'S') { // 鎵ц鎴愬姛 @@ -873,6 +1667,8 @@ this.setState({ loading: false }) + + if (type === 'simple') return if (submit.closetab === 'true') { MKEmitter.emit('popclose') @@ -918,8 +1714,14 @@ } repick = () => { + const { setting } = this.props const { data } = this.state + if (setting.submittal === 'true') { + this.setState({editable: true}) + } + + this.props.changeLock(false) this.setState({ data: [], edData: [], @@ -931,12 +1733,82 @@ }) } + /** + * + */ + onSelectChange = selectedRowKeys => { + this.setState({ selectedRowKeys }) + + let activeId = '' + if (selectedRowKeys.length > 0) { + activeId = selectedRowKeys.slice(-1)[0] + } + this.changedata(activeId) + this.selectdata(selectedRowKeys) + } + + /** + * @description 鐐瑰嚮鏁磋锛岃Е鍙戝垏鎹紝 鍒ゆ柇鏄惁鍙�夛紝鍗曢�夋垨澶氶�夛紝杩涜瀵瑰簲鎿嶄綔 + */ + changeRow = (index) => { + const { setting } = this.props + + if (!setting.tableType || this.state.pickup) return + + let newkeys = fromJS(this.state.selectedRowKeys).toJS() + + let activeId = '' + if (setting.tableType === 'radio') { + activeId = index + newkeys = [index] + this.setState({ selectedRowKeys: newkeys }) + } else { + if (newkeys.includes(index)) { + newkeys = newkeys.filter(item => item !== index) + + if (newkeys.length > 0) { + activeId = newkeys.slice(-1)[0] + } + } else { + activeId = index + newkeys.push(index) + } + + this.setState({ selectedRowKeys: newkeys }) + } + + this.changedata(activeId) + this.selectdata(newkeys) + } + + changedata = (id) => { + const { MenuID } = this.props + const { data } = this.state + + let _data = '' + + if (id) { + _data = data.filter(item => item.$$uuid === id)[0] || '' + } + + MKEmitter.emit('resetSelectLine', MenuID, id, _data) + } + + selectdata = (keys) => { + const { data } = this.state + + let _data = data.filter(item => keys.includes(item.$$uuid)) + + this.props.chgSelectData(_data) + } + changeTable = (pagination, filters, sorter) => { const { orderfields } = this.state this.setState({ pageIndex: pagination.current, - pageSize: pagination.pageSize + pageSize: pagination.pageSize, + selectedRowKeys: [], }) sorter.field = orderfields[sorter.field] || '' @@ -949,15 +1821,20 @@ if (id !== MenuID) return - if (repage !== 'false') { + if (repage === 'false') { this.setState({ - pageIndex: 1 + selectedRowKeys: [], + }) + } else { + this.setState({ + pageIndex: 1, + selectedRowKeys: [], }) } } pickupChange = () => { - const { submit } = this.props + const { submit, MenuID, setting } = this.props const { data } = this.state let pickup = !this.state.pickup @@ -971,7 +1848,7 @@ return } - if (!pickup && !is(fromJS(data), fromJS(this.state.edData))) { + if (!pickup && this.state.edData.filter(item => !item.$origin).length > 0) { const _this = this confirm({ title: '鏁版嵁宸蹭慨鏀癸紝纭畾鏀惧純淇濆瓨鍚楋紵', @@ -990,29 +1867,46 @@ onCancel() {} }) } else { + pickup && MKEmitter.emit('resetSelectLine', MenuID, '', '') + pickup && this.props.chgSelectData([]) + let keys = this.state.selectedRowKeys this.setState({ data: [], edData: [], + selectedRowKeys: [], pickup, loading: false, - editable: 'false' + editable: false }, () => { - this.setState({ - data: data, - edData: pickup ? fromJS(data).toJS() : [] - }) + if (pickup && setting.tableType === 'checkbox' && keys.length > 0) { + this.setState({ + data: data, + edData: fromJS(data).toJS().filter(item => { + item.$origin = false + + return keys.includes(item.$$uuid) + }) + }) + } else { + this.setState({ + data: data, + edData: pickup ? fromJS(data).toJS() : [] + }) + } }) + } + this.props.changeLock(pickup) } render() { const { setting, statFValue, lineMarks, submit } = this.props - const { pickup, tableId, data, edData, columns, edColumns, loading, pageOptions } = this.state + const { pickup, tableId, data, edData, columns, edColumns, loading, pageOptions, selectedRowKeys } = this.state const components = { body: { row: BodyRow, - cell: BodyCell + cell: setting.editType !== 'multi' || !pickup ? BodyCell : BodyAllCell } } @@ -1024,6 +1918,16 @@ _data = edData _data = _data.filter(item => !item.$deleted) _columns = edColumns + } + + // 璁剧疆琛ㄦ牸閫夋嫨灞炴�э細鍗曢�夈�佸閫夈�佷笉鍙�� + let rowSelection = null + if (setting.tableType && !pickup) { + rowSelection = { + selectedRowKeys, + type: (setting.tableType === 'radio') ? 'radio' : 'checkbox', + onChange: this.onSelectChange + } } let _pagination = false @@ -1047,30 +1951,41 @@ let height = setting.height || false return ( - <div className={`edit-custom-table ${pickup ? 'editable' : ''} ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''}`} id={tableId}> - <Switch title="缂栬緫" className="main-pickup" checkedChildren="寮�" unCheckedChildren="鍏�" checked={pickup} onChange={this.pickupChange} /> - {pickup ? <Button style={submit.style} onClick={() => setTimeout(() => {this.checkData()}, 10)} loading={loading} className="submit-table" type="link">鎻愪氦</Button> : null} - <Table - components={components} - style={setting.style} - size={setting.size || 'middle'} - bordered={setting.bordered !== 'false'} - columns={_columns} - dataSource={_data} - loading={this.props.loading} - scroll={{ x: '100%', y: height }} - onRow={(record, index) => { - return { - lineMarks, - data: record - } - }} - onChange={this.changeTable} - pagination={_pagination} - /> - {_footer ? <div className={'normal-table-footer ' + (_pagination ? 'pagination' : '')}>{_footer}</div> : null} - {pickup && setting.addable === 'true' ? <Button onClick={this.addLine} style={{display: 'block', width: '100%', color: '#26C281', border: '1px solid #dddddd', borderRadius: 0}} type="link"><PlusOutlined /></Button> : null} - </div> + <> + {submit.hasAction && pickup ? <div className="edit-custom-table-leftbtn-wrap"> + <Button style={submit.style} onClick={() => setTimeout(() => {this.checkData()}, 10)} loading={loading} className="submit-table" type="link">鎻愪氦</Button> + </div> : null} + <div className="edit-custom-table-btn-wrap" style={submit.wrapStyle}> + {!submit.hasAction && pickup ? <Button style={submit.style} onClick={() => setTimeout(() => {this.checkData()}, 10)} loading={loading} className="submit-table" type="link">鎻愪氦</Button> : null} + <Switch title="缂栬緫" className="main-pickup" checkedChildren="寮�" unCheckedChildren="鍏�" disabled={loading || this.props.loading} checked={pickup} onChange={this.pickupChange} /> + </div> + <div className={`edit-custom-table ${pickup ? 'editable' : ''} ${setting.tableHeader || ''} ${setting.operType || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''}`} id={tableId}> + <Table + rowKey="$$uuid" + components={components} + style={setting.style} + size={setting.size || 'middle'} + bordered={setting.bordered !== 'false'} + rowSelection={rowSelection} + columns={_columns} + dataSource={_data} + loading={this.props.loading} + scroll={{ x: '100%', y: height }} + onRow={(record, index) => { + return { + lineMarks, + data: record, + onClick: () => {this.changeRow(record.$$uuid)}, + } + }} + onChange={this.changeTable} + pagination={_pagination} + /> + {_footer ? <div className={'normal-table-footer ' + (_pagination ? 'pagination' : '')}>{_footer}</div> : null} + {pickup && setting.addable === 'true' ? <Button className="mk-add-line" onClick={() => this.addLine()} disabled={this.props.loading} type="link"><PlusOutlined /></Button> : null} + {pickup && _data.length > 10 ? <Button style={submit.style} onClick={() => setTimeout(() => {this.checkData()}, 10)} loading={loading} className="submit-footer-table" type="link">鎻愪氦</Button> : null} + </div> + </> ) } } diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.scss b/src/tabviews/custom/components/table/edit-table/normalTable/index.scss index 027503b..9e0ddc1 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.scss +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.scss @@ -1,5 +1,6 @@ .edit-custom-table { position: relative; + min-height: 150px; padding: 0px; .normal-table-footer { @@ -17,6 +18,12 @@ .ant-table { color: inherit; font-size: inherit; + } + .mk-edit-sign { + position: absolute; + bottom: 2px; + right: 5px; + opacity: 0.7; } table { @@ -135,47 +142,91 @@ } } } - .fix-header { - .ant-table-body { - min-height: unset - } - .ant-table-placeholder { - display: none; - } - .ant-table-wrapper { - display: none; - } - .ant-affix .ant-table-wrapper { - display: block; - } - } - .ant-input { - border: none; - box-shadow: none!important; - height: auto; - border-radius: 0; - } - .ant-input-number { - border: none; - box-shadow: none!important; - height: auto; - .ant-input-number-handler-wrap { - display: none; - } - .ant-input-number-input { - border-radius: 0; - padding: 0; - height: auto; - } - } + .editing_table_cell { .ant-input { padding: 0px; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + border: 1px solid var(--antd-wave-shadow-color); + height: auto; + border-radius: 0; + box-shadow: none!important; } - .anticon { + .ant-select { + padding: 0px; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + .ant-select-selection { + height: 100%; + border-radius: 0; + + .ant-select-arrow { + display: none; + } + } + } + .ant-input-number { + height: auto; + border-radius: 0; + position: unset; + border: none; + box-shadow: none!important; + + .ant-input-number-handler-wrap { + display: none; + } + .ant-input-number-input { + border-radius: 0; + padding: 0; + height: auto; + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + border: 1px solid var(--antd-wave-shadow-color); + } + } + .anticon-exclamation-circle { color: #ff4d4f; position: absolute; right: 3px; + top: calc(50% - 8px); + } + } + .editing_all_table_cell { + .ant-input { + border-radius: 0; + padding: 4px 5px; + } + .ant-select { + width: 100%; + .ant-select-selection { + border-radius: 0; + } + } + .ant-input-number { + border-radius: 0; + + .ant-input-number-handler-wrap { + display: none; + } + .ant-input-number-input { + border-radius: 0; + padding: 4px 5px; + } + } + .anticon-exclamation-circle { + color: #ff4d4f; + position: absolute; + right: 13px; top: calc(50% - 8px); } } @@ -193,6 +244,62 @@ right: 0; } } + .mk-editable { + position: absolute; + display: none; + top: calc(50% - 18px); + cursor: pointer; + padding: 10px 5px; + opacity: 0; + } + tr:hover { + .mk-editable { + opacity: 1; + } + .mk-plus { + left: -25px; + } + .mk-del { + right: -25px; + } + } + .mk-plus { + left: 0px; + color: rgb(38, 194, 129); + padding-right: 10px; + } + .mk-del { + right: 0px; + color: rgb(255, 77, 79); + padding-left: 10px; + } + .mk-add-line { + width: 100px; + color: #26C281; + border-radius: 0; + font-size: 25px; + height: 45px; + } + .submit-footer-table { + float: right; + min-height: 24px; + height: auto; + color: #ffffff; + background-color: #1890ff; + border-width: 0; + margin-top: 10px!important; + margin-right: 10px!important; + } +} +.edit-custom-table.buoyMode { + .ant-table-scroll { + overflow: unset; + overflow-x: unset; + + .ant-table-body { + overflow-x: unset!important; + } + } } .edit-custom-table.editable { td { @@ -206,6 +313,9 @@ } .ant-table-placeholder { display: none; + } + .mk-editable { + display: inline-block; } } .edit-custom-table:not(.fixed-height) { @@ -281,4 +391,45 @@ cursor: pointer; } } +} +.edit-table-dropdown { + .ant-select-dropdown-menu-item { + white-space: unset; + text-overflow: unset; + } +} +.edit-custom-table-btn-wrap { + float: right; + padding: 5px 0px; + .main-pickup { + position: relative; + z-index: 2; + } + .submit-table { + position: relative; + z-index: 2; + margin-right: 15px; + min-height: 24px; + height: auto; + color: #ffffff; + background-color: #1890ff; + border-width: 0; + margin-top: 0px!important; + margin-bottom: 0px!important; + } +} +.edit-custom-table-leftbtn-wrap { + float: left; + line-height: 45px; + .submit-table { + position: relative; + z-index: 2; + min-height: 28px; + height: auto; + color: #ffffff; + background-color: #1890ff; + border-width: 0; + margin-top: 0px; + margin-bottom: 0px; + } } \ No newline at end of file diff --git a/src/tabviews/custom/components/table/normal-table/index.jsx b/src/tabviews/custom/components/table/normal-table/index.jsx index 72585ec..8337aed 100644 --- a/src/tabviews/custom/components/table/normal-table/index.jsx +++ b/src/tabviews/custom/components/table/normal-table/index.jsx @@ -71,6 +71,8 @@ if (setting.selected !== 'always' && setting.selected !== 'init') { setting.selected = 'false' + } else { + setting.orisel = true } if (_config.setting.sync === 'true' && data) { @@ -110,14 +112,15 @@ } _config.columns.forEach(item => { + if (item.type !== 'number') return _cols.set(item.field, item) }) _config.cols.forEach(column => { if (column.type === 'custom') { column.elements = column.elements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) @@ -155,8 +158,10 @@ search: Utils.initMainSearch(_config.search) // 鎼滅储鏉′欢鍒濆鍖栵紙鍚湁鏃堕棿鏍煎紡锛岄渶瑕佽浆鍖栵級 }, () => { if (_config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadmaindata() - this.getStatFieldsValue() + setTimeout(() => { + this.loadmaindata() + this.getStatFieldsValue() + }, _config.setting.delay || 0) } else if (_config.setting.onload === 'true') { this.getStatFieldsValue() } @@ -168,7 +173,7 @@ * @param { Boolean } reset 琛ㄦ牸鏄惁閲嶇疆 * @param { String } repage 琛ㄦ牸鏄惁閲嶇疆椤电爜 */ - async loadmaindata (reset, repage) { + async loadmaindata (reset, repage, id) { const { mainSearch } = this.props const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize, BData } = this.state @@ -178,6 +183,7 @@ selectedData: [], total: 0 }) + MKEmitter.emit('resetSelectLine', config.uuid, '', '') // 骞挎挱鏁版嵁鍒囨崲 reset && MKEmitter.emit('resetTable', config.uuid, repage) // 鍒楄〃閲嶇疆 if (setting.$hasSyncModule) { @@ -210,9 +216,9 @@ let result = await Api.genericInterface(param) if (result.status) { - if (setting.selected !== 'false' && result.data && result.data.length > 0) { + if ((setting.selected !== 'false' || (setting.orisel && id)) && result.data && result.data.length > 0) { setTimeout(() => { - MKEmitter.emit('mkCheckTopLine', config.uuid) + MKEmitter.emit('mkCheckTopLine', config.uuid, id) }, 200) if (setting.selected === 'init') { this.setState({setting: {...setting, selected: 'false'}}) @@ -317,6 +323,8 @@ } catch (e) { console.warn('鏁版嵁鏌ヨ閿欒') } + + MKEmitter.emit('resetSelectLine', config.uuid, _data.$$uuid || '', _data) } this.setState({ @@ -453,16 +461,16 @@ /** * @description 琛ㄦ牸鍒锋柊 */ - reloadtable = (btn) => { + reloadtable = (btn, id) => { if (!btn || btn.resetPageIndex !== 'false') { this.setState({ pageIndex: 1 }, () => { - this.loadmaindata(true, 'true') + this.loadmaindata(true, 'true', id) this.getStatFieldsValue() }) } else { - this.loadmaindata(true, 'false') + this.loadmaindata(true, 'false', id) this.getStatFieldsValue() } } @@ -498,7 +506,6 @@ const { config } = this.state if (config.uuid !== menuId) return - if (id === 'empty') return if (!id) { this.reloadtable() @@ -534,20 +541,29 @@ if (config.uuid !== menuId) return - if (position === 'line' && lines && lines.length === 1) { - this.loadmainLinedata(lines[0].$$uuid) - } else { - this.reloadtable(btn) // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule + + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'line') { + if (lines && lines.length === 1) { + this.loadmainLinedata(lines[0].$$uuid) + } else { + this.reloadtable(btn, id) + } + } else if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.reloadtable(btn, id) + } + } else { + this.reloadtable(btn, id) + } } - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 - } - - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } diff --git a/src/tabviews/custom/components/table/normal-table/index.scss b/src/tabviews/custom/components/table/normal-table/index.scss index 787734a..3e10f6a 100644 --- a/src/tabviews/custom/components/table/normal-table/index.scss +++ b/src/tabviews/custom/components/table/normal-table/index.scss @@ -41,15 +41,6 @@ top: -22px; z-index: 2; } - .custom-control { - position: absolute; - z-index: 1; - right: 0px; - top: -23px; - font-size: 18px; - padding: 3px; - cursor: pointer; - } >.async-spin { line-height: 150px!important; } diff --git a/src/tabviews/custom/components/tabs/antv-tabs/index.jsx b/src/tabviews/custom/components/tabs/antv-tabs/index.jsx index 4b8ef58..e098179 100644 --- a/src/tabviews/custom/components/tabs/antv-tabs/index.jsx +++ b/src/tabviews/custom/components/tabs/antv-tabs/index.jsx @@ -30,8 +30,14 @@ UNSAFE_componentWillMount () { const { config, bids } = this.props + let _tabs = fromJS(config).toJS() + + if (_tabs.setting.supModule) { + _tabs.subtabs = [] + } + this.setState({ - tabs: fromJS(config).toJS(), + tabs: _tabs, parentIds: config.parentIds || [], bids: bids ? bids : {} }) @@ -71,12 +77,12 @@ } if (tabs.setting.supModule === MenuID) { - if (!data || data[tabs.setting.controlField] === undefined) { + if (!data) { this.setState({ - tabs: {...tabs, subtabs: this.props.config.subtabs} + tabs: {...tabs, subtabs: []} }) } else { - let val = data[tabs.setting.controlField] + let val = data[tabs.setting.controlField] === undefined ? '' : data[tabs.setting.controlField] + '' this.setState({ tabs: {...tabs, subtabs: this.props.config.subtabs.filter(tab => { if (tab.controlVal === val) { @@ -119,11 +125,13 @@ const { mainSearch, BID } = this.props const { tabs, bids } = this.state + if (!tabs.subtabs.length) return null + return ( <div className={'menu-antv-tabs-wrap ' + tabs.setting.tabLabel} style={tabs.style}> - <Tabs defaultActiveKey="1" tabPosition={tabs.setting.position} type={tabs.setting.tabStyle}> + <Tabs defaultActiveKey="1" tabBarStyle={{background: tabs.setting.backgroundColor || 'transparent'}} tabPosition={tabs.setting.position} type={tabs.setting.tabStyle}> {tabs.subtabs.map(tab => ( - <TabPane tab={<span id={'tab' + tab.uuid}>{tab.icon ? <MkIcon type={tab.icon} /> : null}{tab.label}</span>} key={tab.uuid}> + <TabPane tab={<span id={'tab' + tab.uuid}>{tab.icon ? <MkIcon type={tab.icon} /> : null}{tab.label}</span>} style={{backgroundColor: tab.backgroundColor || 'transparent'}} key={tab.uuid}> <TabTransfer BID={BID} config={tab} bids={bids} mainSearch={mainSearch}/> </TabPane> ))} diff --git a/src/tabviews/custom/components/tabs/antv-tabs/index.scss b/src/tabviews/custom/components/tabs/antv-tabs/index.scss index dc4e400..7f07a5c 100644 --- a/src/tabviews/custom/components/tabs/antv-tabs/index.scss +++ b/src/tabviews/custom/components/tabs/antv-tabs/index.scss @@ -5,6 +5,24 @@ background-position: center center; background-repeat: no-repeat; background-size: cover; + + .ant-tabs-top-bar { + margin-bottom: 0; + } + .ant-tabs-top-content { + .ant-tabs-tabpane { + padding-top: 15px; + } + } + .ant-tabs-left-content { + padding-left: 0; + } + .ant-tabs-right-content { + padding-right: 0; + } + .ant-tabs-bottom-bar { + margin-top: 0; + } } .menu-antv-tabs-wrap.hide >.ant-tabs >.ant-tabs-bar{ diff --git a/src/tabviews/custom/components/timeline/normal-timeline/index.jsx b/src/tabviews/custom/components/timeline/normal-timeline/index.jsx index d49100c..c3353c1 100644 --- a/src/tabviews/custom/components/timeline/normal-timeline/index.jsx +++ b/src/tabviews/custom/components/timeline/normal-timeline/index.jsx @@ -58,6 +58,7 @@ item.key = index item.$$uuid = item[_config.setting.primaryKey] || '' item.$$BID = BID || '' + item.$$BData = BData || '' item.$Index = index + 1 + '' return item }) @@ -67,13 +68,14 @@ _config.wrap.contentHeight = _config.wrap.title ? 'calc(100% - 45px)' : '100%' _config.columns.forEach(item => { + if (item.type !== 'number') return _cols.set(item.field, item) }) card = _config.subcards[0] card.elements = card.elements.map(item => { - if (item.field && _cols.has(item.field)) { - item.col = _cols.get(item.field) + if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') { + item.decimal = _cols.get(item.field).decimal || 0 } return item }) @@ -88,7 +90,9 @@ arr_field: _config.columns.map(col => col.field).join(','), }, () => { if (_config.setting.sync !== 'true' && _config.setting.onload === 'true') { - this.loadData() + setTimeout(() => { + this.loadData() + }, _config.setting.delay || 0) } }) } @@ -154,16 +158,23 @@ if (config.uuid !== menuId) return - this.loadData(btn) // 鏁版嵁鍒锋柊 + let supModule = config.setting.supModule - if (btn.syncComponentId && btn.syncComponentId !== config.uuid && btn.syncComponentId !== config.setting.supModule) { - MKEmitter.emit('reloadData', btn.syncComponentId) // 鍚岀骇鏍囩鍒锋柊 + btn.syncComponentId && MKEmitter.emit('reloadData', btn.syncComponentId) + + if (!btn.syncComponentId || btn.syncComponentId !== supModule) { + if (position === 'mainline' || position === 'popclose') { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� + if (supModule && BID) { + MKEmitter.emit('reloadData', supModule, BID) + } else { + this.loadData() + } + } else { + this.loadData() + } } - if (position === 'mainline' && config.setting.supModule) { // 涓昏〃琛屽埛鏂� - MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) - } else if (position === 'popclose') { // 鏍囩鍏抽棴鍒锋柊 - config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty')) + if (position === 'popclose') { // 鎵ц鍚姩寮圭獥鐨勬寜閽墍閫夋嫨鐨勫埛鏂伴」 btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId) } } diff --git a/src/tabviews/custom/components/tree/antd-tree/index.jsx b/src/tabviews/custom/components/tree/antd-tree/index.jsx index e9d7bc7..305d461 100644 --- a/src/tabviews/custom/components/tree/antd-tree/index.jsx +++ b/src/tabviews/custom/components/tree/antd-tree/index.jsx @@ -62,7 +62,9 @@ sync: _sync }, () => { if (config.setting.sync !== 'true' && config.setting.onload === 'true') { - this.loadData(null) + setTimeout(() => { + this.loadData(null) + }, config.setting.delay || 0) } else if (config.setting.sync === 'true' && _data) { this.handleData() } diff --git a/src/tabviews/custom/components/tree/antd-tree/index.scss b/src/tabviews/custom/components/tree/antd-tree/index.scss index e60ec78..859f346 100644 --- a/src/tabviews/custom/components/tree/antd-tree/index.scss +++ b/src/tabviews/custom/components/tree/antd-tree/index.scss @@ -75,6 +75,9 @@ height: 60px; } } + .tree-header + .ant-empty { + margin-top: 35px; + } .loading-mask { position: absolute; left: 0px; diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx index b7262d9..c5d426f 100644 --- a/src/tabviews/custom/index.jsx +++ b/src/tabviews/custom/index.jsx @@ -40,6 +40,7 @@ const PagemsgComponent = asyncComponent(() => import('@/tabviews/zshare/pageMessage')) const CustomChart = asyncComponent(() => import('./components/chart/custom-chart')) const TimeLine = asyncComponent(() => import('./components/timeline/normal-timeline')) +const Voucher = asyncComponent(() => import('./components/module/voucher')) class CustomPage extends Component { static propTpyes = { @@ -423,7 +424,7 @@ Sort: index + 1 })) - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { let sql = lines.map(item => (` ${item.insert} ${item.selects.join(` union all @@ -475,6 +476,8 @@ tab.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0 ) { return false + } else if (tab.hide === 'true') { + return false } return true }) @@ -517,6 +520,23 @@ item.wrap.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0 ) { return false + } + } + + if (item.wrap && item.wrap.supType === 'multi') { // 鏁版嵁鍗″涓婄骇缁勪欢 + if (item.supNodes && item.supNodes[0]) { + item.setting.supModule = item.supNodes[0].componentId + } else { + item.wrap.supType = 'single' + item.supNodes = null + item.setting.supModule = '' + } + } else if (item.setting && item.setting.supModule) { + let pid = item.setting.supModule.pop() + if (pid && pid !== 'empty') { + item.setting.supModule = pid + } else { + item.setting.supModule = '' } } @@ -581,6 +601,10 @@ cell.$tabId = tabId cell.$view = 'CustomPage' + if (cell.syncComponentId === item.uuid) { + cell.syncComponentId = '' + } + if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) } @@ -616,6 +640,10 @@ cell.$tabId = tabId cell.$view = 'CustomPage' + if (cell.syncComponentId === item.uuid) { + cell.syncComponentId = '' + } + if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) } @@ -639,6 +667,10 @@ cell.$MenuID = this.props.MenuID cell.$tabId = tabId cell.$view = 'CustomPage' + + if (cell.syncComponentId === item.uuid) { + cell.syncComponentId = '' + } if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) @@ -668,6 +700,10 @@ cell.$tabId = tabId cell.$view = 'CustomPage' + if (cell.syncComponentId === item.uuid) { + cell.syncComponentId = '' + } + if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) } @@ -690,6 +726,10 @@ cell.$MenuID = this.props.MenuID cell.$tabId = tabId cell.$view = 'CustomPage' + + if (cell.syncComponentId === item.uuid) { + cell.syncComponentId = '' + } if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) @@ -717,6 +757,10 @@ cell.$tabId = tabId cell.$view = 'CustomPage' + if (cell.syncComponentId === item.uuid) { + cell.syncComponentId = '' + } + if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃� cell = this.getPrinter(cell, item.uuid) } @@ -734,23 +778,6 @@ if (item.subtype === 'editable') { item.submit.logLabel = item.$menuname + '-鎻愪氦' item.submit.$menuId = item.uuid - } - } - - if (item.wrap && item.wrap.supType === 'multi') { // 鏁版嵁鍗″涓婄骇缁勪欢 - if (item.supNodes && item.supNodes[0]) { - item.setting.supModule = item.supNodes[0].componentId - } else { - item.wrap.supType = 'single' - item.supNodes = null - item.setting.supModule = '' - } - } else if (item.setting && item.setting.supModule) { - let pid = item.setting.supModule.pop() - if (pid && pid !== 'empty') { - item.setting.supModule = pid - } else { - item.setting.supModule = '' } } @@ -823,6 +850,7 @@ // 鏍煎紡鍖栭粯璁よ缃� formatSetting = (components, params, mainSearch, inherit, regs, balMap) => { + let delay = 20 return components.map(component => { if (component.type === 'tabs') { component.subtabs = component.subtabs.map(tab => { @@ -916,8 +944,10 @@ } else { params.push(getStructDefaultParam(component, searchlist, params.length === 0)) } - } else if (component.floor === 1) { + } else if (params) { component.setting.sync = 'false' + component.setting.delay = delay + delay += 20 } if (balMap.has(component.uuid)) { @@ -1134,7 +1164,7 @@ } else if (item.type === 'table' && item.subtype === 'editable') { return ( <Col span={item.width} key={item.uuid}> - <EditTable config={item} data={data} BID={_bid} mainSearch={mainSearch} menuType={menuType} /> + <EditTable config={item} BID={_bid} mainSearch={mainSearch} menuType={menuType} /> </Col> ) } else if (item.type === 'group' && item.subtype === 'normalgroup') { @@ -1167,6 +1197,12 @@ <CustomChart config={item} data={data} BID={_bid} mainSearch={mainSearch} menuType={menuType} /> </Col> ) + } else if (item.type === 'module' && item.subtype === 'voucher') { + return ( + <Col span={item.width} key={item.uuid}> + <Voucher config={item} BID={_bid} /> + </Col> + ) } else { return null } @@ -1180,7 +1216,7 @@ return ( <div className={'custom-page-wrap ' + (loadingview || loading ? 'loading' : '')} id={this.state.ContainerId} style={config ? config.style : null}> {(loadingview || loading) ? <Spin className="view-spin" size="large" /> : null} - <Row>{this.getComponents()}</Row> + <Row className="component-wrap">{this.getComponents()}</Row> {menuType !== 'HS' && window.GLOB.systemType !== 'production' ? <PagemsgComponent menu={{MenuName: this.props.MenuName, MenuNo: this.props.MenuNo}} config={config} dict={this.state.dict} /> : null} {menuType !== 'HS' && shortcuts ? <SettingComponent config={config} dict={this.state.dict} shortcuts={shortcuts} permAction={this.props.permAction}/> : null} {viewlost ? <NotFount msg={this.state.lostmsg} /> : null} diff --git a/src/tabviews/custom/index.scss b/src/tabviews/custom/index.scss index 6b7e1c7..b01f497 100644 --- a/src/tabviews/custom/index.scss +++ b/src/tabviews/custom/index.scss @@ -8,6 +8,9 @@ padding-right: 16px; background-size: 100%; + .component-wrap >.ant-col { + min-height: 0; + } .box404 { padding-top: 30px; } diff --git a/src/tabviews/formtab/index.jsx b/src/tabviews/formtab/index.jsx index b16b3c7..a94d93b 100644 --- a/src/tabviews/formtab/index.jsx +++ b/src/tabviews/formtab/index.jsx @@ -103,15 +103,26 @@ config.tabgroups = _tabgroups } - config.action = config.action.filter(item => permAction[item.uuid]) - config.tabgroups.forEach(group => { - group.sublist = group.sublist.filter(tab => { - if (tab.supMenu === 'mainTable') { - tab.supMenu = MenuID - } - return permAction[tab.linkTab] + if (this.props.menuType !== 'HS') { + config.action = config.action.filter(item => permAction[item.uuid]) + config.tabgroups.forEach(group => { + group.sublist = group.sublist.filter(tab => { + if (tab.supMenu === 'mainTable') { + tab.supMenu = MenuID + } + return permAction[tab.linkTab] + }) }) - }) + } else { + config.tabgroups.forEach(group => { + group.sublist = group.sublist.filter(tab => { + if (tab.supMenu === 'mainTable') { + tab.supMenu = MenuID + } + return true + }) + }) + } // 鎸夐挳绫诲瀷鍏煎 config.action = config.action.map(item => { diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx index d872d45..5f39261 100644 --- a/src/tabviews/subtable/index.jsx +++ b/src/tabviews/subtable/index.jsx @@ -319,6 +319,8 @@ config.setting.selected = 'false' } else if (config.setting.selected === 'init' && config.setting.onload === 'false') { config.setting.selected = 'false' + } else { + config.setting.orisel = true } if (config.setting.controlField) { @@ -365,7 +367,7 @@ } } - loadData = () => { + loadData = (id) => { const { mainSearch } = this.props const { setting, BID, search, loadCustomApi, hasReqFields } = this.state @@ -414,10 +416,10 @@ this.loadOutResource(searches) if (setting.execType === 'async') { - this.loadmaindata() + this.loadmaindata(id) } } else { - this.loadmaindata() + this.loadmaindata(id) } } @@ -557,7 +559,7 @@ Sort: index + 1 })) - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { let sql = lines.map(item => (` ${item.insert} ${item.selects.join(` union all @@ -591,7 +593,7 @@ /** * @description 瀛愯〃鏁版嵁鍔犺浇 */ - async loadmaindata () { + async loadmaindata (id) { const { mainSearch } = this.props const { setting, BID, arr_field, search, orderBy, pageIndex, pageSize, absFields } = this.state @@ -617,9 +619,9 @@ start = pageSize * (pageIndex - 1) + 1 } - if (setting.selected !== 'false') { + if (setting.selected !== 'false' || (setting.orisel && id)) { setTimeout(() => { - MKEmitter.emit('mkTableCheckTopLine', this.props.MenuID) + MKEmitter.emit('mkTableCheckTopLine', this.props.MenuID, id) }, 200) if (setting.selected === 'init') { this.setState({setting: {...setting, selected: 'false'}}) @@ -827,17 +829,17 @@ /** * @description 琛ㄦ牸鍒锋柊 */ - reloadtable = (btn) => { + reloadtable = (btn, id = '') => { if (!btn || btn.resetPageIndex !== 'false') { MKEmitter.emit('resetTable', this.props.Tab.uuid) // 鍒楄〃閲嶇疆 this.setState({ pageIndex: 1 }, () => { - this.loadData() + this.loadData(id) }) } else { MKEmitter.emit('resetTable', this.props.Tab.uuid, 'false') // 鍒楄〃閲嶇疆 - this.loadData() + this.loadData(id) } } @@ -892,7 +894,6 @@ const { MenuID } = this.props if (menuId.indexOf(MenuID) === -1) return - if (id === 'empty') return if (!id) { this.reloadtable() @@ -915,19 +916,23 @@ const { Tab, SupMenuID } = this.props const { BID } = this.state - if (position === 'line' && lines && lines.length === 1) { - this.loadmainLinedata(lines[0].$$uuid) + if (position === 'line') { + if (lines && lines.length === 1) { + this.loadmainLinedata(lines[0].$$uuid) + } else { + this.reloadtable(btn, id) + } } else if (position === 'grid' || position === 'view') { - this.reloadtable(btn) + this.reloadtable(btn, id) } else if (position === 'maingrid' || position === 'mainline') { - this.reloadtable(btn) - if (Tab.supMenu) { - MKEmitter.emit('reloadData', Tab.supMenu, (BID || 'empty')) // 涓昏〃閲嶇疆 - } else if (!Tab.supMenu && Tab.level === 0) { - MKEmitter.emit('reloadData', SupMenuID, (BID || 'empty')) // 鏍戝舰缁撴瀯锛�0绾ф爣绛� + this.reloadtable(btn, id) + if (Tab.supMenu && BID) { + MKEmitter.emit('reloadData', Tab.supMenu, BID) // 涓昏〃閲嶇疆 + } else if (!Tab.supMenu && Tab.level === 0 && BID) { + MKEmitter.emit('reloadData', SupMenuID, BID) // 鏍戝舰缁撴瀯锛�0绾ф爣绛� } } else if (position === 'equaltab') { - this.reloadtable(btn) + this.reloadtable(btn, id) if (Tab.equalTab && Tab.equalTab.length > 0) { MKEmitter.emit('reloadData', Tab.equalTab.join(',')) // 鍚岀骇鏍囩閲嶇疆 } diff --git a/src/tabviews/subtabtable/index.jsx b/src/tabviews/subtabtable/index.jsx index 2daa24c..9343c02 100644 --- a/src/tabviews/subtabtable/index.jsx +++ b/src/tabviews/subtabtable/index.jsx @@ -280,6 +280,8 @@ config.setting.selected = 'false' } else if (config.setting.selected === 'init' && config.setting.onload === 'false') { config.setting.selected = 'false' + } else { + config.setting.orisel = true } if (config.setting.controlField) { @@ -321,7 +323,7 @@ } } - loadData = () => { + loadData = (id) => { const { setting, search, hasReqFields, loadCustomApi } = this.state let searches = fromJS(search).toJS() @@ -356,10 +358,10 @@ this.loadOutResource(searches) if (setting.execType === 'async') { - this.loadmaindata() + this.loadmaindata(id) } } else { - this.loadmaindata() + this.loadmaindata(id) } } @@ -500,7 +502,7 @@ Sort: index + 1 })) - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { let sql = lines.map(item => (` ${item.insert} ${item.selects.join(` union all @@ -534,7 +536,7 @@ /** * @description 瀛愯〃鏁版嵁鍔犺浇 */ - async loadmaindata () { + async loadmaindata (id) { const { BID } = this.props const { setting, arr_field, search, orderBy, pageIndex, pageSize, absFields } = this.state @@ -557,9 +559,9 @@ start = pageSize * (pageIndex - 1) + 1 } - if (setting.selected !== 'false') { + if (setting.selected !== 'false' || (setting.orisel && id)) { setTimeout(() => { - MKEmitter.emit('mkTableCheckTopLine', this.props.MenuID) + MKEmitter.emit('mkTableCheckTopLine', this.props.MenuID, id) }, 200) if (setting.selected === 'init') { this.setState({setting: {...setting, selected: 'false'}}) @@ -762,17 +764,17 @@ /** * @description 琛ㄦ牸鍒锋柊 */ - reloadtable = (btn) => { + reloadtable = (btn, id) => { if (!btn || btn.resetPageIndex !== 'false') { MKEmitter.emit('resetTable', this.props.Tab.uuid) // 鍒楄〃閲嶇疆 this.setState({ pageIndex: 1 }, () => { - this.loadData() + this.loadData(id) }) } else { MKEmitter.emit('resetTable', this.props.Tab.uuid, 'false') // 鍒楄〃閲嶇疆 - this.loadData() + this.loadData(id) } } @@ -807,7 +809,7 @@ * @param {*} position // 鍒锋柊浣嶇疆 * @param {*} btn // 鎵ц鐨勬寜閽� */ - refreshByButtonResult = (menuId, position, btn, id, lines) => { + refreshByButtonResult = (menuId, position, btn, id = '', lines) => { const { MenuID } = this.props if (MenuID !== menuId) return @@ -815,7 +817,7 @@ if (position === 'line' && lines && lines.length === 1) { this.loadmainLinedata(lines[0].$$uuid) } else { - this.reloadtable(btn) + this.reloadtable(btn, id) } MKEmitter.emit('refreshPopButton', this.props.Tab.uuid) } diff --git a/src/tabviews/verupmanage/config.jsx b/src/tabviews/verupmanage/config.jsx index 32add62..e6ee268 100644 --- a/src/tabviews/verupmanage/config.jsx +++ b/src/tabviews/verupmanage/config.jsx @@ -118,12 +118,12 @@ } ], columns:[ - {label:'ID',field:'ID',type:'text',Align:'left',Hide:'true',IsSort:'true',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'1583983669503v35f3e7f52iosklnomg'}, - {label:'鍏抽敭瀛�',field:'KeyWords',type:'text',Align:'left',Hide:'false',IsSort:'true',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'15839836784475gl5v26qgual768ab8u'}, - {label:'鎻忚堪',field:'Remark',type:'text',Align:'left',Hide:'false',IsSort:'true',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'15839837044624m3k41m7omhs6q8f9fo'}, - {label:'绫诲瀷',field:'TypeName',type:'text',Align:'left',Hide:'false',IsSort:'true',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'1583983717421ts67iu14hmmeqivel5e'}, - {label:'鎺掑簭',field:'Sort',type:'text',Align:'left',Hide:'false',IsSort:'true',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'1583983728654ks05hor8mgiqbp61ivl'}, - {label:'SrcID',field:'SrcID',type:'text',Align:'left',Hide:'true',IsSort:'true',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'1584001165784gu23d35b43i860n0a19'} + {label:'ID',field:'ID',type:'text',Align:'left',Hide:'true',IsSort:'false',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'1583983669503v35f3e7f52iosklnomg'}, + {label:'鍏抽敭瀛�',field:'KeyWords',type:'text',Align:'left',Hide:'false',IsSort:'false',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'15839836784475gl5v26qgual768ab8u'}, + {label:'鎻忚堪',field:'Remark',type:'text',Align:'left',Hide:'false',IsSort:'false',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'15839837044624m3k41m7omhs6q8f9fo'}, + {label:'绫诲瀷',field:'TypeName',type:'text',Align:'left',Hide:'false',IsSort:'false',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'1583983717421ts67iu14hmmeqivel5e'}, + {label:'鎺掑簭',field:'Sort',type:'text',Align:'left',Hide:'false',IsSort:'false',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'1583983728654ks05hor8mgiqbp61ivl'}, + {label:'SrcID',field:'SrcID',type:'text',Align:'left',Hide:'true',IsSort:'false',Width:120,prefix:'',postfix:'',matchVal:'',color:'',fieldlength:50,uuid:'1584001165784gu23d35b43i860n0a19'} ], gridBtn: {display: false} }, diff --git a/src/tabviews/verupmanage/index.jsx b/src/tabviews/verupmanage/index.jsx index 22c47a4..fe65a69 100644 --- a/src/tabviews/verupmanage/index.jsx +++ b/src/tabviews/verupmanage/index.jsx @@ -450,7 +450,7 @@ } render() { - const { searchlist, setting, actions, columns, pickup, config, selectedData } = this.state + const { searchlist, setting, actions, columns, pickup, config, selectedData, pageSize } = this.state return ( <div className="veruptable" id={this.state.ContainerId}> @@ -478,6 +478,7 @@ pickup={pickup} setting={setting} columns={columns} + pageSize={pageSize} dict={this.state.dict} data={this.state.data} total={this.state.total} diff --git a/src/tabviews/verupmanage/subtabtable/index.jsx b/src/tabviews/verupmanage/subtabtable/index.jsx index d33454c..a64b977 100644 --- a/src/tabviews/verupmanage/subtabtable/index.jsx +++ b/src/tabviews/verupmanage/subtabtable/index.jsx @@ -46,7 +46,7 @@ total: 0, // 鎬绘暟 loading: false, // 鍒楄〃鏁版嵁鍔犺浇涓� pageIndex: 1, // 椤电爜 - pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 + pageSize: 100, // 姣忛〉鏁版嵁鏉℃暟 orderBy: '', // 鎺掑簭 search: '', // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞� popAction: false, // 寮规椤甸潰锛屾寜閽俊鎭� @@ -350,29 +350,6 @@ } /** - * @description 椤甸潰鍒锋柊锛岄噸鏂拌幏鍙栭厤缃� - */ - reloadview = () => { - this.setState({ - config: null, - searchlist: null, - actions: null, - columns: null, - arr_field: '', - setting: null, - data: null, - total: 0, - loading: false, - pageIndex: 1, - pageSize: 10, - orderBy: '', - search: '' - }, () => { - this.loadconfig() - }) - } - - /** * @description 鎸夐挳鎿嶄綔瀹屾垚鍚庯紙鎴愬姛鎴栧け璐ワ級锛岄〉闈㈠埛鏂帮紝閲嶇疆椤电爜鍙婇�夋嫨椤� */ refreshbyaction = (btn, type) => { @@ -380,16 +357,6 @@ this.reloadtable() } else if (btn.execError === 'grid' && type === 'error') { this.reloadtable() - } else if (btn.execSuccess === 'view' && type === 'success') { - this.reloadview() - } else if (btn.execError === 'view' && type === 'error') { - this.reloadview() - } else if (btn.popClose === 'grid' && type === 'pop') { - this.reloadtable() - } else if (btn.popClose === 'view' && type === 'pop') { - this.reloadview() - } else if (btn.popClose === 'maingrid' && type === 'pop') { - this.props.handleMainTable('maingrid') } } @@ -446,7 +413,7 @@ } render() { - const { BID, BData, setting, searchlist, actions, columns, pickup, selectedData } = this.state + const { BID, BData, setting, searchlist, actions, columns, pickup, selectedData, pageSize } = this.state return ( <div className="verup-subtable" id={'subtable' + this.props.MenuID}> @@ -481,6 +448,7 @@ pickup={pickup} setting={setting} columns={columns} + pageSize={pageSize} dict={this.state.dict} data={this.state.data} total={this.state.total} diff --git a/src/tabviews/zshare/actionList/changeuserbutton/index.jsx b/src/tabviews/zshare/actionList/changeuserbutton/index.jsx index 6e36e79..beb7547 100644 --- a/src/tabviews/zshare/actionList/changeuserbutton/index.jsx +++ b/src/tabviews/zshare/actionList/changeuserbutton/index.jsx @@ -38,7 +38,7 @@ if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -77,7 +77,7 @@ if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) { if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� nextProps.selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -257,6 +257,7 @@ icon={btn.icon} loading={loading} disabled={disabled} + title={disabled ? (btn.reason || '') : ''} className={'mk-btn mk-' + btn.class} onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} >{btn.label}</Button> @@ -281,7 +282,7 @@ return ( <Button type="link" - title={show === 'icon' ? btn.label : ''} + title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} loading={loading} disabled={disabled} style={btn.style} diff --git a/src/tabviews/zshare/actionList/excelInbutton/index.jsx b/src/tabviews/zshare/actionList/excelInbutton/index.jsx index dc4e82e..15dbb8b 100644 --- a/src/tabviews/zshare/actionList/excelInbutton/index.jsx +++ b/src/tabviews/zshare/actionList/excelInbutton/index.jsx @@ -43,7 +43,7 @@ if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -82,7 +82,7 @@ if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) { if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� nextProps.selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -191,7 +191,7 @@ execSuccess = (res) => { const { btn } = this.props - if (res && res.ErrCode === 'S') { // 鎵ц鎴愬姛 + if (res && (res.ErrCode === 'S' || !res.ErrCode)) { // 鎵ц鎴愬姛 notification.success({ top: 92, message: res.ErrMesg || this.state.dict['main.action.confirm.success'], @@ -493,6 +493,7 @@ icon={btn.icon} loading={loading} disabled={disabled} + title={disabled ? (btn.reason || '') : ''} className={'mk-btn mk-' + btn.class} onClick={() => {this.actionTrigger()}} >{btn.label}</Button> @@ -518,7 +519,7 @@ return <div style={{display: 'inline-block'}} onClick={(e) => e.stopPropagation()}> <Button type="link" - title={show === 'icon' ? btn.label : ''} + title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} loading={loading} disabled={disabled} style={btn.style} diff --git a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx index 891cd34..cbc490b 100644 --- a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx +++ b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx @@ -478,11 +478,13 @@ exportExcel = (data) => { const { btn } = this.props + let columns = btn.verify.columns.filter(col => col.output !== 'false') + try { - let imgCol = btn.verify.columns.filter(col => col.type === 'image')[0] + let imgCol = columns.filter(col => col.type === 'image')[0] if (imgCol) { - const column = btn.verify.columns.map(item => { + const column = columns.map(item => { let col = { title: item.Text, key: item.Column, @@ -503,7 +505,7 @@ item.$Index = index + 1 + '' - btn.verify.columns.forEach((col, i) => { + columns.forEach((col, i) => { if (item[col.Column] && col.abs === 'true') { _row[col.Column] = Math.abs(item[col.Column]) } else { @@ -528,7 +530,7 @@ let colwidth = [] let abses = [] - btn.verify.columns.forEach(col => { + columns.forEach(col => { if (_topRow[col.Column]) return _header.push(col.Column) @@ -823,7 +825,7 @@ } // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 - if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { param.custom_script && console.info(`${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${param.custom_script}`) LText && console.info(LText) } @@ -856,7 +858,7 @@ execSuccess = (res) => { const { btn } = this.props - if (res && res.ErrCode === 'S') { // 鎵ц鎴愬姛 + if (res && (res.ErrCode === 'S' || !res.ErrCode)) { // 鎵ц鎴愬姛 notification.success({ top: 92, message: res.ErrMesg || this.state.dict['main.action.confirm.success'], @@ -939,6 +941,7 @@ className={'mk-btn mk-' + btn.class} icon={btn.icon} disabled={disabled} + title={disabled ? (btn.reason || '') : ''} onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} loading={loading} >{btn.label}</Button> @@ -963,7 +966,7 @@ return ( <Button type="link" - title={show === 'icon' ? btn.label : ''} + title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} loading={loading} disabled={disabled} style={btn.style} diff --git a/src/tabviews/zshare/actionList/index.jsx b/src/tabviews/zshare/actionList/index.jsx index 068783c..be12727 100644 --- a/src/tabviews/zshare/actionList/index.jsx +++ b/src/tabviews/zshare/actionList/index.jsx @@ -18,6 +18,7 @@ class ActionList extends Component { static propTpyes = { BID: PropTypes.any, // 涓昏〃ID + lock: PropTypes.any, // 鍙紪杈戣〃涓寜閽攣瀹� BData: PropTypes.any, // 涓昏〃鏁版嵁 selectedData: PropTypes.any, // 瀛愯〃涓�夋嫨鏁版嵁 Tab: PropTypes.any, // 濡傛灉褰撳墠鍏冪礌涓烘爣绛炬椂锛宼ab涓烘爣绛句俊鎭� @@ -35,7 +36,7 @@ } getButtonList = (actions) => { - const { BID, BData, MenuID, Tab, columns, setting, ContainerId, selectedData } = this.props + const { BID, BData, MenuID, Tab, columns, setting, ContainerId, selectedData, lock } = this.props return actions.map(item => { if (['exec', 'prompt', 'pop'].includes(item.OpenType)) { @@ -43,6 +44,7 @@ <NormalButton key={item.uuid} show={item.show || 'actionList'} + disabled={lock || false} BID={BID} Tab={Tab} btn={item} @@ -58,6 +60,7 @@ <ExcelInButton key={item.uuid} show={item.show || 'actionList'} + disabled={lock || false} BID={BID} Tab={Tab} btn={item} @@ -71,6 +74,7 @@ <ExcelOutButton key={item.uuid} show={item.show || 'actionList'} + disabled={lock || false} BID={BID} Tab={Tab} btn={item} @@ -83,6 +87,7 @@ <PopupButton key={item.uuid} show={item.show || 'actionList'} + disabled={lock || false} BID={BID} Tab={Tab} btn={item} @@ -96,6 +101,7 @@ <TabButton key={item.uuid} show={item.show || 'actionList'} + disabled={lock || false} btn={item} BData={BData} MenuID={MenuID} @@ -108,6 +114,7 @@ <NewPageButton key={item.uuid} show="actionList" + disabled={lock || false} btn={item} BData={BData} setting={setting} @@ -120,6 +127,7 @@ <ChangeUserButton key={item.uuid} show={item.show || 'actionList'} + disabled={lock || false} BID={BID} btn={item} BData={BData} @@ -133,6 +141,7 @@ <PrintButton key={item.uuid} show={item.show || 'actionList'} + disabled={lock || false} BID={BID} Tab={Tab} btn={item} diff --git a/src/tabviews/zshare/actionList/newpagebutton/index.jsx b/src/tabviews/zshare/actionList/newpagebutton/index.jsx index 8914d39..cb1f797 100644 --- a/src/tabviews/zshare/actionList/newpagebutton/index.jsx +++ b/src/tabviews/zshare/actionList/newpagebutton/index.jsx @@ -35,7 +35,7 @@ if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -74,7 +74,7 @@ if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) { if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� nextProps.selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -244,6 +244,7 @@ className={'mk-btn mk-' + btn.class} icon={btn.icon} disabled={disabled} + title={disabled ? (btn.reason || '') : ''} onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} >{btn.label}</Button> ) @@ -267,7 +268,7 @@ return ( <Button type="link" - title={show === 'icon' ? btn.label : ''} + title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} style={btn.style} disabled={disabled} icon={icon} diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 4b71efb..ac2b71c 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -60,7 +60,7 @@ if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -85,6 +85,10 @@ if (btn.OpenType === 'form') { let data = selectedData && selectedData[0] ? selectedData[0] : null this.setState({check: data && data[btn.field] === btn.openVal}) + } else if (btn.OpenType === 'formSubmit') { + this.setState({ + selines: selectedData || [] + }) } } @@ -113,7 +117,7 @@ if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) { if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� nextProps.selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -142,6 +146,10 @@ if (btn.OpenType === 'form') { let data = nextProps.selectedData && nextProps.selectedData[0] ? nextProps.selectedData[0] : null this.setState({check: data && data[btn.field] === btn.openVal}) + } else if (btn.OpenType === 'formSubmit') { + this.setState({ + selines: nextProps.selectedData || [] + }) } } @@ -164,13 +172,39 @@ } actionSubmit = (res) => { - const { btn } = this.props + const { btn, setting, BID } = this.props + const { selines } = this.state if (btn.uuid !== res.menuId) return + let data = selines || [] + + if (setting.supModule && !BID) { + notification.warning({ + top: 92, + message: '闇�瑕佷笂绾т富閿�硷紒', + duration: 3 + }) + return + } else if (btn.Ot !== 'notRequired' && data.length === 0) { + notification.warning({ + top: 92, + message: '璇烽�夋嫨琛岋紒', + duration: 5 + }) + return + } else if (btn.Ot === 'requiredSgl' && data.length !== 1) { + notification.warning({ + top: 92, + message: '璇烽�夋嫨鍗曡鏁版嵁锛�', + duration: 5 + }) + return + } + this.setState({ loading: true }) - this.execSubmit(this.state.selines, () => {}, res.form) + this.execSubmit(data, () => {}, res.form) } resetModuleParam = (menuId, btnId, param) => { @@ -300,12 +334,14 @@ }) if (btn.OpenType === 'formSubmit') { - MKEmitter.emit('mkFormSubmit', btn.uuid) + this.setState({}, () => { + MKEmitter.emit('mkFormSubmit', btn.uuid) + }) return } else if (btn.OpenType === 'prompt') { this.setState({loading: true}) confirm({ - title: this.state.dict['main.action.confirm.tip'], + title: btn.tipTitle || this.state.dict['main.action.confirm.tip'], onOk() { return new Promise(resolve => { _this.execSubmit(data, resolve) @@ -985,6 +1021,12 @@ _resolve() }) } + // xml璋冪敤鏂瑰紡 + // Api.directRequest('http://localhost:3001/test.xml', 'get', null, 'true').then(res => { + // let $x2js = new x2js() + // let jsonObj = $x2js.xml2js(res); + // console.info(jsonObj) + // }) /** * @description 鑷畾涔夎姹傚惊鐜墽琛� @@ -1172,7 +1214,7 @@ sql = _prevCustomScript + sql sql = sql + _backCustomScript - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { console.info(sql.replace(/\n\s{8}/ig, '\n')) } @@ -1209,7 +1251,7 @@ Sort: index + 1 })) - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { let sql = [...lineMap.values()].map(item => (` ${item.insert} ${item.selects.join(` union all @@ -1449,7 +1491,7 @@ const { btn } = this.props const { btnconfig, autoMatic } = this.state - if ((res && res.ErrCode === 'S') || autoMatic) { // 鎵ц鎴愬姛 + if ((res && (res.ErrCode === 'S' || !res.ErrCode)) || autoMatic) { // 鎵ц鎴愬姛 notification.success({ top: 92, message: res.ErrMesg || this.state.dict['main.action.confirm.success'], @@ -1485,6 +1527,15 @@ if (btn.output) { id = res.mk_b_id || res[btn.output] || '' } + let tabId = '' + if (btn.refreshTab && btn.refreshTab.length > 0) { + tabId = btn.refreshTab[btn.refreshTab.length - 1] + } + + if (tabId && btn.$MenuID === tabId) { // 鍒锋柊褰撳墠鑿滃崟鏃讹紝鍋滄鍏朵粬鎿嶄綔 + MKEmitter.emit('reloadMenuView', tabId, 'table') + return + } if (btn.execSuccess === 'closetab') { MKEmitter.emit('closeTabView', btn.$MenuID) @@ -1494,9 +1545,10 @@ MKEmitter.emit('refreshByButtonResult', btn.$menuId, btn.execSuccess, btn, id, this.state.selines) } - if (btn.refreshTab && btn.refreshTab.length > 0) { - MKEmitter.emit('reloadMenuView', btn.refreshTab[btn.refreshTab.length - 1], 'table') + if (tabId) { + MKEmitter.emit('reloadMenuView', tabId, 'table') } + if (btn.switchTab && btn.switchTab.length > 0) { let id = btn.switchTab[btn.switchTab.length - 1] let node = document.getElementById('tab' + id) @@ -1855,7 +1907,7 @@ } modelconfirm = () => { - const { BData } = this.props + const { BData, btn } = this.props const { btnconfig, selines } = this.state let _this = this @@ -1931,7 +1983,7 @@ this.execSubmit(selines, () => {}, result) } else { confirm({ - title: this.state.dict['main.action.confirm.tip'], + title: btn.tipTitle || this.state.dict['main.action.confirm.tip'], onOk() { return new Promise(resolve => { _this.execSubmit(selines, resolve, result) @@ -2041,9 +2093,9 @@ if (btn.OpenType === 'form') { if (btn.formType === 'switch') { - return <Switch loading={loading} checked={check} disabled={disabled || loading} onChange={(val,e) => {e.stopPropagation();this.actionTrigger()}} style={style} size={btn.size} checkedChildren={btn.openText || ''} unCheckedChildren={btn.closeText || ''}/> + return <Switch loading={loading} checked={check} disabled={disabled || loading} title={disabled ? (btn.reason || '') : ''} onChange={(val,e) => {e.stopPropagation();this.actionTrigger()}} style={style} className={btn.size === 'large' ? 'ant-switch-large' : ''} size={btn.size} checkedChildren={btn.openText || ''} unCheckedChildren={btn.closeText || ''}/> } else { - return <Checkbox disabled={disabled || loading} checked={check} onChange={(e) => {e.stopPropagation();this.actionTrigger()}} style={style}></Checkbox> + return <Checkbox disabled={disabled || loading} title={disabled ? (btn.reason || '') : ''} checked={check} onChange={(e) => {e.stopPropagation();this.actionTrigger()}} style={style}></Checkbox> } } else if (show === 'actionList') { return <div style={{display: 'inline-block'}} onClick={(e) => e.stopPropagation()}> @@ -2052,6 +2104,7 @@ icon={btn.icon} loading={loading} disabled={disabled} + title={disabled ? (btn.reason || '') : ''} className={'mk-btn mk-' + btn.class} onClick={() => {this.actionTrigger()}} >{(loadingNumber ? `(${loadingNumber})` : '') + btn.label}</Button> @@ -2087,7 +2140,7 @@ return <div style={{display: 'inline-block'}} onClick={(e) => e.stopPropagation()}> <Button type="link" - title={show === 'icon' ? btn.label : ''} + title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} loading={loading} disabled={disabled} style={btn.style || style} diff --git a/src/tabviews/zshare/actionList/popupbutton/index.jsx b/src/tabviews/zshare/actionList/popupbutton/index.jsx index f1b9b3b..0d95d4c 100644 --- a/src/tabviews/zshare/actionList/popupbutton/index.jsx +++ b/src/tabviews/zshare/actionList/popupbutton/index.jsx @@ -43,7 +43,7 @@ if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -85,7 +85,7 @@ if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) { if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� nextProps.selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -184,7 +184,7 @@ // 闇�瑕侀�夋嫨鍗曡鏃讹紝鏍¢獙鏁版嵁 notification.warning({ top: 92, - message: this.state.dict['main.action.confirm.selectSingleLine'], + message: data.length === 0 ? '璇烽�夋嫨琛岋紒' : '璇烽�夋嫨鍗曡鏁版嵁锛�', duration: 5 }) return @@ -350,12 +350,13 @@ className={'mk-btn mk-' + btn.class} icon={btn.icon} disabled={disabled} + title={disabled ? (btn.reason || '') : ''} onClick={() => {this.actionTrigger()}} loading={loading} >{btn.label}</Button> : null} {show !== 'actionList' ? <Button type="link" - title={show === 'icon' ? btn.label : ''} + title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} loading={loading} disabled={disabled} style={btn.style} diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx index 90ae0dd..6c14dd2 100644 --- a/src/tabviews/zshare/actionList/printbutton/index.jsx +++ b/src/tabviews/zshare/actionList/printbutton/index.jsx @@ -54,7 +54,7 @@ if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -99,7 +99,7 @@ if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) { if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� nextProps.selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -1269,7 +1269,7 @@ const { btn } = this.props const { autoMatic } = this.state - if ((res && res.ErrCode === 'S') || autoMatic) { // 鎵ц鎴愬姛 + if ((res && (res.ErrCode === 'S' || !res.ErrCode)) || autoMatic) { // 鎵ц鎴愬姛 notification.success({ top: 92, message: res.ErrMesg || this.state.dict['main.action.confirm.success'], @@ -1618,6 +1618,7 @@ icon={btn.icon} loading={loading} disabled={disabled} + title={disabled ? (btn.reason || '') : ''} className={'mk-btn mk-' + btn.class} onClick={() => {this.actionTrigger()}} >{loadingNumber ? `(${loadingNumber})` : '' + btn.label}</Button> @@ -1643,7 +1644,7 @@ return <div style={{display: 'inline-block'}} onClick={(e) => e.stopPropagation()}> <Button type="link" - title={show === 'icon' ? btn.label : ''} + title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} loading={loading} disabled={disabled} style={btn.style} diff --git a/src/tabviews/zshare/actionList/tabbutton/index.jsx b/src/tabviews/zshare/actionList/tabbutton/index.jsx index 42774f4..353a566 100644 --- a/src/tabviews/zshare/actionList/tabbutton/index.jsx +++ b/src/tabviews/zshare/actionList/tabbutton/index.jsx @@ -35,7 +35,7 @@ if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -74,7 +74,7 @@ if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) { if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒� nextProps.selectedData.forEach(item => { - let s = item[btn.controlField] + '' + let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : '' if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) { disabled = true } @@ -218,6 +218,7 @@ className={'mk-btn mk-' + btn.class} icon={btn.icon} disabled={disabled} + title={disabled ? (btn.reason || '') : ''} onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} >{btn.label}</Button> ) @@ -241,7 +242,7 @@ return ( <Button type="link" - title={show === 'icon' ? btn.label : ''} + title={disabled ? (btn.reason || '') : (show === 'icon' ? btn.label : '')} style={btn.style} disabled={disabled} icon={icon} diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx index 9c61db0..1db51b6 100644 --- a/src/tabviews/zshare/mutilform/index.jsx +++ b/src/tabviews/zshare/mutilform/index.jsx @@ -77,9 +77,21 @@ linkFields[item.linkField].push({field: item.field, uuid: item.uuid}) } - if (item.type === 'split' || item.type === 'hint') return true + if (item.type === 'split') return true + if (item.type === 'hint') { + if (item.field && data && data[item.field]) { + item.message = data[item.field] + } + delete item.field + return true + } else if (item.type === 'date') { // 鏃堕棿鎼滅储 + item.precision = item.precision || 'day' + } else if (item.type === 'datetime') { + item.type = 'date' + item.precision = 'second' + } - if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'linkMain', 'funcvar', 'date', 'datemonth', 'datetime', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false + if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false // 鏁版嵁鑷姩濉厖 let readin = item.readin !== 'false' @@ -101,10 +113,17 @@ if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type)) { item.options = item.options || [] - item.options = item.options.map(cell => { + // item.options = item.options.map(cell => { + // cell.value = cell.Value + // cell.label = cell.Text + + // return cell + // }) + item.options = item.options.filter(cell => { cell.value = cell.Value cell.label = cell.Text - return cell + + return !cell.Hide }) if (item.setAll === 'true' && ['select', 'link', 'radio'].includes(item.type)) { // 娣诲姞绌哄�� item.options.unshift({ @@ -125,12 +144,24 @@ if (item.type === 'linkMain') { newval = BData && BData[item.field] ? BData[item.field] : '$empty' } else if (item.type === 'date') { // 鏃堕棿鎼滅储 + let format = 'YYYY-MM-DD' + let _format = 'YYYY-MM-DD HH:mm:ss' + if (item.precision === 'day') { + _format = 'YYYY-MM-DD' + } else if (item.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (item.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (item.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + if (newval !== '$empty') { - newval = moment(newval, 'YYYY-MM-DD').format('YYYY-MM-DD') + newval = moment(newval, format).format(_format) newval = newval === 'Invalid date' ? '$empty' : newval } if (newval === '$empty' && item.initval) { - newval = moment().subtract(item.initval, 'days').format('YYYY-MM-DD') + newval = moment().subtract(item.initval, 'days').format(_format) } } else if (item.type === 'datemonth') { if (newval !== '$empty') { @@ -140,14 +171,18 @@ if (newval === '$empty' && item.initval) { newval = moment().subtract(item.initval, 'month').format('YYYY-MM') } - } else if (item.type === 'datetime') { - if (newval !== '$empty') { - newval = moment(newval, 'YYYY-MM-DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss') - newval = newval === 'Invalid date' ? '$empty' : newval - } - if (newval === '$empty' && item.initval) { - newval = moment().subtract(item.initval, 'days').format('YYYY-MM-DD') + ' 00:00:00' - } + // } else if (item.type === 'datetime') { + // if (newval !== '$empty') { + // newval = moment(newval, 'YYYY-MM-DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss') + // newval = newval === 'Invalid date' ? '$empty' : newval + // } + // if (newval === '$empty' && item.initval) { + // if (item.initval === '0') { + // newval = moment().format('YYYY-MM-DD HH:mm:ss') + // } else { + // newval = moment().subtract(item.initval, 'days').format('YYYY-MM-DD') + ' 00:00:00' + // } + // } } else if (item.type === 'switch') { // 寮�鍏冲彧鎺ユ敹鍥哄畾鍊� if (newval !== '$empty' && (newval === item.closeVal || newval === item.openVal)) { @@ -196,10 +231,14 @@ }, { required: item.required === 'true', message: item.label + '涓嶅彲涓虹┖!' - }, { - max: item.fieldlength, - message: formRule.input.formMessage.replace('@max', item.fieldlength) }] + + if (!item.lenControl || item.lenControl === 'limit') { + _rules.push({ + max: item.fieldlength, + message: formRule.input.formMessage.replace('@max', item.fieldlength) + }) + } if (item.regular) { if (item.regular === 'number') { @@ -314,6 +353,8 @@ fieldMap.set(key, supItem) }) + let reFieldsVal = null + formlist = formlist.map(cell => { if (cell.labelwidth) { cell.labelCol = {style: {width: cell.labelwidth + '%'}} @@ -321,6 +362,34 @@ } if (!cell.field || !fieldMap.has(cell.field)) return cell let item = fieldMap.get(cell.field) + + // 涓嬬骇琛ㄥ崟鎺у埗-瀛楁鍐欏叆 + if ((['select', 'radio', 'link'].includes(item.type) || (item.type === 'checkcard' && item.multiple !== 'true')) && item.linkSubField) { + item.subFields = [] + item.linkSubField.forEach(m => { + let n = fieldMap.get(m) + if (n && ['text', 'number', 'textarea'].includes(n.type)) { + item.subFields.push({ + uuid: n.uuid, + field: m + }) + } + }) + + if (item.subFields.length === 0) { + item.subFields = null + } else if (item.oriOptions.length > 0) { + item.oriOptions = item.oriOptions.map(cell => { + item.subFields.forEach(m => { + cell[m.field] = cell[m.field] === undefined ? '' : cell[m.field] + }) + return cell + }) + + item.options = fromJS(item.oriOptions).toJS() + } + item.linkSubField = null + } // if (item.type === 'link') { if (item.linkField) { @@ -350,35 +419,7 @@ if (linkFields[item.field]) { item.linkFields = linkFields[item.field] } - - // 涓嬬骇琛ㄥ崟鎺у埗-瀛楁鍐欏叆 - if ((['select', 'radio', 'link'].includes(item.type) || (item.type === 'checkcard' && item.multiple !== 'true')) && item.linkSubField) { - item.subFields = [] - item.linkSubField.forEach(m => { - let n = fieldMap.get(m) - if (n && ['text', 'number', 'textarea'].includes(n.type)) { - item.subFields.push({ - uuid: n.uuid, - field: m - }) - } - }) - - if (item.subFields.length === 0) { - item.subFields = null - } else if (item.options.length > 0) { - item.options = item.options.map(cell => { - item.subFields.forEach(m => { - cell[m.field] = cell[m.field] === undefined ? '' : cell[m.field] - }) - return cell - }) - - item.oriOptions = fromJS(item.options).toJS() - } - item.linkSubField = null - } - + if (item.enter === 'tab' || item.enter === 'sub') { if (fieldMap.has(item.tabField)) { item.tabUuid = fieldMap.get(item.tabField).uuid @@ -388,9 +429,32 @@ item.tabUuid = item.uuid } } + + if (item.subFields && item.options.length > 0) { + // eslint-disable-next-line + let option = item.options.filter(cell => item.initval == cell.value)[0] + + if (option) { + reFieldsVal = reFieldsVal || {} + item.subFields.forEach(n => { + reFieldsVal[n.field] = option[n.field] + }) + } + } return item }) + + if (reFieldsVal) { + formlist = formlist.map(cell => { + if (reFieldsVal[cell.field] === undefined) return cell + + cell.initval = reFieldsVal[cell.field] + record[cell.field] = reFieldsVal[cell.field] + + return cell + }) + } this.record = record @@ -576,6 +640,7 @@ } resetFormList = (result) => { + let reFieldsVal = null let _formlist = fromJS(this.state.formlist).toJS().map(item => { if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type) && result[item.field] && result[item.field].length > 0) { let options = [] @@ -616,15 +681,42 @@ } else { item.options = item.oriOptions } - } - if (['select', 'link', 'radio'].includes(item.type) && typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) { // 閫変腑绗竴椤� - item.initval = item.options[0] ? item.options[0].value : '' - this.record[item.field] = item.initval + if (['select', 'link', 'radio'].includes(item.type) && typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) { // 閫変腑绗竴椤� + item.initval = item.options[0] ? item.options[0].value : '' + this.record[item.field] = item.initval + } + + if (item.subFields && item.options.length > 0) { + // eslint-disable-next-line + let option = item.options.filter(cell => item.initval == cell.value)[0] + + if (option) { + reFieldsVal = reFieldsVal || {} + item.subFields.forEach(n => { + reFieldsVal[n.field] = option[n.field] + }) + } + } } return item }) + + if (reFieldsVal) { + _formlist = _formlist.map((cell, i) => { + if (reFieldsVal[cell.field] === undefined) return cell + + cell.initval = reFieldsVal[cell.field] + this.record[cell.field] = reFieldsVal[cell.field] + + setTimeout(() => { + MKEmitter.emit('mkFC', 'input', cell.uuid, reFieldsVal[cell.field]) + }, i * 5) + + return cell + }) + } this.setState({ formlist: _formlist @@ -647,43 +739,43 @@ recordChange = (values, item) => { this.record = {...this.record, ...values} - if (item && item.controlFields) { - let map = new Map() - this.state.formlist.forEach(cell => { - if (!cell.field) return - map.set(cell.field, cell) - }) + if (!item || !item.controlFields) return - let reset = (current) => { - let val = this.record[current.field] + let map = new Map() + this.state.formlist.forEach(cell => { + if (!cell.field) return + map.set(cell.field, cell) + }) - current.controlFields.forEach(cell => { - let m = map.get(cell.field) - m.hidden = current.hidden || !cell.values.includes(val) + let reset = (current) => { + let val = this.record[current.field] - if (m.hidden) { - m.initval = this.record[m.field] - } + current.controlFields.forEach(cell => { + let m = map.get(cell.field) + m.hidden = current.hidden || !cell.values.includes(val) - map.set(cell.field, m) + if (m.hidden) { + m.initval = this.record[m.field] + } - if (m.controlFields) { - reset(m) - } - }) - } + map.set(cell.field, m) - reset(item) - - this.setState({ - formlist: this.state.formlist.map(cell => { - if (cell.field) { - return map.get(cell.field) - } - return cell - }) + if (m.controlFields) { + reset(m) + } }) } + + reset(item) + + this.setState({ + formlist: this.state.formlist.map(cell => { + if (cell.field) { + return map.get(cell.field) + } + return cell + }) + }) } getFields() { @@ -698,21 +790,23 @@ if (item.type === 'split') { fields.push( <Col span={24} key={index}> - <p className="mk-form-split-line">{item.label}</p> + <p className="mk-form-split-line" style={item.style}>{item.label}</p> </Col> ) } else if (item.type === 'hint') { fields.push( <Col span={item.span || 24} key={index}> - <Form.Item className="hint" colon={!!item.label} label={item.label || ' '} labelCol={item.labelCol} wrapperCol={item.wrapperCol}> - <div className="message">{item.message}</div> + <Form.Item className="hint" colon={false} label={item.label ? <span className="mk-form-label" style={item.style}>{item.label}</span> : ' '} labelCol={item.labelCol} wrapperCol={item.wrapperCol}> + <div className="message" style={item.style}>{item.message}</div> </Form.Item> </Col> ) } else { let content = null let className = '' - let label = item.tooltip ? <Tooltip placement="topLeft" title={item.tooltip}><QuestionCircleOutlined style={{color: '#c49f47', marginRight: '3px'}}/>{item.label}</Tooltip> : item.label + let label = item.tooltip ? <Tooltip placement="topLeft" title={item.tooltip}><QuestionCircleOutlined style={{color: '#c49f47', marginRight: '3px'}}/> + <span className="mk-form-label" style={item.style}>{item.label}</span> + </Tooltip> : <span className="mk-form-label" style={item.style}>{item.label}</span> if (item.type === 'text' || item.type === 'linkMain') { content = (<MKInput config={item} onChange={(val, defer) => !defer && this.recordChange({[item.field]: val})} onSubmit={this.props.inputSubmit} />) @@ -731,7 +825,7 @@ content = (<MKCheckbox config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>) } else if (item.type === 'radio') { content = (<MKRadio config={item} onChange={(val, other) => this.recordChange({[item.field]: val, ...other}, item)}/>) - } else if (item.type === 'date' || item.type === 'datemonth' || item.type === 'datetime') { + } else if (item.type === 'date' || item.type === 'datemonth') { content = (<MKDatePicker config={item} onChange={(val) => this.recordChange({[item.field]: val})} />) } else if (item.type === 'fileupload') { className = item.readonly ? 'readonly' : '' @@ -752,6 +846,7 @@ <Col span={item.span || 24} key={index}> <Form.Item label={label} + colon={false} className={className} extra={item.extra || null} labelCol={item.labelCol} @@ -815,6 +910,14 @@ _item.type = 'text' } } + + if (item.type === 'text' && item.lenControl && item.lenControl !== 'limit') { + if (item.lenControl === 'left') { + _item.value = _item.value.substr(0, item.fieldlength) + } else { + _item.value = _item.value.slice(-item.fieldlength) + } + } search.push(_item) }) diff --git a/src/tabviews/zshare/mutilform/index.scss b/src/tabviews/zshare/mutilform/index.scss index 537c050..3eeeb15 100644 --- a/src/tabviews/zshare/mutilform/index.scss +++ b/src/tabviews/zshare/mutilform/index.scss @@ -17,6 +17,16 @@ margin-left: 0; } } + .mk-form-label::after { + content: ':'; + position: relative; + top: -0.5px; + margin: 0 8px 0 2px; + text-decoration: none; + } + .ant-form-item-no-colon::after { + content: none!important; + } .ant-form-item { display: flex; } diff --git a/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx b/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx index 9014cbb..d0b2c65 100644 --- a/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx +++ b/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx @@ -145,6 +145,19 @@ }, () => { this.props.onChange(item.$value, other) }) + } else { + let other = {} + config.linkFields && config.linkFields.forEach((m, i) => { + setTimeout(() => { + MKEmitter.emit('mkFP', m.uuid, '', 0) + }, (i + 1) * 100) + }) + + this.setState({ + selectKeys: '' + }, () => { + this.props.onChange('', other) + }) } } diff --git a/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx b/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx index b2acd83..a3d0899 100644 --- a/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx +++ b/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx @@ -20,13 +20,19 @@ if (config.type === 'datemonth') { mode = 'month' format = 'YYYY-MM' - } else if (config.type === 'datetime') { - mode = 'datetime' + } else if (config.precision === 'day') { + format = 'YYYY-MM-DD' + } else if (config.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (config.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (config.precision === 'second') { format = 'YYYY-MM-DD HH:mm:ss' } + let value = config.initval || null if (value) { - value = moment(value, format) + value = moment(value, 'YYYY-MM-DD HH:mm:ss') } this.state = { @@ -49,9 +55,19 @@ } onChange = (val) => { - const { format } = this.state + const { config } = this.props + const { format, mode } = this.state + let _val = val ? moment(val).format(format) : '' - this.props.onChange(val ? moment(val).format(format) : '') + if (mode === 'date' && _val) { + if (config.precision === 'hour') { + _val = _val + ':00:00' + } else if (config.precision === 'minute') { + _val = _val + ':00' + } + } + + this.props.onChange(_val) } disabledDate = (current) => { @@ -72,14 +88,12 @@ render() { const { config } = this.props - const { value, mode } = this.state + const { value, mode, format } = this.state if (mode === 'date') { - return <DatePicker defaultValue={value} disabledDate={this.disabledDate} disabled={config.readonly} onChange={this.onChange}/> + return <DatePicker dropdownClassName={'mk-date-picker ' + config.precision} showTime={format !== 'YYYY-MM-DD'} format={format} defaultValue={value} disabledDate={this.disabledDate} disabled={config.readonly} onChange={this.onChange}/> } else if (mode === 'month') { return <MonthPicker defaultValue={value} disabled={config.readonly} onChange={this.onChange}/> - } else if (mode === 'datetime') { - return <DatePicker defaultValue={value} disabledDate={this.disabledDate} showTime disabled={config.readonly} onChange={this.onChange}/> } } } diff --git a/src/tabviews/zshare/normalTable/index.jsx b/src/tabviews/zshare/normalTable/index.jsx index bc497d5..2481f06 100644 --- a/src/tabviews/zshare/normalTable/index.jsx +++ b/src/tabviews/zshare/normalTable/index.jsx @@ -115,8 +115,17 @@ } } - columns.forEach((item, index) => { - if (item.hidden === true || item.Hide === 'true') return + columns.forEach(item => { + if (item.hidden === true || item.Hide === 'true') { + if (item.marks) { // 鎻愬彇琛屾爣璁� + item.marks.forEach(mark => { + if (mark.signType !== 'line') return + + lineMarks.push(mark) + }) + } + return + } let cell = null if (item.type === 'colspan') { @@ -216,7 +225,11 @@ } } - _columns.push(cell) + if (item.type === 'action' && item.position === 'left') { + _columns.unshift(cell) + } else { + _columns.push(cell) + } }) if (rowspans.length === 0) { @@ -231,7 +244,7 @@ pageOptions.push(size) pageOptions = pageOptions.sort((a, b) => a - b) } - + this.setState({ pageOptions, columns: _columns, @@ -265,12 +278,20 @@ MKEmitter.removeListener('mkTableCheckTopLine', this.mkTableCheckTopLine) } - mkTableCheckTopLine = (id) => { - if (id !== this.props.MenuID) return + mkTableCheckTopLine = (menuid, id) => { + const {MenuID, data} = this.props - if (this.props.data.length > 0) { - this.changeRow(this.props.data[0], 0) + if (menuid !== MenuID || data.length === 0) return + + let index = 0 + if (id) { + index = data.findIndex(item => item.$$uuid === id) + if (index === -1) { + index = 0 + } } + + this.changeRow(data[index], index) } autoSelectData = (id, index) => { diff --git a/src/tabviews/zshare/topSearch/advanceform/index.jsx b/src/tabviews/zshare/topSearch/advanceform/index.jsx index 8680e75..ae479bd 100644 --- a/src/tabviews/zshare/topSearch/advanceform/index.jsx +++ b/src/tabviews/zshare/topSearch/advanceform/index.jsx @@ -53,7 +53,11 @@ if (content) { fields.push( <Col span={item.ratio || 6} key={index}> - <Form.Item label={item.labelShow !== 'false' ? item.label : ''}> + <Form.Item + labelCol={item.labelCol} + wrapperCol={item.wrapperCol} + label={item.labelShow !== 'false' ? item.label : ''} + > {getFieldDecorator(item.field, { initialValue: item.initval, rules: _rules diff --git a/src/tabviews/zshare/topSearch/index.jsx b/src/tabviews/zshare/topSearch/index.jsx index 8f02a8b..39e88fc 100644 --- a/src/tabviews/zshare/topSearch/index.jsx +++ b/src/tabviews/zshare/topSearch/index.jsx @@ -101,6 +101,13 @@ linkFields[item.linkField].push({field: item.field, uuid: item.uuid}) } + let labelwidth = item.labelwidth || 33.3 + if (item.labelShow === 'false') { + labelwidth = 0 + } + item.labelCol = {style: {width: labelwidth + '%'}} + item.wrapperCol = {style: {width: (100 - labelwidth) + '%'}} + if (fieldMap.has(item.field)) { item.field = item.field + '@tail@' } @@ -116,7 +123,15 @@ } if (item.advanced && item.initval) { - advanceValues.push({field: item.field, type: item.type, label: item.label, value: item.initval}) + let val = item.initval + if (item.precision === 'hour') { + if (/,/ig.test(val)) { + val = val.split(',').map(m => m + ':00').join(',') + } else { + val = val + ':00' + } + } + advanceValues.push({field: item.field, type: item.type, label: item.label, value: val}) } if (item.type === 'group') { @@ -489,7 +504,12 @@ if (content) { fields.push( <Col span={item.ratio || 6} key={index}> - <Form.Item className={className} label={item.labelShow !== 'false' ? item.label : ''}> + <Form.Item + className={className} + label={item.labelShow !== 'false' ? item.label : ''} + labelCol={item.labelCol} + wrapperCol={item.wrapperCol} + > {getFieldDecorator(field, { initialValue: item.initval, rules: _rules @@ -580,7 +600,15 @@ record[item.field] = item.initval } if (item.advanced && item.initval) { - advanceValues.push({field: item.field, type: item.type, label: item.label, value: item.initval}) + let val = item.initval + if (item.precision === 'hour') { + if (/,/ig.test(val)) { + val = val.split(',').map(m => m + ':00').join(',') + } else { + val = val + ':00' + } + } + advanceValues.push({field: item.field, type: item.type, label: item.label, value: val}) } return item @@ -667,6 +695,7 @@ label: item.label, match: item.match, required: item.required, + precision: item.precision || '', forbid: item.$forbid }) } @@ -684,6 +713,13 @@ let val = this.record[item.field] if (val || val === 0) { + if (item.precision === 'hour') { + if (/,/ig.test(val)) { + val = val.split(',').map(m => m + ':00').join(',') + } else { + val = val + ':00' + } + } advanceValues.push({field: item.field, type: item.type, label: item.label, value: val}) } }) diff --git a/src/tabviews/zshare/topSearch/mkDatePicker/index.jsx b/src/tabviews/zshare/topSearch/mkDatePicker/index.jsx index 4ebc9b2..859be1a 100644 --- a/src/tabviews/zshare/topSearch/mkDatePicker/index.jsx +++ b/src/tabviews/zshare/topSearch/mkDatePicker/index.jsx @@ -23,9 +23,19 @@ } else if (config.type === 'week') { mode = 'week' format = 'YYYY-MM-DD' - } else if (config.type === 'daterange') { - mode = 'daterange' - format = 'YYYY-MM-DD' + } else { + if (config.type === 'daterange') { + mode = 'daterange' + } + if (config.precision === 'day') { + format = 'YYYY-MM-DD' + } else if (config.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (config.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (config.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } } let value = config.initval || null @@ -43,6 +53,7 @@ this.state = { value, mode, + precision: config.precision || 'day', format } } @@ -74,16 +85,16 @@ } render() { - const { value, mode } = this.state + const { value, mode, format, precision } = this.state if (mode === 'date') { - return <DatePicker value={value} onChange={this.onChange}/> + return <DatePicker dropdownClassName={'mk-date-picker ' + precision} value={value} showTime={format !== 'YYYY-MM-DD'} format={format} onChange={this.onChange}/> } else if (mode === 'month') { return <MonthPicker value={value} onChange={this.onChange}/> } else if (mode === 'week') { return <WeekPicker value={value} onChange={this.onChange}/> } else if (mode === 'daterange') { - return <RangePicker placeholder={['寮�濮嬫棩鏈�', '缁撴潫鏃ユ湡']} value={value} onChange={this.onChange}/> + return <RangePicker dropdownClassName={'mk-date-picker ' + precision} placeholder={['寮�濮嬫棩鏈�', '缁撴潫鏃ユ湡']} showTime={format !== 'YYYY-MM-DD'} format={format} value={value} onChange={this.onChange}/> } } } diff --git a/src/templates/formtabconfig/actionform/index.jsx b/src/templates/formtabconfig/actionform/index.jsx index 503b392..2c3ae5b 100644 --- a/src/templates/formtabconfig/actionform/index.jsx +++ b/src/templates/formtabconfig/actionform/index.jsx @@ -243,7 +243,7 @@ this.state.formlist.forEach((item, index) => { if (item.hidden) return - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { let _rules = [] if (item.key === 'innerFunc') { let str = '^(' + item.fields.join('|') + ')' @@ -290,7 +290,7 @@ </Form.Item> </Col> ) - } else if (item.type === 'number') { // 鏂囨湰鎼滅储 + } else if (item.type === 'number') { fields.push( <Col span={12} key={index}> <Form.Item label={item.tooltip ? @@ -324,8 +324,6 @@ ] })( <Select - showSearch - filterOption={(input, option) => option.props.children[2].toLowerCase().indexOf(input.toLowerCase()) >= 0} getPopupContainer={() => document.getElementById('winter')} disabled={!!item.readonly} > diff --git a/src/templates/formtabconfig/dragelement/index.jsx b/src/templates/formtabconfig/dragelement/index.jsx index 4816521..3621397 100644 --- a/src/templates/formtabconfig/dragelement/index.jsx +++ b/src/templates/formtabconfig/dragelement/index.jsx @@ -59,6 +59,13 @@ delete val.originUuid delete val.iscopy + delete val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + val.$srcId = srcid + } + oInput.value = window.btoa(window.encodeURIComponent(JSON.stringify(val))) document.body.appendChild(oInput) oInput.select() diff --git a/src/templates/formtabconfig/index.jsx b/src/templates/formtabconfig/index.jsx index 297b37b..317f850 100644 --- a/src/templates/formtabconfig/index.jsx +++ b/src/templates/formtabconfig/index.jsx @@ -1942,7 +1942,7 @@ <Modal title={this.state.card && this.state.card.iscopy ? '琛ㄥ崟-澶嶅埗' : '琛ㄥ崟-缂栬緫'} visible={modaltype === 'search'} - width={700} + width={950} maskClosable={false} onOk={this.handleSubmit} confirmLoading={this.state.sqlVerifing} @@ -2009,7 +2009,7 @@ wrapClassName="common-table-fields-modal" title={'楠岃瘉淇℃伅'} visible={this.state.profileVisible} - width={'75vw'} + width={'90vw'} maskClosable={false} okText={this.state.dict['model.submit']} onOk={this.verifySubmit} diff --git a/src/templates/menuconfig/menuform/index.jsx b/src/templates/menuconfig/menuform/index.jsx index b7de0a9..8a1ae15 100644 --- a/src/templates/menuconfig/menuform/index.jsx +++ b/src/templates/menuconfig/menuform/index.jsx @@ -70,7 +70,7 @@ })( <Select showSearch - filterOption={(input, option) => option.props.children[2].toLowerCase().indexOf(input.toLowerCase()) >= 0} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} onChange={(value) => {this.openTypeChange(item.key, value)}} getPopupContainer={() => document.getElementById('form-box')} > diff --git a/src/templates/modalconfig/checkCard/index.scss b/src/templates/modalconfig/checkCard/index.scss index 8a6d3aa..230aa8d 100644 --- a/src/templates/modalconfig/checkCard/index.scss +++ b/src/templates/modalconfig/checkCard/index.scss @@ -1,5 +1,8 @@ .check-card-edit-box { line-height: 1.5; + .ant-col { + float: left; + } .card-cell { position: relative; border: 1px solid #bcbcbc; diff --git a/src/templates/modalconfig/dragelement/card.jsx b/src/templates/modalconfig/dragelement/card.jsx index 662a035..bbd5db0 100644 --- a/src/templates/modalconfig/dragelement/card.jsx +++ b/src/templates/modalconfig/dragelement/card.jsx @@ -1,11 +1,12 @@ import React from 'react' import { useDrag, useDrop } from 'react-dnd' import { Select, DatePicker, Input, InputNumber, Button, Popover, Switch, Radio, Checkbox, Form, Rate } from 'antd' -import { QuestionCircleOutlined, UploadOutlined, EditOutlined, CopyOutlined, CloseOutlined, StarFilled } from '@ant-design/icons' +import { QuestionCircleOutlined, UploadOutlined, EditOutlined, CopyOutlined, CloseOutlined, StarFilled, FontColorsOutlined } from '@ant-design/icons' import moment from 'moment' import asyncComponent from '@/utils/asyncComponent' import MkIcon from '@/components/mk-icon' +import MKEmitter from '@/utils/events.js' import './index.scss' const { MonthPicker } = DatePicker @@ -51,6 +52,12 @@ copyCard(id) } + const changeStyle = () => { + let options = ['font'] + + MKEmitter.emit('changeStyle', ['form', card.uuid], options, card.style || {}) + } + let selectval = '' if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') { if (card.initval) { @@ -76,11 +83,19 @@ } else if (card.type === 'color') { formItem = (<ColorSketch value={card.initval || 'transparent'}/>) } else if (card.type === 'date') { - formItem = (<DatePicker value={card.initval ? moment().subtract(card.initval, 'days') : null} />) + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + formItem = (<DatePicker format={format} value={card.initval ? moment().subtract(card.initval, 'days') : null} />) } else if (card.type === 'datemonth') { formItem = (<MonthPicker value={card.initval ? moment().subtract(card.initval, 'month') : null} />) } else if (card.type === 'datetime') { - formItem = (<DatePicker showTime value={card.initval ? moment().subtract(card.initval, 'days') : null} />) + formItem = (<DatePicker format='YYYY-MM-DD HH:mm:ss' value={card.initval ? moment().subtract(card.initval, 'days') : null} />) } else if (card.type === 'textarea') { formItem = (<TextArea value={card.initval} placeholder={card.placeholder || ''} autoSize={{ minRows: 2, maxRows: 6 }} />) } else if (card.type === 'brafteditor') { @@ -115,24 +130,23 @@ <Checkbox value="D">D</Checkbox> </Checkbox.Group>) } else if (card.type === 'hint') { - formItem = <div style={{marginTop: '10px', color: 'rgba(0, 0, 0, 0.85)', lineHeight: '1.5'}}>{card.message}</div> + formItem = <div style={{marginTop: '10px', color: 'rgba(0, 0, 0, 0.85)', lineHeight: '1.5', ...card.style}}>{card.message}</div> } else if (card.type === 'split') { - formItem = <div className="split-line">{card.label}</div> + formItem = <div className="split-line" style={card.style}>{card.label}</div> } else if (card.type === 'checkcard') { className += ' checkcard' formItem = <CheckCard config={card} /> } - let _label = card.label - let colon = !!card.label + let _label = <span className="mk-form-label" style={card.style}>{card.label}</span> + if (card.tooltip) { - _label = <span><QuestionCircleOutlined className="mk-form-tip" />{card.label}</span> + _label = <><QuestionCircleOutlined className="mk-form-tip" /><span className="mk-form-label" style={card.style}>{card.label}</span></> } if (card.type === 'brafteditor' && card.hidelabel === 'true') { _label = null - colon = false - } else if (card.type === 'hint') { - _label = _label || ' ' + } else if (card.type === 'hint' && !card.label) { + _label = ' ' } return ( @@ -140,6 +154,7 @@ <div className="mk-popover-control"> <EditOutlined className="edit" onClick={edit} /> <CopyOutlined className="copy" onClick={copy} /> + <FontColorsOutlined className="style" onClick={changeStyle} /> <CloseOutlined className="close" onClick={close} /> </div> } trigger="hover"> @@ -147,7 +162,7 @@ <div ref={node => drag(drop(node))} onDoubleClick={edit}> {card.type === 'split' ? formItem : <Form.Item className={className} - colon={colon} + colon={false} label={_label} required={card.required === 'true'} extra={card.extra || null} @@ -155,8 +170,9 @@ wrapperCol={card.labelwidth ? {style: {width: (100 - card.labelwidth) + '%'}} : null} > {formItem} + <div></div> {showField ? <div className="field-name" style={card.writein === 'false' ? {color: 'orange'} : {}}> - {card.field}{card.hidden === 'true' ? '锛堥殣钘忥級' : ''}{card.readonly === 'true' ? '锛堝彧璇伙級' : ''} + {card.field}{card.hidden === 'true' || card.type === 'funcvar' ? '锛堥殣钘忥級' : ''}{card.readonly === 'true' ? '锛堝彧璇伙級' : ''}{card.linkField ? <span style={{color: '#1890ff'}}>{`锛堝叧鑱�${card.linkField}锛塦}</span> : ''}{card.supField ? <span style={{color: '#8E44AD'}}>{`锛堜笂绾�${card.supField}锛塦}</span> : ''} </div> : ''} </Form.Item>} </div> diff --git a/src/templates/modalconfig/dragelement/index.jsx b/src/templates/modalconfig/dragelement/index.jsx index 437fc2b..e0dc731 100644 --- a/src/templates/modalconfig/dragelement/index.jsx +++ b/src/templates/modalconfig/dragelement/index.jsx @@ -54,6 +54,13 @@ let val = JSON.parse(JSON.stringify(_card)) val.copyType = 'form' + delete val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + val.$srcId = srcid + } + oInput.value = window.btoa(window.encodeURIComponent(JSON.stringify(val))) document.body.appendChild(oInput) oInput.select() diff --git a/src/templates/modalconfig/dragelement/index.scss b/src/templates/modalconfig/dragelement/index.scss index 82c2213..50b59b2 100644 --- a/src/templates/modalconfig/dragelement/index.scss +++ b/src/templates/modalconfig/dragelement/index.scss @@ -33,6 +33,16 @@ line-height: 1; } } + .mk-form-label::after { + content: ':'; + position: relative; + top: -0.5px; + margin: 0 8px 0 2px; + text-decoration: none; + } + .ant-form-item-no-colon::after { + content: none!important; + } .ant-form-item { cursor: move; display: flex; diff --git a/src/templates/modalconfig/index.jsx b/src/templates/modalconfig/index.jsx index 6b01727..7e56c2c 100644 --- a/src/templates/modalconfig/index.jsx +++ b/src/templates/modalconfig/index.jsx @@ -20,6 +20,7 @@ import asyncComponent from '@/utils/asyncComponent' import { BaseConfig, SearchItems } from './source' import { updateForm } from '@/utils/utils-update.js' +import MKEmitter from '@/utils/events.js' import './index.scss' const { Panel } = Collapse @@ -28,6 +29,7 @@ const Versions = asyncComponent(() => import('@/menu/versions')) const ReplaceField = asyncComponent(() => import('@/menu/replaceField')) +const StyleController = asyncComponent(() => import('@/menu/stylecontroller')) const ModalForm = asyncComponent(() => import('@/templates/zshare/modalform')) const EditComponent = asyncComponent(() => import('@/templates/zshare/editcomponent')) const DragElement = asyncComponent(() => import('./dragelement')) @@ -129,6 +131,7 @@ } componentDidMount() { + MKEmitter.addListener('submitStyle', this.getStyle) document.onkeydown = (event) => { let e = event || window.event let keyCode = e.keyCode || e.which || e.charCode @@ -161,6 +164,7 @@ * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊 */ componentWillUnmount () { + MKEmitter.removeListener('submitStyle', this.getStyle) this.setState = () => { return } @@ -187,6 +191,24 @@ } this.props.handleView(param) + } + + getStyle = (comIds, style) => { + const { config } = this.state + + if (comIds[0] !== 'form') return + + let Index = config.fields.findIndex(n => n.uuid === comIds[1]) + + if (Index === -1) return + + let _config = fromJS(config).toJS() + + _config.fields[Index].style = style + + this.setState({ + config: _config + }) } /** @@ -362,6 +384,9 @@ } if (item.uuid === res.uuid) { + if (item.style) { + res.style = item.style + } return res } else { return item @@ -805,7 +830,7 @@ <Modal title={dict['model.edit']} visible={this.state.visible} - width={850} + width={950} maskClosable={false} onCancel={this.editModalCancel} onOk={this.handleSubmit} @@ -852,6 +877,7 @@ > {dict['header.menu.config.placeholder']} </Modal> + <StyleController /> </div> ) } diff --git a/src/templates/modalconfig/menuform/index.jsx b/src/templates/modalconfig/menuform/index.jsx index aa09a7c..aa1b4bd 100644 --- a/src/templates/modalconfig/menuform/index.jsx +++ b/src/templates/modalconfig/menuform/index.jsx @@ -13,7 +13,7 @@ const { getFieldDecorator } = this.props.form const fields = [] this.props.formlist.forEach((item, index) => { - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { fields.push( <Col span={24} key={index}> <Form.Item label={item.label}> diff --git a/src/templates/modalconfig/settingform/index.jsx b/src/templates/modalconfig/settingform/index.jsx index 3b1efa7..f9abc14 100644 --- a/src/templates/modalconfig/settingform/index.jsx +++ b/src/templates/modalconfig/settingform/index.jsx @@ -182,7 +182,7 @@ )} </Form.Item> </Col> - {appType !== 'mob' ? <Col span={12}> + <Col span={12}> <Form.Item label="鐐瑰嚮钂欏眰"> {getFieldDecorator('clickouter', { initialValue: config.setting.clickouter || 'unclose' @@ -193,7 +193,7 @@ </Radio.Group> )} </Form.Item> - </Col> : null} + </Col> <Col span={12}> <Form.Item label={ <Tooltip placement="topLeft" title="闇�瑕侀�氳繃鏁版嵁婧愭煡璇㈢殑閫夐」锛屾槸鍚︿娇鐢ㄧ紦瀛樸��"> diff --git a/src/templates/modalconfig/source.jsx b/src/templates/modalconfig/source.jsx index 0f50944..deddd57 100644 --- a/src/templates/modalconfig/source.jsx +++ b/src/templates/modalconfig/source.jsx @@ -134,11 +134,11 @@ label: CommonDict['model.form.datemonth'], subType: 'datemonth', }, - { - type: 'form', - label: CommonDict['model.form.datetime'], - subType: 'datetime', - }, + // { + // type: 'form', + // label: '鏃ユ湡锛堝垎/绉掞級', + // subType: 'datetime', + // }, { type: 'form', label: CommonDict['model.form.textarea'], diff --git a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx index 2dae98e..d0ef468 100644 --- a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx @@ -13,8 +13,8 @@ const { TextArea } = Input const actionTypeOptions = { - pop: ['label', 'position', 'OpenType', 'intertype', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'openmenu', 'output'], - prompt: ['label', 'position', 'OpenType', 'intertype', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'openmenu', 'output'], + pop: ['label', 'position', 'OpenType', 'intertype', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'openmenu', 'output', 'tipTitle'], + prompt: ['label', 'position', 'OpenType', 'intertype', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'openmenu', 'output', 'tipTitle'], exec: ['label', 'position', 'OpenType', 'intertype', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'openmenu', 'output'], excelIn: ['label', 'Ot', 'OpenType', 'intertype', 'icon', 'class', 'sheet', 'execSuccess', 'execError'], excelOut: ['label', 'OpenType', 'intertype', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search'], @@ -295,6 +295,9 @@ if (this.record.control) { shows.push('controlField', 'controlVal') } + if (this.record.control === 'disabled') { + shows.push('reason') + } return { shows, @@ -517,7 +520,7 @@ { required: item.required, message: dict['form.required.input'] + item.label + '!' } ] - content = <InputNumber min={item.min} max={item.max} precision={item.precision} /> + content = <InputNumber min={item.min} max={item.max} precision={item.precision} onPressEnter={this.handleSubmit}/> } else if (item.type === 'select') { rules = [ { required: item.required, message: dict['form.required.select'] + item.label + '!' } diff --git a/src/templates/sharecomponent/actioncomponent/dragaction/index.jsx b/src/templates/sharecomponent/actioncomponent/dragaction/index.jsx index ff79592..e98d0a5 100644 --- a/src/templates/sharecomponent/actioncomponent/dragaction/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/dragaction/index.jsx @@ -64,6 +64,13 @@ let _val = fromJS(copycard).toJS() try { + delete _val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + _val.$srcId = srcid + } + _val.uuid = Utils.getuuid() _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) } catch (e) { diff --git a/src/templates/sharecomponent/actioncomponent/index.jsx b/src/templates/sharecomponent/actioncomponent/index.jsx index b1ff516..8a0a704 100644 --- a/src/templates/sharecomponent/actioncomponent/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/index.jsx @@ -906,7 +906,7 @@ wrapClassName="model-table-action-verify-modal" title={(card && card.label ? card.label + ' - ' : '') + '楠岃瘉淇℃伅'} visible={profVisible} - width={'75vw'} + width={'90vw'} maskClosable={false} okText={dict['model.submit']} onOk={this.verifySubmit} diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx index 1389b88..f89a973 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx @@ -44,7 +44,13 @@ fields.push('jskey') - let _sql = `Declare @${btn.sheet} table (${columns.map(item => item.Column + ' ' + item.type).join(',')},jskey nvarchar(50) ) + let _dec = columns.map(item => item.Column + ' ' + item.type).join(',') + + if (_dec) { + _dec += ',' + } + + let _sql = `Declare @${btn.sheet} table (${_dec}jskey nvarchar(50) ) Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@ErrorCode nvarchar(50), @retmsg nvarchar(4000),@tbid Nvarchar(512) Select @ErrorCode='', @retmsg='' ` @@ -315,6 +321,9 @@ <Select.Option key="default" value={'default'}> 榛樿sql </Select.Option> + <Select.Option key="debugger" value={`z_debug: select @ErrorCode='E',@retmsg='娴嬭瘯鏂偣' goto aaa`}> + 娴嬭瘯鏂偣 + </Select.Option> {systemScripts.map((option, i) => <Select.Option key={i} value={option.value}> {option.name} diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx index c2bf0ab..86c254e 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx @@ -12,6 +12,7 @@ import ColumnForm from './columnform' import CustomScript from './customscript' import asyncComponent from '@/utils/asyncComponent' +import MKEmitter from '@/utils/events.js' import './index.scss' const { TabPane } = Tabs @@ -174,12 +175,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } @@ -518,6 +519,8 @@ verify.scripts.push(values) } + MKEmitter.emit('editLineId', values.uuid) + this.setState({ verify: verify }) @@ -734,7 +737,7 @@ return ( <div id="verify-excel-box-tab"> - <Tabs activeKey={activeKey} className="verify-card-box" onChange={this.tabchange}> + <Tabs activeKey={activeKey} className="excelin-verify-card-box" onChange={this.tabchange}> <TabPane tab="鍩虹楠岃瘉" key="basemsg"> <Form {...formItemLayout}> <Row gutter={24}> @@ -797,7 +800,7 @@ </span> } key="unique"> <UniqueForm fields={verify.columns} dict={this.props.dict} uniqueChange={this.uniqueChange}/> - <EditTable actions={['edit', 'move', 'del']} data={verify.uniques} columns={uniqueColumns} onChange={this.changeUniques}/> + <EditTable actions={['edit', 'move', 'del', 'status']} data={verify.uniques} columns={uniqueColumns} onChange={this.changeUniques}/> </TabPane> : null} {card.intertype === 'system' ? <TabPane tab={ <span> diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.scss b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.scss index 0b2c26b..604f0a8 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.scss +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.scss @@ -1,4 +1,4 @@ -.verify-card-box { +.excelin-verify-card-box { .ant-tabs-nav-scroll { text-align: center; } diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx index 72cc3a2..a8e0200 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx @@ -49,16 +49,16 @@ min: 5, max: 200, editable: true, - width: '20%', + width: '14%', render: (text) => text || 20 }, { title: '绫诲瀷', dataIndex: 'type', - inputType: 'select', + inputType: 'radio', editable: true, required: false, - width: '20%', + width: '18%', render: (text) => { if (text === 'image') { return '鍥剧墖' @@ -74,12 +74,31 @@ { title: '鍙栫粷瀵瑰��', dataIndex: 'abs', - inputType: 'select', + inputType: 'radio', editable: true, required: false, - width: '20%', + width: '14%', render: (text) => { if (text === 'true') { + return '鏄�' + } else { + return '鍚�' + } + }, + options: [ + {value: 'true', text: '鏄�'}, + {value: 'false', text: '鍚�'} + ] + }, + { + title: '瀵煎嚭', + dataIndex: 'output', + inputType: 'radio', + editable: true, + required: false, + width: '14%', + render: (text) => { + if (text !== 'false') { return '鏄�' } else { return '鍚�' @@ -107,9 +126,10 @@ if (card.intertype !== 'system') { _verify.enable = 'false' } - if (_verify.columns[0] && !_verify.columns[0].type) { + if (_verify.columns[0] && (!_verify.columns[0].type || !_verify.columns[0].output)) { _verify.columns = _verify.columns.map(col => { col.type = col.type || 'text' + col.output = col.output || 'true' return col }) } @@ -192,6 +212,7 @@ } values.uuid = Utils.getuuid() values.abs = 'false' + values.output = 'true' verify.columns.push(values) this.setState({ @@ -398,6 +419,7 @@ Text: item.label, Width: 20, abs: 'false', + output: 'true', type: 'text', uuid: Utils.getuuid() }) @@ -437,6 +459,7 @@ Text: col.Text, Width: 20, abs: 'false', + output: 'true', type: 'text', } @@ -464,7 +487,7 @@ return ( <div id="verify-excelout-box-tab"> - <Tabs defaultActiveKey="1" className="verify-card-box" onChange={this.tabchange}> + <Tabs defaultActiveKey="1" className="excelout-verify-card-box" onChange={this.tabchange}> <TabPane tab={ <span> Excel瀵煎嚭鍒� diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.scss b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.scss index d44185c..e0e7581 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.scss +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.scss @@ -1,4 +1,4 @@ -.verify-card-box { +.excelout-verify-card-box { .ant-tabs-nav-scroll { text-align: center; } @@ -78,4 +78,9 @@ z-index: 1; } } + .modal-edit-table { + .ant-radio-group { + width: 50px; + } + } } \ No newline at end of file diff --git a/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx b/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx index eb1f155..0c9ffd3 100644 --- a/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx +++ b/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx @@ -294,7 +294,7 @@ this.state.formlist.forEach((item, index) => { if (item.hidden) return - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { fields.push( <Col span={12} key={index}> <Form.Item label={item.tooltip ? diff --git a/src/templates/sharecomponent/columncomponent/columnform/index.jsx b/src/templates/sharecomponent/columncomponent/columnform/index.jsx index 2991a73..a69897e 100644 --- a/src/templates/sharecomponent/columncomponent/columnform/index.jsx +++ b/src/templates/sharecomponent/columncomponent/columnform/index.jsx @@ -141,7 +141,7 @@ this.state.formlist.forEach((item, index) => { if (item.hidden) return - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { let rules = [] if (item.key === 'field' || item.key === 'nameField') { rules = [{ @@ -178,7 +178,7 @@ </Form.Item> </Col> ) - } else if (item.type === 'textarea') { // 鏂囨湰鎼滅储 + } else if (item.type === 'textarea') { fields.push( <Col span={24} key={index} className="textarea"> <Form.Item label={item.tooltip ? diff --git a/src/templates/sharecomponent/columncomponent/dragcolumn/card.jsx b/src/templates/sharecomponent/columncomponent/dragcolumn/card.jsx index 91ff3d3..41c0125 100644 --- a/src/templates/sharecomponent/columncomponent/dragcolumn/card.jsx +++ b/src/templates/sharecomponent/columncomponent/dragcolumn/card.jsx @@ -53,6 +53,7 @@ <div className="ant-table-column-fields"> <span className="ant-table-column-title">{card.type === 'colspan' ? card.subfield : card.field}</span> {card.Hide === 'true' ? <CloseCircleOutlined style={{marginLeft: '5px', color: 'orange', fontSize: '12px'}}/> : null} + {['text', 'number'].includes(card.type) && card.marks && card.marks.length ? <AntDesignOutlined style={{marginLeft: '5px', color: 'purple', fontSize: '12px'}}/> : null} </div> : null } </span> diff --git a/src/templates/sharecomponent/columncomponent/dragcolumn/index.jsx b/src/templates/sharecomponent/columncomponent/dragcolumn/index.jsx index c364c6d..267c6c4 100644 --- a/src/templates/sharecomponent/columncomponent/dragcolumn/index.jsx +++ b/src/templates/sharecomponent/columncomponent/dragcolumn/index.jsx @@ -131,6 +131,23 @@ {i === 0 && column.length > 0 && setting.tableType === 'radio' ? <div className="page-card" style={{flex: 60}}></div> : null } + {i === 0 && gridBtn && gridBtn.display && gridBtn.position === 'left' ? + <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ + <div className="mk-popover-control"> + <EditOutlined className="edit" onClick={handleGridBtn}/> + </div> + } trigger="hover"> + <div className="page-card" style={{flex: gridBtn.Width}}> + <div style={{cursor: 'default'}}> + <span className="ant-table-header-column"> + <div className="ant-table-column-sorters" title={gridBtn.label} style={{textAlign: gridBtn.Align}}> + <span className="ant-table-column-title">{gridBtn.label}</span> + </div> + </span> + </div> + </div> + </Popover> : null + } {column.map(card => ( <Card key={card.uuid} @@ -144,7 +161,7 @@ findCard={findCard} /> ))} - {i === (columns.length - 1) && gridBtn && gridBtn.display ? + {i === (columns.length - 1) && gridBtn && gridBtn.display && gridBtn.position !== 'left' ? <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <EditOutlined className="edit" onClick={handleGridBtn}/> diff --git a/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx b/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx index 6d701af..9fa3613 100644 --- a/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx +++ b/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx @@ -21,7 +21,7 @@ required: true }, { - type: 'select', + type: 'radio', key: 'Align', label: this.props.dict['model.form.align'], initVal: this.props.card.Align, @@ -44,6 +44,20 @@ label: this.props.dict['model.form.columnWidth'], initVal: this.props.card.Width, required: true + }, + { + type: 'radio', + key: 'position', + label: '鏄剧ず浣嶇疆', + initVal: this.props.card.position || 'right', + required: true, + options: [{ + MenuID: 'left', + text: '宸︿晶' + }, { + MenuID: 'right', + text: '鍙充晶' + }] } ] } @@ -60,7 +74,7 @@ const { getFieldDecorator } = this.props.form const fields = [] this.state.formlist.forEach((item, index) => { - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { fields.push( <Col span={12} key={index}> <Form.Item label={item.label}> @@ -80,7 +94,7 @@ </Form.Item> </Col> ) - } else if (item.type === 'number') { // 鏂囨湰鎼滅储 + } else if (item.type === 'number') { fields.push( <Col span={12} key={index}> <Form.Item label={item.label}> diff --git a/src/templates/sharecomponent/columncomponent/index.jsx b/src/templates/sharecomponent/columncomponent/index.jsx index 2648a81..4d1dd74 100644 --- a/src/templates/sharecomponent/columncomponent/index.jsx +++ b/src/templates/sharecomponent/columncomponent/index.jsx @@ -377,6 +377,11 @@ columns: columnlist } + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + val.$srcId = srcid + } + oInput.value = window.btoa(window.encodeURIComponent(JSON.stringify(val))) document.body.appendChild(oInput) oInput.select() diff --git a/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx b/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx index e8f7af2..6183e23 100644 --- a/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx +++ b/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx @@ -76,13 +76,31 @@ } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') { formItem = (<Select value={_defaultValue}></Select>) } else if (card.type === 'date') { - formItem = (<DatePicker value={card.initval ? moment().subtract(card.initval, 'days') : null} />) + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + formItem = (<DatePicker format={format} value={card.initval ? moment().subtract(card.initval, 'days') : null} />) } else if (card.type === 'dateweek') { formItem = (<WeekPicker value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} />) } else if (card.type === 'datemonth') { formItem = (<MonthPicker value={card.initval ? moment().subtract(card.initval, 'month') : null} />) } else if (card.type === 'daterange') { + let format = 'YYYY-MM-DD' + if (card.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (card.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (card.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + formItem = (<RangePicker + format={format} className="data-range" placeholder={['BeginTime', 'EndTime']} renderExtraFooter={() => 'extra footer'} @@ -93,6 +111,11 @@ } else if (card.type === 'checkcard') { type = 'checkcard' formItem = <CheckCard config={card} /> + } + + let labelwidth = card.labelwidth || 33.3 + if (card.labelShow === 'false') { + labelwidth = 0 } return ( @@ -106,8 +129,10 @@ <div className={'page-card ' + (card.labelShow || '') + ' ' + type} style={{ opacity: opacity}}> <div ref={node => drag(drop(node))} onDoubleClick={() => editCard(id)}> <Form.Item - labelCol={{xs: { span: 24 }, sm: { span: 8 }}} - wrapperCol = {{xs: { span: 24 }, sm: { span: 16 }}} + labelCol={{style: {width: labelwidth + '%'}}} + wrapperCol={{style: {width: (100 - labelwidth) + '%'}}} + // labelCol={{xs: { span: 24 }, sm: { span: 8 }}} + // wrapperCol = {{xs: { span: 24 }, sm: { span: 16 }}} label={card.labelShow !== 'false' ? card.label : ''} required={card.required === 'true'} help={showField ? card.field + (card.datefield ? ', ' + card.datefield : '') : ''} diff --git a/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx b/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx index 504ef5f..c0907c6 100644 --- a/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx +++ b/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx @@ -50,6 +50,13 @@ let _val = fromJS(copycard).toJS() try { + delete _val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + _val.$srcId = srcid + } + _val.uuid = Utils.getuuid() _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) } catch (e) { diff --git a/src/templates/sharecomponent/searchcomponent/index.scss b/src/templates/sharecomponent/searchcomponent/index.scss index e8da957..74c00ca 100644 --- a/src/templates/sharecomponent/searchcomponent/index.scss +++ b/src/templates/sharecomponent/searchcomponent/index.scss @@ -15,10 +15,11 @@ } > .ant-row { min-height: 65px; + >.ant-col { + padding: 0 12px!important; + } } - .ant-row .ant-col-6 { - padding: 0 12px!important; - } + .ant-row.ant-form-item .ant-col { padding: 0; } @@ -30,7 +31,11 @@ height: 55px; .ant-form-item { margin-bottom: 0px; + .ant-form-item-label { + float: left; + } .ant-form-item-control-wrapper { + float: left; .ant-select { width: 100%; margin-top: 4px; diff --git a/src/templates/sharecomponent/searchcomponent/searchform/index.jsx b/src/templates/sharecomponent/searchcomponent/searchform/index.jsx index ced101f..2b3e7fd 100644 --- a/src/templates/sharecomponent/searchcomponent/searchform/index.jsx +++ b/src/templates/sharecomponent/searchcomponent/searchform/index.jsx @@ -94,17 +94,17 @@ ] const searchTypeOptions = { - text: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'inputType', 'advanced', 'query'], - select: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown', 'query'], - multiselect: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], - link: ['label', 'field', 'resourceType', 'initval', 'type', 'linkField', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown', 'query'], - date: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], - checkcard: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'resourceType', 'display', 'width', 'multiple', 'borderColor', 'required', 'Hide', 'labelShow', 'advanced', 'query'], - dateweek: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], - datemonth: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], - daterange: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], - group: ['label', 'type', 'field', 'datefield', 'initval', 'blacklist', 'ratio', 'items', 'required', 'labelShow', 'query'], - range: ['label', 'type', 'field', 'initval', 'match', 'blacklist', 'Hide', 'required', 'maxValue', 'minValue', 'step', 'labelShow', 'query'] + text: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'inputType', 'advanced', 'query', 'labelwidth'], + select: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown', 'query', 'labelwidth'], + multiselect: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query', 'labelwidth'], + link: ['label', 'field', 'resourceType', 'initval', 'type', 'linkField', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown', 'query', 'labelwidth'], + date: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query', 'precision', 'labelwidth'], + checkcard: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'resourceType', 'display', 'width', 'multiple', 'required', 'Hide', 'labelShow', 'advanced', 'query', 'labelwidth'], + dateweek: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query', 'labelwidth'], + datemonth: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query', 'labelwidth'], + daterange: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query', 'precision', 'labelwidth'], + group: ['label', 'type', 'field', 'datefield', 'initval', 'blacklist', 'ratio', 'items', 'required', 'labelShow', 'query', 'labelwidth'], + range: ['label', 'type', 'field', 'initval', 'match', 'blacklist', 'Hide', 'required', 'maxValue', 'minValue', 'step', 'labelShow', 'query', 'labelwidth'] } class MainSearch extends Component { @@ -197,9 +197,9 @@ } } else { if (this.record.resourceType === '0') { // 鑷畾涔夎祫婧� - shows.push('options', 'fields', 'backgroundColor') + shows.push('options', 'fields', 'backgroundColor', 'borderColor') } else if (this.record.resourceType === '1') { // 鏁版嵁婧� - shows.push('dataSource', 'cardValField', 'fields', 'orderBy', 'orderType', 'database', 'backgroundColor') + shows.push('dataSource', 'cardValField', 'fields', 'orderBy', 'orderType', 'database', 'backgroundColor', 'borderColor') } } shows.push('linkField') @@ -257,6 +257,7 @@ } optionChange = (key, value) => { + let oriType = this.record.type this.record[key] = value let _fieldval = {} @@ -281,6 +282,9 @@ if (value === 'checkcard') { this.record.multiple = 'false' _fieldval.multiple = 'false' + _fieldval.ratio = 24 + } else if (oriType === 'checkcard') { + _fieldval.ratio = 6 } if (this.record.options.length > 0) { @@ -385,6 +389,36 @@ } } + handleEmpty = () => { + let field = this.props.form.getFieldValue('valueField') + + if (!field) { + notification.warning({ + top: 92, + message: '璇峰~鍐欏�悸峰瓧娈点��', + duration: 5 + }) + return + } + + let text = this.props.form.getFieldValue('valueText') + + if (!text) { + notification.warning({ + top: 92, + message: '璇峰~鍐欐枃鏈峰瓧娈点��', + duration: 5 + }) + return + } + + let resource = this.props.form.getFieldValue('dataSource') || '' + + resource = `select '' as ${field},'鍏ㄩ儴' as ${text} union all \n${resource}` + + this.props.form.setFieldsValue({dataSource: resource}) + } + getFields() { const { getFieldDecorator } = this.props.form const { dict } = this.props @@ -398,9 +432,10 @@ let rules = [] let className = '' let content = null + let extra = null let initVal = item.initVal || '' - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { let type = this.record.type rules = [ { required: item.required, message: dict['form.required.input'] + item.label + '!' } @@ -428,7 +463,7 @@ initVal = item.initVal if (item.max) { - content = <InputNumber min={item.min} max={item.max} precision={0} onPressEnter={this.handleSubmit}/> + content = <InputNumber min={item.min} max={item.max} precision={item.precision || 0} onPressEnter={this.handleSubmit}/> } else { content = <InputNumber onPressEnter={this.handleSubmit}/> } @@ -440,7 +475,7 @@ content = <Select showSearch allowClear={item.allowClear === true} - filterOption={(input, option) => option.props.children[2].toLowerCase().indexOf(input.toLowerCase()) >= 0} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} onChange={(value) => {this.optionChange(item.key, value)}} getPopupContainer={() => document.getElementById('commontable-search-form-box')} > @@ -462,12 +497,16 @@ ) })} </Radio.Group> - } else if (item.type === 'textarea') { + } else if (item.type === 'codemirror') { rules = [ { required: item.required, message: dict['form.required.input'] + item.label + '!' } ] span = 24 className = 'text-area' + + if (this.record.type === 'select' || this.record.type === 'link') { + extra = <span className="add-resource-empty" onClick={this.handleEmpty}>鍏ㄩ儴</span> + } content = <CodeMirror /> } else if (item.type === 'options') { @@ -477,7 +516,7 @@ let type = this.record.type if (type !== 'checkcard') { - content = <EditTable type={type} transfield={{}} linkSubFields={[]} onChange={this.changeOptions}/> + content = <EditTable type={type} module="search" transfield={{}} linkSubFields={[]} onChange={this.changeOptions}/> } else { if (this.record.linkField) { type = 'link' @@ -514,7 +553,7 @@ fields.push( <Col span={span} key={index}> - <Form.Item className={className} label={item.tooltip ? + <Form.Item className={className} extra={extra} label={item.tooltip ? <Tooltip placement="topLeft" title={item.tooltip}> <QuestionCircleOutlined className="mk-form-tip" /> {item.label} diff --git a/src/templates/sharecomponent/searchcomponent/searchform/index.scss b/src/templates/sharecomponent/searchcomponent/searchform/index.scss index 4624854..b1ed736 100644 --- a/src/templates/sharecomponent/searchcomponent/searchform/index.scss +++ b/src/templates/sharecomponent/searchcomponent/searchform/index.scss @@ -32,4 +32,16 @@ } } } + .ant-form-extra { + padding-top: 0px; + min-height: 0px; + } + .add-resource-empty { + position: absolute; + right: 10px; + top: -25px; + color: #1890ff; + cursor: pointer; + font-size: 14px; + } } \ No newline at end of file diff --git a/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx index e853a54..221db3c 100644 --- a/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx +++ b/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx @@ -700,7 +700,7 @@ </Col> {tableType !== '' ? <Col span={12}> <Form.Item label={ - <Tooltip placement="topLeft" title="鍦ㄥ惎鐢ㄦ棤浜哄�煎畧鍔熻兘鏃舵棤鏁堛��"> + <Tooltip placement="topLeft" title="褰撴寜閽墽琛屽畬鎴愬苟杩斿洖涓婚敭鍊兼椂锛岄粯璁ら�変腑涓婚敭鍊煎搴旇銆傛敞锛氬湪鍚敤鏃犱汉鍊煎畧鍔熻兘鏃舵棤鏁堛��"> <QuestionCircleOutlined className="mk-form-tip" /> 棣栬閫変腑 </Tooltip> diff --git a/src/templates/sharecomponent/settingcomponent/settingform/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/index.jsx index 2be5f9a..0ad95b9 100644 --- a/src/templates/sharecomponent/settingcomponent/settingform/index.jsx +++ b/src/templates/sharecomponent/settingcomponent/settingform/index.jsx @@ -477,7 +477,7 @@ return ( <div className="model-table-setting-form-box" id="model-setting-form-body"> {loading && <Spin size="large" />} - <Tabs activeKey={activeKey} className="verify-card-box" onChange={this.changeTab}> + <Tabs activeKey={activeKey} onChange={this.changeTab}> <TabPane tab="鏁版嵁婧�" key="setting"> <DataSource menu={menu} diff --git a/src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx index 44a3d6f..61ac6e4 100644 --- a/src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx +++ b/src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx @@ -40,12 +40,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } diff --git a/src/templates/sharecomponent/tablecomponent/index.jsx b/src/templates/sharecomponent/tablecomponent/index.jsx index 77ed37a..f2da2b6 100644 --- a/src/templates/sharecomponent/tablecomponent/index.jsx +++ b/src/templates/sharecomponent/tablecomponent/index.jsx @@ -287,16 +287,17 @@ style={{ width: '100%' }} optionFilterProp="children" value="璇烽�夋嫨琛ㄥ悕" - onChange={this.onTableChange} + onSelect={this.onTableChange} + dropdownClassName="mk-tables" showArrow={false} getPopupContainer={() => containerId ? document.getElementById(containerId) : document.body} filterOption={(input, option) => { - return option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 || - option.props.value.toLowerCase().indexOf(input.toLowerCase()) >= 0 + return option.props.children[0].toLowerCase().indexOf(input.toLowerCase()) >= 0 || + option.props.children[2].toLowerCase().indexOf(input.toLowerCase()) >= 0 }} > {tables.map((table, index) => ( - <Option key={index} title={table.TbName} value={table.TbName}>{table.Remark}</Option> + <Option key={index} title={table.TbName} value={table.TbName}>{table.Remark}<br/>{table.TbName}</Option> ))} </Select> {selectedTables.length > 0 && <List diff --git a/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx b/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx index 3f3d3a4..bb5ebe8 100644 --- a/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx +++ b/src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx @@ -250,7 +250,7 @@ return ( <div className="model-tree-setting-form-box" id="model-setting-form-body"> {loading && <Spin size="large" />} - <Tabs activeKey={activeKey} className="verify-card-box" onChange={this.changeTab}> + <Tabs activeKey={activeKey} onChange={this.changeTab}> <TabPane tab="鏁版嵁婧�" key="setting"> <DataSource menu={menu} diff --git a/src/templates/sharecomponent/treesettingcomponent/settingform/index.scss b/src/templates/sharecomponent/treesettingcomponent/settingform/index.scss index f2570ad..7d2db84 100644 --- a/src/templates/sharecomponent/treesettingcomponent/settingform/index.scss +++ b/src/templates/sharecomponent/treesettingcomponent/settingform/index.scss @@ -47,7 +47,7 @@ box-shadow: unset; } - .verify-card-box .ant-tabs-nav-scroll { + .ant-tabs-nav-scroll { text-align: center; } } \ No newline at end of file diff --git a/src/templates/zshare/customscript/index.jsx b/src/templates/zshare/customscript/index.jsx index 4ddae3f..8daf4ab 100644 --- a/src/templates/zshare/customscript/index.jsx +++ b/src/templates/zshare/customscript/index.jsx @@ -9,6 +9,7 @@ import Api from '@/api' import CodeMirror from '@/templates/zshare/codemirror' import asyncComponent from '@/utils/asyncComponent' +import MKEmitter from '@/utils/events.js' import './index.scss' const { Paragraph } = Typography @@ -39,12 +40,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } @@ -260,6 +261,8 @@ editItem: null }) + MKEmitter.emit('editLineId', values.uuid) + this.props.scriptsUpdate(_scripts) this.props.form.setFieldsValue({ sql: '' @@ -390,6 +393,9 @@ onChange={this.selectScript} > <Select.Option key="default" value={defaultSql}>榛樿sql</Select.Option> + <Select.Option key="debugger" value={`z_debug: select @ErrorCode='E',@retmsg='娴嬭瘯鏂偣' goto aaa`}> + 娴嬭瘯鏂偣 + </Select.Option> {systemScripts.map((option, i) => <Select.Option style={{whiteSpace: 'normal'}} key={i} value={option.value}>{option.name}</Select.Option> )} diff --git a/src/templates/zshare/editTable/index.jsx b/src/templates/zshare/editTable/index.jsx index 347b021..ef0ff17 100644 --- a/src/templates/zshare/editTable/index.jsx +++ b/src/templates/zshare/editTable/index.jsx @@ -3,7 +3,7 @@ import { is, fromJS } from 'immutable' import { DndProvider, DragSource, DropTarget } from 'react-dnd' import { Table, Input, InputNumber, Popconfirm, Form, Select, Radio, Cascader, notification, message, Modal, Typography } from 'antd' -import { CopyOutlined, EditOutlined, DeleteOutlined, SnippetsOutlined } from '@ant-design/icons' +import { CopyOutlined, EditOutlined, DeleteOutlined, SnippetsOutlined, SwapOutlined } from '@ant-design/icons' import Utils from '@/utils/utils.js' import ColorSketch from '@/mob/colorsketch' @@ -12,6 +12,7 @@ import CusSwitch from './cusSwitch' import zhCN from '@/locales/zh-CN/model.js' import enUS from '@/locales/en-US/model.js' +import MKEmitter from '@/utils/events.js' import './index.scss' const MkEditIcon = asyncComponent(() => import('@/components/mkIcon')) @@ -110,10 +111,12 @@ ) } else if (inputType === 'radio') { return ( - <Radio.Group> + <Radio.Group style={{whiteSpace: 'nowrap'}}> {options.map((item, i) => (<Radio key={i} value={item.field || item.value}> {item.label || item.text} </Radio>))} </Radio.Group> ) + } else if (inputType === 'textarea') { + return <Input.TextArea autoSize={true} placeholder=""/> } else { return <Input onPressEnter={() => this.getValue(form)}/> } @@ -131,7 +134,7 @@ renderCell = (form) => { const { getFieldDecorator } = form - const { editing, dataIndex, title, record, children, className, required, inputType } = this.props + const { editing, dataIndex, title, record, children, className, required, inputType, rules } = this.props return ( <td className={className}> @@ -142,7 +145,8 @@ { required: required, message: ['number', 'text', 'input'].includes(inputType) ? `${eTDict['form.required.input']} ${title}!` : `${eTDict['form.required.select']} ${title}!`, - } + }, + ...rules ], initialValue: inputType === 'multiStr' ? (record[dataIndex] ? record[dataIndex].split(',') : []) : record[dataIndex], })(this.getInput(form))} @@ -171,6 +175,7 @@ data: [], editingKey: '', visible: false, + editLineId: '', columns: [] } @@ -217,6 +222,7 @@ <div className={'edit-operation-btn' + (editingKey !== '' ? ' disabled' : '')} style={{minWidth: '110px', whiteSpace: 'nowrap'}}> {actions.includes('edit') ? <span className="primary" onClick={() => {editingKey === '' && this.edit(record.uuid)}}><EditOutlined /></span> : null} {actions.includes('copy') ? <span className="copy" onClick={() => {editingKey === '' && this.copy(record)}}><CopyOutlined /></span> : null} + {actions.includes('status') ? <span className="status" onClick={() => {editingKey === '' && this.handleStatus(record)}}><SwapOutlined /></span> : null} {actions.includes('del') && editingKey === '' ? <Popconfirm overlayClassName="popover-confirm" title={eTDict['model.query.delete']} @@ -270,6 +276,21 @@ } } + componentDidMount () { + MKEmitter.addListener('editLineId', this.getEditLineId) + } + + componentWillUnmount () { + this.setState = () => { + return + } + MKEmitter.removeListener('editLineId', this.getEditLineId) + } + + getEditLineId = (id) => { + this.setState({ editLineId: id }) + } + isEditing = record => record.uuid === this.state.editingKey cancel = () => { @@ -311,6 +332,11 @@ } try { + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + msg.$srcId = srcid + } + msg = window.btoa(window.encodeURIComponent(JSON.stringify(msg))) } catch (e) { console.warn('Stringify Failure') @@ -390,6 +416,22 @@ }) } message.success('绮樿创鎴愬姛銆�') + }) + } + + handleStatus = (record) => { + const { data } = this.state + + record.status = record.status === 'false' ? 'true' : 'false' + + let newData = data.map(item => { + if (record.uuid === item.uuid) return record + + return item + }) + + this.setState({ data: newData }, () => { + this.props.onChange(newData) }) } @@ -508,6 +550,7 @@ render() { const { actions, indexShow } = this.props + const { editLineId } = this.state let components = { body: { @@ -534,6 +577,7 @@ inputType: col.inputType, dataIndex: col.dataIndex, options: col.options || [], + rules: col.rules || [], min: col.min || 0, max: col.max || 500, unlimit: col.unlimit, @@ -570,7 +614,7 @@ components={components} dataSource={data} columns={columns} - rowClassName="editable-row" + rowClassName={record => !editLineId || editLineId !== record.uuid ? 'editable-row' : 'editable-row active'} pagination={false} onRow={(record, index) => ({ index, diff --git a/src/templates/zshare/editTable/index.scss b/src/templates/zshare/editTable/index.scss index 954f3ab..7d83deb 100644 --- a/src/templates/zshare/editTable/index.scss +++ b/src/templates/zshare/editTable/index.scss @@ -19,6 +19,14 @@ > td:last-child { padding: 0px; } + textarea.ant-input { + vertical-align: middle; + } + } + .editable-row.active { + td { + background-color: #bae7ff!important; + } } .mk-index { text-align: center; @@ -31,7 +39,7 @@ .edit-operation-btn { display: block; text-align: center; - span { + > span { margin-right: 10px; cursor: pointer; font-size: 16px; @@ -42,6 +50,9 @@ } .copy { color: #26C281; + } + .status { + color: #8E44AD; } .danger { color: #ff4d4f; @@ -61,6 +72,9 @@ .danger { color: rgba(0, 0, 0, .25); } + .status { + color: rgba(0, 0, 0, .25); + } .copy { color: rgba(0, 0, 0, .25); } diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx index dfcd692..5761a1e 100644 --- a/src/templates/zshare/formconfig.jsx +++ b/src/templates/zshare/formconfig.jsx @@ -302,6 +302,14 @@ let typeOptions = [] if (appType === 'mob') { + // let adapters = sessionStorage.getItem('adapter') + // if (adapters) { + // adapters = adapters.split(',') + // } else { + // adapters = [] + // } + // (adapters.includes('wxmini') ? '(灏忕▼搴忔殏涓嶆敮鎸�)' : '') + typeOptions = [{ value: 'range', text: '鏁板�硷紙鍖洪棿锛�' @@ -318,6 +326,7 @@ // value: 'daterange', // text: Formdict['model.form.daterange'] }] + } else { typeOptions = [{ value: 'text', @@ -506,7 +515,7 @@ required: true }, { - type: 'textarea', + type: 'codemirror', key: 'dataSource', label: Formdict['header.form.datasource'], initVal: card.dataSource || '', @@ -650,6 +659,37 @@ required: false }, { + type: 'number', + key: 'labelwidth', + min: 1, + max: 100, + precision: 1, + label: '鍚嶇О瀹藉害', + initVal: card.labelwidth || 33.3, + tooltip: '鍚嶇О鍗犳嵁鎼滅储鏉′欢瀹藉害鐨勭櫨鍒嗘瘮銆傛敞锛氬瓨鍦ㄥ鍒楁悳绱㈡椂锛屽綋鍓嶆悳绱㈠鏋滄兂瑕佸崰鎹暣琛屽彲鍙傜収浠ヤ笅姣斾緥锛屼袱鍒楋紙16.5锛夈�佷笁鍒楋紙10.8锛夈�佸洓鍒楋紙8锛�', + required: true, + forbid: appType === 'mob' + }, + { + type: 'radio', + key: 'precision', + label: '绮剧‘搴�', + initVal: card.precision || 'day', + options: [{ + value: 'day', + text: '澶�' + }, { + value: 'hour', + text: '灏忔椂' + }, { + value: 'minute', + text: '鍒嗛挓' + }, { + value: 'second', + text: '绉�' + }] + }, + { type: 'radio', key: 'required', label: Formdict['model.required'], @@ -746,6 +786,7 @@ key: 'advanced', label: '楂樼骇鎼滅储', initVal: card.advanced || 'false', + tooltip: '鍦ㄩ殣钘忔悳绱㈡寜閽椂锛岄珮绾ф悳绱㈡棤鏁堛��', forbid: appType === 'mob', options: [{ value: 'true', @@ -1177,18 +1218,18 @@ type: refresh.length === 0 ? 'radio' : 'select', key: 'execSuccess', label: Formdict['model.form.afterSuccess'], - initVal: card.execSuccess || 'never', + initVal: card.execSuccess || 'grid', tooltip: '閫夋嫨鍒锋柊琛屾椂锛屽鏋滈�夋嫨澶氭潯鏁版嵁浼氬埛鏂拌〃鏍笺��', required: true, options: [{ value: 'never', text: '涓嶅埛鏂�' }, { - value: 'grid', - text: '鍒锋柊琛ㄦ牸' - }, { value: 'line', text: '鍒锋柊琛�' + }, { + value: 'grid', + text: '鍒锋柊琛ㄦ牸' }, ...refresh] }, @@ -1203,11 +1244,11 @@ value: 'never', text: '涓嶅埛鏂�' }, { - value: 'grid', - text: '鍒锋柊琛ㄦ牸' - }, { value: 'line', text: '鍒锋柊琛�' + }, { + value: 'grid', + text: '鍒锋柊琛ㄦ牸' }, ...refresh] }, @@ -1268,8 +1309,16 @@ type: 'text', key: 'output', label: '杩斿洖鍊�', - tooltip: '鎵ц鎴愬姛鍚庣殑杩斿洖鍊笺��', + tooltip: '鎵ц鎴愬姛鍚庣殑杩斿洖鍊笺�備緥濡傦細@id', initVal: card.output || '', + required: false + }, + { + type: 'text', + key: 'tipTitle', + label: '纭鎻愮ず', + initVal: card.tipTitle || '', + tooltip: '娉細寮圭獥锛堣〃鍗曪級鍦ㄦ樉绀轰负鏄惁妗嗘椂鏈夋晥銆�', required: false }, { @@ -1422,6 +1471,13 @@ label: '鎺у埗鍊�', tooltip: '褰撻�夋嫨鎺у埗瀛楁锛屼笖瀛楁鍊间笌鎺у埗鍊肩浉绛夋椂锛屾寜閽細闅愯棌鎴栫鐢紝澶氫釜鍊肩敤閫楀彿鍒嗛殧銆�', initVal: card.controlVal || '', + required: false + }, + { + type: 'text', + key: 'reason', + label: '绂佺敤鍘熷洜', + initVal: card.reason || '', required: false }, ] @@ -2260,9 +2316,9 @@ }, { value: 'datemonth', text: Formdict['model.form.datemonth'] - }, { - value: 'datetime', - text: Formdict['model.form.datetime'] + // }, { + // value: 'datetime', + // text: '鏃ユ湡锛堝垎/绉掞級' }, { value: 'textarea', text: Formdict['model.form.textarea'] @@ -2325,9 +2381,9 @@ }, { value: 'datemonth', text: Formdict['model.form.datemonth'] - }, { - value: 'datetime', - text: Formdict['model.form.datetime'] + // }, { + // value: 'datetime', + // text: '鏃ユ湡锛堝垎/绉掞級' }, { value: 'textarea', text: Formdict['model.form.textarea'] @@ -2343,6 +2399,9 @@ }, { value: 'split', text: '鍒嗛殧绾�' + }, { + value: 'linkMain', + text: '鍏宠仈涓昏〃' }] } @@ -2350,6 +2409,9 @@ _fieldlength = 512 } else if (['textarea', 'brafteditor'].includes(card.type)) { _fieldlength = 8000 + } else if (card.type === 'datetime') { + card.type = 'date' + card.precision = 'second' } let options = card.options || [] @@ -2367,6 +2429,10 @@ initval = card.initval === true } else if (card.type === 'number') { initval = card.initval || 0 + } + + if (appType === 'mob' && ![24, 12, 8, 6].includes(card.span)) { + card.span = 24 } return [ @@ -2744,6 +2810,25 @@ }] }, { + type: 'radio', + key: 'precision', + label: '绮剧‘搴�', + initVal: card.precision || 'day', + options: [{ + value: 'day', + text: '澶�' + }, { + value: 'hour', + text: '灏忔椂' + }, { + value: 'minute', + text: '鍒嗛挓' + }, { + value: 'second', + text: '绉�' + }] + }, + { type: 'number', key: 'fieldlength', min: 1, @@ -2752,7 +2837,7 @@ label: Formdict['model.form.field'] + Formdict['model.length'], // tooltip: '鏂囨湰銆佷笅鎷夋銆佹棩鏈熺瓑瀛楁榛樿闀垮害涓�50锛屽琛屾枃鏈笌鏂囦欢涓婁紶瀛楁榛樿闀垮害涓�512', initVal: card.fieldlength || _fieldlength, - required: false + required: true }, { type: 'number', @@ -3063,7 +3148,7 @@ type: 'radio', key: 'interception', label: '鎴彇绌烘牸', - initVal: card.interception || 'false', + initVal: card.interception || 'true', tooltip: '鎻愪氦鏃讹紝鏄惁鎴彇棣栧熬鐨勭┖鐧藉瓧绗︺��', options: [{ value: 'true', @@ -3155,6 +3240,46 @@ forbid: appType === 'mob' }, { + type: 'radio', + key: 'span', + label: '琛ㄥ崟瀹藉害', + initVal: card.span || 24, + tooltip: '鏍呮牸甯冨眬鏁磋24绛夊垎銆�', + required: true, + forbid: appType !== 'mob', + options: [{ + value: 24, + text: 24 + }, { + value: 12, + text: 12 + }, { + value: 8, + text: 8 + }, { + value: 6, + text: 6 + }] + }, + { + type: 'radio', + key: 'lenControl', + label: '闀垮害鎺у埗', + initVal: card.lenControl || 'limit', + tooltip: '鍦ㄨ缃瓧娈甸暱搴﹀悗锛屽闀垮害鐨勬帶鍒舵柟寮忋��', + required: false, + options: [{ + value: 'limit', + text: '闄愬埗杈撳叆' + }, { + value: 'left', + text: '宸︽埅' + }, { + value: 'right', + text: '鍙虫埅' + }] + }, + { type: 'number', key: 'labelwidth', min: 1, @@ -3210,6 +3335,7 @@ { type: 'text', key: 'supvalue', + max: 512, label: '鏄剧ず鍊�', tooltip: '璇峰~鍐欐樉绀哄�硷紝鍙湁涓婄骇琛ㄥ崟鍊间笌鏄剧ず鍊肩浉鍚屾椂锛岃琛ㄥ崟鎵嶄細鏄剧ず锛屾敞锛�1銆佸涓�肩敤閫楀彿鍒嗛殧锛�2銆佷笂绾ц〃鍗曞垵濮嬪�间负$first鏃舵殏鏈鐞嗐��', initVal: card.supvalue || '', @@ -3233,6 +3359,22 @@ initVal: card.extra || '', required: false, forbid: appType === 'mob' + }, + { + type: 'radio', + key: 'enterReplace', + label: '鍥炶溅绗︽浛鎹�', + tooltip: '鍥炶溅绗︿細鏇挎崲涓鸿嫳鏂囬�楀彿銆�', + initVal: card.enterReplace || 'false', + required: false, + forbid: appType !== 'mob', + options: [{ + value: 'false', + text: '鍚�' + }, { + value: 'true', + text: '鏄�' + }] }, { type: 'text', @@ -3288,7 +3430,7 @@ key: 'marginTop', label: '涓婅竟璺濓紙px锛�', initVal: card.marginTop || 0, - min: 0, + min: -100, max: 1000, precision: 0, required: false, @@ -3299,7 +3441,7 @@ key: 'marginBottom', label: '涓嬭竟璺濓紙px锛�', initVal: card.marginBottom || 0, - min: 0, + min: -100, max: 1000, precision: 0, required: false, diff --git a/src/templates/zshare/menuform/index.jsx b/src/templates/zshare/menuform/index.jsx index 302ad7e..d6bd07f 100644 --- a/src/templates/zshare/menuform/index.jsx +++ b/src/templates/zshare/menuform/index.jsx @@ -44,7 +44,7 @@ const { getFieldDecorator } = this.props.form const fields = [] this.state.formlist.forEach((item, index) => { - if (item.type === 'text') { // 鏂囨湰鎼滅储 + if (item.type === 'text') { fields.push( <Col span={24} key={index}> <Form.Item label={item.label}> diff --git a/src/templates/zshare/modalform/datatable/index.jsx b/src/templates/zshare/modalform/datatable/index.jsx index 2a361f8..ec8b5a1 100644 --- a/src/templates/zshare/modalform/datatable/index.jsx +++ b/src/templates/zshare/modalform/datatable/index.jsx @@ -2,8 +2,8 @@ import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { DndProvider, DragSource, DropTarget } from 'react-dnd' -import { Table, Input, Popconfirm, Form, notification } from 'antd' -import { PlusOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons' +import { Table, Input, Popconfirm, Form, notification, message } from 'antd' +import { PlusOutlined, EditOutlined, DeleteOutlined, SwapOutlined } from '@ant-design/icons' import Utils from '@/utils/utils.js' import FileUpload from '@/tabviews/zshare/fileupload' @@ -118,14 +118,14 @@ return ( <td {...restProps}> {editing ? ( - <Form.Item style={{ margin: 0 }}> + <Form.Item style={{ margin: '0 -5px 0 -5px' }}> {getFieldDecorator(dataIndex, { - rules: [ - { - required: dataIndex === '$value', - message: `Please Input ${title}!`, - }, - ], + // rules: [ + // { + // required: dataIndex === '$value', + // message: `Please Input ${title}!`, + // }, + // ], initialValue: _val, })(this.getInput(form))} </Form.Item> @@ -258,6 +258,7 @@ ) : ( <div className={'operation-btn' + (editingKey !== '' ? ' disabled' : '')}> <span className="primary" onClick={() => {editingKey === '' && this.edit(record.key)}}><EditOutlined /></span> + <span className="hide-control" title="鏄剧ず/闅愯棌" onClick={() => {editingKey === '' && this.handleHide(record.key)}}><SwapOutlined /></span> {editingKey === '' ? <Popconfirm overlayClassName="popover-confirm" title={this.props.dict['model.query.delete']} @@ -281,8 +282,20 @@ } onSave = (record) => { + const { type } = this.props const newData = [...this.state.data] const index = newData.findIndex(item => record.key === item.key) + + if (type === 'link') { + if (newData.filter(m => record.key !== m.key && record.$value === m.$value && record.ParentID === m.ParentID).length > 0) { + message.warning('鐩稿悓ParentID涓嬶紝姝alue鍊煎凡瀛樺湪锛�') + } + } else { + if (newData.filter(m => record.key !== m.key && record.$value === m.$value).length > 0) { + message.warning('姝alue鍊煎凡瀛樺湪锛�') + } + } + if (index > -1) { newData.splice(index, 1, record) this.setState({ data: newData, editingKey: '' }, () => { @@ -303,6 +316,8 @@ } save(form, key) { + const { type } = this.props + form.validateFields((error, row) => { if (error) { return; @@ -310,6 +325,17 @@ const newData = [...this.state.data] const index = newData.findIndex(item => key === item.key) + + if (type === 'link') { + if (newData.filter(m => key !== m.key && row.$value === m.$value && row.ParentID === m.ParentID).length > 0) { + message.warning('鐩稿悓ParentID涓嬶紝姝alue鍊煎凡瀛樺湪锛�') + } + } else { + if (newData.filter(m => key !== m.key && row.$value === m.$value).length > 0) { + message.warning('姝alue鍊煎凡瀛樺湪锛�') + } + } + if (index > -1) { const item = newData[index] newData.splice(index, 1, { @@ -358,6 +384,20 @@ edit(key) { this.setState({ editingKey: key }) + } + + handleHide = (key) => { + let _data = this.state.data.map(item => { + if (item.key === key) { + item.Hide = !item.Hide + } + return item + }) + this.setState({ + data: _data + }, () => { + this.props.onChange(_data) + }) } moveRow = (dragIndex, hoverIndex) => { @@ -418,7 +458,7 @@ rowKey="key" dataSource={this.state.data} columns={columns} - rowClassName="editable-row" + rowClassName={(record) => record.Hide ? 'editable-row hide' : 'editable-row'} onRow={(record, index) => ({ index, moveAble: !this.state.editingKey, diff --git a/src/templates/zshare/modalform/datatable/index.scss b/src/templates/zshare/modalform/datatable/index.scss index 4e81d56..fbd1e54 100644 --- a/src/templates/zshare/modalform/datatable/index.scss +++ b/src/templates/zshare/modalform/datatable/index.scss @@ -18,7 +18,7 @@ line-height: 1; } > td { - padding: 16px 10px; + padding: 13px 10px; } .fileupload-form-container .ant-upload-list-picture-card .ant-upload-list-item { margin: 0; @@ -26,6 +26,14 @@ .ant-upload-list-item-info > span { height: 100%; } + } + .ant-input { + padding: 0 5px; + } + } + .editable-row.hide { + td:not(:last-child) { + text-decoration: line-through; } } .operation-btn { @@ -41,6 +49,9 @@ .primary { color: #1890ff; } + .hide-control { + color: rgb(142, 68, 173); + } .danger { color: #ff4d4f; } @@ -52,6 +63,9 @@ .primary { color: rgba(0, 0, 0, .25); } + .hide-control { + color: rgba(0, 0, 0, .25); + } .danger { color: rgba(0, 0, 0, .25); } diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx index 711f3e6..0fca860 100644 --- a/src/templates/zshare/modalform/index.jsx +++ b/src/templates/zshare/modalform/index.jsx @@ -19,24 +19,24 @@ const MkEditIcon = asyncComponent(() => import('@/components/mkIcon')) const modalTypeOptions = { - text: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'regular', 'interception', 'span', 'labelwidth', 'tooltip', 'extra', 'enter', 'cursor', 'scan', 'splitline', 'placeholder', 'place', 'marginTop', 'marginBottom'], + text: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'regular', 'interception', 'span', 'labelwidth', 'tooltip', 'extra', 'enter', 'cursor', 'scan', 'splitline', 'placeholder', 'place', 'marginTop', 'marginBottom', 'lenControl'], number: ['initval', 'readonly', 'hidden', 'decimal', 'min', 'max', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'enter', 'cursor', 'splitline', 'place', 'marginTop', 'marginBottom'], select: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkSubField', 'span', 'labelwidth', 'tooltip', 'extra', 'emptyText', 'enter', 'splitline', 'dropdown', 'marginTop', 'marginBottom'], checkbox: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'fieldlength', 'span', 'labelwidth', 'tooltip', 'extra', 'splitline', 'arrange', 'marginTop', 'marginBottom'], radio: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'linkSubField', 'span', 'labelwidth', 'tooltip', 'extra', 'setAll', 'emptyText', 'splitline', 'arrange', 'marginTop', 'marginBottom'], - checkcard: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'fieldlength', 'span', 'labelwidth', 'display', 'tooltip', 'extra', 'width', 'multiple', 'borderColor', 'splitline', 'marginTop', 'marginBottom'], + checkcard: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'fieldlength', 'span', 'labelwidth', 'display', 'tooltip', 'extra', 'width', 'multiple', 'splitline', 'marginTop', 'marginBottom'], multiselect: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'fieldlength', 'span', 'labelwidth', 'tooltip', 'extra', 'marginTop', 'marginBottom'], link: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkField', 'linkSubField', 'span', 'labelwidth', 'tooltip', 'extra', 'emptyText', 'enter', 'splitline', 'dropdown', 'marginTop', 'marginBottom'], fileupload: ['readonly', 'required', 'readin', 'fieldlength', 'maxfile', 'fileType', 'span', 'labelwidth', 'tooltip', 'extra', 'compress', 'splitline', 'marginTop', 'marginBottom'], switch: ['initval', 'openVal', 'closeVal', 'openText', 'closeText', 'readonly', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'splitline', 'marginTop', 'marginBottom'], - date: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'mode', 'splitline', 'marginTop', 'marginBottom', 'minDate', 'maxDate'], + date: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'mode', 'splitline', 'marginTop', 'marginBottom', 'minDate', 'maxDate', 'precision'], datemonth: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'splitline', 'marginTop', 'marginBottom'], datetime: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'mode', 'splitline', 'marginTop', 'marginBottom', 'minDate', 'maxDate'], - textarea: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'span', 'labelwidth', 'maxRows', 'encryption', 'interception', 'tooltip', 'extra', 'count', 'placeholder', 'marginTop', 'marginBottom'], + textarea: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'span', 'labelwidth', 'maxRows', 'encryption', 'interception', 'tooltip', 'extra', 'count', 'placeholder', 'marginTop', 'marginBottom', 'enterReplace'], color: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'marginTop', 'marginBottom'], rate: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'splitline', 'tooltip', 'extra', 'marginTop', 'marginBottom', 'allowHalf', 'rateCount', 'character', 'place'], - hint: ['label', 'type', 'blacklist', 'message', 'span', 'labelwidth', 'splitline', 'marginTop', 'marginBottom'], - split: ['label', 'type', 'marginTop', 'marginBottom'], + hint: ['label', 'field', 'type', 'blacklist', 'message', 'span', 'labelwidth', 'splitline', 'marginTop', 'marginBottom'], + split: ['label', 'type', 'marginTop', 'marginBottom', 'splitline'], brafteditor: ['required', 'hidelabel', 'hidden', 'readin', 'fieldlength', 'readonly', 'span', 'labelwidth', 'tooltip', 'extra', 'encryption', 'marginTop', 'marginBottom'], funcvar: ['span', 'labelwidth', 'splitline', 'marginTop', 'marginBottom'], linkMain: ['readonly', 'required', 'hidden', 'fieldlength', 'span', 'labelwidth', 'tooltip', 'extra', 'marginTop', 'marginBottom'] @@ -117,7 +117,10 @@ let reRequired = {} let reTooltip = {} + reRequired.field = true + if (type === 'hint' || type === 'split') { + reRequired.field = false shows = fromJS(modalTypeOptions[type]).toJS() } @@ -140,6 +143,9 @@ reRequired.initval = true if (this.record.enter === 'tab' || this.record.enter === 'sub') { shows.push('tabField') + } + if (sessionStorage.getItem('appType') === 'mob') { // 绉诲姩绔彸渚ф墿灞曚俊鎭� + shows.push('placeholder') } } else if (['multiselect', 'select', 'link', 'radio', 'checkbox'].includes(type)) { if (this.record.resourceType === '0') { // 鑷畾涔夎祫婧� @@ -164,9 +170,9 @@ } } else { if (this.record.resourceType === '0') { // 鑷畾涔夎祫婧� - shows.push('options', 'fields', 'backgroundColor') + shows.push('options', 'fields', 'backgroundColor', 'borderColor') } else if (this.record.resourceType === '1') { // 鏁版嵁婧� - shows.push('dataSource', 'cardValField', 'fields', 'orderBy', 'orderType', 'disableField', 'database', 'backgroundColor') + shows.push('dataSource', 'cardValField', 'fields', 'orderBy', 'orderType', 'disableField', 'database', 'backgroundColor', 'borderColor') } } @@ -414,6 +420,36 @@ } } + handleEmpty = () => { + let field = this.props.form.getFieldValue('valueField') + + if (!field) { + notification.warning({ + top: 92, + message: '璇峰~鍐欏�悸峰瓧娈点��', + duration: 5 + }) + return + } + + let text = this.props.form.getFieldValue('valueText') + + if (!text) { + notification.warning({ + top: 92, + message: '璇峰~鍐欐枃鏈峰瓧娈点��', + duration: 5 + }) + return + } + + let resource = this.props.form.getFieldValue('dataSource') || '' + + resource = `select '' as ${field},'鍏ㄩ儴' as ${text} union all \n${resource}` + + this.props.form.setFieldsValue({dataSource: resource}) + } + getFields() { const { getFieldDecorator } = this.props.form const { dict } = this.props @@ -427,6 +463,7 @@ let rules = [] let className = '' let content = null + let extra = null let initVal = item.initVal || '' if (item.type === 'text') { @@ -440,6 +477,11 @@ }, { max: formRule.field.max, message: formRule.field.maxMessage + }) + } else if (item.max) { + rules.push({ + max: item.max, + message: `${item.label}鏈�澶�${item.max}涓瓧绗 }) } else { rules.push({ @@ -467,7 +509,7 @@ content = <Select showSearch allowClear={item.allowClear === true} - filterOption={(input, option) => option.props.children[2].toLowerCase().indexOf(input.toLowerCase()) >= 0} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} onChange={(value) => {this.optionChange(item.key, value)}} getPopupContainer={() => document.getElementById('modal-fields-form-box')} > @@ -508,6 +550,10 @@ span = 24 className = 'text-area' + if (this.record.type === 'select' || this.record.type === 'link') { + extra = <span className="add-resource-empty" onClick={this.handleEmpty}>绌�</span> + } + content = <CodeMirror /> } else if (item.type === 'textarea') { span = 24 @@ -531,7 +577,7 @@ if (type === 'radio' && this.record.linkField) { type = 'link' } - content = <EditTable type={type} transfield={transfield} linkSubFields={linkSubFields} onChange={this.changeOptions}/> + content = <EditTable type={type} module="form" transfield={transfield} linkSubFields={linkSubFields} onChange={this.changeOptions}/> } else { if (this.record.multiple === 'true') { linkSubFields = [] @@ -560,7 +606,7 @@ fields.push( <Col span={span} key={index}> - <Form.Item className={className} label={item.tooltip ? + <Form.Item className={className} extra={extra} label={item.tooltip ? <Tooltip placement="topLeft" title={item.tooltip}> <QuestionCircleOutlined className="mk-form-tip" /> {item.label} diff --git a/src/templates/zshare/modalform/index.scss b/src/templates/zshare/modalform/index.scss index 7e46fda..6df9194 100644 --- a/src/templates/zshare/modalform/index.scss +++ b/src/templates/zshare/modalform/index.scss @@ -34,4 +34,16 @@ } } } + .ant-form-extra { + padding-top: 0px; + min-height: 0px; + } + .add-resource-empty { + position: absolute; + right: 10px; + top: -25px; + color: #1890ff; + cursor: pointer; + font-size: 14px; + } } \ No newline at end of file diff --git a/src/templates/zshare/modalform/modaleditable/index.jsx b/src/templates/zshare/modalform/modaleditable/index.jsx index 8670071..3e076af 100644 --- a/src/templates/zshare/modalform/modaleditable/index.jsx +++ b/src/templates/zshare/modalform/modaleditable/index.jsx @@ -67,7 +67,7 @@ } return editing ? ( - <Form.Item style={{ margin: 0 }}> + <Form.Item style={{ margin: '0 -5px 0 -5px' }}> {form.getFieldDecorator(dataIndex, { rules: [ { @@ -115,6 +115,7 @@ class EditTable extends Component { static propTpyes = { type: PropTypes.string, // 琛ㄥ崟绫诲瀷 + module: PropTypes.string, // 鍏冪礌绫诲瀷 linkSubFields: PropTypes.array, // 鍏宠仈瀛楁 transfield: PropTypes.object, // 琛ㄥ崟瀛楁鍚嶇О onChange: PropTypes.func // 鏁版嵁鍙樺寲 @@ -215,6 +216,20 @@ _data.splice(index + 1, 0, record) } + this.setState({ + dataSource: _data + }, () => { + this.props.onChange(_data) + }) + } + + handleHide = (record) => { + let _data = this.state.dataSource.map(item => { + if (item.key === record.key) { + item.Hide = !item.Hide + } + return item + }) this.setState({ dataSource: _data }, () => { @@ -336,6 +351,7 @@ <div style={{fontSize: '15px'}}> <span className="operation-btn" onClick={() => this.handleUpDown(record, 'up')} style={{color: '#1890ff'}}><ArrowUpOutlined /></span> <span className="operation-btn" onClick={() => this.handleUpDown(record, 'down')} style={{color: '#ff4d4f'}}><ArrowDownOutlined /></span> + <span className="operation-btn" title="鏄剧ず/闅愯棌" onClick={() => this.handleHide(record)} style={{color: 'rgb(142, 68, 173)'}}><SwapOutlined /></span> <Popconfirm title="纭畾鍒犻櫎鍚楋紵" overlayClassName="popover-confirm" @@ -368,6 +384,35 @@ } } + handleEmpty = (e) => { + e.stopPropagation() + const { linkSubFields, module } = this.props + const { dataSource } = this.state + + if (dataSource.filter(item => item.Value === '').length > 0) { + message.warning('Value涓虹┖宸插瓨鍦紒') + return + } + const newData = { + key: Utils.getuuid(), + Value: '', + Text: module === 'form' ? '绌�' : '鍏ㄩ儴', + ParentID: '' + } + + linkSubFields.forEach(m => { + newData[m] = newData[m] || '' + }) + + let _data = [newData, ...dataSource] + + this.setState({ + dataSource: _data, + }, () => { + this.props.onChange(_data) + }) + } + resetColumn = (type, linkSubFields) => { const { columns, dataSource } = this.getColumns(type, linkSubFields, this.state.dataSource) @@ -392,6 +437,7 @@ } render() { + const { module } = this.props const { dataSource } = this.state const components = { body: { @@ -417,10 +463,11 @@ }) return ( <div className="common-modal-edit-table"> + <span className="add-row add-row-empty" onClick={this.handleEmpty}>{module === 'form' ? '绌�' : '鍏ㄩ儴'}</span> <PlusOutlined className="add-row" onClick={this.handleAdd} /> <Table components={components} - rowClassName={() => 'editable-row'} + rowClassName={(record) => record.Hide ? 'editable-row hide' : 'editable-row'} bordered dataSource={dataSource} columns={columns} diff --git a/src/templates/zshare/modalform/modaleditable/index.scss b/src/templates/zshare/modalform/modaleditable/index.scss index 010e085..ab53b8e 100644 --- a/src/templates/zshare/modalform/modaleditable/index.scss +++ b/src/templates/zshare/modalform/modaleditable/index.scss @@ -8,11 +8,18 @@ font-size: 18px; color: #26C281; } + .add-row-empty { + font-size: 14px; + right: 50px; + line-height: 1.5; + color: #1890ff; + cursor: pointer; + } .ant-table-thead > tr > th { padding: 10px 16px; } .ant-table-tbody > tr > td { - padding: 5px 16px; + padding: 5px 10px; } .editable-cell-value-wrap { cursor: pointer; @@ -22,10 +29,9 @@ vertical-align: middle; word-wrap: break-word; word-break: break-word; - .ant-input { - height: 30px; - padding: 0 11px; - } + } + .ant-input { + padding: 0 5px; } .ant-form-item-control-wrapper { width: 100%; @@ -37,9 +43,12 @@ } } .operation-btn { - margin-right: 15px; + margin-right: 10px; cursor: pointer; } + .editable-row.hide { + text-decoration: line-through; + } .ant-form-explain { font-size: 12px; } diff --git a/src/templates/zshare/pasteform/index.jsx b/src/templates/zshare/pasteform/index.jsx index 08ed804..6b5cd34 100644 --- a/src/templates/zshare/pasteform/index.jsx +++ b/src/templates/zshare/pasteform/index.jsx @@ -27,9 +27,23 @@ this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { let _config = values.config - try { _config = JSON.parse(window.decodeURIComponent(window.atob(_config))) + + if (typeof(_config) === 'object' && _config.$srcId) { + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid && _config.$srcId !== srcid) { + notification.warning({ + top: 92, + message: '褰撳墠绯荤粺鏃犳潈闄愪娇鐢ㄦ椤归厤缃紒', + duration: 5 + }) + + _config = '' + } else { + delete _config.$srcId + } + } } catch (e) { notification.warning({ top: 92, @@ -47,14 +61,6 @@ } }) }) - } - - submit = () => { - if (this.props.inputSubmit) { - setTimeout(() => { - this.props.inputSubmit() - }, 10) - } } render() { @@ -82,7 +88,7 @@ message: '璇疯緭鍏ラ厤缃俊鎭�!' } ] - })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }} onPressEnter={this.submit}/>)} + })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }}/>)} </Form.Item> </Col> </Row> diff --git a/src/templates/zshare/verifycard/billcodeform/index.jsx b/src/templates/zshare/verifycard/billcodeform/index.jsx index 8b6a946..a5ac2c7 100644 --- a/src/templates/zshare/verifycard/billcodeform/index.jsx +++ b/src/templates/zshare/verifycard/billcodeform/index.jsx @@ -156,7 +156,7 @@ values.fieldName = _funField ? _funField.label : '' // 涓�绾ц彍鍗曞�间负20190203125926873D6029A9C511041719420鏃禩ypeCharTwo=TableCode锛屽叾浠栫敤BillCode - if (values.ModularCode === '20190203125926873D6029A9C511041719420') { + if (values.ModularCode === '20190203125926873D6029A9C511041719420' || values.ModularCode === '01') { values.TypeCharTwo = 'TableCode' } else { values.TypeCharTwo = 'BillCode' diff --git a/src/templates/zshare/verifycard/callbackcustomscript/index.jsx b/src/templates/zshare/verifycard/callbackcustomscript/index.jsx index 0b5316b..0f481b7 100644 --- a/src/templates/zshare/verifycard/callbackcustomscript/index.jsx +++ b/src/templates/zshare/verifycard/callbackcustomscript/index.jsx @@ -221,7 +221,7 @@ } return ( - <Form {...formItemLayout} className="verify-form" id="verify-custom-callback-scripts"> + <Form {...formItemLayout} className="verify-form verify-custom-callback-scripts" id="verify-custom-callback-scripts"> <Row gutter={24}> <Col span={8}> <Form.Item label={'琛ㄥ悕'} style={{whiteSpace: 'nowrap', margin: 0}}> diff --git a/src/templates/zshare/verifycard/callbackcustomscript/index.scss b/src/templates/zshare/verifycard/callbackcustomscript/index.scss index 89791c7..059f94f 100644 --- a/src/templates/zshare/verifycard/callbackcustomscript/index.scss +++ b/src/templates/zshare/verifycard/callbackcustomscript/index.scss @@ -1,4 +1,4 @@ -#verify-custom-scripts { +.verify-custom-callback-scripts { .ant-select-dropdown-menu-item { white-space: normal; } diff --git a/src/templates/zshare/verifycard/customform/index.jsx b/src/templates/zshare/verifycard/customform/index.jsx index d203f25..0dc8608 100644 --- a/src/templates/zshare/verifycard/customform/index.jsx +++ b/src/templates/zshare/verifycard/customform/index.jsx @@ -183,6 +183,7 @@ <Button onClick={this.handleConfirm} loading={this.state.loading} className="mk-green"> 淇濆瓨 </Button> + <div></div> <Button onClick={this.handleCancel}> 鍙栨秷 </Button> diff --git a/src/templates/zshare/verifycard/customscript/index.jsx b/src/templates/zshare/verifycard/customscript/index.jsx index 2bf77c8..1909699 100644 --- a/src/templates/zshare/verifycard/customscript/index.jsx +++ b/src/templates/zshare/verifycard/customscript/index.jsx @@ -11,6 +11,7 @@ class CustomForm extends Component { static propTpyes = { + type: PropTypes.any, dict: PropTypes.object, // 瀛楀吀椤� btn: PropTypes.object, // 鎸夐挳淇℃伅 usefulfields: PropTypes.string, // 鍙敤瀛楁 @@ -31,10 +32,16 @@ editItem: record }) - this.props.form.setFieldsValue({ - sql: record.sql, - position: record.position || 'back' - }) + if (this.props.type) { + this.props.form.setFieldsValue({ + sql: record.sql + }) + } else { + this.props.form.setFieldsValue({ + sql: record.sql, + position: record.position || 'back' + }) + } } handleConfirm = () => { @@ -43,6 +50,7 @@ this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { values.uuid = editItem ? editItem.uuid : '' + values.position = values.position || (editItem ? editItem.position : 'front') let _quot = values.sql.match(/'{1}/g) let _lparen = values.sql.match(/\({1}/g) @@ -95,22 +103,24 @@ let _backCustomScript = '' // 榛樿sql鍚庢墽琛岃剼鏈� this.props.customScripts.forEach(item => { - if (item.status === 'false') return + if (item.status === 'false' && values.uuid !== item.uuid) return - if (item.position === 'init') { + let _item = values.uuid === item.uuid ? values : item + + if (_item.position === 'init') { _initCustomScript += ` /* 鍒濆鍖栬剼鏈� */ - ${values.uuid === item.uuid ? values.sql : item.sql} + ${_item.sql} ` - } else if (item.position === 'front') { + } else if (_item.position === 'front') { _prevCustomScript += ` /* 榛樿sql鍓嶈剼鏈� */ - ${values.uuid === item.uuid ? values.sql : item.sql} + ${_item.sql} ` } else { _backCustomScript += ` /* 榛樿sql鍚庤剼鏈� */ - ${values.uuid === item.uuid ? values.sql : item.sql} + ${_item.sql} ` } }) @@ -219,7 +229,7 @@ } render() { - const { usefulfields, systemScripts, btn } = this.props + const { usefulfields, systemScripts, btn, type } = this.props const { getFieldDecorator } = this.props.form const formItemLayout = { labelCol: { @@ -232,25 +242,27 @@ } } + let _type = type || '' + return ( - <Form {...formItemLayout} className="verify-form" id="verify-custom-scripts"> + <Form {...formItemLayout} className="verify-form verify-custom-scripts" id={'verify-custom-scripts' + _type}> <Row gutter={24}> - {btn.sql ? <Col span={8}> + {!_type && btn.sql ? <Col span={8}> <Form.Item label={'琛ㄥ悕'} style={{whiteSpace: 'nowrap', margin: 0}}> {btn.sql} </Form.Item> </Col> : null} - <Col span={10}> + {!_type ? <Col span={10}> <Form.Item label={'鎶ラ敊瀛楁'} style={{margin: 0, whiteSpace: 'nowrap'}}> ErrorCode锛堝鍔犲悗缂�NT琛ㄧず鏁版嵁涓嶅洖婊氾紝濡侲NT銆丯NT銆丗NT銆丯MNT锛�, retmsg </Form.Item> - </Col> - {usefulfields ? <Col span={24} className="sqlfield"> + </Col> : null} + {!_type && usefulfields ? <Col span={24} className="sqlfield"> <Form.Item label={'鍙敤瀛楁'}> {usefulfields} </Form.Item> </Col> : null} - <Col span={8} style={{whiteSpace: 'nowrap'}}> + {!_type ?<Col span={8} style={{whiteSpace: 'nowrap'}}> <Form.Item style={{marginBottom: 0}} label={ <Tooltip placement="bottomLeft" title={'鑷畾涔夎剼鏈笌榛樿sql浣嶇疆鍏崇郴銆�'}> <QuestionCircleOutlined className="mk-form-tip" /> @@ -267,22 +279,25 @@ </Radio.Group> )} </Form.Item> - </Col> - <Col span={10}> + </Col> : null} + {!_type ?<Col span={10}> <Form.Item label={'蹇嵎娣诲姞'} style={{marginBottom: 0}}> <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} onSelect={this.selectScript} - getPopupContainer={() => document.getElementById('verify-custom-scripts')} + getPopupContainer={() => document.getElementById('verify-custom-scripts' + _type)} > <Select.Option key="default" value={this.props.defaultsql}>榛樿sql</Select.Option> + <Select.Option key="debugger" value={`z_debug: select @ErrorCode='E',@retmsg='娴嬭瘯鏂偣' goto aaa`}> + 娴嬭瘯鏂偣 + </Select.Option> {systemScripts.map((option, i) => <Select.Option key={i} value={option.value}>{option.name}</Select.Option> )} </Select> </Form.Item> - </Col> + </Col> : null} <Col span={6} className="add"> <Button onClick={this.handleConfirm} loading={this.state.loading} className="mk-green" style={{marginBottom: 15, marginLeft: 40}}> 淇濆瓨 diff --git a/src/templates/zshare/verifycard/customscript/index.scss b/src/templates/zshare/verifycard/customscript/index.scss index 89791c7..7853744 100644 --- a/src/templates/zshare/verifycard/customscript/index.scss +++ b/src/templates/zshare/verifycard/customscript/index.scss @@ -1,4 +1,4 @@ -#verify-custom-scripts { +.verify-custom-scripts { .ant-select-dropdown-menu-item { white-space: normal; } diff --git a/src/templates/zshare/verifycard/index.jsx b/src/templates/zshare/verifycard/index.jsx index 6a3ecb5..b98a3c2 100644 --- a/src/templates/zshare/verifycard/index.jsx +++ b/src/templates/zshare/verifycard/index.jsx @@ -2,7 +2,7 @@ import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { Form, Tabs, Row, Col, Radio, Button, Select, Popconfirm, notification, Modal, message, InputNumber, Tooltip, Typography } from 'antd' -import { QuestionCircleOutlined, CheckCircleOutlined, StopOutlined, EditOutlined, SwapOutlined, DeleteOutlined, ExclamationOutlined } from '@ant-design/icons' +import { QuestionCircleOutlined, CheckCircleOutlined, StopOutlined, EditOutlined, SwapOutlined, DeleteOutlined, ExclamationOutlined, BorderOutlined } from '@ant-design/icons' import moment from 'moment' import Api from '@/api' @@ -17,6 +17,8 @@ import VoucherForm from './voucherform' import asyncComponent from '@/utils/asyncComponent' import { updateForm } from '@/utils/utils-update.js' +import MKEmitter from '@/utils/events.js' +import MinView from '@/assets/img/minview.png' import './index.scss' const { TabPane } = Tabs @@ -37,6 +39,8 @@ initsql: '', // sql楠岃瘉鏃跺彉閲忓0鏄庡強璧嬪�� notes: [], // 鐭俊妯℃澘 setting: null, + visible: false, + scriptId: '', verify: {}, fields: [], usefulfields: '', @@ -228,12 +232,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - // text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } @@ -298,12 +302,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - // text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } @@ -367,12 +371,12 @@ render: (text) => { let title = text.match(/^\s*\/\*.+\*\//) title = title && title[0] ? title[0] : '' - // text = title ? text.replace(title, '') : text + let _text = title ? text.replace(title, '') : text return ( <div> - {title ? <span style={{color: '#a50'}}>{title}</span> : null} - <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph> + {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null} + <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph> </div> ) } @@ -469,7 +473,7 @@ let _type = record.Type if (_type && typeof(_type) === 'string') { _type = parseInt(_type) - } else { + } else if (!_type) { _type = 4 } @@ -531,7 +535,7 @@ UNSAFE_componentWillMount() { const { columns, config, card, btnTab } = this.props - let _verify = card.verify || {} + let _verify = fromJS(card.verify || {}).toJS() let _invalid = _verify.invalid @@ -645,14 +649,20 @@ resolve(_fields) } }).then(_fields => { - let _usefulfields = ['BID', 'ID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey', 'UserName', 'FullName', 'RoleID', 'mk_departmentcode', 'mk_organization', 'login_city', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'ModularDetailCode'] - let _declare = ['@UserName nvarchar(50)', '@FullName nvarchar(50)', '@RoleID nvarchar(512)', '@mk_departmentcode nvarchar(50)', '@mk_organization nvarchar(50)', '@login_city nvarchar(50)', '@ErrorCode nvarchar(50)', '@retmsg nvarchar(4000)', '@BillCode nvarchar(50)', '@BVoucher nvarchar(50)', '@FIBVoucherDate nvarchar(50)', '@FiYear nvarchar(50)', '@ModularDetailCode nvarchar(50)'] - let _select = ['@UserName=\'\'', '@FullName=\'\'', '@RoleID=\'\'', '@mk_departmentcode=\'\'', '@mk_organization=\'\'', '@login_city=\'\'', '@ErrorCode=\'\'', '@retmsg=\'\'', '@BillCode=\'\'', '@BVoucher=\'\'', '@FIBVoucherDate=\'\'', '@FiYear=\'\'', '@ModularDetailCode=\'\''] + let _usefulfields = ['UserName', 'FullName', 'RoleID', 'mk_departmentcode', 'mk_organization', 'login_city', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'ModularDetailCode'] + let _declare = ['@UserName nvarchar(50)', '@FullName nvarchar(50)', '@RoleID nvarchar(512)', '@mk_departmentcode nvarchar(50)', '@mk_organization nvarchar(50)', '@login_city nvarchar(50)', '@ErrorCode nvarchar(50)', '@retmsg nvarchar(4000)', '@BillCode nvarchar(50)', '@BVoucher nvarchar(50)', '@FIBVoucherDate nvarchar(50)', '@FiYear nvarchar(50)', '@ModularDetailCode nvarchar(50)', '@bid nvarchar(50)'] + let _select = ['@UserName=\'\'', '@FullName=\'\'', '@RoleID=\'\'', '@mk_departmentcode=\'\'', '@mk_organization=\'\'', '@login_city=\'\'', '@ErrorCode=\'\'', '@retmsg=\'\'', '@BillCode=\'\'', '@BVoucher=\'\'', '@FIBVoucherDate=\'\'', '@FiYear=\'\'', '@ModularDetailCode=\'\'', '@bid=\'\''] let fieldArr = _usefulfields.map(_f => _f.toLowerCase()) let hasBid = false + + fieldArr.push('bid') _fields = _fields.filter(_f => _f.field) _fields.forEach(_f => { + if (_f.field.toLowerCase() === 'bid') { + hasBid = true + } + if (fieldArr.includes(_f.field.toLowerCase())) return fieldArr.push(_f.field.toLowerCase()) @@ -673,7 +683,7 @@ if (_f.type.match(/date/ig)) { _type = 'datetime' - _select.push(`@${_f.field}='1900-01-01'`) + _select.push(`@${_f.field}='1949-10-01'`) } else if (_f.type === 'number') { _type = `decimal(18,${_fieldlen})` _select.push(`@${_f.field}=0`) @@ -685,10 +695,6 @@ } _declare.push(`@${_f.field} ${_type}`) - - if (_f.field.toLowerCase() === 'bid') { - hasBid = true - } }) let uniqueFields = fromJS(_fields).toJS() @@ -696,9 +702,6 @@ if (!hasBid) { // 鍞竴鎬ч獙璇佹坊鍔燘ID uniqueFields.unshift({ uuid: 'BID', field: 'BID', label: 'BID', type: 'text' }) _fields.unshift({ uuid: 'BID', field: 'BID', label: 'BID', type: 'text' }) - fieldArr.push('bid') - _declare.push(`@bid nvarchar(50)`) - _select.push(`@bid=''`) } let hasColumn = false @@ -923,7 +926,7 @@ columnsFields: _columns, initsql: _sql, defaultsql: _defaultsql, - usefulfields: _usefulfields.join(', '), + usefulfields: ['BID', 'ID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey', ..._usefulfields].join(', '), uniqueColumns: this.state.uniqueColumns.map(col => { if (col.dataIndex === 'field') { col.options = uniqueFields @@ -1097,6 +1100,8 @@ values.uuid = Utils.getuuid() verify.scripts.push(values) } + + MKEmitter.emit('editLineId', values.uuid) this.setState({ verify }) } @@ -1449,7 +1454,7 @@ render() { const { card } = this.props - const { verify, fields, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes } = this.state + const { verify, fields, visible, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -1583,7 +1588,7 @@ </span> } key="2x"> <ContrastForm dict={this.props.dict} contrastChange={this.contrastChange}/> - <EditTable actions={['edit', 'move', 'copy', 'del']} type="contrastverify" data={verify.contrasts} columns={contrastColumns} onChange={(contrasts) => this.setState({verify: {...verify, contrasts}})}/> + <EditTable actions={['edit', 'move', 'copy', 'del', 'status']} type="contrastverify" data={verify.contrasts} columns={contrastColumns} onChange={(contrasts) => this.setState({verify: {...verify, contrasts}})}/> </TabPane> : null} {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ <span> @@ -1632,7 +1637,7 @@ dict={this.props.dict} uniqueChange={this.uniqueChange} /> - <EditTable actions={['edit', 'move', 'del']} data={verify.uniques} columns={card.Ot !== 'requiredOnce' ? uniqueColumns : onceUniqueColumns} onChange={this.changeUniques}/> + <EditTable actions={['edit', 'move', 'del', 'status']} data={verify.uniques} columns={card.Ot !== 'requiredOnce' ? uniqueColumns : onceUniqueColumns} onChange={this.changeUniques}/> </TabPane> : null} {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={ <span> @@ -1656,6 +1661,18 @@ {verify.scripts.length ? <span className="count-tip">{verify.scripts.length}</span> : null} </span> } key="6"> + + <BorderOutlined className="full-scripts" onClick={() => { + if (this.scriptsForm && (this.scriptsForm.state.editItem || (this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))))) { + notification.warning({ + top: 92, + message: '璇蜂繚瀛樿嚜瀹氫箟鑴氭湰锛�', + duration: 5 + }) + return + } + this.setState({visible: true, scriptId: ''}) + }}/> <CustomScript btn={this.props.card} dict={this.props.dict} @@ -1775,6 +1792,76 @@ </Form> </TabPane> </Tabs> + <Modal + wrapClassName="model-custom-scripts-modal" + title="鑷畾涔夎剼鏈�" + visible={visible} + width={'95vw'} + maskClosable={false} + destroyOnClose + > + <img className="unfull-scripts" src={MinView} onClick={() => this.setState({visible: false, scriptId: ''})} alt=""/> + <div className="script-table-wrap"> + {verify.scripts.map(item => { + let title = item.sql.match(/^\s*\/\*.+\*\//) + title = title && title[0] ? title[0] : '' + let _text = title ? item.sql.replace(title, '') : item.sql + + let position = null + if (item.position === 'init') { + position = <span style={{color: 'orange'}}>鍒濆鍖�</span> + } else if (item.position === 'front') { + position = <span style={{color: '#26C281'}}>sql鍓�</span> + } else { + position = <span style={{color: '#1890ff'}}>sql鍚�</span> + } + + return ( + <div className={'script-item ' + (this.state.scriptId === item.uuid ? 'active' : '') } key={item.uuid}> + <div style={{cursor: 'pointer'}} onClick={() => { + this.scriptsFullForm.edit(item) + this.setState({scriptId: item.uuid}) + }}> + {title ? <div style={{color: '#a50', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis'}}>{title}</div> : null} + <Paragraph copyable={{ text: item.sql }} ellipsis={{ rows: 4 }}>{_text}</Paragraph> + <div>{position}{item.status === 'false' ? + <span style={{color: '#ff4d4f', marginLeft: '20px'}}> + 绂佺敤 + <StopOutlined style={{marginLeft: '5px'}} /> + </span> : + <span style={{color: '#26C281', marginLeft: '20px'}}> + 鍚敤 + <CheckCircleOutlined style={{marginLeft: '5px'}}/> + </span>} + </div> + </div> + <div style={{textAlign: 'right'}}> + <span className="operation-btn" onClick={() => this.handleStatus(item, 'scripts')} style={{color: '#8E44AD'}}><SwapOutlined /></span> + <Popconfirm + overlayClassName="popover-confirm" + title={this.props.dict['model.query.delete']} + onConfirm={() => this.handleDelete(item, 'scripts') + }> + <span className="operation-btn" style={{color: '#ff4d4f'}}><DeleteOutlined /></span> + </Popconfirm> + </div> + </div> + ) + })} + </div> + <CustomScript + type="fullscreen" + btn={this.props.card} + dict={this.props.dict} + initsql={this.state.initsql} + customScripts={verify.scripts} + defaultsql={this.state.defaultsql} + usefulfields={this.state.usefulfields} + systemScripts={this.state.systemScripts} + scriptsChange={this.scriptsChange} + wrappedComponentRef={(inst) => this.scriptsFullForm = inst} + /> + </Modal> </div> ) } diff --git a/src/templates/zshare/verifycard/index.scss b/src/templates/zshare/verifycard/index.scss index d3dab25..da0eef1 100644 --- a/src/templates/zshare/verifycard/index.scss +++ b/src/templates/zshare/verifycard/index.scss @@ -72,4 +72,141 @@ .operation-btn:not(:first-child) { margin-left: 5px; } + .full-scripts { + position: absolute; + right: 0px; + top: 18px; + font-size: 18px; + color: #1890ff; + } +} +.model-custom-scripts-modal { + .ant-modal { + top: 30px; + .ant-modal-header { + padding: 10px 24px; + } + .ant-modal-footer { + display: none; + } + .ant-modal-close { + display: none; + } + .ant-modal-body { + padding: 0; + height: calc(100vh - 100px); + overflow: hidden; + display: flex; + + .script-table-wrap { + width: 240px; + overflow-y: auto; + overflow-x: hidden; + height: calc(100vh - 100px); + + .operation-btn { + display: inline-block; + font-size: 16px; + padding: 0 5px; + cursor: pointer; + margin-left: 5px; + } + + .script-item { + border-bottom: 1px solid #eeeeee; + padding: 15px 10px 5px; + } + .script-item.active { + background-color: #bae7ff; + } + .ant-typography { + margin-bottom: 5px; + } + } + + .script-table-wrap::-webkit-scrollbar { + width: 7px; + } + .script-table-wrap::-webkit-scrollbar-thumb { + border-radius: 5px; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13); + background: rgba(0, 0, 0, 0.13); + } + .script-table-wrap::-webkit-scrollbar-track { + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05); + border-radius: 3px; + border: 1px solid rgba(0, 0, 0, 0.07); + background: rgba(0, 0, 0, 0); + } + + .unfull-scripts { + position: absolute; + right: 20px; + z-index: 2; + top: 10px; + color: #1890ff; + width: 26px; + cursor: pointer; + padding: 5px; + + } + + .verify-form { + flex: 1; + >.ant-row { + margin: 0!important; + position: unset; + } + .sql { + padding: 0!important; + .ant-form-item-label { + display: none; + } + .ant-form-item-control-wrapper { + width: 100%; + } + .CodeMirror { + height: calc(100vh - 100px); + border-radius: 0; + } + .code-mirror-area { + border-radius: 0; + width: calc(95vw - 240px); + } + } + .sqlfield { + .ant-form-item { + margin-bottom: 5px; + } + .ant-form-item-control { + line-height: 24px; + } + .ant-form-item-label { + line-height: 25px; + } + .ant-form-item-children { + line-height: 22px; + } + .ant-col-sm-8 { + width: 10.5%; + } + .ant-col-sm-16 { + width: 89.5%; + } + } + .add { + position: absolute; + top: 10px; + z-index: 1; + .ant-btn { + height: 28px; + } + .mk-green { + margin-left: 0!important; + margin-right: 10px; + } + } + } + } + } } \ No newline at end of file diff --git a/src/utils/option.js b/src/utils/option.js index b8b73e7..58196a7 100644 --- a/src/utils/option.js +++ b/src/utils/option.js @@ -163,7 +163,7 @@ ], datetime: [ {value: '', text: _dict['model.empty']}, - {value: '0', text: '浠婂ぉ'}, + {value: '0', text: '褰撳墠'}, {value: 1, text: '鏄ㄥぉ'}, {value: 3, text: '鍓嶄笁澶�'}, {value: 7, text: '鍓嶄竷澶�'}, @@ -196,6 +196,18 @@ }, { value: '=', text: '=' + }, { + value: '>', + text: '>' + }, { + value: '<', + text: '<' + }, { + value: '>=', + text: '>=' + }, { + value: '<=', + text: '<=' }], multiselect: [{ value: 'like', @@ -205,14 +217,26 @@ text: 'not like' }], select: [{ - value: '=', - text: '=' - }, { value: 'like', text: 'like' }, { value: 'not like', text: 'not like' + }, { + value: '=', + text: '=' + }, { + value: '>', + text: '>' + }, { + value: '<', + text: '<' + }, { + value: '>=', + text: '>=' + }, { + value: '<=', + text: '<=' }], date: [{ value: '>=', @@ -923,4 +947,4 @@ ] } -export const queryTableSql = 'select TbName,Remark from (select TbName,Remark from sDataDictb where appkey= @appkey@ and Deleted=0 union select a.TbName,Remark from (select TbName,Remark from sDataDictb where appkey= \'\' and Deleted=0 ) a left join (select TbName from sDataDictb where appkey= @appkey@ and Deleted=0 ) b on a.TbName=b.TbName where b.TbName is null ) t' +export const queryTableSql = 'select top 999999 TbName,Remark from (select TbName,Remark from sDataDictb where appkey= @appkey@ and Deleted=0 union select a.TbName,Remark from (select TbName,Remark from sDataDictb where appkey= \'\' and Deleted=0 ) a left join (select TbName from sDataDictb where appkey= @appkey@ and Deleted=0 ) b on a.TbName=b.TbName where b.TbName is null ) t order by TbName' diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 928c462..0d109b5 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -95,9 +95,16 @@ children: null } } else if (item.switchable) { // 鏁版嵁鍙垏鎹� + let disabled = false + if (item.type === 'card') { + disabled = item.wrap.cardType === '' + } else if (item.type === 'table') { + disabled = item.wrap.tableType === '' + } return { value: item.uuid, - label: item.name + label: item.name, + disabled: disabled } } else if (item.type === 'form') { // 鏁版嵁鏍煎紡锛屽瓨鍦ㄦ暟鎹簮 return { @@ -332,7 +339,7 @@ * @description 閲嶇疆鑿滃崟閰嶇疆锛岄〉闈㈡暣浣撳鍒� * @return {String} components 閰嶇疆淇℃伅 */ - static resetConfig = (components, uuids = {}) => { + static resetConfig = (components, uuids = {}, clear = false) => { return components.map(item => { if (item.type === 'navbar') { return item @@ -352,31 +359,59 @@ cell.parentId = item.uuid return cell }) - tab.components = this.resetConfig(tab.components, uuids) + tab.components = this.resetConfig(tab.components, uuids, clear) }) } else if (item.type === 'group') { item.components = item.components.map(cell => { cell.parentId = item.uuid return cell }) - item.components = this.resetConfig(item.components, uuids) + item.components = this.resetConfig(item.components, uuids, clear) } else if (item.type === 'menubar') { item.subMenus = item.subMenus.map(cell => { cell.uuid = this.getuuid() + if (clear && cell.setting.type === 'linkmenu') { + cell.setting.type = 'menu' + cell.setting.linkMenuId = '' + } return cell }) } else if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) { item.subcards.forEach(card => { card.uuid = this.getuuid() + + if (clear) { + if (card.setting.click === 'menu') { + card.setting.click = '' + card.setting.menu = '' + } else if (card.setting.click === 'menus') { + card.setting.click = '' + card.setting.menuType = '' + delete card.menus + } + } + if (card.elements) { card.elements = card.elements.map(cell => { cell.uuid = this.getuuid() + + if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { + cell.pageTemplate = '' + cell.linkmenu = '' + } + return cell }) } if (card.backElements) { card.backElements = card.backElements.map(cell => { cell.uuid = this.getuuid() + + if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { + cell.pageTemplate = '' + cell.linkmenu = '' + } + return cell }) } @@ -385,6 +420,12 @@ if (item.elements) { item.elements = item.elements.map(cell => { cell.uuid = this.getuuid() + + if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { + cell.pageTemplate = '' + cell.linkmenu = '' + } + return cell }) } @@ -398,11 +439,18 @@ } else if (c.type === 'custom' && c.elements) { c.elements = c.elements.map(cell => { cell.uuid = this.getuuid() + return cell }) } else if (c.type === 'action' && c.elements) { c.elements = c.elements.map(cell => { cell.uuid = this.getuuid() + + if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { + cell.pageTemplate = '' + cell.linkmenu = '' + } + return cell }) } @@ -456,6 +504,11 @@ oriUids[cell.uuid] = _uuid cell.uuid = _uuid + if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { + cell.pageTemplate = '' + cell.linkmenu = '' + } + return cell }) } @@ -475,6 +528,9 @@ }) return cell }) + } + if (clear && item.wrap.menus) { + item.wrap.menus = [] } } else if (item.search) { item.search = item.search.map(cell => { @@ -511,6 +567,35 @@ } /** + * @description 閲嶇疆鑿滃崟閰嶇疆锛岄〉闈㈡暣浣撳鍒� + * @return {String} components 閰嶇疆淇℃伅 + */ + static getFloor = (id) => { + let floor = 1 + let finish = false + + let reCheck = (components, f) => { + components.forEach(item => { + if (finish) return + if (item.type === 'tabs') { + if (item.uuid === id) { + floor = f + finish = true + } else { + item.subtabs.forEach(tab => { + reCheck(tab.components, f + 1) + }) + } + } + }) + } + + reCheck(window.GLOB.customMenu.components, 1) + + return floor + } + + /** * @description 鏁版嵁婧愬悕绉帮紝鐢ㄤ簬缁熶竴鏌ヨ * @return {String} name */ diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js index 4b98d65..6c428a5 100644 --- a/src/utils/utils-datamanage.js +++ b/src/utils/utils-datamanage.js @@ -200,7 +200,7 @@ } // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 - if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { _customScript && console.info(`${setting.$name ? `/*${setting.$name} 鑷畾涔夎剼鏈�*/\n` : ''}${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`) LText && console.info(`${setting.$name ? `/*${setting.$name} 鏁版嵁婧�*/\n` : ''}` + LText) } @@ -339,7 +339,7 @@ } // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 - if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { _customScript && console.info(`${setting.$name ? `/*${setting.$name} 鑷畾涔夎剼鏈� 缁熻鏌ヨ*/\n` : ''}${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`) LText && console.info(`${setting.$name ? `/*${setting.$name} 鏁版嵁婧� 缁熻鏌ヨ*/\n` : ''}` + LText) } @@ -462,7 +462,7 @@ }) // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 - if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { console.info(sql.replace(/\n\s{8}/ig, '\n')) } } @@ -537,7 +537,7 @@ sql = _prevCustomScript + sql sql = sql + _backCustomScript - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { console.info(sql.replace(/\n\s{8}/ig, '\n')) } @@ -695,7 +695,7 @@ } // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 - if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { _customScript && console.info(`${setting.$name ? `/*${setting.$name} 鑷畾涔夎剼鏈紙鍚屾鏌ヨ锛�*/\n` : ''}${_dataresource ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`) _dataresource && console.info(`${setting.$name ? `/*${setting.$name} 鏁版嵁婧愶紙鍚屾鏌ヨ锛�*/\n` : ''}` + _dataresource) } diff --git a/src/utils/utils.js b/src/utils/utils.js index e195f6b..91cd72f 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -251,20 +251,43 @@ item.$forbid = item.query === 'false' if (item.type === 'date') { // 鏃堕棿鎼滅储 - item.initval = item.initval ? moment().subtract(item.initval, 'days').format('YYYY-MM-DD') : '' + item.precision = item.precision || 'day' + let format = 'YYYY-MM-DD' + if (item.precision === 'day') { + + } else if (item.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (item.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (item.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } + + item.initval = item.initval ? moment().subtract(item.initval, 'days').format(format) : '' } else if (item.type === 'datemonth') { item.initval = item.initval ? moment().subtract(item.initval, 'month').format('YYYY-MM') : '' } else if (item.type === 'dateweek') { item.initval = item.initval ? moment().subtract(item.initval * 7, 'days').format('YYYY-MM-DD') : '' } else if (item.type === 'daterange') { + item.precision = item.precision || 'day' + let format = 'YYYY-MM-DD' + if (item.precision === 'day') { + + } else if (item.precision === 'hour') { + format = 'YYYY-MM-DD HH' + } else if (item.precision === 'minute') { + format = 'YYYY-MM-DD HH:mm' + } else if (item.precision === 'second') { + format = 'YYYY-MM-DD HH:mm:ss' + } if (item.initval === 'week') { - item.initval = [moment().startOf('week').format('YYYY-MM-DD'), moment().endOf('week').format('YYYY-MM-DD')].join(',') + item.initval = [moment().startOf('week').format(format), moment().endOf('week').format(format)].join(',') } else if (item.initval === 'month') { - item.initval = [moment().startOf('month').format('YYYY-MM-DD'), moment().endOf('month').format('YYYY-MM-DD')].join(',') + item.initval = [moment().startOf('month').format(format), moment().endOf('month').format(format)].join(',') } else if (item.initval) { try { let _initval = JSON.parse(item.initval) - let _vals = [moment().subtract(_initval[0], 'days').format('YYYY-MM-DD'), moment().subtract(_initval[1], 'days').format('YYYY-MM-DD')] + let _vals = [moment().subtract(_initval[0], 'days').format(format), moment().subtract(_initval[1], 'days').format(format)] item.initval = _vals.join(',') } catch (e) { item.initval = '' @@ -358,6 +381,7 @@ label: cell.label, value: cell.initval, required: cell.required, + precision: cell.precision || '', forbid: cell.$forbid } @@ -398,10 +422,18 @@ let _val = item.value || '' if (_val) { - if (item.match === '<' || item.match === '<=') { - _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' - } else if (item.match === '>' || item.match === '>=') { - _val = _val + ' 00:00:00.000' + if (item.precision === 'day') { + if (item.match === '<' || item.match === '<=') { + _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' + } else if (item.match === '>' || item.match === '>=') { + _val = _val + ' 00:00:00.000' + } + } else if (item.precision === 'hour') { + _val = _val + ':00:00.000' + } else if (item.precision === 'minute') { + _val = _val + ':00.000' + } else if (item.precision === 'second') { + _val = _val + '.000' } } @@ -437,8 +469,20 @@ let _endval = '' if (item.value) { let val = item.value.split(',') - _startval = val[0] + ' 00:00:00.000' - _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' + + if (item.precision === 'day') { + _startval = val[0] + ' 00:00:00.000' + _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' + } else if (item.precision === 'hour') { + _startval = val[0] + ':00:00.000' + _endval = val[1] + ':00:00.000' + } else if (item.precision === 'minute') { + _startval = val[0] + ':00.000' + _endval = val[1] + ':00.000' + } else if (item.precision === 'second') { + _startval = val[0] + '.000' + _endval = val[1] + '.000' + } } newsearches[item.key] = _startval @@ -463,59 +507,87 @@ static joinMainSearchkey (searches) { if (!searches || searches.length === 0) return '' - let searchText = '' + let searchText = [] searches.forEach(item => { if (item.forbid || !item.value) return - searchText += (searchText !== '' ? ' AND ' : '') if (item.type === 'text' || item.type === 'select') { // 缁煎悎鎼滅储锛屾枃鏈垨涓嬫媺锛屾墍鏈夊瓧娈垫嫾鎺� - let str = item.match === '=' ? '' : '%' + let str = item.match === 'like' || item.match === 'not like' ? '%' : '' let fields = item.key.split(',').map(field => { return field + ' ' + item.match + ' \'' + str + item.value + str + '\'' }) - searchText += '(' + fields.join(' OR ') + ')' + searchText.push('(' + fields.join(' OR ') + ')') + } else if (item.type === 'checkcard') { + let str = item.match === 'like' || item.match === 'not like' ? '%' : '' + + searchText.push('(' + item.key + ' ' + item.match + ' \'' + str + item.value + str + '\')') } else if (item.type === 'multi') { - searchText += `'${item.value}' ${item.match} '%'+${item.key}+'%'` + searchText.push(`('${item.value}' ${item.match} '%'+${item.key}+'%')`) } else if (item.type === 'date') { let _val = item.value - let timetail = ' 00:00:00.000' + let timetail = '' let _match = item.match if (item.match === '<' || item.match === '<=') { // 鏃堕棿涓�<=鏃讹紝鍖归厤鍚庝竴澶╃殑0鐐癸紝鍖归厤鏂瑰紡涓�< _match = '<' - _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') - } else if (item.match === '=') { + if (item.precision === 'day') { + _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + } + } + if (item.match === '=') { timetail = '' + } else if (item.precision === 'day') { + timetail = ' 00:00:00.000' + } else if (item.precision === 'hour') { + timetail = ':00:00.000' + } else if (item.precision === 'minute') { + timetail = ':00.000' + } else if (item.precision === 'second') { + timetail = '.000' } - searchText += '(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')' + searchText.push('(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')') } else if (item.type === 'datemonth') { // 鏈�-杩囨护鏉′欢锛屼粠鏈堝紑濮嬭嚦缁撴潫锛岀粨鏉熸椂闂翠负鏈堟湯鍔犱竴澶╃殑0鐐癸紝鏂瑰紡涓�< let _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000' let _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' - searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' + searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')') } else if (item.type === 'dateweek') { // 鍛�-杩囨护鏉′欢 let _startval = moment(item.value, 'YYYY-MM-DD' ).startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000' let _endval = moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' - searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' + searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')') } else if (item.type === 'daterange') { let val = item.value.split(',') - let _startval = val[0] + ' 00:00:00.000' - let _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' + let _startval = '' + let _endval = '' - searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' + if (item.precision === 'day') { + _startval = val[0] + ' 00:00:00.000' + _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' + } else if (item.precision === 'hour') { + _startval = val[0] + ':00:00.000' + _endval = val[1] + ':00:00.000' + } else if (item.precision === 'minute') { + _startval = val[0] + ':00.000' + _endval = val[1] + ':00.000' + } else if (item.precision === 'second') { + _startval = val[0] + '.000' + _endval = val[1] + '.000' + } + + searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')') } else if (item.type === 'range') { let val = item.value.split(',') - searchText += '(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')' + searchText.push('(' + item.key + ' >= \'' + val[0] + '\' AND ' + item.key + ' < \'' + val[1] + '\')') } else { - searchText += '(' + item.key + ' ' + item.match + ' \'' + item.value + '\')' + searchText.push('(' + item.key + ' ' + item.match + ' \'' + item.value + '\')') } }) - return searchText + return searchText.join(' AND ') } /** @@ -543,10 +615,24 @@ fieldmap.set(item.key, true) if (item.type === 'date') { - if (['>=', '>'].includes(item.match)) { - item.value = item.value ? item.value + ' 00:00:00.000' : '1970-01-01 00:00:00.000' - } else if (['<=', '<'].includes(item.match)) { - item.value = item.value ? moment(item.value, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000' + if (!item.value) { + if (['>=', '>'].includes(item.match)) { + item.value = '1970-01-01 00:00:00.000' + } else if (['<=', '<'].includes(item.match)) { + item.value = '2050-01-01 00:00:00.000' + } + } else if (search.precision === 'day') { + if (['>=', '>'].includes(item.match)) { + item.value = item.value + ' 00:00:00.000' + } else if (['<=', '<'].includes(item.match)) { + item.value = moment(item.value, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' + } + } else if (search.precision === 'hour') { + item.value = item.value + ':00:00.000' + } else if (search.precision === 'minute') { + item.value = item.value + ':00.000' + } else if (search.precision === 'second') { + item.value = item.value + '.000' } options.push(item) @@ -577,11 +663,23 @@ } else if (item.type === 'daterange') { let _startval = '1970-01-01 00:00:00.000' let _endval = '2050-01-01 00:00:00.000' - + if (item.value) { let val = item.value.split(',') - _startval = val[0] + ' 00:00:00.000' - _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' + + if (search.precision === 'day') { + _startval = val[0] + ' 00:00:00.000' + _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' + } else if (search.precision === 'hour') { + _startval = val[0] + ':00:00.000' + _endval = val[1] + ':00:00.000' + } else if (search.precision === 'minute') { + _startval = val[0] + ':00.000' + _endval = val[1] + ':00.000' + } else if (search.precision === 'second') { + _startval = val[0] + '.000' + _endval = val[1] + '.000' + } } let copy = JSON.parse(JSON.stringify(item)) @@ -756,7 +854,7 @@ sql = sql.replace(/@db@/ig, window.GLOB.externalDatabase) } - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { console.info(sql) } @@ -1048,7 +1146,7 @@ aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { let fsql = ` ${_sql} ${_sqlInsert} @@ -1114,19 +1212,6 @@ database = database ? (database[0] || '') : '' - let getuuid = () => { - let uuid = [] - let timestamp = new Date().getTime() - let _options = '0123456789abcdefghigklmnopqrstuv' - for (let i = 0; i < 19; i++) { - uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1)) - } - uuid = timestamp + uuid.join('') - return uuid - } - - // let upId = getuuid() - let _initCustomScript = '' // 鍒濆鍖栬剼鏈� let _prevCustomScript = '' // 榛樿sql鍓嶆墽琛岃剼鏈� let _backCustomScript = '' // 榛樿sql鍚庢墽琛岃剼鏈� @@ -1168,13 +1253,7 @@ }) let key = item.$$uuid - let type = 'upt' - if (key === '$new') { - key = getuuid() - type = 'add' - } else if (item.$deleted) { - type = 'del' - } + let type = item.$type || 'upt' vals.push(`'${key}'`) vals.push(`'${type}'`) @@ -1279,7 +1358,7 @@ aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { let fsql = ` ${_sql} ${_sqlInsert} @@ -1395,7 +1474,7 @@ } _initFormfields.push(`@${_key}=${val}`) } else if (['date', 'datemonth', 'datetime'].includes(form.type)) { - _initFormfields.push(`@${_key}='${form.value || '1900-01-01'}'`) + _initFormfields.push(`@${_key}='${form.value || '1949-10-01'}'`) } else { _initFormfields.push(`@${_key}='${form.value}'`) } @@ -1440,7 +1519,7 @@ let _val = datavars.hasOwnProperty(_key) ? datavars[_key] : '' if (col.datatype && /^date/ig.test(col.datatype) && !_val) { - _val = '1900-01-01' + _val = '1949-10-01' } _initvars.push(_key) @@ -2026,7 +2105,7 @@ aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` } - if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { // _sql = _sql.replace(/\n\s{8}/ig, '\n') console.info(_sql) } @@ -2048,6 +2127,7 @@ let icon = null let color = null let position = null + style = JSON.parse(JSON.stringify(style)) marks.some(mark => { let originVal = record[mark.field[0]] + '' diff --git a/src/views/appmanage/index.jsx b/src/views/appmanage/index.jsx index a9081be..bfff01d 100644 --- a/src/views/appmanage/index.jsx +++ b/src/views/appmanage/index.jsx @@ -474,6 +474,11 @@ cell.statusBarColor = _param.statusBarColor || 'black' cell.sysBgColor = _param.sysBgColor || '#ffffff' cell.adapter = _param.adapter || '' + cell.share = _param.share || 'false' // 鍒嗕韩 + cell.share_des = _param.share_des || '' // 鍒嗕韩鎻忚堪 + cell.share_url = _param.share_url || '' // 鍒嗕韩鍥剧墖 + cell.share_link = _param.share_link || '' // 鍒嗕韩閾炬帴 + if (cell.adapter && (cell.adapter === 'true' || cell.adapter === 'false')) { cell.adapter = '' } @@ -484,6 +489,9 @@ if (cell.user_binding !== 'true') { cell.user_binding = 'false' + } + if (cell.share !== 'true') { + cell.share = 'false' } if (!cell.adapter && cell.apptype) { @@ -499,6 +507,23 @@ return item }) + + if (!selectApp && applist[0]) { + let _href = window.location.href.split('#')[0] + 'app_record' + let record = localStorage.getItem(_href) + record = record ? JSON.parse(record) : null + + if (record) { + if (record.activeId) { + let index = applist.findIndex(item => item.ID === record.activeId) + if (index === -1) { + localStorage.setItem(_href, JSON.stringify({preId: '', activeId: ''})) + } else if (index !== 0) { + applist.unshift(...applist.splice(index, 1)) + } + } + } + } if (!selectApp && applist[0]) { selectApp = applist[0] @@ -632,7 +657,7 @@ }) // 瀛愬簲鐢↖D銆乼ypename銆佸簲鐢↖D銆丆loudUserID銆乤ppkey銆乴ogin_types(鏄惁闇�瑕佺櫥褰曪紝宸插純鐢�)銆乴ink_type(鏄惁浣跨敤鐭繛鎺ワ紝宸插純鐢�)銆乺ole_type(鏄惁浣跨敤瑙掕壊绠$悊)銆乴ang銆乧ss(鐨偆)銆乼itle(鏍囬)銆乫avicon(鍥炬爣)銆乽ser_binding(鐢ㄦ埛缁戝畾)銆乻ms_id(鐭俊妯℃澘ID)銆佽嚜瀹氫箟 - param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || 'false'}','','${window.btoa(window.encodeURIComponent(JSON.stringify({userbind: item.userbind || '', instantMessage: item.instantMessage || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black', sysBgColor: item.sysBgColor || '#ffffff', adapter: item.adapter || ''})))}'`) + param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || 'false'}','','${window.btoa(window.encodeURIComponent(JSON.stringify({userbind: item.userbind || '', instantMessage: item.instantMessage || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black', sysBgColor: item.sysBgColor || '#ffffff', adapter: item.adapter || '', share: item.share || '', share_des: item.share_des || '', share_url: item.share_url || '', share_link: item.share_link || ''})))}'`) param.LText = param.LText.join(' union all ') param.LText = Utils.formatOptions(param.LText) @@ -672,6 +697,20 @@ jumpApp = (item) => { const { selectApp } = this.state + + let _href = window.location.href.split('#')[0] + 'app_record' + let record = localStorage.getItem(_href) + record = record ? JSON.parse(record) : null + + if (!record) { + localStorage.setItem(_href, JSON.stringify({preId: selectApp.ID, activeId: ''})) + } else { + if (record.preId === selectApp.ID) { + localStorage.setItem(_href, JSON.stringify({preId: selectApp.ID, activeId: selectApp.ID})) + } else { + localStorage.setItem(_href, JSON.stringify({...record, preId: selectApp.ID})) + } + } let route = 'mobdesign' if (item.typename === 'pc') { @@ -863,7 +902,7 @@ return item }) - param.LText = selectApp.sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || 'false'}','','${window.btoa(window.encodeURIComponent(JSON.stringify({userbind: item.userbind || '', instantMessage: item.instantMessage || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black', sysBgColor: item.sysBgColor || '#ffffff', adapter: item.adapter || ''})))}'`) + param.LText = selectApp.sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || 'false'}','','${window.btoa(window.encodeURIComponent(JSON.stringify({userbind: item.userbind || '', instantMessage: item.instantMessage || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black', sysBgColor: item.sysBgColor || '#ffffff', adapter: item.adapter || '', share: item.share || '', share_des: item.share_des || '', share_url: item.share_url || '', share_link: item.share_link || ''})))}'`) param.LText = param.LText.join(' union all ') param.LText = Utils.formatOptions(param.LText) } @@ -956,7 +995,7 @@ return item }) - param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || 'false'}','','${window.btoa(window.encodeURIComponent(JSON.stringify({userbind: item.userbind || '', instantMessage: item.instantMessage || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black', sysBgColor: item.sysBgColor || '#ffffff', adapter: item.adapter || ''})))}'`) + param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || 'false'}','','${window.btoa(window.encodeURIComponent(JSON.stringify({userbind: item.userbind || '', instantMessage: item.instantMessage || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black', sysBgColor: item.sysBgColor || '#ffffff', adapter: item.adapter || '', share: item.share || '', share_des: item.share_des || '', share_url: item.share_url || '', share_link: item.share_link || ''})))}'`) param.LText = param.LText.join(' union all ') param.LText = Utils.formatOptions(param.LText) @@ -1075,8 +1114,12 @@ let color = skinStyle[item.css] ? skinStyle[item.css].color : '#e8e8e8' let binding = '' if (item.user_binding === 'true') { - binding = '闇�瑕�' + binding = '鐢ㄦ埛缁戝畾' } + if (item.share === 'true') { + binding = binding ? binding + '銆佸垎浜�' : '鍒嗕韩' + } + return ( <div className="sub-app" key={index} style={{borderColor: color}}> <Row> @@ -1112,10 +1155,16 @@ </Col> <Col span={12}> <div className="app-item"> - {binding ? <div className="label"> + {/* {binding ? <div className="label"> <Tooltip placement="topLeft" title="寰俊鍏紬鍙风櫥褰曟椂锛岀郴缁熺敤鎴蜂笌寰俊鐢ㄦ埛鐨勭粦瀹氭柟寮忋��"> <QuestionCircleOutlined className="mk-form-tip" /> 鐢ㄦ埛缁戝畾: + </Tooltip> + </div> : null} */} + {binding ? <div className="label"> + <Tooltip placement="topLeft" title="寰俊鍏紬鍙锋垨灏忕▼搴忎腑锛岀粦瀹氱郴缁熺敤鎴枫�佽嚜瀹氫箟鍒嗕韩绛夊姛鑳姐��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鎵╁睍鍔熻兘: </Tooltip> </div> : null} <div className="content">{binding}</div> @@ -1130,7 +1179,7 @@ <Col span={12}> <div className="app-item"> <div className="label">缃戠珯澶村儚:</div> - <div className="content">{item.favicon ? <img style={{width: '18px', height: '18px'}} src={item.favicon} alt="" /> : '鏃�'}</div> + <div className="content">{item.favicon ? <img style={{width: '18px', height: '18px', borderRadius: '4px'}} src={item.favicon} alt="" /> : '鏃�'}</div> </div> </Col> </Row> diff --git a/src/views/appmanage/scriptform/index.jsx b/src/views/appmanage/scriptform/index.jsx index 39bd2ee..be8c9af 100644 --- a/src/views/appmanage/scriptform/index.jsx +++ b/src/views/appmanage/scriptform/index.jsx @@ -224,9 +224,10 @@ message: '璇烽�夋嫨椤甸潰!' }] })( - <Select> + <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 || + option.props.extra.toLowerCase().indexOf(input.toLowerCase()) >= 0}> {views.map(item => { - return <Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option> + return <Select.Option key={item.MenuID} extra={item.MenuNo || ''} value={item.MenuID}>{item.MenuName}</Select.Option> })} </Select> )} diff --git a/src/views/appmanage/submutilform/index.jsx b/src/views/appmanage/submutilform/index.jsx index bc52f1f..8f21434 100644 --- a/src/views/appmanage/submutilform/index.jsx +++ b/src/views/appmanage/submutilform/index.jsx @@ -16,19 +16,29 @@ inputSubmit: PropTypes.func // input鍥炶溅鎻愪氦 } - state = {typename: 'mob', adapters: []} + state = {typename: 'mob', adapters: [], exts: []} UNSAFE_componentWillMount() { const { card } = this.props let adapters = [] + let exts = [] let typename = 'mob' if (card) { typename = card.typename || 'mob' adapters = card.adapter ? card.adapter.split(',') : [] + + if (typename !== 'pc') { + if (card.user_binding === 'true') { + exts.push('user_binding') + } + if (card.share === 'true') { + exts.push('share') + } + } } - this.setState({typename, adapters}) + this.setState({typename, adapters, exts}) } /** @@ -38,31 +48,25 @@ return new Promise(resolve => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { - // values.user_binding = values.user_binding ? values.user_binding.join(',') : '' values.adapter = values.adapter ? values.adapter.join(',') : '' - // if (values.user_binding.indexOf('sms_vcode') > -1 && !values.sms_id) { - // notification.warning({ - // top: 92, - // message: '鎵嬫満鍙风粦瀹氭椂锛岄渶瑕佺煭淇℃ā鏉匡紒', - // duration: 5 - // }) - // return - // } + + if (values.exts) { + values.user_binding = values.exts.includes('user_binding') ? 'true' : 'false' + values.share = values.exts.includes('share') ? 'true' : 'false' + delete values.exts + } + resolve(values) } }) }) } - // onChange = (vals) => { - // this.setState({user_binding: vals}) - // } - onAdapterChange = (vals) => { + if (!vals.includes('weixin') && !vals.includes('wxmini')) { + this.setState({exts: []}) + } this.setState({adapters: vals}) - // if (!vals.includes('weixin') && !vals.includes('wxmini')) { - // this.setState({user_binding: []}) - // } } /** @@ -76,7 +80,7 @@ render() { const { card, type } = this.props const { getFieldDecorator } = this.props.form - const { typename, adapters } = this.state + const { typename, adapters, exts } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -166,6 +170,23 @@ </Form.Item> </Col> : null} {typename !== 'pc' && (adapters.includes('weixin') || adapters.includes('wxmini')) ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="鍦ㄥ叕浼楀彿鎴栧皬绋嬪簭涓紝鍙坊鍔犵粦瀹氱郴缁熺敤鎴枫�佽嚜瀹氫箟鍒嗕韩绛夊姛鑳斤紝鑷畾涔夊垎浜缃悗锛屽綋鍓嶅瓙搴旂敤灏嗛粯璁や娇鐢ㄦ鍒嗕韩閾炬帴銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鎵╁睍鍔熻兘 + </Tooltip> + }> + {getFieldDecorator('exts', { + initialValue: exts + })( + <Checkbox.Group onChange={(vals) => this.setState({exts: vals})}> + <Checkbox value="user_binding">鐢ㄦ埛缁戝畾</Checkbox> + <Checkbox value="share">鍒嗕韩</Checkbox> + </Checkbox.Group> + )} + </Form.Item> + </Col> : null} + {/* {typename !== 'pc' && (adapters.includes('weixin') || adapters.includes('wxmini')) ? <Col span={12}> <Form.Item label="鐢ㄦ埛缁戝畾"> {getFieldDecorator('user_binding', { initialValue: card ? card.user_binding : 'false' @@ -174,42 +195,59 @@ <Radio value="true">闇�瑕�</Radio> <Radio value="false">涓嶉渶瑕�</Radio> </Radio.Group> - // <Checkbox.Group onChange={this.onChange}> - // <Checkbox value="uname_pwd">璐﹀彿</Checkbox> - // <Checkbox value="sms_vcode">鎵嬫満鐭俊</Checkbox> - // </Checkbox.Group> - )} - </Form.Item> - </Col> : null} - {/* {typename !== 'pc' && user_binding.includes('sms_vcode') ? <Col span={12}> - <Form.Item label={ - <Tooltip placement="topLeft" title="鐭俊妯℃澘鍙湪 浜戠郴缁�->搴旂敤鏈嶅姟->寮�鍙戣�呬腑蹇�->鐭俊妯℃澘 澶勬坊鍔犮��"> - <QuestionCircleOutlined className="mk-form-tip" /> - 鐭俊妯℃澘 - </Tooltip> - }> - {getFieldDecorator('sms_id', { - initialValue: card ? card.sms_id || '' : '', - rules: [{ - required: true, - message: '浣跨敤鎵嬫満鐭俊鏃惰閫夋嫨鐭俊妯℃澘!' - }] - })( - <Select allowClear> - {msgs.map(option => - <Select.Option key={option.ID} value={option.ID}>{option.SignName + ' - ' + option.TemplateCode}</Select.Option> - )} - </Select> )} </Form.Item> </Col> : null} */} <Col span={12}> - <Form.Item label="鏍囬"> + <Form.Item label={ + exts.includes('share') ? + <Tooltip placement="topLeft" title="瀛愬簲鐢ㄥ強鍒嗕韩鏃剁殑鏍囬銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鏍囬 + </Tooltip> : '鏍囬' + }> {getFieldDecorator('title', { - initialValue: card ? card.title || '' : '' + initialValue: card ? card.title || '' : '', + rules: exts.includes('share') ? [{ + required: true, + message: '璇峰~鍐欐爣棰�!' + }] : [] })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> + {exts.includes('share') ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="鍒嗕韩鏃剁殑鎻忚堪淇℃伅銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鍒嗕韩鎻忚堪 + </Tooltip> + }> + {getFieldDecorator('share_des', { + initialValue: card ? card.share_des || '' : '' + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} + </Form.Item> + </Col> : null} + {exts.includes('share') ? <Col span={12}> + <Form.Item label="鍒嗕韩鍥剧墖"> + {getFieldDecorator('share_url', { + initialValue: card ? card.share_url : '' + })( + <SourceComponent type="picture" placement="right"/> + )} + </Form.Item> + </Col> : null} + {exts.includes('share') ? <Col span={12}> + <Form.Item label="鍒嗕韩閾炬帴"> + {getFieldDecorator('share_link', { + initialValue: card ? card.share_link || 'main' : 'main' + })( + <Radio.Group> + <Radio value="main">搴旂敤鍏ュ彛</Radio> + <Radio value="view">椤甸潰閾炬帴</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> : null} <Col span={12}> <Form.Item label="缃戠珯澶村儚"> {getFieldDecorator('favicon', { @@ -219,35 +257,9 @@ )} </Form.Item> </Col> - {/* {typename !== 'pc' && user_binding.length > 0 ? <Col span={12}> - <Form.Item label={ - <Tooltip placement="topLeft" title="浣跨敤寰俊鎺堟潈鐧诲綍鏃讹紝缁戝畾鐢ㄦ埛椤甸潰鐨勭増鏉冨0鏄庯紝娉細鍙坊鍔爃tml鏍囩銆�"> - <QuestionCircleOutlined className="mk-form-tip" /> - 鐗堟潈 - </Tooltip> - }> - {getFieldDecorator('copyright', { - initialValue: card ? card.copyright || '' : '' - })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} - </Form.Item> - </Col> : null} - {typename !== 'pc' && user_binding.length > 0 ? <Col span={12}> - <Form.Item label={ - <Tooltip placement="topLeft" title="浣跨敤寰俊鎺堟潈鐧诲綍鏃讹紝缁戝畾鐢ㄦ埛椤甸潰鐨凩OGO銆�"> - <QuestionCircleOutlined className="mk-form-tip" /> - LOGO - </Tooltip> - }> - {getFieldDecorator('logo', { - initialValue: card ? card.logo : '' - })( - <SourceComponent type="picture" placement="right"/> - )} - </Form.Item> - </Col> : null} */} {typename !== 'pc' && adapters.includes('app') ? <Col span={12}> <Form.Item label={ - <Tooltip placement="topLeft" title="鍦ㄤ娇鐢ㄦ槑绉戜簯APP鏃讹紝椤甸潰鐨勫垏鎹㈡ā寮�"> + <Tooltip placement="topLeft" title="鍦ㄤ娇鐢ㄦ槑绉戜簯APP鏃讹紝椤甸潰鐨勫垏鎹㈡ā寮忋�傛敞锛氳嫻鏋淎PP鏆備笉鏀寔H5妯″紡銆�"> <QuestionCircleOutlined className="mk-form-tip" /> 搴旂敤妯″紡 </Tooltip> diff --git a/src/views/billprint/index.jsx b/src/views/billprint/index.jsx index a3764b8..d1e8084 100644 --- a/src/views/billprint/index.jsx +++ b/src/views/billprint/index.jsx @@ -5,9 +5,9 @@ import Api from '@/api' import Utils from '@/utils/utils.js' +import options, { styles } from '@/store/options.js' import zhCN from '@/locales/zh-CN/main.js' import enUS from '@/locales/en-US/main.js' -import options from '@/store/options.js' import UtilsDM from '@/utils/utils-datamanage.js' import NotFount from '@/components/404' import asyncComponent from '@/utils/asyncComponent' @@ -25,6 +25,7 @@ const NormalTable = asyncComponent(() => import('@/tabviews/custom/components/table/normal-table')) const SandBox = asyncComponent(() => import('@/tabviews/custom/components/code/sand-box')) const TimeLine = asyncComponent(() => import('@/tabviews/custom/components/timeline/normal-timeline')) +const Balcony = asyncComponent(() => import('@/tabviews/custom/components/card/balcony')) class BillPrint extends Component { state = { @@ -36,26 +37,38 @@ data: '', tempId: '', config: null, + auto: true } UNSAFE_componentWillMount() { - try { - let param = JSON.parse(window.decodeURIComponent(window.atob(this.props.match.params.param))) + const { params } = this.props.match - sessionStorage.setItem('dataM', param.dataM || '') - sessionStorage.setItem('localDataM', param.dataM || '') + if (params.menuId) { this.setState({ - BID: param.id || '', - tempId: param.tempId + BID: params.id || '', + tempId: params.menuId }, () => { - this.getMenuParam() + this.getTouristMsg() }) - } catch (e) { - notification.warning({ - top: 92, - message: '鑿滃崟淇℃伅瑙f瀽閿欒锛�', - duration: 5 - }) + } else { + try { + let param = JSON.parse(window.decodeURIComponent(window.atob(params.param))) + + sessionStorage.setItem('dataM', param.dataM || '') + sessionStorage.setItem('localDataM', param.dataM || '') + this.setState({ + BID: param.id || '', + tempId: param.tempId + }, () => { + this.getMenuParam() + }) + } catch (e) { + notification.warning({ + top: 92, + message: '鑿滃崟淇℃伅瑙f瀽閿欒锛�', + duration: 5 + }) + } } } @@ -72,6 +85,55 @@ } } + getTouristMsg = () => { + Api.getTouristMsg().then(result => { + if (result.status) { + sessionStorage.setItem('UserID', result.UserID || '') + sessionStorage.setItem('LoginUID', result.LoginUID || '') + sessionStorage.setItem('dataM', 'false') + + this.getMenuParam() + + // 鑾峰彇绯荤粺淇℃伅 + let _param = { + func: 's_Get_style', + TypeCharOne: 'PC', + LText: `select '${window.GLOB.appkey}'`, + } + + _param.userid = result.UserID + _param.LoginUID = result.LoginUID + _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) + + Api.getSystemConfig(_param).then(res => { + if (res.status) { + window.GLOB.style = res.CSS + document.title = res.titleName + + if (window.GLOB.style && styles[window.GLOB.style]) { + document.body.className = styles[window.GLOB.style] + ' ' + (res.split_line_show === 'false' ? 'hidden-split-line' : '') + } + + if (res.titlelogo) { + let link = document.querySelector("link[rel*='icon']") || document.createElement('link') + link.type = 'image/x-icon' + link.rel = 'shortcut icon' + link.href = res.titlelogo + document.getElementsByTagName('head')[0].appendChild(link) + } + } + }) + } else { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } + }) + } + getMenuParam = () => { const { tempId, BID } = this.state @@ -79,6 +141,8 @@ func: 'sPC_Get_LongParam', MenuID: tempId } + + window.GLOB.dataFormat = false // 鎵撳嵃鍘婚櫎姘村嵃 if (window.GLOB.mainSystemApi) { // 浠庡崟鐐圭櫥褰曟湇鍔″櫒鍙栨墦鍗伴厤缃俊鎭� _param.rduri = window.GLOB.mainSystemApi @@ -186,6 +250,21 @@ if (component.search) component.search = [] component.data = [] // 鍒濆鍖栨暟鎹负绌� + if (component.type === 'table' && component.subtype === 'normaltable') { + let getColumns = (cols) => { + return cols.map(item => { + if (item.type === 'colspan') { + item.subcols = getColumns(item.subcols) + } else { + item.IsSort = 'false' + } + + return item + }) + } + component.cols = getColumns(component.cols) + } + if (component.wrap.datatype === 'static') { component.format = '' } @@ -292,7 +371,7 @@ } /** - * @description 鑾峰彇绯荤粺瀛樺偍杩囩▼ sPC_Get_TableData 鐨勫弬鏁� + * @description 鑾峰彇绯荤粺瀛樺偍杩囩▼鍙傛暟 */ getDefaultParam = (component) => { const { columns, setting, dataName, format } = component @@ -308,7 +387,7 @@ } // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞 - if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) { + if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) { _customScript && console.info(`${_dataresource ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`) _dataresource && console.info(_dataresource) } @@ -332,12 +411,26 @@ if (!params || params.length === 0) return '' let LText_field = [] let transaction = false + + let userName = sessionStorage.getItem('User_Name') || '' + let fullName = sessionStorage.getItem('Full_Name') || '' + let RoleID = sessionStorage.getItem('role_id') || '' + let departmentcode = sessionStorage.getItem('departmentcode') || '' + let organization = sessionStorage.getItem('organization') || '' + let city = sessionStorage.getItem('city') || '' + + if (sessionStorage.getItem('isEditState') === 'true') { + userName = sessionStorage.getItem('CloudUserName') || '' + fullName = sessionStorage.getItem('CloudFullName') || '' + } + let LText = params.map((item, index) => { let _sql = item.sql let _script = item.script if (index === 0) { - _script = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000) select @ErrorCode='',@retmsg ='' + _script = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50) + select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @login_city='${city}' ${_script} ` } @@ -424,6 +517,12 @@ this.setState({loadingview: false, pages}) } + let auto = true + + if (comps[comps.length - 1].wrap && comps[comps.length - 1].wrap.printHeight) { + auto = false + } + while (!over) { let page = [] let count = 0 @@ -445,23 +544,57 @@ return } else if (item.subtype === 'datacard' || item.type === 'table') { if (_item.dataArray && _item.dataArray.length > 0) { - item.data = [] - - while (count < limit && _item.dataArray.length > 0) { - item.data.push(_item.dataArray.shift()) - count++ - } + if (item.subtype === 'datacard' && item.wrap.layout === 'flex') { + if (!item.added && item.wrap.printHeight) { + count += item.wrap.printHeight + if (count >= limit) { + _pageover = true + } + if (count <= limit) { + _item.added = true + page.push(item) + } + } else if (!item.added) { + _item.added = true + page.push(item) + } + } else { + item.data = [] - if (count >= limit) { - _pageover = true + while (count + 1 <= limit && _item.dataArray.length > 0) { + item.data.push(_item.dataArray.shift()) + count++ + } + + if (count >= limit) { + _pageover = true + } + page.push(item) } + _item.added = true + } else if (!item.added) { + _item.added = true + page.push(item) + } + } else if (!item.added && item.wrap && item.wrap.printHeight) { + if (item.wrap.empty === 'hidden' && (!item.data || item.data.length === 0)) { + _item.added = true + return + } + + count += item.wrap.printHeight + if (count >= limit) { + _pageover = true + } + if (count <= limit) { + _item.added = true page.push(item) } } else if (!item.added) { _item.added = true page.push(item) } - + if (index + 1 >= length && !_pageover) { pagesover = true } @@ -491,16 +624,49 @@ return } else if (item.subtype === 'datacard' || item.type === 'table') { if (_item.dataArray && _item.dataArray.length > 0) { - item.data = [] - - while (count < limit && _item.dataArray.length > 0) { - item.data.push(_item.dataArray.shift()) - count++ + if (item.subtype === 'datacard' && item.wrap.layout === 'flex') { + if (!item.added && item.wrap.printHeight) { + count += item.wrap.printHeight + if (count >= limit) { + _pageover = true + } + if (count <= limit) { + _item.added = true + page.push(item) + } + } else if (!item.added) { + _item.added = true + page.push(item) + } + } else { + item.data = [] + + while (count + 1 <= limit && _item.dataArray.length > 0) { + item.data.push(_item.dataArray.shift()) + count++ + } + + if (count >= limit) { + _pageover = true + } + page.push(item) } - - if (count >= limit) { - _pageover = true - } + _item.added = true + } else if (!item.added) { + _item.added = true + page.push(item) + } + } else if (!item.added && item.wrap && item.wrap.printHeight) { + if (item.wrap.empty === 'hidden' && (!item.data || item.data.length === 0)) { + _item.added = true + return + } + count += item.wrap.printHeight + if (count >= limit) { + _pageover = true + } + if (count <= limit) { + _item.added = true page.push(item) } } else if (!item.added) { @@ -522,7 +688,7 @@ } } - this.setState({loadingview: false, pages}) + this.setState({loadingview: false, pages, auto}) }) } @@ -551,7 +717,7 @@ doc.write(`<LINK rel="stylesheet" type="text/css" href="${linkList[i].href}">`) } } - doc.write(`<style>body{width: ${config.width}px!important;}*{border-style: solid;border-width: 0;}</style>`) + doc.write(`<style>body{width: ${config.width}px!important;}*{border-style: solid;border-width: 0;}.ant-table-placeholder{display: none;}.ant-empty{display: none;}</style>`) for (let i = 0;i < styleList.length;i++) { doc.write('<style>' + styleList[i].innerHTML + '</style>') } @@ -635,6 +801,12 @@ <SandBox config={item} initdata={item.data} mainSearch={[]} menuType="" /> </Col> ) + } else if (item.type === 'balcony') { + return ( + <Col span={item.width} key={item.uuid}> + <Balcony config={item} initdata={item.data} menuType="" /> + </Col> + ) } else if (item.type === 'timeline') { return ( <Col span={item.width} key={item.uuid}> @@ -648,13 +820,13 @@ } render() { - const { loadingview, viewlost, config, pages } = this.state + const { loadingview, viewlost, config, pages, auto } = this.state return ( <div className="bill-print-wrap" > {loadingview && <Spin size="large" />} {pages ? <div id="bill-print"> - {pages.map((components, index) => (<div className="print-page" key={index} style={{...config.style, overflow: 'hidden', boxSizing: 'border-box'}}><Row>{this.getComponents(components)}</Row></div>))} + {pages.map((components, index) => (<div className={'print-page' + (auto ? ' auto' : '')} key={index} style={{...config.style, overflow: 'hidden', boxSizing: 'border-box'}}><Row>{this.getComponents(components)}</Row></div>))} </div> : null} {viewlost ? <NotFount msg={this.state.lostmsg} /> : null} {pages && !loadingview && !viewlost ? <div className="print-button"><Button icon="printer" size="large" shape="circle" onClick={this.print}></Button></div> : null} diff --git a/src/views/billprint/index.scss b/src/views/billprint/index.scss index 80dd4f8..29dd0ba 100644 --- a/src/views/billprint/index.scss +++ b/src/views/billprint/index.scss @@ -29,6 +29,12 @@ right: 10px; top: calc(40vh + 70px); } + .ant-table-placeholder { + display: none; + } + .ant-empty { + display: none; + } } .print-page { @@ -46,7 +52,7 @@ border-radius: 0!important; } } -.print-page:last-child { +.print-page.auto:last-child { height: auto!important; } diff --git a/src/views/design/sidemenu/config.jsx b/src/views/design/sidemenu/config.jsx index a9c12b3..40e4bf2 100644 --- a/src/views/design/sidemenu/config.jsx +++ b/src/views/design/sidemenu/config.jsx @@ -212,6 +212,7 @@ PageParam: {Icon: 'folder'}, children: [{ src: '', + systems: ['production', 'local', 'SSO', 'cloud'], PageParam: {OpenType: 'newtab', Template: 'ManageTable'}, type: 'ManageTable', MenuID: '1577972969199lei1g0qkvlh4tkc908m', diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 50ea083..1b581e6 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -89,13 +89,6 @@ * @param {Object} param 鐢ㄦ埛鍚嶅瘑鐮佺瓑淇℃伅 */ async loginsubmit (param) { - if (options.sysType === 'local' && !window.GLOB.mainSystemApi) { // 涓氬姟绯荤粺蹇呴』璁剧疆鍗曠偣鍦板潃 - Modal.warning({ - title: '鏈缃崟鐐规湇鍔″櫒鍦板潃锛岃鑱旂郴绠$悊鍛橈紒' - }) - return - } - let city = sessionStorage.getItem('city') || '' let ipAddress = sessionStorage.getItem('ipAddress') || '' @@ -187,13 +180,6 @@ } async phoneloginsubmit (param) { - if (options.sysType === 'local' && !window.GLOB.mainSystemApi) { // 涓氬姟绯荤粺蹇呴』璁剧疆鍗曠偣鍦板潃 - Modal.warning({ - title: '鏈缃崟鐐规湇鍔″櫒鍦板潃锛岃鑱旂郴绠$悊鍛橈紒' - }) - return - } - let city = sessionStorage.getItem('city') || '' let ipAddress = sessionStorage.getItem('ipAddress') || '' @@ -213,9 +199,7 @@ sessionStorage.setItem('organization', res.organization || '') sessionStorage.setItem('localRole_id', res.role_id || '') - let _url = window.location.href.split('#')[0] - - localStorage.setItem(_url + 'lang', param.lang || 'zh-CN') + localStorage.setItem(_href + 'lang', param.lang || 'zh-CN') sessionStorage.setItem('lang', param.lang || 'zh-CN') sessionStorage.removeItem('visitorUserID') @@ -245,12 +229,6 @@ } authLogin = (appid, openid, memberid, scanId) => { - if (options.sysType === 'local' && !window.GLOB.mainSystemApi) { // 涓氬姟绯荤粺蹇呴』璁剧疆鍗曠偣鍦板潃 - Modal.warning({ - title: '鏈缃崟鐐规湇鍔″櫒鍦板潃锛岃鑱旂郴绠$悊鍛橈紒' - }) - return - } Api.getTouristMsg(appid, openid, memberid, scanId).then(res => { if (res.status) { sessionStorage.setItem('UserID', res.UserID) @@ -321,7 +299,28 @@ // if (!res || !res.ip) return // sessionStorage.setItem('ipAddress', res.ip) // }) - const _addressUrl = window.location.href.split('#')[0] + 'queryAddress' + if (sessionStorage.getItem('loginError')) { + try { + let res = JSON.parse(sessionStorage.getItem('loginError')) + console.info(res.url) + console.info(res.request) + console.info(res.response) + + let result = JSON.parse(res.response) + + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } catch (e) {} + + setTimeout(() => { + sessionStorage.removeItem('loginError') + }, 2000) + } + + const _addressUrl = _href + 'queryAddress' if (localStorage.getItem(_addressUrl) !== 'true') { sessionStorage.setItem('city', '') @@ -331,7 +330,7 @@ } const timeStamp = new Date().getTime() - const _authUrl = window.location.href.split('#')[0] + 'AuthCode' + const _authUrl = _href + 'AuthCode' let authCode = localStorage.getItem(_authUrl) let _s = md5('mksoft' + moment().format('YYYYMMDD')) @@ -370,12 +369,14 @@ keys[char] = (offset + i) % 10 } - let lictime = +key2.replace(/[A-Z]/ig, (s) => { + let lictime = key2.replace(/[A-Z]/ig, (s) => { return keys[s] }) - let curtime = +moment().format('YYYYMMDD') + lictime = lictime.slice(0,4) + '/' + lictime.slice(4,6) + '/' + lictime.slice(6) + lictime = Math.floor(new Date(lictime).getTime() / 86400000) + let curtime = Math.floor(new Date().getTime() / 86400000) let licday = lictime - curtime - let _mindUrl = window.location.href.split('#')[0] + 'notMind' + let _mindUrl = _href + 'notMind' if (licday < 0 || isNaN(licday)) { Modal.warning({ @@ -527,15 +528,7 @@ res.indexlogo = res.indexlogo ? res.indexlogo.replace(/:8080/ig, '').replace(/http:/ig, 'https:') : '' res.loginlogo = res.loginlogo ? res.loginlogo.replace(/:8080/ig, '').replace(/http:/ig, 'https:') : '' - if (/^https/.test(window.location.protocol)) { // https杞崲 - res.Banner = res.Banner ? res.Banner.replace(/^http:/ig, 'https:') : '' - res.doclogo = res.doclogo ? res.doclogo.replace(/^http:/ig, 'https:') : '' - res.indexlogo = res.indexlogo ? res.indexlogo.replace(/^http:/ig, 'https:') : '' - res.loginlogo = res.loginlogo ? res.loginlogo.replace(/^http:/ig, 'https:') : '' - res.titlelogo = res.titlelogo ? res.titlelogo.replace(/^http:/ig, 'https:') : '' - } - - let _url = window.location.href.split('#')[0] + 'system' + let _url = _href + 'system' let systemMsg = { favicon: res.titlelogo || '', platTitle: res.titleName || '', @@ -559,7 +552,13 @@ level = '' } - localStorage.setItem(window.location.href.split('#')[0] + 'pwdlevel', level) + localStorage.setItem(_href + 'pwdlevel', level) + + if (res.srcid) { + localStorage.setItem(_href + 'srcId', res.srcid) + } else { + localStorage.removeItem(_href + 'srcId') + } sessionStorage.setItem('home_background', res.index_background_color || '') if (res.sys_datetime) { @@ -576,7 +575,7 @@ localStorage.removeItem(_url) } - let _loginurl = window.location.href.split('#')[0] + 'loginways' + let _loginurl = _href + 'loginways' let login_ways = [] let login_types = [] if (res.login_ways && res.login_ways.length > 0) { @@ -670,7 +669,7 @@ } }) - let loginWays = localStorage.getItem(window.location.href.split('#')[0] + 'loginways') + let loginWays = localStorage.getItem(_href + 'loginways') if (loginWays) { try { loginWays = JSON.parse(window.decodeURIComponent(window.atob(loginWays))) diff --git a/src/views/login/loginform.jsx b/src/views/login/loginform.jsx index 172aa29..214054d 100644 --- a/src/views/login/loginform.jsx +++ b/src/views/login/loginform.jsx @@ -46,6 +46,9 @@ if (localStorage.getItem(_url + 'remember') === 'false') { remember = false } + if (!window.GLOB.keepKey) { + remember = false + } let smsId = '' let _loginWays = [] diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx index 66e4dc9..f07b1fe 100644 --- a/src/views/menudesign/index.jsx +++ b/src/views/menudesign/index.jsx @@ -917,7 +917,7 @@ } verifyConfig = (show) => { - const { config } = this.state + const { config, MenuType } = this.state let error = '' let check = (components) => { @@ -936,6 +936,7 @@ return } + if (['voucher'].includes(item.subtype)) return if (['propcard', 'brafteditor', 'sandbox', 'stepform', 'tabform'].includes(item.subtype) && item.wrap.datatype === 'static') return if (['balcony'].includes(item.type) && item.wrap.datatype === 'static') return @@ -983,6 +984,39 @@ }) } + if (MenuType === 'billPrint' && !error) { + let forbid = { + tabs: '鏍囩椤�', + search: '鎼滅储鏉′欢', + form: '琛ㄥ崟', + carousel: '杞挱', + tree: '鏍戝舰鍒楄〃', + chart: '鑷畾涔夊浘琛�', + editor: '瀵屾枃鏈�', + group: '鍒嗙粍' + } + let subforbid = { + editable: '鍙紪杈戣〃鏍�', + voucher: '鍑瘉' + } + + config.components.forEach(item => { + if (!error && forbid[item.type]) { + error = '鎵撳嵃妯℃澘涓笉鍙娇鐢�' + forbid[item.type] + } else if (!error && subforbid[item.type]) { + error = '鎵撳嵃妯℃澘涓笉鍙娇鐢�' + subforbid[item.type] + } + }) + + if (show && error) { + notification.warning({ + top: 92, + message: error, + duration: 5 + }) + } + } + return error } diff --git a/src/views/menudesign/menuform/index.jsx b/src/views/menudesign/menuform/index.jsx index 0b3fbbd..78f5593 100644 --- a/src/views/menudesign/menuform/index.jsx +++ b/src/views/menudesign/menuform/index.jsx @@ -156,6 +156,8 @@ this.props.updateConfig({...config, OpenType: value}) } else if (key === 'hidden') { this.props.updateConfig({...config, hidden: value}) + } else if (key === 'permission') { + this.props.updateConfig({...config, permission: value}) } } diff --git a/src/views/menudesign/printmenuform/index.jsx b/src/views/menudesign/printmenuform/index.jsx index 12514d8..9b099fc 100644 --- a/src/views/menudesign/printmenuform/index.jsx +++ b/src/views/menudesign/printmenuform/index.jsx @@ -194,7 +194,7 @@ message: dict['mob.required.input'] + '棣栭〉鏁�!' } ] - })(<InputNumber min={1} max={1000} precision={0} onChange={this.changeFirstCount}/>)} + })(<InputNumber min={1} max={1000} precision={1} onChange={this.changeFirstCount}/>)} </Form.Item> </Col> <Col span={24}> @@ -207,14 +207,14 @@ message: dict['mob.required.input'] + '姣忛〉鏁�!' } ] - })(<InputNumber min={1} max={1000} precision={0} onChange={this.changeCount}/>)} + })(<InputNumber min={1} max={1000} precision={1} onChange={this.changeCount}/>)} </Form.Item> </Col> <Col span={24}> <Form.Item label="灏鹃〉鏁�(鏉�)"> {getFieldDecorator('lastCount', { initialValue: config.lastCount - })(<InputNumber min={1} max={1000} precision={0} onChange={this.changeLastCount}/>)} + })(<InputNumber min={1} max={1000} precision={1} onChange={this.changeLastCount}/>)} </Form.Item> </Col> <Col span={24}> diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx index 0bac9a5..98854e4 100644 --- a/src/views/mobdesign/index.jsx +++ b/src/views/mobdesign/index.jsx @@ -6,7 +6,7 @@ import moment from 'moment' import HTML5Backend from 'react-dnd-html5-backend' import { ConfigProvider, notification, Modal, Collapse, Switch, Button, message, Spin, Typography } from 'antd' -import { DoubleLeftOutlined, DoubleRightOutlined, HomeOutlined, LoginOutlined, RedoOutlined } from '@ant-design/icons' +import { DoubleLeftOutlined, DoubleRightOutlined, HomeOutlined, LoginOutlined, RedoOutlined, ArrowLeftOutlined } from '@ant-design/icons' import Api from '@/api' import Utils, { setGLOBFuncs } from '@/utils/utils.js' @@ -17,7 +17,6 @@ import MKEmitter from '@/utils/events.js' import MenuUtils from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' -import backurl from '@/assets/img/back.jpg' import './index.scss' @@ -265,6 +264,7 @@ let param = { MenuID: menu.MenuID, copyMenuId: menu.copyMenuId || '', + clearMenu: menu.clearMenu !== 'false', type: 'view' } @@ -748,7 +748,7 @@ } } } else { - config.components = MenuUtils.resetConfig(config.components) + config.components = MenuUtils.resetConfig(config.components, {}, urlParam.clearMenu) config.enabled = false message.success('澶嶅埗鎴愬姛锛屼繚瀛樺悗鐢熸晥銆�') } @@ -857,34 +857,58 @@ const { config } = this.state let traversal = (components) => { - let list = components.map(item => { + let list = [] + components.forEach(item => { let m = { key: item.uuid, title: item.name, children: [] } - if (item.type === 'topbar' || item.type === 'login' || item.type === 'navbar') { + if (item.type === 'topbar' || item.type === 'login' || item.type === 'navbar' || (item.type === 'menubar' && item.subtype === 'commonbar')) { return null } else if (item.type === 'tabs') { let tabs = [] + let mm = [] item.subtabs.forEach(tab => { let s = traversal(tab.components) if (s.length === 0) return - + tabs.push({ key: tab.uuid, title: tab.label, children: s }) + + mm.push(...s) }) if (tabs.length > 0) { m.children = tabs } + + if (item.setting.permission === 'true') { + list.push(m) + } else if (mm.length) { + list.push(...mm) + } + + return null } else if (item.type === 'group') { m.children = traversal(item.components) + + if (item.setting.permission === 'true') { + list.push(m) + } else if (m.children.length) { + list.push(...m.children) + } + + return null + } if (item.plot && item.plot.permission !== 'true') { + return null + } if (item.wrap && item.wrap.permission !== 'true') { + return null } else if (item.type === 'card' || (item.type === 'table' && item.subtype === 'tablecard')) { item.action && item.action.forEach(btn => { this.checkBtn(btn) @@ -961,10 +985,8 @@ }) } - return m + list.push(m) }) - - list = list.filter(Boolean) return list } @@ -1101,15 +1123,25 @@ config.enabled = false } - let roleParam = {type: 'view', key: config.uuid, title: config.MenuName, children: []} + let roleParam = {type: 'view', version: '1.0', key: config.uuid, title: config.MenuName, children: []} roleParam.children = this.getMenuMessage() + config.loginview = false + config.tabview = false - if (config.components.findIndex(item => item.type === 'login') > -1) { - roleParam.login = true - config.loginview = true - } else { - config.loginview = false + if (config.permission !== 'true') { + roleParam.pass = true + roleParam.children = [] } + + config.components.forEach(item => { + if (item.type === 'login') { + roleParam.login = true + roleParam.children = [] + config.loginview = true + } else if (item.type === 'navbar') { + config.tabview = true + } + }) if (adapters.includes('wxmini')) { config = this.getMiniStyle(config) @@ -1168,17 +1200,22 @@ let roles = { type: 'navbar', + version: '1.0', key: item.uuid, title: item.name, children: [] } - roles.children = item.menus.map(menu => { - return { - key: menu.MenuID, - title: menu.name - } - }) + if (item.wrap.permission === 'true') { + roles.children = item.menus.map(menu => { + return { + key: menu.MenuID, + title: menu.name + } + }) + } else { + roles.pass = true + } let _param = { func: 'sPC_TrdMenu_AddUpt', @@ -1365,7 +1402,7 @@ } verifyConfig = (show) => { - const { config, viewType } = this.state + const { config } = this.state let error = '' let searchSum = 0 let swipes = [] @@ -1403,6 +1440,7 @@ swipes.push(item.name) } + if (['voucher'].includes(item.subtype)) return if (['propcard', 'brafteditor', 'sandbox', 'tabbar', 'stepform', 'tabform'].includes(item.subtype) && item.wrap.datatype === 'static') return if (['balcony'].includes(item.type) && item.wrap.datatype === 'static') return if (['menubar'].includes(item.type) && item.wrap.datatype !== 'dynamic') return @@ -1432,9 +1470,9 @@ check(config.components) - if (!error && viewType === 'userbind' && config.components.filter(item => item.type === 'login').length === 0) { - error = '鐢ㄦ埛缁戝畾椤甸潰蹇呴』娣诲姞鐧诲綍銆�' - } + // if (!error && viewType === 'userbind' && config.components.filter(item => item.type === 'login').length === 0) { + // error = '鐢ㄦ埛缁戝畾椤甸潰蹇呴』娣诲姞鐧诲綍銆�' + // } if (!error && searchSum > 1) { error = '鎼滅储缁勪欢涓庡鑸爮鐨勬悳绱㈠姛鑳戒笉鍙悓鏃朵娇鐢ㄣ��' @@ -1465,13 +1503,27 @@ insert = (item) => { let config = fromJS(this.state.config).toJS() - if (item.type === 'topbar' && config.components.findIndex(m => m.type === 'topbar') > -1) { + if (item.type === 'search') { notification.warning({ top: 92, - message: '瀵艰埅鏍忎笉鍙噸澶嶆坊鍔狅紒', + message: '绉诲姩绔悳绱㈢粍浠朵笉鍙矘璐达紒', duration: 5 }) return + } + + if (item.type === 'topbar') { + if (config.components.findIndex(m => m.type === 'topbar') > -1) { + notification.warning({ + top: 92, + message: '瀵艰埅鏍忎笉鍙噸澶嶆坊鍔狅紒', + duration: 5 + }) + return + } + if (!config.style.paddingTop) { + config.style.paddingTop = '50px' + } } config.components.push(item) @@ -1713,7 +1765,7 @@ <div className="wrap"> <Button type="primary" onClick={this.submitConfig} id="save-config" loading={menuloading}>{dict['mob.save']}</Button> <Switch className="big" checkedChildren={dict['mob.enable']} unCheckedChildren={dict['mob.disable']} checked={config && config.enabled} onChange={this.onEnabledChange} /> - <img title="鍚庨��" className="back-view" onClick={this.backView} src={backurl} alt=""/> + <ArrowLeftOutlined title="鍚庨��" className="back-view" onClick={this.backView}/> <CreateView resetmenu={this.getAppMenus} /> <PasteController insert={this.insert} /> <StyleCombControlButton menu={config} /> diff --git a/src/views/mobdesign/index.scss b/src/views/mobdesign/index.scss index d9f3125..0881850 100644 --- a/src/views/mobdesign/index.scss +++ b/src/views/mobdesign/index.scss @@ -12,11 +12,8 @@ float: right; margin-right: 10px; cursor: pointer; - filter: opacity(0.7); - transition: filter 0.3s; - } - .back-view:hover { - filter: opacity(0.9); + font-size: 20px; + color: #757575; } .modal-form-board { padding-top: 0; diff --git a/src/views/mobdesign/menuform/index.jsx b/src/views/mobdesign/menuform/index.jsx index 95da5b8..38fb28c 100644 --- a/src/views/mobdesign/menuform/index.jsx +++ b/src/views/mobdesign/menuform/index.jsx @@ -25,19 +25,24 @@ selectChange = (key, value) => { const { config } = this.props - if (key === 'cacheUseful') { - this.props.updateConfig({...config, cacheUseful: value}) - } else if (key === 'timeUnit') { - this.props.updateConfig({...config, timeUnit: value}) - } else if (key === 'advertUrl') { - this.props.updateConfig({...config, advertUrl: value}) - } else if (key === 'advertTime') { - this.props.updateConfig({...config, advertTime: value}) - } else if (key === 'pullRefresh') { - this.props.updateConfig({...config, pullRefresh: value}) - } else if (key === 'statusBarbgColor') { - this.props.updateConfig({...config, statusBarbgColor: value}) - } + this.props.updateConfig({...config, [key]: value}) + // if (key === 'cacheUseful') { + // this.props.updateConfig({...config, cacheUseful: value}) + // } else if (key === 'timeUnit') { + // this.props.updateConfig({...config, timeUnit: value}) + // } else if (key === 'advertUrl') { + // this.props.updateConfig({...config, advertUrl: value}) + // } else if (key === 'advertTime') { + // this.props.updateConfig({...config, advertTime: value}) + // } else if (key === 'pullRefresh') { + // this.props.updateConfig({...config, pullRefresh: value}) + // } else if (key === 'statusBarbgColor') { + // this.props.updateConfig({...config, statusBarbgColor: value}) + // } else if (key === 'permission') { + // this.props.updateConfig({...config, permission: value}) + // } else if (key === 'share') { + // this.props.updateConfig({...config, share: value}) + // } } // 鑿滃崟鍚嶇О @@ -129,7 +134,7 @@ </Tooltip> }> {getFieldDecorator('permission', { - initialValue: config.permission || 'true' + initialValue: config.permission || 'false' })( <Radio.Group onChange={(e) => {this.selectChange('permission', e.target.value)}}> <Radio value="true">浣跨敤</Radio> @@ -219,7 +224,12 @@ </Form.Item> </Col> : null} {adapters.includes('app') && config.advertUrl ? <Col span={24}> - <Form.Item label="鍋滅暀(s)"> + <Form.Item label={ + <Tooltip placement="topLeft" title="骞垮憡椤电殑鍋滅暀鏃堕棿銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鍋滅暀(s) + </Tooltip> + }> {getFieldDecorator('advertTime', { initialValue: config.advertTime || 3, rules: [ @@ -233,6 +243,47 @@ )} </Form.Item> </Col> : null} + {adapters.includes('weixin') || adapters.includes('wxmini') ? <Col span={24}> + <Form.Item label="鍒嗕韩"> + {getFieldDecorator('share', { + initialValue: config.share || 'default' + })( + <Radio.Group onChange={(e) => {this.selectChange('share', e.target.value)}}> + <Radio value="default">榛樿</Radio> + <Radio value="custom">鑷畾涔�</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> : null} + {config.share === 'custom' && (adapters.includes('weixin') || adapters.includes('wxmini')) ? <Col span={24}> + <Form.Item label="鍒嗕韩鏍囬"> + {getFieldDecorator('share_title', { + initialValue: config.share_title || '', + rules: [ + { + required: true, + message: '璇疯緭鍏ュ垎浜爣棰�!' + } + ] + })(<Input placeholder="" autoComplete="off" onChange={(e) => {this.selectChange('share_title', e.target.value)}}/>)} + </Form.Item> + </Col> : null} + {config.share === 'custom' && (adapters.includes('weixin') || adapters.includes('wxmini')) ? <Col span={24}> + <Form.Item label="鍒嗕韩鎻忚堪"> + {getFieldDecorator('share_des', { + initialValue: config.share_des || '' + })(<Input placeholder="" autoComplete="off" onChange={(e) => {this.selectChange('share_des', e.target.value)}}/>)} + </Form.Item> + </Col> : null} + {config.share === 'custom' && (adapters.includes('weixin') || adapters.includes('wxmini')) ? <Col span={24}> + <Form.Item label="鍒嗕韩鍥剧墖"> + {getFieldDecorator('share_url', { + initialValue: config.share_url || '' + })( + <SourceComponent type="picture" placement="right" onChange={(val) => {this.selectChange('share_url', val)}}/> + )} + </Form.Item> + </Col> : null} <Col span={24}> <Form.Item label="澶囨敞"> {getFieldDecorator('Remark', { diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index 7f0144d..b71d127 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -6,7 +6,7 @@ import moment from 'moment' import HTML5Backend from 'react-dnd-html5-backend' import { ConfigProvider, notification, Modal, Collapse, Switch, Button, message, Spin, Typography } from 'antd' -import { DoubleLeftOutlined, DoubleRightOutlined, HomeOutlined, LoginOutlined, RedoOutlined } from '@ant-design/icons' +import { DoubleLeftOutlined, DoubleRightOutlined, HomeOutlined, LoginOutlined, RedoOutlined, ArrowLeftOutlined } from '@ant-design/icons' import Api from '@/api' import Utils, { setGLOBFuncs } from '@/utils/utils.js' @@ -17,7 +17,6 @@ import MKEmitter from '@/utils/events.js' import MenuUtils from '@/utils/utils-custom.js' import asyncComponent from '@/utils/asyncComponent' -import backurl from '@/assets/img/back.jpg' import './index.scss' @@ -216,6 +215,7 @@ let param = { MenuID: menu.MenuID, copyMenuId: menu.copyMenuId || '', + clearMenu: menu.clearMenu !== 'false', type: 'view' } @@ -246,9 +246,9 @@ return } - let homeId = MenuID || '' + let homeId = '' let appViewList = [] - if (!homeId && res.data && res.data.length > 0) { + if (res.data && res.data.length > 0) { appViewList = res.data appViewList.forEach(item => { if (item.keys_type === 'index') { @@ -258,7 +258,7 @@ } if (!homeId) { - homeId = Utils.getuuid() + homeId = MenuID || Utils.getuuid() let param = { func: 's_kei_link_keyids_addupt', @@ -297,7 +297,7 @@ }) } else { sessionStorage.setItem('appViewList', JSON.stringify(appViewList)) - this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: homeId, type: 'view'})))) + this.props.history.replace('/pcdesign/' + window.btoa(window.encodeURIComponent(JSON.stringify({MenuID: MenuID || homeId, type: 'view'})))) } }) } @@ -748,7 +748,7 @@ } } } else { - config.components = MenuUtils.resetConfig(config.components) + config.components = MenuUtils.resetConfig(config.components, {}, urlParam.clearMenu) config.enabled = false message.success('澶嶅埗鎴愬姛锛屼繚瀛樺悗鐢熸晥銆�') } @@ -854,11 +854,12 @@ getMenuMessage = () => { const { config } = this.state - let nodes = {type: 'view', key: config.uuid, title: config.MenuName, children: []} + let nodes = {type: 'view', version: '1.0', key: config.uuid, title: config.MenuName, children: []} let popviews = [] let traversal = (components) => { - let list = components.map(item => { + let list = [] + components.forEach(item => { let m = { key: item.uuid, title: item.name, @@ -868,6 +869,7 @@ return null } else if (item.type === 'tabs') { let tabs = [] + let mm = [] item.subtabs.forEach(tab => { let s = traversal(tab.components) @@ -878,13 +880,35 @@ title: tab.label, children: s }) + + mm.push(...s) }) if (tabs.length > 0) { m.children = tabs } + + if (item.setting.permission === 'true') { + list.push(m) + } else if (mm.length) { + list.push(...mm) + } + + return null } else if (item.type === 'group') { m.children = traversal(item.components) + + if (item.setting.permission === 'true') { + list.push(m) + } else if (m.children.length) { + list.push(...m.children) + } + + return null + } if (item.plot && item.plot.permission !== 'true') { + return null + } if (item.wrap && item.wrap.permission !== 'true') { + return null } else if (item.type === 'card' || (item.type === 'table' && item.subtype === 'tablecard')) { item.action && item.action.forEach(btn => { this.checkBtn(btn) @@ -990,10 +1014,8 @@ }) } - return m + list.push(m) }) - - list = list.filter(Boolean) return list } @@ -1005,6 +1027,11 @@ if (config.components.findIndex(item => item.type === 'login') > -1) { nodes.login = true + nodes.children = [] + } + if (config.permission !== 'true') { + nodes.pass = true + nodes.children = [] } return nodes @@ -1112,34 +1139,39 @@ let roles = { type: 'navbar', + version: '1.0', key: item.uuid, title: item.name, children: [] } - - roles.children = item.menus.map(fst => { - if (fst.property === 'classify' && fst.sublist.length > 0) { - return { - key: fst.MenuID, - title: fst.name, - children: fst.sublist.map(scd => { - if (scd.property === 'classify' && scd.sublist.length > 0) { - return { - key: scd.MenuID, - title: scd.name, - children: scd.sublist.map(thd => { - return { key: thd.MenuID, title: thd.name } - }) + + if (item.wrap.permission === 'true') { + roles.children = item.menus.map(fst => { + if (fst.property === 'classify' && fst.sublist.length > 0) { + return { + key: fst.MenuID, + title: fst.name, + children: fst.sublist.map(scd => { + if (scd.property === 'classify' && scd.sublist.length > 0) { + return { + key: scd.MenuID, + title: scd.name, + children: scd.sublist.map(thd => { + return { key: thd.MenuID, title: thd.name } + }) + } + } else { + return { key: scd.MenuID, title: scd.name } } - } else { - return { key: scd.MenuID, title: scd.name } - } - }) + }) + } + } else { + return { key: fst.MenuID, title: fst.name } } - } else { - return { key: fst.MenuID, title: fst.name } - } - }) + }) + } else { + roles.pass = true + } let _param = { func: 'sPC_TrdMenu_AddUpt', @@ -1501,6 +1533,7 @@ return } + if (['voucher'].includes(item.subtype)) return if (['propcard', 'brafteditor', 'sandbox', 'stepform', 'tabform'].includes(item.subtype) && item.wrap.datatype === 'static') return if (['balcony'].includes(item.type) && item.wrap.datatype === 'static') return @@ -1778,7 +1811,7 @@ <div className="wrap"> <Button type="primary" id="save-config" onClick={this.submitConfig} loading={menuloading}>{dict['mob.save']}</Button> <Switch className="big" checkedChildren={dict['mob.enable']} unCheckedChildren={dict['mob.disable']} checked={config && config.enabled} onChange={this.onEnabledChange} /> - <img title="鍚庨��" className="back-view" onClick={this.backView} src={backurl} alt=""/> + <ArrowLeftOutlined title="鍚庨��" className="back-view" onClick={this.backView}/> <CreateView resetmenu={this.getAppMenus} /> <PasteController insert={this.insert} /> <StyleCombControlButton menu={config} /> diff --git a/src/views/pcdesign/index.scss b/src/views/pcdesign/index.scss index c6a8f6a..b8689fe 100644 --- a/src/views/pcdesign/index.scss +++ b/src/views/pcdesign/index.scss @@ -16,11 +16,8 @@ float: right; margin-right: 10px; cursor: pointer; - filter: opacity(0.7); - transition: filter 0.3s; - } - .back-view:hover { - filter: opacity(0.9); + font-size: 20px; + color: #757575; } .modal-form-board { padding-top: 0; diff --git a/src/views/pcdesign/menuform/index.jsx b/src/views/pcdesign/menuform/index.jsx index 4c05fd5..1439d02 100644 --- a/src/views/pcdesign/menuform/index.jsx +++ b/src/views/pcdesign/menuform/index.jsx @@ -25,6 +25,8 @@ this.props.updateConfig({...config, cacheUseful: value}) } else if (key === 'timeUnit') { this.props.updateConfig({...config, timeUnit: value}) + } else if (key === 'permission') { + this.props.updateConfig({...config, permission: value}) } } @@ -117,7 +119,7 @@ </Tooltip> }> {getFieldDecorator('permission', { - initialValue: config.permission || 'true' + initialValue: config.permission || 'false' })( <Radio.Group onChange={(e) => {this.selectChange('permission', e.target.value)}}> <Radio value="true">浣跨敤</Radio> diff --git a/src/views/rolemanage/index.jsx b/src/views/rolemanage/index.jsx index 06a4db8..e4df34d 100644 --- a/src/views/rolemanage/index.jsx +++ b/src/views/rolemanage/index.jsx @@ -101,7 +101,7 @@ }) } - getMenuList = (reset) => { + getMenuList = (reset, resolve) => { const { app } = this.state let param = { func: 's_get_app_menus', @@ -114,9 +114,11 @@ param.secretkey = Utils.encrypt(param.LText, param.timestamp) - this.setState({ - loading: true - }) + if (!resolve) { + this.setState({ + loading: true + }) + } Api.getCloudConfig(param).then(result => { if (result.status) { @@ -130,17 +132,23 @@ try { let pageParam = JSON.parse(window.decodeURIComponent(window.atob(item.menus_rolelist))) item.nodes = pageParam - if (pageParam.login) { + + if (pageParam.type) { + item.type = pageParam.type + } + + if (pageParam.version !== '1.0') { item.nodes = '' - } else if (pageParam.type === 'navbar') { - item.type = 'navbar' + } else if (pageParam.login || pageParam.pass) { + item.nodes = '' } else if (pageParam.type === 'im') { - item.type = 'im' item.nodes = '' } } catch (e) { item.nodes = '' } + + delete item.menus_rolelist } if (!ub && app.userbind === item.MenuID) { @@ -163,7 +171,9 @@ this.setState({ menulist: menus }, () => { - if (reset && (!this.oriTrees || this.oriTrees.length === 0)) { + if (resolve) { + this.initMenutree(resolve) + } else if (reset && (!this.oriTrees || this.oriTrees.length === 0)) { this.initMenutree() } else if (!reset && this.oriTrees && this.oriTrees.length === 0) { this.initMenutree() @@ -503,14 +513,23 @@ try { let pageParam = JSON.parse(window.decodeURIComponent(window.atob(item.menus_rolelist))) item.nodes = pageParam - if (pageParam.login) { + + if (pageParam.type) { + item.type = pageParam.type + } + + if (pageParam.version !== '1.0') { item.nodes = '' - } else if (pageParam.type === 'navbar') { - item.type = 'navbar' + } else if (pageParam.login || pageParam.pass) { + item.nodes = '' + } else if (pageParam.type === 'im') { + item.nodes = '' } } catch (e) { item.nodes = '' } + + delete item.menus_rolelist } if (targetKeys.includes(item.MenuID) && item.nodes && item.nodes.popviews && item.nodes.popviews.length > 0) { @@ -645,10 +664,10 @@ initTree = () => { const _this = this confirm({ - content: '鍒濆鍖栦細鏍规嵁鑿滃崟閲嶇疆鏉冮檺鏍戯紝纭畾鎵ц鍚楋紵', + content: '鏉冮檺鏍戜細閲嶆柊鐢熸垚锛岀‘瀹氭墽琛屽悧锛�', onOk() { return new Promise(resolve => { - _this.initMenutree(resolve) + _this.getMenuList(true, resolve) }) }, onCancel() {} @@ -889,7 +908,7 @@ </div> <div className="right-view"> <div className="app-action"> - <Button className="mk-primary" onClick={this.initTree}>鍚屾</Button> + <Button className="mk-primary" onClick={this.initTree}>閲嶇疆</Button> {/* <Button className="mk-purple" onClick={this.syncTree}>鍚屾</Button> */} <Button className="mk-green save" onClick={this.saveTree}>淇濆瓨</Button> </div> diff --git a/src/views/sso/index.jsx b/src/views/sso/index.jsx index ee0c674..03a7c03 100644 --- a/src/views/sso/index.jsx +++ b/src/views/sso/index.jsx @@ -1,5 +1,5 @@ import React, {Component} from 'react' -import { Spin } from 'antd' +import { Spin, notification } from 'antd' import { connect } from 'react-redux' import md5 from 'md5' import moment from 'moment' @@ -16,23 +16,41 @@ let _param = JSON.parse(window.decodeURIComponent(window.atob(this.props.match.params.param))) if (typeof(_param) === 'object') { - _param.UserID && sessionStorage.setItem('UserID', _param.UserID) - _param.LoginUID && sessionStorage.setItem('LoginUID', _param.LoginUID) - _param.User_Name && sessionStorage.setItem('User_Name', _param.User_Name) - _param.Full_Name && sessionStorage.setItem('Full_Name', _param.Full_Name) - _param.debug && sessionStorage.setItem('debug', _param.debug) - _param.dataM && sessionStorage.setItem('dataM', _param.dataM) - _param.dataM && sessionStorage.setItem('localDataM', _param.dataM) - _param.avatar && sessionStorage.setItem('avatar', _param.avatar) - _param.role_id && sessionStorage.setItem('role_id', _param.role_id) - _param.role_id && sessionStorage.setItem('localRole_id', _param.role_id) + this.authLogin(_param.appid, _param.openid, _param.memberId, _param.key) } else { this.props.history.replace('/login') } - this.getMessage() } catch (e) { this.props.history.replace('/login') } + } + + authLogin = (appid, openid, memberid, scanId) => { + Api.getTouristMsg(appid, openid, memberid, scanId).then(res => { + if (res.status) { + sessionStorage.setItem('UserID', res.UserID) + sessionStorage.setItem('LoginUID', res.LoginUID) + sessionStorage.setItem('User_Name', res.UserName) + sessionStorage.setItem('Full_Name', res.FullName) + sessionStorage.setItem('avatar', res.icon || '') + sessionStorage.setItem('dataM', res.dataM ? 'true' : '') + sessionStorage.setItem('localDataM', res.dataM ? 'true' : '') + sessionStorage.setItem('debug', res.debug || '') + sessionStorage.setItem('role_id', res.role_id || '') + sessionStorage.setItem('departmentcode', res.departmentcode || '') + sessionStorage.setItem('organization', res.organization || '') + sessionStorage.setItem('localRole_id', res.role_id || '') + + this.getMessage() + } else { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + this.props.history.replace('/login') + } + }) } getMessage = () => { @@ -47,7 +65,16 @@ Api.getSystemConfig(_param).then(res => { if (res.status) { - let _url = window.location.href.split('#')[0] + 'system' + if (/^https/.test(window.location.protocol)) { // https杞崲 + res.Banner = res.Banner ? res.Banner.replace(/^http:/ig, 'https:') : '' + res.doclogo = res.doclogo ? res.doclogo.replace(/^http:/ig, 'https:') : '' + res.indexlogo = res.indexlogo ? res.indexlogo.replace(/^http:/ig, 'https:') : '' + res.loginlogo = res.loginlogo ? res.loginlogo.replace(/^http:/ig, 'https:') : '' + res.titlelogo = res.titlelogo ? res.titlelogo.replace(/^http:/ig, 'https:') : '' + } + + const _href = window.location.href.split('#')[0] + let _url = _href + 'system' let systemMsg = { favicon: res.titlelogo || '', platTitle: res.titleName || '', @@ -59,7 +86,30 @@ mainlogo: res.indexlogo || '', doclogo: res.doclogo || '', style: res.CSS || '', - webSite: res.WebSite || '' + showline: res.split_line_show || 'true', + webSite: res.WebSite || '', + navBar: res.menu_type, + app_version: res.app_version + } + + let level = res.pwd_level || '' + + if (level && !['letter_num', 'char_num', 'char_num_90'].includes(level)) { + level = '' + } + + localStorage.setItem(_href + 'pwdlevel', level) + + if (res.srcid) { + localStorage.setItem(_href + 'srcId', res.srcid) + } else { + localStorage.removeItem(_href + 'srcId') + } + + sessionStorage.setItem('home_background', res.index_background_color || '') + if (res.sys_datetime) { + sessionStorage.setItem('sys_datetime', res.sys_datetime) + sessionStorage.setItem('app_datetime', new Date().getTime()) } // url鏍囬 @@ -71,42 +121,13 @@ localStorage.removeItem(_url) } - let _loginurl = window.location.href.split('#')[0] + 'loginways' - let login_ways = [] - let login_types = [] - if (res.login_ways && res.login_ways.length > 0) { - res.login_ways.forEach(item => { - // 鐭俊楠岃瘉鐮佺櫥褰曪紝蹇呴』璁剧疆鐭俊Id - if (item.way_no === 'sms_vcode' && !item.sms_id) return - if (login_types.includes(item.way_no)) return - - login_types.push(item.way_no) - - login_ways.push({ - label: item.way_name, - type: item.way_no, - smsId: item.sms_id - }) - }) - } else { - login_ways.push({ - label: '璐﹀彿瀵嗙爜鐧诲綍', - type: 'uname_pwd', - smsId: '' - }) - } - - try { - localStorage.setItem(_loginurl, window.btoa(window.encodeURIComponent(JSON.stringify(login_ways)))) - } catch (e) { - localStorage.removeItem(_loginurl) - } - window.GLOB.mainlogo = systemMsg.mainlogo window.GLOB.style = systemMsg.style + window.GLOB.navBar = systemMsg.navBar + window.GLOB.appVersion = systemMsg.app_version if (window.GLOB.style && styles[window.GLOB.style]) { - document.body.className = styles[window.GLOB.style] + document.body.className = styles[window.GLOB.style] + ' ' + (res.split_line_show === 'false' ? 'hidden-split-line' : '') } if (res.titlelogo && window.GLOB.favicon !== res.titlelogo) { @@ -125,6 +146,11 @@ } this.props.history.replace('/main') } else { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) this.props.history.replace('/login') } }, () => { -- Gitblit v1.8.0