diff --git a/packages/grid/src/utils/field/link.ts b/packages/grid/src/utils/field/link.ts index 8e05e71c..dfcd9a83 100644 --- a/packages/grid/src/utils/field/link.ts +++ b/packages/grid/src/utils/field/link.ts @@ -3,7 +3,7 @@ import { Field } from './field'; import { isEmpty } from '../common'; export class LinkField extends Field { - override cellFullText(transformValue: LinkFieldValue, field: AITableField): string[] { + cellFullText(transformValue: LinkFieldValue, field: AITableField): string[] { let fullText: string[] = []; if (!isEmpty(transformValue?.text)) { fullText.push(transformValue.text); diff --git a/packages/grid/src/utils/field/member.ts b/packages/grid/src/utils/field/member.ts index 97fd0ea2..7d1119f4 100644 --- a/packages/grid/src/utils/field/member.ts +++ b/packages/grid/src/utils/field/member.ts @@ -2,7 +2,7 @@ import { AITableField, AITableReferences } from '../../index'; import { Field } from './field'; export class MemberField extends Field { - override cellFullText(transformValue: string[], field: AITableField, references?: AITableReferences): string[] { + cellFullText(transformValue: string[], field: AITableField, references?: AITableReferences): string[] { let fullText: string[] = []; if (transformValue?.length && references) { for (let index = 0; index < transformValue.length; index++) { diff --git a/packages/grid/src/utils/field/progress.ts b/packages/grid/src/utils/field/progress.ts index 9995dca0..f2201efc 100644 --- a/packages/grid/src/utils/field/progress.ts +++ b/packages/grid/src/utils/field/progress.ts @@ -2,7 +2,7 @@ import { AITableField } from '../../index'; import { Field } from './field'; export class ProgressField extends Field { - override cellFullText(transformValue: number, field: AITableField): string[] { + cellFullText(transformValue: number, field: AITableField): string[] { const fullText = `${transformValue}%`; return [fullText]; } diff --git a/packages/grid/src/utils/field/select.ts b/packages/grid/src/utils/field/select.ts index 6e582bfa..56f6a66d 100644 --- a/packages/grid/src/utils/field/select.ts +++ b/packages/grid/src/utils/field/select.ts @@ -2,7 +2,7 @@ import { Field } from './field'; import { AITableField, AITableSelectField } from '../../index'; export class SelectField extends Field { - override cellFullText(transformValue: string[], field: AITableField): string[] { + cellFullText(transformValue: string[], field: AITableField): string[] { let cellText: string[] = []; if (transformValue && Array.isArray(transformValue) && transformValue.length) { transformValue.forEach((optionId) => { diff --git a/packages/grid/src/utils/field/text.ts b/packages/grid/src/utils/field/text.ts index 3d46a7b1..d3e4a183 100644 --- a/packages/grid/src/utils/field/text.ts +++ b/packages/grid/src/utils/field/text.ts @@ -2,7 +2,7 @@ import { AITableField, AITableReferences, isEmpty } from '../../index'; import { Field } from './field'; export class TextField extends Field { - override cellFullText(transformValue: any, field: AITableField, references?: AITableReferences): string[] { + cellFullText(transformValue: any, field: AITableField, references?: AITableReferences): string[] { let fullText: string[] = []; if (!isEmpty(transformValue)) { fullText.push(String(transformValue)); diff --git a/src/app/service/table.service.ts b/src/app/service/table.service.ts index cb974524..7747abc8 100644 --- a/src/app/service/table.service.ts +++ b/src/app/service/table.service.ts @@ -45,7 +45,62 @@ export class TableService { router = inject(Router); activeView = computed(() => { - return this.views().find((view) => view._id === this.activeViewId()) as AITableView; + const settings = { + condition_logical: 'and', + conditions: [ + // 评分 + // { + // field_id: 'column-7', + // operation: 'nin', //in 、nin 、exists、empty + // value: [3, '4'] + // } + // 链接 + // { + // field_id: 'column-8', + // operation: 'contain', // 'exists', //'empty', + // value: '百' + // } + // 更新时间(系统日期) + // { + // field_id: 'column-12', + // operation: 'exists', // empty 、 exists + // value: null + // } + // { + // field_id: 'column-12', + // operation: 'between', + // value: [1734513044, 1734685844] // 2024-12-18 ~2024-12-20 + // } + // { + // field_id: 'column-12', + // operation: 'gt', // eq、gt、lt + // // value: 1734376927 // 2024/12/17 + // value: 1734463327 // 2024/12/18 + // // value: 1734549727 // 2024/12/19 + // } + // 自定义日期 + // { + // field_id: 'column-4', + // operation: 'lt', + // value: 1734636127 // 2024/12/20 + // } + // { + // field_id: 'column-4', + // operation: 'empty', + // value: null + // } + // { + // field_id: 'column-4', + // operation: 'between', + // value: [1733944927, 1734722527] // 2024-12-12 ~2024-12-21 + // } + ], + is_keep_sort: true, + sorts: [{ direction: -1, sort_by: 'column-3' }], + keywords: '3' + }; + const view = this.views().find((view) => view._id === this.activeViewId()) as AITableView; + return { ...view, settings }; }); activeViewShortId = computed(() => { @@ -53,11 +108,11 @@ export class TableService { }); renderRecords = computed(() => { - return buildRecordsByView(this.aiTable, this.records(), this.fields(), this.activeView()) as AITableViewRecords; + return buildRecordsByView(this.aiTable, this.records(), this.fields(), this.activeView() as AITableView) as AITableViewRecords; }); renderFields = computed(() => { - return buildFieldsByView(this.aiTable, this.fields(), this.activeView()) as AITableViewFields; + return buildFieldsByView(this.aiTable, this.fields(), this.activeView() as AITableView) as AITableViewFields; }); aiBuildRenderDataFn: Signal<() => AITableValue> = computed(() => { @@ -69,6 +124,10 @@ export class TableService { }; }); + keywords = computed(() => { + return this.activeView().settings?.keywords; + }); + initData(views: AITableView[]) { this.views = signal(views); } @@ -120,7 +179,7 @@ export class TableService { } this.provider = getProvider(this.sharedType.doc!, room, isDevMode()); this.provider.connect(); - this.provider.once('synced', () => { + this.provider.once('sync', () => { if (this.provider!.synced && [...this.sharedType!.doc!.store.clients.keys()].length === 0) { console.log('init shared type'); const value = getCanvasDefaultValue(); diff --git a/src/app/utils/utils.ts b/src/app/utils/utils.ts index 5b5fcc73..9d1f4322 100644 --- a/src/app/utils/utils.ts +++ b/src/app/utils/utils.ts @@ -44,8 +44,8 @@ export function getDefaultValue() { 'column-20': ['66b31d0c8097a908f74bcd8a'], 'column-21': ['66b31d0c8097a908f74bcd8a'], 'column-22': ['66b31d0c8097a908f74bcd8a'], - 'column-3': 0, - 'column-4': { timestamp: 1734636127 }, + 'column-3': null, + 'column-4': { timestamp: 1682235946 }, 'column-5': ['member_01'], 'column-6': 10, 'column-7': 3, @@ -73,7 +73,7 @@ export function getDefaultValue() { 'column-20': ['66b31d0c8097a908f74bcd8a', '66b31d0c8097a908f74bcd8b'], 'column-21': ['66b31d0c8097a908f74bcd8a', '66b31d0c8097a908f74bcd8b'], 'column-22': ['66b31d0c8097a908f74bcd8a', '66b31d0c8097a908f74bcd8b'], - 'column-3': 10, + 'column-3': 0, 'column-4': { timestamp: 1682235946 }, 'column-5': ['member_01', 'member_02'], 'column-6': 50, @@ -125,6 +125,88 @@ export function getDefaultValue() { // 'column-11': ['member_02'], // 'column-12': 1720490727 } + }, + { + _id: 'row-4', + short_id: `row-short-id-${4}`, + ...getDefaultTrackableEntity(), + positions: { + view1: 2, + view2: 0 + }, + values: { + 'column-1': '文本 4-1', + 'column-2': ['_id_4'], + 'column-20': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-21': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-22': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-3': null, + 'column-4': { timestamp: 1682235946 }, + 'column-5': [], + 'column-6': 100, + 'column-7': 1, + 'column-8': {}, + 'column-9': [], + 'column-10': 1682235946, + 'column-11': ['member_02'], + 'column-12': 1720490727 + } + }, + { + _id: 'row-5', + short_id: `row-short-id-${5}`, + ...getDefaultTrackableEntity(), + positions: { + view1: 2, + view2: 0 + }, + values: { + 'column-1': '文本 5-1', + 'column-2': ['_id_5'], + 'column-20': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-21': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-22': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-3': 1, + 'column-4': { timestamp: 1682235946 }, + 'column-5': [], + 'column-6': 100, + 'column-7': 1, + 'column-8': {}, + 'column-9': [], + 'column-10': 1682235946, + 'column-11': ['member_02'], + 'column-12': 1720490727 + } } ], fields: [ @@ -443,8 +525,8 @@ export function getCanvasDefaultValue() { 'column-111': ['piece_1'], 'column-112': ['tag_1'], 'column-20': ['66b31d0c8097a908f74bcd8a'], - 'column-3': 0, - 'column-4': { timestamp: 1734636127 }, + 'column-3': null, + 'column-4': { timestamp: 1682235946 }, 'column-5': ['member_01'], 'column-6': 10, 'column-7': 5, @@ -477,7 +559,7 @@ export function getCanvasDefaultValue() { 'column-111': ['piece_2'], 'column-112': ['tag_2'], 'column-20': ['66b31d0c8097a908f74bcd8a', '66b31d0c8097a908f74bcd8b'], - 'column-3': 10, + 'column-3': 0, 'column-4': { timestamp: 1682235946 }, 'column-5': ['member_01', 'member_02', 'member_03', 'member_04', 'member_05', 'member_06', 'member_07', 'member_08'], 'column-6': 50, @@ -527,6 +609,88 @@ export function getCanvasDefaultValue() { 'column-22': ['66b31d0c8097a908f74bcd8b', '66b31d0c8097a908f74bcd8a'], 'column-23': ['66b31d0c8097a908f74bcd8e', '66b31d0c8097a908f74bcd8a', '66b31d0c8097a908f74bcd8b'] } + }, + { + _id: 'row-4', + short_id: `row-short-id-${4}`, + ...getDefaultTrackableEntity(), + positions: { + view1: 2, + view2: 0 + }, + values: { + 'column-1': '文本 4-1', + 'column-2': ['_id_4'], + 'column-20': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-21': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-22': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-3': null, + 'column-4': { timestamp: 1682235946 }, + 'column-5': [], + 'column-6': 100, + 'column-7': 1, + 'column-8': {}, + 'column-9': [], + 'column-10': 1682235946, + 'column-11': ['member_02'], + 'column-12': 1720490727 + } + }, + { + _id: 'row-5', + short_id: `row-short-id-${5}`, + ...getDefaultTrackableEntity(), + positions: { + view1: 2, + view2: 0 + }, + values: { + 'column-1': '文本 5-1', + 'column-2': ['_id_5'], + 'column-20': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-21': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-22': [ + '66b31d0c8097a908f74bcd8a', + '66b31d0c8097a908f74bcd8b', + '66b31d0c8097a908f74bcd8c', + '66b31d0c8097a908f74bcd8d' + ], + 'column-3': 1, + 'column-4': { timestamp: 1682235946 }, + 'column-5': [], + 'column-6': 100, + 'column-7': 1, + 'column-8': {}, + 'column-9': [], + 'column-10': 1682235946, + 'column-11': ['member_02'], + 'column-12': 1720490727 + } } ], fields: [