From f40b415b9c137d5751a62d3da887ad5116d81493 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 16 Feb 2026 18:39:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(mes):=20=E6=96=B0=E5=A2=9E=E5=81=87?= =?UTF-8?q?=E6=9C=9F=E8=AE=BE=E7=BD=AE=E6=97=A5=E5=8E=86=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=20dayjs-plugin-lunar=20=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=86=9C=E5=8E=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 基于 el-calendar 实现假期设置页面,右键日期可设置假期/工作日类型, 日历单元格显示班/休标签、农历日期、公历节日、农历节日和节气。 使用 dayjs-plugin-lunar(底层 tyme4ts)替代手写 667 行农历工具。 新增文件: - src/api/mes/cal/holiday/index.ts - src/views/mes/cal/holiday/index.vue - src/views/mes/cal/holiday/HolidayForm.vue 修改文件: - src/utils/dict.ts:新增 MES_CAL_HOLIDAY_TYPE 新增依赖: - dayjs-plugin-lunar --- package-lock.json | 538 ++++++++++++---------- package.json | 1 + src/api/mes/cal/holiday/index.ts | 54 +++ src/views/mes/cal/holiday/HolidayForm.vue | 87 ++++ src/views/mes/cal/holiday/index.vue | 173 +++++++ 5 files changed, 612 insertions(+), 241 deletions(-) create mode 100644 src/api/mes/cal/holiday/index.ts create mode 100644 src/views/mes/cal/holiday/HolidayForm.vue create mode 100644 src/views/mes/cal/holiday/index.vue diff --git a/package-lock.json b/package-lock.json index ca57a5217..d7d346862 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,40 +1,43 @@ { "name": "yudao-ui-admin-vue3", - "version": "2.5.0-snapshot", + "version": "2026.01-snapshot", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "yudao-ui-admin-vue3", - "version": "2.5.0-snapshot", + "version": "2026.01-snapshot", "license": "MIT", "dependencies": { - "@element-plus/icons-vue": "^2.1.0", + "@element-plus/icons-vue": "2.3.2", "@form-create/designer": "^3.2.6", "@form-create/element-ui": "^3.2.11", "@iconify/iconify": "^3.1.1", "@microsoft/fetch-event-source": "^2.0.1", "@videojs-player/vue": "^1.0.0", "@vueuse/core": "^10.9.0", - "@wangeditor/editor": "^5.1.23", - "@wangeditor/editor-for-vue": "^5.1.10", + "@wangeditor-next/editor": "^5.6.46", + "@wangeditor-next/editor-for-vue": "^5.1.14", + "@wangeditor-next/plugin-mention": "^1.0.16", "@zxcvbn-ts/core": "^3.0.4", "animate.css": "^4.1.1", - "axios": "^1.6.8", + "axios": "1.9.0", "benz-amr-recorder": "^1.1.5", "bpmn-js-token-simulation": "^0.36.0", "camunda-bpmn-moddle": "^7.0.1", "cropperjs": "^1.6.1", "crypto-js": "^4.2.0", "dayjs": "^1.11.10", + "dayjs-plugin-lunar": "^1.4.1", "diagram-js": "^12.8.0", "driver.js": "^1.3.1", "echarts": "^5.5.0", "echarts-wordcloud": "^2.1.0", - "element-plus": "2.9.1", + "element-plus": "2.11.1", "fast-xml-parser": "^4.3.2", "highlight.js": "^11.9.0", "jsencrypt": "^3.3.2", + "jsoneditor": "^10.1.3", "lodash-es": "^4.17.21", "markdown-it": "^14.1.0", "markmap-common": "^0.16.0", @@ -48,16 +51,17 @@ "pinia-plugin-persistedstate": "^3.2.1", "qrcode": "^1.5.3", "qs": "^6.12.0", + "snabbdom": "^3.6.2", "sortablejs": "^1.15.3", "steady-xml": "^0.1.0", "url": "^0.11.3", - "v3-jsoneditor": "^0.0.6", "video.js": "^7.21.5", "vue": "3.5.12", "vue-dompurify-html": "^4.1.4", "vue-i18n": "9.10.2", "vue-router": "4.4.5", "vue-types": "^5.1.1", + "vue3-print-nb": "^0.1.4", "vue3-signature": "^0.2.4", "vuedraggable": "^4.1.0", "web-storage-cache": "^1.1.1", @@ -69,6 +73,7 @@ "@iconify/json": "^2.2.187", "@intlify/unplugin-vue-i18n": "^2.0.0", "@purge-icons/generated": "^0.9.0", + "@types/jsoneditor": "^9.9.5", "@types/lodash-es": "^4.17.12", "@types/node": "^20.11.21", "@types/nprogress": "^0.2.3", @@ -2310,10 +2315,9 @@ } }, "node_modules/@element-plus/icons-vue": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", - "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", - "license": "MIT", + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz", + "integrity": "sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==", "peerDependencies": { "vue": "^3.2.0" } @@ -4492,6 +4496,12 @@ "node": ">=10.13.0" } }, + "node_modules/@types/ace": { + "version": "0.0.52", + "resolved": "https://registry.npmmirror.com/@types/ace/-/ace-0.0.52.tgz", + "integrity": "sha512-YPF9S7fzpuyrxru+sG/rrTpZkC6gpHBPF14W3x70kqVOD+ks6jkYLapk4yceh36xej7K4HYxcyz9ZDQ2lTvwgQ==", + "dev": true + }, "node_modules/@types/conventional-commits-parser": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz", @@ -4792,6 +4802,38 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/jsoneditor": { + "version": "9.9.6", + "resolved": "https://registry.npmmirror.com/@types/jsoneditor/-/jsoneditor-9.9.6.tgz", + "integrity": "sha512-SJ29nWBIhnhtU5n72wxhPiuUVd8cnDHd7ZYMqVkzWtdRxTUdS8+oy1pg66yhmM1kcuanX3xmAAKfcyhhBnHEjQ==", + "dev": true, + "dependencies": { + "@types/ace": "*", + "ajv": "^6.12.0" + } + }, + "node_modules/@types/jsoneditor/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@types/jsoneditor/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/@types/lodash": { "version": "4.17.16", "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.16.tgz", @@ -6991,163 +7033,256 @@ } } }, - "node_modules/@wangeditor/basic-modules": { - "version": "1.1.7", - "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", - "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", - "license": "MIT", + "node_modules/@wangeditor-next/editor": { + "version": "5.6.49", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/editor/-/editor-5.6.49.tgz", + "integrity": "sha512-gDh7CLzsuPvUp1n4rO//V1NTHlpGzEibL71oRcRcxpz76oNaW12u+GWWvRde4cWivaCTLzHwz7EfEVdyDkt/Ww==", + "dependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor-next/basic-modules": "~1.5.47", + "@wangeditor-next/code-highlight": "~1.3.43", + "@wangeditor-next/core": "~1.7.45", + "@wangeditor-next/list-module": "~1.1.52", + "@wangeditor-next/table-module": "~1.6.60", + "@wangeditor-next/upload-image-module": "~1.1.50", + "@wangeditor-next/video-module": "~1.3.51", + "dom7": "^4.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" + } + }, + "node_modules/@wangeditor-next/editor-for-vue": { + "version": "5.1.14", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/editor-for-vue/-/editor-for-vue-5.1.14.tgz", + "integrity": "sha512-Xkrdo590AhLHvzyR+U246t6T89nIWHz1weAgMuo8jEA2HS5RiUnsA4U6+iUGaQ2E5c8mYQaeNqzHQXUp9Okbiw==", + "peerDependencies": { + "@wangeditor-next/editor": ">=5.1.0", + "vue": "^3.0.5" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/basic-modules": { + "version": "1.5.47", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/basic-modules/-/basic-modules-1.5.47.tgz", + "integrity": "sha512-FHydtBbfpsi4R4JTo5MvwWhzButwq6x36o+GoxsALdItwDW2qVgJkrlhw25aWYpg6ff1xqjivHfLBaAPWC4J+w==", "dependencies": { "is-url": "^1.2.4" }, "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", "lodash.throttle": "^4.1.1", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/code-highlight": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", - "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", - "license": "MIT", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/code-highlight": { + "version": "1.3.43", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/code-highlight/-/code-highlight-1.3.43.tgz", + "integrity": "sha512-22eHjYDmtTxZqZOma2ls9zWA6gsgSkWq3XtmLylA15kegVBKAy7YxYbRrdS7D4Y/igqOerSbc5oMsOdeYjRfnQ==", "dependencies": { "prismjs": "^1.23.0" }, "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/core": { - "version": "1.1.19", - "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", - "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", - "license": "MIT", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/core": { + "version": "1.7.45", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/core/-/core-1.7.45.tgz", + "integrity": "sha512-5Pt8JCmdzJWk4q18zUZse+zM+mBW6jYt3npXVkLswYysx01krC3bBQq1J9JeZe4Ci+rQAs0tQj3t1imjpsmRgg==", "dependencies": { "@types/event-emitter": "^0.3.3", "event-emitter": "^0.3.5", - "html-void-elements": "^2.0.0", - "i18next": "^20.4.0", - "scroll-into-view-if-needed": "^2.2.28", - "slate-history": "^0.66.0" + "html-void-elements": "^3.0.0", + "i18next": "^23.0.0", + "scroll-into-view-if-needed": "^3.0.0", + "slate-history": "^0.109.0" }, "peerDependencies": { "@uppy/core": "^2.1.1", "@uppy/xhr-upload": "^2.0.3", - "dom7": "^3.0.0", + "dom7": "^3.0.0 || ^4.0.0", "is-hotkey": "^0.2.0", "lodash.camelcase": "^4.3.0", "lodash.clonedeep": "^4.5.0", "lodash.debounce": "^4.0.8", "lodash.foreach": "^4.5.0", - "lodash.isequal": "^4.5.0", "lodash.throttle": "^4.1.1", "lodash.toarray": "^4.4.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/editor": { - "version": "5.1.23", - "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", - "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", - "license": "MIT", - "dependencies": { - "@uppy/core": "^2.1.1", - "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "^1.1.7", - "@wangeditor/code-highlight": "^1.0.3", - "@wangeditor/core": "^1.1.19", - "@wangeditor/list-module": "^1.0.5", - "@wangeditor/table-module": "^1.1.4", - "@wangeditor/upload-image-module": "^1.0.2", - "@wangeditor/video-module": "^1.1.4", - "dom7": "^3.0.0", - "is-hotkey": "^0.2.0", - "lodash.camelcase": "^4.3.0", - "lodash.clonedeep": "^4.5.0", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/list-module": { + "version": "1.1.52", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/list-module/-/list-module-1.1.52.tgz", + "integrity": "sha512-FMzvx+iXXkatFFRZZ+rbiPjZpEcPa3UtNBFs40VpZG0w7O3gQWM7B/oPec3SKvAmre/US4CC5DJEqeEY3QX4hw==", + "peerDependencies": { + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/table-module": { + "version": "1.6.60", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/table-module/-/table-module-1.6.60.tgz", + "integrity": "sha512-BGTG1YzPSIC4XJRafllCcynT9CkElWDSFxYBJ2svS36AvJc3ivQuj5Fhv+rCS4RqGggsN1hdeA4iP+xrtwWI4w==", + "peerDependencies": { + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", "lodash.debounce": "^4.0.8", - "lodash.foreach": "^4.5.0", - "lodash.isequal": "^4.5.0", "lodash.throttle": "^4.1.1", - "lodash.toarray": "^4.4.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/editor-for-vue": { - "version": "5.1.12", - "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz", - "integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/editor": ">=5.1.0", - "vue": "^3.0.5" - } - }, - "node_modules/@wangeditor/list-module": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz", - "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/table-module": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz", - "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "lodash.isequal": "^4.5.0", - "lodash.throttle": "^4.1.1", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/upload-image-module": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", - "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==", - "license": "MIT", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/upload-image-module": { + "version": "1.1.50", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/upload-image-module/-/upload-image-module-1.1.50.tgz", + "integrity": "sha512-KIzI1IIQA6J5Hg3/UJF/AlEsrxJ62LZZUt61tenkO8cxks2UQMvH4CEsgEU5NNfQ0PUnOeR4ErjOgyhtbZKyaQ==", "peerDependencies": { "@uppy/core": "^2.0.3", "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "1.x", - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", + "@wangeditor-next/basic-modules": "1.5.47", + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", "lodash.foreach": "^4.5.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/video-module": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz", - "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", - "license": "MIT", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/video-module": { + "version": "1.3.51", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/video-module/-/video-module-1.3.51.tgz", + "integrity": "sha512-67ecZCGIY+MUsqFtmwR9QKWlzGeIXVyXHmzPuevYwEqRwg50oR2xCSuoQLhfs5CKjXDZKsZhOnD/CGgt82TU+A==", "peerDependencies": { "@uppy/core": "^2.1.4", "@uppy/xhr-upload": "^2.0.7", - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==" + }, + "node_modules/@wangeditor-next/editor/node_modules/dom7": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/dom7/-/dom7-4.0.6.tgz", + "integrity": "sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==", + "dependencies": { + "ssr-window": "^4.0.0" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/i18next": { + "version": "23.16.8", + "resolved": "https://registry.npmmirror.com/i18next/-/i18next-23.16.8.tgz", + "integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/nanoid": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/slate": { + "version": "0.82.1", + "resolved": "https://registry.npmmirror.com/slate/-/slate-0.82.1.tgz", + "integrity": "sha512-3mdRdq7U3jSEoyFrGvbeb28hgrvrr4NdFCtJX+IjaNvSFozY0VZd/CGHF0zf/JDx7aEov864xd5uj0HQxxEWTQ==", + "dependencies": { + "immer": "^9.0.6", + "is-plain-object": "^5.0.0", + "tiny-warning": "^1.0.3" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/slate-history": { + "version": "0.109.0", + "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.109.0.tgz", + "integrity": "sha512-DHavPwrTTAEAV66eAocB3iQHEj65N6IVtbRK98ZuqGT0S44T3zXlhzY+5SZ7EPxRcoOYVt1dioRxXYM/+PmCiQ==", + "dependencies": { + "is-plain-object": "^5.0.0" + }, + "peerDependencies": { + "slate": ">=0.65.3" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/ssr-window": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-4.0.2.tgz", + "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==" + }, + "node_modules/@wangeditor-next/plugin-mention": { + "version": "1.0.19", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/plugin-mention/-/plugin-mention-1.0.19.tgz", + "integrity": "sha512-aH81xDT4hZ+PdEFPsptJ/Gn4KDyIOhQdrNewLi2BKadmVBiYXlLneseodeFyv9MLhtNg2ekt+KNGJNK3kKzCsw==", + "peerDependencies": { + "@wangeditor-next/editor": "5.6.49", + "snabbdom": "^3.6.0" } }, "node_modules/@xmldom/xmldom": { @@ -8231,12 +8366,6 @@ "integrity": "sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==", "license": "MIT" }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.20", - "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", - "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", - "license": "MIT" - }, "node_modules/computeds": { "version": "0.0.1", "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", @@ -9039,6 +9168,15 @@ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", "license": "MIT" }, + "node_modules/dayjs-plugin-lunar": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dayjs-plugin-lunar/-/dayjs-plugin-lunar-1.4.1.tgz", + "integrity": "sha512-nHKJMKoVAGt/Wp6x3xH8GrjWhB25YBYd6iYTCfLkCm4GAS6q3jvfHpLwRnIX8bjHgl8sPlTPiLFcylcEaEnj8Q==", + "peerDependencies": { + "dayjs": "^1.0.0", + "tyme4ts": "^1.0.0" + } + }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", @@ -9234,15 +9372,6 @@ "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, - "node_modules/dom7": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", - "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", - "license": "MIT", - "dependencies": { - "ssr-window": "^3.0.0-alpha.1" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", @@ -9424,10 +9553,9 @@ "license": "ISC" }, "node_modules/element-plus": { - "version": "2.9.1", - "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.1.tgz", - "integrity": "sha512-9Agqf/jt4Ugk7EZ6C5LME71sgkvauPCsnvJN12Xid2XVobjufxMGpRE4L7pS4luJMOmFAH3J0NgYEGZT5r+NDg==", - "license": "MIT", + "version": "2.11.1", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.11.1.tgz", + "integrity": "sha512-weYFIniyNXTAe9vJZnmZpYzurh4TDbdKhBsJwhbzuo0SDZ8PLwHVll0qycJUxc6SLtH+7A9F7dvdDh5CnqeIVA==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.3.1", @@ -11232,16 +11360,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz", @@ -11271,15 +11389,6 @@ "node": ">=16.17.0" } }, - "node_modules/i18next": { - "version": "20.6.1", - "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz", - "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.0" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -11866,20 +11975,18 @@ } }, "node_modules/jsoneditor": { - "version": "9.10.5", - "resolved": "https://registry.npmmirror.com/jsoneditor/-/jsoneditor-9.10.5.tgz", - "integrity": "sha512-fVZ0NMt+zm4rqTKBv2x7zPdLeaRyKo1EjJkaR1QjK4gEM1rMwICILYSW1OPxSc1qqyAoDaA/eeNrluKoxOocCA==", - "license": "Apache-2.0", + "version": "10.4.2", + "resolved": "https://registry.npmmirror.com/jsoneditor/-/jsoneditor-10.4.2.tgz", + "integrity": "sha512-SQPCXlanU4PqdVsYuj2X7yfbLiiJYjklbksGfMKPsuwLhAIPxDlG43jYfXieGXvxpuq1fkw08YoRbkKXKabcLA==", "dependencies": { - "ace-builds": "^1.31.1", + "ace-builds": "^1.36.2", "ajv": "^6.12.6", "javascript-natural-sort": "^0.7.1", "jmespath": "^0.16.0", "json-source-map": "^0.6.1", - "jsonrepair": "3.1.0", - "mobius1-selectr": "^2.4.13", + "jsonrepair": "^3.8.1", "picomodal": "^3.0.0", - "vanilla-picker": "^2.12.2" + "vanilla-picker": "^2.12.3" } }, "node_modules/jsoneditor/node_modules/ajv": { @@ -11928,10 +12035,9 @@ "license": "MIT" }, "node_modules/jsonrepair": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/jsonrepair/-/jsonrepair-3.1.0.tgz", - "integrity": "sha512-idqReg23J0PVRAADmZMc5xQM3xeOX5bTB6OTyMnzq33IXJXmn9iJuWIEvGmrN80rQf4d7uLTMEDwpzujNcI0Rg==", - "license": "ISC", + "version": "3.13.2", + "resolved": "https://registry.npmmirror.com/jsonrepair/-/jsonrepair-3.13.2.tgz", + "integrity": "sha512-Leuly0nbM4R+S5SVJk3VHfw1oxnlEK9KygdZvfUtEtTawNDyzB4qa1xWTmFt1aeoA7sXZkVTRuIixJ8bAvqVUg==", "bin": { "jsonrepair": "bin/cli.js" } @@ -12342,13 +12448,6 @@ "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", "license": "MIT" }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", - "license": "MIT" - }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -13025,12 +13124,6 @@ "dev": true, "license": "MIT" }, - "node_modules/mobius1-selectr": { - "version": "2.4.13", - "resolved": "https://registry.npmmirror.com/mobius1-selectr/-/mobius1-selectr-2.4.13.tgz", - "integrity": "sha512-Mk9qDrvU44UUL0EBhbAA1phfQZ7aMZPjwtL7wkpiBzGh8dETGqfsh50mWoX9EkjDlkONlErWXArHCKfoxVg0Bw==", - "license": "MIT" - }, "node_modules/moddle": { "version": "6.2.3", "resolved": "https://registry.npmmirror.com/moddle/-/moddle-6.2.3.tgz", @@ -14824,15 +14917,6 @@ "dev": true, "license": "MIT" }, - "node_modules/scroll-into-view-if-needed": { - "version": "2.2.31", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", - "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", - "license": "MIT", - "dependencies": { - "compute-scroll-into-view": "^1.0.20" - } - }, "node_modules/scule": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", @@ -14994,29 +15078,6 @@ "node": ">=8" } }, - "node_modules/slate": { - "version": "0.72.8", - "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", - "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", - "license": "MIT", - "dependencies": { - "immer": "^9.0.6", - "is-plain-object": "^5.0.0", - "tiny-warning": "^1.0.3" - } - }, - "node_modules/slate-history": { - "version": "0.66.0", - "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz", - "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^5.0.0" - }, - "peerDependencies": { - "slate": ">=0.65.3" - } - }, "node_modules/slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -15108,12 +15169,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, - "node_modules/ssr-window": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", - "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==", - "license": "MIT" - }, "node_modules/steady-xml": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/steady-xml/-/steady-xml-0.1.0.tgz", @@ -15925,6 +15980,12 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "license": "0BSD" }, + "node_modules/tyme4ts": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/tyme4ts/-/tyme4ts-1.4.2.tgz", + "integrity": "sha512-3rUMpQv3Oz9V0f/GOPVHn+PC6eqR4CyMYQu02B8bUA5+BWvYALJapfwjOS7GH5NFK7mAS3LCUzSEYkQc4rkk6Q==", + "peer": true + }, "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz", @@ -16489,19 +16550,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v3-jsoneditor": { - "version": "0.0.6", - "resolved": "https://registry.npmmirror.com/v3-jsoneditor/-/v3-jsoneditor-0.0.6.tgz", - "integrity": "sha512-9G0sXWXUn67SBkn46ycWfwPwjuJu/lcsQaNzMtXAR2/95hMV21WfcRNsqJ+vVVrSHQehohB/9fVLwYEXz0u/KA==", - "license": "MIT", - "dependencies": { - "jsoneditor": "^9.10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/pratik227" - } - }, "node_modules/vanilla-picker": { "version": "2.12.3", "resolved": "https://registry.npmmirror.com/vanilla-picker/-/vanilla-picker-2.12.3.tgz", @@ -17064,6 +17112,14 @@ "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", "license": "MIT" }, + "node_modules/vue3-print-nb": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz", + "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==", + "dependencies": { + "vue": "^3.0.5" + } + }, "node_modules/vue3-signature": { "version": "0.2.4", "resolved": "https://registry.npmmirror.com/vue3-signature/-/vue3-signature-0.2.4.tgz", diff --git a/package.json b/package.json index 8ef3b4ee6..3176a66df 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "cropperjs": "^1.6.1", "crypto-js": "^4.2.0", "dayjs": "^1.11.10", + "dayjs-plugin-lunar": "^1.4.1", "diagram-js": "^12.8.0", "driver.js": "^1.3.1", "echarts": "^5.5.0", diff --git a/src/api/mes/cal/holiday/index.ts b/src/api/mes/cal/holiday/index.ts new file mode 100644 index 000000000..48dfdc76d --- /dev/null +++ b/src/api/mes/cal/holiday/index.ts @@ -0,0 +1,54 @@ +import request from '@/config/axios' + +// MES 假期设置 VO +export interface CalHolidayVO { + id: number // 编号 + theDay: string // 日期 + type: string // 日期类型 + startTime: string // 开始时间 + endTime: string // 结束时间 + remark: string // 备注 + attribute1: string // 预留字段1 + attribute2: string // 预留字段2 + attribute3: number // 预留字段3 + attribute4: number // 预留字段4 + createTime: string // 创建时间 +} + +// MES 假期设置 API +export const CalHolidayApi = { + // 查询假期设置分页 + getHolidayPage: async (params: any) => { + return await request.get({ url: `/mes/cal/holiday/page`, params }) + }, + + // 查询所有假期设置列表(日历组件用,不分页) + getHolidayList: async () => { + return await request.get({ url: `/mes/cal/holiday/list` }) + }, + + // 查询假期设置详情 + getHoliday: async (id: number) => { + return await request.get({ url: `/mes/cal/holiday/get?id=` + id }) + }, + + // 新增假期设置(含 upsert 逻辑) + createHoliday: async (data: CalHolidayVO) => { + return await request.post({ url: `/mes/cal/holiday/create`, data }) + }, + + // 修改假期设置 + updateHoliday: async (data: CalHolidayVO) => { + return await request.put({ url: `/mes/cal/holiday/update`, data }) + }, + + // 删除假期设置 + deleteHoliday: async (id: number) => { + return await request.delete({ url: `/mes/cal/holiday/delete?id=` + id }) + }, + + // 导出假期设置 Excel + exportHoliday: async (params: any) => { + return await request.download({ url: `/mes/cal/holiday/export-excel`, params }) + } +} diff --git a/src/views/mes/cal/holiday/HolidayForm.vue b/src/views/mes/cal/holiday/HolidayForm.vue new file mode 100644 index 000000000..efca37daa --- /dev/null +++ b/src/views/mes/cal/holiday/HolidayForm.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/views/mes/cal/holiday/index.vue b/src/views/mes/cal/holiday/index.vue new file mode 100644 index 000000000..a0c4aa875 --- /dev/null +++ b/src/views/mes/cal/holiday/index.vue @@ -0,0 +1,173 @@ + + + +