Skip to content

CpEditGrid 行编辑表格

对应旧系统费用录入类页面(GeorGrid + format 拼输入控件的模式):工具栏新增一行 / 勾选删除,点击行内任意单元格,该行所有可编辑列同时放开编辑(无需逐格点击),输入中按 Tab 键按列顺序切换到下一个可编辑控件,支持 input / number / select / date / text 五种编辑器,options 支持按行返回(级联下拉),必填列表头带红星 + validate() 校验。编辑权限三级控制:row-disabled 整行禁用(如已提交行锁定)→ editable-fields 限定行内可编辑列 → 列配置 disabled(支持按行函数)。column-setting 开启工具栏列设置面板:搜索定位列、调整宽度、置顶 / 上移 / 下移 / 输入位置序号直接跳转,调整后触发 @column-changecolumn-setting-key 进一步把列顺序 / 宽度自动持久化到 localStorage,刷新页面后自动恢复。

费用录入

费用录入
点击行任意位置整行进入编辑,Tab 键依次切到下一列;新增行带 row-template 默认值并立即进入编辑;第二行预置 Locked 锁定(整行不可编辑,录入人列显示 🔒),勾选行可锁定/解锁;切换「仅金额+备注可编辑」后其余列自动禁用;点工具栏右侧「列设置」可搜索定位列、调宽、置顶/上移下移/跳转位置,column-setting-key 让调整结果刷新后依然保留;新行不填必填项时 validate() 报错。
显示代码 ▼

autocomplete 编辑器:远程检索 + 多选回填 + 搜索弹窗

列配置 editor: "autocomplete" 即可把 CpAutoComplete 整个嵌进单元格, 通过 autocomplete 字段透传它的全套能力(load 远程检索、multiple 多选回填、dialog 搜索弹窗、columns 下拉列)。 远程模式下的并发守卫一并继承,行内边输边查同样不会被过期响应污染。

autocomplete 支持传函数按行返回,用于级联场景 —— 下例「船公司」列只列出本行起运港所属国家的船司。

autocomplete 编辑器
起运港走远程接口边输边查,并可点放大镜开表格弹窗;费用项多选回填为 THC,DOC 形态;船公司按本行起运港级联过滤。三列都在行编辑态内,Tab 可依次切换。
显示代码 ▼

API

属性 Props

属性说明类型默认值
columns *CpEditColumn[]必填
dataRecord[]
heightnumber | string300
row-heightnumber36
show-toolbarbooleantrue
show-row-indexbooleantrue
edit-mode编辑模式:row = 点击行内任意单元格整行放开编辑,Tab 顺序切换(默认); cell = 仅点击的单元格进入编辑"row" | "cell""row"
row-disabled整行不可编辑:布尔值全表生效,函数按行判断(如已提交行锁定, (row) => !!row.Locked)。被禁用的行点击不进入编辑态boolean | TSParenthesizedType
editable-fields限定行内可编辑的列(dataField 数组),不在列表中的可编辑列自动禁用; 数组或函数返回 null/undefined/空数组 = 全部可编辑。 列级更细的规则仍可用列配置 disabled(支持函数按行判断)string[] | TSParenthesizedType
row-template新增行的初始值模板Function
column-setting工具栏显示「列设置」按钮:面板内可搜索定位列、调宽、置顶/上移下移/跳转位置boolean
column-setting-key列设置持久化键:设置后自动把列顺序 / 宽度存到 localStorage, 下次打开同 key 的表格自动恢复;同时自动显示「列设置」按钮string

事件 Events

事件说明回调参数
@cellChange单元格值变更(Record)
@add(Record)
@remove(Array)
@columnChange列设置面板调整列顺序 / 宽度后触发(可用于持久化)(Array)

方法 Expose

方法(ref 调用)说明
addRow
removeSelected
setData
data
validate
tableRef

插槽 Slots

插槽说明作用域参数
toolbaradd-row, remove-selected
[dataField]name, row, column
${[dataField]}-editname, row, column