From f7fdf63c13241dfa7d66a3315fd54429670e24bf Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 21 六月 2022 08:37:49 +0800
Subject: [PATCH] 基础资料问题优化

---
 VueWebApi/obj/Release/VueWebApi.pdb                             |    0 
 VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache    |    2 
 VueWebApi/DLL/DAL/BasicSettingDAL.cs                            |  209 +++++++
 .vs/VueWebApi/v16/.suo                                          |    0 
 VueWebApi/Logs/2022-06-19.TXT                                   |   56 ++
 VueWebApi/obj/Release/TransformWebConfig/original/Web.config    |  217 ++++----
 VueWebApi/DLL/DAL/LoginDAL.cs                                   |  184 +++++-
 VueWebApi/VueWebApi.csproj                                      |    2 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb      |    0 
 VueWebApi/VueWebApi.csproj.user                                 |    4 
 VueWebApi/Tools/SessionRouteHandler.cs                          |   18 
 VueWebApi/Tools/SessionControllerRouteHandler.cs                |   17 
 VueWebApi/obj/Release/Package/PackageTmp/Web.config             |    6 
 VueWebApi/bin/VueWebApi.pdb                                     |    0 
 VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache  |    2 
 VueWebApi/bin/VueWebApi.dll.config                              |  217 ++++----
 VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config |    6 
 VueWebApi/DLL/DAL/SystemSettingDAL.cs                           |   12 
 VueWebApi/DLL/BLL/BasicSettingBLL.cs                            |    7 
 VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user  |    6 
 VueWebApi/App_Start/WebApiConfig.cs                             |   23 
 VueWebApi/Tools/SeachEncode.cs                                  |   16 
 VueWebApi/Web.config                                            |  217 ++++----
 VueWebApi/bin/VueWebApi.xml                                     |   86 +++
 /dev/null                                                       |    0 
 VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt       |    1 
 VueWebApi/DLL/BLL/LoginBLL.cs                                   |   17 
 VueWebApi/obj/Debug/VueWebApi.pdb                               |    0 
 VueWebApi/Controllers/BasicSettingController.cs                 |   18 
 VueWebApi/Tools/DapperHelper.cs                                 |   29 +
 VueWebApi/Logs/2022-06-20.TXT                                   |   98 +++
 VueWebApi/Controllers/LoginController.cs                        |   42 +
 32 files changed, 1,126 insertions(+), 386 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index 46b28f2..7b13b4b 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/App_Start/WebApiConfig.cs b/VueWebApi/App_Start/WebApiConfig.cs
index 0b2984c..7f07427 100644
--- a/VueWebApi/App_Start/WebApiConfig.cs
+++ b/VueWebApi/App_Start/WebApiConfig.cs
@@ -3,6 +3,8 @@
 using System.Linq;
 using System.Web.Http;
 using System.Web.Http.Cors;
+using System.Web.Routing;
+using VueWebApi.Tools;
 
 namespace VueWebApi
 {
@@ -20,17 +22,22 @@
             config.MapHttpAttributeRoutes();
             var corsAttr = new EnableCorsAttribute("*", "*", "*");
             config.EnableCors(corsAttr);
-            config.Routes.MapHttpRoute(
+            //config.Routes.MapHttpRoute(
+            //    name: "DefaultApi",
+            //    routeTemplate: "api/{controller}/{id}",
+            //    defaults: new { id = RouteParameter.Optional }
+            //);
+            ////鑷畾涔夎矾鐢憋細鍖归厤鍒癮ction
+            //config.Routes.MapHttpRoute(
+            //    name: "ActionApi",
+            //    routeTemplate: "actionapi/{controller}/{action}/{id}",
+            //    defaults: new { id = RouteParameter.Optional }
+            //);
+            RouteTable.Routes.MapHttpRoute(
                 name: "DefaultApi",
                 routeTemplate: "api/{controller}/{id}",
                 defaults: new { id = RouteParameter.Optional }
-            );
-            //鑷畾涔夎矾鐢憋細鍖归厤鍒癮ction
-            config.Routes.MapHttpRoute(
-                name: "ActionApi",
-                routeTemplate: "actionapi/{controller}/{action}/{id}",
-                defaults: new { id = RouteParameter.Optional }
-            );
+            ).RouteHandler = new SessionControllerRouteHandler();
 
             //swagger
             config.Routes.MapHttpRoute(
diff --git a/VueWebApi/Controllers/BasicSettingController.cs b/VueWebApi/Controllers/BasicSettingController.cs
index d3639c6..e466f9c 100644
--- a/VueWebApi/Controllers/BasicSettingController.cs
+++ b/VueWebApi/Controllers/BasicSettingController.cs
@@ -417,6 +417,22 @@
         }
         #endregion
 
+        #region[瑙掕壊娓呭崟鍏宠仈鐢ㄦ埛鏌ヨ1]
+        /// <summary>
+        /// 瑙掕壊娓呭崟鍏宠仈鐢ㄦ埛鏌ヨ1
+        /// </summary>
+        /// <param name="rolecode">瑙掕壊缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "RoleAssociationUserTwo")]
+        [HttpGet]
+        [HiddenApi]
+        public HttpResponseMessage RoleAssociationUserTwo(string rolecode = null)
+        {
+            mes = BasicSettingBLL.RoleAssociationUserTwo(rolecode);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
         #region[瑙掕壊娓呭崟鍏宠仈鐢ㄦ埛淇濆瓨]
         /// <summary>
         /// 瑙掕壊娓呭崟鍏宠仈鐢ㄦ埛淇濆瓨
@@ -438,7 +454,7 @@
 
         #region[瑙掕壊娓呭崟鍏宠仈鍔熻兘鏌ヨ]
         /// <summary>
-        /// 鐢ㄦ埛娓呭崟鍏宠仈鍔熻兘鏌ヨ
+        /// 瑙掕壊娓呭崟鍏宠仈鍔熻兘鏌ヨ
         /// </summary>
         /// <param name="rolecode">瑙掕壊缂栫爜</param>
         /// <param name="type">鎿嶄綔绔垎绫荤紪鐮�</param>
diff --git a/VueWebApi/Controllers/LoginController.cs b/VueWebApi/Controllers/LoginController.cs
index 146766d..52588ed 100644
--- a/VueWebApi/Controllers/LoginController.cs
+++ b/VueWebApi/Controllers/LoginController.cs
@@ -45,14 +45,20 @@
                     ms.password = dt.Rows[0]["PASSWORD"].ToString();
                     ms.usertype = "PC";
                     mss.Add(ms);
-                    HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
-                    User loginUser = JsonConvert.DeserializeObject<User>(HttpContext.Current.Session["User"].ToString());
+                    HttpContext.Current.Session.Clear(); //浠庝細璇濈姸鎬侀泦鍚堜腑鍒犻櫎鎵�鏈夌殑閿��
+                    //HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
+                    //User loginUser = JsonConvert.DeserializeObject<User>(HttpContext.Current.Session["User"].ToString());
+                    User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms));
                     //濡傛灉redis鐧诲綍鐢ㄦ埛涓笉瀛樺湪褰撳墠鐢ㄦ埛
                     if (redis.Get<User>("LoginUserID" + ms.userid, 0) == null)
                     {
                         //redis.Remove("LoginUserID" + ms.userid, 0);
                         //鍐欏叆redis(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
                         redis.Set<User>("LoginUserID" + ms.userid, ms, redis.secondsTimeOut, 0);
+                        //鐧诲綍淇℃伅鍐欏叆session
+                        HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
+                        //鍐欏叆鐧诲綍鎿嶄綔璁板綍
+                        mes = LoginBLL.LoginBas(ms.usercode, ms.usertype);
                         mes.code = "200";
                         mes.Message = "鐧诲綍鎴愬姛!";
                         mes.data = ms;
@@ -72,6 +78,10 @@
                         {
                             //閲嶇疆杩囨湡鏃堕棿(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
                             redis.Set<User>("LoginUserID" + loginUser.userid, loginUser, redis.secondsTimeOut, 0);
+                            //鐧诲綍淇℃伅鍐欏叆session
+                            HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
+                            //鍐欏叆鐧诲綍鎿嶄綔璁板綍
+                            mes = LoginBLL.LoginBas(ms.usercode, ms.usertype);
                             mes.code = "200";
                             mes.Message = "鐧诲綍鎴愬姛!";
                         }
@@ -123,20 +133,40 @@
         }
         #endregion
 
-
+        #region[淇敼瀵嗙爜]
         /// <summary>
         /// 淇敼瀵嗙爜
         /// </summary>
-        /// <param name="username">鐢ㄦ埛鍚�</param>
+        /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
+        /// <param name="username">鐢ㄦ埛鍚嶇О</param>
         /// <param name="password">瀵嗙爜</param>
         /// <param name="newpassword">鏂板瘑鐮�</param>
         /// <returns></returns>
         [ChannelActionFilter,Route(template: "UpdateUserPassword")]
         [HttpPost]
-        public HttpResponseMessage UpdateUserPassword(string username, string password,string newpassword)
+        public HttpResponseMessage UpdateUserPassword(string usercode, string username, string password,string newpassword)
         {
-            mes = LoginBLL.UpdateUserPassword(username, password,newpassword);
+            mes = LoginBLL.UpdateUserPassword(usercode,username, password,newpassword);
             return mes.ResponseMess(mes);
         }
+        #endregion
+
+        #region[鐧诲嚭]
+        /// <summary>
+        /// 鐧诲嚭
+        /// </summary>
+        /// <param name="userid">鐢ㄦ埛id</param>
+        /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
+        /// <param name="username">鐢ㄦ埛鍚�</param>
+        /// <param name="usertype">鎿嶄綔绔疨C/APP</param>
+        /// <returns></returns>
+        [ChannelActionFilter, Route(template: "LoginOut")]
+        [HttpPost]
+        public HttpResponseMessage LoginOut(int userid, string usercode, string username,string usertype)
+        {
+            mes = LoginBLL.LoginOut(userid,usercode, username, usertype);
+            return mes.ResponseMess(mes);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/BLL/BasicSettingBLL.cs b/VueWebApi/DLL/BLL/BasicSettingBLL.cs
index f38d30e..d14a1b7 100644
--- a/VueWebApi/DLL/BLL/BasicSettingBLL.cs
+++ b/VueWebApi/DLL/BLL/BasicSettingBLL.cs
@@ -120,6 +120,13 @@
         }
         #endregion
 
+        #region[瑙掕壊娓呭崟鏌ヨ1]
+        public static ToMessage RoleAssociationUserTwo(string rolecode)
+        {
+            return BasicSettingDAL.RoleAssociationUserTwo(rolecode);
+        }
+        #endregion
+
         #region[瑙掕壊娓呭崟鏂板缂栬緫]
         public static ToMessage AddUpdateRole(string RoleId, string RoleCode, string RoleName,string RoleTypeCode, string description, string Usercode, string OperType)
         {
diff --git a/VueWebApi/DLL/BLL/LoginBLL.cs b/VueWebApi/DLL/BLL/LoginBLL.cs
index fc66ce6..85a4f28 100644
--- a/VueWebApi/DLL/BLL/LoginBLL.cs
+++ b/VueWebApi/DLL/BLL/LoginBLL.cs
@@ -17,6 +17,12 @@
         }
         #endregion
 
+        #region [鍐欏叆鐧诲綍璁板綍琛╙
+        public static ToMessage LoginBas(string usercode,string usertype)
+        {
+            return LoginDAL.LoginBas(usercode,usertype);
+        }
+        #endregion
 
         #region[鏌ヨ鑿滃崟鍔熻兘]
         public static ToMessage LoginMenu(string usercode)
@@ -27,9 +33,16 @@
 
 
         #region[淇敼瀵嗙爜]
-        public static ToMessage UpdateUserPassword(string username, string password, string newpassword)
+        public static ToMessage UpdateUserPassword(string usercode, string username, string password, string newpassword)
         {
-            return LoginDAL.UpdateUserPassword(username, password,newpassword);
+            return LoginDAL.UpdateUserPassword(usercode,username, password,newpassword);
+        }
+        #endregion
+
+        #region[鐧诲嚭]
+        public static ToMessage LoginOut(int userid,string usercode, string username,string usertype)
+        {
+            return LoginDAL.LoginOut(userid,usercode, username, usertype);
         }
         #endregion
     }
diff --git a/VueWebApi/DLL/DAL/BasicSettingDAL.cs b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
index 8875edf..a66ec5a 100644
--- a/VueWebApi/DLL/DAL/BasicSettingDAL.cs
+++ b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -75,7 +75,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -134,7 +136,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -160,12 +164,16 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "鏂板鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "鏂板鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
                 if (operType == "Update")
@@ -181,19 +189,25 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "淇敼鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "淇敼鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -223,19 +237,25 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "鍒犻櫎鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "鍒犻櫎鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -294,7 +314,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -330,7 +352,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.data = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -386,12 +410,16 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "鏂板鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "鏂板鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
                 if (OperType == "Update")
@@ -411,19 +439,25 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "淇敼鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "淇敼鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -442,7 +476,7 @@
                 dynamicParams.Add("@userid", userid);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
 
-                sql = @"update TUserRoleRelation set is_delete='1'  where user_code=@usercode";
+                sql = @"delete TUserRoleRelation  where user_code=@usercode";
                 list.Add(new { str = sql, parm = new { usercode = data.Rows[0]["USERCODE"].ToString() } });
 
                 sql = @"update TUser set is_delete='1'  where id=@userid";
@@ -451,18 +485,24 @@
                 if (aa)
                 {
                     mes.code = "200";
+                    mes.count = 0;
                     mes.Message = "鍒犻櫎鐢ㄦ埛鎴愬姛!";
+                    mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鍒犻櫎鐢ㄦ埛澶辫触!";
+                    mes.data = null;
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -505,7 +545,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -552,18 +594,24 @@
                 if (aa)
                 {
                     mes.code = "200";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -583,7 +631,9 @@
                 if (rowsnum == 0)
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "Excel琛ㄦ牸涓虹┖,鏃犳暟鎹紒";
+                    mes.data = null;
                 }
                 else
                 {
@@ -614,19 +664,25 @@
                     if (aa)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "瀵煎叆鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "瀵煎叆澶辫触!";
+                        mes.data = null;
                     }
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -644,7 +700,7 @@
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select roletype_code,roletype_name 
                             from TRoleType 
-                            where  A.is_delete<>'1' ";
+                            where  is_delete<>'1' ";
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -654,7 +710,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -672,7 +730,7 @@
                 //寰幆鍐欏叆瑙掕壊绫诲瀷琛�
                 for (int i = 0; i < json.Count; i++)
                 {
-                    sql = @"insert into TRoleType(roletypecode,roletypename) values(@roletypecode,@roletypename)";
+                    sql = @"insert into TRoleType(roletype_code,roletype_name) values(@roletypecode,@roletypename)";
                     list.Add(new
                     {
                         str = sql,
@@ -687,18 +745,24 @@
                 if (aa)
                 {
                     mes.code = "200";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -720,18 +784,24 @@
                 if (aa)
                 {
                     mes.code = "200";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -771,7 +841,7 @@
                 //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.role_code,A.role_name,b.roletype_code,B.roletype_name,A.lm_user,A.lm_date,A.is_user,A.is_right  
+                var sql = @"select A.id,A.role_code,A.role_name,b.roletype_code,B.roletype_name,A.description,A.lm_user,A.lm_date,A.is_user,A.is_right  
                             from TRole A
                             left join TRoleType  B on A.roletype_code=B.roletype_code
                             where  A.is_delete<>'1' " + search;
@@ -784,7 +854,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -810,17 +882,21 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "鏂板鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "鏂板鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
                 if (OperType == "Update")
                 {
-                    var sql = @"update TRole set role_name=@UserName,Usercode=@Usercode,CreateDate=@CreateDate,RoleTypeCode=@RoleTypeCode,description=@description where id=@RoleId";
+                    var sql = @"update TRole set role_name=@RoleName,lm_user=@Usercode,lm_date=@CreateDate,roletype_code=@RoleTypeCode,description=@description where id=@RoleId";
                     dynamicParams.Add("@RoleId", RoleId);
                     dynamicParams.Add("@RoleName", RoleName);
                     dynamicParams.Add("@Usercode", Usercode);
@@ -831,19 +907,25 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "淇敼鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "淇敼鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -860,27 +942,33 @@
                 sql = @"update TRole set is_user='N',is_right='N',is_delete='1'  where role_code=@RoleCode";
                 list.Add(new { str = sql, parm = new { RoleCode = RoleCode } });
                 //鏇存柊瑙掕壊鍏宠仈鐢ㄦ埛琛ㄣ�佽鑹插叧鑱旂敤鎴锋爣璇嗗強鍒犻櫎鐘舵��
-                sql = @"update TUserRoleRelation set is_delete='1'  where role_code=@RoleCode";
+                sql = @"delete TUserRoleRelation  where role_code=@RoleCode";
                 list.Add(new { str = sql, parm = new { RoleCode = RoleCode } });
                 //鍒犻櫎(鏇存柊鐘舵��)瑙掕壊鍔熻兘琛�
-                sql = @"update TRoleRightRelation set is_delete='1'  where user_code=@RoleCode";
+                sql = @"update TRoleRightRelation set is_delete='1'  where role_code=@RoleCode";
                 list.Add(new { str = sql, parm = new { RoleCode = RoleCode } });
                 bool aa = DapperHelper.DoTransaction(list);
                 if (aa)
                 {
                     mes.code = "200";
+                    mes.count = 0;
                     mes.Message = "鍒犻櫎鐢ㄦ埛鎴愬姛!";
+                    mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鍒犻櫎鐢ㄦ埛澶辫触!";
+                    mes.data = null;
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -895,12 +983,12 @@
             {
                 if (usercode != "" && usercode != null)
                 {
-                    search += "and A.usercode like '%'+@RoleCode+'%' ";
+                    search += "and A.usercode like '%'+@usercode+'%' ";
                     dynamicParams.Add("@usercode", usercode);
                 }
                 if (username != "" && username != null)
                 {
-                    search += "and A.username like '%'+@RoleName+'%' ";
+                    search += "and A.username like '%'+@username+'%' ";
                     dynamicParams.Add("@username", username);
                 }
                 if (orgcode != "" && orgcode != null)
@@ -921,7 +1009,7 @@
                 }
                 if (search == "")
                 {
-                    search = "and 1=1 ";
+                    search = " and 1=1 ";
                 }
                 //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
@@ -931,7 +1019,8 @@
                              left join TOrganization B on A.stu_torgcode=B.org_code
                              left join (
                                 select distinct user_code  from TUserRoleRelation where role_code=@rolecode
-                             ) C on A.usercode=C.user_code" + search;
+                             ) C on A.usercode=C.user_code where A.is_delete<>'1' " + search;
+                dynamicParams.Add("@rolecode", rolecode);
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -941,7 +1030,69 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[鐢ㄦ埛娓呭崟鍏宠仈瑙掕壊鏌ヨ1]
+        public static ToMessage RoleAssociationUserTwo(string rolecode)
+        {
+            var dynamicParams = new DynamicParameters();
+            string sql = "";
+            try
+            {
+                List<TreeDG> list = new List<TreeDG>();
+                sql = @"select id,parent_id,org_code,org_name,description  
+                      FROM TOrganization ";
+                var dt = DapperHelper.selectdata(sql, dynamicParams);
+                for (int i = 0; i < dt.Rows.Count; i++)   //杩欓噷鏄惊鐜墍鏈�
+                {
+                    if (string.IsNullOrEmpty(dt.Rows[i]["PARENT_ID"].ToString()) || dt.Rows[i]["PARENT_ID"].ToString() == "0")  //鍒ゆ柇鏄惁鏈�澶栧眰鏍硅妭鐐�
+                    {
+                        TreeDG tbj = new TreeDG();
+                        tbj.id = dt.Rows[i]["ID"].ToString();
+                        tbj.code = dt.Rows[i]["ORG_CODE"].ToString();
+                        tbj.name = dt.Rows[i]["ORG_NAME"].ToString();
+                        list.Add(tbj);
+                    }
+                }
+                digui(dt, list);
+                mes.code = "200";
+                mes.Message = "鍔犺浇瀹屾垚";
+                mes.data = list;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.data = e.Message;
+                mes.data = null;
+            }
+            return mes;
+
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<TreeObejct> list = new List<TreeObejct>();
+            try
+            {
+                //鑾峰彇瑙掕壊绫诲瀷闆嗗悎(鍖呭惈缁戝畾鏍囪瘑)
+                dynamicParams.Add("@role_code", rolecode);
+                var data = DapperHelper.selectProcedure("h_p_T_RoleAssociationUserDisplay", dynamicParams);
+                
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -972,8 +1123,8 @@
                     //寰幆鍐欏叆鐢ㄦ埛鍏宠仈瑙掕壊琛�
                     for (int i = 0; i < json.Count; i++)
                     {
-                        sql = @"insert into TUserRoleRelation(usercode,role_code) values(@usercode,@role_code)";
-                        list.Add(new { str = sql, parm = new { usercode = json[i], role_code = rolecode } });
+                        sql = @"insert into TUserRoleRelation(user_code,role_code) values(@usercode,@role_code)";
+                        list.Add(new { str = sql, parm = new { usercode = json[i].code, role_code = rolecode } });
                     }
                     //鏍囪瑙掕壊琛ㄥ叧鑱旂敤鎴锋爣璇�
                     sql = @"update TRole set is_user='Y' where role_code=@rolecode";
@@ -983,18 +1134,24 @@
                 if (aa)
                 {
                     mes.code = "200";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -1027,7 +1184,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -1080,18 +1239,24 @@
                 if (aa)
                 {
                     mes.code = "200";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -1142,7 +1307,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -1170,12 +1337,16 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "鏂板鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "鏂板鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
                 if (OperType == "Update")
@@ -1193,19 +1364,25 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "淇敼鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "淇敼鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -1225,18 +1402,24 @@
                 if (aa)
                 {
                     mes.code = "200";
+                    mes.count = 0;
                     mes.Message = "鍒犻櫎鐢ㄦ埛鎴愬姛!";
+                    mes.data = null;
                 }
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鍒犻櫎鐢ㄦ埛澶辫触!";
+                    mes.data = null;
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
diff --git a/VueWebApi/DLL/DAL/LoginDAL.cs b/VueWebApi/DLL/DAL/LoginDAL.cs
index 2db7ef4..5f64da6 100644
--- a/VueWebApi/DLL/DAL/LoginDAL.cs
+++ b/VueWebApi/DLL/DAL/LoginDAL.cs
@@ -18,11 +18,12 @@
         public static string strProcName = ""; //瀹氫箟鍏ㄥ眬sql鍙橀噺
         public static List<SqlParameter> listStr = new List<SqlParameter>(); //瀹氫箟鍏ㄥ眬鍙傛暟闆嗗悎
         public static SqlParameter[] parameters; //瀹氫箟鍏ㄥ眬SqlParameter鍙傛暟鏁扮粍
+        
 
         #region [鐧诲綍鏌ヨ]
-        public static DataTable LoginSearch(string username,string password)
+        public static DataTable LoginSearch(string username, string password)
         {
-          
+
             //鎵цsql
             strProcName = "select *  from [dbo].[TUser] where username=@username and password=@password";
             //鍒涘缓鍙傛暟
@@ -35,6 +36,74 @@
         }
         #endregion
 
+        #region [鍐欏叆鐧诲綍璁板綍琛╙
+        public static ToMessage LoginBas(string usercode, string usertype)
+        {
+            var sql = "";
+            var cont = 0;
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select * from  T_Bas_Login  where usercode=@usercode and  origin=@usertype";
+                dynamicParams.Add("@usercode", usercode);
+                dynamicParams.Add("@usertype", usertype);
+                cont = DapperHelper.selectcount(sql, dynamicParams);
+                if (cont > 0)
+                {
+                    sql = @"update T_Bas_Login set indate=@indate,status='Y'  where usercode=@usercode and origin=@usertype";
+                    dynamicParams.Add("@usercode", usercode);
+                    dynamicParams.Add("@usertype", usertype);
+                    dynamicParams.Add("@indate", DateTime.Now.ToString());
+                    cont = DapperHelper.SQL(sql, dynamicParams);
+                    if (cont > 0)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.Message = "璁板綍鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "璁板綍澶辫触!";
+                        mes.data = null;
+                    }
+                }
+                else
+                {
+                    sql = @"insert into T_Bas_Login(usercode,status,indate,origin) 
+                            values(@usercode,'Y',@indate,@usertype)";
+                    dynamicParams.Add("@usercode", usercode);
+                    dynamicParams.Add("@usertype", usertype);
+                    dynamicParams.Add("@indate", DateTime.Now.ToString());
+                    cont = DapperHelper.SQL(sql, dynamicParams);
+                    if (cont > 0)
+                    {
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.Message = "璁板綍鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "璁板綍澶辫触!";
+                        mes.data = null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
 
         #region[鏌ヨ鑿滃崟鍔熻兘]
         public static ToMessage LoginMenu(string usercode)
@@ -75,7 +144,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -83,49 +154,102 @@
 
 
         #region[淇敼瀵嗙爜]
-        public static ToMessage UpdateUserPassword(string username, string password, string newpassword)
+        public static ToMessage UpdateUserPassword(string usercode, string username, string password, string newpassword)
         {
-         
-            //鎵цsql锛屽垽鏂綋鍓嶇敤鎴风櫥褰曡处鍙锋槸鍚︽纭�
-            strProcName = "select *  from [dbo].[TUser] where username=@username and password=@password";
-            //鍒涘缓鍙傛暟
-            listStr.Add(new SqlParameter("@username", username));
-            listStr.Add(new SqlParameter("@password", password));
-            parameters = listStr.ToArray();
-            listStr.Clear();
-            dt = DBHelper.GetTable(strProcName, parameters);
-            if (dt.Rows.Count <= 0)
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+
+            sql = @"select *  from [dbo].[TUser] where usercode=@usercode and username=@username and password=@password";
+            dynamicParams.Add("@usercode", usercode);
+            dynamicParams.Add("@username", username);
+            dynamicParams.Add("@password", password);
+            var data = DapperHelper.selectdata(sql, dynamicParams);
+            if (data.Rows.Count <= 0)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = "杈撳叆鐨勫瘑鐮佷笉姝g‘,璇烽噸鏂拌緭鍏ワ紒";
+                mes.data = null;
             }
-            else 
+            else
             {
-                //鎵цsql锛屽垽鏂綋鍓嶇敤鎴风櫥褰曡处鍙锋槸鍚︽纭�
-                strProcName = "update [dbo].[TUser] set password=@newpassword where username=@username and password=@password";
-                //鍒涘缓鍙傛暟
-                listStr.Add(new SqlParameter("@username", username));
-                listStr.Add(new SqlParameter("@password", password));
-                listStr.Add(new SqlParameter("@newpassword", newpassword));
-                parameters = listStr.ToArray();
-                listStr.Clear();
-                res = DBHelper.ExecuteSql(strProcName, parameters);
-                if (res)
+                //淇敼瀵嗙爜
+                sql = @"update [dbo].[TUser] set password=@newpassword where usercode=@usercode and username=@username and password=@password";
+                list.Add(new { str = sql, parm = new { usercode = usercode, username = username, password = password, newpassword = newpassword } });
+                //鍐欏叆鎿嶄綔璁板綍琛�
+                sql = @"insert into T_Bas_User_Operlog(usercode,oper_date,oper_type,description,origin)";
+                list.Add(new
+                {
+                    str = sql,
+                    parm = new
+                    {
+                        usercode = usercode,
+                        oper_date = DateTime.Now.ToString(),
+                        oper_type = "PC",
+                        description = username + "淇敼浜嗗瘑鐮�",
+                        origin = "PC"
+                    }
+                });
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
                 {
                     mes.code = "200";
-                    mes.Message = "淇敼瀵嗙爜鎴愬姛锛�";
+                    mes.count = 0;
+                    mes.Message = "淇敼瀵嗙爜鎴愬姛!";
+                    mes.data = null;
                 }
-                else 
+                else
                 {
                     mes.code = "300";
-                    mes.Message = "淇敼瀵嗙爜澶辫触锛�";
-                }               
+                    mes.count = 0;
+                    mes.Message = "淇敼瀵嗙爜澶辫触!";
+                    mes.data = null;
+                }
             }
             return mes;
         }
         #endregion
 
-
-
+        #region[鐧诲嚭]
+        public static ToMessage LoginOut(int userid, string usercode, string username, string usertype)
+        {
+            var sql = "";
+            var cont = 0;
+            var dynamicParams = new DynamicParameters();
+            RedisHelper redis = new RedisHelper();
+            try
+            {
+                sql = @"update T_Bas_Login set outdate=@outdate,status='N'  where usercode=@usercode and origin=@usertype";
+                dynamicParams.Add("@usercode", usercode);
+                dynamicParams.Add("@outdate", DateTime.Now.ToString());
+                dynamicParams.Add("@usertype", usertype);
+                cont = DapperHelper.SQL(sql, dynamicParams);
+                if (cont > 0)
+                {
+                    redis.Remove("LoginUserID" + userid, 0); //鍒犻櫎redis
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鐧诲嚭鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鐧诲嚭澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/SystemSettingDAL.cs b/VueWebApi/DLL/DAL/SystemSettingDAL.cs
index 2c398be..0f1d7f0 100644
--- a/VueWebApi/DLL/DAL/SystemSettingDAL.cs
+++ b/VueWebApi/DLL/DAL/SystemSettingDAL.cs
@@ -55,7 +55,9 @@
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
@@ -85,12 +87,16 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
                 else 
@@ -116,19 +122,25 @@
                     if (cont > 0)
                     {
                         mes.code = "200";
+                        mes.count = 0;
                         mes.Message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
                     }
                     else
                     {
                         mes.code = "300";
+                        mes.count = 0;
                         mes.Message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
                     }
                 }
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
diff --git a/VueWebApi/Logs/2022-06-19.TXT b/VueWebApi/Logs/2022-06-19.TXT
new file mode 100644
index 0000000..1c64655
--- /dev/null
+++ b/VueWebApi/Logs/2022-06-19.TXT
@@ -0,0 +1,56 @@
+ 【时间】:2022-06-19 15:29:05,029
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 12 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:无法绑定由多个部分组成的标识符 "A.is_delete"。
+无法绑定由多个部分组成的标识符 "A.is_delete"。
+引发异常路径:/api/BasicSetting/RoleTypeSearch
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.QueryMultipleImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.QueryMultiple(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.GetPageList[T](String sql, Object parm, String orderBy, String sort, Int32 pageIndex, Int32 pageSize, Int32& total) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 145
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-06-19 15:39:26,194
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 11 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'roletypecode' 无效。
+列名 'roletypename' 无效。
+引发异常路径:/api/BasicSetting/RoleTypeAdd
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
+   在 Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader)
+   在 Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.DoTransaction(List`1 sqlList) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 284
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Logs/2022-06-20.TXT b/VueWebApi/Logs/2022-06-20.TXT
new file mode 100644
index 0000000..dfeaca8
--- /dev/null
+++ b/VueWebApi/Logs/2022-06-20.TXT
@@ -0,0 +1,98 @@
+ 【时间】:2022-06-20 16:08:53,880
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 14 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:列名 'user_code' 无效。
+引发异常路径:/api/BasicSetting/DeleteRole
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
+   在 Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader)
+   在 Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.DoTransaction(List`1 sqlList) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 284
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-06-20 16:21:34,732
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 28 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:NotSupportedException
+消息内容:The member usercode of type VueWebApi.Models.ObjectData cannot be used as a parameter value
+引发异常路径:/api/BasicSetting/SaveRoleAssoctUser
+引发异常的方法:LookupDbType
+引发异常源:Dapper   在 Dapper.SqlMapper.LookupDbType(Type type, String name, Boolean demand, ITypeHandler& handler)
+   在 Dapper.SqlMapper.CreateParamInfoGenerator(Identity identity, Boolean checkForDuplicates, Boolean removeUnused, IList`1 literals)
+   在 Dapper.SqlMapper.GetCacheInfo(Identity identity, Object exampleParameters, Boolean addToCache)
+   在 Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.DoTransaction(List`1 sqlList) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 284
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-06-20 17:12:27,738
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 9 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:不能在具有唯一索引“PK_TRole_code”的对象“dbo.TRole”中插入重复键的行。重复键值为 (S014)。
+语句已终止。
+引发异常路径:/api/BasicSetting/AddUpdateRole
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
+   在 Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader)
+   在 Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.SQL(String sql, Object parametere) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 256
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-06-20 21:05:42,844
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 12 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:过程或函数 'h_p_T_RoleAssociationUserDisplay' 需要参数 '@role_code',但未提供该参数。
+引发异常路径:/api/BasicSetting/RoleAssociationUserTwo
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectProcedure(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 230
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
index c881ac0..3145ad2 100644
--- a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -372,13 +372,13 @@
       <publishTime>11/28/2018 13:04:24</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>06/18/2022 14:31:58</publishTime>
+      <publishTime>06/20/2022 21:38:42</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll.config">
       <publishTime>06/15/2022 15:31:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>06/18/2022 14:31:58</publishTime>
+      <publishTime>06/20/2022 21:38:42</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
       <publishTime>06/16/2022 14:26:01</publishTime>
@@ -519,7 +519,7 @@
       <publishTime>06/10/2022 08:20:24</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>06/17/2022 14:22:00</publishTime>
+      <publishTime>06/20/2022 18:40:27</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/VueWebApi/Tools/DapperHelper.cs b/VueWebApi/Tools/DapperHelper.cs
index f88e91a..55616c7 100644
--- a/VueWebApi/Tools/DapperHelper.cs
+++ b/VueWebApi/Tools/DapperHelper.cs
@@ -214,6 +214,35 @@
         }
 
         /// <summary>
+        /// Dapper鎵ц瀛樺偍杩囩▼杩斿洖datatable鏁版嵁(甯﹀弬鏁�)
+        /// </summary>
+        /// <param name="sql">瀛樺偍杩囩▼鍚�</param>
+        /// <param name="parm">鍙傛暟</param>
+        /// <returns></returns>
+        public static DataTable selectProcedure(string sql, Object parm)
+        {
+            //sql璇彞
+            try
+            {
+                using (IDbConnection conn = sqlConnection())
+                {
+                    DataTable table = new DataTable();
+                    //var data = conn.ExecuteReader(sql, parm);
+                    var res = conn.ExecuteReader(sql, parm, commandType: CommandType.StoredProcedure);//sql 瀛樺偍杩囩▼ 
+                    table.Load(res);
+                    return table;
+                }
+            }
+            catch (Exception ex)
+            {
+                //鍒涘缓鏃ュ織璁板綍缁勪欢瀹炰緥
+                LogHelper.WriteLog(ex);
+                throw ex;
+            }
+
+        }
+
+        /// <summary>
         /// Dapper鏌ヨ杩斿洖鏁版嵁鏉℃暟
         /// </summary>
         /// <param name="sql"></param>
diff --git a/VueWebApi/Tools/SeachEncode.cs b/VueWebApi/Tools/SeachEncode.cs
index 4424fec..0e7485b 100644
--- a/VueWebApi/Tools/SeachEncode.cs
+++ b/VueWebApi/Tools/SeachEncode.cs
@@ -81,7 +81,9 @@
                                 else
                                 {
                                     mes.code = "300";
+                                    mes.count = 0;
                                     mes.Message = "澶辫触!";
+                                    mes.data = null;
                                 }
                                 break;
                             case "骞存湀":
@@ -126,7 +128,9 @@
                                 else
                                 {
                                     mes.code = "300";
+                                    mes.count = 0;
                                     mes.Message = "澶辫触!";
+                                    mes.data = null;
                                 }
                                 break;
                             case "骞�":
@@ -169,7 +173,9 @@
                                 else
                                 {
                                     mes.code = "300";
+                                    mes.count = 0;
                                     mes.Message = "澶辫触!";
+                                    mes.data = null;
                                 }
 
                                 break;
@@ -223,7 +229,9 @@
                                 else
                                 {
                                     mes.code = "300";
+                                    mes.count = 0;
                                     mes.Message = "澶辫触!";
+                                    mes.data = null;
                                 }
                                 break;
                             case "骞存湀":
@@ -268,7 +276,9 @@
                                 else
                                 {
                                     mes.code = "300";
+                                    mes.count = 0;
                                     mes.Message = "澶辫触!";
+                                    mes.data = null;
                                 }
                                 break;
                             case "骞�":
@@ -311,7 +321,9 @@
                                 else
                                 {
                                     mes.code = "300";
+                                    mes.count = 0;
                                     mes.Message = "澶辫触!";
+                                    mes.data = null;
                                 }
                                 break;
                             default:
@@ -322,13 +334,17 @@
                 else
                 {
                     mes.code = "300";
+                    mes.count = 0;
                     mes.Message = "鏈缃紪鐮佽鍒�,鐢熸垚缂栫爜澶辫触!";
+                    mes.data = null;
                 }             
             }
             catch (Exception e)
             {
                 mes.code = "300";
+                mes.count = 0;
                 mes.Message = e.Message;
+                mes.data = null;
             }
             return mes;
         }
diff --git a/VueWebApi/Tools/SessionControllerRouteHandler.cs b/VueWebApi/Tools/SessionControllerRouteHandler.cs
new file mode 100644
index 0000000..dde954b
--- /dev/null
+++ b/VueWebApi/Tools/SessionControllerRouteHandler.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Http.WebHost;
+using System.Web.Routing;
+
+namespace VueWebApi.Tools
+{
+    public class SessionControllerRouteHandler : HttpControllerRouteHandler
+    {
+        protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
+        {
+             return new SessionRouteHandler(requestContext.RouteData);
+        }
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/Tools/SessionRouteHandler.cs b/VueWebApi/Tools/SessionRouteHandler.cs
new file mode 100644
index 0000000..31a84a3
--- /dev/null
+++ b/VueWebApi/Tools/SessionRouteHandler.cs
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Http.WebHost;
+using System.Web.Routing;
+using System.Web.SessionState;
+
+namespace VueWebApi.Tools
+{
+    public class SessionRouteHandler : HttpControllerHandler, IRequiresSessionState
+    {
+        public SessionRouteHandler(RouteData routeData) : base(routeData)
+        {
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index a45c8e2..607c912 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -295,6 +295,8 @@
     <Compile Include="Tools\RedisHelper.cs" />
     <Compile Include="Tools\Regedit.cs" />
     <Compile Include="Tools\SeachEncode.cs" />
+    <Compile Include="Tools\SessionControllerRouteHandler.cs" />
+    <Compile Include="Tools\SessionRouteHandler.cs" />
     <Compile Include="Tools\TJson.cs" />
     <Compile Include="Tools\ToMessage.cs" />
     <Compile Include="Util\EntityHelper.cs" />
diff --git a/VueWebApi/VueWebApi.csproj.user b/VueWebApi/VueWebApi.csproj.user
index 554daf6..926c718 100644
--- a/VueWebApi/VueWebApi.csproj.user
+++ b/VueWebApi/VueWebApi.csproj.user
@@ -8,9 +8,9 @@
     <IISExpressWindowsAuthentication />
     <IISExpressUseClassicPipelineMode />
     <UseGlobalApplicationHostFile />
-    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
+    <LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
     <NameOfLastUsedPublishProfile>D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
-    <ProjectView>ShowAllFiles</ProjectView>
+    <ProjectView>ProjectFiles</ProjectView>
     <Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
     <Controller_SelectedScaffolderCategoryPath>root/Common/Web API</Controller_SelectedScaffolderCategoryPath>
     <WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
diff --git a/VueWebApi/Web.config b/VueWebApi/Web.config
index b19bff4..3dc4a63 100644
--- a/VueWebApi/Web.config
+++ b/VueWebApi/Web.config
@@ -10,109 +10,116 @@
 		<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
 		<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 	</configSections>
-  <appSettings>
-	  <!--鏁版嵁搴撻摼鎺ラ厤缃�-->
-	  <!--鏈湴鐜-->
-	  <!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
-	  <!--鏈嶅姟鍣ㄧ幆澧�-->
-	  <add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602" />
-	  <!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
-	  <add key="RedisConnIp" value="127.0.0.1" />
-	  <!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
-	  <add key="RedisConnPort" value="6379" />
-	  <!--key澶辨晥鏃堕棿30绉�-->
-	  <add key="RedisKeyTimeCont" value="120" />
-	  <!--Excel瀵煎嚭妯℃澘閰嶇疆IP-->
-	  <add key="FileIP" value="http://121.196.36.24:8001/" />
-    <add key="webpages:Version" value="3.0.0.0" />
-    <add key="webpages:Enabled" value="false" />
-    <add key="ClientValidationEnabled" value="true" />
-    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
-  </appSettings>
-  <system.web>
-    <compilation debug="true" targetFramework="4.6.1" />
-	<customErrors mode="Off"/>
-    <httpRuntime targetFramework="4.6.1" />
-  </system.web>
-  <system.webServer>
-	  <security>
-		  <requestFiltering>
-			  <!--涓昏鏄痬axAllowedContentLength灞炴��-->
-			  <requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400" />
-		  </requestFiltering>
-	  </security>
-	  <httpProtocol>
-		  <customHeaders>
-			  <add name="Access-Control-Allow-Origin" value="*" />
-			  <add name="Access-Control-Allow-Headers" value="Content-Type" />
-			  <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
-		  </customHeaders>
-	  </httpProtocol>
-	  <modules runAllManagedModulesForAllRequests="true" />
-	  <validation validateIntegratedModeConfiguration="false" />
-	  <staticContent>
-		  <remove fileExtension=".woff" />
-		  <remove fileExtension=".woff2" />
-		  <remove fileExtension=".json" />
-		  <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
-		  <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
-		  <mimeMap fileExtension=".json" mimeType="application/json" />
-	  </staticContent>
-    
-  <handlers>
-      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
-      <remove name="OPTIONSVerbHandler" />
-      <remove name="TRACEVerbHandler" />
-      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-    </handlers></system.webServer>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
-        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
-        <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-  <system.codedom>
-    <compilers>
-      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
-      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
-    </compilers>
-  </system.codedom>
+	<appSettings>
+		<!--鏁版嵁搴撻摼鎺ラ厤缃�-->
+		<!--鏈湴鐜-->
+		<!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
+		<!--鏈嶅姟鍣ㄧ幆澧�-->
+		<add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602" />
+		<!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
+		<add key="RedisConnIp" value="127.0.0.1" />
+		<!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
+		<add key="RedisConnPort" value="6379" />
+		<!--key澶辨晥鏃堕棿30绉�-->
+		<add key="RedisKeyTimeCont" value="120" />
+		<!--Excel瀵煎嚭妯℃澘閰嶇疆IP-->
+		<add key="FileIP" value="http://121.196.36.24:8001/" />
+		<add key="webpages:Version" value="3.0.0.0" />
+		<add key="webpages:Enabled" value="false" />
+		<add key="ClientValidationEnabled" value="true" />
+		<add key="UnobtrusiveJavaScriptEnabled" value="true" />
+	</appSettings>
+	<system.web>
+		<compilation debug="true" targetFramework="4.6.1" />
+		<customErrors mode="Off"/>
+		<httpRuntime targetFramework="4.6.1" />
+		<!--session澶辨晥鏃堕棿-->
+		<sessionState mode="InProc" timeout="240">
+			<providers>
+				<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"/>
+			</providers>
+		</sessionState>
+	</system.web>
+	<system.webServer>
+		<security>
+			<requestFiltering>
+				<!--涓昏鏄痬axAllowedContentLength灞炴��-->
+				<requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400" />
+			</requestFiltering>
+		</security>
+		<httpProtocol>
+			<customHeaders>
+				<add name="Access-Control-Allow-Origin" value="*" />
+				<add name="Access-Control-Allow-Headers" value="Content-Type" />
+				<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
+			</customHeaders>
+		</httpProtocol>
+		<modules runAllManagedModulesForAllRequests="true" />
+		<validation validateIntegratedModeConfiguration="false" />
+		<staticContent>
+			<remove fileExtension=".woff" />
+			<remove fileExtension=".woff2" />
+			<remove fileExtension=".json" />
+			<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
+			<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
+			<mimeMap fileExtension=".json" mimeType="application/json" />
+		</staticContent>
+
+		<handlers>
+			<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
+			<remove name="OPTIONSVerbHandler" />
+			<remove name="TRACEVerbHandler" />
+			<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+		</handlers>
+	</system.webServer>
+	<runtime>
+		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+			<dependentAssembly>
+				<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
+				<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
+				<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.0.0.0" />
+			</dependentAssembly>
+		</assemblyBinding>
+	</runtime>
+	<system.codedom>
+		<compilers>
+			<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
+			<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
+		</compilers>
+	</system.codedom>
 </configuration>
\ No newline at end of file
diff --git a/VueWebApi/bin/VueWebApi.dll.config b/VueWebApi/bin/VueWebApi.dll.config
index b19bff4..3dc4a63 100644
--- a/VueWebApi/bin/VueWebApi.dll.config
+++ b/VueWebApi/bin/VueWebApi.dll.config
@@ -10,109 +10,116 @@
 		<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
 		<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 	</configSections>
-  <appSettings>
-	  <!--鏁版嵁搴撻摼鎺ラ厤缃�-->
-	  <!--鏈湴鐜-->
-	  <!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
-	  <!--鏈嶅姟鍣ㄧ幆澧�-->
-	  <add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602" />
-	  <!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
-	  <add key="RedisConnIp" value="127.0.0.1" />
-	  <!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
-	  <add key="RedisConnPort" value="6379" />
-	  <!--key澶辨晥鏃堕棿30绉�-->
-	  <add key="RedisKeyTimeCont" value="120" />
-	  <!--Excel瀵煎嚭妯℃澘閰嶇疆IP-->
-	  <add key="FileIP" value="http://121.196.36.24:8001/" />
-    <add key="webpages:Version" value="3.0.0.0" />
-    <add key="webpages:Enabled" value="false" />
-    <add key="ClientValidationEnabled" value="true" />
-    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
-  </appSettings>
-  <system.web>
-    <compilation debug="true" targetFramework="4.6.1" />
-	<customErrors mode="Off"/>
-    <httpRuntime targetFramework="4.6.1" />
-  </system.web>
-  <system.webServer>
-	  <security>
-		  <requestFiltering>
-			  <!--涓昏鏄痬axAllowedContentLength灞炴��-->
-			  <requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400" />
-		  </requestFiltering>
-	  </security>
-	  <httpProtocol>
-		  <customHeaders>
-			  <add name="Access-Control-Allow-Origin" value="*" />
-			  <add name="Access-Control-Allow-Headers" value="Content-Type" />
-			  <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
-		  </customHeaders>
-	  </httpProtocol>
-	  <modules runAllManagedModulesForAllRequests="true" />
-	  <validation validateIntegratedModeConfiguration="false" />
-	  <staticContent>
-		  <remove fileExtension=".woff" />
-		  <remove fileExtension=".woff2" />
-		  <remove fileExtension=".json" />
-		  <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
-		  <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
-		  <mimeMap fileExtension=".json" mimeType="application/json" />
-	  </staticContent>
-    
-  <handlers>
-      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
-      <remove name="OPTIONSVerbHandler" />
-      <remove name="TRACEVerbHandler" />
-      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-    </handlers></system.webServer>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
-        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
-        <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-  <system.codedom>
-    <compilers>
-      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
-      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
-    </compilers>
-  </system.codedom>
+	<appSettings>
+		<!--鏁版嵁搴撻摼鎺ラ厤缃�-->
+		<!--鏈湴鐜-->
+		<!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
+		<!--鏈嶅姟鍣ㄧ幆澧�-->
+		<add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602" />
+		<!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
+		<add key="RedisConnIp" value="127.0.0.1" />
+		<!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
+		<add key="RedisConnPort" value="6379" />
+		<!--key澶辨晥鏃堕棿30绉�-->
+		<add key="RedisKeyTimeCont" value="120" />
+		<!--Excel瀵煎嚭妯℃澘閰嶇疆IP-->
+		<add key="FileIP" value="http://121.196.36.24:8001/" />
+		<add key="webpages:Version" value="3.0.0.0" />
+		<add key="webpages:Enabled" value="false" />
+		<add key="ClientValidationEnabled" value="true" />
+		<add key="UnobtrusiveJavaScriptEnabled" value="true" />
+	</appSettings>
+	<system.web>
+		<compilation debug="true" targetFramework="4.6.1" />
+		<customErrors mode="Off"/>
+		<httpRuntime targetFramework="4.6.1" />
+		<!--session澶辨晥鏃堕棿-->
+		<sessionState mode="InProc" timeout="240">
+			<providers>
+				<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"/>
+			</providers>
+		</sessionState>
+	</system.web>
+	<system.webServer>
+		<security>
+			<requestFiltering>
+				<!--涓昏鏄痬axAllowedContentLength灞炴��-->
+				<requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400" />
+			</requestFiltering>
+		</security>
+		<httpProtocol>
+			<customHeaders>
+				<add name="Access-Control-Allow-Origin" value="*" />
+				<add name="Access-Control-Allow-Headers" value="Content-Type" />
+				<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
+			</customHeaders>
+		</httpProtocol>
+		<modules runAllManagedModulesForAllRequests="true" />
+		<validation validateIntegratedModeConfiguration="false" />
+		<staticContent>
+			<remove fileExtension=".woff" />
+			<remove fileExtension=".woff2" />
+			<remove fileExtension=".json" />
+			<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
+			<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
+			<mimeMap fileExtension=".json" mimeType="application/json" />
+		</staticContent>
+
+		<handlers>
+			<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
+			<remove name="OPTIONSVerbHandler" />
+			<remove name="TRACEVerbHandler" />
+			<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+		</handlers>
+	</system.webServer>
+	<runtime>
+		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+			<dependentAssembly>
+				<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
+				<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
+				<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.0.0.0" />
+			</dependentAssembly>
+		</assemblyBinding>
+	</runtime>
+	<system.codedom>
+		<compilers>
+			<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
+			<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
+		</compilers>
+	</system.codedom>
 </configuration>
\ No newline at end of file
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index 87ab2eb..be43e11 100644
--- a/VueWebApi/bin/VueWebApi.pdb
+++ b/VueWebApi/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/bin/VueWebApi.xml b/VueWebApi/bin/VueWebApi.xml
index eb7b179..41f39bc 100644
--- a/VueWebApi/bin/VueWebApi.xml
+++ b/VueWebApi/bin/VueWebApi.xml
@@ -665,6 +665,13 @@
             <param name="order">鎺掑簭瑙勫垯</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleAssociationUserTwo(System.String)">
+            <summary>
+            瑙掕壊娓呭崟鍏宠仈鐢ㄦ埛鏌ヨ1
+            </summary>
+            <param name="rolecode">瑙掕壊缂栫爜</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Controllers.BasicSettingController.SaveRoleAssoctUser(System.String,System.Collections.Generic.List{VueWebApi.Models.ObjectData})">
             <summary>
             瑙掕壊娓呭崟鍏宠仈鐢ㄦ埛淇濆瓨
@@ -675,7 +682,7 @@
         </member>
         <member name="M:VueWebApi.Controllers.BasicSettingController.RoleAssociationRight(System.String,System.String)">
             <summary>
-            鐢ㄦ埛娓呭崟鍏宠仈鍔熻兘鏌ヨ
+            瑙掕壊娓呭崟鍏宠仈鍔熻兘鏌ヨ
             </summary>
             <param name="rolecode">瑙掕壊缂栫爜</param>
             <param name="type">鎿嶄綔绔垎绫荤紪鐮�</param>
@@ -716,6 +723,60 @@
             寰�鏉ュ崟浣嶅垹闄�
             </summary>
             <param name="unitid">寰�鏉ュ崟浣岻D</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.DeviceManagerController.DeviceTypeSearch(System.Int32,System.Int32,System.String,System.String)">
+            <summary>
+            璁惧绫诲瀷鏌ヨ
+            </summary>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.DeviceManagerController.AddUpdateDeviceType(Newtonsoft.Json.Linq.JObject)">
+            <summary>
+            璁惧绫诲瀷鏂板
+            </summary>
+            <param name="obj">鎻愪氦鏁版嵁瀵硅薄</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.DeviceManagerController.DeleteDeviceType(System.String)">
+            <summary>
+            璁惧绫诲瀷鍒犻櫎
+            </summary>
+            <param name="devicetypeid">璁惧绫诲瀷ID</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.DeviceManagerController.DeviceMangerSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
+            <summary>
+            璁惧娓呭崟鏌ヨ
+            </summary>
+            <param name="DeviceCode">璁惧缂栫爜</param>
+            <param name="DeviceName">璁惧鍚嶇О</param>
+            <param name="Status">浣跨敤鐘舵��</param>
+            <param name="WorkShop">鎵�灞炶溅闂�</param>
+            <param name="DeviceType">璁惧绫诲瀷</param>
+            <param name="DeviceGroup">璁惧缁�</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.DeviceManagerController.AddUpdateDeviceManger(Newtonsoft.Json.Linq.JObject)">
+            <summary>
+            璁惧娓呭崟鏂板缂栬緫
+            </summary>
+            <param name="obj">鎻愪氦鏁版嵁瀵硅薄</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.DeviceManagerController.DeleteDeviceManger(System.String)">
+            <summary>
+            璁惧娓呭崟鍒犻櫎
+            </summary>
+            <param name="deviceid">璁惧ID</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ImportExcelController.DownLoadExcel(System.String)">
@@ -787,13 +848,24 @@
             </summary>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.LoginController.UpdateUserPassword(System.String,System.String,System.String)">
+        <member name="M:VueWebApi.Controllers.LoginController.UpdateUserPassword(System.String,System.String,System.String,System.String)">
             <summary>
             淇敼瀵嗙爜
             </summary>
-            <param name="username">鐢ㄦ埛鍚�</param>
+            <param name="usercode">鐢ㄦ埛缂栫爜</param>
+            <param name="username">鐢ㄦ埛鍚嶇О</param>
             <param name="password">瀵嗙爜</param>
             <param name="newpassword">鏂板瘑鐮�</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.LoginController.LoginOut(System.Int32,System.String,System.String,System.String)">
+            <summary>
+            鐧诲嚭
+            </summary>
+            <param name="userid">鐢ㄦ埛id</param>
+            <param name="usercode">鐢ㄦ埛缂栫爜</param>
+            <param name="username">鐢ㄦ埛鍚�</param>
+            <param name="usertype">鎿嶄綔绔疨C/APP</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.SystemSettingController.EncodingRules(System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -889,6 +961,14 @@
             <param name="sql"></param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Tools.DapperHelper.selectProcedure(System.String,System.Object)">
+            <summary>
+            Dapper鎵ц瀛樺偍杩囩▼杩斿洖datatable鏁版嵁(甯﹀弬鏁�)
+            </summary>
+            <param name="sql">瀛樺偍杩囩▼鍚�</param>
+            <param name="parm">鍙傛暟</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Tools.DapperHelper.selectcount(System.String,System.Object)">
             <summary>
             Dapper鏌ヨ杩斿洖鏁版嵁鏉℃暟
diff --git a/VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache b/VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache
deleted file mode 100644
index d56c6eb..0000000
--- a/VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache
+++ /dev/null
Binary files differ
diff --git a/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
index 3140e43..d55495f 100644
--- a/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-88f7881b41265401ef7ae4f7bc854ff459674671
+a8d5377e259202f5d8af99199b3a5c31575ca216
diff --git a/VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt b/VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt
index f9e4547..5bc209e 100644
--- a/VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt
+++ b/VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt
@@ -149,7 +149,6 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Razor.resources.dll
-D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.AssemblyReference.cache
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.CoreCompileInputs.cache
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.CopyComplete
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.dll
diff --git a/VueWebApi/obj/Debug/VueWebApi.pdb b/VueWebApi/obj/Debug/VueWebApi.pdb
index b938b72..6014da5 100644
--- a/VueWebApi/obj/Debug/VueWebApi.pdb
+++ b/VueWebApi/obj/Debug/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/Web.config b/VueWebApi/obj/Release/Package/PackageTmp/Web.config
index 751bb5e..9ee226a 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/Web.config
+++ b/VueWebApi/obj/Release/Package/PackageTmp/Web.config
@@ -33,6 +33,12 @@
     <compilation targetFramework="4.6.1" />
     <customErrors mode="Off" />
     <httpRuntime targetFramework="4.6.1" />
+    <!--session澶辨晥鏃堕棿-->
+    <sessionState mode="InProc" timeout="240">
+      <providers>
+        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
+      </providers>
+    </sessionState>
   </system.web>
   <system.webServer>
     <security>
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index 87ab2eb..be43e11 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/TransformWebConfig/original/Web.config b/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
index b19bff4..3dc4a63 100644
--- a/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
+++ b/VueWebApi/obj/Release/TransformWebConfig/original/Web.config
@@ -10,109 +10,116 @@
 		<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
 		<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 	</configSections>
-  <appSettings>
-	  <!--鏁版嵁搴撻摼鎺ラ厤缃�-->
-	  <!--鏈湴鐜-->
-	  <!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
-	  <!--鏈嶅姟鍣ㄧ幆澧�-->
-	  <add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602" />
-	  <!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
-	  <add key="RedisConnIp" value="127.0.0.1" />
-	  <!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
-	  <add key="RedisConnPort" value="6379" />
-	  <!--key澶辨晥鏃堕棿30绉�-->
-	  <add key="RedisKeyTimeCont" value="120" />
-	  <!--Excel瀵煎嚭妯℃澘閰嶇疆IP-->
-	  <add key="FileIP" value="http://121.196.36.24:8001/" />
-    <add key="webpages:Version" value="3.0.0.0" />
-    <add key="webpages:Enabled" value="false" />
-    <add key="ClientValidationEnabled" value="true" />
-    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
-  </appSettings>
-  <system.web>
-    <compilation debug="true" targetFramework="4.6.1" />
-	<customErrors mode="Off"/>
-    <httpRuntime targetFramework="4.6.1" />
-  </system.web>
-  <system.webServer>
-	  <security>
-		  <requestFiltering>
-			  <!--涓昏鏄痬axAllowedContentLength灞炴��-->
-			  <requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400" />
-		  </requestFiltering>
-	  </security>
-	  <httpProtocol>
-		  <customHeaders>
-			  <add name="Access-Control-Allow-Origin" value="*" />
-			  <add name="Access-Control-Allow-Headers" value="Content-Type" />
-			  <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
-		  </customHeaders>
-	  </httpProtocol>
-	  <modules runAllManagedModulesForAllRequests="true" />
-	  <validation validateIntegratedModeConfiguration="false" />
-	  <staticContent>
-		  <remove fileExtension=".woff" />
-		  <remove fileExtension=".woff2" />
-		  <remove fileExtension=".json" />
-		  <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
-		  <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
-		  <mimeMap fileExtension=".json" mimeType="application/json" />
-	  </staticContent>
-    
-  <handlers>
-      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
-      <remove name="OPTIONSVerbHandler" />
-      <remove name="TRACEVerbHandler" />
-      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
-    </handlers></system.webServer>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
-        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
-        <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
-        <bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.0.0.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-  <system.codedom>
-    <compilers>
-      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
-      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
-    </compilers>
-  </system.codedom>
+	<appSettings>
+		<!--鏁版嵁搴撻摼鎺ラ厤缃�-->
+		<!--鏈湴鐜-->
+		<!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
+		<!--鏈嶅姟鍣ㄧ幆澧�-->
+		<add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602" />
+		<!--redis鏁版嵁搴撻摼鎺ラ厤缃甶p-->
+		<add key="RedisConnIp" value="127.0.0.1" />
+		<!--redis鏁版嵁搴撻摼鎺ラ厤缃鍙e彿-->
+		<add key="RedisConnPort" value="6379" />
+		<!--key澶辨晥鏃堕棿30绉�-->
+		<add key="RedisKeyTimeCont" value="120" />
+		<!--Excel瀵煎嚭妯℃澘閰嶇疆IP-->
+		<add key="FileIP" value="http://121.196.36.24:8001/" />
+		<add key="webpages:Version" value="3.0.0.0" />
+		<add key="webpages:Enabled" value="false" />
+		<add key="ClientValidationEnabled" value="true" />
+		<add key="UnobtrusiveJavaScriptEnabled" value="true" />
+	</appSettings>
+	<system.web>
+		<compilation debug="true" targetFramework="4.6.1" />
+		<customErrors mode="Off"/>
+		<httpRuntime targetFramework="4.6.1" />
+		<!--session澶辨晥鏃堕棿-->
+		<sessionState mode="InProc" timeout="240">
+			<providers>
+				<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"/>
+			</providers>
+		</sessionState>
+	</system.web>
+	<system.webServer>
+		<security>
+			<requestFiltering>
+				<!--涓昏鏄痬axAllowedContentLength灞炴��-->
+				<requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400" />
+			</requestFiltering>
+		</security>
+		<httpProtocol>
+			<customHeaders>
+				<add name="Access-Control-Allow-Origin" value="*" />
+				<add name="Access-Control-Allow-Headers" value="Content-Type" />
+				<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
+			</customHeaders>
+		</httpProtocol>
+		<modules runAllManagedModulesForAllRequests="true" />
+		<validation validateIntegratedModeConfiguration="false" />
+		<staticContent>
+			<remove fileExtension=".woff" />
+			<remove fileExtension=".woff2" />
+			<remove fileExtension=".json" />
+			<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
+			<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
+			<mimeMap fileExtension=".json" mimeType="application/json" />
+		</staticContent>
+
+		<handlers>
+			<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
+			<remove name="OPTIONSVerbHandler" />
+			<remove name="TRACEVerbHandler" />
+			<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+		</handlers>
+	</system.webServer>
+	<runtime>
+		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+			<dependentAssembly>
+				<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
+				<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
+				<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
+				<bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-5.2.9.0" newVersion="5.2.9.0" />
+			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.0.0.0" />
+			</dependentAssembly>
+		</assemblyBinding>
+	</runtime>
+	<system.codedom>
+		<compilers>
+			<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
+			<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
+		</compilers>
+	</system.codedom>
 </configuration>
\ No newline at end of file
diff --git a/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config b/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
index 751bb5e..9ee226a 100644
--- a/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
+++ b/VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
@@ -33,6 +33,12 @@
     <compilation targetFramework="4.6.1" />
     <customErrors mode="Off" />
     <httpRuntime targetFramework="4.6.1" />
+    <!--session澶辨晥鏃堕棿-->
+    <sessionState mode="InProc" timeout="240">
+      <providers>
+        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
+      </providers>
+    </sessionState>
   </system.web>
   <system.webServer>
     <security>
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
index e91faba..25da425 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-a4e7b0bf7e6e1075fae5731fbe1093b249c3ac11
+c5c47174d1dabbc2afee4529f910c97bce066463
diff --git a/VueWebApi/obj/Release/VueWebApi.pdb b/VueWebApi/obj/Release/VueWebApi.pdb
index 87ab2eb..be43e11 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ

--
Gitblit v1.9.3