lcl 1 year ago
parent
commit
e429597896

+ 1 - 0
AppStart/PublicFunction.cs

@@ -497,6 +497,7 @@ namespace MySystem
         #endregion
 
         #region 数据库结构
+        public static Dictionary<string, Dictionary<string, string>> KxsMainTables = new Dictionary<string, Dictionary<string, string>>();
         public static Dictionary<string, Dictionary<string, string>> MainTables = new Dictionary<string, Dictionary<string, string>>();
         public static Dictionary<string, Dictionary<string, string>> CashTables = new Dictionary<string, Dictionary<string, string>>();
         public static Dictionary<string, Dictionary<string, string>> BsTables = new Dictionary<string, Dictionary<string, string>>();

+ 339 - 0
Areas/Admin/Controllers/BsServer/RightDicController.cs

@@ -0,0 +1,339 @@
+/*
+ * 单页内容
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.BsModels;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class RightDicController : BaseController
+    {
+        public RightDicController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["BsSqlConnStr"].ToString();
+        }
+
+        #region 单页内容列表
+
+        /// <summary>
+        /// 根据条件查询单页内容列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(RightDic data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询单页内容列表
+
+        /// <summary>
+        /// 单页内容列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(RightDic data, int page = 1, int limit = 30)
+        {
+            List<RightDic> diclist = bsdb.RightDic.OrderBy(m => m.Id).ToList();
+            foreach (RightDic dic in diclist)
+            {
+                int nameLength = dic.Id.Split('_').Length;
+                for (int i = 1; i < nameLength; i++)
+                {
+                    dic.Name = "  " + dic.Name;
+                }
+            }
+            Dictionary<string, object> obj = new Dictionary<string, object>();
+            obj.Add("code", 0);
+            obj.Add("msg", "");
+            obj.Add("count", diclist.Count);
+            obj.Add("data", diclist);
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 修改
+
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, string Id = "")
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            RightDic editData = bsdb.RightDic.FirstOrDefault(m => m.Id == Id) ?? new RightDic();
+            ViewBag.data = editData;
+
+            string PColId = "";
+            if (editData.Id.Contains("_"))
+            { 
+                PColId = editData.Id.Substring(0, editData.Id.LastIndexOf("_"));
+            }
+            else
+            {
+                PColId = editData.Id;
+            }
+            ViewBag.OldPColId = PColId;
+            ViewBag.PColId = PColId;
+            return View();
+        }
+
+        [HttpPost]
+        public string EditPost(RightDic data, string OldPColId, string PColId)
+        {
+            RightDic adddic = new RightDic();
+            bool op = false;
+            RightDic dic = bsdb.RightDic.FirstOrDefault(m => m.Id == data.Id);
+            if (dic != null)
+            {
+                if (OldPColId != PColId)
+                {
+                    string words = "123456789abcdefghijklmnopqrstuvwxyz";
+                    if (!string.IsNullOrEmpty(PColId))
+                    {
+                        int Len = PColId.Length + 2;
+                        int checkcount = bsdb.RightDic.Count(m => m.Id.StartsWith(PColId) && m.Id.Length == Len);
+                        if (checkcount > 0)
+                        {
+                            RightDic checkdic = bsdb.RightDic.Where(m => m.Id.StartsWith(PColId) && m.Id.Length == Len).OrderByDescending(m => m.Id).FirstOrDefault();
+                            string last_id = "";
+                            string[] idlist = checkdic.Id.Split('_');
+                            last_id = idlist[idlist.Length - 1];
+                            last_id = words.Substring(words.IndexOf(last_id) + 1, 1);
+                            adddic.Id = PColId + "_" + last_id;
+                        }
+                        else
+                        {
+                            adddic.Id = PColId + "_1";
+                        }
+                    }
+                    else
+                    {
+                        int checkcount = bsdb.RightDic.Count(m => m.Id.Length == 1);
+                        if (checkcount > 0)
+                        {
+                            RightDic checkdic = bsdb.RightDic.Where(m => m.Id.Length == 1).OrderByDescending(m => m.Id).FirstOrDefault();
+                            string last_id = words.Substring(words.IndexOf(checkdic.Id) + 1, 1);
+                            adddic.Id = PColId + "_" + last_id;
+                        }
+                        else
+                        {
+                            adddic.Id = "1";
+                        }
+                    }
+                    adddic.Name = data.Name;
+                    adddic.MainMenu = data.MainMenu;
+                    adddic.MainStat = data.MainStat;
+                    adddic.MainDataList = data.MainDataList;
+                    adddic.Url = dic.Url;
+                    adddic.RightLevel = dic.RightLevel;
+                    bsdb.RightDic.Remove(dic);
+                    op = true;
+                }
+                else
+                {
+                    dic.Name = data.Name;
+                    dic.MainMenu = data.MainMenu;
+                    dic.MainStat = data.MainStat;
+                    dic.MainDataList = data.MainDataList;
+                }
+            }
+            AddSysLog(data.Id.ToString(), "RightDic", "update");
+            bsdb.SaveChanges();
+            if (op)
+            {
+                bsdb.RightDic.Add(adddic);
+                bsdb.SaveChanges();
+            }
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改
+
+        /// <summary>
+        /// 修改
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult RightSet(string Id = "")
+        {
+            List<OperateRightList> rights = bsdb.OperateRightList.ToList();
+            ViewBag.rights = rights;
+            ViewBag.Id = Id;
+
+            List<string> RightList = new List<string>();
+            List<MenuRight> MenuRights = bsdb.MenuRight.Where(m => m.MenuId.StartsWith(Id)).ToList();
+            foreach (MenuRight sub in MenuRights)
+            {
+                RightList.Add(sub.MenuId.Replace(Id + "_", "") + "_" + sub.Name);
+            }
+            ViewBag.RightList = RightList;
+
+            RightDic editData = bsdb.RightDic.FirstOrDefault(m => m.Id == Id) ?? new RightDic();
+            ViewBag.OtherRight = editData.OtherRight;
+            return View();
+        }
+
+        [HttpPost]
+        public string RightSetPost(string Id, string OtherRight, string RightList)
+        {
+            IQueryable<MenuRight> MenuRights = bsdb.MenuRight.Where(m => m.MenuId.StartsWith(Id));
+            foreach (MenuRight sub in MenuRights)
+            {
+                bsdb.MenuRight.Remove(sub);
+            }
+            bsdb.SaveChanges();
+            if (!string.IsNullOrEmpty(RightList))
+            {
+                string[] Rights = RightList.TrimEnd(',').Split(',');
+                foreach (string Right in Rights)
+                {
+                    string[] list = Right.Split('_');
+                    bsdb.MenuRight.Add(new MenuRight()
+                    {
+                        MenuId = Id + "_" + list[0],
+                        Name = list[1],
+                    });
+                }
+            }
+            RightDic edit = bsdb.RightDic.FirstOrDefault(m => m.Id == Id);
+            if(edit != null)
+            {
+                edit.OtherRight = OtherRight;
+            }
+            bsdb.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(string Id, int Sort)
+        {
+            RightDic edit = bsdb.RightDic.FirstOrDefault(m => m.Id == Id);
+            if (edit != null)
+            { 
+                edit.Sort = Sort;
+                bsdb.SaveChanges();
+            }
+            return "success";
+        }
+        #endregion
+
+        #region 设置快捷方式
+        /// <summary>
+        /// 设置快捷方式
+        /// </summary>
+        /// <param name="Id"></param>
+        public string SetMainMenu(string Id, bool value)
+        {
+            RightDic edit = bsdb.RightDic.FirstOrDefault(m => m.Id == Id);
+            if (edit != null)
+            {
+                if (value)
+                {
+                    edit.MainMenu = 1;
+                }
+                else
+                { 
+                    edit.MainMenu = 0;
+                }
+                bsdb.SaveChanges();
+            }
+            return "success";
+        }
+        #endregion
+
+        #region 统计
+        /// <summary>
+        /// 统计
+        /// </summary>
+        /// <param name="Id"></param>
+        public string SetMainStat(string Id, bool value)
+        {
+            RightDic edit = bsdb.RightDic.FirstOrDefault(m => m.Id == Id);
+            if (edit != null)
+            {
+                if (value)
+                {
+                    edit.MainStat = 1;
+                }
+                else
+                { 
+                    edit.MainStat = 0;
+                }
+                bsdb.SaveChanges();
+            }
+            return "success";
+        }
+        #endregion
+
+        #region 主界面数据列表
+        /// <summary>
+        /// 主界面数据列表
+        /// </summary>
+        /// <param name="Id"></param>
+        public string SetMainDataList(string Id, bool value)
+        {
+            RightDic edit = bsdb.RightDic.FirstOrDefault(m => m.Id == Id);
+            if (edit != null)
+            {
+                if (value)
+                {
+                    edit.MainDataList = 1;
+                }
+                else
+                { 
+                    edit.MainDataList = 0;
+                }
+                bsdb.SaveChanges();
+            }
+            return "success";
+        }
+        #endregion
+
+        #region 设置图标
+        /// <summary>
+        /// 设置图标
+        /// </summary>
+        /// <param name="Id"></param>
+        public string SetIcon(string Id, string value)
+        {
+            RightDic edit = bsdb.RightDic.FirstOrDefault(m => m.Id == Id);
+            if (edit != null)
+            {
+                edit.Icon = value;
+                bsdb.SaveChanges();
+            }
+            return "success";
+        }
+        #endregion
+
+    }
+}

+ 22 - 14
Areas/Admin/Controllers/MainServer/OrdersController.cs

@@ -30,7 +30,7 @@ namespace MySystem.Areas.Admin.Controllers
     {
         public OrdersController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
         {
-            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["KxsSqlConnStr"].ToString();
         }
 
         #region 创客订单列表
@@ -70,7 +70,7 @@ namespace MySystem.Areas.Admin.Controllers
             Fields.Add("TopUserId", "0");
 
 
-            string condition = " and Status>-1";
+            string condition = " and Status>-1 and ProductId=49";
             //平台订单号
             if (!string.IsNullOrEmpty(OrderNo))
             {
@@ -200,7 +200,7 @@ namespace MySystem.Areas.Admin.Controllers
             }
 
 
-            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Orders", Fields, "Id desc", "0", page, limit, condition);
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).IndexData("Orders", Fields, "Id desc", "0", page, limit, condition);
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
             foreach (Dictionary<string, object> dic in diclist)
             {
@@ -413,7 +413,7 @@ namespace MySystem.Areas.Admin.Controllers
             Fields.Add("SeoTitle", data.SeoTitle);
             Fields.Add("SeoKeyword", data.SeoKeyword);
             Fields.Add("SeoDescription", data.SeoDescription);
-            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("Orders", Fields, 0);
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).Add("Orders", Fields, 0);
             AddSysLog(data.Id.ToString(), "Orders", "add");
             db.SaveChanges();
 
@@ -461,7 +461,7 @@ namespace MySystem.Areas.Admin.Controllers
             Fields.Add("SeoTitle", data.SeoTitle);
             Fields.Add("SeoKeyword", data.SeoKeyword);
             Fields.Add("SeoDescription", data.SeoDescription);
-            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Orders", Fields, data.Id);
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).Edit("Orders", Fields, data.Id);
             AddSysLog(data.Id.ToString(), "Orders", "update");
             db.SaveChanges();
 
@@ -521,13 +521,21 @@ namespace MySystem.Areas.Admin.Controllers
                     pro.StoreId = StoreId;
                     pro.SnNos = SnNos;
                 }
+                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == SnNos);
+                if(pos != null)
+                {
+                    pos.StoreId = StoreId;
+                    pos.TransferTime = DateTime.Now;
+                    pos.BuyUserId = data.UserId;
+                    pos.UserId = data.UserId;
+                }
                 if (i == 0)
                 {
                     Fields.Add("StoreId", StoreId);
                 }
             }
 
-            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Orders", Fields, data.Id);
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).Edit("Orders", Fields, data.Id);
             AddSysLog(data.Id.ToString(), "Orders", "Send");
             db.SaveChanges();
 
@@ -676,7 +684,7 @@ namespace MySystem.Areas.Admin.Controllers
                 int id = int.Parse(subid);
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Fields.Add("Status", -1);
-                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Orders", Fields, id);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).Edit("Orders", Fields, id);
             }
             db.SaveChanges();
 
@@ -700,7 +708,7 @@ namespace MySystem.Areas.Admin.Controllers
                 int id = int.Parse(subid);
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Fields.Add("Status", 1);
-                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Orders", Fields, id);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).Edit("Orders", Fields, id);
             }
             db.SaveChanges();
             return "success";
@@ -723,7 +731,7 @@ namespace MySystem.Areas.Admin.Controllers
                 int id = int.Parse(subid);
                 Dictionary<string, object> Fields = new Dictionary<string, object>();
                 Fields.Add("Status", 0);
-                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Orders", Fields, id);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).Edit("Orders", Fields, id);
             }
             db.SaveChanges();
             return "success";
@@ -738,7 +746,7 @@ namespace MySystem.Areas.Admin.Controllers
         /// <param name="Id"></param>
         public string Sort(int Id, int Sort)
         {
-            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("Orders", Sort, Id);
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).Sort("Orders", Sort, Id);
 
             AddSysLog(Id.ToString(), "Orders", "sort");
             return "success";
@@ -791,7 +799,7 @@ namespace MySystem.Areas.Admin.Controllers
             Fields.Add("SnNos", "2"); //SN编号
             Fields.Add("TopUserId", "0");
 
-            string condition = " and Status>-1";
+            string condition = " and Status>-1 and ProductId=49";
             //创客编号
             if (!string.IsNullOrEmpty(UserIdMakerCode))
             {
@@ -861,7 +869,7 @@ namespace MySystem.Areas.Admin.Controllers
             var workbook = new XSSFWorkbook();
             //创建表
             var table = workbook.CreateSheet("Sheet1");
-            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Orders", Fields, "Id desc", "0", 1, 20000, condition, "UserId,OrderNo,RealName,Mobile,TotalPrice,Areas,Address,ErpName,ErpCode,SendDate,PayMode,TradeNo,StoreId,RefundStatus,DeliveryType,SendStatus,ProductId,StoreContact,StoreType,StoreUserId,TopUserId,PayStatus,BuyCount,Remark,Id", false);
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).IndexData("Orders", Fields, "Id desc", "0", 1, 20000, condition, "UserId,OrderNo,RealName,Mobile,TotalPrice,Areas,Address,ErpName,ErpCode,SendDate,PayMode,TradeNo,StoreId,RefundStatus,DeliveryType,SendStatus,ProductId,StoreContact,StoreType,StoreUserId,TopUserId,PayStatus,BuyCount,Remark,Id", false);
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
             Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
             ReturnFields.Add("UserIdMakerCode", "创客编号");
@@ -1067,7 +1075,7 @@ namespace MySystem.Areas.Admin.Controllers
             Fields.Add("SnNos", "2"); //SN编号
             Fields.Add("TopUserId", "0");
 
-            string condition = " and Status>-1";
+            string condition = " and Status>-1 and ProductId=49";
             //创客编号
             if (!string.IsNullOrEmpty(UserIdMakerCode))
             {
@@ -1157,7 +1165,7 @@ namespace MySystem.Areas.Admin.Controllers
                 string end = datelist[1];
                 condition += " and SendDate>='" + start + " 00:00:00' and SendDate<='" + end + " 23:59:59'";
             }
-            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Orders", Fields, "Id desc", "0", 1, 20000, condition, "UserId,OrderNo,RealName,Mobile,TotalPrice,Areas,Address,ErpName,ErpCode,SendDate,PayMode,PayDate,TradeNo,StoreId,RefundStatus,DeliveryType,SendStatus,ProductId,StoreContact,StoreType,StoreUserId,TopUserId,PayStatus,BuyCount,Remark,Id", false);
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.KxsMainTables).IndexData("Orders", Fields, "Id desc", "0", 1, 20000, condition, "UserId,OrderNo,RealName,Mobile,TotalPrice,Areas,Address,ErpName,ErpCode,SendDate,PayMode,PayDate,TradeNo,StoreId,RefundStatus,DeliveryType,SendStatus,ProductId,StoreContact,StoreType,StoreUserId,TopUserId,PayStatus,BuyCount,Remark,Id", false);
             List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
             foreach (Dictionary<string, object> dic in diclist)
             {

+ 1644 - 0
Areas/Admin/Controllers/MainServer/StoreHouseController.cs

@@ -0,0 +1,1644 @@
+/*
+ * 仓库
+ */
+
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Data;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using MySystem.Models;
+using Library;
+using LitJson;
+using MySystemLib;
+
+namespace MySystem.Areas.Admin.Controllers
+{
+    [Area("Admin")]
+    [Route("Admin/[controller]/[action]")]
+    public class StoreHouseController : BaseController
+    {
+        public StoreHouseController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+        }
+
+        #region 仓库列表
+
+        /// <summary>
+        /// 根据条件查询仓库列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Index(StoreHouse data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询仓库列表
+
+        /// <summary>
+        /// 仓库列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult IndexData(StoreHouse data, string UserIdMakerCode, string UserIdRealName, string BrandId, string ManageUserIdRealName, string ManageUserIdMobile, string ManageUserIdMakerCode, string StoreStatusSelect, string CreateDateData, string MakerCode, string YZOpCode, string OpStatusSelect, string StoreKindSelect, int ShowFlag = 0, int page = 1, int limit = 30)
+        {
+
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+
+            Fields.Add("StoreNo", "1"); //仓库编号
+            Fields.Add("StoreName", "1"); //仓库名称
+            Fields.Add("ManagerEmail", "1"); //管理者邮箱
+            if (ShowFlag == 0)
+            {
+                Dictionary<string, object> objs = new Dictionary<string, object>();
+                return Json(objs);
+            }
+
+            string condition = " and Status>-1";
+            //品牌
+            if (!string.IsNullOrEmpty(BrandId))
+            {
+                condition += " and BrandId =" + BrandId;
+            }
+            //仓库归属人创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //仓库归属人真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                DataTable dt = OtherMySqlConn.dtable("SELECT Id FROM Users WHERE RealName like '%" + UserIdRealName + "%'");
+                var Count = dt.Rows.Count;
+                // int times = 0;
+                string UserIds = "";
+                foreach (DataRow item in dt.Rows)
+                {
+                    UserIds += item["Id"].ToString() + ",";
+                }
+                condition += " and UserId in (" + UserIds.TrimEnd(',') + ")";
+            }
+            //仓库管理员真实姓名
+
+            if (!string.IsNullOrEmpty(ManageUserIdRealName))
+            {
+                DataTable dts = OtherMySqlConn.dtable("SELECT Id FROM Users WHERE RealName like '%" + ManageUserIdRealName + "%'");
+                var Counts = dts.Rows.Count;
+                // int time = 1;
+                string UserIdss = "";
+                foreach (DataRow items in dts.Rows)
+                {
+                    UserIdss += items["Id"].ToString() + ",";
+                }
+                condition += " and UserId in (" + UserIdss.TrimEnd(',') + ")";
+            }
+            //仓库管理员手机号
+            if (!string.IsNullOrEmpty(ManageUserIdMobile))
+            {
+                condition += " and ManageUserId in (select ManageUserId from UserForMobile where Mobile='" + ManageUserIdMobile + "')";
+            }
+            //仓库管理员创客编号
+            if (!string.IsNullOrEmpty(ManageUserIdMakerCode))
+            {
+                condition += " and ManageUserId in (select ManageUserId from UserForMakerCode where MakerCode='" + ManageUserIdMakerCode + "')";
+            }
+            //仓库状态
+            if (!string.IsNullOrEmpty(StoreStatusSelect))
+            {
+                condition += " and Status=" + StoreStatusSelect;
+            }
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                string start = datelist[0];
+                string end = datelist[1];
+                condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'";
+            }
+            //下线创客编号
+            if (!string.IsNullOrEmpty(MakerCode))
+            {
+                var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode();
+                if (userForMakerCode.UserId > 0)
+                {
+                    var user = db.Users.FirstOrDefault(m => m.Id == userForMakerCode.UserId);
+                    var users = db.Users.Where(m => m.ParentNav.Contains("," + user.Id.ToString() + ",")).ToList();
+                    string userIds = "";
+                    foreach (var item in users)
+                    {
+                        userIds += item.Id + ",";
+                    }
+                    userIds += user.Id;//下线创客Id包含自己
+                    string Id = "";
+                    DataTable dt = OtherMySqlConn.dtable("SELECT Id FROM StoreHouse WHERE UserId IN(" + userIds.TrimEnd(',') + ") AND `Status`=1 AND Sort=0 AND UserId>1");
+                    foreach (DataRow item in dt.Rows)
+                    {
+                        Id += item["Id"].ToString() + ",";
+                    }
+                    condition += " and Id in (" + Id.TrimEnd(',') + ")";
+
+                }
+            }
+            //是否关联
+            if (!string.IsNullOrEmpty(OpStatusSelect))
+            {
+                if (int.Parse(OpStatusSelect) > 0)
+                {
+                    condition += " and OpId>0";
+                }
+                else
+                {
+                    condition += " and OpId=0";
+
+                }
+            }
+            //是否运营仓
+            if (!string.IsNullOrEmpty(StoreKindSelect))
+            {
+                if (int.Parse(StoreKindSelect) > 0)
+                {
+                    condition += " and Sort>0 and StoreKind=2";
+                }
+                else
+                {
+                    condition += " and Sort=0 and StoreKind!=2";
+
+                }
+            }
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("StoreHouse", Fields, "Id desc", "0", page, limit, condition);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //仓库归属人
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdMakerCode"] = userid_Users.MakerCode;
+                dic["UserIdRealName"] = userid_Users.RealName;
+                //产品类型
+                dic["BrandId"] = RelationClass.GetKqProductBrandList(dic["BrandId"].ToString());
+                //仓库管理员
+                int ManageUserId = int.Parse(function.CheckInt(dic["ManageUserId"].ToString()));
+                Users manageuserid_Users = db.Users.FirstOrDefault(m => m.Id == ManageUserId) ?? new Users();
+                dic["ManageUserIdRealName"] = manageuserid_Users.RealName;
+                dic["ManageUserIdMobile"] = manageuserid_Users.Mobile;
+                dic["ManageUserIdMakerCode"] = manageuserid_Users.MakerCode;
+                //仓库类型
+                int StoreType = int.Parse(dic["StoreType"].ToString());
+                if (StoreType == 0) dic["StoreType"] = "实体仓";
+                if (StoreType == 1) dic["StoreType"] = "虚拟仓";
+                //仓库状态
+                int Status = int.Parse(dic["Status"].ToString());
+                if (Status == 1) dic["Status"] = "启用";
+                if (Status == 0) dic["Status"] = "禁用";
+                //仓库归属类型
+                int StoreKind = int.Parse(dic["StoreKind"].ToString());
+                if (StoreKind == 0) dic["StoreKind"] = "分仓";
+                if (StoreKind == 1) dic["StoreKind"] = "总仓";
+                if (StoreKind == 2) dic["StoreKind"] = "运营仓";
+
+            }
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 增加仓库
+
+        /// <summary>
+        /// 增加或修改仓库信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Add(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+
+            return View();
+        }
+
+        #endregion
+
+        #region 增加仓库
+
+        /// <summary>
+        /// 增加或修改仓库信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Add(StoreHouse data, string ManageMakerCode, string MakerCode)
+        {
+            string BrandIdString = data.BrandId;
+            if (!string.IsNullOrEmpty(BrandIdString))
+            {
+                string[] BrandIdList = BrandIdString.Split(',');
+                foreach (string BrandId in BrandIdList)
+                {
+                    Dictionary<string, object> Fields = new Dictionary<string, object>();
+                    Fields.Add("CreateMan", SysUserName); //创建人
+                    Fields.Add("StoreName", data.StoreName); //仓库名称
+                    Fields.Add("FilePath", data.FilePath); //附件
+                    Fields.Add("Deposit", data.Deposit); //押金
+                    UserForMakerCode user = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+                    if (user == null)
+                    {
+                        return "您输入的仓库归属创客编号不存在,请重新输入正确的仓库归属创客编号";
+                    }
+
+                    Fields.Add("UserId", user.UserId); //仓库归属人
+                    Fields.Add("Areas", data.Areas); //所属地区
+                    Fields.Add("Address", data.Address); //仓库地址
+                    UserForMakerCode manage = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ManageMakerCode);
+                    if (manage == null)
+                    {
+                        return "您输入的仓库负责人编号不存在,请重新输入正确的仓库负责人编号";
+                    }
+                    Fields.Add("ManageUserId", manage.UserId); //仓库管理员
+                    Fields.Add("ManagerEmail", data.ManagerEmail); //管理者邮箱
+                    Fields.Add("ManageMobile", data.ManageMobile);
+                    Fields.Add("Remark", data.Remark); //备注
+                    Fields.Add("LimitTopUserId", data.LimitTopUserId); //限制创客特殊仓库
+                    Fields.Add("StoreKind", data.StoreKind); //仓库归属类型
+                    int bid = int.Parse(BrandId);
+                    KqProducts pro = db.KqProducts.FirstOrDefault(m => m.Id == bid) ?? new KqProducts();
+                    Fields.Add("BrandId", BrandId);
+                    Fields.Add("ProductName", pro.Name);
+                    Fields.Add("StoreStatus", 1);
+                    Fields.Add("Status", 1);
+
+                    var name = db.StoreHouse.FirstOrDefault(m => m.UserId == user.UserId && m.BrandId == BrandId && m.StoreName == data.StoreName && m.OpId == 0);
+                    if (name != null)
+                    {
+                        return "您的仓库名重复,请重新填写";
+                    }
+
+                    int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("StoreHouse", Fields, 0);
+                    int StoreId = Id;
+                    var StoreNos = "";
+                    //添加分仓创建时间
+                    var users = db.Users.FirstOrDefault(m => m.Id == user.UserId) ?? new Users();
+                    if (users.Id > 0)
+                    {
+                        if (string.IsNullOrEmpty(users.CreateStoreDate.ToString()))
+                        {
+                            users.CreateStoreDate = DateTime.Now;
+                            db.SaveChanges();
+                        }
+                    }
+                    StoreHouse edit = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
+                    if (edit != null)
+                    {
+                        string No = Id.ToString();
+                        for (int i = 0; i < 7 - Id.ToString().Length; i++)
+                        {
+                            No = "0" + No;
+                        }
+                        No = "S" + No;
+                        edit.StoreNo = No;
+                        StoreNos = No;
+                        db.StoreForCode.Add(new StoreForCode()
+                        {
+                            Code = No,
+                            StoreId = Id,
+                        });
+                        RedisDbconn.Instance.Set("StoreForCode:" + No, Id);
+                    }
+                    StoreForName storeForName = db.StoreForName.FirstOrDefault(m => m.Name == data.StoreName);
+                    if (storeForName == null)
+                    {
+                        db.StoreForName.Add(new StoreForName()
+                        {
+                            Name = data.StoreName,
+                            StoreId = Id,
+                        });
+                    }
+                    else
+                    {
+                        storeForName.StoreId = Id;
+                    }
+                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == user.UserId);
+                    if (account == null)
+                    {
+                        account = db.UserAccount.Add(new UserAccount()
+                        {
+                            Id = user.UserId,
+                            UserId = user.UserId,
+                        }).Entity;
+                        db.SaveChanges();
+                    }
+                    if (account.FixedAmount == 0 && account.ValidAmount == 0)
+                    {
+                        account.FixedAmount = 20000;
+                        account.ValidAmount = 20000;
+                    }
+                    account.StoreDeposit = data.Deposit;
+                    AddSysLog(data.Id.ToString(), "StoreHouse", "add");
+                    db.SaveChanges();
+
+                    SetRedis(Id, user.UserId);
+                }
+            }
+            return "success";
+        }
+
+        #endregion
+
+        #region 修改仓库
+
+        /// <summary>
+        /// 增加或修改仓库信息
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edit(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            StoreHouse editData = db.StoreHouse.FirstOrDefault(m => m.Id == Id) ?? new StoreHouse();
+            ViewBag.data = editData;
+
+            Users manage = db.Users.FirstOrDefault(m => m.Id == editData.ManageUserId) ?? new Users();
+            ViewBag.ManageMakerCode = manage.MakerCode;
+            ViewBag.ManageRealName = manage.RealName;
+
+            Users user = db.Users.FirstOrDefault(m => m.Id == editData.UserId) ?? new Users();
+            ViewBag.MakerCode = user.MakerCode;
+            return View();
+        }
+
+        #endregion
+
+        #region 修改仓库
+
+        /// <summary>
+        /// 增加或修改仓库信息
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edit(StoreHouse data, string ManageMakerCode, string MakerCode)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            Fields.Add("CreateMan", SysUserName); //创建人
+            Fields.Add("UpdateMan", SysUserName + "-" + SysRealName); //修改人
+            Fields.Add("StoreName", data.StoreName); //仓库名称
+            Fields.Add("FilePath", data.FilePath); //附件
+            Fields.Add("Deposit", data.Deposit); //押金
+            UserForMakerCode user = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+            if (user == null)
+            {
+                return "您输入的仓库归属创客编号不存在,请重新输入正确的仓库归属创客编号";
+            }
+            Fields.Add("UserId", user.UserId); //仓库归属人
+            Fields.Add("ManagerEmail", data.ManagerEmail); //管理者邮箱
+            Fields.Add("ManageMobile", data.ManageMobile);
+            Fields.Add("Areas", data.Areas); //所属地区
+            Fields.Add("Address", data.Address); //仓库地址
+            UserForMakerCode manage = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ManageMakerCode);
+            if (manage == null)
+            {
+                return "您输入的仓库负责人编号不存在,请重新输入正确的仓库负责人编号";
+            }
+            Fields.Add("ManageUserId", manage.UserId); //仓库管理员
+            Fields.Add("Remark", data.Remark); //备注
+            Fields.Add("LimitTopUserId", data.LimitTopUserId); //限制创客特殊仓库
+            Fields.Add("StoreKind", data.StoreKind); //仓库归属类型
+            Fields.Add("Status", data.Status);
+            Fields.Add("StoreStatus", data.Status);
+            var sto = db.StoreHouse.FirstOrDefault(m => m.Id == data.Id);
+            var store = db.StoreHouse.Where(m => m.Sort == 0 && m.Status == 1 && m.UserId == sto.UserId).ToList();
+            UserAccount userAccountOld = db.UserAccount.FirstOrDefault(m => m.Id == sto.UserId);
+            UserAccount userAccount = db.UserAccount.FirstOrDefault(m => m.Id == user.UserId);
+            decimal olddeposit = 0;//旧押金
+            decimal newdeposit = 0;//新押金
+            newdeposit = data.Deposit;
+            olddeposit = sto.Deposit;
+            if (sto.UserId != user.UserId)
+            {
+                var check = db.StoreHouse.Any(m => m.Sort == 0 && m.Status == 1 && m.UserId == user.UserId);
+                if (check)
+                {
+                    return "创客" + MakerCode + "名下已存在分仓,不可再变更";
+                }
+                else
+                {
+                    if (userAccount == null)
+                    {
+                        userAccount = db.UserAccount.Add(new UserAccount()
+                        {
+                            Id = user.UserId,
+                            UserId = user.UserId,
+                        }).Entity;
+                        db.SaveChanges();
+                    }
+                    var checks = db.StoreHouseAmountPromiss.Any(m => m.ToUserId == sto.UserId);
+                    if (checks)
+                    {
+                        var storeHouseAmountPromiss = db.StoreHouseAmountPromiss.Where(m => m.Status == 1 && m.ToUserId == sto.UserId).ToList();
+                        foreach (var item in storeHouseAmountPromiss)
+                        {
+                            var info = storeHouseAmountPromiss.FirstOrDefault(m => m.Id == item.Id);
+                            info.UpdateDate = DateTime.Now;
+                            info.UpdateMan = SysRealName + "-" + SysUserName;
+                            info.ToUserId = user.UserId;
+                        }
+                    }
+                    userAccount.UpdateMan = SysUserName + "-" + SysRealName;
+                    userAccount.StoreDeposit = data.Deposit;
+                    userAccount.FixedAmount = userAccountOld.FixedAmount;
+                    userAccount.ValidAmount = userAccountOld.ValidAmount;
+                    userAccount.TempAmount = userAccountOld.TempAmount;
+                    userAccount.TempAmountForBalance = userAccountOld.TempAmountForBalance;
+                    userAccountOld.UpdateMan = SysUserName + "-" + SysRealName;
+                    userAccountOld.StoreDeposit = 0;
+                    userAccountOld.ValidAmount = 0;
+                    userAccountOld.FixedAmount = 0;
+                    userAccountOld.TempAmount = 0;
+                    userAccountOld.TempAmountForBalance = 0;
+                    
+
+                }
+            }
+            else
+            {
+                userAccount.UpdateMan = SysUserName + "-" + SysRealName;
+                userAccount.StoreDeposit = data.Deposit;
+                
+                foreach (var item in store)
+                {
+                    var storeInfo = store.FirstOrDefault(m => m.Id == item.Id);
+                    storeInfo.UpdateMan = SysUserName + "-" + SysRealName;
+                    storeInfo.UserId = user.UserId;
+                    storeInfo.ManageUserId = manage.UserId;
+                    storeInfo.ManagerEmail = data.ManagerEmail;
+                    storeInfo.ManageMobile = data.ManageMobile;
+                    storeInfo.Address = data.Address;
+                    storeInfo.Areas = data.Areas;
+                    storeInfo.LimitTopUserId = data.LimitTopUserId;
+                    storeInfo.FilePath = data.FilePath;
+                    storeInfo.Deposit = data.Deposit;
+                    storeInfo.Remark = data.Remark;
+                }
+            }
+            db.SaveChanges();
+
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, data.Id);
+            AddSysLog(data.Id.ToString(), "StoreHouse", "update");
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 一键添加仓库
+
+        /// <summary>
+        /// 一件添加仓库
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Edits(string right, int Id = 0)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            StoreHouse editData = db.StoreHouse.FirstOrDefault(m => m.Id == Id) ?? new StoreHouse();
+            ViewBag.data = editData;
+
+            Users manage = db.Users.FirstOrDefault(m => m.Id == editData.ManageUserId) ?? new Users();
+            ViewBag.ManageMakerCode = manage.MakerCode;
+            ViewBag.ManageRealName = manage.RealName;
+
+            Users user = db.Users.FirstOrDefault(m => m.Id == editData.UserId) ?? new Users();
+            ViewBag.MakerCode = user.MakerCode;
+            return View();
+        }
+
+        #endregion
+
+        #region 一键添加仓库
+
+        /// <summary>
+        /// 一键添加仓库
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public string Edits(StoreHouse data, string ManageMakerCode, string MakerCode)
+        {
+            Dictionary<string, object> Fields = new Dictionary<string, object>();
+            StoreHouse storeHouse = db.StoreHouse.FirstOrDefault(m => m.Id == data.Id);
+            var brand = db.StoreHouse.FirstOrDefault(m => m.UserId == storeHouse.UserId && m.BrandId == data.BrandId && m.OpId == 0);
+            if (brand != null)
+            {
+                return "您已有该品牌类型的仓库,请重新选择";
+            }
+            var name = db.StoreHouse.FirstOrDefault(m => m.UserId == storeHouse.UserId && m.StoreName == data.StoreName);
+            if (name != null)
+            {
+                return "您的仓库名重复,请重新填写";
+            }
+            Fields.Add("StoreName", data.StoreName); //仓库名称
+            UserForMakerCode user = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+            if (user == null)
+            {
+                return "您输入的仓库归属创客编号不存在,请重新输入正确的仓库归属创客编号";
+            }
+            Fields.Add("UserId", user.UserId); //仓库归属人
+            Fields.Add("Areas", data.Areas); //所属地区
+            Fields.Add("Address", data.Address); //仓库地址
+            UserForMakerCode manage = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ManageMakerCode);
+            if (manage == null)
+            {
+                return "您输入的仓库负责人编号不存在,请重新输入正确的仓库负责人编号";
+            }
+            Fields.Add("CreateMan", SysUserName); //创建人
+            Fields.Add("ManageUserId", manage.UserId); //仓库管理员
+            Fields.Add("ManagerEmail", data.ManagerEmail); //管理者邮箱
+            Fields.Add("ManageMobile", data.ManageMobile);
+            Fields.Add("Remark", data.Remark); //备注
+            Fields.Add("FilePath", data.FilePath); //附件
+            Fields.Add("Deposit", data.Deposit); //押金
+            Fields.Add("LimitTopUserId", data.LimitTopUserId); //限制创客特殊仓库
+            Fields.Add("StoreKind", data.StoreKind); //仓库归属类型
+            int bid = Convert.ToInt32(data.BrandId);
+            KqProducts pro = db.KqProducts.FirstOrDefault(m => m.Id == bid) ?? new KqProducts();
+            Fields.Add("BrandId", data.BrandId);
+            Fields.Add("ProductName", pro.Name);
+            Fields.Add("StoreStatus", 1);
+            Fields.Add("Status", 1);
+
+            int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("StoreHouse", Fields, 0);
+            int StoreId = Id;
+            var StoreNos = "";
+            //添加分仓创建时间
+            var users = db.Users.FirstOrDefault(m => m.Id == user.UserId) ?? new Users();
+            if (users.Id > 0)
+            {
+                if (string.IsNullOrEmpty(users.CreateStoreDate.ToString()))
+                {
+                    users.CreateStoreDate = DateTime.Now;
+                    db.SaveChanges();
+                }
+            }
+            StoreHouse edit = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
+            if (edit != null)
+            {
+                string No = Id.ToString();
+                for (int i = 0; i < 7 - Id.ToString().Length; i++)
+                {
+                    No = "0" + No;
+                }
+                No = "S" + No;
+                edit.StoreNo = No;
+                StoreNos = No;
+                db.StoreForCode.Add(new StoreForCode()
+                {
+                    Code = No,
+                    StoreId = Id,
+                });
+                RedisDbconn.Instance.Set("StoreForCode:" + No, Id);
+            }
+            StoreForName storeForName = db.StoreForName.FirstOrDefault(m => m.Name == data.StoreName);
+            if (storeForName == null)
+            {
+                db.StoreForName.Add(new StoreForName()
+                {
+                    Name = data.StoreName,
+                    StoreId = Id,
+                });
+            }
+            else
+            {
+                storeForName.StoreId = Id;
+            }
+            UserAccount userAccount = db.UserAccount.FirstOrDefault(m => m.Id == user.UserId);
+            if (userAccount == null)
+            {
+                userAccount = db.UserAccount.Add(new UserAccount()
+                {
+                    Id = user.UserId,
+                    UserId = user.UserId,
+                }).Entity;
+                db.SaveChanges();
+            }
+            userAccount.StoreDeposit = data.Deposit;
+            db.SaveChanges();
+            
+            AddSysLog(data.Id.ToString(), "StoreHouse", "add");
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 删除仓库信息
+
+        /// <summary>
+        /// 删除仓库信息
+        /// </summary>
+        /// <returns></returns>
+        public string Delete(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "del");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", -1);
+                StoreHouse edit = db.StoreHouse.FirstOrDefault(m => m.Id == id);
+                if (edit != null)
+                {
+                    StoreForCode code = db.StoreForCode.FirstOrDefault(m => m.Code == edit.StoreNo);
+                    if (code != null)
+                    {
+                        db.StoreForCode.Remove(code);
+                    }
+                    StoreForName name = db.StoreForName.FirstOrDefault(m => m.Name == edit.StoreName);
+                    if (name != null)
+                    {
+                        db.StoreForName.Remove(name);
+                    }
+                }
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, id);
+            }
+            db.SaveChanges();
+
+            return "success";
+        }
+
+        #endregion
+
+        #region 开启
+
+        /// <summary>
+        /// 开启
+        /// </summary>
+        /// <returns></returns>
+        public string Open(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "open");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 1);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 关闭
+
+        /// <summary>
+        /// 关闭
+        /// </summary>
+        /// <returns></returns>
+        public string Close(string Id)
+        {
+            string[] idlist = Id.Split(new char[] { ',' });
+            AddSysLog(Id, "StoreHouse", "close");
+            foreach (string subid in idlist)
+            {
+                int id = int.Parse(subid);
+                Dictionary<string, object> Fields = new Dictionary<string, object>();
+                Fields.Add("Status", 0);
+                new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("StoreHouse", Fields, id);
+            }
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 排序
+        /// <summary>
+        /// 排序
+        /// </summary>
+        /// <param name="Id"></param>
+        public string Sort(int Id, int Sort)
+        {
+            new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("StoreHouse", Sort, Id);
+
+            AddSysLog(Id.ToString(), "StoreHouse", "sort");
+            return "success";
+        }
+        #endregion
+
+        #region 导入数据
+
+        public IActionResult Import(string right, string ExcelKind)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            ViewBag.ExcelKind = ExcelKind;
+            return View();
+        }
+        /// <summary>
+        /// 导入数据
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        [HttpPost]
+        public string ImportPost(string ExcelPath, int Kind = 0)
+        {
+            string key = function.MD5_16(Guid.NewGuid().ToString());
+            RedisDbconn.Instance.AddList("ExcelImportV2", ExcelPath + "#cut#" + Kind + "#cut#" + key + "#cut#" + SysUserName);
+            return "success|" + key;
+        }
+        public string CheckImport(string key)
+        {
+            string result = RedisDbconn.Instance.Get<string>("CheckImport:" + key);
+            if (!string.IsNullOrEmpty(result))
+            {
+                string[] datalist = result.Split('|');
+                if (datalist[0] == "success")
+                {
+                    return result;
+                }
+                return datalist[0];
+            }
+            return "0";
+        }
+        public Dictionary<string, object> CheckImportV2(string key)
+        {
+            Dictionary<string, object> Obj = new Dictionary<string, object>();
+            string result = RedisDbconn.Instance.Get<string>("CheckImport:" + key);
+            if (!string.IsNullOrEmpty(result))
+            {
+                string[] datalist = result.Split('|');
+                if (datalist[0] == "success")
+                {
+                    List<string> errList = RedisDbconn.Instance.GetList<string>("ErrList" + key);
+                    if (errList.Count > 0)
+                    {
+                        Obj.Add("status", 2);
+                        Obj.Add("errList", errList);
+                    }
+                    else
+                    {
+                        Obj.Add("status", 1);
+                        Obj.Add("data", result);
+                    }
+                    return Obj;
+                }
+                Obj.Add("status", 0);
+                Obj.Add("data", datalist[0]);
+                return Obj;
+            }
+            Obj.Add("status", -1);
+            Obj.Add("data", "执行中...");
+            return Obj;
+        }
+        #endregion
+
+
+        #region 机具驳回仓库
+        /// <summary>
+        /// 机具驳回仓库
+        /// </summary>
+        /// <param name="ExcelData"></param>
+        public string RejectStore(string ExcelData, int ExcelKind = 0)
+        {
+            ExcelData = HttpUtility.UrlDecode(ExcelData);
+            JsonData list = JsonMapper.ToObject(ExcelData);
+            if (ExcelKind == 1)
+            {
+                string error = "";
+                decimal amount = 0;
+                List<string> PosSnList = new List<string>();
+                List<string> opData = new List<string>();
+                for (int i = 1; i < list.Count; i++)
+                {
+                    JsonData dr = list[i];
+                    string itemJson = dr.ToJson();
+                    string PosSn = itemJson.Contains("\"A\"") ? dr["A"].ToString() : "";
+                    string BrandId = itemJson.Contains("\"B\"") ? dr["B"].ToString() : "";
+                    string MakerCode = itemJson.Contains("\"C\"") ? dr["C"].ToString() : "";
+                    string StoreNo = itemJson.Contains("\"D\"") ? dr["D"].ToString() : "";
+                    string No = itemJson.Contains("\"E\"") ? dr["E"].ToString() : "";
+                    string Remark = itemJson.Contains("\"F\"") ? dr["F"].ToString() : "";
+                    if (string.IsNullOrEmpty(PosSn) || string.IsNullOrEmpty(BrandId) || string.IsNullOrEmpty(MakerCode) || string.IsNullOrEmpty(StoreNo))
+                    {
+                        return "失败,请检查机具Sn、品牌、创客编号、仓库编号是否为空!";
+                    }
+                    UserForMakerCode userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+                    if (userForMakerCode == null)
+                    {
+                        return "未找到创客" + MakerCode + "相关创客关联数据" + '\n';
+                    }
+                    StoreForCode storeForCode = db.StoreForCode.FirstOrDefault(m => m.Code == StoreNo);
+                    if (storeForCode == null)
+                    {
+                        return "未找到仓库" + StoreNo + "相关关联数据" + '\n';
+                    }
+                    var store = db.StoreHouse.FirstOrDefault(m => m.Id == storeForCode.StoreId && m.BrandId == BrandId) ?? new StoreHouse();
+                    MachineForSnNo machineForSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == PosSn) ?? new MachineForSnNo();
+                    if (machineForSnNo == null)
+                    {
+                        return "未找到机具" + PosSn + "相关关联数据" + '\n';
+                    }
+                    var pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineForSnNo.SnId && m.BrandId == Convert.ToInt32(BrandId) && m.BindingState == 0 && m.BuyUserId == userForMakerCode.UserId) ?? new PosMachinesTwo();
+                    var posInfo = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineForSnNo.SnId && m.BrandId == Convert.ToInt32(BrandId) && m.BindingState == 0) ?? new PosMachinesTwo();
+                    if (pos.Id == 0)
+                    {
+                        error += "以下操作失败" + PosSn + ',' + "未找到创客" + MakerCode + "的该台机具" + '\n';
+                    }
+                    if (store.Id == 0)
+                    {
+                        error += "以下操作失败" + PosSn + ',' + StoreNo + ',' + "未找到该仓库" + '\n';
+                    }
+                    if (posInfo.Id == 0)
+                    {
+                        error += "以下操作失败" + PosSn + ',' + "未找到该品牌的未使用机具" + '\n';
+                    }
+                    if (PosSnList.Contains(PosSn))
+                    {
+                        error += "以下操作失败" + PosSn + ',' + "该机具号重复" + '\n';
+                    }
+                    else
+                    {
+                        PosSnList.Add(PosSn);
+                    }
+                }
+                if (!string.IsNullOrEmpty(error))
+                {
+                    return "Warning|" + error;
+                }
+                else
+                {
+                    for (int i = 1; i < list.Count; i++)
+                    {
+                        JsonData dr = list[i];
+                        string itemJson = dr.ToJson();
+                        string PosSn = itemJson.Contains("\"A\"") ? dr["A"].ToString() : "";
+                        string BrandId = itemJson.Contains("\"B\"") ? dr["B"].ToString() : "";
+                        string MakerCode = itemJson.Contains("\"C\"") ? dr["C"].ToString() : "";
+                        string StoreNo = itemJson.Contains("\"D\"") ? dr["D"].ToString() : "";
+                        string No = itemJson.Contains("\"E\"") ? dr["E"].ToString() : "";
+                        string Remark = itemJson.Contains("\"F\"") ? dr["F"].ToString() : "";
+                        UserForMakerCode userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode);
+                        StoreForCode storeForCode = db.StoreForCode.FirstOrDefault(m => m.Code == StoreNo);
+                        var store = db.StoreHouse.FirstOrDefault(m => m.Id == storeForCode.StoreId && m.BrandId == BrandId) ?? new StoreHouse();
+                        MachineForSnNo machineForSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == PosSn) ?? new MachineForSnNo();
+                        var pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineForSnNo.SnId && m.BrandId == Convert.ToInt32(BrandId) && m.BindingState == 0 && m.BuyUserId == userForMakerCode.UserId) ?? new PosMachinesTwo();
+                        var posInfo = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineForSnNo.SnId && m.BrandId == Convert.ToInt32(BrandId) && m.BindingState == 0) ?? new PosMachinesTwo();
+
+                        var fromStore = db.StoreHouse.FirstOrDefault(m => m.Id == pos.StoreId && m.BrandId == BrandId) ?? new StoreHouse();
+                        var toStore = db.StoreHouse.FirstOrDefault(m => m.Id == storeForCode.StoreId && m.BrandId == BrandId) ?? new StoreHouse();
+                        var user = db.Users.FirstOrDefault(m => m.Id == toStore.UserId) ?? new Users();
+                        var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == toStore.UserId) ?? new UserAccount();
+                        var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == Convert.ToInt32(BrandId)) ?? new KqProducts();
+                        var fuserMachineData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == userForMakerCode.UserId + "_" + brandInfo.Id);
+                        if (brandInfo.Name.Contains("电签"))
+                        {
+                            amount = 200;
+                        }
+                        if (brandInfo.Name.Contains("大POS"))
+                        {
+                            amount = 300;
+                        }
+                        userAccount.ValidAmount -= amount;
+                        db.SaveChanges();
+                        if (fromStore.Id != toStore.Id)
+                        {
+                            var changeNo = "JJBH" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
+                            StoreStockChange stockchange = db.StoreStockChange.Add(new StoreStockChange()
+                            {
+                                CreateDate = DateTime.Now,
+                                StoreId = fromStore.Id, //出货仓库
+                                ToStoreId = toStore.Id, //发货仓库
+                                BrandId = Convert.ToInt32(BrandId), //产品类型
+                                ProductName = RelationClass.GetKqProductBrandInfo(Convert.ToInt32(BrandId)), //产品名称
+                                ChangeNo = changeNo, //变更记录单号
+                                BizBatchNo = No, //业务批次号
+                                TransType = 4, //交易类型
+                                SnNo = PosSn, //SN编号
+                                StockOpDirect = 1, //库存操作方向
+                                SnStatus = 1, //SN状态
+                                DeviceVendor = posInfo.DeviceName, //设备厂商
+                                DeviceModel = posInfo.DeviceKind, //设备型号
+                                DeviceType = posInfo.DeviceType, //设备类型                    
+                                SourceStoreId = posInfo.SourceStoreId, //源仓库编号
+                                BrandType = posInfo.DeviceType, //品牌类型
+                            }).Entity;
+                            db.SaveChanges();
+
+                            db.StoreChangeHistory.Add(new StoreChangeHistory()
+                            {
+                                CreateDate = DateTime.Now,
+                                CreateMan = SysUserName,
+                                UserId = user.Id, //创客
+                                FromUserId = posInfo.BuyUserId,//来源创客
+                                ToUserId = toStore.UserId,//接收创客
+                                StoreId = fromStore.Id, //出货仓库
+                                ToStoreId = toStore.Id, //发货仓库
+                                BrandId = Convert.ToInt32(BrandId), //产品类型
+                                ChangeRecordNo = changeNo, //变更记录单号
+                                SeoTitle = "机具驳回仓库",
+                                BizBatchNo = No, //业务批次号
+                                TransType = 4,//驳回
+                                SnNo = PosSn, //SN编号
+                            });
+                            db.SaveChanges();
+
+                            StoreBalance fbalance = db.StoreBalance.Add(new StoreBalance()
+                            {
+                                CreateDate = DateTime.Now,
+                                StoreId = fromStore.Id, //仓库
+                                BrandId = Convert.ToInt32(BrandId), //产品类型
+                                OpStoreNum = 1, //操作库存数
+                                OpSymbol = "-", //操作符
+                                BeforeTotalNum = fromStore.TotalNum, //操作前总库存数
+                                AfterTotalNum = fromStore.TotalNum - 1, //操作后总库存数
+                                BeforeLaveNum = fromStore.LaveNum, //操作前剩余库存数
+                                AfterLaveNum = fromStore.LaveNum - 1, //操作后剩余库存数
+                                BeforeOutNum = fromStore.OutNum, //操作前出库数
+                                AfterOutNum = fromStore.OutNum - 1, //操作后出库数
+                            }).Entity;
+                            db.SaveChanges();
+
+                            StoreBalance tbalance = db.StoreBalance.Add(new StoreBalance()
+                            {
+                                CreateDate = DateTime.Now,
+                                StoreId = toStore.Id, //仓库
+                                BrandId = Convert.ToInt32(BrandId), //产品类型
+                                OpStoreNum = 1, //操作库存数
+                                OpSymbol = "+", //操作符
+                                BeforeTotalNum = toStore.TotalNum, //操作前总库存数
+                                AfterTotalNum = toStore.TotalNum + 1, //操作后总库存数
+                                BeforeLaveNum = toStore.LaveNum, //操作前剩余库存数
+                                AfterLaveNum = toStore.LaveNum + 1, //操作后剩余库存数
+                                BeforeOutNum = toStore.OutNum, //操作前出库数
+                                AfterOutNum = toStore.OutNum, //操作后出库数
+                            }).Entity;
+                            db.SaveChanges();
+
+                            if (!opData.Contains(posInfo.BuyUserId + ":" + posInfo.BrandId))
+                            {
+                                opData.Add(posInfo.BuyUserId + ":" + posInfo.BrandId);
+                            }
+
+                            posInfo.StoreId = toStore.Id;
+                            posInfo.BuyUserId = 0;
+                            posInfo.UserId = 0;
+                            posInfo.RecycEndDate = null;
+                            posInfo.PosSnType = 0;
+                            posInfo.BindMerchantId = 0;
+                            posInfo.ActivityList = null;
+                            posInfo.ScanQrTrade = 0;
+                            posInfo.DebitCardTrade = 0;
+                            posInfo.PrizeParams = null;
+                            posInfo.IsVip = 0;
+                            posInfo.CreditTrade = 0;
+                            posInfo.UserNav = null;
+                            posInfo.TransferTime = null;
+                            posInfo.IsPurchase = 0;
+                            posInfo.BindingTime = null;
+                            posInfo.BindingState = 0;
+                            posInfo.ActivationTime = null;
+                            posInfo.ActivationState = 0;
+                            posInfo.LeaderUserId = 0;
+                            posInfo.PreUserId = 0;
+                            posInfo.IsFirst = 0;
+                            fuserMachineData.TotalMachineCount -= 1;
+                            fuserMachineData.UnBindCount -= 1;
+                            toStore.TotalNum += 1;
+                            toStore.LaveNum += 1;
+                            fromStore.TotalNum -= 1;
+                            fromStore.LaveNum -= 1;
+                            PublicFunction.ClearPosHistory(db, posInfo.PosSn); //清除机具历史记录
+                            db.SaveChanges();
+                        }
+                        else
+                        {
+                            var changeNo = "JJBH" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
+                            StoreStockChange stockchange = db.StoreStockChange.Add(new StoreStockChange()
+                            {
+                                CreateDate = DateTime.Now,
+                                StoreId = fromStore.Id, //出货仓库
+                                ToStoreId = toStore.Id, //发货仓库
+                                BrandId = Convert.ToInt32(BrandId), //产品类型
+                                ProductName = RelationClass.GetKqProductBrandInfo(Convert.ToInt32(BrandId)), //产品名称
+                                ChangeNo = changeNo, //变更记录单号
+                                BizBatchNo = No, //业务批次号
+                                TransType = 4, //交易类型
+                                SnNo = PosSn, //SN编号
+                                StockOpDirect = 1, //库存操作方向
+                                SnStatus = 1, //SN状态
+                                DeviceVendor = posInfo.DeviceName, //设备厂商
+                                DeviceModel = posInfo.DeviceKind, //设备型号
+                                DeviceType = posInfo.DeviceType, //设备类型                    
+                                SourceStoreId = posInfo.SourceStoreId, //源仓库编号
+                                BrandType = posInfo.DeviceType, //品牌类型
+                            }).Entity;
+                            db.SaveChanges();
+
+                            db.StoreChangeHistory.Add(new StoreChangeHistory()
+                            {
+                                CreateDate = DateTime.Now,
+                                CreateMan = SysUserName,
+                                UserId = user.Id, //创客
+                                FromUserId = user.Id,//来源创客
+                                ToUserId = toStore.UserId,//接收创客
+                                StoreId = fromStore.Id, //出货仓库
+                                ToStoreId = toStore.Id, //发货仓库
+                                BrandId = Convert.ToInt32(BrandId), //产品类型
+                                ChangeRecordNo = changeNo, //变更记录单号
+                                SeoTitle = "机具驳回仓库",
+                                BizBatchNo = No, //业务批次号
+                                SnNo = PosSn, //SN编号
+                                TransType = 4,//驳回
+                            });
+                            db.SaveChanges();
+
+                            StoreBalance balance = db.StoreBalance.Add(new StoreBalance()
+                            {
+                                CreateDate = DateTime.Now,
+                                StoreId = fromStore.Id, //仓库
+                                BrandId = Convert.ToInt32(BrandId), //产品类型
+                                OpStoreNum = 1, //操作库存数
+                                OpSymbol = "-", //操作符
+                                BeforeTotalNum = fromStore.TotalNum, //操作前总库存数
+                                AfterTotalNum = fromStore.TotalNum - 1, //操作后总库存数
+                                BeforeLaveNum = fromStore.LaveNum, //操作前剩余库存数
+                                AfterLaveNum = fromStore.LaveNum - 1, //操作后剩余库存数
+                                BeforeOutNum = fromStore.OutNum, //操作前出库数
+                                AfterOutNum = fromStore.OutNum - 1, //操作后出库数
+                            }).Entity;
+                            db.SaveChanges();
+
+                            if (!opData.Contains(posInfo.BuyUserId + ":" + posInfo.BrandId))
+                            {
+                                opData.Add(posInfo.BuyUserId + ":" + posInfo.BrandId);
+                            }
+
+                            posInfo.StoreId = toStore.Id;
+                            posInfo.BuyUserId = 0;
+                            posInfo.UserId = 0;
+                            posInfo.RecycEndDate = null;
+                            posInfo.PosSnType = 0;
+                            posInfo.BindMerchantId = 0;
+                            posInfo.ActivityList = null;
+                            posInfo.ScanQrTrade = 0;
+                            posInfo.DebitCardTrade = 0;
+                            posInfo.PrizeParams = null;
+                            posInfo.IsVip = 0;
+                            posInfo.CreditTrade = 0;
+                            posInfo.UserNav = null;
+                            posInfo.TransferTime = null;
+                            posInfo.IsPurchase = 0;
+                            posInfo.BindingTime = null;
+                            posInfo.BindingState = 0;
+                            posInfo.ActivationTime = null;
+                            posInfo.ActivationState = 0;
+                            posInfo.LeaderUserId = 0;
+                            posInfo.PreUserId = 0;
+                            posInfo.IsFirst = 0;
+                            fuserMachineData.TotalMachineCount -= 1;
+                            fuserMachineData.UnBindCount -= 1;
+                            toStore.LaveNum += 1;
+                            toStore.TotalNum += 1;
+                            PublicFunction.ClearPosHistory(db, posInfo.PosSn); //清除机具历史记录
+                            db.SaveChanges();
+                        }
+                        db.SaveChanges();
+                    }
+                }
+                foreach (string sub in opData)
+                {
+                    string[] datalist = sub.Split(":");
+                    PublicFunction.SycnMachineCount(int.Parse(datalist[0]), int.Parse(datalist[1]));
+                }
+            }
+            AddSysLog("0", "MachinesRejectStore", "Import");
+            return "success";
+        }
+        #endregion
+
+
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult ExportExcel(StoreHouse data, string UserIdMakerCode, string UserIdRealName, string ManageUserIdRealName, string ManageUserIdMobile, string ManageUserIdMakerCode, string StoreStatusSelect)
+        {
+            Dictionary<string, string> Fields = new Dictionary<string, string>();
+            Fields.Add("StoreNo", "1"); //仓库编号
+            Fields.Add("CreateDate", "3"); //时间
+            Fields.Add("StoreName", "1"); //仓库名称
+            Fields.Add("ManagerEmail", "1"); //管理者邮箱
+
+
+            string condition = " and Status>-1";
+            //仓库归属人创客编号
+            if (!string.IsNullOrEmpty(UserIdMakerCode))
+            {
+                condition += " and UserId in (select UserId from UserForMakerCode where MakerCode='" + UserIdMakerCode + "')";
+            }
+            //仓库归属人真实姓名
+            if (!string.IsNullOrEmpty(UserIdRealName))
+            {
+                condition += " and UserId in (select UserId from UserForRealName where RealName='" + UserIdRealName + "')";
+            }
+            //仓库管理员真实姓名
+            if (!string.IsNullOrEmpty(ManageUserIdRealName))
+            {
+                condition += " and ManageUserId in (select ManageUserId from UserForRealName where RealName='" + ManageUserIdRealName + "')";
+            }
+            //仓库管理员手机号
+            if (!string.IsNullOrEmpty(ManageUserIdMobile))
+            {
+                condition += " and ManageUserId in (select ManageUserId from UserForMobile where Mobile='" + ManageUserIdMobile + "')";
+            }
+            //仓库管理员创客编号
+            if (!string.IsNullOrEmpty(ManageUserIdMakerCode))
+            {
+                condition += " and ManageUserId in (select ManageUserId from UserForMakerCode where MakerCode='" + ManageUserIdMakerCode + "')";
+            }
+            //仓库状态
+            if (!string.IsNullOrEmpty(StoreStatusSelect))
+            {
+                condition += " and StoreStatus=" + StoreStatusSelect;
+            }
+
+
+            Dictionary<string, object> obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("StoreHouse", Fields, "Id desc", "0", 1, 20000, condition, "StoreNo,StoreName,UserId,BrandId,Address,ManageUserId,ManagerEmail,StoreType,TotalNum,LaveNum,OutNum,LimitTopUserId,StoreStatus,StoreKind", false);
+            List<Dictionary<string, object>> diclist = obj["data"] as List<Dictionary<string, object>>;
+            foreach (Dictionary<string, object> dic in diclist)
+            {
+                //仓库归属人
+                int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
+                Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                dic["UserIdMakerCode"] = userid_Users.MakerCode;
+                dic["UserIdRealName"] = userid_Users.RealName;
+                //产品类型
+                dic["BrandId"] = RelationClass.GetKqProductBrandList(dic["BrandId"].ToString());
+                //仓库管理员
+                int ManageUserId = int.Parse(function.CheckInt(dic["ManageUserId"].ToString()));
+                Users manageuserid_Users = db.Users.FirstOrDefault(m => m.Id == ManageUserId) ?? new Users();
+                dic["ManageUserIdRealName"] = manageuserid_Users.RealName;
+                dic["ManageUserIdMobile"] = manageuserid_Users.Mobile;
+                dic["ManageUserIdMakerCode"] = manageuserid_Users.MakerCode;
+                //仓库类型
+                int StoreType = int.Parse(dic["StoreType"].ToString());
+                if (StoreType == 0) dic["StoreType"] = "实体仓";
+                if (StoreType == 1) dic["StoreType"] = "虚拟仓";
+                //仓库状态
+                int StoreStatus = int.Parse(dic["StoreStatus"].ToString());
+                if (StoreStatus == 1) dic["StoreStatus"] = "启用";
+                if (StoreStatus == 0) dic["StoreStatus"] = "禁用";
+                //仓库归属类型
+                int StoreKind = int.Parse(dic["StoreKind"].ToString());
+                if (StoreKind == 0) dic["StoreKind"] = "分仓";
+                if (StoreKind == 1) dic["StoreKind"] = "总仓";
+
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("StoreNo", "仓库编号");
+            ReturnFields.Add("StoreName", "仓库名称");
+            ReturnFields.Add("UserIdMakerCode", "仓库归属人创客编号");
+            ReturnFields.Add("UserIdRealName", "仓库归属人真实姓名");
+            ReturnFields.Add("BrandId", "产品类型");
+            ReturnFields.Add("Address", "仓库地址");
+            ReturnFields.Add("ManageUserIdRealName", "仓库管理员真实姓名");
+            ReturnFields.Add("ManageUserIdMobile", "仓库管理员手机号");
+            ReturnFields.Add("ManageUserIdMakerCode", "仓库管理员创客编号");
+            ReturnFields.Add("ManagerEmail", "管理者邮箱");
+            ReturnFields.Add("StoreType", "仓库类型");
+            ReturnFields.Add("TotalNum", "总库存数");
+            ReturnFields.Add("LaveNum", "剩余库存数");
+            ReturnFields.Add("OutNum", "出库数");
+            ReturnFields.Add("LimitTopUserId", "限制创客特殊仓库");
+            ReturnFields.Add("StoreStatus", "仓库状态");
+            ReturnFields.Add("StoreKind", "仓库归属类型");
+
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "StoreHouse", "ExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+
+
+
+        #region 仓库列表
+
+        /// <summary>
+        /// 根据条件查询仓库列表
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult Stat(StoreHouse data, string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 根据条件查询仓库列表
+
+        /// <summary>
+        /// 仓库列表
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult StatDo(string CreateDateData, int page = 1, int limit = 30)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["StatSqlConnStr"].ToString();
+            string sCreateDate = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
+            string eCreateDate = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                sCreateDate = datelist[0] + " 00:00:00";
+                eCreateDate = datelist[1] + " 23:59:59";
+            }
+            else
+            {
+                Dictionary<string, object> nodata = new Dictionary<string, object>();
+                nodata.Add("code", 0);
+                nodata.Add("msg", "");
+                nodata.Add("count", 0);
+                nodata.Add("data", new List<Dictionary<string, object>>());
+
+                return Json(nodata);
+            }
+            string minId = "0";
+            string maxId = "0";
+            string minPosId = "0";
+            string maxPosId = "0";
+            DataTable startDt = OtherMySqlConn.dtable("select min(Id) from StoreStockChange where CreateDate>='" + sCreateDate + "'");
+            if (startDt.Rows.Count > 0)
+            {
+                minId = function.CheckInt(startDt.Rows[0][0].ToString());
+                if (minId == "0")
+                {
+                    startDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange");
+                    if (startDt.Rows.Count > 0)
+                    {
+                        minId = function.CheckInt(startDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable endDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange where CreateDate>='" + sCreateDate + "'");
+            if (endDt.Rows.Count > 0)
+            {
+                maxId = function.CheckInt(endDt.Rows[0][0].ToString());
+                if (minId == "0")
+                {
+                    endDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange");
+                    if (endDt.Rows.Count > 0)
+                    {
+                        maxId = function.CheckInt(endDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable startPosDt = OtherMySqlConn.dtable("select min(Id) from PosMachinesTwo where ActivationTime>='" + sCreateDate + "'");
+            if (startPosDt.Rows.Count > 0)
+            {
+                minPosId = function.CheckInt(startPosDt.Rows[0][0].ToString());
+                if (minPosId == "0")
+                {
+                    startPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo");
+                    if (startPosDt.Rows.Count > 0)
+                    {
+                        minPosId = function.CheckInt(startPosDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable endPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo where ActivationTime>='" + sCreateDate + "'");
+            if (endPosDt.Rows.Count > 0)
+            {
+                maxPosId = function.CheckInt(endPosDt.Rows[0][0].ToString());
+                if (maxPosId == "0")
+                {
+                    endPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo");
+                    if (endPosDt.Rows.Count > 0)
+                    {
+                        maxPosId = function.CheckInt(endPosDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable list = OtherMySqlConn.dtable("select * from (select s.StoreName,s.StoreNo,u.RealName,u.Mobile,k.Name,s.LaveNum,(select count(Id) from StoreStockChange where Id>=" + minId + " and Id<=" + maxId + " and CreateDate>='" + sCreateDate + "' and CreateDate<='" + eCreateDate + "' and StoreId=s.Id and TransType=1) as c1,(select count(Id) from StoreStockChange where Id>=" + minId + " and Id<=" + maxId + " and CreateDate>='" + sCreateDate + "' and CreateDate<='" + eCreateDate + "' and StoreId=s.Id and TransType in (10,11,2)) as c2,(select count(Id) from PosMachinesTwo where Id>=" + minPosId + " and Id<=" + maxPosId + " and ActivationState=1 and ActivationTime>='" + sCreateDate + "' and ActivationTime<='" + eCreateDate + "' and StoreId=s.Id) as c3 from StoreHouse s left join Users u on s.BrandId>0 and s.UserId=u.Id left join KqProducts k on s.BrandId=k.Id) tb where c1>0 or c2>0 or c3>0");
+
+            int recordcount = list.Rows.Count;
+            List<Dictionary<string, object>> diclist = new List<Dictionary<string, object>>();
+            foreach (DataRow sub in list.Rows)
+            {
+                Dictionary<string, object> row = new Dictionary<string, object>();
+                row.Add("StoreName", sub["StoreName"].ToString());
+                row.Add("StoreNo", sub["StoreNo"].ToString());
+                row.Add("Mobile", sub["Mobile"].ToString());
+                row.Add("RealName", sub["RealName"].ToString());
+                row.Add("Name", sub["Name"].ToString());
+                row.Add("LaveNum", sub["LaveNum"].ToString());
+                row.Add("c1", sub["c1"].ToString());
+                row.Add("c2", sub["c2"].ToString());
+                row.Add("c3", sub["c3"].ToString());
+                diclist.Add(row);
+            }
+
+            Dictionary<string, object> obj = new Dictionary<string, object>();
+            obj.Add("code", 0);
+            obj.Add("msg", "");
+            obj.Add("count", recordcount);
+            obj.Add("data", diclist);
+
+            return Json(obj);
+        }
+
+        #endregion
+
+        #region 导出Excel
+
+        /// <summary>
+        /// 导出Excel
+        /// </summary>
+        /// <returns></returns>
+        public JsonResult StatExportExcel(string CreateDateData)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["StatSqlConnStr"].ToString();
+            string sCreateDate = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
+            string eCreateDate = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
+            if (!string.IsNullOrEmpty(CreateDateData))
+            {
+                string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None);
+                sCreateDate = datelist[0] + " 00:00:00";
+                eCreateDate = datelist[1] + " 23:59:59";
+            }
+            else
+            {
+                Dictionary<string, object> nodata = new Dictionary<string, object>();
+                nodata.Add("Status", "1");
+                nodata.Add("Info", "分仓统计数据报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+                nodata.Add("Obj", new List<Dictionary<string, object>>());
+                Dictionary<string, object> NoDataReturnFields = new Dictionary<string, object>();
+                NoDataReturnFields.Add("StoreName", "仓库名称");
+                NoDataReturnFields.Add("StoreNo", "仓库编号");
+                NoDataReturnFields.Add("Mobile", "仓库所属人手机号");
+                NoDataReturnFields.Add("RealName", "仓库所属人名称");
+                NoDataReturnFields.Add("MakerCode", "仓库所属人编码");
+                NoDataReturnFields.Add("ManageMakerCode", "仓库管理员编码");
+                NoDataReturnFields.Add("Name", "品牌");
+                NoDataReturnFields.Add("LaveNum", "当前库存");
+                NoDataReturnFields.Add("c1", "出库(调拨)量");
+                NoDataReturnFields.Add("c2", "出货(发货到创客)量");
+                NoDataReturnFields.Add("c3", "激活量");
+                nodata.Add("Fields", NoDataReturnFields);
+                return Json(nodata);
+            }
+            string minId = "0";
+            string maxId = "0";
+            string minPosId = "0";
+            string maxPosId = "0";
+            DataTable startDt = OtherMySqlConn.dtable("select min(Id) from StoreStockChange where CreateDate>='" + sCreateDate + "'");
+            if (startDt.Rows.Count > 0)
+            {
+                minId = function.CheckInt(startDt.Rows[0][0].ToString());
+                if (minId == "0")
+                {
+                    startDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange");
+                    if (startDt.Rows.Count > 0)
+                    {
+                        minId = function.CheckInt(startDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable endDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange where CreateDate>='" + sCreateDate + "'");
+            if (endDt.Rows.Count > 0)
+            {
+                maxId = function.CheckInt(endDt.Rows[0][0].ToString());
+                if (minId == "0")
+                {
+                    endDt = OtherMySqlConn.dtable("select max(Id) from StoreStockChange");
+                    if (endDt.Rows.Count > 0)
+                    {
+                        maxId = function.CheckInt(endDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable startPosDt = OtherMySqlConn.dtable("select min(Id) from PosMachinesTwo where ActivationTime>='" + sCreateDate + "'");
+            if (startPosDt.Rows.Count > 0)
+            {
+                minPosId = function.CheckInt(startPosDt.Rows[0][0].ToString());
+                if (minPosId == "0")
+                {
+                    startPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo");
+                    if (startPosDt.Rows.Count > 0)
+                    {
+                        minPosId = function.CheckInt(startPosDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable endPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo where ActivationTime>='" + sCreateDate + "'");
+            if (endPosDt.Rows.Count > 0)
+            {
+                maxPosId = function.CheckInt(endPosDt.Rows[0][0].ToString());
+                if (maxPosId == "0")
+                {
+                    endPosDt = OtherMySqlConn.dtable("select max(Id) from PosMachinesTwo");
+                    if (endPosDt.Rows.Count > 0)
+                    {
+                        maxPosId = function.CheckInt(endPosDt.Rows[0][0].ToString());
+                    }
+                }
+            }
+            DataTable list = OtherMySqlConn.dtable("select * from (select s.StoreName,s.StoreNo,u.RealName,u.Mobile,u.MakerCode,(select MakerCode from Users where Id=s.ManageUserId) as ManageMakerCode,k.Name,s.LaveNum,(select count(Id) from StoreStockChange where Id>=" + minId + " and Id<=" + maxId + " and CreateDate>='" + sCreateDate + "' and CreateDate<='" + eCreateDate + "' and StoreId=s.Id and TransType=1) as c1,(select count(Id) from StoreStockChange where Id>=" + minId + " and Id<=" + maxId + " and CreateDate>='" + sCreateDate + "' and CreateDate<='" + eCreateDate + "' and StoreId=s.Id and TransType in (10,11,2)) as c2,(select count(Id) from PosMachinesTwo where Id>=" + minPosId + " and Id<=" + maxPosId + " and ActivationState=1 and ActivationTime>='" + sCreateDate + "' and ActivationTime<='" + eCreateDate + "' and StoreId=s.Id) as c3 from StoreHouse s left join Users u on s.BrandId>0 and s.UserId=u.Id left join KqProducts k on s.BrandId=k.Id) tb where c1>0 or c2>0 or c3>0");
+
+            int recordcount = list.Rows.Count;
+            List<Dictionary<string, object>> diclist = new List<Dictionary<string, object>>();
+            foreach (DataRow sub in list.Rows)
+            {
+                Dictionary<string, object> row = new Dictionary<string, object>();
+                row.Add("StoreName", sub["StoreName"].ToString());
+                row.Add("StoreNo", sub["StoreNo"].ToString());
+                row.Add("Mobile", sub["Mobile"].ToString());
+                row.Add("RealName", sub["RealName"].ToString());
+                row.Add("MakerCode", sub["MakerCode"].ToString());
+                row.Add("ManageMakerCode", sub["ManageMakerCode"].ToString());
+                row.Add("Name", sub["Name"].ToString());
+                row.Add("LaveNum", sub["LaveNum"].ToString());
+                row.Add("c1", sub["c1"].ToString());
+                row.Add("c2", sub["c2"].ToString());
+                row.Add("c3", sub["c3"].ToString());
+                diclist.Add(row);
+            }
+
+            Dictionary<string, object> result = new Dictionary<string, object>();
+            result.Add("Status", "1");
+            result.Add("Info", "分仓统计数据报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx");
+            result.Add("Obj", diclist);
+            Dictionary<string, object> ReturnFields = new Dictionary<string, object>();
+            ReturnFields.Add("StoreName", "仓库名称");
+            ReturnFields.Add("StoreNo", "仓库编号");
+            ReturnFields.Add("Mobile", "仓库所属人手机号");
+            ReturnFields.Add("RealName", "仓库所属人名称");
+            ReturnFields.Add("MakerCode", "仓库所属人编码");
+            ReturnFields.Add("ManageMakerCode", "仓库管理员编码");
+            ReturnFields.Add("Name", "品牌");
+            ReturnFields.Add("LaveNum", "当前库存");
+            ReturnFields.Add("c1", "出库(调拨)量");
+            ReturnFields.Add("c2", "出货(发货到创客)量");
+            ReturnFields.Add("c3", "激活量");
+            result.Add("Fields", ReturnFields);
+            AddSysLog("0", "StoreHouse", "StatExportExcel");
+            return Json(result);
+        }
+
+        #endregion
+
+
+        #region 同步数据
+
+        /// <summary>
+        /// 同步数据
+        /// </summary>
+        /// <returns></returns>
+        public string SycnData(int Id = 0)
+        {
+            if (Id > 0)
+            {
+                DataTable dt = OtherMySqlConn.dtable("select Id,(select count(Id) from PosMachinesTwo where StoreId=s.Id and BuyUserId=0 and PreUserId=0 and Status>-1) as CurLaveNum from StoreHouse s where Id=" + Id);
+                if (dt.Rows.Count > 0)
+                {
+                    int CurLaveNum = int.Parse(function.CheckInt(dt.Rows[0]["CurLaveNum"].ToString()));
+                    StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
+                    if (store != null)
+                    {
+                        store.LaveNum = CurLaveNum;
+                        db.SaveChanges();
+                    }
+                }
+            }
+            else
+            {
+                DataTable dt = OtherMySqlConn.dtable("select s.Id,LaveNum,count(p.Id) as CurLaveNum from StoreHouse s left join PosMachinesTwo p on s.Id=p.StoreId and s.BrandId=p.BrandId and p.BuyUserId=0 and p.PreUserId=0 and p.Status>-1 group by s.Id HAVING LaveNum!=count(p.Id)");
+                foreach (DataRow dr in dt.Rows)
+                {
+                    int StoreId = int.Parse(function.CheckInt(dr["Id"].ToString()));
+                    int CurLaveNum = int.Parse(function.CheckInt(dr["CurLaveNum"].ToString()));
+                    StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                    if (store != null)
+                    {
+                        store.LaveNum = CurLaveNum;
+                        db.SaveChanges();
+                    }
+                }
+            }
+            AddSysLog(Id, "StoreHouse", "SycnData");
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+
+        #region 重置仓库额度
+
+        /// <summary>
+        /// 重置仓库额度
+        /// </summary>
+        /// <returns></returns>
+        public string SycnAmountData(int Id = 0)
+        {
+            if (Id > 0)
+            {
+                var storeHouse = db.StoreHouse.FirstOrDefault(m => m.Id == Id && m.Sort == 0) ?? new StoreHouse();
+                RedisDbconn.Instance.AddList("ResetStoreReserveQueue", storeHouse.UserId);
+            }
+            AddSysLog(Id, "StoreHouse", "SycnAmountData");
+            db.SaveChanges();
+            return "success";
+        }
+
+        #endregion
+
+        #region 设置缓存
+
+        private void SetRedis(int Id, int UserId)
+        {
+            if (UserId > 0)
+            {
+            }
+        }
+
+        #endregion
+
+
+        #region 关联分仓
+
+        /// <summary>
+        /// 关联分仓
+        /// </summary>
+        /// <returns></returns>
+        public IActionResult BatchSetting(string right, string StoreIds)
+        {
+            string[] idlist = StoreIds.Split(new char[] { ',' });
+            decimal totalAmount = 0;
+            decimal deposit = 0;
+            var userIds = "";
+            foreach (var item in idlist)
+            {
+                int StoreId = int.Parse(item);
+                var amount = 0;
+                var tamount = 0;
+                var storeInfo = db.StoreHouse.FirstOrDefault(m => m.Id == StoreId);
+                var posCount = db.PosMachinesTwo.Count(m => m.StoreId == StoreId && m.UserId == 0 && m.BuyUserId == 0 && m.OpId == 0);
+                var BrandId = int.Parse(storeInfo.BrandId);
+                var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == BrandId);
+                if (brandInfo.Name.Contains("电签"))
+                {
+                    amount = 100;
+                }
+                if (brandInfo.Name.Contains("大POS"))
+                {
+                    amount = 150;
+                }
+                if (!userIds.Contains(storeInfo.UserId + ","))
+                {
+                    userIds += storeInfo.UserId + ",";
+                    deposit += storeInfo.Deposit;
+                }
+                tamount = amount * posCount;//扣减运营中心该品牌机具额度
+                totalAmount += tamount;//关联分仓打标记运营中心所需额度
+            }
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+            ViewBag.totalAmount = "关联分仓机具需要额度:" + totalAmount;
+            ViewBag.deposit = "关联分仓获得押金:" + deposit;
+
+            return View();
+        }
+
+        #endregion
+        
+    }
+}

+ 267 - 0
Areas/Admin/Views/BsServer/RightDic/Edit.cshtml

@@ -0,0 +1,267 @@
+@using MySystem.BsModels;
+@{RightDic editData = ViewBag.data as RightDic;}
+@{
+string RightInfo = ViewBag.RightInfo as string;
+string right = ViewBag.right as string;
+string PColId = ViewBag.PColId 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" />
+        <input type="hidden" name="OldPColId" value="@ViewBag.OldPColId" />
+
+        <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>
+                        <li lay-id="2">后台主界面</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">
+                                    <select id="PColId" name="PColId" lay-search="">
+                                        <option value="">作为顶级导航</option>
+                                        @{List<MySystem.Models.RightDic> ColIds = new MySystem.Models.WebCMSEntities().RightDic.OrderBy(m => m.Id).ToList();}
+                                        @foreach (MySystem.Models.RightDic subColId in ColIds)
+                                        {
+                                            string checkCol = subColId.Id.Replace("_", "");
+                                            string kg = "";
+                                            for (int i = 1; i < checkCol.Length; i++)
+                                            {
+                                                kg += "  ";
+                                            }
+                                            <option value="@subColId.Id" @(subColId.Id == PColId ? "selected=selected" : "")>@(kg+subColId.Name)</option>
+                                        }
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">标题</label>
+                                <div class="layui-input-block">
+                                    <input class="layui-input" type="text" id="Name" name="Name" value="@editData.Name"
+                                        maxlength="50" lay-verify="" autocomplete="off" placeholder="请输入标题">
+                                </div>
+                            </div>
+                        </div>
+                        <div class="layui-tab-item">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">快捷方式</label>
+                                <div class="layui-input-block">
+                                    <input type="checkbox" id="MainMenu" name="MainMenu" value="1" @(editData.MainMenu == 1 ? "checked=checked" : "") lay-skin="switch" lay-filter="switchTest" title="开关">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">统计</label>
+                                <div class="layui-input-block">
+                                    <input type="checkbox" id="MainStat" name="MainStat" value="1" @(editData.MainStat == 1 ? "checked=checked" : "") lay-skin="switch" lay-filter="switchTest" title="开关">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">主界面数据列表</label>
+                                <div class="layui-input-block">
+                                    <input type="checkbox" id="MainDataList" name="MainDataList" value="1" @(editData.MainDataList == 1 ? "checked=checked" : "") lay-skin="switch" lay-filter="switchTest" title="开关">
+                                </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@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        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;
+        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,
+                    upload = layui.upload,
+                    transfer = layui.transfer,
+                    util = layui.util;
+                tree = layui.tree;
+                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');
+                });
+
+                //日期
+
+
+                //上传文件
+
+
+                //穿梭框
+
+
+                //TreeView,比如权限管理
+
+
+                //省市区
+
+            })
+    </script>
+</body>
+
+</html>

+ 44 - 0
Areas/Admin/Views/BsServer/RightDic/Index.cshtml

@@ -0,0 +1,44 @@
+@{
+    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">
+</head>
+<body>
+    <div class="layui-fluid">
+        <div class="layui-card">
+            <div class="layui-card-body">
+                <script type="text/html" id="switchMainMenu">
+                    <input type="checkbox" name="MainMenu" value="{{d.id}}" lay-skin="switch" lay-text="开|关" lay-filter="MainMenu" @Html.Raw("{{ d.mainMenu == 1 ? 'checked' : '' }}")>
+                </script>
+                <script type="text/html" id="switchMainStat">
+                    <input type="checkbox" name="MainStat" value="{{d.id}}" lay-skin="switch" lay-text="开|关" lay-filter="MainStat" @Html.Raw("{{ d.mainStat == 1 ? 'checked' : '' }}")>
+                </script>
+                <script type="text/html" id="switchMainDataList">
+                    <input type="checkbox" name="MainDataList" value="{{d.id}}" lay-skin="switch" lay-text="开|关" lay-filter="MainDataList" @Html.Raw("{{ d.mainDataList == 1 ? 'checked' : '' }}")>
+                </script>
+                <script type="text/html" id="iconShow">
+                    <i class="layui-icon {{d.icon}}"></i>
+                </script>
+                <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>
+                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="right"><i class="layui-icon layui-icon-edit"></i>权限</a>
+                </script>
+            </div>
+        </div>
+    </div>
+    
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules/RightDic_Admin.js?r=@(DateTime.Now.ToString("yyyyMMddHHmmss"))"></script>
+</body>
+</html>

+ 125 - 0
Areas/Admin/Views/BsServer/RightDic/RightSet.cshtml

@@ -0,0 +1,125 @@
+@using MySystem.BsModels;
+@{
+List<OperateRightList> rights = ViewBag.rights as List<OperateRightList>;
+List<string> RightList = ViewBag.RightList as List<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>
+</head>
+
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Id" value="@ViewBag.Id" />
+
+        <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">
+                                    @foreach(OperateRightList sub in rights)
+                                    {
+                                    <input type="checkbox" name="RightString" title="@sub.Name" value="@(sub.EnName)_@(sub.Name)" @(RightList.Contains(sub.EnName + "_" + sub.Name) ? "checked=checked" : "")>
+                                    }
+                                </div>
+                            </div>
+                        </div>
+                        <div class="layui-form-item layui-form-text">
+                            <label class="layui-form-label">自定义权限</label>
+                            <div class="layui-input-block">
+                            <textarea class="layui-textarea" id="OtherRight" name="OtherRight" placeholder="请输入内容" style="width:100%;height:500px;">@(ViewBag.OtherRight)</textarea>
+                            </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@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        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);
+                }
+            });
+        }
+
+
+        var tree;
+        var element;
+        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,
+                    upload = layui.upload,
+                    transfer = layui.transfer,
+                    util = layui.util;
+                tree = layui.tree;
+                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');
+                });
+
+                //日期
+
+
+                //上传文件
+
+
+                //穿梭框
+
+
+                //TreeView,比如权限管理
+
+
+                //省市区
+
+            })
+    </script>
+</body>
+
+</html>

+ 4 - 1
Areas/Admin/Views/Home/Index.cshtml

@@ -202,7 +202,10 @@
                                 <i class="layui-icon layui-icon-component"></i>
                                 <cite>开发</cite>
                             </a>
-                            <dl class="layui-nav-child">
+                            <dl class="layui-nav-child">                                
+                                <dd data-name="grid">
+                                    <a lay-href="/Admin/RightDic/Index">后台菜单</a>
+                                </dd>
                                 <dd data-name="grid">
                                     <a lay-href="/Admin/SystemSet/Edit">站内设置</a>
                                 </dd>

+ 0 - 18
Areas/Admin/Views/MainServer/Orders/Index.cshtml

@@ -183,19 +183,6 @@
                             </select>
                         </div>
                     </div>
-                    @{Dictionary<string, string> ProductsDic = new MySystem.DictionaryClass().getProductsDic();}
-                    <div class="layui-inline">
-                        <label class="layui-form-label">产品类型</label>
-                        <div class="layui-input-inline">
-                            <select id="ProductIdSelect" name="ProductIdSelect" lay-search="">
-                                <option value="">全部...</option>
-                                @foreach (string key in ProductsDic.Keys)
-                                {
-                                <option value="@key">@ProductsDic[key]</option>
-                                }
-                            </select>
-                        </div>
-                    </div>
                     <div class="layui-inline">
                         <label class="layui-form-label">仓库类型</label>
                         <div class="layui-input-inline">
@@ -239,10 +226,6 @@
                         <button class="layui-btn" lay-submit lay-filter="LAY-list-front-searchall">
                             <i class="layui-icon layui-icon-list layuiadmin-button-btn"></i>全部
                         </button>
-                        @if (RightInfo.Contains("," + right + "_export,"))
-                        {
-                        <button class="layui-btn" data-type="ExportsExcel"><i class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
-                        }
                     </div>
                 </div>
             </div>
@@ -266,7 +249,6 @@
                         <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="return"><i class="layui-icon layui-icon-edit"></i>退货</a>
                         @("{{#} }}")
                     }
-                    @*<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="prize100"><i class="layui-icon layui-icon-edit"></i>查看推荐奖</a>*@
                 </script>
             </div>
         </div>

+ 1 - 0
Areas/Admin/Views/MainServer/Orders/Send.cshtml

@@ -21,6 +21,7 @@
 
     <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
         <input type="hidden" name="Id" value="@editData.Id" />
+        <input type="hidden" name="UserId" value="@editData.UserId" />
         
         <div class="layui-card">
           <div class="layui-card-body">

+ 368 - 0
Areas/Admin/Views/MainServer/StoreHouse/Add.cshtml

@@ -0,0 +1,368 @@
+@{
+    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>
+    <style>
+        .layui-form-label {
+            width: 135px !important;
+        }
+
+        .layui-form-item .layui-input-block {
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+
+        <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="text" id="StoreName" name="StoreName"
+                                        maxlength="32" lay-verify="required|" 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="text" id="ManageMakerCode" name="ManageMakerCode"
+                                        maxlength="30" lay-verify="required|" 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="text" id="ManageRealName" name="ManageRealName"
+                                        maxlength="20" lay-verify="required|" 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="text" id="MakerCode" name="MakerCode"
+                                        maxlength="30" lay-verify="required|" autocomplete="off"
+                                        placeholder="请输入仓库归属创客编号(操作员)">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库归属类型</label>
+                                <div class="layui-input-inline">
+                                    <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
+                                        <option value="">请选择</option>
+                                        <option value="0">分仓</option>
+                                        <option value="1">总仓</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*管理者邮箱</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail"
+                                        maxlength="32" lay-verify="required|email|" 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="text" id="ManageMobile" name="ManageMobile"
+                                        maxlength="11" lay-verify="required|phone|" 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="text" id="LimitTopUserId" name="LimitTopUserId"
+                                        maxlength="100" lay-verify="" autocomplete="off"
+                                        placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库所属地区</label>
+                                <input type="hidden" id="Areas" name="Areas" />
+                                <div class="layui-input-inline">
+                                    <select id="AreasProvince" lay-search="" lay-filter="AreasProvince"
+                                        lay-verify="required|">
+                                        <option value="">省</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                        <option value="">市</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                        <option value="">县/区</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库地址</label>
+                                <div class="layui-input-block">
+                                    <input class="layui-input" type="text" id="Address" name="Address" maxlength="128"
+                                        lay-verify="required|" 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="text" id="Deposit" name="Deposit"
+                                        value="" maxlength="32" lay-verify="required|" autocomplete="off"
+                                        placeholder="请输入押金">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">附件</label>
+                                <div class="layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="FilePath" name="FilePath" value=""
+                                            lay-verify="required|">
+                                        <button class="layui-btn" type="button" id="FilePathBtn">选择文件</button>
+                                        <div class="layui-inline layui-word-aux">
+                                            @(new MySystem.PublicFunction().GetUploadHint("SysAdminFilePath"))</div>
+                                    </div>
+                                    <div style="margin-top:10px;" id="FilePathFile">
+                                    </div>
+                                    <div style="width: 50%; margin-top:20px; display:none;" id="FilePathProgressBar">
+                                        <div class="layui-progress" lay-showpercent="true"
+                                            lay-filter="FilePathProgress">
+                                            <div class="layui-progress-bar" lay-percent="0%"></div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-form-item layui-form-text">
+                                <label class="layui-form-label">备注</label>
+                                <div class="layui-input-block">
+                                    <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
+                                        lay-verify="" placeholder="请输入备注"></textarea>
+                                </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@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+
+
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        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');
+            });
+
+            //日期
+
+
+            //上传文件
+            WebUploadJs('FilePathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminFilePath"))), function (filename) {
+                $('#FilePathFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                $('#FilePath').val(filename);
+                setTimeout(function () {
+                    $("#FilePathProgressBar").css("display", "none");
+                }, 1000);
+            }, function (file) {
+                $("#FilePathProgressBar").css("display", "block");
+                element.progress('FilePathProgress', file.percent + '%');
+            });
+            WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#HeadPhoto').val(filename);
+            });
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+            form.on('select(AreasProvince)', function (data) {
+                AreasProvinceSelected("Areas", "", form, data.value);
+            });
+            form.on('select(AreasCity)', function (data) {
+                AreasCitySelected("Areas", "", form, data.value)
+            });
+            form.on('select(AreasArea)', function (data) {
+                AreasAreaSelected("Areas", form)
+            });
+            setTimeout(function () {
+                AreasProvinceInit("Areas", "", form);
+            }, 1000);
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 240 - 0
Areas/Admin/Views/MainServer/StoreHouse/BatchCancle.cshtml

@@ -0,0 +1,240 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    string totalAmount = ViewBag.totalAmount as string;
+    string deposit = ViewBag.deposit 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">
+        <form class="layui-form" id="confirmFrm">
+            <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="MakerCode" name="MakerCode"
+                                            maxlength="50" lay-verify="required|" autocomplete="off"
+                                            placeholder="请输入运营创客编号">
+                                        <div class="layui-inline layui-word-aux" style="color: #f00;" id="Reserve">
+                                        </div>
+                                        <div class="layui-input-inline">
+                                            @ViewBag.totalAmount
+                                        </div>
+                                        <div class="layui-input-inline">
+                                            @ViewBag.deposit
+                                        </div>
+                                    </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>
+        </form>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script
+        src="/other/oss/upload-min@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        var st;
+        function GetReserve(obj) {
+            clearTimeout(st);
+            setTimeout(function () {
+                $.ajax({
+                    url: "/Admin/StoreHouse/GetReserve?r=" + Math.random(1),
+                    data: "MakerCode=" + $(obj).val(),
+                    dataType: "text",
+                    success: function (data) {
+                        $('#Reserve').text('当前可用额度:' + data);
+                    }
+                });
+            }, 1000);
+
+        }
+
+
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        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>

+ 248 - 0
Areas/Admin/Views/MainServer/StoreHouse/BatchSetting.cshtml

@@ -0,0 +1,248 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    string totalAmount = ViewBag.totalAmount as string;
+    string deposit = ViewBag.deposit 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">
+        <form class="layui-form" id="confirmFrm">
+            <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="MakerCode" name="MakerCode"
+                                            maxlength="50" lay-verify="required|" autocomplete="off"
+                                            onkeyup="GetReserve(this)" placeholder="请输入运营创客编号">
+                                        <div class="layui-inline layui-word-aux" style="color: #f00;" id="Reserve">
+                                        </div>
+                                        <div class="layui-input-inline">
+                                            @ViewBag.totalAmount
+                                        </div>
+                                        <div class="layui-input-inline">
+                                            @ViewBag.deposit
+                                        </div>
+                                    </div>
+                                </div>
+                                @* <div class="layui-form-item">
+                                    <label class="layui-form-label">是否标记</label>
+                                    <div class="layui-input-block">
+                                        <input type="checkbox" id="IsOk" name="IsOk" value="1" lay-skin="switch"
+                                            lay-filter="switchTest" title="开关">
+                                    </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>
+        </form>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script
+        src="/other/oss/upload-min@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        var st;
+        function GetReserve(obj) {
+            clearTimeout(st);
+            setTimeout(function () {
+                $.ajax({
+                    url: "/Admin/StoreHouse/GetReserve?r=" + Math.random(1),
+                    data: "MakerCode=" + $(obj).val(),
+                    dataType: "text",
+                    success: function (data) {
+                        $('#Reserve').text('当前可用额度:' + data);
+                    }
+                });
+            }, 1000);
+
+        }
+
+
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        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>

+ 394 - 0
Areas/Admin/Views/MainServer/StoreHouse/Edit.cshtml

@@ -0,0 +1,394 @@
+@using MySystem.Models;
+@{
+    StoreHouse editData = ViewBag.data as StoreHouse;
+}
+@{
+    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>
+    <style>
+        .layui-form-label {
+            width: 135px !important;
+        }
+
+        .layui-form-item .layui-input-block {
+            margin-left: 165px !important;
+        }
+    </style>
+</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">
+                    <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="StoreName" name="StoreName"
+                                        value="@editData.StoreName" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="请输入仓库名称">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库状态</label>
+                                <div class="layui-input-inline">
+                                    <select id="Status" name="Status" lay-search="" lay-verify="required|">
+                                        <option value="">请选择</option>
+                                        <option value="1">正常</option>
+                                        <option value="0">停用</option>
+                                    </select>
+                                    <script>
+                                        $("#Status").val("@editData.Status");
+                                    </script>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库负责人编号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode"
+                                        value="@ViewBag.ManageMakerCode" maxlength="30" lay-verify="required|"
+                                        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="text" readonly id="ManageRealName"
+                                        name="ManageRealName" value="@ViewBag.ManageRealName" maxlength="20"
+                                        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="text" id="MakerCode" name="MakerCode"
+                                        value="@ViewBag.MakerCode" maxlength="30" lay-verify="" autocomplete="off"
+                                        placeholder="请输入仓库归属创客编号(操作员)">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库归属类型</label>
+                                <div class="layui-input-inline">
+                                    <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
+                                        <option value="">请选择</option>
+                                        <option value="0">分仓</option>
+                                        <option value="1">总仓</option>
+                                    </select>
+                                    <script>
+                                        $("#StoreKind").val("@editData.StoreKind");
+                                    </script>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*管理者邮箱</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail"
+                                        value="@editData.ManagerEmail" maxlength="32" lay-verify="required|email|"
+                                        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="text" id="ManageMobile" name="ManageMobile"
+                                        value="@editData.ManageMobile" maxlength="11" lay-verify="required|phone|"
+                                        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="text" id="LimitTopUserId" name="LimitTopUserId"
+                                        value="@editData.LimitTopUserId" maxlength="100" lay-verify=""
+                                        autocomplete="off" placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库所属地区</label>
+                                <input type="hidden" id="Areas" name="Areas" value="@editData.Areas" />
+                                <div class="layui-input-inline">
+                                    <select id="AreasProvince" lay-search="" lay-filter="AreasProvince"
+                                        lay-verify="required|">
+                                        <option value="">省</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                        <option value="">市</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                        <option value="">县/区</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库地址</label>
+                                <div class="layui-input-block">
+                                    <input class="layui-input" type="text" id="Address" name="Address"
+                                        value="@editData.Address" maxlength="128" lay-verify="required|"
+                                        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="text" id="Deposit" name="Deposit"
+                                        value="@editData.Deposit" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="请输入押金">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">附件</label>
+                                <div class="layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="FilePath" name="FilePath"
+                                            value="@editData.FilePath">
+                                        <button class="layui-btn" type="button" id="FilePathBtn">选择文件</button>
+                                        <div class="layui-inline layui-word-aux">@(new MySystem.PublicFunction().GetUploadHint("SysAdminFilePath"))</div>
+                                    </div>
+                                    <div style="margin-top:10px;" id="FilePathFile">
+                                        @if (!string.IsNullOrEmpty(editData.FilePath))
+                                        {
+                                            @editData.FilePath<a
+                                            style="margin-left:20px;text-decoration:underline;color:cornflowerblue;"
+                                            href="@(MySystem.OssHelper.Instance.SourceHost)@editData.FilePath"
+                                            target="_blank">点击查看附件</a>
+                                        }
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-form-item layui-form-text">
+                                <label class="layui-form-label">备注</label>
+                                <div class="layui-input-block">
+                                    <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
+                                        lay-verify="" placeholder="请输入备注">@editData.Remark</textarea>
+                                </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@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+
+
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        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');
+            });
+
+            //日期
+
+
+            //上传文件
+            WebUploadJs('FilePathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminFilePath"))), function (filename) {
+                $('#FilePathFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                $('#FilePath').val(filename);
+                setTimeout(function () {
+                    $("#FilePathProgressBar").css("display", "none");
+                }, 1000);
+            }, function (file) {
+                $("#FilePathProgressBar").css("display", "block");
+                element.progress('FilePathProgress', file.percent + '%');
+            });
+            WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#HeadPhoto').val(filename);
+            });
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+            form.on('select(AreasProvince)', function (data) {
+                AreasProvinceSelected("Areas", "@editData.Areas", form, data.value);
+            });
+            form.on('select(AreasCity)', function (data) {
+                AreasCitySelected("Areas", "@editData.Areas", form, data.value)
+            });
+            form.on('select(AreasArea)', function (data) {
+                AreasAreaSelected("Areas", form)
+            });
+            setTimeout(function () {
+                AreasProvinceInit("Areas", "@(Html.Raw(editData.Areas))", form);
+                AreasProvinceSelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasProvince").val());
+                AreasCitySelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasCity").val());
+                AreasAreaSelected("Areas", form);
+            }, 1000);
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 408 - 0
Areas/Admin/Views/MainServer/StoreHouse/Edits.cshtml

@@ -0,0 +1,408 @@
+@using MySystem.Models;
+@{
+    StoreHouse editData = ViewBag.data as StoreHouse;
+}
+@{
+    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>
+    <style>
+        .layui-form-label {
+            width: 135px !important;
+        }
+
+        .layui-form-item .layui-input-block {
+            margin-left: 165px !important;
+        }
+    </style>
+</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">
+                    <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="StoreName" name="StoreName"
+                                        value="@editData.StoreName" maxlength="32" lay-verify="required|"
+                                        autocomplete="off" placeholder="请输入仓库名称">
+                                </div>
+                            </div>
+                            @{
+                                Dictionary<string, string> KqProductsDic = new MySystem.DictionaryClass().getKqProductBrandDic();
+                            }
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">产品类型</label>
+                                <div class="layui-input-inline">
+                                    <select id="BrandId" name="BrandId" lay-search="">
+                                        <option value="">全部...</option>
+                                        @foreach (string key in KqProductsDic.Keys)
+                                        {
+                                            <option value="@key" @(editData.BrandId.ToString() == key ? "selected" : "")>@KqProductsDic[key]</option>
+                                        }
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库状态</label>
+                                <div class="layui-input-inline">
+                                    <select id="Status" name="Status" lay-search="" lay-verify="required|">
+                                        <option value="">请选择</option>
+                                        <option value="1">正常</option>
+                                        <option value="0">停用</option>
+                                    </select>
+                                    <script>
+                                        $("#Status").val("@editData.Status");
+                                    </script>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库负责人编号</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManageMakerCode" name="ManageMakerCode"
+                                        value="@ViewBag.ManageMakerCode" maxlength="30" lay-verify="required|"
+                                        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="text" readonly id="ManageRealName"
+                                        name="ManageRealName" value="@ViewBag.ManageRealName" maxlength="20"
+                                        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="text" id="MakerCode" name="MakerCode"
+                                        value="@ViewBag.MakerCode" maxlength="30" lay-verify="" autocomplete="off"
+                                        placeholder="请输入仓库归属创客编号(操作员)">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库归属类型</label>
+                                <div class="layui-input-inline">
+                                    <select id="StoreKind" name="StoreKind" lay-search="" lay-verify="required|">
+                                        <option value="">请选择</option>
+                                        <option value="0">分仓</option>
+                                        <option value="1">总仓</option>
+                                    </select>
+                                    <script>
+                                        $("#StoreKind").val("@editData.StoreKind");
+                                    </script>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*管理者邮箱</label>
+                                <div class="layui-input-inline">
+                                    <input class="layui-input" type="text" id="ManagerEmail" name="ManagerEmail"
+                                        value="@editData.ManagerEmail" maxlength="32" lay-verify="required|email|"
+                                        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="text" id="ManageMobile" name="ManageMobile"
+                                        value="@editData.ManageMobile" maxlength="11" lay-verify="required|phone|"
+                                        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="text" id="LimitTopUserId" name="LimitTopUserId"
+                                        value="@editData.LimitTopUserId" maxlength="100" lay-verify=""
+                                        autocomplete="off" placeholder="请输入特殊团队仓库专属-限制创客编号(多个用,隔开)">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库所属地区</label>
+                                <input type="hidden" id="Areas" name="Areas" value="@editData.Areas" />
+                                <div class="layui-input-inline">
+                                    <select id="AreasProvince" lay-search="" lay-filter="AreasProvince"
+                                        lay-verify="required|">
+                                        <option value="">省</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasCity" lay-search="" lay-filter="AreasCity" lay-verify="required|">
+                                        <option value="">市</option>
+                                    </select>
+                                </div>
+                                <div class="layui-input-inline">
+                                    <select id="AreasArea" lay-search="" lay-filter="AreasArea">
+                                        <option value="">县/区</option>
+                                    </select>
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">*仓库地址</label>
+                                <div class="layui-input-block">
+                                    <input class="layui-input" type="text" id="Address" name="Address"
+                                        value="@editData.Address" maxlength="128" lay-verify="required|"
+                                        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="text" id="Deposit" name="Deposit" value="@editData.Deposit"
+                                        maxlength="32" lay-verify="required|" autocomplete="off" placeholder="请输入押金">
+                                </div>
+                            </div>
+                            <div class="layui-form-item">
+                                <label class="layui-form-label">附件</label>
+                                <div class="layui-input-block">
+                                    <div class="layui-upload">
+                                        <input type="hidden" id="FilePath" name="FilePath" value="@editData.FilePath"
+                                            lay-verify="required|">
+                                        <button class="layui-btn" type="button" id="FilePathBtn">选择文件</button>
+                                        <div class="layui-inline layui-word-aux">
+                                            @(new MySystem.PublicFunction().GetUploadHint("SysAdminFilePath"))</div>
+                                    </div>
+                                    <div style="margin-top:10px;" id="FilePathFile">
+                                    </div>
+                                    <div style="width: 50%; margin-top:20px; display:none;" id="FilePathProgressBar">
+                                        <div class="layui-progress" lay-showpercent="true"
+                                            lay-filter="FilePathProgress">
+                                            <div class="layui-progress-bar" lay-percent="0%"></div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-form-item layui-form-text">
+                                <label class="layui-form-label">备注</label>
+                                <div class="layui-input-block">
+                                    <textarea class="layui-textarea" id="Remark" name="Remark" maxlength="128"
+                                        lay-verify="" placeholder="请输入备注">@editData.Remark</textarea>
+                                </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@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+
+
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        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');
+            });
+
+            //日期
+
+
+            //上传文件
+            WebUploadJs('FilePathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminFilePath"))), function (filename) {
+                $('#FilePathFile').html(filename + '<a style="margin-left:20px;text-decoration:underline;color:cornflowerblue;" href="' + osshost + filename + '" target="_blank">点击查看附件</a>');
+                $('#FilePath').val(filename);
+                setTimeout(function () {
+                    $("#FilePathProgressBar").css("display", "none");
+                }, 1000);
+            }, function (file) {
+                $("#FilePathProgressBar").css("display", "block");
+                element.progress('FilePathProgress', file.percent + '%');
+            });
+            WebUploadJs('HeadPhotoBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload', @(Html.Raw(new MySystem.PublicFunction().GetUploadParam("SysAdminHeadPhoto"))), function (filename) {
+                $('#HeadPhotoImage').html('<img src="' + osshost + filename + '" class="layui-upload-img" style="max-width:85px; max-height:85px;" onclick="showBigPic(\'' + osshost + filename + '\')">')
+                $('#HeadPhoto').val(filename);
+            });
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+            form.on('select(AreasProvince)', function (data) {
+                AreasProvinceSelected("Areas", "@editData.Areas", form, data.value);
+            });
+            form.on('select(AreasCity)', function (data) {
+                AreasCitySelected("Areas", "@editData.Areas", form, data.value)
+            });
+            form.on('select(AreasArea)', function (data) {
+                AreasAreaSelected("Areas", form)
+            });
+            setTimeout(function () {
+                AreasProvinceInit("Areas", "@(Html.Raw(editData.Areas))", form);
+                AreasProvinceSelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasProvince").val());
+                AreasCitySelected("Areas", "@(Html.Raw(editData.Areas))", form, $("#AreasCity").val());
+                AreasAreaSelected("Areas", form);
+            }, 1000);
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 144 - 0
Areas/Admin/Views/MainServer/StoreHouse/Import.cshtml

@@ -0,0 +1,144 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    string ExcelKind = ViewBag.ExcelKind 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>
+    <style>
+        .layui-form-label{
+            width: 135px !important;
+        }
+        .layui-form-item .layui-input-block{
+            margin-left: 165px !important;
+        }
+    </style>
+</head>
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <input type="hidden" name="Kind" value="@ExcelKind" />
+        
+        <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-form-mid layui-word-aux" id="excelTemp">
+                                @if(ExcelKind == "1")
+                                {
+                                <a href="/users/客小爽入库模版.xlsx">点击下载入库模版</a>
+                                }
+                                @if(ExcelKind == "2")
+                                {
+                                <a href="/users/客小爽仓库调拨模版.xlsx">点击下载仓库调拨模版</a>
+                                }
+                                @if(ExcelKind == "3")
+                                {
+                                <a href="/users/客小爽仓库发货至创客模版.xlsx">点击下载仓库发货至创客模版</a>
+                                }
+                                @* @if(ExcelKind == "4")
+                                {
+                                <a href="/users/创客机具驳回仓库.xlsx">点击下载创客机具驳回仓库模版</a>
+                                } *@
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">excel文件</label>
+                            <div class="layui-input-block">
+                                <div class="layui-upload">
+                                    <input type="hidden" id="ExcelPath" name="ExcelPath" value="">
+                                    <button class="layui-btn" type="button" id="ExcelPathBtn">选择</button>
+                                    <div class="layui-inline layui-word-aux"></div>
+                                </div>
+                                <div class="mt10" id="ExcelPathFile">
+                                </div>
+                            </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?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        
+                    
+        //编辑器
+        KindEditor.ready(function (K) {
+            
+        });
+
+        
+        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');
+            });
+    
+            //日期
+            
+
+            //上传文件
+            WebUploadJs('ExcelPathBtn', '@(Library.ConfigurationManager.AppSettings["Database"].ToString())/upload/v2', {width:0,height:0,quality:0},{max_file_size:1048576},  function (filename) {
+                $('#ExcelPathFile').html(filename);
+                $('#ExcelPath').val(filename);
+            });
+
+            //穿梭框
+            
+            
+
+            //TreeView,比如权限管理
+            
+
+            //省市区
+
+        });
+
+    </script>
+</body>
+</html>

+ 238 - 0
Areas/Admin/Views/MainServer/StoreHouse/Index.cshtml

@@ -0,0 +1,238 @@
+@{
+    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: 128px !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">
+                <input class="layui-input" type="hidden" name="ShowFlag" autocomplete="off">
+                <div class="layui-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="StoreNo" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库名称</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="StoreName" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库归属人创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="UserIdMakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库归属人真实姓名</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="UserIdRealName" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库管理员真实姓名</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="ManageUserIdRealName" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库管理员手机号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="ManageUserIdMobile" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库管理员创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="ManageUserIdMakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">管理者邮箱</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="ManagerEmail" placeholder=""
+                                autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库状态</label>
+                        <div class="layui-input-inline">
+                            <select id="StoreStatusSelect" name="StoreStatusSelect" lay-search="">
+                                <option value="">全部...</option>
+                                <option value="1">启用</option>
+                                <option value="0">禁用</option>
+                            </select>
+                        </div>
+                    </div>
+                    @{
+                        Dictionary<string, string> ProfitObjectsActivesDic = new MySystem.DictionaryClass().getKqProductBrandDic();
+                    }
+                    <div class="layui-inline">
+                        <label class="layui-form-label">品牌</label>
+                        <div class="layui-input-inline">
+                            <select id="BrandId" name="BrandId" lay-search="">
+                                <option value="">全部...</option>
+                                @foreach (string key in ProfitObjectsActivesDic.Keys)
+                                {
+                                    <option value="@key">@ProfitObjectsActivesDic[key]</option>
+                                }
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDate"
+                                placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">伞下仓库所属创客编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="MakerCode" autocomplete="off">
+                        </div>
+                    </div>
+                    <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;">
+                    @if (RightInfo.Contains("," + right + "_add,"))
+                    {
+                        <button class="layui-btn" data-type="add"><i
+                            class="layui-icon layui-icon-add-1 layuiadmin-button-btn"></i>新增</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_delete,"))
+                    {
+                        <button class="layui-btn" data-type="batchdel"><i
+                            class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_export,"))
+                    {
+                        <button class="layui-btn" data-type="ExportExcel"><i
+                            class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_import2,") || RightInfo.Contains("," + right + "_import,"))
+                    {
+                        <button class="layui-btn" data-type="ImportChange"><i
+                            class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>仓库调拨</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_import3,") || RightInfo.Contains("," + right + "_import,"))
+                    {
+                        <button class="layui-btn" data-type="ImportSend"><i
+                            class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>仓库发货至创客</button>
+
+                    }
+                    @if (RightInfo.Contains("," + right + "_import4,") || RightInfo.Contains("," + right + "_import,"))
+                    {
+                        <button class="layui-btn" data-type="ImportRejectStore"><i
+                            class="layui-icon layui-icon-upload layuiadmin-button-btn"></i>机具驳回仓库</button>
+                    }
+                    @if (RightInfo.Contains("," + right + "_sycn,"))
+                    {
+                        <button class="layui-btn" data-type="SycnData"><i
+                            class="layui-icon layui-icon-export layuiadmin-button-btn"></i>同步库存</button>
+                    }
+                </div>
+
+                <script type="text/html" id="ManageTpl">
+                    <a lay-href="/Admin/Users/Index?right=@right&MakerCode={{d.ManageUserIdMakerCode}}" style="color: #428bca;">{{d.ManageUserIdMakerCode}}</a>
+                </script>
+                <script type="text/html" id="MakerCodeTpl">
+                    <a lay-href="/Admin/Users/Index?right=@right&MakerCode={{d.UserIdMakerCode}}" style="color: #428bca;">{{d.UserIdMakerCode}}</a>
+                </script>
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+                <script type="text/html" id="table-list-tools">
+                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>修改</a>
+                    }
+                    @if (RightInfo.Contains("," + right + "_sycn,"))
+                    {
+                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sycn"><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="ConfirmRejectImport()">立即导入</button>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_main/StoreHouse_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+
+    </script>
+</body>
+
+</html>

+ 99 - 0
Areas/Admin/Views/MainServer/StoreHouse/Stat.cshtml

@@ -0,0 +1,99 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+    string MakerCode = ViewBag.MakerCode 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: 128px !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">
+                            <label class="layui-form-label">创客编号</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" name="MakerCode" value="@MakerCode" autocomplete="off">
+                            </div>
+                        </div>
+                        <div class="layui-inline">
+                            <label class="layui-form-label">创客名称</label>
+                            <div class="layui-input-inline">
+                                <input class="layui-input" type="text" name="RealName" autocomplete="off">
+                            </div>
+                        </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库编号</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="StoreNo" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">仓库名称</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" name="StoreName" placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">创建时间</label>
+                        <div class="layui-input-inline">
+                            <input class="layui-input" type="text" readonly name="CreateDateData" id="CreateDate"
+                                placeholder="" autocomplete="off">
+                        </div>
+                    </div>
+                    <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;">
+                    <button class="layui-btn" data-type="ExportExcel"><i class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
+                </div>                
+                <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>
+            </div>
+        </div>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/layuiadmin/modules_main/StoreHouseStat_Admin.js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script>
+        var MakerCode = '@MakerCode';
+    </script>
+</body>
+</html>

+ 24 - 0
Startup.cs

@@ -211,5 +211,29 @@ namespace MySystem
             Library.OtherMySqlConn.connstr = "";
             PublicFunction.CashTables = tables;
         }
+
+        private void initKxsMainServer()
+        {
+            Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
+            Library.OtherMySqlConn.connstr = Configuration["Setting:KxsSqlConnStr"];
+            System.Data.DataTable tablecollection = Library.OtherMySqlConn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = 'KxsMainServer'");
+            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 = 'KxsMainServer' 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.KxsMainTables = tables;
+        }
     }
 }

+ 1 - 0
appsettings.json

@@ -17,6 +17,7 @@
     "Host": "http://test.mpadmin.kexiaoshuang.com/",
     "OssHost": "http://oss.qrcodeplate.com",
     "Database": "QrCodePlateMainServer",
+    "KxsSqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=FrW8ZfxlcaVdm1r0;database=KxsMainServer;charset=utf8;",
     "SqlConnStr": "server=47.109.31.237;port=3306;user=QrCodePlateMainServer;password=ll4DFaALMu9YIooM;database=QrCodePlateMainServer;charset=utf8;",
     "BsSqlConnStr": "server=47.109.31.237;port=3306;user=QrCodePlateBsServer;password=ld5Px33wvhyEz44P;database=QrCodePlateBsServer;charset=utf8;",
     "SpSqlConnStr": "server=47.109.31.237;port=3306;user=QrCodePlateSpServer;password=T2ZzxUq2fix0cTqa;database=QrCodePlateSpServer;charset=utf8;",

+ 1 - 41
wwwroot/layuiadmin/modules_main/StoreHouse_Admin.js

@@ -227,11 +227,6 @@ layui.config({
                 width: 120,
                 title: '剩余库存数',
                 sort: true
-            }, {
-                field: 'PreNum',
-                width: 120,
-                title: '小分仓数',
-                sort: true
             }, {
                 field: 'OutNum',
                 width: 100,
@@ -247,11 +242,6 @@ layui.config({
                 width: 110,
                 title: '仓库状态',
                 sort: true
-            }, {
-                field: 'OpIdStatus',
-                width: 130,
-                title: '关联运营中心',
-                sort: true
             }, {
                 field: 'StoreKind',
                 width: 130,
@@ -272,39 +262,9 @@ layui.config({
                 width: 110,
                 title: '押金',
                 sort: true
-            }, {
-                field: 'ValidAmount',
-                width: 110,
-                title: '可用额度',
-                sort: true
-            }, {
-                field: 'FixedAmount',
-                width: 110,
-                title: '固定额度',
-                sort: true
-            }, {
-                field: 'TempAmount',
-                width: 110,
-                title: '临时额度',
-                sort: true
-            }, {
-                field: 'PromissAmount',
-                width: 110,
-                title: '担保额度',
-                sort: true
-            }, {
-                field: 'ThisMonthPreAmount',
-                width: 150,
-                title: '本月小分仓额度',
-                sort: true
-            }, {
-                field: 'ValidPreAmount',
-                width: 150,
-                title: '可用小分仓额度',
-                sort: true
             }, {
                 title: '操作',
-                width: 300,
+                width: 500,
                 align: 'center',
                 fixed: 'right',
                 toolbar: '#table-list-tools'