From f63d8ead25bdb3c32dacca817a059bd30390e9bc Mon Sep 17 00:00:00 2001 From: yzh <snbbt@21cn.com> Date: 星期三, 15 六月 2022 22:20:07 +0800 Subject: [PATCH] 1.系统账户数据库优化: 修改“账户类型”的数据类型为VARCHAR2(1024),多个角色时以半角“,”分隔。 加密盐。 密码加密优化;账户登录优化;角色权限管理(作废用户权限); 2.字典类型管理(定义:用户角色) 3.字典数据管理(初始化用户角色数据) 3.角色权限管理 4.系统账户管理,账户类型对应用户角色(可多选)。 --- web/web/SysDictData.aspx.cs | 2 web/Model/Model/SysDictData.cs | 2 web/web/Bin/Common.dll | 0 web/web/GwMoRoute.aspx.cs | 2 web/Model/Model/SysRoleMenu.cs | 13 web/Model/Model.csproj | 1 web/web/Bin/Common.pdb | 0 web/web/GwDm.ashx | 2 web/Model/Model/SysUser.cs | 3 web/web/GwClient.aspx.cs | 29 web/web/GwStatisRefund.aspx.cs | 2 web/web/SysUser.aspx.cs | 48 + web/Dao/SysRoleMenuDao.cs | 242 +++++++++ web/Lib/Dao.dll | 0 web/Dao/SysDictDataDao.cs | 10 web/web/GwClient.ashx | 2 web/web/SysRoleMenu.aspx.cs | 83 +++ web/web/GwClient.aspx | 4 web/Lib/Dao.pdb | 0 web/web/Bin/Dao.dll | 0 web/web/GwStatisV3.ashx | 2 web/web/GwStatisProfit.aspx.cs | 2 web/web/SysRoleMenu.aspx | 351 ++++++++++++++ web/web/gwspupdate.aspx.cs | 2 web/Dao/Dao.csproj | 1 web/web/SysDictData.aspx | 4 web/web/GwOrderCreate.aspx.cs | 2 web/Lib/Model.dll | 0 web/web/GwOrder.ashx | 2 web/web/SysDictData.ashx | 52 + web/web/Bin/Dao.pdb | 0 web/web/GwProductClasses.aspx | 285 +++++++++++ web/web/SysDictType.aspx.cs | 2 web/Lib/Common.dll | 0 web/web/ExportDocument.aspx.cs | 2 web/Lib/Model.pdb | 0 web/web/GwSp.ashx | 2 web/Dao/GwClientDao.cs | 34 web/web/Index.aspx | 1 web/Lib/Common.pdb | 0 web/web/GwSm.ashx | 2 web/web/SysUser.aspx | 47 + web/web/Bin/Model.pdb | 0 web/Dao/UserDao.cs | 98 +++ web/Dao/GwDiverterDao.cs | 38 web/web/GwStatis.aspx.cs | 2 web/web/SysUser.ashx | 36 + web/web/Bin/Model.dll | 0 web/web/GwStatisV3.aspx.cs | 2 web/Common/DataConverter.cs | 80 +++ 50 files changed, 1,399 insertions(+), 95 deletions(-) diff --git a/web/Common/DataConverter.cs b/web/Common/DataConverter.cs index 5b9bf15..652c45d 100644 --- a/web/Common/DataConverter.cs +++ b/web/Common/DataConverter.cs @@ -1,8 +1,10 @@ 锘縩amespace Common { using System; + using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text.RegularExpressions; + using System.Linq; public class DataConverter { @@ -196,6 +198,84 @@ return random; } + //瀛楃涓茶浆鏁扮粍 + public static object[] stringToArray(string str) + { + object[] array = str.Split(','); + return array; + } + + //鏁扮粍杞瓧绗︿覆 + public static string arrayToString(object[] array) + { + if (array == null) + return ""; + string str = string.Join(",", array); + return str; + } + + //鏁扮粍杞崲List锛歴tring[] str ={ "str","string","abc"}杞� List<string> + public static List<object> arrayToList(object[] array) + { + List<object> list = new List<object>(array); + + return list; + } + + //List杞崲鏁扮粍锛歀ist<string>杞埌string[] + public static object[] listToArray(List<object> list) + { + object[] array = list.ToArray(); + + return array; + } + + //瀛楃涓茶浆List + public static List<object> stringToList(string str) + { + if (string.IsNullOrEmpty(str)) + return null; + + List<object> list = new List<object>(); + //瀛楃涓茶浆鏁扮粍锛屽啀鏁扮粍鍚堝苟 + list.AddRange(str.Split(',')); + + return list; + } + + //鏁扮粍鍘婚噸锛岀Щ闄ゆ暟缁勪腑閲嶅鏁版嵁 + public static string[] DelRepeatData(string[] array) + { + return array.GroupBy(p => p).Select(p => p.Key).ToArray(); + } + + //妫�鏌ユ暟缁勬牸寮忓瓧绗︿覆涓槸鍚﹀寘鍚煇鍏冪礌 + public static bool checkStrForArrayStr(object str, string arrayStr ) + { + return stringToArray(arrayStr).Contains(str); + } + + //妫�鏌ユ暟缁勪腑鏄惁鍖呭惈鏌愬厓绱� + public static bool checkStrForArray(object str, object[] array) + { + return array.Contains(str); + } + + //鏍规嵁鏁扮粍瀛楃涓茶浆鎹㈠瓧鍏� + public Dictionary<string, object> arrayStrToDict(object userId, string arrayStr) + { + Dictionary<string, object> dictionary = new Dictionary<string, object>(); + if (string.IsNullOrEmpty(arrayStr)) + return dictionary; + + List<object> list = DataConverter.stringToList(arrayStr); + for (int i = 0; i < list.Count; i++) + { + dictionary[userId.ToString()] = list[i]; + } + return dictionary; + } + } } diff --git a/web/Dao/Dao.csproj b/web/Dao/Dao.csproj index 86360a6..861f64e 100644 --- a/web/Dao/Dao.csproj +++ b/web/Dao/Dao.csproj @@ -80,6 +80,7 @@ <Compile Include="GwMoRouteDao.cs" /> <Compile Include="GwOrderAuditDao.cs" /> <Compile Include="GwOrderDao.cs" /> + <Compile Include="SysRoleMenuDao.cs" /> <Compile Include="SysDictDataDao.cs" /> <Compile Include="SysDictTypeDao.cs" /> <Compile Include="GwProductDao.cs" /> diff --git a/web/Dao/GwClientDao.cs b/web/Dao/GwClientDao.cs index c1d1699..a8de674 100644 --- a/web/Dao/GwClientDao.cs +++ b/web/Dao/GwClientDao.cs @@ -596,8 +596,8 @@ list = new List<KeyValuePair<string, OracleParameter[]>>(); list.Add(new KeyValuePair<string, OracleParameter[]>(key2, oracleParameterArray2)); - OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); } + OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); //鏇存柊涓�у垎閰嶅鎴烽泦闀垮害涓�0鏃� @@ -612,18 +612,18 @@ list = new List<KeyValuePair<string, OracleParameter[]>>(); list.Add(new KeyValuePair<string, OracleParameter[]>(key3, oracleParameterArray2)); - OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); } + OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); } /** * 鍑芥暟鎻忚堪锛� 鏍规嵁绯荤粺鐢ㄦ埛鑾峰彇鏈夋潈闄愬鎴� * userId: 鐢ㄦ埛ID - * userType: 鐢ㄦ埛绫诲瀷锛�1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬 + * userType: 鐢ㄦ埛绫诲瀷锛屽涓椂浠モ��,鈥濆垎闅旓細1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-瀹㈡埛缁忕悊;4-瀹㈡湇浜哄憳;5-璐㈠姟浜哄憳 * return: SQL瀛楃涓� * */ - public string GetClientPermissions(int userId, int userType, string alias) + public string GetClientPermissions(int userId, string userType, string alias) { if (!string.IsNullOrEmpty(alias)) { @@ -631,17 +631,18 @@ } string sqlStr = ""; - //涓氬姟鍛樺拰鍏朵粬 - if(userType==2 || userType == 99) + //涓氬姟鍛� + if(DataConverter.checkStrForArrayStr(2, userType)) { sqlStr += " AND " + alias + "CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' ) ) "; } - //涓氬姟涓荤 - else if (userType == 3) + //瀹㈡埛缁忕悊 + else if (DataConverter.checkStrForArrayStr(3, userType) ) { sqlStr += " AND " + alias + "CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' or CUSTOMER_MANAGER='" + userId + "' ) ) "; } - else + //绠$悊鍛� + else if (DataConverter.checkStrForArrayStr(1, userType)) { //sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) "; } @@ -652,10 +653,10 @@ /** * 鍑芥暟鎻忚堪锛� 鏍规嵁绯荤粺鐢ㄦ埛鑾峰彇鏈夋潈闄愬鎴疯处鍙� * userId: 鐢ㄦ埛ID - * userType: 鐢ㄦ埛绫诲瀷锛�1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬 + * userType: 鐢ㄦ埛绫诲瀷锛屽涓椂浠モ��,鈥濆垎闅旓細1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-瀹㈡埛缁忕悊;4-瀹㈡湇浜哄憳;5-璐㈠姟浜哄憳 * return: SQL瀛楃涓� * */ - public string GetSpPermissions(int userId, int userType, string alias) + public string GetSpPermissions(int userId, string userType, string alias) { if (!string.IsNullOrEmpty(alias)) { @@ -663,17 +664,18 @@ } string sqlStr = ""; - //涓氬姟鍛樺拰鍏朵粬 - if (userType == 2 || userType == 99) + //涓氬姟鍛� + if (DataConverter.checkStrForArrayStr(2, userType)) { sqlStr += " AND " + alias + "SP_ID IN (SELECT SP_ID from GW_SP where DEL_FLAG = 0 and CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' ) ) ) "; } - //涓氬姟涓荤 - else if (userType == 3) + //瀹㈡埛缁忕悊 + else if (DataConverter.checkStrForArrayStr(3, userType)) { sqlStr += " AND " + alias + "SP_ID IN (SELECT SP_ID from GW_SP where DEL_FLAG = 0 and CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' or CUSTOMER_MANAGER='" + userId + "' ) ) ) "; } - else + //绠$悊鍛� + else if (DataConverter.checkStrForArrayStr(1, userType)) { //sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) "; } diff --git a/web/Dao/GwDiverterDao.cs b/web/Dao/GwDiverterDao.cs index f0e3b31..a1862b0 100644 --- a/web/Dao/GwDiverterDao.cs +++ b/web/Dao/GwDiverterDao.cs @@ -153,25 +153,25 @@ foreach (GwDiverterItem gwDiverterItem in items) { OracleParameter[] oracleParameterArray2 = new OracleParameter[17] - { - new OracleParameter(":DIVERTER_ID", (object) diverter.DiverterID), - new OracleParameter(":CM_OP_ID", (object) gwDiverterItem.CMOPID), - new OracleParameter(":CU_OP_ID", (object) gwDiverterItem.CUOPID), - new OracleParameter(":CT_OP_ID", (object) gwDiverterItem.CTOPID), - new OracleParameter(":CM_EXT_NO", (object) gwDiverterItem.CMExtNo), - new OracleParameter(":CU_EXT_NO", (object) gwDiverterItem.CUExtNo), - new OracleParameter(":CT_EXT_NO", (object) gwDiverterItem.CTExtNo), - new OracleParameter(":CM_EXT_PARAMS", (object) gwDiverterItem.CMExtParams), - new OracleParameter(":CU_EXT_PARAMS", (object) gwDiverterItem.CUExtParams), - new OracleParameter(":CT_EXT_PARAMS", (object) gwDiverterItem.CTExtParams), - new OracleParameter(":DMODE", (object) gwDiverterItem.Mode), - new OracleParameter(":SM_MIN_LENGTH", (object) gwDiverterItem.SmMinLength), - new OracleParameter(":SM_MAX_LENGTH", (object) gwDiverterItem.SmMaxLength), - new OracleParameter(":SEGMENTS", (object) gwDiverterItem.Segments), - new OracleParameter(":KEYWORDS", (object) gwDiverterItem.Keywords), - new OracleParameter(":PROVINCE", (object) gwDiverterItem.Province), - new OracleParameter(":EXTNO_MODE", (object) gwDiverterItem.ExtNoMode) - }; + { + new OracleParameter(":DIVERTER_ID", (object) diverter.DiverterID), + new OracleParameter(":CM_OP_ID", (object) gwDiverterItem.CMOPID), + new OracleParameter(":CU_OP_ID", (object) gwDiverterItem.CUOPID), + new OracleParameter(":CT_OP_ID", (object) gwDiverterItem.CTOPID), + new OracleParameter(":CM_EXT_NO", (object) gwDiverterItem.CMExtNo), + new OracleParameter(":CU_EXT_NO", (object) gwDiverterItem.CUExtNo), + new OracleParameter(":CT_EXT_NO", (object) gwDiverterItem.CTExtNo), + new OracleParameter(":CM_EXT_PARAMS", (object) gwDiverterItem.CMExtParams), + new OracleParameter(":CU_EXT_PARAMS", (object) gwDiverterItem.CUExtParams), + new OracleParameter(":CT_EXT_PARAMS", (object) gwDiverterItem.CTExtParams), + new OracleParameter(":DMODE", (object) gwDiverterItem.Mode), + new OracleParameter(":SM_MIN_LENGTH", (object) gwDiverterItem.SmMinLength), + new OracleParameter(":SM_MAX_LENGTH", (object) gwDiverterItem.SmMaxLength), + new OracleParameter(":SEGMENTS", (object) gwDiverterItem.Segments), + new OracleParameter(":KEYWORDS", (object) gwDiverterItem.Keywords), + new OracleParameter(":PROVINCE", (object) gwDiverterItem.Province), + new OracleParameter(":EXTNO_MODE", (object) gwDiverterItem.ExtNoMode) + }; list.Add(new KeyValuePair<string, OracleParameter[]>(key2, oracleParameterArray2)); } OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); diff --git a/web/Dao/SysDictDataDao.cs b/web/Dao/SysDictDataDao.cs index 343d34f..0451a85 100644 --- a/web/Dao/SysDictDataDao.cs +++ b/web/Dao/SysDictDataDao.cs @@ -100,6 +100,15 @@ builder.Append(" and DICT_TYPE = '" + bean.DictType + "'"); } + if (bean.ParanSource == -1) + { + builder.Append(" AND (PARAN_SOURCE != " + bean.ParanSource + " OR PARAN_SOURCE IS NULL) "); + } + else + { + builder.Append(" AND PARAN_SOURCE = " + bean.ParanSource + " "); + } + if (bean.Status == -1) { builder.Append(" AND (STATUS != " + bean.Status + " OR STATUS IS NULL) "); @@ -279,6 +288,7 @@ o.DictLabel = oracleReaderWrapper.GetString("DICT_LABEL", ""); o.DictType = oracleReaderWrapper.GetString("DICT_TYPE", ""); o.DictSort = oracleReaderWrapper.GetInt("DICT_SORT", 1); + o.ParanSource = oracleReaderWrapper.GetInt("PARAN_SOURCE", 1); o.DelFlag = oracleReaderWrapper.GetInt("DEL_FLAG", 0); o.Status = oracleReaderWrapper.GetInt("STATUS", 0); o.CreateBy = oracleReaderWrapper.GetString("CREATE_BY", ""); diff --git a/web/Dao/SysRoleMenuDao.cs b/web/Dao/SysRoleMenuDao.cs new file mode 100644 index 0000000..670f473 --- /dev/null +++ b/web/Dao/SysRoleMenuDao.cs @@ -0,0 +1,242 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Model; +using Common; +using Oracle.DataAccess.Client; +using System.Data.Common; + +namespace Dao +{ + /// <summary> + /// 瑙掕壊鑿滃崟鏉冮檺鎿嶄綔 + /// </summary> + public class SysRoleMenuDao : IDisposable + { + public void Dispose() + { + } + + private static SysRoleMenuDao _instance; + public static SysRoleMenuDao Instance + { + get { + if (_instance == null) + { + _instance = new SysRoleMenuDao(); + } + return _instance; + } + } + + + public List<SysRoleMenu> LoadInfoList(string roleId, int menuId, int pageSize, int PageIndex, out int recordcount) + { + + List<SysRoleMenu> list = new List<SysRoleMenu>(); + recordcount = 0; + try + { + StringBuilder builder = new StringBuilder(); + builder.Append("from SYS_ROLE_MENU where 1=1 "); + if (!string.IsNullOrEmpty(roleId)) + { + builder.Append(" and ROLE_ID = '" + roleId + "'"); + } + + if (menuId == -1) + { + builder.Append(" AND (MENU_ID != " + menuId + " OR MENU_ID IS NULL) "); + } + else + { + builder.Append(" AND MENU_ID = " + menuId + " "); + } + using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count " + builder.ToString(), OracleHelper.Connection)) + { + while (reader.Read()) + { + recordcount = this.ReadCount(reader); + } + } + using (OracleDataReader reader2 = OracleHelper.ExecuteReader(PubConstant.doOracleSql(PageIndex, pageSize, recordcount, "select * " + builder.ToString()).ToString() + " order by DICT_TYPE, DICT_SORT ", OracleHelper.Connection )) + { + while (reader2.Read()) + { + SysRoleMenu o = new SysRoleMenu(); + if (this.ReadInfo(reader2, o)) + { + list.Add(o); + } + } + } + } + catch (Exception exception) + { + LogHelper.Error(exception); + return list; + } + return list; + + } + + //鏍规嵁鏉′欢鑾峰彇鏁版嵁鍒楄〃 + public List<SysRoleMenu> getAllList(SysRoleMenu bean) + { + + List<SysRoleMenu> list = new List<SysRoleMenu>(); + try + { + StringBuilder builder = new StringBuilder(); + builder.Append("from SYS_ROLE_MENU where 1=1 "); + if (!string.IsNullOrEmpty(bean.RoleId)) + { + builder.Append(" and ROLE_ID = '" + bean.RoleId + "'"); + } + + if (bean.MenuId == -1) + { + builder.Append(" AND (MENU_ID != " + bean.MenuId + " OR MENU_ID IS NULL) "); + } + else + { + builder.Append(" AND MENU_ID = " + bean.MenuId + " "); + } + + using (OracleDataReader reader = OracleHelper.ExecuteReader("select * " + builder.ToString() + " ", OracleHelper.Connection)) + { + while (reader.Read()) + { + SysRoleMenu o = new SysRoleMenu(); + if (this.ReadInfo(reader, o)) + { + list.Add(o); + } + } + } + } + catch (Exception exception) + { + LogHelper.Error(exception); + return list; + } + return list; + + } + + //娣诲姞淇℃伅 + public bool Add(SysRoleMenu o) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append("INSERT INTO SYS_ROLE_MENU ( ROLE_ID, MENU_ID ) "); + stringBuilder.Append(" VALUES (:ROLE_ID, :MENU_ID ) "); + + string sql = stringBuilder.ToString(); + + return OracleHelper.ExecuteSql(sql, + OracleHelper.Connection, + new OracleParameter(":ROLE_ID", (object)o.RoleId), + new OracleParameter(":MENU_ID", (object)o.MenuId) + ) > 0; + } + + //鍒犻櫎 + public bool Delete(SysRoleMenu o) + { + return OracleHelper.ExecuteSql("delete from SYS_ROLE_MENU where ROLE_ID=:ROLE_ID AND MENU_ID=:MENU_ID", OracleHelper.Connection, new OracleParameter(":ROLE_ID", (object)o.RoleId), new OracleParameter(":MENU_ID", (object)o.MenuId)) > 0; + + } + + //鑾峰彇淇℃伅 + public SysRoleMenu Get(string roleId, int menuId) + { + SysRoleMenu o = new SysRoleMenu(); + using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("select * from SYS_ROLE_MENU where ROLE_ID=:ROLE_ID AND MENU_ID=:MENU_ID"), OracleHelper.Connection, new OracleParameter(":ROLE_ID", (object)roleId), new OracleParameter(":MENU_ID", (object)menuId) ) ) + { + if (((DbDataReader)reader).Read()) + { + this.ReadInfo(reader, o); + return o; + } + } + return o; + } + + //鑾峰彇瑙掕壊鏉冮檺鍒楄〃 + public Dictionary<string, SysMenu> LoadRoleMenuList(string roleId) + { + StringBuilder builder = new StringBuilder(); + builder.Append("SELECT sm.* FROM SYS_MENU sm "); + builder.Append(" LEFT JOIN SYS_ROLE_MENU srm ON srm.MENU_ID = sm.MENU_ID "); + builder.Append(" WHERE srm.ROLE_ID=:ROLE_ID "); + + Dictionary<string, SysMenu> dictionary = new Dictionary<string, SysMenu>(); + using (OracleDataReader reader = OracleHelper.ExecuteReader(builder.ToString(), OracleHelper.Connection, new OracleParameter(":ROLE_ID", (object)roleId))) + { + while (reader != null && ((DbDataReader)reader).Read()) + { + OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); + string menuID = oracleReaderWrapper.GetString("MENU_ID", ""); + string menuName = oracleReaderWrapper.GetString("MENU_NAME", ""); + string remark = oracleReaderWrapper.GetString("REMARK", ""); + string parentID = oracleReaderWrapper.GetString("PARENT_ID", ""); + int menuLV = oracleReaderWrapper.GetInt("MENU_LV", 0); + SysMenu sysMenu = new SysMenu(); + sysMenu.MenuID = menuID; + sysMenu.MenuName = menuName; + sysMenu.Remark = remark; + sysMenu.ParentID = parentID; + sysMenu.MenuLV = menuLV; + + dictionary[menuID] = sysMenu; + } + } + return dictionary; + } + + //淇敼瑙掕壊鏉冮檺 + public void UpdatePermission(string roleId, string[] menuIDArray) + { + List<KeyValuePair<string, OracleParameter[]>> list = new List<KeyValuePair<string, OracleParameter[]>>(); + string key1 = " DELETE FROM SYS_ROLE_MENU WHERE ROLE_ID=:ROLE_ID "; + OracleParameter[] oracleParameterArray1 = new OracleParameter[1] + { + new OracleParameter(":ROLE_ID", (object) roleId) + }; + list.Add(new KeyValuePair<string, OracleParameter[]>(key1, oracleParameterArray1)); + OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); + if (menuIDArray == null || menuIDArray.Length <= 0) + return; + string key2 = "INSERT INTO SYS_ROLE_MENU(ROLE_ID, MENU_ID) VALUES(:ROLE_ID,:MENU_ID)"; + foreach (string menuId in menuIDArray) + { + OracleParameter[] oracleParameterArray2 = new OracleParameter[2] + { + new OracleParameter(":ROLE_ID", (object) roleId), + new OracleParameter(":MENU_ID", (object) menuId) + }; + list.Add(new KeyValuePair<string, OracleParameter[]>(key2, oracleParameterArray2)); + } + OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); + } + + //缁熻璁板綍鏁� + private int ReadCount(OracleDataReader reader) + { + OracleReaderWrapper wrapper = new OracleReaderWrapper(reader); + return wrapper.GetInt("count", 0); + } + + //鏁版嵁灏佽 + private bool ReadInfo(OracleDataReader reader, SysRoleMenu o) + { + OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); + o.RoleId = oracleReaderWrapper.GetString("ROLE_ID", ""); + o.MenuId = oracleReaderWrapper.GetInt("MENU_ID", 1); + return true; + } + + } + +} diff --git a/web/Dao/UserDao.cs b/web/Dao/UserDao.cs index e339782..8ae5992 100644 --- a/web/Dao/UserDao.cs +++ b/web/Dao/UserDao.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Configuration; using System.Data.Common; +using System.Text; namespace Dao { @@ -23,7 +24,9 @@ if (!((DbDataReader)reader).Read() || !this.ReadInfo(reader, user)) return false; } - user.MenuIDList = this.LoadUserMenuList(user.UserID); + //浣滃簾鐢ㄦ埛鏉冮檺锛屾敼浣跨敤瑙掕壊鏉冮檺 + //user.MenuIDList = this.LoadUserMenuList(user.UserID); + user.MenuIDList = this.LoadUserRoleMenuList(user.UserID); return true; } @@ -48,6 +51,7 @@ return list; } + //edit:yangzh by 20220615 宸蹭綔搴燂紙宸蹭娇鐢ㄧ敤鎴疯鑹插叧鑱旀潈闄�--LoadUserRoleMenuList(int userID) 锛� public Dictionary<string, SysUserMenu> LoadUserMenuList(int userID) { Dictionary<string, SysUserMenu> dictionary = new Dictionary<string, SysUserMenu>(); @@ -64,6 +68,66 @@ return dictionary; } + public Dictionary<string, SysUserMenu> LoadUserRoleMenuList(int userID) + { + StringBuilder stringBuilder = new StringBuilder(); + + Dictionary<string, SysUserMenu> dictionary = new Dictionary<string, SysUserMenu>(); + string userType = GetUserRoleByUserId(userID); + if (!string.IsNullOrEmpty(userType)) + { + List<object> list = DataConverter.stringToList(userType); + if (list.Count > 0) + { + stringBuilder.Append(" select sm.* from sys_menu sm "); + stringBuilder.Append(" left join ( "); + stringBuilder.Append(" select distinct * from ( "); + stringBuilder.Append(" select * from sys_role_menu where role_id = " + list[0] + " "); + + for (int i = 1; i < list.Count; i++) + { + stringBuilder.Append(" union (select * from sys_role_menu where role_id = " + list[i] + ") "); + + } + stringBuilder.Append(" ) bb "); + stringBuilder.Append(" ) cc on cc.menu_id = sm.menu_id "); + stringBuilder.Append(" where cc.menu_id is not null "); + using (OracleDataReader reader = OracleHelper.ExecuteReader(stringBuilder.ToString(), OracleHelper.Connection)) + { + while (reader != null && ((DbDataReader)reader).Read()) + { + /** + OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); + string menuID = oracleReaderWrapper.GetString("MENU_ID", ""); + string menuName = oracleReaderWrapper.GetString("MENU_NAME", ""); + string remark = oracleReaderWrapper.GetString("REMARK", ""); + string parentID = oracleReaderWrapper.GetString("PARENT_ID", ""); + int menuLV = oracleReaderWrapper.GetInt("MENU_LV", 0); + SysMenu sysMenu = new SysMenu(); + sysMenu.MenuID = menuID; + sysMenu.MenuName = menuName; + sysMenu.Remark = remark; + sysMenu.ParentID = parentID; + sysMenu.MenuLV = menuLV; + + dictionary[menuID] = sysMenu; + **/ + + OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader); + string string1 = oracleReaderWrapper.GetString("MENU_ID", ""); + //string string2 = oracleReaderWrapper.GetString("MENU_DATA", ""); + string string2 = ""; + + dictionary[string1] = new SysUserMenu(string1, string2); + + } + } + } + + } + return dictionary; + } + public List<SysMenu> LoadSysMenuList() { List<SysMenu> list = new List<SysMenu>(); @@ -75,7 +139,7 @@ return list; } -//鏂板姞鐧婚檰鏃ュ織 + //鏂板姞鐧婚檰鏃ュ織 public List<SysMenu> LoadSysMenuIDList(int menuid, int menulv) { List<SysMenu> list = new List<SysMenu>(); @@ -132,7 +196,7 @@ e.Password = oracleReaderWrapper.GetString("PASSWORD", ""); e.Salt = oracleReaderWrapper.GetString("SALT", ""); e.UserName = oracleReaderWrapper.GetString("USER_NAME", ""); - e.UserType = oracleReaderWrapper.GetInt("USER_TYPE", 1); + e.UserType = oracleReaderWrapper.GetString("USER_TYPE", ""); e.ExpireTime = oracleReaderWrapper.GetDateTime("EXPIRE_TIME"); e.CreateTime = oracleReaderWrapper.GetDateTime("CREATE_TIME"); e.Remark = oracleReaderWrapper.GetString("REMARK", ""); @@ -167,8 +231,22 @@ if (reader != null && ((DbDataReader)reader).Read()) this.ReadInfo(reader, e); } - e.MenuIDList = this.LoadUserMenuList(userID); + //浣滃簾鐢ㄦ埛鏉冮檺锛屾敼浣跨敤瑙掕壊鏉冮檺 + //e.MenuIDList = this.LoadUserMenuList(userID); + e.MenuIDList = this.LoadUserRoleMenuList(userID); return e; + } + + //鏍规嵁璐︽埛ID鑾峰彇鐢ㄦ埛瑙掕壊闆� + public string GetUserRoleByUserId(int userID) + { + SysUser e = new SysUser(); + using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT * FROM SYS_USER WHERE USER_ID=:USER_ID", OracleHelper.Connection, new OracleParameter("USER_ID", (object)userID))) + { + if (reader != null && ((DbDataReader)reader).Read()) + this.ReadInfo(reader, e); + } + return e.UserType; } public SysUser GetUser(string account) @@ -266,14 +344,14 @@ foreach (string str in menuIDArray) { OracleParameter[] oracleParameterArray2 = new OracleParameter[3] - { - new OracleParameter(":USER_ID", (object) userid), - new OracleParameter(":MENU_ID", (object) str), - new OracleParameter(":MENU_DATA", (object) "") - }; + { + new OracleParameter(":USER_ID", (object) userid), + new OracleParameter(":MENU_ID", (object) str), + new OracleParameter(":MENU_DATA", (object) "") + }; list.Add(new KeyValuePair<string, OracleParameter[]>(key2, oracleParameterArray2)); - OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); } + OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection); } private int ReadCount(OracleDataReader reader) diff --git a/web/Lib/Common.dll b/web/Lib/Common.dll index 19116cd..f246c47 100644 --- a/web/Lib/Common.dll +++ b/web/Lib/Common.dll Binary files differ diff --git a/web/Lib/Common.pdb b/web/Lib/Common.pdb index a96091a..5690ec3 100644 --- a/web/Lib/Common.pdb +++ b/web/Lib/Common.pdb Binary files differ diff --git a/web/Lib/Dao.dll b/web/Lib/Dao.dll index 69e8ae3..19eb874 100644 --- a/web/Lib/Dao.dll +++ b/web/Lib/Dao.dll Binary files differ diff --git a/web/Lib/Dao.pdb b/web/Lib/Dao.pdb index 8f45c1e..2be4741 100644 --- a/web/Lib/Dao.pdb +++ b/web/Lib/Dao.pdb Binary files differ diff --git a/web/Lib/Model.dll b/web/Lib/Model.dll index 141ef2b..2ea70b8 100644 --- a/web/Lib/Model.dll +++ b/web/Lib/Model.dll Binary files differ diff --git a/web/Lib/Model.pdb b/web/Lib/Model.pdb index 432eea9..ddc6ae1 100644 --- a/web/Lib/Model.pdb +++ b/web/Lib/Model.pdb Binary files differ diff --git a/web/Model/Model.csproj b/web/Model/Model.csproj index 4692f68..f7cf775 100644 --- a/web/Model/Model.csproj +++ b/web/Model/Model.csproj @@ -70,6 +70,7 @@ <Compile Include="Model\GwOpGroupItem.cs" /> <Compile Include="Model\GwOrderAudit.cs" /> <Compile Include="Model\SysDictData.cs" /> + <Compile Include="Model\SysRoleMenu.cs" /> <Compile Include="Model\SysDictType.cs" /> <Compile Include="Model\SysFlowNode.cs" /> <Compile Include="Model\SysFlow.cs" /> diff --git a/web/Model/Model/SysDictData.cs b/web/Model/Model/SysDictData.cs index ffbc34b..ff742f6 100644 --- a/web/Model/Model/SysDictData.cs +++ b/web/Model/Model/SysDictData.cs @@ -16,6 +16,8 @@ public int DictSort { get; set; } //瀛楀吀鎺掑簭 + public int ParanSource { get; set; } //鏁版嵁鏉ユ簮锛�0-绯荤粺鍐呯疆锛�1-鐢ㄦ埛娣诲姞 + public int DelFlag { get; set; } //鐘舵�侊細0-鍋滅敤锛�1-姝e父 public int Status { get; set; } //鐘舵�侊細0-鍋滅敤锛�1-姝e父 diff --git a/web/Model/Model/SysRoleMenu.cs b/web/Model/Model/SysRoleMenu.cs new file mode 100644 index 0000000..7697877 --- /dev/null +++ b/web/Model/Model/SysRoleMenu.cs @@ -0,0 +1,13 @@ +锘� +using System; + +namespace Model +{ + //瑙掕壊鑿滃崟鏉冮檺琛� + public class SysRoleMenu + { + public string RoleId { get; set; } //瑙掕壊ID + + public int MenuId { get; set; } //鑿滃崟ID + } +} diff --git a/web/Model/Model/SysUser.cs b/web/Model/Model/SysUser.cs index a09d921..9058685 100644 --- a/web/Model/Model/SysUser.cs +++ b/web/Model/Model/SysUser.cs @@ -42,7 +42,8 @@ public int Status { get; set; } - public int UserType { get; set; } //鐢ㄦ埛绫诲瀷:1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬 + //public int UserType { get; set; } //鐢ㄦ埛绫诲瀷:1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬 + public string UserType { get; set; } //鍏宠仈瀛楀吀鏁版嵁琛ㄧ殑绫诲瀷涓猴細USER_ROLE銆傚涓鑹叉椂浠ュ崐瑙掆��,鈥濆垎闅斻�� public Dictionary<string, SysUserMenu> MenuIDList { get; set; } diff --git a/web/web/Bin/Common.dll b/web/web/Bin/Common.dll index 19116cd..f246c47 100644 --- a/web/web/Bin/Common.dll +++ b/web/web/Bin/Common.dll Binary files differ diff --git a/web/web/Bin/Common.pdb b/web/web/Bin/Common.pdb index a96091a..5690ec3 100644 --- a/web/web/Bin/Common.pdb +++ b/web/web/Bin/Common.pdb Binary files differ diff --git a/web/web/Bin/Dao.dll b/web/web/Bin/Dao.dll index 69e8ae3..19eb874 100644 --- a/web/web/Bin/Dao.dll +++ b/web/web/Bin/Dao.dll Binary files differ diff --git a/web/web/Bin/Dao.pdb b/web/web/Bin/Dao.pdb index 8f45c1e..2be4741 100644 --- a/web/web/Bin/Dao.pdb +++ b/web/web/Bin/Dao.pdb Binary files differ diff --git a/web/web/Bin/Model.dll b/web/web/Bin/Model.dll index 141ef2b..2ea70b8 100644 --- a/web/web/Bin/Model.dll +++ b/web/web/Bin/Model.dll Binary files differ diff --git a/web/web/Bin/Model.pdb b/web/web/Bin/Model.pdb index 432eea9..ddc6ae1 100644 --- a/web/web/Bin/Model.pdb +++ b/web/web/Bin/Model.pdb Binary files differ diff --git a/web/web/ExportDocument.aspx.cs b/web/web/ExportDocument.aspx.cs index 6fea544..213dc99 100644 --- a/web/web/ExportDocument.aspx.cs +++ b/web/web/ExportDocument.aspx.cs @@ -12,7 +12,7 @@ { private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; protected void Page_Load(object sender, EventArgs e) diff --git a/web/web/GwClient.ashx b/web/web/GwClient.ashx index 98c3fe2..ccb85a6 100644 --- a/web/web/GwClient.ashx +++ b/web/web/GwClient.ashx @@ -22,7 +22,7 @@ private List<SysUser> _SysUserList; private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; private string initPwd = ConfigurationManager.AppSettings["initPwd"]; diff --git a/web/web/GwClient.aspx b/web/web/GwClient.aspx index 53dafeb..987c26f 100644 --- a/web/web/GwClient.aspx +++ b/web/web/GwClient.aspx @@ -1061,8 +1061,8 @@ <div class="modal-footer"> <button class="btn-default btn" data-dismiss="modal" aria-hidden="true"> 鍙栨秷</button> - <button class="btn btn-primary action-updateProduct"> - 淇濆瓨</button> + <a class="btn btn-primary action-updateProduct"> + 淇濆瓨</a> </div> </div> </div> diff --git a/web/web/GwClient.aspx.cs b/web/web/GwClient.aspx.cs index 2726e1c..a1f8810 100644 --- a/web/web/GwClient.aspx.cs +++ b/web/web/GwClient.aspx.cs @@ -9,6 +9,7 @@ using System.Collections.Generic; using System.Text; using System.Configuration; +using System.Linq; public partial class _GwClient : PageBase<SysUser>, IRequiresSessionState { @@ -67,8 +68,8 @@ { continue; } - //杩囨护鐢ㄦ埛绫诲瀷 1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬 - if (bean.UserType == 6 || bean.UserType == 99) + //杩囨护鐢ㄦ埛绫诲瀷 1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-瀹㈡埛缁忕悊;4-瀹㈡湇浜哄憳;5-璐㈠姟浜哄憳 + if (!checkStrForArrayStr(1, bean.UserType) && !checkStrForArrayStr(2, bean.UserType) ) { continue; } @@ -95,8 +96,8 @@ { continue; } - //杩囨护鐢ㄦ埛绫诲瀷 1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬 - if (bean.UserType == 2) + //杩囨护鐢ㄦ埛绫诲瀷 1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-瀹㈡埛缁忕悊;4-瀹㈡湇浜哄憳;5-璐㈠姟浜哄憳 + if (!checkStrForArrayStr(1, bean.UserType) && !checkStrForArrayStr(3, bean.UserType)) { continue; } @@ -123,8 +124,8 @@ { continue; } - //杩囨护鐢ㄦ埛绫诲瀷 1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬 - if (bean.UserType != 1 && bean.UserType != 5 ) + //杩囨护鐢ㄦ埛绫诲瀷 1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-瀹㈡埛缁忕悊;4-瀹㈡湇浜哄憳;5-璐㈠姟浜哄憳 + if (!checkStrForArrayStr(1, bean.UserType) && !checkStrForArrayStr(4, bean.UserType)) { continue; } @@ -151,8 +152,8 @@ { continue; } - //杩囨护鐢ㄦ埛绫诲瀷 1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-涓氬姟涓荤;4-涓氬姟鎬荤洃;5-瀹㈡湇浜哄憳;6-璐㈠姟浜哄憳;99-鍏朵粬 - if (bean.UserType != 1 && bean.UserType != 6) + //杩囨护鐢ㄦ埛绫诲瀷 1-绠$悊鍛�;2-涓氬姟鍛�--鍏ㄥ憳;3-瀹㈡埛缁忕悊;4-瀹㈡湇浜哄憳;5-璐㈠姟浜哄憳 + if (!checkStrForArrayStr(1, bean.UserType) && !checkStrForArrayStr(5, bean.UserType)) { continue; } @@ -270,5 +271,17 @@ } } + //妫�鏌ユ暟缁勬牸寮忓瓧绗︿覆涓槸鍚﹀寘鍚煇鍏冪礌 + public static bool checkStrForArrayStr(object str, string arrayStr) + { + return stringToArray(arrayStr).Contains(str); + } + + //瀛楃涓茶浆鏁扮粍 + public static object[] stringToArray(string str) + { + object[] array = str.Split(','); + return array; + } } diff --git a/web/web/GwDm.ashx b/web/web/GwDm.ashx index 1cc00c3..674a588 100644 --- a/web/web/GwDm.ashx +++ b/web/web/GwDm.ashx @@ -9,7 +9,7 @@ public class GwDm : PageHandler<SysUser> { private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; public override JsonPageResult ProcessRequestInternal(PageContext<Model.SysUser> context) diff --git a/web/web/GwMoRoute.aspx.cs b/web/web/GwMoRoute.aspx.cs index 8fdc48a..4ce4f95 100644 --- a/web/web/GwMoRoute.aspx.cs +++ b/web/web/GwMoRoute.aspx.cs @@ -14,7 +14,7 @@ private List<GwOp> OpList; private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; public GwSp GwSp { get; protected set; } diff --git a/web/web/GwOrder.ashx b/web/web/GwOrder.ashx index 7500c6c..434b392 100644 --- a/web/web/GwOrder.ashx +++ b/web/web/GwOrder.ashx @@ -25,7 +25,7 @@ //private List<GwProduct> _ProductClassList; //浜у搧鍒嗙被 private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context) diff --git a/web/web/GwOrderCreate.aspx.cs b/web/web/GwOrderCreate.aspx.cs index dca0ab9..80fe7bb 100644 --- a/web/web/GwOrderCreate.aspx.cs +++ b/web/web/GwOrderCreate.aspx.cs @@ -24,7 +24,7 @@ public int _controlFlag = 0; private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; protected void Page_Load(object sender, EventArgs e) diff --git a/web/web/GwProductClasses.aspx b/web/web/GwProductClasses.aspx new file mode 100644 index 0000000..fb4cb18 --- /dev/null +++ b/web/web/GwProductClasses.aspx @@ -0,0 +1,285 @@ +锘�<%@ Page Language="C#" masterpagefile="~/Main.master" AutoEventWireup="true" CodeFile="GwProductClasses.aspx.cs" Inherits="_GwProductClasses" %> +<asp:Content runat="server" ID="Content1" ContentPlaceHolderID="head"> + <script type="text/javascript" language="javascript"> + $(document).ready(function() { + + //$(document).on("click", "[data-toggle='popover']", function () { + // $("[data-toggle='popover']").popover(); + //}) + var pagination = new Pagination(); + pagination.setPageIndex(1); + pagination.setPageSize(50); + + function loadPageList() { + var name = $("#Name").val(); + //var classes = $("#Classes").val(); + var classes = 0; + $.ajax({ + url: "GwProduct.ashx", + type: "POST", + data: { action: "productClassesList", name: name, classes: classes, pageIndex: pagination.getPageIndex(), pageSize: pagination.getPageSize() }, + success: function(result) { + if (result.OK) { + $("#productTable tbody").html(result.Message.Table); + pagination.setRecordCount(result.Message.TotalCount); + $("#pagination").html(pagination.getHtml()); + $("[data-toggle='popover']").popover(); + } else { + mytek.alert(result.Message, result.OK); + } + } + }); + } + + $(document).on("click", ".action-modal-add", function() { + $("#productDialog .modal-title").text("娣诲姞浜у搧鍒嗙被"); + $("#productDialog #action").val("add"); + $("#productDialog #id").val("").attr("readonly", false); + $("#productDialog #name").val(""); + //$("#productDialog #classes").val(""); + $("#productDialog #parentId").val(""); + $("#productDialog #isDnable").val(1); + $("#productDialog #remark").val(""); + + $("#productDialog").modal("show"); + }); + + $("#productForm").ajaxForm({ + success: function(r) { + if (r.OK) { + mytek.alert(r.Message, r.OK, function() { + $("#productDialog").modal("hide"); + loadPageList(); + }); + } else { + mytek.alert(r.Message, r.OK); + } + } + }); + + //閫夋嫨鍥炬爣涓嬫媺妗� + $("#icon").on("change", function () { + console.log("icon:" + $(this).val()); + if ($(this).val() != "") { + document.getElementById('showImg').src = "../static/images/productIcon/" + $(this).val(); + } + }); + + $("#icon").trigger("change"); + + //閫夋嫨绫诲埆涓嬫媺妗嗭紝鎺у埗鐩稿叧杈撳叆椤规樉绀� + $("#classes").on("change", function () { + $(".classes-span").hide(); + $(".classes-span-" + $(this).val()).show(); + }); + + $("#classes").trigger("change"); + + /** + //閫夋嫨璺敱绫诲瀷涓嬫媺妗嗭紝鎺у埗鐩稿叧杈撳叆椤规樉绀� + $("#routerType").on("change", function () { + $(".router-type-span").hide(); + $(".router-type-span-" + $(this).val()).show(); + }); + + $("#routerType").trigger("change"); + **/ + + $(document).on("click", ".action-modal-edit", function() { + var id = $(this).data("id"); + $("#productDialog .modal-title").text("缂栬緫浜у搧鍒嗙被"); + $("#productDialog #id").val(id).attr("readonly", true); + + $.get("gwProduct.ashx", { "action": "get", id: id }, function(r) { + if (r.OK) { + $("#productDialog #action").val("update"); + $("#productDialog #id").val(r.Message.Id).attr("readonly", false); + $("#productDialog #name").val(r.Message.Name); + //$("#productDialog #classes").val(r.Message.Classes); + $("#productDialog #parentId").val(r.Message.ParentId); + //$("#productDialog #path").val(r.Message.Path); + $("#productDialog #isDnable").val(r.Message.IsDnable); + $("#productDialog #remark").val(r.Message.Remark); + + $("#productDialog").modal("show"); + } + else { + mytek.alert(r.Message, r.OK); + } + }, "json"); + }); + + $(document).on("click", ".action-update-status", function () { + //data鐨勫睘鎬у弬鏁颁笉鑳藉惈鏈夊ぇ鍐欏瓧姣嶃�� + var id = $(this).data("id"); + var isEnable = $(this).data("is_enable"); + var statusStr = ""; + if (isEnable == 0) { + statusStr = "銆愬仠鐢ㄣ��"; + } + else { + statusStr = "銆愬惎鐢ㄣ��"; + } + mytek.confirm("鏄惁闇�瑕�" + statusStr + "璇ヤ俊鎭紵", "纭鏇存柊淇℃伅鐘舵�侊紝璇疯皑鎱庢搷浣滐紒", function (b) { + if (b) { + $.post("gwProduct.ashx", { "action": "updateStatus", id: id, isEnable: isEnable }, function (r) { + mytek.alert(r.Message, r.OK, function () { + loadPageList(); + }); + }); + } + }); + }); + + $(document).on("click", ".action-delete", function() { + var id = $(this).data("id"); + mytek.confirm("鏄惁闇�瑕佸垹闄よ淇℃伅锛�", "鏁版嵁鍒犻櫎鍚庡皢鏃犳硶鎭㈠锛岃璋ㄦ厧鎿嶄綔锛�", function(b) { + if (b) { + $.post("gwProduct.ashx", { "action": "delete", id: id }, function(result) { + mytek.alert(result.Message, result.OK, function() { + loadPageList(); + }); + }, + "json"); + } + }); + }); + + $(document).on("click", ".action-btn-GwProductQuery", function() { + pagination.setPageIndex(1); + loadPageList(); + }); + + $(document).on("click", "a[data-index]", function() { + pagination.setPageIndex($(this).attr("data-index")); + loadPageList(); + }); + + //杩涘叆椤甸潰鏃舵墽琛屾煡璇� + loadPageList(); + + }); + </script> + </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" + id="gwProductTable"> + <div class="m-b"> + <div class="form-group"> + <div class="input-group"> + <span class="input-group-addon">浜у搧鍒嗙被鍚嶇О</span> + <input type="text" name="Name" id="Name" class="form-control" /> + </div> + </div> + <div class="form-group" style="display: none"> + <div class="input-group"> + <select name="Classes" id="Classes" class="form-control"> + <option value="-1">--璇烽�夋嫨绫诲埆--</option> + <option value="0" selected>浜у搧鍒嗙被</option> + <option value="1">浜у搧</option> + </select> + </div> + </div> + <div class="form-group"> + <div class="input-group"> + <input type="button" value="鏌ヨ" class="btn btn-primary action-btn-GwProductQuery" /> + <input class=" btn btn-warning action-modal-add" value="娣诲姞浜у搧鍒嗙被" type="button" /> + </div> + </div> + </div> + <table class="table table-striped table-bordered table-hover" id="productTable"> + <thead> + <tr class="header"> + <th>浜у搧鍒嗙被鍚嶇О + </th> + <th>鐖剁骇浜у搧鍒嗙被 + </th> + <th>鏄惁鍚敤 + </th> + <th>鍒涘缓鏃堕棿 + </th> + <th>澶囨敞 + </th> + <th class="text-center">鎿嶄綔 + </th> + </tr> + </thead> + <tbody> + </tbody> + </table> + </form> + <div id="pagination"> + </div> + <div class="footBar"> + + </div> + + <div class="modal inmodal fade" id="productDialog" tabindex="-1" role="dialog" aria-hidden="true"> + <div class="modal-dialog modal-lg"> + <form class="form-horizontal" id="productForm" name="productForm" method="post" action="gwProduct.ashx"> + <div class="modal-content "> + <div class="modal-header"> + <input type="hidden" class="form-control" name="action" id="action" value="update" /> + <input type="hidden" class="form-control" name="id" id="id" value="" /> + <button type="button" class="close" data-dismiss="modal"> + <span aria-hidden="true">×</span><span class="sr-only">Close</span></button> + <h4 class="modal-title">缂栬緫浜у搧鍒嗙被璧勬枡</h4> + </div> + <div class="modal-body"> + <div class="form-group"> + <label class="col-sm-2 control-label"> + 鍚嶇О <span style="color:red">*</span></label> + <div class="col-sm-4 "> + <input type="text" class="form-control" name="name" id="name" value="" /> + </div> + </div> + <input type="hidden" class="form-control" name="classes" id="classes" value="0" /> + <div class="form-group"> + <label class="col-sm-2 control-label"> + 鐖剁骇鍒嗙被ID</label> + <div class="col-sm-4 "> + <select name="parentId" id="parentId" class="form-control"> + <%=GetProductClassOptions("0")%> + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label"> + 鏄惁鍚敤</label> + <div class="col-sm-4 "> + <select id="isEnable" name="isEnable" class="form-control"> + <option value="0" >鍋滅敤</option> + <option value="1" selected>鍚敤</option> + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label"> + 澶囨敞</label> + <div class="col-sm-4"> + <textarea class="form-control" name="remark" id="remark" rows="4" ></textarea> + </div> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-default" data-dismiss="modal" aria-hidden="true"> + 鍙栨秷</button> + <button class="btn btn-primary"> + 淇濆瓨</button> + </div> + </div> + </form> + </div> + </div> + + <!-- footBar --> + <div id="mask" class="mask"> + <span></span> + <img src="img/spinning-circles.svg" alt="杞藉叆涓�..." /> + </div> + </asp:Content> + + + diff --git a/web/web/GwSm.ashx b/web/web/GwSm.ashx index 043db63..6c25e4e 100644 --- a/web/web/GwSm.ashx +++ b/web/web/GwSm.ashx @@ -11,7 +11,7 @@ public class GwSm : PageHandler<SysUser> { private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; public override JsonPageResult ProcessRequestInternal(PageContext<Model.SysUser> context) diff --git a/web/web/GwSp.ashx b/web/web/GwSp.ashx index 26d653d..35395b4 100644 --- a/web/web/GwSp.ashx +++ b/web/web/GwSp.ashx @@ -22,7 +22,7 @@ private List<GwProduct> _ProductList; private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; private List<GwOp> OpList diff --git a/web/web/GwStatis.aspx.cs b/web/web/GwStatis.aspx.cs index 85c8f51..fc2737a 100644 --- a/web/web/GwStatis.aspx.cs +++ b/web/web/GwStatis.aspx.cs @@ -18,7 +18,7 @@ private List<GwAp> ApList; private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; string permissionsSQL = null; diff --git a/web/web/GwStatisProfit.aspx.cs b/web/web/GwStatisProfit.aspx.cs index 4dc827e..810a9e0 100644 --- a/web/web/GwStatisProfit.aspx.cs +++ b/web/web/GwStatisProfit.aspx.cs @@ -16,7 +16,7 @@ private List<GwAp> ApList; private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; string permissionsSQL = null; diff --git a/web/web/GwStatisRefund.aspx.cs b/web/web/GwStatisRefund.aspx.cs index fd1277c..5a63e49 100644 --- a/web/web/GwStatisRefund.aspx.cs +++ b/web/web/GwStatisRefund.aspx.cs @@ -13,7 +13,7 @@ { private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; string permissionsSQL = null; diff --git a/web/web/GwStatisV3.ashx b/web/web/GwStatisV3.ashx index 752c2e1..e3e87ce 100644 --- a/web/web/GwStatisV3.ashx +++ b/web/web/GwStatisV3.ashx @@ -11,7 +11,7 @@ { private GwStatisV3Dao _Dao = new GwStatisV3Dao(); private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; public override JsonPageResult ProcessRequestInternal(PageContext<Model.SysUser> context) diff --git a/web/web/GwStatisV3.aspx.cs b/web/web/GwStatisV3.aspx.cs index c647f83..db696dd 100644 --- a/web/web/GwStatisV3.aspx.cs +++ b/web/web/GwStatisV3.aspx.cs @@ -16,7 +16,7 @@ private List<GwAp> ApList; private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; string permissionsSQL = null; diff --git a/web/web/Index.aspx b/web/web/Index.aspx index d223646..7cc1ae5 100644 --- a/web/web/Index.aspx +++ b/web/web/Index.aspx @@ -220,6 +220,7 @@ <li><a href="Setting.aspx" class="J_menuItem">绯荤粺鍙傛暟璁剧疆</a> </li> <li><a href="SysDictType.aspx" class="J_menuItem">瀛楀吀绫诲瀷绠$悊</a> </li> <li><a href="SysDictData.aspx" class="J_menuItem">瀛楀吀鏁版嵁绠$悊</a> </li> + <li><a href="SysRoleMenu.aspx" class="J_menuItem">瑙掕壊鏉冮檺绠$悊</a> </li> </ul> </li> diff --git a/web/web/SysDictData.ashx b/web/web/SysDictData.ashx index 313c5aa..69fadbf 100644 --- a/web/web/SysDictData.ashx +++ b/web/web/SysDictData.ashx @@ -49,6 +49,7 @@ { string dictLabel = context.GetString("dictLabel"); string dictType = context.GetString("dictType"); + string source = context.GetString("source"); int recordCount = 0; int pageSize = context.GetInt("pageSize", 50); @@ -69,19 +70,26 @@ str1 += "<td>" + bean.DictLabel + "</td>"; str1 += "<td>" + bean.DictType + "</td>"; str1 += "<td>" + bean.DictSort + "</td>"; + str1 += "<td>" + (bean.ParanSource == 0 ? "绯荤粺鍐呯疆" : "鐢ㄦ埛娣诲姞") + "</td>"; str1 += "<td>" + SysUserName(string.IsNullOrEmpty(bean.CreateBy)? 0: int.Parse(bean.CreateBy) ) + "</td>"; str1 += "<td>" + bean.CreateTime + "</td>"; str1 += "<td>" + (bean.Status == 1 ? "<span class='label label-primary'>姝e父</span>" : "<span class='label label-default'>鍋滅敤</span>") + "</td>"; str1 += "<td class=\"text-center \">"; - str1 = bean.Status != 0 ? str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-status=\"0\" class=\"action-update-status btn btn-default btn-xs\"><i class=\"fa fa-toggle-off\"></i> 鍋滅敤</a> ", (object) bean.DictId ) : str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-status=\"1\" class=\"action-update-status btn btn-primary btn-xs\"><i class=\"fa fa-toggle-on\"/></i> 鍚敤</a> ", (object) bean.DictId ); - str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-modal-edit btn btn-success btn-xs\"><i class=\"fa fa-edit\"></i> 缂栬緫</a> ", (object) bean.DictId); - str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-delete btn btn-default btn-xs\"><i class=\"fa fa-trash\"></i> 鍒犻櫎</a> ", (object) bean.DictId); + if(bean.ParanSource == 1) { + str1 = bean.Status != 0 ? str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-status=\"0\" class=\"action-update-status btn btn-default btn-xs\"><i class=\"fa fa-toggle-off\"></i> 鍋滅敤</a> ", (object) bean.DictId ) : str1 + string.Format("<a href=\"javascript:;\" data-id=\"{0}\" data-status=\"1\" class=\"action-update-status btn btn-primary btn-xs\"><i class=\"fa fa-toggle-on\"/></i> 鍚敤</a> ", (object) bean.DictId ); + str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-modal-edit btn btn-success btn-xs\"><i class=\"fa fa-edit\"></i> 缂栬緫</a> ", (object) bean.DictId); + str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-delete btn btn-default btn-xs\"><i class=\"fa fa-trash\"></i> 鍒犻櫎</a> ", (object) bean.DictId); + } + + //鏍规嵁鍏ュ彛婧愭樉绀恒�愯鑹叉潈闄愩�� + if(source.Equals("SysRoleMenu")) + str1 += string.Format("<a href=\"javascript:;\" data-id=\"{0}\" class=\"action-permission btn btn-primary btn-xs\"><i class=\"fa fa-cog\"></i> 瑙掕壊鏉冮檺</a> ", (object) bean.DictValue); str1 += "</td>"; str1 += "</tr>"; } } else - str1 += "<tr><td colspan=\"8\" style=\"padding-left:5px; text-align: center;\">鏆傛棤淇℃伅</td></tr>"; + str1 += "<tr><td colspan=\"9\" style=\"padding-left:5px; text-align: center;\">鏆傛棤淇℃伅</td></tr>"; return new JsonPageResult(true, new { @@ -118,10 +126,24 @@ string remark = context.GetString("remark", ""); if (string.IsNullOrEmpty(dictValue) ) { - throw new ArgumentException("瀛楀吀鏁版嵁閿�间笉鑳戒负绌猴紝璇疯緭鍏ワ紒"); + if (dictType.Equals("USER_ROLE")) + { + throw new ArgumentException("瑙掕壊缂栫爜涓嶈兘涓虹┖锛岃杈撳叆锛�"); + } + else + { + throw new ArgumentException("瀛楀吀鏁版嵁閿�间笉鑳戒负绌猴紝璇疯緭鍏ワ紒"); + } } if (string.IsNullOrEmpty(dictLabel) ) { - throw new ArgumentException("瀛楀吀鏁版嵁鏍囩涓嶈兘涓虹┖锛岃杈撳叆锛�"); + if (dictType.Equals("USER_ROLE")) + { + throw new ArgumentException("瑙掕壊鍚嶇О涓嶈兘涓虹┖锛岃杈撳叆锛�"); + } + else + { + throw new ArgumentException("瀛楀吀鏁版嵁鏍囩涓嶈兘涓虹┖锛岃杈撳叆锛�"); + } } if (string.IsNullOrEmpty(dictType) ) { throw new ArgumentException("瀛楀吀绫诲瀷缂栫爜涓嶈兘涓虹┖锛岃杈撳叆锛�"); @@ -167,10 +189,24 @@ string remark = context.GetString("remark", ""); if (string.IsNullOrEmpty(dictValue) ) { - throw new ArgumentException("瀛楀吀鏁版嵁閿�间笉鑳戒负绌猴紝璇疯緭鍏ワ紒"); + if (dictType.Equals("USER_ROLE")) + { + throw new ArgumentException("瑙掕壊缂栫爜涓嶈兘涓虹┖锛岃杈撳叆锛�"); + } + else + { + throw new ArgumentException("瀛楀吀鏁版嵁閿�间笉鑳戒负绌猴紝璇疯緭鍏ワ紒"); + } } if (string.IsNullOrEmpty(dictLabel) ) { - throw new ArgumentException("瀛楀吀鏁版嵁鏍囩涓嶈兘涓虹┖锛岃杈撳叆锛�"); + if (dictType.Equals("USER_ROLE")) + { + throw new ArgumentException("瑙掕壊鍚嶇О涓嶈兘涓虹┖锛岃杈撳叆锛�"); + } + else + { + throw new ArgumentException("瀛楀吀鏁版嵁鏍囩涓嶈兘涓虹┖锛岃杈撳叆锛�"); + } } if (string.IsNullOrEmpty(dictType) ) { throw new ArgumentException("瀛楀吀绫诲瀷缂栫爜涓嶈兘涓虹┖锛岃杈撳叆锛�"); diff --git a/web/web/SysDictData.aspx b/web/web/SysDictData.aspx index f32fc0c..4c5e07f 100644 --- a/web/web/SysDictData.aspx +++ b/web/web/SysDictData.aspx @@ -62,7 +62,7 @@ if (r.OK) { $("#sysDictDataDialog #action").val("update"); $("#sysDictDataDialog #dictId").val(r.Message.DictId); - $("#sysDictDataDialog #dictValue").val(r.Message.DictValue).attr("readonly", false); + $("#sysDictDataDialog #dictValue").val(r.Message.DictValue).attr("readonly", true); $("#sysDictDataDialog #dictLabel").val(r.Message.DictLabel); $("#sysDictDataDialog #dictType").val(r.Message.DictType); $("#sysDictDataDialog #dictSort").val(r.Message.DictSort); @@ -169,6 +169,8 @@ </th> <th>瀛楀吀鎺掑簭 </th> + <th>鍙傛暟鏉ユ簮 + </th> <th>鍒涘缓鑰� </th> <th>鍒涘缓鏃堕棿 diff --git a/web/web/SysDictData.aspx.cs b/web/web/SysDictData.aspx.cs index 0f58b3f..e3ff073 100644 --- a/web/web/SysDictData.aspx.cs +++ b/web/web/SysDictData.aspx.cs @@ -10,7 +10,7 @@ using System.Web.SessionState; /** - * 浜у搧绠$悊 + * 瀛楀吀鏁版嵁绠$悊 * */ public partial class _SysDictData : PageBase<SysUser>, IRequiresSessionState diff --git a/web/web/SysDictType.aspx.cs b/web/web/SysDictType.aspx.cs index 0dad56c..f9e3076 100644 --- a/web/web/SysDictType.aspx.cs +++ b/web/web/SysDictType.aspx.cs @@ -10,7 +10,7 @@ using System.Web.SessionState; /** - * 浜у搧绠$悊 + * 瀛楀吀绫诲瀷绠$悊 * */ public partial class _SysDictType : PageBase<SysUser>, IRequiresSessionState diff --git a/web/web/SysRoleMenu.aspx b/web/web/SysRoleMenu.aspx new file mode 100644 index 0000000..1a0b0b7 --- /dev/null +++ b/web/web/SysRoleMenu.aspx @@ -0,0 +1,351 @@ +锘�<%@ Page Language="C#" masterpagefile="~/Main.master" AutoEventWireup="true" CodeFile="SysRoleMenu.aspx.cs" Inherits="_SysRoleMenu" %> +<asp:Content runat="server" ID="Content1" ContentPlaceHolderID="head"> + <script type="text/javascript" language="javascript"> + $(document).ready(function () { + var pagination = new Pagination(); + pagination.setPageIndex(1); + pagination.setPageSize(50); + + function loadPageList() { + var dictLabel = ""; + var dictType = "USER_ROLE"; + var source = "SysRoleMenu"; //鍏ュ彛婧� + $.ajax({ + url: "SysDictData.ashx", + type: "POST", + data: { action: "list", dictLabel: dictLabel, dictType: dictType, source:source, pageIndex: pagination.getPageIndex(), pageSize: pagination.getPageSize() }, + success: function (result) { + if (result.OK) { + $("#sysDictDataTable tbody").html(result.Message.Table); + pagination.setRecordCount(result.Message.TotalCount); + $("#pagination").html(pagination.getHtml()); + $("[data-toggle='popover']").popover(); + } else { + mytek.alert(result.Message, result.OK); + } + } + }); + } + + $(document).on("click", ".action-modal-add", function () { + $("#sysDictDataDialog .modal-title").text("娣诲姞瑙掕壊"); + $("#sysDictDataDialog #action").val("add"); + $("#sysDictDataDialog #dictId").val(""); + $("#sysDictDataDialog #dictValue").val("").attr("readonly", false); + $("#sysDictDataDialog #dictLabel").val(""); + $("#sysDictDataDialog #dictType").val("USER_ROLE"); + $("#sysDictDataDialog #dictSort").val(1); + $("#sysDictDataDialog #remark").val(""); + + $("#sysDictDataDialog .statusCss").hide(); + + $("#sysDictDataDialog").modal("show"); + }); + + $("#sysDictDataForm").ajaxForm({ + success: function (r) { + if (r.OK) { + mytek.alert(r.Message, r.OK, function () { + $("#sysDictDataDialog").modal("hide"); + loadPageList(); + }); + } else { + mytek.alert(r.Message, r.OK); + } + } + }); + + $(document).on("click", ".action-modal-edit", function () { + var dictId = $(this).data("id"); + $("#sysDictDataDialog .modal-title").text("缂栬緫瑙掕壊"); + + $.get("SysDictData.ashx", { "action": "getByDictId", dictId: dictId }, function (r) { + if (r.OK) { + $("#sysDictDataDialog #action").val("update"); + $("#sysDictDataDialog #dictId").val(r.Message.DictId); + $("#sysDictDataDialog #dictValue").val(r.Message.DictValue).attr("readonly", true); + $("#sysDictDataDialog #dictLabel").val(r.Message.DictLabel); + $("#sysDictDataDialog #dictType").val(r.Message.DictType); + $("#sysDictDataDialog #dictSort").val(r.Message.DictSort); + $("#sysDictDataDialog #status").val(r.Message.Status); + $("#sysDictDataDialog #remark").val(r.Message.Remark); + + $("#sysDictDataDialog .statusCss").show(); + + $("#sysDictDataDialog").modal("show"); + } + else { + mytek.alert(r.Message, r.OK); + } + }, "json"); + }); + + $(document).on("click", ".action-update-status", function () { + //data鐨勫睘鎬у弬鏁颁笉鑳藉惈鏈夊ぇ鍐欏瓧姣嶃�� + var dictId = $(this).data("id"); + var status = $(this).data("status"); + var statusStr = ""; + if (status == 0) { + statusStr = "銆愬仠鐢ㄣ��"; + } + else { + statusStr = "銆愬惎鐢ㄣ��"; + } + mytek.confirm("鏄惁闇�瑕�" + statusStr + "璇ヤ俊鎭紵", "纭鏇存柊淇℃伅鐘舵�侊紝璇疯皑鎱庢搷浣滐紒", function (b) { + if (b) { + $.post("SysDictData.ashx", { "action": "updateStatus", dictId: dictId, status: status }, function (r) { + mytek.alert(r.Message, r.OK, function () { + loadPageList(); + }); + }); + } + }); + }); + + $(document).on("click", ".action-delete", function () { + var dictId = $(this).data("id"); + mytek.confirm("鏄惁闇�瑕佸垹闄よ淇℃伅锛�", "鏁版嵁鍒犻櫎鍚庡皢鏃犳硶鎭㈠锛岃璋ㄦ厧鎿嶄綔锛�", function (b) { + if (b) { + $.post("SysDictData.ashx", { "action": "delete", dictId: dictId }, function (result) { + mytek.alert(result.Message, result.OK, function () { + loadPageList(); + }); + }, + "json"); + } + }); + }); + + $(document).on("click", ".action-btn-SysDictDataQuery", function () { + pagination.setPageIndex(1); + loadPageList(); + }); + + $(document).on("click", "a[data-index]", function () { + pagination.setPageIndex($(this).attr("data-index")); + loadPageList(); + }); + + //杩涘叆椤甸潰鏃舵墽琛屾煡璇� + loadPageList(); + + + //鎵撳紑瑙掕壊鎵�灞炴潈闄愭爲 + $(document).on("click", ".action-permission", function () { + //var roleId = $("#RoleId").val(); + var roleId = $(this).data("id"); + $.get("SysRoleMenu.ashx", { action: "loadRoleMenuList", "roleId": roleId }, function (result) { + if (!result.OK) { + mytek.alert(result.Message, result.OK); + } + else { + $("#permissionDialog").data("roleId", roleId); + $("#permissionDialog #MenuID").prop("checked", false); + $.each(result.Message, function (i) { + $("#permissionDialog #MenuID[value='" + this + "']").prop("checked", true); + }); + $("#permissionDialog").modal("show"); + } + }, "json"); + }); + + //鍕鹃�夎彍鍗曞閫夋浜嬩欢 + $(document).on("click", "#MenuID", function () { + var id = $(this).val(); + if (id == 1) { + $("input[name='MenuID']").prop("checked", $(this).is(":checked")); + } else { + $("[data-prentid='" + id + "']").prop("checked", $(this).is(":checked")); + + $("input[data-prentid='" + id + "']").each(function () { + var partentid = $(this).val(); + $("[data-prentid='" + partentid + "']").prop("checked", $(this).is(":checked")); + }) + //$("[data-prentid='" + id + "']").prop("checked", $(this).is(":checked")); + } + }); + + //淇濆瓨瑙掕壊鏉冮檺 + $(document).on("click", ".action-update-permission", function () { + var menuIDArray = []; + + //mytek.confirm("鏄惁淇敼瑙掕壊鏉冮檺锛�", "璇疯皑鎱庢搷浣滐紒", function (b) { + // if (b) { + $("#permissionDialog #MenuID").each(function () { + if ($(this).is(":checked")) { + menuIDArray.push($(this).val()); + } + }); + + var roleId = $("#permissionDialog").data("roleId"); + $.ajax({ + url: "SysRoleMenu.ashx", + type: "POST", + data: { action: "updatePermission", roleId: roleId, menuIDArray: $.toJSON(menuIDArray) }, + success: function (result) { + $("#permissionDialog").modal("hide"); + if (result.OK) { + //; + } else { + mytek.alert(result.Message, result.OK); + } + } + }); + // } + //}); + }); + + }); + </script> + </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="SysRoleMenu.aspx" id="queryForm" class="form-inline" + id="sysRoleMenuTable"> + <div class="m-b"> + <div class="form-group"> + <div class="input-group"> + <span class="input-group-addon">瑙掕壊鍚嶇О <span style="color:red">*</span></span> + <select name="RoleId" id="RoleId" class="form-control"> + <!%=UserRoleOptions()%> + </select> + </div> + </div> + <div class="form-group"> + <div class="input-group"> + <input type="button" value="瑙掕壊鏉冮檺" class="btn btn-primary action-permission" /> + </div> + </div> + </div> + </form> + --> + + <input class=" btn btn-warning action-modal-add" value="娣诲姞瑙掕壊" type="button" /> + <table class="table table-striped table-bordered table-hover" id="sysDictDataTable"> + <thead> + <tr class="header"> + <th>瑙掕壊缂栫爜 + </th> + <th>瑙掕壊鍚嶇О + </th> + <th>鎵�灞炵被鍨� + </th> + <th>瑙掕壊鎺掑簭 + </th> + <th>鍙傛暟鏉ユ簮 + </th> + <th>鍒涘缓鑰� + </th> + <th>鍒涘缓鏃堕棿 + </th> + <th>鏄惁鍚敤 + </th> + <th class="text-center">鎿嶄綔 + </th> + </tr> + </thead> + <tbody> + </tbody> + </table> + + <div id="pagination"> + </div> + <div class="footBar"> + </div> + + <div class="modal inmodal fade" id="sysDictDataDialog" tabindex="-1" role="dialog" aria-hidden="true"> + <div class="modal-dialog modal-lg"> + <form class="form-horizontal" id="sysDictDataForm" name="sysDictDataForm" method="post" action="SysDictData.ashx"> + <div class="modal-content "> + <div class="modal-header"> + <input type="hidden" class="form-control" name="action" id="action" value="update" /> + <input type="hidden" class="form-control" name="dictId" id="dictId" value="" /> + <button type="button" class="close" data-dismiss="modal"> + <span aria-hidden="true">×</span><span class="sr-only">Close</span></button> + <h4 class="modal-title">缂栬緫瑙掕壊璧勬枡</h4> + </div> + <div class="modal-body"> + <div class="form-group"> + <label class="col-sm-2 control-label"> + 瑙掕壊缂栫爜 <span style="color:red">*</span> + </label> + <div class="col-sm-4 "> + <input type="text" class="form-control" name="dictValue" id="dictValue" value="" /> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label"> + 瑙掕壊鍚嶇О <span style="color:red">*</span> + </label> + <div class="col-sm-4 "> + <input type="text" class="form-control" name="dictLabel" id="dictLabel" value="" /> + </div> + </div> + <input type="hidden" class="form-control" name="dictType" id="dictType" value="USER_ROLE" /> + <div class="form-group"> + <label class="col-sm-2 control-label"> + 瑙掕壊鎺掑簭 <span style="color:red">*</span> + </label> + <div class="col-sm-4 "> + <input type="text" class="form-control" name="dictSort" id="dictSort" + maxlength="8" value="" onkeyup="value=value.replace(/[^\d]/g,'')" + onpaste="value=value.replace(/[^\d]/g,'')" oncontextmenu="return false" /> + </div> + </div> + <div class="form-group statusCss"> + <label class="col-sm-2 control-label"> + 鐘舵��</label> + <div class="col-sm-4 "> + <select id="status" name="status" class="form-control"> + <option value="0" >鍋滅敤</option> + <option value="1" selected>姝e父</option> + </select> + </div> + </div> + <div class="form-group"> + <label class="col-sm-2 control-label"> + 澶囨敞</label> + <div class="col-sm-4"> + <textarea class="form-control" name="remark" id="remark" rows="4" ></textarea> + </div> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-default" data-dismiss="modal" aria-hidden="true"> + 鍙栨秷</button> + <button class="btn btn-primary"> + 淇濆瓨</button> + </div> + </div> + </form> + </div> + </div> + + <div class="modal inmodal fade" id="permissionDialog" tabindex="-1" role="dialog" + aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content animated bounceInRight"> + <div class="modal-header"> + <span class="title">璁剧疆瑙掕壊鏉冮檺</span><a class="close" data-dismiss="modal" aria-hidden="true">脳</a></div> + <div class="modal-body"> + <%=RenderFunctionTree() %> + </div> + <div class="modal-footer"> + <button class="btn-default btn" data-dismiss="modal" aria-hidden="true"> + 鍙栨秷</button> + <a class="btn btn-primary action-update-permission">淇濆瓨</a> + </div> + </div> + </div> + </div> + + <!-- footBar --> + <div id="mask" class="mask"> + <span></span> + <img src="img/spinning-circles.svg" alt="杞藉叆涓�..." /> + </div> + </asp:Content> + + + diff --git a/web/web/SysRoleMenu.aspx.cs b/web/web/SysRoleMenu.aspx.cs new file mode 100644 index 0000000..6749382 --- /dev/null +++ b/web/web/SysRoleMenu.aspx.cs @@ -0,0 +1,83 @@ +锘� +using Common; +using Dao; +using Model; +using System; +using System.Collections.Generic; +using System.Text; +using System.Web; +using System.Web.Profile; +using System.Web.SessionState; + +/** + * 瑙掕壊鏉冮檺绠$悊 + * + */ +public partial class _SysRoleMenu : PageBase<SysUser>, IRequiresSessionState +{ + protected List<SysDictData> UserRoleList; + + protected void Page_Load(object sender, EventArgs e) + { + //鏉冮檺鎺у埗 + this.CheckRight("112", FailedOperation.ErrorMsgOnly); + + //鑾峰彇瀛楀吀鏁版嵁:USER_ROLE-鐢ㄦ埛瑙掕壊 + using (SysDictDataDao sysDictDataDao = new SysDictDataDao()) + { + SysDictData bean = new SysDictData(); + bean.DelFlag = 0; //姝e父 + bean.Status = 1; //鍚敤 + bean.DictType = "USER_ROLE"; //瀛楀吀绫诲瀷涓衡�滅敤鎴疯鑹测�� + this.UserRoleList = sysDictDataDao.getAllList(bean); + } + + } + + private string GenerateTextPadding(SysMenu menu) + { + return string.Format("<span style=\"width:{0}px;display:inline-block;\"></span>{1}.", (object)(menu.MenuLV * 20), (object)menu.MenuID); + } + + protected string RenderFunctionTree() + { + using (UserDao userDao = new UserDao()) + { + List<SysMenu> list = userDao.LoadSysMenuList(); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append("<table cellpadding='5'>"); + foreach (SysMenu menu in list) + stringBuilder.AppendFormat("<tr><td colspan='2'><span style='padding:5px;'>{2}</span>\r\n <input type=\"checkbox\" id=\"MenuID\" data-prentId='{5}' name=\"MenuID\" value=\"{0}\" {1}/><span style='padding:5px;'>{3} </span> \r\n <span style='padding:5px; color:#666666'>{4}</span></td></tr>", (object)menu.MenuID, (object)"", (object)this.GenerateTextPadding(menu), (object)menu.MenuName, (object)menu.Remark, (object)menu.ParentID); + stringBuilder.Append("</table>"); + return stringBuilder.ToString(); + } + } + + //鐢ㄦ埛瑙掕壊涓嬫媺 + public string UserRoleOptions() + { + StringBuilder stringBuilder = new StringBuilder(); + if (this.UserRoleList.Count == 0) + return "<option value='0'>鏃�</option>"; + stringBuilder.AppendFormat("<option value=\"{0}\" >{1}</option>", (object)"", (object)"鏃�"); + foreach (SysDictData bean in this.UserRoleList) + { /** + //鐘舵�佸仠鐢ㄨ繃婊� + if (bean.Status == 0) + { + continue; + } + + //鍒犻櫎杩囨护 + if (bean.DelFlag == 2) + { + continue; + }**/ + + stringBuilder.AppendFormat("<option value=\"{0}\">{1}</option>", (object)bean.DictValue, (object)bean.DictLabel); + } + return stringBuilder.ToString(); + } + +} + \ No newline at end of file diff --git a/web/web/SysUser.ashx b/web/web/SysUser.ashx index d5590f4..190dddf 100644 --- a/web/web/SysUser.ashx +++ b/web/web/SysUser.ashx @@ -34,6 +34,9 @@ //淇敼瀵嗙爜 case "updatePwd": return UpdatePwd(context); + //鏍规嵁鏁扮粍瀛楃涓茶浆鎹㈠瓧鍏� + case "arrayStrToDict": + return ArrayStrToDict(context); default: throw new Exception("Invalid Action=" + @string); @@ -88,7 +91,8 @@ private JsonPageResult LoadUserMenuList(PageContext<SysUser> context) { context.CheckRight("104", FailedOperation.PromptOnly); - return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys); + //return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys); + return new JsonPageResult(true, (object) this._Dao.LoadUserRoleMenuList(context.GetInt("userid")).Keys); } private JsonPageResult SaveUser(PageContext<SysUser> context) @@ -98,6 +102,15 @@ string string2 = context.GetString("password"); string userName = context.GetString("userName"); string userType = context.GetString("userType"); + + List<string> tmpList = new List<string>(); + //鏁扮粍鍚堝苟 + tmpList.AddRange( JsonConvert.DeserializeObject<string[]>(context.GetString("userType")) ); + + //鏁扮粍鍘婚噸 + string[] tmpArray = DataConverter.DelRepeatData(tmpList.ToArray() ); + userType = string.Join(",", tmpArray) ; + string string3 = context.GetString("email"); string string4 = context.GetString("mobile"); int int2 = context.GetInt("emailFlag"); @@ -140,7 +153,7 @@ throw new ArgumentException("璐︽埛鍚嶇О宸茬粡瀛樺湪锛岃閲嶆柊杈撳叆锛�"); sysUser.UserName = userName; - sysUser.UserType = string.IsNullOrEmpty(userType) ? 0 : int.Parse(userType); + sysUser.UserType = userType; sysUser.CreateTime = DateTime.Now; /** @@ -249,5 +262,24 @@ _Dao.UpdatePwd(account, newPwd ); return new JsonPageResult(true, (object)"淇敼瀵嗙爜鎴愬姛锛�"); + } + + //鏍规嵁鏁扮粍瀛楃涓茶浆鎹㈠瓧鍏� + private JsonPageResult ArrayStrToDict(PageContext<Model.SysUser> context) + { + string userId = context.GetString("userId"); + string userType = context.GetString("userType"); + + Dictionary<string, object> dictionary = new Dictionary<string, object>(); + + List<object> list = DataConverter.stringToList(userType); + for (int i = 0; i < list.Count; i++) + { + //dictionary[userId.ToString()] = list[i]; + dictionary[list[i].ToString()] = list[i]; + } + + return new JsonPageResult(true, dictionary.Keys); } + } diff --git a/web/web/SysUser.aspx b/web/web/SysUser.aspx index 5697391..1cf539a 100644 --- a/web/web/SysUser.aspx +++ b/web/web/SysUser.aspx @@ -131,6 +131,13 @@ var isVerification = $("#userDialog #isVerification").prop("checked"); var clientIp = $("#userDialog #clientIp").val(); + var userRoleArray = []; + $("#userDialog #_UserRole").each(function () { + if ($(this).is(":checked")) { + userRoleArray.push($(this).val()); + } + }); + userType = $.toJSON(userRoleArray); $.post("sysuser.ashx", { action: "saveUser", userid: userid, account: account, password: password, userName: userName, userType: userType, mobile: mobile, email: email, mobileFlag: mobileFlag, emailFlag: emailFlag, isVerification: isVerification, clientIp: clientIp }, function(result) { @@ -149,7 +156,9 @@ $("#userDialog #account").val(""); //$("#userDialog #password").val(""); $("#userDialog #userName").val(""); - $("#userDialog #userType").val(""); + //$("#userDialog #userType").val(""); + $("#userDialog #_UserRole").iCheck("uncheck"); + $("#userDialog #mobile").val(""); $("#userDialog #email").val(""); $("#userDialog input[name=isVerification]").iCheck("uncheck"); @@ -170,9 +179,9 @@ } else { $("#permissionDialog").data("id", id); - $("#permissionDialog #MenuID").prop("checked", false); + $("#permissionDialog #MenuID").prop("checked", false).attr("disabled", "disabled"); $.each(result.Message, function(i) { - $("#permissionDialog #MenuID[value='" + this + "']").prop("checked", true); + $("#permissionDialog #MenuID[value='" + this + "']").prop("checked", true).attr("disabled", "disabled"); }); } $("#permissionDialog").modal("show"); @@ -232,13 +241,26 @@ //缂栬緫鏃跺瘑鐮佹闅愯棌 $(".pwdCss").hide(); $("#userDialog #userName").val(user.UserName); - $("#userDialog #userType").val(user.UserType); + //$("#userDialog #userType").val(user.UserType); + $.get("sysuser.ashx", { action: "arrayStrToDict", "userId": id, "userType": user.UserType }, function (r) { + if (!r.OK) { + mytek.alert(r.Message, r.OK); + } + else { + $("#userDialog #_UserRole").prop("checked", false); + $.each(r.Message, function (i) { + $("#userDialog #_UserRole[value='" + this + "']").prop("checked", true); + }); + } + }, "json"); + $("#userDialog #mobile").val(user.Mobile); $("#userDialog #email").val(user.Email); $("#userDialog #emailFlag").val(user.EmailFlag); $("#userDialog #mobileFlag").val(user.MobileFlag); $("#userDialog #isVerification").iCheck(user.IsVerification == 1 ? "check" : "uncheck"); $("#userDialog #clientIp").val(user.ClientIp); + $("#userDialog").modal("show"); }, "json"); }); @@ -415,17 +437,18 @@ <label class="col-sm-2 control-label"> 璐︽埛绫诲瀷 <span style="color:red">*</span> </label> - <div class="col-sm-4"> + <div class="col-sm-10"> + <%=UserRoleList() %> + <!-- <select name="userType" id="userType" class="form-control"> <option value=""></option> <option value="1">绠$悊鍛�</option> <option value="2">涓氬姟鍛�</option> - <option value="3">涓氬姟涓荤</option> - <option value="4">涓氬姟鎬荤洃</option> - <option value="5">瀹㈡湇浜哄憳</option> - <option value="6">璐㈠姟浜哄憳</option> - <option value="99">鍏朵粬</option> + <option value="3">瀹㈡埛缁忕悊</option> + <option value="4">瀹㈡湇浜哄憳</option> + <option value="5">璐㈠姟浜哄憳</option> </select> + --> </div> </div> <div class="form-group"> @@ -497,7 +520,7 @@ <div class="modal-dialog"> <div class="modal-content animated bounceInRight"> <div class="modal-header"> - <span class="title">璁剧疆璐︽埛鏉冮檺</span><a class="close" data-dismiss="modal" aria-hidden="true">脳</a></div> + <span class="title">鏌ョ湅璐︽埛鏉冮檺</span><a class="close" data-dismiss="modal" aria-hidden="true">脳</a></div> <div class="modal-body"> <%=RenderFunctionTree() %> @@ -505,8 +528,10 @@ <div class="modal-footer"> <button class="btn-default btn" data-dismiss="modal" aria-hidden="true"> 鍙栨秷</button> + <!-- <button class="btn btn-primary action-update-permission"> 淇濆瓨</button> + --> </div> </div> </div> diff --git a/web/web/SysUser.aspx.cs b/web/web/SysUser.aspx.cs index 691db68..f47eda3 100644 --- a/web/web/SysUser.aspx.cs +++ b/web/web/SysUser.aspx.cs @@ -11,14 +11,16 @@ public partial class _SysUser : PageBase<SysUser>, IRequiresSessionState { - + + public List<SysDictData> userRoleList { get; set; } //璐﹀彿绫诲瀷鎴栫О鐢ㄦ埛瑙掕壊銆� public string IP { get; set; } protected void Page_Load(object sender, EventArgs e) { this.IP = this.Request.UserHostAddress; this.CheckRight("104", FailedOperation.PromptOnly); + } private string GenerateTextPadding(SysMenu menu) @@ -39,4 +41,48 @@ return stringBuilder.ToString(); } } + + //鎵�鏈夌敤鎴疯鑹诧紙瀛楀吀绫诲瀷涓猴細USER_ROLE锛� + protected string UserRoleList() + { + using (SysDictDataDao sysDictDataDao = new SysDictDataDao()) + { + SysDictData sysDictData = new SysDictData(); + sysDictData.DictType = "USER_ROLE"; //瀛楀吀绫诲瀷锛氱敤鎴疯鑹� + sysDictData.Status = 1; //鐘舵�侊細1-鍚敤 + List<SysDictData> userRoleList = sysDictDataDao.getAllList(sysDictData); + + //List<GwProduct> list = gwProductDao.getAllList(gwProduct); + + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append("<table cellpadding='5'>"); + if (userRoleList.Count > 0) + { + for (int i = 0; i < userRoleList.Count; i++) + { + SysDictData bean = (SysDictData)userRoleList[i]; + + //琛屽紑濮嬬 + if (i % 5 == 0) + { + stringBuilder.Append("<tr>"); + } + + //琛屽崟鍏冩牸 + stringBuilder.AppendFormat("<td><input type=\"checkbox\" id=\"_UserRole\" name=\"_UserRole\" value=\"{0}\" /><span style='padding:5px;'>{1} </span> \r\n </td>", (object)bean.DictValue, (object)bean.DictLabel); + + //琛岀粨鏉熺 + if (i % 5 == 4 || i == (userRoleList.Count - 1)) + { + stringBuilder.Append("</tr>"); + } + + } + } + stringBuilder.Append("</table>"); + + return stringBuilder.ToString(); + } + } + } diff --git a/web/web/gwspupdate.aspx.cs b/web/web/gwspupdate.aspx.cs index 75f2237..8f9eaf0 100644 --- a/web/web/gwspupdate.aspx.cs +++ b/web/web/gwspupdate.aspx.cs @@ -15,7 +15,7 @@ protected List<GwProduct> GwProductList; private int _userId = -1; - private int _userType = -1; + private string _userType = ""; private string _account = ""; -- Gitblit v1.9.1