public Task <bool> Show(WfFormInfo p_info) { _info = p_info; if (!Kit.IsPhoneUI) { Height = 400; Width = 500; } // 普通活动 foreach (var recv in _info.NextRecvs.Atvs) { if (recv.Recvs != null && recv.Recvs.Count > 0) { CreateItem(recv); } } // 同步活动 if (_info.NextRecvs.SyncAtv != null) { CreateItem(_info.NextRecvs.SyncAtv); } if (_info.NextRecvs.FinishedAtv != null) { _m[1].Visibility = Visibility.Visible; } return(ShowAsync()); }
public WfFormWin(WfFormInfo p_info) { InitializeComponent(); _form = (IWfForm)Activator.CreateInstance(p_info.FormType); _tab.Content = _form; _tab.Title = p_info.PrcDef.Name; LoadMenu(p_info); }
public async void Show(long p_prciID, long p_prcID) { _prciID = p_prciID; // 查询流程模板id if (p_prcID <= 0) { p_prcID = await AtCm.GetScalar <long>("流程-实例id获取模板id", new { id = p_prciID }); } var def = await WfFormInfo.GetPrcDef(p_prcID); if (string.IsNullOrEmpty(def.Diagram)) { Kit.Warn("流程图模板内容为空!"); return; } _sketch.ReadXml(def.Diagram); var atvs = await AtCm.Query("流程-活动实例状态", new { prciid = p_prciID }); if (atvs.Count > 0) { foreach (var node in _sketch.Container.Children.OfType <SNode>()) { var dr = (from c in atvs where c.Long("atvdid") == node.ID select c).LastOrDefault(); if (dr != null) { switch (dr.Str("status")) { //活动 case "0": node.BorderBrush = Res.醒目红色; break; //结束 case "1": node.BorderBrush = Res.GreenBrush; break; } node.Click += OnNodeClick; } } } if (!Kit.IsPhoneUI) { Height = 700; Width = 500; } Show(); }
async void OnItemClick(object sender, ItemClickArgs e) { if (InputManager.IsCtrlPressed) { AtWf.OpenFormWin(new WfFormInfo(e.Row.Long("prcdid"), e.Row.Long("itemid"), WfFormUsage.Edit)); } else if (e.IsChanged) { var info = new WfFormInfo(e.Row.Long("prcdid"), e.Row.Long("itemid"), WfFormUsage.Edit); var win = await AtWf.CreateFormWin(info); info.FormClosed += (s, arg) => Refresh(); LoadMain(win); } }
public WfSendCmd(WfFormInfo p_info) { _info = p_info; AllowExecute = true; }
public WfDeleteCmd(WfFormInfo p_info) { _info = p_info; AllowExecute = true; }
/// <summary> /// 加载默认菜单,自动绑定命令 /// </summary> async void LoadMenu(WfFormInfo p_info) { var fv = ((FrameworkElement)_form).FindChildByType <Fv>(); if (fv == null) { Kit.Warn($"未找到流程表单【{p_info.PrcDef.Name}】!"); return; } Menu m = new Menu(); if (p_info.Usage == WfFormUsage.Edit) { m.Items.Add(new Mi { ID = "发送", Icon = Icons.发出, Cmd = p_info.CmdSend }); if (await p_info.AllowRollback()) { m.Items.Add(new Mi { ID = "回退", Icon = Icons.追回, Cmd = p_info.CmdRollback }); } if (!p_info.IsStartItem) { Mi mi = new Mi { ID = "签收", Icon = Icons.锁卡, IsCheckable = true, Cmd = p_info.CmdAccept }; if (p_info.WorkItem.IsAccept) { mi.IsChecked = true; } m.Items.Add(mi); } // 合并IsDirty属性 p_info.CmdSave.AllowExecute = fv.IsDirty; fv.Dirty += (s, b) => p_info.CmdSave.AllowExecute = b; m.Items.Add(new Mi { ID = "保存", Icon = Icons.保存, Cmd = p_info.CmdSave }); m.Items.Add(new Mi { ID = "撤消", Icon = Icons.撤消, Cmd = fv.CmdUndo }); if (p_info.AtvDef.CanDelete || p_info.AtvDef.Type == WfdAtvType.Start) { m.Items.Add(new Mi { ID = "删除", Icon = Icons.垃圾箱, Cmd = p_info.CmdDelete }); } } else if (p_info.Usage == WfFormUsage.Manage) { m.Items.Add(new Mi { ID = "删除", Icon = Icons.垃圾箱, Cmd = p_info.CmdDelete }); fv.IsReadOnly = true; } else { fv.IsReadOnly = true; } m.Items.Add(new Mi { ID = "日志", Icon = Icons.审核, Cmd = p_info.CmdLog }); p_info.Menu = m; _tab.Menu = m; _form.Init(p_info); }
public WfRollbackCmd(WfFormInfo p_info) { _info = p_info; AllowExecute = true; }
public WfSaveCmd(WfFormInfo p_info) { _info = p_info; }
public WfAcceptCmd(WfFormInfo p_info) { _info = p_info; AllowExecute = true; }
void ShowFormWin(Row p_row) { var info = new WfFormInfo(p_row.Long("id"), WfFormUsage.Manage); AtWf.OpenFormWin(info); }