vue2-client 1.16.25 → 1.16.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursorrules +19 -19
- package/.env.apply +19 -19
- package/.env.gaslink +19 -19
- package/.env.his +19 -19
- package/.env.liuli +20 -20
- package/.env.scada +19 -19
- package/.eslintrc.js +90 -90
- package/CHANGELOG.md +824 -824
- package/Components.md +60 -60
- package/docs/LowCode/lowcode.md +155 -155
- package/docs/LowCode/lowcodeForDeveloper.md +230 -230
- package/docs/index.md +30 -30
- package/index.js +31 -31
- package/jest-transform-stub.js +8 -8
- package/jest.setup.js +7 -7
- package/jsconfig.json +19 -19
- package/package.json +112 -112
- package/public/his/editor/editor.html +51 -51
- package/public/his/editor/mock/bind_data.html +779 -779
- package/public/his/editor/mock/data_table.html +40 -40
- package/public/his/editor/mock/sign.html +75 -75
- package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
- package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
- package/public/his/editor/vender/date97/WdatePicker.js +677 -677
- package/public/his/editor/vender/date97/calendar.js +4 -4
- package/public/his/editor/vender/date97/lang/en.js +13 -13
- package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
- package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
- package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
- package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
- package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
- package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
- package/public/his/editor/vender/diff.js +1627 -1627
- package/public/his/editor/vender/editor.js +1 -1
- package/public/his/editor/vender/fabric.js +31187 -31187
- package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
- package/public/his/editor/vender/jquery/jquery.js +10872 -10872
- package/public/his/editor/vender/jquery/jquery.print.js +255 -255
- package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
- package/public/his/editor/vender/mui/mui.min.css +4 -4
- package/public/his/editor/vender/mui/mui.min.js +5 -5
- package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
- package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
- package/public/his/editor/vender/qrcode.js +7 -7
- package/public/his/editor/vender/requirejs/require.js +2145 -2145
- package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
- package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
- package/public/his/editor/vender/signature/jSignature.js +1486 -1486
- package/public/his/editor/vender/validator.js +5094 -5094
- package/public/his/editor/vender/weui/weui.css +5659 -5659
- package/public/his/editor/vender/weui/weui.min.css +4 -4
- package/public/his/editor/vender/weui/weui.min.js +11 -11
- package/src/assets/img/querySlotDemo.svg +15 -15
- package/src/assets/svg/badtwo.svg +1 -1
- package/src/assets/svg/goodtwo.svg +1 -1
- package/src/base-client/components/AI/AskAiBtn.vue +136 -136
- package/src/base-client/components/AI/demo.vue +31 -31
- package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
- package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
- package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
- package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
- package/src/base-client/components/common/CitySelect/CitySelect.vue +1 -1
- package/src/base-client/components/common/CitySelect/index.js +3 -3
- package/src/base-client/components/common/CitySelect/index.md +109 -109
- package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
- package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
- package/src/base-client/components/common/CreateQuery/index.js +3 -3
- package/src/base-client/components/common/CreateQuery/index.md +42 -42
- package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
- package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
- package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
- package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
- package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
- package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
- package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
- package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
- package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
- package/src/base-client/components/common/HIS/HForm/HForm.vue +133 -0
- package/src/base-client/components/common/HIS/HForm/index.js +3 -0
- package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
- package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
- package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
- package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
- package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
- package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
- package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
- package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
- package/src/base-client/components/common/PersonSetting/index.js +3 -3
- package/src/base-client/components/common/Recording/Recording.vue +243 -243
- package/src/base-client/components/common/Recording/index.js +3 -3
- package/src/base-client/components/common/Tree/Tree.vue +149 -149
- package/src/base-client/components/common/Tree/index.js +2 -2
- package/src/base-client/components/common/Upload/Upload.vue +333 -323
- package/src/base-client/components/common/Upload/index.js +3 -3
- package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
- package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
- package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
- package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
- package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
- package/src/base-client/components/common/XAddReport/index.js +3 -3
- package/src/base-client/components/common/XAddReport/index.md +56 -56
- package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
- package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
- package/src/base-client/components/common/XButtons/index.js +3 -3
- package/src/base-client/components/common/XButtons/index.md +61 -61
- package/src/base-client/components/common/XCard/XCard.vue +64 -64
- package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
- package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
- package/src/base-client/components/common/XDataCard/index.js +3 -3
- package/src/base-client/components/common/XDataCard/index.md +1 -1
- package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
- package/src/base-client/components/common/XDataDrawer/index.js +3 -3
- package/src/base-client/components/common/XDataDrawer/index.md +41 -41
- package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
- package/src/base-client/components/common/XDescriptions/index.js +3 -3
- package/src/base-client/components/common/XDescriptions/index.md +83 -83
- package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
- package/src/base-client/components/common/XDetailsView/index.js +3 -3
- package/src/base-client/components/common/XForm/XFormItem.vue +1504 -1503
- package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
- package/src/base-client/components/common/XForm/index.md +178 -178
- package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
- package/src/base-client/components/common/XFormGroup/index.js +3 -3
- package/src/base-client/components/common/XFormGroup/index.md +38 -38
- package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
- package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
- package/src/base-client/components/common/XFormTable/index.md +92 -92
- package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
- package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
- package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
- package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
- package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
- package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
- package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
- package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
- package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
- package/src/base-client/components/common/XPrint/index.vue +97 -97
- package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
- package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
- package/src/base-client/components/common/XReport/index.js +3 -3
- package/src/base-client/components/common/XReport/print.js +186 -186
- package/src/base-client/components/common/XReportDrawer/index.js +3 -3
- package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +4 -1
- package/src/base-client/components/common/XReportGrid/index.js +3 -3
- package/src/base-client/components/common/XReportGrid/index.md +44 -44
- package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
- package/src/base-client/components/common/XReportSlot/index.js +3 -3
- package/src/base-client/components/common/XReportSlot/index.md +48 -48
- package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
- package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
- package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
- package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
- package/src/base-client/components/common/XStepView/index.js +3 -3
- package/src/base-client/components/common/XStepView/index.md +31 -31
- package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
- package/src/base-client/components/common/XTab/index.js +3 -3
- package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
- package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
- package/src/base-client/components/common/XTable/index.md +255 -255
- package/src/base-client/components/common/XTagGroup/index.vue +52 -52
- package/src/base-client/components/common/XTree/XTree.vue +424 -424
- package/src/base-client/components/common/XTree/index.js +3 -3
- package/src/base-client/components/common/XTree/index.md +36 -36
- package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
- package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
- package/src/base-client/components/common/richTextModal/index.vue +56 -56
- package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
- package/src/base-client/components/his/XHisEditor/index.js +3 -3
- package/src/base-client/components/index.js +51 -51
- package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
- package/src/base-client/components/layout/XTreeView/index.js +3 -3
- package/src/base-client/components/layout/XTreeView/index.md +46 -46
- package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
- package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
- package/src/base-client/plugins/Config.js +19 -19
- package/src/base-client/plugins/GetLoginInfoService.js +183 -183
- package/src/base-client/plugins/Recording.js +258 -258
- package/src/base-client/plugins/index.js +23 -23
- package/src/base-client/plugins/tabs-page-plugin.js +39 -39
- package/src/components/Charts/Bar.vue +62 -62
- package/src/components/Charts/ChartCard.vue +134 -134
- package/src/components/Charts/Liquid.vue +67 -67
- package/src/components/Charts/MiniArea.vue +39 -39
- package/src/components/Charts/MiniBar.vue +39 -39
- package/src/components/Charts/MiniProgress.vue +75 -75
- package/src/components/Charts/MiniSmoothArea.vue +40 -40
- package/src/components/Charts/Radar.vue +68 -68
- package/src/components/Charts/RankList.vue +77 -77
- package/src/components/Charts/TagCloud.vue +113 -113
- package/src/components/Charts/TransferBar.vue +64 -64
- package/src/components/Charts/Trend.vue +82 -82
- package/src/components/Charts/chart.less +12 -12
- package/src/components/Charts/smooth.area.less +13 -13
- package/src/components/CodeMirror/inedx.vue +118 -118
- package/src/components/CodeMirror/setting.js +40 -40
- package/src/components/FileImageItem/FileItem.vue +320 -320
- package/src/components/NumberInfo/NumberInfo.vue +54 -54
- package/src/components/NumberInfo/index.js +3 -3
- package/src/components/NumberInfo/index.less +54 -54
- package/src/components/NumberInfo/index.md +43 -43
- package/src/components/card/ChartCard.vue +79 -79
- package/src/components/chart/Bar.vue +60 -60
- package/src/components/chart/MiniArea.vue +67 -67
- package/src/components/chart/MiniBar.vue +59 -59
- package/src/components/chart/MiniProgress.vue +57 -57
- package/src/components/chart/Radar.vue +80 -80
- package/src/components/chart/RankingList.vue +60 -60
- package/src/components/chart/Trend.vue +79 -79
- package/src/components/chart/index.less +9 -9
- package/src/components/checkbox/ColorCheckbox.vue +157 -157
- package/src/components/checkbox/ImgCheckbox.vue +117 -117
- package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
- package/src/components/checkbox/index.js +9 -9
- package/src/components/exception/ExceptionPage.vue +70 -70
- package/src/components/g2Charts/constants.js +202 -202
- package/src/components/g2Charts/demo.vue +808 -808
- package/src/components/g2Charts/designer.vue +228 -228
- package/src/components/g2Charts/designerBaseConfig.vue +61 -61
- package/src/components/g2Charts/designerDataConfig.vue +259 -259
- package/src/components/g2Charts/designerStyleConfig.vue +16 -16
- package/src/components/g2Charts/index.vue +397 -397
- package/src/components/index.js +36 -36
- package/src/components/input/IInput.vue +66 -66
- package/src/components/menu/SideMenu.vue +75 -75
- package/src/components/menu/menu.js +273 -273
- package/src/components/setting/Setting.vue +234 -234
- package/src/components/tool/AStepItem.vue +60 -60
- package/src/config/CreateQueryConfig.js +325 -325
- package/src/config/default/antd.config.js +89 -89
- package/src/config/default/setting.config.js +55 -55
- package/src/font-style/font.css +60 -60
- package/src/layouts/CommonLayout.vue +56 -56
- package/src/layouts/PageLayout.vue +151 -151
- package/src/layouts/SinglePageView.vue +136 -136
- package/src/layouts/header/AdminHeader.vue +132 -132
- package/src/layouts/header/HeaderNotice.vue +177 -177
- package/src/layouts/header/InstitutionDetail.vue +181 -181
- package/src/layouts/tabs/TabsHead.vue +189 -189
- package/src/lib.js +1 -1
- package/src/mock/extend/index.js +84 -84
- package/src/mock/goods/index.js +108 -108
- package/src/pages/DefaultExample/index.vue +77 -77
- package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
- package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
- package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
- package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
- package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
- package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
- package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
- package/src/pages/DynamicStatistics/index.vue +282 -282
- package/src/pages/Example/childIndex.vue +15 -15
- package/src/pages/Example/index.vue +30 -30
- package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
- package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
- package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
- package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
- package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
- package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
- package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
- package/src/pages/NewDynamicStatistics/index.vue +258 -258
- package/src/pages/Recording/index.vue +77 -77
- package/src/pages/ServiceReview/index.vue +284 -284
- package/src/pages/SubExample/index.vue +26 -26
- package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1766 -1766
- package/src/pages/XReportView/index.vue +64 -64
- package/src/pages/XTreeOneProExample/index.vue +67 -67
- package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
- package/src/pages/login/Login.vue +379 -379
- package/src/pages/login/LoginV3.vue +389 -389
- package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
- package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
- package/src/pages/report/ReportTable.js +124 -124
- package/src/pages/resourceManage/orgListManage.vue +98 -98
- package/src/pages/system/dictionary/index.vue +44 -44
- package/src/pages/system/monitor/loginInfor/index.vue +37 -37
- package/src/pages/system/monitor/operLog/index.vue +37 -37
- package/src/pages/system/settings/modifyPassword.vue +117 -117
- package/src/pages/system/ticket/index.vue +480 -480
- package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
- package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
- package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
- package/src/plugins/EventLogPlugin.js +33 -33
- package/src/plugins/FindParentsData.js +17 -17
- package/src/router/async/config.async.js +35 -35
- package/src/router/index.js +27 -27
- package/src/services/DataModel.js +30 -30
- package/src/services/LodopFuncs.js +137 -137
- package/src/services/api/TicketDetailsViewApi.js +46 -46
- package/src/services/api/cas.js +79 -79
- package/src/services/api/common.js +346 -346
- package/src/services/api/entity.js +18 -18
- package/src/services/api/index.js +17 -17
- package/src/store/modules/account.js +115 -115
- package/src/store/modules/index.js +5 -5
- package/src/store/modules/lowCode.js +33 -33
- package/src/store/modules/setting.js +119 -119
- package/src/theme/default/style.less +58 -58
- package/src/utils/authority-utils.js +85 -85
- package/src/utils/errorCode.js +6 -6
- package/src/utils/formatter.js +74 -74
- package/src/utils/htmlToPDF.js +108 -108
- package/src/utils/htmlToPDFApi.js +5 -5
- package/src/utils/login.js +188 -188
- package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
- package/src/utils/lowcode/lowcodeLog.js +29 -29
- package/src/utils/lowcode/lowcodeUtils.js +373 -373
- package/src/utils/lowcode/registerComponentForEditor.js +1 -1
- package/src/utils/lowcode/registerComponentForRender.js +11 -11
- package/src/utils/map-utils.js +47 -47
- package/src/utils/reg.js +95 -95
- package/src/utils/runEvalFunction.js +14 -14
- package/src/utils/theme-color-replacer-extend.js +92 -92
- package/src/utils/util.js +329 -329
- package/src/utils/waterMark.js +31 -31
- package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1 +1 @@
|
|
1
|
-
export {}
|
1
|
+
export {}
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
|
2
|
-
import XTreeOne from '@vue2-client/base-client/components/common/XTreeOne/XTreeOne.vue'
|
3
|
-
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
4
|
-
import XDescriptions from '@vue2-client/base-client/components/common/XDescriptions/XDescriptions.vue'
|
5
|
-
|
6
|
-
export {
|
7
|
-
XFormTable,
|
8
|
-
XTreeOne,
|
9
|
-
XAddNativeForm,
|
10
|
-
XDescriptions
|
11
|
-
}
|
1
|
+
import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
|
2
|
+
import XTreeOne from '@vue2-client/base-client/components/common/XTreeOne/XTreeOne.vue'
|
3
|
+
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
4
|
+
import XDescriptions from '@vue2-client/base-client/components/common/XDescriptions/XDescriptions.vue'
|
5
|
+
|
6
|
+
export {
|
7
|
+
XFormTable,
|
8
|
+
XTreeOne,
|
9
|
+
XAddNativeForm,
|
10
|
+
XDescriptions
|
11
|
+
}
|
package/src/utils/map-utils.js
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
import AMapLoader from '@amap/amap-jsapi-loader'
|
2
|
-
let Amap
|
3
|
-
async function GetGDMap (secretKey, key) {
|
4
|
-
if (!Amap) {
|
5
|
-
window._AMapSecurityConfig = {
|
6
|
-
securityJsCode: secretKey
|
7
|
-
}
|
8
|
-
// 解决高德地图加载报错 ---> 禁止多种API加载方式混用
|
9
|
-
AMapLoader.reset()
|
10
|
-
Amap = await AMapLoader.load({
|
11
|
-
key: key, // 申请好的Web端开发者Key,首次调用 load 时必填
|
12
|
-
version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
|
13
|
-
plugins: ['AMap.IndexCluster', 'AMP.MarkerCluster', 'AMap.InfoWindow', 'AMap.HeatMap', 'AMap.HawkEye', 'AMap.DistrictSearch',
|
14
|
-
'AMap.ToolBar', 'AMap.Geolocation', 'AMap.MouseTool',
|
15
|
-
'AMap.Geocoder', 'AMap.MarkerClusterer', 'AMap.AutoComplete', 'AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
16
|
-
AMapUI: {
|
17
|
-
version: '1.1', // AMapUI 缺省 1.1
|
18
|
-
plugins: ['misc/PositionPicker'] // 需要加载的 AMapUI ui插件
|
19
|
-
}
|
20
|
-
})
|
21
|
-
}
|
22
|
-
return Amap
|
23
|
-
}
|
24
|
-
|
25
|
-
async function getGDMap (address) {
|
26
|
-
new (await GetGDMap()).Geocoder({
|
27
|
-
radius: 500 // 范围,默认:500
|
28
|
-
}).getLocation(address, function (status, result) {
|
29
|
-
if (status === 'complete' && result.geocodes.length) {
|
30
|
-
return ({ lng: result.geocodes[0].location.lng, lat: result.geocodes[0].location.lat })
|
31
|
-
} else {
|
32
|
-
// eslint-disable-next-line prefer-promise-reject-errors
|
33
|
-
throw new Error('根据经纬度查询地址失败')
|
34
|
-
}
|
35
|
-
})
|
36
|
-
}
|
37
|
-
|
38
|
-
async function GetLocation (address) {
|
39
|
-
return new Promise((resolve, reject) => {
|
40
|
-
try {
|
41
|
-
resolve(getGDMap(address))
|
42
|
-
} catch (e) {
|
43
|
-
reject(e)
|
44
|
-
}
|
45
|
-
})
|
46
|
-
}
|
47
|
-
export { GetGDMap, GetLocation }
|
1
|
+
import AMapLoader from '@amap/amap-jsapi-loader'
|
2
|
+
let Amap
|
3
|
+
async function GetGDMap (secretKey, key) {
|
4
|
+
if (!Amap) {
|
5
|
+
window._AMapSecurityConfig = {
|
6
|
+
securityJsCode: secretKey
|
7
|
+
}
|
8
|
+
// 解决高德地图加载报错 ---> 禁止多种API加载方式混用
|
9
|
+
AMapLoader.reset()
|
10
|
+
Amap = await AMapLoader.load({
|
11
|
+
key: key, // 申请好的Web端开发者Key,首次调用 load 时必填
|
12
|
+
version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
|
13
|
+
plugins: ['AMap.IndexCluster', 'AMP.MarkerCluster', 'AMap.InfoWindow', 'AMap.HeatMap', 'AMap.HawkEye', 'AMap.DistrictSearch',
|
14
|
+
'AMap.ToolBar', 'AMap.Geolocation', 'AMap.MouseTool',
|
15
|
+
'AMap.Geocoder', 'AMap.MarkerClusterer', 'AMap.AutoComplete', 'AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
16
|
+
AMapUI: {
|
17
|
+
version: '1.1', // AMapUI 缺省 1.1
|
18
|
+
plugins: ['misc/PositionPicker'] // 需要加载的 AMapUI ui插件
|
19
|
+
}
|
20
|
+
})
|
21
|
+
}
|
22
|
+
return Amap
|
23
|
+
}
|
24
|
+
|
25
|
+
async function getGDMap (address) {
|
26
|
+
new (await GetGDMap()).Geocoder({
|
27
|
+
radius: 500 // 范围,默认:500
|
28
|
+
}).getLocation(address, function (status, result) {
|
29
|
+
if (status === 'complete' && result.geocodes.length) {
|
30
|
+
return ({ lng: result.geocodes[0].location.lng, lat: result.geocodes[0].location.lat })
|
31
|
+
} else {
|
32
|
+
// eslint-disable-next-line prefer-promise-reject-errors
|
33
|
+
throw new Error('根据经纬度查询地址失败')
|
34
|
+
}
|
35
|
+
})
|
36
|
+
}
|
37
|
+
|
38
|
+
async function GetLocation (address) {
|
39
|
+
return new Promise((resolve, reject) => {
|
40
|
+
try {
|
41
|
+
resolve(getGDMap(address))
|
42
|
+
} catch (e) {
|
43
|
+
reject(e)
|
44
|
+
}
|
45
|
+
})
|
46
|
+
}
|
47
|
+
export { GetGDMap, GetLocation }
|
package/src/utils/reg.js
CHANGED
@@ -1,95 +1,95 @@
|
|
1
|
-
/** 手机号 */
|
2
|
-
export const REG_PHONE =
|
3
|
-
/^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/
|
4
|
-
|
5
|
-
/** 邮箱 */
|
6
|
-
export const REG_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
|
7
|
-
|
8
|
-
/** url */
|
9
|
-
export const REG_URL =
|
10
|
-
/(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/
|
11
|
-
|
12
|
-
/** 身份证号校验 */
|
13
|
-
export function checkIdNumber (value) {
|
14
|
-
const psidno = String(value)
|
15
|
-
// 1.校验身份证号格式和长度
|
16
|
-
const regPsidno = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/
|
17
|
-
if (!regPsidno.test(psidno)) {
|
18
|
-
return false
|
19
|
-
}
|
20
|
-
// 2.校验前两位的省份编码是否正确
|
21
|
-
const province = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', 23: '黑龙江 ', 31: '上海', 32: '江苏', 33: '浙江', 34: '安徽', 35: '福建', 36: '江西', 37: '山东', 41: '河南', 42: '湖北 ', 43: '湖南', 44: '广东', 45: '广西', 46: '海南', 50: '重庆', 51: '四川', 52: '贵州', 53: '云南', 54: '西藏 ', 61: '陕西', 62: '甘肃', 63: '青海', 64: '宁夏', 65: '新疆', 71: '台湾', 81: '香港', 82: '澳门', 91: '国外' }
|
22
|
-
if (!province[Number(psidno.slice(0, 2))]) {
|
23
|
-
return false
|
24
|
-
}
|
25
|
-
// 3.校验出生日期
|
26
|
-
if (psidno.length === 15) {
|
27
|
-
// 15位号码 省(2位)市(2位)县(2位)年(2位)月(2位)日(2位)校验码(3位)
|
28
|
-
const reg = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/
|
29
|
-
const arrSplit = psidno.match(reg)
|
30
|
-
// 15位号码在年份前补 19 或 20
|
31
|
-
const year = Number(arrSplit[2].charAt(0)) > 0 ? '19' + arrSplit[2] : '20' + arrSplit[2]
|
32
|
-
const month = arrSplit[3]
|
33
|
-
const day = arrSplit[4]
|
34
|
-
if (!validateBirthday(year, month, day)) {
|
35
|
-
return false
|
36
|
-
}
|
37
|
-
} else if (psidno.length === 18) {
|
38
|
-
// 18位号码 省(2位)市(2位)县(2位)年(4位)月(2位)日(2位)校验码(4位)
|
39
|
-
const reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/
|
40
|
-
const arrSplit = psidno.match(reg)
|
41
|
-
const year = arrSplit[2]
|
42
|
-
const month = arrSplit[3]
|
43
|
-
const day = arrSplit[4]
|
44
|
-
if (!validateBirthday(year, month, day)) {
|
45
|
-
return false
|
46
|
-
}
|
47
|
-
} else {
|
48
|
-
return false
|
49
|
-
}
|
50
|
-
// 校验出生日期是否合理
|
51
|
-
function validateBirthday (year, month, day) {
|
52
|
-
year = Number(year) // 年
|
53
|
-
month = Number(month) // 月
|
54
|
-
day = Number(day) // 日
|
55
|
-
const nowTime = new Date().getTime() // 当前时间戳
|
56
|
-
const birthTime = new Date(`${year}-${month}-${day}`).getTime() // 获取出生日期的时间戳
|
57
|
-
// 不能是明天出生的吧
|
58
|
-
if (birthTime > nowTime) {
|
59
|
-
return false
|
60
|
-
}
|
61
|
-
// 一般人活不到150岁吧
|
62
|
-
const nowYear = new Date().getFullYear()
|
63
|
-
if ((nowYear - year) > 150) {
|
64
|
-
return false
|
65
|
-
}
|
66
|
-
// 不能是13月出生的吧
|
67
|
-
if (month < 1 || month > 12) {
|
68
|
-
return false
|
69
|
-
}
|
70
|
-
// 不能是2月30号、4月31号、5月32号出生的吧
|
71
|
-
const date = new Date(year, month, 0) // 获取当月的最后一天
|
72
|
-
if (day < 1 || day > date.getDate()) {
|
73
|
-
return false
|
74
|
-
}
|
75
|
-
return true
|
76
|
-
}
|
77
|
-
// 4.18位号码校验生成的校验码
|
78
|
-
if (psidno.length === 18) {
|
79
|
-
const Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 加权因子
|
80
|
-
const parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] // 校验码
|
81
|
-
let sum = 0
|
82
|
-
for (let i = 0; i < 17; i++) {
|
83
|
-
sum += Number(psidno.charAt(i)) * Wi[i]
|
84
|
-
}
|
85
|
-
if (parity[sum % 11] !== psidno[17]) {
|
86
|
-
return false
|
87
|
-
}
|
88
|
-
}
|
89
|
-
return true
|
90
|
-
}
|
91
|
-
/** 座机号 */
|
92
|
-
export const REG_LANDLINE = /\d{3}-\d{8}|\d{4}-\d{7}/
|
93
|
-
|
94
|
-
/** 营业执照 */
|
95
|
-
export const REG_BUSINESS_LICENSE = /^[0-9a-zA-Z]{15}$/
|
1
|
+
/** 手机号 */
|
2
|
+
export const REG_PHONE =
|
3
|
+
/^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/
|
4
|
+
|
5
|
+
/** 邮箱 */
|
6
|
+
export const REG_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
|
7
|
+
|
8
|
+
/** url */
|
9
|
+
export const REG_URL =
|
10
|
+
/(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/
|
11
|
+
|
12
|
+
/** 身份证号校验 */
|
13
|
+
export function checkIdNumber (value) {
|
14
|
+
const psidno = String(value)
|
15
|
+
// 1.校验身份证号格式和长度
|
16
|
+
const regPsidno = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/
|
17
|
+
if (!regPsidno.test(psidno)) {
|
18
|
+
return false
|
19
|
+
}
|
20
|
+
// 2.校验前两位的省份编码是否正确
|
21
|
+
const province = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', 23: '黑龙江 ', 31: '上海', 32: '江苏', 33: '浙江', 34: '安徽', 35: '福建', 36: '江西', 37: '山东', 41: '河南', 42: '湖北 ', 43: '湖南', 44: '广东', 45: '广西', 46: '海南', 50: '重庆', 51: '四川', 52: '贵州', 53: '云南', 54: '西藏 ', 61: '陕西', 62: '甘肃', 63: '青海', 64: '宁夏', 65: '新疆', 71: '台湾', 81: '香港', 82: '澳门', 91: '国外' }
|
22
|
+
if (!province[Number(psidno.slice(0, 2))]) {
|
23
|
+
return false
|
24
|
+
}
|
25
|
+
// 3.校验出生日期
|
26
|
+
if (psidno.length === 15) {
|
27
|
+
// 15位号码 省(2位)市(2位)县(2位)年(2位)月(2位)日(2位)校验码(3位)
|
28
|
+
const reg = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/
|
29
|
+
const arrSplit = psidno.match(reg)
|
30
|
+
// 15位号码在年份前补 19 或 20
|
31
|
+
const year = Number(arrSplit[2].charAt(0)) > 0 ? '19' + arrSplit[2] : '20' + arrSplit[2]
|
32
|
+
const month = arrSplit[3]
|
33
|
+
const day = arrSplit[4]
|
34
|
+
if (!validateBirthday(year, month, day)) {
|
35
|
+
return false
|
36
|
+
}
|
37
|
+
} else if (psidno.length === 18) {
|
38
|
+
// 18位号码 省(2位)市(2位)县(2位)年(4位)月(2位)日(2位)校验码(4位)
|
39
|
+
const reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/
|
40
|
+
const arrSplit = psidno.match(reg)
|
41
|
+
const year = arrSplit[2]
|
42
|
+
const month = arrSplit[3]
|
43
|
+
const day = arrSplit[4]
|
44
|
+
if (!validateBirthday(year, month, day)) {
|
45
|
+
return false
|
46
|
+
}
|
47
|
+
} else {
|
48
|
+
return false
|
49
|
+
}
|
50
|
+
// 校验出生日期是否合理
|
51
|
+
function validateBirthday (year, month, day) {
|
52
|
+
year = Number(year) // 年
|
53
|
+
month = Number(month) // 月
|
54
|
+
day = Number(day) // 日
|
55
|
+
const nowTime = new Date().getTime() // 当前时间戳
|
56
|
+
const birthTime = new Date(`${year}-${month}-${day}`).getTime() // 获取出生日期的时间戳
|
57
|
+
// 不能是明天出生的吧
|
58
|
+
if (birthTime > nowTime) {
|
59
|
+
return false
|
60
|
+
}
|
61
|
+
// 一般人活不到150岁吧
|
62
|
+
const nowYear = new Date().getFullYear()
|
63
|
+
if ((nowYear - year) > 150) {
|
64
|
+
return false
|
65
|
+
}
|
66
|
+
// 不能是13月出生的吧
|
67
|
+
if (month < 1 || month > 12) {
|
68
|
+
return false
|
69
|
+
}
|
70
|
+
// 不能是2月30号、4月31号、5月32号出生的吧
|
71
|
+
const date = new Date(year, month, 0) // 获取当月的最后一天
|
72
|
+
if (day < 1 || day > date.getDate()) {
|
73
|
+
return false
|
74
|
+
}
|
75
|
+
return true
|
76
|
+
}
|
77
|
+
// 4.18位号码校验生成的校验码
|
78
|
+
if (psidno.length === 18) {
|
79
|
+
const Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 加权因子
|
80
|
+
const parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] // 校验码
|
81
|
+
let sum = 0
|
82
|
+
for (let i = 0; i < 17; i++) {
|
83
|
+
sum += Number(psidno.charAt(i)) * Wi[i]
|
84
|
+
}
|
85
|
+
if (parity[sum % 11] !== psidno[17]) {
|
86
|
+
return false
|
87
|
+
}
|
88
|
+
}
|
89
|
+
return true
|
90
|
+
}
|
91
|
+
/** 座机号 */
|
92
|
+
export const REG_LANDLINE = /\d{3}-\d{8}|\d{4}-\d{7}/
|
93
|
+
|
94
|
+
/** 营业执照 */
|
95
|
+
export const REG_BUSINESS_LICENSE = /^[0-9a-zA-Z]{15}$/
|
@@ -1,14 +1,14 @@
|
|
1
|
-
export function executeStrFunction (funcString, args) {
|
2
|
-
// 使用 eval 执行传入的函数字符串
|
3
|
-
// eslint-disable-next-line no-eval
|
4
|
-
return eval(`(${funcString})`)(...args)
|
5
|
-
}
|
6
|
-
|
7
|
-
export function executeStrFunctionByContext (context, fnStr, args) {
|
8
|
-
// 使用 new Function 创建函数,并绑定 context 作为 this
|
9
|
-
// eslint-disable-next-line no-eval,no-new-func
|
10
|
-
const fn = new Function(`return (${fnStr});`)()
|
11
|
-
|
12
|
-
// 使用 bind 绑定 context,并立即调用
|
13
|
-
return fn.bind(context)(...args)
|
14
|
-
}
|
1
|
+
export function executeStrFunction (funcString, args) {
|
2
|
+
// 使用 eval 执行传入的函数字符串
|
3
|
+
// eslint-disable-next-line no-eval
|
4
|
+
return eval(`(${funcString})`)(...args)
|
5
|
+
}
|
6
|
+
|
7
|
+
export function executeStrFunctionByContext (context, fnStr, args) {
|
8
|
+
// 使用 new Function 创建函数,并绑定 context 作为 this
|
9
|
+
// eslint-disable-next-line no-eval,no-new-func
|
10
|
+
const fn = new Function(`return (${fnStr});`)()
|
11
|
+
|
12
|
+
// 使用 bind 绑定 context,并立即调用
|
13
|
+
return fn.bind(context)(...args)
|
14
|
+
}
|
@@ -1,92 +1,92 @@
|
|
1
|
-
const { cssResolve } = require('../config/replacer')
|
2
|
-
// 修正 webpack-theme-color-replacer 插件提取的 css 结果
|
3
|
-
function resolveCss (output, srcArr) {
|
4
|
-
const regExps = []
|
5
|
-
// 提取 resolve 配置中所有的正则配置
|
6
|
-
Object.keys(cssResolve).forEach(key => {
|
7
|
-
let isRegExp
|
8
|
-
let reg = {}
|
9
|
-
try {
|
10
|
-
// eslint-disable-next-line no-eval
|
11
|
-
reg = eval(key)
|
12
|
-
isRegExp = reg instanceof RegExp
|
13
|
-
} catch (e) {
|
14
|
-
isRegExp = false
|
15
|
-
}
|
16
|
-
if (isRegExp) {
|
17
|
-
regExps.push([reg, cssResolve[key]])
|
18
|
-
}
|
19
|
-
})
|
20
|
-
|
21
|
-
// 去重
|
22
|
-
srcArr = dropDuplicate(srcArr)
|
23
|
-
|
24
|
-
// 处理 css
|
25
|
-
const outArr = []
|
26
|
-
srcArr.forEach(text => {
|
27
|
-
// 转换为 css 对象
|
28
|
-
const cssObj = parseCssObj(text)
|
29
|
-
// 根据selector匹配配置,匹配成功,则按配置处理 css
|
30
|
-
if (cssResolve[cssObj.selector] !== undefined) {
|
31
|
-
const cfg = cssResolve[cssObj.selector]
|
32
|
-
if (cfg) {
|
33
|
-
outArr.push(cfg.resolve(text, cssObj))
|
34
|
-
}
|
35
|
-
} else {
|
36
|
-
let cssText = ''
|
37
|
-
// 匹配不成功,则测试是否有匹配的正则配置,有则按正则对应的配置处理
|
38
|
-
for (const regExp of regExps) {
|
39
|
-
if (regExp[0].test(cssObj.selector)) {
|
40
|
-
const cssCfg = regExp[1]
|
41
|
-
cssText = cssCfg ? cssCfg.resolve(text, cssObj) : ''
|
42
|
-
break
|
43
|
-
}
|
44
|
-
// 未匹配到正则,则设置 cssText 为默认的 css(即不处理)
|
45
|
-
cssText = text
|
46
|
-
}
|
47
|
-
if (cssText !== '') {
|
48
|
-
outArr.push(cssText)
|
49
|
-
}
|
50
|
-
}
|
51
|
-
})
|
52
|
-
output = outArr.join('\n')
|
53
|
-
return output
|
54
|
-
}
|
55
|
-
|
56
|
-
// 数组去重
|
57
|
-
function dropDuplicate (arr) {
|
58
|
-
const map = {}
|
59
|
-
const r = []
|
60
|
-
for (const s of arr) {
|
61
|
-
if (!map[s]) {
|
62
|
-
r.push(s)
|
63
|
-
map[s] = 1
|
64
|
-
}
|
65
|
-
}
|
66
|
-
return r
|
67
|
-
}
|
68
|
-
|
69
|
-
/**
|
70
|
-
* 从字符串解析 css 对象
|
71
|
-
* @param cssText
|
72
|
-
* @returns {{
|
73
|
-
* name: String,
|
74
|
-
* rules: Array[String],
|
75
|
-
* toText: function
|
76
|
-
* }}
|
77
|
-
*/
|
78
|
-
function parseCssObj (cssText) {
|
79
|
-
const css = {}
|
80
|
-
const ruleIndex = cssText.indexOf('{')
|
81
|
-
css.selector = cssText.substring(0, ruleIndex)
|
82
|
-
const ruleBody = cssText.substring(ruleIndex + 1, cssText.length - 1)
|
83
|
-
css.rules = ruleBody.split(';')
|
84
|
-
css.toText = function () {
|
85
|
-
let body = ''
|
86
|
-
this.rules.forEach(item => { body += item + ';' })
|
87
|
-
return `${this.selector}{${body}}`
|
88
|
-
}
|
89
|
-
return css
|
90
|
-
}
|
91
|
-
|
92
|
-
module.exports = { resolveCss }
|
1
|
+
const { cssResolve } = require('../config/replacer')
|
2
|
+
// 修正 webpack-theme-color-replacer 插件提取的 css 结果
|
3
|
+
function resolveCss (output, srcArr) {
|
4
|
+
const regExps = []
|
5
|
+
// 提取 resolve 配置中所有的正则配置
|
6
|
+
Object.keys(cssResolve).forEach(key => {
|
7
|
+
let isRegExp
|
8
|
+
let reg = {}
|
9
|
+
try {
|
10
|
+
// eslint-disable-next-line no-eval
|
11
|
+
reg = eval(key)
|
12
|
+
isRegExp = reg instanceof RegExp
|
13
|
+
} catch (e) {
|
14
|
+
isRegExp = false
|
15
|
+
}
|
16
|
+
if (isRegExp) {
|
17
|
+
regExps.push([reg, cssResolve[key]])
|
18
|
+
}
|
19
|
+
})
|
20
|
+
|
21
|
+
// 去重
|
22
|
+
srcArr = dropDuplicate(srcArr)
|
23
|
+
|
24
|
+
// 处理 css
|
25
|
+
const outArr = []
|
26
|
+
srcArr.forEach(text => {
|
27
|
+
// 转换为 css 对象
|
28
|
+
const cssObj = parseCssObj(text)
|
29
|
+
// 根据selector匹配配置,匹配成功,则按配置处理 css
|
30
|
+
if (cssResolve[cssObj.selector] !== undefined) {
|
31
|
+
const cfg = cssResolve[cssObj.selector]
|
32
|
+
if (cfg) {
|
33
|
+
outArr.push(cfg.resolve(text, cssObj))
|
34
|
+
}
|
35
|
+
} else {
|
36
|
+
let cssText = ''
|
37
|
+
// 匹配不成功,则测试是否有匹配的正则配置,有则按正则对应的配置处理
|
38
|
+
for (const regExp of regExps) {
|
39
|
+
if (regExp[0].test(cssObj.selector)) {
|
40
|
+
const cssCfg = regExp[1]
|
41
|
+
cssText = cssCfg ? cssCfg.resolve(text, cssObj) : ''
|
42
|
+
break
|
43
|
+
}
|
44
|
+
// 未匹配到正则,则设置 cssText 为默认的 css(即不处理)
|
45
|
+
cssText = text
|
46
|
+
}
|
47
|
+
if (cssText !== '') {
|
48
|
+
outArr.push(cssText)
|
49
|
+
}
|
50
|
+
}
|
51
|
+
})
|
52
|
+
output = outArr.join('\n')
|
53
|
+
return output
|
54
|
+
}
|
55
|
+
|
56
|
+
// 数组去重
|
57
|
+
function dropDuplicate (arr) {
|
58
|
+
const map = {}
|
59
|
+
const r = []
|
60
|
+
for (const s of arr) {
|
61
|
+
if (!map[s]) {
|
62
|
+
r.push(s)
|
63
|
+
map[s] = 1
|
64
|
+
}
|
65
|
+
}
|
66
|
+
return r
|
67
|
+
}
|
68
|
+
|
69
|
+
/**
|
70
|
+
* 从字符串解析 css 对象
|
71
|
+
* @param cssText
|
72
|
+
* @returns {{
|
73
|
+
* name: String,
|
74
|
+
* rules: Array[String],
|
75
|
+
* toText: function
|
76
|
+
* }}
|
77
|
+
*/
|
78
|
+
function parseCssObj (cssText) {
|
79
|
+
const css = {}
|
80
|
+
const ruleIndex = cssText.indexOf('{')
|
81
|
+
css.selector = cssText.substring(0, ruleIndex)
|
82
|
+
const ruleBody = cssText.substring(ruleIndex + 1, cssText.length - 1)
|
83
|
+
css.rules = ruleBody.split(';')
|
84
|
+
css.toText = function () {
|
85
|
+
let body = ''
|
86
|
+
this.rules.forEach(item => { body += item + ';' })
|
87
|
+
return `${this.selector}{${body}}`
|
88
|
+
}
|
89
|
+
return css
|
90
|
+
}
|
91
|
+
|
92
|
+
module.exports = { resolveCss }
|