vue2-client 1.15.86 → 1.15.88
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/.editorconfig +9 -9
- package/.env +20 -20
- package/.env.development +1 -1
- package/.env.iot +19 -19
- package/.env.message +19 -19
- package/.env.revenue +19 -19
- package/.env.runtime +19 -19
- package/.eslintrc.json +5 -5
- package/CLAUDE.md +89 -89
- package/README.md +65 -65
- package/babel.config.js +21 -21
- package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +46 -46
- package/docs/notice.md +22 -22
- package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +179 -179
- package/jest.config.js +22 -22
- package/package.json +111 -111
- package/src/App.vue +196 -196
- package/src/ReportView.js +13 -13
- package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +532 -532
- package/src/base-client/components/common/AddressSearchCombobox/index.js +3 -3
- package/src/base-client/components/common/AmapMarker/index.js +3 -3
- package/src/base-client/components/common/CitySelect/CitySelect.vue +376 -376
- package/src/base-client/components/common/CitySelect/demo.vue +43 -43
- package/src/base-client/components/common/ColorPickerCombobox/ColorPickerCombobox.vue +99 -99
- package/src/base-client/components/common/ColorPickerCombobox/demo.vue +34 -34
- package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +146 -146
- package/src/base-client/components/common/JSONToTree/index.js +3 -3
- package/src/base-client/components/common/Upload/Upload.vue +323 -323
- package/src/base-client/components/common/XAddForm/index.js +3 -3
- package/src/base-client/components/common/XAddForm/index.md +61 -61
- package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +1169 -1169
- package/src/base-client/components/common/XAddNativeForm/demo.vue +54 -54
- package/src/base-client/components/common/XAddNativeForm/index.js +3 -3
- package/src/base-client/components/common/XAddReport/XAddReport.vue +212 -212
- package/src/base-client/components/common/XBadge/index.js +3 -3
- package/src/base-client/components/common/XBadge/index.md +39 -39
- package/src/base-client/components/common/XButtons/XButtons.vue +284 -284
- package/src/base-client/components/common/XCalendar/XCalendar.vue +369 -369
- package/src/base-client/components/common/XCalendar/index.md +284 -284
- package/src/base-client/components/common/XCard/index.js +3 -3
- package/src/base-client/components/common/XCard/index.md +43 -43
- package/src/base-client/components/common/XCardSet/XCardSet.vue +300 -300
- package/src/base-client/components/common/XCollapse/XCollapse.vue +354 -354
- package/src/base-client/components/common/XConversation/XConversation.vue +576 -576
- package/src/base-client/components/common/XConversation/XConversationDemo.vue +28 -28
- package/src/base-client/components/common/XDataCard/XDataCard.vue +629 -629
- package/src/base-client/components/common/XDatePicker/index.vue +276 -276
- package/src/base-client/components/common/XDescriptions/XDescriptions.vue +174 -174
- package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +314 -314
- package/src/base-client/components/common/XDescriptions/demo.vue +51 -51
- package/src/base-client/components/common/XForm/XForm.vue +420 -420
- package/src/base-client/components/common/XForm/XFormItem.vue +1474 -1474
- package/src/base-client/components/common/XForm/XTreeSelect.vue +276 -276
- package/src/base-client/components/common/XForm/demo.vue +105 -105
- package/src/base-client/components/common/XForm/index.js +3 -3
- package/src/base-client/components/common/XFormCol/XFormCol.vue +157 -157
- package/src/base-client/components/common/XFormCol/index.js +3 -3
- package/src/base-client/components/common/XFormCol/index.md +35 -35
- package/src/base-client/components/common/XFormGroup/XFormGroup.vue +301 -301
- package/src/base-client/components/common/XFormGroup/demo.vue +41 -41
- package/src/base-client/components/common/XFormTable/XFormTable.vue +938 -938
- package/src/base-client/components/common/XFormTable/demo.vue +87 -87
- package/src/base-client/components/common/XFormTable/index.js +3 -3
- package/src/base-client/components/common/XImportExcel/XImportExcel.vue +174 -174
- package/src/base-client/components/common/XImportExcel/index.js +3 -3
- package/src/base-client/components/common/XImportExcel/index.md +38 -38
- package/src/base-client/components/common/XInput/XInput.vue +128 -128
- package/src/base-client/components/common/XInput/index.js +3 -3
- package/src/base-client/components/common/XInput/index.md +97 -97
- package/src/base-client/components/common/XIntervalPicker/XIntervalPicker.vue +121 -121
- package/src/base-client/components/common/XLicensePlate/index.js +3 -3
- package/src/base-client/components/common/XLicensePlate/index.md +38 -38
- package/src/base-client/components/common/XPrint/Demo.vue +41 -41
- package/src/base-client/components/common/XPrint/PrintBill.vue +308 -308
- package/src/base-client/components/common/XRate/demo.vue +102 -102
- package/src/base-client/components/common/XRate/index.vue +149 -149
- package/src/base-client/components/common/XReport/XReport.vue +963 -963
- package/src/base-client/components/common/XReport/XReportDemo.vue +70 -70
- package/src/base-client/components/common/XReport/XReportTrGroup.vue +1005 -1005
- package/src/base-client/components/common/XReport/index.md +103 -103
- package/src/base-client/components/common/XReportDrawer/XReportDrawer.vue +201 -201
- package/src/base-client/components/common/XReportGrid/XReport.vue +1075 -1075
- package/src/base-client/components/common/XReportGrid/XReportDemo.vue +44 -44
- package/src/base-client/components/common/XReportGrid/XReportDesign.vue +620 -620
- package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +723 -723
- package/src/base-client/components/common/XReportGrid/print.js +184 -184
- package/src/base-client/components/common/XTab/XTab.vue +299 -299
- package/src/base-client/components/common/XTable/ExportExcel.vue +283 -283
- package/src/base-client/components/common/XTable/XTable.vue +1599 -1599
- package/src/base-client/components/common/XTable/XTableWrapper.vue +597 -597
- package/src/base-client/components/common/XTable/index.js +3 -3
- package/src/base-client/components/common/XTimeline/XTimeline.vue +358 -358
- package/src/base-client/components/common/XTimeline/index.md +191 -191
- package/src/base-client/components/common/XTree/XTreePro.vue +452 -452
- package/src/base-client/components/common/XTreeOne/index.js +3 -3
- package/src/base-client/components/common/XUploadFilesView/index.vue +485 -485
- package/src/base-client/components/his/XCharge/XCharge.vue +238 -238
- package/src/base-client/components/his/XCheckbox/XCheckbox.vue +105 -105
- package/src/base-client/components/his/XCheckbox/index.md +253 -253
- package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +430 -430
- package/src/base-client/components/his/XHDescriptions/index.md +217 -217
- package/src/base-client/components/his/XHisEditor/XHisEditor.vue +629 -629
- package/src/base-client/components/his/XHisEditor/diagnosisAutocomplete.js +263 -263
- package/src/base-client/components/his/XList/XList.vue +495 -495
- package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.json +3 -3
- package/src/base-client/components/his/XQuestionnaire/XQuestionnaire.vue +106 -106
- package/src/base-client/components/his/XQuestionnaire/XQuestionnaireDemo.vue +51 -51
- package/src/base-client/components/his/XQuestionnaire/XQuestionnaireItem.vue +269 -269
- package/src/base-client/components/his/XRadio/XRadio.vue +125 -125
- package/src/base-client/components/his/XRadio/index.md +234 -234
- package/src/base-client/components/his/XSelect/XSelect.vue +72 -72
- package/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +234 -234
- package/src/base-client/components/his/XShiftSchedule/dome.vue +29 -29
- package/src/base-client/components/his/XSidebar/XSidebar.vue +240 -240
- package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
- package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +162 -162
- package/src/base-client/components/his/XTimeSelect/XTimeSelectDemo.vue +23 -23
- package/src/base-client/components/his/XTitle/README.md +113 -113
- package/src/base-client/components/his/XTitle/XTitle.vue +123 -123
- package/src/base-client/components/his/XTreeRows/TreeNode.vue +107 -107
- package/src/base-client/components/his/XTreeRows/XTreeRows.vue +307 -307
- package/src/base-client/components/his/threeTestOrders/dome.vue +68 -68
- package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
- package/src/base-client/components/his/threeTestOrders/textBox.vue +457 -457
- package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +475 -475
- package/src/base-client/components/layout/XPageView/RenderRow.vue +88 -88
- package/src/base-client/components/layout/XPageView/XErrorView.vue +22 -22
- package/src/base-client/components/layout/XPageView/XPageRowTemplate.vue +37 -37
- package/src/base-client/components/layout/XPageView/XPageView.vue +223 -223
- package/src/base-client/components/layout/XPageView/XTab/XTab.vue +96 -96
- package/src/base-client/components/layout/XPageView/XTab/index.js +3 -3
- package/src/base-client/components/layout/XPageView/componentTypes.js +22 -22
- package/src/base-client/components/layout/XPageView/index.js +2 -2
- package/src/base-client/components/layout/XPageView/index.md +96 -96
- package/src/base-client/components/system/DictionaryDetailsView/index.js +3 -3
- package/src/base-client/components/system/DictionaryDetailsView/index.md +41 -41
- package/src/base-client/components/system/LogDetailsView/LogDetailsView.vue +376 -376
- package/src/base-client/components/system/LogDetailsView/index.js +3 -3
- package/src/base-client/components/system/LogDetailsView/index.md +41 -41
- package/src/base-client/components/system/QueryParamsDetailsView/index.js +3 -3
- package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
- package/src/base-client/components/ticket/TicketDetailsView/index.js +3 -3
- package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
- package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
- package/src/base-client/components/ticket/TicketDetailsView/part/index.js +3 -3
- package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
- package/src/base-client/components/ticket/TicketSubmitSuccessView/index.js +3 -3
- package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
- package/src/base-client/plugins/AppData.js +126 -126
- package/src/base-client/plugins/PagedList.js +177 -177
- package/src/base-client/plugins/__tests__/selectValueTypeHelper.test.js +154 -154
- package/src/base-client/plugins/authority-plugin.js +167 -167
- package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
- package/src/base-client/plugins/i18n-extend.js +32 -32
- package/src/base-client/plugins/moment.js +8 -8
- package/src/base-client/plugins/selectValueTypeHelper.js +281 -281
- package/src/bootstrap.js +51 -51
- package/src/components/Ellipsis/Ellipsis.vue +65 -65
- package/src/components/Ellipsis/index.js +3 -3
- package/src/components/Ellipsis/index.md +38 -38
- package/src/components/FileImageItem/FileItem.vue +320 -320
- package/src/components/FileImageItem/FileItemGroup.vue +197 -197
- package/src/components/FileImageItem/ImageItem.vue +107 -107
- package/src/components/FileImageItem/index.js +4 -4
- package/src/components/FilePreview/FilePreview.vue +181 -181
- package/src/components/FilePreview/FilePreviewDemo.vue +30 -30
- package/src/components/FilePreview/index.js +3 -3
- package/src/components/HeightScanner/index.vue +615 -615
- package/src/components/STable/README.md +341 -341
- package/src/components/STable/index.js +558 -558
- package/src/components/TableSetting/TableSetting.vue +143 -143
- package/src/components/TableSetting/index.js +3 -3
- package/src/components/Trend/Trend.vue +41 -41
- package/src/components/Trend/index.js +3 -3
- package/src/components/Trend/index.less +41 -41
- package/src/components/Trend/index.md +45 -45
- package/src/components/_util/util.js +46 -46
- package/src/components/cache/AKeepAlive.js +179 -179
- package/src/components/exception/typeConfig.js +19 -19
- package/src/components/form/FormRow.vue +52 -52
- package/src/components/index.less +5 -5
- package/src/components/menu/Contextmenu.vue +84 -84
- package/src/components/menu/index.less +38 -38
- package/src/components/page/header/PageHeader.vue +64 -64
- package/src/components/page/header/index.less +40 -40
- package/src/components/result/Result.vue +77 -77
- package/src/components/setting/SettingItem.vue +26 -26
- package/src/components/setting/i18n.js +117 -117
- package/src/components/table/StandardTable.vue +141 -141
- package/src/components/table/advance/ActionColumns.vue +158 -158
- package/src/components/table/advance/ActionSize.vue +45 -45
- package/src/components/table/advance/AdvanceTable.vue +275 -275
- package/src/components/table/advance/SearchArea.vue +355 -355
- package/src/components/table/advance/index.js +2 -2
- package/src/components/table/api/ApiTable.vue +50 -50
- package/src/components/task/TaskGroup.vue +80 -80
- package/src/components/task/TaskItem.vue +26 -26
- package/src/components/tool/AvatarList.vue +68 -68
- package/src/components/tool/DetailList.vue +157 -157
- package/src/components/tool/Drawer.vue +142 -142
- package/src/components/tool/FooterToolBar.vue +30 -30
- package/src/components/tool/HeadInfo.vue +35 -35
- package/src/components/tool/TagSelect.vue +83 -83
- package/src/components/tool/TagSelectOption.vue +33 -33
- package/src/components/transition/PageToggleTransition.vue +97 -97
- package/src/config/default/admin.config.js +18 -18
- package/src/config/default/animate.config.js +21 -21
- package/src/config/default/index.js +6 -6
- package/src/config/index.js +3 -3
- package/src/config/replacer/index.js +10 -10
- package/src/config/replacer/resolve.config.js +67 -67
- package/src/expression/ExpressionRunner.js +26 -26
- package/src/expression/TestExpression.js +509 -509
- package/src/expression/core/Delegate.js +115 -115
- package/src/expression/core/Expression.js +1358 -1358
- package/src/expression/core/Program.js +932 -932
- package/src/expression/core/Token.js +27 -27
- package/src/expression/enums/ExpressionType.js +81 -81
- package/src/expression/enums/TokenType.js +11 -11
- package/src/expression/exception/BreakWayException.js +2 -2
- package/src/expression/exception/ContinueWayException.js +2 -2
- package/src/expression/exception/ExpressionException.js +28 -28
- package/src/expression/exception/ReturnWayException.js +14 -14
- package/src/expression/exception/ServiceException.js +22 -22
- package/src/expression/instances/LogicConsole.js +44 -44
- package/src/expression/ts/ExpressionRunner.ts +28 -28
- package/src/expression/ts/TestExpression.ts +509 -509
- package/src/expression/ts/core/Delegate.ts +114 -114
- package/src/expression/ts/core/Expression.ts +1309 -1309
- package/src/expression/ts/core/Program.ts +950 -950
- package/src/expression/ts/core/Token.ts +29 -29
- package/src/expression/ts/enums/ExpressionType.ts +81 -81
- package/src/expression/ts/enums/TokenType.ts +13 -13
- package/src/expression/ts/exception/BreakWayException.ts +2 -2
- package/src/expression/ts/exception/ContinueWayException.ts +2 -2
- package/src/expression/ts/exception/ExpressionException.ts +28 -28
- package/src/expression/ts/exception/ReturnWayException.ts +14 -14
- package/src/expression/ts/exception/ServiceException.ts +22 -22
- package/src/expression/ts/instances/JSONArray.ts +48 -48
- package/src/expression/ts/instances/JSONObject.ts +109 -109
- package/src/expression/ts/instances/LogicConsole.ts +32 -32
- package/src/layouts/AdminLayout.vue +176 -176
- package/src/layouts/BlankView.vue +79 -79
- package/src/layouts/ComponentLayoutOne.vue +47 -47
- package/src/layouts/GridView.vue +43 -43
- package/src/layouts/PageView.vue +55 -55
- package/src/layouts/footer/PageFooter.vue +49 -49
- package/src/layouts/header/HeaderAvatar.vue +64 -64
- package/src/layouts/header/HeaderSearch.vue +67 -67
- package/src/layouts/header/index.less +92 -92
- package/src/layouts/tabs/TabsView.vue +383 -383
- package/src/layouts/tabs/i18n.js +25 -25
- package/src/layouts/tabs/index.js +2 -2
- package/src/logic/LogicRunner.js +62 -62
- package/src/logic/TestLogic.js +13 -13
- package/src/logic/plugins/common/DateTools.js +35 -35
- package/src/logic/plugins/common/VueTools.js +30 -30
- package/src/logic/plugins/index.js +7 -7
- package/src/logic/ts/LogicRunner.ts +67 -67
- package/src/logic/ts/TestLogic.ts +13 -13
- package/src/main.js +33 -33
- package/src/mixins/formValidationMixin.js +46 -46
- package/src/mock/common/activityData.js +32 -32
- package/src/mock/common/index.js +89 -89
- package/src/mock/common/reportData.js +20 -20
- package/src/mock/common/tableData.js +118 -118
- package/src/mock/index.js +12 -12
- package/src/mock/project/index.js +17 -17
- package/src/mock/user/current.js +13 -13
- package/src/mock/user/login.js +39 -39
- package/src/mock/user/routes.js +61 -61
- package/src/mock/workplace/index.js +15 -15
- package/src/pages/LogicCallExample/index.vue +46 -46
- package/src/pages/ReportGrid/index.vue +76 -76
- package/src/pages/ReportView.vue +50 -50
- package/src/pages/WorkflowDetail/WorkFlowDemo.vue +47 -47
- package/src/pages/WorkflowDetail/WorkFlowDemo2.vue +204 -204
- package/src/pages/WorkflowDetail/WorkFlowDemo3.vue +203 -203
- package/src/pages/WorkflowDetail/WorkflowDetail.vue +391 -391
- package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +388 -388
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +415 -415
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1766 -1766
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +975 -975
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowPreview.vue +109 -109
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +929 -929
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +222 -222
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +243 -243
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +188 -188
- package/src/pages/WorkflowDetail/WorkflowPageDetail/components/WorkflowPersonSelector.vue +109 -109
- package/src/pages/WorkflowDetail/WorkflowPageDetail/worklog.vue +97 -97
- package/src/pages/XPageViewExample/index.vue +149 -149
- package/src/pages/addressSelect/addressDemo.vue +24 -24
- package/src/pages/addressSelect/index.vue +270 -270
- package/src/pages/dashboard/workplace/i18n.js +40 -40
- package/src/pages/dashboard/workplace/index.js +2 -2
- package/src/pages/dashboard/workplace/index.less +59 -59
- package/src/pages/exception/403.vue +21 -21
- package/src/pages/exception/404.vue +24 -24
- package/src/pages/exception/500.vue +21 -21
- package/src/pages/login/index.js +2 -2
- package/src/pages/report/ReportTableHome.vue +28 -28
- package/src/pages/resourceManage/depListManage.vue +23 -23
- package/src/pages/resourceManage/funListManage.vue +23 -23
- package/src/pages/resourceManage/index.js +15 -15
- package/src/pages/resourceManage/resourceManageMain.vue +57 -57
- package/src/pages/resourceManage/roleListManage.vue +23 -23
- package/src/pages/resourceManage/staffListManage.vue +23 -23
- package/src/pages/system/file/Info.vue +56 -56
- package/src/pages/system/file/index.vue +317 -317
- package/src/pages/system/settings/index.vue +126 -126
- package/src/pages/userInfoDetailManage/FillCardRecordQuery/index.vue +77 -77
- package/src/pages/userInfoDetailManage/FillGasRecordQuery/index.vue +75 -75
- package/src/pages/userInfoDetailManage/InsuranceDetailQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/MachineRecordQuery/index.vue +75 -75
- package/src/pages/userInfoDetailManage/OtherChargeRecordQuery/index.vue +75 -75
- package/src/pages/userInfoDetailManage/PriceAdjustments/index.vue +64 -64
- package/src/pages/userInfoDetailManage/UserChargeRecordQuery/index.vue +94 -94
- package/src/pages/userInfoDetailManage/UserException/index.vue +64 -64
- package/src/pages/userInfoDetailManage/UserHandRecordQuery/index.vue +87 -87
- package/src/pages/userInfoDetailManage/UserRecordQuery/index.vue +74 -74
- package/src/pages/userInfoDetailManage/index.vue +290 -290
- package/src/pages/userInfoDetailManage/uploadFilesHistory/ImagePreview.vue +101 -101
- package/src/pages/userInfoDetailManage/uploadFilesHistory/index.vue +129 -129
- package/src/pages/userInfoDetailManage/userInfoDetailQueryTabs.vue +144 -144
- package/src/plugins/HiPrintPlugin.js +164 -164
- package/src/router/async/router.map.js +126 -126
- package/src/router/guards.js +262 -262
- package/src/router/i18n.js +57 -57
- package/src/router.js +17 -17
- package/src/services/api/DictionaryDetailsViewApi.js +6 -6
- package/src/services/api/LogDetailsViewApi.js +10 -10
- package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
- package/src/services/api/logininfor/index.js +6 -6
- package/src/services/api/manage.js +8 -8
- package/src/services/api/restTools.js +215 -215
- package/src/services/api/workFlow.js +57 -57
- package/src/services/apiService.js +16 -16
- package/src/services/dataSource.js +12 -12
- package/src/services/index.js +7 -7
- package/src/services/user.js +92 -92
- package/src/services/v3Api.js +116 -116
- package/src/store/index.js +5 -5
- package/src/store/mutation-types.js +4 -4
- package/src/theme/antd/ant-menu.less +2 -2
- package/src/theme/antd/ant-message.less +3 -3
- package/src/theme/antd/ant-table.less +22 -22
- package/src/theme/antd/ant-time-picker.less +3 -3
- package/src/theme/antd/index.less +3 -3
- package/src/theme/default/color.less +43 -43
- package/src/theme/default/index.less +3 -3
- package/src/theme/default/nprogress.less +76 -76
- package/src/theme/global.less +279 -279
- package/src/theme/index.less +5 -5
- package/src/theme/reportTable.less +58 -58
- package/src/theme/theme.less +1 -1
- package/src/utils/EncryptUtil.js +162 -162
- package/src/utils/Objects.js +25 -25
- package/src/utils/axios-interceptors.js +100 -100
- package/src/utils/colors.js +107 -107
- package/src/utils/common.js +10 -10
- package/src/utils/excel/Blob.js +180 -180
- package/src/utils/excel/Export2Excel.js +141 -141
- package/src/utils/filter.js +21 -21
- package/src/utils/i18n.js +80 -80
- package/src/utils/indexedDB.js +549 -549
- package/src/utils/microAppUtils.js +49 -49
- package/src/utils/request.js +395 -395
- package/src/utils/routerUtil.js +553 -553
- package/src/utils/themeUtil.js +100 -100
- package/test/Tree.spec.js +168 -168
- package/test/myDialog.spec.js +47 -47
- package/test/request.test.js +17 -17
- package/test/util.test.js +53 -53
- package/test/v3Api.test.js +1984 -1984
- package/tests/unit/ReportTable.spec.js +16 -16
- package/vue.config.js +222 -222
- package/.claude/settings.local.json +0 -12
@@ -1,509 +1,509 @@
|
|
1
|
-
import Program from './core/Program'
|
2
|
-
import LogicConsole from './instances/LogicConsole'
|
3
|
-
|
4
|
-
const logicConsole = LogicConsole.getInstance()
|
5
|
-
|
6
|
-
runTest()
|
7
|
-
|
8
|
-
async function runTest () {
|
9
|
-
logicConsole.debug('1.========testValidate========')
|
10
|
-
await testValidate()
|
11
|
-
logicConsole.debug('2.========testAssert========')
|
12
|
-
await testAssert()
|
13
|
-
logicConsole.debug('3.========testTry========')
|
14
|
-
await testTry()
|
15
|
-
logicConsole.debug('4.========testPropertyType========')
|
16
|
-
await testPropertyType()
|
17
|
-
logicConsole.debug('5.========testJSONArrayIndex========')
|
18
|
-
await testJSONArrayIndex()
|
19
|
-
logicConsole.debug('6.========testArrayIndex========')
|
20
|
-
await testArrayIndex()
|
21
|
-
logicConsole.debug('7.========testCompare========')
|
22
|
-
await testCompare()
|
23
|
-
logicConsole.debug('8.========testJSONObject========')
|
24
|
-
await testJSONObject()
|
25
|
-
logicConsole.debug('9.========testJSONArray========')
|
26
|
-
await testJSONArray()
|
27
|
-
logicConsole.debug('10.========testFunctionCall========')
|
28
|
-
await testFunctionCall()
|
29
|
-
logicConsole.debug('11.========testMath========')
|
30
|
-
await testMath()
|
31
|
-
logicConsole.debug('12.========testString========')
|
32
|
-
await testString()
|
33
|
-
logicConsole.debug('13.========testCondition========')
|
34
|
-
await testCondition()
|
35
|
-
logicConsole.debug('14.========testThrow========')
|
36
|
-
await testThrow()
|
37
|
-
logicConsole.debug('15.========testJSONArrayLoop========')
|
38
|
-
await testJSONArrayLoop()
|
39
|
-
logicConsole.debug('16.========testJSONObjectLoop========')
|
40
|
-
await testJSONObjectLoop()
|
41
|
-
logicConsole.debug('17.========testIntLoop========')
|
42
|
-
await testIntLoop()
|
43
|
-
logicConsole.debug('18.========testContinueAndBreak========')
|
44
|
-
await testContinueAndBreak()
|
45
|
-
logicConsole.debug('19.========testComment========')
|
46
|
-
await testComment()
|
47
|
-
logicConsole.debug('20.========testReturn========')
|
48
|
-
await testReturn()
|
49
|
-
logicConsole.debug('21.========testLambda========')
|
50
|
-
await testLambda()
|
51
|
-
}
|
52
|
-
|
53
|
-
/**
|
54
|
-
* validate
|
55
|
-
*/
|
56
|
-
async function testValidate () {
|
57
|
-
const expression = `
|
58
|
-
validate {
|
59
|
-
model: {
|
60
|
-
required: true,
|
61
|
-
},
|
62
|
-
visible: {
|
63
|
-
default: 1 + 1,
|
64
|
-
},
|
65
|
-
isAep: {
|
66
|
-
default: 3
|
67
|
-
},
|
68
|
-
testJson: {
|
69
|
-
required: true,
|
70
|
-
items: {
|
71
|
-
userid: {
|
72
|
-
required: true
|
73
|
-
}
|
74
|
-
}
|
75
|
-
},
|
76
|
-
testGroup: {
|
77
|
-
mode: "atLeastOne",
|
78
|
-
fields: [
|
79
|
-
"test1",
|
80
|
-
"test2"
|
81
|
-
]
|
82
|
-
}
|
83
|
-
},
|
84
|
-
data.isAep == 3 :(
|
85
|
-
log.info(123)
|
86
|
-
),null,
|
87
|
-
log.info(data)
|
88
|
-
`
|
89
|
-
const data = {
|
90
|
-
model: 'a',
|
91
|
-
test1: 'b',
|
92
|
-
isAep: null,
|
93
|
-
testJson: {
|
94
|
-
userid: {}
|
95
|
-
}
|
96
|
-
}
|
97
|
-
await runExpression(expression, data)
|
98
|
-
}
|
99
|
-
|
100
|
-
/**
|
101
|
-
* assert
|
102
|
-
*/
|
103
|
-
async function testAssert () {
|
104
|
-
const expression = `
|
105
|
-
c = 1,
|
106
|
-
assert c == 1,
|
107
|
-
log.debug("ok"),
|
108
|
-
a = 1 + c,
|
109
|
-
assert a == 2,
|
110
|
-
log.debug("ok2")`
|
111
|
-
await runExpression(expression)
|
112
|
-
}
|
113
|
-
|
114
|
-
/**
|
115
|
-
* try
|
116
|
-
*/
|
117
|
-
async function testTry () {
|
118
|
-
const expression = `
|
119
|
-
a = 0,
|
120
|
-
log.debug(a),
|
121
|
-
try {
|
122
|
-
assert c == 2
|
123
|
-
} catch (WebException e) {
|
124
|
-
log.debug(e),
|
125
|
-
a = 1 + 1
|
126
|
-
} catch (Exception e) {
|
127
|
-
log.debug(e),
|
128
|
-
a = 1 + 2
|
129
|
-
},
|
130
|
-
log.debug(a)
|
131
|
-
`
|
132
|
-
await runExpression(expression)
|
133
|
-
}
|
134
|
-
|
135
|
-
/**
|
136
|
-
* property
|
137
|
-
*/
|
138
|
-
async function testPropertyType () {
|
139
|
-
const expression = `
|
140
|
-
a = 1,
|
141
|
-
b = 2.0,
|
142
|
-
c = {
|
143
|
-
d: 1,
|
144
|
-
e: {
|
145
|
-
str: "123",
|
146
|
-
你好: "中国"
|
147
|
-
}
|
148
|
-
},
|
149
|
-
c.a = 1,
|
150
|
-
log.debug(c.e.你好),
|
151
|
-
log.debug(c["e"].str),
|
152
|
-
e = c.d,
|
153
|
-
f = "123",
|
154
|
-
g = [],
|
155
|
-
名称 = "123=>",
|
156
|
-
log.debug(data.testArray[0]),
|
157
|
-
return 名称
|
158
|
-
`
|
159
|
-
const data = {
|
160
|
-
testArray: 'zhang|b|c'.split('\|')
|
161
|
-
}
|
162
|
-
await runExpression(expression, data)
|
163
|
-
}
|
164
|
-
|
165
|
-
/**
|
166
|
-
* JSONArray index
|
167
|
-
*/
|
168
|
-
async function testJSONArrayIndex () {
|
169
|
-
const expression = `
|
170
|
-
a = [1,2,3,4,5],
|
171
|
-
return a[4]
|
172
|
-
`
|
173
|
-
await runExpression(expression)
|
174
|
-
}
|
175
|
-
|
176
|
-
/**
|
177
|
-
* array index
|
178
|
-
*/
|
179
|
-
async function testArrayIndex () {
|
180
|
-
const expression = `
|
181
|
-
return data.a[4]
|
182
|
-
`
|
183
|
-
const data = {
|
184
|
-
a: [1, 2, 3, 4, 5]
|
185
|
-
}
|
186
|
-
await runExpression(expression, data)
|
187
|
-
}
|
188
|
-
|
189
|
-
async function testCompare () {
|
190
|
-
const expression = `
|
191
|
-
a = 0,
|
192
|
-
a >= 0 :(
|
193
|
-
a = a + 1,
|
194
|
-
b = 1,
|
195
|
-
a == b :(
|
196
|
-
c = 3.0,
|
197
|
-
a < c :(
|
198
|
-
a + 2,
|
199
|
-
a <= c :(
|
200
|
-
strA = $a$,
|
201
|
-
strB = $b$,
|
202
|
-
strC = $c$,
|
203
|
-
strA < strB && strA != strC :(
|
204
|
-
return $ok$
|
205
|
-
),null
|
206
|
-
),null
|
207
|
-
),null
|
208
|
-
),null
|
209
|
-
),null
|
210
|
-
`
|
211
|
-
await runExpression(expression)
|
212
|
-
}
|
213
|
-
|
214
|
-
/**
|
215
|
-
* JSONObject
|
216
|
-
*/
|
217
|
-
async function testJSONObject () {
|
218
|
-
const expression = `
|
219
|
-
datas = {
|
220
|
-
name: "张三",
|
221
|
-
年龄: 15,
|
222
|
-
},
|
223
|
-
datas
|
224
|
-
`
|
225
|
-
await runExpression(expression)
|
226
|
-
}
|
227
|
-
|
228
|
-
/**
|
229
|
-
* JSONArray
|
230
|
-
*/
|
231
|
-
async function testJSONArray () {
|
232
|
-
const expression = `
|
233
|
-
datas = ["a","b","c"],
|
234
|
-
datas
|
235
|
-
`
|
236
|
-
await runExpression(expression)
|
237
|
-
}
|
238
|
-
|
239
|
-
/**
|
240
|
-
* function call
|
241
|
-
*/
|
242
|
-
async function testFunctionCall () {
|
243
|
-
const expression = `
|
244
|
-
log.debug("test is ok")
|
245
|
-
`
|
246
|
-
await runExpression(expression)
|
247
|
-
}
|
248
|
-
|
249
|
-
/**
|
250
|
-
* math
|
251
|
-
*/
|
252
|
-
async function testMath () {
|
253
|
-
const expression = `
|
254
|
-
a = 1,
|
255
|
-
b = 2,
|
256
|
-
c = a + b,
|
257
|
-
c = c - 1,
|
258
|
-
d = 5 * 8,
|
259
|
-
e = d / 10,
|
260
|
-
e = e % 2,
|
261
|
-
c
|
262
|
-
`
|
263
|
-
await runExpression(expression)
|
264
|
-
}
|
265
|
-
|
266
|
-
/**
|
267
|
-
* string
|
268
|
-
*/
|
269
|
-
async function testString () {
|
270
|
-
const expression = `
|
271
|
-
test1 = {}.toString(),
|
272
|
-
log.debug(test1),
|
273
|
-
a = $part1$,
|
274
|
-
log.debug(a),
|
275
|
-
b = "part2",
|
276
|
-
log.debug(b),
|
277
|
-
c = "{a}:{b}",
|
278
|
-
log.debug(c),
|
279
|
-
d = "{name}:张三",
|
280
|
-
log.debug(d),
|
281
|
-
e = "\\{name\\}:张三",
|
282
|
-
log.debug(e),
|
283
|
-
f = "\\"123\\"",
|
284
|
-
log.debug(f),
|
285
|
-
g = "\\$15.7",
|
286
|
-
log.debug(g),
|
287
|
-
h = $\\$15.7$,
|
288
|
-
log.debug(h),
|
289
|
-
i = "http:\\\\www.baidu.com",
|
290
|
-
log.debug(i),
|
291
|
-
j = $http://www.baidu.com$,
|
292
|
-
log.debug(j)
|
293
|
-
`
|
294
|
-
await runExpression(expression)
|
295
|
-
}
|
296
|
-
|
297
|
-
/**
|
298
|
-
* condition
|
299
|
-
*/
|
300
|
-
async function testCondition () {
|
301
|
-
const expression = `
|
302
|
-
1 != 1 :(
|
303
|
-
throw "异常"
|
304
|
-
),null,
|
305
|
-
1 + 1 != 2 :(
|
306
|
-
throw "异常"
|
307
|
-
),null,
|
308
|
-
!(2 > 3) && !(3 > 2):(
|
309
|
-
throw "异常"
|
310
|
-
),null,
|
311
|
-
2 > 3 :(
|
312
|
-
throw "异常"
|
313
|
-
),null,
|
314
|
-
!(3 > 2) :(
|
315
|
-
throw "异常"
|
316
|
-
),null,
|
317
|
-
y = 1 > 0,
|
318
|
-
!y && 1 > 0 :(
|
319
|
-
throw "异常"
|
320
|
-
),null
|
321
|
-
`
|
322
|
-
const data = {
|
323
|
-
type: '1'
|
324
|
-
}
|
325
|
-
await runExpression(expression, data)
|
326
|
-
}
|
327
|
-
|
328
|
-
/**
|
329
|
-
* throw
|
330
|
-
*/
|
331
|
-
async function testThrow () {
|
332
|
-
const expression = `
|
333
|
-
data.type == 2 :(
|
334
|
-
throw "error",
|
335
|
-
log.debug(result)
|
336
|
-
),null
|
337
|
-
`
|
338
|
-
const data = {
|
339
|
-
type: '1'
|
340
|
-
}
|
341
|
-
await runExpression(expression, data)
|
342
|
-
}
|
343
|
-
|
344
|
-
/**
|
345
|
-
* JSONArray loop
|
346
|
-
*/
|
347
|
-
async function testJSONArrayLoop () {
|
348
|
-
const expression = `
|
349
|
-
log.debug("test-JSONArray"),
|
350
|
-
datas = [1,2,3,4,5],
|
351
|
-
datas.each(
|
352
|
-
log.debug(\${row}\$)
|
353
|
-
),
|
354
|
-
log.debug("test-Set"),
|
355
|
-
data.testSet.each(
|
356
|
-
log.debug(\${row}\$)
|
357
|
-
),
|
358
|
-
log.debug("test-Array"),
|
359
|
-
data.testArray.each(
|
360
|
-
log.debug(\${row}\$)
|
361
|
-
)
|
362
|
-
`
|
363
|
-
const data = {
|
364
|
-
testSet: [1, 2, 3, 4, 5],
|
365
|
-
testArray: 'a|b|c'.split('\|')
|
366
|
-
}
|
367
|
-
await runExpression(expression, data)
|
368
|
-
}
|
369
|
-
|
370
|
-
/**
|
371
|
-
* JSONObject loop
|
372
|
-
*/
|
373
|
-
async function testJSONObjectLoop () {
|
374
|
-
const expression = `
|
375
|
-
log.debug("test-JSONObject"),
|
376
|
-
datas = {name: 1, age: 2},
|
377
|
-
datas.each(
|
378
|
-
log.debug(\${rowKey}:{row}$)
|
379
|
-
),
|
380
|
-
log.debug("test-Map"),
|
381
|
-
data.testMap.each(
|
382
|
-
log.debug(\${rowKey}:{row}$)
|
383
|
-
)
|
384
|
-
`
|
385
|
-
const data = {
|
386
|
-
testMap: {
|
387
|
-
name: 'xxx',
|
388
|
-
age: 18,
|
389
|
-
gender: '男'
|
390
|
-
}
|
391
|
-
}
|
392
|
-
await runExpression(expression, data)
|
393
|
-
}
|
394
|
-
|
395
|
-
/**
|
396
|
-
* int loop
|
397
|
-
*/
|
398
|
-
async function testIntLoop () {
|
399
|
-
const expression = `
|
400
|
-
a = 5,
|
401
|
-
a.each(
|
402
|
-
log.debug(row)
|
403
|
-
),
|
404
|
-
(0,5).each(
|
405
|
-
log.debug(row)
|
406
|
-
),
|
407
|
-
null
|
408
|
-
`
|
409
|
-
await runExpression(expression)
|
410
|
-
}
|
411
|
-
|
412
|
-
/**
|
413
|
-
* continue and break
|
414
|
-
*/
|
415
|
-
async function testContinueAndBreak () {
|
416
|
-
const expression = `
|
417
|
-
datas = [1,2,3,4,5,6,7],
|
418
|
-
datas.each(
|
419
|
-
row == 3 :(
|
420
|
-
continue
|
421
|
-
),row == 5:(
|
422
|
-
break
|
423
|
-
),
|
424
|
-
log.debug(row)
|
425
|
-
)
|
426
|
-
`
|
427
|
-
await runExpression(expression)
|
428
|
-
}
|
429
|
-
|
430
|
-
/**
|
431
|
-
* comment
|
432
|
-
*/
|
433
|
-
async function testComment () {
|
434
|
-
const expression = `
|
435
|
-
$//排序单表查询
|
436
|
-
select {items}
|
437
|
-
from {tablename}
|
438
|
-
where {condition}
|
439
|
-
order by {orderitem}
|
440
|
-
`
|
441
|
-
await runExpression(expression)
|
442
|
-
}
|
443
|
-
|
444
|
-
/**
|
445
|
-
* return
|
446
|
-
*/
|
447
|
-
async function testReturn () {
|
448
|
-
const expression = `
|
449
|
-
data.type == 1 :(
|
450
|
-
return "123",
|
451
|
-
log.debug(123)
|
452
|
-
),(
|
453
|
-
return 2
|
454
|
-
),
|
455
|
-
log.debug(123)
|
456
|
-
`
|
457
|
-
const data = {
|
458
|
-
type: 1
|
459
|
-
}
|
460
|
-
await runExpression(expression, data)
|
461
|
-
}
|
462
|
-
|
463
|
-
/**
|
464
|
-
* lambda
|
465
|
-
*/
|
466
|
-
async function testLambda () {
|
467
|
-
const expression = `
|
468
|
-
log.debug("进入外层逻辑,参数:{data}"),
|
469
|
-
age = 13,
|
470
|
-
// 声明一个lambda块
|
471
|
-
lambdaObj = (data) => {
|
472
|
-
index = 1,
|
473
|
-
log.debug("进入lambda了"),
|
474
|
-
log.debug("传入lambda块的参数:{data}"),
|
475
|
-
log.debug("外层的只读参数:{age}"),
|
476
|
-
return "执行lambda完成"
|
477
|
-
},
|
478
|
-
log.debug("age参数:{age}"),
|
479
|
-
result = lambdaObj.apply({
|
480
|
-
name: "江超"
|
481
|
-
}),
|
482
|
-
result = lambdaObj.apply({
|
483
|
-
name: "大神"
|
484
|
-
}),
|
485
|
-
log.debug("result:{result}"),
|
486
|
-
return {
|
487
|
-
func: lambdaObj
|
488
|
-
}
|
489
|
-
`
|
490
|
-
const data = {
|
491
|
-
type: 1
|
492
|
-
}
|
493
|
-
await runExpression(expression, data)
|
494
|
-
}
|
495
|
-
|
496
|
-
async function runExpression (expression, data) {
|
497
|
-
const program = new Program(expression)
|
498
|
-
const d = program.parse()
|
499
|
-
const params = {}
|
500
|
-
if (data == null) {
|
501
|
-
data = {}
|
502
|
-
}
|
503
|
-
params.data = data
|
504
|
-
params.log = new LogicConsole()
|
505
|
-
params.b = 5
|
506
|
-
const result = await d.invoke(params)
|
507
|
-
console.log(result)
|
508
|
-
return result
|
509
|
-
}
|
1
|
+
import Program from './core/Program'
|
2
|
+
import LogicConsole from './instances/LogicConsole'
|
3
|
+
|
4
|
+
const logicConsole = LogicConsole.getInstance()
|
5
|
+
|
6
|
+
runTest()
|
7
|
+
|
8
|
+
async function runTest () {
|
9
|
+
logicConsole.debug('1.========testValidate========')
|
10
|
+
await testValidate()
|
11
|
+
logicConsole.debug('2.========testAssert========')
|
12
|
+
await testAssert()
|
13
|
+
logicConsole.debug('3.========testTry========')
|
14
|
+
await testTry()
|
15
|
+
logicConsole.debug('4.========testPropertyType========')
|
16
|
+
await testPropertyType()
|
17
|
+
logicConsole.debug('5.========testJSONArrayIndex========')
|
18
|
+
await testJSONArrayIndex()
|
19
|
+
logicConsole.debug('6.========testArrayIndex========')
|
20
|
+
await testArrayIndex()
|
21
|
+
logicConsole.debug('7.========testCompare========')
|
22
|
+
await testCompare()
|
23
|
+
logicConsole.debug('8.========testJSONObject========')
|
24
|
+
await testJSONObject()
|
25
|
+
logicConsole.debug('9.========testJSONArray========')
|
26
|
+
await testJSONArray()
|
27
|
+
logicConsole.debug('10.========testFunctionCall========')
|
28
|
+
await testFunctionCall()
|
29
|
+
logicConsole.debug('11.========testMath========')
|
30
|
+
await testMath()
|
31
|
+
logicConsole.debug('12.========testString========')
|
32
|
+
await testString()
|
33
|
+
logicConsole.debug('13.========testCondition========')
|
34
|
+
await testCondition()
|
35
|
+
logicConsole.debug('14.========testThrow========')
|
36
|
+
await testThrow()
|
37
|
+
logicConsole.debug('15.========testJSONArrayLoop========')
|
38
|
+
await testJSONArrayLoop()
|
39
|
+
logicConsole.debug('16.========testJSONObjectLoop========')
|
40
|
+
await testJSONObjectLoop()
|
41
|
+
logicConsole.debug('17.========testIntLoop========')
|
42
|
+
await testIntLoop()
|
43
|
+
logicConsole.debug('18.========testContinueAndBreak========')
|
44
|
+
await testContinueAndBreak()
|
45
|
+
logicConsole.debug('19.========testComment========')
|
46
|
+
await testComment()
|
47
|
+
logicConsole.debug('20.========testReturn========')
|
48
|
+
await testReturn()
|
49
|
+
logicConsole.debug('21.========testLambda========')
|
50
|
+
await testLambda()
|
51
|
+
}
|
52
|
+
|
53
|
+
/**
|
54
|
+
* validate
|
55
|
+
*/
|
56
|
+
async function testValidate () {
|
57
|
+
const expression = `
|
58
|
+
validate {
|
59
|
+
model: {
|
60
|
+
required: true,
|
61
|
+
},
|
62
|
+
visible: {
|
63
|
+
default: 1 + 1,
|
64
|
+
},
|
65
|
+
isAep: {
|
66
|
+
default: 3
|
67
|
+
},
|
68
|
+
testJson: {
|
69
|
+
required: true,
|
70
|
+
items: {
|
71
|
+
userid: {
|
72
|
+
required: true
|
73
|
+
}
|
74
|
+
}
|
75
|
+
},
|
76
|
+
testGroup: {
|
77
|
+
mode: "atLeastOne",
|
78
|
+
fields: [
|
79
|
+
"test1",
|
80
|
+
"test2"
|
81
|
+
]
|
82
|
+
}
|
83
|
+
},
|
84
|
+
data.isAep == 3 :(
|
85
|
+
log.info(123)
|
86
|
+
),null,
|
87
|
+
log.info(data)
|
88
|
+
`
|
89
|
+
const data = {
|
90
|
+
model: 'a',
|
91
|
+
test1: 'b',
|
92
|
+
isAep: null,
|
93
|
+
testJson: {
|
94
|
+
userid: {}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
await runExpression(expression, data)
|
98
|
+
}
|
99
|
+
|
100
|
+
/**
|
101
|
+
* assert
|
102
|
+
*/
|
103
|
+
async function testAssert () {
|
104
|
+
const expression = `
|
105
|
+
c = 1,
|
106
|
+
assert c == 1,
|
107
|
+
log.debug("ok"),
|
108
|
+
a = 1 + c,
|
109
|
+
assert a == 2,
|
110
|
+
log.debug("ok2")`
|
111
|
+
await runExpression(expression)
|
112
|
+
}
|
113
|
+
|
114
|
+
/**
|
115
|
+
* try
|
116
|
+
*/
|
117
|
+
async function testTry () {
|
118
|
+
const expression = `
|
119
|
+
a = 0,
|
120
|
+
log.debug(a),
|
121
|
+
try {
|
122
|
+
assert c == 2
|
123
|
+
} catch (WebException e) {
|
124
|
+
log.debug(e),
|
125
|
+
a = 1 + 1
|
126
|
+
} catch (Exception e) {
|
127
|
+
log.debug(e),
|
128
|
+
a = 1 + 2
|
129
|
+
},
|
130
|
+
log.debug(a)
|
131
|
+
`
|
132
|
+
await runExpression(expression)
|
133
|
+
}
|
134
|
+
|
135
|
+
/**
|
136
|
+
* property
|
137
|
+
*/
|
138
|
+
async function testPropertyType () {
|
139
|
+
const expression = `
|
140
|
+
a = 1,
|
141
|
+
b = 2.0,
|
142
|
+
c = {
|
143
|
+
d: 1,
|
144
|
+
e: {
|
145
|
+
str: "123",
|
146
|
+
你好: "中国"
|
147
|
+
}
|
148
|
+
},
|
149
|
+
c.a = 1,
|
150
|
+
log.debug(c.e.你好),
|
151
|
+
log.debug(c["e"].str),
|
152
|
+
e = c.d,
|
153
|
+
f = "123",
|
154
|
+
g = [],
|
155
|
+
名称 = "123=>",
|
156
|
+
log.debug(data.testArray[0]),
|
157
|
+
return 名称
|
158
|
+
`
|
159
|
+
const data = {
|
160
|
+
testArray: 'zhang|b|c'.split('\|')
|
161
|
+
}
|
162
|
+
await runExpression(expression, data)
|
163
|
+
}
|
164
|
+
|
165
|
+
/**
|
166
|
+
* JSONArray index
|
167
|
+
*/
|
168
|
+
async function testJSONArrayIndex () {
|
169
|
+
const expression = `
|
170
|
+
a = [1,2,3,4,5],
|
171
|
+
return a[4]
|
172
|
+
`
|
173
|
+
await runExpression(expression)
|
174
|
+
}
|
175
|
+
|
176
|
+
/**
|
177
|
+
* array index
|
178
|
+
*/
|
179
|
+
async function testArrayIndex () {
|
180
|
+
const expression = `
|
181
|
+
return data.a[4]
|
182
|
+
`
|
183
|
+
const data = {
|
184
|
+
a: [1, 2, 3, 4, 5]
|
185
|
+
}
|
186
|
+
await runExpression(expression, data)
|
187
|
+
}
|
188
|
+
|
189
|
+
async function testCompare () {
|
190
|
+
const expression = `
|
191
|
+
a = 0,
|
192
|
+
a >= 0 :(
|
193
|
+
a = a + 1,
|
194
|
+
b = 1,
|
195
|
+
a == b :(
|
196
|
+
c = 3.0,
|
197
|
+
a < c :(
|
198
|
+
a + 2,
|
199
|
+
a <= c :(
|
200
|
+
strA = $a$,
|
201
|
+
strB = $b$,
|
202
|
+
strC = $c$,
|
203
|
+
strA < strB && strA != strC :(
|
204
|
+
return $ok$
|
205
|
+
),null
|
206
|
+
),null
|
207
|
+
),null
|
208
|
+
),null
|
209
|
+
),null
|
210
|
+
`
|
211
|
+
await runExpression(expression)
|
212
|
+
}
|
213
|
+
|
214
|
+
/**
|
215
|
+
* JSONObject
|
216
|
+
*/
|
217
|
+
async function testJSONObject () {
|
218
|
+
const expression = `
|
219
|
+
datas = {
|
220
|
+
name: "张三",
|
221
|
+
年龄: 15,
|
222
|
+
},
|
223
|
+
datas
|
224
|
+
`
|
225
|
+
await runExpression(expression)
|
226
|
+
}
|
227
|
+
|
228
|
+
/**
|
229
|
+
* JSONArray
|
230
|
+
*/
|
231
|
+
async function testJSONArray () {
|
232
|
+
const expression = `
|
233
|
+
datas = ["a","b","c"],
|
234
|
+
datas
|
235
|
+
`
|
236
|
+
await runExpression(expression)
|
237
|
+
}
|
238
|
+
|
239
|
+
/**
|
240
|
+
* function call
|
241
|
+
*/
|
242
|
+
async function testFunctionCall () {
|
243
|
+
const expression = `
|
244
|
+
log.debug("test is ok")
|
245
|
+
`
|
246
|
+
await runExpression(expression)
|
247
|
+
}
|
248
|
+
|
249
|
+
/**
|
250
|
+
* math
|
251
|
+
*/
|
252
|
+
async function testMath () {
|
253
|
+
const expression = `
|
254
|
+
a = 1,
|
255
|
+
b = 2,
|
256
|
+
c = a + b,
|
257
|
+
c = c - 1,
|
258
|
+
d = 5 * 8,
|
259
|
+
e = d / 10,
|
260
|
+
e = e % 2,
|
261
|
+
c
|
262
|
+
`
|
263
|
+
await runExpression(expression)
|
264
|
+
}
|
265
|
+
|
266
|
+
/**
|
267
|
+
* string
|
268
|
+
*/
|
269
|
+
async function testString () {
|
270
|
+
const expression = `
|
271
|
+
test1 = {}.toString(),
|
272
|
+
log.debug(test1),
|
273
|
+
a = $part1$,
|
274
|
+
log.debug(a),
|
275
|
+
b = "part2",
|
276
|
+
log.debug(b),
|
277
|
+
c = "{a}:{b}",
|
278
|
+
log.debug(c),
|
279
|
+
d = "{name}:张三",
|
280
|
+
log.debug(d),
|
281
|
+
e = "\\{name\\}:张三",
|
282
|
+
log.debug(e),
|
283
|
+
f = "\\"123\\"",
|
284
|
+
log.debug(f),
|
285
|
+
g = "\\$15.7",
|
286
|
+
log.debug(g),
|
287
|
+
h = $\\$15.7$,
|
288
|
+
log.debug(h),
|
289
|
+
i = "http:\\\\www.baidu.com",
|
290
|
+
log.debug(i),
|
291
|
+
j = $http://www.baidu.com$,
|
292
|
+
log.debug(j)
|
293
|
+
`
|
294
|
+
await runExpression(expression)
|
295
|
+
}
|
296
|
+
|
297
|
+
/**
|
298
|
+
* condition
|
299
|
+
*/
|
300
|
+
async function testCondition () {
|
301
|
+
const expression = `
|
302
|
+
1 != 1 :(
|
303
|
+
throw "异常"
|
304
|
+
),null,
|
305
|
+
1 + 1 != 2 :(
|
306
|
+
throw "异常"
|
307
|
+
),null,
|
308
|
+
!(2 > 3) && !(3 > 2):(
|
309
|
+
throw "异常"
|
310
|
+
),null,
|
311
|
+
2 > 3 :(
|
312
|
+
throw "异常"
|
313
|
+
),null,
|
314
|
+
!(3 > 2) :(
|
315
|
+
throw "异常"
|
316
|
+
),null,
|
317
|
+
y = 1 > 0,
|
318
|
+
!y && 1 > 0 :(
|
319
|
+
throw "异常"
|
320
|
+
),null
|
321
|
+
`
|
322
|
+
const data = {
|
323
|
+
type: '1'
|
324
|
+
}
|
325
|
+
await runExpression(expression, data)
|
326
|
+
}
|
327
|
+
|
328
|
+
/**
|
329
|
+
* throw
|
330
|
+
*/
|
331
|
+
async function testThrow () {
|
332
|
+
const expression = `
|
333
|
+
data.type == 2 :(
|
334
|
+
throw "error",
|
335
|
+
log.debug(result)
|
336
|
+
),null
|
337
|
+
`
|
338
|
+
const data = {
|
339
|
+
type: '1'
|
340
|
+
}
|
341
|
+
await runExpression(expression, data)
|
342
|
+
}
|
343
|
+
|
344
|
+
/**
|
345
|
+
* JSONArray loop
|
346
|
+
*/
|
347
|
+
async function testJSONArrayLoop () {
|
348
|
+
const expression = `
|
349
|
+
log.debug("test-JSONArray"),
|
350
|
+
datas = [1,2,3,4,5],
|
351
|
+
datas.each(
|
352
|
+
log.debug(\${row}\$)
|
353
|
+
),
|
354
|
+
log.debug("test-Set"),
|
355
|
+
data.testSet.each(
|
356
|
+
log.debug(\${row}\$)
|
357
|
+
),
|
358
|
+
log.debug("test-Array"),
|
359
|
+
data.testArray.each(
|
360
|
+
log.debug(\${row}\$)
|
361
|
+
)
|
362
|
+
`
|
363
|
+
const data = {
|
364
|
+
testSet: [1, 2, 3, 4, 5],
|
365
|
+
testArray: 'a|b|c'.split('\|')
|
366
|
+
}
|
367
|
+
await runExpression(expression, data)
|
368
|
+
}
|
369
|
+
|
370
|
+
/**
|
371
|
+
* JSONObject loop
|
372
|
+
*/
|
373
|
+
async function testJSONObjectLoop () {
|
374
|
+
const expression = `
|
375
|
+
log.debug("test-JSONObject"),
|
376
|
+
datas = {name: 1, age: 2},
|
377
|
+
datas.each(
|
378
|
+
log.debug(\${rowKey}:{row}$)
|
379
|
+
),
|
380
|
+
log.debug("test-Map"),
|
381
|
+
data.testMap.each(
|
382
|
+
log.debug(\${rowKey}:{row}$)
|
383
|
+
)
|
384
|
+
`
|
385
|
+
const data = {
|
386
|
+
testMap: {
|
387
|
+
name: 'xxx',
|
388
|
+
age: 18,
|
389
|
+
gender: '男'
|
390
|
+
}
|
391
|
+
}
|
392
|
+
await runExpression(expression, data)
|
393
|
+
}
|
394
|
+
|
395
|
+
/**
|
396
|
+
* int loop
|
397
|
+
*/
|
398
|
+
async function testIntLoop () {
|
399
|
+
const expression = `
|
400
|
+
a = 5,
|
401
|
+
a.each(
|
402
|
+
log.debug(row)
|
403
|
+
),
|
404
|
+
(0,5).each(
|
405
|
+
log.debug(row)
|
406
|
+
),
|
407
|
+
null
|
408
|
+
`
|
409
|
+
await runExpression(expression)
|
410
|
+
}
|
411
|
+
|
412
|
+
/**
|
413
|
+
* continue and break
|
414
|
+
*/
|
415
|
+
async function testContinueAndBreak () {
|
416
|
+
const expression = `
|
417
|
+
datas = [1,2,3,4,5,6,7],
|
418
|
+
datas.each(
|
419
|
+
row == 3 :(
|
420
|
+
continue
|
421
|
+
),row == 5:(
|
422
|
+
break
|
423
|
+
),
|
424
|
+
log.debug(row)
|
425
|
+
)
|
426
|
+
`
|
427
|
+
await runExpression(expression)
|
428
|
+
}
|
429
|
+
|
430
|
+
/**
|
431
|
+
* comment
|
432
|
+
*/
|
433
|
+
async function testComment () {
|
434
|
+
const expression = `
|
435
|
+
$//排序单表查询
|
436
|
+
select {items}
|
437
|
+
from {tablename}
|
438
|
+
where {condition}
|
439
|
+
order by {orderitem}
|
440
|
+
`
|
441
|
+
await runExpression(expression)
|
442
|
+
}
|
443
|
+
|
444
|
+
/**
|
445
|
+
* return
|
446
|
+
*/
|
447
|
+
async function testReturn () {
|
448
|
+
const expression = `
|
449
|
+
data.type == 1 :(
|
450
|
+
return "123",
|
451
|
+
log.debug(123)
|
452
|
+
),(
|
453
|
+
return 2
|
454
|
+
),
|
455
|
+
log.debug(123)
|
456
|
+
`
|
457
|
+
const data = {
|
458
|
+
type: 1
|
459
|
+
}
|
460
|
+
await runExpression(expression, data)
|
461
|
+
}
|
462
|
+
|
463
|
+
/**
|
464
|
+
* lambda
|
465
|
+
*/
|
466
|
+
async function testLambda () {
|
467
|
+
const expression = `
|
468
|
+
log.debug("进入外层逻辑,参数:{data}"),
|
469
|
+
age = 13,
|
470
|
+
// 声明一个lambda块
|
471
|
+
lambdaObj = (data) => {
|
472
|
+
index = 1,
|
473
|
+
log.debug("进入lambda了"),
|
474
|
+
log.debug("传入lambda块的参数:{data}"),
|
475
|
+
log.debug("外层的只读参数:{age}"),
|
476
|
+
return "执行lambda完成"
|
477
|
+
},
|
478
|
+
log.debug("age参数:{age}"),
|
479
|
+
result = lambdaObj.apply({
|
480
|
+
name: "江超"
|
481
|
+
}),
|
482
|
+
result = lambdaObj.apply({
|
483
|
+
name: "大神"
|
484
|
+
}),
|
485
|
+
log.debug("result:{result}"),
|
486
|
+
return {
|
487
|
+
func: lambdaObj
|
488
|
+
}
|
489
|
+
`
|
490
|
+
const data = {
|
491
|
+
type: 1
|
492
|
+
}
|
493
|
+
await runExpression(expression, data)
|
494
|
+
}
|
495
|
+
|
496
|
+
async function runExpression (expression, data) {
|
497
|
+
const program = new Program(expression)
|
498
|
+
const d = program.parse()
|
499
|
+
const params = {}
|
500
|
+
if (data == null) {
|
501
|
+
data = {}
|
502
|
+
}
|
503
|
+
params.data = data
|
504
|
+
params.log = new LogicConsole()
|
505
|
+
params.b = 5
|
506
|
+
const result = await d.invoke(params)
|
507
|
+
console.log(result)
|
508
|
+
return result
|
509
|
+
}
|