表单多级联动
多个独立字段之间存在依赖时,在上级字段上配置 cascader: ['下级prop'],并在下级的字典请求中使用 {{key}}。例如大区 → 站点 → 服务点,每次请求都取紧邻的上级字段值。
这与单个字段的 Cascader 级联选择器 不同:多级联动分别保存多个字段,Cascader 默认将整条路径保存在一个数组中。
| 请求位置 | 配置示例 | 取值来源 |
|---|---|---|
| 站点 URL | '/api/sites/{{key}}' | 大区字段的值 |
| 服务点 URL | '/api/locations/{{key}}' | 站点字段的值 |
| 站点查询参数 | { region: '{{key}}', scene: '{{scene}}' } | 上级大区值,以及当前表单的 scene 字段 |
提示
{{key}} 的含义由使用场景决定:本页级联字段取上级值;远程搜索字段取搜索关键词;CRUD 普通逐行字典可取当前列的值。不要把这几种场景混用。字典编码与表单值的类型应保持一致。
下面的示例均使用固定数据和局部模拟接口,可直接操作并查看实际请求。需要复制辅助文件时,见 示例辅助文件。
Select多级联动
初始回显“北方大区 / 北京站 / 朝阳服务点”。将大区切换为“南方大区”,再选择站点和服务点,观察每次请求里的上级编码;清空上级后,下级值与选项会一起清空。
上级与下级应按依赖顺序配置,避免相互引用形成循环。不要写 dicUrl: '/api/sites/' + form.region 作为一次性的初始快照,否则上级改变后仍可能请求旧编码。
InputTable+Select联动
点击“大区”表格选择框选择记录,站点下拉框使用该记录的 code 请求下级字典。表格的 onLoad 同时处理初始值回显和列表查询,字段最终保存编码而非整条记录。
Radio+Select联动
点击不同大区单选项,观察站点选项和请求路径随上级变化。Radio 与 Select 使用相同的 cascader 配置方式。
Input+Select联动
输入 north 或 south 后,站点加载对应字典;未知编码返回空数组。实际项目中,频繁输入触发的请求可通过业务侧防抖或改用下拉框减少请求次数。
传递其他参数
先修改“场景”,再切换大区;站点的 dicQuery 同时收到 {{key}} 对应的大区值和 {{scene}} 对应的表单值。结果区展示实际 GET 参数,可确认不是初始化时固定拼接的旧值。
额外模板参数会在级联请求发起时读取,修改一个普通附加字段不等同于修改级联上级,不会独立触发级联加载。这里通过再次选择上级发起请求。模板字段应写完整占位符,例如 scene: '{{scene}}';不要在查询参数中混合前缀字符串,例如 scene: 'prefix-{{scene}}'。
