110 lines
2.7 KiB
Markdown
110 lines
2.7 KiB
Markdown
|
|
# @r-utils/uview-plus
|
|||
|
|
|
|||
|
|
基于 [uview-plus](https://uview-plus.jiangruyi.com/) 的 Vue3 组合式 API 工具 Hooks,适用于 uni-app 项目。
|
|||
|
|
|
|||
|
|
## 安装
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
pnpm add @r-utils/uview-plus
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 使用
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
import { usePickerSingle, usePicker, useCalendar } from '@r-utils/uview-plus'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## API
|
|||
|
|
|
|||
|
|
### `usePickerSingle(options)`
|
|||
|
|
|
|||
|
|
单列 Picker 封装。
|
|||
|
|
|
|||
|
|
| 参数 | 类型 | 默认值 | 说明 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| `value` | `unknown \| Ref<unknown>` | `null` | 选中的值 |
|
|||
|
|
| `show` | `boolean \| Ref<boolean>` | `false` | 是否显示 |
|
|||
|
|
| `indexes` | `Array<number \| null> \| Ref<...>` | `[null]` | 选中的索引 |
|
|||
|
|
| `list` | `PickerColumns[0] \| Ref<...>` | `[]` | 列数据 |
|
|||
|
|
| `textName` | `string` | `'text'` | 显示字段名 |
|
|||
|
|
| `valueName` | `string` | `'value'` | 值字段名 |
|
|||
|
|
| `placeholder` | `string` | `'请选择'` | 占位文本 |
|
|||
|
|
|
|||
|
|
**返回值:**
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
{
|
|||
|
|
value, show, indexes, columns, text, defaultIndex,
|
|||
|
|
showPicker, hidePicker, handleConfirm, handleClose
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### `usePicker(options)`
|
|||
|
|
|
|||
|
|
多列 Picker 封装。
|
|||
|
|
|
|||
|
|
| 参数 | 类型 | 默认值 | 说明 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| `value` | `unknown[] \| Ref<unknown[]>` | `[]` | 选中的值数组 |
|
|||
|
|
| `show` | `boolean \| Ref<boolean>` | `false` | 是否显示 |
|
|||
|
|
| `indexes` | `Array<number \| null> \| Ref<...>` | `[]` | 选中的索引数组 |
|
|||
|
|
| `columns` | `PickerColumns \| Ref<PickerColumns>` | `[]` | 列数据 |
|
|||
|
|
| `textName` | `string` | `'text'` | 显示字段名 |
|
|||
|
|
| `valueName` | `string` | `'value'` | 值字段名 |
|
|||
|
|
| `placeholder` | `string` | `'请选择'` | 占位文本 |
|
|||
|
|
| `separator` | `string` | `' '` | 多列值拼接分隔符 |
|
|||
|
|
|
|||
|
|
**返回值:**
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
{
|
|||
|
|
value, show, indexes, columns, text, defaultIndex,
|
|||
|
|
showPicker, hidePicker, handleConfirm, handleClose
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### `useCalendar(options)`
|
|||
|
|
|
|||
|
|
日历选择封装。
|
|||
|
|
|
|||
|
|
| 参数 | 类型 | 默认值 | 说明 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| `value` | `string \| string[] \| Ref<...>` | `null` | 选中的日期 |
|
|||
|
|
| `show` | `boolean \| Ref<boolean>` | `false` | 是否显示 |
|
|||
|
|
| `mode` | `'single' \| 'multiple' \| 'range' \| Ref<...>` | `'single'` | 日历模式 |
|
|||
|
|
| `placeholder` | `string` | `'请选择'` | 占位文本 |
|
|||
|
|
|
|||
|
|
**返回值:**
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
{
|
|||
|
|
value, show, text,
|
|||
|
|
showCalendar, hideCalendar, handleConfirm, handleClose
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 类型声明
|
|||
|
|
|
|||
|
|
包内置了 `UViewPlus` namespace 类型声明,无需额外引入。
|
|||
|
|
|
|||
|
|
```ts
|
|||
|
|
declare namespace UViewPlus {
|
|||
|
|
type PickerColumns = any[][];
|
|||
|
|
type PickerValue<T extends PickerColumns = PickerColumns> = T[number][number][];
|
|||
|
|
type PickerConfirmEvent<T extends PickerColumns = PickerColumns> = {
|
|||
|
|
indexs: number[];
|
|||
|
|
value: PickerValue<T>;
|
|||
|
|
values: T;
|
|||
|
|
};
|
|||
|
|
type CalendarConfirmEvent = string[];
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
ISC
|