Skip to content

CpSelectDialog 选择弹窗

对齐旧版 SelectDialog.ts(94 处调用):单选双击行即确认、多选 checkbox+全选、仅一条结果自动选中、打开自动聚焦搜索框、回车检索,auto-search 开启后输入即自动检索(es-toolkit 防抖)。多选模式下搜索到与关键词完全相等的行会自动勾选,配合 row-key 多次搜索间勾选可累积,checked-values 可在打开时按已有值回显勾选,确认后一次性返回全部勾选行。按钮默认左上角(老逻辑),位置可配。

组件用法(单选)

组件用法(单选)
双击行直接确认关闭;输入关键字回车在结果内过滤(search-in-result)。
显示代码 ▼

函数式调用 showSelectDialog()

函数式调用 showSelectDialog()
对齐旧版 SelectDialog.show(options, fnOk) 习惯:await 返回选中行数组,取消返回空数组。load 回调对接远程检索。需先 app.use(CargoUI)
显示代码 ▼

按钮位置

按钮位置
actions-position 支持四角,默认 top-left;actions 插槽可完全自定义按钮区。
显示代码 ▼

API

属性 Props

属性说明类型默认值
v-modelbooleanfalse
titlestring"请选择"
columns列定义,默认 Code/Name 两列(对应旧版 codeField/nameField 约定)CpSelectColumn[]() => [ { field: "Code", title: "代码", width: 140 }…
data静态数据源Record[]
load远程数据源:(query, ctx) => rows;与 searchInResult 互斥。 ctx.signal 透传给请求库即可取消上一次检索;过期响应组件会自行丢弃。CpLoader
multipleboolean
searchablebooleantrue
search-in-result在已加载结果内过滤而非重新请求boolean
auto-select-single结果仅一条时自动选中booleantrue
auto-check-match多选模式:检索关键词与某行任一列完全相等(大小写不敏感)时自动勾选该行booleantrue
row-key行唯一键字段;多选时用于跨检索保留勾选(el-table reserve-selection)string
checked-values打开弹窗时按 rowKey 匹配自动勾选(多选)/ 高亮(单选)的已有值TSParenthesizedType[]
auto-search搜索框输入即自动检索(防抖),false 时需回车或点检索按钮boolean
auto-search-delay自动检索防抖间隔 msnumber300
widthstring | number580
auto-open挂载后立即打开(供函数式 showSelectDialog 使用,无需父级 v-model)boolean
actions-position确定/取消按钮位置,默认左上角(老逻辑);actions 插槽可完全自定义内容"top-left" | "top-right" | "bottom-left" | "bottom-right""top-left"
confirm-textstring"确定"
cancel-textstring"取消"

事件 Events

事件说明回调参数
@confirm(Array)
@cancel
@closed关闭动画结束(透传 el-dialog closed,供函数式调用清理挂载点)

插槽 Slots

插槽说明作用域参数
actionsconfirm, cancel
[field]name