mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2026-04-18 11:38:02 +08:00
完成流程实例列表/详情、流程模版添加
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Web.Mvc;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App;
|
||||
using OpenAuth.App.SSO;
|
||||
using OpenAuth.Mvc.Controllers;
|
||||
|
||||
namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 通用申请流程处理
|
||||
/// <para>李玉宝新增于2016-09-08 19:21:59</para>
|
||||
/// </summary>
|
||||
public class CommonAppliesController : Controller
|
||||
{
|
||||
private WFProcessInstanceService _app;
|
||||
|
||||
public CommonAppliesController()
|
||||
{
|
||||
_app = AutofacExt.GetFromFac<WFProcessInstanceService>();
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
public string Load(string type, int pageCurrent = 1, int pageSize = 30)
|
||||
{
|
||||
return JsonHelper.Instance.Serialize(_app.Load(AuthUtil.GetCurrentUser().User.Id.ToString(), type, pageCurrent, pageSize));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 进度查看
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult ProcessLookForm()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除申请
|
||||
/// </summary>
|
||||
public string Delete(Guid[] ids)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var id in ids)
|
||||
{
|
||||
_app.DeleteProcess(id);
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -18,12 +18,12 @@ namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
|
||||
/// </summary>
|
||||
public class FlowDesignController :Controller
|
||||
{
|
||||
private WorkflowService wfFlowInfoBLL;
|
||||
private WFSchemeService wfFlowInfoBLL;
|
||||
private UserManagerApp userBLL;
|
||||
|
||||
public FlowDesignController()
|
||||
{
|
||||
wfFlowInfoBLL = AutofacExt.GetFromFac<WorkflowService>();
|
||||
wfFlowInfoBLL = AutofacExt.GetFromFac<WFSchemeService>();
|
||||
userBLL = AutofacExt.GetFromFac<UserManagerApp>();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using System.Web.Mvc;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App;
|
||||
using OpenAuth.Domain;
|
||||
using OpenAuth.Mvc;
|
||||
|
||||
namespace LeaRun.Application.Web.Areas.FlowManage.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 版 本 6.1
|
||||
/// Copyright (c) 2013-2016 上海力软信息技术有限公司
|
||||
/// 创建人:陈彬彬
|
||||
/// 日 期:2016.03.19 14:27
|
||||
/// 描 述:流程发起
|
||||
/// </summary>
|
||||
public class FlowLaunchController : Controller
|
||||
{
|
||||
private WFRuntimeService wfProcessBll;
|
||||
|
||||
public FlowLaunchController()
|
||||
{
|
||||
wfProcessBll = AutofacExt.GetFromFac<WFRuntimeService>();
|
||||
}
|
||||
#region 视图功能
|
||||
//
|
||||
// GET: /FlowManage/FlowLaunch/
|
||||
/// <summary>
|
||||
/// 管理
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
/// <summary>
|
||||
/// 预览
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult PreviewIndex()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
/// <summary>
|
||||
/// 创建流程实例
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult FlowProcessNewForm()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 提交数据
|
||||
/// <summary>
|
||||
/// 创建流程实例
|
||||
/// </summary>
|
||||
/// <param name="wfSchemeInfoId">流程模板信息Id</param>
|
||||
/// <param name="frmData">表单数据</param>
|
||||
/// <param name="type">0发起,3草稿</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult CreateProcess(Guid wfSchemeInfoId, string wfProcessInstanceJson, string frmData)
|
||||
{
|
||||
WFProcessInstance wfProcessInstanceEntity = wfProcessInstanceJson.ToObject<WFProcessInstance>();
|
||||
string text = "创建成功";
|
||||
if (wfProcessInstanceEntity.EnabledMark == 1)//发起流程
|
||||
{
|
||||
wfProcessBll.CreateInstance(Guid.NewGuid(), wfSchemeInfoId, wfProcessInstanceEntity, frmData);
|
||||
}
|
||||
else if (wfProcessInstanceEntity.EnabledMark == 3)//草稿
|
||||
{
|
||||
wfProcessBll.CreateRoughdraft(Guid.NewGuid(), wfSchemeInfoId, wfProcessInstanceEntity, frmData);
|
||||
text = "草稿保存成功";
|
||||
}
|
||||
|
||||
return Content(text);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
using System;
|
||||
using System.Web.Mvc;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App;
|
||||
|
||||
namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
|
||||
{
|
||||
|
||||
public class FlowProcessController :Controller
|
||||
{
|
||||
private WFRuntimeService wfProcessBll ;
|
||||
|
||||
public FlowProcessController(WFRuntimeService service)
|
||||
{
|
||||
wfProcessBll = service;
|
||||
}
|
||||
#region 视图功能
|
||||
/// <summary>
|
||||
/// 流程监控
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult MonitoringIndex()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
/// <summary>
|
||||
/// 流程指派
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult DesignationIndex()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
/// <summary>
|
||||
/// 流程进度查看
|
||||
/// </summary>
|
||||
/// <returns></returns>\
|
||||
[HttpGet]
|
||||
public ActionResult ProcessLookFrom()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
/// <summary>
|
||||
/// 流程指派
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult ProcessDesignate()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 获取数据(公用)
|
||||
|
||||
/// <summary>
|
||||
/// 获取进程模板Json
|
||||
/// </summary>
|
||||
/// <param name="keyValue"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult GetProcessSchemeJson(Guid keyValue)
|
||||
{
|
||||
var data = wfProcessBll.GetProcessSchemeEntity(keyValue);
|
||||
return Content(data.ToJson());
|
||||
}
|
||||
/// <summary>
|
||||
/// 已办流程进度查看,根据当前访问人的权限查看表单内容
|
||||
/// </summary>
|
||||
/// <param name="keyValue"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult GetProcessSchemeEntityByUserId(Guid keyValue)
|
||||
{
|
||||
var data = wfProcessBll.GetProcessSchemeByUserId(keyValue);
|
||||
return Content(data.ToJson());
|
||||
}
|
||||
/// <summary>
|
||||
/// 已办流程进度查看,根据当前节点的权限查看表单内容
|
||||
/// </summary>
|
||||
/// <param name="keyValue"></param>
|
||||
/// <param name="isPermission"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult GetProcessSchemeEntityByNodeId(Guid keyValue, string nodeId)
|
||||
{
|
||||
var data = wfProcessBll.GetProcessSchemeEntityByNodeId(keyValue, nodeId);
|
||||
return Content(data.ToJson());
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取进程信息
|
||||
/// </summary>
|
||||
/// <param name="keyValue"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult GetProcessInfoJson(Guid keyValue)
|
||||
{
|
||||
var processInstance = wfProcessBll.GetProcessInstanceEntity(keyValue);
|
||||
var processScheme = wfProcessBll.GetProcessSchemeEntity(processInstance.ProcessSchemeId);
|
||||
var JsonData = new
|
||||
{
|
||||
processInstance = processInstance,
|
||||
processScheme = processScheme
|
||||
};
|
||||
return Content(JsonData.ToJson());
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取进程实例
|
||||
/// </summary>
|
||||
/// <param name="keyValue"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public ActionResult GetProcessInstanceJson(Guid keyValue)
|
||||
{
|
||||
var processInstance = wfProcessBll.GetProcessInstanceEntity(keyValue);
|
||||
return Content(processInstance.ToJson());
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 提交数据
|
||||
/// <summary>
|
||||
/// 删除工作流实例进程
|
||||
/// </summary>
|
||||
/// <param name="keyValue">主键值</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult DeleteProcess(Guid keyValue)
|
||||
{
|
||||
wfProcessBll.DeleteProcess(keyValue);
|
||||
return Content("删除成功。");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 审核流程
|
||||
/// </summary>
|
||||
/// <param name="processId">工作流实例主键Id</param>
|
||||
/// <param name="processId">审核数据</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult VerificationProcess(Guid processId, string verificationData)
|
||||
{
|
||||
wfProcessBll.VerificationProcess(processId, verificationData);
|
||||
return Content("审核成功。");
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="col-md-9">
|
||||
<div class="widget-box widget-color-blue">
|
||||
<div class="widget-header">
|
||||
@Html.Action("MenuHeader", "Home")
|
||||
@Html.Action("MenuHeader", "Home", new {area=""})
|
||||
</div>
|
||||
<div class="widget-body gridwidth">
|
||||
<div class="widget-main">
|
||||
@@ -0,0 +1,72 @@
|
||||
@{
|
||||
ViewBag.Title = "查看流程进度";
|
||||
Layout = "~/Views/Shared/_FlowForm.cshtml";
|
||||
}
|
||||
<script>
|
||||
var processSchemeId = request('processSchemeId');
|
||||
var ActivityId = request('activityId');
|
||||
$(function () {
|
||||
var schemeContent;
|
||||
$.SetForm({
|
||||
url: "../../FlowManage/FlowProcess/GetProcessSchemeJson",
|
||||
param: { keyValue: processSchemeId },
|
||||
success: function (data) {
|
||||
schemeContent = JSON.parse(JSON.parse(data.SchemeContent).SchemeContent);
|
||||
frmdata = JSON.parse(JSON.parse(data.SchemeContent).frmData);
|
||||
|
||||
$('#frmpreview').frmPreview({
|
||||
tablecotent: schemeContent.Frm.FrmContent,
|
||||
width:1080
|
||||
});
|
||||
$('#FlowPanel').flowdesign({
|
||||
width: $(window).width()+3,
|
||||
height: $(window).height()-42,
|
||||
flowcontent: schemeContent.Flow,
|
||||
haveTool: false,
|
||||
isprocessing: true,
|
||||
activityId: ActivityId,
|
||||
nodeData: schemeContent.Flow.nodes
|
||||
});
|
||||
|
||||
$('#frmpreview').frmSetData(frmdata);
|
||||
$('#frmpreview').find('input,select,textarea,.ui-select').attr('disabled', 'disabled');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#FlowPanel" data-toggle="tab">流程信息</a></li>
|
||||
<li><a href="#frmpreview" data-toggle="tab">表单信息</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div id="FlowPanel" class="tab-pane active">
|
||||
</div>
|
||||
<div id="frmpreview" class="tab-pane app_layout app_preview">
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.app_preview {
|
||||
height: 620px;
|
||||
}
|
||||
|
||||
.app_preview .item_field_value {
|
||||
width: 964px;
|
||||
}
|
||||
|
||||
.app_preview .item_row {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.app_layout .item_field_label {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
input, textarea {
|
||||
background: #fff !important;
|
||||
}
|
||||
</style>
|
||||
226
OpenAuth.Mvc/Areas/FlowManage/Views/FlowMyProcess/Index.cshtml
Normal file
226
OpenAuth.Mvc/Areas/FlowManage/Views/FlowMyProcess/Index.cshtml
Normal file
@@ -0,0 +1,226 @@
|
||||
@{
|
||||
ViewBag.Title = "我的流程";
|
||||
Layout = "~/Views/Shared/_Index.cshtml";
|
||||
}
|
||||
<script src="~/Content/scripts/plugins/pagination/jquery.pagination-1.2.7.js"></script>
|
||||
<link href="~/Content/scripts/plugins/pagination/jquery.pagination.css" rel="stylesheet" />
|
||||
<script>
|
||||
var params="";
|
||||
$(function () {
|
||||
InitialPage();
|
||||
GetSchemeType();
|
||||
GetGrid();
|
||||
});
|
||||
//初始化页面
|
||||
function InitialPage() {
|
||||
//resize重设(表格、树形)宽高
|
||||
$(window).resize(function (e) {
|
||||
window.setTimeout(function () {
|
||||
$("#taskblock").height($(window).height() - 131);
|
||||
$("#itemTree").height($(window).height() - 52);
|
||||
}, 200);
|
||||
e.stopPropagation();
|
||||
});
|
||||
}
|
||||
//加载树
|
||||
function GetSchemeType() {
|
||||
$.SetForm({
|
||||
url: "../../SystemManage/DataItemDetail/GetDataItemTreeJson",
|
||||
param: { EnCode: "FlowSort" },
|
||||
success: function (data) {
|
||||
$.each(data, function (id, item) {
|
||||
var row = '<li><a data-value="' + item.id + '">' + item.text + '</a></li>';
|
||||
$('#SchemeType').find('ul').append(row);
|
||||
});
|
||||
$('#SchemeType').find('li>a').click(function () {
|
||||
var id = $(this).attr('data-value');
|
||||
var text = $(this).html();
|
||||
var queryJson = { SchemeType: id };
|
||||
params = { queryJson: JSON.stringify(queryJson) };
|
||||
$("#girdPager").page('remote', 0, params);
|
||||
$('#SchemeType').find('.dropdown-text').html(text);
|
||||
});
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//加载表格
|
||||
function GetGrid() {
|
||||
$("#taskblock").height($(window).height() - 131);
|
||||
|
||||
$("#girdPager").panginationEx({
|
||||
url: "../../FlowManage/FlowProcess/GetRuntimePageListJson",
|
||||
success: function (data) {
|
||||
var $flowlist = $("#flowlist");
|
||||
$flowlist.html("");
|
||||
if (data.length > 0) {
|
||||
$('.no-data').hide();
|
||||
}
|
||||
else {
|
||||
$('.no-data').show();
|
||||
}
|
||||
$.each(data, function (i, item) {
|
||||
var _listhtml = '<li><div style="width: ' + (item.isfinish == 4 ? '239px' : '160px') + '; line-height: 38px;margin-top:11px; float: right;">' + (item.isfinish == 4 ? '<a class="btn btn-warning applicationmodel" style="margin-right:4px;" >重新申请</a>' : '') + '<a class="btn btn-success previewmodel" style="margin-right:4px;">进度查看</a><a class="btn btn-danger deletemodel" >流程召回</a></div>';
|
||||
_listhtml += '<div style="float: left;">';
|
||||
_listhtml += '<span class="item-text">' + item.code + '/' + item.customname + '</span>';
|
||||
_listhtml += '<div><span class=\"label label-success-learun\" data-toggle="tooltip" data-placement="top" title="流程分类" >' + item.schemetypename + '</span>';
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-inverse-learun\" data-toggle="tooltip" data-placement="top" title="当前节点">' + item.activityname + '</span>';
|
||||
if (item.enabledmark == 1) {
|
||||
if (item.isfinish == 3) {
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-danger\" data-toggle="tooltip" data-placement="top" title="状态">不通过</span>';
|
||||
}
|
||||
else if (item.isfinish == 1) {
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-success\" data-toggle="tooltip" data-placement="top" title="状态">通过完成</span>';
|
||||
}
|
||||
else if (item.isfinish == 0) {
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-info\" data-toggle="tooltip" data-placement="top" title="状态" >处理中</span>';
|
||||
}
|
||||
else if (item.isfinish == 4) {
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-warning\" data-toggle="tooltip" data-placement="top" title="状态" >被驳回</span>';
|
||||
}
|
||||
}
|
||||
else {
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-important-learun\" data-toggle="tooltip" data-placement="top" title="状态" >暂停</span>';
|
||||
}
|
||||
|
||||
switch (item.wflevel)
|
||||
{
|
||||
case 1:
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-danger\" data-toggle="tooltip" data-placement="top" title="等级" >重要</span>';
|
||||
break;
|
||||
case 2:
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-success\" data-toggle="tooltip" data-placement="top" title="等级" >普通</span>';
|
||||
break;
|
||||
case 3:
|
||||
_listhtml += '<span style="margin-left:5px;" class=\"label label-warning\" data-toggle="tooltip" data-placement="top" title="等级" >一般</span>';
|
||||
break;
|
||||
}
|
||||
|
||||
_listhtml += '</div><p>By.' + item.createusername + '-' + item.createdate + ' | 备注:' + item.description + '</p>';
|
||||
_listhtml += '</div></li>';
|
||||
var $_listhtml = $(_listhtml);
|
||||
$_listhtml.find('.previewmodel')[0].processInstanceId = item.id;
|
||||
$_listhtml.find('.previewmodel')[0].activityId = item.activityid;
|
||||
$_listhtml.find('.previewmodel')[0].processSchemeId = item.processschemeid;
|
||||
$_listhtml.find('.previewmodel')[0].processname = item.code + '/' + item.customname;
|
||||
|
||||
$_listhtml.find('.deletemodel')[0].processInstanceId = item.id;
|
||||
$_listhtml.find('.deletemodel')[0].processSchemeId = item.processschemeid;
|
||||
|
||||
if ($_listhtml.find('.applicationmodel').length > 0)
|
||||
{
|
||||
$_listhtml.find('.applicationmodel')[0].processInstanceId = item.id;
|
||||
$_listhtml.find('.applicationmodel')[0].activityId = item.activityid;
|
||||
$_listhtml.find('.applicationmodel')[0].processSchemeId = item.processschemeid;
|
||||
$_listhtml.find('.applicationmodel')[0].processname = item.code + '/' + item.customname;
|
||||
}
|
||||
|
||||
$flowlist.append($_listhtml);
|
||||
});
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
//进度查看
|
||||
$('.previewmodel').click(function () {
|
||||
var $_btn = $(this).context;
|
||||
var _processInstanceId = $_btn.processInstanceId;
|
||||
var _processSchemeId = $_btn.processSchemeId;
|
||||
var _processname = $_btn.processname;
|
||||
var _activityId = $_btn.activityId;
|
||||
dialogOpen({
|
||||
id: "ProcessLookForm",
|
||||
title: '进度查看【' + _processname + '】',
|
||||
url: '/FlowManage/FlowMyProcess/ProcessLookForm?processSchemeId=' + _processSchemeId + '&activityId=' + _activityId,
|
||||
width: "1100px",
|
||||
height: "700px",
|
||||
btn:null,
|
||||
callBack: function (iframeId) {
|
||||
}
|
||||
});
|
||||
});
|
||||
//流程召回
|
||||
$('.deletemodel').click(function () {
|
||||
var $_btn = $(this).context;
|
||||
var $this = $(this);
|
||||
var _ProcessInstanceId = $_btn.processInstanceId;
|
||||
if (_ProcessInstanceId) {
|
||||
$.ConfirmAjax({
|
||||
msg: "注:您确定要召回吗?该操作将无法恢复",
|
||||
url: "../../FlowManage/FlowProcess/DeleteVirtualProcess",
|
||||
param: { keyValue: _ProcessInstanceId },
|
||||
success: function (data) {
|
||||
$("#girdPager").page('remote', '', params);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
dialogMsg('请选择需要召回的流程!', 0);
|
||||
}
|
||||
});
|
||||
|
||||
//重新申请
|
||||
$('.applicationmodel').click(function () {
|
||||
var $_btn = $(this).context;
|
||||
var _processInstanceId = $_btn.processInstanceId;
|
||||
var _processSchemeId = $_btn.processSchemeId;
|
||||
var _processname = $_btn.processname;
|
||||
var _activityId = $_btn.activityId;
|
||||
dialogOpen({
|
||||
id: "ProcessAgainNewForm",
|
||||
title: '重新申请【' + _processname + '】',
|
||||
url: '/FlowManage/FlowMyProcess/ProcessAgainNewForm?keyValue=' + _processInstanceId + '&activityId=' + _activityId,
|
||||
width: "1100px",
|
||||
height: "700px",
|
||||
btn: null,
|
||||
callBack: function (iframeId) {
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
sortname: "CreateDate desc"
|
||||
});
|
||||
|
||||
//查询事件
|
||||
$("#btn_Search").click(function () {
|
||||
var queryJson = { Keyword: $("#txt_Keyword").val() };
|
||||
params = { queryJson: JSON.stringify(queryJson) };
|
||||
$("#girdPager").page('remote', 0, params);
|
||||
});
|
||||
}
|
||||
|
||||
//回调函数
|
||||
function callBack() {
|
||||
$("#girdPager").page('remote', '', params);
|
||||
}
|
||||
</script>
|
||||
<div class="titlePanel">
|
||||
<div class="title-search">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="SchemeType" class="btn-group">
|
||||
<a class="btn btn-default dropdown-text" data-toggle="dropdown">选择流程分类</a>
|
||||
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>
|
||||
<ul class="dropdown-menu"></ul>
|
||||
</div>
|
||||
</td>
|
||||
<td style="padding-left: 5px;">
|
||||
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" style="width: 200px;" />
|
||||
</td>
|
||||
<td style="padding-left: 5px;">
|
||||
<a id="btn_Search" class="btn btn-primary"><i class="fa fa-search"></i> 查询</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="toolbar">
|
||||
<div class="btn-group">
|
||||
<a id="lr-replace" class="btn btn-default" onclick="reload();"><i class="fa fa-refresh"></i> 刷新</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="taskblockPanel">
|
||||
<div id="taskblock" class="taskblock">
|
||||
<ul id="flowlist"></ul>
|
||||
</div>
|
||||
<div id="girdPager" class="m-pagination"></div>
|
||||
<div class="no-data"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,161 @@
|
||||
@{
|
||||
ViewBag.Title = "再次申请";
|
||||
Layout = "~/Views/Shared/_FlowForm.cshtml";
|
||||
}
|
||||
<script>
|
||||
var keyValue = request('keyValue');
|
||||
var ProcessSchemeId = "";
|
||||
var activityId =request('activityId');
|
||||
$(function () {
|
||||
initialPage();
|
||||
})
|
||||
//初始化页面
|
||||
function initialPage() {
|
||||
$('.FlowPanelall').height($.windowHeight() - 40);
|
||||
$('#Description').height($.windowHeight() - 390);
|
||||
//获取表单
|
||||
$.SetForm({
|
||||
url: "../../FlowManage/FlowProcess/GetProcessInfoJson",
|
||||
param: { keyValue: keyValue },
|
||||
success: function (data) {
|
||||
var _schemeContent = JSON.parse(JSON.parse(data.processScheme.SchemeContent).SchemeContent);
|
||||
var _frmdata = JSON.parse(JSON.parse(data.processScheme.SchemeContent).frmData);
|
||||
$('#frmpreview').frmPreview({
|
||||
tablecotent: _schemeContent.Frm.FrmContent
|
||||
});
|
||||
$('#frmpreview').frmSetData(_frmdata);
|
||||
$('#ProcessInfo').SetWebControls(data.processInstance);
|
||||
$('#wfLevel' + data.processInstance.wfLevel).trigger("click");
|
||||
ProcessSchemeId = data.processInstance.ProcessSchemeId;
|
||||
var _node = "";
|
||||
for(var i in _schemeContent.Flow.nodes)
|
||||
{
|
||||
if(_schemeContent.Flow.nodes[i].id == activityId)
|
||||
{
|
||||
_node = _schemeContent.Flow.nodes[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
var _username = top.clientuserData[_node.setInfo.UserId] == undefined ? _node.setInfo.UserId : top.clientuserData[_node.setInfo.UserId].RealName;
|
||||
_username = _username == "System" ? '超级管理员' : '_username';
|
||||
$('#ruser').html('驳回人:' + _username + (_node.setInfo.TagedTime != undefined ?'-' +_node.setInfo.TagedTime:''));
|
||||
$('#rDescription').html('备注:' + _node.setInfo.description);
|
||||
}
|
||||
});
|
||||
}
|
||||
//提交表单
|
||||
function btn_Finish() {
|
||||
if (!$('#ProcessInfo').Validform()) {
|
||||
return false;
|
||||
}
|
||||
var _postData = $("#ProcessInfo").GetWebControls(keyValue);
|
||||
_postData["EnabledMark"] = 1;
|
||||
_postData["ProcessSchemeId"] = ProcessSchemeId;
|
||||
_postData["wfLevel"] = $('input[name="wfLevel"]:checked').val();
|
||||
var _data = $("#frmpreview").frmGetData();
|
||||
$.SaveForm({
|
||||
url: "../../FlowManage/FlowRoughdraft/EditionRoughdraftProcess",
|
||||
param: { "keyValue": keyValue, "frmData": JSON.stringify(_data), "wfProcessInstanceJson": JSON.stringify(_postData) },
|
||||
loading: "正在保存数据...",
|
||||
success: function () {
|
||||
$.currentIframe().callback();
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<div class="FlowPanelall">
|
||||
<div id="frmpreview" class="tab-pane app_layout app_preview active">
|
||||
</div>
|
||||
</div>
|
||||
<div class="FlowInfoPanel" id="ProcessInfo">
|
||||
<div class="alert alert-danger" style="text-align: left; margin-bottom: 10px;height:98px;overflow-y:auto;">
|
||||
<p><i class="fa fa-warning alert-dismissible" style="position: relative; top: 1px; font-size: 15px; padding-right: 5px;"></i>
|
||||
此流程被驳回,需要重新申请!
|
||||
</p>
|
||||
<p id="ruser">驳回人:</p>
|
||||
<p id="rDescription">备注:</p>
|
||||
</div>
|
||||
<div style="color:#9f9f9f;padding-bottom:15px;padding-left:5px;"><i style="padding-right:5px;" class="fa fa-info-circle"></i><span>填写左侧表单和实例信息,重新申请</span></div>
|
||||
<table class="form">
|
||||
<tr>
|
||||
<td class="formTitle">流程实例编号<font face="宋体">*</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="formValue">
|
||||
<input id="Code" disabled type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="formTitle">自定义标题<font face="宋体">*</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="formValue">
|
||||
<input id="CustomName" type="text" class="form-control" isvalid="yes" checkexpession="NotNull" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="formTitle">重要等级<font face="宋体">*</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="formValue">
|
||||
<div class="rdio rdio-color_a"><input name="wfLevel" id="wfLevel1" value="1" type="radio" /><label for="wfLevel1">重要</label></div>
|
||||
<div class="rdio rdio-color_f"><input name="wfLevel" id="wfLevel2" value="2" type="radio" checked /><label for="wfLevel2">普通</label></div>
|
||||
<div class="rdio rdio-color_c"><input name="wfLevel" id="wfLevel3" value="3" type="radio" /><label for="wfLevel3">一般</label></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="formTitle">备注</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="formValue">
|
||||
<textarea id="Description" class="form-control" style="height: 383px;"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="form-button">
|
||||
<a id="btn_finish" class="btn btn-success" onclick="btn_Finish();">完成提交</a>
|
||||
</div>
|
||||
<style>
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
.app_preview .item_field_value {
|
||||
width: 664px;
|
||||
}
|
||||
.app_preview .item_row {
|
||||
background-color: #fff;
|
||||
}
|
||||
.app_layout .item_field_label {
|
||||
background-color: #fff;
|
||||
}
|
||||
.FlowPanelall {
|
||||
width: 800px;
|
||||
float: left;
|
||||
overflow-y:auto;
|
||||
}
|
||||
.FlowInfoPanel {
|
||||
float: right;
|
||||
width: 300px;
|
||||
height: 659px;
|
||||
z-index: 1000;
|
||||
background: rgba(0,0,0,0.01);
|
||||
padding: 10px;
|
||||
border-left: 1px solid #ccc;
|
||||
}
|
||||
.form .formTitle {
|
||||
text-align: left;
|
||||
padding-left: 5px;
|
||||
}
|
||||
form .formTitle font {
|
||||
right: auto !important;
|
||||
margin-left: 5px;
|
||||
}
|
||||
.formValue input, .formValue textarea {
|
||||
border-radius: 5px;
|
||||
}
|
||||
input, textarea {
|
||||
background: #fff !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,67 @@
|
||||
@{
|
||||
ViewBag.Title = "查看流程进度";
|
||||
Layout = "~/Views/Shared/_FlowForm.cshtml";
|
||||
}
|
||||
<script>
|
||||
var processSchemeId = request('processSchemeId');
|
||||
var ActivityId = request('activityId');
|
||||
$(function () {
|
||||
var schemeContent;
|
||||
$.SetForm({
|
||||
url: "../../FlowManage/FlowProcess/GetProcessSchemeJson",
|
||||
param: { keyValue: processSchemeId },
|
||||
success: function (data) {
|
||||
schemeContent = JSON.parse(JSON.parse(data.SchemeContent).SchemeContent);
|
||||
frmdata = JSON.parse(JSON.parse(data.SchemeContent).frmData);
|
||||
|
||||
$('#frmpreview').frmPreview({
|
||||
tablecotent: schemeContent.Frm.FrmContent,
|
||||
width:1080
|
||||
});
|
||||
$('#FlowPanel').flowdesign({
|
||||
width: $(window).width()+3,
|
||||
height: $(window).height()-42,
|
||||
flowcontent: schemeContent.Flow,
|
||||
haveTool: false,
|
||||
isprocessing: true,
|
||||
activityId: ActivityId,
|
||||
nodeData: schemeContent.Flow.nodes
|
||||
});
|
||||
|
||||
$('#frmpreview').frmSetData(frmdata);
|
||||
$('#frmpreview').find('input,select,textarea,.ui-select').attr('disabled', 'disabled');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#FlowPanel" data-toggle="tab">流程信息</a></li>
|
||||
<li><a href="#frmpreview" data-toggle="tab">表单信息</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div id="FlowPanel" class="tab-pane active">
|
||||
</div>
|
||||
<div id="frmpreview" class="tab-pane app_layout app_preview">
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
body {
|
||||
overflow:hidden;
|
||||
}
|
||||
.app_preview {
|
||||
height:620px;
|
||||
}
|
||||
.app_preview .item_field_value {
|
||||
width:964px;
|
||||
}
|
||||
.app_preview .item_row {
|
||||
background-color: #fff;
|
||||
}
|
||||
.app_layout .item_field_label {
|
||||
background-color: #fff;
|
||||
}
|
||||
input, textarea {
|
||||
background: #fff!important;
|
||||
}
|
||||
</style>
|
||||
@@ -51,25 +51,35 @@ function MainGrid() {
|
||||
index: "Id",
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
name: "ProcessSchemeId",
|
||||
index: "ProcessSchemeId",
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
name: "ActivityId",
|
||||
index: "ActivityId",
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
index: "Name",
|
||||
name: "Name",
|
||||
label: "申请名称"
|
||||
index: "Code",
|
||||
name: "Code",
|
||||
label: "流程编号"
|
||||
},
|
||||
{
|
||||
index: "Comment",
|
||||
name: "Comment",
|
||||
label: "申请描述"
|
||||
},
|
||||
{
|
||||
index: "StateName",
|
||||
name: "StateName",
|
||||
label: "流程状态"
|
||||
},
|
||||
{
|
||||
index: "WorkflowName",
|
||||
name: "WorkflowName",
|
||||
index: "CustomName",
|
||||
name: "CustomName",
|
||||
label: "流程名称"
|
||||
},
|
||||
{
|
||||
index: "ActivityName",
|
||||
name: "ActivityName",
|
||||
label: "当前节点"
|
||||
},
|
||||
{
|
||||
index: "CreateDate",
|
||||
name: "CreateDate",
|
||||
label: "创建时间"
|
||||
}
|
||||
],
|
||||
url: url + selectedId,
|
||||
@@ -194,7 +204,7 @@ function detail() {
|
||||
title: selected.Name,
|
||||
skin: "layui-layer-rim", //加上边框
|
||||
area: ["800px", "600px"], //宽高
|
||||
content: "/CommonApplies/Detail?id=" + selected.Id,
|
||||
content: "/FlowManage/CommonApplies/ProcessLookForm?processSchemeId=" + selected.ProcessSchemeId + "&activityId="+selected.ActivityId,
|
||||
maxmin: true, //开启最大化最小化按钮
|
||||
end: function() {
|
||||
list.reload();
|
||||
|
||||
@@ -1,163 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App;
|
||||
using OpenAuth.App.SSO;
|
||||
using OpenAuth.App.ViewModel;
|
||||
using OpenAuth.Domain;
|
||||
using OpenAuth.Mvc.Models;
|
||||
using OptimaJet.Workflow.Core.Runtime;
|
||||
using ProcessStatus = OptimaJet.Workflow.Core.Persistence.ProcessStatus;
|
||||
|
||||
namespace OpenAuth.Mvc.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 通用申请流程处理
|
||||
/// <para>李玉宝新增于2016-09-08 19:21:59</para>
|
||||
/// </summary>
|
||||
public class CommonAppliesController : BaseController
|
||||
{
|
||||
private CommonApplyApp _app;
|
||||
|
||||
public CommonAppliesController()
|
||||
{
|
||||
_app = AutofacExt.GetFromFac<CommonApplyApp>();
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
public string Load(string type, int pageCurrent = 1, int pageSize = 30)
|
||||
{
|
||||
return JsonHelper.Instance.Serialize(_app.Load(AuthUtil.GetCurrentUser().User.Id, type, pageCurrent, pageSize));
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public string Edit(CommonApply apply)
|
||||
{
|
||||
try
|
||||
{
|
||||
apply.UserId = AuthUtil.GetCurrentUser().User.Id;
|
||||
_app.AddOrUpdate(apply);
|
||||
CreateWorkflowIfNotExists(apply.Id,apply.WorkflowName);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Result.Status = false;
|
||||
Result.Message = ex.Message;
|
||||
}
|
||||
return JsonHelper.Instance.Serialize(Result);
|
||||
}
|
||||
|
||||
public ActionResult Detail(Guid id)
|
||||
{
|
||||
|
||||
CommonApplyVM apply = _app.Get(id);
|
||||
apply.Commands = GetCommands(id);
|
||||
return View(apply);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除申请
|
||||
/// </summary>
|
||||
public string Delete(Guid[] ids)
|
||||
{
|
||||
try
|
||||
{
|
||||
_app.Del(ids);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Result.Status = false;
|
||||
Result.Message = ex.Message;
|
||||
throw;
|
||||
}
|
||||
|
||||
return JsonHelper.Instance.Serialize(Result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 执行命令
|
||||
/// </summary>
|
||||
[HttpPost]
|
||||
public string ExeCmd(Guid id, string cmd)
|
||||
{
|
||||
try
|
||||
{
|
||||
ExecuteCommand(id, cmd, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Result.Status = false;
|
||||
Result.Message = ex.Message;
|
||||
throw;
|
||||
}
|
||||
|
||||
return JsonHelper.Instance.Serialize(Result);
|
||||
}
|
||||
|
||||
|
||||
private void CreateWorkflowIfNotExists(Guid id, string schemecode)
|
||||
{
|
||||
if (WorkflowInit.Runtime.IsProcessExists(id))
|
||||
return;
|
||||
|
||||
using (var sync = new WorkflowSync(WorkflowInit.Runtime, id))
|
||||
{
|
||||
WorkflowInit.Runtime.CreateInstance(schemecode, id);
|
||||
|
||||
sync.StatrtWaitingFor(new List<ProcessStatus> { ProcessStatus.Initialized, ProcessStatus.Initialized });
|
||||
|
||||
sync.Wait(new TimeSpan(0, 0, 10));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前登陆用户可执行的命令
|
||||
/// </summary>
|
||||
/// <param name="id">流程实体ID</param>
|
||||
private CommandModel[] GetCommands(Guid id)
|
||||
{
|
||||
var result = new List<CommandModel>();
|
||||
var commands = WorkflowInit.Runtime.GetAvailableCommands(id, AuthUtil.GetCurrentUser().User.Id.ToString());
|
||||
foreach (var workflowCommand in commands) //去除相同的
|
||||
{
|
||||
if (result.Count(c => c.Key == workflowCommand.CommandName) == 0)
|
||||
result.Add(new CommandModel {
|
||||
Key = workflowCommand.CommandName,
|
||||
Value = workflowCommand.LocalizedName,
|
||||
Classifier = workflowCommand.Classifier });
|
||||
}
|
||||
return result.ToArray();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 执行指令
|
||||
/// </summary>
|
||||
/// <param name="id">流程实例ID</param>
|
||||
/// <param name="commandName">命令名称</param>
|
||||
/// <param name="apply">申请实体</param>
|
||||
private void ExecuteCommand(Guid id, string commandName, CommonApply apply)
|
||||
{
|
||||
var currentUser =AuthUtil.GetCurrentUser().User.Id.ToString();
|
||||
|
||||
var commands = WorkflowInit.Runtime.GetAvailableCommands(id, currentUser);
|
||||
|
||||
var command =
|
||||
commands.FirstOrDefault(
|
||||
c => c.CommandName.Equals(commandName, StringComparison.CurrentCultureIgnoreCase));
|
||||
|
||||
if (command == null)
|
||||
return;
|
||||
|
||||
WorkflowInit.Runtime.ExecuteCommand(id, currentUser, currentUser, command);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -28,39 +28,39 @@ namespace OpenAuth.Mvc
|
||||
}
|
||||
|
||||
|
||||
protected void Application_Error(object sender, EventArgs e)
|
||||
{
|
||||
var app = (MvcApplication)sender;
|
||||
var context = app.Context;
|
||||
var ex = app.Server.GetLastError();
|
||||
LogHelper.Fatal(ex.Message);
|
||||
//protected void Application_Error(object sender, EventArgs e)
|
||||
//{
|
||||
// var app = (MvcApplication)sender;
|
||||
// var context = app.Context;
|
||||
// var ex = app.Server.GetLastError();
|
||||
// LogHelper.Fatal(ex.Message);
|
||||
|
||||
context.Response.Clear();
|
||||
context.ClearError();
|
||||
var httpException = ex as HttpException;
|
||||
var routeData = new RouteData();
|
||||
routeData.Values["controller"] = "error";
|
||||
routeData.Values["exception"] = ex;
|
||||
routeData.Values["action"] = "http500";
|
||||
if (httpException != null)
|
||||
{
|
||||
// context.Response.Clear();
|
||||
// context.ClearError();
|
||||
// var httpException = ex as HttpException;
|
||||
// var routeData = new RouteData();
|
||||
// routeData.Values["controller"] = "error";
|
||||
// routeData.Values["exception"] = ex;
|
||||
// routeData.Values["action"] = "http500";
|
||||
// if (httpException != null)
|
||||
// {
|
||||
|
||||
|
||||
switch (httpException.GetHttpCode())
|
||||
{
|
||||
case 404:
|
||||
routeData.Values["action"] = "http404";
|
||||
break;
|
||||
case 401: //没有登录
|
||||
routeData.Values["action"] = "http401";
|
||||
break;
|
||||
case 400: //演示版本,没有执行的权限
|
||||
routeData.Values["action"] = "DemoError";
|
||||
break;
|
||||
}
|
||||
}
|
||||
IController controller = new ErrorController();
|
||||
controller.Execute(new RequestContext(new HttpContextWrapper(context), routeData));
|
||||
}
|
||||
// switch (httpException.GetHttpCode())
|
||||
// {
|
||||
// case 404:
|
||||
// routeData.Values["action"] = "http404";
|
||||
// break;
|
||||
// case 401: //没有登录
|
||||
// routeData.Values["action"] = "http401";
|
||||
// break;
|
||||
// case 400: //演示版本,没有执行的权限
|
||||
// routeData.Values["action"] = "DemoError";
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// IController controller = new ErrorController();
|
||||
// controller.Execute(new RequestContext(new HttpContextWrapper(context), routeData));
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,8 +78,7 @@ namespace OpenAuth.Mvc.Models
|
||||
{
|
||||
var nextState = WorkflowInit.Runtime.GetLocalizedStateName(e.ProcessId, e.ProcessInstance.CurrentState);
|
||||
|
||||
var _app = AutofacExt.GetFromFac<CommonApplyApp>();
|
||||
_app.ChangeState(e.ProcessId, e.ProcessInstance.CurrentState, nextState);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -150,6 +150,8 @@
|
||||
<Compile Include="App_Start\BundleConfig.cs" />
|
||||
<Compile Include="App_Start\FilterConfig.cs" />
|
||||
<Compile Include="App_Start\RouteConfig.cs" />
|
||||
<Compile Include="Areas\FlowManage\Controllers\FlowLaunchController.cs" />
|
||||
<Compile Include="Areas\FlowManage\Controllers\FlowProcessController.cs" />
|
||||
<Compile Include="Areas\FlowManage\Controllers\FormDesignController.cs" />
|
||||
<Compile Include="Areas\FlowManage\Controllers\FlowDesignController.cs" />
|
||||
<Compile Include="Areas\FlowManage\FlowManageAreaRegistration.cs" />
|
||||
@@ -159,7 +161,7 @@
|
||||
<Compile Include="Controllers\WorkflowSchemasController.cs" />
|
||||
<Compile Include="Controllers\DesignerController.cs" />
|
||||
<Compile Include="Controllers\ErrorController.cs" />
|
||||
<Compile Include="Controllers\CommonAppliesController.cs" />
|
||||
<Compile Include="Areas\FlowManage\Controllers\CommonAppliesController.cs" />
|
||||
<Compile Include="Controllers\HomeController.cs" />
|
||||
<Compile Include="Controllers\LoginController.cs" />
|
||||
<Compile Include="Controllers\ModuleElementManagerController.cs" />
|
||||
@@ -1515,9 +1517,12 @@
|
||||
<Content Include="Content\styles\fonts\fontawesome-webfont.woff" />
|
||||
<Content Include="Content\styles\fonts\fontawesome-webfont.woff2" />
|
||||
<Content Include="Content\styles\fonts\FontAwesome.otf" />
|
||||
<Content Include="Areas\FlowManage\Views\FlowMyProcess\Index.cshtml" />
|
||||
<Content Include="Areas\FlowManage\Views\FlowMyProcess\ProcessAgainNewForm.cshtml" />
|
||||
<Content Include="Areas\FlowManage\Views\FlowMyProcess\ProcessLookForm.cshtml" />
|
||||
<Content Include="Areas\FlowManage\Views\CommonApplies\ProcessLookForm.cshtml" />
|
||||
<None Include="Properties\PublishProfiles\default.pubxml" />
|
||||
<Content Include="Views\Designer\Index.cshtml" />
|
||||
<Content Include="Views\CommonApplies\Detail.cshtml" />
|
||||
<None Include="Views\Error\NoAccess.cshtml" />
|
||||
<Content Include="Views\Home\git.cshtml" />
|
||||
<Content Include="Web.config">
|
||||
@@ -1537,7 +1542,7 @@
|
||||
<Content Include="Views\ResourceManager\AssignRes.cshtml" />
|
||||
<Content Include="Views\StockManager\Index.cshtml" />
|
||||
<Content Include="Views\Shared\_Layout.cshtml" />
|
||||
<Content Include="Views\CommonApplies\Index.cshtml" />
|
||||
<Content Include="Areas\FlowManage\Views\CommonApplies\Index.cshtml" />
|
||||
<Content Include="Views\WorkflowSchemas\Index.cshtml" />
|
||||
<Content Include="Views\Home\Navbar.cshtml" />
|
||||
<Content Include="Views\Shared\Blank.cshtml" />
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
@{
|
||||
Layout = null;
|
||||
}
|
||||
@using OptimaJet.Workflow.Core.Model
|
||||
@model OpenAuth.App.ViewModel.CommonApplyVM
|
||||
|
||||
<script src="/Scripts/jquery.js"></script>
|
||||
<script src="/Scripts/jquery-ui.js"></script>
|
||||
<script src="/Scripts/kinetic-v5.1.0.min.js"></script>
|
||||
<script src="/Scripts/workflowdesigner.min.js"></script>
|
||||
<script src="/Scripts/designerconstants.js"></script>
|
||||
<script src="/Scripts/ace.js"></script>
|
||||
<script src="/Scripts/json5.js"></script>
|
||||
<script src="/BllScripts/queryString.js"></script>
|
||||
|
||||
<link href="/Content/plugins/jQueryUI/base/jquery-ui.min.css" rel="stylesheet" />
|
||||
<link href="/Content/workflowdesigner.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<input value="@Model.Id" id="processId" type="hidden" />
|
||||
<input value="@Model.WorkflowName" id="schemeCode" type="hidden" />
|
||||
|
||||
@if (Model.Commands.Length > 0)
|
||||
{
|
||||
<div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
|
||||
<p>
|
||||
<span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
|
||||
下图蓝色为当前状态,你可以执行:
|
||||
@foreach (var cmd in Model.Commands)
|
||||
{
|
||||
if (cmd.Classifier == TransitionClassifier.Reverse)
|
||||
{
|
||||
<button class="workflowcmd" value="@cmd.Key">@cmd.Value</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button class="workflowcmd" value="@cmd.Key">@cmd.Value</button>
|
||||
}
|
||||
}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
}
|
||||
|
||||
<div id="wfdesigner"></div>
|
||||
|
||||
<script src="/BllScripts/queryString.js"></script>
|
||||
<script src="/BllScripts/processDetail.js?v=1"></script>
|
||||
@@ -169,7 +169,7 @@
|
||||
</script>
|
||||
|
||||
<!-- #section:basics/sidebar -->
|
||||
@Html.Action("Navbar","Home")
|
||||
@Html.Action("Navbar","Home", new {area=""})
|
||||
|
||||
<!-- /section:basics/sidebar -->
|
||||
<div class="main-content">
|
||||
|
||||
Reference in New Issue
Block a user