From 7fdf7d7bd39cd0381c3969ad6302be0e693cad2d Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期二, 02 四月 2024 10:56:33 +0800
Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/baifenbaishop

---
 CoreCms.Net.Model/FromBody/FMUpdate.cs                                                          |    2 
 CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorMeeting.cs |   54 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/index.html                  |  721 ++++++++
 CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorPartial.cs |   60 
 CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs                                          |   42 
 CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj.user                                       |    2 
 CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.pdb                                    |    0 
 CoreCms.Net.Web.Admin/wwwroot/views/user/login.html                                             |    2 
 CoreCms.Net.Web.Admin/Controllers/Api/CommonAPIController.cs                                    |   50 
 CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.deps.json                              |   23 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/create.html                 |  261 +++
 CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml                                               |   75 
 CoreCms.Net.Web.Admin/wwwroot/lib/bootstrap/js/liao.js                                          |    4 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/details.html                |  568 ++++++
 CoreCms.Net.Services/baifenbingfa/OfflineDistributorServices.cs                                 |  287 +++
 CoreCms.Net.Web.Admin/wwwroot/views/liao.js                                                     |  239 +-
 CoreCms.Net.Web.Admin/Controllers/OfflineDistributor/OfflineDistributorController.cs            | 1187 +++++++++++++
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/edit.html                   |  622 +++++++
 CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/index.html                                    |   13 
 CoreCms.Net.Model/Entities/User/CoreCmsUser.cs                                                  |   13 
 CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributor.cs        |  124 +
 CoreCms.Net.IRepository/baifenbinfa/IOfflineDistributorRepository.cs                            |   99 +
 CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorOder.cs    |  123 +
 CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs                                        |   35 
 CoreCms.Net.Web.WebApi/Controllers/UserController.cs                                            |    1 
 CoreCms.Net.Repository/User/CoreCmsUserRepository.cs                                            |    1 
 CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj                                            |    4 
 CoreCms.Net.Repository/baifenbingfa/OfflineDistributorRepository.cs                             |  248 ++
 CoreCms.Net.IServices/baifenbingfa/IOfflineDistributorServices.cs                               |  103 +
 CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/index.html                                     |    4 
 CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs                                 |   29 
 CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.dll                                    |    0 
 CoreCms.Net.Web.WebApi/Controllers/OfflineDistributorController.cs                              |  161 +
 33 files changed, 5,062 insertions(+), 95 deletions(-)

diff --git a/CoreCms.Net.IRepository/baifenbinfa/IOfflineDistributorRepository.cs b/CoreCms.Net.IRepository/baifenbinfa/IOfflineDistributorRepository.cs
new file mode 100644
index 0000000..9e2c143
--- /dev/null
+++ b/CoreCms.Net.IRepository/baifenbinfa/IOfflineDistributorRepository.cs
@@ -0,0 +1,99 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/3/29 11:16:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+
+namespace CoreCms.Net.IRepository
+{
+	/// <summary>
+    /// 绾夸笅缁忛攢鍟嗛噰闆� 宸ュ巶鎺ュ彛
+    /// </summary>
+    public interface IOfflineDistributorRepository : IBaseRepository<OfflineDistributor>
+    {
+        #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> InsertAsync(OfflineDistributor entity);
+
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(OfflineDistributor entity);
+
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(List<OfflineDistributor> entity);
+
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdAsync(object id);
+
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
+
+        #endregion
+
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        Task<List<OfflineDistributor>> GetCaChe();
+
+        #endregion
+
+
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        Task<IPageList<OfflineDistributor>> QueryPageAsync(
+            Expression<Func<OfflineDistributor, bool>> predicate,
+            Expression<Func<OfflineDistributor, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false);
+
+    }
+}
diff --git a/CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs b/CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs
new file mode 100644
index 0000000..59cbe73
--- /dev/null
+++ b/CoreCms.Net.IServices/baifenbingfa/IBfbfComAPIService.cs
@@ -0,0 +1,35 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.IServices.baifenbingfa
+{
+    /// <summary>
+    ///  鐧惧垎鍏垫硶甯哥敤鏈嶅姟
+    /// </summary>
+   
+    public interface IBfbfComAPIService
+    {
+        /// <summary>
+        /// 鎼滅储杩斿洖鐢ㄦ埛鏁版嵁
+        /// </summary>
+        /// <param name="s"></param>
+        /// <returns></returns>
+        Task<List<SearchUserData>> SearchUserData(string s);
+    }
+
+
+   public class SearchUserData
+    {
+        /// <summary>
+        /// ID
+        /// </summary>
+        public  int  Id { get; set; }
+        /// <summary>
+        /// name 
+        /// </summary>
+        public string name { get; set; }
+    }
+}
diff --git a/CoreCms.Net.IServices/baifenbingfa/IOfflineDistributorServices.cs b/CoreCms.Net.IServices/baifenbingfa/IOfflineDistributorServices.cs
new file mode 100644
index 0000000..10dff4e
--- /dev/null
+++ b/CoreCms.Net.IServices/baifenbingfa/IOfflineDistributorServices.cs
@@ -0,0 +1,103 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/3/29 11:16:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+namespace CoreCms.Net.IServices
+{
+	/// <summary>
+    /// 绾夸笅缁忛攢鍟嗛噰闆� 鏈嶅姟宸ュ巶鎺ュ彛
+    /// </summary>
+    public interface IOfflineDistributorServices : IBaseServices<OfflineDistributor>
+    {
+        #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> InsertAsync(OfflineDistributor entity);
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(OfflineDistributor entity);
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(List<OfflineDistributor> entity);
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdAsync(object id);
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
+
+        #endregion
+
+        
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        Task<List<OfflineDistributor>> GetCaChe();
+
+        #endregion
+
+        #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        Task<IPageList<OfflineDistributor>> QueryPageAsync(
+            Expression<Func<OfflineDistributor, bool>> predicate,
+            Expression<Func<OfflineDistributor, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false);
+        #endregion
+        /// <summary>
+        /// 鑾峰彇璇︽儏
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+
+        Task<AdminUiCallBack> GetInfo(int id);
+        Task<AdminUiCallBack> UserInsertAsync(OfflineDistributor entity);
+    }
+}
diff --git a/CoreCms.Net.Model/Entities/User/CoreCmsUser.cs b/CoreCms.Net.Model/Entities/User/CoreCmsUser.cs
index 756ccc5..e7090f3 100644
--- a/CoreCms.Net.Model/Entities/User/CoreCmsUser.cs
+++ b/CoreCms.Net.Model/Entities/User/CoreCmsUser.cs
@@ -6,7 +6,8 @@
  *              Email: 34161541@qq.com
  *         CreateTime: 2021-06-08 22:14:59
  *        Description: 鏆傛棤
-***********************************************************************/ 
+***********************************************************************/
+using Chuanyin.Attribute;
 using SqlSugar;
 using System.ComponentModel.DataAnnotations;
 
@@ -16,6 +17,7 @@
     /// 鐢ㄦ埛琛�
     /// </summary>
     [SugarTable("CoreCmsUser",TableDescription = "鐢ㄦ埛琛�")]
+    [SqlCodeFirst]
     public partial class CoreCmsUser
     {
         /// <summary>
@@ -135,6 +137,15 @@
         [SugarColumn(ColumnDescription = "鍏宠仈涓夋柟璐︽埛")]
         [Required(ErrorMessage = "璇疯緭鍏0}")]
         public System.Int32 userWx { get; set; }
+
+
+        /// <summary>
+        /// 鏄惁鏄帹骞夸汉鍛�
+        /// </summary>
+        [Display(Name = "鏄惁鏄帹骞夸汉鍛�")]
+        [SugarColumn(ColumnDescription = "鏄惁鏄帹骞夸汉鍛�",IsNullable =true)]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        public bool? IsBaifenPromotion { get; set; }
         /// <summary>
         /// 鍒犻櫎鏍囧織 鏈夋暟鎹氨鏄垹闄�
         /// </summary>
diff --git a/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributor.cs b/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributor.cs
new file mode 100644
index 0000000..a2c2271
--- /dev/null
+++ b/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributor.cs
@@ -0,0 +1,124 @@
+锘縰sing Chuanyin.Attribute;
+using CoreCms.Net.Model.Entities.baseModel;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor
+{
+    /// <summary>
+    /// 绾夸笅缁忛攢鍟�
+    /// </summary>
+    [Display(Name = "绾夸笅缁忛攢鍟嗛噰闆�")]
+    [SugarTable(TableDescription = "绾夸笅缁忛攢鍟嗛噰闆�")]
+    [SqlCodeFirst]
+    public partial class  OfflineDistributor: BFBaseModel
+    {
+        /// <summary>
+        /// 涓婚敭ID锛岃嚜澧為暱
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭ID")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 淇℃伅鏀堕泦鏃堕棿
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "淇℃伅鏀堕泦鏃堕棿")]
+        public DateTime CollectionTime { get; set; } = DateTime.Now;
+
+        /// <summary>
+        /// 鍖哄煙淇℃伅
+        /// </summary>     
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍖哄煙淇℃伅")]
+        public string Region { get; set; }
+        /// <summary>
+        /// 璇︾粏鍦板潃
+        /// </summary>     
+        [SugarColumn(IsNullable = true, ColumnDescription = "璇︾粏鍦板潃")]
+        public string Adder { get; set; }
+
+        /// <summary>
+        /// 绫诲埆
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "绫诲埆")]
+        public string Category { get; set; }
+
+        /// <summary>
+        /// 瀛︽牎鍚嶇О锛堣嫢閫傜敤锛�
+        /// </summary>
+
+        [SugarColumn(IsNullable = true, ColumnDescription = "瀛︽牎鍚嶇О")]
+        public string School { get; set; }
+
+        /// <summary>
+        /// 缁忛攢鍟嗗悕绉�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "缁忛攢鍟嗗悕绉�")]
+        public string DealerName { get; set; }
+
+        /// <summary>
+        /// 鑱旂郴浜哄鍚�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鑱旂郴浜哄鍚�")]
+        public string ContactPerson { get; set; }
+
+        /// <summary>
+        /// 鑱旂郴鐢佃瘽
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鑱旂郴鐢佃瘽")]
+        public string PhoneNumber { get; set; }
+
+        /// <summary>
+        /// 搴楁嫑鍥剧墖鍦板潃
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "搴楁嫑鍥剧墖鍦板潃")]
+        public string StoreLogoUrl { get; set; }
+
+        /// <summary>
+        /// 鍚堜綔鎰忓悜鎻忚堪
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍚堜綔鎰忓悜鎻忚堪")]
+        public string CooperationIntent { get; set; }
+
+        /// <summary>
+        /// 涓氬姟缁忕悊濮撳悕
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "涓氬姟缁忕悊濮撳悕")]
+        public string BusinessManager { get; set; }
+
+        /// <summary>
+        /// 娲借皥璁板綍
+        /// <summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "娲借皥璁板綍")]
+        public string NegotiationRecord { get; set; }
+
+
+        /// <summary>
+        /// 鍏宠仈鐢ㄦ埛ID
+        /// <summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍏宠仈鐢ㄦ埛ID")]
+        public int?  UserID { get; set; }
+
+        /// <summary>
+        /// 鏀堕泦浜篒D
+        /// <summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏀堕泦浜篒D")]
+        public int?  PUserID { get; set; }
+        /// <summary>
+        /// 澶囨敞
+        /// <summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remake { get; set; }
+        /// <summary>
+        /// 鏄惁鍚堜綔
+        /// <summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁鍚堜綔", DefaultValue = "0")]
+        public bool IsMeeting { get; set; } = false;
+
+
+    }
+}
diff --git a/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorMeeting.cs b/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorMeeting.cs
new file mode 100644
index 0000000..9be157b
--- /dev/null
+++ b/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorMeeting.cs
@@ -0,0 +1,54 @@
+锘縰sing Chuanyin.Attribute;
+using CoreCms.Net.Model.Entities.baseModel;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor
+{
+    /// <summary>
+    /// 绾夸笅缁忛攢鍟嗛噰闆�
+    /// </summary>
+    [Display(Name = "娲借皥璁板綍")]
+    [SugarTable(TableDescription = "娲借皥璁板綍")]
+    [SqlCodeFirst]
+    public class OfflineDistributorMeeting: BFBaseModel
+    {
+        /// <summary>
+        /// id
+        /// </summary>
+        [SugarColumn(ColumnDescription = "id", IsIdentity = true, IsPrimaryKey = true)]
+        public int id { get; set; }
+        /// <summary>
+        /// 娲借皥鏃堕棿
+        /// </summary>
+        [Display(Name = "娲借皥鏃堕棿")]
+        [SugarColumn(ColumnDescription = "娲借皥鏃堕棿")]
+        public DateTime time { get; set; }
+
+        /// <summary>
+        /// 鎭拌皥鎯呭喌
+        /// </summary>
+        [Display(Name = "鎭拌皥鎯呭喌")]
+        [SugarColumn(ColumnDescription = "鎭拌皥鎯呭喌")]
+        public string Dec { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [Display(Name = "澶囨敞")]
+        [SugarColumn(ColumnDescription = "澶囨敞",IsNullable =true)]
+        public string Remake { get; set; }
+
+        /// <summary>
+        /// 缁忛攢鍟嗚〃ID
+        /// </summary>
+        [Display(Name = "缁忛攢鍟嗚〃ID")]
+        [SugarColumn(ColumnDescription = "缁忛攢鍟嗚〃ID")]
+        public int OfflineDistributorID { get; set; }
+    }
+}
diff --git a/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorOder.cs b/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorOder.cs
new file mode 100644
index 0000000..0b4724b
--- /dev/null
+++ b/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorOder.cs
@@ -0,0 +1,123 @@
+锘縰sing Chuanyin.Attribute;
+using CoreCms.Net.Model.Entities.baseModel;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    [Display(Name = "绾夸笅缁忛攢鍟嗛噰闆�")]
+    [SugarTable(TableDescription = "绾夸笅缁忛攢鍟嗛噰闆�")]
+    [SqlCodeFirst]
+    public class OfflineDistributorOder: BFBaseModel
+    {
+
+        /// <summary>
+        /// 涓婚敭ID锛岃嚜澧為暱
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭ID")]
+        public int Id { get; set; }
+        /// <summary>
+        /// 鍗曚环
+        /// </summary>
+        [Display(Name = "鍗曚环")]
+        [SugarColumn(ColumnDescription = "鍟嗗搧鍗曚环", IsNullable = true)]
+        public decimal UnitPrice { get; set; }
+        /// <summary>
+        /// 鏃堕棿
+        /// </summary>
+        [Display(Name = "鏃堕棿")]
+        [SugarColumn(ColumnDescription = "鏃堕棿")]
+        public DateTime time { get; set; }
+        /// <summary>
+        /// 璐х墿鍚嶇О
+        /// </summary>
+        [Display(Name = "璐х墿鍚嶇О")]
+        [SugarColumn(ColumnDescription = "鍟嗗搧鍚嶇О", IsNullable = true)]
+        public string GoodsName { get; set; }
+
+        /// <summary>
+        /// 璐х墿缂栫爜
+        /// </summary>
+        [Display(Name = "璐х墿缂栫爜")]
+        [SugarColumn(ColumnDescription = "鍟嗗搧缂栫爜", IsNullable = true)]
+        public string GoodsCode { get; set; }
+
+        /// <summary>
+        /// 璁㈣揣鏁伴噺
+        /// </summary>
+        [Display(Name = "璁㈣揣鏁伴噺")]
+        [SugarColumn(ColumnDescription = "璁㈣喘鏁伴噺", IsNullable = true)]
+        public int OrderQuantity { get; set; }
+
+        /// <summary>
+        /// 璁㈣揣鏃堕棿
+        /// </summary>
+        [Display(Name = "璁㈣揣鏃堕棿")]
+        [SugarColumn(ColumnDescription = "璁㈣喘鏃堕棿", IsNullable = true)]
+        public DateTime? OrderTime { get; set; }
+
+        /// <summary>
+        /// 瀹炰粯閲戦
+        /// </summary>
+        [Display(Name = "瀹炰粯閲戦")]
+        [SugarColumn(ColumnDescription = "瀹為檯鏀粯閲戦", IsNullable = true)]
+        public decimal ActualPayment { get; set; }
+
+        /// <summary>
+        /// 鍙戣揣鏃堕棿
+        /// </summary>
+        [Display(Name = "鍙戣揣鏃堕棿")]
+        [SugarColumn(ColumnDescription = "鍙戣揣鏃堕棿", IsNullable = true)]
+        public DateTime? DeliveryTime { get; set; }
+
+        /// <summary>
+        /// 鍙戣揣鍗曞彿
+        /// </summary>
+        [Display(Name = "鍙戣揣鍗曞彿")]
+        [SugarColumn(ColumnDescription = "鍙戣揣鍗曠紪鍙�", IsNullable = true)]
+        public string DeliveryNumber { get; set; }
+
+        /// <summary>
+        /// 蹇�掑叕鍙�
+        /// </summary>
+        [Display(Name = "蹇�掑叕鍙�")]
+        [SugarColumn(ColumnDescription = "蹇�掑叕鍙稿悕绉�", IsNullable = true)]
+        public string ExpressCompany { get; set; }
+
+        /// <summary>
+        /// 鍙戣揣鏁伴噺锛堝鏋滀笌璁㈣揣鏁伴噺涓嶅悓姝ワ紝鍗曠嫭鍒楀嚭锛�
+        /// </summary>
+        [Display(Name = "鍙戣揣鏁伴噺")]
+        [SugarColumn(ColumnDescription = "瀹為檯鍙戣揣鏁伴噺", IsNullable = true)]
+        public int ShippedQuantity { get; set; }
+
+        /// <summary>
+        /// 閫�娆鹃噾棰�
+        /// </summary>
+        [Display(Name = "閫�娆鹃噾棰�")]
+        [SugarColumn(ColumnDescription = "閫�娆鹃噾棰�", IsNullable = true)]
+        public decimal? RefundAmount { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [Display(Name = "澶囨敞")]
+        [SugarColumn(ColumnDescription = "璁㈠崟澶囨敞", IsNullable =true)]
+        public string Remarks { get; set; }
+
+        /// <summary>
+        /// 缁忛攢鍟嗚〃ID
+        /// </summary>
+        [Display(Name = "缁忛攢鍟嗚〃ID")]
+        [SugarColumn(ColumnDescription = "缁忛攢鍟嗚〃ID")]
+        public int OfflineDistributorID { get; set; }
+    }
+}
diff --git a/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorPartial.cs b/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorPartial.cs
new file mode 100644
index 0000000..f6901b8
--- /dev/null
+++ b/CoreCms.Net.Model/Entities/baifenbingfa/Promote/OffLineDistributor/OfflineDistributorPartial.cs
@@ -0,0 +1,60 @@
+锘縰sing Chuanyin.Attribute;
+using CoreCms.Net.Model.Entities.baseModel;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor
+{
+    /// <summary>
+    /// 绾夸笅缁忛攢鍟�
+    /// </summary>
+ 
+    public partial class  OfflineDistributor
+    {
+
+        /// <summary>
+        /// 鍏宠仈鐢ㄦ埛
+        /// </summary>		
+        [Navigate(NavigateType.OneToOne, nameof(UserID))]
+        public CoreCmsUser? User { get; set; }
+
+        /// <summary>
+        /// 鎺ㄨ崘鐢ㄦ埛
+        /// </summary>		
+        [Navigate(NavigateType.OneToOne, nameof(PUserID))]
+        public CoreCmsUser? pUser { get; set; }
+
+
+        /// <summary>
+        /// 娲借皥璁板綍
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(OfflineDistributorMeeting.OfflineDistributorID))]
+        public List<OfflineDistributorMeeting> meetings { get; set; }
+
+        /// <summary>
+        /// 娲借皥璁板綍
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(OfflineDistributorOder.OfflineDistributorID))]
+        public List<OfflineDistributorOder> Oders { get; set; }
+        /// <summary>
+        /// 娲借皥娆℃暟
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public int meetingCount { get; set; } = 0;
+        /// <summary>
+        /// 鍚堜綔閲戦
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public decimal money { get; set; } = 0;
+        /// <summary>
+        /// 鍖哄煙鍚嶇О
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public string areaCodeName { get; set; }    
+    }
+}
diff --git a/CoreCms.Net.Model/FromBody/FMUpdate.cs b/CoreCms.Net.Model/FromBody/FMUpdate.cs
index 9426f2a..21190b3 100644
--- a/CoreCms.Net.Model/FromBody/FMUpdate.cs
+++ b/CoreCms.Net.Model/FromBody/FMUpdate.cs
@@ -31,6 +31,8 @@
         /// </summary>
         [Required(ErrorMessage = "璇疯緭鍏ョ浉搴旀暟鎹�")]
         public bool data { get; set; }
+
+        
     }
 
     /// <summary>
diff --git a/CoreCms.Net.Repository/User/CoreCmsUserRepository.cs b/CoreCms.Net.Repository/User/CoreCmsUserRepository.cs
index f4ee167..513f071 100644
--- a/CoreCms.Net.Repository/User/CoreCmsUserRepository.cs
+++ b/CoreCms.Net.Repository/User/CoreCmsUserRepository.cs
@@ -133,6 +133,7 @@
                     isDelete = p.isDelete,
                     type = (int)sWeChatInfo.type,
                     parentNickName = sParentUser.nickName,
+                    IsBaifenPromotion = p.IsBaifenPromotion,
                     //childNum = SqlFunc.Subqueryable<CoreCmsUser>().Where(o => o.parentId == p.id).Count(),  //褰卞搷鏁堢巼锛岀Щ闄ゆ帀銆傛斁鍒版帴鍙g鍗曠嫭璁$畻銆�
                 })
                 .MergeTable().With(SqlWith.Null)
diff --git a/CoreCms.Net.Repository/baifenbingfa/OfflineDistributorRepository.cs b/CoreCms.Net.Repository/baifenbingfa/OfflineDistributorRepository.cs
new file mode 100644
index 0000000..43c64c6
--- /dev/null
+++ b/CoreCms.Net.Repository/baifenbingfa/OfflineDistributorRepository.cs
@@ -0,0 +1,248 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/3/29 11:16:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Caching.Manual;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor;
+
+namespace CoreCms.Net.Repository
+{
+    /// <summary>
+    /// 绾夸笅缁忛攢鍟嗛噰闆� 鎺ュ彛瀹炵幇
+    /// </summary>
+    public class OfflineDistributorRepository : BaseRepository<OfflineDistributor>, IOfflineDistributorRepository
+    {
+        private readonly IUnitOfWork _unitOfWork;
+        public OfflineDistributorRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
+        {
+            _unitOfWork = unitOfWork;
+        }
+
+       #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> InsertAsync(OfflineDistributor entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Insertable(entity).ExecuteReturnIdentityAsync() > 0;
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(OfflineDistributor entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var oldModel = await DbClient.Queryable<OfflineDistributor>().In(entity.Id).SingleAsync();
+            if (oldModel == null)
+            {
+            jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+            return jm;
+            }
+            //浜嬬墿澶勭悊杩囩▼寮�濮�
+        	oldModel.Id = entity.Id;
+            oldModel.CollectionTime = entity.CollectionTime;
+            oldModel.Region = entity.Region;
+            oldModel.Adder = entity.Adder;
+            oldModel.Category = entity.Category;
+            oldModel.School = entity.School;
+            oldModel.DealerName = entity.DealerName;
+            oldModel.ContactPerson = entity.ContactPerson;
+            oldModel.PhoneNumber = entity.PhoneNumber;
+            oldModel.StoreLogoUrl = entity.StoreLogoUrl;
+            oldModel.CooperationIntent = entity.CooperationIntent;
+            oldModel.BusinessManager = entity.BusinessManager;
+            oldModel.NegotiationRecord = entity.NegotiationRecord;
+            oldModel.UserID = entity.UserID;
+            oldModel.Remake = entity.Remake;
+            oldModel.createTime = entity.createTime;
+            oldModel.upDataTime = entity.upDataTime;
+            oldModel.createBy = entity.createBy;
+            oldModel.upDataBy = entity.upDataBy;
+            oldModel.isdelete = entity.isdelete;
+            
+            //浜嬬墿澶勭悊杩囩▼缁撴潫
+            var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(List<OfflineDistributor> entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Updateable(entity).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Deleteable<OfflineDistributor>(id).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Deleteable<OfflineDistributor>().In(ids).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+
+            return jm;
+        }
+
+        #endregion
+
+       #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<OfflineDistributor>> GetCaChe()
+        {
+           var list = await DbClient.Queryable<OfflineDistributor>().With(SqlWith.NoLock).WithCache().ToListAsync();
+            return list;
+        }
+
+        #endregion
+
+
+        #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        public async Task<IPageList<OfflineDistributor>> QueryPageAsync(Expression<Func<OfflineDistributor, bool>> predicate,
+            Expression<Func<OfflineDistributor, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false)
+        {
+            RefAsync<int> totalCount = 0;
+            List<OfflineDistributor> page;
+            if (blUseNoLock)
+            {
+                page = await DbClient.Queryable<OfflineDistributor>()
+                .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+                .WhereIF(predicate != null, predicate).Select(p => new OfflineDistributor
+                {
+                      Id = p.Id,
+                CollectionTime = p.CollectionTime,
+                Region = p.Region,
+                Adder = p.Adder,
+                Category = p.Category,
+                School = p.School,
+                DealerName = p.DealerName,
+                ContactPerson = p.ContactPerson,
+                PhoneNumber = p.PhoneNumber,
+                StoreLogoUrl = p.StoreLogoUrl,
+                CooperationIntent = p.CooperationIntent,
+                BusinessManager = p.BusinessManager,
+                NegotiationRecord = p.NegotiationRecord,
+                UserID = p.UserID,
+                Remake = p.Remake,
+                createTime = p.createTime,
+                upDataTime = p.upDataTime,
+                createBy = p.createBy,
+                upDataBy = p.upDataBy,
+                isdelete = p.isdelete,
+                
+                }).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
+            }
+            else
+            {
+                page = await DbClient.Queryable<OfflineDistributor>()
+                .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+                .WhereIF(predicate != null, predicate).Select(p => new OfflineDistributor
+                {
+                      Id = p.Id,
+                CollectionTime = p.CollectionTime,
+                Region = p.Region,
+                Adder = p.Adder,
+                Category = p.Category,
+                School = p.School,
+                DealerName = p.DealerName,
+                ContactPerson = p.ContactPerson,
+                PhoneNumber = p.PhoneNumber,
+                StoreLogoUrl = p.StoreLogoUrl,
+                CooperationIntent = p.CooperationIntent,
+                BusinessManager = p.BusinessManager,
+                NegotiationRecord = p.NegotiationRecord,
+                UserID = p.UserID,
+                Remake = p.Remake,
+                createTime = p.createTime,
+                upDataTime = p.upDataTime,
+                createBy = p.createBy,
+                upDataBy = p.upDataBy,
+                isdelete = p.isdelete,
+                
+                }).ToPageListAsync(pageIndex, pageSize, totalCount);
+            }
+            var list = new PageList<OfflineDistributor>(page, pageIndex, pageSize, totalCount);
+            return list;
+        }
+
+        #endregion
+
+    }
+}
diff --git a/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs b/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs
new file mode 100644
index 0000000..e02d672
--- /dev/null
+++ b/CoreCms.Net.Services/baifenbingfa/BfbfComAPIService.cs
@@ -0,0 +1,42 @@
+锘縰sing CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.IServices;
+using CoreCms.Net.IServices.baifenbingfa;
+using CoreCms.Net.Model.Entities;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Services.baifenbingfa
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class BfbfComAPIService : IBfbfComAPIService
+    {
+        
+        private readonly ICoreCmsUserServices _userServices;
+        private readonly IUnitOfWork _unitOfWork;
+
+       public   BfbfComAPIService(ICoreCmsUserServices userServices,IUnitOfWork unitOfWork)
+        {
+            _userServices = userServices;
+            _unitOfWork = unitOfWork;
+        }
+        public async Task<List<SearchUserData>> SearchUserData(string s)
+        {
+           var ListData= await  _unitOfWork.GetDbClient().Queryable<CoreCmsUser>().Where(x => x.isDelete == false).Select(x => new SearchUserData
+            {
+                Id = x.id,
+                name = x.mobile + "|" + x.userName + "|" + x.nickName,
+
+            }).WithCache(50).ToListAsync();
+            if (string.IsNullOrEmpty(s))
+            {
+               return ListData;
+            }
+            return ListData.Where(x => x.name.Contains(s)).ToList();
+        }
+    }
+}
diff --git a/CoreCms.Net.Services/baifenbingfa/OfflineDistributorServices.cs b/CoreCms.Net.Services/baifenbingfa/OfflineDistributorServices.cs
new file mode 100644
index 0000000..57497e6
--- /dev/null
+++ b/CoreCms.Net.Services/baifenbingfa/OfflineDistributorServices.cs
@@ -0,0 +1,287 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/3/29 11:16:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Auth.HttpContextUser;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.IServices;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+
+namespace CoreCms.Net.Services
+{
+    /// <summary>
+    /// 绾夸笅缁忛攢鍟嗛噰闆� 鎺ュ彛瀹炵幇
+    /// </summary>
+    public class OfflineDistributorServices : BaseServices<OfflineDistributor>, IOfflineDistributorServices
+    {
+        private readonly IOfflineDistributorRepository _dal;
+        private readonly IUnitOfWork _unitOfWork;
+  
+        private readonly IHttpContextUser _contextUser;
+        public OfflineDistributorServices(IUnitOfWork unitOfWork, IOfflineDistributorRepository dal,IHttpContextUser httpContextUser)
+        {
+            this._dal = dal;
+            base.BaseDal = dal;
+            _unitOfWork = unitOfWork;
+             _contextUser = httpContextUser;
+        }
+
+        #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> InsertAsync(OfflineDistributor entity)
+        {
+            entity.createTime = DateTime.Now;
+            entity.createBy = $"{_contextUser.Name}";
+            return await _dal.InsertAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UserInsertAsync(OfflineDistributor entity)
+        {
+            entity.createTime = DateTime.Now;
+            entity.createBy = $"{_contextUser.Name}";
+            var bol = await _unitOfWork.GetDbClient().InsertNav(entity).Include(x => x.meetings).ExecuteCommandAsync();
+            if (bol)
+            {
+                return new AdminUiCallBack()
+                {
+                    code = 0,
+                    data = bol,
+                    msg = "鎿嶄綔鎴愬姛"
+
+                };
+            }
+            else
+            {
+
+                return new AdminUiCallBack()
+                {
+                    code = 1,
+                    data = bol,
+                    msg = "鎿嶄綔澶辫触"
+
+                };
+
+            }
+            return await _dal.InsertAsync(entity);
+        }
+        public async Task<AdminUiCallBack> GetInfo(int id)
+        {
+            var data = await _unitOfWork.GetDbClient().Queryable<OfflineDistributor>().Where(x => x.Id == id)
+                   .Includes(x => x.meetings)
+                   .Includes(x => x.Oders).FirstAsync();
+            if (data == null)
+                return new AdminUiCallBack()
+                {
+                    msg = "娌℃湁鎵惧埌璇ユ暟鎹�"
+                };
+            else
+                return new AdminUiCallBack()
+                {
+                    code = 0,
+                    data = data
+                };
+        }
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(OfflineDistributor entity)
+        {
+            var db = _unitOfWork.GetDbClient();
+            var oldmod = await _dal.QueryByIdAsync(entity.Id);
+
+            if (oldmod == null)
+            {
+                return new AdminUiCallBack()
+                {
+                    data = "娌℃湁鎵惧埌鐩稿叧鏁版嵁"
+                };
+            }
+            oldmod.upDataTime = DateTime.Now;
+            oldmod.upDataBy = $"{_contextUser.Name}";
+            oldmod.BusinessManager = entity.BusinessManager;
+            oldmod.PhoneNumber = entity.PhoneNumber;
+            oldmod.PUserID = entity.PUserID;
+            oldmod.Region = entity.Region;
+            oldmod.Remake = entity.Remake;
+            oldmod.DealerName = entity.DealerName;
+            oldmod.UserID = entity.UserID;
+            oldmod.IsMeeting = entity.IsMeeting;
+            oldmod.StoreLogoUrl = entity.StoreLogoUrl;
+            oldmod.Adder = entity.Adder;
+            oldmod.ContactPerson = entity.ContactPerson;   
+            oldmod.Category = entity.Category;
+
+            oldmod.School = entity.School;
+            var oldMeetings = await db.Queryable<OfflineDistributorMeeting>().Where(x => x.OfflineDistributorID == oldmod.Id).OrderBy(x => x.id).ToListAsync();
+            var oldIntentions = await db.Queryable<OfflineDistributorOder>().Where(x => x.OfflineDistributorID == oldmod.Id).OrderBy(x => x.Id).ToListAsync();
+
+            foreach (var intention in entity.Oders)
+            {
+                if (intention.Id == 9999999)
+                {
+                    intention.Id = 0;
+                    intention.createBy = $"{_contextUser.Name}";
+                    intention.createTime = DateTime.Now;
+                    intention.isdelete = false;
+                    continue;
+                }
+                var old = oldIntentions.Where(x=>x.Id==intention.Id).SingleOrDefault();
+                if (old != null)
+                {
+                    intention.isdelete = old.isdelete;
+                    intention.createBy = old.createBy;
+                    intention.createTime = old.createTime;
+                    intention.upDataBy = $"{_contextUser.Name}";
+                    intention.upDataTime = DateTime.Now;
+                }
+            }
+            oldmod.Oders = entity.Oders;
+
+            foreach (var meetin in entity.meetings)
+            {
+                if (meetin.id == 9999999)
+                {
+                    meetin.id = 0;
+                    meetin.createBy = $"{_contextUser.Name}";
+                    meetin.createTime = DateTime.Now;
+                    meetin.isdelete = false;
+                    continue;
+                }
+                var old = oldMeetings.Where(x => x.id == meetin.id).SingleOrDefault();
+                if (old != null)
+                {
+                    meetin.isdelete = old.isdelete;
+                    meetin.createBy = old.createBy;
+                    meetin.createTime = old.createTime;
+                    meetin.upDataBy = $"{_contextUser.Name}";
+                    meetin.upDataTime = DateTime.Now;
+                }
+            }
+            oldmod.meetings = entity.meetings;
+
+            var bol = await _unitOfWork.GetDbClient().UpdateNav(oldmod).Include(x => x.meetings).Include(x => x.Oders).ExecuteCommandAsync();
+            if (bol)
+            {
+                return new AdminUiCallBack()
+                {
+                    code = 0,
+                    data = bol,
+                    msg = "鎿嶄綔鎴愬姛"
+
+                };
+            }
+            else
+            {
+
+                return new AdminUiCallBack()
+                {
+                    code = 1,
+                    data = bol,
+                    msg = "鎿嶄綔澶辫触"
+
+                };
+
+            }
+
+            //return await _dal.UpdateAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(List<OfflineDistributor> entity)
+        {
+            return await _dal.UpdateAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        {
+            return await _dal.DeleteByIdAsync(id);
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        {
+            return await _dal.DeleteByIdsAsync(ids);
+        }
+
+        #endregion
+
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<OfflineDistributor>> GetCaChe()
+        {
+            return await _dal.GetCaChe();
+        }
+
+        #endregion
+
+       #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        public async Task<IPageList<OfflineDistributor>> QueryPageAsync(Expression<Func<OfflineDistributor, bool>> predicate,
+            Expression<Func<OfflineDistributor, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false)
+        {
+          return       await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
+          
+        }
+ 
+        #endregion
+
+    }
+}
diff --git a/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.deps.json b/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.deps.json
new file mode 100644
index 0000000..4c9e895
--- /dev/null
+++ b/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.deps.json
@@ -0,0 +1,23 @@
+{
+  "runtimeTarget": {
+    "name": ".NETCoreApp,Version=v8.0",
+    "signature": ""
+  },
+  "compilationOptions": {},
+  "targets": {
+    ".NETCoreApp,Version=v8.0": {
+      "CoreCms.Net.Uni-App/1.0.0": {
+        "runtime": {
+          "CoreCms.Net.Uni-App.dll": {}
+        }
+      }
+    }
+  },
+  "libraries": {
+    "CoreCms.Net.Uni-App/1.0.0": {
+      "type": "project",
+      "serviceable": false,
+      "sha512": ""
+    }
+  }
+}
\ No newline at end of file
diff --git a/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.dll b/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.dll
new file mode 100644
index 0000000..a935289
--- /dev/null
+++ b/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.dll
Binary files differ
diff --git a/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.pdb b/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.pdb
new file mode 100644
index 0000000..7f55e9c
--- /dev/null
+++ b/CoreCms.Net.Uni-App/bin/Debug/net8.0/CoreCms.Net.Uni-App.pdb
Binary files differ
diff --git a/CoreCms.Net.Web.Admin/Controllers/Api/CommonAPIController.cs b/CoreCms.Net.Web.Admin/Controllers/Api/CommonAPIController.cs
new file mode 100644
index 0000000..243ce07
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/Controllers/Api/CommonAPIController.cs
@@ -0,0 +1,50 @@
+锘縰sing CoreCms.Net.Configuration;
+using CoreCms.Net.IServices.baifenbingfa;
+using CoreCms.Net.Model.ViewModels.UI;
+using CoreCms.Net.Web.Admin.Infrastructure;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using System.ComponentModel;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace CoreCms.Net.Web.Admin.Controllers.Api
+{
+    [Description("閫氱敤API")]
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    [RequiredErrorForAdmin]
+    [Authorize(Permissions.Name)]
+    public class CommonAPIController : ControllerBase
+    {
+        private readonly IBfbfComAPIService _comapiservice;
+        public CommonAPIController(IBfbfComAPIService comapiservice)
+        {
+            _comapiservice = comapiservice;
+        }
+        /// <summary>
+        /// 鑾峰彇鐢ㄦ埛鎼滅储鍒楄〃
+        /// </summary>
+        /// <param name="s"></param>
+        [HttpPost]
+        [Description("鑾峰彇鍒楄〃")]
+        [AllowAnonymous]
+        public async Task<AdminUiCallBack> GetUserList()
+        {
+            var ret= new AdminUiCallBack();
+            var s = Request.Form["sKey"].FirstOrDefault();
+            var data= await _comapiservice.SearchUserData(s);
+            if(data!=null)
+            {
+                ret.code = 0;
+                 ret.data = data;
+            }
+            else
+            {
+                ret.msg = "璇诲彇鐢ㄦ埛鏁版嵁澶辫触";
+            }
+              
+            return ret;
+        }
+    }
+}
diff --git a/CoreCms.Net.Web.Admin/Controllers/OfflineDistributor/OfflineDistributorController.cs b/CoreCms.Net.Web.Admin/Controllers/OfflineDistributor/OfflineDistributorController.cs
new file mode 100644
index 0000000..1e4eff0
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/Controllers/OfflineDistributor/OfflineDistributorController.cs
@@ -0,0 +1,1187 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/3/29 11:16:20
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+
+using System;
+using System.ComponentModel;
+using System.IO;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Expression;
+using CoreCms.Net.Model.FromBody;
+using CoreCms.Net.Model.ViewModels.UI;
+using CoreCms.Net.Filter;
+using CoreCms.Net.Loging;
+using CoreCms.Net.IServices;
+using CoreCms.Net.Utility.Helper;
+using CoreCms.Net.Utility.Extensions;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc;
+using NPOI.HSSF.UserModel;
+using SqlSugar;
+using CoreCms.Net.Web.Admin.Infrastructure;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor;
+using SqlSugar.Extensions;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote;
+using CoreCms.Net.Services.Basic;
+using CoreCms.Net.IRepository.UnitOfWork;
+
+namespace CoreCms.Net.Web.Admin.Controllers
+{
+    /// <summary>
+    /// 绾夸笅缁忛攢鍟嗛噰闆�
+    ///</summary>
+    [Description("绾夸笅缁忛攢鍟嗛噰闆�")]
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    [RequiredErrorForAdmin]
+    [Authorize(Permissions.Name)]
+    public class OfflineDistributorController : ControllerBase
+    {
+        private readonly IWebHostEnvironment _webHostEnvironment;
+        private readonly IOfflineDistributorServices _OfflineDistributorServices;
+        private readonly ICoreCmsAreaServices     _coreCmsAreaServices;
+        private readonly IUnitOfWork _unitOfWork;
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        ///</summary>
+        public OfflineDistributorController(IWebHostEnvironment webHostEnvironment
+            ,IOfflineDistributorServices OfflineDistributorServices
+            ,ICoreCmsAreaServices CoreCmsAreaServices
+            ,IUnitOfWork unitOfWork
+            )
+        {
+            _webHostEnvironment = webHostEnvironment;
+            _OfflineDistributorServices = OfflineDistributorServices;
+            _coreCmsAreaServices = CoreCmsAreaServices;
+            _unitOfWork = unitOfWork;
+        }
+
+        #region 鑾峰彇鍒楄〃============================================================
+        // POST: Api/OfflineDistributor/GetPageList
+         /// <summary>
+        /// 鑾峰彇鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鑾峰彇鍒楄〃")]
+        public async Task<AdminUiCallBack> GetPageList()
+        {
+            var jm = new AdminUiCallBack();
+            var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
+            var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
+            var where = PredicateBuilder.True<OfflineDistributor>();
+            //鑾峰彇鎺掑簭瀛楁
+            var orderField = Request.Form["orderField"].FirstOrDefault();
+
+            Expression<Func<OfflineDistributor, object>> orderEx = orderField switch
+            {
+                "Id" => p => p.Id,"CollectionTime" => p => p.CollectionTime,"Region" => p => p.Region,"Adder" => p => p.Adder,"Category" => p => p.Category,"School" => p => p.School,"DealerName" => p => p.DealerName,"ContactPerson" => p => p.ContactPerson,"PhoneNumber" => p => p.PhoneNumber,"StoreLogoUrl" => p => p.StoreLogoUrl,"CooperationIntent" => p => p.CooperationIntent,"BusinessManager" => p => p.BusinessManager,"NegotiationRecord" => p => p.NegotiationRecord,"UserID" => p => p.UserID,"Remake" => p => p.Remake,"createTime" => p => p.createTime,"upDataTime" => p => p.upDataTime,"createBy" => p => p.createBy,"upDataBy" => p => p.upDataBy,"isdelete" => p => p.isdelete,
+                _ => p => p.Id
+            };
+
+            //璁剧疆鎺掑簭鏂瑰紡
+            var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
+            var orderBy = orderDirection switch
+            {
+                "asc" => OrderByType.Asc,
+                "desc" => OrderByType.Desc,
+                _ => OrderByType.Desc
+            };
+            //鏌ヨ绛涢��
+			
+			//涓婚敭ID int
+			var Id = Request.Form["Id"].FirstOrDefault().ObjectToInt(0);
+            if (Id > 0)
+            {
+                where = where.And(p => p.Id == Id);
+            }
+			//淇℃伅鏀堕泦鏃堕棿 datetime
+			var CollectionTime = Request.Form["CollectionTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(CollectionTime))
+            {
+                if (CollectionTime.Contains("鍒�"))
+                {
+                    var dts = CollectionTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.CollectionTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.CollectionTime < dtEnd);
+                }
+                else
+                {
+                    var dt = CollectionTime.ObjectToDate();
+                    where = where.And(p => p.CollectionTime > dt);
+                }
+            }
+			//鍖哄煙淇℃伅 varchar
+			var Region = Request.Form["Region"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(Region))
+            {
+                where = where.And(p => p.Region.Contains(Region));
+            }
+			//璇︾粏鍦板潃 varchar
+			var Adder = Request.Form["Adder"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(Adder))
+            {
+                where = where.And(p => p.Adder.Contains(Adder));
+            }
+			//绫诲埆 varchar
+			var Category = Request.Form["Category"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(Category))
+            {
+                where = where.And(p => p.Category.Contains(Category));
+            }
+			//瀛︽牎鍚嶇О varchar
+			var School = Request.Form["School"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(School))
+            {
+                where = where.And(p => p.School.Contains(School));
+            }
+			//缁忛攢鍟嗗悕绉� varchar
+			var DealerName = Request.Form["DealerName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(DealerName))
+            {
+                where = where.And(p => p.DealerName.Contains(DealerName));
+            }
+			//鑱旂郴浜哄鍚� varchar
+			var ContactPerson = Request.Form["ContactPerson"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(ContactPerson))
+            {
+                where = where.And(p => p.ContactPerson.Contains(ContactPerson));
+            }
+			//鑱旂郴鐢佃瘽 varchar
+			var PhoneNumber = Request.Form["PhoneNumber"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(PhoneNumber))
+            {
+                where = where.And(p => p.PhoneNumber.Contains(PhoneNumber));
+            }
+			//搴楁嫑鍥剧墖鍦板潃 varchar
+			var StoreLogoUrl = Request.Form["StoreLogoUrl"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(StoreLogoUrl))
+            {
+                where = where.And(p => p.StoreLogoUrl.Contains(StoreLogoUrl));
+            }
+			//鍚堜綔鎰忓悜鎻忚堪 varchar
+			var CooperationIntent = Request.Form["CooperationIntent"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(CooperationIntent))
+            {
+                where = where.And(p => p.CooperationIntent.Contains(CooperationIntent));
+            }
+			//涓氬姟缁忕悊濮撳悕 varchar
+			var BusinessManager = Request.Form["BusinessManager"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(BusinessManager))
+            {
+                where = where.And(p => p.BusinessManager.Contains(BusinessManager));
+            }
+			//娲借皥璁板綍 varchar
+			var NegotiationRecord = Request.Form["NegotiationRecord"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(NegotiationRecord))
+            {
+                where = where.And(p => p.NegotiationRecord.Contains(NegotiationRecord));
+            }
+			//鏀堕泦浜篒D varchar
+			var UserID = Request.Form["UserID"].FirstOrDefault().ToInt32OrDefault();
+            if (UserID>0)
+            {
+                where = where.And(p => p.UserID==UserID);
+            }
+			//澶囨敞 varchar
+			var Remake = Request.Form["Remake"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(Remake))
+            {
+                where = where.And(p => p.Remake.Contains(Remake));
+            }
+			//寤虹珛鏃堕棿 datetime
+			var createTime = Request.Form["createTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createTime))
+            {
+                if (createTime.Contains("鍒�"))
+                {
+                    var dts = createTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime < dtEnd);
+                }
+                else
+                {
+                    var dt = createTime.ObjectToDate();
+                    where = where.And(p => p.createTime > dt);
+                }
+            }
+			//淇敼鏃堕棿 datetime
+			var upDataTime = Request.Form["upDataTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataTime))
+            {
+                if (upDataTime.Contains("鍒�"))
+                {
+                    var dts = upDataTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime < dtEnd);
+                }
+                else
+                {
+                    var dt = upDataTime.ObjectToDate();
+                    where = where.And(p => p.upDataTime > dt);
+                }
+            }
+			//鍒涘缓浜� varchar
+			var createBy = Request.Form["createBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createBy))
+            {
+                where = where.And(p => p.createBy.Contains(createBy));
+            }
+			//淇敼浜� varchar
+			var upDataBy = Request.Form["upDataBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataBy))
+            {
+                where = where.And(p => p.upDataBy.Contains(upDataBy));
+            }
+			//鍒犻櫎鏍囧織 bit
+			var isdelete = Request.Form["isdelete"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "true")
+            {
+                where = where.And(p => p.isdelete == true);
+            }
+            else if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "false")
+            {
+                where = where.And(p => p.isdelete == false);
+            }
+            //鑾峰彇鏁版嵁
+            var list = await _OfflineDistributorServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
+
+            foreach (var item in list)
+            {
+                var d = await _coreCmsAreaServices.GetAreaFullName(item.Region?.Split(",").ToList().OrderDescending()?.FirstOrDefault()?.ToInt32OrDefault(0) ?? 0);
+
+                if (d.status == true)
+                {
+                    item.areaCodeName = d.data.ToString();
+                    item.meetingCount = await _unitOfWork.GetDbClient().Queryable<OfflineDistributorMeeting>().Where(x => x.OfflineDistributorID == item.Id && x.isdelete == false).CountAsync();
+                    item.money = await _unitOfWork.GetDbClient().Queryable<OfflineDistributorOder>().Where(x => x.OfflineDistributorID == item.Id && x.isdelete == false).SumAsync(x=>x.ActualPayment);
+                }
+
+            }
+            
+            //杩斿洖鏁版嵁
+            jm.data = list;
+            jm.code = 0;
+            jm.count = list.TotalCount;
+            jm.msg = "鏁版嵁璋冪敤鎴愬姛!";
+            return jm;
+        }
+        #endregion
+
+        #region 棣栭〉鏁版嵁============================================================
+        // POST: Api/OfflineDistributor/GetIndex
+        /// <summary>
+        /// 棣栭〉鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("棣栭〉鏁版嵁")]
+        public AdminUiCallBack GetIndex()
+        {
+            //杩斿洖鏁版嵁
+            var jm = new AdminUiCallBack { code = 0 };
+            return jm;
+        }
+        #endregion
+
+        #region 鍒涘缓鏁版嵁============================================================
+        // POST: Api/OfflineDistributor/GetCreate
+        /// <summary>
+        /// 鍒涘缓鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍒涘缓鏁版嵁")]
+        public AdminUiCallBack GetCreate()
+        {
+            //杩斿洖鏁版嵁
+            var jm = new AdminUiCallBack { code = 0 };
+            return jm;
+        }
+        #endregion
+
+        #region 鍒涘缓鎻愪氦============================================================
+        // POST: Api/OfflineDistributor/DoCreate
+        /// <summary>
+        /// 鍒涘缓鎻愪氦
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍒涘缓鎻愪氦")]
+        public async Task<AdminUiCallBack> DoCreate([FromBody]OfflineDistributor entity)
+        {
+            var jm = await _OfflineDistributorServices.InsertAsync(entity);
+            return jm;
+        }
+        #endregion
+
+        #region 缂栬緫鏁版嵁============================================================
+        // POST: Api/OfflineDistributor/GetEdit
+        /// <summary>
+        /// 缂栬緫鏁版嵁
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("缂栬緫鏁版嵁")]
+        public async Task<AdminUiCallBack> GetEdit([FromBody]FMIntId entity)
+        {
+
+
+            return await _OfflineDistributorServices.GetInfo(entity.id);
+       
+
+        
+        }
+        #endregion
+
+        #region 缂栬緫鎻愪氦============================================================
+        // POST: Api/OfflineDistributor/Edit
+        /// <summary>
+        /// 缂栬緫鎻愪氦
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("缂栬緫鎻愪氦")]
+        public async Task<AdminUiCallBack> DoEdit([FromBody]OfflineDistributor entity)
+        {
+            var jm = await _OfflineDistributorServices.UpdateAsync(entity);
+            return jm;
+        }
+        #endregion
+
+        #region 鍒犻櫎鏁版嵁============================================================
+        // POST: Api/OfflineDistributor/DoDelete/10
+        /// <summary>
+        /// 鍗曢�夊垹闄�
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍗曢�夊垹闄�")]
+        public async Task<AdminUiCallBack> DoDelete([FromBody]FMIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var model = await _OfflineDistributorServices.ExistsAsync(p => p.Id == entity.id, true);
+            if (!model)
+            {
+                jm.msg = GlobalConstVars.DataisNo;
+				return jm;
+            }
+            jm = await _OfflineDistributorServices.DeleteByIdAsync(entity.id);
+
+            return jm;
+        }
+        #endregion
+
+        #region 鎵归噺鍒犻櫎============================================================
+        // POST: Api/OfflineDistributor/DoBatchDelete/10,11,20
+        /// <summary>
+        /// 鎵归噺鍒犻櫎
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鎵归噺鍒犻櫎")]
+        public async Task<AdminUiCallBack> DoBatchDelete([FromBody]FMArrayIntIds entity)
+        {
+            var jm = await _OfflineDistributorServices.DeleteByIdsAsync(entity.id);
+            return jm;
+        }
+
+        #endregion
+
+        #region 棰勮鏁版嵁============================================================
+        // POST: Api/OfflineDistributor/GetDetails/10
+        /// <summary>
+        /// 棰勮鏁版嵁
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("棰勮鏁版嵁")]
+        public async Task<AdminUiCallBack> GetDetails([FromBody]FMIntId entity)
+        {
+            //var jm = new AdminUiCallBack();
+         var model =  await _OfflineDistributorServices.GetInfo(entity.id);
+            if (model.code == 0)
+            {
+                var d = await _coreCmsAreaServices.GetAreaFullName((model.data as OfflineDistributor)?.Region?.Split(",").ToList().OrderDescending()?.FirstOrDefault()?.ToInt32OrDefault(0) ?? 0);
+                (model.data as OfflineDistributor).areaCodeName = d.data.ToString();
+            }
+
+            return model;
+        }
+        #endregion
+
+        #region 閫夋嫨瀵煎嚭============================================================
+        // POST: Api/OfflineDistributor/SelectExportExcel/10
+        /// <summary>
+        /// 閫夋嫨瀵煎嚭
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("閫夋嫨瀵煎嚭")]
+        public async Task<AdminUiCallBack> SelectExportExcel([FromBody]FMArrayIntIds entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            //鍒涘缓Excel鏂囦欢鐨勫璞�
+            var book = new HSSFWorkbook();
+            //娣诲姞涓�涓猻heet
+            var mySheet = book.CreateSheet("Sheet1");
+            //鑾峰彇list鏁版嵁
+            var listModel = await _OfflineDistributorServices.QueryListByClauseAsync(p => entity.id.Contains(p.Id), p => p.Id, OrderByType.Asc, true);
+            //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+            var headerRow = mySheet.CreateRow(0);
+            var headerStyle = ExcelHelper.GetHeaderStyle(book);
+            var cellNum = 0;
+
+            var cell0 = headerRow.CreateCell(cellNum);
+            cell0.SetCellValue("涓婚敭ID");
+            cell0.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell1 = headerRow.CreateCell(cellNum);
+            cell1.SetCellValue("淇℃伅鏀堕泦鏃堕棿");
+            cell1.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell2 = headerRow.CreateCell(cellNum);
+            cell2.SetCellValue("鍖哄煙淇℃伅");
+            cell2.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell3 = headerRow.CreateCell(cellNum);
+            cell3.SetCellValue("璇︾粏鍦板潃");
+            cell3.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell4 = headerRow.CreateCell(cellNum);
+            cell4.SetCellValue("绫诲埆");
+            cell4.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell5 = headerRow.CreateCell(cellNum);
+            cell5.SetCellValue("瀛︽牎鍚嶇О");
+            cell5.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell6 = headerRow.CreateCell(cellNum);
+            cell6.SetCellValue("缁忛攢鍟嗗悕绉�");
+            cell6.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell7 = headerRow.CreateCell(cellNum);
+            cell7.SetCellValue("鑱旂郴浜哄鍚�");
+            cell7.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell8 = headerRow.CreateCell(cellNum);
+            cell8.SetCellValue("鑱旂郴鐢佃瘽");
+            cell8.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell9 = headerRow.CreateCell(cellNum);
+            cell9.SetCellValue("搴楁嫑鍥剧墖鍦板潃");
+            cell9.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell10 = headerRow.CreateCell(cellNum);
+            cell10.SetCellValue("鍚堜綔鎰忓悜鎻忚堪");
+            cell10.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell11 = headerRow.CreateCell(cellNum);
+            cell11.SetCellValue("涓氬姟缁忕悊濮撳悕");
+            cell11.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell12 = headerRow.CreateCell(cellNum);
+            cell12.SetCellValue("娲借皥璁板綍");
+            cell12.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell13 = headerRow.CreateCell(cellNum);
+            cell13.SetCellValue("鏀堕泦浜篒D");
+            cell13.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell14 = headerRow.CreateCell(cellNum);
+            cell14.SetCellValue("澶囨敞");
+            cell14.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell15 = headerRow.CreateCell(cellNum);
+            cell15.SetCellValue("寤虹珛鏃堕棿");
+            cell15.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell16 = headerRow.CreateCell(cellNum);
+            cell16.SetCellValue("淇敼鏃堕棿");
+            cell16.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell17 = headerRow.CreateCell(cellNum);
+            cell17.SetCellValue("鍒涘缓浜�");
+            cell17.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell18 = headerRow.CreateCell(cellNum);
+            cell18.SetCellValue("淇敼浜�");
+            cell18.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell19 = headerRow.CreateCell(cellNum);
+            cell19.SetCellValue("鍒犻櫎鏍囧織");
+            cell19.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            headerRow.Height = 30 * 20;
+            var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+            //灏嗘暟鎹�愭鍐欏叆sheet1鍚勪釜琛�
+            for (var i = 0; i < listModel.Count; i++)
+            {
+                var rowTemp = mySheet.CreateRow(i + 1);
+                var cellNumTemp = 0;
+
+                    var rowTemp0 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp0.SetCellValue(listModel[i].Id.ToString());
+                        rowTemp0.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp1.SetCellValue(listModel[i].CollectionTime.ToString());
+                        rowTemp1.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp2.SetCellValue(listModel[i].Region.ToString());
+                        rowTemp2.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp3.SetCellValue(listModel[i].Adder.ToString());
+                        rowTemp3.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp4.SetCellValue(listModel[i].Category.ToString());
+                        rowTemp4.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp5.SetCellValue(listModel[i].School.ToString());
+                        rowTemp5.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp6.SetCellValue(listModel[i].DealerName.ToString());
+                        rowTemp6.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp7.SetCellValue(listModel[i].ContactPerson.ToString());
+                        rowTemp7.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp8.SetCellValue(listModel[i].PhoneNumber.ToString());
+                        rowTemp8.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp9.SetCellValue(listModel[i].StoreLogoUrl.ToString());
+                        rowTemp9.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp10.SetCellValue(listModel[i].CooperationIntent.ToString());
+                        rowTemp10.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp11.SetCellValue(listModel[i].BusinessManager.ToString());
+                        rowTemp11.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp12.SetCellValue(listModel[i].NegotiationRecord.ToString());
+                        rowTemp12.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp13.SetCellValue(listModel[i].UserID.ToString());
+                        rowTemp13.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp14 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp14.SetCellValue(listModel[i].Remake.ToString());
+                        rowTemp14.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp15 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp15.SetCellValue(listModel[i].createTime.ToString());
+                        rowTemp15.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp16 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp16.SetCellValue(listModel[i].upDataTime.ToString());
+                        rowTemp16.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp17 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp17.SetCellValue(listModel[i].createBy.ToString());
+                        rowTemp17.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp18 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp18.SetCellValue(listModel[i].upDataBy.ToString());
+                        rowTemp18.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp19 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp19.SetCellValue(listModel[i].isdelete.ToString());
+                        rowTemp19.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+            }
+            // 瀵煎嚭excel
+            string webRootPath = _webHostEnvironment.WebRootPath;
+            string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-OfflineDistributor瀵煎嚭(閫夋嫨缁撴灉).xls";
+            string filePath = webRootPath + tpath;
+            DirectoryInfo di = new DirectoryInfo(filePath);
+            if (!di.Exists)
+            {
+                di.Create();
+            }
+            FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
+            book.Write(fileHssf);
+            fileHssf.Close();
+
+            jm.code = 0;
+            jm.msg = GlobalConstVars.ExcelExportSuccess;
+            jm.data = tpath + fileName;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鏌ヨ瀵煎嚭============================================================
+        // POST: Api/OfflineDistributor/QueryExportExcel/10
+        /// <summary>
+        /// 鏌ヨ瀵煎嚭
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鏌ヨ瀵煎嚭")]
+        public async Task<AdminUiCallBack> QueryExportExcel()
+        {
+            var jm = new AdminUiCallBack();
+
+            var where = PredicateBuilder.True<OfflineDistributor>();
+                //鏌ヨ绛涢��
+			
+			//涓婚敭ID int
+			var Id = Request.Form["Id"].FirstOrDefault().ObjectToInt(0);
+            if (Id > 0)
+            {
+                where = where.And(p => p.Id == Id);
+            }
+			//淇℃伅鏀堕泦鏃堕棿 datetime
+			var CollectionTime = Request.Form["CollectionTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(CollectionTime))
+            {
+                if (CollectionTime.Contains("鍒�"))
+                {
+                    var dts = CollectionTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.CollectionTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.CollectionTime < dtEnd);
+                }
+                else
+                {
+                    var dt = CollectionTime.ObjectToDate();
+                    where = where.And(p => p.CollectionTime > dt);
+                }
+            }
+			//鍖哄煙淇℃伅 varchar
+			var Region = Request.Form["Region"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(Region))
+            {
+                where = where.And(p => p.Region.Contains(Region));
+            }
+			//璇︾粏鍦板潃 varchar
+			var Adder = Request.Form["Adder"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(Adder))
+            {
+                where = where.And(p => p.Adder.Contains(Adder));
+            }
+			//绫诲埆 varchar
+			var Category = Request.Form["Category"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(Category))
+            {
+                where = where.And(p => p.Category.Contains(Category));
+            }
+			//瀛︽牎鍚嶇О varchar
+			var School = Request.Form["School"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(School))
+            {
+                where = where.And(p => p.School.Contains(School));
+            }
+			//缁忛攢鍟嗗悕绉� varchar
+			var DealerName = Request.Form["DealerName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(DealerName))
+            {
+                where = where.And(p => p.DealerName.Contains(DealerName));
+            }
+			//鑱旂郴浜哄鍚� varchar
+			var ContactPerson = Request.Form["ContactPerson"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(ContactPerson))
+            {
+                where = where.And(p => p.ContactPerson.Contains(ContactPerson));
+            }
+			//鑱旂郴鐢佃瘽 varchar
+			var PhoneNumber = Request.Form["PhoneNumber"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(PhoneNumber))
+            {
+                where = where.And(p => p.PhoneNumber.Contains(PhoneNumber));
+            }
+			//搴楁嫑鍥剧墖鍦板潃 varchar
+			var StoreLogoUrl = Request.Form["StoreLogoUrl"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(StoreLogoUrl))
+            {
+                where = where.And(p => p.StoreLogoUrl.Contains(StoreLogoUrl));
+            }
+			//鍚堜綔鎰忓悜鎻忚堪 varchar
+			var CooperationIntent = Request.Form["CooperationIntent"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(CooperationIntent))
+            {
+                where = where.And(p => p.CooperationIntent.Contains(CooperationIntent));
+            }
+			//涓氬姟缁忕悊濮撳悕 varchar
+			var BusinessManager = Request.Form["BusinessManager"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(BusinessManager))
+            {
+                where = where.And(p => p.BusinessManager.Contains(BusinessManager));
+            }
+			//娲借皥璁板綍 varchar
+			var NegotiationRecord = Request.Form["NegotiationRecord"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(NegotiationRecord))
+            {
+                where = where.And(p => p.NegotiationRecord.Contains(NegotiationRecord));
+            }
+			//鏀堕泦浜篒D varchar
+			var UserID = Request.Form["UserID"].FirstOrDefault().ToInt32OrDefault();
+            if (UserID>0)
+            {
+                where = where.And(p => p.UserID==UserID);
+            }
+			//澶囨敞 varchar
+			var Remake = Request.Form["Remake"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(Remake))
+            {
+                where = where.And(p => p.Remake.Contains(Remake));
+            }
+			//寤虹珛鏃堕棿 datetime
+			var createTime = Request.Form["createTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createTime))
+            {
+                if (createTime.Contains("鍒�"))
+                {
+                    var dts = createTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime < dtEnd);
+                }
+                else
+                {
+                    var dt = createTime.ObjectToDate();
+                    where = where.And(p => p.createTime > dt);
+                }
+            }
+			//淇敼鏃堕棿 datetime
+			var upDataTime = Request.Form["upDataTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataTime))
+            {
+                if (upDataTime.Contains("鍒�"))
+                {
+                    var dts = upDataTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime < dtEnd);
+                }
+                else
+                {
+                    var dt = upDataTime.ObjectToDate();
+                    where = where.And(p => p.upDataTime > dt);
+                }
+            }
+			//鍒涘缓浜� varchar
+			var createBy = Request.Form["createBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createBy))
+            {
+                where = where.And(p => p.createBy.Contains(createBy));
+            }
+			//淇敼浜� varchar
+			var upDataBy = Request.Form["upDataBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataBy))
+            {
+                where = where.And(p => p.upDataBy.Contains(upDataBy));
+            }
+			//鍒犻櫎鏍囧織 bit
+			var isdelete = Request.Form["isdelete"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "true")
+            {
+                where = where.And(p => p.isdelete == true);
+            }
+            else if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "false")
+            {
+                where = where.And(p => p.isdelete == false);
+            }
+            //鑾峰彇鏁版嵁
+            //鍒涘缓Excel鏂囦欢鐨勫璞�
+            var book = new HSSFWorkbook();
+            //娣诲姞涓�涓猻heet
+            var mySheet = book.CreateSheet("Sheet1");
+            //鑾峰彇list鏁版嵁
+            var listModel = await _OfflineDistributorServices.QueryListByClauseAsync(where, p => p.Id, OrderByType.Asc, true);
+            //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+                var headerRow = mySheet.CreateRow(0);
+            var headerStyle = ExcelHelper.GetHeaderStyle(book);
+            var cellNum = 0;
+            
+            var cell0 = headerRow.CreateCell(cellNum);
+            cell0.SetCellValue("涓婚敭ID");
+            cell0.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell1 = headerRow.CreateCell(cellNum);
+            cell1.SetCellValue("淇℃伅鏀堕泦鏃堕棿");
+            cell1.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell2 = headerRow.CreateCell(cellNum);
+            cell2.SetCellValue("鍖哄煙淇℃伅");
+            cell2.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell3 = headerRow.CreateCell(cellNum);
+            cell3.SetCellValue("璇︾粏鍦板潃");
+            cell3.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell4 = headerRow.CreateCell(cellNum);
+            cell4.SetCellValue("绫诲埆");
+            cell4.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell5 = headerRow.CreateCell(cellNum);
+            cell5.SetCellValue("瀛︽牎鍚嶇О");
+            cell5.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell6 = headerRow.CreateCell(cellNum);
+            cell6.SetCellValue("缁忛攢鍟嗗悕绉�");
+            cell6.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell7 = headerRow.CreateCell(cellNum);
+            cell7.SetCellValue("鑱旂郴浜哄鍚�");
+            cell7.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell8 = headerRow.CreateCell(cellNum);
+            cell8.SetCellValue("鑱旂郴鐢佃瘽");
+            cell8.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell9 = headerRow.CreateCell(cellNum);
+            cell9.SetCellValue("搴楁嫑鍥剧墖鍦板潃");
+            cell9.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell10 = headerRow.CreateCell(cellNum);
+            cell10.SetCellValue("鍚堜綔鎰忓悜鎻忚堪");
+            cell10.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell11 = headerRow.CreateCell(cellNum);
+            cell11.SetCellValue("涓氬姟缁忕悊濮撳悕");
+            cell11.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell12 = headerRow.CreateCell(cellNum);
+            cell12.SetCellValue("娲借皥璁板綍");
+            cell12.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell13 = headerRow.CreateCell(cellNum);
+            cell13.SetCellValue("鏀堕泦浜篒D");
+            cell13.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell14 = headerRow.CreateCell(cellNum);
+            cell14.SetCellValue("澶囨敞");
+            cell14.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell15 = headerRow.CreateCell(cellNum);
+            cell15.SetCellValue("寤虹珛鏃堕棿");
+            cell15.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell16 = headerRow.CreateCell(cellNum);
+            cell16.SetCellValue("淇敼鏃堕棿");
+            cell16.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell17 = headerRow.CreateCell(cellNum);
+            cell17.SetCellValue("鍒涘缓浜�");
+            cell17.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell18 = headerRow.CreateCell(cellNum);
+            cell18.SetCellValue("淇敼浜�");
+            cell18.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell19 = headerRow.CreateCell(cellNum);
+            cell19.SetCellValue("鍒犻櫎鏍囧織");
+            cell19.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+
+            headerRow.Height = 30 * 20;
+            var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+            //灏嗘暟鎹�愭鍐欏叆sheet1鍚勪釜琛�
+            for (var i = 0; i < listModel.Count; i++)
+            {
+                var rowTemp = mySheet.CreateRow(i + 1);
+                var cellNumTemp = 0;
+
+            var rowTemp0 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp0.SetCellValue(listModel[i].Id.ToString());
+                rowTemp0.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp1.SetCellValue(listModel[i].CollectionTime.ToString());
+                rowTemp1.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp2.SetCellValue(listModel[i].Region.ToString());
+                rowTemp2.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp3.SetCellValue(listModel[i].Adder.ToString());
+                rowTemp3.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp4.SetCellValue(listModel[i].Category.ToString());
+                rowTemp4.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp5.SetCellValue(listModel[i].School.ToString());
+                rowTemp5.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp6.SetCellValue(listModel[i].DealerName.ToString());
+                rowTemp6.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp7.SetCellValue(listModel[i].ContactPerson.ToString());
+                rowTemp7.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp8.SetCellValue(listModel[i].PhoneNumber.ToString());
+                rowTemp8.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp9.SetCellValue(listModel[i].StoreLogoUrl.ToString());
+                rowTemp9.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp10.SetCellValue(listModel[i].CooperationIntent.ToString());
+                rowTemp10.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp11.SetCellValue(listModel[i].BusinessManager.ToString());
+                rowTemp11.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp12.SetCellValue(listModel[i].NegotiationRecord.ToString());
+                rowTemp12.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp13.SetCellValue(listModel[i].UserID.ToString());
+                rowTemp13.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp14 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp14.SetCellValue(listModel[i].Remake.ToString());
+                rowTemp14.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp15 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp15.SetCellValue(listModel[i].createTime.ToString());
+                rowTemp15.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp16 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp16.SetCellValue(listModel[i].upDataTime.ToString());
+                rowTemp16.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp17 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp17.SetCellValue(listModel[i].createBy.ToString());
+                rowTemp17.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp18 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp18.SetCellValue(listModel[i].upDataBy.ToString());
+                rowTemp18.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp19 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp19.SetCellValue(listModel[i].isdelete.ToString());
+                rowTemp19.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            }
+            // 鍐欏叆鍒癳xcel
+            string webRootPath = _webHostEnvironment.WebRootPath;
+            string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-OfflineDistributor瀵煎嚭(鏌ヨ缁撴灉).xls";
+            string filePath = webRootPath + tpath;
+            DirectoryInfo di = new DirectoryInfo(filePath);
+            if (!di.Exists)
+            {
+                di.Create();
+            }
+            FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
+            book.Write(fileHssf);
+            fileHssf.Close();
+
+            jm.code = 0;
+            jm.msg = GlobalConstVars.ExcelExportSuccess;
+            jm.data = tpath + fileName;
+
+            return jm;
+        }
+        #endregion
+
+        
+        #region 璁剧疆鍒犻櫎鏍囧織============================================================
+        // POST: Api/OfflineDistributor/DoSetisdelete/10
+        /// <summary>
+        /// 璁剧疆鍒犻櫎鏍囧織
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("璁剧疆鍒犻櫎鏍囧織")]
+        public async Task<AdminUiCallBack> DoSetisdelete([FromBody]FMUpdateBoolDataByIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var oldModel = await _OfflineDistributorServices.QueryByIdAsync(entity.id, false);
+            if (oldModel == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            oldModel.isdelete = (bool)entity.data;
+
+            var bl = await _OfflineDistributorServices.UpdateAsync(p => new OfflineDistributor() { isdelete = oldModel.isdelete }, p => p.Id == oldModel.Id);
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+		}
+        #endregion
+        
+
+    }
+}
diff --git a/CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs b/CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs
index d4b76cf..a4b4ff1 100644
--- a/CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs
+++ b/CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs
@@ -1554,5 +1554,34 @@
         }
 
         #endregion
+        #region 璁剧疆鏄惁鎴愪负鎺ㄥ箍浜哄憳鐧惧垎鍏垫硶
+        /// <summary>
+        /// 璁剧疆鏄惁鎴愪负鎺ㄥ箍浜哄憳
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("璁剧疆鏄惁鎴愪负鎺ㄥ箍浜哄憳")]
+        public async Task<AdminUiCallBack> DoSetIsBaiFenBingfaP([FromBody] FMUpdateBoolDataByIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var oldModel = await _coreCmsUserServices.QueryByIdAsync(entity.id);
+            if (oldModel == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+
+            oldModel.IsBaifenPromotion = entity.data;
+
+            var bl = await _coreCmsUserServices.UpdateAsync(oldModel);
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+        #endregion
+
     }
 }
\ No newline at end of file
diff --git a/CoreCms.Net.Web.Admin/wwwroot/lib/bootstrap/js/liao.js b/CoreCms.Net.Web.Admin/wwwroot/lib/bootstrap/js/liao.js
index a46ba19..a2de559 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/lib/bootstrap/js/liao.js
+++ b/CoreCms.Net.Web.Admin/wwwroot/lib/bootstrap/js/liao.js
@@ -4,7 +4,7 @@
  * @Author: 灏忛渚�
  * @Date: 2024-02-29 15:07:28
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2024-02-29 15:17:32
+ * @LastEditTime: 2024-03-29 13:38:53
  * Copyright: 2024  MinTinge CO.,LTD. All Rights Reserved.
  * @Descripttion: 閫氱敤鍑芥暟搴�
  */
@@ -48,3 +48,5 @@
   const regex = /^-?\d+(\.\d+)?$/; // 鍖归厤鏁存暟鎴栧皬鏁帮紝鍖呮嫭璐熸暟
   return regex.test(str);
 }
+
+
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/create.html
new file mode 100644
index 0000000..228662f
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/create.html
@@ -0,0 +1,261 @@
+<script type="text/html" template lay-done="layui.data.done(d);">
+  <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-OfflineDistributor-createForm" id="LAY-app-OfflineDistributor-createForm">
+
+
+
+  	<div class="layui-form-item">
+        <div class="layui-inline">
+          <label for="CollectionTime" class="layui-form-label  layui-form-required">淇℃伅鏀堕泦鏃堕棿</label>
+          <div class="layui-input-block">
+              <input name="CollectionTime"  id="createTime-OfflineDistributor-CollectionTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ヤ俊鎭敹闆嗘椂闂�" lay-reqText="璇疯緭鍏ヤ俊鎭敹闆嗘椂闂�"  />
+          </div>
+        </div>
+          <div class="layui-inline">
+            <label for="pUserID" class="layui-form-label  ">鎺ㄨ崘浜�</label>
+            <div class="layui-input-block">
+                <select lay-search="" name="pUserID" id="CreatOfflinedisSelUserID">
+                    <option value="">璇烽�夋嫨鎴栨悳绱紙璁剧疆鍖哄垎澶у皬鍐欙級</option>
+  
+                </select>
+  
+            </div>
+        </div>
+      </div>
+
+  	<div class="layui-form-item">
+          <div class="layui-inline">
+          <label for="Region" class="layui-form-label  ">鍖哄煙淇℃伅</label>
+          <div class="layui-input-block layui-inline-4 address-class" >
+              <input name="CreatofflinedisRegion"  type="hidden"   />
+          </div>
+      </div>
+  </div>
+      <div class="layui-form-item">
+          <label for="Adder" class="layui-form-label  ">璇︾粏鍦板潃</label>
+          <div class="layui-input-block">
+              <input name="Adder"   lay-verType="tips"  class="layui-input"  placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" lay-reqText="璇疯緭鍏ヨ缁嗗湴鍧�"  />
+          </div>
+      </div>
+
+
+  	<div class="layui-form-item">
+          <div class="layui-inline">
+          <label for="Category" class="layui-form-label  ">绫诲埆</label>
+          <div class="layui-input-block">
+              <input name="Category"   lay-verType="tips"  class="layui-input"  ID="CreatCatgory" placeholder="璇疯緭鍏ョ被鍒�" lay-reqText="璇疯緭鍏ョ被鍒�"  />
+          </div>
+          </div>
+          <div class="layui-inline">
+              <label for="School" class="layui-form-label  ">瀛︽牎鍚嶇О</label>
+          <div class="layui-input-block">
+              <input name="School"   lay-verType="tips"  class="layui-input"  placeholder="璇疯緭鍏ュ鏍″悕绉�" lay-reqText="璇疯緭鍏ュ鏍″悕绉�"  />
+          </div>
+          </div>
+      </div>
+
+
+
+  	<div class="layui-form-item">
+        <div class="layui-inline">
+          <label for="DealerName" class="layui-form-label  layui-form-required">缁忛攢鍟嗗悕绉�</label>
+          <div class="layui-input-block">
+              <input name="DealerName"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ョ粡閿�鍟嗗悕绉�" lay-reqText="璇疯緭鍏ョ粡閿�鍟嗗悕绉�"  />
+          </div>
+      </div>
+    
+
+  	<div class="layui-inline">
+          <label for="ContactPerson" class="layui-form-label  ">鑱旂郴浜哄鍚�</label>
+          <div class="layui-input-block">
+              <input name="ContactPerson"   lay-verType="tips"class="layui-input"  placeholder="璇疯緭鍏ヨ仈绯讳汉濮撳悕" lay-reqText="璇疯緭鍏ヨ仈绯讳汉濮撳悕"  />
+          </div>
+      </div>
+
+  	<div class="layui-inline">
+          <label for="PhoneNumber" class="layui-form-label  ">鑱旂郴鐢佃瘽</label>
+          <div class="layui-input-block">
+              <input name="PhoneNumber"   lay-verType="tips"  class="layui-input"  placeholder="璇疯緭鍏ヨ仈绯荤數璇�" lay-reqText="璇疯緭鍏ヨ仈绯荤數璇�"  />
+          </div>
+      </div>
+    </div>
+  <!--
+  	<div class="layui-form-item">
+          <label for="StoreLogoUrl" class="layui-form-label  layui-form-required">搴楁嫑鍥剧墖鍦板潃</label>
+          <div class="layui-input-block">
+              <input name="StoreLogoUrl"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ簵鎷涘浘鐗囧湴鍧�" lay-reqText="璇疯緭鍏ュ簵鎷涘浘鐗囧湴鍧�"  />
+          </div>
+      </div> -->
+
+
+    
+      <div class="layui-form-item">
+        <div class="layui-inline">
+          <label for="intentionDec" class="layui-form-label  layui-form-required"
+            >鍚堜綔鎰忓悜</label
+          >
+          <div class="layui-input-block">
+            <input
+              name="CooperationIntent"
+              lay-verType="tips"
+              lay-verify="required"
+              class="layui-input"
+              placeholder="璇疯緭鍏ュ悎浣滄剰鍚�"
+              lay-reqText="璇疯緭鍏ュ悎浣滄剰鍚�"
+              id="CooperationIntent"
+            />
+          </div>
+        </div>
+
+  	<div class="layui-inline">
+          <label for="BusinessManager" class="layui-form-label  ">涓氬姟缁忕悊</label>
+          <div class="layui-input-block">
+              <input name="BusinessManager"   lay-verType="tips"  class="layui-input"  placeholder="璇疯緭鍏ヤ笟鍔$粡鐞嗗鍚�" lay-reqText="璇疯緭鍏ヤ笟鍔$粡鐞嗗鍚�"  />
+          </div>
+      </div>
+
+    </div>
+
+  	
+  	<div class="layui-form-item">
+        <div class="layui-inline">
+            <label class="layui-form-label" for="storeLogoUrl">搴楁嫑</label>
+            <div class="layui-input-inline layui-inline-6">
+                <input name="storeLogoUrl" id="storeLogoUrl" size="15" autocomplete="off" class="layui-input" lay-reqText="璇疯緭鍏ャ�愮缉鐣ュ浘銆�"  />
+            </div>
+            <div class="layui-input-inline">
+                <button type="button" class="layui-btn" id="upBtnOriginalCreat">涓婁紶鍥惧儚</button>
+                <div class="layui-input-inline">
+                    <img class="layui-upload-img" id="viewImgBox" src="{{ layui.setter.noImagePicUrl }}">
+                    <p id="viewTextBox"></p>
+                </div>
+            </div>
+        </div>
+      </div>
+
+  	<div class="layui-form-item">
+          <label for="Remake" class="layui-form-label  ">澶囨敞</label>
+          <div class="layui-input-block">
+              <input name="Remake"   lay-verType="tips"  class="layui-input"  placeholder="璇疯緭鍏ュ娉�" lay-reqText="璇疯緭鍏ュ娉�"  />
+          </div>
+      </div>
+
+
+
+
+        <div class="layui-form-item text-right core-hidden">
+          <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-OfflineDistributor-createForm-submit" id="LAY-app-OfflineDistributor-createForm-submit" value="纭娣诲姞">
+      </div>
+  </div>
+</script>
+<script>
+  var debug = layui.setter.debug;
+  layui.data.done = function (d) {
+    //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+    if (debug) {
+      console.log(d.params.data);
+    }
+    layui.use(
+      ["admin", "form", "laydate", "upload", "coreHelper", "cropperImg","dropdown","upload"],
+      function () {
+        var $ = layui.$,
+          form = layui.form,
+          admin = layui.admin,
+          laydate = layui.laydate,
+          upload = layui.upload,
+          cropperImg = layui.cropperImg,
+          coreHelper = layui.coreHelper,
+          upload = layui.upload,
+          dropdown=layui.dropdown;
+         formatAreaInPut(coreHelper, "CreatofflinedisRegion");
+        formatUserSelInPut(coreHelper, form, "CreatOfflinedisSelUserID");
+       //鏅�氬浘鐗囦笂浼�
+       upload.render({
+                    elem: '#upBtnOriginalCreat'
+                    , url: layui.setter.apiUrl + 'Api/Tools/UploadFiles'
+                    , before: function (obj) {
+                        obj.preview(function (index, file, result) {
+                            $('#viewImgBox').attr('src', result);
+                        });
+                    }
+                    , done: function (res) {
+                        if (res.code > 0) { return layer.msg('涓婁紶澶辫触'); }
+                        layer.msg('涓婁紶鎴愬姛');
+                        $("#storeLogoUrl").val(res.data.fileUrl);
+                    }
+                    , error: function () {
+                        var viewTextBox = $('#viewTextBox');
+                        viewTextBox.html('<span style="color: #FF5722;">涓婁紶澶辫触</span> <a class="layui-btn layui-btn-xs demo-reload">閲嶈瘯</a>');
+                        viewTextBox.find('.demo-reload').on('click', function () {
+                            uploadInst.upload();
+                        });
+                    }
+                });
+
+        dropdown.render({
+          elem: "#CooperationIntent",
+          data: [
+            {
+              title: "澶�",
+              id: 101,
+            },
+            {
+              title: "灏�",
+              id: 102,
+            },
+            {
+              title: "涓嶇‘瀹�",
+              id: 103,
+            }
+          ],
+          click: function (obj) {
+            this.elem.val(obj.title);
+          },
+          style: "min-width: 235px;",
+        });
+        dropdown.render({
+          elem: "#CreatCatgory",
+          data: [
+            {
+              title: "鏂囧叿搴�",
+              id: 101,
+            },
+            {
+              title: "骞垮憡搴�",
+              id: 102,
+            },
+            {
+              title: "灏忓崠閮�",
+              id: 103,
+            },
+          ],
+          click: function (obj) {
+            this.elem.val(obj.title);
+          },
+          style: "min-width: 235px;",
+        });
+        
+        laydate.render({
+          elem: "#createTime-OfflineDistributor-CollectionTime",
+          type: "datetime",
+          value: new Date(),
+          fullPanel: true,
+        });
+        laydate.render({
+          elem: "#createTime-OfflineDistributor-createTime",
+          type: "datetime",
+          value: new Date(),
+          fullPanel: true,
+        });
+        laydate.render({
+          elem: "#createTime-OfflineDistributor-upDataTime",
+          type: "datetime",
+          value: new Date(),
+          fullPanel: true,
+        });
+        form.verify({});
+        //閲嶈浇form
+        form.render(null, "LAY-app-OfflineDistributor-createForm");
+      }
+    );
+  };
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/details.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/details.html
new file mode 100644
index 0000000..fc4b220
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/details.html
@@ -0,0 +1,568 @@
+<script type="text/html" template lay-done="layui.data.sendParams(d);">
+    <div
+      class="layui-form coreshop-form layui-form-pane"
+      lay-filter="LAY-app-OfflineDistributor-editForm"
+      id="LAY-app-OfflineDistributor-editForm"
+    >
+      
+  
+      <div class="layui-form-item">
+        <div class="layui-inline">
+          <label
+            for="collectionTime"
+            class="layui-form-label  layui-form-required"
+            >淇℃伅鏀堕泦鏃堕棿</label
+          >
+          <div class="layui-input-block">
+            <input
+            disabled
+              name="collectionTime"
+              id="editTime-OfflineDistributor-CollectionTime"
+              type="text"
+              lay-verType="tips"
+              lay-verify="required|datetime"
+              class="layui-input"
+              placeholder="璇疯緭鍏ヤ俊鎭敹闆嗘椂闂�"
+              lay-reqText="璇疯緭鍏ヤ俊鎭敹闆嗘椂闂�"
+              value="{{d.params.data.collectionTime || '' }}"
+            />
+          </div>
+        </div>
+        <div class="layui-inline">
+          <label for="pUserID" class="layui-form-label ">鎺ㄨ崘浜�</label>
+          <div class="layui-input-inline">
+            <div class="layui-input-inline">
+              <select lay-search="" name="pUserID" id="EditOfflinedisSelUserID" disabled>
+                <option value="">璇烽�夋嫨鎴栨悳绱紙璁剧疆鍖哄垎澶у皬鍐欙級</option>
+              </select>
+            </div>
+          </div>
+        </div>
+      </div>
+  
+      <div class="layui-form-item">
+        <label for="" class="layui-form-label">鍖哄煙淇℃伅</label>
+        <div class="layui-input-block">
+    
+          <input  
+          class="layui-input"
+          value="{{d.params.data.areaCodeName || '' }}"
+          disabled
+        />
+      </div>      
+     
+          
+        </div>
+      </div>
+  
+      <div class="layui-form-item">
+        <label for="Adder" class="layui-form-label  ">璇︾粏鍦板潃</label>
+        <div class="layui-input-block">
+          <input
+            name="adder"
+            lay-verType="tips"
+            class="layui-input"
+            placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"
+            lay-reqText="璇疯緭鍏ヨ缁嗗湴鍧�"
+            value="{{d.params.data.adder || '' }}"
+            disabled
+          />
+        </div>
+      </div>
+  
+      <div class="layui-form-item">
+        <div class="layui-inline">
+          <label for="Category" class="layui-form-label  ">绫诲埆</label>
+          <div class="layui-input-block">
+            <input
+              name="category"
+              lay-verType="tips"
+              class="layui-input"
+              placeholder="璇疯緭鍏ョ被鍒�"
+              lay-reqText="璇疯緭鍏ョ被鍒�"
+              value="{{d.params.data.category || '' }}"
+              disabled
+            />
+          </div>
+        </div>
+  
+        <div class="layui-inline">
+          <label for="School" class="layui-form-label ">瀛︽牎鍚嶇О</label>
+          <div class="layui-input-block">
+            <input
+              name="school"
+              lay-verType="tips"
+              class="layui-input"
+              placeholder="璇疯緭鍏ュ鏍″悕绉�"
+              lay-reqText="璇疯緭鍏ュ鏍″悕绉�"
+              value="{{d.params.data.school || '' }}"
+              disabled
+            />
+          </div>
+        </div>
+  
+        <div class="layui-form-item">
+          <div class="layui-inline">
+            <label for="DealerName" class="layui-form-label  layui-form-required"
+              >缁忛攢鍟嗗悕绉�</label
+            >
+            <div class="layui-input-block">
+              <input
+                name="dealerName"
+                lay-verType="tips"
+                lay-verify="required"
+                class="layui-input"
+                placeholder="璇疯緭鍏ョ粡閿�鍟嗗悕绉�"
+                lay-reqText="璇疯緭鍏ョ粡閿�鍟嗗悕绉�"
+                value="{{d.params.data.dealerName || '' }}"
+                disabled
+              />
+            </div>
+          </div>
+  
+          <div class="layui-inline">
+            <label for="ContactPerson" class="layui-form-label "
+              >鑱旂郴浜哄鍚�</label
+            >
+            <div class="layui-input-block">
+              <input
+                name="contactPerson"
+                lay-verType="tips"
+                class="layui-input"
+                placeholder="璇疯緭鍏ヨ仈绯讳汉濮撳悕"
+                lay-reqText="璇疯緭鍏ヨ仈绯讳汉濮撳悕"
+                value="{{d.params.data.contactPerson || '' }}"
+                disabled
+              />
+            </div>
+          </div>
+  
+          <div class="layui-inline">
+            <label for="PhoneNumber" class="layui-form-label  ">鑱旂郴鐢佃瘽</label>
+            <div class="layui-input-block">
+              <input
+                name="phoneNumber"
+                lay-verType="tips"
+                class="layui-input"
+                placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+                lay-reqText="璇疯緭鍏ヨ仈绯荤數璇�"
+                value="{{d.params.data.phoneNumber || '' }}"
+                disabled
+              />
+            </div>
+          </div>
+  
+          <div class="layui-form-item">
+            <div class="layui-inline">
+              <label
+                for="cooperationIntent"
+                class="layui-form-label layui-form-required "
+                >鍚堜綔鎰忓悜</label
+              >
+              <div class="layui-input-block">
+                <input
+                  name="cooperationIntent"
+                  id="EditCooperationIntent"
+                  lay-verify="required"
+                  lay-verType="tips"
+                  class="layui-input"
+                  placeholder="璇疯緭鍏ュ悎浣滄剰鍚戞弿杩�"
+                  lay-reqText="璇疯緭鍏ュ悎浣滄剰鍚戞弿杩�"
+                  value="{{d.params.data.cooperationIntent || '' }}"
+                  disabled
+                />
+              </div>
+            </div>
+  
+            <div class="layui-inline">
+              <label for="businessManager" class="layui-form-label  "
+                >涓氬姟缁忕悊</label
+              >
+              <div class="layui-input-block">
+                <input
+                  name="businessManager"
+                  lay-verType="tips"
+                  class="layui-input"
+                  placeholder="璇疯緭鍏ヤ笟鍔$粡鐞嗗鍚�"
+                  lay-reqText="璇疯緭鍏ヤ笟鍔$粡鐞嗗鍚�"
+                  value="{{d.params.data.businessManager || '' }}"
+                  disabled
+                />
+              </div>
+            </div>
+  
+            <div class="layui-form-item">
+              <label for="StoreLogoUrl" class="layui-form-label  ">搴楁嫑</label>
+              <div class="layui-input-inline" style="width: 300px;">
+          
+              </div>
+              <div class="layui-input-inline">
+              
+                <div class="layui-input-inline" style="padding-left: 100px;" >
+                  <img
+                    class="layui-upload-img"
+                    id="viewImgBoxEdit"
+                    src="{{ d.params.data.storeLogoUrl || layui.setter.noImagePicUrl ||''}}"
+                  />
+              
+                </div>
+              </div>
+            </div>
+  
+            <div class="layui-form-item">
+              <label for="Remake" class="layui-form-label  ">澶囨敞</label>
+              <div class="layui-input-block">
+                <input
+                  name="Remake"
+                  lay-verType="tips"
+                  class="layui-input"
+                  placeholder="璇疯緭鍏ュ娉�"
+                  lay-reqText="璇疯緭鍏ュ娉�"
+                  value="{{d.params.data.remake || '' }}"
+                  disabled
+                />
+              </div>
+            </div>
+            <div class="layui-form-item">
+              <div class="layui-row layui-col-space15">
+                <div class="layui-col-xs6">
+                  <fieldset
+                    style="color: rgb(80, 75, 9); border-color: bisque;"
+                    class="layui-elem-field layui-field-title"
+                  >
+                    <legend>娲借皥璁板綍</legend>
+                  </fieldset>
+                  <table
+                    class="layui-hide"
+                    id="id-EditmeettingOffdisTab"
+                    lay-filter="id-EditmeettingOffdisTab"
+                  ></table>
+                  <!-- 娣诲姞鏁版嵁鎸夐挳 -->
+  
+                
+                </div>
+                <div class="layui-col-xs6">
+                  <fieldset
+                    style="color: rgb(68, 59, 11);border-color: bisque;"
+                    class="layui-elem-field layui-field-title"
+                  >
+                    <legend>鍚堜綔璁板綍</legend>
+                  </fieldset>
+                  <table
+                    class="layui-hide"
+                    id="id-EditoffdisOderTab"
+                    lay-filter="id-EditoffdisOderTab"
+                  ></table>
+  
+                
+                </div>
+              </div>
+            </div>
+  
+            <div class="layui-form-item text-right core-hidden">
+              <input
+                type="button"
+                class="layui-btn"
+                lay-submit
+                lay-filter="LAY-app-OfflineDistributor-editForm-submit"
+                id="LAY-app-OfflineDistributor-editForm-submit"
+                value="纭缂栬緫"
+              />
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </script>
+
+  <script type="text/html" id="TPL-laydate-Meetingdemo">
+    <input
+      class="layui-input Meetinglaydate-demo"
+      placeholder="閫夋嫨鏃ユ湡"
+      value="{{= d.time || '' }}"
+      tyle="height: 25px;"
+      lay-verType="tips"
+      lay-verify="required"
+    />
+  </script>
+  <script>
+    var debug = layui.setter.debug;
+    layui.data.sendParams = function (d) {
+      //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+      if (debug) {
+        console.log(d.params.data);
+      }
+      layui.use(
+        [
+          "admin",
+          "form",
+          "laydate",
+          "upload",
+          "coreHelper",
+          "cropperImg",
+          "dropdown",
+          "table",
+        ],
+        function () {
+          var $ = layui.$,
+            form = layui.form,
+            admin = layui.admin,
+            laydate = layui.laydate,
+            upload = layui.upload,
+            cropperImg = layui.cropperImg,
+            dropdown = layui.dropdown,
+            table = layui.table,
+            coreHelper = layui.coreHelper;
+  
+          formatAreaInPut(
+            coreHelper,
+            "editOfflinedisRegion",
+            d.params.data.region
+          );
+          formatUserSelInPut(
+            coreHelper,
+            form,
+            "EditOfflinedisSelUserID",
+            d.params.data.pUserID || ""
+          );
+          //鏅�氬浘鐗囦笂浼�
+          upload.render({
+            elem: "#upBtnOriginalEdit",
+            url: layui.setter.apiUrl + "Api/Tools/UploadFiles",
+            before: function (obj) {
+              obj.preview(function (index, file, result) {
+                $("#viewImgBoxEdit").attr("src", result);
+              });
+            },
+            done: function (res) {
+              if (res.code > 0) {
+                return layer.msg("涓婁紶澶辫触");
+              }
+              layer.msg("涓婁紶鎴愬姛");
+              $("#upBtnOriginalEdit").val(res.data.fileUrl);
+            },
+            error: function () {
+              var viewTextBox = $("#viewTextBoxEdit");
+              viewTextBox.html(
+                '<span style="color: #FF5722;">涓婁紶澶辫触</span> <a class="layui-btn layui-btn-xs demo-reload">閲嶈瘯</a>'
+              );
+              viewTextBox.find(".demo-reload").on("click", function () {
+                uploadInst.upload();
+              });
+            },
+          });
+          dropdown.render({
+            elem: "#EditCooperationIntent",
+            data: [
+              {
+                title: "澶�",
+                id: 101,
+              },
+              {
+                title: "灏�",
+                id: 102,
+              },
+              {
+                title: "涓嶇‘瀹�",
+                id: 103,
+              },
+            ],
+            click: function (obj) {
+              this.elem.val(obj.title);
+            },
+            style: "min-width: 235px;",
+          });
+  
+          table.render({
+            elem: "#id-EditmeettingOffdisTab",
+            //  url: '/static/json/2/table/user.json', // 姝ゅ涓洪潤鎬佹ā鎷熸暟鎹紝瀹為檯浣跨敤鏃堕渶鎹㈡垚鐪熷疄鎺ュ彛
+            data: d.params.data.meetings,
+            page: false,
+            cols: [
+              [
+                { type: "numbers", title: "搴忓彿" },
+                {
+                  field: "time",
+                  title: "娲借皥鏃堕棿",  
+             
+                  width: 150,
+                },
+                { field: "dec", title: "娲借皥鍐呭"}, // 璁剧疆缂栬緫绫诲瀷涓烘枃鏈
+                
+              ],
+            ],
+            // initSort: {
+            //   // 璁剧疆鍒濆鎺掑簭
+            //   field: "time", // 瀛楁鍚�
+            //   type: "desc", // 鍊掑簭
+            // },
+            height: 200,
+            done: function (res, curr, count) {
+              var options = this;
+              // 鑾峰彇褰撳墠琛屾暟鎹�
+              table.getRowData = function (tableId, elem) {
+                var index = $(elem).closest("tr").data("index");
+                return table.cache[tableId][index] || {};
+              };
+              laydate.render({
+                elem: ".Meetinglaydate-demo",
+                type: "datetime",
+                trigger: "click",
+                fullPanel: true,
+                done: function (value, date, endDate) {
+                  var data = table.getRowData(options.id, this.elem); // 鑾峰彇褰撳墠琛屾暟鎹�(濡� id 绛夊瓧娈碉紝浠ヤ綔涓烘暟鎹慨鏀圭殑绱㈠紩)
+                  // 鏇存柊鏁版嵁涓搴旂殑瀛楁
+                  data.time = value;
+                },
+              });
+            },
+          });
+  
+          // 鐩戝惉娣诲姞鏁版嵁鎸夐挳鐐瑰嚮浜嬩欢
+          $("#addOffDismeettingRow").on("click", function () {
+            var newRowData = {
+              id: 9999999, // 鍋囪ID鏄竴涓椂闂存埑
+              dec: "",
+              time: new Date().Format("yyyy-MM-dd hh:mm:ss"),
+            };
+            var allData = table.cache["id-EditmeettingOffdisTab"];
+            allData.push(newRowData);
+            table.reload("id-EditmeettingOffdisTab", {
+              data: allData,
+            });
+          });
+  
+          // 涓哄伐鍏锋爮缁戝畾浜嬩欢
+          table.on("tool(id-EditmeettingOffdisTab)", function (obj) {
+            var data = obj.data; // 鑾峰緱褰撳墠琛屾暟鎹�
+            var dataIndex = obj.tr.data("index"); // 鑾峰彇琛岀储寮曪紙杩欓噷浣跨敤浜唍umbers绫诲瀷鐨勫垪锛屽畠浼氳嚜鍔ㄨ祴浜堟瘡琛屼竴涓储寮曪級
+            if (obj.event === "del") {
+              // 鍒ゆ柇鏄惁涓哄垹闄や簨浠�
+              layer.confirm(
+                "纭畾瑕佸垹闄よ繖鏉¤褰曞悧锛�",
+                { icon: 3, title: "鎻愮ず" },
+                function (index) {
+                  var allData = table.cache["id-EditmeettingOffdisTab"];
+                  // 鍦ㄦ湰鍦版暟鎹腑绉婚櫎璇ヨ鏁版嵁
+                  allData.splice(dataIndex, 1);
+  
+                  // 閲嶆柊鍔犺浇琛ㄦ牸鏁版嵁
+                  table.reload("id-EditmeettingOffdisTab", { data: allData });
+  
+                  layer.msg("鍒犻櫎鎴愬姛");
+                  layer.close(index); // 鍏抽棴纭瀵硅瘽妗�
+                }
+              );
+            }
+          });
+  
+          table.render({
+            elem: "#id-EditoffdisOderTab",
+            //  url: '/static/json/2/table/user.json', // 姝ゅ涓洪潤鎬佹ā鎷熸暟鎹紝瀹為檯浣跨敤鏃堕渶鎹㈡垚鐪熷疄鎺ュ彛
+            data: d.params.data.oders,
+            page: false,
+            cols: [
+              [
+                { type: "numbers", title: "搴忓彿" },
+                {
+                  field: "time",
+                  title: "涓嬪崟鏃堕棿",
+  
+            
+                  width: 150,
+                },
+                // { field: "goodsName", title: "璐х墿鍚嶇О", edit: "text" }, // 璁剧疆缂栬緫绫诲瀷涓烘枃鏈
+                { field: "actualPayment", title: "閲戦(鍏�)" }, // 璁剧疆缂栬緫绫诲瀷涓烘枃鏈
+              
+              ],
+            ],
+            // initSort: {
+            //   // 璁剧疆鍒濆鎺掑簭
+            //   field: "time", // 瀛楁鍚�
+            //   type: "desc", // 鍊掑簭
+            // },
+            height: 200,
+            done: function (res, curr, count) {
+              var options = this;
+              // 鑾峰彇褰撳墠琛屾暟鎹�
+              table.getRowData = function (tableId, elem) {
+                var index = $(elem).closest("tr").data("index");
+                return table.cache[tableId][index] || {};
+              };
+              laydate.render({
+                elem: ".Meetinglaydate-demo",
+                type: "datetime",
+                trigger: "click",
+                fullPanel: true,
+                done: function (value, date, endDate) {
+                  var data = table.getRowData(options.id, this.elem); // 鑾峰彇褰撳墠琛屾暟鎹�(濡� id 绛夊瓧娈碉紝浠ヤ綔涓烘暟鎹慨鏀圭殑绱㈠紩)
+                  // 鏇存柊鏁版嵁涓搴旂殑瀛楁
+                  data.time = value;
+                },
+              });
+            },
+          });
+  
+          // 鐩戝惉娣诲姞鏁版嵁鎸夐挳鐐瑰嚮浜嬩欢
+          $("#addintentionsRow").on("click", function () {
+            var newRowData = {
+              id: 9999999, // 鍋囪ID鏄竴涓椂闂存埑
+              actualPayment: 0,
+  
+              time: new Date().Format("yyyy-MM-dd hh:mm:ss"),
+            };
+            var allData = table.cache["id-EditoffdisOderTab"];
+            allData.push(newRowData);
+            table.reload("id-EditoffdisOderTab", {
+              data: allData,
+            });
+          });
+  
+          
+          // 涓哄伐鍏锋爮缁戝畾浜嬩欢
+          table.on("tool(id-EditoffdisOderTab)", function (obj) {
+            var data = obj.data; // 鑾峰緱褰撳墠琛屾暟鎹�
+            var dataIndex = obj.tr.data("index"); // 鑾峰彇琛岀储寮曪紙杩欓噷浣跨敤浜唍umbers绫诲瀷鐨勫垪锛屽畠浼氳嚜鍔ㄨ祴浜堟瘡琛屼竴涓储寮曪級
+            if (obj.event === "del") {
+              // 鍒ゆ柇鏄惁涓哄垹闄や簨浠�
+              layer.confirm(
+                "纭畾瑕佸垹闄よ繖鏉¤褰曞悧锛�",
+                { icon: 3, title: "鎻愮ず" },
+                function (index) {
+                  var allData = table.cache["id-EditoffdisOderTab"];
+                  // 鍦ㄦ湰鍦版暟鎹腑绉婚櫎璇ヨ鏁版嵁
+                  allData.splice(dataIndex, 1);
+  
+                  // 閲嶆柊鍔犺浇琛ㄦ牸鏁版嵁
+                  table.reload("id-EditoffdisOderTab", { data: allData });
+  
+                  layer.msg("鍒犻櫎鎴愬姛");
+                  layer.close(index); // 鍏抽棴纭瀵硅瘽妗�
+                }
+              );
+            }
+          });
+  
+          laydate.render({
+            elem: "#editTime-OfflineDistributor-CollectionTime",
+            type: "datetime",
+            fullPanel: true,
+          });
+          laydate.render({
+            elem: "#editTime-OfflineDistributor-createTime",
+            type: "datetime",
+            fullPanel: true,
+          });
+          laydate.render({
+            elem: "#editTime-OfflineDistributor-upDataTime",
+            type: "datetime",
+            fullPanel: true,
+          });
+          form.verify({});
+          //閲嶈浇form
+          form.render(null, "LAY-app-OfflineDistributor-editForm");
+        }
+      );
+    };
+  </script>
+  
\ No newline at end of file
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/edit.html
new file mode 100644
index 0000000..3e78756
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/edit.html
@@ -0,0 +1,622 @@
+<script type="text/html" template lay-done="layui.data.sendParams(d);">
+  <div
+    class="layui-form coreshop-form layui-form-pane"
+    lay-filter="LAY-app-OfflineDistributor-editForm"
+    id="LAY-app-OfflineDistributor-editForm"
+  >
+    <div class="layui-form-item">
+      <div class="layui-input-block" hidden>
+        <input
+          type="number"
+          min="0"
+          max="999999"
+          name="id"
+          lay-verType="tips"
+          lay-verify="required|number"
+          class="layui-input"
+          value="{{d.params.data.id || '' }}"
+          placeholder="璇疯緭鍏ヤ富閿甀D"
+          lay-reqText="璇疯緭鍏ヤ富閿甀D骞朵负鏁板瓧"
+        />
+      </div>
+    </div>
+
+    <div class="layui-form-item">
+      <div class="layui-inline">
+        <label
+          for="collectionTime"
+          class="layui-form-label  layui-form-required"
+          >淇℃伅鏀堕泦鏃堕棿</label
+        >
+        <div class="layui-input-block">
+          <input
+            name="collectionTime"
+            id="editTime-OfflineDistributor-CollectionTime"
+            type="text"
+            lay-verType="tips"
+            lay-verify="required|datetime"
+            class="layui-input"
+            placeholder="璇疯緭鍏ヤ俊鎭敹闆嗘椂闂�"
+            lay-reqText="璇疯緭鍏ヤ俊鎭敹闆嗘椂闂�"
+            value="{{d.params.data.collectionTime || '' }}"
+          />
+        </div>
+      </div>
+      <div class="layui-inline">
+        <label for="pUserID" class="layui-form-label ">鎺ㄨ崘浜�</label>
+        <div class="layui-input-inline">
+          <div class="layui-input-inline">
+            <select lay-search="" name="pUserID" id="EditOfflinedisSelUserID">
+              <option value="">璇烽�夋嫨鎴栨悳绱紙璁剧疆鍖哄垎澶у皬鍐欙級</option>
+            </select>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <div class="layui-form-item">
+      <label for="Region" class="layui-form-label  ">鍖哄煙淇℃伅</label>
+      <div class="layui-input-block layui-inline-4 address-class">
+        <input
+          name="editOfflinedisRegion"
+          id="editOfflinedisRegion"
+          type="hidden"
+        />
+      </div>
+    </div>
+
+    <div class="layui-form-item">
+      <label for="Adder" class="layui-form-label  ">璇︾粏鍦板潃</label>
+      <div class="layui-input-block">
+        <input
+          name="adder"
+          lay-verType="tips"
+          class="layui-input"
+          placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"
+          lay-reqText="璇疯緭鍏ヨ缁嗗湴鍧�"
+          value="{{d.params.data.adder || '' }}"
+        />
+      </div>
+    </div>
+
+    <div class="layui-form-item">
+      <div class="layui-inline">
+        <label for="category" class="layui-form-label  ">绫诲埆</label>
+        <div class="layui-input-block">
+          <input
+            name="category"
+            lay-verType="tips"
+            class="layui-input"
+            placeholder="璇疯緭鍏ョ被鍒�"
+            lay-reqText="璇疯緭鍏ョ被鍒�"
+            id="editCatgory"
+            value="{{d.params.data.category || '' }}"
+          />
+        </div>
+      </div>
+
+      <div class="layui-inline">
+        <label for="School" class="layui-form-label ">瀛︽牎鍚嶇О</label>
+        <div class="layui-input-block">
+          <input
+            name="school"
+            lay-verType="tips"
+            class="layui-input"
+            placeholder="璇疯緭鍏ュ鏍″悕绉�"
+            lay-reqText="璇疯緭鍏ュ鏍″悕绉�"
+            value="{{d.params.data.school || '' }}"
+          />
+        </div>
+      </div>
+
+      <div class="layui-form-item">
+        <div class="layui-inline">
+          <label for="DealerName" class="layui-form-label  layui-form-required"
+            >缁忛攢鍟嗗悕绉�</label
+          >
+          <div class="layui-input-block">
+            <input
+              name="dealerName"
+              lay-verType="tips"
+              lay-verify="required"
+              class="layui-input"
+              placeholder="璇疯緭鍏ョ粡閿�鍟嗗悕绉�"
+              lay-reqText="璇疯緭鍏ョ粡閿�鍟嗗悕绉�"
+              value="{{d.params.data.dealerName || '' }}"
+            />
+          </div>
+        </div>
+
+        <div class="layui-inline">
+          <label for="ContactPerson" class="layui-form-label "
+            >鑱旂郴浜哄鍚�</label
+          >
+          <div class="layui-input-block">
+            <input
+              name="contactPerson"
+              lay-verType="tips"
+              class="layui-input"
+              placeholder="璇疯緭鍏ヨ仈绯讳汉濮撳悕"
+              lay-reqText="璇疯緭鍏ヨ仈绯讳汉濮撳悕"
+              value="{{d.params.data.contactPerson || '' }}"
+            />
+          </div>
+        </div>
+
+        <div class="layui-inline">
+          <label for="PhoneNumber" class="layui-form-label  ">鑱旂郴鐢佃瘽</label>
+          <div class="layui-input-block">
+            <input
+              name="phoneNumber"
+              lay-verType="tips"
+              class="layui-input"
+              placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+              lay-reqText="璇疯緭鍏ヨ仈绯荤數璇�"
+              value="{{d.params.data.phoneNumber || '' }}"
+            />
+          </div>
+        </div>
+
+        <div class="layui-form-item">
+          <div class="layui-inline">
+            <label
+              for="cooperationIntent"
+              class="layui-form-label layui-form-required "
+              >鍚堜綔鎰忓悜</label
+            >
+            <div class="layui-input-block">
+              <input
+                name="cooperationIntent"
+                id="EditCooperationIntent"
+                lay-verify="required"
+                lay-verType="tips"
+                class="layui-input"
+                placeholder="璇疯緭鍏ュ悎浣滄剰鍚戞弿杩�"
+                lay-reqText="璇疯緭鍏ュ悎浣滄剰鍚戞弿杩�"
+                value="{{d.params.data.cooperationIntent || '' }}"
+              />
+            </div>
+          </div>
+
+          <div class="layui-inline">
+            <label for="businessManager" class="layui-form-label  "
+              >涓氬姟缁忕悊</label
+            >
+            <div class="layui-input-block">
+              <input
+                name="businessManager"
+                lay-verType="tips"
+                class="layui-input"
+                placeholder="璇疯緭鍏ヤ笟鍔$粡鐞嗗鍚�"
+                lay-reqText="璇疯緭鍏ヤ笟鍔$粡鐞嗗鍚�"
+                value="{{d.params.data.businessManager || '' }}"
+              />
+            </div>
+          </div>
+
+          <div class="layui-form-item">
+            <label for="StoreLogoUrl" class="layui-form-label  ">搴楁嫑</label>
+            <div class="layui-input-inline" style="width: 300px;">
+              <input
+                name="storeLogoUrl"
+                lay-verType="tips"
+                class="layui-input"
+                placeholder="璇疯緭鍏ュ簵鎷涘浘鐗囧湴鍧�"
+                lay-reqText="璇疯緭鍏ュ簵鎷涘浘鐗囧湴鍧�"
+                value="{{d.params.data.storeLogoUrl || '' }}"
+              />
+            </div>
+            <div class="layui-input-inline">
+              <button type="button" class="layui-btn" id="upBtnOriginalEdit">
+                涓婁紶鍥惧儚
+              </button>
+              <div class="layui-input-inline">
+                <img
+                  class="layui-upload-img"
+                  id="viewImgBoxEdit"
+                  src="{{ d.params.data.storeLogoUrl || layui.setter.noImagePicUrl ||''}}"
+                />
+                <div class="layui-input-inline">
+                  <div id="viewTextBoxEdit"></div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <div class="layui-form-item">
+            <label for="Remake" class="layui-form-label  ">澶囨敞</label>
+            <div class="layui-input-block">
+              <input
+                name="Remake"
+                lay-verType="tips"
+                class="layui-input"
+                placeholder="璇疯緭鍏ュ娉�"
+                lay-reqText="璇疯緭鍏ュ娉�"
+                value="{{d.params.data.remake || '' }}"
+              />
+            </div>
+          </div>
+          <div class="layui-form-item">
+            <div class="layui-row layui-col-space15">
+              <div class="layui-col-xs6">
+                <fieldset
+                  style="color: rgb(80, 75, 9); border-color: bisque;"
+                  class="layui-elem-field layui-field-title"
+                >
+                  <legend>娲借皥璁板綍</legend>
+                </fieldset>
+                <table
+                  class="layui-hide"
+                  id="id-EditmeettingOffdisTab"
+                  lay-filter="id-EditmeettingOffdisTab"
+                ></table>
+                <!-- 娣诲姞鏁版嵁鎸夐挳 -->
+
+                <button class="layui-btn" id="addOffDismeettingRow">
+                  娣诲姞娲借皥璁板綍
+                </button>
+              </div>
+              <div class="layui-col-xs6">
+                <fieldset
+                  style="color: rgb(68, 59, 11);border-color: bisque;"
+                  class="layui-elem-field layui-field-title"
+                >
+                  <legend>鍚堜綔璁板綍</legend>
+                </fieldset>
+                <table
+                  class="layui-hide"
+                  id="id-EditoffdisOderTab"
+                  lay-filter="id-EditoffdisOderTab"
+                ></table>
+
+                <button class="layui-btn" id="addintentionsRow">
+                  娣诲姞鍚堜綔璁板綍
+                </button>
+              </div>
+            </div>
+          </div>
+
+          <div class="layui-form-item text-right core-hidden">
+            <input
+              type="button"
+              class="layui-btn"
+              lay-submit
+              lay-filter="LAY-app-OfflineDistributor-editForm-submit"
+              id="LAY-app-OfflineDistributor-editForm-submit"
+              value="纭缂栬緫"
+            />
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</script>
+<script type="text/html" id="LAY-app-bloggersInfo-EdittableintentionsBox-bar">
+  <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="del">
+    鍒犻櫎
+  </button>
+</script>
+<script type="text/html" id="TPL-laydate-Meetingdemo">
+  <input
+    class="layui-input Meetinglaydate-demo"
+    placeholder="閫夋嫨鏃ユ湡"
+    value="{{= d.time || '' }}"
+    tyle="height: 25px;"
+    lay-verType="tips"
+    lay-verify="required"
+  />
+</script>
+<script>
+  var debug = layui.setter.debug;
+  layui.data.sendParams = function (d) {
+    //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+    if (debug) {
+      console.log(d.params.data);
+    }
+    layui.use(
+      [
+        "admin",
+        "form",
+        "laydate",
+        "upload",
+        "coreHelper",
+        "cropperImg",
+        "dropdown",
+        "table",
+      ],
+      function () {
+        var $ = layui.$,
+          form = layui.form,
+          admin = layui.admin,
+          laydate = layui.laydate,
+          upload = layui.upload,
+          cropperImg = layui.cropperImg,
+          dropdown = layui.dropdown,
+          table = layui.table,
+          coreHelper = layui.coreHelper;
+
+        formatAreaInPut(
+          coreHelper,
+          "editOfflinedisRegion",
+          d.params.data.region
+        );
+        formatUserSelInPut(
+          coreHelper,
+          form,
+          "EditOfflinedisSelUserID",
+          d.params.data.pUserID || ""
+        );
+        //鏅�氬浘鐗囦笂浼�
+        upload.render({
+          elem: "#upBtnOriginalEdit",
+          url: layui.setter.apiUrl + "Api/Tools/UploadFiles",
+          before: function (obj) {
+            obj.preview(function (index, file, result) {
+              $("#viewImgBoxEdit").attr("src", result);
+            });
+          },
+          done: function (res) {
+            if (res.code > 0) {
+              return layer.msg("涓婁紶澶辫触");
+            }
+            layer.msg("涓婁紶鎴愬姛");
+            $("#upBtnOriginalEdit").val(res.data.fileUrl);
+          },
+          error: function () {
+            var viewTextBox = $("#viewTextBoxEdit");
+            viewTextBox.html(
+              '<span style="color: #FF5722;">涓婁紶澶辫触</span> <a class="layui-btn layui-btn-xs demo-reload">閲嶈瘯</a>'
+            );
+            viewTextBox.find(".demo-reload").on("click", function () {
+              uploadInst.upload();
+            });
+          },
+        });
+        dropdown.render({
+          elem: "#EditCooperationIntent",
+          data: [
+            {
+              title: "澶�",
+              id: 101,
+            },
+            {
+              title: "灏�",
+              id: 102,
+            },
+            {
+              title: "涓嶇‘瀹�",
+              id: 103,
+            },
+          ],
+          click: function (obj) {
+            this.elem.val(obj.title);
+          },
+          style: "min-width: 235px;",
+        });
+        dropdown.render({
+          elem: "#editCatgory",
+          data: [
+            {
+              title: "鏂囧叿搴�",
+              id: 101,
+            },
+            {
+              title: "骞垮憡搴�",
+              id: 102,
+            },
+            {
+              title: "灏忓崠閮�",
+              id: 103,
+            },
+          ],
+          click: function (obj) {
+            this.elem.val(obj.title);
+          },
+          style: "min-width: 235px;",
+        });
+
+        table.render({
+          elem: "#id-EditmeettingOffdisTab",
+          //  url: '/static/json/2/table/user.json', // 姝ゅ涓洪潤鎬佹ā鎷熸暟鎹紝瀹為檯浣跨敤鏃堕渶鎹㈡垚鐪熷疄鎺ュ彛
+          data: d.params.data.meetings,
+          page: false,
+          cols: [
+            [
+              { type: "numbers", title: "搴忓彿" },
+              {
+                field: "time",
+                title: "娲借皥鏃堕棿",
+
+                templet: "#TPL-laydate-Meetingdemo",
+                width: 150,
+              },
+              { field: "dec", title: "娲借皥鍐呭", edit: "text" }, // 璁剧疆缂栬緫绫诲瀷涓烘枃鏈
+              {
+                width: 100,
+                align: "center",
+                title: "鎿嶄綔",
+                fixed: "right",
+                toolbar: "#LAY-app-bloggersInfo-EdittableintentionsBox-bar",
+              },
+            ],
+          ],
+          // initSort: {
+          //   // 璁剧疆鍒濆鎺掑簭
+          //   field: "time", // 瀛楁鍚�
+          //   type: "desc", // 鍊掑簭
+          // },
+          height: 150,
+          done: function (res, curr, count) {
+            var options = this;
+            // 鑾峰彇褰撳墠琛屾暟鎹�
+            table.getRowData = function (tableId, elem) {
+              var index = $(elem).closest("tr").data("index");
+              return table.cache[tableId][index] || {};
+            };
+            laydate.render({
+              elem: ".Meetinglaydate-demo",
+              type: "datetime",
+              trigger: "click",
+              fullPanel: true,
+              done: function (value, date, endDate) {
+                var data = table.getRowData(options.id, this.elem); // 鑾峰彇褰撳墠琛屾暟鎹�(濡� id 绛夊瓧娈碉紝浠ヤ綔涓烘暟鎹慨鏀圭殑绱㈠紩)
+                // 鏇存柊鏁版嵁涓搴旂殑瀛楁
+                data.time = value;
+              },
+            });
+          },
+        });
+
+        // 鐩戝惉娣诲姞鏁版嵁鎸夐挳鐐瑰嚮浜嬩欢
+        $("#addOffDismeettingRow").on("click", function () {
+          var newRowData = {
+            id: 9999999, // 鍋囪ID鏄竴涓椂闂存埑
+            dec: "",
+            time: new Date().Format("yyyy-MM-dd hh:mm:ss"),
+          };
+          var allData = table.cache["id-EditmeettingOffdisTab"];
+          allData.push(newRowData);
+          table.reload("id-EditmeettingOffdisTab", {
+            data: allData,
+          });
+        });
+
+        // 涓哄伐鍏锋爮缁戝畾浜嬩欢
+        table.on("tool(id-EditmeettingOffdisTab)", function (obj) {
+          var data = obj.data; // 鑾峰緱褰撳墠琛屾暟鎹�
+          var dataIndex = obj.tr.data("index"); // 鑾峰彇琛岀储寮曪紙杩欓噷浣跨敤浜唍umbers绫诲瀷鐨勫垪锛屽畠浼氳嚜鍔ㄨ祴浜堟瘡琛屼竴涓储寮曪級
+          if (obj.event === "del") {
+            // 鍒ゆ柇鏄惁涓哄垹闄や簨浠�
+            layer.confirm(
+              "纭畾瑕佸垹闄よ繖鏉¤褰曞悧锛�",
+              { icon: 3, title: "鎻愮ず" },
+              function (index) {
+                var allData = table.cache["id-EditmeettingOffdisTab"];
+                // 鍦ㄦ湰鍦版暟鎹腑绉婚櫎璇ヨ鏁版嵁
+                allData.splice(dataIndex, 1);
+
+                // 閲嶆柊鍔犺浇琛ㄦ牸鏁版嵁
+                table.reload("id-EditmeettingOffdisTab", { data: allData });
+
+                layer.msg("鍒犻櫎鎴愬姛");
+                layer.close(index); // 鍏抽棴纭瀵硅瘽妗�
+              }
+            );
+          }
+        });
+
+        table.render({
+          elem: "#id-EditoffdisOderTab",
+          //  url: '/static/json/2/table/user.json', // 姝ゅ涓洪潤鎬佹ā鎷熸暟鎹紝瀹為檯浣跨敤鏃堕渶鎹㈡垚鐪熷疄鎺ュ彛
+          data: d.params.data.oders,
+          page: false,
+          cols: [
+            [
+              { type: "numbers", title: "搴忓彿" },
+              {
+                field: "time",
+                title: "涓嬪崟鏃堕棿",
+
+                templet: "#TPL-laydate-Meetingdemo",
+                width: 150,
+              },
+              // { field: "goodsName", title: "璐х墿鍚嶇О", edit: "text" }, // 璁剧疆缂栬緫绫诲瀷涓烘枃鏈
+              { field: "actualPayment", title: "閲戦", edit: "number" }, // 璁剧疆缂栬緫绫诲瀷涓烘枃鏈
+              {
+                width: 100,
+                align: "center",
+                title: "鎿嶄綔",
+                fixed: "right",
+                toolbar: "#LAY-app-bloggersInfo-EdittableintentionsBox-bar",
+              },
+            ],
+          ],
+          // initSort: {
+          //   // 璁剧疆鍒濆鎺掑簭
+          //   field: "time", // 瀛楁鍚�
+          //   type: "desc", // 鍊掑簭
+          // },
+          height: 150,
+          done: function (res, curr, count) {
+            var options = this;
+            // 鑾峰彇褰撳墠琛屾暟鎹�
+            table.getRowData = function (tableId, elem) {
+              var index = $(elem).closest("tr").data("index");
+              return table.cache[tableId][index] || {};
+            };
+            laydate.render({
+              elem: ".Meetinglaydate-demo",
+              type: "datetime",
+              trigger: "click",
+              fullPanel: true,
+              done: function (value, date, endDate) {
+                var data = table.getRowData(options.id, this.elem); // 鑾峰彇褰撳墠琛屾暟鎹�(濡� id 绛夊瓧娈碉紝浠ヤ綔涓烘暟鎹慨鏀圭殑绱㈠紩)
+                // 鏇存柊鏁版嵁涓搴旂殑瀛楁
+                data.time = value;
+              },
+            });
+          },
+        });
+
+        // 鐩戝惉娣诲姞鏁版嵁鎸夐挳鐐瑰嚮浜嬩欢
+        $("#addintentionsRow").on("click", function () {
+          var newRowData = {
+            id: 9999999, // 鍋囪ID鏄竴涓椂闂存埑
+            actualPayment: 0,
+
+            time: new Date().Format("yyyy-MM-dd hh:mm:ss"),
+          };
+          var allData = table.cache["id-EditoffdisOderTab"];
+          allData.push(newRowData);
+          table.reload("id-EditoffdisOderTab", {
+            data: allData,
+          });
+        });
+
+        
+        // 涓哄伐鍏锋爮缁戝畾浜嬩欢
+        table.on("tool(id-EditoffdisOderTab)", function (obj) {
+          var data = obj.data; // 鑾峰緱褰撳墠琛屾暟鎹�
+          var dataIndex = obj.tr.data("index"); // 鑾峰彇琛岀储寮曪紙杩欓噷浣跨敤浜唍umbers绫诲瀷鐨勫垪锛屽畠浼氳嚜鍔ㄨ祴浜堟瘡琛屼竴涓储寮曪級
+          if (obj.event === "del") {
+            // 鍒ゆ柇鏄惁涓哄垹闄や簨浠�
+            layer.confirm(
+              "纭畾瑕佸垹闄よ繖鏉¤褰曞悧锛�",
+              { icon: 3, title: "鎻愮ず" },
+              function (index) {
+                var allData = table.cache["id-EditoffdisOderTab"];
+                // 鍦ㄦ湰鍦版暟鎹腑绉婚櫎璇ヨ鏁版嵁
+                allData.splice(dataIndex, 1);
+
+                // 閲嶆柊鍔犺浇琛ㄦ牸鏁版嵁
+                table.reload("id-EditoffdisOderTab", { data: allData });
+
+                layer.msg("鍒犻櫎鎴愬姛");
+                layer.close(index); // 鍏抽棴纭瀵硅瘽妗�
+              }
+            );
+          }
+        });
+
+        laydate.render({
+          elem: "#editTime-OfflineDistributor-CollectionTime",
+          type: "datetime",
+          fullPanel: true,
+        });
+        laydate.render({
+          elem: "#editTime-OfflineDistributor-createTime",
+          type: "datetime",
+          fullPanel: true,
+        });
+        laydate.render({
+          elem: "#editTime-OfflineDistributor-upDataTime",
+          type: "datetime",
+          fullPanel: true,
+        });
+        form.verify({});
+        //閲嶈浇form
+        form.render(null, "LAY-app-OfflineDistributor-editForm");
+      }
+    );
+  };
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/index.html
new file mode 100644
index 0000000..98d8d61
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/offlinedistributor/index.html
@@ -0,0 +1,721 @@
+<title>绾夸笅缁忛攢鍟嗛噰闆�</title>
+<!--褰撳墠浣嶇疆寮�濮�-->
+<div class="layui-card layadmin-header">
+  <div class="layui-breadcrumb" lay-filter="breadcrumb">
+    <script
+      type="text/html"
+      template
+      lay-done="layui.data.updateMainBreadcrumb();"
+    ></script>
+  </div>
+</div>
+<!--褰撳墠浣嶇疆缁撴潫-->
+<style>
+  /* 閲嶅啓鏍峰紡 */
+</style>
+<script
+  type="text/html"
+  template
+  lay-type="Post"
+  lay-url="Api/OfflineDistributor/GetIndex"
+  lay-done="layui.data.done(d);"
+></script>
+<div class="table-body">
+  <table
+    id="LAY-app-OfflineDistributor-tableBox"
+    lay-filter="LAY-app-OfflineDistributor-tableBox"
+  ></table>
+</div>
+
+<script type="text/html" id="LAY-app-OfflineDistributor-toolbar">
+  <div class="layui-form coreshop-toolbar-search-form">
+    <div class="layui-form-item">
+      <div class="layui-inline">
+        <label class="layui-form-label" for="Category">绫诲埆</label>
+        <div class="layui-input-inline">
+          <input
+            type="text"
+            name="category"
+            placeholder="璇疯緭鍏ョ被鍒�"
+            class="layui-input"
+            id="searchCatgory"
+          />
+        </div>
+      </div>
+      <div class="layui-inline">
+        <label class="layui-form-label" for="CollectionTime"
+          >淇℃伅鏀堕泦鏃堕棿</label
+        >
+        <div class="layui-input-inline" style="width: 260px;">
+          <input
+            type="text"
+            name="collectionTime"
+            id="searchTime-OfflineDistributor-CollectionTime"
+            placeholder="璇疯緭鍏ヤ俊鎭敹闆嗘椂闂�"
+            class="layui-input"
+          />
+        </div>
+      </div>
+      <div class="layui-inline areaCode">
+        <label class="layui-form-label " for="Region">鍖哄煙淇℃伅</label>
+        <div class="layui-input-inline" style="width: 300px;">
+          <input type="text" name="SesRegion" hidden />
+        </div>
+      </div>
+      <div class="layui-inline">
+        <label class="layui-form-label" for="Adder">璇︾粏鍦板潃</label>
+        <div class="layui-input-inline">
+          <input
+            type="text"
+            name="adder"
+            placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"
+            class="layui-input"
+          />
+        </div>
+      </div>
+
+      <div class="layui-inline">
+        <label class="layui-form-label" for="school">瀛︽牎鍚嶇О</label>
+        <div class="layui-input-inline">
+          <input
+            type="text"
+            name="school"
+            placeholder="璇疯緭鍏ュ鏍″悕绉�"
+            class="layui-input"
+          />
+        </div>
+      </div>
+      <div class="layui-inline">
+        <label class="layui-form-label" for="DealerName">缁忛攢鍟嗗悕绉�</label>
+        <div class="layui-input-inline">
+          <input
+            type="text"
+            name="dealerName"
+            placeholder="璇疯緭鍏ョ粡閿�鍟嗗悕绉�"
+            class="layui-input"
+          />
+        </div>
+      </div>
+
+      <div class="layui-inline">
+        <label class="layui-form-label" for="CooperationIntent">鍚堜綔鎰忓悜</label>
+        <div class="layui-input-inline">
+          <input
+            name="cooperationIntent"
+            class="layui-input"
+            placeholder="璇疯緭鍏ュ悎浣滄剰鍚�"
+            lay-reqText="璇疯緭鍏ュ悎浣滄剰鍚�"
+            id="SeCooperationIntent"
+          />
+        </div>
+      </div>
+
+      <div class="layui-inline">
+        <button
+          class="layui-btn layui-btn-sm"
+          lay-submit
+          lay-filter="LAY-app-OfflineDistributor-search"
+        >
+          <i class="layui-icon layui-icon-search"></i>绛涢��
+        </button>
+      </div>
+    </div>
+  </div>
+</script>
+
+<script type="text/html" id="LAY-app-OfflineDistributor-pagebar">
+  <div class="layui-btn-container">
+    <button class="layui-btn layui-btn-sm" lay-event="addData">
+      <i class="layui-icon layui-icon-add-1"></i>娣诲姞鏁版嵁
+    </button>
+    <button class="layui-btn layui-btn-sm" lay-event="batchDelete">
+      <i class="layui-icon layui-icon-delete"></i>鎵归噺鍒犻櫎
+    </button>
+    <button class="layui-btn layui-btn-sm" lay-event="selectExportExcel">
+      <i class="layui-icon layui-icon-add-circle"></i>閫夋嫨瀵煎嚭
+    </button>
+    <button class="layui-btn layui-btn-sm" lay-event="queryExportExcel">
+      <i class="layui-icon layui-icon-download-circle"></i>鏌ヨ瀵煎嚭
+    </button>
+  </div>
+</script>
+
+<script type="text/html" id="LAY-app-OfflineDistributor-tableBox-bar">
+  <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail"
+    >鏌ョ湅</a
+  >
+  <a class="layui-btn layui-btn-xs" lay-event="edit">缂栬緫</a>
+  <a
+    class="layui-btn layui-btn-danger layui-btn-xs"
+    data-dropdown="#OfflineDistributorTbDelDrop{{d.LAY_INDEX}}"
+    no-shade="true"
+    >鍒犻櫎</a
+  >
+  <div
+    class="dropdown-menu-nav dropdown-popconfirm dropdown-top-right layui-hide"
+    id="OfflineDistributorTbDelDrop{{d.LAY_INDEX}}"
+    style="max-width: 200px;white-space: normal;min-width: auto;margin-left: 10px;"
+  >
+    <div class="dropdown-anchor"></div>
+    <div class="dropdown-popconfirm-title">
+      <i class="layui-icon layui-icon-help"></i>
+      纭畾瑕佸垹闄ゅ悧锛�
+    </div>
+    <div class="dropdown-popconfirm-btn">
+      <a class="layui-btn layui-btn-primary cursor" btn-cancel>鍙栨秷</a>
+      <a class="layui-btn layui-btn-normal cursor" lay-event="del">纭畾</a>
+    </div>
+  </div>
+</script>
+
+<script>
+  var indexData;
+  var debug = layui.setter.debug;
+  layui.data.done = function (d) {
+    //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+    if (debug) {
+      console.log(d);
+    }
+
+    indexData = d.data;
+    layui.use(
+      [
+        "index",
+        "table",
+        "laydate",
+        "util",
+        "coredropdown",
+        "coreHelper",
+        "dropdown",
+      ],
+      function () {
+        var $ = layui.$,
+          admin = layui.admin,
+          table = layui.table,
+          form = layui.form,
+          laydate = layui.laydate,
+          setter = layui.setter,
+          coreHelper = layui.coreHelper,
+          util = layui.util,
+          dropdown = layui.dropdown,
+          view = layui.view;
+
+        var searchwhere;
+        formatAreaInPut(coreHelper, "SesRegion");
+
+        //鐩戝惉鎼滅储
+        form.on("submit(LAY-app-OfflineDistributor-search)", function (data) {
+          var field = data.field;
+          field.region = GetAreaCodeFormFileid(field, "SesRegion");
+          searchwhere = field;
+          //鎵ц閲嶈浇
+          table.reloadData("LAY-app-OfflineDistributor-tableBox", {
+            where: field,
+          });
+        });
+        //鏁版嵁缁戝畾
+        table.render({
+          elem: "#LAY-app-OfflineDistributor-tableBox",
+          url: layui.setter.apiUrl + "Api/OfflineDistributor/GetPageList",
+          method: "POST",
+          toolbar: "#LAY-app-OfflineDistributor-toolbar",
+          pagebar: "#LAY-app-OfflineDistributor-pagebar",
+          className: "pagebarbox",
+          defaultToolbar: ["filter", "print", "exports"],
+          height: "full-127", //闈㈠寘灞�142px,鎼滅储妗�4琛�172,3琛�137,2琛�102,1琛�67
+          page: true,
+          limit: 30,
+          limits: [10, 15, 20, 25, 30, 50, 100, 200],
+          text: { none: "鏆傛棤鐩稿叧鏁版嵁" },
+          cols: [
+            [
+              { type: "checkbox", fixed: "left" },
+              { type: "numbers", title: "搴忓彿" },
+              {
+                field: "collectionTime",
+                title: "淇℃伅鏀堕泦鏃堕棿",
+                width: 130,
+                sort: false,
+              },
+              { field: "category", title: "绫诲埆", sort: false, width: 105 },
+              {
+                field: "areaCodeName",
+                title: "鍖哄煙",
+                sort: false,
+                width: 200,
+              },
+              { field: "adder", title: "璇︾粏鍦板潃", sort: false, width: 200 },
+              {
+                field: "cooperationIntent",
+                title: "鍚堜綔鎰忓悜",
+                sort: false,
+                width: 105,
+              },
+              { field: "school", title: "瀛︽牎鍚嶇О", sort: false, width: 105 },
+              { field: "dealerName", title: "缁忛攢鍟嗗悕绉�", sort: false ,width: 105},
+              {
+                field: "contactPerson",
+                title: "鑱旂郴浜哄鍚�",
+                sort: false,
+                width: 105,
+              },
+              {
+                field: "phoneNumber",
+                title: "鑱旂郴鐢佃瘽",
+                sort: false,
+                width: 105,
+              },
+          
+              {
+                field: "businessManager",
+                title: "涓氬姟缁忕悊",
+                sort: false,
+                width: 105,
+              },
+              {
+                field: "meetingCount",
+                title: "娲借皥璁板綍",
+                sort: false,
+                width: 105,
+                templet: "#OffdismeetingCountTmp",
+              },
+              {
+                field: "money",
+                title: "璁㈣揣璁板綍",
+                sort: false,
+                width: 105,
+                templet: "#OffdismoneyTmp",
+              },
+              { field: "remake", title: "澶囨敞", sort: false, width: 105 },
+
+              {
+                width: 162,
+                align: "center",
+                title: "鎿嶄綔",
+                fixed: "right",
+                toolbar: "#LAY-app-OfflineDistributor-tableBox-bar",
+              },
+            ],
+          ],
+        });
+        //鐩戝惉鎺掑簭浜嬩欢
+        table.on("sort(LAY-app-OfflineDistributor-tableBox)", function (obj) {
+          table.reloadData("LAY-app-OfflineDistributor-tableBox", {
+            initSort: obj, //璁板綍鍒濆鎺掑簭锛屽鏋滀笉璁剧殑璇濓紝灏嗘棤娉曟爣璁拌〃澶寸殑鎺掑簭鐘舵�併��
+            where: {
+              //璇锋眰鍙傛暟锛堟敞鎰忥細杩欓噷闈㈢殑鍙傛暟鍙换鎰忓畾涔夛紝骞堕潪涓嬮潰鍥哄畾鐨勬牸寮忥級
+              orderField: obj.field, //鎺掑簭瀛楁
+              orderDirection: obj.type, //鎺掑簭鏂瑰紡
+            },
+          });
+        });
+        //鐩戝惉琛屽弻鍑讳簨浠�
+        table.on(
+          "rowDouble(LAY-app-OfflineDistributor-tableBox)",
+          function (obj) {
+            //鏌ョ湅璇︽儏
+            doDetails(obj);
+          }
+        );
+        //澶村伐鍏锋爮浜嬩欢
+        table.on(
+          "pagebar(LAY-app-OfflineDistributor-tableBox)",
+          function (obj) {
+            var checkStatus = table.checkStatus(obj.config.id);
+            switch (obj.event) {
+              case "addData":
+                doCreate();
+                break;
+              case "batchDelete":
+                doBatchDelete(checkStatus);
+                break;
+              case "selectExportExcel":
+                doSelectExportExcel(checkStatus);
+                break;
+              case "queryExportExcel":
+                doQueryExportexcel();
+                break;
+            }
+          }
+        );
+        dropdown.render({
+          elem: "#SeCooperationIntent",
+          data: [
+            {
+              title: "澶�",
+              id: 101,
+            },
+            {
+              title: "灏�",
+              id: 102,
+            },
+            {
+              title: "涓嶇‘瀹�",
+              id: 103,
+            },
+          ],
+          click: function (obj) {
+            this.elem.val(obj.title);
+          },
+          style: "min-width: 235px;",
+        });
+
+        dropdown.render({
+          elem: "#searchCatgory",
+          data: [
+            {
+              title: "鏂囧叿搴�",
+              id: 101,
+            },
+            {
+              title: "骞垮憡搴�",
+              id: 102,
+            },
+            {
+              title: "灏忓崠閮�",
+              id: 103,
+            },
+          ],
+          click: function (obj) {
+            this.elem.val(obj.title);
+          },
+          style: "min-width: 235px;",
+        });
+        //鐩戝惉宸ュ叿鏉�
+        table.on("tool(LAY-app-OfflineDistributor-tableBox)", function (obj) {
+          if (obj.event === "detail") {
+            doDetails(obj);
+          } else if (obj.event === "del") {
+            doDelete(obj);
+          } else if (obj.event === "edit") {
+            doEdit(obj);
+          }
+        });
+        //鎵ц鍒涘缓鎿嶄綔
+        function doCreate() {
+          coreHelper.Post(
+            "Api/OfflineDistributor/GetCreate",
+            null,
+            function (e) {
+              if (e.code === 0) {
+                admin.popup({
+                  shadeClose: false,
+                  title: "鍒涘缓鏁版嵁",
+                  area: ["1200px", "90%"],
+                  id: "LAY-popup-OfflineDistributor-create",
+                  success: function (layero, index) {
+                    view(this.id)
+                      .render("baifenbingfa/OfflineDistributor/create", {
+                        data: e.data,
+                      })
+                      .done(function () {
+                        //鐩戝惉鎻愪氦
+                        form.on(
+                          "submit(LAY-app-OfflineDistributor-createForm-submit)",
+                          function (data) {
+                            var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+
+                            field.isdelete = field.isdelete == "on";
+                            field.region = GetAreaCodeFormFileid(
+                              field,
+                              "CreatofflinedisRegion"
+                            );
+
+                            if (debug) {
+                              console.log(field);
+                            } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                            //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+                            coreHelper.Post(
+                              "Api/OfflineDistributor/DoCreate",
+                              field,
+                              function (e) {
+                                console.log(e);
+                                if (e.code === 0) {
+                                  layui.table.reloadData(
+                                    "LAY-app-OfflineDistributor-tableBox"
+                                  ); //閲嶈浇琛ㄦ牸
+                                  layer.close(index); //鍐嶆墽琛屽叧闂�
+                                  layer.msg(e.msg);
+                                } else {
+                                  layer.msg(e.msg);
+                                }
+                              }
+                            );
+                          }
+                        );
+                      });
+                    // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                    $(layero)
+                      .children(".layui-layer-content")
+                      .css("overflow", "visible");
+                  },
+                  btn: ["纭畾", "鍙栨秷"],
+                  yes: function (index, layero) {
+                    layero
+                      .contents()
+                      .find("#LAY-app-OfflineDistributor-createForm-submit")
+                      .click();
+                  },
+                });
+              } else {
+                layer.msg(e.msg);
+              }
+            }
+          );
+        }
+        //鎵ц缂栬緫鎿嶄綔
+        function doEdit(obj) {
+          coreHelper.Post(
+            "Api/OfflineDistributor/GetEdit",
+            { id: obj.data.id },
+            function (e) {
+              if (e.code === 0) {
+             
+                admin.popup({
+                  shadeClose: false,
+                  title: "缂栬緫鏁版嵁",
+                  area: ["1200px", "90%"],
+                  id: "LAY-popup-OfflineDistributor-edit",
+                  success: function (layero, index) {
+                    view(this.id)
+                      .render("baifenbingfa/OfflineDistributor/edit", {
+                        data: e.data,
+                      })
+                      .done(function () {
+                        //鐩戝惉鎻愪氦
+                        form.on(
+                          "submit(LAY-app-OfflineDistributor-editForm-submit)",
+                          function (data) {
+                            var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+                            
+                            field.isdelete = field.isdelete == "on";
+                            field.region = GetAreaCodeFormFileid(
+                              field,
+                              "editOfflinedisRegion"
+                            );
+
+                            field.meetings =
+                              table.cache["id-EditmeettingOffdisTab"];
+                            field.Oders = table.cache["id-EditoffdisOderTab"];
+                            if (debug) {
+                              console.log(field);
+                            } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                            //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+                            coreHelper.Post(
+                              "Api/OfflineDistributor/DoEdit",
+                              field,
+                              function (e) {
+                                console.log(e);
+                                if (e.code === 0) {
+                                  layui.table.reloadData(
+                                    "LAY-app-OfflineDistributor-tableBox"
+                                  ); //閲嶈浇琛ㄦ牸
+                                  layer.close(index); //鍐嶆墽琛屽叧闂�
+                                  layer.msg(e.msg);
+                                } else {
+                                  layer.msg(e.msg);
+                                }
+                              }
+                            );
+                          }
+                        );
+                      });
+                    // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                    $(layero)
+                      .children(".layui-layer-content")
+                      .css("overflow", "visible");
+                  },
+                  btn: ["纭畾", "鍙栨秷"],
+                  yes: function (index, layero) {
+                    layero
+                      .contents()
+                      .find("#LAY-app-OfflineDistributor-editForm-submit")
+                      .click();
+                  },
+                });
+              } else {
+                layer.msg(e.msg);
+              }
+            }
+          );
+        }
+        //鎵ц棰勮鎿嶄綔
+        function doDetails(obj) {
+          coreHelper.Post(
+            "Api/OfflineDistributor/GetDetails",
+            { id: obj.data.id },
+            function (e) {
+              if (e.code === 0) {
+                admin.popup({
+                  shadeClose: false,
+                  title: "鏌ョ湅璇︽儏",
+                  area: ["1200px", "90%"],
+                  id: "LAY-popup-OfflineDistributor-details",
+                  success: function (layero, index) {
+                    view(this.id)
+                      .render("baifenbingfa/OfflineDistributor/details", {
+                        data: e.data,
+                      })
+                      .done(function () {
+                        form.render();
+                      });
+                    // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                    $(layero)
+                      .children(".layui-layer-content")
+                      .css("overflow", "visible");
+                  },
+                });
+              } else {
+                layer.msg(e.msg);
+              }
+            }
+          );
+        }
+        //鎵ц鍗曚釜鍒犻櫎
+        function doDelete(obj) {
+          coreHelper.Post(
+            "Api/OfflineDistributor/DoDelete",
+            { id: obj.data.id },
+            function (e) {
+              if (debug) {
+                console.log(e);
+              } //寮�鍚皟璇曡繑鍥炴暟鎹�
+              table.reloadData("LAY-app-OfflineDistributor-tableBox");
+              layer.msg(e.msg);
+            }
+          );
+        }
+        //鎵ц鎵归噺鍒犻櫎
+        function doBatchDelete(checkStatus) {
+          var checkData = checkStatus.data;
+          if (checkData.length === 0) {
+            return layer.msg("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁");
+          }
+          layer.confirm("纭畾鍒犻櫎鍚楋紵鍒犻櫎鍚庡皢鏃犳硶鎭㈠銆�", function (index) {
+            var delidsStr = [];
+            layui.each(checkData, function (index, item) {
+              delidsStr.push(item.id);
+            });
+            coreHelper.Post(
+              "Api/OfflineDistributor/DoBatchDelete",
+              { id: delidsStr },
+              function (e) {
+                if (debug) {
+                  console.log(e);
+                } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                table.reloadData("LAY-app-OfflineDistributor-tableBox");
+                layer.msg(e.msg);
+              }
+            );
+          });
+        }
+        //鎵ц鏌ヨ鏉′欢瀵煎嚭excel
+        function doQueryExportexcel() {
+          layer.confirm("纭畾鏍规嵁褰撳墠鐨勬煡璇㈡潯浠跺鍑烘暟鎹悧锛�", function (index) {
+            var field = searchwhere;
+            coreHelper.PostForm(
+              "Api/OfflineDistributor/QueryExportExcel",
+              field,
+              function (e) {
+                if (debug) {
+                  console.log(e);
+                } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                if (e.code === 0) {
+                  window.open(e.data);
+                } else {
+                  layer.msg(e.msg);
+                }
+              }
+            );
+          });
+        }
+        //鎵ц閫夋嫨鐩綍瀵煎嚭鏁版嵁
+        function doSelectExportExcel(checkStatus) {
+          var checkData = checkStatus.data;
+          if (checkData.length === 0) {
+            return layer.msg("璇烽�夋嫨鎮ㄨ瀵煎嚭鐨勬暟鎹�");
+          }
+          layer.confirm("纭畾瀵煎嚭閫夋嫨鐨勫唴瀹瑰悧锛�", function (index) {
+            var delidsStr = [];
+            layui.each(checkData, function (index, item) {
+              delidsStr.push(item.id);
+            });
+            layer.close(index);
+            coreHelper.Post(
+              "Api/OfflineDistributor/SelectExportExcel",
+              { id: delidsStr },
+              function (e) {
+                if (debug) {
+                  console.log(e);
+                } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                if (e.code === 0) {
+                  window.open(e.data);
+                } else {
+                  layer.msg(e.msg);
+                }
+              }
+            );
+          });
+        }
+
+        laydate.render({
+          elem: "#searchTime-OfflineDistributor-CollectionTime",
+          type: "datetime",
+          range: "鍒�",
+        });
+        laydate.render({
+          elem: "#searchTime-OfflineDistributor-createTime",
+          type: "datetime",
+          range: "鍒�",
+        });
+        laydate.render({
+          elem: "#searchTime-OfflineDistributor-upDataTime",
+          type: "datetime",
+          range: "鍒�",
+        });
+
+        //鐩戝惉 琛ㄦ牸澶嶉�夋鎿嶄綔
+
+        layui.form.on("switch(switch_isdelete)", function (obj) {
+          coreHelper.Post(
+            "Api/OfflineDistributor/DoSetisdelete",
+            { id: this.value, data: obj.elem.checked },
+            function (e) {
+              if (debug) {
+                console.log(e);
+              } //寮�鍚皟璇曡繑鍥炴暟鎹�
+              //table.reloadData('LAY-app-OfflineDistributor-tableBox');
+              layer.msg(e.msg);
+            }
+          );
+        });
+
+        //閲嶈浇form
+        form.render();
+      }
+    );
+  };
+</script>
+
+<!--璁剧疆鍒犻櫎鏍囧織-->
+<script type="text/html" id="switch_isdelete">
+  <input type="checkbox" name="switch_isdelete" value="{{d.id}}"
+  lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="switch_isdelete" {{
+  d.isdelete ? 'checked' : '' }}>
+</script>
+
+<script src="/views/liao.js"></script>
+<style>
+    .areaCode .select-address {
+      padding: 5px !important        ;
+      width: 30%;
+    }
+  </style>
+
+
+<!--娲借皥璁板綍-->
+<script type="text/html" id="nicknameTmp">
+  <a lay-event="edit" style="color: blue;">{{d.nickname}}</a>
+
+  <!-- <input type="checkbox" name="switch_isdelete" value="{{d.id}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="switch_isdelete" {{ d.isdelete ? 'checked' : '' }}> -->
+</script>
\ No newline at end of file
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/index.html
index f808d74..245fd11 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/bloggersinfo/index.html
@@ -273,7 +273,7 @@
                 field: "nickname",
                 title: "缃戝悕",
                 sort: false,
-                templet: "#nickname",
+                templet: "#nicknameTmp",
                 width: 105,
               },
               {
@@ -737,7 +737,7 @@
 </script>
 
 <!--娲借皥璁板綍-->
-<script type="text/html" id="nickname">
+<script type="text/html" id="nicknameTmp">
   <a lay-event="edit" style="color: blue;">{{d.nickname}}</a>
 
   <!-- <input type="checkbox" name="switch_isdelete" value="{{d.id}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="switch_isdelete" {{ d.isdelete ? 'checked' : '' }}> -->
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/liao.js b/CoreCms.Net.Web.Admin/wwwroot/views/liao.js
index ccbced3..b03b48e 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/liao.js
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/liao.js
@@ -3,7 +3,7 @@
  * @Author: 灏忛渚�
  * @Date: 2024-03-01 09:11:24
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2024-03-21 09:47:04
+ * @LastEditTime: 2024-04-01 12:39:54
  * Copyright: 2024  MinTinge CO.,LTD. All Rights Reserved.
  * @Descripttion: 鍐欏叆浣犵殑鎻忚堪
  */
@@ -21,20 +21,20 @@
  * @LastEditTime: Do not Edit
  */
 function filterTreeWithjQuery(tree, predicate) {
-  var results = [];
+    var results = [];
 
-  function traverse(node) {
-    if (predicate(node)) {
-      results.push(node);
+    function traverse(node) {
+        if (predicate(node)) {
+            results.push(node);
+        }
+        if (node.children && Array.isArray(node.children)) {
+            $.each(node.children, traverse);
+        }
     }
-    if (node.children && Array.isArray(node.children)) {
-      $.each(node.children, traverse);
-    }
-  }
 
-  $.each(tree, traverse);
+    $.each(tree, traverse);
 
-  return results;
+    return results;
 }
 /**
  * @description: 鍒ゆ柇涓�涓瓧绗︿覆鏄笉鏄暟瀛楀瓧绗︿覆
@@ -46,8 +46,8 @@
  * @LastEditTime: Do not Edit
  */
 function isNumericString(str) {
-  const regex = /^-?\d+(\.\d+)?$/; // 鍖归厤鏁存暟鎴栧皬鏁帮紝鍖呮嫭璐熸暟
-  return regex.test(str);
+    const regex = /^-?\d+(\.\d+)?$/; // 鍖归厤鏁存暟鎴栧皬鏁帮紝鍖呮嫭璐熸暟
+    return regex.test(str);
 }
 
 
@@ -57,18 +57,18 @@
  * 褰撲娇鐢ㄤ簡formatAreaInPut 鍚� 鍙娇鐢ㄦ鍑芥暟鑾峰彇涓�涓敱鍦板潃id缁勬垚鐨刟reaId 瀛楃涓诧紝鐢紝鍙峰垎鍓� 
  * @param {Object} field -琛ㄥ崟銆�
  */
-function GetAreaCodeFormFileid(field,idname) {
-  let areaCode="";
-  if (isNumericString(field[`${idname}_1`])) {
-    areaCode+=`${field[`${idname}_1`]}`;
-    if (isNumericString(field[`${idname}_2`]))
-    areaCode+=`,${field[`${idname}_2`]}`;
-    if (isNumericString(field[`${idname}_3`]))
-    areaCode+=`,${field[`${idname}_3`]}`;
-  } else {
-   
-  }
-  return areaCode;
+function GetAreaCodeFormFileid(field, idname) {
+    let areaCode = "";
+    if (isNumericString(field[`${idname}_1`])) {
+        areaCode += `${field[`${idname}_1`]}`;
+        if (isNumericString(field[`${idname}_2`]))
+            areaCode += `,${field[`${idname}_2`]}`;
+        if (isNumericString(field[`${idname}_3`]))
+            areaCode += `,${field[`${idname}_3`]}`;
+    } else {
+
+    }
+    return areaCode;
 }
 
 /**
@@ -76,84 +76,143 @@
  * 浼氱敓鎴愬嚑涓猘reaId-1锛宎reaId-3锛宎reaId-3
  * @param {Object} coreHelper - 鏍稿績杈呭姪瀵硅薄锛岀敤浜庢墽琛孒TTP璇锋眰绛夋搷浣溿��
  */
-function formatAreaInPut(coreHelper,idname,areaid="") {
-  let area=0;
-  if(areaid!=="")
-   area= areaid.split(",").reverse()[0];
-  
-  coreHelper.Post("Api/Tools/GetAreaCheckedList", { id: Number(area) }, function (data) {
-    if (debug) { console.log(data); } //寮�鍚皟璇曡繑鍥炴暟鎹�
-    var str = "";
-    $.each(data, function (i, n) {
-        str += `<select lay-ignore name='${idname}_` + (i + 1) + "' dep='" + (i + 1) + "'  class='select-address'>";
-        str += "<option value='' >璇烽�夋嫨</option>";
-        $.each(n.list, function (h, z) {
-            if (n.hasOwnProperty('info') && n.info?.id == z.id) {
-                str += "<option value='" + z.id + "' selected='selected'>" + z.name + "</option>";
-            } else {
-                str += "<option value='" + z.id + "' >" + z.name + "</option>";
+function formatAreaInPut(coreHelper, idname, areaid = "") {
+    let area = 0;
+    if ((areaid !== "")&&(areaid!==null) &&(areaid!==0))
+        area = areaid.split(",").reverse()[0];
+
+    coreHelper.Post("Api/Tools/GetAreaCheckedList", { id: Number(area) }, function (data) {
+        if (debug) { console.log(data); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+        var str = "";
+        $.each(data, function (i, n) {
+            str += `<select lay-ignore name='${idname}_` + (i + 1) + "' dep='" + (i + 1) + "'  class='select-address'>";
+            str += "<option value='' >璇烽�夋嫨</option>";
+            $.each(n.list, function (h, z) {
+                if (n.hasOwnProperty('info') && n.info?.id == z.id) {
+                    str += "<option value='" + z.id + "' selected='selected'>" + z.name + "</option>";
+                } else {
+                    str += "<option value='" + z.id + "' >" + z.name + "</option>";
+                }
+            });
+            str += "</select>";
+        });
+        $(`input[name='${idname}']`).after(str);
+        //浠ヤ笂鏁版嵁杈撳嚭瀹岋紝浠ヤ笅缁戝畾浜嬩欢
+        $.each(data, function (i, n) {
+            if (i < (data.length)) {
+                $(`select[name='${idname}_` + (i + 1) + "']").change(function () {
+                    changeareaIdArea(i + 1, data.length, idname);
+                });
             }
         });
-        str += "</select>";
     });
-    $(`input[name='${idname}']`).after(str);
-    //浠ヤ笂鏁版嵁杈撳嚭瀹岋紝浠ヤ笅缁戝畾浜嬩欢
-    $.each(data, function (i, n) {
-        if (i < (data.length)) {
-            $(`select[name='${idname}_` + (i + 1) + "']").change(function () {
-                changeareaIdArea(i + 1, data.length,idname);
-            });
+    function changeareaIdArea(i, max_i, idname) {
+        //娓呴櫎鍚庨潰鑺傜偣
+        for (var x = i + 1; x <= 6; x++) {  //鏈�澶�6灞傦紝瓒冲浜�
+            $(`select[name='${idname}_` + x + "']").remove();
         }
-    });
-});
-function changeareaIdArea(i, max_i,idname) {
-    //娓呴櫎鍚庨潰鑺傜偣
-    for (var x = i + 1; x <= 6; x++) {  //鏈�澶�6灞傦紝瓒冲浜�
-        $(`select[name='${idname}_` + x + "']").remove();
-    }
-    var val = $(`select[name='${idname}_` + i + "']").val();
-    if (val != "") {
-        //鍙栧瓙鑺傜偣鏁版嵁锛岀劧鍚庢樉绀轰笅涓�绾�
-        coreHelper.Post("Api/Tools/GetAreaChildren", { id: val }, function (e) {
-            if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+        var val = $(`select[name='${idname}_` + i + "']").val();
+        if (val != "") {
+            //鍙栧瓙鑺傜偣鏁版嵁锛岀劧鍚庢樉绀轰笅涓�绾�
+            coreHelper.Post("Api/Tools/GetAreaChildren", { id: val }, function (e) {
+                if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
 
-            if (e.length > 0) {
-                var str = "";
-                str += `<select lay-ignore name='${idname}_` + (i + 1) + "' dep='" + (i + 1) + "'  class='select-address'>";
-                str += "<option value='' >璇烽�夋嫨</option>";
-                $.each(e, function (h, z) {
-                    str += "<option value='" + z.id + "' >" + z.name + "</option>";
-                });
-                str += "</select>";
-                $(`select[name='${idname}_` + i + "']").after(str);
-                //浠ヤ笂鏁版嵁杈撳嚭瀹岋紝浠ヤ笅缁戝畾浜嬩欢
-                $(`select[name='${idname}_` + (i+1) + "']").change(function () {
-                    changeareaIdArea(i + 1, i + 2,idname);
-                });
+                if (e.length > 0) {
+                    var str = "";
+                    str += `<select lay-ignore name='${idname}_` + (i + 1) + "' dep='" + (i + 1) + "'  class='select-address'>";
+                    str += "<option value='' >璇烽�夋嫨</option>";
+                    $.each(e, function (h, z) {
+                        str += "<option value='" + z.id + "' >" + z.name + "</option>";
+                    });
+                    str += "</select>";
+                    $(`select[name='${idname}_` + i + "']").after(str);
+                    //浠ヤ笂鏁版嵁杈撳嚭瀹岋紝浠ヤ笅缁戝畾浜嬩欢
+                    $(`select[name='${idname}_` + (i + 1) + "']").change(function () {
+                        changeareaIdArea(i + 1, i + 2, idname);
+                    });
 
-                //濡傛灉鏈夎繑鍥炲�硷紝灏辫鏄庣渷甯傚尯娌℃湁閫夋嫨鍒版渶缁堣妭鐐�
-                if (1 == 1) {
-                    $(`input[name='${idname}']`).val("");
+                    //濡傛灉鏈夎繑鍥炲�硷紝灏辫鏄庣渷甯傚尯娌℃湁閫夋嫨鍒版渶缁堣妭鐐�
+                    if (1 == 1) {
+                        $(`input[name='${idname}']`).val("");
+                    } else {
+                        $(`input[name='${idname}']`).val($(`select[name='${idname}_` + i + "']").val());
+                    }
                 } else {
                     $(`input[name='${idname}']`).val($(`select[name='${idname}_` + i + "']").val());
                 }
-            } else {
-                $(`input[name='${idname}']`).val($(`select[name='${idname}_` + i + "']").val());
-            }
-        });
-    } else {
-        if (1 == 1) {
-            $(`input[name='${idname}']`).val("");
+            });
         } else {
-            //绗竴绾х殑鍏冪礌灏辩洿鎺ヨ祴鍊间负绌哄氨鏄簡
-            if (i == 1) {
+            if (1 == 1) {
                 $(`input[name='${idname}']`).val("");
             } else {
-                i--;
-                $(`input[name='${idname}']`).val($(`select[name='${idname}` + i + "']").val());
-            }
+                //绗竴绾х殑鍏冪礌灏辩洿鎺ヨ祴鍊间负绌哄氨鏄簡
+                if (i == 1) {
+                    $(`input[name='${idname}']`).val("");
+                } else {
+                    i--;
+                    $(`input[name='${idname}']`).val($(`select[name='${idname}` + i + "']").val());
+                }
 
+            }
         }
     }
 }
-}
\ No newline at end of file
+/**
+ * 鏍规嵁鐢ㄦ埛閫夋嫨锛屾牸寮忓寲骞舵洿鏂� select 杈撳叆鍏冪礌涓殑閫夐」銆�
+ * @param {object} coreHelper 鏍稿績杈呭姪瀵硅薄锛岀敤浜庢墽琛� post 璇锋眰绛夋搷浣溿��
+ * @param {object} form 琛ㄥ崟瀵硅薄锛岀敤浜庨噸鏂版覆鏌� select 鍏冪礌銆�
+ * @param {string} idname select 鍏冪礌鐨� id 鍚嶇О銆�
+ */
+
+function formatUserSelInPut(coreHelper, form, idname,selectedID="") {
+
+    // 鍚戞湇鍔″櫒鍙戦�佽姹傦紝鑾峰彇鐢ㄦ埛鍒楄〃
+    coreHelper.PostForm("Api/CommonAPI/GetUserList", { sKey: "" }, function (data) {
+        if (debug) { console.log(data); } // 濡傛灉澶勪簬璋冭瘯妯″紡锛屾墦鍗拌繑鍥炵殑鏁版嵁
+
+        if (data.code == 0) {
+            // 鑾峰彇鎸囧畾 id 鐨� select 鍏冪礌
+            var selectElement = document.getElementById(idname);
+
+            // 閬嶅巻杩斿洖鐨勭敤鎴锋暟鎹紝涓� select 鍏冪礌鍒涘缓骞舵坊鍔犳柊鐨� option 閫夐」
+            for (var i = 0; i < data.data.length; i++) {
+                var option = document.createElement('option');
+                option.value = data.data[i].id;
+                if(selectedID==data.data[i].id){
+                    option.selected=true;
+                }
+                option.innerHTML = data.data[i].name;
+                selectElement.appendChild(option);
+            }
+           
+            // 閲嶆柊娓叉煋 select 鍏冪礌锛岀‘淇濇柊鐨勯�夐」鐢熸晥
+            form.render('select');
+        }
+    })
+}
+
+Date.prototype.Format = function (fmt) {
+    //author: meizz
+    var o = {
+      "M+": this.getMonth() + 1, //鏈堜唤
+      "d+": this.getDate(), //鏃�
+      "h+": this.getHours(), //灏忔椂
+      "m+": this.getMinutes(), //鍒�
+      "s+": this.getSeconds(), //绉�
+      "q+": Math.floor((this.getMonth() + 3) / 3), //瀛e害
+    };
+    if (/(y+)/.test(fmt))
+      fmt = fmt.replace(
+        RegExp.$1,
+        (this.getFullYear() + "").substr(4 - RegExp.$1.length)
+      );
+    for (var k in o)
+      if (new RegExp("(" + k + ")").test(fmt))
+        fmt = fmt.replace(
+          RegExp.$1,
+          RegExp.$1.length == 1
+            ? o[k]
+            : ("00" + o[k]).substr(("" + o[k]).length)
+        );
+    return fmt;
+  };
\ No newline at end of file
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/user/login.html b/CoreCms.Net.Web.Admin/wwwroot/views/user/login.html
index 0b76cb0..1ab003c 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/user/login.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/user/login.html
@@ -31,7 +31,7 @@
         <div class="col-lg-5 d-flex align-items-md-baseline py-5 background--light vh-md-100 overflow-auto">
             <div class="w-75 mt-3 mt-md-5 mx-auto overflow-hidden px-md-5 px-lg-3">
                 <header class="mb-5">
-                    <img src='/static/images/common/logo.png' style="height: 80px; object-fit: contain;">
+                    <img src='/static/images/common/logo.png' style="height: 80px;width:100%; object-fit: contain;">
                 </header>
                 <main class="main">
                     <div class="form-validate layui-form">
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/index.html
index eb825ab..adcdabd 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/index.html
@@ -267,6 +267,7 @@
                                     }
                                 }
                             },
+                            { field: 'isBaifenPromotion', title: '鎺ㄥ箍浜哄憳', width: 120, templet: '#switch_IsBaifenPromotion', sort: false, unresize: true },
                             //{ field: 'isDelete', title: '鍒犻櫎鏍囧織', width: 105, templet: '#switch_isDelete', sort: false, unresize: true },
                             { width: 282, align: 'center', title: '鎿嶄綔', fixed: 'right', toolbar: '#LAY-app-CoreCmsUser-tableBox-bar' }
                         ]
@@ -680,6 +681,13 @@
                             });
                         });
                 }
+                
+                layui.form.on('switch(switch_IsBaifenPromotion)', function (obj) {
+                    coreHelper.Post("Api/CoreCmsUser/DoSetIsBaiFenBingfaP", { id: this.value, data: obj.elem.checked }, function (e) {
+                      
+                        layer.msg(e.msg);
+                    });
+                });
                 //鐩戝惉 琛ㄦ牸澶嶉�夋鎿嶄綔
 
                 layui.form.on('switch(switch_isDelete)', function (obj) {
@@ -708,4 +716,9 @@
 <!--璁剧疆鍒犻櫎鏍囧織 鏈夋暟鎹氨鏄垹闄�-->
 <script type="text/html" id="switch_isDelete">
     <input type="checkbox" name="switch_isDelete" value="{{d.id}}" lay-skin="switch" lay-text="宸插垹闄姝e父" lay-filter="switch_isDelete" {{ d.isDelete ? 'checked' : '' }}>
+</script>
+
+<!--璁剧疆鏄惁鐑棬-->
+<script type="text/html" id="switch_IsBaifenPromotion">
+    <input type="checkbox" name="switch_IsBaifenPromotion" value="{{d.id}}" lay-skin="switch" lay-text="鏄瘄鍚�" lay-filter="switch_IsBaifenPromotion" {{ d.isBaifenPromotion? 'checked' : '' }}>
 </script>
\ No newline at end of file
diff --git a/CoreCms.Net.Web.WebApi/Controllers/OfflineDistributorController.cs b/CoreCms.Net.Web.WebApi/Controllers/OfflineDistributorController.cs
new file mode 100644
index 0000000..6d8ac48
--- /dev/null
+++ b/CoreCms.Net.Web.WebApi/Controllers/OfflineDistributorController.cs
@@ -0,0 +1,161 @@
+锘縰sing CoreCms.Net.Auth.HttpContextUser;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.Model.ViewModels.UI;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Threading.Tasks;
+using CoreCms.Net.IServices;
+using Microsoft.AspNetCore.Hosting;
+using CoreCms.Net.Model.Entities.baifenbingfa.Promote.OffLineDistributor;
+using System.Collections.Generic;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.Model.FromBody;
+using CoreCms.Net.Services;
+using System.ComponentModel;
+
+namespace CoreCms.Net.Web.WebApi.Controllers
+{
+    /// <summary>
+    /// 鐧惧垎鍏垫硶绾夸笂
+    /// </summary>
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    public class OfflineDistributorController : ControllerBase
+    {
+        private readonly IWebHostEnvironment _webHostEnvironment;
+        private readonly IOfflineDistributorServices _OfflineDistributorServices;
+        private readonly ICoreCmsAreaServices _coreCmsAreaServices;
+        private readonly IUnitOfWork _unitOfWork;
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        ///</summary>
+        public OfflineDistributorController(IWebHostEnvironment webHostEnvironment
+            , IOfflineDistributorServices OfflineDistributorServices
+            , ICoreCmsAreaServices CoreCmsAreaServices
+            , IUnitOfWork unitOfWork
+            )
+        {
+            _webHostEnvironment = webHostEnvironment;
+            _OfflineDistributorServices = OfflineDistributorServices;
+            _coreCmsAreaServices = CoreCmsAreaServices;
+            _unitOfWork = unitOfWork;
+        }
+
+
+        [HttpPost]
+        [Description("杈撳叆渚涘簲鍟�")]
+
+        public async Task<WebApiCallBack> addOfflineDistributor([FromBody] addOfflineDistributorIn param)
+        {
+            var item = new OfflineDistributor
+            {
+                Adder = param.Adder,
+                BusinessManager = param.BusinessManager,
+                Category = param.Category,
+                CollectionTime = param.time,
+                ContactPerson = param.ContactPerson,
+                CooperationIntent = param.CooperationIntent,
+                DealerName = param.DistributorName,
+                PhoneNumber = param.PhoneNumber,
+                School=param.School,
+               
+                meetings = new List<OfflineDistributorMeeting>()
+                         {
+                             new OfflineDistributorMeeting
+                             {
+                                  createBy="鐢ㄦ埛閲囬泦",
+                                   createTime= param.time,
+                                   time=param.time,
+                                    Dec= param.NegotiationNotes,
+
+                             }
+                         },
+                PUserID = param.UserID,
+                Region = param.RegionCode,
+                Remake = param.Remake,
+                StoreLogoUrl = param.StoreImage,
+
+
+            };
+            var jm = new WebApiCallBack();
+            var ret = await _OfflineDistributorServices.UserInsertAsync(item);
+            jm.code = ret.code;
+            jm.status = true;
+            jm.msg = ret.msg;
+            jm.data = ret.data;
+            return jm;
+
+        }
+
+
+    }
+    /// <summary>
+    /// 閲囬泦杈撳叆
+    /// </summary>
+    public class addOfflineDistributorIn
+    {
+        public int UserID { get; set; }
+        /// <summary>
+        /// 閲囬泦鏃堕棿
+        /// </summary>
+        public DateTime time { get; set; }
+
+        /// <summary>
+        /// 鍖哄煙
+        /// </summary>
+        public string RegionCode { get; set; }
+
+        /// <summary>
+        /// 鍦板潃
+        /// </summary>
+        public string Adder { get; set; }
+        /// <summary>
+        /// 瀛︽牎
+        /// </summary>
+        public string School { get; set; }
+
+        /// <summary>
+        /// 绫诲埆
+        /// </summary>
+        public string Category { get; set; }
+
+        /// <summary>
+        /// 缁忛攢鍟嗗悕绉�
+        /// </summary>
+        public string DistributorName { get; set; }
+
+        /// <summary>
+        /// 鑱旂郴浜�
+        /// </summary>
+        public string ContactPerson { get; set; }
+        /// <summary>
+        /// 鑱旂郴鐢佃瘽
+        /// </summary>
+        public string PhoneNumber { get; set; }
+
+        /// <summary>
+        /// 搴楁嫑鍥剧墖
+        /// </summary>
+        public string StoreImage { get; set; }
+
+        /// <summary>
+        /// 鍚堜綔鎰忓悜
+        /// </summary>
+        public string CooperationIntent { get; set; }
+
+        /// <summary>
+        /// 娲借皥璁板綍
+        /// </summary>
+        public string NegotiationNotes { get; set; }
+        /// <summary>
+        /// 涓氬姟缁忕悊
+        /// </summary>
+        public string BusinessManager { get; set; }
+        public string Remake { get; set; }
+    }
+
+
+}
diff --git a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
index f72ffd8..7370986 100644
--- a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
+++ b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
@@ -1003,6 +1003,7 @@
                 user.status,
                 user.parentId,
                 user.passWord,
+                user.IsBaifenPromotion,
                 gradeName = userGrade != null ? userGrade.title : "",
                 gradeKey= userGrade != null ? userGrade.valueKey:"",
                 userCouponCount,
diff --git a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj
index 2b26af2..75255fc 100644
--- a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj
+++ b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj
@@ -110,6 +110,10 @@
     </None>
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="Controllers\baifenbingfa\" />
+  </ItemGroup>
+
   <ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
 
 
diff --git a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj.user b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj.user
index 1004c26..aac7bfb 100644
--- a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj.user
+++ b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.csproj.user
@@ -6,5 +6,7 @@
   <PropertyGroup>
     <ActiveDebugProfile>CoreCms.Net.Web.WebApi</ActiveDebugProfile>
     <NameOfLastUsedPublishProfile>FolderProfile</NameOfLastUsedPublishProfile>
+    <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
+    <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
   </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml
index 5181c00..df384ee 100644
--- a/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml
+++ b/CoreCms.Net.Web.WebApi/CoreCms.Net.Web.WebApi.xml
@@ -574,6 +574,81 @@
             <param name="entity"></param>
             <returns></returns>
         </member>
+        <member name="T:CoreCms.Net.Web.WebApi.Controllers.OfflineDistributorController">
+            <summary>
+            鐧惧垎鍏垫硶绾夸笂
+            </summary>
+        </member>
+        <member name="M:CoreCms.Net.Web.WebApi.Controllers.OfflineDistributorController.#ctor(Microsoft.AspNetCore.Hosting.IWebHostEnvironment,CoreCms.Net.IServices.IOfflineDistributorServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IRepository.UnitOfWork.IUnitOfWork)">
+             <summary>
+             鏋勯�犲嚱鏁�
+            </summary>
+        </member>
+        <member name="T:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn">
+            <summary>
+            閲囬泦杈撳叆
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.time">
+            <summary>
+            閲囬泦鏃堕棿
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.RegionCode">
+            <summary>
+            鍖哄煙
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.Adder">
+            <summary>
+            鍦板潃
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.School">
+            <summary>
+            瀛︽牎
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.Category">
+            <summary>
+            绫诲埆
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.DistributorName">
+            <summary>
+            缁忛攢鍟嗗悕绉�
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.ContactPerson">
+            <summary>
+            鑱旂郴浜�
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.PhoneNumber">
+            <summary>
+            鑱旂郴鐢佃瘽
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.StoreImage">
+            <summary>
+            搴楁嫑鍥剧墖
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.CooperationIntent">
+            <summary>
+            鍚堜綔鎰忓悜
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.NegotiationNotes">
+            <summary>
+            娲借皥璁板綍
+            </summary>
+        </member>
+        <member name="P:CoreCms.Net.Web.WebApi.Controllers.addOfflineDistributorIn.BusinessManager">
+            <summary>
+            涓氬姟缁忕悊
+            </summary>
+        </member>
         <member name="T:CoreCms.Net.Web.WebApi.Controllers.OrderController">
             <summary>
             璁㈠崟璋冪敤鎺ュ彛鏁版嵁

--
Gitblit v1.9.1