Browse Source

后台小程序版本号修改

lcl 1 year ago
parent
commit
5c969dd267

BIN
.DS_Store


BIN
AppStart/.DS_Store


+ 1 - 0
AppStart/PublicFunction.cs

@@ -275,6 +275,7 @@ namespace MySystem
         }
         }
         #endregion
         #endregion
 
 
+        public static Dictionary<string, Dictionary<string, string>> MainTables = new Dictionary<string, Dictionary<string, string>>();
 
 
     }
     }
 }
 }

+ 109 - 0
AppStart/VerifyCodeHelper.cs

@@ -1,4 +1,7 @@
 using System;
 using System;
+using System.DrawingCore;
+using System.DrawingCore.Drawing2D;
+using System.DrawingCore.Imaging;
 using System.IO;
 using System.IO;
 namespace MySystem
 namespace MySystem
 {
 {
@@ -138,5 +141,111 @@ namespace MySystem
         }
         }
         #endregion
         #endregion
 
 
+        #region 验证码图片
+        /// <summary>
+        /// 验证码图片 => Bitmap
+        /// </summary>
+        /// <param name="verifyCode">验证码</param>
+        /// <param name="width">宽</param>
+        /// <param name="height">高</param>
+        /// <returns>Bitmap</returns>
+        public Bitmap CreateBitmapByImgVerifyCode(string verifyCode, int width, int height)
+        {
+            Font font = new Font("Arial", 18, (FontStyle.Bold | FontStyle.Italic));
+            Brush brush;
+            Bitmap bitmap = new Bitmap(width, height);
+            Graphics g = Graphics.FromImage(bitmap);
+            SizeF totalSizeF = g.MeasureString(verifyCode, font);
+            SizeF curCharSizeF;
+            PointF startPointF = new PointF(0, (height - totalSizeF.Height) / 2);
+            Random random = new Random(); //随机数产生器
+            g.Clear(Color.White); //清空图片背景色  
+            for (int i = 0; i < verifyCode.Length; i++)
+            {
+                brush = new LinearGradientBrush(new Point(0, 0), new Point(1, 1), Color.FromArgb(random.Next(255), random.Next(255), random.Next(255)), Color.FromArgb(random.Next(255), random.Next(255), random.Next(255)));
+                g.DrawString(verifyCode[i].ToString(), font, brush, startPointF);
+                curCharSizeF = g.MeasureString(verifyCode[i].ToString(), font);
+                startPointF.X += curCharSizeF.Width*1.5f;
+            }
+
+            //画图片的干扰线  
+            for (int i = 0; i < 10; i++)
+            {
+                int x1 = random.Next(bitmap.Width);
+                int x2 = random.Next(bitmap.Width);
+                int y1 = random.Next(bitmap.Height);
+                int y2 = random.Next(bitmap.Height);
+                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
+            }
+
+            //画图片的前景干扰点  
+            for (int i = 0; i < 100; i++)
+            {
+                int x = random.Next(bitmap.Width);
+                int y = random.Next(bitmap.Height);
+                bitmap.SetPixel(x, y, Color.FromArgb(random.Next()));
+            }
+
+            g.DrawRectangle(new Pen(Color.Silver), 0, 0, bitmap.Width - 1, bitmap.Height - 1); //画图片的边框线  
+            g.Dispose();
+            return bitmap;
+        }
+
+        /// <summary>
+        /// 验证码图片 => byte[]
+        /// </summary>
+        /// <param name="verifyCode">验证码</param>
+        /// <param name="width">宽</param>
+        /// <param name="height">高</param>
+        /// <returns>byte[]</returns>
+        public byte[] CreateByteByImgVerifyCode(string verifyCode, int width, int height)
+        {
+            Font font = new Font("Arial", 14, (FontStyle.Bold | FontStyle.Italic));
+            Brush brush;
+            Bitmap bitmap = new Bitmap(width, height);
+            Graphics g = Graphics.FromImage(bitmap);
+            SizeF totalSizeF = g.MeasureString(verifyCode, font);
+            SizeF curCharSizeF;
+            PointF startPointF = new PointF(0, (height - totalSizeF.Height) / 2);
+            Random random = new Random(); //随机数产生器
+            g.Clear(Color.White); //清空图片背景色  
+            for (int i = 0; i < verifyCode.Length; i++)
+            {
+                brush = new LinearGradientBrush(new Point(0, 0), new Point(1, 1), Color.FromArgb(random.Next(255), random.Next(255), random.Next(255)), Color.FromArgb(random.Next(255), random.Next(255), random.Next(255)));
+                g.DrawString(verifyCode[i].ToString(), font, brush, startPointF);
+                curCharSizeF = g.MeasureString(verifyCode[i].ToString(), font);
+                startPointF.X += curCharSizeF.Width;
+            }
+
+            //画图片的干扰线  
+            for (int i = 0; i < 10; i++)
+            {
+                int x1 = random.Next(bitmap.Width);
+                int x2 = random.Next(bitmap.Width);
+                int y1 = random.Next(bitmap.Height);
+                int y2 = random.Next(bitmap.Height);
+                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
+            }
+
+            //画图片的前景干扰点  
+            for (int i = 0; i < 100; i++)
+            {
+                int x = random.Next(bitmap.Width);
+                int y = random.Next(bitmap.Height);
+                bitmap.SetPixel(x, y, Color.FromArgb(random.Next()));
+            }
+
+            g.DrawRectangle(new Pen(Color.Silver), 0, 0, bitmap.Width - 1, bitmap.Height - 1); //画图片的边框线  
+            g.Dispose();
+
+            //保存图片数据  
+            MemoryStream stream = new MemoryStream();
+            bitmap.Save(stream, ImageFormat.Jpeg);
+            //输出图片流  
+            return stream.ToArray();
+
+        }
+        #endregion
+
     }
     }
 }
 }

BIN
Areas/.DS_Store


BIN
Areas/Admin/.DS_Store


+ 128 - 126
Areas/Admin/Controllers/ProjectVersionController.cs

@@ -15,6 +15,7 @@ using Microsoft.Extensions.Options;
 using MySystem.Models;
 using MySystem.Models;
 using Library;
 using Library;
 using LitJson;
 using LitJson;
+using MySystem;
 using MySystemLib;
 using MySystemLib;
 
 
 namespace MySystem.Areas.Admin.Controllers
 namespace MySystem.Areas.Admin.Controllers
@@ -25,6 +26,7 @@ namespace MySystem.Areas.Admin.Controllers
     {
     {
         public ProjectVersionController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
         public ProjectVersionController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
         {
         {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
         }
         }
 
 
         #region 小程序版本列表
         #region 小程序版本列表
@@ -37,8 +39,8 @@ namespace MySystem.Areas.Admin.Controllers
         {
         {
             ViewBag.RightInfo = RightInfo;
             ViewBag.RightInfo = RightInfo;
             ViewBag.right = right;
             ViewBag.right = right;
-            
-            
+
+
             return View();
             return View();
         }
         }
 
 
@@ -52,64 +54,64 @@ namespace MySystem.Areas.Admin.Controllers
         /// <returns></returns>
         /// <returns></returns>
         public JsonResult IndexData(ProjectVersion data, string ProjectIdSelect, string UserIdRealName, string UserIdMobile, string DeveloperIdNickName, string DeveloperIdRealName, string DeveloperIdMobile, int page = 1, int limit = 30)
         public JsonResult IndexData(ProjectVersion data, string ProjectIdSelect, string UserIdRealName, string UserIdMobile, string DeveloperIdNickName, string DeveloperIdRealName, string DeveloperIdMobile, int page = 1, int limit = 30)
         {
         {
-            
+
             Dictionary<string, string> Fields = new Dictionary<string, string>();
             Dictionary<string, string> Fields = new Dictionary<string, string>();
-            
+
             Fields.Add("CreateDate", "3"); //时间
             Fields.Add("CreateDate", "3"); //时间
 
 
 
 
             string condition = " and Status>-1";
             string condition = " and Status>-1";
             //小程序项目
             //小程序项目
-if (!string.IsNullOrEmpty(ProjectIdSelect))
-{
-condition += " and ProjectId=" + ProjectIdSelect;
-}
-//所属用户真实姓名
-if (!string.IsNullOrEmpty(UserIdRealName))
-{
-condition += " and UserId in (select UserId from UsersForRealName where RealName='" + UserIdRealName + "')";
-}
-//所属用户手机号
-if (!string.IsNullOrEmpty(UserIdMobile))
-{
-condition += " and UserId in (select UserId from UsersForMobile where Mobile='" + UserIdMobile + "')";
-}
-//开发者昵称
-if (!string.IsNullOrEmpty(DeveloperIdNickName))
-{
-condition += " and DeveloperId in (select DeveloperId from DevelopersForNickName where NickName='" + DeveloperIdNickName + "')";
-}
-//开发者真实姓名
-if (!string.IsNullOrEmpty(DeveloperIdRealName))
-{
-condition += " and DeveloperId in (select DeveloperId from DevelopersForRealName where RealName='" + DeveloperIdRealName + "')";
-}
-//开发者手机号
-if (!string.IsNullOrEmpty(DeveloperIdMobile))
-{
-condition += " and DeveloperId in (select DeveloperId from DevelopersForMobile where Mobile='" + DeveloperIdMobile + "')";
-}
+            if (!string.IsNullOrEmpty(ProjectIdSelect))
+            {
+                condition += " and ProjectId=" + ProjectIdSelect;
+            }
+            //所属用户真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                condition += " and UserId in (select UserId from UsersForRealName where RealName='" + UserIdRealName + "')";
+            }
+            //所属用户手机号
+            if (!string.IsNullOrEmpty(UserIdMobile))
+            {
+                condition += " and UserId in (select UserId from UsersForMobile where Mobile='" + UserIdMobile + "')";
+            }
+            //开发者昵称
+            if (!string.IsNullOrEmpty(DeveloperIdNickName))
+            {
+                condition += " and DeveloperId in (select DeveloperId from DevelopersForNickName where NickName='" + DeveloperIdNickName + "')";
+            }
+            //开发者真实姓名
+            if (!string.IsNullOrEmpty(DeveloperIdRealName))
+            {
+                condition += " and DeveloperId in (select DeveloperId from DevelopersForRealName where RealName='" + DeveloperIdRealName + "')";
+            }
+            //开发者手机号
+            if (!string.IsNullOrEmpty(DeveloperIdMobile))
+            {
+                condition += " and DeveloperId in (select DeveloperId from DevelopersForMobile where Mobile='" + DeveloperIdMobile + "')";
+            }
 
 
 
 
-            Dictionary<string, object> obj = new AdminContent(_accessor.HttpContext, SystemPublicFuction.dbtables).IndexData("ProjectVersion", Fields, "Id desc", "0", page, limit, condition);
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("ProjectVersion", Fields, "Id desc", "0", page, limit, condition);
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
             foreach (Dictionary<string, object> dic in diclist)
             foreach (Dictionary<string, object> dic in diclist)
             {
             {
                 //小程序项目
                 //小程序项目
-// dic["ProjectId"] = RelationClass.GetProjectsInfo(int.Parse(dic["ProjectId"].ToString()));
-//所属用户
-int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
-Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-dic["UserIdRealName"] = userid_Users.RealName;
-dic["UserIdMobile"] = userid_Users.Mobile;
-dic.Remove("UserId");
-//开发者
-int DeveloperId = int.Parse(function.CheckInt(dic["DeveloperId"].ToString()));
-Developers developerid_Developers = db.Developers.FirstOrDefault(m => m.Id == DeveloperId) ?? new Developers();
-dic["DeveloperIdNickName"] = developerid_Developers.NickName;
-dic["DeveloperIdRealName"] = developerid_Developers.RealName;
-dic["DeveloperIdMobile"] = developerid_Developers.Mobile;
-dic.Remove("DeveloperId");
+                // dic["ProjectId"] = RelationClass.GetProjectsInfo(int.Parse(dic["ProjectId"].ToString()));
+                //所属用户
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdRealName"] = userid_Users.RealName;
+                dic["UserIdMobile"] = userid_Users.Mobile;
+                dic.Remove("UserId");
+                //开发者
+                int DeveloperId = int.Parse(function.CheckInt(dic["DeveloperId"].ToString()));
+                Developers developerid_Developers = db.Developers.FirstOrDefault(m => m.Id == DeveloperId) ?? new Developers();
+                dic["DeveloperIdNickName"] = developerid_Developers.NickName;
+                dic["DeveloperIdRealName"] = developerid_Developers.RealName;
+                dic["DeveloperIdMobile"] = developerid_Developers.Mobile;
+                dic.Remove("DeveloperId");
 
 
             }
             }
             return Json(obj);
             return Json(obj);
@@ -127,7 +129,7 @@ dic.Remove("DeveloperId");
         {
         {
             ViewBag.RightInfo = RightInfo;
             ViewBag.RightInfo = RightInfo;
             ViewBag.right = right;
             ViewBag.right = right;
-            
+
 
 
             return View();
             return View();
         }
         }
@@ -144,22 +146,22 @@ dic.Remove("DeveloperId");
         public string Add(ProjectVersion data)
         public string Add(ProjectVersion data)
         {
         {
             Dictionary<string, object> Fields = new Dictionary<string, object>();
             Dictionary<string, object> Fields = new Dictionary<string, object>();
-            
+
             Fields.Add("ProjectId", data.ProjectId); //小程序项目
             Fields.Add("ProjectId", data.ProjectId); //小程序项目
-Fields.Add("UserId", data.UserId); //所属用户
-Fields.Add("DeveloperId", data.DeveloperId); //开发者
-Fields.Add("VerNum", data.VerNum); //版本号
-Fields.Add("UpdateNote", data.UpdateNote); //更新说明
-Fields.Add("ReturnNote", data.ReturnNote); //反馈意见
-Fields.Add("FilePath", data.FilePath); //模板文件路径
+            Fields.Add("UserId", data.UserId); //所属用户
+            Fields.Add("DeveloperId", data.DeveloperId); //开发者
+            Fields.Add("VerNum", data.VerNum); //版本号
+            Fields.Add("UpdateNote", data.UpdateNote); //更新说明
+            Fields.Add("ReturnNote", data.ReturnNote); //反馈意见
+            Fields.Add("FilePath", data.FilePath); //模板文件路径
 
 
             Fields.Add("SeoTitle", data.SeoTitle);
             Fields.Add("SeoTitle", data.SeoTitle);
             Fields.Add("SeoKeyword", data.SeoKeyword);
             Fields.Add("SeoKeyword", data.SeoKeyword);
             Fields.Add("SeoDescription", data.SeoDescription);
             Fields.Add("SeoDescription", data.SeoDescription);
-            int Id = new AdminContent(_accessor.HttpContext, SystemPublicFuction.dbtables).Add("ProjectVersion", Fields, 0);
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("ProjectVersion", Fields, 0);
             AddSysLog(data.Id.ToString(), "ProjectVersion", "add");
             AddSysLog(data.Id.ToString(), "ProjectVersion", "add");
             db.SaveChanges();
             db.SaveChanges();
-            
+
             return "success";
             return "success";
         }
         }
 
 
@@ -175,7 +177,7 @@ Fields.Add("FilePath", data.FilePath); //模板文件路径
         {
         {
             ViewBag.RightInfo = RightInfo;
             ViewBag.RightInfo = RightInfo;
             ViewBag.right = right;
             ViewBag.right = right;
-            
+
 
 
             ProjectVersion editData = db.ProjectVersion.FirstOrDefault(m => m.Id == Id) ?? new ProjectVersion();
             ProjectVersion editData = db.ProjectVersion.FirstOrDefault(m => m.Id == Id) ?? new ProjectVersion();
             ViewBag.data = editData;
             ViewBag.data = editData;
@@ -194,22 +196,22 @@ Fields.Add("FilePath", data.FilePath); //模板文件路径
         public string Edit(ProjectVersion data)
         public string Edit(ProjectVersion data)
         {
         {
             Dictionary<string, object> Fields = new Dictionary<string, object>();
             Dictionary<string, object> Fields = new Dictionary<string, object>();
-            
+
             Fields.Add("ProjectId", data.ProjectId); //小程序项目
             Fields.Add("ProjectId", data.ProjectId); //小程序项目
-Fields.Add("UserId", data.UserId); //所属用户
-Fields.Add("DeveloperId", data.DeveloperId); //开发者
-Fields.Add("VerNum", data.VerNum); //版本号
-Fields.Add("UpdateNote", data.UpdateNote); //更新说明
-Fields.Add("ReturnNote", data.ReturnNote); //反馈意见
-Fields.Add("FilePath", data.FilePath); //模板文件路径
+            Fields.Add("UserId", data.UserId); //所属用户
+            Fields.Add("DeveloperId", data.DeveloperId); //开发者
+            Fields.Add("VerNum", data.VerNum); //版本号
+            Fields.Add("UpdateNote", data.UpdateNote); //更新说明
+            Fields.Add("ReturnNote", data.ReturnNote); //反馈意见
+            Fields.Add("FilePath", data.FilePath); //模板文件路径
 
 
             Fields.Add("SeoTitle", data.SeoTitle);
             Fields.Add("SeoTitle", data.SeoTitle);
             Fields.Add("SeoKeyword", data.SeoKeyword);
             Fields.Add("SeoKeyword", data.SeoKeyword);
             Fields.Add("SeoDescription", data.SeoDescription);
             Fields.Add("SeoDescription", data.SeoDescription);
-            new AdminContent(_accessor.HttpContext, SystemPublicFuction.dbtables).Edit("ProjectVersion", Fields, data.Id);
-            AddSysLog(data.Id.ToString(),"ProjectVersion","update");
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("ProjectVersion", Fields, data.Id);
+            AddSysLog(data.Id.ToString(), "ProjectVersion", "update");
             db.SaveChanges();
             db.SaveChanges();
-            
+
             return "success";
             return "success";
         }
         }
 
 
@@ -224,16 +226,16 @@ Fields.Add("FilePath", data.FilePath); //模板文件路径
         public string Delete(string Id)
         public string Delete(string Id)
         {
         {
             string[] idlist = Id.Split(new char[] { ',' });
             string[] idlist = Id.Split(new char[] { ',' });
-            AddSysLog(Id,"ProjectVersion","del");
+            AddSysLog(Id, "ProjectVersion", "del");
             foreach (string subid in idlist)
             foreach (string subid in idlist)
             {
             {
                 int id = int.Parse(subid);
                 int id = int.Parse(subid);
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Fields.Add("Status", -1);
                 Fields.Add("Status", -1);
-                new AdminContent(_accessor.HttpContext, SystemPublicFuction.dbtables).Edit("ProjectVersion", Fields, id);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("ProjectVersion", Fields, id);
             }
             }
             db.SaveChanges();
             db.SaveChanges();
-            
+
             return "success";
             return "success";
         }
         }
 
 
@@ -248,13 +250,13 @@ Fields.Add("FilePath", data.FilePath); //模板文件路径
         public string Open(string Id)
         public string Open(string Id)
         {
         {
             string[] idlist = Id.Split(new char[] { ',' });
             string[] idlist = Id.Split(new char[] { ',' });
-            AddSysLog(Id,"ProjectVersion","open");
+            AddSysLog(Id, "ProjectVersion", "open");
             foreach (string subid in idlist)
             foreach (string subid in idlist)
             {
             {
                 int id = int.Parse(subid);
                 int id = int.Parse(subid);
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Fields.Add("Status", 1);
                 Fields.Add("Status", 1);
-                new AdminContent(_accessor.HttpContext, SystemPublicFuction.dbtables).Edit("ProjectVersion", Fields, id);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("ProjectVersion", Fields, id);
             }
             }
             db.SaveChanges();
             db.SaveChanges();
             return "success";
             return "success";
@@ -271,13 +273,13 @@ Fields.Add("FilePath", data.FilePath); //模板文件路径
         public string Close(string Id)
         public string Close(string Id)
         {
         {
             string[] idlist = Id.Split(new char[] { ',' });
             string[] idlist = Id.Split(new char[] { ',' });
-            AddSysLog(Id,"ProjectVersion","close");
+            AddSysLog(Id, "ProjectVersion", "close");
             foreach (string subid in idlist)
             foreach (string subid in idlist)
             {
             {
                 int id = int.Parse(subid);
                 int id = int.Parse(subid);
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Fields.Add("Status", 0);
                 Fields.Add("Status", 0);
-                new AdminContent(_accessor.HttpContext, SystemPublicFuction.dbtables).Edit("ProjectVersion", Fields, id);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("ProjectVersion", Fields, id);
             }
             }
             db.SaveChanges();
             db.SaveChanges();
             return "success";
             return "success";
@@ -292,8 +294,8 @@ Fields.Add("FilePath", data.FilePath); //模板文件路径
         /// <param name="Id"></param>
         /// <param name="Id"></param>
         public string Sort(int Id, int Sort)
         public string Sort(int Id, int Sort)
         {
         {
-            new AdminContent(_accessor.HttpContext, SystemPublicFuction.dbtables).Sort("ProjectVersion", Sort, Id);
-            
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("ProjectVersion", Sort, Id);
+
             AddSysLog(Id.ToString(), "ProjectVersion", "sort");
             AddSysLog(Id.ToString(), "ProjectVersion", "sort");
             return "success";
             return "success";
         }
         }
@@ -308,15 +310,15 @@ Fields.Add("FilePath", data.FilePath); //模板文件路径
         {
         {
             ExcelData = HttpUtility.UrlDecode(ExcelData);
             ExcelData = HttpUtility.UrlDecode(ExcelData);
             JsonData list = JsonMapper.ToObject(ExcelData);
             JsonData list = JsonMapper.ToObject(ExcelData);
-            for (int i = 1; i < list.Count;i++ )
+            for (int i = 1; i < list.Count; i++)
             {
             {
                 JsonData dr = list[i];
                 JsonData dr = list[i];
-                
+
                 db.ProjectVersion.Add(new ProjectVersion()
                 db.ProjectVersion.Add(new ProjectVersion()
                 {
                 {
                     CreateDate = DateTime.Now,
                     CreateDate = DateTime.Now,
                     UpdateDate = DateTime.Now,
                     UpdateDate = DateTime.Now,
-                    
+
                 });
                 });
                 db.SaveChanges();
                 db.SaveChanges();
             }
             }
@@ -339,56 +341,56 @@ Fields.Add("FilePath", data.FilePath); //模板文件路径
 
 
             string condition = " and Status>-1";
             string condition = " and Status>-1";
             //小程序项目
             //小程序项目
-if (!string.IsNullOrEmpty(ProjectIdSelect))
-{
-condition += " and ProjectId=" + ProjectIdSelect;
-}
-//所属用户真实姓名
-if (!string.IsNullOrEmpty(UserIdRealName))
-{
-condition += " and UserId in (select UserId from UsersForRealName where RealName='" + UserIdRealName + "')";
-}
-//所属用户手机号
-if (!string.IsNullOrEmpty(UserIdMobile))
-{
-condition += " and UserId in (select UserId from UsersForMobile where Mobile='" + UserIdMobile + "')";
-}
-//开发者昵称
-if (!string.IsNullOrEmpty(DeveloperIdNickName))
-{
-condition += " and DeveloperId in (select DeveloperId from DevelopersForNickName where NickName='" + DeveloperIdNickName + "')";
-}
-//开发者真实姓名
-if (!string.IsNullOrEmpty(DeveloperIdRealName))
-{
-condition += " and DeveloperId in (select DeveloperId from DevelopersForRealName where RealName='" + DeveloperIdRealName + "')";
-}
-//开发者手机号
-if (!string.IsNullOrEmpty(DeveloperIdMobile))
-{
-condition += " and DeveloperId in (select DeveloperId from DevelopersForMobile where Mobile='" + DeveloperIdMobile + "')";
-}
+            if (!string.IsNullOrEmpty(ProjectIdSelect))
+            {
+                condition += " and ProjectId=" + ProjectIdSelect;
+            }
+            //所属用户真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                condition += " and UserId in (select UserId from UsersForRealName where RealName='" + UserIdRealName + "')";
+            }
+            //所属用户手机号
+            if (!string.IsNullOrEmpty(UserIdMobile))
+            {
+                condition += " and UserId in (select UserId from UsersForMobile where Mobile='" + UserIdMobile + "')";
+            }
+            //开发者昵称
+            if (!string.IsNullOrEmpty(DeveloperIdNickName))
+            {
+                condition += " and DeveloperId in (select DeveloperId from DevelopersForNickName where NickName='" + DeveloperIdNickName + "')";
+            }
+            //开发者真实姓名
+            if (!string.IsNullOrEmpty(DeveloperIdRealName))
+            {
+                condition += " and DeveloperId in (select DeveloperId from DevelopersForRealName where RealName='" + DeveloperIdRealName + "')";
+            }
+            //开发者手机号
+            if (!string.IsNullOrEmpty(DeveloperIdMobile))
+            {
+                condition += " and DeveloperId in (select DeveloperId from DevelopersForMobile where Mobile='" + DeveloperIdMobile + "')";
+            }
 
 
 
 
-            Dictionary<string, object> obj = new AdminContent(_accessor.HttpContext, SystemPublicFuction.dbtables).IndexData("ProjectVersion", Fields, "Id desc", "0", 1, 20000, condition, "", false);
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("ProjectVersion", Fields, "Id desc", "0", 1, 20000, condition, "", false);
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
             foreach (Dictionary<string, object> dic in diclist)
             foreach (Dictionary<string, object> dic in diclist)
             {
             {
                 //小程序项目
                 //小程序项目
-// dic["ProjectId"] = RelationClass.GetProjectsInfo(int.Parse(dic["ProjectId"].ToString()));
-//所属用户
-int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
-Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-dic["UserIdRealName"] = userid_Users.RealName;
-dic["UserIdMobile"] = userid_Users.Mobile;
-dic.Remove("UserId");
-//开发者
-int DeveloperId = int.Parse(function.CheckInt(dic["DeveloperId"].ToString()));
-Developers developerid_Developers = db.Developers.FirstOrDefault(m => m.Id == DeveloperId) ?? new Developers();
-dic["DeveloperIdNickName"] = developerid_Developers.NickName;
-dic["DeveloperIdRealName"] = developerid_Developers.RealName;
-dic["DeveloperIdMobile"] = developerid_Developers.Mobile;
-dic.Remove("DeveloperId");
+                // dic["ProjectId"] = RelationClass.GetProjectsInfo(int.Parse(dic["ProjectId"].ToString()));
+                //所属用户
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdRealName"] = userid_Users.RealName;
+                dic["UserIdMobile"] = userid_Users.Mobile;
+                dic.Remove("UserId");
+                //开发者
+                int DeveloperId = int.Parse(function.CheckInt(dic["DeveloperId"].ToString()));
+                Developers developerid_Developers = db.Developers.FirstOrDefault(m => m.Id == DeveloperId) ?? new Developers();
+                dic["DeveloperIdNickName"] = developerid_Developers.NickName;
+                dic["DeveloperIdRealName"] = developerid_Developers.RealName;
+                dic["DeveloperIdMobile"] = developerid_Developers.Mobile;
+                dic.Remove("DeveloperId");
 
 
             }
             }
 
 
@@ -397,7 +399,7 @@ dic.Remove("DeveloperId");
             result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
             result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
             result.Add("Obj", diclist);
             result.Add("Obj", diclist);
             Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
             Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
-            
+
             result.Add("Fields", ReturnFields);
             result.Add("Fields", ReturnFields);
             AddSysLog("0", "ProjectVersion", "ExportExcel");
             AddSysLog("0", "ProjectVersion", "ExportExcel");
             return Json(result);
             return Json(result);

BIN
Areas/Admin/Views/.DS_Store


+ 81 - 0
Areas/Admin/Views/Home/AdminInfo.cshtml

@@ -0,0 +1,81 @@
+@using MySystem.Models;
+@{SysAdmin editData = ViewBag.data as SysAdmin;}
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>个人资料</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+</head>
+<body style="background-color:#fff;">
+
+    <div class="layui-form" style="padding: 20px 0 0 0;">
+        <form class="layui-form" id="confirmFrm">
+            <div class="layui-card">
+          <div class="layui-card-body">
+        <div class="layui-tab" lay-filter="mytabbar">
+                <div class="layui-tab-content mt20">
+                    <div class="layui-tab-item layui-show">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">姓名</label>
+                            <div class="layui-input-block">
+                                <input class="layui-input" type="text" id="RealName" name="RealName" value="@editData.RealName" maxlength="50" lay-verify="required|" autocomplete="off" placeholder="请输入姓名">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-form-item ml10">
+                <div class="layui-input-block">
+                    <button type="button" class="layui-btn" onclick="save()">立即提交</button>
+                </div>
+            </div>
+        </form>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script>
+        function save() {
+            var index = layer.load(1, {
+                shade: [0.5, '#000']
+            });
+            var userdata = $("#confirmFrm").serialize();
+            $.ajax({
+                type: "POST",
+                url: "/Admin/Home/AdminInfoPost?r=" + Math.random(1),
+                data: userdata,
+                dataType: "text",
+                success: function (data) {
+                    layer.close(index);
+                    if (data == "success") {
+                        layer.msg("修改成功");
+                    } else {
+                        layer.msg(data);
+                    }
+                }
+            });
+        }
+        
+        
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit'], function () {
+            var $ = layui.$;
+            var element = layui.element;
+
+            //Hash地址的定位
+            var layid = location.hash.replace(/^#test=/, '');
+            element.tabChange('test', layid);
+            element.on('tab(test)', function (elem) {
+                location.hash = 'test=' + $(this).attr('lay-id');
+            });
+        })
+    </script>
+</body>
+</html>

+ 423 - 0
Areas/Admin/Views/Home/Index.cshtml

@@ -0,0 +1,423 @@
+@using MySystem.Models;
+@{
+    List<RightDic> RightList = ViewBag.RightList as List<RightDic>;        
+    List<RightDic> menus = ViewBag.menus as List<RightDic>;
+    string RightInfo = ViewBag.RightInfo as string;
+    string SysUserName = ViewBag.SysUserName as string;
+    string MyTaskCount = ViewBag.MyTaskCount as string;
+    string Role = ViewBag.Role as string;
+}
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>客小爽后台管理系统</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+    <script>/^http(s*):\/\//.test(location.href) || alert('请先部署到服务器下再访问');</script>
+    <style>
+        .layui-form-select dl dd{
+            color: #000 !important;
+        }
+    </style>
+</head>
+<body class="layui-layout-body">
+    <div id="LAY_app">
+        <div class="layui-layout layui-layout-admin">
+            <div class="layui-header">
+                <!-- 头部区域 -->
+                <ul class="layui-nav layui-layout-left">
+                    <li class="layui-nav-item layadmin-flexible" lay-unselect>
+                        <a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
+                            <i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
+                        </a>
+                    </li>
+                    <li class="layui-nav-item layui-hide-xs" lay-unselect>
+                        <a href="/" target="_blank" title="前台">
+                            <i class="layui-icon layui-icon-website"></i>
+                        </a>
+                    </li>
+                    <li class="layui-nav-item" lay-unselect>
+                        <a href="javascript:;" layadmin-event="refresh" title="刷新">
+                            <i class="layui-icon layui-icon-refresh-3"></i>
+                        </a>
+                    </li>
+                    <li class="layui-nav-item" lay-unselect>
+                        <div class="layui-form" style="padding-top: 5px;">
+                            <select name="menusearch" lay-search lay-filter="SearchMenu">
+                                <option value="">搜索快捷菜单</option>
+                                @foreach(RightDic sub in menus)
+                                {
+                                    if (RightInfo.Contains("," + sub.Id + ","))
+                                    {
+                                        string url = sub.Url;
+                                        if (url.Contains("?"))
+                                        {
+                                            url += "&right=" + sub.Id;
+                                        }
+                                        else
+                                        {
+                                            url += "?right=" + sub.Id;
+                                        }
+                                        <option value="@(url)#@(sub.Name)">@sub.Name</option>
+                                    }
+                                }
+                            </select>
+                        </div>
+                    </li>
+                </ul>
+                <ul class="layui-nav layui-layout-left">
+                    
+                </ul>
+                <ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
+                    <li class="layui-nav-item layui-hide-xs" lay-unselect>
+                        <a href="javascript:;" layadmin-event="fullscreen">
+                            <i class="layui-icon layui-icon-screen-full"></i>
+                        </a>
+                    </li>
+                    <li class="layui-nav-item" lay-unselect>
+                        <a href="javascript:;">
+                            <cite>@ViewBag.SysRealName</cite>
+                        </a>
+                        <dl class="layui-nav-child">
+                            <dd><a lay-href="/Admin/Home/AdminInfo">个人资料</a></dd>
+                            <dd><a lay-href="/Admin/Home/LoginPassword">修改密码</a></dd>
+                            <hr>
+                            <dd style="text-align: center;"><a onclick="quit()">退出</a></dd>
+                        </dl>
+                    </li>
+
+                    <li class="layui-nav-item layui-hide-xs" lay-unselect>
+                        <a href="javascript:;" layadmin-event="about"><i class="layui-icon layui-icon-more-vertical"></i></a>
+                    </li>
+                    <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
+                        <a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a>
+                    </li>
+                </ul>
+            </div>
+
+            <!-- 侧边菜单 -->
+            <div class="layui-side layui-side-menu">
+                <div class="layui-side-scroll">
+                    <div class="layui-logo" lay-href="/Admin/Home/Main">
+                        <span>客小爽</span>
+                    </div>
+
+                    <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
+                        <li data-name="get" class="layui-nav-item layui-nav-itemed layui-this">
+                            <a href="javascript:;" lay-href="/Admin/Home/Main" lay-tips="控制台" lay-direction="2">
+                                <i class="layui-icon layui-icon-auz"></i>
+                                <cite>控制台</cite>
+                            </a>
+                        </li>
+                        @foreach (RightDic sub1 in RightList.Where(m => m.RightLevel == 1).OrderByDescending(m => m.Sort).ThenBy(m => m.Id).ToList())
+                        {
+                            if (RightInfo.Contains("," + sub1.Id + ","))
+                            {
+                                string IdString = sub1.Id + "_";
+                                List<RightDic> children1 = RightList.Where(m => m.RightLevel == 2 && m.Id.StartsWith(IdString)).OrderByDescending(m => m.Sort).ThenBy(m => m.Id).ToList();
+                                <li data-name="component" class="layui-nav-item">
+                                    @if (children1.Count > 0)
+                                    {
+                                        <a href="javascript:;" lay-tips="@sub1.Name" title="@sub1.Name" lay-direction="2">
+                                            <i class="layui-icon @(string.IsNullOrEmpty(sub1.Icon) ? "layui-icon-component" : sub1.Icon)"></i>
+                                            <cite>@sub1.Name</cite>
+                                        </a>
+                                        <dl class="layui-nav-child">
+                                            @foreach (RightDic sub2 in children1)
+                                            {
+                                                if (RightInfo.Contains("," + sub2.Id + ","))
+                                                {
+                                                    IdString = sub2.Id + "_";
+                                                    List<RightDic> children2 = RightList.Where(m => m.RightLevel == 3 && m.Id.StartsWith(IdString)).OrderByDescending(m => m.Sort).ThenBy(m => m.Id).ToList();
+                                                    <dd data-name="grid">
+                                                        @if (children2.Count > 0)
+                                                        {
+                                                            <a href="javascript:;" title="@sub2.Name">@sub2.Name</a>
+                                                            <dl class="layui-nav-child">
+                                                                @foreach (RightDic sub3 in children2)
+                                                                {
+                                                                    if (RightInfo.Contains("," + sub3.Id + ","))
+                                                                    {
+                                                                        string url = sub3.Url;
+                                                                        if (url.Contains("?"))
+                                                                        {
+                                                                            url += "&right=" + sub3.Id;
+                                                                        }
+                                                                        else
+                                                                        {
+                                                                            url += "?right=" + sub3.Id;
+                                                                        }
+                                                                        <dd data-name="list"><a lay-href="@url" title="@sub3.Name">@sub3.Name</a></dd>
+                                                                    }
+                                                                }
+                                                            </dl>
+                                                        }
+                                                        else
+                                                        {
+                                                            string url = sub2.Url;
+                                                            if (url.Contains("?"))
+                                                            {
+                                                                url += "&right=" + sub2.Id;
+                                                            }
+                                                            else
+                                                            {
+                                                                url += "?right=" + sub2.Id;
+                                                            }
+                                                            <a lay-href="@url" title="@sub2.Name">@sub2.Name</a>
+                                                            
+                                                        }
+                                                    </dd>
+                                                }
+                                            }
+                                        </dl>
+                                    }
+                                    else
+                                    {
+                                        string url = sub1.Url;
+                                        if (url.Contains("?"))
+                                        {
+                                            url += "&right=" + sub1.Id;
+                                        }
+                                        else
+                                        {
+                                            url += "?right=" + sub1.Id;
+                                        }
+                                        <a href="javascript:;" lay-href="@url" title="@sub1.Name" lay-tips="@sub1.Name" lay-direction="2">
+                                            <i class="layui-icon layui-icon-component"></i>
+                                            <cite>@sub1.Name</cite>
+                                        </a>
+                                    }
+                                </li>
+                            }
+                        }
+                        @if (SysUserName == "admin")
+                        {
+                        <li data-name="component" class="layui-nav-item">
+                            <a href="javascript:;" lay-tips="开发" lay-direction="2">
+                                <i class="layui-icon layui-icon-component"></i>
+                                <cite>开发</cite>
+                            </a>
+                            <dl class="layui-nav-child">
+                                <dd data-name="grid">
+                                    <a lay-href="/Admin/SystemSet/Edit">站内设置</a>
+                                </dd>
+                                <dd data-name="grid">
+                                    <a lay-href="/Admin/PublicAccountSet/Edit">第三方配置</a>
+                                </dd>
+                                <dd data-name="grid">
+                                    <a lay-href="/Admin/SysTools/SeeSpLog">查看日志</a>
+                                </dd>
+                                <dd data-name="grid">
+                                    <a lay-href="/Admin/SysTools/RelationForUser">关联上下级</a>
+                                </dd>
+                                <dd data-name="grid">
+                                    <a lay-href="/Admin/SysTools/MakeCoupons">生成机具兑换码</a>
+                                </dd>
+                                <dd data-name="grid">
+                                    <a lay-href="/Admin/SysTools/LisFee">立刷费率</a>
+                                </dd>
+                                <dd data-name="grid">
+                                    <a lay-href="/Admin/SysTools/CheckMachine2">机具补录</a>
+                                </dd>
+                                <dd data-name="grid">
+                                    <a href="javascript:;" title="每月表格">导出每月表格<span class="layui-nav-more"></span></a>
+                                    <dl class="layui-nav-child">
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Profit" title="分润">分润</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Subsidy" title="补贴">补贴</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Trade?min=3000000&max=10000000" title="交易额300万-1000万名单">交易额300万-1000万名单</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Trade?min=10000000&max=10000000000" title="交易额满1000万名单">交易额满1000万名单</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/OpenMachine" title="开机排行">开机排行</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/PullNew" title="有效拉新排行">有效拉新排行</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Recommend" title="666推荐王">666推荐王</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Double" title="888翻倍奖">888翻倍奖</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/StoreHouse" title="分仓数据">分仓数据</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/HelpProfit" title="助利宝分润">助利宝分润</a></dd>
+                                    </dl>
+                                </dd>
+                            </dl>
+                        </li>
+                        }
+                    </ul>
+                </div>
+            </div>
+
+            <!-- 页面标签 -->
+            <div class="layadmin-pagetabs" id="LAY_app_tabs">
+                <div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
+                <div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
+                <div class="layui-icon layadmin-tabs-control layui-icon-down">
+                    <ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">
+                        <li class="layui-nav-item" lay-unselect>
+                            <a href="javascript:;"></a>
+                            <dl class="layui-nav-child layui-anim-fadein">
+                                <dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>
+                                <dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>
+                                <dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>
+                            </dl>
+                        </li>
+                    </ul>
+                </div>
+                <div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
+                    <ul class="layui-tab-title" id="LAY_app_tabsheader">
+                        <li lay-id="/Admin/Home/Main" lay-attr="/Admin/Home/Main" class="layui-this"><i class="layui-icon layui-icon-home"></i></li>
+                    </ul>
+                </div>
+            </div>
+
+
+            <!-- 主体内容 -->
+            <div class="layui-body" id="LAY_app_body">
+                <div class="layadmin-tabsbody-item layui-show">
+                    <iframe src="/Admin/Home/Main" frameborder="0" class="layadmin-iframe"></iframe>
+                </div>
+            </div>
+
+            <!-- 辅助元素,一般用于移动设备下遮罩 -->
+            <div class="layadmin-body-shade" layadmin-event="shade"></div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script>
+        //任务流程提醒弹窗
+        function taskRing() {
+            var index = layer.open({
+                type: 1
+                ,offset: 'rb'
+                ,content: '<div style="padding: 20px 100px;">您有新的任务需要处理</div>'
+                ,btn: ['去处理', '稍等']
+                ,btnAlign: 'c' //按钮居中
+                ,shade: 0 //不显示遮罩
+                ,yes: function(){
+                    layer.close(index);
+                    document.getElementById("TaskFlowBtn").click();
+                }
+            });
+        }
+
+        var $;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form'], function () {
+            $ = layui.$;
+            var form = layui.form;
+            form.on('select(SearchMenu)', function (data) {
+                if(data.value && data.value != '') {
+                    var data = data.value.split('#');
+                    addTab(data[1], data[0]);
+                }
+            });
+        });
+
+        //添加选项卡
+        function addTab(name, url) {
+            layui.index.openTabsPage(url, name);
+        }
+
+        function showPwd() {
+            layer.open({
+                type: 2
+                , title: '修改登录密码'
+                , content: '/Admin/Home/LoginPassword'
+                , maxmin: true
+                , area: ['400px', '350px']
+                , btn: ['确定', '取消']
+                , yes: function (index, layero) {
+                    var iframeWindow = window['layui-layer-iframe' + index]
+                        , submitID = 'LAY-list-front-submit'
+                        , submit = layero.find('iframe').contents().find('#' + submitID);
+
+                    //监听提交
+                    iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
+                        var field = data.field; //获取提交的字段
+                        var userdata = "";
+                        for (var prop in field) {
+                            userdata += prop + "=" + encodeURIComponent(field[prop]) + "&";
+                        }
+                        $.ajax({
+                            type: "POST",
+                            url: "/Admin/Home/LoginPasswordPost?r=" + Math.random(1),
+                            data: userdata,
+                            dataType: "text",
+                            success: function (data) {
+                                if (data == "success") {
+                                    layer.msg("修改成功", { time: 2000 }, function () {
+                                        layer.close(index); //关闭弹层
+                                    });
+                                } else {
+                                    layer.msg(data);
+                                }
+                            }
+                        });
+                    });
+
+                    submit.trigger('click');
+                }
+                , success: function (layero, index) {
+
+                }
+            });
+        }
+
+        function showInfo() {
+            layer.open({
+                type: 2
+                , title: '个人资料'
+                , content: '/Admin/Home/AdminInfo'
+                , maxmin: true
+                , area: ['400px', '350px']
+                , btn: ['确定', '取消']
+                , yes: function (index, layero) {
+                    var iframeWindow = window['layui-layer-iframe' + index]
+                        , submitID = 'LAY-list-front-submit'
+                        , submit = layero.find('iframe').contents().find('#' + submitID);
+
+                    //监听提交
+                    iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
+                        var field = data.field; //获取提交的字段
+                        console.log(field);
+                        var userdata = "";
+                        for (var prop in field) {
+                            userdata += prop + "=" + encodeURIComponent(field[prop]) + "&";
+                        }
+                        $.ajax({
+                            type: "POST",
+                            url: "/Admin/Home/AdminInfoPost?r=" + Math.random(1),
+                            data: userdata,
+                            dataType: "text",
+                            success: function (data) {
+                                if (data == "success") {
+                                    layer.msg("修改成功", { time: 2000 }, function () {
+                                        layer.close(index); //关闭弹层
+                                    });
+                                } else {
+                                    layer.msg(data);
+                                }
+                            }
+                        });
+                    });
+
+                    submit.trigger('click');
+                }
+                , success: function (layero, index) {
+
+                }
+            });
+        }
+
+        function quit() {
+            layer.confirm('确定要退出吗?', {
+                btn: ['确定', '取消']
+            }, function () {
+                window.location.href = "/Admin/Home/Quit";
+            });
+        }</script>
+</body>
+</html>

+ 76 - 0
Areas/Admin/Views/Home/Login.cshtml

@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>登录-客小爽</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="format-detection" content="telephone=no">
+    <link rel="stylesheet" href="/admin/css/layui.css">
+    <link rel="stylesheet" href="/admin/css/Astyle.css">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <script src="/admin/js/layer/layer.js"></script>
+</head>
+<body class="login-body rel">
+    <div class="signbox">
+        <div class="sb-inner">
+            <a class="logo-yr" href="/"></a>
+            <form id="LoginForm">
+                <h3>登录 / Login</h3>
+                <div class="form-group pb10">
+                    <label for="username">用户名 / Username</label>
+                    <input class="form-input" type="text" name="UserName" id="UserName" onKeyUp="if(event.keyCode==13){$('#Pwd').focus();}" placeholder="请填写用户名">
+                </div>
+                <div class="form-group pb10">
+                    <label for="password">密码 / Password</label>
+                    <input class="form-input" type="password" name="Pwd" id="Pwd" onKeyUp="if(event.keyCode==13){$('#CheckCode').focus();}" placeholder="请填写密码">
+                </div>
+                <div class="form-group pb10">
+                    <label for="password">验证码 / Verification</label>
+                    <input class="form-input" type="text" name="CheckCode" id="CheckCode" onkeyup="if(event.keyCode==13){syslogin();}" placeholder="请填写验证码" style="width: 70%; display: inline-block; margin-right: 2%">
+                    <img src="/Api/PublicMethod/CheckCode" onclick="$(this).attr('src','/Api/PublicMethod/CheckCode?r='+Math.random())" style="width: 26%; height:38px;" />
+                </div>
+                @*<div class="form-group pb10 cf">
+                        <label class="remembermetext fl" for="rememberme">
+                            <input type="checkbox" checked name="rememberme">&nbsp;记住我的登录
+
+                        </label>
+                        <a class="forgetpwd fr" href="">忘记密码?</a>
+                    </div>*@
+                <div class="form-group pb10 cf">
+                    <button class="login-btn" type="button" onclick="syslogin()">登录</button>
+                </div>
+            </form>
+            <div class="mt10 tc">
+                <div class="ABackground-copyright"><a>客小爽</a></div>
+            </div>
+        </div>
+    </div>
+    <script type="text/javascript">
+        $("#UserName").focus();
+        function syslogin() {
+            if ($("#UserName").val() == "") {
+                layer.msg("请填写用户名");
+            } else if ($("#Pwd").val() == "") {
+                layer.msg("请填写密码");
+            } else {
+                var userdata = $("#LoginForm").serialize();
+                $.ajax({
+                    type: "POST",
+                    url: "/Admin/Home/Login?r=" + Math.random(1),
+                    data: userdata,
+                    dataType: "text",
+                    success: function (data) {
+                        if (data == "success") {
+                            window.location.replace("/Admin/Home/Index");
+                        } else {
+                            layer.msg(data);
+                        }
+                    }
+                });
+            }
+        }
+    </script>
+</body>
+</html>

+ 91 - 0
Areas/Admin/Views/Home/LoginPassword.cshtml

@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>修改登录密码</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+</head>
+<body style="background-color:#fff;">
+
+    <div class="layui-form" style="padding: 20px 0 0 0;">
+        <form class="layui-form" id="confirmFrm">
+            <div class="layui-card">
+          <div class="layui-card-body">
+        <div class="layui-tab" lay-filter="mytabbar">
+                <div class="layui-tab-content mt20">
+                    <div class="layui-tab-item layui-show">
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">旧密码</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="password" id="OldPassword" name="OldPassword" lay-verify="" autocomplete="off" placeholder="请输入旧密码">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">新密码</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="password" id="NewPassword" name="NewPassword" lay-verify="" autocomplete="off" placeholder="请输入新密码">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">密码确认</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="password" id="NewPassword2" name="NewPassword2" lay-verify="" autocomplete="off" placeholder="密码确认">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-form-item ml10">
+                <div class="layui-input-block">
+                    <button type="button" class="layui-btn" onclick="save()">立即提交</button>
+                </div>
+            </div>
+        </form>
+
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script>
+        function save() {
+            var index = layer.load(1, {
+                shade: [0.5, '#000']
+            });
+            var userdata = $("#confirmFrm").serialize();
+            $.ajax({
+                type: "POST",
+                url: "/Admin/Home/LoginPasswordPost?r=" + Math.random(1),
+                data: userdata,
+                dataType: "text",
+                success: function (data) {
+                    layer.close(index);
+                    if (data == "success") {
+                        layer.msg("修改成功");
+                    } else {
+                        layer.msg(data);
+                    }
+                }
+            });
+        }
+        
+        
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit'], function () {
+            var $ = layui.$;
+            var element = layui.element;
+
+            //Hash地址的定位
+            var layid = location.hash.replace(/^#test=/, '');
+            element.tabChange('test', layid);
+            element.on('tab(test)', function (elem) {
+                location.hash = 'test=' + $(this).attr('lay-id');
+            });
+        })</script>
+</body>
+</html>

+ 291 - 0
Areas/Admin/Views/Home/Main.cshtml

@@ -0,0 +1,291 @@
+@using MySystem.Models;
+@{
+    List<RightDic> menus = ViewBag.menus as List<RightDic>;
+    List<RightDic> datalist = ViewBag.datalist as List<RightDic>;
+    List<Dictionary<string, object>> statlist = ViewBag.statlist as List<Dictionary<string, object>>;
+    string RightInfo = ViewBag.RightInfo as string;
+    string Role = ViewBag.Role as string;
+    string tables = "";
+}
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>控制台</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+</head>
+<body>
+
+    <div class="layui-fluid">
+        @if(Role != "13")
+        {
+        <div class="layui-row layui-col-space15">
+            <div class="layui-col-md8">
+                <div class="layui-row layui-col-space15">
+                    <div class="layui-col-md6">
+                        <div class="layui-card">
+                            <div class="layui-card-header">快捷方式</div>
+                            <div class="layui-card-body">
+
+                                <div class="layui-carousel layadmin-carousel layadmin-shortcut">
+                                    <div carousel-item>
+                                        <ul class="layui-row layui-col-space10">
+                                            @foreach(RightDic sub in menus)
+                                            {
+                                                if (RightInfo.Contains("," + sub.Id + ","))
+                                                {
+                                                    string url = sub.Url;
+                                                    if (url.Contains("?"))
+                                                    {
+                                                        url += "&right=" + sub.Id;
+                                                    }
+                                                    else
+                                                    {
+                                                        url += "?right=" + sub.Id;
+                                                    }
+                                                    <li class="layui-col-xs3">
+                                                        <a lay-href="@url">
+                                                            <i class="layui-icon @(string.IsNullOrEmpty(sub.Icon) ? "layui-icon-component" : sub.Icon)"></i>
+                                                            <cite>@sub.Name</cite>
+                                                        </a>
+                                                    </li>
+                                                }
+                                            }
+                                        </ul>
+                                    </div>
+                                </div>
+
+                            </div>
+                        </div>
+                    </div>
+                    <div class="layui-col-md6">
+                        <div class="layui-card">
+                            <div class="layui-card-header">统计</div>
+                            <div class="layui-card-body">
+
+                                <div class="layui-carousel layadmin-carousel layadmin-backlog">
+                                    <div carousel-item>
+                                        <ul class="layui-row layui-col-space10">
+                                            @{int i=0;}
+                                            @foreach(Dictionary<string, object> sub in statlist)
+                                            {
+                                                i += 1;
+                                                if(i % 4 == 1 && i > 1)
+                                                {
+                                                    @Html.Raw("</ul><ul class=\"layui-row layui-col-space10\">");
+                                                }
+                                                <li class="layui-col-xs6">
+                                                    <a href="javascript:;" class="layadmin-backlog-body">
+                                                        <h3>@sub["Name"]</h3>
+                                                        <p><cite>@sub["Count"]</cite></p>
+                                                    </a>
+                                                </li>
+                                            }
+                                        </ul>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    @if(datalist.Count > 0)
+                    {
+                    <div class="layui-col-md12">
+                        <div class="layui-card">
+                            <div class="layui-tab layui-tab-brief layadmin-latestData">
+                                <ul class="layui-tab-title">
+                                    @{i=0;}
+                                    @foreach(RightDic sub in datalist)
+                                    {
+                                        i += 1;
+                                        <li class="@(i == 1 ? "layui-this" : "")">@sub.Name</li>
+                                    }
+                                </ul>
+                                <div class="layui-tab-content">
+                                    @{i=0;}
+                                    @foreach(RightDic sub in datalist)
+                                    {
+                                        i += 1;
+                                        string table = sub.Url.Split('/')[2];
+                                        tables += "'" + table + "',";
+                                        <div class="layui-tab-item @(i == 1 ? "layui-show" : "")">
+                                            <table id="LAY-index-Search@(table)"></table>
+                                        </div>
+                                    }
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    }
+                    
+                </div>
+            </div>
+
+            <div class="layui-col-md4">
+                <div class="layui-card">
+                    <div class="layui-card-header">版本信息</div>
+                    <div class="layui-card-body layui-text">
+                        <table class="layui-table">
+                            <colgroup>
+                                <col width="100">
+                                <col>
+                            </colgroup>
+                            <tbody>
+                                <tr>
+                                    <td>当前版本</td>
+                                    <td>
+                                        <script type="text/html" template>
+                                            v1.0
+                                        </script>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td>名称</td>
+                                    <td>
+                                        <script type="text/html" template>
+                                            客小爽管理平台
+                                        </script>
+                                    </td>
+                                </tr>
+                                <tr>
+                                    <td>短信条数</td>
+                                    <td>
+                                        <script type="text/html" template>
+                                            @ViewBag.SMSCount
+                                        </script>
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-col-m12 layui-col-space15">
+                <div class="layui-col-md6">
+                    <div class="layui-card">
+                        <div class="layui-card-header">
+                            新增创客数
+                        </div>
+                        <div class="layui-card-body" id="users" style="width: 100%;height:400px;">
+                        </div>
+                    </div>
+                </div>
+                <div class="layui-col-md6">
+                    <div class="layui-card">
+                        <div class="layui-card-header">
+                            新增商户数
+                        </div>
+                        <div class="layui-card-body" id="actives" style="width: 100%;height:400px;">
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-col-m12 layui-col-space15">
+                <div class="layui-col-md6">
+                    <div class="layui-card">
+                        <div class="layui-card-header">
+                            新增消费者数
+                        </div>
+                        <div class="layui-card-body" id="trades" style="width: 100%;height:400px;">
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        }
+    </div>
+
+    <script src="/layuiadmin/modules/Main_Admin.js"></script>
+    <script src="../../layuiadmin/layui/layui.js?t=1"></script>
+    <script src="../../admin/js/echart.min.js"></script>
+    <script>
+        layui.config({
+            base: '../../layuiadmin/'
+        }).extend({
+            index: 'lib/index'
+        }).use(['index', 'console', 'table'], function(){
+            var $ = layui.$
+            ,table = layui.table;
+
+            var tables = [@(Html.Raw(tables.TrimEnd(',')))];
+            //今日热搜
+            for(var i = 0; i < tables.length; i++){
+                table.render({
+                    elem: '#LAY-index-Search' + tables[i]
+                    , url: '/Admin/' + tables[i] + '/IndexData' //模拟接口
+                    , cols: eval(tables[i] + '_cols')
+                    , page: true
+                    , text: '对不起,加载出现异常!'
+                    , done: function (res, curr, count) {
+                        $(".layui-none").text("无数据");
+                    }
+                    , skin: 'line'
+                });
+            }
+        });
+
+        var myChart = echarts.init(document.getElementById('users'));
+
+        function showEChart() {
+            var option = {
+                tooltip: {},
+                xAxis: {
+                    type: 'category',
+                    data: ['11月19日', '11月20日', '11月21日', '11月22日', '11月23日', '11月24日', '11月25日']
+                },
+                yAxis: {
+                    type: 'value'
+                },
+                series: [
+                    {
+                        data: [150, 230, 224, 218, 135, 147, 260],
+                        type: 'line'
+                    }
+                ]
+            };
+            myChart.setOption(option);
+        }
+        showEChart();
+
+
+        var myChartHeight = echarts.init(document.getElementById('actives'));
+		var optionHeight = {
+            tooltip: {},
+            xAxis: {
+                type: 'category',
+                data: ['11月19日', '11月20日', '11月21日', '11月22日', '11月23日', '11月24日', '11月25日']
+            },
+            yAxis: {
+                type: 'value'
+            },
+            series: [
+                {
+                    data: [820, 932, 901, 934, 1290, 1330, 1320],
+                    type: 'line',
+                    smooth: true
+                }
+            ]
+		};
+		myChartHeight.setOption(optionHeight);
+
+
+		var myChartWeight = echarts.init(document.getElementById('trades'));
+		var optionWeight = {
+            tooltip: {},
+            xAxis: {
+                data: ["11月19日","11月20日","11月21日","11月22日","11月23日","11月24日","11月25日"]
+            },
+            yAxis: {},
+            series: [{
+                name: '新增创客数',
+                type: 'bar',
+                data: [50, 20, 36, 10, 10, 20, 66]
+            }]
+		};
+		myChartWeight.setOption(optionWeight);
+    </script>
+</body>
+</html>

+ 76 - 0
Areas/Admin/Views/Home/Search.cshtml

@@ -0,0 +1,76 @@
+@using MySystem.Models;
+@{
+    List<RightDic> menus = ViewBag.menus as List<RightDic>;
+    string RightInfo = ViewBag.RightInfo as string;
+}
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>搜索菜单</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+    <style>
+        .layadmin-carousel{
+            height: 650px !important;
+        }
+    </style>
+</head>
+<body>
+    <div class="layui-fluid">
+        <div class="layui-row layui-col-space15">
+            <div class="layui-col-sm12">
+                <div class="layui-card">
+                    <div class="layui-card-header">快捷方式</div>
+                    <div class="layui-card-body">
+                        <div class="layui-carousel layadmin-carousel layadmin-shortcut">
+                            <div carousel-item>
+                                <ul class="layui-row layui-col-space10">
+                                    @foreach(RightDic sub in menus)
+                                    {
+                                        if (RightInfo.Contains("," + sub.Id + ","))
+                                        {
+                                            string url = sub.Url;
+                                            if (url.Contains("?"))
+                                            {
+                                                url += "&right=" + sub.Id;
+                                            }
+                                            else
+                                            {
+                                                url += "?right=" + sub.Id;
+                                            }
+                                            <li class="layui-col-xs2">
+                                                <a lay-href="@url">
+                                                    <i class="layui-icon @(string.IsNullOrEmpty(sub.Icon) ? "layui-icon-component" : sub.Icon)"></i>
+                                                    <cite>@sub.Name</cite>
+                                                </a>
+                                            </li>
+                                        }
+                                    }
+                                </ul>
+                            </div>
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/modules/Main_Admin.js"></script>
+    <script src="../../layuiadmin/layui/layui.js?t=1"></script>
+    <script>
+        layui.config({
+            base: '../../layuiadmin/'
+        }).extend({
+            index: 'lib/index'
+        }).use(['index', 'console', 'table'], function(){
+            var $ = layui.$
+            ,table = layui.table;
+        });
+    </script>
+</body>
+</html>

+ 216 - 0
Areas/Admin/Views/ProjectVersion/Edit.cshtml

@@ -0,0 +1,216 @@
+@using MySystem.Models;
+@{ProjectVersion editData = ViewBag.data as ProjectVersion;}
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    
+}
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>小程序版本(修改)</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <script src="/admin/js/LAreaData2.js"></script>
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Id" value="@editData.Id" />
+        
+        <div class="layui-card">
+          <div class="layui-card-body">
+            <div class="layui-tab" lay-filter="mytabbar">
+                <ul class="layui-tab-title">
+                    <li class="layui-this" lay-id="1">基本资料</li>
+                </ul>
+                <div class="layui-tab-content mt20">
+                        <div class="layui-tab-item layui-show">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">版本号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="VerNum" name="VerNum"
+                                        value="@editData.VerNum" maxlength="20" lay-verify="required|"
+                                        autocomplete="off" placeholder="请输入版本号">
+                                </div>
+                            </div>
+                        </div>
+
+                </div>
+            </div>
+            <div class="layui-form-item layui-hide">
+                <input type="button" lay-submit lay-filter="LAY-list-front-submit" id="LAY-list-front-submit" value="确认">
+            </div>
+          </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/other/oss/upload-min.js"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        //反馈意见
+ @(Html.Raw(Library.Control.kindeditorVar("ReturnNote")))
+
+        
+        //编辑器
+        KindEditor.ready(function (K) {
+            //反馈意见
+ @(Html.Raw(Library.Control.kindeditor("ReturnNote", 1)))
+
+        });
+
+        var ids = "";
+        function getChildren(obj) {
+            $.each(obj, function (index, value) {
+                var id = obj[index].id;
+                ids += id + ",";
+                var children = obj[index].children;
+                if (children) {
+                    getChildren(children);
+                }
+            });
+        }
+
+        function AreasProvinceInit(tagId, areasVal, form) {
+            for (var i = 0; i < provs_data.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(provs_data[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "Province").append('<option value="' + provs_data[i].value + '"' + sel + '>' + provs_data[i].text + '</option>');
+            }
+            form.render();
+        }
+
+        function AreasProvinceSelected(tagId, areasVal, form, value) {
+            $("#" + tagId + "City").html('<option value="">市</option>');
+            var list = citys_data[value];
+            for (var i = 0; i < list.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(list[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "City").append('<option value="' + list[i].value + '"' + sel + '>' + list[i].text + '</option>');
+            }
+            $("#" + tagId + "Area").html('<option value="">县/区</option>');
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+
+        function AreasCitySelected(tagId, areasVal, form, value) {
+            $("#" + tagId + "Area").html('<option value="">县/区</option>');
+            var list = dists_data[value];
+            for (var i = 0; i < list.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(list[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "Area").append('<option value="' + list[i].value + '"' + sel + '>' + list[i].text + '</option>');
+            }
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+
+        function AreasAreaSelected(tagId, form) {
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+        function movePrev(obj, tagId) {
+            $(obj).parent().prev().insertAfter($(obj).parent());
+            checkPics(tagId);
+        }
+        function moveNext(obj, tagId) {
+            $(obj).parent().next().insertBefore($(obj).parent());
+            checkPics(tagId);
+        }
+        function deletePic(obj, tagId) {
+            $(obj).parent().remove();
+            checkPics(tagId);
+        }
+        function checkPics(tagId) {
+            var pics = "";
+            var texts = "";
+            $("#" + tagId + "Image div img").each(function (i) {
+                pics += $(this).attr("src").replace(osshost, '') + "|";
+            });
+            $("#" + tagId + "Image div input").each(function (i) {
+                texts += $(this).val() + "|";
+            });
+            if (pics == "") {
+                $("#" + tagId).val("");
+            } else {
+                pics = pics.substring(0, pics.length - 1);
+                texts = texts.substring(0, pics.length - 1);
+                $("#" + tagId).val(pics + "#cut#" + texts);
+            }
+        }
+        function checkBox(tagId) {
+            var text = "";
+            $("input[type=checkbox][name=" + tagId + "List]:checked").each(function (i) {
+                text += $(this).val() + ",";
+            });
+            $("#" + tagId).val(text);
+        }
+        function showBigPic(picpath) {
+            parent.layer.open({
+                type: 1,
+                title: false,
+                closeBtn: 0,
+                shadeClose: true,
+                area: ['auto', 'auto'],
+                content: '<img src="' + picpath + '" style="max-width:800px; max-height:800px;" />'
+            });
+        }
+
+        var tree;
+        var element;
+        var upload;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit', 'laydate', 'element', 'croppers', 'transfer', 'tree', 'util'], function () {
+            var $ = layui.$
+                , form = layui.form
+                , layer = layui.layer
+                , layedit = layui.layedit
+                , laydate = layui.laydate
+                , croppers = layui.croppers
+                , transfer = layui.transfer
+                , util = layui.util;
+            tree = layui.tree;
+            element = layui.element;
+            upload = layui.upload;
+        
+            //Hash地址的定位
+            var layid = location.hash.replace(/^#test=/, '');
+            element.tabChange('test', layid);
+            element.on('tab(test)', function (elem) {
+                location.hash = 'test=' + $(this).attr('lay-id');
+            });
+    
+            //日期
+            
+
+            //上传文件
+
+
+            //穿梭框
+            
+
+            //TreeView,比如权限管理
+            
+
+            //省市区
+            
+        })
+
+    </script>
+</body>
+</html>

+ 94 - 0
Areas/Admin/Views/ProjectVersion/Index.cshtml

@@ -0,0 +1,94 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    
+}
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>小程序版本</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <style>
+        .layui-input-inline{
+            width: 175px !important;
+        }
+        .layui-form-label{
+            width: 85px !important;
+        }
+        .layui-inline{
+            margin-right: 0px !important;
+        }
+        .w100{
+            width: 100px !important;
+        }
+        .ml50{
+            margin-left: 50px !important;
+        }
+    </style>
+</head>
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+                <div class="layui-form-item">
+                    <div class="layui-inline ml50">
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-search">
+                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>查询
+                        </button>
+                        <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
+                            <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
+                        </button>
+                    </div>
+                </div>
+            </div>
+
+            <div class="layui-card-body">
+                <div style="padding-bottom: 10px;">
+                </div>
+                
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
+                    
+                </script>
+            </div>
+        </div>
+    </div>
+    <div id="excelForm" style="display:none; padding:20px;">
+        <div class="layui-tab-item layui-show">
+            <div class="layui-form-item">
+                <label class="layui-form-label">模板下载</label>
+                <div class="layui-form-mid layui-word-aux" id="excelTemp">
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">excel文件</label>
+                <div class="layui-form-mid layui-word-aux">
+                    <div class="layui-upload">
+                        <input type="file" id="ExcelFile" name="ExcelFile" value="">
+                    </div>
+                    <div class="mt10" id="ExcelFileList">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item ml10">
+            <div class="layui-input-block">
+                <button type="button" class="layui-btn" onclick="ConfirmImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules/ProjectVersion_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+        
+    </script>
+</body>
+</html>

BIN
Areas/Api/.DS_Store


+ 52 - 0
Areas/Api/Controllers/PublicMethodController.cs

@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using System.DrawingCore.Imaging;
+using System.IO;
+using Library;
+
+// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
+
+namespace MySystem.Areas.Api.Controllers
+{
+    [Area("Api")]
+    [Route("Api/[controller]/[action]")]
+    public class PublicMethodController : BaseController
+    {
+        public PublicMethodController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+        }
+        #region 图片验证码
+        public FileContentResult CheckCode()
+        {
+            string code = function.get_Random(4);
+            var bitmap = VerifyCodeHelper.GetSingleObj().CreateBitmapByImgVerifyCode(code, 120, 40);
+            MemoryStream stream = new MemoryStream();
+            bitmap.Save(stream, ImageFormat.Gif);
+            function.WriteCookie(_accessor.HttpContext, "checkcode", code);
+            return File(stream.ToArray(), "image/gif");
+        }
+        #endregion
+        
+        #region 图片验证码
+        public FileContentResult PictureCode(string Tag = "")
+        {
+            string code = function.get_Random(4);
+            var bitmap = VerifyCodeHelper.GetSingleObj().CreateBitmapByImgVerifyCode(code, 120, 40);
+            MemoryStream stream = new MemoryStream();
+            bitmap.Save(stream, ImageFormat.Gif);
+            RedisDbconn.Instance.Set(Tag, code);
+            RedisDbconn.Instance.SetExpire(Tag, 600);
+            return File(stream.ToArray(), "image/jpg");
+        }
+        #endregion
+
+
+
+    }
+}

+ 25 - 0
Startup.cs

@@ -140,6 +140,31 @@ namespace MySystem
                     pattern: "{controller=Home}/{action=Index}/{Id?}");
                     pattern: "{controller=Home}/{action=Index}/{Id?}");
             });
             });
 
 
+            initMainServer();
+        }
+
+        private void initMainServer()
+        {
+            Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
+            Library.OtherMySqlConn.connstr = Configuration["Setting:SqlConnStr"];
+            System.Data.DataTable tablecollection = Library.OtherMySqlConn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = 'MiniProgram'");
+            foreach (System.Data.DataRow subtable in tablecollection.Rows)
+            {
+                Dictionary<string, string> Columns = new Dictionary<string, string>();
+                System.Data.DataTable columncollection = Library.OtherMySqlConn.dtable("select COLUMN_NAME,DATA_TYPE from information_schema.columns where table_schema = 'MiniProgram' and TABLE_NAME='" + subtable["TABLE_NAME"].ToString() + "'");
+                foreach (System.Data.DataRow column in columncollection.Rows)
+                {
+                    string datatype = column["DATA_TYPE"].ToString();
+                    if (datatype == "decimal")
+                    {
+                        datatype = "numeric";
+                    }
+                    Columns.Add(column["COLUMN_NAME"].ToString(), datatype);
+                }
+                tables.Add(subtable["TABLE_NAME"].ToString(), Columns);
+            }
+            Library.OtherMySqlConn.connstr = "";
+            PublicFunction.MainTables = tables;
         }
         }
     }
     }
 }
 }

BIN
wwwroot/.DS_Store


BIN
wwwroot/admin/.DS_Store


BIN
wwwroot/admin/images/ABackground-logo.png


BIN
wwwroot/admin/images/logo.png


BIN
wwwroot/favicon.ico


BIN
wwwroot/layuiadmin/.DS_Store


+ 1 - 11
wwwroot/layuiadmin/modules/ProjectVersion_Admin.js

@@ -92,14 +92,7 @@ $('#CreateDate').val(value);
         , cols: [[
         , cols: [[
             { type: 'checkbox', fixed: 'left' }
             { type: 'checkbox', fixed: 'left' }
     		, {field:'Id', fixed: 'left', title:'ID', width:80, sort: true, unresize: true}
     		, {field:'Id', fixed: 'left', title:'ID', width:80, sort: true, unresize: true}
-            ,{field:'ProjectId', width: 200, title:'小程序项目', sort: true}
-,{field:'CreateDate', width: 200, title:'创建时间', sort: true}
-,{field:'UserIdRealName', width: 200, title:'所属用户真实姓名', sort: true}
-,{field:'UserIdMobile', width: 200, title:'所属用户手机号', sort: true}
-,{field:'DeveloperIdNickName', width: 200, title:'开发者昵称', sort: true}
-,{field:'DeveloperIdRealName', width: 200, title:'开发者真实姓名', sort: true}
-,{field:'DeveloperIdMobile', width: 200, title:'开发者手机号', sort: true}
-,{field:'VerNum', width: 200, title:'版本号', sort: true}
+            ,{field:'VerNum', width: 200, title:'版本号', sort: true}
 
 
             , {field:'Sort', fixed: 'right', title:'排序', width:80, edit: 'text'}
             , {field:'Sort', fixed: 'right', title:'排序', width:80, edit: 'text'}
             , { title: '操作', align: 'center', fixed: 'right', toolbar: '#table-list-tools' }
             , { title: '操作', align: 'center', fixed: 'right', toolbar: '#table-list-tools' }
@@ -160,9 +153,6 @@ $('#CreateDate').val(value);
                         });                        
                         });                        
                     }, 300);
                     }, 300);
 
 
-                    //反馈意见
- iframeWindow.ReturnNoteedit.sync();
-
                     
                     
                     
                     
                     
                     

BIN
wwwroot/other/.DS_Store


BIN
wwwroot/public/.DS_Store


BIN
wwwroot/skin/.DS_Store


BIN
wwwroot/template/.DS_Store