// 注册事件类 window.$swEvent.setup("defaultEvent", { /** * * @param page 当前页面对象 * 1)page.$params 参数对象 * 示例:给参数p1赋值: page.$params.p1 = “xxxx”; * * 2)page.$refs 控件的ref引用,ref引用指向控件的实例,可访问控件实例的属性和函数 * 示例:调用页面的 标签的validate方法: page.$refs.form1.validate() * * 3)page.$model 数据集,内含data(数据对象)和dataset(数据集定义) * 示例: 获取数据集ds1的表单数据 page.$model.ds1.data.form * 获取数据集ds1的列表数据 page.$model.ds1.data.list * 获取数据集ds1表单中a1的值 page.$model.ds1.getFormVal("a1") * 给数据集ds1的表中的a1赋值 page.$model.ds1.setFormVal("a1","xxxx"); * * 4)page.$widgets 控件的属性,控制控件的响应属性 * 示例 : 获取控件名为w1的required属性的值 page.$widgets.w1.required * * 5)page.$utils 工具包 * $$message 消息提示 * $$cookie, cookie * $$driver, 用户操作引导引擎 * $$http, http请求 * $$validate, 校验 * $$date, 日期处理工具 * $$UtilPub, 其他 * 示例: * 弹出成功消息框:page.$utils.$$message.notify.success("xxx") * post请求:page.$utils.$$http.post("/api/bpm/save",{id:"xxx"}) * * 6)page.$tabRouter 页面路由,控制页面切换 * 示例:跳转到登录页:page.$tabRouter.push("login"); * 返回: page.$tabRouter.back(); * * 7) page.$api 页面提供的公用api * add: () => void 页面新增初始化(所有可编辑的数据集) * addOne: (dataset: string) => void 指定数据集新增初始 * load: (force?: boolean, params?: any) => void // 页面加载 * loadOne: (dataset: string, params?: any) => void // 指定数据集加载 * total: (dataset: string, params?: any) => void // 指定数据集求合计栏信息 * save: (params?: any) => void // 页面保存 (所有可编辑的数据集) * saveOne: (dataset: string, params?: any) => void // 指定数据集保存 * del: () => void 页面删除 * delOne: (dataset: string, row?: any) => void // 指定数据集删除 * closeDialog: (dialogKey?: string) => void // 关闭弹出框 * 示例: * 加载数据集ds1:page.$api.loadOne("ds1"); * * @returns 返回给页面可配置的api方法 * 如 : return { * demoFunc(){ * XXXX * }, * } */ setup(page){ const { $params,$refs, $widgets, $model, $utils, $tabRouter, $api } = page; const { $$message, $$http } = $utils || {}; // 示例 const demoFunc = () => { // 1.从参数中获取p1 const p1 = $params.p1; // 2.从控件w1获取color属性 const color = $widgets.w1.props.color; // 3.调用控件w1的calc函数 const calcVal = $refs.w1.calc(p1,color); // 4.数据集ds1加载数据 $api.loadOne("ds1"); // 5.给数据集ds1的表单中的f1字段赋值calcVal $model.ds1.setFormVal("f1",calcVal); // 6.获取数据集ds1的表单数据 const data = $model.ds1.data.form || {}; // 7.调用http交互 $$http.post("ap1/demo/doOpt",data).then((rt) => { // 8.弹出成功消息 $$message.notify.success("操作成功"); // 9.返回上一个页面 $tabRouter.back(); }); }; return { demoFunc, } } });