Appearance
CpEditGrid 行编辑表格
对应旧系统费用录入类页面(GeorGrid + format 拼输入控件的模式):工具栏新增一行 / 勾选删除,点击行内任意单元格,该行所有可编辑列同时放开编辑(无需逐格点击),输入中按 Tab 键按列顺序切换到下一个可编辑控件,支持 input / number / select / date / text 五种编辑器,options 支持按行返回(级联下拉),必填列表头带红星 + validate() 校验。编辑权限三级控制:row-disabled 整行禁用(如已提交行锁定)→ editable-fields 限定行内可编辑列 → 列配置 disabled(支持按行函数)。column-setting 开启工具栏列设置面板:搜索定位列、调整宽度、置顶 / 上移 / 下移 / 输入位置序号直接跳转,调整后触发 @column-change;column-setting-key 进一步把列顺序 / 宽度自动持久化到 localStorage,刷新页面后自动恢复。
费用录入
显示代码 ▼
autocomplete 编辑器:远程检索 + 多选回填 + 搜索弹窗
列配置 editor: "autocomplete" 即可把 CpAutoComplete 整个嵌进单元格, 通过 autocomplete 字段透传它的全套能力(load 远程检索、multiple 多选回填、dialog 搜索弹窗、columns 下拉列)。 远程模式下的并发守卫一并继承,行内边输边查同样不会被过期响应污染。
autocomplete 支持传函数按行返回,用于级联场景 —— 下例「船公司」列只列出本行起运港所属国家的船司。
显示代码 ▼
API
属性 Props
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
columns * | — | CpEditColumn[] | 必填 |
data | — | Record[] | — |
height | — | number | string | 300 |
row-height | — | number | 36 |
show-toolbar | — | boolean | true |
show-row-index | — | boolean | true |
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
| 插槽 | 说明 | 作用域参数 |
|---|---|---|
toolbar | — | add-row, remove-selected |
[dataField] | — | name, row, column |
${[dataField]}-edit | — | name, row, column |