vue2-client 1.16.20 → 1.16.22
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 +1 -1
- 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/paymentMethod/icon1.png +0 -0
- package/src/assets/img/paymentMethod/icon2.png +0 -0
- package/src/assets/img/paymentMethod/icon3.png +0 -0
- package/src/assets/img/paymentMethod/icon4.png +0 -0
- package/src/assets/img/paymentMethod/icon5.png +0 -0
- package/src/assets/img/paymentMethod/icon6.png +0 -0
- 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/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/HAddNativeForm/HAddNativeForm.vue +17 -5
- 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/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/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/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/XCharge/testConfig.js +149 -0
- package/src/base-client/components/his/XHisEditor/index.js +3 -3
- package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +0 -11
- 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/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/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/async/router.map.js +2 -1
- 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 +347 -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,373 +1,373 @@
|
|
1
|
-
// eslint-disable-next-line no-unused-vars
|
2
|
-
import * as registeredConfig from './registerComponentForEditor'
|
3
|
-
import { nanoid } from 'nanoid'
|
4
|
-
|
5
|
-
// 随机id去除特定字符
|
6
|
-
export function nanoidWithoutSymbol (size, without = '_') {
|
7
|
-
let result = nanoid(size)
|
8
|
-
while (result.includes(without)) {
|
9
|
-
result = nanoid(size)
|
10
|
-
}
|
11
|
-
return result
|
12
|
-
}
|
13
|
-
|
14
|
-
// 根据id获取组件定义的配置(在ForEditor中注册的配置)
|
15
|
-
export function getEditorConfigById (componentId, config) {
|
16
|
-
if (config.page) {
|
17
|
-
config = config.page
|
18
|
-
}
|
19
|
-
const target = getComponentConfig(componentId, config)
|
20
|
-
return getEditorConfigByType(target.type)
|
21
|
-
}
|
22
|
-
|
23
|
-
// 根据类型获取组件定义的配置(在ForEditor中注册的配置)
|
24
|
-
export function getEditorConfigByType (componentType) {
|
25
|
-
let result
|
26
|
-
const registeredConfigKeys = Object.keys(registeredConfig)
|
27
|
-
registeredConfigKeys.forEach(key => {
|
28
|
-
if (registeredConfig[key].type === componentType) {
|
29
|
-
result = registeredConfig[key]
|
30
|
-
}
|
31
|
-
})
|
32
|
-
return JSON.parse(JSON.stringify(result))
|
33
|
-
}
|
34
|
-
|
35
|
-
// 根据组件的id获取页面容器
|
36
|
-
export function getPageByComponentID (id, config) {
|
37
|
-
for (let i = 0; i < config.page.length; i++) {
|
38
|
-
const page = config.page[i]
|
39
|
-
for (let j = 0; j < page.body.length; j++) {
|
40
|
-
const row = page.body[j]
|
41
|
-
for (let k = 0; k < row.body.length; k++) {
|
42
|
-
const item = row.body[k]
|
43
|
-
if (item.type === 'container_page') {
|
44
|
-
const result = getPageByComponentID(id, item)
|
45
|
-
if (result) {
|
46
|
-
return result
|
47
|
-
}
|
48
|
-
}
|
49
|
-
if (item.id === id) {
|
50
|
-
return page
|
51
|
-
}
|
52
|
-
}
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
56
|
-
|
57
|
-
// 根据组件id获取当前行
|
58
|
-
export function getRowByComponentId (id, config) {
|
59
|
-
for (let i = 0; i < config.page.length; i++) {
|
60
|
-
const page = config.page[i]
|
61
|
-
for (let j = 0; j < page.body.length; j++) {
|
62
|
-
const row = page.body[j]
|
63
|
-
for (let k = 0; k < row.body.length; k++) {
|
64
|
-
const item = row.body[k]
|
65
|
-
if (item.type === 'container_page') {
|
66
|
-
const result = getRowByComponentId(id, item)
|
67
|
-
if (result) {
|
68
|
-
return result
|
69
|
-
}
|
70
|
-
}
|
71
|
-
if (item.id === id) {
|
72
|
-
return row
|
73
|
-
}
|
74
|
-
}
|
75
|
-
}
|
76
|
-
}
|
77
|
-
}
|
78
|
-
|
79
|
-
// 解析页面容器类型为中文
|
80
|
-
export function resolvePageType (type) {
|
81
|
-
switch (type) {
|
82
|
-
case 'page':
|
83
|
-
return '页面'
|
84
|
-
case 'modal':
|
85
|
-
return '弹框'
|
86
|
-
case 'draw':
|
87
|
-
return '抽屉'
|
88
|
-
}
|
89
|
-
}
|
90
|
-
|
91
|
-
// 根据id获取配置
|
92
|
-
export function getComponentConfig (componentId, config) {
|
93
|
-
if (config.page) {
|
94
|
-
config = config.page
|
95
|
-
}
|
96
|
-
|
97
|
-
for (let i = 0; i < config.length; i++) {
|
98
|
-
for (let j = 0; j < config[i].body.length; j++) {
|
99
|
-
const row = config[i].body[j]
|
100
|
-
for (let k = 0; k < row.body.length; k++) {
|
101
|
-
const item = row.body[k]
|
102
|
-
if (item.id === componentId) {
|
103
|
-
return item
|
104
|
-
}
|
105
|
-
if (item.type === 'container_page') {
|
106
|
-
const result = getComponentConfig(componentId, item)
|
107
|
-
if (result) {
|
108
|
-
return result
|
109
|
-
}
|
110
|
-
}
|
111
|
-
}
|
112
|
-
}
|
113
|
-
}
|
114
|
-
}
|
115
|
-
|
116
|
-
// 根据ID获取页面容器
|
117
|
-
export function getPageConfigById (id, config) {
|
118
|
-
for (let i = 0; i < config.page.length; i++) {
|
119
|
-
const page = config.page[i]
|
120
|
-
if (page.id === id) {
|
121
|
-
return page
|
122
|
-
}
|
123
|
-
for (let j = 0; j < page.body.length; j++) {
|
124
|
-
const row = page.body[j]
|
125
|
-
for (let k = 0; k < row.body.length; k++) {
|
126
|
-
const item = row.body[k]
|
127
|
-
if (item.type === 'container_page') {
|
128
|
-
const result = getPageConfigById(id, item)
|
129
|
-
if (result) {
|
130
|
-
return result
|
131
|
-
}
|
132
|
-
}
|
133
|
-
}
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
137
|
-
|
138
|
-
// 获取容器页面外层容器
|
139
|
-
export function getContainerPageOuterByContainerPageId (id, config) {
|
140
|
-
for (let i = 0; i < config.page.length; i++) {
|
141
|
-
const page = config.page[i]
|
142
|
-
if (page.id === id) {
|
143
|
-
return config
|
144
|
-
}
|
145
|
-
for (let j = 0; j < page.body.length; j++) {
|
146
|
-
const row = page.body[j]
|
147
|
-
for (let k = 0; k < row.body.length; k++) {
|
148
|
-
const item = row.body[k]
|
149
|
-
if (item.type === 'container_page') {
|
150
|
-
const result = getContainerPageOuterByContainerPageId(id, item)
|
151
|
-
if (result) {
|
152
|
-
return result
|
153
|
-
}
|
154
|
-
}
|
155
|
-
}
|
156
|
-
}
|
157
|
-
}
|
158
|
-
}
|
159
|
-
|
160
|
-
// 根据组件ID获取行
|
161
|
-
export function getRowConfigByComponentId (id, config) {
|
162
|
-
for (let i = 0; i < config.page.length; i++) {
|
163
|
-
for (let j = 0; j < config.page[i].body.length; j++) {
|
164
|
-
const row = config.page[i].body[j]
|
165
|
-
for (let k = 0; k < row.body.length; k++) {
|
166
|
-
const item = row.body[k]
|
167
|
-
if (item.id === id) {
|
168
|
-
return row
|
169
|
-
}
|
170
|
-
if (item.type === 'container_page') {
|
171
|
-
const result = getRowConfigByComponentId(id, item)
|
172
|
-
if (result) {
|
173
|
-
return result
|
174
|
-
}
|
175
|
-
}
|
176
|
-
}
|
177
|
-
}
|
178
|
-
}
|
179
|
-
}
|
180
|
-
|
181
|
-
// 根据容器页面ID获取外侧行
|
182
|
-
export function getContainerPageRow (id, config) {
|
183
|
-
for (let i = 0; i < config.page.length; i++) {
|
184
|
-
const page = config.page[i]
|
185
|
-
if (page.id === id) {
|
186
|
-
return true
|
187
|
-
}
|
188
|
-
for (let j = 0; j < page.body.length; j++) {
|
189
|
-
const row = page.body[j]
|
190
|
-
for (let k = 0; k < row.body.length; k++) {
|
191
|
-
const item = row.body[k]
|
192
|
-
if (item.type === 'container_page') {
|
193
|
-
const result = getContainerPageRow(id, item)
|
194
|
-
if (result) {
|
195
|
-
return row
|
196
|
-
}
|
197
|
-
}
|
198
|
-
}
|
199
|
-
}
|
200
|
-
}
|
201
|
-
}
|
202
|
-
|
203
|
-
// 根据组件ID获取组件在行中index
|
204
|
-
export function getComponentInRowIndex (id, config) {
|
205
|
-
for (let i = 0; i < config.page.length; i++) {
|
206
|
-
for (let j = 0; j < config.page[i].body.length; j++) {
|
207
|
-
const row = config.page[i].body[j]
|
208
|
-
for (let k = 0; k < row.body.length; k++) {
|
209
|
-
const item = row.body[k]
|
210
|
-
if (item.id === id) {
|
211
|
-
return k
|
212
|
-
}
|
213
|
-
if (item.type === 'container_page') {
|
214
|
-
const result = getComponentInRowIndex(id, item)
|
215
|
-
if (result) {
|
216
|
-
return result
|
217
|
-
}
|
218
|
-
}
|
219
|
-
}
|
220
|
-
}
|
221
|
-
}
|
222
|
-
}
|
223
|
-
|
224
|
-
// 根据行ID获取行
|
225
|
-
export function getRowConfigById (id, config) {
|
226
|
-
const lastIndex = id.lastIndexOf('_')
|
227
|
-
const rowIndex = id.substring(lastIndex + 1)
|
228
|
-
const pageId = id.substring(0, lastIndex)
|
229
|
-
const page = getPageConfigById(pageId, config)
|
230
|
-
let result = page.body[rowIndex]
|
231
|
-
if (result === undefined) {
|
232
|
-
config.page.forEach(page => {
|
233
|
-
page.body.forEach(row => {
|
234
|
-
row.body.forEach(item => {
|
235
|
-
if (item.type === 'container_page') {
|
236
|
-
result = getRowConfigById(id, item)
|
237
|
-
if (result) {
|
238
|
-
return result
|
239
|
-
}
|
240
|
-
}
|
241
|
-
})
|
242
|
-
})
|
243
|
-
})
|
244
|
-
} else {
|
245
|
-
return result
|
246
|
-
}
|
247
|
-
}
|
248
|
-
|
249
|
-
// 根据id获取配置,根据id的长度自动判断类型
|
250
|
-
export function getConfig (id, config) {
|
251
|
-
let result
|
252
|
-
if ((id.startsWith('page') && id.length <= 11) || (id.startsWith('container_page') && id.length <= 17)) {
|
253
|
-
// page
|
254
|
-
result = getPageConfigById(id, config)
|
255
|
-
} else if ((id.startsWith('page') && id.length > 11) || (id.startsWith('container_page') && id.length > 17)) {
|
256
|
-
// row
|
257
|
-
result = getRowConfigById(id, config)
|
258
|
-
} else {
|
259
|
-
// component
|
260
|
-
result = getComponentConfig(id, config)
|
261
|
-
}
|
262
|
-
return result
|
263
|
-
}
|
264
|
-
|
265
|
-
// 取消选择所有容器
|
266
|
-
export function unCheckAll (config) {
|
267
|
-
config.page.forEach(page => {
|
268
|
-
page.body.forEach(row => {
|
269
|
-
row.body.forEach(item => {
|
270
|
-
if (item.type !== 'container_page') {
|
271
|
-
item.selected = false
|
272
|
-
} else {
|
273
|
-
unCheckAll(item)
|
274
|
-
}
|
275
|
-
})
|
276
|
-
})
|
277
|
-
})
|
278
|
-
}
|
279
|
-
|
280
|
-
// 取消选择所有容器
|
281
|
-
export function checkRowAll (row, config = undefined) {
|
282
|
-
if (config) {
|
283
|
-
unCheckAll(config)
|
284
|
-
}
|
285
|
-
row.body.forEach(item => {
|
286
|
-
if (item.type === 'container') {
|
287
|
-
item.selected = true
|
288
|
-
} else if (item.type === 'container_page') {
|
289
|
-
item.page.forEach(page => {
|
290
|
-
page.body.forEach(subRow => {
|
291
|
-
checkRowAll(subRow)
|
292
|
-
})
|
293
|
-
})
|
294
|
-
}
|
295
|
-
})
|
296
|
-
}
|
297
|
-
|
298
|
-
// 根据组件id获取它的name,如果没有name则返回id
|
299
|
-
export function getComponentNameById (id, config) {
|
300
|
-
const targetConfig = getComponentConfig(id, config)
|
301
|
-
if (targetConfig.name) {
|
302
|
-
return targetConfig.name
|
303
|
-
} else {
|
304
|
-
return targetConfig.id
|
305
|
-
}
|
306
|
-
}
|
307
|
-
|
308
|
-
// 重新随机容器下所有子项目的ID
|
309
|
-
export function reRandomComponentId (config) {
|
310
|
-
config.page.forEach(page => {
|
311
|
-
const pagePrefix = getIdPrefix(page.id)
|
312
|
-
const pageNewId = pagePrefix + '_' + nanoidWithoutSymbol(2)
|
313
|
-
page.id = pageNewId
|
314
|
-
for (let i = 0; i < page.body.length; i++) {
|
315
|
-
const row = page.body[i]
|
316
|
-
row.id = pageNewId + '_' + i
|
317
|
-
row.body.forEach(item => {
|
318
|
-
const itemPrefix = getIdPrefix(item.id)
|
319
|
-
item.id = itemPrefix + '_' + nanoidWithoutSymbol(6)
|
320
|
-
})
|
321
|
-
}
|
322
|
-
})
|
323
|
-
return config
|
324
|
-
}
|
325
|
-
|
326
|
-
// 获取id前传
|
327
|
-
export function getIdPrefix (id) {
|
328
|
-
const lastIndex = id.lastIndexOf('_')
|
329
|
-
return id.substring(0, lastIndex)
|
330
|
-
}
|
331
|
-
|
332
|
-
// 根据rowID获取row
|
333
|
-
export function getRowByRowId (pageId, rowIndex, config) {
|
334
|
-
for (let i = 0; i < config.page.length; i++) {
|
335
|
-
const page = config.page[i]
|
336
|
-
if (page.id === pageId) {
|
337
|
-
return page.body[rowIndex]
|
338
|
-
}
|
339
|
-
for (let j = 0; j < page.body.length; j++) {
|
340
|
-
const row = page.body[j]
|
341
|
-
for (let k = 0; k < row.body.length; k++) {
|
342
|
-
const item = row.body[k]
|
343
|
-
if (item.type === 'container_page') {
|
344
|
-
const result = getRowByRowId(pageId, rowIndex, item)
|
345
|
-
if (result) {
|
346
|
-
return result
|
347
|
-
}
|
348
|
-
}
|
349
|
-
}
|
350
|
-
}
|
351
|
-
}
|
352
|
-
}
|
353
|
-
|
354
|
-
// 根据行id,返回pageId和rowIndex
|
355
|
-
export function getPageIdAndRowIndexByRowId (rowId) {
|
356
|
-
const lastIndex = rowId.lastIndexOf('_')
|
357
|
-
const pageId = rowId.substring(0, lastIndex)
|
358
|
-
const rowIndex = rowId.substring(lastIndex + 1)
|
359
|
-
return {
|
360
|
-
pageId: pageId,
|
361
|
-
rowIndex: rowIndex
|
362
|
-
}
|
363
|
-
}
|
364
|
-
|
365
|
-
// 返回一个容器
|
366
|
-
export function newContainer (span = 24, selected = false) {
|
367
|
-
return {
|
368
|
-
type: 'container',
|
369
|
-
selected: selected,
|
370
|
-
span: span,
|
371
|
-
id: 'container_' + nanoidWithoutSymbol(6)
|
372
|
-
}
|
373
|
-
}
|
1
|
+
// eslint-disable-next-line no-unused-vars
|
2
|
+
import * as registeredConfig from './registerComponentForEditor'
|
3
|
+
import { nanoid } from 'nanoid'
|
4
|
+
|
5
|
+
// 随机id去除特定字符
|
6
|
+
export function nanoidWithoutSymbol (size, without = '_') {
|
7
|
+
let result = nanoid(size)
|
8
|
+
while (result.includes(without)) {
|
9
|
+
result = nanoid(size)
|
10
|
+
}
|
11
|
+
return result
|
12
|
+
}
|
13
|
+
|
14
|
+
// 根据id获取组件定义的配置(在ForEditor中注册的配置)
|
15
|
+
export function getEditorConfigById (componentId, config) {
|
16
|
+
if (config.page) {
|
17
|
+
config = config.page
|
18
|
+
}
|
19
|
+
const target = getComponentConfig(componentId, config)
|
20
|
+
return getEditorConfigByType(target.type)
|
21
|
+
}
|
22
|
+
|
23
|
+
// 根据类型获取组件定义的配置(在ForEditor中注册的配置)
|
24
|
+
export function getEditorConfigByType (componentType) {
|
25
|
+
let result
|
26
|
+
const registeredConfigKeys = Object.keys(registeredConfig)
|
27
|
+
registeredConfigKeys.forEach(key => {
|
28
|
+
if (registeredConfig[key].type === componentType) {
|
29
|
+
result = registeredConfig[key]
|
30
|
+
}
|
31
|
+
})
|
32
|
+
return JSON.parse(JSON.stringify(result))
|
33
|
+
}
|
34
|
+
|
35
|
+
// 根据组件的id获取页面容器
|
36
|
+
export function getPageByComponentID (id, config) {
|
37
|
+
for (let i = 0; i < config.page.length; i++) {
|
38
|
+
const page = config.page[i]
|
39
|
+
for (let j = 0; j < page.body.length; j++) {
|
40
|
+
const row = page.body[j]
|
41
|
+
for (let k = 0; k < row.body.length; k++) {
|
42
|
+
const item = row.body[k]
|
43
|
+
if (item.type === 'container_page') {
|
44
|
+
const result = getPageByComponentID(id, item)
|
45
|
+
if (result) {
|
46
|
+
return result
|
47
|
+
}
|
48
|
+
}
|
49
|
+
if (item.id === id) {
|
50
|
+
return page
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
// 根据组件id获取当前行
|
58
|
+
export function getRowByComponentId (id, config) {
|
59
|
+
for (let i = 0; i < config.page.length; i++) {
|
60
|
+
const page = config.page[i]
|
61
|
+
for (let j = 0; j < page.body.length; j++) {
|
62
|
+
const row = page.body[j]
|
63
|
+
for (let k = 0; k < row.body.length; k++) {
|
64
|
+
const item = row.body[k]
|
65
|
+
if (item.type === 'container_page') {
|
66
|
+
const result = getRowByComponentId(id, item)
|
67
|
+
if (result) {
|
68
|
+
return result
|
69
|
+
}
|
70
|
+
}
|
71
|
+
if (item.id === id) {
|
72
|
+
return row
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
// 解析页面容器类型为中文
|
80
|
+
export function resolvePageType (type) {
|
81
|
+
switch (type) {
|
82
|
+
case 'page':
|
83
|
+
return '页面'
|
84
|
+
case 'modal':
|
85
|
+
return '弹框'
|
86
|
+
case 'draw':
|
87
|
+
return '抽屉'
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
// 根据id获取配置
|
92
|
+
export function getComponentConfig (componentId, config) {
|
93
|
+
if (config.page) {
|
94
|
+
config = config.page
|
95
|
+
}
|
96
|
+
|
97
|
+
for (let i = 0; i < config.length; i++) {
|
98
|
+
for (let j = 0; j < config[i].body.length; j++) {
|
99
|
+
const row = config[i].body[j]
|
100
|
+
for (let k = 0; k < row.body.length; k++) {
|
101
|
+
const item = row.body[k]
|
102
|
+
if (item.id === componentId) {
|
103
|
+
return item
|
104
|
+
}
|
105
|
+
if (item.type === 'container_page') {
|
106
|
+
const result = getComponentConfig(componentId, item)
|
107
|
+
if (result) {
|
108
|
+
return result
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
// 根据ID获取页面容器
|
117
|
+
export function getPageConfigById (id, config) {
|
118
|
+
for (let i = 0; i < config.page.length; i++) {
|
119
|
+
const page = config.page[i]
|
120
|
+
if (page.id === id) {
|
121
|
+
return page
|
122
|
+
}
|
123
|
+
for (let j = 0; j < page.body.length; j++) {
|
124
|
+
const row = page.body[j]
|
125
|
+
for (let k = 0; k < row.body.length; k++) {
|
126
|
+
const item = row.body[k]
|
127
|
+
if (item.type === 'container_page') {
|
128
|
+
const result = getPageConfigById(id, item)
|
129
|
+
if (result) {
|
130
|
+
return result
|
131
|
+
}
|
132
|
+
}
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
// 获取容器页面外层容器
|
139
|
+
export function getContainerPageOuterByContainerPageId (id, config) {
|
140
|
+
for (let i = 0; i < config.page.length; i++) {
|
141
|
+
const page = config.page[i]
|
142
|
+
if (page.id === id) {
|
143
|
+
return config
|
144
|
+
}
|
145
|
+
for (let j = 0; j < page.body.length; j++) {
|
146
|
+
const row = page.body[j]
|
147
|
+
for (let k = 0; k < row.body.length; k++) {
|
148
|
+
const item = row.body[k]
|
149
|
+
if (item.type === 'container_page') {
|
150
|
+
const result = getContainerPageOuterByContainerPageId(id, item)
|
151
|
+
if (result) {
|
152
|
+
return result
|
153
|
+
}
|
154
|
+
}
|
155
|
+
}
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
// 根据组件ID获取行
|
161
|
+
export function getRowConfigByComponentId (id, config) {
|
162
|
+
for (let i = 0; i < config.page.length; i++) {
|
163
|
+
for (let j = 0; j < config.page[i].body.length; j++) {
|
164
|
+
const row = config.page[i].body[j]
|
165
|
+
for (let k = 0; k < row.body.length; k++) {
|
166
|
+
const item = row.body[k]
|
167
|
+
if (item.id === id) {
|
168
|
+
return row
|
169
|
+
}
|
170
|
+
if (item.type === 'container_page') {
|
171
|
+
const result = getRowConfigByComponentId(id, item)
|
172
|
+
if (result) {
|
173
|
+
return result
|
174
|
+
}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
}
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
// 根据容器页面ID获取外侧行
|
182
|
+
export function getContainerPageRow (id, config) {
|
183
|
+
for (let i = 0; i < config.page.length; i++) {
|
184
|
+
const page = config.page[i]
|
185
|
+
if (page.id === id) {
|
186
|
+
return true
|
187
|
+
}
|
188
|
+
for (let j = 0; j < page.body.length; j++) {
|
189
|
+
const row = page.body[j]
|
190
|
+
for (let k = 0; k < row.body.length; k++) {
|
191
|
+
const item = row.body[k]
|
192
|
+
if (item.type === 'container_page') {
|
193
|
+
const result = getContainerPageRow(id, item)
|
194
|
+
if (result) {
|
195
|
+
return row
|
196
|
+
}
|
197
|
+
}
|
198
|
+
}
|
199
|
+
}
|
200
|
+
}
|
201
|
+
}
|
202
|
+
|
203
|
+
// 根据组件ID获取组件在行中index
|
204
|
+
export function getComponentInRowIndex (id, config) {
|
205
|
+
for (let i = 0; i < config.page.length; i++) {
|
206
|
+
for (let j = 0; j < config.page[i].body.length; j++) {
|
207
|
+
const row = config.page[i].body[j]
|
208
|
+
for (let k = 0; k < row.body.length; k++) {
|
209
|
+
const item = row.body[k]
|
210
|
+
if (item.id === id) {
|
211
|
+
return k
|
212
|
+
}
|
213
|
+
if (item.type === 'container_page') {
|
214
|
+
const result = getComponentInRowIndex(id, item)
|
215
|
+
if (result) {
|
216
|
+
return result
|
217
|
+
}
|
218
|
+
}
|
219
|
+
}
|
220
|
+
}
|
221
|
+
}
|
222
|
+
}
|
223
|
+
|
224
|
+
// 根据行ID获取行
|
225
|
+
export function getRowConfigById (id, config) {
|
226
|
+
const lastIndex = id.lastIndexOf('_')
|
227
|
+
const rowIndex = id.substring(lastIndex + 1)
|
228
|
+
const pageId = id.substring(0, lastIndex)
|
229
|
+
const page = getPageConfigById(pageId, config)
|
230
|
+
let result = page.body[rowIndex]
|
231
|
+
if (result === undefined) {
|
232
|
+
config.page.forEach(page => {
|
233
|
+
page.body.forEach(row => {
|
234
|
+
row.body.forEach(item => {
|
235
|
+
if (item.type === 'container_page') {
|
236
|
+
result = getRowConfigById(id, item)
|
237
|
+
if (result) {
|
238
|
+
return result
|
239
|
+
}
|
240
|
+
}
|
241
|
+
})
|
242
|
+
})
|
243
|
+
})
|
244
|
+
} else {
|
245
|
+
return result
|
246
|
+
}
|
247
|
+
}
|
248
|
+
|
249
|
+
// 根据id获取配置,根据id的长度自动判断类型
|
250
|
+
export function getConfig (id, config) {
|
251
|
+
let result
|
252
|
+
if ((id.startsWith('page') && id.length <= 11) || (id.startsWith('container_page') && id.length <= 17)) {
|
253
|
+
// page
|
254
|
+
result = getPageConfigById(id, config)
|
255
|
+
} else if ((id.startsWith('page') && id.length > 11) || (id.startsWith('container_page') && id.length > 17)) {
|
256
|
+
// row
|
257
|
+
result = getRowConfigById(id, config)
|
258
|
+
} else {
|
259
|
+
// component
|
260
|
+
result = getComponentConfig(id, config)
|
261
|
+
}
|
262
|
+
return result
|
263
|
+
}
|
264
|
+
|
265
|
+
// 取消选择所有容器
|
266
|
+
export function unCheckAll (config) {
|
267
|
+
config.page.forEach(page => {
|
268
|
+
page.body.forEach(row => {
|
269
|
+
row.body.forEach(item => {
|
270
|
+
if (item.type !== 'container_page') {
|
271
|
+
item.selected = false
|
272
|
+
} else {
|
273
|
+
unCheckAll(item)
|
274
|
+
}
|
275
|
+
})
|
276
|
+
})
|
277
|
+
})
|
278
|
+
}
|
279
|
+
|
280
|
+
// 取消选择所有容器
|
281
|
+
export function checkRowAll (row, config = undefined) {
|
282
|
+
if (config) {
|
283
|
+
unCheckAll(config)
|
284
|
+
}
|
285
|
+
row.body.forEach(item => {
|
286
|
+
if (item.type === 'container') {
|
287
|
+
item.selected = true
|
288
|
+
} else if (item.type === 'container_page') {
|
289
|
+
item.page.forEach(page => {
|
290
|
+
page.body.forEach(subRow => {
|
291
|
+
checkRowAll(subRow)
|
292
|
+
})
|
293
|
+
})
|
294
|
+
}
|
295
|
+
})
|
296
|
+
}
|
297
|
+
|
298
|
+
// 根据组件id获取它的name,如果没有name则返回id
|
299
|
+
export function getComponentNameById (id, config) {
|
300
|
+
const targetConfig = getComponentConfig(id, config)
|
301
|
+
if (targetConfig.name) {
|
302
|
+
return targetConfig.name
|
303
|
+
} else {
|
304
|
+
return targetConfig.id
|
305
|
+
}
|
306
|
+
}
|
307
|
+
|
308
|
+
// 重新随机容器下所有子项目的ID
|
309
|
+
export function reRandomComponentId (config) {
|
310
|
+
config.page.forEach(page => {
|
311
|
+
const pagePrefix = getIdPrefix(page.id)
|
312
|
+
const pageNewId = pagePrefix + '_' + nanoidWithoutSymbol(2)
|
313
|
+
page.id = pageNewId
|
314
|
+
for (let i = 0; i < page.body.length; i++) {
|
315
|
+
const row = page.body[i]
|
316
|
+
row.id = pageNewId + '_' + i
|
317
|
+
row.body.forEach(item => {
|
318
|
+
const itemPrefix = getIdPrefix(item.id)
|
319
|
+
item.id = itemPrefix + '_' + nanoidWithoutSymbol(6)
|
320
|
+
})
|
321
|
+
}
|
322
|
+
})
|
323
|
+
return config
|
324
|
+
}
|
325
|
+
|
326
|
+
// 获取id前传
|
327
|
+
export function getIdPrefix (id) {
|
328
|
+
const lastIndex = id.lastIndexOf('_')
|
329
|
+
return id.substring(0, lastIndex)
|
330
|
+
}
|
331
|
+
|
332
|
+
// 根据rowID获取row
|
333
|
+
export function getRowByRowId (pageId, rowIndex, config) {
|
334
|
+
for (let i = 0; i < config.page.length; i++) {
|
335
|
+
const page = config.page[i]
|
336
|
+
if (page.id === pageId) {
|
337
|
+
return page.body[rowIndex]
|
338
|
+
}
|
339
|
+
for (let j = 0; j < page.body.length; j++) {
|
340
|
+
const row = page.body[j]
|
341
|
+
for (let k = 0; k < row.body.length; k++) {
|
342
|
+
const item = row.body[k]
|
343
|
+
if (item.type === 'container_page') {
|
344
|
+
const result = getRowByRowId(pageId, rowIndex, item)
|
345
|
+
if (result) {
|
346
|
+
return result
|
347
|
+
}
|
348
|
+
}
|
349
|
+
}
|
350
|
+
}
|
351
|
+
}
|
352
|
+
}
|
353
|
+
|
354
|
+
// 根据行id,返回pageId和rowIndex
|
355
|
+
export function getPageIdAndRowIndexByRowId (rowId) {
|
356
|
+
const lastIndex = rowId.lastIndexOf('_')
|
357
|
+
const pageId = rowId.substring(0, lastIndex)
|
358
|
+
const rowIndex = rowId.substring(lastIndex + 1)
|
359
|
+
return {
|
360
|
+
pageId: pageId,
|
361
|
+
rowIndex: rowIndex
|
362
|
+
}
|
363
|
+
}
|
364
|
+
|
365
|
+
// 返回一个容器
|
366
|
+
export function newContainer (span = 24, selected = false) {
|
367
|
+
return {
|
368
|
+
type: 'container',
|
369
|
+
selected: selected,
|
370
|
+
span: span,
|
371
|
+
id: 'container_' + nanoidWithoutSymbol(6)
|
372
|
+
}
|
373
|
+
}
|