构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(54)-工作流设计-所有流程监控

系列目录

先补充一个平面化登陆页面代码,自己更换喜欢的颜色背景

@using Apps.Common;
@{

    Layout = null;
}

<!DOCTYPE html>
<html>
<head>
    <meta content="IE=11.0000"
          http-equiv="X-UA-Compatible">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>登录页面</title>
    <script src="/Scripts/jquery.min.js" type="text/javascript"></script>
    @Scripts.Render("~/bundles/account")
    <link href="~/Content/fontawesome/css/font-awesome.min.css" rel="stylesheet" />
    <style>
        body{background:#ebebeb;color:#222;font-size:9pt;font-family:Helvetica Neue,Hiragino Sans GB,Microsoft YaHei,\\9ED1\4F53,Arial,sans-serif}
*{margin:0;padding:0}
.top_div{width:100%;height:300px;background:#222d32;text-align:center}
#LoginTopLine{top:130px;font-size:30px}
#LoginBotoomLine,#LoginTopLine{position:absolute;width:100%;color:#fff;font-weight:700}
#LoginBotoomLine{top:175px;font-size:15px}
.ipt{padding:10px;padding-left:35px;width:290px;border:1px solid #d3d3d3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}
.ipt:focus{outline:0;border-color:#66afe9;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}
.u_logo{top:43px}
.p_logo,.u_logo{position:absolute;left:45px}
.p_logo{top:9pt}
.s_logo{position:absolute;top:9pt;left:10px}
a{text-decoration:none}

#local{float:right;margin-right:33px;height:23px;line-height:23px}
.field-validation-error{color:red}

    </style>

    <meta name="GENERATOR" content="MSHTML 11.00.9600.17496">
</head>
<body>
    <div class="top_div">
        <div id="LoginTopLine">@ViewBag.WebName</div>
        <div id="LoginBotoomLine">@ViewBag.ComName</div>
    </div>
    <div style="background: rgb(255, 255, 255); margin: -100px auto auto; border: 1px solid rgb(231, 231, 231); border-image: none; width: 400px; height: 290px; text-align: center;">
        <p style="padding: 20px 0px 0px; text-align:center; position: relative;">
            Sign in to start your session<select id="local">
    <option value="zh-CN">中国</option>
    <option value="en-US">English</option>
</select>
            </p>
<p style="padding: 30px 0px 20px; position: relative;">
            <span class="u_logo fa fa-user" ></span>         <input id="UserName" name="UserName" class="ipt" type="text" placeholder="请输入用户名或邮箱" value="">
        </p>
        <p style="position: relative;">
            <span class="p_logo fa fa-key" ></span>
            <input class="ipt" id="Password" type="Password" placeholder="请输入密码" value="">
        </p>
        <p style="position: relative;">
            <span class="p_logo"></span>

        </p><p style="position: relative; text-align:left; margin-left:32px; margin-top:20px;">
                <span class="s_logo fa fa-expeditedssl"></span>
                <input class="ipt " style="width: 50px" type="text" name="ValidateCode" id="ValidateCode" />
                        <img id="codeImg" alt="刷新验证码!" style="margin-bottom: -8px; cursor: pointer;" src="/Core/verify_code.ashx" onclick="this.src=this.src+‘?‘" />
        </p>
        <div style="height: 50px; line-height: 50px; margin-top: 20px; border-top-color: rgb(231, 231, 231); border-top-width: 1px; border-top-style: solid;">
            <p style="margin: 0px 35px 20px 45px;">
                <span id="mes" class="field-validation-error">
                </span>
                <span id="Loading" style="display: none" class=‘panel-loading‘><font color=‘#000‘>加载中...</font></span>
                <span style="float: right;">

                    <a id="LoginSys" style="background: rgb(0, 142, 173); padding: 7px 15px; border-radius: 4px; border: 1px solid rgb(26, 117, 152); border-image: none; color: rgb(255, 255, 255); font-weight: bold;"
                       href="#">登录</a>
                </span>
            </p>
        </div>
    </div>
</body>
</html>
@*<div style="background: #f1f1f1; height: 40px; width: 100%; text-align: center; line-height: 40px; border-top: 1px #ccc solid; bottom: 0; position: absolute">
    @ViewBag.CopyRight
</div>
<div class="define-logo">
    <div id="LoginTopLine">@ViewBag.WebName</div>
    <div id="LoginBotoomLine">@ViewBag.ComName</div>
</div>*@

后台还是之前页面构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(3)-漂亮系统登陆界面 的代码

--------------------------------------

进入主题:流程监控能看到所有申请的状态。主要用于管理员查询数据使用

流程监控=我的申请

我的申请指定了当前的用户,所有监控则查询所有用户的申请。很简单,复制一份Apply控制器的代码

直接上代码: FlowTrackController 需要手动新建FlowTrackController控制器

using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using Apps.Common;
using Apps.IBLL;
using Apps.Models.Sys;
using Microsoft.Practices.Unity;
using Apps.Flow.IBLL;
using Apps.Models.Flow;
using System.Text;
using Apps.Flow.BLL;
using System;
using Apps.Web.Core;
using Apps.Models.Enum;
namespace Apps.Web.Areas.Flow.Controllers
{
    public class FlowTrackController : BaseController
    {
        [Dependency]
        public ISysUserBLL userBLL { get; set; }
        [Dependency]
        public IFlow_TypeBLL m_BLL { get; set; }
        [Dependency]
        public IFlow_FormBLL formBLL { get; set; }
        [Dependency]
        public IFlow_FormAttrBLL formAttrBLL { get; set; }
        [Dependency]
        public IFlow_FormContentBLL formContentBLL { get; set; }
        [Dependency]
        public IFlow_StepBLL stepBLL { get; set; }
        [Dependency]
        public IFlow_StepRuleBLL stepRuleBLL { get; set; }
        [Dependency]
        public IFlow_FormContentStepCheckBLL stepCheckBLL { get; set; }
        [Dependency]
        public IFlow_FormContentStepCheckStateBLL stepCheckStateBLL { get; set; }

        ValidationErrors errors = new ValidationErrors();

        [SupportFilter]
        public ActionResult Index()
        {
            return View();
        }

        [SupportFilter]
        public ActionResult Index()
        {
            ViewBag.Perm = GetPermission();

            List<Flow_FormContentModel> list = formContentBLL.GeExaminetList(ref setNoPagerAscById, "");
            foreach (var model in list)
            {
                List<Flow_FormContentStepCheckModel> stepCheckModelList = stepCheckBLL.GetListByFormId(model.FormId, model.Id);
                model.CurrentState = formContentBLL.GetCurrentFormState(model);
            }
            FlowStateCountModel stateModel = new FlowStateCountModel();
            stateModel.requestCount = list.Count();
            stateModel.passCount = list.Where(a => a.CurrentState == (int)FlowStateEnum.Pass).Count();
            stateModel.rejectCount = list.Where(a => a.CurrentState == (int)FlowStateEnum.Reject).Count();
            stateModel.processCount = list.Where(a => a.CurrentState == (int)FlowStateEnum.Progress).Count();
            stateModel.closedCount = list.Where(a => a.TimeOut < DateTime.Now).Count();
            return View(stateModel);
        }
        [HttpPost]
        public JsonResult GetList(GridPager pager, string queryStr)
        {
            List<Flow_FormContentModel> list = formContentBLL.GetList(ref pager, queryStr);
            var json = new
            {
                total = pager.totalRows,
                rows = (from r in list
                        select new Flow_FormContentModel()
                        {

                            Id = r.Id,
                            Title = r.Title,
                            UserId = r.UserId,
                            FormId = r.FormId,
                            FormLevel = r.FormLevel,
                            CreateTime = r.CreateTime,
                            TimeOut = r.TimeOut,
                            CurrentStep = formContentBLL.GetCurrentFormStep(r),
                            CurrentState = formContentBLL.GetCurrentFormState(r),

                        }).ToArray()

            };
            return Json(json);
        }
    }
}

DAL层方法(获取统计信息),对比申请的只去掉where 中的userid=

 public IQueryable<Flow_FormContent> GeExamineList(DBContainer db)
        {
            IQueryable<Flow_FormContent> list = (from a in db.Flow_FormContent
                                                 join b in db.Flow_Step
                                                 on a.FormId equals b.FormId
                                                 join c in db.Flow_FormContentStepCheck
                                                 on b.Id equals c.StepId
                                                 join d in db.Flow_FormContentStepCheckState
                                                 on c.Id equals d.StepCheckId
                                                 select a).Distinct();
            return list;
        }

直接取得运行结果

时间: 2024-10-09 00:21:06

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(54)-工作流设计-所有流程监控的相关文章

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(51)-系统升级

系统很久没有更新内容了,最近花了2个月的时间每天一点点,从原有系统 MVC4+EF5+UNITY2.X+Quartz 2.0+easyui 1.3.4无缝接入 MVC5+EF6+Unity4.x+Quartz 2.3 +easyui 1.4.3. 并以easyui 1.4.3的gray皮肤为基础,升级10个扁平化皮肤 皮肤查看地址 更新的主要目的:新的MVC5特性和更好的性能 记录一下升级过程. 1.除了web层,其他全部提取. 2.新建解决方案.以前命名空间为App.现在更名为Apps. 3.

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)

前言: 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC WebApi 用户验证 (1) 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手. 继续上一篇的文章,我们接下来演示利用拿到的Token来访问接口,管理接口,利用系统权限管理接口,对每个接口进行授权(管理接口为选读部分,因为你需要阅读最开始权限管理部分(18-27节),才能阅读这部分) 开发环境: V

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(1)-前言与目录(持续更新中...)

开篇:从50开始系统已经由MVC4+EF5+UNITY2.X+Quartz 2.0+easyui 1.3.4无缝接入 MVC5+EF6+Unity4.x+Quartz 2.3 +easyui 1.4.3. 从50节起为MVC5+EF6+Unity4.x+Quartz 2.3 +easyui 1.4.3.的特性文章 所以你们也要更新你们的环境 功能不变属于无缝接入,最大改变只在UI,初学同学,直接使用MVC5 开发工具:VS2013+SQL2012 相关代码:演示地址暂时关闭   第2讲源码下载 

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC与ECharts

ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表. ECharts 3 中更是加入了更多丰富的交互功能以及更多的可视化效果,并且对移动端做了深度的优化. 丰富的图表类型 ECharts 提供了常规的折线图,柱状图,散点图,

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(60)-系统总结

前言: 起初写这个框架的时候,可以说在当时来说并不是很流行的设计模式,那是在2012年,面向对象的编程大家都很熟悉, 但是“注入.控制反转(DI,IOC,依赖注入).AOP切面编程”新兴名词 很多人并不知道特别是从事.NET开发的人,至少在当时 是这么样的,但是在今天它们却是非常流行的技术指标,很多大牛也承认,这是主流的开发模式,你们可以从招聘网的技术岗 位看出. 嘿嘿... 我从事过MVC2.0到5.0的相关开发工作,见证了MVC的成熟演变过程,就像本框架一样,设计模式未曾改变,但是代码一直在

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(55)-工作流设计-表单布局

前言:这一节比较有趣.基本纯UI,但是不是很复杂 有了实现表单的打印和更加符合流程表单方式,我们必须自定义布局来适合业务场景打印!我们想要什么效果?看下图 (我们没有布局之前的表单和设置布局后的表单) 改变后的布局 本节知识点: easyui draggable 与 resizable 的结合使用(拖动与设置大小) 在Form添加Action Action提取来自48节的Create代码.改下名称 [SupportFilter(ActionName = "Edit")] public

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(64)-WebApi与Unity注入

前言: 有时候我们系统需要开放数据给手机App端或其他移动设备,不得不说Asp.net WebApi是目前首选 本节记录Asp.net MVC WebApi怎么利用Unity注入.系列开头已经讲解了普通的Asp.net MVC如何用Unity注入容器 不明白什么是IOC,DI,控制反转的自行百度补脑,否则无法阅读本文 其实这也是一次技术上的记录,因为找遍大百度居然没有可以用的利用Unity注入的WebApi!感谢随风朋友的提醒.才能完成本节的指导 为了更好的理解,请下载代码 示例代码下载   h

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(57)-插件---ueditor使用

目录: 前言 开发环境 知识点 初始使用 自定义工具栏 设置和读取编辑器内容 文件上传 ueditor加水印 ------------------------------------------------ 下载地址在尾部 1.前言:之前一直用KingEditor富文本编辑器,在国产编辑器中算是顶尖的插件.但是这个编辑器集成度较差,也很久没有更新了,今天学习百度产品UEeditor使用! 2.开发环境:VS2013+MVC5 3.知识点:上传加水印功能 下载编辑器 各自选择自己语言的版本.我这里

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(52)-美化EasyUI皮肤和图标

系列目录 我很久以前就想更新系统的皮肤功能,Easyui 自带的皮肤已经无法满足客户的审美. 皮肤颜色来源于AdminLTE系统.我的颜色全部都这里取的.,所以一共取了11个颜色.1个皮肤=2个banner颜色和1个侧边栏颜色 利用chome的元素查看器可以获取AdminLTE颜色,或者用VS2013自带的吸色器(我是用后者) 我是怎么做的??? 我用了原EasyUI 的Gray作为基础皮肤.里面只有这套皮肤我觉得最适合作为基础皮肤 图中为文件结构,skin开头为自己的皮肤. 皮肤里面一定要覆盖