npmapps 1.1.6 → 1.3.1
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 +41 -0
- package/files/part-002 +4 -0
- package/get.js +193 -0
- package/manifest.json +28 -0
- package/package.json +17 -10
- package/PUBLISH.md +0 -268
- package/app/wujie-wk/dev.log +0 -1979
- package/app/wujie-wk/t.html +0 -90
- package/app/wujie-wk/wujie-react-child/README.md +0 -126
- package/app/wujie-wk/wujie-react-child/eslint.config.js +0 -28
- package/app/wujie-wk/wujie-react-child/index.html +0 -13
- package/app/wujie-wk/wujie-react-child/package-lock.json +0 -4344
- package/app/wujie-wk/wujie-react-child/package.json +0 -32
- package/app/wujie-wk/wujie-react-child/public/vite.svg +0 -1
- package/app/wujie-wk/wujie-react-child/src/App.css +0 -0
- package/app/wujie-wk/wujie-react-child/src/App.tsx +0 -72
- package/app/wujie-wk/wujie-react-child/src/assets/react.svg +0 -1
- package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.css +0 -63
- package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.tsx +0 -112
- package/app/wujie-wk/wujie-react-child/src/components/LightCard/index.tsx +0 -36
- package/app/wujie-wk/wujie-react-child/src/components/LightCard/style.css +0 -20
- package/app/wujie-wk/wujie-react-child/src/hooks/use3DCard.ts +0 -53
- package/app/wujie-wk/wujie-react-child/src/hooks/useLightCard.ts +0 -141
- package/app/wujie-wk/wujie-react-child/src/index.css +0 -0
- package/app/wujie-wk/wujie-react-child/src/main.tsx +0 -8
- package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.css +0 -55
- package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.tsx +0 -88
- package/app/wujie-wk/wujie-react-child/src/pages/Css.tsx +0 -28
- package/app/wujie-wk/wujie-react-child/src/pages/Home.tsx +0 -72
- package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.css +0 -85
- package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.tsx +0 -119
- package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.css +0 -61
- package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.tsx +0 -87
- package/app/wujie-wk/wujie-react-child/src/router/index.tsx +0 -63
- package/app/wujie-wk/wujie-react-child/src/types/wujie.d.ts +0 -26
- package/app/wujie-wk/wujie-react-child/src/vite-env.d.ts +0 -1
- package/app/wujie-wk/wujie-react-child/tsconfig.app.json +0 -26
- package/app/wujie-wk/wujie-react-child/tsconfig.json +0 -7
- package/app/wujie-wk/wujie-react-child/tsconfig.node.json +0 -24
- package/app/wujie-wk/wujie-react-child/vite.config.ts +0 -10
- package/app/wujie-wk/wujie-vue2-child/.eslintrc.js +0 -19
- package/app/wujie-wk/wujie-vue2-child/README.md +0 -24
- package/app/wujie-wk/wujie-vue2-child/babel.config.js +0 -5
- package/app/wujie-wk/wujie-vue2-child/docs/superpowers/plans/2026-05-29-quill-editor.md +0 -836
- package/app/wujie-wk/wujie-vue2-child/docs/superpowers/specs/2026-05-29-quill-editor-design.md +0 -210
- package/app/wujie-wk/wujie-vue2-child/jsconfig.json +0 -19
- package/app/wujie-wk/wujie-vue2-child/package-lock.json +0 -21333
- package/app/wujie-wk/wujie-vue2-child/package.json +0 -63
- package/app/wujie-wk/wujie-vue2-child/postcss.config.js +0 -10
- package/app/wujie-wk/wujie-vue2-child/public/favicon.ico +0 -0
- package/app/wujie-wk/wujie-vue2-child/public/index.html +0 -17
- package/app/wujie-wk/wujie-vue2-child/public/rili.jpg +0 -0
- package/app/wujie-wk/wujie-vue2-child/public//344/270/200/351/224/256/351/273/221/346/232/227.html +0 -136
- package/app/wujie-wk/wujie-vue2-child/src/App.vue +0 -110
- package/app/wujie-wk/wujie-vue2-child/src/assets/bpmn-camunda.jpg +0 -0
- package/app/wujie-wk/wujie-vue2-child/src/assets/css/diagram.less +0 -17
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/Icon.less +0 -31
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app-codes.css +0 -26
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.eot +0 -0
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.svg +0 -60
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.ttf +0 -0
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.woff +0 -0
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.woff2 +0 -0
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/config.json +0 -248
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-bottom-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-horizontal-center-tool.svg +0 -85
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-left-tool.svg +0 -84
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-right-tool.svg +0 -80
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-top-tool.svg +0 -84
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-vertical-center-tool.svg +0 -89
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/distribute-horizontally-tool.svg +0 -95
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/distribute-vertically-tool.svg +0 -99
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/set-color-tool.svg +0 -111
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-bottom-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-horizontal-center-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-left-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-right-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-top-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-vertical-center-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/distribute-horizontally-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/distribute-vertically-tool.svg +0 -30
- package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/set-color-tool.svg +0 -63
- package/app/wujie-wk/wujie-vue2-child/src/assets/logo.png +0 -0
- package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/README.md +0 -70
- package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/article.md +0 -184
- package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/index.js +0 -213
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/CalendarSkeleton.vue +0 -147
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/CodeBlock.vue +0 -199
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/MonthSelect.vue +0 -376
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/README.md +0 -485
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/example.vue +0 -1747
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/index.vue +0 -2720
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/mockData.js +0 -475
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/recruitmentAdapter.js +0 -51
- package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/utils.js +0 -202
- package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/FunctionSelector.vue +0 -123
- package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/OperatorSelector.vue +0 -184
- package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/ParameterSelector.vue +0 -123
- package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/api.js +0 -69
- package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/index.vue +0 -435
- package/app/wujie-wk/wujie-vue2-child/src/components/HelloWorld.vue +0 -58
- package/app/wujie-wk/wujie-vue2-child/src/components/PageHeader/index.vue +0 -158
- package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/README.md +0 -144
- package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/example.vue +0 -84
- package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/index.vue +0 -203
- package/app/wujie-wk/wujie-vue2-child/src/components/diagram/ToolBar.vue +0 -357
- package/app/wujie-wk/wujie-vue2-child/src/components/diagram/customTranslate/customTranslate.js +0 -12
- package/app/wujie-wk/wujie-vue2-child/src/components/diagram/customTranslate/translationsGerman.js +0 -241
- package/app/wujie-wk/wujie-vue2-child/src/components/diagram/index.vue +0 -261
- package/app/wujie-wk/wujie-vue2-child/src/components/diagram/xmlData.js +0 -29
- package/app/wujie-wk/wujie-vue2-child/src/directives/filldown.js +0 -155
- package/app/wujie-wk/wujie-vue2-child/src/directives/filldownTable.js +0 -291
- package/app/wujie-wk/wujie-vue2-child/src/main.js +0 -40
- package/app/wujie-wk/wujie-vue2-child/src/router/index.js +0 -72
- package/app/wujie-wk/wujie-vue2-child/src/store/index.js +0 -23
- package/app/wujie-wk/wujie-vue2-child/src/utils/winBox.js +0 -23
- package/app/wujie-wk/wujie-vue2-child/src/views/Extend/A.vue +0 -12
- package/app/wujie-wk/wujie-vue2-child/src/views/Extend/B.vue +0 -10
- package/app/wujie-wk/wujie-vue2-child/src/views/Extend/MagicalComponentsForELFormItem.vue +0 -78
- package/app/wujie-wk/wujie-vue2-child/src/views/Extend/index.vue +0 -59
- package/app/wujie-wk/wujie-vue2-child/src/views/Extend/tableMouseHorizontalWheel.vue +0 -184
- package/app/wujie-wk/wujie-vue2-child/src/views/Home.vue +0 -27
- package/app/wujie-wk/wujie-vue2-child/src/views/RouterJump.vue +0 -145
- package/app/wujie-wk/wujie-vue2-child/src/views/calendar/index.vue +0 -19
- package/app/wujie-wk/wujie-vue2-child/src/views/css.vue +0 -57
- package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/EllipsisText.vue +0 -73
- package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/HoverCard.vue +0 -69
- package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/TableHover.vue +0 -130
- package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/inputSlo.vue +0 -42
- package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/tableFixed.vue +0 -148
- package/app/wujie-wk/wujie-vue2-child/src/views/echarts/echart-dome.vue +0 -73
- package/app/wujie-wk/wujie-vue2-child/src/views/echarts/index.vue +0 -118
- package/app/wujie-wk/wujie-vue2-child/src/views/echarts/pei3d.vue +0 -658
- package/app/wujie-wk/wujie-vue2-child/src/views/element/bpmn/index.vue +0 -15
- package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendanceCycle/index.vue +0 -131
- package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendanceGroup/index.vue +0 -147
- package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendancePersonnel/index.vue +0 -158
- package/app/wujie-wk/wujie-vue2-child/src/views/element/components/companyCalendar/index.vue +0 -147
- package/app/wujie-wk/wujie-vue2-child/src/views/element/components/shift/index.vue +0 -147
- package/app/wujie-wk/wujie-vue2-child/src/views/element/components/shiftRotationSystem/index.vue +0 -147
- package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/columnManagement.vue +0 -340
- package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/dialogInput.vue +0 -71
- package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/elTableJsx.vue +0 -1826
- package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/formTable.vue +0 -595
- package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/index.vue +0 -29
- package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/simpleTable.vue +0 -189
- package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx.zip +0 -0
- package/app/wujie-wk/wujie-vue2-child/src/views/element/index.vue +0 -39
- package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/README.md +0 -163
- package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/example.vue +0 -307
- package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/index.vue +0 -409
- package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/toolbar.js +0 -122
- package/app/wujie-wk/wujie-vue2-child/vue.config.js +0 -15
- package/app/wujie-wk/wujie-vue3-child/.claude/settings.local.json +0 -8
- package/app/wujie-wk/wujie-vue3-child/.vscode/extensions.json +0 -3
- package/app/wujie-wk/wujie-vue3-child/PROJECT_MEMORY.md +0 -427
- package/app/wujie-wk/wujie-vue3-child/README.md +0 -5
- package/app/wujie-wk/wujie-vue3-child/index.html +0 -13
- package/app/wujie-wk/wujie-vue3-child/package-lock.json +0 -5744
- package/app/wujie-wk/wujie-vue3-child/package.json +0 -28
- package/app/wujie-wk/wujie-vue3-child/public/vite.svg +0 -1
- package/app/wujie-wk/wujie-vue3-child/src/App.vue +0 -130
- package/app/wujie-wk/wujie-vue3-child/src/assets/vue.svg +0 -1
- package/app/wujie-wk/wujie-vue3-child/src/components/HelloWorld.vue +0 -43
- package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/index.jsx +0 -224
- package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/style.css +0 -154
- package/app/wujie-wk/wujie-vue3-child/src/components/tags-view.vue +0 -193
- package/app/wujie-wk/wujie-vue3-child/src/components/tags-view1.vue +0 -131
- package/app/wujie-wk/wujie-vue3-child/src/directives/aiLoading.js +0 -182
- package/app/wujie-wk/wujie-vue3-child/src/hooks/useClickOutside.js +0 -11
- package/app/wujie-wk/wujie-vue3-child/src/hooks/useTableDragSort.js +0 -28
- package/app/wujie-wk/wujie-vue3-child/src/main.js +0 -18
- package/app/wujie-wk/wujie-vue3-child/src/router/index.js +0 -104
- package/app/wujie-wk/wujie-vue3-child/src/store/tagsViewStroe.js +0 -34
- package/app/wujie-wk/wujie-vue3-child/src/style.css +0 -171
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.jsx +0 -108
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.module.scss +0 -97
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/README.md +0 -836
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/REFLEX_EXAMPLES.md +0 -728
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.jsx +0 -687
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.module.scss +0 -560
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.jsx +0 -570
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.module.scss +0 -330
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.jsx +0 -378
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.module.scss +0 -228
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.jsx +0 -399
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.module.scss +0 -252
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.jsx +0 -585
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.module.scss +0 -331
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.jsx +0 -392
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.module.scss +0 -39
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/README.md +0 -248
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/SelectorTrigger.jsx +0 -194
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/index.jsx +0 -1459
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/mockData.js +0 -301
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.jsx +0 -182
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.module.scss +0 -28
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/index.jsx +0 -375
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.jsx +0 -121
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.module.scss +0 -76
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/DonutChart/index.jsx +0 -104
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.jsx +0 -75
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.module.scss +0 -12
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.jsx +0 -62
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.module.scss +0 -43
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.jsx +0 -29
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.module.scss +0 -5
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.jsx +0 -58
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.module.scss +0 -85
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.jsx +0 -92
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.module.scss +0 -56
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.jsx +0 -40
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.module.scss +0 -53
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsDonut.jsx +0 -106
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsRankBar.jsx +0 -132
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.jsx +0 -176
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.module.scss +0 -96
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.jsx +0 -162
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.module.scss +0 -16
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.jsx +0 -29
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.module.scss +0 -25
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.jsx +0 -106
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.module.scss +0 -164
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.jsx +0 -182
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.module.scss +0 -203
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.jsx +0 -145
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.module.scss +0 -126
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.jsx +0 -67
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.module.scss +0 -105
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.jsx +0 -81
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.module.scss +0 -47
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.jsx +0 -64
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.module.scss +0 -85
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.jsx +0 -39
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.module.scss +0 -44
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.jsx +0 -83
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.module.scss +0 -101
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.jsx +0 -50
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.module.scss +0 -25
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.jsx +0 -196
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.module.scss +0 -41
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.jsx +0 -183
- package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.module.scss +0 -115
- package/app/wujie-wk/wujie-vue3-child/src/views/child-to-parent.vue +0 -117
- package/app/wujie-wk/wujie-vue3-child/src/views/home.vue +0 -53
- package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/btnSelect.vue +0 -169
- package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/index.vue +0 -69
- package/app/wujie-wk/wujie-vue3-child/src/views/jsx/com.vue +0 -44
- package/app/wujie-wk/wujie-vue3-child/src/views/jsx/dialog.jsx +0 -66
- package/app/wujie-wk/wujie-vue3-child/src/views/jsx/index.vue +0 -72
- package/app/wujie-wk/wujie-vue3-child/src/views/jsx/props.vue +0 -33
- package/app/wujie-wk/wujie-vue3-child/src/views/parent-to-child.vue +0 -225
- package/app/wujie-wk/wujie-vue3-child/src/views/phone-code.vue +0 -318
- package/app/wujie-wk/wujie-vue3-child/src/views/router-jump.vue +0 -123
- package/app/wujie-wk/wujie-vue3-child/src/views/test.vue +0 -192
- package/app/wujie-wk/wujie-vue3-child/vite.config.js +0 -15
- package/app/wujie-wk/wujie-vue3-child copy/.vscode/extensions.json +0 -3
- package/app/wujie-wk/wujie-vue3-child copy/README.md +0 -5
- package/app/wujie-wk/wujie-vue3-child copy/index.html +0 -13
- package/app/wujie-wk/wujie-vue3-child copy/package-lock.json +0 -4617
- package/app/wujie-wk/wujie-vue3-child copy/package.json +0 -22
- package/app/wujie-wk/wujie-vue3-child copy/public/vite.svg +0 -1
- package/app/wujie-wk/wujie-vue3-child copy/src/App.vue +0 -124
- package/app/wujie-wk/wujie-vue3-child copy/src/assets/vue.svg +0 -1
- package/app/wujie-wk/wujie-vue3-child copy/src/components/HelloWorld.vue +0 -43
- package/app/wujie-wk/wujie-vue3-child copy/src/main.js +0 -12
- package/app/wujie-wk/wujie-vue3-child copy/src/router/index.js +0 -84
- package/app/wujie-wk/wujie-vue3-child copy/src/style.css +0 -4
- package/app/wujie-wk/wujie-vue3-child copy/src/views/child-to-parent.vue +0 -117
- package/app/wujie-wk/wujie-vue3-child copy/src/views/home.vue +0 -53
- package/app/wujie-wk/wujie-vue3-child copy/src/views/parent-to-child.vue +0 -225
- package/app/wujie-wk/wujie-vue3-child copy/src/views/phone-code.vue +0 -318
- package/app/wujie-wk/wujie-vue3-child copy/src/views/router-jump.vue +0 -115
- package/app/wujie-wk/wujie-vue3-child copy/src/views/test.vue +0 -192
- package/app/wujie-wk/wujie-vue3-child copy/vite.config.js +0 -10
- package/app/wujie-wk/wujie-vue3-main/.vscode/extensions.json +0 -3
- package/app/wujie-wk/wujie-vue3-main/README.md +0 -154
- package/app/wujie-wk/wujie-vue3-main/index.html +0 -13
- package/app/wujie-wk/wujie-vue3-main/package-lock.json +0 -4736
- package/app/wujie-wk/wujie-vue3-main/package.json +0 -25
- package/app/wujie-wk/wujie-vue3-main/public/vite.svg +0 -1
- package/app/wujie-wk/wujie-vue3-main/src/App.vue +0 -879
- package/app/wujie-wk/wujie-vue3-main/src/assets/vue.svg +0 -1
- package/app/wujie-wk/wujie-vue3-main/src/components/HelloWorld.vue +0 -43
- package/app/wujie-wk/wujie-vue3-main/src/components/WujieReact/index.vue +0 -20
- package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue2/index.vue +0 -8
- package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3/index.vue +0 -8
- package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3Copy/index.vue +0 -8
- package/app/wujie-wk/wujie-vue3-main/src/main.js +0 -23
- package/app/wujie-wk/wujie-vue3-main/src/router/index.js +0 -88
- package/app/wujie-wk/wujie-vue3-main/src/store/useMicroAppStore.js +0 -66
- package/app/wujie-wk/wujie-vue3-main/src/style.css +0 -3
- package/app/wujie-wk/wujie-vue3-main/src/views/home.vue +0 -103
- package/app/wujie-wk/wujie-vue3-main/src/views/router-jump.vue +0 -159
- package/app/wujie-wk/wujie-vue3-main/src/views/test.vue +0 -125
- package/app/wujie-wk/wujie-vue3-main/src/views/vue3-child-msg.vue +0 -108
- package/app/wujie-wk/wujie-vue3-main/vite.config.js +0 -12
|
@@ -1,485 +0,0 @@
|
|
|
1
|
-
# EventCalendar 日程日历组件
|
|
2
|
-
|
|
3
|
-
一个零第三方依赖的 Vue 2 月历组件。支持月份自动补全(含跨年)、下拉切换、自动轮播、
|
|
4
|
-
字段映射、插槽定制、骨架屏与多种切换动效。
|
|
5
|
-
|
|
6
|
-
> 整个 `EventCalendar` 文件夹可以直接拷贝到任意 Vue 2 项目使用,
|
|
7
|
-
> **不依赖 element-ui / dayjs / moment / lodash 等任何第三方库**,只用原生 `Date` 与 CSS。
|
|
8
|
-
|
|
9
|
-
## 目录结构
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
EventCalendar/
|
|
13
|
-
├── index.vue # 组件本体
|
|
14
|
-
├── MonthSelect.vue # 自研月份下拉框(不依赖 UI 库)
|
|
15
|
-
├── CalendarSkeleton.vue # 骨架屏
|
|
16
|
-
├── CodeBlock.vue # 示例页用的代码块(业务中可删)
|
|
17
|
-
├── utils.js # 日期计算与字段映射工具
|
|
18
|
-
├── recruitmentAdapter.js # NodeQ mock 响应 -> EventCalendar 数据
|
|
19
|
-
├── mockData.js # 模拟数据(setTimeout 模拟异步接口)
|
|
20
|
-
├── example.vue # 完整示例集合(14 个 demo + API 文档)
|
|
21
|
-
└── README.md
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
真正接入普通日历时,**必需**的只有 `index.vue`、`MonthSelect.vue`、`CalendarSkeleton.vue`、`utils.js`。
|
|
25
|
-
接 NodeQ 招聘接口时再加入 `recruitmentAdapter.js`。`mockData.js` / `example.vue` / `CodeBlock.vue`
|
|
26
|
-
是演示用的,可以删掉。
|
|
27
|
-
|
|
28
|
-
## 快速开始
|
|
29
|
-
|
|
30
|
-
```vue
|
|
31
|
-
<template>
|
|
32
|
-
<EventCalendar
|
|
33
|
-
:data="data"
|
|
34
|
-
:loading="loading"
|
|
35
|
-
title="宣讲日历"
|
|
36
|
-
subtitle="更多场次陆续上线中,宣讲进程以实际安排为准"
|
|
37
|
-
@item-click="onItemClick"
|
|
38
|
-
/>
|
|
39
|
-
</template>
|
|
40
|
-
|
|
41
|
-
<script>
|
|
42
|
-
import EventCalendar from '@/components/EventCalendar/index.vue'
|
|
43
|
-
|
|
44
|
-
export default {
|
|
45
|
-
components: { EventCalendar },
|
|
46
|
-
data() {
|
|
47
|
-
return { data: [], loading: true }
|
|
48
|
-
},
|
|
49
|
-
async created() {
|
|
50
|
-
this.loading = true
|
|
51
|
-
try {
|
|
52
|
-
this.data = await this.$api.getCalendar()
|
|
53
|
-
} finally {
|
|
54
|
-
// 放 finally:接口失败也要收掉骨架屏,否则页面会一直卡在加载态
|
|
55
|
-
this.loading = false
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
methods: {
|
|
59
|
-
onItemClick(scope) {
|
|
60
|
-
console.log(scope.item) // 后端返回的原始对象
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
</script>
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## 数据结构
|
|
68
|
-
|
|
69
|
-
### 默认结构(按月分组)
|
|
70
|
-
|
|
71
|
-
```js
|
|
72
|
-
[
|
|
73
|
-
{
|
|
74
|
-
month: '2026-09', // 月份标识
|
|
75
|
-
monthLabel: '2026年9月', // 下拉框文案,不传则自动生成
|
|
76
|
-
days: [
|
|
77
|
-
{
|
|
78
|
-
date: '2026-09-09', // 日期标识
|
|
79
|
-
items: [ // 当天的条目
|
|
80
|
-
{
|
|
81
|
-
id: 'a1',
|
|
82
|
-
label: '香港中文大学(深圳)', // 主文案
|
|
83
|
-
address: '深圳市南山区校区报告厅', // 地址,为空时不显示地址行
|
|
84
|
-
badge: '宣讲', // 右上角角标
|
|
85
|
-
type: 'talk' // 类型,决定配色
|
|
86
|
-
}
|
|
87
|
-
]
|
|
88
|
-
}
|
|
89
|
-
]
|
|
90
|
-
}
|
|
91
|
-
]
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### 扁平结构(也支持)
|
|
95
|
-
|
|
96
|
-
不按月分组,直接给一维日期数组,组件会自动按日期归月:
|
|
97
|
-
|
|
98
|
-
```js
|
|
99
|
-
[
|
|
100
|
-
{ date: '2026-09-09', items: [...] },
|
|
101
|
-
{ date: '2026-10-01', items: [...] }
|
|
102
|
-
]
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
## NodeQ mock 数据转换
|
|
106
|
-
|
|
107
|
-
转换方法只负责把当前 mock 响应中的 `data.nbcbRecAnnJourneyMaps` 映射为组件默认结构,
|
|
108
|
-
不包含字段猜测或展示配置:
|
|
109
|
-
|
|
110
|
-
```js
|
|
111
|
-
import EventCalendar from '@/components/EventCalendar/index.vue'
|
|
112
|
-
import { transformNodeqCalendarResponse } from '@/components/EventCalendar/recruitmentAdapter'
|
|
113
|
-
|
|
114
|
-
const data = transformNodeqCalendarResponse(response)
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```vue
|
|
118
|
-
<EventCalendar
|
|
119
|
-
:data="data"
|
|
120
|
-
item-align="center"
|
|
121
|
-
:item-horizontal-padding="0"
|
|
122
|
-
:item-height="40"
|
|
123
|
-
/>
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
转换后条目固定包含 `id`、`label`、`address`、`badge`、`type`、`disabled`。
|
|
127
|
-
mock 中没有的值使用空字符串或 `false`。`address` 为空时,日历组件不会渲染地址行。
|
|
128
|
-
|
|
129
|
-
大学名称不超过 7 个字符时为 14px,超过 7 个字符时为 12px;地址统一为 12px。
|
|
130
|
-
`item-align` 控制靠左或居中,`item-horizontal-padding="0"` 可去掉条目左右内边距。
|
|
131
|
-
|
|
132
|
-
## 原生布局配置工具栏
|
|
133
|
-
|
|
134
|
-
外边距、内边距、条目、溢出与行高、角标缩放等均为组件原生 Props。开启工具栏后,
|
|
135
|
-
改完点「复制配置」,把 JSON 粘回 `layoutConfig` 再 `v-bind` 即可:
|
|
136
|
-
|
|
137
|
-
```vue
|
|
138
|
-
<EventCalendar
|
|
139
|
-
:data="data"
|
|
140
|
-
v-bind="layoutConfig"
|
|
141
|
-
:show-config-toolbar="isDevelopment"
|
|
142
|
-
/>
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
```js
|
|
146
|
-
export default {
|
|
147
|
-
data() {
|
|
148
|
-
return {
|
|
149
|
-
isDevelopment: process.env.NODE_ENV !== 'production',
|
|
150
|
-
// 结构与工具栏「复制配置」得到的 JSON 一致,可直接赋值应用
|
|
151
|
-
layoutConfig: {
|
|
152
|
-
itemAlign: 'center',
|
|
153
|
-
calendarMargin: 0,
|
|
154
|
-
calendarPadding: 0,
|
|
155
|
-
headerPadding: '4px 4px 16px',
|
|
156
|
-
cellPadding: '12px 10px',
|
|
157
|
-
mobileCellPadding: '8px 6px',
|
|
158
|
-
itemHorizontalPadding: 0,
|
|
159
|
-
itemVerticalPadding: 4,
|
|
160
|
-
itemGap: 6,
|
|
161
|
-
itemLineGap: 2,
|
|
162
|
-
itemBgGradient: false,
|
|
163
|
-
itemBgGradientDir: 'to-bottom',
|
|
164
|
-
itemBgHover: true,
|
|
165
|
-
overflowMode: 'scroll',
|
|
166
|
-
maxVisibleItems: 4,
|
|
167
|
-
itemHeight: 28,
|
|
168
|
-
minRowHeight: 118,
|
|
169
|
-
badgeScale: 0.75,
|
|
170
|
-
// 条目色留空表示沿用 type/主题配色
|
|
171
|
-
itemTextColor: '',
|
|
172
|
-
itemBgColor: ''
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
`show-config-toolbar` 默认是 `false`。开启后组件顶部会出现配置工具栏(P1~P14):
|
|
180
|
-
条目对齐、日期格/窄屏日期格内边距(各拆「上下 / 左右」两块)、条目左右/上下内边距与间距、
|
|
181
|
-
名称与地址间距、单格最多显示、条目高度、条目背景效果(纯色/渐变,方向可上下或左右)、
|
|
182
|
-
悬浮加深(可关闭)与条目文字色/背景色;每张卡片右上角都有「还原」可回到初始值。
|
|
183
|
-
选定条目背景色后,鼠标悬浮会自动把背景调淡一档,不喜欢可在「悬浮加深」里关闭。
|
|
184
|
-
底部实时显示当前配置 JSON,右上角「复制配置」一键复制。用户把复制出的 JSON 发回后,
|
|
185
|
-
研发直接把它赋给 `layoutConfig` 通过 `v-bind` 应用即可。
|
|
186
|
-
|
|
187
|
-
## 字段映射(后端字段不一致时)
|
|
188
|
-
|
|
189
|
-
**不需要改数据**,传 `field-names` 即可。字段路径支持 `'a.b.c'` 形式。
|
|
190
|
-
|
|
191
|
-
```js
|
|
192
|
-
const fieldNames = {
|
|
193
|
-
month: 'ym',
|
|
194
|
-
monthLabel: 'ymText',
|
|
195
|
-
days: 'dateList',
|
|
196
|
-
date: 'dayStr',
|
|
197
|
-
items: 'activityList',
|
|
198
|
-
itemKey: 'activityId',
|
|
199
|
-
itemLabel: 'schoolName',
|
|
200
|
-
itemAddress: 'rawAddress',
|
|
201
|
-
itemBadge: 'activityTypeName',
|
|
202
|
-
itemType: 'activityType',
|
|
203
|
-
itemDisabled: 'expired'
|
|
204
|
-
}
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
```vue
|
|
208
|
-
<EventCalendar :data="data" :field-names="fieldNames" />
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
完整默认值见 `utils.js` 里的 `DEFAULT_FIELD_NAMES`。
|
|
212
|
-
|
|
213
|
-
## 核心机制说明
|
|
214
|
-
|
|
215
|
-
### 1. 月份补全与跨年
|
|
216
|
-
|
|
217
|
-
每个月天数(28/29/30/31)和「1 号是星期几」都不固定,组件会自动补齐首尾:
|
|
218
|
-
|
|
219
|
-
- 若 2 月 1 号是**周三**,首行补上 1 月的周日、周一、周二;
|
|
220
|
-
- 若 2 月 28 号是**周三**,末行补上 3 月的周四、周五、周六;
|
|
221
|
-
- 非当月的补位日期自动**置灰**(`.is-other-month`)。
|
|
222
|
-
|
|
223
|
-
实现上先算出本月 1 号相对「一周起始日」的偏移量 `leading`,再用
|
|
224
|
-
`new Date(year, month - 1, 1 - leading + i)` 递推生成所有格子。
|
|
225
|
-
原生 `Date` 对天数越界会自动进位/借位,**跨年(1 月往前补 12 月、12 月往后补次年 1 月)无需任何特判**。
|
|
226
|
-
|
|
227
|
-
补位格子默认也会渲染条目,可用 `:show-adjacent-items="false"` 关掉。
|
|
228
|
-
|
|
229
|
-
### 2. 行高与条目溢出
|
|
230
|
-
|
|
231
|
-
**行高由该行条目最多的那一天决定** —— 这是 CSS Grid 的天然行为
|
|
232
|
-
(同一行的格子会自动拉伸到该行最高格子的高度),无需 JS 计算,也不会因为窗口缩放而失准。
|
|
233
|
-
|
|
234
|
-
单日条目超过 `max-visible-items`(默认 4)后有两种处理:
|
|
235
|
-
|
|
236
|
-
| overflow-mode | 行为 |
|
|
237
|
-
| --- | --- |
|
|
238
|
-
| `scroll`(默认) | 格内出现细滚动条,滚动区高度 = `n × item-height + (n-1) × item-gap` |
|
|
239
|
-
| `collapse` | 只显示前 n-1 条,末尾出现「还有 N 项」,可监听 `more-click` |
|
|
240
|
-
|
|
241
|
-
大学名称不超过 7 个字符时使用 14px,超过 7 个字符时使用 12px;地址行统一使用 12px,
|
|
242
|
-
地址为空时不渲染。
|
|
243
|
-
|
|
244
|
-
`min-row-height` 保证没有条目的行不会塌陷。
|
|
245
|
-
|
|
246
|
-
### 3. 轮播与暂停
|
|
247
|
-
|
|
248
|
-
`autoplay` 开启后按 `autoplay-interval` 自动切换月份,顶部细进度条展示剩余时间。
|
|
249
|
-
以下情况会**自动暂停并保留剩余时间**(恢复时接着走,进度条不跳):
|
|
250
|
-
|
|
251
|
-
- 鼠标悬停在组件上(`pause-on-hover`,默认开)
|
|
252
|
-
- 月份下拉框展开中
|
|
253
|
-
- 浏览器标签页切到后台(`visibilitychange`)
|
|
254
|
-
- 用户点击了暂停按钮
|
|
255
|
-
|
|
256
|
-
`loop="false"` 时播到最后一个月会停止并触发 `autoplay-end`。
|
|
257
|
-
|
|
258
|
-
### 4. 切换动效
|
|
259
|
-
|
|
260
|
-
| transition-effect | 效果 |
|
|
261
|
-
| --- | --- |
|
|
262
|
-
| `slide`(默认) | 按切换方向左右滑入滑出 |
|
|
263
|
-
| `fade` | 淡入淡出 |
|
|
264
|
-
| `zoom` | 缩放 |
|
|
265
|
-
| `flip` | 带透视的 3D 翻页 |
|
|
266
|
-
| `none` | 关闭动效 |
|
|
267
|
-
|
|
268
|
-
另有 `cell-stagger` 让单元格从左上到右下错峰入场。
|
|
269
|
-
动效时长由 `transition-duration` 控制,设为 `0` 亦可视作关闭。
|
|
270
|
-
|
|
271
|
-
切月时行数可能从 5 行变 6 行,组件用 `ResizeObserver` 测量面板高度并做高度过渡,不会突然跳动。
|
|
272
|
-
|
|
273
|
-
> 组件已适配 `prefers-reduced-motion`:系统开启「减少动态效果」时自动关闭全部动画。
|
|
274
|
-
|
|
275
|
-
## API
|
|
276
|
-
|
|
277
|
-
### Props
|
|
278
|
-
|
|
279
|
-
| 参数 | 说明 | 类型 | 默认值 |
|
|
280
|
-
| --- | --- | --- | --- |
|
|
281
|
-
| data | 日历数据,支持按月分组与扁平两种结构 | Array | `[]` |
|
|
282
|
-
| field-names | 字段映射,支持 `a.b.c` 点路径 | Object | `{}` |
|
|
283
|
-
| loading | 加载中,为 true 时渲染骨架屏 | Boolean | `false` |
|
|
284
|
-
| skeleton-rows | 骨架屏行数 | Number | `5` |
|
|
285
|
-
| active-month | 当前月份,支持 `v-model` / `.sync` | String | `''` |
|
|
286
|
-
| show-month-select | 是否显示月份下拉框 | Boolean | `true` |
|
|
287
|
-
| show-arrows | 是否显示左右翻月箭头 | Boolean | `false` |
|
|
288
|
-
| autoplay | 是否开启自动轮播 | Boolean | `false` |
|
|
289
|
-
| autoplay-interval | 轮播间隔(毫秒) | Number | `60000` |
|
|
290
|
-
| loop | 播到最后一个月后是否回到第一个 | Boolean | `true` |
|
|
291
|
-
| pause-on-hover | 鼠标悬停时暂停轮播 | Boolean | `true` |
|
|
292
|
-
| show-progress | 显示轮播倒计时进度条 | Boolean | `true` |
|
|
293
|
-
| show-autoplay-toggle | 显示播放/暂停按钮 | Boolean | `true` |
|
|
294
|
-
| transition-effect | `slide` / `fade` / `zoom` / `flip` / `none` | String | `'slide'` |
|
|
295
|
-
| transition-duration | 动效时长(毫秒) | Number | `420` |
|
|
296
|
-
| cell-stagger | 单元格错峰入场动画 | Boolean | `false` |
|
|
297
|
-
| show-header | 是否显示顶部区域 | Boolean | `true` |
|
|
298
|
-
| title / subtitle | 默认标题与副标题(`header-left` 未传时生效) | String | `''` |
|
|
299
|
-
| first-day-of-week | 一周起始日,0=周日 1=周一 | Number | `0` |
|
|
300
|
-
| week-labels | 星期文案,下标对应 `Date.getDay()` | Array | `['周日'…'周六']` |
|
|
301
|
-
| max-visible-items | 单日最多显示条目数 | Number | `4` |
|
|
302
|
-
| overflow-mode | 溢出处理:`scroll` / `collapse` | String | `'scroll'` |
|
|
303
|
-
| item-height | 单条条目高度(px) | Number | `28` |
|
|
304
|
-
| item-gap | 条目间距(px) | Number | `6` |
|
|
305
|
-
| item-align | 条目内容对齐方式:`left` / `center` | String | `'left'` |
|
|
306
|
-
| calendar-margin | 日历根节点外边距;Number 按 px 处理,String 支持 CSS 简写 | Number / String | `0` |
|
|
307
|
-
| calendar-padding | 日历根节点内边距;Number 按 px 处理,String 支持 CSS 简写 | Number / String | `0` |
|
|
308
|
-
| header-padding | 顶部区域内边距,支持 CSS 简写 | Number / String | `'4px 4px 16px'` |
|
|
309
|
-
| cell-padding | 日期格内边距,支持 CSS 简写 | Number / String | `'12px 10px'` |
|
|
310
|
-
| mobile-cell-padding | 768px 及以下日期格内边距 | Number / String | `'8px 6px'` |
|
|
311
|
-
| item-horizontal-padding | 条目左右内边距(px),传 0 可去除 | Number | `8` |
|
|
312
|
-
| item-vertical-padding | 条目上下内边距(px) | Number | `4` |
|
|
313
|
-
| item-line-gap | 条目内名称与地址的行间距(px) | Number | `2` |
|
|
314
|
-
| item-bg-gradient | 条目背景是否启用渐变(在底色上叠柔和渐变) | Boolean | `false` |
|
|
315
|
-
| item-bg-gradient-dir | 渐变方向:to-bottom 上到下 | to-right 左到右 | String | `'to-bottom'` |
|
|
316
|
-
| item-bg-hover | 悬浮时是否自动把条目背景调淡一档 | Boolean | `true` |
|
|
317
|
-
| badge-scale | 右上角角标整体缩放倍率(越小越紧凑) | Number | `0.75` |
|
|
318
|
-
| show-config-toolbar | 显示原生布局配置工具栏 | Boolean | `false` |
|
|
319
|
-
| item-bg-color | 条目(.ec__item)背景色覆盖;空串按 type/主题配色(工具栏可取色) | String | `''` |
|
|
320
|
-
| item-text-color | 条目(.ec__item)文字色覆盖;空串按 type/主题配色(工具栏可取色) | String | `''` |
|
|
321
|
-
| min-row-height | 单元格最小高度(px) | Number | `118` |
|
|
322
|
-
| show-adjacent-items | 补位日期是否也渲染条目 | Boolean | `true` |
|
|
323
|
-
| highlight-today | 高亮今天 | Boolean | `true` |
|
|
324
|
-
| colorful | 角标是否按 type 上色 | Boolean | `true` |
|
|
325
|
-
| type-colors | 类型配色 `{ type: { color, bg } }` | Object | 内置 4 种 |
|
|
326
|
-
| day-formatter | 日期文案格式化 `(cell) => string` | Function | `'9月7日'` |
|
|
327
|
-
| month-formatter | 月份下拉文案格式化 `(monthKey, raw) => string` | Function | `null` |
|
|
328
|
-
| empty-text | 空数据文案 | String | `'暂无日程数据'` |
|
|
329
|
-
| cell-focusable | 单元格可聚焦(键盘无障碍) | Boolean | `false` |
|
|
330
|
-
| theme | 主题变量覆盖 | Object | `{}` |
|
|
331
|
-
|
|
332
|
-
### Events
|
|
333
|
-
|
|
334
|
-
| 事件名 | 说明 | 回调参数 |
|
|
335
|
-
| --- | --- | --- |
|
|
336
|
-
| day-click | 点击日期格子 | `(scope, event)` |
|
|
337
|
-
| item-click | 点击条目 | `(scope, event)` |
|
|
338
|
-
| tag-click | 点击条目右上角角标;**未监听时自动退化为 item-click** | `(scope, event)` |
|
|
339
|
-
| more-click | `collapse` 模式下点击「还有 N 项」 | `(scope, event)` |
|
|
340
|
-
| month-change | 月份变化 | `(month, { index, source, option, raw })` |
|
|
341
|
-
| update:activeMonth | 配合 `v-model` / `.sync` | `(month)` |
|
|
342
|
-
| autoplay-toggle | 点击播放/暂停按钮 | `(playing: Boolean)` |
|
|
343
|
-
| autoplay-end | `loop=false` 时播到最后一个月 | — |
|
|
344
|
-
| transition-end | 月份切换动画结束 | `(month)` |
|
|
345
|
-
| config-change | 工具栏配置变化(编辑每一项都会触发) | `(config)` |
|
|
346
|
-
|
|
347
|
-
`month-change` 的 `source` 表明触发来源:`select` / `arrow` / `autoplay` / `prop` / `api`。
|
|
348
|
-
|
|
349
|
-
日期格子的 `scope`:
|
|
350
|
-
|
|
351
|
-
```js
|
|
352
|
-
{ day, date, dateKey, items, visibleItems, raw, isCurrentMonth, isToday, isWeekend, label }
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
条目的 `scope`:
|
|
356
|
-
|
|
357
|
-
```js
|
|
358
|
-
{ item, raw, label, badge, type, disabled, index, day, dateKey }
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
其中 `item` / `raw` 是后端返回的**原始对象**,字段齐全,不受 `field-names` 影响。
|
|
362
|
-
|
|
363
|
-
### Slots
|
|
364
|
-
|
|
365
|
-
| 名称 | 说明 | 作用域参数 |
|
|
366
|
-
| --- | --- | --- |
|
|
367
|
-
| header-left | 顶部左侧(设计稿的标题区) | `{ month, monthLabel, monthIndex, monthCount, monthOptions, loading, paused, prev, next, goTo, toggleAutoplay }` |
|
|
368
|
-
| header-right | 顶部右侧,整体替换默认按钮与下拉 | 同上 |
|
|
369
|
-
| weekday | 星期表头单元 | `{ label, weekday, isWeekend, index }` |
|
|
370
|
-
| day | 整个日期格子(覆盖所有默认内容) | 日期 scope |
|
|
371
|
-
| day-header | 格子里的日期行 | 日期 scope |
|
|
372
|
-
| items | 格子里的条目列表区域 | 日期 scope |
|
|
373
|
-
| item | 单个条目 | 条目 scope |
|
|
374
|
-
| day-empty | 当天无数据时的占位 | 日期 scope |
|
|
375
|
-
| loading | 自定义骨架屏 | `{ rows }` |
|
|
376
|
-
| empty | 整体空状态 | — |
|
|
377
|
-
|
|
378
|
-
不传插槽时全部回落到默认样式(即设计稿效果)。
|
|
379
|
-
|
|
380
|
-
```vue
|
|
381
|
-
<EventCalendar :data="data">
|
|
382
|
-
<template #header-left="{ monthLabel }">
|
|
383
|
-
<div class="my-head">{{ monthLabel }}</div>
|
|
384
|
-
</template>
|
|
385
|
-
|
|
386
|
-
<template #item="{ item, label, badge }">
|
|
387
|
-
<div class="my-item">{{ item.startTime }} {{ label }} · {{ badge }}</div>
|
|
388
|
-
</template>
|
|
389
|
-
</EventCalendar>
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
### Methods(通过 `ref` 调用)
|
|
393
|
-
|
|
394
|
-
| 方法 | 说明 |
|
|
395
|
-
| --- | --- |
|
|
396
|
-
| `prev()` | 切到上一个月 |
|
|
397
|
-
| `next()` | 切到下一个月 |
|
|
398
|
-
| `goTo(index)` | 切到第 index 个月(从 0 开始) |
|
|
399
|
-
| `setMonth(month)` | 切到指定月份,如 `setMonth('2026-10')` |
|
|
400
|
-
| `restartAutoplay()` | 重置轮播计时 |
|
|
401
|
-
| `getLayoutConfig()` | 获取可直接通过 `v-bind` 应用的当前布局配置 |
|
|
402
|
-
|
|
403
|
-
## 主题定制
|
|
404
|
-
|
|
405
|
-
所有颜色都走 CSS 变量,用 `theme` 传入即可换肤:
|
|
406
|
-
|
|
407
|
-
```vue
|
|
408
|
-
<EventCalendar
|
|
409
|
-
:data="data"
|
|
410
|
-
:theme="{
|
|
411
|
-
primary: '#10a37f',
|
|
412
|
-
primaryGhost: 'rgba(16,163,127,.12)',
|
|
413
|
-
border: '#e4e7ed',
|
|
414
|
-
borderLight: '#eef0f4',
|
|
415
|
-
text: '#303133',
|
|
416
|
-
textSecondary: '#606266',
|
|
417
|
-
muted: '#c8ccd4',
|
|
418
|
-
itemBg: '#f2f9f6',
|
|
419
|
-
cellHover: '#f7fcfa',
|
|
420
|
-
radius: '10px'
|
|
421
|
-
}"
|
|
422
|
-
/>
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
按业务类型配色用 `type-colors`:
|
|
426
|
-
|
|
427
|
-
```vue
|
|
428
|
-
<EventCalendar
|
|
429
|
-
:data="data"
|
|
430
|
-
:type-colors="{
|
|
431
|
-
talk: { color: '#3d6cf0', bg: 'rgba(61,108,240,.10)' },
|
|
432
|
-
fair: { color: '#e0821b', bg: 'rgba(224,130,27,.12)' }
|
|
433
|
-
}"
|
|
434
|
-
/>
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
`:colorful="false"` 会让角标统一回到中性灰(更贴近原始设计稿)。
|
|
438
|
-
|
|
439
|
-
## 模拟数据
|
|
440
|
-
|
|
441
|
-
`mockData.js` 用 `setTimeout` 模拟异步接口,方便脱离后端联调:
|
|
442
|
-
|
|
443
|
-
```js
|
|
444
|
-
import {
|
|
445
|
-
fetchCalendarData, // 默认字段,可指定月份 / 延迟 / 数据密度
|
|
446
|
-
fetchCalendarDataV2, // 字段名完全不同,配合 ALT_FIELD_NAMES 演示映射
|
|
447
|
-
fetchCrossYearData, // 2025-12 / 2026-01 / 2026-02,验证跨年补全
|
|
448
|
-
fetchEmptyData, // 空数据
|
|
449
|
-
fetchNodeqCalendarData, // NodeQ mock 响应(三个月、每天 3~5 条)
|
|
450
|
-
NODEQ_MOCK_RESPONSE, // 同一份响应的同步版本
|
|
451
|
-
createNodeqMockResponse,
|
|
452
|
-
SIMPLE_DATA, // 一份写死的小数据
|
|
453
|
-
ALT_FIELD_NAMES
|
|
454
|
-
} from './mockData'
|
|
455
|
-
import { transformNodeqCalendarResponse } from './recruitmentAdapter'
|
|
456
|
-
|
|
457
|
-
const data = await fetchCalendarData({
|
|
458
|
-
months: ['2026-09', '2026-10'],
|
|
459
|
-
delay: 1500,
|
|
460
|
-
maxItems: 6,
|
|
461
|
-
density: 0.62
|
|
462
|
-
})
|
|
463
|
-
|
|
464
|
-
const nodeqResponse = await fetchNodeqCalendarData()
|
|
465
|
-
const nodeqData = transformNodeqCalendarResponse(nodeqResponse)
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
数据用固定种子的伪随机生成,**每次刷新结果一致**,方便调样式和截图对比。
|
|
469
|
-
`createNodeqMockResponse()` 默认生成 2026 年 9~11 月,每个月 14 个有安排的日期,
|
|
470
|
-
每天 3~5 条 NodeQ mock 记录。转换方法只按这份 mock 的固定字段做映射。
|
|
471
|
-
|
|
472
|
-
## 示例页
|
|
473
|
-
|
|
474
|
-
`example.vue` 是按 UI 组件库文档形式组织的完整示例集合,包含 14 个可交互 demo
|
|
475
|
-
(基础用法、异步骨架屏、多月切换、自动轮播、切换动效、跨年补全、字段映射、
|
|
476
|
-
溢出与行高、插槽定制、事件、主题、空状态、NodeQ 后端适配、布局配置与 JSON 导出)
|
|
477
|
-
与完整 API 表格。
|
|
478
|
-
|
|
479
|
-
本项目中已挂到路由 `/calendar`。
|
|
480
|
-
|
|
481
|
-
## 浏览器兼容
|
|
482
|
-
|
|
483
|
-
- 依赖 CSS Grid、CSS 自定义属性 —— 现代浏览器均支持,不支持 IE11;
|
|
484
|
-
- `ResizeObserver` 用于高度过渡,缺失时自动降级(高度不做动画,功能不受影响);
|
|
485
|
-
- 复制代码在非 HTTPS 环境会回退到 `document.execCommand`。
|