华为云ASTRO轻应用-组装“待处理工单”页面:实现“处理工单”
时间:2025-05-29 11:36:05
实现“处理工单”
通过定义“处理”按钮的“点击”事件,可以实现接单、处理工单的能力。
- 在“设计视图”中,选中“处理”按钮。
- 在右侧“事件”页签中,单击“点击”后的“+”。
- 在添加事件弹窗中,输入如下脚本代码。
脚本中红色内容请替换为实际的页面名。
//获取当前组件(即button) let _component = context.$component.current; // 配置页面的bpm参数 context.$page.params["bp.name"] = "HW__WorkOrderBpm"; //获取当前行id let 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); }); }); } });
- 单击“创建”,退出事件编排窗口。
support.huaweicloud.com/bestpractice-astrozero/astrozero_07_1071.html