udpate add columns types

This commit is contained in:
2025-12-02 10:22:35 +08:00
parent 420612501e
commit 25a4b5b4cb
7 changed files with 107 additions and 17 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@kevisual/noco",
"version": "0.0.5",
"version": "0.0.6",
"description": "",
"main": "index.js",
"scripts": {
@@ -32,7 +32,8 @@
"nocodb-sdk": "^0.265.1"
},
"exports": {
".": "./dist/app.js"
".": "./dist/app.js",
"./src/**/*": "./src/**/"
},
"dependencies": {}
}

View File

@@ -3,4 +3,7 @@ export * from './api.ts';
export * from './main.ts';
export * from './meta/index.ts';
export * from './data/upload.ts';
export * from './data/upload.ts';
// 重要的类型定义模块
export type { CreateColumnData, CreateTableData } from './meta/tables.ts';

View File

@@ -1,5 +1,5 @@
import { Query } from './api.ts';
import { Meta } from './meta/index.ts';
import { Meta, CreateColumnData } from './meta/index.ts';
import { Record } from './record.ts';
import { Upload } from './data/upload.ts';
export type NocoApiOptions = {

View File

@@ -5,7 +5,6 @@ import { Webhook } from './webhook.ts';
export type MetaOptions = {
query: Query;
};
/**
* NocoDB Meta API 管理类
* 统一管理所有的 meta 相关操作

View File

@@ -45,7 +45,7 @@ export class MetaTables {
method: 'GET',
});
}
async createTable(baseId: string, data: CreateTableData): Promise<{ code: number; data: TableMetaInfo }> {
async createTable(baseId: string, data: CreateTableData): Promise<{ code: number; data: TableMetaInfo }> {
return this.query.makeRequest(`/api/v2/meta/bases/${baseId}/tables`, {
method: 'POST',
data,
@@ -68,6 +68,28 @@ export type CreateColumnData = {
title: string;
uidt?: ColumnTypes
description?: string;
/**
* 是否为主键 primay 的值
*/
pv?: boolean;
/** 是否必填 */
rqd?: boolean;
/** 单元格默认值 */
cdf?: string;
/**
* 列选项配置
*/
colOptions?: {
options?: Array<{
title: string;
color?: string;
[key: string]: any;
}>;
};
/**
* 其他元信息
*/
meta?: Record<string, any>;
}
export const columnTypes = [
'SingleLineText',

View File

@@ -1,5 +1,6 @@
import { NocoApi } from './../src/main.ts';
import { useConfig } from '@kevisual/use-config'
import { CreateColumnData } from '../src/meta/index.ts';
export const config = useConfig()
import util from 'node:util';
// # 签到表

View File

@@ -1,3 +1,4 @@
import { title } from "process";
import { nocoApi } from "./common";
import bun from 'bun'
@@ -7,11 +8,12 @@ import bun from 'bun'
// AI id
const baseId = 'pypv3deh9qzol7q'
// 个人知识库 id
const startId = 'prg9dee7ldbemzd'
// const res = await nocoApi.meta.tables.list(baseId)
// console.log('tables list', res);
const tableId = 'm9rcgc95ev9d1uo'
// const tableId = 'm9rcgc95ev9d1uo'
// const tableMeta = await nocoApi.meta.tables.getTableMeta(tableId)
@@ -20,34 +22,96 @@ const tableId = 'm9rcgc95ev9d1uo'
// bun.write('meta.json', JSON.stringify(tableMeta, null, 2))
const newTables = await nocoApi.meta.tables.createTable(startId, {
title: '测试表3',
title: '测试表4',
description: '这是一个测试表3',
columns: [
// {
// title: 'Title',
// uidt: 'SingleLineText',
// description: '标题列',
// },
// {
// title: 'Summary',
// uidt: 'LongText',
// description: '摘要列',
// },
// {
// title: 'Tags',
// uidt: 'MultiSelect',
// description: '标签列',
// },
// {
// title: 'Description',
// uidt: 'LongText',
// description: '描述列',
// },
// {
// title: 'Link',
// uidt: 'URL',
// description: '链接列',
// },
{
title: 'Title',
title: '标题',
uidt: 'SingleLineText',
description: '标题列',
},
{
title: 'Summary',
uidt: 'LongText',
description: '摘要列',
},
{
title: 'Tags',
title: '标签',
uidt: 'MultiSelect',
description: '标签列',
},
{
title: 'Description',
title: '总结',
uidt: 'LongText',
description: '总结列',
},
{
title: '描述',
uidt: 'LongText',
description: '描述列',
},
{
title: 'Link',
title: '数据',
uidt: 'JSON',
description: '数据列',
},
{
title: '链接',
uidt: 'URL',
description: '链接列',
},
{
title: '类型',
uidt: 'SingleSelect',
// dtxp: toStr(['每日', '每周', '每月', '每年', '一次性', '备忘', '归档', '智能']),
colOptions: {
options: [
{
title: '每日',
},
{
title: '每周',
}
]
}
},
{
title: '启动时间',
uidt: 'DateTime',
},
{
title: '任务',
uidt: 'MultiSelect'
},
{
title: '任务结果',
uidt: 'LongText'
},
{
title: '提示词',
uidt: 'LongText',
description: '和AI交互时候简单的实时提示词',
}
]
})