cloud-web-corejs 1.1.0-dev.6 → 1.1.0-dev.61
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/README.md +38 -0
- package/bin/core-resources.js +16 -0
- package/bin/create-child-app.js +34 -0
- package/docs/child-app/README.md +95 -0
- package/docs/child-app/activiti-resources.md +63 -0
- package/docs/child-app/generate-prompt.md +55 -0
- package/docs/child-app/luckysheet-resources.md +80 -0
- package/docs/child-app/public-resources-plan.md +288 -0
- package/docs/child-app/resources-implementation.md +101 -0
- package/docs/child-app/tinymce-resources.md +88 -0
- package/docs/child-app/validation.md +34 -0
- package/docs/qiankun/346/216/245/345/205/245/345/215/217/350/256/256.md +298 -0
- package/docs/qiankun/350/257/246/346/203/205/346/211/277/350/275/275/345/255/220/345/272/224/347/224/250/345/257/271/346/216/245/346/270/205/345/215/225.md +111 -0
- package/package.json +29 -4
- package/resource-tools/index.js +126 -0
- package/src/app-bootstrap.js +531 -0
- package/src/app-bootstrap.sync.js +502 -0
- package/src/boot-assets.legacy.js +13 -0
- package/src/boot-assets.next.js +7 -0
- package/src/components/Qrcode/fileParse.vue +11 -0
- package/src/components/Tinymce/dynamicLoadScript.js +51 -59
- package/src/components/Tinymce/index.vue +382 -336
- package/src/components/Tinymce/mce-chrome.scss +150 -0
- package/src/components/VabUpload/image-viewer.vue +18 -10
- package/src/components/VabUpload/index.js +11 -4
- package/src/components/VabUpload/index.vue +1 -1
- package/src/components/VabUpload/mixins/fileLibraryDialog.js +2 -0
- package/src/components/VabUpload/mixins.js +72 -40
- package/src/components/VabUpload/partUploadConfig.js +95 -0
- package/src/components/VabUpload/privateProfileDialogMixins.js +2 -0
- package/src/components/VabUpload/style.scss +282 -0
- package/src/components/VabUpload/view.vue +19 -18
- package/src/components/baseArea/index.vue +2 -2
- package/src/components/baseInputExport/mixins.js +1 -6
- package/src/components/bizTab/BizTabListPage.vue +66 -33
- package/src/components/bizTab/README.md +3 -1
- package/src/components/bizTab/bizBillDetailMixin.js +2 -0
- package/src/components/code-editor/ace-chrome.scss +17 -0
- package/src/components/code-editor/index.vue +361 -340
- package/src/components/errorMsg/index.vue +142 -13
- package/src/components/errorMsg/mixins.js +53 -0
- package/src/components/excelExport/conditionExportConfig.js +112 -0
- package/src/components/excelExport/exportColumnMemory.js +118 -0
- package/src/components/excelExport/exportFieldDialog.vue +50 -38
- package/src/components/excelExport/exportType.js +8 -0
- package/src/components/excelExport/index.js +30 -13
- package/src/components/excelExport/index.vue +7 -1
- package/src/components/excelExport/mixins.js +782 -293
- package/src/components/excelImport/index.vue +156 -156
- package/src/components/excelImport/mixins.js +888 -834
- package/src/components/fileLibrary/mixins/indexMixins.js +2 -0
- package/src/components/fileLibrary/style.scss +579 -0
- package/src/components/formDialog/index.vue +11 -8
- package/src/components/hiprint/style.scss +188 -0
- package/src/components/hiprint/view/json-view.vue +4 -4
- package/src/components/jdPrint/mixins.js +2 -0
- package/src/components/jsonImport/index.vue +1 -1
- package/src/components/jsonImport/mixins.js +6 -10
- package/src/components/langImport/index.vue +1 -1
- package/src/components/langImport/mixins.js +6 -10
- package/src/components/luckysheet/loadResources.js +64 -0
- package/src/components/luckysheet/view.vue +239 -210
- package/src/components/mobile/buttonGroup/index.vue +1 -1
- package/src/components/mobile/wf/addTaskUserdialog.vue +100 -80
- package/src/components/mobile/wf/content.vue +1734 -1662
- package/src/components/mobile/wf/deleteTaskUserDialog.vue +73 -54
- package/src/components/mobile/wf/selectUserDialog.vue +118 -0
- package/src/components/mobile/wf/setCandidateDialog.vue +69 -48
- package/src/components/mobile/wf/urgingDialog.vue +75 -52
- package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
- package/src/components/obsUpload/index.js +4 -1
- package/src/components/obsUpload/index.vue +1 -1
- package/src/components/obsUpload/mixins.js +45 -15
- package/src/components/onlineTalk/index.vue +4 -4
- package/src/components/onlineTalk/mixins.js +21 -7
- package/src/components/table/index.js +96 -81
- package/src/components/table/plugins/cell-area/index.js +10 -3
- package/src/components/table/style.scss +1399 -0
- package/src/components/table/vxeFilter/mixin.js +28 -18
- package/src/components/wf/content.vue +3 -2
- package/src/components/wf/content2.vue +1 -1
- package/src/components/wf/style.scss +265 -0
- package/src/components/wf/wf.js +7 -0
- package/src/components/wf/wfActionItems.js +3 -0
- package/src/components/wf/wfStartDialog.vue +1 -0
- package/src/components/wf/wfTransferEnabled.js +54 -0
- package/src/components/wf/wfUtil.js +47 -29
- package/src/components/wf/wfVisibility.js +6 -0
- package/src/components/xform/docs/2026-07 table/344/270/216excelExport/344/277/256/345/244/215/345/217/212/345/257/274/345/207/272/344/274/230/345/214/226.md" +64 -57
- package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +1 -1
- package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +1 -1
- package/src/components/xform/docs/2026-09 /345/212/250/346/200/201/345/255/227/346/256/265/350/247/204/345/210/231/344/270/216/346/265/201/347/250/213/346/216/247/345/210/266/346/211/247/350/241/214/351/241/272/345/272/217/350/220/275/345/234/260/346/226/271/346/241/210.md" +409 -0
- package/src/components/xform/docs/2026-09 /346/235/241/344/273/266/345/257/274/345/207/272/345/244/247/346/225/260/346/215/256/351/207/217/345/264/251/346/272/203/346/216/222/346/237/245.md" +389 -0
- package/src/components/xform/docs/2026-09 /346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206P0/344/273/243/347/240/201/350/257/204/345/256/241.md" +255 -0
- package/src/components/xform/docs/2026-09 /346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206P0/346/265/213/350/257/225/351/252/214/350/257/201/345/256/236/346/226/275/346/226/207/346/241/243.md" +595 -0
- package/src/components/xform/docs/2026-09 /347/274/226/350/276/221/350/241/250/350/241/214/345/206/205/344/277/235/345/255/230/346/240/241/351/252/214/350/214/203/345/233/264/344/270/216/345/210/227/345/277/205/345/241/253/350/247/243/346/236/220/344/277/256/345/244/215.md" +233 -0
- package/src/components/xform/docs/2026-09 /350/241/250/345/215/225/345/257/274/345/205/245/351/200/232/351/201/223/346/242/263/347/220/206/344/270/216/350/220/275/345/234/260/346/226/271/346/241/210.md" +745 -0
- package/src/components/xform/docs//346/265/217/350/247/210/345/231/250/345/264/251/346/272/203/346/262/273/347/220/206/344/270/216/344/277/256/345/244/215/350/220/275/345/234/260/346/226/271/346/241/210.md +324 -0
- package/src/components/xform/form-designer/designer.js +2133 -2100
- package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +7 -0
- package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +4 -2
- package/src/components/xform/form-designer/form-widget/container-widget/detail-h5-widget.vue +243 -227
- package/src/components/xform/form-designer/form-widget/container-widget/h5-card-pane-widget.vue +228 -207
- package/src/components/xform/form-designer/form-widget/container-widget/h5-card-widget.vue +165 -136
- package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +30 -4
- package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +190 -185
- package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +2657 -1774
- package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +27 -4
- package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/a-text-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/cascader-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/census-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/color-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/copy_button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/descriptions-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/divider-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/download-button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +35 -4
- package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +64 -10
- package/src/components/xform/form-designer/form-widget/field-widget/file-upload-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +14 -4
- package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +19 -6
- package/src/components/xform/form-designer/form-widget/field-widget/import2-button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/index.js +10 -1
- package/src/components/xform/form-designer/form-widget/field-widget/input-batch-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/input-widget.vue +29 -3
- package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/news-list-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/picture-upload-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/rate-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/rich-editor-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/row-col-select-widget.vue +64 -0
- package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/select-export-button-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -2
- package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -145
- package/src/components/xform/form-designer/form-widget/field-widget/slider-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/static-text-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/switch-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +3 -2
- package/src/components/xform/form-designer/form-widget/field-widget/tempStorage-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/textarea-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/title-head-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +1 -1
- package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +3 -3
- package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +25 -1
- package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +1 -1
- package/src/components/xform/form-designer/indexMixin.js +27 -0
- package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +687 -602
- package/src/components/xform/form-designer/setting-panel/form-setting.vue +269 -36
- package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +335 -12
- package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +23 -7
- package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +13 -1
- package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +846 -860
- package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tab-lazyRender-editor.vue +27 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onTabChange-editor.vue +28 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onTabClick-editor.vue +28 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +62 -1
- package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +142 -2
- package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/empty-number-input.vue +51 -0
- package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +27 -2
- package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +33 -3
- package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +2 -4
- package/src/components/xform/form-designer/setting-panel/property-editor/suffixIconClickable-editor.vue +23 -0
- package/src/components/xform/form-designer/setting-panel/propertyRegister.js +18 -4
- package/src/components/xform/form-designer/toolbar-panel/index.vue +884 -874
- package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +13 -0
- package/src/components/xform/form-designer/widget-panel/index.vue +11 -7
- package/src/components/xform/form-designer/widget-panel/indexMixin.js +15 -2
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +152 -9
- package/src/components/xform/form-render/container-item/containerItemMixin.js +93 -8
- package/src/components/xform/form-render/container-item/data-table-item.vue +352 -347
- package/src/components/xform/form-render/container-item/data-table-mixin.js +7261 -5985
- package/src/components/xform/form-render/container-item/detail-h5-item.vue +48 -19
- package/src/components/xform/form-render/container-item/detail-item.vue +350 -446
- package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +55 -1
- package/src/components/xform/form-render/container-item/list-h5-item.vue +261 -178
- package/src/components/xform/form-render/container-item/panel-item.vue +1 -1
- package/src/components/xform/form-render/container-item/tab-item.vue +177 -129
- package/src/components/xform/form-render/fieldControlEngine.js +218 -0
- package/src/components/xform/form-render/fieldControlMixin.js +536 -0
- package/src/components/xform/form-render/index.vue +164 -153
- package/src/components/xform/form-render/indexMixin.js +5443 -5311
- package/src/components/xform/form-render/pageDialogScope.js +54 -0
- package/src/components/xform/icon-picker/index.vue +1 -1
- package/src/components/xform/lang/en-US.js +8 -0
- package/src/components/xform/lang/zh-CN.js +9 -0
- package/src/components/xform/mixins/businessLock.js +59 -0
- package/src/components/xform/mixins/defaultHandle.js +713 -707
- package/src/components/xform/mixins/scriptHttp.js +42 -21
- package/src/components/xform/mixins/wfStart.js +105 -0
- package/src/components/xform/mixins/wfVisibility.js +33 -0
- package/src/components/xform/styles/census.scss +288 -0
- package/src/components/xform/styles/containers.scss +215 -0
- package/src/components/xform/styles/designer.scss +904 -0
- package/src/components/xform/styles/detail-temp.scss +71 -0
- package/src/components/xform/styles/h5-designer.scss +191 -0
- package/src/components/xform/styles/h5-runtime.scss +520 -0
- package/src/components/xform/styles/h5.scss +836 -516
- package/src/components/xform/styles/skins.scss +398 -0
- package/src/components/xform/styles/table-layout.scss +91 -0
- package/src/components/xform/styles/titles.scss +255 -0
- package/src/components/xform/utils/dynamicSchemaUtil.js +385 -361
- package/src/components/xform/utils/fixedQueryUtil.js +29 -4
- package/src/components/xform/utils/serviceNameCache.js +69 -0
- package/src/components/xform/utils/tableColumnHelper.js +46 -4
- package/src/components/xform/utils/util.js +1776 -1708
- package/src/core-resources/css/h5.scss +548 -0
- package/src/core-resources/css/iconfont.css +1447 -0
- package/src/core-resources/font/iconfont.ttf +0 -0
- package/src/core-resources/font/iconfont.woff +0 -0
- package/src/core-resources/font/iconfont.woff2 +0 -0
- package/src/core-resources/images/default-header.png +0 -0
- package/src/core-resources/images/ico-default_wenjian.svg +1 -0
- package/src/core-resources/images/ico-excel.svg +1 -0
- package/src/core-resources/images/ico-ftl.svg +7 -0
- package/src/core-resources/images/ico-html.svg +1 -0
- package/src/core-resources/images/ico-java.svg +1 -0
- package/src/core-resources/images/ico-music.svg +1 -0
- package/src/core-resources/images/ico-pdf.svg +1 -0
- package/src/core-resources/images/ico-photo.svg +1 -0
- package/src/core-resources/images/ico-ppt.svg +1 -0
- package/src/core-resources/images/ico-psd.svg +1 -0
- package/src/core-resources/images/ico-service.png +0 -0
- package/src/core-resources/images/ico-txt.svg +1 -0
- package/src/core-resources/images/ico-video.svg +1 -0
- package/src/core-resources/images/ico-vue.svg +8 -0
- package/src/core-resources/images/ico-wenjianjia.svg +1 -0
- package/src/core-resources/images/ico-wrod.svg +1 -0
- package/src/core-resources/images/ico-xml.svg +1 -0
- package/src/core-resources/images/ico-yasuobao.svg +1 -0
- package/src/core-resources/images/icon-error.png +0 -0
- package/src/core-resources/images/icon-tips.png +0 -0
- package/src/core-resources/images/nodata.png +0 -0
- package/src/core-resources/images/nodata2.png +0 -0
- package/src/directive/append-to-body/index.js +48 -0
- package/src/directive/el-dialog-center/index.js +3 -2
- package/src/directive/el-drag-dialog/drag.js +33 -4
- package/src/icons/index.js +9 -0
- package/src/icons/svg/404.svg +1 -0
- package/src/icons/svg/alert.svg +1 -0
- package/src/icons/svg/bug.svg +1 -0
- package/src/icons/svg/button.svg +1 -0
- package/src/icons/svg/card.svg +1 -0
- package/src/icons/svg/cascader-field.svg +1 -0
- package/src/icons/svg/census.svg +1 -0
- package/src/icons/svg/chart.svg +1 -0
- package/src/icons/svg/checkbox-field.svg +1 -0
- package/src/icons/svg/clipboard.svg +1 -0
- package/src/icons/svg/color-field.svg +1 -0
- package/src/icons/svg/component.svg +1 -0
- package/src/icons/svg/custom-component.svg +1 -0
- package/src/icons/svg/dashboard.svg +1 -0
- package/src/icons/svg/data-table.svg +1 -0
- package/src/icons/svg/date-field.svg +1 -0
- package/src/icons/svg/date-range-field.svg +1 -0
- package/src/icons/svg/descriptions.svg +1 -0
- package/src/icons/svg/divider.svg +1 -0
- package/src/icons/svg/document.svg +1 -0
- package/src/icons/svg/documentation.svg +1 -0
- package/src/icons/svg/drag.svg +1 -0
- package/src/icons/svg/echart-category.svg +1 -0
- package/src/icons/svg/echart-pie.svg +1 -0
- package/src/icons/svg/echart.svg +1 -0
- package/src/icons/svg/edit.svg +1 -0
- package/src/icons/svg/education.svg +1 -0
- package/src/icons/svg/email.svg +1 -0
- package/src/icons/svg/example.svg +1 -0
- package/src/icons/svg/excel.svg +1 -0
- package/src/icons/svg/exit-fullscreen.svg +1 -0
- package/src/icons/svg/eye-open.svg +1 -0
- package/src/icons/svg/eye.svg +1 -0
- package/src/icons/svg/file-upload-field.svg +1 -0
- package/src/icons/svg/form.svg +1 -0
- package/src/icons/svg/fullscreen.svg +1 -0
- package/src/icons/svg/github.svg +1 -0
- package/src/icons/svg/grid.svg +1 -0
- package/src/icons/svg/guide.svg +1 -0
- package/src/icons/svg/html-text.svg +1 -0
- package/src/icons/svg/ico-more.svg +1 -0
- package/src/icons/svg/ico-wenjianjia.svg +1 -0
- package/src/icons/svg/icon.svg +1 -0
- package/src/icons/svg/input-batch.svg +1 -0
- package/src/icons/svg/international.svg +1 -0
- package/src/icons/svg/language.svg +1 -0
- package/src/icons/svg/link.svg +1 -0
- package/src/icons/svg/list-export.svg +1 -0
- package/src/icons/svg/list.svg +1 -0
- package/src/icons/svg/lock.svg +1 -0
- package/src/icons/svg/message.svg +1 -0
- package/src/icons/svg/money.svg +1 -0
- package/src/icons/svg/nested.svg +1 -0
- package/src/icons/svg/news-list.svg +1 -0
- package/src/icons/svg/node-tree.svg +1 -0
- package/src/icons/svg/number-field.svg +1 -0
- package/src/icons/svg/password.svg +1 -0
- package/src/icons/svg/pdf.svg +1 -0
- package/src/icons/svg/people.svg +1 -0
- package/src/icons/svg/peoples.svg +1 -0
- package/src/icons/svg/picture-upload-field.svg +1 -0
- package/src/icons/svg/qq.svg +1 -0
- package/src/icons/svg/query.svg +1 -0
- package/src/icons/svg/radio-field.svg +1 -0
- package/src/icons/svg/rate-field.svg +1 -0
- package/src/icons/svg/redo.svg +1 -0
- package/src/icons/svg/rich-editor-field.svg +1 -0
- package/src/icons/svg/search.svg +1 -0
- package/src/icons/svg/searchbox.svg +1 -0
- package/src/icons/svg/section.svg +1 -0
- package/src/icons/svg/select-field.svg +1 -0
- package/src/icons/svg/shopping.svg +1 -0
- package/src/icons/svg/size.svg +1 -0
- package/src/icons/svg/skill.svg +1 -0
- package/src/icons/svg/slider-field.svg +1 -0
- package/src/icons/svg/slot-component.svg +1 -0
- package/src/icons/svg/slot-field.svg +1 -0
- package/src/icons/svg/star.svg +1 -0
- package/src/icons/svg/static-text.svg +1 -0
- package/src/icons/svg/status.svg +1 -0
- package/src/icons/svg/sub-form.svg +1 -0
- package/src/icons/svg/switch-field.svg +1 -0
- package/src/icons/svg/tab.svg +1 -0
- package/src/icons/svg/table.svg +1 -0
- package/src/icons/svg/text-field.svg +1 -0
- package/src/icons/svg/text.svg +1 -0
- package/src/icons/svg/textarea-field.svg +1 -0
- package/src/icons/svg/theme.svg +1 -0
- package/src/icons/svg/time-field.svg +1 -0
- package/src/icons/svg/time-range-field.svg +1 -0
- package/src/icons/svg/tips-text.svg +1 -0
- package/src/icons/svg/title-head.svg +1 -0
- package/src/icons/svg/tree-pane.svg +1 -0
- package/src/icons/svg/tree-table.svg +1 -0
- package/src/icons/svg/tree.svg +1 -0
- package/src/icons/svg/undo.svg +1 -0
- package/src/icons/svg/uploadbox.svg +1 -0
- package/src/icons/svg/user.svg +1 -0
- package/src/icons/svg/vf-box.svg +1 -0
- package/src/icons/svg/vf-dialog.svg +1 -0
- package/src/icons/svg/vf-drawer.svg +1 -0
- package/src/icons/svg/vue-sfc.svg +1 -0
- package/src/icons/svg/wechat.svg +1 -0
- package/src/icons/svg/zip.svg +1 -0
- package/src/index.js +2 -510
- package/src/index.next.js +5 -0
- package/src/index.sync.js +5 -0
- package/src/layout/components/Sidebar/default.vue +1656 -1655
- package/src/layout/components/TagsView/index.vue +330 -323
- package/src/layout/components/TagsView/style.scss +92 -0
- package/src/layout/components/watermark/index.vue +1 -1
- package/src/layout/defaultLayout.vue +2 -2
- package/src/router/index.js +43 -48
- package/src/router/modules/customer.js +12 -0
- package/src/store/modules/settings.js +1 -1
- package/src/store/modules/tagsView.js +241 -217
- package/src/store/modules/user.js +16 -12
- package/src/styles/btn.scss +315 -0
- package/src/styles/dialog.scss +1710 -0
- package/src/styles/element-ui.scss +1076 -0
- package/src/styles/element-variables.scss +31 -0
- package/src/styles/global.scss +115 -0
- package/src/styles/index.scss +245 -0
- package/src/styles/layout-skins.scss +840 -0
- package/src/styles/legacy-base.scss +19 -0
- package/src/styles/menu-icons.scss +75 -0
- package/src/styles/mixin.scss +80 -0
- package/src/styles/nprogress.scss +14 -0
- package/src/styles/page-shell.scss +723 -0
- package/src/styles/sidebar.scss +296 -0
- package/src/styles/split-handle.scss +52 -0
- package/src/styles/theme-variables.scss +7 -0
- package/src/styles/transition.scss +48 -0
- package/src/styles/utilities.scss +253 -0
- package/src/styles/variables.scss +72 -0
- package/src/utils/baseDictsCache.js +197 -0
- package/src/utils/chunkLoadError.js +24 -0
- package/src/utils/featureResources.js +57 -0
- package/src/utils/importLimit.js +72 -0
- package/src/utils/pdfUtil.js +6 -1
- package/src/utils/request.js +149 -9
- package/src/utils/resolveViewComponent.js +45 -90
- package/src/utils/runtimeRecovery.js +105 -0
- package/src/utils/swiperLoader.js +20 -0
- package/src/utils/vab.js +1334 -1283
- package/src/utils/xlsxLoader.js +29 -0
- package/src/views/bd/setting/formVersion/compareContMixin.scss +1 -1
- package/src/views/bd/setting/form_template/edit.vue +378 -356
- package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
- package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
- package/src/views/bd/setting/form_template/list.vue +304 -303
- package/src/views/bd/setting/form_template/mixins/edit.js +344 -280
- package/src/views/bd/setting/form_template/mixins/list.js +749 -721
- package/src/views/bd/setting/form_template/mixins/list2.js +412 -411
- package/src/views/bd/setting/form_template/mixins/wf_list.js +431 -430
- package/src/views/mobile/user/area/dialog.vue +1 -1
- package/src/views/mobile/user/user/dialog.vue +1 -1
- package/src/views/user/bill_setting/mixins/wf.js +8 -0
- package/src/views/user/bill_setting/render.vue +1 -1
- package/src/views/user/commMenu/index.vue +3 -1
- package/src/views/user/commMenu/style.scss +123 -0
- package/src/views/user/common_attribute/edit.vue +2 -0
- package/src/views/user/common_attribute/itemEdit.vue +2 -0
- package/src/views/user/file_view_ins/list.vue +970 -970
- package/src/views/user/form/form_template/list.vue +527 -506
- package/src/views/user/form/vform/designer.vue +823 -821
- package/src/views/user/form/view/list.vue +24 -1
- package/src/views/user/home/default.vue +1124 -1117
- package/src/views/user/home/default2.vue +12 -8
- package/src/views/user/home/index.vue +102 -102
- package/src/views/user/home/wjl/content.vue +1581 -1569
- package/src/views/user/intf_permission/edit.vue +230 -0
- package/src/views/user/intf_permission/list.vue +196 -0
- package/src/views/user/menuFallback/index.vue +23 -0
- package/src/views/user/notify_message/dialog.vue +139 -139
- package/src/views/user/outLink/form_view.vue +202 -202
- package/src/views/user/outLink/index.vue +110 -110
- package/src/views/user/role/edit.vue +4 -0
- package/src/views/user/role/role-box.scss +83 -0
- package/src/views/user/role/voc_edit.vue +4 -0
- package/src/views/user/user/list.vue +28 -6
- package/src/views/user/wf/iframe/index.vue +51 -51
- package/src/views/user/wf/iframe/index2.vue +64 -64
- package/src/views/user/wf/wf_diy_attribute/edit.vue +1 -1
- package/src/views/user/wf/wf_manage/list2.vue +871 -871
- package/src/views/user/wf/wf_manage/wfContentDialog.vue +177 -126
- package/src/views/user/wf/wf_obj_config/activiti_wf.vue +134 -133
- package/src/views/user/wf/wf_obj_config/importItemDialog.vue +1 -1
- package/src/views/user/wf/wf_obj_config/list.vue +747 -746
- package/src/views/user/wf/wf_obj_config/list_form.vue +374 -373
- package/templates/child-app/.env +3 -0
- package/templates/child-app/README.md +49 -0
- package/templates/child-app/app.config.js +6 -0
- package/templates/child-app/babel.config.js +1 -0
- package/templates/child-app/core-resources.config.js +15 -0
- package/templates/child-app/gitignore +7 -0
- package/templates/child-app/package.json +34 -0
- package/templates/child-app/public/index.html +12 -0
- package/templates/child-app/src/assets/401_images/401.gif +0 -0
- package/templates/child-app/src/assets/404_images/404.png +0 -0
- package/templates/child-app/src/assets/404_images/404_cloud.png +0 -0
- package/templates/child-app/src/assets/logo.png +0 -0
- package/templates/child-app/src/corejsConfig.js +2 -0
- package/templates/child-app/src/icons/index.js +2 -0
- package/templates/child-app/src/icons/svg/child-demo.svg +1 -0
- package/templates/child-app/src/layout/index.vue +4 -0
- package/templates/child-app/src/main.js +5 -0
- package/templates/child-app/src/prefixConfig.js +13 -0
- package/templates/child-app/src/resources/css/login.scss +29 -0
- package/templates/child-app/src/resources/images/bg-login5.jpg +0 -0
- package/templates/child-app/src/resources/images/home-img.png +0 -0
- package/templates/child-app/src/router/modules/customer.js +3 -0
- package/templates/child-app/src/settings.js +25 -0
- package/templates/child-app/src/styles/app.scss +2 -0
- package/templates/child-app/src/views/demo/detail.vue +19 -0
- package/templates/child-app/src/views/demo/list.vue +38 -0
- package/templates/child-app/src/views/user/login/index.vue +18 -0
- package/templates/child-app/vue.config.js +107 -0
- package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +0 -285
- package/src/components/xform/form-render/formDynamicFieldMixin.js +0 -131
- package/src/views/demo/bizTab/bill/billConfig.js +0 -41
- package/src/views/demo/bizTab/bill/detail.vue +0 -436
- package/src/views/demo/bizTab/bill/list.vue +0 -288
- package/src/views/demo/bizTab/bill/productDialog.vue +0 -176
- package/src/views/demo/bizTab/simple/billApi.js +0 -123
- package/src/views/demo/bizTab/simple/detail.vue +0 -407
- package/src/views/demo/bizTab/simple/list.vue +0 -217
- package/src/views/demo/bizTab/standalone/index.vue +0 -121
- package/src/views/demo/bizTab/wf/billConfig.js +0 -44
- package/src/views/demo/bizTab/wf/detail.vue +0 -661
- package/src/views/demo/bizTab/wf/list.vue +0 -242
- package/src/views/user/outLink/cc_form_view.vue +0 -188
- /package/src/{resources → core-resources}/js/base/common.js +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# cloud-web-corejs
|
|
2
|
+
|
|
3
|
+
Vue 2 企业应用基础源码包,提供共享页面、组件、登录权限、路由、状态管理及 qiankun 子应用生命周期。消费工程使用 Vue CLI/webpack 编译源码。
|
|
4
|
+
|
|
5
|
+
## 创建引包子应用
|
|
6
|
+
|
|
7
|
+
在本仓库执行:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm run create:child -- ../my-app myapp myapp-web
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
或使用已安装的、包含生成器版本的 npm 包:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
node node_modules/cloud-web-corejs/bin/create-child-app.js ../my-app myapp myapp-web
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
生成器需要 Node 20+,目标目录必须不存在。创建后配置应用身份、API 网关,再在新工程执行 `npm install`、`npm run dev`。详见生成工程的 README。包尚未发布的本地改动可通过 npm pack tarball 验证。
|
|
20
|
+
|
|
21
|
+
- [完整接入契约](docs/child-app/README.md)
|
|
22
|
+
- [给 AI 生成工具的提示词](docs/child-app/generate-prompt.md)
|
|
23
|
+
- [子应用模板](templates/child-app/README.md)
|
|
24
|
+
- [qiankun 接入协议](docs/qiankun接入协议.md)
|
|
25
|
+
|
|
26
|
+
## 入口
|
|
27
|
+
|
|
28
|
+
新模板使用 `cloud-web-corejs/src/index.next.js`,并配置 `@base` 指向包的 `src`,`@` 指向应用自身 `src`。该入口负责基础资源和应用启动,同时导出 qiankun 生命周期。
|
|
29
|
+
|
|
30
|
+
旧 `src/index.js` 入口保留兼容,仍要求消费工程提供旧 styles/icons。不要直接把本包当作 `Vue.use()` 插件或 Vue 3 组件库。
|
|
31
|
+
|
|
32
|
+
## 仓库验证
|
|
33
|
+
|
|
34
|
+
- `npm run check:package-resources`:Core 资源边界。
|
|
35
|
+
- `npm run check:child-app`:从实际 npm tarball 创建子应用、干净安装并完整生产构建。
|
|
36
|
+
- `npm run check:child-browser -- /path/to/generated-child`:需 Playwright/Chromium,使用本地测试服务验证生产产物;详细边界见接入契约。
|
|
37
|
+
|
|
38
|
+
真实登录、授权菜单和业务接口需要对应后端环境,模板内存示例不能代替业务联调。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const path = require("path");
|
|
3
|
+
const { prepare, readChecked } = require("../resource-tools");
|
|
4
|
+
try {
|
|
5
|
+
const command = process.argv[2];
|
|
6
|
+
if (!["prepare", "check", "check-dist"].includes(command)) throw new Error("Usage: core-resources.js prepare|check|check-dist [dist-directory]");
|
|
7
|
+
const result = prepare(process.cwd(), command !== "prepare");
|
|
8
|
+
if (command === "check-dist") {
|
|
9
|
+
const output = path.resolve(process.argv[3] || "dist");
|
|
10
|
+
for (const record of result.records) readChecked(output, record, "target");
|
|
11
|
+
}
|
|
12
|
+
console.log(`[core-resources] ${command}: ${result.records.length} files, ${result.records.reduce((sum, r) => sum + r.size, 0)} bytes`);
|
|
13
|
+
} catch (error) {
|
|
14
|
+
console.error(error.message);
|
|
15
|
+
process.exitCode = 1;
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
// Callable from the checkout or an installed package. Never overwrites a project.
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const root = path.resolve(__dirname, "..");
|
|
8
|
+
const args = process.argv.slice(2);
|
|
9
|
+
if (args.includes("--help") || args.length === 0) {
|
|
10
|
+
console.log("Usage: node bin/create-child-app.js <new-directory> <appCode> [package-name]");
|
|
11
|
+
process.exit(args.includes("--help") ? 0 : 1);
|
|
12
|
+
}
|
|
13
|
+
const [directory, appCode, packageName = appCode && appCode.toLowerCase()] = args;
|
|
14
|
+
if (args.length > 3 || !/^[A-Za-z][A-Za-z0-9_-]*$/.test(appCode || "") ||
|
|
15
|
+
["base", "micro", "micro_debug"].includes(appCode)) {
|
|
16
|
+
throw new Error("appCode must start with a letter; base, micro and micro_debug are reserved.");
|
|
17
|
+
}
|
|
18
|
+
if (!/^[a-z0-9][a-z0-9._-]*$/.test(packageName || "")) {
|
|
19
|
+
throw new Error("Use a unique, lowercase, unscoped npm package name.");
|
|
20
|
+
}
|
|
21
|
+
const target = path.resolve(directory);
|
|
22
|
+
if (fs.existsSync(target)) throw new Error("Target already exists: " + target);
|
|
23
|
+
fs.cpSync(path.join(root, "templates/child-app"), target, { recursive: true, force: false, errorOnExist: true });
|
|
24
|
+
const manifestPath = path.join(target, "package.json");
|
|
25
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
|
|
26
|
+
manifest.name = packageName;
|
|
27
|
+
manifest.dependencies["cloud-web-corejs"] = require(path.join(root, "package.json")).version;
|
|
28
|
+
fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + "\n");
|
|
29
|
+
const identityPath = path.join(target, "app.config.js");
|
|
30
|
+
fs.writeFileSync(identityPath, fs.readFileSync(identityPath, "utf8").replace('"childapp"', JSON.stringify(appCode)));
|
|
31
|
+
// npm treats .gitignore specially when packing; keep the template as gitignore.
|
|
32
|
+
fs.renameSync(path.join(target, "gitignore"), path.join(target, ".gitignore"));
|
|
33
|
+
console.log("Created " + target + "\nNext: configure API_TARGET, npm install, npm run dev.");
|
|
34
|
+
console.log("Core version: " + manifest.dependencies["cloud-web-corejs"] + " (must be published, or install a local npm tarball).");
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# 引包子应用接入契约
|
|
2
|
+
|
|
3
|
+
适用于本包随附模板。`cloud-web-corejs` 是需要由消费工程编译的 Vue 2 源码包。公开使用方式目前是源码路径导入,不是 `Vue.use(Core)`。未添加 exports 限制,保留已有深层导入兼容性。
|
|
4
|
+
|
|
5
|
+
## 创建
|
|
6
|
+
|
|
7
|
+
仓库开发:`npm run create:child -- /path/to/new-app myapp myapp-web`。
|
|
8
|
+
|
|
9
|
+
已安装包:`node node_modules/cloud-web-corejs/bin/create-child-app.js /path/to/new-app myapp myapp-web`。
|
|
10
|
+
|
|
11
|
+
生成器要求 Node 20+,目标目录必须不存在,不执行安装或发布。Core 依赖版本取生成器所在包的精确版本;若该版本尚未发布,使用本地 `npm pack` 生成的 tarball 安装验证。首次安装后提交锁文件,后续使用 npm ci。不要用 --no-save 作为工程的正式依赖声明。
|
|
12
|
+
|
|
13
|
+
模板、生成器和本文包含在 package.json#files 中。生成提示词见 [generate-prompt.md](./generate-prompt.md)。微前端完整协议见 [qiankun接入协议](../qiankun接入协议.md)。
|
|
14
|
+
|
|
15
|
+
## 必须保留的应用侧契约
|
|
16
|
+
|
|
17
|
+
| 文件/配置 | 用途 |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| app.config.js | 集中定义 appCode、标题、主应用前缀;生成器替换 appCode |
|
|
20
|
+
| src/settings.js | appCode、宿主开关、语言、默认首页、工作流和请求设置 |
|
|
21
|
+
| src/prefixConfig.js | 通过 utils/vab 注入服务前缀;按真实网关修改 |
|
|
22
|
+
| src/corejsConfig.js | 表格、首页等扩展;默认空对象可用,字段以调用方源码为准 |
|
|
23
|
+
| src/router/modules/customer.js | 导出 constantRoutes 数组;默认空,业务路由由权限菜单生成 |
|
|
24
|
+
| src/layout/index.vue | Core 路由/权限模块引用的应用布局,默认包装 Core defaultLayout |
|
|
25
|
+
| src/views/user/login/index.vue | 应用登录入口,默认包装 Core Login |
|
|
26
|
+
| src/views | 应用私有页面,必须保留字面动态加载上下文 |
|
|
27
|
+
| src/assets/{401_images,404_images,logo.png} | Core 错误页和打印设计样式的编译依赖 |
|
|
28
|
+
| src/resources/css/login.scss | Core 默认登录页要求应用提供的品牌样式 |
|
|
29
|
+
| src/resources/images/{bg-login5.jpg,home-img.png} | 默认登录及首页的编译依赖,模板复用仓库素材 |
|
|
30
|
+
| src/icons | 应用图标,与包内 icons 一起由 svg-sprite-loader 编译 |
|
|
31
|
+
|
|
32
|
+
这些是当前源码的反向依赖,不意味着所有资源都已内置 Core。按需更换品牌资源时保留路径,或明确修改相应页面/构建映射。
|
|
33
|
+
|
|
34
|
+
### 设置
|
|
35
|
+
|
|
36
|
+
- appCode 显式填写,须与注册表一致;WEB_PREFIX 默认为 `/<appCode>`。
|
|
37
|
+
- microMainEnabled 默认 false:模板专注子应用。需要独立运行时装载其他应用,可按协议开启。
|
|
38
|
+
- defaultHomePage 指向 `/demo/list.vue`;登录后的用户设置/菜单可能覆盖它。
|
|
39
|
+
- 模板 Login 包装层覆盖普通登录页的初始化 `login()`,阻止 Core 在生产环境自动跳到 MAIN_WEB_PREFIX;其余账号登录、校验、SSO 和 token 处理仍继承 Core。若项目要求统一回主站登录,可恢复直接导出 Core Login。登录成功后的跳转仍需真实后端联调。
|
|
40
|
+
- base64Urls 与后端加密约定一致,不应在未知接口上随意增删。
|
|
41
|
+
- corejsConfig 暂无独立稳定 schema,不应让生成工具猜字段;扩展前查看 components/table/index.js 和目标首页。
|
|
42
|
+
|
|
43
|
+
## 构建与部署
|
|
44
|
+
|
|
45
|
+
新模式入口是 `src/index.next.js`;旧 `src/index.js` 仍要求应用提供旧 styles,模板不使用旧入口。
|
|
46
|
+
|
|
47
|
+
模板保留 `transpileDependencies`、@base 绝对解析、应用/Core 双 SVG 目录和仅注入 theme-variables.scss 的 Sass 配置。生产压缩器关闭多进程,避免多个 worker 复制 Core 的大模块图导致 8 GB 构建机被系统终止;代价是压缩阶段较慢。没有 std 的 DLL、呼叫中心和业务专用构建插件。qiankun 生命周期从最终入口 UMD 导出,HTML 入口脚本在 body 内 blocking 加载。
|
|
48
|
+
|
|
49
|
+
开发端口 17527,根路径与 `/<appCode>/` 均可取到入口及 chunk,`/api` 和开发服务器端点不重写。开发 CORS 响应头只处理静态开发服务;后端网关及生产静态服务跨域需另外配置。
|
|
50
|
+
|
|
51
|
+
开发源码映射使用外置 `cheap-module-source-map`。Core 在 development 下使用同步视图上下文,默认内联映射会让 vendor 脚本接近 100 MB;外置映射减少首屏脚本传输,但不会裁剪 Core 业务能力。首次开发编译仍需等待完整依赖图生成。
|
|
52
|
+
|
|
53
|
+
默认 VUE_APP_BASE_API=/api;API_TARGET 是开发服务器专用代理目标,不进入浏览器。生产需网关提供 /api 转发或构建时设置 API 绝对地址。Core public-path.js 负责挂载后将相对 API 定位到子应用源;不得改成从宿主域名盲目请求。
|
|
54
|
+
|
|
55
|
+
## 可选功能资源
|
|
56
|
+
|
|
57
|
+
总体设计见 [public 资源落地方案](./public-resources-plan.md)。已接入资源工具、[Ace](./resources-implementation.md)、[TinyMCE](./tinymce-resources.md)、[Luckysheet](./luckysheet-resources.md) 和 [Activiti](./activiti-resources.md)。
|
|
58
|
+
|
|
59
|
+
基础样式与 Core 图标已由包提供。以下内容仍需按功能补充,不复制整个 public:
|
|
60
|
+
|
|
61
|
+
| 功能 | 接入前检查 |
|
|
62
|
+
| --- | --- |
|
|
63
|
+
| Ace | 新模板安装独立资源制品并配置 codeEditor basic/full,dev/build 自动准备并校验;旧应用可继续使用原路径 |
|
|
64
|
+
| TinyMCE | 安装独立资源制品并配置 richText full,保留 4.9.2 运行库及现有语言/皮肤,dev/build 自动准备与校验 |
|
|
65
|
+
| Luckysheet | 安装独立资源制品并配置 spreadsheet full,保留 2.1.13 及 8 个已有补丁;只支持一个活动实例 |
|
|
66
|
+
| Activiti | 安装 5.17.0-core.1 制品并配置 workflowDesigner full;当前只支持主应用或非 qiankun 同源页面,qiankun 菜单明确拒绝 |
|
|
67
|
+
| 平台打印/上传 | 检查第三方 SDK、服务地址、鉴权和跨域;普通列表启动不代表这些能力已接通 |
|
|
68
|
+
|
|
69
|
+
路径权威来源是对应组件的当前实现及 WEB_PREFIX,不假设统一 CDN 根路径已经存在。
|
|
70
|
+
|
|
71
|
+
## 业务能力入口
|
|
72
|
+
|
|
73
|
+
| 能力 | 当前源码参考 |
|
|
74
|
+
| --- | --- |
|
|
75
|
+
| 全局组件与插件注册 | src/app-bootstrap.js |
|
|
76
|
+
| HTTP(Vue 原型 $http 等) | src/utils/vab.js、src/utils/request.js;不要修改混淆请求实现 |
|
|
77
|
+
| 表格与扩展 | src/components/table/index.js;复杂表格先确认真实 API |
|
|
78
|
+
| 表单弹框 | src/components/formDialog/README.md 与 index.js |
|
|
79
|
+
| 表单抽屉 | src/components/formDrawer/index.js |
|
|
80
|
+
| 业务详情标签 | src/components/bizTab/README.md |
|
|
81
|
+
| 动态页面 | src/utils/resolveViewComponent.js 的 loadViewComponentAsync / requireViewAsync |
|
|
82
|
+
| 菜单归属与校验 | src/utils/menuAdapter.js |
|
|
83
|
+
| 远程详情 props/回调 | src/components/micro-view-host/contract.js |
|
|
84
|
+
|
|
85
|
+
这是一份能力索引,不承诺目录下所有内部方法都是稳定公共 API。业务生成必须读取目标版本的签名;表格、业务接口分页和工作流参数仍由实际业务契约决定。
|
|
86
|
+
|
|
87
|
+
## 验证边界
|
|
88
|
+
|
|
89
|
+
本轮实际执行结果与未覆盖范围见 [验收记录](./validation.md)。
|
|
90
|
+
|
|
91
|
+
`npm run check:child-app` 会在系统临时目录中 npm pack、从发布内容生成工程、干净安装本地 tarball 并做完整生产构建。不会发布 npm,也不改 std;保留临时工程和日志便于浏览器检查。需要网络下载依赖和足够构建内存。
|
|
92
|
+
|
|
93
|
+
`check:minimal-consumer` 仍只负责样式/图片回归,不替代完整子应用构建。浏览器、真实后端登录和 qiankun 宿主联调需单独验证;构建脚本不会伪造这些结果。
|
|
94
|
+
|
|
95
|
+
安装 Playwright/Chromium 后,可运行 `PLAYWRIGHT_MODULE=/path/to/playwright npm run check:child-browser -- /path/to/generated-child`。脚本启动两个本地端口,用真实 qiankun 跨域加载生产产物;仅在测试服务中模拟登录配置。覆盖登录页渲染、未登录态挂载/update/卸载、详情承载的私有页面懒加载、示例新增/编辑/筛选和静态资源。截图保存在生成工程目录。它不验证真实登录、授权菜单、已登录页面的保活/刷新或业务后端。
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Activiti 5.17 流程设计器资源接入
|
|
2
|
+
|
|
3
|
+
日期:2026-09-15。状态:资源交付、运行时入口迁移和本地浏览器协议验收已完成;真实业务后端联调及 qiankun 回调改造不在本次范围。
|
|
4
|
+
|
|
5
|
+
## 交付边界
|
|
6
|
+
|
|
7
|
+
Activiti 设计器不进入 `cloud-web-corejs` 主包。启用该功能的应用单独安装 `cloud-web-corejs-resources-activiti@5.17.0-core.1`,资源准备工具将其输出到 `activiti-explorer/`。默认模板关闭该功能,因此普通子应用不会承担约 1.48 MB 压缩、5.62 MB 解包的资源体积。
|
|
8
|
+
|
|
9
|
+
制品包含 323 个现有设计器文件及 1 个第三方声明文件。构建器要求输入解压后的官方 `org.activiti:activiti-webapp-explorer2:5.17.0` WAR,并同时锁定官方资源树和本仓库定制树摘要。当前差异为:227 个与上游相同、37 个已修改、59 个本地新增、7 个上游文件未采用。任何一侧变化都会中止打包,避免用上游原版覆盖平台定制。官方 CSS 引用了 WAR 中也不存在的 `images/glasspane.png`,本地补丁删除这条冗余背景图引用,保留纯色与 rgba 遮罩,避免运行时 404。
|
|
10
|
+
|
|
11
|
+
原始文件保留 LGPL-2.1-or-later、MIT、json3 和 es5-shim 等随附声明;制品增加 `THIRD_PARTY_NOTICES.txt`,完整文件关系和 SHA-256 写入 `resources.json`。正式发布前仍应由组织的开源合规流程复核。
|
|
12
|
+
|
|
13
|
+
## 构建资源制品
|
|
14
|
+
|
|
15
|
+
从 Maven Central 取得并解压精确版本的 WAR,然后运行:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm run build:activiti-resources -- /absolute/path/to/extracted-war
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
产出 `artifacts/resources/cloud-web-corejs-resources-activiti-5.17.0-core.1.tgz`。构建器不联网,也不修改旧 `public/activiti-explorer`;该目录作为已审计定制源保留。
|
|
22
|
+
|
|
23
|
+
## 消费应用启用
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install --save-dev --save-exact /absolute/path/cloud-web-corejs-resources-activiti-5.17.0-core.1.tgz
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
在 `core-resources.config.js` 的 `features` 中配置:
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
workflowDesigner: {
|
|
33
|
+
package: "cloud-web-corejs-resources-activiti",
|
|
34
|
+
version: "5.17.0-core.1",
|
|
35
|
+
profile: "full"
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
随后正常运行 `npm run resources:prepare`、`npm run resources:check`、dev 或 build。版本不匹配、文件损坏、目标冲突或应用 `public` 占用同一路径都会明确失败。
|
|
40
|
+
|
|
41
|
+
Core 内现有七处流程设计入口统一通过 `workflowDesignerUrl()` 解析地址。该函数根据实际资源基址设置 iframe 所需的 `sysParamForWf.webPrefix` 和 `baseApi`,并对查询参数编码;未启用资源时不会发出隐式 404。
|
|
42
|
+
|
|
43
|
+
## 运行限制
|
|
44
|
+
|
|
45
|
+
现有 5.17 定制设计器通过 `parent.sysParamForWf`、`parent.$vueRoot` 和用户/岗位/表单选择等真实父窗口回调工作,且 token 位于同源 `sessionStorage`。因此当前只支持:
|
|
46
|
+
|
|
47
|
+
- 主应用直接打开;
|
|
48
|
+
- 非 qiankun 应用中与承载页面同源的 iframe。
|
|
49
|
+
|
|
50
|
+
qiankun 模式会被运行时明确拒绝,因为沙箱中的全局回调不会自动成为 iframe 所见的真实父窗口回调。要支持 qiankun,必须另行把 token、模型 API 和父窗口回调改造成受控 `postMessage` 协议,校验 origin,并完成安全评审;仅配置 CORS、同源部署或复制静态资源无法解决。
|
|
51
|
+
|
|
52
|
+
业务后端必须实现 `/{serviceId}/model/{modelId}/json` 和 `/{serviceId}/model/{modelId}/save`,并维持当前 token、模型 JSON、脚本和候选人范围契约。
|
|
53
|
+
|
|
54
|
+
## 验收
|
|
55
|
+
|
|
56
|
+
资源单测覆盖禁用状态、精确版本、摘要、目标冲突、同源解析和跨源拒绝。完整验证命令:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ACTIVITI_SOURCE_DIR=/absolute/path/to/extracted-war node build/check-child-app.js --activiti
|
|
60
|
+
PLAYWRIGHT_MODULE=/absolute/path/to/playwright node build/check-child-browser.js /tmp/generated-child --activiti
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
浏览器测试使用同源本地后端桩,实际加载 modeler、stencilset 和模型 JSON,并操作保存按钮验证 POST 协议;它不等同于真实鉴权、权限菜单和业务后端验收。
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# 子应用生成提示词
|
|
2
|
+
|
|
3
|
+
把下面提示词与需求一起交给生成工具。工具应能读取已安装的 cloud-web-corejs;无需读取 std 或 kCode 私有工作区。模板生成器、模板和本文均随 npm 包发布。
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
请基于 cloud-web-corejs 的内置 child-app 模板创建业务子应用,并完成验证。
|
|
7
|
+
|
|
8
|
+
参数:
|
|
9
|
+
- 目标目录:<新目录>
|
|
10
|
+
- npm 项目名:<唯一小写名称>
|
|
11
|
+
- appCode:<字母开头,只含字母数字下划线连字符;不可为 base/micro/micro_debug>
|
|
12
|
+
- 应用名称:<名称>
|
|
13
|
+
- 主应用部署前缀:<例如 /sys>
|
|
14
|
+
- Core 精确版本:<版本>
|
|
15
|
+
- 开发 API 网关:<地址>
|
|
16
|
+
- 生产 API 地址/代理路径:<地址>
|
|
17
|
+
- 业务页面与接口契约:<需求;未提供时标记待接入,不编造接口>
|
|
18
|
+
|
|
19
|
+
先读取包内 docs/child-app/README.md、templates/child-app/README.md 和实际源码。
|
|
20
|
+
使用 node <已安装包目录>/bin/create-child-app.js <新目录> <appCode> <npm项目名> 生成项目。
|
|
21
|
+
生成器不会覆盖已有目录;已有项目需检查现状后逐项合并,保留用户修改。
|
|
22
|
+
|
|
23
|
+
技术与接入要求:
|
|
24
|
+
1. 保留 Vue 2 Options API、Vue CLI 5、Vue Router 3 和 Vuex 3。
|
|
25
|
+
Vue 与 vue-template-compiler 必须同版,Core 写入 dependencies 并锁定版本。
|
|
26
|
+
2. 保留 @=应用src、@base=包src,使用 @base/index.next.js 并 re-export 生命周期。
|
|
27
|
+
复用包的鉴权、路由和状态管理,不自行复制实现。
|
|
28
|
+
3. 保留模板提供的应用侧配置、布局/登录包装、图片和登录样式;
|
|
29
|
+
即使暂时不用默认首页,动态视图编译仍可能依赖这些资源。
|
|
30
|
+
4. 保留转译、双目录 SVG、SCSS 变量、UMD、唯一 chunk 全局名、
|
|
31
|
+
body 内 blocking 入口脚本、publicPath、运行时 API 地址和开发根路径别名配置。
|
|
32
|
+
本模板无 DLL,不能加入不存在的 DLL 引用。
|
|
33
|
+
5. appCode、注册表和部署前缀保持一致;微前端开发端口 17527。
|
|
34
|
+
应用私有菜单 /micro/<appCode>/demo/list;包内页面 /micro/<appCode>/base/...。
|
|
35
|
+
menus=[] 是派发模式无菜单,menus 缺省/null 是自治模式。
|
|
36
|
+
6. 基于示例列表和详情实现需求,优先复用包内能力。
|
|
37
|
+
使用组件/工具前查看真实 props、事件、方法签名和所在版本;不猜 API。
|
|
38
|
+
动态页面解析使用 loadViewComponentAsync 或 requireViewAsync 并 await。
|
|
39
|
+
不调用已废弃的同步 loadViewComponent / requireViewCompat。
|
|
40
|
+
7. 请求使用包的封装,遵循实际后端响应契约;不要另建绕过鉴权的请求层。
|
|
41
|
+
跨应用导航走 mainAdapter;远程详情按 micro-view-host/contract.js 接入。
|
|
42
|
+
8. 未提供业务后端时保留明确标注的内存示例,不伪造真实保存成功。
|
|
43
|
+
不给实际业务路由添加 checkToken:false 来绕过登录。
|
|
44
|
+
保留 core-resources.config.js、ResourcesPlugin 和资源准备/检查脚本。
|
|
45
|
+
启用代码编辑器时,按 resources-implementation.md 安装独立 Ace 资源制品并声明 basic/full,
|
|
46
|
+
不复制整个 public,不假设资源包已经发布到 registry。
|
|
47
|
+
富文本按 tinymce-resources.md 安装独立 TinyMCE 制品并声明 richText full,不升级运行库。
|
|
48
|
+
在线表格按 luckysheet-resources.md 安装独立制品并声明 spreadsheet full,接受单实例限制。
|
|
49
|
+
流程设计按 activiti-resources.md 安装 5.17.0-core.1 制品并声明 workflowDesigner full;
|
|
50
|
+
只在主应用或非 qiankun 同源页面中使用,qiankun 子应用不生成流程入口。打印仍需逐项补充静态资源及集成说明。
|
|
51
|
+
|
|
52
|
+
交付完整工程、安装锁文件、启动/部署 README、注册表及菜单配置说明。
|
|
53
|
+
运行干净安装、生产构建、浏览器启动;有真实环境时验证登录、宿主挂载、
|
|
54
|
+
菜单保活、刷新、登出卸载及业务行为。明确列出未验证项与所缺环境。
|
|
55
|
+
```
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Luckysheet 可选资源接入
|
|
2
|
+
|
|
3
|
+
本批把仓库现有 Luckysheet 静态资源接入独立制品、资源准备和运行时加载。没有升级库、删除旧 public 或把大资源加入 Core 强制依赖。制品尚未发布 registry。
|
|
4
|
+
|
|
5
|
+
## 来源、补丁和风险
|
|
6
|
+
|
|
7
|
+
原 `public/luckysheet` 共 45 个文件。与 `luckysheet@2.1.13/dist` 逐字节核对:37 个相同,以下 8 个是存量差异:
|
|
8
|
+
|
|
9
|
+
- assets/iconfont/demo_index.html、iconfont.css、iconfont.json
|
|
10
|
+
- css/luckysheet.css、menuSprite.svg、sprite38.svg
|
|
11
|
+
- fonts/fontawesome-webfont.svg
|
|
12
|
+
- plugins/plugins.css
|
|
13
|
+
|
|
14
|
+
本次不猜测和重写这些差异,将其作为 `patchVersion: 1` 保留。构建器同时锁定完整树摘要和差异文件集合;任一文件变化都会失败,要求重新审计并升级补丁版本。制品包含上游 MIT 许可证及来源说明。
|
|
15
|
+
|
|
16
|
+
资源闭包只交付运行时引用:排除 13 个字体演示/元数据或未被入口和 CSS 引用的文件,包括 demo 页面、三种装饰字体、iconfont.js/json/未引用的 woff2、两张未引用 sprite、两个未引用尺寸的画笔图标和 FontAwesome.otf。完整旧目录仍参与摘要与上游差异校验;排除清单写入 resources.json。浏览器验收若出现请求缺失仍会失败。
|
|
17
|
+
|
|
18
|
+
Luckysheet 2.x 已停止活跃维护,上游建议新项目评估 Univer;这是技术债和安全评估事项,不与本次兼容迁移混做。现有功能仍固定 2.1.13,避免资源搬迁同时改变业务行为。
|
|
19
|
+
|
|
20
|
+
独立制品约 **1.54 MB 压缩 / 5.12 MB 解压**,交付 34 个文件,资源原始字节为 5,107,039。关闭 spreadsheet 时输出 0 个相关文件;Core tarball 不携带该资源树。相对未裁剪的制品,压缩体积减少约 21.1%,解压体积减少约 17.4%。
|
|
21
|
+
|
|
22
|
+
## 制品制作与应用启用
|
|
23
|
+
|
|
24
|
+
维护者先在独立目录固定安装上游,用于差异校验:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install --prefix artifacts/resources/luckysheet-source --ignore-scripts --save-exact --no-audit --no-fund luckysheet@2.1.13
|
|
28
|
+
npm run build:luckysheet-resources -- artifacts/resources/luckysheet-source
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
产出 `artifacts/resources/cloud-web-corejs-resources-luckysheet-2.1.13-core.1.tgz`。来源目录的 package-lock.json 和制品应进入团队制品系统;本工作区的 artifacts 被 Git 忽略。
|
|
32
|
+
|
|
33
|
+
消费应用安装制品:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install --save-dev --save-exact /absolute/path/cloud-web-corejs-resources-luckysheet-2.1.13-core.1.tgz
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
在 `core-resources.config.js` 的 features 中启用:
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
spreadsheet: {
|
|
43
|
+
package: "cloud-web-corejs-resources-luckysheet",
|
|
44
|
+
version: "2.1.13-core.1",
|
|
45
|
+
profile: "full"
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
然后运行 `npm run resources:prepare`、`npm run resources:check` 和正常 dev/build。生产构建后会逐文件检查 dist 哈希;应用 public 有同名路径会失败,不会覆盖。
|
|
50
|
+
|
|
51
|
+
## 运行时约束
|
|
52
|
+
|
|
53
|
+
- 动态加载 4 个 CSS,再按顺序加载 plugin.js 和 luckysheet.umd.js。加载失败清理相应节点并允许重试;HTTP 成功但缺少 create/destroy API 仍视为失败。
|
|
54
|
+
- 独立运行使用 WEB_PREFIX;qiankun 使用子应用注入的 publicPath。CSS 内字体和图片继续按原相对路径解析。
|
|
55
|
+
- 主运行库只加载一次,并记录来源;不同来源的第二个应用会明确失败,避免静默复用错误版本。
|
|
56
|
+
- Luckysheet 2.1.13 是 window 全局单例。包装组件现在显式限制同一 window 同时只有一个活动实例;第二实例显示错误并发出 resource-error,而不是互相销毁。关闭后释放所有权,可再次打开。
|
|
57
|
+
- 组件不再直接引用未声明的 luckysheet 变量;销毁前检查归属。默认 options 修复为对象,未初始化时导出/取值安全返回。
|
|
58
|
+
- 这种限制没有实现多子应用并发表格隔离。若产品需要同屏多实例,应升级/隔离运行库或放入独立 iframe,不应取消所有权检查。
|
|
59
|
+
- 现有 LuckyExcel 导入及 ExcelJS 导出代码仍在 Core 中;本批只处理浏览器静态资源。导入、下载、复杂公式、图片、图表、协同和大数据性能需要业务环境单独验收。
|
|
60
|
+
|
|
61
|
+
## 验证
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npm run check:resource-tools
|
|
65
|
+
LUCKYSHEET_SOURCE_DIR=/absolute/path/to/upstream-install node build/check-child-app.js --ace --tinymce --luckysheet
|
|
66
|
+
PLAYWRIGHT_MODULE=/absolute/path/to/playwright node build/check-child-browser.js /generated/child --ace --tinymce --luckysheet
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
自动测试覆盖资源顺序、失败重试、来源冲突、URL、完整性和组合构建。浏览器脚本验证真实表格创建、单元格 API、第二实例拒绝、关闭重开、卸载和子应用资源路径,并回归 Ace/TinyMCE。
|
|
70
|
+
|
|
71
|
+
## 本次验收记录(2026-09-15)
|
|
72
|
+
|
|
73
|
+
- 18 项资源工具与组件生命周期测试全部通过;本批 Luckysheet 文件的 ESLint、Core 发布资源边界及包体积门禁通过。Core 约为 3.07 MB 压缩 / 11.25 MB 解压,没有携带 public、artifacts 或生成资源。
|
|
74
|
+
- 最终 Luckysheet 制品为 1,543,382 字节压缩 / 5,117,936 字节解压,交付 34 个文件。Ace basic、TinyMCE 与 Luckysheet 同时启用时,生产输出准备并校验 139 个资源文件 / 8,803,102 字节。
|
|
75
|
+
- 从实际 Core tarball 新建子应用、干净安装三种可选资源制品并执行生产构建通过。构建仍有 273 条既有 Vue 2 SFC 样式导出警告,不属于零警告验收。
|
|
76
|
+
- Chromium + 真实跨域 qiankun 验证通过:Luckysheet 创建、已有单元格读写、第二实例明确拒绝、销毁重建、子应用来源加载、无外部字体请求及卸载清理均正常;Ace worker 与 TinyMCE 双编辑器回归同时通过,没有静态资源缺失、控制台错误或页面异常。
|
|
77
|
+
- 验收数据使用 Luckysheet 2.1.13 的 `celldata` 稀疏数据格式。真实 Excel 导入导出、复杂公式/图表/图片、超大数据、真实权限与生产 CSP 仍需业务环境验证。
|
|
78
|
+
- 完整 `test:ci` 已执行:新增资源检查、发布边界、体积和最小消费应用先通过,随后被仓库存量的 1,737 个全量 ESLint 错误拦截。单独执行既有 `test:unit` 又因 Jest 配置引用未安装的 `vue-jest` 而在收集前退出;这两项是当前仓库基线门禁问题,未在本批扩改历史源码或测试配置。
|
|
79
|
+
|
|
80
|
+
Activiti 已在后续批次接入,见 [Activiti 实施说明](./activiti-resources.md)。P3 代码/依赖拆分仍未实施。
|