2.0重构版本
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 
 

88 řádky
3.4 KiB

  1. // 注册事件类
  2. window.$swEvent.setup("defaultEvent", {
  3. /**
  4. *
  5. * @param page 当前页面对象
  6. * 1)page.$params 参数对象
  7. * 示例:给参数p1赋值: page.$params.p1 = “xxxx”;
  8. *
  9. * 2)page.$refs 控件的ref引用,ref引用指向控件的实例,可访问控件实例的属性和函数
  10. * 示例:调用页面的<el-form ref="form1" /> 标签的validate方法: page.$refs.form1.validate()
  11. *
  12. * 3)page.$model 数据集,内含data(数据对象)和dataset(数据集定义)
  13. * 示例: 获取数据集ds1的表单数据 page.$model.ds1.data.form
  14. * 获取数据集ds1的列表数据 page.$model.ds1.data.list
  15. * 获取数据集ds1表单中a1的值 page.$model.ds1.getFormVal("a1")
  16. * 给数据集ds1的表中的a1赋值 page.$model.ds1.setFormVal("a1","xxxx");
  17. *
  18. * 4)page.$widgets 控件的属性,控制控件的响应属性
  19. * 示例 : 获取控件名为w1的required属性的值 page.$widgets.w1.required
  20. *
  21. * 5)page.$utils 工具包
  22. * $$message 消息提示
  23. * $$cookie, cookie
  24. * $$driver, 用户操作引导引擎
  25. * $$http, http请求
  26. * $$validate, 校验
  27. * $$date, 日期处理工具
  28. * $$UtilPub, 其他
  29. * 示例:
  30. * 弹出成功消息框:page.$utils.$$message.notify.success("xxx")
  31. * post请求:page.$utils.$$http.post("/api/bpm/save",{id:"xxx"})
  32. *
  33. * 6)page.$tabRouter 页面路由,控制页面切换
  34. * 示例:跳转到登录页:page.$tabRouter.push("login");
  35. * 返回: page.$tabRouter.back();
  36. *
  37. * 7) page.$api 页面提供的公用api
  38. * add: () => void 页面新增初始化(所有可编辑的数据集)
  39. * addOne: (dataset: string) => void 指定数据集新增初始
  40. * load: (force?: boolean, params?: any) => void // 页面加载
  41. * loadOne: (dataset: string, params?: any) => void // 指定数据集加载
  42. * total: (dataset: string, params?: any) => void // 指定数据集求合计栏信息
  43. * save: (params?: any) => void // 页面保存 (所有可编辑的数据集)
  44. * saveOne: (dataset: string, params?: any) => void // 指定数据集保存
  45. * del: () => void 页面删除
  46. * delOne: (dataset: string, row?: any) => void // 指定数据集删除
  47. * closeDialog: (dialogKey?: string) => void // 关闭弹出框
  48. * 示例:
  49. * 加载数据集ds1:page.$api.loadOne("ds1");
  50. *
  51. * @returns 返回给页面可配置的api方法
  52. * 如 : return {
  53. * demoFunc(){
  54. * XXXX
  55. * },
  56. * }
  57. */
  58. setup(page){
  59. const { $params,$refs, $widgets, $model, $utils, $tabRouter, $api } = page;
  60. const { $$message, $$http } = $utils || {};
  61. // 示例
  62. const demoFunc = () => {
  63. // 1.从参数中获取p1
  64. const p1 = $params.p1;
  65. // 2.从控件w1获取color属性
  66. const color = $widgets.w1.props.color;
  67. // 3.调用控件w1的calc函数
  68. const calcVal = $refs.w1.calc(p1,color);
  69. // 4.数据集ds1加载数据
  70. $api.loadOne("ds1");
  71. // 5.给数据集ds1的表单中的f1字段赋值calcVal
  72. $model.ds1.setFormVal("f1",calcVal);
  73. // 6.获取数据集ds1的表单数据
  74. const data = $model.ds1.data.form || {};
  75. // 7.调用http交互
  76. $$http.post("ap1/demo/doOpt",data).then((rt) => {
  77. // 8.弹出成功消息
  78. $$message.notify.success("操作成功");
  79. // 9.返回上一个页面
  80. $tabRouter.back();
  81. });
  82. };
  83. return {
  84. demoFunc,
  85. }
  86. }
  87. });