From 7f717985f146c05624136a317ca62476ff68c7f4 Mon Sep 17 00:00:00 2001 From: "jlj05024111@163.com" Date: Fri, 29 Nov 2024 14:44:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=94=98?= =?UTF-8?q?=E7=89=B9=E8=A1=A8=E6=A0=BC=E5=88=97=E8=AE=BE=E7=BD=AE=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E9=87=8C=E6=98=BE=E7=A4=BA=E5=88=97=E7=9A=84=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=EF=BC=9B=E5=9C=A8=E9=80=89=E6=8B=A9=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=88=97=E7=9A=84=E6=95=B0=E9=87=8F=E8=BE=BE=E5=88=B0=E9=99=90?= =?UTF-8?q?=E5=88=B6=E6=97=B6=EF=BC=8C=E8=BF=9B=E8=A1=8C=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=EF=BC=9B=E7=A6=81=E7=94=A8=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E5=92=8C=E7=94=98=E7=89=B9=E8=A1=A8=E6=A0=BC=E7=9A=84=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E6=8B=96=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ src/common/gantt-setting/gantt-setting.scss | 1 + src/common/gantt-setting/gantt-setting.tsx | 16 ++++++++++++++-- src/common/grid-setting/grid-setting.tsx | 12 +++++++----- .../form/form-detail/form-item/form-item.tsx | 1 - src/control/gantt/gantt.tsx | 10 +++++++--- src/locale/en/index.ts | 1 + src/locale/zh-CN/index.ts | 1 + 8 files changed, 35 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65c76e5d8..ce0cf7a65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ ## [Unreleased] +### Changed + +- 修改甘特表格列设置组件里显示列的样式;在选择显示列的数量达到限制时,进行消息提示;禁用表格和甘特表格的排序拖动 + ## [0.7.38-alpha.29] - 2024-11-28 ### Added diff --git a/src/common/gantt-setting/gantt-setting.scss b/src/common/gantt-setting/gantt-setting.scss index 9f3caaf5c..d6b2cfbde 100644 --- a/src/common/gantt-setting/gantt-setting.scss +++ b/src/common/gantt-setting/gantt-setting.scss @@ -143,6 +143,7 @@ $gantt-setting: ( } @include e('drag-icon'){ + margin: getCssVar(spacing,extra-tight) getCssVar(spacing,extra-tight) 0 0; opacity: 0; } diff --git a/src/common/gantt-setting/gantt-setting.tsx b/src/common/gantt-setting/gantt-setting.tsx index 2485ddb50..ff8bad5eb 100644 --- a/src/common/gantt-setting/gantt-setting.tsx +++ b/src/common/gantt-setting/gantt-setting.tsx @@ -1,5 +1,5 @@ /* eslint-disable prefer-const */ -import { defineComponent, PropType, ref, watch } from 'vue'; +import { computed, defineComponent, PropType, ref, watch } from 'vue'; import { useNamespace } from '@ibiz-template/vue3-util'; import { IModal, IColumnState, IModalData } from '@ibiz-template/runtime'; import draggable from 'vuedraggable'; @@ -109,6 +109,12 @@ export const IBizGanttSetting = defineComponent({ // 绘制数据 const states = ref([]); + // 是否允许拖动 + const isDraggable = computed(() => { + // 暂时不允许拖动--todo + return false; + }); + // 计算是否为必须显示的值 const calcMustShowColumn = (item: IColumnState): boolean => { return props.mustShowColumns.some(item2 => item.key === item2); @@ -141,6 +147,9 @@ export const IBizGanttSetting = defineComponent({ return !must && !_item.hidden; }); if (columns && columns.length >= props.limitsize) { + ibiz.message.warning( + ibiz.i18n.t('component.ganttSetting.reachedMaximum'), + ); return; } } @@ -225,7 +234,9 @@ export const IBizGanttSetting = defineComponent({ ]} onClick={() => isOptional && !isMust && onListItemClick(item)} > -
{dragIcon()}
+ {isDraggable.value && ( +
{dragIcon()}
+ )}
{caption}
{(isSelectedShow || (isOptional && isMust)) && selectedIcon()} @@ -278,6 +289,7 @@ export const IBizGanttSetting = defineComponent({ { - let enablesort = ibiz.config.grid.enableColumnSort; - if (c.controlParams.enablecolumnsort) { - enablesort = Object.is(c.controlParams.enablecolumnsort, 'true'); - } - return enablesort; + // let enablesort = ibiz.config.grid.enableColumnSort; + // if (c.controlParams.enablecolumnsort) { + // enablesort = Object.is(c.controlParams.enablecolumnsort, 'true'); + // } + // return enablesort + // 暂时不允许拖动 --todo + return false; }); // 点击后控制显隐 diff --git a/src/control/form/form-detail/form-item/form-item.tsx b/src/control/form/form-detail/form-item/form-item.tsx index 6bf86be7a..5f9e9e7d9 100644 --- a/src/control/form/form-detail/form-item/form-item.tsx +++ b/src/control/form/form-detail/form-item/form-item.tsx @@ -105,7 +105,6 @@ export const FormItem = defineComponent({ this.ns.m(this.modelData.id), ...this.controller.containerClass, ]} - controller={this.controller.editor} style={this.modelData.cssStyle} required={this.c.state.required} error={this.c.state.error} diff --git a/src/control/gantt/gantt.tsx b/src/control/gantt/gantt.tsx index f9f327027..08d8c940a 100644 --- a/src/control/gantt/gantt.tsx +++ b/src/control/gantt/gantt.tsx @@ -754,9 +754,13 @@ export const GanttControl = defineComponent({ * @param {number} width */ const onHeaderDragend = (index: number, width: number) => { - const columnState = c.state.columnStates[index]; - if (columnState) { - columnState.columnWidth = width; + // 此处的index是实际绘制列的index的顺序,所以需要先过滤一下才能找到对应的缓存列,参考上方172行 + const columnState = c.state.columnStates.filter((item: IColumnState) => { + const columnModel = c.columns[item.key]?.model; + return !item.hidden && columnModel; + }); + if (columnState && columnState[index]) { + columnState[index].columnWidth = width; c.saveColumnState(); } }; diff --git a/src/locale/en/index.ts b/src/locale/en/index.ts index 6882b1666..008848b08 100644 --- a/src/locale/en/index.ts +++ b/src/locale/en/index.ts @@ -544,6 +544,7 @@ export default { optionalAttribute: 'Optional attributes', selectedAttribute: 'Selected attributes', limitsize: 'Maximum limit {max}', + reachedMaximum: 'Reached maximum value', }, actionToolbar: { more: 'More', diff --git a/src/locale/zh-CN/index.ts b/src/locale/zh-CN/index.ts index b186268e8..029122329 100644 --- a/src/locale/zh-CN/index.ts +++ b/src/locale/zh-CN/index.ts @@ -506,6 +506,7 @@ export default { optionalAttribute: '可选择属性', selectedAttribute: '已选择属性', limitsize: '上限{max}个', + reachedMaximum: '已达最大值', }, actionToolbar: { more: '更多', -- Gitee From 100985a206a67b91cde086fb4d40764e5ce13643 Mon Sep 17 00:00:00 2001 From: "jlj05024111@163.com" Date: Fri, 29 Nov 2024 17:35:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E7=A7=BB=E9=99=A4=E5=86=97?= =?UTF-8?q?=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/gantt-setting/gantt-setting.tsx | 58 ++-------------------- src/common/grid-setting/grid-setting.tsx | 7 +-- 2 files changed, 5 insertions(+), 60 deletions(-) diff --git a/src/common/gantt-setting/gantt-setting.tsx b/src/common/gantt-setting/gantt-setting.tsx index ff8bad5eb..5dc748b19 100644 --- a/src/common/gantt-setting/gantt-setting.tsx +++ b/src/common/gantt-setting/gantt-setting.tsx @@ -1,8 +1,7 @@ /* eslint-disable prefer-const */ -import { computed, defineComponent, PropType, ref, watch } from 'vue'; +import { defineComponent, PropType, ref, watch } from 'vue'; import { useNamespace } from '@ibiz-template/vue3-util'; import { IModal, IColumnState, IModalData } from '@ibiz-template/runtime'; -import draggable from 'vuedraggable'; import { clone } from 'ramda'; import './gantt-setting.scss'; @@ -51,36 +50,11 @@ const searchIcon = (): JSX.Element => ( ); -const dragIcon = (): JSX.Element => { - return ( - - - - - - - - ); -}; - // 列表类型 type ListType = 'optional' | 'selected'; export const IBizGanttSetting = defineComponent({ name: 'IBizGanttSetting', - components: { - draggable, - }, props: { modal: { type: Object as PropType, required: true }, // 表格列状态数组 @@ -109,12 +83,6 @@ export const IBizGanttSetting = defineComponent({ // 绘制数据 const states = ref([]); - // 是否允许拖动 - const isDraggable = computed(() => { - // 暂时不允许拖动--todo - return false; - }); - // 计算是否为必须显示的值 const calcMustShowColumn = (item: IColumnState): boolean => { return props.mustShowColumns.some(item2 => item.key === item2); @@ -229,14 +197,10 @@ export const IBizGanttSetting = defineComponent({ class={[ ns.b('list-item'), ns.is('disabled', isMust && isOptional), - ns.is('onmover', isMust && isOptional), ns.is('filter-item', isFilterItem), ]} onClick={() => isOptional && !isMust && onListItemClick(item)} > - {isDraggable.value && ( -
{dragIcon()}
- )}
{caption}
{(isSelectedShow || (isOptional && isMust)) && selectedIcon()} @@ -286,23 +250,9 @@ export const IBizGanttSetting = defineComponent({ {isOptional ? renderLeftSearch() : renderRightSearch()}
- - {{ - item: ({ element: state }: { element: IColumnState }) => { - return renderListItem(state, type); - }, - }} - + {values.map((item: IColumnState) => { + return renderListItem(item, type); + })}
diff --git a/src/common/grid-setting/grid-setting.tsx b/src/common/grid-setting/grid-setting.tsx index db37dab01..c61bce3f1 100644 --- a/src/common/grid-setting/grid-setting.tsx +++ b/src/common/grid-setting/grid-setting.tsx @@ -34,13 +34,8 @@ export const IBizGridSetting = defineComponent({ }); }); + // 是否允许拖动 const isDraggable = computed(() => { - // let enablesort = ibiz.config.grid.enableColumnSort; - // if (c.controlParams.enablecolumnsort) { - // enablesort = Object.is(c.controlParams.enablecolumnsort, 'true'); - // } - // return enablesort - // 暂时不允许拖动 --todo return false; }); -- Gitee