Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-工作流设计-表单布局

ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-工作流设计-表单布局

作者头像
用户1149182
发布于 2018-01-16 06:44:22
发布于 2018-01-16 06:44:22
91300
代码可运行
举报
运行总次数:0
代码可运行

前言:这一节比较有趣。基本纯UI,但是不是很复杂

有了实现表单的打印和更加符合流程表单方式,我们必须自定义布局来适合业务场景打印!我们想要什么效果?看下图

(我们没有布局之前的表单和设置布局后的表单)

改变后的布局

本节知识点:

easyui draggable 与 resizable 的结合使用(拖动与设置大小)

在Form添加Action Action提取来自48节的Create代码。改下名称

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SupportFilter(ActionName = "Edit")]
        public ActionResult FormLayout(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return View();
            }

            ViewBag.FormId = id;
            ViewBag.Perm = GetPermission();
            ViewBag.Html = ExceHtmlJs(id);
            
            return View();
        }

 UI代码提取:jquery-easyui-1.4.3\demo\droppable 与resizable 文件下的代码

提取后代码:我自己加了点Style

FormLayout.cshtml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css">
    input[type="text"], input[type="number"], input[type="datetime"], input[type="datetime"], select, textarea {display: normal;}
    #setFormLayout{position:relative;overflow:hidden;width:100%;height:500px}
    #setFormLayout .easyui-draggable{border:1px #000 solid;overflow:hidden;background:#fff;width:300px;}
    .inputtable{height:100%;width:100%;}
    .inputtable .inputtitle{border-right:1px #000 solid;width:80px;padding-right:10px;text-align:right;vertical-align:middle}
    .inputtable .inputcontent { text-align:right;vertical-align:middle;padding:5px;}
    .inputtable .inputcontent .input{width:96%}
    .inputtable .inputcontent textarea{height:90%;min-height:40px;}   
</style>

<div id="setForm">
    <div id="setFormLayout" class="easyui-panel">
        <div class="easyui-draggable" data-option="onDrag:onDrag">
            <table class="inputtable">
                <tr>
                    <td class="inputtitle">名称</td>
                    <td class="inputcontent"><input class="input" type="text" /></td>
                </tr>
            </table>
        </div>
  
    </div>
</div>
<script>
 
    function onDrag(e) {
        var d = e.data;
        if (d.left < 0) { d.left = 0 }
        if (d.top < 0) { d.top = 0 }
        if (d.left + $(d.target).outerWidth() > $(d.parent).width()) {
            d.left = $(d.parent).width() - $(d.target).outerWidth();
        }
        if (d.top + $(d.target).outerHeight() > $(d.parent).height()) {
            d.top = $(d.parent).height() - $(d.target).outerHeight();
        }
    }


    $('.easyui-draggable').draggable({ edge: 5 }).resizable();
</script>

代码解析

onDrag

e

在拖动过程中触发,当不能再拖动时返回false。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   $('.easyui-draggable').draggable({ edge: 5 }).resizable(); 边框位置5px内都可以做为设置大小的边界

运行结果:任意拖动位置

填充表单:如何填充表单。我们需要提取“表单申请”的代码。跳到48节可以看到怎么读取表单的代码

//获取指定名称的HTML表单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        private string GetHtml(string id, string no, ref StringBuilder sbJS)
        {
            StringBuilder sb = new StringBuilder();
            Flow_FormAttrModel attrModel = formAttrBLL.GetById(id);
            sb.AppendFormat("<tr><th>{0} :</th>", attrModel.Title);
            //获取指定类型的HTML表单
            sb.AppendFormat("<td>{0}</td></tr>", new FlowHelper().GetInput(attrModel.AttrType, attrModel.Name, no));
            sbJS.Append(attrModel.CheckJS);
            return sb.ToString();
        }

把下面这段代码填充到这个方法中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="easyui-draggable" data-option="onDrag:onDrag">
            <table class="inputtable">
                <tr>
                    <td class="inputtitle">名称</td>
                    <td class="inputcontent"><input class="input" type="text" /></td>
                </tr>
            </table>
        </div>

最后生成代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 private string GetHtml(string id, string no, ref StringBuilder sbJS)
        {
            StringBuilder sb = new StringBuilder();
            Flow_FormAttrModel attrModel = formAttrBLL.GetById(id);
            sb.AppendFormat("<div class='easyui-draggable' data-option='onDrag:onDrag'><table class='inputtable'><tr><td class='inputtitle'>{0}</td>", attrModel.Title);
            //获取指定类型的HTML表单
            sb.AppendFormat("<td class='inputcontent'>{0}</td></tr></table></div>", new FlowHelper().GetInput(attrModel.AttrType, attrModel.Name, no));
            sbJS.Append(attrModel.CheckJS);
            return sb.ToString();
        }

运行效果 (有点长,谢谢观看GIF)

如何保存?我们要保存到Flow_Form表中的Html字段中去。以后使用判断这个字段是否有null不为null优先取出

如何取保存值:$("#setFormLayout").html()

保存代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 $("#btnSave").click(function () {
            $.ajax({
                url: "@Url.Action("SaveLayout")",
                type: "Post",
                data: { html: $("#setFormLayout").html(), formId: "@(ViewBag.FormId)" },
                dataType: "json",
                success: function (data) {
                if (data.type == 1) {
                    window.parent.frameReturnByMes(data.message);
                    window.parent.frameReturnByReload(true);
                    window.parent.frameReturnByClose()
                }
                else {
                    window.parent.frameReturnByMes(data.message);
                }
            }
        });
    });

最后融合到我的申请和审批中来。

The End!我们不得不承认EASYUI 的强大之处

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-02-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分支执行。 起草的同时,我们分解流转的规则中的审批人并保存,具体流程如下 接下来创建DrafContoller控制器,此控制器只有2个页面,一个Create(起草页面)Index(表单列表) 表单列表显示个人想法,我是根据分类直接获取其下表单,即Flow_Type下的Flow_Form public ActionResult Index() { List<Flow_TypeModel> list = m_
用户1149182
2018/01/16
8900
ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
ASP.NET MVC5+EF6+EasyUI 后台管理系统(49)-工作流设计-我的申请
提交一个表单后 我们需要一个管理的列表。我的申请,我的申请包含了提交内容的列表状态 状态分:过期,未审核,审核通过,驳回,废弃 列表对应代码 @using App.Admin; @using App.
用户1149182
2018/01/16
1.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(49)-工作流设计-我的申请
ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元(请假天数>5天)要总经理审批,否则财务审批之后就结束了。 设置分支没有任何关注点,我们把关注点都放在了用户的起草表单。所以本节如同设置
用户1149182
2018/01/16
1.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
ASP.NET MVC5+EF6+EasyUI 后台管理系统(22)-权限管理系统-模块导航制作
最近比较忙,系统难度独步增加,文章的发布速度明显比以前慢了。 由于我们已经跑通了整个系统,所有东西都回到了简单,接下来我们做模块制作也就是操作SysModule表。 首先我们来回顾一下之前的难点主要就是SysRight这个表Rightflag字段的改变,这个字段关系导航与角色组的关系显示(即有权限时候显示菜单导航,这个更新讲到授权讲到,在这里浮头一下) 所以我们操作SysModule必须更新SysRight这张表,把模块先分配给角色 所以思路已经比较明显和简单了,这里我们模块将用treegrid来做,同时也
用户1149182
2018/01/16
5.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(22)-权限管理系统-模块导航制作
ASP.NET MVC5+EF6+EasyUI 后台管理系统(44)-工作流设计-设计表单
设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四步。 开始之前先说说表的结构。 其实表Flow_Form与Flow_FormContent设计是有一个缺陷的。我总共是设置最高26个字
用户1149182
2018/01/16
2.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(44)-工作流设计-设计表单
ASP.NET MVC5+EF6+EasyUI 后台管理系统(45)-工作流设计-设计步骤
步骤设计很重要,特别是规则的选择。 我这里分为几个规则 1.按自行选择(在起草时候自行选审批人,比较灵活) 2.按上级(无需指定,当时需要知道用户的上司是谁,可以在职位管理设置,或者在用户表直接设置) 3.按职位(选择职位,直接获得该职位的人员) 4.按部门(按部门,直接获得该部分的人员) 5.按人员(设置步骤时就指定人员) 以上用户必须和部门,职位,上级有所关联,只要做好一个其实全部都同理 表结构分析:Flow_FormStep中有IsAllCheck字段我设计这个的目的是批量审核,比如我选择了部门,那么
用户1149182
2018/01/16
1.4K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(45)-工作流设计-设计步骤
ASP.NET MVC5+EF6+EasyUI 后台管理系统(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"> <tit
用户1149182
2018/01/16
9530
ASP.NET MVC5+EF6+EasyUI 后台管理系统(54)-工作流设计-所有流程监控
ASP.NET MVC5+EF6+EasyUI 后台管理系统(80)-自由桌面
系列目录 前言 这次我们来做一个有趣的事情,有朋友跟做了很远,找我要自由桌面的代码,这次我们将演示自由桌面的代码。 自由桌面:用户可以随意增删改桌面的布局、个数(只留自己需要看到的数据),这次纯属
用户1149182
2018/01/12
1.6K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(80)-自由桌面
ASP.NET MVC5+EF6+EasyUI 后台管理系统(47)-工作流设计-补充
补充一下,有人要表单的代码,这个用代码生成器生成表Flow_Form表的Index代码就可以 加上几个按钮就可以了 <div class="mvctool"> <input id="txtQuery" type="text" class="searchText" /> @Html.ToolButton("btnQuery", "icon-search", "查询", perm, "Query", true) @Html.ToolButton("btnCreate", "icon-ad
用户1149182
2018/01/16
6940
ASP.NET MVC5+EF6+EasyUI 后台管理系统(47)-工作流设计-补充
ASP.NET MVC5+EF6+EasyUI 后台管理系统(53)-工作流设计-我的批阅
前言:由于工作原因工作流一直没时间更新,虽然没有更新,但是批阅和申请差不多,改变一下数据的状态字段就行,有几个园友已经率先完成了 说句实话,一个工作流用文章表达很难,我起初以为这是一个很简单的工作流程,但是要花很多时间考虑很多业务场景,这也是导致停滞不前的原因。 最近空出点时时间更新了皮肤,让系统看起来奇葩一点,顺便也把工作流梳理了一遍,最后跑通了整个流程的多个场景完成从提交表单到审批驳回结束流程 事隔已久需要重新梳理流程,辣么开始吧(由于我自己更新了皮肤,截图与之前有点不一样,但是除UI层之外其他还是一样
用户1149182
2018/01/16
1.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(53)-工作流设计-我的批阅
ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
建立好42节的表之后,每个字段英文表示都是有意义的说明。先建立,就知道表的关系和用处了,当然,我的设计只是一个参考,你可能有很多改进的地方。 我们的工作流具体细节流程是这样的: 最终我们的模块也是这样
用户1149182
2018/01/16
1.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理
前言 回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 你也可以按自己所分析的情形结构来建表 必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较多
用户1149182
2018/01/16
2.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理
ASP.NET MVC5+EF6+EasyUI 后台管理系统(92)-打印EasyUI 的datagrid表格
代码看起来有点复杂,但是不难看懂,提取datagrid的title和历遍数据得重新写入一个新的table
用户1149182
2018/10/08
1.5K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(92)-打印EasyUI 的datagrid表格
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①
系统需要越来越自动化,我们需要引入日志记录和异常捕获 管理员的操作记录需要被记录,看出哪些模块是频繁操作,分析哪些是不必要的功能,哪些是需要被优化的。 系统的异常需要被捕获,而不是将系统出错显示出来给用户就不了了知。我们需要异常日志不断改进系统。 我们老说用户,我们还没有用户权限的表,所以我们在Home中先加入一个虚拟用户吧! 首先我们创建一个用户类AccountModel放在App.Models下的Sys文件夹下 using System; using System.Collections.Generic
用户1149182
2018/01/16
2K0
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查
文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页。这一讲主要讲增删改查。第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下。 这讲主要是,制作漂亮的工具栏,虽然ea
用户1149182
2018/01/16
2K0
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查
ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox
今天整合lightbox插件Fancybox1.3.4,发现1.3.4版本太老了。而目前easyui 1.4.x的jquery的版本已经到达1.11.x以上。 本以为不能再使用这个插件,但是发现还是有
用户1149182
2018/01/16
1.7K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox
ASP.NET MVC5+EF6+EasyUI 后台管理系统(7)-MVC与EasyUI DataGrid
本节知识点 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI读取MVC后台Json数据 开始实现 我们的系统似乎越来越有趣了 首先从前端入手,开打View下面的Shared创建一个视图模版(母版页) <!DOCTYPE html> <html> <head> <title>Main</title> <script src="@Url.Content("~/Scripts/jquery.min.js")" type="text/javascript"></scr
用户1149182
2018/01/16
1.7K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(7)-MVC与EasyUI DataGrid
ASP.NET MVC5+EF6+EasyUI 后台管理系统(83)-Easyui Datagrid 行内编辑扩展
这次我们要从复杂的交互入手来说明一些用法,这才能让系统做出更加复杂的业务,上一节讲述了Datagird的批量编辑和提交 本节主要演示扩展Datagrid行内编辑的属性,下面来看一个例子,我开启编辑行的
用户1149182
2018/01/12
1.5K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(83)-Easyui Datagrid 行内编辑扩展
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-EasyUI缺陷修复与扩展
不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这块比较敢兴趣,讲不讲验证还是看大家的反映),我们应该对系统有一个小结。 首先这是一个团队开发项目,基于接口编程,我们从EasyUI搭建系统的框架开始,开始了一个样例程序对EasyUI的DataGrid进行了操作,并实现Unity的注入到容器,使程序 的性能大大提升,代码质量上升,更佳利于单元测试,使用日志和异常坚固系统稳定性等等。。。。 当然你应该觉得系统还有存在很多不足,我们应该动手来优化一下。 下面我罗列了需要优
用户1149182
2018/01/16
8370
ASP.NET MVC5+EF6+EasyUI 后台管理系统(33)-MVC 表单验证
注:本节阅读需要有MVC 自定义验证的基础,否则比较吃力 一直以来表单的验证都是不可或缺的,微软的东西还是做得比较人性化的,从webform到MVC,都做到了双向验证 单单的用js实现的前端验证是极其不安全的,所以本次我们来看看MVC上的自带的注解验证,自定义验证 同样的MVC提供了一系列内置的数据验证注解 不为空验证  [Required(ErrorMessage = "不能为空")] 长度验证     [StringLength(10, MinimumLength = 2)]   取值范围     [R
用户1149182
2018/01/16
4.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(33)-MVC 表单验证
推荐阅读
ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
8900
ASP.NET MVC5+EF6+EasyUI 后台管理系统(49)-工作流设计-我的申请
1.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
1.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(22)-权限管理系统-模块导航制作
5.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(44)-工作流设计-设计表单
2.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(45)-工作流设计-设计步骤
1.4K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(54)-工作流设计-所有流程监控
9530
ASP.NET MVC5+EF6+EasyUI 后台管理系统(80)-自由桌面
1.6K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(47)-工作流设计-补充
6940
ASP.NET MVC5+EF6+EasyUI 后台管理系统(53)-工作流设计-我的批阅
1.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
1.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理
2.1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(92)-打印EasyUI 的datagrid表格
1.5K0
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①
2K0
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查
2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox
1.7K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(7)-MVC与EasyUI DataGrid
1.7K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(83)-Easyui Datagrid 行内编辑扩展
1.5K0
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-EasyUI缺陷修复与扩展
8370
ASP.NET MVC5+EF6+EasyUI 后台管理系统(33)-MVC 表单验证
4.1K0
相关推荐
ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验