3.2 实现我的【报销】页面

  • 本章节内容假设您已经掌握在一般情况下,如何使用无远开发平台开发一个功能页面。如您还未掌握,请先学习《快速上手》
  • 本页面供发起人(报销创建者)查看和创建新的报销。

3.2.1 报销查询列表效果图

3.2.2 报销查询列表实现方法

在【工作台】使用 enhancer-jqgrid 查询组件,绑定与当前登录人变量相关的 SQL 查询语,然后设置相关事件按钮即可。

详细配置及运行效果见:https://workbench.wuyuan.io/proj/21153#207

3.2.3 创建新的报销效果图

3.2.4 创建新的报销实现方法

使用 enhancer-form 组件和 enhancer-grid-editor 组件,分别用于对应【报销表】和【报销明细表】的录入配置。在帧布局中上下拼接这两个窗口。

3.2.5 创建新的报销【提交】按钮逻辑配置

  • 在【提交按钮事件设置】--【执行SQL前后台脚本】中添加一段脚本设置:
// 创建工作流并执行下一步动作
var WorkflowManager = require('@custom/workflow-manager');
var wm = new WorkflowManager(Enhancer);

wm.createInstanceAndDoNext(
    '报销'      // 工作流名称
    , @USER_NAME@ + '申请报销费用 ' + @14-TOTAL@ + '元' // 标题
    , '提交'    // 动作名称
    , {'金额': @14-TOTAL@} // 相关参数,来自审批表单。
    , function(err, result) {
        if (err) {
            return done(err);
        }
        done(null
            , null
            // 传递参数供 后续 SQL 使用 
            , {
            '10-INSTANCE_ID': result.instance_id,
            '10-PREV_STATUS_NO': result.prev_status_no,
            '10-NEXT_STATUS_NO': result.next_status_no,
            '10-PREV_STATUS_NAME': result.prev_status_name,
            '10-NEXT_STATUS_NAME': result.next_status_name,
            '10-NEXT_HANDLER': result.next_handler
        });
});
  • 在【设置 SQL 过程】中配置创建报销的 SQL 逻辑:
-- 此处插入报销表,需关联工作流实例 ID @10-INSTANCE_ID@,该变量值来自上一步 Workflow.createInstanceAndDoNext 创建工作流成功后的 done 方法传递得到。
INSERT INTO 报销表(主表) VALUES (@10-INSTANCE_ID@)

-- 插入报销记录从表,批量插入的逻辑参考:https://forum.wuyuan.io/topic/5b20e6eb1268434ea7ebf87a
INSERT INTO 报销明细表(从表) VALUES #@13-ROWS@.map(function(r) {return [ ... ] })#

我的【报销】页面详细配置及运行效果见:https://workbench.wuyuan.io/proj/33481#128






results matching ""

    No results matching ""