APPCUBE-组装“待处理工单”页面:实现“处理工单”

时间:2023-11-01 16:15:21

实现“处理工单”

通过定义“处理”按钮的“点击”事件,可以实现接单、处理工单的能力。

  1. 在“设计视图”中,选中“处理”按钮。
  2. 在右侧“事件”页签中,单击“点击”后的“+”。
  3. 在添加事件弹窗中,输入如下脚本代码。

    脚本中红色内容请替换为实际的页面名。

    //获取当前组件(即button)let _component = context.$component.current;// 配置页面的bpm参数context.$page.params["bp.name"] = "HW__WorkOrderBpm";//获取当前行idlet id = _component.$attrs.row.id;let taskId = "";let instanceId = "";//遍历获取当前行内容let row = {};let workorders = $model.ref('workOrderList').getData();workorders.forEach(function (wo, idx) {    if (wo.id == id) {        row = wo;        instanceId = wo.HW__instanceId__ CS T;    }}); //打开处理弹框context.$dialog.popup({    title: '处理工单',    page: 'HW__workOrderProcess',    footerHide: false,    width: 20,    height: 180,    okText: '提交',    cancelText: '取消',    params: { id: id, row: row },    onCancel: function () {    },    onOk: function () {        let statusInfo = { "statusInfo": $model.ref("statusInfo").getData() };        let taskData = {            "action": "complete",            "variables": statusInfo        };         // 获取csrf token        context.$utils.getCSRFToken().then(function (token) {            let url = '/u-route/baas/bp/v2.0/query/tasks?flag=activeTask&rootID=' + instanceId;            fetch(url, {                method: 'GET',                headers: {                    'Content-Type': 'application/json',                    'CSRF-Token': token                }            }).then(function (resp) {                resp.json().then(function (data) {                    taskId = data.result.Recs[0].id;                    let url2 = '/u-route/baas/bp/v2.0/runtime/tasks/' + taskId;                    fetch(url2, {                        method: 'PUT',                        headers: {                            'Content-Type': 'application/json'                        },                        body: JSON.stringify(taskData)                    }).then(function (resp) {                        context.$message.success('处理成功');                        $model.ref('queryWorkOrder').setData({ inputParam: {"isFME": true} });                        $model.ref('queryWorkOrder').run().then(function (data) {                            if (data && data.workOrderList) {                                //将查询到的数据赋值给页面模型来展示                                $model.ref('workOrderList').setData(data.workOrderList);                            }                        }).catch(function (error) {                            console.log('error is', error);                        });                    }).catch(function (error) {                        console.log('error is', error);                    });                });            }).catch(function (error) {                console.log('error is', error);            });        });    }});

  4. 单击页面上方的,并退出事件编排 。
support.huaweicloud.com/qs-appcube/appcube_07_1071.html