You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
4.0 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// import { message } from 'ant-design-vue';
import { Message as message } from 'element-ui';
import { GenerListPageShowModel, PageBaseGenerList } from './PageBaseGenerList';
import { HttpHandler } from "../api/Gener";
import { GPNReturnObj, GPNReturnType } from "./GPNReturnObj";
export class GL_Runing extends PageBaseGenerList {
constructor() {
super('GL_Runing');
this.PageTitle = '在途';
}
//重写的构造方法.
async Init() {
this.DTFieldOfSearch = 'RDT'; // 按照日期范围查询的字段.
this.DTFieldOfLabel = '发起日期'; //日期字段名.
this.PageTitle = '在途';
// this.BtnsOfRow = '催办,撤销发送'; //行操作按钮.
// this.BtnOfToolbar = '待办,草稿'; //table按钮.
this.GroupFields = 'NodeName,FlowName'; //可以分组显示的字段..
this.GroupFieldDefault = 'FlowName';
this.PageSize = 10; // 分页的页面行数, 0不分页.
this.Icon = '';
this.HisGLShowModel = GenerListPageShowModel.Table; //表格展示.
// 定义列,这些列用于显示.
this.Columns = [
{ Key: 'WorkID', Name: '工作ID', IsShow: false, IsShowMobile: false },
{ Key: 'Title', Name: '标题', width: 350 },
{ Key: 'StarterName', Name: '发起人', width: 120 },
{ Key: 'FlowName', Name: '流程', width: 120 },
{ Key: 'NodeName', Name: '停留节点', width: 160 },
{ Key: 'DeptName', Name: '发起人部门', width: 150 },
{ Key: 'RDT', Name: '到达时间', width: 160 },
{ Key: 'TodoEmps', Name: '当前处理人', width: 350 },
{ Key: 'Btns', Name: 'Btns', IsShow: false, IsShowMobile: false },
// { Key: 'PRI', Name: 'PRI', width: 350 },
];
//获得数据源.
const handler = new HttpHandler('BP.WF.HttpHandler.WF');
handler.AddUrlData(); //获得页面参数.
const data: any = handler.DoMethodReturnJSON('Runing_Init');
//处理数据,增加标签.
data.forEach((en) => {
//到达时间友好提示.
en.RDT = this.FirendlyDT(en.RDT);
en.Btns = '催办,撤销发送';
});
//设置数据源.
this.Data = data;
}
//打开页面.
LinkFieldClick(object: Record<string, any>) {
let url = '/#/WF/MyView?';
const keys = Object.keys(object);
const useKeys = ['WorkID', 'FK_Flow', 'FlowNo', 'FK_Node', 'FID', 'PWorkID'];
for (const key of keys) {
if (useKeys.includes(key)) url += `&${key}=${object[key]}`;
}
return new GPNReturnObj(GPNReturnType.OpenUrlByDrawer75, url);
}
//按钮事件.
BtnClick(btnName: string, object: Record<string, any>) {
const workID = object.WorkID;
if (btnName === '撤销发送') {
return this.UnSend(workID);
}
if (btnName === '催办') {
this.Prsss(workID);
return;
}
}
//执行催办.
async Prsss(workID: string) {
// @hyh , 这里是Js的目前需要翻译.
const msg = window.confirm('请输入催办信息,该工作因为xxx原因,需要您优先处理.');
if (msg == null) return;
const handler = new HttpHandler('BP.WF.HttpHandler.WF');
handler.AddPara('WorkID', workID);
handler.AddPara('Msg', msg);
const data: any = await handler.DoMethodReturnString('Runing_Press');
if (data.indexOf('err@') == 0) {
message.warning(data);
return;
}
message.info(data);
return new GPNReturnObj(GPNReturnType.DoNothing);
}
//撤销发送工作.
async UnSend(workID: string) {
if (window.confirm('您确定要撤销本次发送吗?') == false) return;
const handler = new HttpHandler('BP.WF.HttpHandler.WF');
handler.AddPara('WorkID', workID);
handler.AddPara('UnSendToNode', 0); //撤销发送到的节点.
const data: any = await handler.DoMethodReturnString('Runing_UnSend');
if (data.indexOf('err@') == 0) {
return alert(data);
}
if (data.indexOf('KillSubThared') == 0) {
message.error(data.replace('KillSubThared@', ''));
return;
}
const url = '/@/WF/MyFlow?WorkID=' + workID;
return new GPNReturnObj(GPNReturnType.GoToUrl, url);
}
}