easyUI+mvc权限管理后台

通过按钮和菜单,组合成基本的功能,菜单的功能可以编码修改,但浏览功能是菜单基本的入口,只有角色赋予了浏览功能,才能访问。

基本按钮表

菜单模块

菜单分配按钮

角色授权

下面是对一张表的基本操作

模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyRight.Model
{
    /// <summary>
    /// 流水号
    /// </summary>
    public partial class AkIv
    {
        /// <summary>
        /// 流水号
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 条码
        /// </summary>
        public string BarCode { get; set; }
        /// <summary>
        /// 时间
        /// </summary>
        public DateTime DateTime { get; set; }
        /// <summary>
        /// 电池转换效率
        /// </summary>
        public float Eff { get; set; }
        /// <summary>
        /// 短路电流
        /// </summary>
        public float Isc { get; set; }
        /// <summary>
        /// 开路电压
        /// </summary>
        public float Voc { get; set; }
        /// <summary>
        /// 串联电阻
        /// </summary>
        public float Rs { get; set; }
        /// <summary>
        /// 并联电阻
        /// </summary>
        public float Rsh { get; set; }
        /// <summary>
        /// 最大功率
        /// </summary>
        public float Pmax { get; set; }
        /// <summary>
        /// 最大功率时的电压
        /// </summary>
        public float Vpm { get; set; }
        /// <summary>
        /// 最大功率时的电流
        /// </summary>
        public float Ipm { get; set; }
        /// <summary>
        /// 填充因子
        /// </summary>
        public float FF { get; set; }
        /// <summary>
        /// 光强
        /// </summary>
        public float Sun { get; set; }
        /// <summary>
        /// 温度
        /// </summary>
        public float Temp { get; set; }
        /// <summary>
        /// 档位
        /// </summary>
        public string Class { get; set; }
        /// <summary>
        /// 人员
        /// </summary>
        public string Employee { get; set; }
        /// <summary>
        /// 线别
        /// </summary>
        public string LineTitle { get; set; }
        /// <summary>
        /// 工位
        /// </summary>
        public string StationTitle { get; set; }
    }
}

存储过程

USE [Suncome]
GO
/****** Object:  StoredProcedure [dbo].[proc_AkIv]    Script Date: 08/28/2015 11:09:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[proc_AkIv]
(
    @queryType tinyint=0,
    @ID bigint=null,--流水号
    @BarCode nvarchar(100)=null,--条码
    @DateTime datetime=null,--时间
    @Eff decimal=null,--电池转换效率
    @Isc decimal=null,--为短路电流
    @Voc decimal=null,--开路电压
    @Rs decimal=null,--串联电阻
    @Rsh decimal=null,--并联电阻
    @Pmax decimal=null,--最大功率
    @Vpm decimal=null,--最大功率时的电压
    @Ipm decimal=null,--最大功率时的电流
    @FF decimal=null,--填充因子
    @Sun decimal=null,--光强
    @Temp decimal=null,--温度
    @Class nvarchar(50)=null,--档位
    @Employee nvarchar(50)=null,--人员
    @LineTitle nvarchar(50)=null,--线别
    @StationTitle nvarchar(50)=null,--工位
    @startIndex int=0,
    @endIndex int=18,
    @searchString nvarchar(1000)=‘‘,
    @orderString nvarchar(1000)=‘‘
)
AS

if @searchString is null
  set @searchString=‘‘
if @orderString is null
  set @orderString=‘‘

if @queryType=0 --查询单条记录
begin
    select * from AkIv where ID=@ID
end
else if @queryType=1 --插入
begin
    insert into AkIv (BarCode,DateTime,Eff,Isc,Voc,Rs,Rsh,Pmax,Vpm,Ipm,FF,Sun,Temp,Class,Employee,LineTitle,StationTitle)
    values (@BarCode,@DateTime,@Eff,@Isc,@Voc,@Rs,@Rsh,@Pmax,@Vpm,@Ipm,@FF,@Sun,@Temp,@Class,@Employee,@LineTitle,@StationTitle)
end
else if @queryType=2 --更新
begin
    update AkIv  set
    BarCode=@BarCode,
    DateTime=@DateTime,
    Eff=@Eff,
    Isc=@Isc,
    Voc=@Voc,
    Rs=@Rs,
    Rsh=@Rsh,
    Pmax=@Pmax,
    Vpm=@Vpm,
    Ipm=@Ipm,
    FF=@FF,
    Sun=@Sun,
    Temp=@Temp,
    Class=@Class,
    Employee=@Employee,
    LineTitle=@LineTitle,
    StationTitle=@StationTitle
    where ID=@ID
end
else if @queryType=3 --删除
begin
    delete from AkIv where ID=@ID
end
else if @queryType=6 --删除
begin
    declare @selectStr nvarchar(1000)
    set @selectStr=‘delete from AkIv ‘ + @searchString
    exec (@selectStr)
end
else if @queryType=4 --查询记录数
begin
    declare @countStr nvarchar(max)
    set @countStr = ‘select COUNT(1) from AkIv ‘+@searchString
    execute(@countStr)
end
else if @queryType=5 --查询记录
begin
    declare @select nvarchar(max)
    set @select=
    ‘
    select * from
    (
      select ROW_NUMBER() OVER (‘+@orderString+‘) AS Row,*
      from AkIv
      ‘+@searchString+‘
    )
    as AkIvlist WHERE (Row BETWEEN ‘+cast(@startIndex as nvarchar)+‘  AND ‘+cast(@endIndex as nvarchar)+‘ )
    ‘
    execute(@select)
end
else if @queryType=11 --根据组件条码查询最新单条记录
begin
    select top 1 * from AkIv where BarCode=@BarCode order by DateTime desc
end

DAL

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyRight.Model;
using MyRight.Common;

namespace MyRight.DAL
{
    public partial class AkIvRepository
    {
        private readonly string _connonnectionString;
        public AkIvRepository(string connonnectionString)
        {
            _connonnectionString = connonnectionString;
        }
        public AkIv GetSingle(string Id)
        {
            SqlParameter p_queryType = new SqlParameter("@queryType", SqlDbType.Int);
            p_queryType.Value = 0;//操作类型
            SqlParameter p_Id = new SqlParameter("@Id", SqlDbType.NVarChar);
            p_Id.Value = Id;//主键
            SqlParameter[] para = { p_queryType, p_Id };
            SqlDataReader dr = SqlHelper.ExecuteReader(_connonnectionString, CommandType.StoredProcedure, "proc_AkIv", para);
            AkIv tabAkIv = new AkIv();
            if (dr.Read())
                tabAkIv = EntityLoad(dr);
            dr.Close();
            return tabAkIv;
        }

        public AkIv GetSingleByBarcode(string Barcode)
        {
            SqlParameter p_queryType = new SqlParameter("@queryType", SqlDbType.Int);
            p_queryType.Value = 11;//操作类型
            SqlParameter p_Barcode = new SqlParameter("@BarCode", SqlDbType.NVarChar);
            p_Barcode.Value = Barcode;//主键
            SqlParameter[] para = { p_queryType, p_Barcode };
            SqlDataReader dr = SqlHelper.ExecuteReader(_connonnectionString, CommandType.StoredProcedure, "proc_AkIv", para);
            AkIv tabAkIv = new AkIv();
            if (dr.Read())
                tabAkIv = EntityLoad(dr);
            dr.Close();
            return tabAkIv;
        }

        public List<AkIv> GetPageList(int startIndex, int endIndex, string searchString, string orderString)
        {
            List<AkIv> listAkIv = new List<AkIv>();
            SqlParameter p_queryType = new SqlParameter("@queryType", SqlDbType.Int);
            p_queryType.Value = 5;//操作类型
            SqlParameter p_startIndex = new SqlParameter("@startIndex", SqlDbType.Int);
            p_startIndex.Value = startIndex;//起始位置
            SqlParameter p_endIndex = new SqlParameter("@endIndex", SqlDbType.Int);
            p_endIndex.Value = endIndex;//结束位置
            SqlParameter p_searchString = new SqlParameter("@searchString", SqlDbType.NVarChar);
            p_searchString.Value = searchString;//查询条件
            SqlParameter p_orderString = new SqlParameter("@orderString", SqlDbType.NVarChar);
            p_orderString.Value = orderString;//排序条件

            SqlParameter[] para = { p_queryType, p_startIndex, p_endIndex, p_searchString, p_orderString };
            SqlDataReader dr = SqlHelper.ExecuteReader(_connonnectionString, CommandType.StoredProcedure, "proc_AkIv", para);

            while (dr.Read())
            {
                AkIv tabAkIv = EntityLoad(dr);
                listAkIv.Add(tabAkIv);
            }
            dr.Close();
            return listAkIv;
        }
        public int GetCount(string searchString)
        {
            SqlParameter p_queryType = new SqlParameter("@queryType", SqlDbType.Int);
            p_queryType.Value = 4;//操作类型
            SqlParameter p_searchString = new SqlParameter("@searchString", SqlDbType.NVarChar);
            p_searchString.Value = searchString;//查询条件

            SqlParameter[] para = { p_queryType, p_searchString };

            return (int)SqlHelper.ExecuteScalar(_connonnectionString, CommandType.StoredProcedure, "proc_AkIv", para);
        }
        public int DeleteSingle(string Id)
        {
            SqlParameter p_queryType = new SqlParameter("@queryType", SqlDbType.Int);
            p_queryType.Value = 3;//操作类型
            SqlParameter p_Id = new SqlParameter("@Id", SqlDbType.NVarChar);
            p_Id.Value = Id;//主键
            SqlParameter[] para = { p_queryType, p_Id };
            return SqlHelper.ExecuteNonQuery(_connonnectionString, CommandType.StoredProcedure, "proc_AkIv", para);
        }
        public int DeleteMulti(string searchString)
        {
            SqlParameter p_queryType = new SqlParameter("@queryType", SqlDbType.Int);
            p_queryType.Value = 6;//操作类型
            SqlParameter p_searchString = new SqlParameter("@searchString", SqlDbType.NVarChar);
            p_searchString.Value = searchString;//查询条件
            SqlParameter[] para = { p_queryType, p_searchString };
            return SqlHelper.ExecuteNonQuery(_connonnectionString, CommandType.StoredProcedure, "proc_AkIv", para);
        }
        public int Update(AkIv obj)
        {
            SqlParameter p_queryType = new SqlParameter("@queryType", SqlDbType.Int);
            p_queryType.Value = 2;//操作类型
            SqlParameter p_Id = new SqlParameter("@Id", SqlDbType.Int);
            p_Id.Value = obj.Id;//流水号
            SqlParameter p_BarCode = new SqlParameter("@BarCode", SqlDbType.NVarChar, 100);
            p_BarCode.Value = obj.BarCode;//条码
            SqlParameter p_DateTime = new SqlParameter("@DateTime", SqlDbType.DateTime);
            p_DateTime.Value = obj.DateTime;//时间
            SqlParameter p_Eff = new SqlParameter("@Eff", SqlDbType.Float);
            p_Eff.Value = obj.Eff;//电池转换效率
            SqlParameter p_Isc = new SqlParameter("@Isc", SqlDbType.Float);
            p_Isc.Value = obj.Isc;//短路电流
            SqlParameter p_Voc = new SqlParameter("@Voc", SqlDbType.Float);
            p_Voc.Value = obj.Voc;//开路电压
            SqlParameter p_Rs = new SqlParameter("@Rs", SqlDbType.Float);
            p_Rs.Value = obj.Rs;//串联电阻
            SqlParameter p_Rsh = new SqlParameter("@Rsh", SqlDbType.Float);
            p_Rsh.Value = obj.Rsh;//并联电阻
            SqlParameter p_Pmax = new SqlParameter("@Pmax", SqlDbType.Float);
            p_Pmax.Value = obj.Pmax;//最大功率
            SqlParameter p_Vpm = new SqlParameter("@Vpm", SqlDbType.Float);
            p_Vpm.Value = obj.Vpm;//最大功率时的电压
            SqlParameter p_Ipm = new SqlParameter("@Ipm", SqlDbType.Float);
            p_Ipm.Value = obj.Ipm;//最大功率时的电流
            SqlParameter p_FF = new SqlParameter("@FF", SqlDbType.Float);
            p_FF.Value = obj.FF;//填充因子
            SqlParameter p_Sun = new SqlParameter("@Sun", SqlDbType.Float);
            p_Sun.Value = obj.Sun;//光强
            SqlParameter p_Temp = new SqlParameter("@Temp", SqlDbType.Float);
            p_Temp.Value = obj.Temp;//温度
            SqlParameter p_Class = new SqlParameter("@Class", SqlDbType.NVarChar, 50);
            p_Class.Value = obj.Class;//档位
            SqlParameter p_Employee = new SqlParameter("@Employee", SqlDbType.NVarChar, 50);
            p_Employee.Value = obj.Employee;//人员
            SqlParameter p_LineTitle = new SqlParameter("@LineTitle", SqlDbType.NVarChar, 50);
            p_LineTitle.Value = obj.LineTitle;//线别
            SqlParameter p_StationTitle = new SqlParameter("@StationTitle", SqlDbType.NVarChar, 50);
            p_StationTitle.Value = obj.StationTitle;//工位
            SqlParameter[] para = { p_queryType, p_Id, p_BarCode, p_DateTime, p_Eff, p_Isc, p_Voc, p_Rs, p_Rsh, p_Pmax, p_Vpm, p_Ipm, p_FF, p_Sun, p_Temp, p_Class, p_Employee, p_LineTitle, p_StationTitle };
            return SqlHelper.ExecuteNonQuery(_connonnectionString, CommandType.StoredProcedure, "proc_AkIv", para);
        }
        public int Insert(AkIv obj)
        {
            SqlParameter p_queryType = new SqlParameter("@queryType", SqlDbType.Int);
            p_queryType.Value = 1;//操作类型
            SqlParameter p_Id = new SqlParameter("@Id", SqlDbType.Int);
            p_Id.Value = obj.Id;//流水号
            SqlParameter p_BarCode = new SqlParameter("@BarCode", SqlDbType.NVarChar, 100);
            p_BarCode.Value = obj.BarCode;//条码
            SqlParameter p_DateTime = new SqlParameter("@DateTime", SqlDbType.DateTime);
            p_DateTime.Value = obj.DateTime;//时间
            SqlParameter p_Eff = new SqlParameter("@Eff", SqlDbType.Float);
            p_Eff.Value = obj.Eff;//电池转换效率
            SqlParameter p_Isc = new SqlParameter("@Isc", SqlDbType.Float);
            p_Isc.Value = obj.Isc;//短路电流
            SqlParameter p_Voc = new SqlParameter("@Voc", SqlDbType.Float);
            p_Voc.Value = obj.Voc;//开路电压
            SqlParameter p_Rs = new SqlParameter("@Rs", SqlDbType.Float);
            p_Rs.Value = obj.Rs;//串联电阻
            SqlParameter p_Rsh = new SqlParameter("@Rsh", SqlDbType.Float);
            p_Rsh.Value = obj.Rsh;//并联电阻
            SqlParameter p_Pmax = new SqlParameter("@Pmax", SqlDbType.Float);
            p_Pmax.Value = obj.Pmax;//最大功率
            SqlParameter p_Vpm = new SqlParameter("@Vpm", SqlDbType.Float);
            p_Vpm.Value = obj.Vpm;//最大功率时的电压
            SqlParameter p_Ipm = new SqlParameter("@Ipm", SqlDbType.Float);
            p_Ipm.Value = obj.Ipm;//最大功率时的电流
            SqlParameter p_FF = new SqlParameter("@FF", SqlDbType.Float);
            p_FF.Value = obj.FF;//填充因子
            SqlParameter p_Sun = new SqlParameter("@Sun", SqlDbType.Float);
            p_Sun.Value = obj.Sun;//光强
            SqlParameter p_Temp = new SqlParameter("@Temp", SqlDbType.Float);
            p_Temp.Value = obj.Temp;//温度
            SqlParameter p_Class = new SqlParameter("@Class", SqlDbType.NVarChar, 50);
            p_Class.Value = obj.Class;//档位
            SqlParameter p_Employee = new SqlParameter("@Employee", SqlDbType.NVarChar, 50);
            p_Employee.Value = obj.Employee;//人员
            SqlParameter p_LineTitle = new SqlParameter("@LineTitle", SqlDbType.NVarChar, 50);
            p_LineTitle.Value = obj.LineTitle;//线别
            SqlParameter p_StationTitle = new SqlParameter("@StationTitle", SqlDbType.NVarChar, 50);
            p_StationTitle.Value = obj.StationTitle;//工位
            SqlParameter[] para = { p_queryType, p_Id, p_BarCode, p_DateTime, p_Eff, p_Isc, p_Voc, p_Rs, p_Rsh, p_Pmax, p_Vpm, p_Ipm, p_FF, p_Sun, p_Temp, p_Class, p_Employee, p_LineTitle, p_StationTitle };
            return SqlHelper.ExecuteNonQuery(_connonnectionString, CommandType.StoredProcedure, "proc_AkIv", para);
        }
        public AkIv EntityLoad(SqlDataReader dr)
        {
            return new AkIv
            {
                Id = (dr["Id"] != DBNull.Value) ? Convert.ToInt32(dr["Id"]) : 0,
                BarCode = (dr["BarCode"] != DBNull.Value) ? dr["BarCode"].ToString() : "",
                DateTime = (dr["DateTime"] != DBNull.Value) ? Convert.ToDateTime(dr["DateTime"]) : DateTime.Now,
                Eff = (dr["Eff"] != DBNull.Value) ? Convert.ToSingle(dr["Eff"]) : 0,
                Isc = (dr["Isc"] != DBNull.Value) ? Convert.ToSingle(dr["Isc"]) : 0,
                Voc = (dr["Voc"] != DBNull.Value) ? Convert.ToSingle(dr["Voc"]) : 0,
                Rs = (dr["Rs"] != DBNull.Value) ? Convert.ToSingle(dr["Rs"]) : 0,
                Rsh = (dr["Rsh"] != DBNull.Value) ? Convert.ToSingle(dr["Rsh"]) : 0,
                Pmax = (dr["Pmax"] != DBNull.Value) ? Convert.ToSingle(dr["Pmax"]) : 0,
                Vpm = (dr["Vpm"] != DBNull.Value) ? Convert.ToSingle(dr["Vpm"]) : 0,
                Ipm = (dr["Ipm"] != DBNull.Value) ? Convert.ToSingle(dr["Ipm"]) : 0,
                FF = (dr["FF"] != DBNull.Value) ? Convert.ToSingle(dr["FF"]) : 0,
                Sun = (dr["Sun"] != DBNull.Value) ? Convert.ToSingle(dr["Sun"]) : 0,
                Temp = (dr["Temp"] != DBNull.Value) ? Convert.ToSingle(dr["Temp"]) : 0,
                Class = (dr["Class"] != DBNull.Value) ? dr["Class"].ToString() : "",
                Employee = (dr["Employee"] != DBNull.Value) ? dr["Employee"].ToString() : "",
                LineTitle = (dr["LineTitle"] != DBNull.Value) ? dr["LineTitle"].ToString() : "",
                StationTitle = (dr["StationTitle"] != DBNull.Value) ? dr["StationTitle"].ToString() : ""
            };
        }
    }
}

Controller

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using fastJSON;
using MyRight.Common;
using MyRight.DAL;
using MyRight.Model;

namespace MyRight.Web.Controllers
{
    [MyAuthorize]
    public class AkIvController : Controller
    {
        private readonly string _conn;
        private readonly AkIvRepository _akIvRepository;
        private readonly UserOperateLogRepository _userOperateLogRepository;

        public AkIvController()
        {
            _conn = ConnHelper.GetConnConfig(System.Web.HttpContext.Current);

            _akIvRepository = new AkIvRepository(_conn);
            _userOperateLogRepository = new UserOperateLogRepository(_conn);
        }

        public PartialViewResult List()
        {
            try
            {
                ViewBag.MenuCode = Request["menucode"];//菜单代码
                ViewBag.MenuName = Request["menuname"];//菜单名称
            }
            catch { }

            return PartialView();
        }

        public string ListProcess()
        {
            string searchString = "";//查询条件
            searchString = "where BarCode like ‘%@param%‘ and (DateTime between ‘@begin‘ and ‘@end‘)";
            searchString = searchString.Replace("@param", Request["searchString"]);
            searchString = searchString.Replace("@begin", Request["begin"]);
            searchString = searchString.Replace("@end", Request["end"]);

            string orderString = "order by Id desc";//排序条件
            if (!string.IsNullOrEmpty(Request["sort"]) && !string.IsNullOrEmpty(Request["order"]))
            {
                orderString = "order by " + Request["sort"] + " " + Request["order"];
            }

            int pageindex = 0;//当前页
            int pagesize = 0;//页面大小
            if (!string.IsNullOrEmpty(Request["page"]) && !string.IsNullOrEmpty(Request["rows"]))
            {
                try
                {
                    pageindex = int.Parse(Request["page"]);
                    pagesize = int.Parse(Request["rows"]);
                }
                catch { }

                if (SqlInjection.GetString(Request["page"]) || SqlInjection.GetString(Request["rows"]))
                {
                    SaveUserLog("AkIv分页条件注入", Request["page"] + "   " + Request["rows"], true);
                    pageindex = 1;
                    pagesize = 20;
                }
            }

            //分页转换
            int startIndex = (pageindex - 1) * pagesize + 1;
            int endIndex = pageindex * pagesize;

            List<AkIv> pageResult = _akIvRepository.GetPageList(startIndex, endIndex, searchString, orderString);
            string pageJsonResult = JSON.Instance.ToJSON(pageResult, JSONConfig.GetJSONParameters());
            int count = _akIvRepository.GetCount(searchString);
            return "{\"total\": " + count + ",\"rows\":" + pageJsonResult + "}";
        }

        public PartialViewResult Add()
        {
            return PartialView();
        }

        public string AddProcess(AkIv akIv)
        {
            ResponseMessage responseMessage = new ResponseMessage();

            int result = _akIvRepository.Insert(akIv);
            if (result > 0)
            {
                responseMessage.Message = "添加成功!";
                responseMessage.Success = "true";
                SaveUserLog("AkIv添加", JSON.Instance.ToJSON(akIv, JSONConfig.GetJSONParameters()), true);
            }
            else
            {
                responseMessage.Message = "添加失败!";
                responseMessage.Success = "false";
                SaveUserLog("AkIv添加", JSON.Instance.ToJSON(akIv, JSONConfig.GetJSONParameters()), false);
            }
            return JSON.Instance.ToJSON(responseMessage, JSONConfig.GetJSONParameters());
        }

        public string DeleteProcess(string Id)
        {
            ResponseMessage responseMessage = new ResponseMessage();

            string deleteString = "";//删除条件
            if (Id.Length > 0)
            {
                Id = Id.Substring(1);
                deleteString = "where Id in (" + Id + ")";
            }

            if (string.IsNullOrEmpty(deleteString))
            {
                SaveUserLog("AkIv删除", "AkIv删除条件为空", false);

                responseMessage.Message = "删除失败!";
                responseMessage.Success = "false";
                return JSON.Instance.ToJSON(responseMessage, JSONConfig.GetJSONParameters());
            }

            int result = _akIvRepository.DeleteMulti(deleteString);
            if (result > 0)
            {
                responseMessage.Message = "删除成功!";
                responseMessage.Success = "true";
                SaveUserLog("AkIv删除", deleteString, true);
            }
            else
            {
                responseMessage.Message = "删除失败!";
                responseMessage.Success = "false";
                SaveUserLog("AkIv删除", deleteString, false);
            }
            return JSON.Instance.ToJSON(responseMessage, JSONConfig.GetJSONParameters());
        }

        public PartialViewResult Edit()
        {
            return PartialView();
        }

        public string EditProcess(AkIv akIv)
        {
            ResponseMessage responseMessage = new ResponseMessage();

            int result = _akIvRepository.Update(akIv);
            if (result > 0)
            {
                responseMessage.Message = "修改成功!";
                responseMessage.Success = "true";
                SaveUserLog("AkIv修改", JSON.Instance.ToJSON(akIv, JSONConfig.GetJSONParameters()), true);
            }
            else
            {
                responseMessage.Message = "修改失败!";
                responseMessage.Success = "false";
                SaveUserLog("AkIv修改", JSON.Instance.ToJSON(akIv, JSONConfig.GetJSONParameters()), false);
            }
            return JSON.Instance.ToJSON(responseMessage, JSONConfig.GetJSONParameters());
        }

        public string GetIvDataUseBarcode()
        {
            string barcode = Request["barcode"];
            AkIv akIv = _akIvRepository.GetSingleByBarcode(barcode);
            return JSON.Instance.ToJSON(akIv, JSONConfig.GetJSONParameters());
        }

        //导出
        public void Export()
        {
            string searchString = Request["searchString"];
            string begin = Request["begin"];
            string end = Request["end"];

            Response.Clear();
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", "IV.xlsx"));

            NPOI.XSSF.UserModel.XSSFWorkbook workbook = new NPOI.XSSF.UserModel.XSSFWorkbook();
            NPOI.SS.UserModel.ISheet sheet1 = workbook.CreateSheet("IV");

            //excel格式化
            NPOI.SS.UserModel.ICellStyle dateStyle = workbook.CreateCellStyle();
            dateStyle.DataFormat = workbook.CreateDataFormat().GetFormat("yyyy/m/d h:mm:ss");

            NPOI.SS.UserModel.ICellStyle numberStyle = workbook.CreateCellStyle();
            numberStyle.DataFormat = workbook.CreateDataFormat().GetFormat("0.00000");

            NPOI.SS.UserModel.ICellStyle textStyle = workbook.CreateCellStyle();
            textStyle.DataFormat = workbook.CreateDataFormat().GetFormat("@");

            //给sheet1添加第一行的头部标题
            NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
            row1.CreateCell(0).SetCellValue("条码");
            row1.CreateCell(1).SetCellValue("时间");
            row1.CreateCell(2).SetCellValue("Eff");
            row1.CreateCell(3).SetCellValue("Isc");
            row1.CreateCell(4).SetCellValue("Voc");
            row1.CreateCell(5).SetCellValue("Rs");
            row1.CreateCell(6).SetCellValue("Rsh");
            row1.CreateCell(7).SetCellValue("Pmax");
            row1.CreateCell(8).SetCellValue("Vpm");
            row1.CreateCell(9).SetCellValue("Ipm");
            row1.CreateCell(10).SetCellValue("FF");
            row1.CreateCell(11).SetCellValue("Sun");
            row1.CreateCell(12).SetCellValue("Temp");
            row1.CreateCell(13).SetCellValue("Class");
            row1.CreateCell(14).SetCellValue("人员");
            row1.CreateCell(15).SetCellValue("线别");
            row1.CreateCell(16).SetCellValue("工位");

            //将数据逐步写入sheet1各个行
            string strSql = "where BarCode like ‘%@param%‘ and (DateTime between ‘@begin‘ and ‘@end‘)";
            strSql = strSql.Replace("@param", searchString);
            strSql = strSql.Replace("@begin", begin);
            strSql = strSql.Replace("@end", end);

            List<AkIv> pageResult = _akIvRepository.GetPageList(0, 100000, strSql, "order by Id desc");
            for (int i = 0; i < pageResult.Count; i++)
            {
                NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);

                rowtemp.CreateCell(0).SetCellValue(pageResult[i].BarCode);
                rowtemp.CreateCell(1).SetCellValue(pageResult[i].DateTime);
                rowtemp.CreateCell(2).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Eff)));
                rowtemp.CreateCell(3).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Isc)));
                rowtemp.CreateCell(4).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Voc)));
                rowtemp.CreateCell(5).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Rs)));
                rowtemp.CreateCell(6).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Rsh)));
                rowtemp.CreateCell(7).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Pmax)));
                rowtemp.CreateCell(8).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Vpm)));
                rowtemp.CreateCell(9).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Ipm)));
                rowtemp.CreateCell(10).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].FF)));
                rowtemp.CreateCell(11).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Sun)));
                rowtemp.CreateCell(12).SetCellValue(Convert.ToDouble(string.Format("{0:0.00000}", pageResult[i].Temp)));
                rowtemp.CreateCell(13).SetCellValue(pageResult[i].Class);
                rowtemp.CreateCell(14).SetCellValue(pageResult[i].Employee);
                rowtemp.CreateCell(15).SetCellValue(pageResult[i].LineTitle);
                rowtemp.CreateCell(16).SetCellValue(pageResult[i].StationTitle);

                rowtemp.GetCell(0).CellStyle = textStyle;
                rowtemp.GetCell(1).CellStyle = dateStyle;
                rowtemp.GetCell(2).CellStyle = numberStyle;
                rowtemp.GetCell(3).CellStyle = numberStyle;
                rowtemp.GetCell(4).CellStyle = numberStyle;
                rowtemp.GetCell(5).CellStyle = numberStyle;
                rowtemp.GetCell(6).CellStyle = numberStyle;
                rowtemp.GetCell(7).CellStyle = numberStyle;
                rowtemp.GetCell(8).CellStyle = numberStyle;
                rowtemp.GetCell(9).CellStyle = numberStyle;
                rowtemp.GetCell(10).CellStyle = numberStyle;
                rowtemp.GetCell(11).CellStyle = numberStyle;
                rowtemp.GetCell(12).CellStyle = numberStyle;
                rowtemp.GetCell(13).CellStyle = textStyle;
                rowtemp.GetCell(14).CellStyle = textStyle;
                rowtemp.GetCell(15).CellStyle = textStyle;
                rowtemp.GetCell(16).CellStyle = textStyle;
            }
            //写入到客户端
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            workbook.Write(ms);
            Response.BinaryWrite(ms.ToArray());

            Response.Flush();
            Response.End();
        }

        private void SaveUserLog(string operateInfo, string description, bool ifSuccess)
        {
            User user = UserHelper.GetUser(System.Web.HttpContext.Current);
            UserOperateLog userOperateLog = new UserOperateLog()
            {
                UserName = user.UserName,
                UserIp = Request.UserHostAddress,
                OperateInfo = operateInfo,
                Description = description,
                IfSuccess = ifSuccess,
                OperateDate = DateTime.Now
            };
            _userOperateLogRepository.Insert(userOperateLog);
        }
    }
}

视图

<script type="text/javascript">
    $(function () {
        $.ajax({
            type: "POST",
            url: "Button/GetUserButton",
            data: { menucode: ‘@(ViewBag.MenuCode)‘ },
            success: function (data) {
                if (data.search("<nimei></nimei>") > 0) {
                    $.show_warning("提示", "无权限,请联系管理员!");
                    $(‘#tabs‘).tabs(‘close‘, ‘@(ViewBag.MenuName)‘);
                } else {
                    $("#akiv_toolbar").html(data);
                    //插入特殊按钮
                    var htm = _TEXT(function () {
                        /*
                        <td>
                            <span style="margin-left: 5px;">开始时间:</span>
                            <input class="easyui-datetimebox" id="akiv_begin" style="width:130px">
                        </td>
                        <td>
                            <span style="margin-left: 5px;">结束时间:</span>
                            <input class="easyui-datetimebox" id="akiv_end" style="width:130px">
                        </td>
                        <td flag="search">
                            <span style="margin-left: 5px;">条码:</span>
                            <span class="l-btn-left" style="margin-left: -10px;">
                               <input id="akiv_searchstring" style="width: 130px;text-transform: uppercase;">
                            </span>
                        </td>
                        */
                    });
                    //修改菜单
                    $("#akiv_toolbar td[flag=‘search‘]").replaceWith(htm);
                    //为菜单控件赋值
                    $("#akiv_begin").datetimebox({ value: ‘@Html.Raw(string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now.AddHours(-3)))‘, showSeconds: false });
                    $("#akiv_end").datetimebox({ value: ‘@Html.Raw(string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now.AddYears(1)))‘, showSeconds: false });
                    akiv_databind();
                }
            }
        });
    });

    function _TEXT(wrap) {
        return wrap.toString().match(/\/\*\s([\s\S]*)\s\*\//)[1];
    }

    function akiv_add() {
        $("<div></div>").dialog({
            id: "akiv_add_dialog",
            href: "AkIv/Add",
            title: "添加按钮",
            height: 400,
            width: 500,
            modal: true,
            buttons: [{
                id: "akiv_add_btn",
                text: ‘添 加‘,
                handler: function () {
                    $("#akiv_addform").form("submit", {
                        url: "AkIv/AddProcess",
                        onSubmit: function () {
                            $(‘#akiv_add_btn‘).linkbutton(‘disable‘);
                            if ($(this).form(‘validate‘)) {
                                return true;
                            }
                            else {
                                $(‘#akiv_add_btn‘).linkbutton(‘enable‘);
                                return false;
                            }
                        },
                        success: function (data) {
                            var result = eval(‘(‘ + data + ‘)‘);
                            if (result.Success) {
                                $("#akiv_add_dialog").dialog(‘destroy‘);
                                $.show_warning("提示", result.Message);
                                akiv_databind();
                            } else {
                                $(‘#akiv_add_btn‘).linkbutton(‘enable‘);
                                $.show_warning("提示", result.Message);
                            }
                        }
                    });
                }
            }],
            onClose: function () {
                $("#akiv_add_dialog").dialog(‘destroy‘);
            }
        });
    }

    function akiv_delete() {
        var rows = $("#akiv_dg").datagrid("getChecked");
        if (rows.length < 1) {
            $.show_warning("提示", "请先勾选要删除的记录");
            return;
        }
        $.messager.confirm(‘提示‘, ‘确定删除勾选的‘ + rows.length + ‘项?‘, function (rusult) {
            if (rusult) {
                var para = "";
                $.each(rows, function (i, row) {
                    para += ",‘" + row.Id + "‘";
                });
                $.ajax({
                    type: "POST",
                    url: "AkIv/DeleteProcess",
                    data: { "Id": para },
                    success: function (data) {
                        var result = eval(‘(‘ + data + ‘)‘);
                        if (result.Success) {
                            $.show_warning("提示", result.Message);
                            akiv_databind();
                        } else {
                            $.show_warning("提示", result.Message);
                        }
                    }
                });
            }
        });
    }

    function akiv_edit() {
        var rows = $("#akiv_dg").datagrid("getChecked");
        if (rows.length < 1) {
            $.show_warning("提示", "请先勾选要修改的记录");
            return;
        }
        if (rows.length > 1) {
            $.show_warning("提示", "不支持批量修改");
            return;
        }
        $("<div></div>").dialog({
            id: "akiv_edit_dialog",
            href: "AkIv/Edit",
            title: "修改按钮",
            height: 400,
            width: 500,
            modal: true,
            buttons: [{
                id: "akiv_edit_btn",
                text: ‘修 改‘,
                handler: function () {
                    $("#akiv_editform").form("submit", {
                        url: "AkIv/EditProcess",
                        onSubmit: function () {
                            $(‘#akiv_edit_btn‘).linkbutton(‘disable‘);
                            if ($(this).form(‘validate‘)) {
                                return true;
                            }
                            else {
                                $(‘#akiv_edit_btn‘).linkbutton(‘enable‘);
                                return false;
                            }
                        },
                        success: function (data) {
                            var result = eval(‘(‘ + data + ‘)‘);
                            if (result.Success) {
                                $("#akiv_edit_dialog").dialog(‘destroy‘);
                                $.show_warning("提示", result.Message);
                                akiv_databind();
                            } else {
                                $(‘#akiv_edit_btn‘).linkbutton(‘enable‘);
                                $.show_warning("提示", result.Message);
                            }
                        }
                    });
                }
            }],
            onLoad: function () {
                $("#akiv_editform").find(‘[name=Id]‘).val(rows[0].Id);
                $("#akiv_editform").find(‘[name=BarCode]‘).val(rows[0].BarCode);
                $("#akiv_editform").find(‘[name=DateTime]‘).datetimebox({ value: rows[0].DateTime, showSeconds: false });
                $("#akiv_editform").find(‘[name=Eff]‘).val(rows[0].Eff);
                $("#akiv_editform").find(‘[name=Isc]‘).val(rows[0].Isc);
                $("#akiv_editform").find(‘[name=Voc]‘).val(rows[0].Voc);
                $("#akiv_editform").find(‘[name=Rs]‘).val(rows[0].Rs);
                $("#akiv_editform").find(‘[name=Rsh]‘).val(rows[0].Rsh);
                $("#akiv_editform").find(‘[name=Pmax]‘).val(rows[0].Pmax);
                $("#akiv_editform").find(‘[name=Vpm]‘).val(rows[0].Vpm);
                $("#akiv_editform").find(‘[name=Ipm]‘).val(rows[0].Ipm);
                $("#akiv_editform").find(‘[name=FF]‘).val(rows[0].FF);
                $("#akiv_editform").find(‘[name=Sun]‘).val(rows[0].Sun);
                $("#akiv_editform").find(‘[name=Temp]‘).val(rows[0].Temp);
                $("#akiv_editform").find(‘[name=Class]‘).val(rows[0].Class);
                $("#akiv_editform").find(‘[name=Employee]‘).val(rows[0].Employee);
                $("#akiv_editform").find(‘[name=LineTitle]‘).val(rows[0].LineTitle);
                $("#akiv_editform").find(‘[name=StationTitle]‘).val(rows[0].StationTitle);
            },
            onClose: function () {
                $("#akiv_edit_dialog").dialog(‘destroy‘);  //销毁dialog对象
            }
        });
    }

    function akiv_databind() {
        var searchString = $(‘#akfqc_searchstring‘).val();
        var begin = $(‘#akiv_begin‘).datetimebox(‘getValue‘);
        var end = $(‘#akiv_end‘).datetimebox(‘getValue‘);

        $("#akiv_dg").datagrid({
            url: "AkIv/ListProcess",
            queryParams: { searchString: searchString, begin: begin, end: end },
            striped: true, rownumbers: true, pagination: true, pageSize: 20, singleSelect: true,
            idField: ‘Id‘,
            sortName: ‘Id‘,
            sortOrder: ‘desc‘,
            pageList: [20, 40, 60, 80, 100],
            columns: [
                [
                    { field: ‘ck‘, checkbox: true },
                    { field: ‘Id‘, title: ‘流水号‘, hidden: true },
                    { field: ‘BarCode‘, title: ‘条码‘, width: 150 },
                    { field: ‘DateTime‘, title: ‘时间‘, width: 150 },
                    { field: ‘Eff‘, title: ‘Eff‘, width: 100 },
                    { field: ‘Isc‘, title: ‘Isc‘, width: 100 },
                    { field: ‘Voc‘, title: ‘Voc‘, width: 100 },
                    { field: ‘Rs‘, title: ‘Rs‘, width: 100 },
                    { field: ‘Rsh‘, title: ‘Rsh‘, width: 100 },
                    { field: ‘Pmax‘, title: ‘Pmax‘, width: 100 },
                    { field: ‘Vpm‘, title: ‘Vpm‘, width: 100 },
                    { field: ‘Ipm‘, title: ‘Ipm ‘, width: 100 },
                    { field: ‘FF‘, title: ‘FF‘, width: 100 },
                    { field: ‘Sun‘, title: ‘Sun‘, width: 100 },
                    { field: ‘Temp‘, title: ‘Temp ‘, width: 100 },
                    { field: ‘Class‘, title: ‘Class‘, width: 100 },
                    { field: ‘Employee‘, title: ‘人员‘, width: 100 },
                    { field: ‘LineTitle‘, title: ‘线别‘, width: 100 },
                    { field: ‘StationTitle‘, title: ‘工位‘, width: 100 }
                ]
            ],
            toolbar: ‘#akiv_toolbar‘
        });
    }

    //导出
    function akiv_export() {
        var searchString = $(‘#akiv_searchstring‘).val();
        var begin = encodeURIComponent($(‘#akiv_begin‘).datetimebox(‘getValue‘));
        var end = encodeURIComponent($(‘#akiv_end‘).datetimebox(‘getValue‘));

        var href = "/AkIv/Export?searchString=" + searchString + "&begin=" + begin + "&end=" + end;
        $("#akiv_export_href").attr("href", href);
        var a = document.getElementById("akiv_export_href");
        akfqc_invokeClick(a);
    }
    function akfqc_invokeClick(element) {
        if (element.click)
            element.click(); //判断是否支持click() 事件
        else if (element.fireEvent)
            element.fireEvent(‘onclick‘); //触发click() 事件
        else if (document.createEvent) {
            var evt = document.createEvent("MouseEvents"); //创建click() 事件
            evt.initEvent("click", true, true); //初始化click() 事件
            element.dispatchEvent(evt); //分发click() 事件
        }
    }
</script>

<div id="akiv_layout" class="easyui-layout" data-options="fit:true,border:false">
    <div data-options="region:‘center‘,border:false">
        <table id="akiv_dg" data-options="fit:true,border:false"></table>
    </div>
</div>
<div id="akiv_toolbar" class="datagrid-toolbar">
</div>
<a id="akiv_export_href" href="" style="display: none;" target="_blank" />
时间: 2024-10-05 05:50:54

easyUI+mvc权限管理后台的相关文章

ASP.NET MVC+EF框架+EasyUI实现权限管理系列

http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也要感谢大家了,因这个 项目我已经上传了,得到了很多网友的评价,也有好多人发邮件给我说这个框架容易出现问题,不能访问,这也是支持我写这个系列的动力,我将这个项目写成一个 系列

ASP.NET MVC+EF框架+EasyUI实现权限管理

4.为什么使用MVC而不是用WebForm呢? (1)为什么使用MVC而不是用WebForm呢?这个是我临时想的,因为我就是想说明一下WebForm和MVC的优缺点,来可以使大家能够更好地理解 MVC和WebForm,而不像某些人说MVC会替代WebForm,我个人认为这个可能性很小,因为各有各的好处,看在哪里使用吧,下面我就简单介绍下 WebForm和MVC的优缺点. (2)WebForm介绍 1)优点 1):支持事件模型,取决于微软提供了丰富的服务器端组建,WebForm可以快速的搭建Web

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装 前言:今天经理买了一个诺基亚的Windows Phone 8系统,特感兴趣,所以在哪里看了很长时间,这篇文章就写的有点迟, 从这个Demo开始到现在我已经写了4篇博客了,终于可以看到页面的东

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程 前言:前面几篇博客我们基本已经介绍完了搭建整个项目和数据库访问层以及一些业务逻辑层的实现,当然了,我们的数据库访问层这样还是可以在进行封装的,但是我到这里就行了吧,项目也不大,不需要那么麻烦的,那么我们今天开始介绍我们需要介绍的内容,那就是我

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现 前言:通过前面的五篇博客我们已经对权限系统的后台架构进行了详细的说明,那么我再前面的博客中也说到了我们的后台架构还会再改的,我准备这段时间我们继续完善我们的后台

ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也要感谢大家了,因这个项目我已经上传了,得到了很多网友的评价,也有好多人发邮件给我说这个框架容易出现问题,不能访问,这也是支持我写这个系列的动力,我将这个项目写成一个系列,可能要很长时间吧,但是我肯定会一直坚持,如果我哪里写的不好欢迎大家指出我们共同学习,而且我理解的也不是很透彻,所以我想在写这样一遍

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 前言:这篇博客我们继续来实现我的权限系列,这个博客一段时间也没有写了,重点是我在想还写不写,最终我决定还是写下去,因为我们是为了学习,当别人提出意见的时候,我们可以参考和采纳,但是我们不一定非要采纳,上几篇博客大家都说用CodeFirst来实现,是啊,现在基本很少有人用我的这种方法来实现了,都是用CodeF

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这个权限系统的初步设计-框架搭建,首先我要说的是我们需要开发工具Visual Studio 2012或者10也行,其次是我们要有SQL Server数据库,如果是Visual Studio 2010的话,你还要安装MVC4的开发文件,这个是吗?我不记得了,谁可以回答我一下的,我一直用2012,都是集成

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现   (6):EF上下文实例管理 前言:上篇博客中我们重新对EF框架实现上下文进行了重新的操作,而且我们也建立了DbSession,使用CallContext