diff --git a/npm-demo/src/components/GanttTest.vue b/npm-demo/src/components/GanttTest.vue index 685c70b..ab18df6 100644 --- a/npm-demo/src/components/GanttTest.vue +++ b/npm-demo/src/components/GanttTest.vue @@ -162,8 +162,8 @@ const onMilestoneDblclick = (milestone) => { @@ -311,23 +311,23 @@ const onMilestoneDblclick = (milestone) => { transition: all 0.3s; } -.btn-primary { +.gantt-btn-primary { background: #409eff; color: white; border-color: #409eff; } -.btn-primary:hover { +.gantt-btn-primary:hover { background: #66b1ff; border-color: #66b1ff; } -.btn-default { +.gantt-btn-default { background: white; color: #606266; } -.btn-default:hover { +.gantt-btn-default:hover { color: #409eff; border-color: #409eff; } diff --git a/npm-webpack-demo/src/App.vue b/npm-webpack-demo/src/App.vue index 6959968..fc297cf 100644 --- a/npm-webpack-demo/src/App.vue +++ b/npm-webpack-demo/src/App.vue @@ -167,8 +167,8 @@ const onMilestoneDblclick = (milestone: any) => {
- - + +
@@ -197,8 +197,8 @@ const onMilestoneDblclick = (milestone: any) => { @@ -346,23 +346,23 @@ const onMilestoneDblclick = (milestone: any) => { transition: all 0.3s; } -.btn-primary { +.gantt-btn-primary { background: #409eff; color: white; border-color: #409eff; } -.btn-primary:hover { +.gantt-btn-primary:hover { background: #66b1ff; border-color: #66b1ff; } -.btn-default { +.gantt-btn-default { background: white; color: #606266; } -.btn-default:hover { +.gantt-btn-default:hover { color: #409eff; border-color: #409eff; } diff --git a/package.json b/package.json index 4e8b9ae..d2141c5 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,22 @@ "name": "jordium-gantt-vue3", "version": "1.4.2-patch.3", "type": "module", - "main": "dist/jordium-gantt-vue3.cjs.js", - "module": "dist/jordium-gantt-vue3.es.js", - "types": "dist/jordium-gantt-vue3.d.ts", + "main": "npm-package/dist/jordium-gantt-vue3.cjs.js", + "module": "npm-package/dist/jordium-gantt-vue3.es.js", + "types": "npm-package/dist/index.d.ts", + "exports": { + ".": { + "types": "./npm-package/dist/index.d.ts", + "require": "./npm-package/dist/jordium-gantt-vue3.cjs.js", + "import": "./npm-package/dist/jordium-gantt-vue3.es.js" + }, + "./styles": "./npm-package/dist/jordium-gantt-vue3-styles.js", + "./styles.js": "./npm-package/dist/jordium-gantt-vue3-styles.js", + "./index.css": "./npm-package/dist/assets/jordium-gantt-vue3.css", + "./npm-package/*": "./npm-package/*" + }, "files": [ - "dist" + "npm-package" ], "license": "MIT", "repository": { diff --git a/scripts/generate-css-export.js b/scripts/generate-css-export.js index 73ec745..2cb698f 100644 --- a/scripts/generate-css-export.js +++ b/scripts/generate-css-export.js @@ -9,7 +9,7 @@ const __dirname = path.dirname(__filename) // 构建后生成CSS导出文件 function generateCssExport() { - const distDir = path.resolve(__dirname, '../../npm-package/dist') + const distDir = path.resolve(__dirname, '../npm-package/dist') const assetsDir = path.join(distDir, 'assets') const expectedCssFile = path.join(assetsDir, 'jordium-gantt-vue3.css') const outputFile = path.join(distDir, 'jordium-gantt-vue3-styles.js') diff --git a/src/components/ConfirmTimerDialog.vue b/src/components/ConfirmTimerDialog.vue index 7bd4785..8f3a64e 100644 --- a/src/components/ConfirmTimerDialog.vue +++ b/src/components/ConfirmTimerDialog.vue @@ -46,8 +46,8 @@ const messageTaskName = computed(() => { rows="3" >
- - + +
@@ -108,7 +108,7 @@ const messageTaskName = computed(() => { gap: 12px; margin-top: 8px; } -.btn { +.gantt-btn { min-width: 96px; padding: 10px 0; border: none; @@ -122,11 +122,11 @@ const messageTaskName = computed(() => { align-items: center; justify-content: center; } -.btn-confirm { +.gantt-btn-confirm { background: #4caf50; color: #fff; } -.btn-confirm:hover { +.gantt-btn-confirm:hover { background: #43a047; } diff --git a/src/components/GanttConfirmDialog.vue b/src/components/GanttConfirmDialog.vue index 48eef64..2390754 100644 --- a/src/components/GanttConfirmDialog.vue +++ b/src/components/GanttConfirmDialog.vue @@ -28,23 +28,23 @@ const onNo = () => emit('no') @@ -812,13 +812,13 @@ onUnmounted(() => { background: var(--gantt-bg-active, rgba(0, 0, 0, 0.3)); } -.toolbar-icon-btn .btn-icon { +.toolbar-icon-btn .gantt-btn-icon { width: 18px; height: 18px; } /* 图标样式 */ -.btn-icon { +.gantt-btn-icon { width: 16px; height: 16px; stroke-width: 2; @@ -882,7 +882,7 @@ onUnmounted(() => { background: var(--gantt-bg-active, rgba(64, 158, 255, 0.1)); } -.toolbar-lang-btn .btn-icon { +.toolbar-lang-btn .gantt-btn-icon { width: 16px; height: 16px; stroke-width: 2; @@ -1089,27 +1089,27 @@ onUnmounted(() => { font-size: 14px; } - .btn { + .gantt-btn { padding: 8px 12px; font-size: 13px; } } /* 按钮组样式 - Element Plus primary button group 风格 */ -.btn-group { +.gantt-btn-group { display: inline-flex; margin-right: 8px; overflow: hidden; transition: all 0.2s ease; } -.btn-group:hover, -.btn-group:focus-within { +.gantt-btn-group:hover, +.gantt-btn-group:focus-within { transform: translateY(-1px); box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.15); } -.btn-group-item { +.gantt-btn-group-item { display: inline-flex; align-items: center; gap: 6px; @@ -1130,19 +1130,19 @@ onUnmounted(() => { transition: all 0.2s ease; } -.btn-group-item:first-child { +.gantt-btn-group-item:first-child { border-left: 1px solid; border-right: none; border-top-left-radius: 4px; border-bottom-left-radius: 4px; } -.btn-group-item:last-child { +.gantt-btn-group-item:last-child { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } -.btn-group-item:not(:last-child)::after { +.gantt-btn-group-item:not(:last-child)::after { content: ''; position: absolute; right: 0; @@ -1154,53 +1154,53 @@ onUnmounted(() => { } /* Primary 按钮组样式 */ -.add-btn-group .btn-group-item { +.gantt-add-btn-group .gantt-btn-group-item { background: #409eff; border-color: #409eff; color: #ffffff; } -.add-btn-group .btn-group-item::after { +.gantt-add-btn-group .gantt-btn-group-item::after { background: rgba(255, 255, 255, 0.3); } -.add-btn-group .btn-group-item:hover { +.gantt-add-btn-group .gantt-btn-group-item:hover { background: #66b1ff; border-color: #66b1ff; z-index: 1; } -.add-btn-group .btn-group-item:focus { +.gantt-add-btn-group .gantt-btn-group-item:focus { background: #3a8ee6; border-color: #3a8ee6; z-index: 1; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3); } -.add-btn-group .btn-group-item:active { +.gantt-add-btn-group .gantt-btn-group-item:active { background: #337ecc; border-color: #337ecc; } /* 悬浮和焦点状态下隐藏分割线 */ -.btn-group:hover .btn-group-item::after, -.btn-group:focus-within .btn-group-item::after { +.gantt-btn-group:hover .gantt-btn-group-item::after, +.gantt-btn-group:focus-within .gantt-btn-group-item::after { opacity: 0; } /* 普通按钮组样式 */ -.btn-group:not(.add-btn-group) .btn-group-item { +.gantt-btn-group:not(.gantt-add-btn-group) .gantt-btn-group-item { border-color: #dcdfe6; } -.btn-group:not(.add-btn-group) .btn-group-item:hover { +.gantt-btn-group:not(.gantt-add-btn-group) .gantt-btn-group-item:hover { background: #ecf5ff; border-color: #b3d8ff; color: #409eff; z-index: 1; } -.btn-group:not(.add-btn-group) .btn-group-item:focus { +.gantt-btn-group:not(.gantt-add-btn-group) .gantt-btn-group-item:focus { background: #ecf5ff; border-color: #409eff; color: #409eff; @@ -1208,54 +1208,54 @@ onUnmounted(() => { box-shadow: inset 0 0 0 1px #409eff; } -.btn-group:not(.add-btn-group) .btn-group-item:active { +.gantt-btn-group:not(.gantt-add-btn-group) .gantt-btn-group-item:active { background: #d9ecff; border-color: #409eff; color: #409eff; } /* 按钮组图标样式 */ -.btn-group-item .btn-icon { +.gantt-btn-group-item .gantt-btn-icon { width: 16px; height: 16px; stroke-width: 2; } /* 暗黑模式下的按钮组样式 */ -:global(html[data-theme='dark']) .btn-group { +:global(html[data-theme='dark']) .gantt-btn-group { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px -1px rgba(0, 0, 0, 0.3); } -:global(html[data-theme='dark']) .btn-group:hover, -:global(html[data-theme='dark']) .btn-group:focus-within { +:global(html[data-theme='dark']) .gantt-btn-group:hover, +:global(html[data-theme='dark']) .gantt-btn-group:focus-within { box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.5); } -:global(html[data-theme='dark']) .add-btn-group .btn-group-item { +:global(html[data-theme='dark']) .add-btn-group .gantt-btn-group-item { background: #337ecc; border-color: #337ecc; color: #ffffff; } -:global(html[data-theme='dark']) .add-btn-group .btn-group-item:hover { +:global(html[data-theme='dark']) .add-btn-group .gantt-btn-group-item:hover { background: #4d94d4; border-color: #4d94d4; } -:global(html[data-theme='dark']) .add-btn-group .btn-group-item:focus { +:global(html[data-theme='dark']) .add-btn-group .gantt-btn-group-item:focus { background: #2c5aa0; border-color: #2c5aa0; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3); } -:global(html[data-theme='dark']) .add-btn-group .btn-group-item:active { +:global(html[data-theme='dark']) .add-btn-group .gantt-btn-group-item:active { background: #1f4872; border-color: #1f4872; } -:global(html[data-theme='dark']) .btn-group:not(.add-btn-group) .btn-group-item { +:global(html[data-theme='dark']) .gantt-btn-group:not(.gantt-add-btn-group) .gantt-btn-group-item { background: #2c2c2c; border-color: #4c4c4c; color: #e5e5e5; diff --git a/src/components/MilestoneDialog.vue b/src/components/MilestoneDialog.vue index a0ff143..fafd8d8 100644 --- a/src/components/MilestoneDialog.vue +++ b/src/components/MilestoneDialog.vue @@ -394,17 +394,17 @@ const t = (key: string) => {