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

9 months ago
// 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);
}
}