数据回传(controller实现)
数据回传(controller实现)
数据回传是当前视图的容器数据需要从下一个视图获取,即打开新的视图操作后,关闭后数据要回传给上一个容器。
常见场景:
- 当前页面需要对下一个列表视图某个字段数据进行汇总。
实现方式
- 当前页面的通过
<Action label="选择" layout="Header" @action="choosePerson" />触发。 - choosePerson方法定义在controller文件中,通过触发
triggerViewAction打开定义好的新视图,并在参数中配置payloadCallBack。 - 在下一个视图action
<PayloadAction label="确定" multi />将所选的数据以payloadCallBack参数,供上一个视图操作。
实现示例
-
当前页面视图定义
<View><Form title="部门人员编辑" key="person" model="trantor_doc_Person" lookupFrom="department.staff"><Fields><Field name="name" /></Fields><Actions><Action label="选择" layout="Header" @action="choosePerson" /></Actions></Form></View> -
controller 文件定义
import { Controller } from 'nusi-sdk'export default class extends Controller {choosePerson = () => {this.triggerViewAction('choosePerson', {openViewType: 'Dialog',payloadCallBack: (context) => {this.getContainerByKey('person').updateData({name: context.record.map(o => o.id).join(',')})}})}} -
下一个视图定义
<View><Table title="人员选择" model="trantor_doc_Person"><Fields><Field name="name" /><Field name="age" /><Field name="birthday" /></Fields><Actions><!-- 带回选中的数据 --><PayloadAction label="确定" multi /></Actions></Table></View>