diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 679d3396..3fc077b7 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -31,7 +31,8 @@ jobs: steps: - name: Print Previous Job Output run: | - echo "Previous job output: ${{ needs.release.outputs }}" + echo "Previous job output: " + echo "${{ needs.release.outputs }}" | jq . publish: runs-on: ubuntu-latest diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index b46b1737..a4393c76 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -52,6 +52,7 @@ export default defineConfig({ { text: 'Image 图片', link: '/components/image' }, { text: 'Shadow 阴影', link: '/components/shadow' }, { text: 'Table 表格', link: '/components/table' }, + { text: 'Checkbox 复选框', link: '/components/checkbox' }, ], }, ], diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 5e0d931b..4ecac9ef 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -19,6 +19,7 @@ import CodePreview from '../../../src/app_components/CodePreview.vue'; import '../../../style/message'; import '../../../style/shadow'; import '../../../style/table'; +import '../../../style/checkbox'; export default { extends: DefaultTheme, diff --git a/docs/components/checkbox.md b/docs/components/checkbox.md new file mode 100644 index 00000000..3eac14f5 --- /dev/null +++ b/docs/components/checkbox.md @@ -0,0 +1,212 @@ +# Checkbox 复选框 + +在一组备选项中进行多选。适用提醒用户勾选场景,突出多选框选项,可以有效增加用户识别度。 + +## 演示 + + + +### 基础用法 + +单独使用可以表示两种状态之间的切换;在 `nt-checkbox` 元素中定义 `v-model` 绑定变量,单一的 `checkbox` 中,默认绑定变量的值会是 `Boolean`,选中为 `true`。 + + + + + + + +### 禁用状态 + +多选框不可用状态, 设置 `disabled` 属性即可。 + + + + + + + +### 选项框组 + +使用 `nt-checkbox-group` 元素来包裹 `nt-checkbox` 元素,实现复选框组。使用时需要给 `nt-checkbox` 传递 `value` 属性。 + + + + + + + + +### 中间状态 + +设置 `indeterminate` 属性,表示不确定状态,一般用于实现全选的效果,实现部分选中的状态。 + + + + + + + + +### 按钮样式 + +只需要设置 `checkbox` 的 `type` 为 `button`;就能将复选框变为按钮样式 + + + + + + + + +## API + +### Checkbox Props + +| 参数 | 说明 | 类型 | 默认值 | +| ----------------------- | ------------------------------ | --------- | ------- | +| `model-value / v-model` | 选中项绑定的值 | `boolean` | - | +| `indeterminate` | 设置不确定状态,仅负责样式控制 | `boolean` | `false` | +| `name` | 原生 `name` 属性 | `string` | - | +| `disabled` | 是否禁用 | `boolean` | `false` | +| `value` | 原生 `value` 属性 | `string` | - | +| `label` | 显示的标签 | `string` | - | +| `type` | 是否设置为按钮风格 | `button` | - | + +### CheckboxGroup Props + +| 参数 | 说明 | 类型 | 默认值 | +| ----------------------- | -------------- | ---------- | ------ | +| `model-value / v-model` | 选中项绑定的值 | `string[]` | - | + +### Checkbox Events + +| 事件 | 说明 | 参数 | +| -------- | ---------------- | ---------------------------- | +| `change` | 选中项变化时触发 | `(checked: boolean) => void` | + +### CheckboxGroup Events + +| 事件 | 说明 | 参数 | +| -------- | ---------------- | ------------------------------- | +| `change` | 选中项变化时触发 | `(checkList: string[]) => void` | diff --git a/docs/components/table.md b/docs/components/table.md index 9fcc9cf1..e29ff53f 100644 --- a/docs/components/table.md +++ b/docs/components/table.md @@ -5,8 +5,8 @@ ## 演示 -> 1. 设置 `max-height` 可以通过直接设置 `style`;也可以通过 [tailwindcss-max-height](https://www.tailwindcss.cn/docs/max-height#setting-the-maximum-height) -> 2. 如果想改变滚动条样式,参考 [工具样式-滚动条](../css-util#_2-滚动条样式);引入样式表,然后给 `Table` 组件, 添加 `nt-scrollbar` 的类名: `` +> 1. _切记_: 要固定列,需要使用 `fixed` 布局,不能将 `table-layout` 设置为 `auto` +> 2. 设置 `max-height` 可以通过直接设置 `style`;也可以通过 [tailwindcss-max-height](https://www.tailwindcss.cn/docs/max-height#setting-the-maximum-height) +> 3. 如果想改变滚动条样式,参考 [工具样式-滚动条](../css-util#_2-滚动条样式);引入样式表,然后给 `Table` 组件, 添加 `nt-scrollbar` 的类名: `` ### 排序 @@ -383,31 +526,159 @@ +### 多级表头 + +配置 `columns` 的时候,给某一列增加一个 `children` 就能实现表头分组 + + + + + + + + +### 合并单元格 + +通过配置 `columns` 中的 `colspan`、`rowspan` 来实现合并单元格;当 `colspan` 或者 `rowspan` 为 `0` 时,则不显示当前单元格 + + + + + + + + +### 可编辑表格 + +通过自定义渲染的形式能够快速实现单元格的编辑 + + + + + + + + ## API ### Table Props -| 参数 | 说明 | 类型 | 默认值 | -| ---------------- | ---------------- | ------------------------ | ------- | -| `data` | 数据源 | `array` | - | -| `columns` | 表格列配置 | `ColumnOption[]` | - | -| `default-sort` | 初始排序 | `SortOption` | - | -| `stripe` | 是否为斑马纹 | `boolean` | `true` | -| `border` | 是否显示四周边框 | `boolean` | `false` | -| `fixed-head` | 是否固定表头 | `boolean` | `false` | -| `sorter` | 使用手动排序 | `(data: any[]) => any[]` | - | -| `render-summary` | 渲染表尾合计行 | `() => VNode \| VNode[]` | - | +| 参数 | 说明 | 类型 | 默认值 | +| ---------------- | ------------------------------ | ------------------------ | ------- | +| `data` | 数据源 | `array` | - | +| `columns` | 表格列配置 | `ColumnOption[]` | - | +| `default-sort` | 初始排序 | `SortOption` | - | +| `stripe` | 是否为斑马纹 | `boolean` | `true` | +| `border` | 是否显示四周边框 | `boolean` | `false` | +| `fixed-head` | 是否固定表头 | `boolean` | `false` | +| `sorter` | 使用手动排序 | `(data: any[]) => any[]` | - | +| `render-summary` | 渲染表尾合计行 | `() => VNode \| VNode[]` | - | +| `table-layout` | 表格的 `table-layout` 样式属性 | `fixed`、`auto` | `auto` | `ColumnOption` 选项: -| 字段 | 说明 | 类型 | 默认值 | -| -------- | ---------------------- | ----------------------------------------------- | ------- | -| `title` | 列名 | `string` | - | -| `key` | 列标识, 自动排序时必传 | `string` | - | -| `width` | 列宽 | `string`、`number` | - | -| `fixed` | 列是否固定 | `left`、`right` | - | -| `sorter` | 是否排序 | `boolean` | `false` | -| `render` | 自定义渲染 | `(row: any, index: number) => VNode \| VNode[]` | - | +| 字段 | 说明 | 类型 | 默认值 | +| -------------- | ---------------------- | -------------------------------------------------------- | ------- | +| `title` | 列名 | `string` | - | +| `key` | 列标识, 自动排序时必传 | `string` | - | +| `width` | 列宽 | `string`、`number` | - | +| `fixed` | 列是否固定 | `left`、`right` | - | +| `sorter` | 是否排序 | `boolean` | `false` | +| `render` | 自定义渲染 | `(row: any, index: number) => VNode \| VNode[]` | - | +| `titleRowspan` | 表头的行所占的行数 | `number` | - | +| `titleColspan` | 表头的单元格所占的列数 | `number` | - | +| `rowspan` | 单元格的 `rowspan` | `number` \| `(rowData: any, rowIndex: number) => number` | - | +| `colspan` | 单元格的 `colspan` | `number` \| `(rowData: any, rowIndex: number) => number` | - | `SortOption` 选项 diff --git a/scripts/index.js b/scripts/index.js index 074fd22a..ee342d44 100644 --- a/scripts/index.js +++ b/scripts/index.js @@ -60,13 +60,13 @@ async function createComponentTemplate(name) { '### 基础用法', '基础用法', '## API', - '### ${name} Props', + `### ${name} Props`, '| 参数 | 说明 | 类型 | 默认值 |', '| ---- | ---- | ---- | ---- |', '| x | x | x | x |', ]; await write( - path.join(process.cwd(), 'docs/components', `${name}.md`), + path.join(process.cwd(), 'docs/components', `${name.toUpperCase()}.md`), docTemplateContents.join('\r\n'), ); console.log('创建成功'); diff --git a/src/components/Checkbox.vue b/src/components/Checkbox.vue new file mode 100644 index 00000000..0445e5ba --- /dev/null +++ b/src/components/Checkbox.vue @@ -0,0 +1,72 @@ + + diff --git a/src/components/CheckboxButton.vue b/src/components/CheckboxButton.vue new file mode 100644 index 00000000..be399d7e --- /dev/null +++ b/src/components/CheckboxButton.vue @@ -0,0 +1,4 @@ + + diff --git a/src/components/CheckboxGroup.vue b/src/components/CheckboxGroup.vue new file mode 100644 index 00000000..8f0da04c --- /dev/null +++ b/src/components/CheckboxGroup.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/components/Input.vue b/src/components/Input.vue index 756e0424..c8453e41 100644 --- a/src/components/Input.vue +++ b/src/components/Input.vue @@ -1,8 +1,18 @@