@blueking/app-select
Version:
基于蓝鲸 Magicbox 和 Vue 的前端业务组件
236 lines (217 loc) • 4.36 kB
Markdown
## 蓝鲸业务选择器
#### 使用
```javascript
import { createApp } from 'vue';
import AppSelect from '@blueking/app-select';
import App from './APP.vue'
import '@blueking/app-select/dist/style.css'
const app = createApp(App);
app.component('AppSelect', AppSelect);
```
``` vue
<template>
<AppSelect :data="data" @change="handleChange" />
</template>
<script setup lang="ts">
import { shallowRef } from 'vue';
const data = shallowRef<AppItem[]>([
{
id: 'xxxx',
name: '业务 xxxx'
},
{
id: 'yyyy',
name: '业务 yyyy'
},
{
id: 'zzzz',
name: '业务 zzzz'
}
])
const handleChange = (payload: AppItem) => {
console.log('change = ', payload)
}
</script>
```
#### 组件 Props
<table>
<thead>
<tr>
<th>属性名</th>
<th>说明</th>
<th>类型</th>
<th>可选值</th>
<th>默认值</th>
<th>必填</th>
</tr>
</thead>
<tbody>
<tr>
<td>data</td>
<td>业务列表数据</td>
<td>AppItem []</td>
<td>--</td>
<td>--</td>
<td>true</td>
</tr>
<tr>
<td>value</td>
<td>选中的业务</td>
<td>AppItem</td>
<td>--</td>
<td>--</td>
<td>false</td>
</tr>
<tr>
<td>generateKey</td>
<td>每项数据唯一 key</td>
<td>Function</td>
<td>--</td>
<td>(data) => data.id</td>
<td>false</td>
</tr>
<tr>
<td>generateName</td>
<td>每项数据展示文本</td>
<td>Function</td>
<td>--</td>
<td>(data) => data.name</td>
<td>false</td>
</tr>
<tr>
<td>minWidth</td>
<td>选择面板最小宽度</td>
<td>Number</td>
<td>--</td>
<td>320</td>
<td>false</td>
</tr>
<tr>
<td>theme</td>
<td>主题色</td>
<td>String</td>
<td>ligth | dark</td>
<td>ligth</td>
<td>false</td>
</tr>
<tr>
<td>simple</td>
<td>极简风格</td>
<td>Boolean</td>
<td>true | false</td>
<td>false</td>
<td>false</td>
</tr>
<tr>
<td>placeholder</td>
<td>placeholder</td>
<td>String</td>
<td>--</td>
<td>请选择</td>
<td>false</td>
</tr>
<tr>
<td>searchPlaceholder</td>
<td>下拉面板搜索框 placeholder</td>
<td>String</td>
<td>--</td>
<td>请选择</td>
<td>false</td>
</tr>
<tr>
<td>searchEmptyText</td>
<td>下拉面板搜索搜索数据为空</td>
<td>String</td>
<td>--</td>
<td>暂无数据</td>
<td>false</td>
</tr>
<tr>
<td>disabled</td>
<td>禁用</td>
<td>Boolean</td>
<td>true/false</td>
<td>false</td>
<td>false</td>
</tr>
<tr>
<td>clearable</td>
<td>是否可以清楚</td>
<td>Boolean</td>
<td>true/false</td>
<td>false</td>
<td>false</td>
</tr>
<tr>
<td>type</td>
<td>显示风格</td>
<td>String</td>
<td>simple/text</td>
<td>undefined</td>
<td>false</td>
</tr>
<tr>
<td>popoverOptions</td>
<td>下拉面板 popover 配置</td>
<td>Object</td>
<td>--</td>
<td>undefined</td>
<td>false</td>
</tr>
</tbody>
</table>
#### 组件 Event
<table style='width:100%'>
<thead>
<tr>
<th>事件名</th>
<th>说明</th>
<th>参数类型</th>
</tr>
</thead>
<tbody>
<tr>
<td>change</td>
<td>选中业务</td>
<td>AppItem</td>
</tr>
</tbody>
</table>
#### 组件 Slot
<table style='width:100%'>
<thead>
<tr>
<th>名称</th>
<th>说明</th>
<th>参数类型</th>
</tr>
</thead>
<tbody>
<tr>
<td>default</td>
<td>自定义下拉选项</td>
<td><code>AppItem</code></td>
</tr>
<tr>
<td>value</td>
<td>自定义选中结果展示</td>
<td><code>AppItem</code></td>
</tr>
<tr>
<td>empty</td>
<td>下拉列表为空</td>
<td>undefined</td>
</tr>
<tr>
<td>append</td>
<td>下拉列表底部功能扩展</td>
<td>undefined</td>
</tr>
</tbody>
</table>
#### 类型说明
``` typescript
interface AppItem {
[key: string]: any
}
```