Skip to content

BizRemoteSelect 远程搜索选择器 ​

el-select 远程搜索封装:输入关键词防抖检索、同关键词首屏缓存、下拉滚动到底自动翻页追加、id 回显。适用于万级数据源(选人 / 选商品 / 选机构)无法一次性拉全量的表单场景。检索实现由业务侧注入,组件不含任何业务接口。

基础用法 ​

请输入关键词搜索
request 注入检索实现(keyword / page / pageSize 入参,list / total 返回);输入防抖 300ms,下拉滚动到底自动追加下一页,底部附「加载更多」兜底。

回显与 reload ​

v-model 传入 id,组件拉取首屏后自动回显 label;reload() 清缓存重查,清空后 emit change(null)。

编辑回显(initial-options 注入) ​

v-model = 88 未注入 initialOptions 时此处只显示裸 id
当前回显:成员088(供应链部)|输入关键词或滚动加载翻页检索全部 100 人
编辑页经典问题:v-model 的 id 不在首屏检索结果中时只显示裸 id。initial-options 注入当前选中项(与检索结果合并去重、不参与分页计数),打开即正确回显 label。

指派代码评审人 ​

搜索姓名或团队指派评审人
当前指派:未指派
指派场景:change 事件回传完整选项对象(含部门 / 角色),选中后在下方展示指派结果。

商品 SKU 选择 ​

输入 SKU 编码或名称(共 500 条)
label-field 取 code;实际项目可在 label 上拼接「编码 + 名称 + 规格」由后端返回
选品场景:500 条 SKU 分页检索(滚动到底自动翻页),value-field 取 code 作为提交值。

供应商绑定(冻结联动) ​

合同冻结期禁止变更供应商(disabled 联动)
合同场景:debounce 500ms 重查询友好 + 冻结期 disabled 联动 + initialOptions 回显当前绑定方。

表格下拉模式(type="table") ​

下拉内嵌 el-table:编码 + 名称 + 规格等多列信息辨认后单选回填——ERP 选物料 / 选客户、财务选科目、选仓库等「字段级表格选择」场景(弹窗级的批量选择用 BizTablePicker)。request 协议与 select 模式完全一致,v-model 依旧传 id;隐藏 Option 池承接回显。

输入编码 / 名称搜索物料
(未选择)
选物料:table-columns 声明多列,行点选回填;change 事件回传完整原始行(raw)。
选择客户(选中后回显行业副描述)
当前值:(未选择)
desc-field 副描述:选中后回显「名称(行业)」;panel-width 定制面板宽。
默认值 2202(应付账款)——编辑回显:隐藏 Option 池命中即正确显示 label
编辑回显:默认值在首屏结果中即正确显示 label(隐藏 Option 池命中)。
供应商
选择供应商
品名
数量
嵌入 el-form:采购单表单里选供应商,占满 form-item 宽度。
滚动表格到底自动加载下一页
当前值:(未选择)
大数据量:500 条库位,表格体内滚动到底自动翻页追加(底部「加载更多」兜底)。
选择门店
缺省列:名称(labelField)+ 编号(valueField)
不传 table-columns 的兜底列:名称(label-field)+ 编号(value-field)两列。
请输入关键词搜索
null
change 事件回传完整选项(含 raw 原始行);点 ✕ 清空后回传 null
change 负载:完整选项(含 raw 原始行);点 ✕ 清空回传 null。
试搜「轴承」与任意无结果词
检索无结果:表格空态 + footer「输入关键词搜索」引导。
单据已锁定
发货仓库(单据锁定后不可改)
禁用:单据锁定后输入与下拉均不可用。

Props ​

属性名类型默认值说明
v-modelstring / number / boolean—选中值(id)
type'select' | 'table''select'select 下拉列表 / table 下拉内嵌表格
table-columnsBizRemoteTableColumn[]名称 + 编号两列table 模式列配置(prop / label / width / align)
desc-fieldstring—table 模式副描述字段,选中回显在 label 旁
panel-widthnumber520table 模式下拉面板宽(px)
table-heightnumber300table 模式表格高度(px)
request(params) => Promise<{ list, total }>—(必填)远程检索实现;list 行经 label-field / value-field 归一化
label-fieldstring'label'选项 label 取值字段
value-fieldstring'value'选项 value 取值字段
page-sizenumber20每页条数
debouncenumber300搜索防抖(ms)
cachebooleantrue同关键词命中首屏缓存不重复请求
clearablebooleantrue可清空
placeholderstring'请输入关键词搜索'占位文案
disabledbooleanfalse禁用
initial-optionsBizRemoteOption[]—编辑回显注入:与检索结果合并去重(不参与分页计数),保证 v-model 值的 label 可回显

其余 attrs 透传内部 el-select(multiple / size / popper-class...)。

Events ​

事件名参数说明
update:modelValue(value)选中值变化
change(option / null)选中项变化(完整选项对象,清空为 null;table 模式选项附 desc 副描述与 raw 原始行)

Slots ​

插槽名说明
—无自定义插槽(选项经 request 驱动)

Expose ​

属性/方法说明
reload()清缓存并按当前关键词重新检索
clearCache()仅清空首屏缓存