diff --git a/CHANGELOG.md b/CHANGELOG.md index ee4e9c6fc64c953a84af1afac748e4e8e15cf72e..1f97da8f135000ac5674f9cd12692f1078a08f21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ ## [Unreleased] +### Added + +- 优化甘特图样式、甘特图单双击滑块触发数据激活及优化数据激活逻辑 +- 新增日历部件打开引用视图能力 + +### Fixed +- 修复选项操作视图未识别启用脏值检查模型 + ## [0.6.2-dev.0] - 2024-02-27 ### Added diff --git a/package.json b/package.json index 65241021fb9b9ae802632578ad46f4044376506f..eed7c4821779523f72942efc28924147816f2da1 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "dependencies": { "@floating-ui/dom": "^1.5.3", "@ibiz-template-plugin/ai-chat": "^0.0.1", - "@ibiz-template-plugin/gantt": "0.1.3-alpha.23", + "@ibiz-template-plugin/gantt": "0.1.3-alpha.41", "@ibiz-template/core": "0.6.2-dev.0", "@ibiz-template/devtool": "0.0.1-dev.4", "@ibiz-template/model-helper": "0.6.2-dev.0", diff --git a/src/control/calendar/calendar.tsx b/src/control/calendar/calendar.tsx index f225e85e3e47574861c9fbe4dd9698defe790431..12226c9ca4c837460b99e71f02ac7fc3760d937e 100644 --- a/src/control/calendar/calendar.tsx +++ b/src/control/calendar/calendar.tsx @@ -119,6 +119,7 @@ export const CalendarControl = defineComponent({ class={itemClass} key={item.deData.srfkey} style={style} + title={item.tips || item.text} onClick={(): Promise => this.c.onRowClick(item)} onDblclick={(): Promise => this.c.onDbRowClick(item)} > diff --git a/src/control/gantt/gantt.scss b/src/control/gantt/gantt.scss index 97bc80d0e7395f72512c546a44dc754703d27c97..6b21df919505ae5050bb2f14ea916fa2b97b87ad 100644 --- a/src/control/gantt/gantt.scss +++ b/src/control/gantt/gantt.scss @@ -1,6 +1,20 @@ @include b(control-gantt) { - height: 100%; width: 100%; + height: 100%; + + .xg-root { + .xg-table-body .xg-table-row { + cursor: pointer; + } + + .xg-table-cell > div { + width: 100%; + + .cell { + height: 100%; + } + } + } @include m(empty) { .xg-table-body { height: calc(100% - 86px) !important; @@ -9,39 +23,45 @@ @include e(slider) { height: 100%; padding: 0 12px; + cursor: pointer; border-radius: 4px; @include m(container-title) { .icon { margin-right: 6px; } + .number { display: flex; align-items: center; } + .caption { + margin: 8px; font-size: 16px; font-weight: 400; - margin: 8px; } } @include m(container-content) { display: flex; justify-content: space-between; + .caption { margin: 4px; color: getCssVar(color, disabled, text); } + .detail { - flex-grow: 1; display: flex; flex-direction: column; + flex-grow: 1; align-items: center; } } } - .ibiz-tree-grid-ex-field-column-text-container { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + .#{bem('tree-grid-ex-field-column-text-container')} { + width: 100%; + } + .#{bem('tree-grid-ex-edit-column', 'editor')} { + min-height: 32px; } } diff --git a/src/control/gantt/gantt.tsx b/src/control/gantt/gantt.tsx index b32da7c20bddab529d03df4b5b674b7231222a91..1ce8a4a06a7e199f37c98048de9b96a333600b0d 100644 --- a/src/control/gantt/gantt.tsx +++ b/src/control/gantt/gantt.tsx @@ -422,7 +422,6 @@ export const GanttControl = defineComponent({ label={caption} prop={codeName} width={width && width > 30 ? width : 30} - ellipsis={true} center={align?.toLowerCase() === 'center'} > {{ @@ -531,6 +530,8 @@ export const GanttControl = defineComponent({ style={{ background: sliderColor.value[row._nodeId], }} + onClick={evt => onNodeClick(row, evt)} + onDblclick={() => onNodeDbClick(row)} onContextmenu={evt => onNodeContextmenu(row, evt)} > ); diff --git a/src/view-engine/calendar-view.engine.ts b/src/view-engine/calendar-view.engine.ts index 9e30e64294d2b5df632bbc730cb83fea218611ee..e47f9ab332d4afa8d71d657019e24cb46f92fb30 100644 --- a/src/view-engine/calendar-view.engine.ts +++ b/src/view-engine/calendar-view.engine.ts @@ -3,6 +3,7 @@ import { ICalendarViewEvent, ICalendarViewState, MDViewEngine, + EventBase, } from '@ibiz-template/runtime'; import { IAppDECalendarView } from '@ibiz/model-core'; @@ -12,4 +13,18 @@ export class CalendarViewEngine extends MDViewEngine { ICalendarViewState, ICalendarViewEvent >; + + // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars + protected async onXDataActive(event: EventBase): Promise { + // 日历视图 opendata 逻辑由部件执行 + } + + async onCreated(): Promise { + super.onCreated(); + const { model } = this.view; + if (!this.view.slotProps.calendar) { + this.view.slotProps.calendar = {}; + } + this.view.slotProps.calendar.mdctrlActiveMode = model.mdctrlActiveMode!; + } } diff --git a/src/view-engine/gantt-view.engine.ts b/src/view-engine/gantt-view.engine.ts index ee5dd535a3f0b3189fef8e8b634917fb43ef2819..fbceab649c447b7a74efbfef2d22f51690e80cd6 100644 --- a/src/view-engine/gantt-view.engine.ts +++ b/src/view-engine/gantt-view.engine.ts @@ -5,6 +5,7 @@ import { IGanttViewEvent, IGanttController, SysUIActionTag, + EventBase, } from '@ibiz-template/runtime'; import { IAppDEGanttView } from '@ibiz/model-core'; @@ -40,6 +41,11 @@ export class GanttViewEngine extends MDViewEngine { return super.call(key, args); } + // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars + protected async onXDataActive(event: EventBase): Promise { + // 甘特图 opendata 逻辑由部件执行 + } + async onCreated(): Promise { super.onCreated(); const { model } = this.view; diff --git a/src/view-engine/opt-view.engine.ts b/src/view-engine/opt-view.engine.ts index 5c646b56db5bbab554b687f04cb0031079765675..d21007e2bee2c6891062da8de4dc4dd5dffbd5fc 100644 --- a/src/view-engine/opt-view.engine.ts +++ b/src/view-engine/opt-view.engine.ts @@ -58,7 +58,10 @@ export class OptViewEngine extends ViewEngineBase { this.view.slotProps.toolbar.manualCalcButtonState = true; modal.hooks.shouldDismiss.tapPromise(async context => { - if (this.form.state.modified) { + if ( + this.form.state.modified && + this.view.model.enableDirtyChecking === true + ) { const isAllow = await ibiz.confirm.error({ title: '关闭提醒', desc: '表单数据已经修改,确定要关闭?',