diff --git a/packages/opendesign/src/_demo/types.ts b/packages/opendesign/src/_demo/types.ts index 065ab65308bfb63bf7542b0c233293f8cad30e20..47bf954d39d70f533836115ef882cd30cc479a42 100644 --- a/packages/opendesign/src/_demo/types.ts +++ b/packages/opendesign/src/_demo/types.ts @@ -6,7 +6,7 @@ export type DocDemoSchema = } | { type: 'list'; - list: Array; + list: Array | Readonly>; default?: string | number; label?: string; } diff --git a/packages/opendesign/src/table/__docs__/__case__/TableBasic.vue b/packages/opendesign/src/table/__docs__/__case__/TableBasic.vue new file mode 100644 index 0000000000000000000000000000000000000000..d96d1200a0bef10b2674a2c5b03cc377a43f50cd --- /dev/null +++ b/packages/opendesign/src/table/__docs__/__case__/TableBasic.vue @@ -0,0 +1,62 @@ + + +### Basic + + +### Basic + + + + + diff --git a/packages/opendesign/src/table/__docs__/__case__/TableDiy.vue b/packages/opendesign/src/table/__docs__/__case__/TableDiy.vue new file mode 100644 index 0000000000000000000000000000000000000000..e07fcc04f366be0071d6bdd7908133fa223a6d9b --- /dev/null +++ b/packages/opendesign/src/table/__docs__/__case__/TableDiy.vue @@ -0,0 +1,51 @@ + + +### Diy + + +### Diy + + + + + diff --git a/packages/opendesign/src/table/__docs__/__case__/TableDiyHead.vue b/packages/opendesign/src/table/__docs__/__case__/TableDiyHead.vue new file mode 100644 index 0000000000000000000000000000000000000000..6624fe265eedcb9124c1fbba4528859aeaa26672 --- /dev/null +++ b/packages/opendesign/src/table/__docs__/__case__/TableDiyHead.vue @@ -0,0 +1,53 @@ + + +### 自定义表头 + + +### Costume Header + + + + + diff --git a/packages/opendesign/src/table/__docs__/__case__/TablePagination.vue b/packages/opendesign/src/table/__docs__/__case__/TablePagination.vue new file mode 100644 index 0000000000000000000000000000000000000000..df60997d68286385286ae00bb0c6f00ca07535ba --- /dev/null +++ b/packages/opendesign/src/table/__docs__/__case__/TablePagination.vue @@ -0,0 +1,55 @@ + + +### 分页 + + +### Pagination + + + + + diff --git a/packages/opendesign/src/table/__docs__/__case__/TableSpan.vue b/packages/opendesign/src/table/__docs__/__case__/TableSpan.vue new file mode 100644 index 0000000000000000000000000000000000000000..3926eb1946dc9f8dfd7f542f505ff8abe176b268 --- /dev/null +++ b/packages/opendesign/src/table/__docs__/__case__/TableSpan.vue @@ -0,0 +1,61 @@ + + +### 单元格合并 + + +### Cell Merge + + + + + diff --git a/packages/opendesign/src/table/__docs__/__case__/data.ts b/packages/opendesign/src/table/__docs__/__case__/data.ts new file mode 100644 index 0000000000000000000000000000000000000000..c982081dfef115d0f333d9988c0118670c2d4dd2 --- /dev/null +++ b/packages/opendesign/src/table/__docs__/__case__/data.ts @@ -0,0 +1,32 @@ +function getItem(index: number) { + return { + no: index, + key: index, + name: `William Smith ${index}`, + salary: 27000 + index, + address: `${index} Park Road, London`, + email: `william.smith${index}@example.com`, + other: `other info ${index}`, + }; +} + +export function getTableData(total: number, idx = 0) { + const rlt = []; + for (let i = idx; i <= idx + total; i++) { + rlt.push(getItem(i + 1)); + } + return rlt; +} + +export function requestTableData(cursor: number, length: number): Promise<{ total: number, list: any[] }> { + const total = 100; + return new Promise((resolve) => { + const list = getTableData(length, cursor); + setTimeout(() => { + resolve({ + total, + list + }); + }, 1000); + }); +} \ No newline at end of file diff --git a/packages/opendesign/src/table/__docs__/__case__/tableUsage.ts b/packages/opendesign/src/table/__docs__/__case__/tableUsage.ts new file mode 100644 index 0000000000000000000000000000000000000000..ab5df0b119c2c6946d14b211978ca97409029ce1 --- /dev/null +++ b/packages/opendesign/src/table/__docs__/__case__/tableUsage.ts @@ -0,0 +1,55 @@ +import { reactive } from 'vue'; +import { propsToAttrStr } from '../../../_demo/utils'; +import { DocDemoSchema, DocDemoTemplate } from '../../../_demo/types.ts'; +import { getTableData } from './data.ts'; +import { TableBorderTypes } from '@opensig/opendesign'; + +export const docs = { + 'zh-CN': + '表格用于展示密集数据集,可配置项包括: \n' + + '- 表头内容`columns` \n' + + '- 表格数据`data` \n' + + '- 是否显示边框`border` \n' + + '- 是否小表格`small` \n' + + '- 单元格合并`cellSpan` \n' + + '- 空数据提示文本`emptyLabel` \n' + + '- 是否正在加载`loading` \n' + + '- 加载提示文本`loadingLabel` \n' +}; + +export const schema = { + border: { + type: 'list', + list: TableBorderTypes + }, + loading: { + type: 'boolean', + default: false + }, + small: { + type: 'boolean', + default: false + }, + emptyLabel: { + type: 'string', + default: undefined + }, + loadingLabel: { + type: 'string', + default: undefined + }, +} satisfies Record; + +export const ctx = reactive({ + columns: [ + { label: 'Name', key: 'name' }, + { label: 'Salary', key: 'salary' }, + { label: 'Address', key: 'address' }, + { label: 'Email', key: 'email' }, + ], + data: getTableData(6) +}); + +export const template:DocDemoTemplate = (_props) => { + return ``; +}; \ No newline at end of file diff --git a/packages/opendesign/src/table/__docs__/index.en-US.md b/packages/opendesign/src/table/__docs__/index.en-US.md new file mode 100644 index 0000000000000000000000000000000000000000..3707ded6896b6c3a6d6a675823abaee3fe511d3f --- /dev/null +++ b/packages/opendesign/src/table/__docs__/index.en-US.md @@ -0,0 +1,21 @@ +--- +sidebar: OTable +--- + +# Data Table + +## Usage + + + +## Cases + + + + + + + +## Api + + \ No newline at end of file diff --git a/packages/opendesign/src/table/__docs__/index.zh-CN.md b/packages/opendesign/src/table/__docs__/index.zh-CN.md new file mode 100644 index 0000000000000000000000000000000000000000..5efe5fb2070854d60a8692899a72946e66fd8a6f --- /dev/null +++ b/packages/opendesign/src/table/__docs__/index.zh-CN.md @@ -0,0 +1,21 @@ +--- +sidebar: OTable 数据表格 +--- + +# 数据表格 + +## 使用 + + + +## 示例 + + + + + + + +## Api + + \ No newline at end of file