yzh
2022-05-13 6a3d1f8ab19830adde3a653f48f89fd7c88afbde
代理商功能优化
产品功能优化
增加产品分类功能
用户功能优化
27个文件已修改
660 ■■■■ 已修改文件
web/.vs/Web/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/UserDao.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/obj/Debug/Dao.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/obj/Debug/Dao.dll 补丁 | 查看 | 原始文档 | blame | 历史
web/Dao/obj/Debug/Dao.pdb 补丁 | 查看 | 原始文档 | blame | 历史
web/Lib/Dao.dll 补丁 | 查看 | 原始文档 | blame | 历史
web/Lib/Dao.pdb 补丁 | 查看 | 原始文档 | blame | 历史
web/Lib/Model.dll 补丁 | 查看 | 原始文档 | blame | 历史
web/Lib/Model.pdb 补丁 | 查看 | 原始文档 | blame | 历史
web/Model/Model/SysUser.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/Model/obj/Debug/Model.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
web/Model/obj/Debug/Model.dll 补丁 | 查看 | 原始文档 | blame | 历史
web/Model/obj/Debug/Model.pdb 补丁 | 查看 | 原始文档 | blame | 历史
web/UMCLib/obj/Debug/UMCLib.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Bin/Dao.dll 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Bin/Dao.pdb 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Bin/Model.dll 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Bin/Model.pdb 补丁 | 查看 | 原始文档 | blame | 历史
web/web/GwClient.ashx 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/GwClient.aspx 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/GwClient.aspx.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/GwProduct.ashx 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/GwProduct.aspx 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/GwProduct.aspx.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/Index.aspx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/SysUser.ashx 284 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/web/SysUser.aspx 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/.vs/Web/v16/.suo
Binary files differ
web/Dao/UserDao.cs
@@ -130,6 +130,7 @@
            e.UserID = oracleReaderWrapper.GetInt("USER_ID", 0);
            e.Account = oracleReaderWrapper.GetString("ACCOUNT", "");
            e.Password = oracleReaderWrapper.GetString("PASSWORD", "");
            e.UserName = oracleReaderWrapper.GetString("USER_NAME", "");
            e.ExpireTime = oracleReaderWrapper.GetDateTime("EXPIRE_TIME");
            e.CreateTime = oracleReaderWrapper.GetDateTime("CREATE_TIME");
            e.Remark = oracleReaderWrapper.GetString("REMARK", "");
@@ -141,6 +142,7 @@
            e.IsEncryption = oracleReaderWrapper.GetInt("ISENCRYPTION", 0);
            e.IsVerification = oracleReaderWrapper.GetInt("ISVERIFICATION", 0);
            e.ClientIp = oracleReaderWrapper.GetString("CLIENTIP", "");
            e.Status = oracleReaderWrapper.GetInt("STATUS", 0);
            return true;
        }
@@ -197,14 +199,42 @@
            return Convert.ToInt32(OracleHelper.ExecuteScalar("select COUNT(*) from SYS_USER WHERE ACCOUNT=:ACCOUNT", OracleHelper.Connection, new OracleParameter(":ACCOUNT", (object)account))) > 0;
        }
        public bool UserNameExists(string userName, int userId)//查询用户名称
        {
            //return Convert.ToInt32(OracleHelper.ExecuteScalar("select COUNT(*) from SYS_USER WHERE USER_NAME=:USER_NAME AND USER_ID!=:USER_ID", OracleHelper.Connection, new OracleParameter(":USER_NAME", (object)userName), new OracleParameter(":USER_ID", (object)userId))) > 0;
            using (OracleDataReader reader = OracleHelper.ExecuteReader("select * from SYS_USER WHERE USER_NAME=:USER_NAME ", OracleHelper.Connection, new OracleParameter(":USER_NAME", (object)userName) ))
            {
                while (((DbDataReader)reader).Read())
                {
                    SysUser e = new SysUser();
                    if (this.ReadInfo(reader, e))
                    {
                        if(e.UserID!= userId)
                        {
                            return true;
                        }
                    }
                }
            }
            return false;
        }
        public bool Update(SysUser o)//修改账号
        {
            return OracleHelper.ExecuteSql("update SYS_USER SET ACCOUNT=:ACCOUNT,PASSWORD=:PASSWORD,EXPIRE_TIME=:EXPIRE_TIME,REMARK=:REMARK,MOBILE=:MOBILE,EMAIL=:EMAIL,MOBILE_FLAG=:MOBILE_FLAG,EMAIL_FLAG=:EMAIL_FLAG,ISENCRYPTION=:ISENCRYPTION,ISVERIFICATION=:ISVERIFICATION,CLIENTIP=:CLIENTIP,CREATE_TIME=:CREATE_TIME WHERE USER_ID=:USER_ID", OracleHelper.Connection, new OracleParameter(":ACCOUNT", (object)o.Account), new OracleParameter(":PASSWORD", (object)o.Password), new OracleParameter(":EXPIRE_TIME", (object)o.ExpireTime), new OracleParameter(":REMARK", (object)o.Remark), new OracleParameter(":USER_ID", (object)o.UserID), new OracleParameter(":MOBILE", (object)o.Mobile), new OracleParameter(":EMAIL", (object)o.Email), new OracleParameter(":MOBILE_FLAG", (object)o.MobileFlag), new OracleParameter(":EMAIL_FLAG", (object)o.EmailFlag), new OracleParameter(":ISENCRYPTION", (object)o.IsEncryption), new OracleParameter(":ISVERIFICATION", (object)o.IsVerification), new OracleParameter(":CLIENTIP", (object)o.ClientIp), new OracleParameter(":CREATE_TIME", (object)o.CreateTime)) > 0;
            return OracleHelper.ExecuteSql("update SYS_USER SET ACCOUNT=:ACCOUNT,PASSWORD=:PASSWORD,USER_NAME=:USER_NAME,EXPIRE_TIME=:EXPIRE_TIME,REMARK=:REMARK,MOBILE=:MOBILE,EMAIL=:EMAIL,MOBILE_FLAG=:MOBILE_FLAG,EMAIL_FLAG=:EMAIL_FLAG,ISENCRYPTION=:ISENCRYPTION,ISVERIFICATION=:ISVERIFICATION,CLIENTIP=:CLIENTIP,CREATE_TIME=:CREATE_TIME WHERE USER_ID=:USER_ID", OracleHelper.Connection, new OracleParameter(":ACCOUNT", (object)o.Account), new OracleParameter(":PASSWORD", (object)o.Password), new OracleParameter(":USER_NAME", (object)o.UserName), new OracleParameter(":EXPIRE_TIME", (object)o.ExpireTime), new OracleParameter(":REMARK", (object)o.Remark), new OracleParameter(":USER_ID", (object)o.UserID), new OracleParameter(":MOBILE", (object)o.Mobile), new OracleParameter(":EMAIL", (object)o.Email), new OracleParameter(":MOBILE_FLAG", (object)o.MobileFlag), new OracleParameter(":EMAIL_FLAG", (object)o.EmailFlag), new OracleParameter(":ISENCRYPTION", (object)o.IsEncryption), new OracleParameter(":ISVERIFICATION", (object)o.IsVerification), new OracleParameter(":CLIENTIP", (object)o.ClientIp), new OracleParameter(":CREATE_TIME", (object)o.CreateTime) ) > 0;
        }
        //更新状态
        public bool UpdateStatus(SysUser o)//修改账号
        {
            return OracleHelper.ExecuteSql("update SYS_USER SET STATUS=:STATUS WHERE USER_ID=:USER_ID", OracleHelper.Connection, new OracleParameter(":USER_ID", (object)o.UserID), new OracleParameter(":STATUS", (object)o.Status)) > 0;
        }
        public bool Add(SysUser e)//添加账号
        {
            return OracleHelper.ExecuteSql("INSERT INTO SYS_USER(USER_ID,ACCOUNT,PASSWORD,EXPIRE_TIME,REMARK,MOBILE,EMAIL,MOBILE_FLAG,EMAIL_FLAG,ISENCRYPTION,ISVERIFICATION,CLIENTIP,CREATE_TIME) VALUES(SYS_USER_ID_SEQ.NextVal,:ACCOUNT,:PASSWORD,:EXPIRE_TIME,:REMARK,:MOBILE,:EMAIL,:MOBILE_FLAG,:EMAIL_FLAG,:ISENCRYPTION,:ISVERIFICATION,:CLIENTIP,:CREATE_TIME)", OracleHelper.Connection, new OracleParameter(":ACCOUNT", (object)e.Account), new OracleParameter(":PASSWORD", (object)e.Password), new OracleParameter(":EXPIRE_TIME", (object)e.ExpireTime), new OracleParameter(":REMARK", (object)e.Remark), new OracleParameter(":MOBILE", (object)e.Mobile), new OracleParameter(":EMAIL", (object)e.Email), new OracleParameter(":MOBILE_FLAG", (object)e.MobileFlag), new OracleParameter(":EMAIL_FLAG", (object)e.EmailFlag), new OracleParameter(":ISENCRYPTION", (object)e.IsEncryption), new OracleParameter(":ISVERIFICATION", (object)e.IsVerification), new OracleParameter(":CLIENTIP", (object)e.ClientIp), new OracleParameter(":CREATE_TIME", (object)e.CreateTime)) > 0;
            return OracleHelper.ExecuteSql("INSERT INTO SYS_USER(USER_ID,ACCOUNT,PASSWORD, USER_NAME, EXPIRE_TIME,REMARK,MOBILE,EMAIL,MOBILE_FLAG,EMAIL_FLAG,ISENCRYPTION,ISVERIFICATION,CLIENTIP,CREATE_TIME, STATUS) VALUES(SYS_USER_ID_SEQ.NextVal,:ACCOUNT,:PASSWORD, :USER_NAME,:EXPIRE_TIME,:REMARK,:MOBILE,:EMAIL,:MOBILE_FLAG,:EMAIL_FLAG,:ISENCRYPTION,:ISVERIFICATION,:CLIENTIP,:CREATE_TIME, :STATUS)", OracleHelper.Connection, new OracleParameter(":ACCOUNT", (object)e.Account), new OracleParameter(":PASSWORD", (object)e.Password), new OracleParameter(":USER_NAME", (object)e.UserName), new OracleParameter(":EXPIRE_TIME", (object)e.ExpireTime), new OracleParameter(":REMARK", (object)e.Remark), new OracleParameter(":MOBILE", (object)e.Mobile), new OracleParameter(":EMAIL", (object)e.Email), new OracleParameter(":MOBILE_FLAG", (object)e.MobileFlag), new OracleParameter(":EMAIL_FLAG", (object)e.EmailFlag), new OracleParameter(":ISENCRYPTION", (object)e.IsEncryption), new OracleParameter(":ISVERIFICATION", (object)e.IsVerification), new OracleParameter(":CLIENTIP", (object)e.ClientIp), new OracleParameter(":CREATE_TIME", (object)e.CreateTime), new OracleParameter(":STATUS", (object)e.Status)) > 0;
        }
        public bool UpdatePassword(int userID, string oldPassword, string newPassword)
web/Dao/obj/Debug/Dao.csproj.AssemblyReference.cache
Binary files differ
web/Dao/obj/Debug/Dao.dll
Binary files differ
web/Dao/obj/Debug/Dao.pdb
Binary files differ
web/Lib/Dao.dll
Binary files differ
web/Lib/Dao.pdb
Binary files differ
web/Lib/Model.dll
Binary files differ
web/Lib/Model.pdb
Binary files differ
web/Model/Model/SysUser.cs
@@ -14,6 +14,8 @@
        public string Password { get; set; }
        public string UserName { get; set; }
        public DateTime ExpireTime { get; set; }
        public DateTime CreateTime { get; set; }
@@ -36,6 +38,8 @@
        public string ClientIp { get; set; }
        public int Status { get; set; }
        public Dictionary<string, SysUserMenu> MenuIDList { get; set; }
        public bool HasRight(string code)
web/Model/obj/Debug/Model.csproj.AssemblyReference.cache
Binary files differ
web/Model/obj/Debug/Model.dll
Binary files differ
web/Model/obj/Debug/Model.pdb
Binary files differ
web/UMCLib/obj/Debug/UMCLib.csproj.AssemblyReference.cache
Binary files differ
web/web/Bin/Dao.dll
Binary files differ
web/web/Bin/Dao.pdb
Binary files differ
web/web/Bin/Model.dll
Binary files differ
web/web/Bin/Model.pdb
Binary files differ
web/web/GwClient.ashx
@@ -15,6 +15,10 @@
public class GwClientHandler : PageHandler<Model.SysUser>
{
    private UserDao _SysUserDao = new UserDao();
    private List<SysUser> _SysUserList;
    public override JsonPageResult ProcessRequestInternal(PageContext<Model.SysUser> context)
    {
        string action = context.GetString("action");
@@ -91,7 +95,9 @@
                    }
                    //edit:yangzh by 20220511
                    //str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Top_up_Amount_Total + "元</td><td>" + item.Agent + "</td><td>" + Certification_StatusResult + "</td>";
                    str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "元</td><td>" + item.Top_up_Amount_Total/1000 + "元</td><td>" + item.Agent + "</td><td>" + Certification_StatusResult + "</td>";
                    //str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "元</td><td>" + item.Top_up_Amount_Total/1000 + "元</td><td>" + item.Agent + "</td><td>" + Certification_StatusResult + "</td>";
                    str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "元</td><td>" + item.Top_up_Amount_Total/1000 + "元</td><td>" + SysUserName(string.IsNullOrEmpty(item.Agent)? 0: int.Parse(item.Agent) ) + "</td><td>" + Certification_StatusResult + "</td>";
                    str += @"<td>";
                    string loginStr = "http://" + serverIp + ":" + clientPort + "/Attachedlogin.aspx?action=Attachedlogin&account=" + item.Account + "&password=" + item.Password;
@@ -264,13 +270,26 @@
            throw new ArgumentException("联系人/联系电话,不能为空!");
        }
        string savePassword = "";
        if (!string.IsNullOrEmpty(clientID))
        {
            GwClient gwClient = this._Dao.Get(clientID);
            savePassword = (gwClient.Password == password ? gwClient.Password : DataHelper.MD5Hex(password) );
        }
        else
        {
            savePassword = DataHelper.MD5Hex(password);
        }
        var client = new Model.GwClient();
        client.Id = id;
        client.ClientID = clientID;
        client.Company = company;
        client.Password = password;
        //client.Password = password;
        client.Password = savePassword;
        client.ClientName = clientName;
        client.Address = address;
        client.Remark = remark;
@@ -313,6 +332,11 @@
        if (string.IsNullOrEmpty(password) || !System.Text.RegularExpressions.Regex.IsMatch(password, @"[a-zA-Z0-9]{4,10}"))
        {
            throw new ArgumentException("客户密码不能为空,且必须为4-10位英文或数字字符组合!");
        }
        if (string.IsNullOrEmpty(clientName) || string.IsNullOrEmpty(telephone))
        {
            throw new ArgumentException("联系人/联系电话,不能为空!");
        }
        //if (string.IsNullOrEmpty(clientName))
@@ -362,8 +386,14 @@
                    return new JsonPageResult(false, "上传图片处理异常:" + ex.Message);
                }
            }
            else
            {
                throw new ArgumentException("文件格式错误,请确认是否为jpg|jpeg|gif|png。");
            }
        }
        //密码加密
        password = DataHelper.MD5Hex(password);
        var client = new Model.GwClient();
        client.ClientID = clientID;
@@ -400,6 +430,39 @@
        return new JsonPageResult(true, "创建账户成功!");
    }
    //获取管理端账户列表
    private List<SysUser> SysUserList
    {
        get
        {
            if (this._SysUserList == null)
            {
                using (UserDao sysUserDao = new UserDao())
                {
                    int recordCount = 0;
                    int int1 = 999999999;
                    int int2 = 1;
                    this._SysUserList = sysUserDao.LoadInfoList(out recordCount, int1, int2);
                }
            }
            return this._SysUserList;
        }
    }
    //管理端账户名称
    private string SysUserName(int userId)
    {
        if (this.SysUserList == null)
            return string.Empty;
        SysUser sysUser = this._SysUserList.Find((Predicate<SysUser>)(bean => bean.UserID == userId));
        if (sysUser != null)
            return string.Format("{0}-{1}", (object)sysUser.UserID, (object)sysUser.UserName);
        return string.Empty;
    }
}
web/web/GwClient.aspx
@@ -56,7 +56,21 @@
                    $("#clientDialog .modal-title").text("创建客户账户");
                    $("#clientDialog input").attr("readonly", false);
                    $("#clientDialog input[name=action]").val("save");
                    //$("#clientDialog #id").val("");
                    $("#clientDialog #clientID").val("");
                    $("#clientDialog #company").val("");
                    $("#clientDialog #clientName").val("");
                    $("#clientDialog #agent").val("");
                    $("#clientDialog #address").val("");
                    $("#clientDialog #telephone").val("");
                    $("#clientDialog #remark").val("");
                    $("#clientDialog input[name=permissionData]").iCheck("uncheck");
                    $("#clientDialog").modal("show");
                    $("#password").val(randomString(8));
                });
                $(document).on("click", ".action-generate-password", function () {
@@ -238,7 +252,7 @@
                    <div class="modal-body">
                        <div class="form-group">
                            <label class="control-label  col-sm-2">
                                登录账户
                                登录账户 <span style="color:red">*</span>
                            </label>
                            <div class="col-sm-4">
                                <input type="text" name="clientID" id="clientID" value="" class="form-control" />
@@ -259,7 +273,7 @@
                        <div class="form-group">
                            <label class="control-label  col-sm-2">
                                登录密码
                                登录密码 <span style="color:red">*</span>
                            </label>
                            <div class="col-sm-4">
                                <input type="text" name="password" id="password" value="123456" class="form-control" />
@@ -270,14 +284,15 @@
                        </div>
                        <div class="form-group">
                            <label class="control-label col-sm-2">
                                联系人</label>
                                联系人 <span style="color:red">*</span>
                            </label>
                            <div class="col-sm-4">
                                <input type="text" name="clientName" id="clientName" value="" class="form-control" />
                            </div>
                        </div>
                        <div class="form-group ">
                            <label class="control-label col-sm-2">
                                联系电话
                                联系电话 <span style="color:red">*</span>
                            </label>
                            <div class="col-sm-4">
                                <input type="text" name="telephone" id="telephone" value="" class="form-control" />
@@ -291,6 +306,7 @@
                                <input type="text" name="address" id="address" value="" class="form-control" />
                            </div>
                        </div>
                        <!--
                        <div class="form-group">
                            <label class="control-label  col-sm-2">
                                归属业务员
@@ -299,22 +315,36 @@
                                <input type="text" name="agent" id="agent" value="" class="form-control" />
                            </div>
                        </div>
                        -->
                        <div class="form-group">
                            <label class="control-label  col-sm-2">
                                归属业务员
                            </label>
                            <div class="col-sm-4">
                                    <select name="agent" id="agent" class="form-control">
                                        <%=SysUserOptions(0)%>
                                    </select>
                            </div>
                        </div>
                        <!--
                        <div class="form-group">
                            <label class="control-label col-sm-2">营业执照</label>
                            <div class="col-sm-4">
                                <input type="file" name="txt_file" id="txt_file" class="file-loading" />
                            </div>
                        </div>
                        -->
                        <div class="form-group">
                            <label class="control-label  col-sm-2">
                                权限管理
                            </label>
                            <div class="col-sm-10">
                             <input type="checkbox" class="icheck-me" value="GwClientList.aspx" name="permissionData" />代理商管理(*是否支持创建下级代理)
                                <!--
                             <input type="checkbox" class="icheck-me" value="LgSmsDetailReport.aspx" name="permissionData" />查看状态报告
                             <input type="checkbox" class="icheck-me" value="1" name="permissionData" />发送权限
                             <input type="checkbox" class="icheck-me" value="2" name="permissionData" />查看数据权限
                                -->
                            </div>
                        </div>
                        <div class="form-group">
web/web/GwClient.aspx.cs
@@ -5,12 +5,59 @@
using System.Web;
using System.Web.Profile;
using System.Web.SessionState;
using Dao;
using System.Collections.Generic;
using System.Text;
public partial class _GwClient : PageBase<SysUser>, IRequiresSessionState
{
{
    protected List<SysUser> SysUserList;
    protected void Page_Load(object sender, EventArgs e)
    {
        //权限校验
        this.CheckRight("301", FailedOperation.ErrorMsgOnly);
        //获取启用的产品分类
        using (UserDao userDao = new UserDao())
        {
            int recordCount = 0;
            int int1 = 999999999;
            int int2 = 1;
            this.SysUserList = userDao.LoadInfoList(out recordCount, int1, int2);
        }
    }
    //获取产品分类信息
    public string SysUserOptions(int userId)
    {
        StringBuilder stringBuilder = new StringBuilder();
        if (this.SysUserList.Count == 0)
            return "<option value=''>无</option>";
        stringBuilder.AppendFormat("<option value=\"{0}\" >{1}</option>", (object)0, (object)"无");
        foreach (SysUser bean in this.SysUserList)
        {
            //停用的用户不再显示
            if (bean.Status == 0)
            {
                continue;
            }
            //过滤超级管理员
            if (bean.UserID == 1)
            {
                continue;
            }
            if (userId == bean.UserID)
                stringBuilder.AppendFormat("<option value=\"{0}\" selected>{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName);
            else
                stringBuilder.AppendFormat("<option value=\"{0}\">{0}-{1}</option>", (object)bean.UserID, (object)bean.UserName);
        }
        return stringBuilder.ToString();
    }
}
web/web/GwProduct.ashx
@@ -35,7 +35,9 @@
            case "add":
                return this.Add(context);       //添加
            case "list":
                return this.List(context);      //查询
                return this.List(context);      //产品查询
            case "productClassesList":
                return this.ProductClassesList(context);      //产品查询
            case "get":
                return this.Get(context);      //获取记录信息                    
            case "updateStatus":
@@ -68,6 +70,7 @@
            int num = 0;
            foreach (GwProduct bean in list)
            {
                ++num;
                //str1 = str1 + (object) "<tr><td>" +  "<img src=\"../static/images/productIcon/" + (object) bean.Icon + "\" >";
                if (bean.Classes == 1 && !string.IsNullOrEmpty(bean.Icon))
@@ -79,15 +82,9 @@
                    str1 += "<tr><td>" + (object)bean.Icon  + "</td>";
                }
                str1 = str1 + "<td>" + ProductToName(bean.ParentId) + "</td>";
                str1 += "<td>" + bean.Name + "</td>";
                str1 = string.Concat(new object[4]
                {
                         str1,
                          "<td>",
                         bean.Instructions,
                         "</td>"
                });
                str1 = str1 + "<td>" + (object)this.ClassesToName(bean.Classes) + "</td>";
                //str1 = str1 + "<td>" + (object)this.ClassesToName(bean.Classes) + "</td>";
                if (bean.RouterType == 1)
                {
                    str1 += "<td rowspan=\"1\"><div class=\"btn  btn-primary btn-xs\">点路由</div>";
@@ -102,16 +99,16 @@
                {
                    str1 += "<td rowspan=\"1\"></td>";
                }
                str1 = str1 + "<td>" + ProductToName(bean.ParentId) + "</td>";
                str1 = str1 + "<td>" + IsDefaultToName(bean.IsDefault) + "</td>";
                str1 = str1 + "<td>" + IsEnableToName(bean.IsEnable) + "</td>";
                str1 = string.Concat(new object[4]
                {
                         str1,
                         "<td>",
                         bean.Sort,
                         "</td>"
                });
                /**
            str1 = string.Concat(new object[4]
            {
                     str1,
                     "<td>",
                     bean.Sort,
                     "</td>"
            });**/
                str1 = string.Concat(new object[4]
                {
                        str1,
@@ -122,6 +119,13 @@
                str1 += string.Format("<td>{0}元/条</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000)));
                str1 = str1 + "<td>" + bean.CreateTime + "</td>";
                str1 = string.Concat(new object[4]
                {
                         str1,
                          "<td>",
                         bean.Instructions,
                         "</td>"
                });
                str1 += "<td  class=\"text-right\">";
                str1 = bean.IsEnable != 0 ? str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-is_enable=\"0\" class=\"action-update-status btn btn-primary btn-xs\"><i class=\"fa fa-toggle-off\"></i>&nbsp;停用</a> ", (object) bean.Id ) : str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-is_enable=\"1\" class=\"action-update-status btn  btn-default btn-xs\"><i class=\"fa fa-toggle-on\"/></i>&nbsp;启用</a> ", (object) bean.Id );
                str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-modal-edit btn  btn-success btn-xs\"><i class=\"fa fa-edit\"></i>&nbsp;编辑</a> ", (object) bean.Id);
@@ -131,7 +135,57 @@
            }
        }
        else
            str1 += "<tr><td colspan=\"13\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
            str1 += "<tr><td colspan=\"11\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
        return new JsonPageResult(true,  new
        {
            Table = str1.ToString(),
            TotalCount = recordCount
        });
    }
    //加载产品分类信息
    private JsonPageResult ProductClassesList(PageContext<SysUser> context)
    {
        //Console.WriteLine("List.............[" + context.GetInt("name") + "][" + context.GetInt("classes") + "]");
        int classes = context.GetInt("classes");
        string name = context.GetString("name");
        int recordCount = 0;
        int pageSize = context.GetInt("pageSize", 50);
        int pageIndex = context.GetInt("pageIndex", 1);
        List<GwProduct> list = _Dao.LoadInfoList(classes, name, pageSize, pageIndex, out recordCount);
        string str1 = "";
        if (list != null && list.Count > 0)
        {
            int num = 0;
            foreach (GwProduct bean in list)
            {
                ++num;
                str1 += "<tr>";
                str1 += "<td>" + bean.Name + "</td>";
                str1 +=  "<td>" + ProductToName(bean.ParentId) + "</td>";
                str1 = str1 + "<td>" + IsEnableToName(bean.IsEnable) + "</td>";
                str1 = str1 + "<td>" + bean.CreateTime + "</td>";
                str1 = str1 + "<td>" + bean.Remark + "</td>";
                str1 += "<td  class=\"text-right\">";
                str1 = bean.IsEnable != 0 ? str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-is_enable=\"0\" class=\"action-update-status btn btn-primary btn-xs\"><i class=\"fa fa-toggle-off\"></i>&nbsp;停用</a> ", (object) bean.Id ) : str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-is_enable=\"1\" class=\"action-update-status btn  btn-default btn-xs\"><i class=\"fa fa-toggle-on\"/></i>&nbsp;启用</a> ", (object) bean.Id );
                str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-modal-edit btn  btn-success btn-xs\"><i class=\"fa fa-edit\"></i>&nbsp;编辑</a> ", (object) bean.Id);
                str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-delete btn  btn-default btn-xs\"><i class=\"fa fa-trash\"></i>&nbsp;删除</a> ", (object) bean.Id);
                str1 += "</td>";
                str1 += "</tr>";
            }
        }
        else
            str1 += "<tr><td colspan=\"11\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
        return new JsonPageResult(true,  new
        {
web/web/GwProduct.aspx
@@ -12,7 +12,8 @@
        function loadPageList() {
            var name = $("#Name").val();
            var classes = $("#Classes").val();
            //var classes = $("#Classes").val();
            var classes = 1;
            $.ajax({
                url: "GwProduct.ashx",
                type: "POST",
@@ -31,16 +32,16 @@
        }
        $(document).on("click", ".action-modal-add", function() {
            $("#productDialog .modal-title").text("添加产品或产品分类");
            $("#productDialog .modal-title").text("添加产品");
            $("#productDialog #action").val("add");
            $("#productDialog #id").val("").attr("readonly", false);
            $("#productDialog #name").val("");
            $("#productDialog #icon").val("");
            $("#productDialog #instructions").val("");
            $("#productDialog #classes").val("");
            //$("#productDialog #classes").val("");
            $("#productDialog #parentId").val("");
            //$("#productDialog #path").val("");
            $("#productDialog #isDefault").val("");
            //$("#productDialog #isDefault").val("");
            $("#productDialog #isDnable").val(1);
            $("#productDialog #sort").val(1);
            $("#productDialog #routerType").val(1);
@@ -101,7 +102,7 @@
        $(document).on("click", ".action-modal-edit", function() {
            var id = $(this).data("id");
            $("#productDialog .modal-title").text("编辑产品或产品分类");
            $("#productDialog .modal-title").text("编辑产品");
            $("#productDialog #id").val(id).attr("readonly", true);
            $.get("gwProduct.ashx", { "action": "get", id: id }, function(r) {
@@ -198,7 +199,7 @@
    });
    </script>
 </asp:Content> 
<asp:Content runat="server" ID="Content2" ContentPlaceHolderID="title">产品或产品分类管理</asp:Content>
<asp:Content runat="server" ID="Content2" ContentPlaceHolderID="title">产品管理</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="content" runat="Server">
   
    <form name="queryForm" method="get" action="GwProduct.aspx" id="queryForm" class="form-inline"
@@ -210,6 +211,7 @@
                    <input type="text" name="Name" id="Name" class="form-control" />
                </div>
            </div>
            <!--
            <div class="form-group">
                <div class="input-group">
                    <select name="Classes" id="Classes" class="form-control">
@@ -219,6 +221,7 @@
                    </select>
                </div>
            </div>
            -->
            <div class="form-group">
                <div class="input-group">
                    <input type="button" value="查询" class="btn btn-primary action-btn-GwProductQuery" />&nbsp;&nbsp;&nbsp;
@@ -231,27 +234,31 @@
                <tr class="header">
                    <th>图标
                    </th>
                    <th>产品类别
                    </th>
                    <th>名称
                    </th>
                    <th>使用说明
                    </th>
                    <!--
                    <th>类别
                    </th>
                        -->
                    <th>通道
                    </th>
                    <th>父级产品分类ID
                    </th>
                    <th>是否默认
                    </th>
                    <th>是否启用
                    </th>
                    <!--
                    <th>排序
                    </th>
                    -->
                    <th>赠送条数
                    </th>
                    <th>参考单价
                    </th>
                    <th>创建时间
                    </th>
                    <th>使用说明
                    </th>
                    <th class="text-right">操作
                    </th>
@@ -279,7 +286,7 @@
                        <h4 class="modal-title">编辑产品资料</h4>
                    </div>
                    <div class="modal-body">
                        <div class="form-group">
                        <div class="form-group" style="display: none">
                            <label class="col-sm-2 control-label">
                                类别</label>
                            <div class="col-sm-4 ">
@@ -316,7 +323,8 @@
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label">
                                名称</label>
                                名称 <span style="color:red">*</span>
                            </label>
                            <div class="col-sm-4 ">
                                <input type="text" class="form-control" name="name" id="name" value="" />
                            </div>
@@ -336,7 +344,6 @@
                                <input type="text" class="form-control" name="path" id="path" value="" />
                            </div>
                        </div>
                        -->
                        <div class="form-group classes-span classes-span-1">
                            <label class="col-sm-2 control-label">
                                推广方式</label>
@@ -348,6 +355,8 @@
                            </div>
                            <span class="help-block m-b-none">个性化客户是指特殊推送给客户;系统默认是指系统默认可推送所有客户。</span>
                        </div>
                        -->
                        <input type="hidden" class="form-control" name="isDefault" id="isDefault" value="1" />
                        <div class="form-group">
                            <label class="col-sm-2 control-label">
                                是否启用</label>
web/web/GwProduct.aspx.cs
@@ -9,6 +9,10 @@
using System.Web.Profile;
using System.Web.SessionState;
/**
 * 产品管理
 *
 */
public partial class _GwProduct : PageBase<SysUser>, IRequiresSessionState
{
    protected List<GwProduct> GwProductList;
web/web/Index.aspx
@@ -171,6 +171,7 @@
                        </a>
                        <ul class="nav nav-second-level">
                            <!--<li><a href="pages/gwProduct/GwProduct.aspx" class="J_menuItem">产品列表</a> </li>-->
                            <li><a href="GwProductClasses.aspx" class="J_menuItem">产品分类</a> </li>
                            <li><a href="GwProduct.aspx" class="J_menuItem">产品列表</a> </li>
                        </ul>
                    </li>
web/web/SysUser.ashx
@@ -1,5 +1,5 @@
<%@ WebHandler Language="C#" Class="SysUserHandler" %>
using Common;
using Dao;
using Model;
@@ -10,146 +10,172 @@
public class SysUserHandler : PageHandler<SysUser>
{
  private UserDao _Dao = new UserDao();
    private UserDao _Dao = new UserDao();
  public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context)
  {
    string @string = context.GetString("action");
    switch (@string)
    public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context)
    {
      case "saveUser":
        return this.SaveUser(context);
      case "loadUserList":
        return this.LoadUserList(context);
      case "deleteUser":
        return this.DeleteUser(context);
      case "loadUserInfo":
        return this.LoadUserInfo(context);
      case "loadUserMenuList":
        return this.LoadUserMenuList(context);
      case "updatePermission":
        return this.UpdatePermission(context);
      default:
        throw new Exception("Invalid Action=" + @string);
        string @string = context.GetString("action");
        switch (@string)
        {
            case "saveUser":
                return this.SaveUser(context);
            case "loadUserList":
                return this.LoadUserList(context);
            case "deleteUser":
                return this.DeleteUser(context);
            case "loadUserInfo":
                return this.LoadUserInfo(context);
            case "loadUserMenuList":
                return this.LoadUserMenuList(context);
            case "updatePermission":
                return this.UpdatePermission(context);
            case "updateStatus":
                return this.UpdateStatus(context);
            default:
                throw new Exception("Invalid Action=" + @string);
        }
    }
  }
  private JsonPageResult UpdatePermission(PageContext<SysUser> context)
  {
    context.CheckRight("1042", FailedOperation.PromptOnly);
    string @string = context.GetString("menuIDArray");
    int @int = context.GetInt("userid");
    string[] menuIDArray = JsonConvert.DeserializeObject<string[]>(@string);
    if (menuIDArray == null)
      throw new ArgumentException("菜单数据异常!");
    if (@int == 0)
      throw new ArgumentException("USERID参数异常!");
    this._Dao.UpdatePermission(@int, menuIDArray);
    return new JsonPageResult(true, (object) "保存权限成功!");
  }
  private JsonPageResult LoadUserList(PageContext<SysUser> context)
  {
    context.CheckRight("104", FailedOperation.PromptOnly);
    int recordCount = 0;
    int int1 = context.GetInt("pageSize", 20);
    int int2 = context.GetInt("pageIndex", 1);
    List<SysUser> list = this._Dao.LoadInfoList(out recordCount, int1, int2);
    list.ForEach((Action<SysUser>) (u => u.Password = ""));
    return new JsonPageResult(true, (object) new
    private JsonPageResult UpdatePermission(PageContext<SysUser> context)
    {
      Table = list,
      TotalCount = recordCount
    });
  }
  private JsonPageResult DeleteUser(PageContext<SysUser> context)
  {
    context.CheckRight("1044", FailedOperation.PromptOnly);
    int @int = context.GetInt("userid");
    if (@int == 1)
      throw new ArgumentException("系统默认账户不能删除!");
    this._Dao.Delete(@int);
    return new JsonPageResult(true, (object) "删除用户成功!");
  }
  private JsonPageResult LoadUserInfo(PageContext<SysUser> context)
  {
    context.CheckRight("104", FailedOperation.PromptOnly);
    return new JsonPageResult(true, (object) this._Dao.GetUserInfo(context.GetInt("userid")));
  }
  private JsonPageResult LoadUserMenuList(PageContext<SysUser> context)
  {
    context.CheckRight("104", FailedOperation.PromptOnly);
    return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys);
  }
  private JsonPageResult SaveUser(PageContext<SysUser> context)
  {
    int int1 = context.GetInt("userid");
    string string1 = context.GetString("account");
    string string2 = context.GetString("password");
    string string3 = context.GetString("email");
    string string4 = context.GetString("mobile");
    int int2 = context.GetInt("emailFlag");
    int int3 = context.GetInt("mobileFlag");
    int num = 0;
    if (string.IsNullOrEmpty(string1) || !Regex.IsMatch(string1, "\\w{3,}"))
      throw new ArgumentException("账户至少3位可见字符,请重新输入!");
    if (string.IsNullOrEmpty(string2) || string2.Length < 6)
      throw new ArgumentException("账户密码至少6位,请重新输入!");
    if (context.GetBoolean("isVerification"))
      num = 1;
    string string5 = context.GetString("clientIp");
    if (num == 1)
    {
      if (string.IsNullOrEmpty(string5))
        throw new ArgumentException("IP地址不能为空,请输入!");
      if (string.IsNullOrEmpty(string4.ToString()) || !Regex.IsMatch(string4, "1\\d{10}"))
        throw new ArgumentException("手机号码无效,请重新输入!");
        context.CheckRight("1042", FailedOperation.PromptOnly);
        string @string = context.GetString("menuIDArray");
        int @int = context.GetInt("userid");
        string[] menuIDArray = JsonConvert.DeserializeObject<string[]>(@string);
        if (menuIDArray == null)
            throw new ArgumentException("菜单数据异常!");
        if (@int == 0)
            throw new ArgumentException("USERID参数异常!");
        this._Dao.UpdatePermission(@int, menuIDArray);
        return new JsonPageResult(true, (object) "保存权限成功!");
    }
    if (!string.IsNullOrEmpty(string4.ToString()) && !Regex.IsMatch(string4, "1\\d{10}"))
      throw new ArgumentException("手机号码无效,请重新输入!");
    if (!string.IsNullOrEmpty(string3) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+"))
      throw new ArgumentException("邮箱地址无效,请重新输入!");
    if ((int3 == 1 || int3 == 2 || (int3 == 3 || int3 == 4) || int3 == 5) && !Regex.IsMatch(string4, "1\\d{10}"))
      throw new ArgumentException("手机号码无效,请重新输入!");
    if ((int2 == 1 || int2 == 2 || (int2 == 3 || int2 == 4) || int2 == 5) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+"))
      throw new ArgumentException("邮箱地址无效,请重新输入!");
    SysUser sysUser = new SysUser();
    sysUser.UserID = int1;
    sysUser.Account = string1;
    sysUser.CreateTime = DateTime.Now;
    if (int1 > 0)
    private JsonPageResult LoadUserList(PageContext<SysUser> context)
    {
      SysUser userInfo = this._Dao.GetUserInfo(int1);
      sysUser.Password = userInfo.Password == string2 ? userInfo.Password : DataHelper.MD5Hex(string2);
      sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1;
        context.CheckRight("104", FailedOperation.PromptOnly);
        int recordCount = 0;
        int int1 = context.GetInt("pageSize", 20);
        int int2 = context.GetInt("pageIndex", 1);
        List<SysUser> list = this._Dao.LoadInfoList(out recordCount, int1, int2);
        list.ForEach((Action<SysUser>) (u => u.Password = ""));
        return new JsonPageResult(true, (object) new
        {
            Table = list,
            TotalCount = recordCount
        });
    }
    else
    private JsonPageResult DeleteUser(PageContext<SysUser> context)
    {
      sysUser.Password = DataHelper.MD5Hex(string2);
      sysUser.IsEncryption = 1;
        context.CheckRight("1044", FailedOperation.PromptOnly);
        int @int = context.GetInt("userid");
        if (@int == 1)
            throw new ArgumentException("系统默认账户不能删除!");
        this._Dao.Delete(@int);
        return new JsonPageResult(true, (object) "删除用户成功!");
    }
    sysUser.Email = string3;
    sysUser.Mobile = string4;
    sysUser.MobileFlag = int3;
    sysUser.EmailFlag = int2;
    sysUser.IsVerification = num;
    sysUser.ClientIp = string5;
    if (int1 > 0)
    private JsonPageResult LoadUserInfo(PageContext<SysUser> context)
    {
      context.CheckRight("1042", FailedOperation.PromptOnly);
      this._Dao.Update(sysUser);
        context.CheckRight("104", FailedOperation.PromptOnly);
        return new JsonPageResult(true, (object) this._Dao.GetUserInfo(context.GetInt("userid")));
    }
    else
    private JsonPageResult LoadUserMenuList(PageContext<SysUser> context)
    {
      context.CheckRight("1041", FailedOperation.PromptOnly);
      if (this._Dao.Exists(string1))
        throw new ArgumentException("账户已经存在,请重新输入!");
      this._Dao.Add(sysUser);
        context.CheckRight("104", FailedOperation.PromptOnly);
        return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys);
    }
    return new JsonPageResult(true, (object) "账户保存成功!");
  }
    private JsonPageResult SaveUser(PageContext<SysUser> context)
    {
        int int1 = context.GetInt("userid");
        string string1 = context.GetString("account");
        string string2 = context.GetString("password");
        string userName = context.GetString("userName");
        string string3 = context.GetString("email");
        string string4 = context.GetString("mobile");
        int int2 = context.GetInt("emailFlag");
        int int3 = context.GetInt("mobileFlag");
        int num = 0;
        if (string.IsNullOrEmpty(string1) || !Regex.IsMatch(string1, "\\w{3,}"))
            throw new ArgumentException("账户至少3位可见字符,请重新输入!");
        if (string.IsNullOrEmpty(string2) || string2.Length < 6)
            throw new ArgumentException("账户密码至少6位,请重新输入!");
        if (string.IsNullOrEmpty(userName))
            throw new ArgumentException("账号名称不能为空,请输入!");
        if (context.GetBoolean("isVerification"))
            num = 1;
        string string5 = context.GetString("clientIp");
        if (num == 1)
        {
            if (string.IsNullOrEmpty(string5))
                throw new ArgumentException("IP地址不能为空,请输入!");
            if (string.IsNullOrEmpty(string4.ToString()) || !Regex.IsMatch(string4, "1\\d{10}"))
                throw new ArgumentException("手机号码无效,请重新输入!");
        }
        if (!string.IsNullOrEmpty(string4.ToString()) && !Regex.IsMatch(string4, "1\\d{10}"))
            throw new ArgumentException("手机号码无效,请重新输入!");
        if (!string.IsNullOrEmpty(string3) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+"))
            throw new ArgumentException("邮箱地址无效,请重新输入!");
        if ((int3 == 1 || int3 == 2 || (int3 == 3 || int3 == 4) || int3 == 5) && !Regex.IsMatch(string4, "1\\d{10}"))
            throw new ArgumentException("手机号码无效,请重新输入!");
        if ((int2 == 1 || int2 == 2 || (int2 == 3 || int2 == 4) || int2 == 5) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+"))
            throw new ArgumentException("邮箱地址无效,请重新输入!");
        SysUser sysUser = new SysUser();
        sysUser.UserID = int1;
        sysUser.Account = string1;
        if (this._Dao.UserNameExists(userName, int1))
            throw new ArgumentException("账户名称已经存在,请重新输入!");
        sysUser.UserName = userName;
        sysUser.CreateTime = DateTime.Now;
        if (int1 > 0)
        {
            SysUser userInfo = this._Dao.GetUserInfo(int1);
            sysUser.Password = userInfo.Password == string2 ? userInfo.Password : DataHelper.MD5Hex(string2);
            sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1;
        }
        else
        {
            sysUser.Password = DataHelper.MD5Hex(string2);
            sysUser.IsEncryption = 1;
        }
        sysUser.Email = string3;
        sysUser.Mobile = string4;
        sysUser.MobileFlag = int3;
        sysUser.EmailFlag = int2;
        sysUser.IsVerification = num;
        sysUser.ClientIp = string5;
        if (int1 > 0)
        {
            context.CheckRight("1042", FailedOperation.PromptOnly);
            this._Dao.Update(sysUser);
        }
        else
        {
            context.CheckRight("1041", FailedOperation.PromptOnly);
            if (this._Dao.Exists(string1))
                throw new ArgumentException("账户已经存在,请重新输入!");
            this._Dao.Add(sysUser);
        }
        return new JsonPageResult(true, (object) "账户保存成功!");
    }
    //更新信息启用或停用
    private JsonPageResult UpdateStatus(PageContext<SysUser> context)
    {
        int userId = context.GetInt("userId");
        int status = context.GetInt("status");
        SysUser sysUser = new SysUser();
            sysUser.UserID = userId;
            sysUser.Status = status;
        this._Dao.UpdateStatus(sysUser);
        return new JsonPageResult(true, "更新信息状态成功!");
    }
}
web/web/SysUser.aspx
@@ -19,6 +19,7 @@
                        $.each(result.Message.Table, function(i) {
                            html.push("<tr>");
                            html.push("<td>" + this.Account + "</td>");
                            html.push("<td>" + this.UserName + "</td>");
                            html.push("<td>" + this.Mobile + "</td>");
                            html.push("<td>" + formatFlagIcon(this.MobileFlag) + "</td>");
@@ -27,7 +28,15 @@
                            html.push("<td>" + this.ClientIp + "</td>");
                            html.push("<td>" + (this.IsVerification == 1 ? "<span class='label label-primary'>开启</span>" : "<span class='label label-default'>关闭</span>") + "</td>");
                            html.push("<td>" + this.CreateTime + "</td>");
                            html.push("<td >");
                            html.push("<td>" + (this.Status == 1 ? "<span class='label label-primary'>启用</span>" : "<span class='label label-default'>停用</span>") + "</td>");
                            //html.push("<td>" + (this.Status == 1 ? "<a href='javascript:;' class='btn btn-primary btn-xs action-update-status' data-id=" + this.UserID + " data-status=0 ><i class='fa fa-toggle-off'></i>&nbsp;启用</a>" : "<a href='javascript:;' class='btn btn-default btn-xs action-update-status' data-id=" + this.UserID + " data-status=1 ><i class='fa fa-toggle-on'></i>停用</a>") + "</td>");
                            html.push("<td class='text-right' >");
                            if (this.Status == 0) {
                                html.push("<a href='javascript:;' class='btn btn-primary btn-xs action-update-status' data-id=" + this.UserID + " data-status=1 ><i class='fa fa-toggle-off'></i>启用</a>&nbsp;&nbsp;" );
                            }
                            else {
                                html.push("<a href='javascript:;' class='btn btn-default btn-xs action-update-status' data-id=" + this.UserID + " data-status=0 ><i class='fa fa-toggle-on'></i>停用</a>&nbsp;&nbsp;");
                            }
                            html.push("<a href='javascript:;' class='btn btn-success btn-xs action-edit' data-id='" + this.UserID + "'><i class='fa fa-edit'></i>&nbsp;编辑</a>&nbsp;&nbsp;");
                            html.push("<a href='javascript:;' data-id='" + this.UserID + "' class='action-permission  btn btn-info btn-xs'><i class='fa fa-edit'></i>&nbsp;权限</a>&nbsp;&nbsp;");
                            html.push("<a href='javascript:;' data-id='" + this.UserID + "' class='action-delete   btn btn-default btn-xs'><i class='fa fa-trash'></i>&nbsp;删除</a>");
@@ -35,7 +44,7 @@
                            html.push("</tr>");
                        });
                        if (result.Message.TotalCount == 0) {
                            html.push("<tr><td colspan=\"10\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>");
                            html.push("<tr><td colspan=\"11\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>");
                        }
                        $("#mainTable>tbody").html(html.join(""));
@@ -68,10 +77,26 @@
                });
            });
            $(document).on("click", ".action-update-status", function () {
                //data的属性参数不能含有大写字母。
                var userId = $(this).data("id");
                var status = $(this).data("status");
                mytek.confirm("是否更新信息状态?", "请谨慎操作!", function (b) {
                    if (b) {
                        $.post("sysuser.ashx", { "action": "updateStatus", userId: userId, status: status }, function (r) {
                            mytek.alert(r.Message, r.OK, function () {
                                loadUserList();
                            });
                        });
                    }
                });
            });
            $(document).on("click", ".action-save", function() {
                var userid = $("#userDialog").data("id");
                var account = $("#userDialog #account").val();
                var password = $("#userDialog #password").val();
                var userName = $("#userDialog #userName").val();
                var mobile = $("#userDialog #mobile").val();
                var email = $("#userDialog #email").val();
                var emailFlag = $("#userDialog #emailFlag").val();
@@ -80,7 +105,7 @@
                var clientIp = $("#userDialog #clientIp").val();
                $.post("sysuser.ashx", { action: "saveUser", userid: userid, account: account, password: password, mobile: mobile, email: email, mobileFlag: mobileFlag, emailFlag: emailFlag, isVerification: isVerification, clientIp: clientIp },
                $.post("sysuser.ashx", { action: "saveUser", userid: userid, account: account, password: password, userName:userName, mobile: mobile, email: email, mobileFlag: mobileFlag, emailFlag: emailFlag, isVerification: isVerification, clientIp: clientIp },
             function(result) {
                 mytek.alert(result.Message, result.OK, function() {
                     if (result.OK) {
@@ -96,6 +121,7 @@
                $("#userDialog").data("id", 0);
                $("#userDialog #account").val("");
                $("#userDialog #password").val("");
                $("#userDialog #userName").val("");
                $("#userDialog #mobile").val("");
                $("#userDialog #email").val("");
                $("#userDialog input[name=isVerification]").iCheck("uncheck");
@@ -169,6 +195,7 @@
                    $("#userDialog").data("id", id);
                    $("#userDialog #account").val(user.Account);
                    $("#userDialog #password").val(user.Password);
                    $("#userDialog #userName").val(user.UserName);
                    $("#userDialog #mobile").val(user.Mobile);
                    $("#userDialog #email").val(user.Email);
                    $("#userDialog #emailFlag").val(user.EmailFlag);
@@ -200,16 +227,23 @@
                <div class="modal-body">
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            账户</label>
                            账户 <span style="color:red">*</span></label>
                        <div class="col-sm-10">
                            <input type="text" name="account" id="account" value="" class="form-control" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            密码</label>
                            密码 <span style="color:red">*</span></label>
                        <div class="col-sm-10">
                            <input type="password" name="password" id="password" value="" class="form-control" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-2 control-label">
                            账户名称 <span style="color:red">*</span></label>
                        <div class="col-sm-10">
                            <input type="text" name="userName" id="userName" value="" class="form-control" />
                        </div>
                    </div>
                    <div class="form-group">
@@ -304,6 +338,9 @@
                        账号
                    </th>
                    <th>
                        用户名称
                    </th>
                    <th>
                        手机
                    </th>
                    <th>
@@ -324,7 +361,10 @@
                    <th>
                        创建时间
                    </th>
                    <th style="width: 200px;">
                    <th>
                        状态
                    </th>
                    <th style="width: 240px;">
                        操作
                    </th>
                </tr>