From c2b4e7c86e790d3880a8da9adeffafb3e6c12145 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期三, 15 五月 2024 09:46:24 +0800
Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/baifenbaishop
---
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/index.html | 558 +++++++++
CoreCms.Net.Web.Admin/wwwroot/views/financial/invoice/index.html | 6
CoreCms.Net.IServices/baifenbingfa/ICoreCmsProductsServices.cs | 127 ++
CoreCms.Net.Model/Entities/Good/CoreCmsProductsPartial.cs | 9
CoreCms.Net.Repository/baifenbingfa/CoreCmsProductsRepository.cs | 454 +++++++
CoreCms.Net.Web.WebApi/Controllers/UserController.cs | 23
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html | 43
CoreCms.Net.IRepository/baifenbinfa/ICoreCmsProductsRepository.cs | 125 ++
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/details.html | 57
CoreCms.Net.Services/baifenbingfa/CoreCmsProductsServices.cs | 197 +++
CoreCms.Net.Web.Admin/Controllers/baifenbingfa/CoreCmsProductsController.cs | 1226 +++++++++++++++++++++
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/create.html | 199 +++
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/edit.html | 193 +++
CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html | 35
CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/details.html | 207 +++
15 files changed, 3,397 insertions(+), 62 deletions(-)
diff --git a/CoreCms.Net.IRepository/baifenbinfa/ICoreCmsProductsRepository.cs b/CoreCms.Net.IRepository/baifenbinfa/ICoreCmsProductsRepository.cs
new file mode 100644
index 0000000..e3bc88e
--- /dev/null
+++ b/CoreCms.Net.IRepository/baifenbinfa/ICoreCmsProductsRepository.cs
@@ -0,0 +1,125 @@
+/***********************************************************************
+ * Project: baifenBinfa
+ * ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺
+ * Web: http://chuanyin.com
+ * Author:
+ * Email:
+ * CreateTime: 2024/5/7 16:00:53
+ * Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+
+namespace CoreCms.Net.IRepository
+{
+ /// <summary>
+ /// 璐у搧琛� 宸ュ巶鎺ュ彛
+ /// </summary>
+ public interface ICoreCmsbaifenProductsRepository : IBaseRepository<CoreCmsProducts>
+ {
+ #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+ /// <summary>
+ /// 閲嶅啓寮傛鎻掑叆鏂规硶
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ Task<AdminUiCallBack> InsertAsync(CoreCmsProducts entity);
+
+
+ /// <summary>
+ /// 閲嶅啓寮傛鏇存柊鏂规硶
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ Task<AdminUiCallBack> UpdateAsync(CoreCmsProducts entity);
+
+
+ /// <summary>
+ /// 閲嶅啓寮傛鏇存柊鏂规硶
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ Task<AdminUiCallBack> UpdateAsync(List<CoreCmsProducts> 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<CoreCmsProducts>> 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<CoreCmsProducts>> QueryPageAsync(
+ Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ int pageSize = 20, bool blUseNoLock = false);
+
+
+
+ /// <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<CoreCmsProducts>> QueryDetailPageAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ int pageSize = 20, bool blUseNoLock = false);
+
+ /// <summary>
+ /// 鑾峰彇鍏宠仈鍟嗗搧鐨勮揣鍝佸垪琛ㄦ暟鎹�
+ /// </summary>
+ /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+ /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+ /// <param name="orderByExpression"></param>
+ /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+ /// <returns></returns>
+ public Task<List<CoreCmsProducts>> QueryDetaiListAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, bool blUseNoLock = false);
+
+ }
+}
diff --git a/CoreCms.Net.IServices/baifenbingfa/ICoreCmsProductsServices.cs b/CoreCms.Net.IServices/baifenbingfa/ICoreCmsProductsServices.cs
new file mode 100644
index 0000000..2e27509
--- /dev/null
+++ b/CoreCms.Net.IServices/baifenbingfa/ICoreCmsProductsServices.cs
@@ -0,0 +1,127 @@
+/***********************************************************************
+ * Project: baifenBinfa
+ * ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺
+ * Web: http://chuanyin.com
+ * Author:
+ * Email:
+ * CreateTime: 2024/5/7 16:00:53
+ * Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+namespace CoreCms.Net.IServices
+{
+ /// <summary>
+ /// 璐у搧琛� 鏈嶅姟宸ュ巶鎺ュ彛
+ /// </summary>
+ public interface ICoreCmsbaifenProductsServices : IBaseServices<CoreCmsProducts>
+ {
+ #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+ /// <summary>
+ /// 閲嶅啓寮傛鎻掑叆鏂规硶
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ Task<AdminUiCallBack> InsertAsync(CoreCmsProducts entity);
+
+ /// <summary>
+ /// 閲嶅啓寮傛鏇存柊鏂规硶
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ Task<AdminUiCallBack> UpdateAsync(CoreCmsProducts entity);
+
+ /// <summary>
+ /// 閲嶅啓寮傛鏇存柊鏂规硶
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ Task<AdminUiCallBack> UpdateAsync(List<CoreCmsProducts> 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<CoreCmsProducts>> 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<CoreCmsProducts>> QueryPageAsync(
+ Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ int pageSize = 20, bool blUseNoLock = false);
+ #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<CoreCmsProducts>> QueryDetailPageAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ int pageSize = 20, bool blUseNoLock = false);
+
+
+ /// <summary>
+ /// 鑾峰彇鍏宠仈鍟嗗搧鐨勮揣鍝佸垪琛ㄦ暟鎹�
+ /// </summary>
+ /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+ /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+ /// <param name="orderByExpression"></param>
+ /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+ /// <returns></returns>
+ public Task<List<CoreCmsProducts>> QueryDetaiListAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, bool blUseNoLock = false);
+
+ /// <summary>
+ /// 鑾峰彇缂栬緫鐩稿叧瀛楁
+ /// </summary>
+ /// <returns></returns>
+ public Task<CoreCmsProducts> QueryEditByID(int id);
+
+ }
+}
diff --git a/CoreCms.Net.Model/Entities/Good/CoreCmsProductsPartial.cs b/CoreCms.Net.Model/Entities/Good/CoreCmsProductsPartial.cs
index ed45231..92c4a3a 100644
--- a/CoreCms.Net.Model/Entities/Good/CoreCmsProductsPartial.cs
+++ b/CoreCms.Net.Model/Entities/Good/CoreCmsProductsPartial.cs
@@ -21,6 +21,8 @@
/// </summary>
public partial class CoreCmsProducts
{
+
+
/// <summary>
/// 鍟嗗搧缂栫爜
/// </summary>
@@ -141,5 +143,12 @@
[Display(Name = "涓夌骇浣i噾")]
[SugarColumn(IsIgnore = true)]
public decimal levelThree { get; set; } = 0;
+
+ /// <summary>
+ /// 鍟嗗搧鍒嗙被
+ /// </summary>
+ [Display(Name = "鍟嗗搧鍒嗙被")]
+ [SugarColumn(IsIgnore = true)]
+ public string Category { get; set; }
}
}
\ No newline at end of file
diff --git a/CoreCms.Net.Repository/baifenbingfa/CoreCmsProductsRepository.cs b/CoreCms.Net.Repository/baifenbingfa/CoreCmsProductsRepository.cs
new file mode 100644
index 0000000..fcf8ddb
--- /dev/null
+++ b/CoreCms.Net.Repository/baifenbingfa/CoreCmsProductsRepository.cs
@@ -0,0 +1,454 @@
+/***********************************************************************
+ * Project: baifenBinfa
+ * ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺
+ * Web: http://chuanyin.com
+ * Author:
+ * Email:
+ * CreateTime: 2024/5/7 16:00:53
+ * 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 System.Linq;
+
+namespace CoreCms.Net.Repository
+{
+ /// <summary>
+ /// 璐у搧琛� 鎺ュ彛瀹炵幇
+ /// </summary>
+ public class CoreCmsbaifenProductsRepository : BaseRepository<CoreCmsProducts>, ICoreCmsbaifenProductsRepository
+ {
+ private readonly IUnitOfWork _unitOfWork;
+ public CoreCmsbaifenProductsRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
+ {
+ _unitOfWork = unitOfWork;
+ }
+
+ #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+ /// <summary>
+ /// 閲嶅啓寮傛鎻掑叆鏂规硶
+ /// </summary>
+ /// <param name="entity">瀹炰綋鏁版嵁</param>
+ /// <returns></returns>
+ public async Task<AdminUiCallBack> InsertAsync(CoreCmsProducts 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(CoreCmsProducts entity)
+ {
+ var jm = new AdminUiCallBack();
+
+
+ var oldModel = await DbClient.Queryable<CoreCmsProducts>().In(entity.id).SingleAsync();
+ if (oldModel == null)
+ {
+ jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+ return jm;
+ }
+ //浜嬬墿澶勭悊杩囩▼寮�濮�
+
+
+
+
+ oldModel.price = entity.price;
+ oldModel.costprice = entity.costprice;
+ oldModel.mktprice = entity.mktprice;
+ //oldModel.marketable = entity.marketable;
+ //oldModel.pointsDeduction = entity.pointsDeduction;
+ //oldModel.points = entity.points;
+ oldModel.weight = entity.weight;
+ //oldModel.stock = entity.stock;
+ //oldModel.freezeStock = entity.freezeStock;
+
+
+
+
+ oldModel.distributionPrice = entity.distributionPrice;
+ oldModel.cutMoney = entity.cutMoney;
+ oldModel.distributionCutMoney = entity.distributionCutMoney;
+
+ //浜嬬墿澶勭悊杩囩▼缁撴潫
+ 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<CoreCmsProducts> 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<CoreCmsProducts>(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<CoreCmsProducts>().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<CoreCmsProducts>> GetCaChe()
+ {
+ var list = await DbClient.Queryable<CoreCmsProducts>().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<CoreCmsProducts>> QueryPageAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ int pageSize = 20, bool blUseNoLock = false)
+ {
+ RefAsync<int> totalCount = 0;
+ List<CoreCmsProducts> page;
+ if (blUseNoLock)
+ {
+ page = await DbClient.Queryable<CoreCmsProducts>()
+ .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+ .WhereIF(predicate != null, predicate).Select(p => new CoreCmsProducts
+ {
+ id = p.id,
+ goodsId = p.goodsId,
+ barcode = p.barcode,
+ sn = p.sn,
+ price = p.price,
+ costprice = p.costprice,
+ mktprice = p.mktprice,
+ marketable = p.marketable,
+ pointsDeduction = p.pointsDeduction,
+ points = p.points,
+ weight = p.weight,
+ stock = p.stock,
+ freezeStock = p.freezeStock,
+ spesDesc = p.spesDesc,
+ isDefalut = p.isDefalut,
+ images = p.images,
+ isDel = p.isDel,
+ distributionPrice = p.distributionPrice,
+ cutMoney = p.cutMoney,
+ distributionCutMoney = p.distributionCutMoney,
+
+ }).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
+ }
+ else
+ {
+ page = await DbClient.Queryable<CoreCmsProducts>()
+ .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+ .WhereIF(predicate != null, predicate).Select(p => new CoreCmsProducts
+ {
+ id = p.id,
+ goodsId = p.goodsId,
+ barcode = p.barcode,
+ sn = p.sn,
+ price = p.price,
+ costprice = p.costprice,
+ mktprice = p.mktprice,
+ marketable = p.marketable,
+ pointsDeduction = p.pointsDeduction,
+ points = p.points,
+ weight = p.weight,
+ stock = p.stock,
+ freezeStock = p.freezeStock,
+ spesDesc = p.spesDesc,
+ isDefalut = p.isDefalut,
+ images = p.images,
+ isDel = p.isDel,
+ distributionPrice = p.distributionPrice,
+ cutMoney = p.cutMoney,
+ distributionCutMoney = p.distributionCutMoney,
+
+ }).ToPageListAsync(pageIndex, pageSize, totalCount);
+ }
+ var list = new PageList<CoreCmsProducts>(page, pageIndex, pageSize, totalCount);
+ 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<CoreCmsProducts>> QueryDetailPageAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ int pageSize = 20, bool blUseNoLock = false)
+ {
+ RefAsync<int> totalCount = 0;
+ List<CoreCmsProducts> page;
+ if (blUseNoLock)
+ {
+ page = await DbClient.Queryable<CoreCmsGoods, CoreCmsProducts, CoreCmsGoodsCategory>((good, product, Category) => new JoinQueryInfos(
+ JoinType.Inner, good.id == product.goodsId
+
+ , JoinType.Inner, good.goodsCategoryId == Category.id )
+ )
+ .Select((good, product, Category) => new CoreCmsProducts
+ {
+ id = product.id,
+ goodsId = product.goodsId,
+ barcode = product.barcode,
+ sn = product.sn,
+ price = product.price,
+ costprice = product.costprice,
+ mktprice = product.mktprice,
+ marketable = product.marketable,
+ weight = product.weight,
+ stock = product.stock,
+ freezeStock = product.freezeStock,
+ pointsDeduction = product.pointsDeduction,
+ points = product.points,
+ spesDesc = product.spesDesc,
+ isDefalut = product.isDefalut,
+ images = product.images,
+ isDel = good.isDel,
+ name = good.name,
+ bn = good.bn,
+ isMarketable = good.isMarketable,
+ unit = good.unit,
+ distributionPrice = product.distributionPrice,
+ cutMoney = product.cutMoney,
+ distributionCutMoney = product.distributionCutMoney,
+ Category = (SqlFunc.Subqueryable<CoreCmsGoodsCategory> ().Where(x=>x.id==Category.parentId).Select(x=>x.name)+"-"+ Category.name)?? Category.name,
+ }).With(SqlWith.NoLock)
+ .MergeTable()
+ .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+ .WhereIF(predicate != null, predicate)
+ .ToPageListAsync(pageIndex, pageSize, totalCount);
+ }
+ else
+ {
+ page = await DbClient.Queryable<CoreCmsGoods, CoreCmsProducts, CoreCmsGoodsCategory>((good, product, Category) => new JoinQueryInfos(
+ JoinType.Inner, good.id == product.goodsId
+
+ , JoinType.Inner, good.goodsCategoryId == Category.id
+ )
+ )
+ .Select((good, product, Category) => new CoreCmsProducts
+ {
+ id = product.id,
+ goodsId = product.goodsId,
+ barcode = product.barcode,
+ sn = product.sn,
+ price = product.price,
+ costprice = product.costprice,
+ mktprice = product.mktprice,
+ marketable = product.marketable,
+ weight = product.weight,
+ stock = product.stock,
+ freezeStock = product.freezeStock,
+ pointsDeduction = product.pointsDeduction,
+ points = product.points,
+ spesDesc = product.spesDesc,
+ isDefalut = product.isDefalut,
+ images = product.images,
+ isDel = good.isDel,
+ name = good.name,
+ bn = good.bn,
+ isMarketable = good.isMarketable,
+ unit = good.unit
+ ,
+ distributionPrice = product.distributionPrice,
+ cutMoney = product.cutMoney,
+ distributionCutMoney = product.distributionCutMoney,
+ Category = (SqlFunc.Subqueryable<CoreCmsGoodsCategory>().Where(x => x.id == Category.parentId).Select(x => x.name) + "-" + Category.name) ?? Category.name,
+ })
+ .MergeTable()
+ .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+ .WhereIF(predicate != null, predicate)
+ .ToPageListAsync(pageIndex, pageSize, totalCount);
+ }
+ var list = new PageList<CoreCmsProducts>(page, pageIndex, pageSize, totalCount);
+ return list;
+ }
+
+ #endregion
+ #region 鏌ヨ鎵�鏈夎揣鍝佸寘鎷晢鍝佷俊鎭垪琛�
+ /// <summary>
+ /// 鑾峰彇鍏宠仈鍟嗗搧鐨勮揣鍝佸垪琛ㄦ暟鎹�
+ /// </summary>
+ /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+ /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+ /// <param name="orderByExpression"></param>
+ /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+ /// <returns></returns>
+ public async Task<List<CoreCmsProducts>> QueryDetaiListAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, bool blUseNoLock = false)
+ {
+ RefAsync<int> totalCount = 0;
+ List<CoreCmsProducts> page;
+ if (blUseNoLock)
+ {
+ page = await DbClient.Queryable<CoreCmsGoods, CoreCmsProducts,CoreCmsGoodsCategory>((good, product, Category) => new JoinQueryInfos(
+ JoinType.Inner, good.id == product.goodsId
+
+ , JoinType.Inner, good.goodsCategoryId == Category.id
+ )
+ )
+ .Select((good, product, Category) => new CoreCmsProducts
+ {
+ id = product.id,
+ goodsId = product.goodsId,
+ barcode = product.barcode,
+ sn = product.sn,
+ price = product.price,
+ costprice = product.costprice,
+ mktprice = product.mktprice,
+ marketable = product.marketable,
+ weight = product.weight,
+ stock = product.stock,
+ freezeStock = product.freezeStock,
+ pointsDeduction = product.pointsDeduction,
+ points = product.points,
+ spesDesc = product.spesDesc,
+ isDefalut = product.isDefalut,
+ images = product.images,
+ isDel = good.isDel,
+ name = good.name,
+ bn = good.bn,
+ isMarketable = good.isMarketable,
+ unit = good.unit,
+ distributionPrice = product.distributionPrice,
+ cutMoney = product.cutMoney,
+ distributionCutMoney = product.distributionCutMoney,
+ Category = (SqlFunc.Subqueryable<CoreCmsGoodsCategory>().Where(x => x.id == Category.parentId).Select(x => x.name) + "-" + Category.name) ?? Category.name,
+ }).With(SqlWith.NoLock)
+ .MergeTable()
+ .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+ .WhereIF(predicate != null, predicate)
+ .ToListAsync();
+ }
+ else
+ {
+ page = await DbClient.Queryable<CoreCmsGoods, CoreCmsProducts, CoreCmsGoodsCategory>((good, product, Category) => new JoinQueryInfos(
+ JoinType.Inner, good.id == product.goodsId
+
+ , JoinType.Inner, good.goodsCategoryId == Category.id
+ )
+ )
+ .Select((good, product, Category) => new CoreCmsProducts
+ {
+ id = product.id,
+ goodsId = product.goodsId,
+ barcode = product.barcode,
+ sn = product.sn,
+ price = product.price,
+ costprice = product.costprice,
+ mktprice = product.mktprice,
+ marketable = product.marketable,
+ weight = product.weight,
+ stock = product.stock,
+ freezeStock = product.freezeStock,
+ pointsDeduction = product.pointsDeduction,
+ points = product.points,
+ spesDesc = product.spesDesc,
+ isDefalut = product.isDefalut,
+ images = product.images,
+ isDel = good.isDel,
+ name = good.name,
+ bn = good.bn,
+ isMarketable = good.isMarketable,
+ unit = good.unit
+ ,
+ distributionPrice = product.distributionPrice,
+ cutMoney = product.cutMoney,
+ distributionCutMoney = product.distributionCutMoney,
+ Category = (SqlFunc.Subqueryable<CoreCmsGoodsCategory>().Where(x => x.id == Category.parentId).Select(x => x.name) + "-" + Category.name) ?? Category.name,
+ })
+ .MergeTable()
+ .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+ .WhereIF(predicate != null, predicate)
+ .ToListAsync();
+ }
+
+ return page;
+ }
+ #endregion
+ }
+}
diff --git a/CoreCms.Net.Services/baifenbingfa/CoreCmsProductsServices.cs b/CoreCms.Net.Services/baifenbingfa/CoreCmsProductsServices.cs
new file mode 100644
index 0000000..5df0ea1
--- /dev/null
+++ b/CoreCms.Net.Services/baifenbingfa/CoreCmsProductsServices.cs
@@ -0,0 +1,197 @@
+/***********************************************************************
+ * Project: baifenBinfa
+ * ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺
+ * Web: http://chuanyin.com
+ * Author:
+ * Email:
+ * CreateTime: 2024/5/7 16:00:53
+ * Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+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.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+using static CoreCms.Net.Configuration.GlobalEnumVars;
+
+
+namespace CoreCms.Net.Services
+{
+ /// <summary>
+ /// 璐у搧琛� 鎺ュ彛瀹炵幇
+ /// </summary>
+ public class CoreCmsbaifenProductsServices : BaseServices<CoreCmsProducts>, ICoreCmsbaifenProductsServices
+ {
+ private readonly ICoreCmsbaifenProductsRepository _dal;
+ private readonly IUnitOfWork _unitOfWork;
+
+ public CoreCmsbaifenProductsServices(IUnitOfWork unitOfWork, ICoreCmsbaifenProductsRepository dal)
+ {
+ this._dal = dal;
+ base.BaseDal = dal;
+ _unitOfWork = unitOfWork;
+ }
+
+ #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+ /// <summary>
+ /// 閲嶅啓寮傛鎻掑叆鏂规硶
+ /// </summary>
+ /// <param name="entity">瀹炰綋鏁版嵁</param>
+ /// <returns></returns>
+ public async Task<AdminUiCallBack> InsertAsync(CoreCmsProducts entity)
+ {
+ return await _dal.InsertAsync(entity);
+ }
+
+ /// <summary>
+ /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ public async Task<AdminUiCallBack> UpdateAsync(CoreCmsProducts entity)
+ {
+ return await _dal.UpdateAsync(entity);
+ }
+
+ /// <summary>
+ /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ public async Task<AdminUiCallBack> UpdateAsync(List<CoreCmsProducts> 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<CoreCmsProducts>> 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<CoreCmsProducts>> QueryPageAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ int pageSize = 20, bool blUseNoLock = false)
+ {
+ return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
+ }
+ #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<CoreCmsProducts>> QueryDetailPageAsync(Expression<Func<CoreCmsProducts, bool>> predicate,
+ Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+ int pageSize = 20, bool blUseNoLock = false)
+ {
+ return await _dal.QueryDetailPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
+ }
+
+
+ #endregion
+
+ #region 鏌ヨ鎵�鏈夋弧瓒虫潯浠剁殑鍒楄〃
+ public async Task<List<CoreCmsProducts>> QueryDetaiListAsync(Expression<Func<CoreCmsProducts, bool>> predicate, Expression<Func<CoreCmsProducts, object>> orderByExpression, OrderByType orderByType, bool blUseNoLock = false)
+ {
+ return await _dal.QueryDetaiListAsync(predicate, orderByExpression, orderByType, blUseNoLock);
+ }
+
+ public async Task<CoreCmsProducts> QueryEditByID(int id)
+ {
+ return await _unitOfWork.GetDbClient().Queryable<CoreCmsGoods, CoreCmsProducts>((good, product) => new JoinQueryInfos(
+ JoinType.Inner, good.id == product.goodsId
+ )
+ ).Where((good, product) =>product.id==id)
+ .Select((good, product) => new CoreCmsProducts
+ {
+ id = product.id,
+ goodsId = product.goodsId,
+ barcode = product.barcode,
+ sn = product.sn,
+ price = product.price,
+ costprice = product.costprice,
+ mktprice = product.mktprice,
+ marketable = product.marketable,
+ weight = product.weight,
+ stock = product.stock,
+ freezeStock = product.freezeStock,
+ pointsDeduction = product.pointsDeduction,
+ points = product.points,
+ spesDesc = product.spesDesc,
+ isDefalut = product.isDefalut,
+ images = product.images,
+ isDel = good.isDel,
+ name = good.name,
+ bn = good.bn,
+ isMarketable = good.isMarketable,
+ unit = good.unit,
+ distributionPrice = product.distributionPrice,
+ cutMoney = product.cutMoney,
+ distributionCutMoney = product.distributionCutMoney,
+ }).With(SqlWith.NoLock)
+ .FirstAsync();
+
+ }
+ #endregion
+
+
+
+ }
+}
diff --git a/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/CoreCmsProductsController.cs b/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/CoreCmsProductsController.cs
new file mode 100644
index 0000000..f4fe309
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/CoreCmsProductsController.cs
@@ -0,0 +1,1226 @@
+/***********************************************************************
+ * Project: baifenBinfa
+ * ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺
+ * Web: http://chuanyin.com
+ * Author:
+ * Email:
+ * CreateTime: 2024/5/7 16:00:53
+ * 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 Microsoft.IdentityModel.Tokens;
+
+namespace CoreCms.Net.Web.Admin.Controllers
+{
+ /// <summary>
+ /// 璐у搧琛�
+ ///</summary>
+ [Description("璐у搧琛�")]
+ [Route("api/[controller]/[action]")]
+ [ApiController]
+ [RequiredErrorForAdmin]
+ [Authorize(Permissions.Name)]
+ public class CoreCmsbaifenProductsController : ControllerBase
+ {
+ private readonly IWebHostEnvironment _webHostEnvironment;
+ private readonly ICoreCmsbaifenProductsServices _CoreCmsProductsServices;
+
+ /// <summary>
+ /// 鏋勯�犲嚱鏁�
+ ///</summary>
+ public CoreCmsbaifenProductsController(IWebHostEnvironment webHostEnvironment
+ ,ICoreCmsbaifenProductsServices CoreCmsProductsServices
+ )
+ {
+ _webHostEnvironment = webHostEnvironment;
+ _CoreCmsProductsServices = CoreCmsProductsServices;
+ }
+
+ #region 鑾峰彇鍒楄〃============================================================
+ // POST: Api/CoreCmsProducts/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<CoreCmsProducts>();
+ //鑾峰彇鎺掑簭瀛楁
+ var orderField = Request.Form["orderField"].FirstOrDefault();
+
+ Expression<Func<CoreCmsProducts, object>> orderEx = orderField switch
+ {
+ "id" => p => p.id,"goodsId" => p => p.goodsId,"barcode" => p => p.barcode,"sn" => p => p.sn,"price" => p => p.price,"costprice" => p => p.costprice,"mktprice" => p => p.mktprice,"marketable" => p => p.marketable,"pointsDeduction" => p => p.pointsDeduction,"points" => p => p.points,"weight" => p => p.weight,"stock" => p => p.stock,"freezeStock" => p => p.freezeStock,"spesDesc" => p => p.spesDesc,"isDefalut" => p => p.isDefalut,"images" => p => p.images,"isDel" => p => p.isDel,"distributionPrice" => p => p.distributionPrice,"cutMoney" => p => p.cutMoney,"distributionCutMoney" => p => p.distributionCutMoney,
+ _ => p => p.id
+ };
+
+ //璁剧疆鎺掑簭鏂瑰紡
+ var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
+ var orderBy = orderDirection switch
+ {
+ "asc" => OrderByType.Asc,
+ "desc" => OrderByType.Desc,
+ _ => OrderByType.Desc
+ };
+ //鏌ヨ绛涢��
+ //璐у搧搴忓垪 int
+ var name = Request.Form["name"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(name))
+ {
+ where = where.And(p => p.name.Contains(name));
+ }
+ //璐у搧搴忓垪 int
+ var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
+ if (id > 0)
+ {
+ where = where.And(p => p.id == id);
+ }
+ //鍟嗗搧搴忓垪 int
+ var goodsId = Request.Form["goodsId"].FirstOrDefault().ObjectToInt(0);
+ if (goodsId > 0)
+ {
+ where = where.And(p => p.goodsId == goodsId);
+ }
+ //鍟嗗搧鏉$爜 nvarchar
+ var barcode = Request.Form["barcode"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(barcode))
+ {
+ where = where.And(p => p.barcode.Contains(barcode));
+ }
+ //璐у搧缂栫爜 nvarchar
+ var sn = Request.Form["sn"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(sn))
+ {
+ where = where.And(p => p.sn.Contains(sn));
+ }
+ //璐у搧浠锋牸 decimal
+ var price = Request.Form["price"].FirstOrDefault().ObjectToDecimal(0);
+ if (price > 0)
+ {
+ where = where.And(p => p.price == price);
+ }
+ //鍟嗗搧鍒嗙被 decimal
+ var Category = Request.Form["category"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(Category))
+ {
+ where = where.And(p => p.Category.Contains(Category));
+ }
+ //璐у搧鎴愭湰浠� decimal
+ var costprice = Request.Form["costprice"].FirstOrDefault().ObjectToDecimal(0);
+ if (costprice > 0)
+ {
+ where = where.And(p => p.costprice == costprice);
+ }
+ //璐у搧甯傚満浠� decimal
+ var mktprice = Request.Form["mktprice"].FirstOrDefault().ObjectToDecimal(0);
+ if (mktprice > 0)
+ {
+ where = where.And(p => p.mktprice == mktprice);
+ }
+ //鏄惁涓婃灦 bit
+ var marketable = Request.Form["marketable"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(marketable) && marketable.ToLowerInvariant() == "true")
+ {
+ where = where.And(p => p.marketable == true);
+ }
+ else if (!string.IsNullOrEmpty(marketable) && marketable.ToLowerInvariant() == "false")
+ {
+ where = where.And(p => p.marketable == false);
+ }
+ //绉垎鍙姷鎵i噾棰� decimal
+ var pointsDeduction = Request.Form["pointsDeduction"].FirstOrDefault().ObjectToDecimal(0);
+ if (pointsDeduction > 0)
+ {
+ where = where.And(p => p.pointsDeduction == pointsDeduction);
+ }
+ //璧犻�佺Н鍒� int
+ var points = Request.Form["points"].FirstOrDefault().ObjectToInt(0);
+ if (points > 0)
+ {
+ where = where.And(p => p.points == points);
+ }
+ //閲嶉噺(鍏�) decimal
+ var weight = Request.Form["weight"].FirstOrDefault().ObjectToDecimal(0);
+ if (weight > 0)
+ {
+ where = where.And(p => p.weight == weight);
+ }
+ //搴撳瓨 int
+ var stock = Request.Form["stock"].FirstOrDefault().ObjectToInt(0);
+ if (stock > 0)
+ {
+ where = where.And(p => p.stock == stock);
+ }
+ //鍐荤粨搴撳瓨 int
+ var freezeStock = Request.Form["freezeStock"].FirstOrDefault().ObjectToInt(0);
+ if (freezeStock > 0)
+ {
+ where = where.And(p => p.freezeStock == freezeStock);
+ }
+ //瑙勬牸鍊� nvarchar
+ var spesDesc = Request.Form["spesDesc"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(spesDesc))
+ {
+ where = where.And(p => p.spesDesc.Contains(spesDesc));
+ }
+ //鏄惁榛樿璐у搧 bit
+ var isDefalut = Request.Form["isDefalut"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(isDefalut) && isDefalut.ToLowerInvariant() == "true")
+ {
+ where = where.And(p => p.isDefalut == true);
+ }
+ else if (!string.IsNullOrEmpty(isDefalut) && isDefalut.ToLowerInvariant() == "false")
+ {
+ where = where.And(p => p.isDefalut == false);
+ }
+ //瑙勬牸鍥剧墖 nvarchar
+ var images = Request.Form["images"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(images))
+ {
+ where = where.And(p => p.images.Contains(images));
+ }
+ //鏄惁鍒犻櫎 bit
+ var isDel = Request.Form["isDel"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
+ {
+ where = where.And(p => p.isDel == true);
+ }
+ else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
+ {
+ where = where.And(p => p.isDel == false);
+ }
+ // decimal
+ var distributionPrice = Request.Form["distributionPrice"].FirstOrDefault().ObjectToDecimal(0);
+ if (distributionPrice > 0)
+ {
+ where = where.And(p => p.distributionPrice == distributionPrice);
+ }
+ // decimal
+ var cutMoney = Request.Form["cutMoney"].FirstOrDefault().ObjectToDecimal(0);
+ if (cutMoney > 0)
+ {
+ where = where.And(p => p.cutMoney == cutMoney);
+ }
+ // decimal
+ var distributionCutMoney = Request.Form["distributionCutMoney"].FirstOrDefault().ObjectToDecimal(0);
+ if (distributionCutMoney > 0)
+ {
+ where = where.And(p => p.distributionCutMoney == distributionCutMoney);
+ }
+ //鑾峰彇鏁版嵁
+ var list = await _CoreCmsProductsServices.QueryDetailPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
+ //杩斿洖鏁版嵁
+ jm.data = list;
+ jm.code = 0;
+ jm.count = list.TotalCount;
+ jm.msg = "鏁版嵁璋冪敤鎴愬姛!";
+ return jm;
+ }
+ #endregion
+
+ #region 棣栭〉鏁版嵁============================================================
+ // POST: Api/CoreCmsProducts/GetIndex
+ /// <summary>
+ /// 棣栭〉鏁版嵁
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("棣栭〉鏁版嵁")]
+ public AdminUiCallBack GetIndex()
+ {
+ //杩斿洖鏁版嵁
+ var jm = new AdminUiCallBack { code = 0 };
+ return jm;
+ }
+ #endregion
+
+ #region 鍒涘缓鏁版嵁============================================================
+ // POST: Api/CoreCmsProducts/GetCreate
+ /// <summary>
+ /// 鍒涘缓鏁版嵁
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("鍒涘缓鏁版嵁")]
+ public AdminUiCallBack GetCreate()
+ {
+ //杩斿洖鏁版嵁
+ var jm = new AdminUiCallBack { code = 0 };
+ return jm;
+ }
+ #endregion
+
+ #region 鍒涘缓鎻愪氦============================================================
+ // POST: Api/CoreCmsProducts/DoCreate
+ /// <summary>
+ /// 鍒涘缓鎻愪氦
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("鍒涘缓鎻愪氦")]
+ public async Task<AdminUiCallBack> DoCreate([FromBody]CoreCmsProducts entity)
+ {
+ var jm = await _CoreCmsProductsServices.InsertAsync(entity);
+ return jm;
+ }
+ #endregion
+
+ #region 缂栬緫鏁版嵁============================================================
+ // POST: Api/CoreCmsProducts/GetEdit
+ /// <summary>
+ /// 缂栬緫鏁版嵁
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("缂栬緫鏁版嵁")]
+ public async Task<AdminUiCallBack> GetEdit([FromBody]FMIntId entity)
+ {
+ var jm = new AdminUiCallBack();
+
+ var model = await _CoreCmsProductsServices.QueryEditByID(entity.id);
+ if (model == null)
+ {
+ jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+ return jm;
+ }
+ jm.code = 0;
+ jm.data = model;
+
+ return jm;
+ }
+ #endregion
+
+ #region 缂栬緫鎻愪氦============================================================
+ // POST: Api/CoreCmsProducts/Edit
+ /// <summary>
+ /// 缂栬緫鎻愪氦
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("缂栬緫鎻愪氦")]
+ public async Task<AdminUiCallBack> DoEdit([FromBody]CoreCmsProducts entity)
+ {
+ var jm = await _CoreCmsProductsServices.UpdateAsync(entity);
+ return jm;
+ }
+ #endregion
+
+ #region 鍒犻櫎鏁版嵁============================================================
+ // POST: Api/CoreCmsProducts/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 _CoreCmsProductsServices.ExistsAsync(p => p.id == entity.id, true);
+ if (!model)
+ {
+ jm.msg = GlobalConstVars.DataisNo;
+ return jm;
+ }
+ jm = await _CoreCmsProductsServices.DeleteByIdAsync(entity.id);
+
+ return jm;
+ }
+ #endregion
+
+ #region 鎵归噺鍒犻櫎============================================================
+ // POST: Api/CoreCmsProducts/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 _CoreCmsProductsServices.DeleteByIdsAsync(entity.id);
+ return jm;
+ }
+
+ #endregion
+
+ #region 棰勮鏁版嵁============================================================
+ // POST: Api/CoreCmsProducts/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 _CoreCmsProductsServices.QueryByIdAsync(entity.id, false);
+ if (model == null)
+ {
+ jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+ return jm;
+ }
+ jm.code = 0;
+ jm.data = model;
+
+ return jm;
+ }
+ #endregion
+
+ #region 閫夋嫨瀵煎嚭============================================================
+ // POST: Api/CoreCmsProducts/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鏁版嵁 p.name!=null 淇濊瘉鍟嗗搧瀛樺湪锛屽惁鍒欎笉鏌ヨ
+ var listModel = await _CoreCmsProductsServices.QueryDetaiListAsync(p => entity.id.Contains(p.id), p => p.goodsId, OrderByType.Asc, true);
+ //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+ var headerRow = mySheet.CreateRow(0);
+ var headerStyle = ExcelHelper.GetHeaderStyle(book);
+ var cellNum = 0;
+
+ var cell0 = headerRow.CreateCell(cellNum);
+ cell0.SetCellValue("璐у搧搴忓垪");
+ 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 cell2 = headerRow.CreateCell(cellNum);
+ cell2.SetCellValue("鎵�灞炲晢鍝佸悕绉�");
+ cell2.CellStyle = headerStyle;
+ mySheet.SetColumnWidth(cellNum, 10 * 256);
+ cellNum++;
+ var cell13 = headerRow.CreateCell(cellNum);
+ cell13.SetCellValue("瑙勬牸鍊�");
+ cell13.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("绉垎鍙姷鎵i噾棰�");
+ //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 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 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++;
+ var cell10 = headerRow.CreateCell(cellNum);
+ cell10.SetCellValue("閲嶉噺(鍏�)");
+ cell10.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].goodsId.ToString());
+ // rowTemp1.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp2.SetCellValue(listModel[i].Category?.ToString());
+ rowTemp2.CellStyle = commonCellStyle;
+ cellNumTemp++;
+ var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp1.SetCellValue(listModel[i].name?.ToString());
+ rowTemp1.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+
+
+ var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp13.SetCellValue(listModel[i].spesDesc.ToString());
+ rowTemp13.CellStyle = commonCellStyle;
+ cellNumTemp++;
+ var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp3.SetCellValue(listModel[i].sn.ToString());
+ rowTemp3.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp4.SetCellValue(listModel[i].price.ToString());
+ rowTemp4.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp5.SetCellValue(listModel[i].costprice.ToString());
+ rowTemp5.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp6.SetCellValue(listModel[i].mktprice.ToString());
+ rowTemp6.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ //var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp7.SetCellValue(listModel[i].marketable.ToString());
+ // rowTemp7.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp8.SetCellValue(listModel[i].pointsDeduction.ToString());
+ // rowTemp8.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp9.SetCellValue(listModel[i].points.ToString());
+ // rowTemp9.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+
+
+ //var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp11.SetCellValue(listModel[i].stock.ToString());
+ // rowTemp11.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp12.SetCellValue(listModel[i].freezeStock.ToString());
+ // rowTemp12.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+
+
+ //var rowTemp14 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp14.SetCellValue(listModel[i].isDefalut.ToString());
+ // rowTemp14.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp15 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp15.SetCellValue(listModel[i].images.ToString());
+ // rowTemp15.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp16 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp16.SetCellValue(listModel[i].isDel.ToString());
+ // rowTemp16.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ var rowTemp17 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp17.SetCellValue(listModel[i].distributionPrice.ToString());
+ rowTemp17.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp18 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp18.SetCellValue(listModel[i].cutMoney.ToString());
+ rowTemp18.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp19 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp19.SetCellValue(listModel[i].distributionCutMoney.ToString());
+ rowTemp19.CellStyle = commonCellStyle;
+ cellNumTemp++;
+ var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp10.SetCellValue(listModel[i].weight.ToString());
+ rowTemp10.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ }
+ // 瀵煎嚭excel
+ string webRootPath = _webHostEnvironment.WebRootPath;
+ string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+ string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-璐у搧鍒楄〃瀵煎嚭(閫夋嫨缁撴灉).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/CoreCmsProducts/QueryExportExcel/10
+ /// <summary>
+ /// 鏌ヨ瀵煎嚭
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("鏌ヨ瀵煎嚭")]
+ public async Task<AdminUiCallBack> QueryExportExcel()
+ {
+ var jm = new AdminUiCallBack();
+
+ var where = PredicateBuilder.True<CoreCmsProducts>();
+ //鏌ヨ绛涢��
+ var name = Request.Form["name"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(name))
+ {
+ where = where.And(p => p.name.Contains(name));
+ }
+ else
+ { where = where.And(p => (p.name != null || p.name != ""));
+ }
+ //璐у搧搴忓垪 int
+ var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
+ if (id > 0)
+ {
+ where = where.And(p => p.id == id);
+ }
+ //鍟嗗搧搴忓垪 int
+ var goodsId = Request.Form["goodsId"].FirstOrDefault().ObjectToInt(0);
+ if (goodsId > 0)
+ {
+ where = where.And(p => p.goodsId == goodsId);
+ }
+ var Category = Request.Form["category"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(Category))
+ {
+ where = where.And(p => p.Category.Contains(Category));
+ }
+ //鍟嗗搧鏉$爜 nvarchar
+ var barcode = Request.Form["barcode"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(barcode))
+ {
+ where = where.And(p => p.barcode.Contains(barcode));
+ }
+ //璐у搧缂栫爜 nvarchar
+ var sn = Request.Form["sn"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(sn))
+ {
+ where = where.And(p => p.sn.Contains(sn));
+ }
+ //璐у搧浠锋牸 decimal
+ var price = Request.Form["price"].FirstOrDefault().ObjectToDecimal(0);
+ if (price > 0)
+ {
+ where = where.And(p => p.price == price);
+ }
+ //璐у搧鎴愭湰浠� decimal
+ var costprice = Request.Form["costprice"].FirstOrDefault().ObjectToDecimal(0);
+ if (costprice > 0)
+ {
+ where = where.And(p => p.costprice == costprice);
+ }
+ //璐у搧甯傚満浠� decimal
+ var mktprice = Request.Form["mktprice"].FirstOrDefault().ObjectToDecimal(0);
+ if (mktprice > 0)
+ {
+ where = where.And(p => p.mktprice == mktprice);
+ }
+ //鏄惁涓婃灦 bit
+ var marketable = Request.Form["marketable"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(marketable) && marketable.ToLowerInvariant() == "true")
+ {
+ where = where.And(p => p.marketable == true);
+ }
+ else if (!string.IsNullOrEmpty(marketable) && marketable.ToLowerInvariant() == "false")
+ {
+ where = where.And(p => p.marketable == false);
+ }
+ //绉垎鍙姷鎵i噾棰� decimal
+ var pointsDeduction = Request.Form["pointsDeduction"].FirstOrDefault().ObjectToDecimal(0);
+ if (pointsDeduction > 0)
+ {
+ where = where.And(p => p.pointsDeduction == pointsDeduction);
+ }
+ //璧犻�佺Н鍒� int
+ var points = Request.Form["points"].FirstOrDefault().ObjectToInt(0);
+ if (points > 0)
+ {
+ where = where.And(p => p.points == points);
+ }
+ //閲嶉噺(鍏�) decimal
+ var weight = Request.Form["weight"].FirstOrDefault().ObjectToDecimal(0);
+ if (weight > 0)
+ {
+ where = where.And(p => p.weight == weight);
+ }
+ //搴撳瓨 int
+ var stock = Request.Form["stock"].FirstOrDefault().ObjectToInt(0);
+ if (stock > 0)
+ {
+ where = where.And(p => p.stock == stock);
+ }
+ //鍐荤粨搴撳瓨 int
+ var freezeStock = Request.Form["freezeStock"].FirstOrDefault().ObjectToInt(0);
+ if (freezeStock > 0)
+ {
+ where = where.And(p => p.freezeStock == freezeStock);
+ }
+ //瑙勬牸鍊� nvarchar
+ var spesDesc = Request.Form["spesDesc"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(spesDesc))
+ {
+ where = where.And(p => p.spesDesc.Contains(spesDesc));
+ }
+ //鏄惁榛樿璐у搧 bit
+ var isDefalut = Request.Form["isDefalut"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(isDefalut) && isDefalut.ToLowerInvariant() == "true")
+ {
+ where = where.And(p => p.isDefalut == true);
+ }
+ else if (!string.IsNullOrEmpty(isDefalut) && isDefalut.ToLowerInvariant() == "false")
+ {
+ where = where.And(p => p.isDefalut == false);
+ }
+ //瑙勬牸鍥剧墖 nvarchar
+ var images = Request.Form["images"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(images))
+ {
+ where = where.And(p => p.images.Contains(images));
+ }
+ //鏄惁鍒犻櫎 bit
+ var isDel = Request.Form["isDel"].FirstOrDefault();
+ if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
+ {
+ where = where.And(p => p.isDel == true);
+ }
+ else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
+ {
+ where = where.And(p => p.isDel == false);
+ }
+ // decimal
+ var distributionPrice = Request.Form["distributionPrice"].FirstOrDefault().ObjectToDecimal(0);
+ if (distributionPrice > 0)
+ {
+ where = where.And(p => p.distributionPrice == distributionPrice);
+ }
+ // decimal
+ var cutMoney = Request.Form["cutMoney"].FirstOrDefault().ObjectToDecimal(0);
+ if (cutMoney > 0)
+ {
+ where = where.And(p => p.cutMoney == cutMoney);
+ }
+ // decimal
+ var distributionCutMoney = Request.Form["distributionCutMoney"].FirstOrDefault().ObjectToDecimal(0);
+ if (distributionCutMoney > 0)
+ {
+ where = where.And(p => p.distributionCutMoney == distributionCutMoney);
+ }
+
+ where = where.And(p => p.isDel==false);
+ //鑾峰彇鏁版嵁
+ //鍒涘缓Excel鏂囦欢鐨勫璞�
+ var book = new HSSFWorkbook();
+ //娣诲姞涓�涓猻heet
+ var mySheet = book.CreateSheet("Sheet1");
+ //鑾峰彇list鏁版嵁
+ var listModel = await _CoreCmsProductsServices.QueryDetaiListAsync(where, p => p.goodsId, OrderByType.Asc, true);
+ //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+ var headerRow = mySheet.CreateRow(0);
+ var headerStyle = ExcelHelper.GetHeaderStyle(book);
+ var cellNum = 0;
+
+
+
+ var cell0 = headerRow.CreateCell(cellNum);
+ cell0.SetCellValue("璐у搧搴忓垪");
+ cell0.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 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 cell13 = headerRow.CreateCell(cellNum);
+ cell13.SetCellValue("瑙勬牸鍊�");
+ cell13.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("绉垎鍙姷鎵i噾棰�");
+ //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 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 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++;
+ var cell10 = headerRow.CreateCell(cellNum);
+ cell10.SetCellValue("閲嶉噺(鍏�)");
+ cell10.CellStyle = headerStyle;
+ mySheet.SetColumnWidth(cellNum, 10 * 256);
+ cellNum++;
+ headerRow.Height = 30 * 20;
+
+
+ headerRow.Height = 30 * 20;
+ var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+ 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 rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp2.SetCellValue(listModel[i].Category?.ToString());
+ rowTemp2.CellStyle = commonCellStyle;
+ cellNumTemp++;
+ var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp1.SetCellValue(listModel[i].name?.ToString());
+ rowTemp1.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ //var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp2.SetCellValue(listModel[i].barcode.ToString());
+ // rowTemp2.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+ var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp13.SetCellValue(listModel[i].spesDesc.ToString());
+ rowTemp13.CellStyle = commonCellStyle;
+ cellNumTemp++;
+ var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp3.SetCellValue(listModel[i].sn.ToString());
+ rowTemp3.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp4.SetCellValue(listModel[i].price.ToString());
+ rowTemp4.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp5.SetCellValue(listModel[i].costprice.ToString());
+ rowTemp5.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp6.SetCellValue(listModel[i].mktprice.ToString());
+ rowTemp6.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ //var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp7.SetCellValue(listModel[i].marketable.ToString());
+ // rowTemp7.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp8.SetCellValue(listModel[i].pointsDeduction.ToString());
+ // rowTemp8.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp9.SetCellValue(listModel[i].points.ToString());
+ // rowTemp9.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+
+
+ //var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp11.SetCellValue(listModel[i].stock.ToString());
+ // rowTemp11.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp12.SetCellValue(listModel[i].freezeStock.ToString());
+ // rowTemp12.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+
+
+ //var rowTemp14 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp14.SetCellValue(listModel[i].isDefalut.ToString());
+ // rowTemp14.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp15 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp15.SetCellValue(listModel[i].images.ToString());
+ // rowTemp15.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ //var rowTemp16 = rowTemp.CreateCell(cellNumTemp);
+ // rowTemp16.SetCellValue(listModel[i].isDel.ToString());
+ // rowTemp16.CellStyle = commonCellStyle;
+ // cellNumTemp++;
+
+ var rowTemp17 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp17.SetCellValue(listModel[i].distributionPrice.ToString());
+ rowTemp17.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp18 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp18.SetCellValue(listModel[i].cutMoney.ToString());
+ rowTemp18.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ var rowTemp19 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp19.SetCellValue(listModel[i].distributionCutMoney.ToString());
+ rowTemp19.CellStyle = commonCellStyle;
+ cellNumTemp++;
+ var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
+ rowTemp10.SetCellValue(listModel[i].weight.ToString());
+ rowTemp10.CellStyle = commonCellStyle;
+ cellNumTemp++;
+
+ }
+ // 鍐欏叆鍒癳xcel
+ string webRootPath = _webHostEnvironment.WebRootPath;
+ string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+ string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsProducts瀵煎嚭(鏌ヨ缁撴灉).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/CoreCmsProducts/DoSetmarketable/10
+ /// <summary>
+ /// 璁剧疆鏄惁涓婃灦
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("璁剧疆鏄惁涓婃灦")]
+ public async Task<AdminUiCallBack> DoSetmarketable([FromBody]FMUpdateBoolDataByIntId entity)
+ {
+ var jm = new AdminUiCallBack();
+
+ var oldModel = await _CoreCmsProductsServices.QueryByIdAsync(entity.id, false);
+ if (oldModel == null)
+ {
+ jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+ return jm;
+ }
+ oldModel.marketable = (bool)entity.data;
+
+ var bl = await _CoreCmsProductsServices.UpdateAsync(p => new CoreCmsProducts() { marketable = oldModel.marketable }, p => p.id == oldModel.id);
+ jm.code = bl ? 0 : 1;
+ jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+ return jm;
+ }
+ #endregion
+
+ #region 璁剧疆鏄惁榛樿璐у搧============================================================
+ // POST: Api/CoreCmsProducts/DoSetisDefalut/10
+ /// <summary>
+ /// 璁剧疆鏄惁榛樿璐у搧
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("璁剧疆鏄惁榛樿璐у搧")]
+ public async Task<AdminUiCallBack> DoSetisDefalut([FromBody]FMUpdateBoolDataByIntId entity)
+ {
+ var jm = new AdminUiCallBack();
+
+ var oldModel = await _CoreCmsProductsServices.QueryByIdAsync(entity.id, false);
+ if (oldModel == null)
+ {
+ jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+ return jm;
+ }
+ oldModel.isDefalut = (bool)entity.data;
+
+ var bl = await _CoreCmsProductsServices.UpdateAsync(p => new CoreCmsProducts() { isDefalut = oldModel.isDefalut }, p => p.id == oldModel.id);
+ jm.code = bl ? 0 : 1;
+ jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+ return jm;
+ }
+ #endregion
+
+ #region 璁剧疆鏄惁鍒犻櫎============================================================
+ // POST: Api/CoreCmsProducts/DoSetisDel/10
+ /// <summary>
+ /// 璁剧疆鏄惁鍒犻櫎
+ /// </summary>
+ /// <param name="entity"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [Description("璁剧疆鏄惁鍒犻櫎")]
+ public async Task<AdminUiCallBack> DoSetisDel([FromBody]FMUpdateBoolDataByIntId entity)
+ {
+ var jm = new AdminUiCallBack();
+
+ var oldModel = await _CoreCmsProductsServices.QueryByIdAsync(entity.id, false);
+ if (oldModel == null)
+ {
+ jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+ return jm;
+ }
+ oldModel.isDel = (bool)entity.data;
+
+ var bl = await _CoreCmsProductsServices.UpdateAsync(p => new CoreCmsProducts() { isDel = oldModel.isDel }, 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/wwwroot/views/baifenbingfa/corecmsproducts/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/create.html
new file mode 100644
index 0000000..ccc1833
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/create.html
@@ -0,0 +1,199 @@
+<script type="text/html" template lay-done="layui.data.done(d);">
+<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsbaifenProducts-createForm" id="LAY-app-CoreCmsbaifenProducts-createForm">
+
+ <div class="layui-form-item">
+ <label for="id" class="layui-form-label layui-form-required">璐у搧搴忓垪</label>
+ <div class="layui-input-block">
+ <input type="number" min="0" max="999999" name="id" lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ヨ揣鍝佸簭鍒�" lay-reqText="璇疯緭鍏ヨ揣鍝佸簭鍒楀苟涓烘暟瀛�" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="goodsId" class="layui-form-label layui-form-required">鍟嗗搧搴忓垪</label>
+ <div class="layui-input-block">
+ <input type="number" min="0" max="999999" name="goodsId" lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ュ晢鍝佸簭鍒�" lay-reqText="璇疯緭鍏ュ晢鍝佸簭鍒楀苟涓烘暟瀛�" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="barcode" class="layui-form-label layui-form-required">鍟嗗搧鏉$爜</label>
+ <div class="layui-input-block">
+ <input name="barcode" lay-verType="tips" lay-verify="required|verifybarcode" class="layui-input" lay-reqText="璇疯緭鍏ュ晢鍝佹潯鐮�" placeholder="璇疯緭鍏ュ晢鍝佹潯鐮�"/>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="sn" class="layui-form-label layui-form-required">璐у搧缂栫爜</label>
+ <div class="layui-input-block">
+ <input name="sn" lay-verType="tips" lay-verify="required|verifysn" class="layui-input" lay-reqText="璇疯緭鍏ヨ揣鍝佺紪鐮�" placeholder="璇疯緭鍏ヨ揣鍝佺紪鐮�"/>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="price" class="layui-form-label layui-form-required">璐у搧浠锋牸</label>
+ <div class="layui-input-block">
+ <input name="price" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佷环鏍�" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="costprice" class="layui-form-label layui-form-required">璐у搧鎴愭湰浠�</label>
+ <div class="layui-input-block">
+ <input name="costprice" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佹垚鏈环" lay-reqText="璇疯緭鍏ヨ揣鍝佹垚鏈环" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="mktprice" class="layui-form-label layui-form-required">璐у搧甯傚満浠�</label>
+ <div class="layui-input-block">
+ <input name="mktprice" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佸競鍦轰环" lay-reqText="璇疯緭鍏ヨ揣鍝佸競鍦轰环" />
+ </div>
+ </div>
+
+ <div class="layui-form-item" pane>
+ <label for="marketable" class="layui-form-label layui-form-required">鏄惁涓婃灦</label>
+ <div class="layui-input-block">
+ <input type="checkbox" lay-filter="switch" name="marketable" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="pointsDeduction" class="layui-form-label layui-form-required">绉垎鍙姷鎵i噾棰�</label>
+ <div class="layui-input-block">
+ <input name="pointsDeduction" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ョН鍒嗗彲鎶垫墸閲戦" lay-reqText="璇疯緭鍏ョН鍒嗗彲鎶垫墸閲戦" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="points" class="layui-form-label layui-form-required">璧犻�佺Н鍒�</label>
+ <div class="layui-input-block">
+ <input type="number" min="0" max="999999" name="points" lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ヨ禒閫佺Н鍒�" lay-reqText="璇疯緭鍏ヨ禒閫佺Н鍒嗗苟涓烘暟瀛�" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="weight" class="layui-form-label layui-form-required">閲嶉噺(鍏�)</label>
+ <div class="layui-input-block">
+ <input name="weight" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ラ噸閲�(鍏�)" lay-reqText="璇疯緭鍏ラ噸閲�(鍏�)" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="stock" class="layui-form-label layui-form-required">搴撳瓨</label>
+ <div class="layui-input-block">
+ <input type="number" min="0" max="999999" name="stock" lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ュ簱瀛�" lay-reqText="璇疯緭鍏ュ簱瀛樺苟涓烘暟瀛�" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="freezeStock" class="layui-form-label layui-form-required">鍐荤粨搴撳瓨</label>
+ <div class="layui-input-block">
+ <input type="number" min="0" max="999999" name="freezeStock" lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ュ喕缁撳簱瀛�" lay-reqText="璇疯緭鍏ュ喕缁撳簱瀛樺苟涓烘暟瀛�" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="spesDesc" class="layui-form-label layui-form-required">瑙勬牸鍊�</label>
+ <div class="layui-input-block">
+ <input name="spesDesc" lay-verType="tips" lay-verify="required" class="layui-input" lay-reqText="璇疯緭鍏ヨ鏍煎��" placeholder="璇疯緭鍏ヨ鏍煎��" />
+ </div>
+ </div>
+
+ <div class="layui-form-item" pane>
+ <label for="isDefalut" class="layui-form-label layui-form-required">鏄惁榛樿璐у搧</label>
+ <div class="layui-input-block">
+ <input type="checkbox" lay-filter="switch" name="isDefalut" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="images" class="layui-form-label layui-form-required">瑙勬牸鍥剧墖</label>
+ <div class="layui-input-inline">
+ <input name="images" id="imagesInput" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇蜂笂浼犺鏍煎浘鐗�" lay-reqText="璇蜂笂浼犺鏍煎浘鐗�" />
+ </div>
+ <div class="layui-input-inline">
+ <img class="coreshop-upload-img" id="viewImgBoximages" src="{{ layui.setter.noImagePicUrl }}">
+ <button type="button" class="layui-btn" id="upBtnimages" lay-active="doCropperImg">涓婁紶鍥剧墖</button>
+ </div>
+ </div>
+
+ <div class="layui-form-item" pane>
+ <label for="isDel" class="layui-form-label layui-form-required">鏄惁鍒犻櫎</label>
+ <div class="layui-input-block">
+ <input type="checkbox" lay-filter="switch" name="isDel" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="distributionPrice" class="layui-form-label layui-form-required"></label>
+ <div class="layui-input-block">
+ <input name="distributionPrice" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏�" lay-reqText="璇疯緭鍏�" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="cutMoney" class="layui-form-label layui-form-required"></label>
+ <div class="layui-input-block">
+ <input name="cutMoney" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏�" lay-reqText="璇疯緭鍏�" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="distributionCutMoney" class="layui-form-label layui-form-required"></label>
+ <div class="layui-input-block">
+ <input name="distributionCutMoney" lay-verType="tips" lay-verify="required" 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-CoreCmsbaifenProducts-createForm-submit" id="LAY-app-CoreCmsbaifenProducts-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'],
+ function () {
+ var $ = layui.$
+ , form = layui.form
+ , admin = layui.admin
+ , laydate = layui.laydate
+ , upload = layui.upload
+ , cropperImg = layui.cropperImg
+ , coreHelper = layui.coreHelper;
+
+ //瑙勬牸鍥剧墖鍥剧墖瑁佸壀涓婁紶
+ $('#upBtnimages').click(function () {
+ cropperImg.cropImg({
+ aspectRatio: 1 / 1,
+ imgSrc: $('#viewImgBoximages').attr('src'),
+ onCrop: function (data) {
+ var loadIndex = layer.load(2);
+ coreHelper.Post("api/Tools/UploadFilesFByBase64", { base64: data }, function (res) {
+ if (0 === res.code) {
+ $('#viewImgBoximages').attr('src', res.data.fileUrl);
+ $("#imagesInput").val(res.data.fileUrl);
+ layer.msg(res.msg);
+ layer.close(loadIndex);
+ } else {
+ layer.close(loadIndex);
+ layer.msg(res.msg, { icon: 2, anim: 6 });
+ }
+ });
+ }
+ });
+ });
+
+ form.verify({
+
+ verifybarcode: [/^.{0,128}$/,'鍟嗗搧鏉$爜鏈�澶у彧鍏佽杈撳叆128浣嶅瓧绗�'],
+ verifysn: [/^.{0,30}$/,'璐у搧缂栫爜鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗�'],
+ });
+ //閲嶈浇form
+ form.render(null, 'LAY-app-CoreCmsbaifenProducts-createForm');
+ })
+ };
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/details.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/details.html
new file mode 100644
index 0000000..4aae366
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/details.html
@@ -0,0 +1,207 @@
+<script type="text/html" template lay-done="layui.data.done(d);">
+ <table class="layui-table layui-form" lay-filter="LAY-app-CoreCmsbaifenProducts-detailsForm" id="LAY-app-CoreCmsbaifenProducts-detailsForm">
+ <colgroup>
+ <col width="100">
+ <col>
+ </colgroup>
+ <tbody>
+
+ <tr>
+ <td>
+ <label for="id">璐у搧搴忓垪</label>
+ </td>
+ <td>
+ {{ d.params.data.id || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="goodsId">鍟嗗搧搴忓垪</label>
+ </td>
+ <td>
+ {{ d.params.data.goodsId || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="barcode">鍟嗗搧鏉$爜</label>
+ </td>
+ <td>
+ {{ d.params.data.barcode || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="sn">璐у搧缂栫爜</label>
+ </td>
+ <td>
+ {{ d.params.data.sn || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="price">璐у搧浠锋牸</label>
+ </td>
+ <td>
+ {{ d.params.data.price || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="costprice">璐у搧鎴愭湰浠�</label>
+ </td>
+ <td>
+ {{ d.params.data.costprice || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="mktprice">璐у搧甯傚満浠�</label>
+ </td>
+ <td>
+ {{ d.params.data.mktprice || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="marketable">鏄惁涓婃灦</label>
+ </td>
+ <td>
+ <input type="checkbox" disabled name="marketable" value="{{d.params.data.marketable}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="marketable" {{ d.params.data.marketable ? 'checked' : '' }}>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="pointsDeduction">绉垎鍙姷鎵i噾棰�</label>
+ </td>
+ <td>
+ {{ d.params.data.pointsDeduction || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="points">璧犻�佺Н鍒�</label>
+ </td>
+ <td>
+ {{ d.params.data.points || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="weight">閲嶉噺(鍏�)</label>
+ </td>
+ <td>
+ {{ d.params.data.weight || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="stock">搴撳瓨</label>
+ </td>
+ <td>
+ {{ d.params.data.stock || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="freezeStock">鍐荤粨搴撳瓨</label>
+ </td>
+ <td>
+ {{ d.params.data.freezeStock || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="spesDesc">瑙勬牸鍊�</label>
+ </td>
+ <td>
+ {{ d.params.data.spesDesc || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="isDefalut">鏄惁榛樿璐у搧</label>
+ </td>
+ <td>
+ <input type="checkbox" disabled name="isDefalut" value="{{d.params.data.isDefalut}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="isDefalut" {{ d.params.data.isDefalut ? 'checked' : '' }}>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="images">瑙勬牸鍥剧墖</label>
+ </td>
+ <td>
+ {{ d.params.data.images || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="isDel">鏄惁鍒犻櫎</label>
+ </td>
+ <td>
+ <input type="checkbox" disabled name="isDel" value="{{d.params.data.isDel}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="isDel" {{ d.params.data.isDel ? 'checked' : '' }}>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="distributionPrice"></label>
+ </td>
+ <td>
+ {{ d.params.data.distributionPrice || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="cutMoney"></label>
+ </td>
+ <td>
+ {{ d.params.data.cutMoney || '' }}
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <label for="distributionCutMoney"></label>
+ </td>
+ <td>
+ {{ d.params.data.distributionCutMoney || '' }}
+ </td>
+ </tr>
+
+ </tbody>
+ </table>
+</script>
+<script>
+ var debug= layui.setter.debug;
+ layui.data.done = function (d) {
+ //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+ if (debug) { console.log(d.params.data); }
+
+ layui.use(['admin', 'form', 'coreHelper'], function () {
+ var $ = layui.$
+ , setter = layui.setter
+ , admin = layui.admin
+ , coreHelper = layui.coreHelper
+ , form = layui.form;
+ form.render(null, 'LAY-app-CoreCmsbaifenProducts-detailsForm');
+ });
+ };
+</script>
\ No newline at end of file
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/edit.html
new file mode 100644
index 0000000..df722be
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/edit.html
@@ -0,0 +1,193 @@
+<script type="text/html" template lay-done="layui.data.sendParams(d);">
+ <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsbaifenProducts-editForm" id="LAY-app-CoreCmsbaifenProducts-editForm">
+ <input type="hidden" name="id" value="{{d.params.data.id || '' }}" />
+ <div class="layui-form-item ">
+
+
+ <div class="layui-input-inline " style="width: 350px;">
+ <label for="name" class="layui-form-label ">鎵�灞炲晢鍝�</label>
+ <div class="layui-input-block">
+ <input name="name" disabled style="width: 200px;" lay-verType="tips" class="layui-input" l value="{{d.params.data.name || '' }}" />
+ </div>
+ </div>
+ <div class="layui-input-inline">
+ <label for="id" class="layui-form-label ">璐у搧搴忓垪</label>
+ <div class="layui-input-block">
+ <input disabled type="number" min="0" max="999999" name="id" lay-verType="tips" class="layui-input" value="{{d.params.data.id || '' }}" />
+ </div>
+ </div>
+ <div class="layui-input-inline">
+ <label for="sn" class="layui-form-label ">璐у搧缂栫爜</label>
+ <div class="layui-input-block">
+ <input name="sn" disabled lay-verType="tips" style="width: 200px;" class="layui-input" value="{{d.params.data.sn || '' }}" />
+ </div>
+ </div>
+
+ </div>
+
+
+ <div class="layui-form-item">
+ <label for="spesDesc" class="layui-form-label layui-form-required">瑙勬牸鍊�</label>
+ <div class="layui-input-block">
+ <input name="spesDesc" disabled lay-verType="tips" lay-verify="required" class="layui-input" value="{{d.params.data.spesDesc || '娌℃湁璐у搧瑙勬牸(灞炰簬鍗曡鏍煎晢鍝�)' }}" />
+
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label for="weight" class="layui-form-label layui-form-required" >閲嶉噺(鍏�)</label>
+ <div class="layui-input-inline">
+ <input name="weight" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ラ噸閲�(鍏�)" lay-reqText="璇疯緭鍏ラ噸閲�(鍏�)" value="{{d.params.data.weight || '0' }}" />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label for="mktprice" class="layui-form-label layui-form-required">鎸囧闆跺敭浠�(鍏�)</label>
+ <div class="layui-input-inline">
+ <input name="mktprice" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ユ寚瀵奸浂鍞环" lay-reqText="璇疯緭鍏ユ寚瀵奸浂鍞环" value="{{d.params.data.mktprice || '0' }}" />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label for="price" class="layui-form-label layui-form-required">閿�鍞环鏍�(鍏�)</label>
+ <div class="layui-input-inline">
+ <input name="price" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佷环鏍�" value="{{d.params.data.price || '0' }}" />
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label for="distributionPrice" class="layui-form-label layui-form-required " > 缁忛攢鍟嗕环鏍�(鍏�)</label>
+ <div class="layui-input-inline">
+ <input name="distributionPrice" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ョ粡閿�鍟嗕环鏍�" lay-reqText="璇疯緭鍏ョ粡閿�鍟嗕环鏍�" value="{{d.params.data.distributionPrice || '0' }}" />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label for="costprice" class="layui-form-label layui-form-required">鎴愭湰浠�(鍏�)</label>
+ <div class="layui-input-inline">
+ <input name="costprice" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佹垚鏈环" lay-reqText="璇疯緭鍏ヨ揣鍝佹垚鏈环" value="{{d.params.data.costprice || '0' }}" />
+ </div>
+ </div>
+
+
+
+
+ <!-- <div class="layui-form-item">
+ <label for="pointsDeduction" class="layui-form-label layui-form-required">绉垎鍙姷鎵i噾棰�</label>
+ <div class="layui-input-block">
+ <input name="pointsDeduction" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ョН鍒嗗彲鎶垫墸閲戦" lay-reqText="璇疯緭鍏ョН鍒嗗彲鎶垫墸閲戦" value="{{d.params.data.pointsDeduction || '' }}" />
+ </div>
+ </div> -->
+
+ <!-- <div class="layui-form-item">
+ <label for="points" class="layui-form-label layui-form-required">璧犻�佺Н鍒�</label>
+ <div class="layui-input-block">
+ <input type="number" min="0" max="999999" name="points" lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.points || '' }}" placeholder="璇疯緭鍏ヨ禒閫佺Н鍒�" lay-reqText="璇疯緭鍏ヨ禒閫佺Н鍒嗗苟涓烘暟瀛�" />
+ </div>
+ </div> -->
+
+
+ <!-- <div class="layui-form-item">
+ <label for="stock" class="layui-form-label layui-form-required">搴撳瓨</label>
+ <div class="layui-input-block">
+ <input type="number" min="0" max="999999" name="stock" lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.stock || '' }}" placeholder="璇疯緭鍏ュ簱瀛�" lay-reqText="璇疯緭鍏ュ簱瀛樺苟涓烘暟瀛�" />
+ </div>
+ </div> -->
+
+ <!-- <div class="layui-form-item">
+ <label for="freezeStock" class="layui-form-label layui-form-required">鍐荤粨搴撳瓨</label>
+ <div class="layui-input-block">
+ <input type="number" min="0" max="999999" name="freezeStock" lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.freezeStock || '' }}" placeholder="璇疯緭鍏ュ喕缁撳簱瀛�" lay-reqText="璇疯緭鍏ュ喕缁撳簱瀛樺苟涓烘暟瀛�" />
+ </div>
+ </div> -->
+
+
+
+ <!-- <div class="layui-form-item" pane>
+ <label for="isDefalut" class="layui-form-label layui-form-required">鏄惁榛樿璐у搧</label>
+ <div class="layui-input-block">
+ <input type="checkbox" lay-filter="switch" name="isDefalut" {{ d.params.data.isDefalut ? 'checked' : '' }} lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ </div>
+ -->
+ <!-- <div class="layui-form-item">
+ <label for="images" class="layui-form-label layui-form-required">瑙勬牸鍥剧墖</label>
+ <div class="layui-input-inline">
+ <input name="images" id="imagesInput" lay-verType="tips" lay-verify="required" class="layui-input" value="{{d.params.data.images || '' }}" placeholder="璇蜂笂浼犺鏍煎浘鐗�" lay-reqText="璇蜂笂浼犺鏍煎浘鐗�" />
+ </div>
+ <div class="layui-input-inline">
+ <button type="button" class="layui-btn" id="upBtnimages" lay-active="doCropperImg">涓婁紶鍥剧墖</button>
+ <img class="coreshop-upload-img" id="viewImgBoximages" src="{{d.params.data.images || layui.setter.noImagePicUrl }}">
+ </div>
+ </div> -->
+<!--
+ <div class="layui-form-item" pane>
+ <label for="isDel" class="layui-form-label layui-form-required">鏄惁鍒犻櫎</label>
+ <div class="layui-input-block">
+ <input type="checkbox" lay-filter="switch" name="isDel" {{ d.params.data.isDel ? 'checked' : '' }} lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ </div> -->
+
+ <div class="layui-form-item">
+ <label for="distributionCutMoney" class="layui-form-label layui-form-required" style="width: 180px;">鎺ㄥ箍缁忛攢鍟嗛噰璐繑鐜�(鍏�)</label>
+ <div class="layui-input-inline">
+ <input name="distributionCutMoney" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ョ粡閿�鍟嗙敤鎴疯喘涔拌繑浣i噾" lay-reqText="璇疯緭鍏ョ粡閿�鍟嗙敤鎴疯喘涔拌繑浣i噾" value="{{d.params.data.distributionCutMoney || '0' }}" />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label for="cutMoney" class="layui-form-label layui-form-required" style="width: 180px;">鎺ㄥ箍鐢ㄦ埛璐拱杩旂幇(鍏�)</label>
+ <div class="layui-input-inline">
+ <input name="cutMoney" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ユ櫘閫氱敤鎴疯喘涔拌繑浣i噾" lay-reqText="璇疯緭鍏ユ櫘閫氱敤鎴疯喘涔拌繑浣i噾" value="{{d.params.data.cutMoney || '0' }}" />
+ </div>
+ </div>
+
+
+
+ <div class="layui-form-item text-right core-hidden">
+ <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-CoreCmsbaifenProducts-editForm-submit" id="LAY-app-CoreCmsbaifenProducts-editForm-submit" value="纭缂栬緫">
+ </div>
+ </div>
+</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'],
+ function () {
+ var $ = layui.$
+ , form = layui.form
+ , admin = layui.admin
+ , laydate = layui.laydate
+ , upload = layui.upload
+ , cropperImg = layui.cropperImg
+ , coreHelper = layui.coreHelper;
+
+ //瑙勬牸鍥剧墖鍥剧墖瑁佸壀涓婁紶
+ $('#upBtnimages').click(function () {
+ cropperImg.cropImg({
+ aspectRatio: 1 / 1,
+ imgSrc: $('#viewImgBoximages').attr('src'),
+ onCrop: function (data) {
+ var loadIndex = layer.load(2);
+ coreHelper.Post("api/Tools/UploadFilesFByBase64", { base64: data }, function (res) {
+ if (0 === res.code) {
+ $('#viewImgBoximages').attr('src', res.data.fileUrl);
+ $("#imagesInput").val(res.data.fileUrl);
+ layer.msg(res.msg);
+ layer.close(loadIndex);
+ } else {
+ layer.close(loadIndex);
+ layer.msg(res.msg, { icon: 2, anim: 6 });
+ }
+ });
+ }
+ });
+ });
+
+ form.verify({
+
+ verifybarcode: [/^.{0,128}$/,'鍟嗗搧鏉$爜鏈�澶у彧鍏佽杈撳叆128浣嶅瓧绗�'],
+ verifysn: [/^.{0,30}$/,'璐у搧缂栫爜鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗�'],
+ });
+ //閲嶈浇form
+ form.render(null, 'LAY-app-CoreCmsbaifenProducts-editForm');
+ })
+ };
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/index.html
new file mode 100644
index 0000000..aab9cc2
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/index.html
@@ -0,0 +1,558 @@
+<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/CoreCmsbaifenProducts/GetIndex" lay-done="layui.data.done(d);">
+
+</script>
+<div class="table-body">
+ <table id="LAY-app-CoreCmsbaifenProducts-tableBox" lay-filter="LAY-app-CoreCmsbaifenProducts-tableBox"></table>
+</div>
+
+<script type="text/html" id="LAY-app-CoreCmsbaifenProducts-toolbar">
+ <div class="layui-form coreshop-toolbar-search-form">
+ <div class="layui-form-item">
+
+ <div class="layui-inline">
+ <label class="layui-form-label" for="id">璐у搧搴忓垪</label>
+ <div class="layui-input-inline">
+ <input type="text" name="id" placeholder="璇疯緭鍏ヨ揣鍝佸簭鍒�" class="layui-input">
+ </div>
+ </div>
+ <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">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="name">鍟嗗搧鍚嶇О</label>
+ <div class="layui-input-inline">
+ <input type="text" name="name" placeholder="璇疯緭鍏ュ晢鍝佸悕绉板叧閿瓧" class="layui-input">
+ </div>
+ </div>
+ <!-- <div class="layui-inline">
+ <label class="layui-form-label" for="barcode">鍟嗗搧鏉$爜</label>
+ <div class="layui-input-inline">
+ <input type="text" name="barcode" placeholder="璇疯緭鍏ュ晢鍝佹潯鐮�" class="layui-input">
+ </div>
+ </div> -->
+ <div class="layui-inline">
+ <label class="layui-form-label" for="sn">璐у搧缂栫爜</label>
+ <div class="layui-input-inline">
+ <input type="text" name="sn" placeholder="璇疯緭鍏ヨ揣鍝佺紪鐮�" class="layui-input">
+ </div>
+ </div>
+ <!-- <div class="layui-inline">
+ <label class="layui-form-label" for="price">璐у搧浠锋牸</label>
+ <div class="layui-input-inline">
+ <input type="text" name="price" placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="costprice">璐у搧鎴愭湰浠�</label>
+ <div class="layui-input-inline">
+ <input type="text" name="costprice" placeholder="璇疯緭鍏ヨ揣鍝佹垚鏈环" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="mktprice">璐у搧甯傚満浠�</label>
+ <div class="layui-input-inline">
+ <input type="text" name="mktprice" placeholder="璇疯緭鍏ヨ揣鍝佸競鍦轰环" class="layui-input">
+ </div>
+ </div> -->
+ <div class="layui-inline">
+ <label class="layui-form-label" for="marketable">鏄惁涓婃灦</label>
+ <div class="layui-input-inline">
+ <select name="marketable">
+ <option value="">璇烽�夋嫨</option>
+ <option value="True">鏄�</option>
+ <option value="False">鍚�</option>
+ </select>
+ </div>
+ </div>
+ <!-- <div class="layui-inline">
+ <label class="layui-form-label" for="pointsDeduction">绉垎鍙姷鎵i噾棰�</label>
+ <div class="layui-input-inline">
+ <input type="text" name="pointsDeduction" placeholder="璇疯緭鍏ョН鍒嗗彲鎶垫墸閲戦" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="points">璧犻�佺Н鍒�</label>
+ <div class="layui-input-inline">
+ <input type="text" name="points" placeholder="璇疯緭鍏ヨ禒閫佺Н鍒�" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="weight">閲嶉噺(鍏�)</label>
+ <div class="layui-input-inline">
+ <input type="text" name="weight" placeholder="璇疯緭鍏ラ噸閲�(鍏�)" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="stock">搴撳瓨</label>
+ <div class="layui-input-inline">
+ <input type="text" name="stock" placeholder="璇疯緭鍏ュ簱瀛�" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="freezeStock">鍐荤粨搴撳瓨</label>
+ <div class="layui-input-inline">
+ <input type="text" name="freezeStock" placeholder="璇疯緭鍏ュ喕缁撳簱瀛�" class="layui-input">
+ </div>
+ </div> -->
+ <div class="layui-inline">
+ <label class="layui-form-label" for="spesDesc">瑙勬牸鍊�</label>
+ <div class="layui-input-inline">
+ <input type="text" name="spesDesc" placeholder="璇疯緭鍏ヨ鏍煎��" class="layui-input">
+ </div>
+ </div>
+ <!-- <div class="layui-inline">
+ <label class="layui-form-label" for="isDefalut">鏄惁榛樿璐у搧</label>
+ <div class="layui-input-inline">
+ <select name="isDefalut">
+ <option value="">璇烽�夋嫨</option>
+ <option value="True">鏄�</option>
+ <option value="False">鍚�</option>
+ </select>
+ </div>
+ </div> -->
+ <!-- <div class="layui-inline">
+ <label class="layui-form-label" for="images">瑙勬牸鍥剧墖</label>
+ <div class="layui-input-inline">
+ <input type="text" name="images" placeholder="璇疯緭鍏ヨ鏍煎浘鐗�" class="layui-input">
+ </div>
+ </div> -->
+ <!-- <div class="layui-inline">
+ <label class="layui-form-label" for="isDel">鏄惁鍒犻櫎</label>
+ <div class="layui-input-inline">
+ <select name="isDel">
+ <option value="">璇烽�夋嫨</option>
+ <option value="True">鏄�</option>
+ <option value="False">鍚�</option>
+ </select>
+ </div>
+ </div> -->
+ <!-- <div class="layui-inline">
+ <label class="layui-form-label" for="distributionPrice"></label>
+ <div class="layui-input-inline">
+ <input type="text" name="distributionPrice" placeholder="璇疯緭鍏�" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="cutMoney"></label>
+ <div class="layui-input-inline">
+ <input type="text" name="cutMoney" placeholder="璇疯緭鍏�" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" for="distributionCutMoney"></label>
+ <div class="layui-input-inline">
+ <input type="text" name="distributionCutMoney" placeholder="璇疯緭鍏�" class="layui-input">
+ </div>
+ </div> -->
+ <div class="layui-inline">
+ <button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-CoreCmsbaifenProducts-search"><i class="layui-icon layui-icon-search"></i>绛涢��</button>
+ </div>
+ </div>
+ </div>
+</script>
+
+<script type="text/html" id="LAY-app-CoreCmsbaifenProducts-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-CoreCmsbaifenProducts-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="#CoreCmsbaifenProductsTbDelDrop{{d.LAY_INDEX}}" no-shade="true">鍒犻櫎</a> -->
+ <div class="dropdown-menu-nav dropdown-popconfirm dropdown-top-right layui-hide" id="CoreCmsbaifenProductsTbDelDrop{{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'],
+ function () {
+ var $ = layui.$
+ , admin = layui.admin
+ , table = layui.table
+ , form = layui.form
+ , laydate = layui.laydate
+ , setter = layui.setter
+ , coreHelper = layui.coreHelper
+ , util = layui.util
+ , view = layui.view;
+
+ var searchwhere;
+ //鐩戝惉鎼滅储
+ form.on('submit(LAY-app-CoreCmsbaifenProducts-search)',
+ function(data) {
+ var field = data.field;
+ searchwhere = field;
+ debugger
+ //鎵ц閲嶈浇
+ table.reloadData('LAY-app-CoreCmsbaifenProducts-tableBox',{ where: field });
+ });
+ //鏁版嵁缁戝畾
+ table.render({
+ elem: '#LAY-app-CoreCmsbaifenProducts-tableBox',
+ url: layui.setter.apiUrl + 'Api/CoreCmsbaifenProducts/GetPageList',
+ method: 'POST',
+ toolbar: '#LAY-app-CoreCmsbaifenProducts-toolbar',
+ pagebar: '#LAY-app-CoreCmsbaifenProducts-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" },
+ { field: 'category', title: '鍟嗗搧鍒嗙被', sort: false,width: 240 },
+ { field: 'name', title: '鍟嗗搧鍚嶇О', sort: false,width: 240 },
+ { field: 'barcode', title: '鍟嗗搧鏉$爜', sort: false,width: 132 },
+ { field: 'spesDesc', title: '瑙勬牸鍊�', sort: false,width: 240 },
+ { field: 'sn', title: '璐у搧缂栫爜', sort: false,width: 132 },
+ { field: 'images', title: '璐у搧鍥剧墖', width: 100, sort: false,
+ templet: function (d) {
+ if (d.images) {
+ return '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + d.images + '")><image style="max-width:28px;max-height:28px;" src="' + d.images + '"/></a>';
+ } else {
+ return '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + setter.noImagePicUrl + '")><image style="max-width:30px;max-height:30px;" src="' + setter.noImagePicUrl + '"/></a>';
+ }
+ }
+ },
+ { field: 'mktprice', title: '寤鸿闆跺敭浠�', sort: false,width: 105 },
+ { field: 'price', title: '浠锋牸', sort: false,width: 105 },
+
+ { field: 'costprice', title: '鎴愭湰浠�', sort: false,width: 105 },
+
+ // { field: 'pointsDeduction', title: '绉垎鍙姷鎵i噾棰�', sort: false,width: 105 },
+ { field: 'distributionPrice', title: '缁忛攢鍟嗕环鏍�', sort: false,width: 105 },
+ { field: 'distributionCutMoney', title: '鎺ㄥ箍缁忛攢鍟嗛噰璐繑鐜�', sort: false,width: 140 },
+ { field: 'cutMoney', title: '鎺ㄥ箍鐢ㄦ埛璐拱杩旂幇', sort: false,width: 135 },
+
+ // { field: 'marketable', title: '鏄惁涓婃灦', width: 95, templet: '#switch_marketable', sort: false , unresize: true},
+ // { field: 'points', title: '璧犻�佺Н鍒�', sort: false,width: 105 },
+ { field: 'weight', title: '閲嶉噺(鍏�)', sort: false,width: 105 },
+ // { field: 'stock', title: '搴撳瓨', sort: false,width: 105 },
+ // { field: 'freezeStock', title: '鍐荤粨搴撳瓨', sort: false,width: 105 },
+
+ // { field: 'isDefalut', title: '鏄惁榛樿璐у搧', width: 95, templet: '#switch_isDefalut', sort: false , unresize: true},
+
+ // { field: 'isDel', title: '鏄惁鍒犻櫎', width: 95, templet: '#switch_isDel', sort: false , unresize: true},
+
+ { width: 162, align: 'center', title:'鎿嶄綔', fixed: 'right', toolbar: '#LAY-app-CoreCmsbaifenProducts-tableBox-bar' }
+ ]
+ ]
+ });
+ //鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(LAY-app-CoreCmsbaifenProducts-tableBox)', function(obj){
+ table.reloadData('LAY-app-CoreCmsbaifenProducts-tableBox', {
+ initSort: obj, //璁板綍鍒濆鎺掑簭锛屽鏋滀笉璁剧殑璇濓紝灏嗘棤娉曟爣璁拌〃澶寸殑鎺掑簭鐘舵�併��
+ where: { //璇锋眰鍙傛暟锛堟敞鎰忥細杩欓噷闈㈢殑鍙傛暟鍙换鎰忓畾涔夛紝骞堕潪涓嬮潰鍥哄畾鐨勬牸寮忥級
+ orderField: obj.field, //鎺掑簭瀛楁
+ orderDirection: obj.type //鎺掑簭鏂瑰紡
+ }
+ });
+ });
+ //鐩戝惉琛屽弻鍑讳簨浠�
+ // table.on('rowDouble(LAY-app-CoreCmsbaifenProducts-tableBox)', function (obj) {
+ // //鏌ョ湅璇︽儏
+ // doDetails(obj);
+ // });
+ //澶村伐鍏锋爮浜嬩欢
+ table.on('pagebar(LAY-app-CoreCmsbaifenProducts-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;
+ };
+ });
+ //鐩戝惉宸ュ叿鏉�
+ table.on('tool(LAY-app-CoreCmsbaifenProducts-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/CoreCmsbaifenProducts/GetCreate", null, function (e) {
+ if (e.code === 0) {
+ admin.popup({
+ shadeClose: false,
+ title: '鍒涘缓鏁版嵁',
+ area: ['1200px', '90%'],
+ id: 'LAY-popup-CoreCmsbaifenProducts-create',
+ success: function (layero, index) {
+ view(this.id).render('baifenbingfa/corecmsproducts/create', { data: e.data }).done(function () {
+ //鐩戝惉鎻愪氦
+ form.on('submit(LAY-app-CoreCmsbaifenProducts-createForm-submit)',
+ function(data) {
+ var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+
+ field.marketable = field.marketable == 'on';
+ field.isDefalut = field.isDefalut == 'on';
+ field.isDel = field.isDel == 'on';
+
+ if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+ //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+ coreHelper.Post("Api/CoreCmsbaifenProducts/DoCreate", field, function (e) {
+ console.log(e)
+ if (e.code === 0) {
+ layui.table.reloadData('LAY-app-CoreCmsbaifenProducts-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-CoreCmsbaifenProducts-createForm-submit").click();
+ }
+ });
+ } else {
+ layer.msg(e.msg);
+ }
+ });
+ }
+ //鎵ц缂栬緫鎿嶄綔
+ function doEdit(obj){
+ coreHelper.Post("Api/CoreCmsbaifenProducts/GetEdit", {id:obj.data.id}, function (e) {
+ if (e.code === 0) {
+ admin.popup({
+ shadeClose: false,
+ title: '缂栬緫鏁版嵁',
+ area: ['1200px', '90%'],
+ id: 'LAY-popup-CoreCmsbaifenProducts-edit',
+ success: function (layero, index) {
+ view(this.id).render('baifenbingfa/corecmsproducts/edit', { data: e.data }).done(function () {
+ //鐩戝惉鎻愪氦
+ form.on('submit(LAY-app-CoreCmsbaifenProducts-editForm-submit)',
+ function(data) {
+ var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+
+ field.marketable = field.marketable == 'on';
+ field.isDefalut = field.isDefalut == 'on';
+ field.isDel = field.isDel == 'on';
+
+ if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+ //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+ coreHelper.Post("Api/CoreCmsbaifenProducts/DoEdit", field, function (e) {
+ console.log(e)
+ if (e.code === 0) {
+ layui.table.reloadData('LAY-app-CoreCmsbaifenProducts-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-CoreCmsbaifenProducts-editForm-submit").click();
+ }
+ });
+ } else {
+ layer.msg(e.msg);
+ }
+ });
+ }
+ //鎵ц棰勮鎿嶄綔
+ function doDetails(obj) {
+ coreHelper.Post("Api/CoreCmsbaifenProducts/GetDetails", { id: obj.data.id }, function (e) {
+ if (e.code === 0) {
+ admin.popup({
+ shadeClose: false,
+ title: '鏌ョ湅璇︽儏',
+ area: ['1200px', '90%'],
+ id: 'LAY-popup-CoreCmsbaifenProducts-details',
+ success: function (layero, index) {
+ view(this.id).render('baifenbingfa/corecmsproducts/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/CoreCmsbaifenProducts/DoDelete", { id: obj.data.id }, function (e) {
+ if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+ table.reloadData('LAY-app-CoreCmsbaifenProducts-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/CoreCmsbaifenProducts/DoBatchDelete", { id: delidsStr }, function (e) {
+ if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+ table.reloadData('LAY-app-CoreCmsbaifenProducts-tableBox');
+ layer.msg(e.msg);
+ });
+ });
+ }
+ //鎵ц鏌ヨ鏉′欢瀵煎嚭excel
+ function doQueryExportexcel(){
+ layer.confirm('纭畾鏍规嵁褰撳墠鐨勬煡璇㈡潯浠跺鍑烘暟鎹悧锛�',
+ function(index) {
+ var field = searchwhere;
+ coreHelper.PostForm("Api/CoreCmsbaifenProducts/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/CoreCmsbaifenProducts/SelectExportExcel", { id: delidsStr }, function (e) {
+ if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+ if (e.code === 0) {
+ window.open(e.data);
+ } else {
+ layer.msg(e.msg);
+ }
+ });
+ });
+ }
+
+
+
+ //鐩戝惉 琛ㄦ牸澶嶉�夋鎿嶄綔
+
+ layui.form.on('switch(switch_marketable)', function (obj) {
+ coreHelper.Post("Api/CoreCmsbaifenProducts/DoSetmarketable", { id: this.value, data: obj.elem.checked }, function (e) {
+ if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+ //table.reloadData('LAY-app-CoreCmsbaifenProducts-tableBox');
+ layer.msg(e.msg);
+ });
+ });
+
+ layui.form.on('switch(switch_isDefalut)', function (obj) {
+ coreHelper.Post("Api/CoreCmsbaifenProducts/DoSetisDefalut", { id: this.value, data: obj.elem.checked }, function (e) {
+ if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+ //table.reloadData('LAY-app-CoreCmsbaifenProducts-tableBox');
+ layer.msg(e.msg);
+ });
+ });
+
+ layui.form.on('switch(switch_isDel)', function (obj) {
+ coreHelper.Post("Api/CoreCmsbaifenProducts/DoSetisDel", { id: this.value, data: obj.elem.checked }, function (e) {
+ if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+ //table.reloadData('LAY-app-CoreCmsbaifenProducts-tableBox');
+ layer.msg(e.msg);
+ });
+ });
+
+
+ //閲嶈浇form
+ form.render();
+ });
+ };
+</script>
+
+<!--璁剧疆鏄惁涓婃灦-->
+<script type="text/html" id="switch_marketable">
+ <input type="checkbox" name="switch_marketable" value="{{d.id}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="switch_marketable" {{ d.marketable ? 'checked' : '' }}>
+</script>
+
+<!--璁剧疆鏄惁榛樿璐у搧-->
+<script type="text/html" id="switch_isDefalut">
+ <input type="checkbox" name="switch_isDefalut" value="{{d.id}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="switch_isDefalut" {{ d.isDefalut ? 'checked' : '' }}>
+</script>
+
+<!--璁剧疆鏄惁鍒犻櫎-->
+<script type="text/html" id="switch_isDel">
+ <input type="checkbox" name="switch_isDel" value="{{d.id}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="switch_isDel" {{ d.isDel ? 'checked' : '' }}>
+</script>
+
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/financial/invoice/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/financial/invoice/index.html
index f48550f..2e1a296 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/financial/invoice/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/financial/invoice/index.html
@@ -149,7 +149,7 @@
},
{ field: 'sourceId', title: '璧勬簮搴忓垪', sort: false, width: 125 },
{
- field: 'userNickName', title: '鐢ㄦ埛', sort: false, width: 105, templet: function (d) {
+ field: 'userNickName', title: '鐢ㄦ埛', sort: false, width: 180, templet: function (d) {
return d.userNickName + '锛�' + d.userId + '锛�';
}
},
@@ -164,7 +164,7 @@
return "";
}
},
- { field: 'title', title: '鍙戠エ鎶ご', sort: false },
+ { field: 'title', title: '鍙戠エ鎶ご', sort: false ,width: 200 },
{ field: 'taxNumber', title: '鍙戠エ绋庡彿', sort: false, width: 150 },
{ field: 'amount', title: '鍙戠エ閲戦', sort: false, width: 80, templet: function (data) { return '锟�' + data.amount } },
{
@@ -185,7 +185,7 @@
}
},
{ field: 'fileUrl', title: '鍙戠エ涓嬭浇鍦板潃', sort: false},
- { field: 'remarks', title: '寮�绁ㄥ娉�', sort: false, width: 105 },
+ { field: 'remarks', title: '寮�绁ㄥ娉�', sort: false, width: 150 },
{ field: 'createTime', title: '鍒涘缓鏃堕棿', width: 130, sort: false },
{ field: 'updateTime', title: '鏇存柊鏃堕棿', width: 130, sort: false },
{ width: 122, align: 'center', title: '鎿嶄綔', fixed: 'right', toolbar: '#LAY-app-CoreCmsInvoice-tableBox-bar' }
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html
index 5288dba..0505773 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html
@@ -189,7 +189,7 @@
1銆侀�夋嫨瀵瑰簲鐨勩�愬晢鍝佺被鍨嬨�戯紝灏嗚繘鍏ュSKU璐у搧妯″紡銆傚悓鏃跺鏋滅被鍒湁鍙傛暟锛屼篃灏嗚繘琛屾樉绀鸿缃��<br />
2銆佽缃SKU鍚庯紝鍟嗗搧鏈韩鐨勪环鏍煎彧鍋氬澶栧睍绀虹敤锛屽疄闄呬互杩涘叆鍟嗗搧璇︽儏閫夋嫨涓嶅悓璐у搧涓哄噯銆�<br />
3銆佽揣鍝丼KU缁勫悎灞炴�у�煎彧鏀寔锛氫腑鏂囥�佽嫳鏂囥�佹暟瀛椼�佸ぇ鍐欑鍙凤紝灏忓啓绗﹀彿涓変釜锛�-銆�/銆�.锛夛級<br />
- 4銆佽揣鍙峰繀椤讳负SN瀛楁瘝寮�澶�<br />
+ 4銆佽揣鍝佺紪鐮佸繀椤讳负SN瀛楁瘝寮�澶�<br />
5銆佸鏋滀笉璁剧疆鍗曡揣鍝侀噸閲忥紝灏嗛粯璁や娇鐢ㄥ晢鍝侀噸閲忎负1涓崟浣嶇殑閲嶉噺銆�
</blockquote>-->
@@ -197,7 +197,7 @@
<label for="brandId" class="layui-form-label">浣i噾璁剧疆</label>
<div class="layui-input-inline layui-inline-6" pane>
{{# layui.each(d.data.productsDistributionType, function(index, item){ }}
- <input type="radio" name="goods[productsDistributionType]" value="{{ item.value }}" title="{{ item.description }}" {{item.value===1?'checked="checked"':''}}>
+ <input type="radio" name="goods[productsDistributionType]" value="{{ item.value }}" title="{{ item.description }}" {{item.value===2?'checked="checked"':''}}>
{{# }); }}
</div>
</div>
@@ -456,21 +456,19 @@
<tr>
<th>榛樿璐у搧</th>
<th>鍥剧墖</th>
- <th>璐у彿</th>
+ <th>璐у搧缂栫爜</th>
<th>SKU</th>
<th>閲嶉噺(鍏�)</th>
- <!-- <th>璧犻�佺Н鍒�</th>
- <th>绉垎鏈�澶�<br />鍙姷閲戦</th> -->
- <th>搴撳瓨</th>
+ <th>搴撳瓨鏁伴噺</th>
+ <th style="width: 60px;">寤鸿闆跺敭浠�</th>
<th><i class="required-color">*</i>閿�鍞环</th>
- <th>缁忛攢鍟嗕环鏍�</th>
- <th>鎴愭湰浠�</th>
- <th>鎸囧闆跺敭浠�</th>
- <th>缁忛攢鍟嗙敤鎴疯喘涔拌繑鐜�</th>
- <th>鏅�氱敤鎴疯喘涔拌繑鐜�</th>
-
+ <th>缁忛攢鍟嗕环</th>
+ <th>鎴愭湰浠�</th>
+
+ <th style="width: 60px;">鎺ㄥ箍缁忛攢鍟嗛噰璐繑鐜�</th>
+ <th>鎺ㄥ箍鐢ㄦ埛璐拱杩旂幇</th>
<!-- <th>浜岀骇杩旂幇</th>
- <th>涓夌骇杩旂幇</th> -->
+ <!-- <th>涓夌骇杩旂幇</th> --> -->
<th>鎿嶄綔</th>
</tr>
</thead>
@@ -502,7 +500,7 @@
</div>
</td>
<td>
- <input type="text" name="product[sn][]" value="{{item.sn}}" placeholder="璐у彿" class="layui-input layui-inline-3">
+ <input type="text" name="product[sn][]" value="{{item.sn}}" placeholder="璐у搧缂栫爜" class="layui-input layui-inline-3">
</td>
<td>
<input type="hidden" name="product[spesDesc][]" value="{{item.spesDesc}}" placeholder="SKU" class="layui-input">
@@ -521,6 +519,9 @@
<input type="number" name="product[stock][]" value="{{item.stock}}" placeholder="搴撳瓨" class="layui-input layui-inline-1 goods-stock">
</td>
<td>
+ <input type="text" name="product[mktprice][]" value="{{item.mktprice}}" placeholder="鎸囧闆跺敭浠�" class="layui-input layui-inline-1">
+ </td>
+ <td>
<input type="text" name="product[price][]" value="{{item.price}}" placeholder="閿�鍞环" class="layui-input layui-inline-1">
</td>
<td>
@@ -529,9 +530,7 @@
<td>
<input type="text" name="product[costprice][]" value="{{item.costprice}}" placeholder="鎴愭湰浠�" class="layui-input layui-inline-1">
</td>
- <td>
- <input type="text" name="product[mktprice][]" value="{{item.mktprice}}" placeholder="鎸囧闆跺敭浠�" class="layui-input layui-inline-1">
- </td>
+
<td>
<input type="text" name="product[distributionCutMoney][]" value="{{item.distributionCutMoney||'0'}}" placeholder="缁忛攢鍟嗚喘涔拌繑鐜�" class="layui-input layui-inline-1">
</td>
@@ -1205,7 +1204,7 @@
form.verify({
money: [/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, '璇疯緭鍏ラ噾棰�'],
verifybn: [/^[\S]{0,30}$/, '鍟嗗搧缂栫爜鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
- verifysn: [/^[\S]{0,30}$/, '璐у彿鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
+ verifysn: [/^[\S]{0,30}$/, '璐у搧缂栫爜鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
verifyname: [/^.{0,200}$/, '鍟嗗搧鍚嶇О鏈�澶у彧鍏佽杈撳叆200浣嶅瓧绗�'],
verifybrief: [/^.{0,255}$/, '鍟嗗搧绠�浠嬫渶澶у彧鍏佽杈撳叆255浣嶅瓧绗�'],
verifyimageIds: [/^[\S]{0,255}$/, '榛樿鍥剧墖 鍥剧墖id鏈�澶у彧鍏佽杈撳叆255浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/details.html b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/details.html
index 9dccd14..e28905c 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/details.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/details.html
@@ -192,10 +192,10 @@
<col width="80">
<col width="80">
<col width="80">
- <col width="80">
- <col width="80">
- <col width="80">
- <col width="80">
+ <col width="100">
+ <col width="100">
+ <col width="100">
+ <col width="100">
</colgroup>
<thead>
<tr>
@@ -203,15 +203,21 @@
<th>鍥剧墖</th>
<th>璐у彿</th>
<th>SKU</th>
- <th>鍐荤粨搴撳瓨</th>
+
<th>閲嶉噺(鍏�)</th>
- <th>搴撳瓨</th>
- <th><i class="required-color">*</i>閿�鍞环</th>
- <th>鎴愭湰浠�</th>
- <th>鎸囧闆跺敭浠�</th>
- <th>涓�绾ц繑鐜�</th>
- <th>浜岀骇杩旂幇</th>
- <th>涓夌骇杩旂幇</th>
+ <!-- <th>璧犻�佺Н鍒�</th>
+ <th>绉垎鏈�澶�<br />鍙姷閲戦</th> -->
+ <th>搴撳瓨鏁伴噺</th>
+ <th>鍐荤粨搴撳瓨</th>
+ <th style="width: 60px;">寤鸿闆跺敭浠�</th>
+ <th><i class="required-color">*</i>閿�鍞环</th>
+ <th>缁忛攢鍟嗕环</th>
+ <th>鎴愭湰浠�</th>
+
+ <th style="width: 60px;">鎺ㄥ箍缁忛攢鍟嗛噰璐繑鐜�</th>
+ <th>鎺ㄥ箍鐢ㄦ埛璐拱杩旂幇</th>
+ <!-- <th>浜岀骇杩旂幇</th>
+ <!-- <th>涓夌骇杩旂幇</th> --> -->
</tr>
</thead>
<tbody id="productsTbody">
@@ -239,9 +245,7 @@
<td>
{{item.spesDesc}}
</td>
- <td>
- {{item.freezeStock}}
- </td>
+
<td>
{{item.weight}}
</td>
@@ -250,15 +254,28 @@
{{item.stock}}
</td>
<td>
- {{item.price}}
- </td>
- <td>
- {{item.costprice}}
+ {{item.freezeStock}}
</td>
<td>
{{item.mktprice}}
</td>
<td>
+ {{item.price}}
+ </td>
+
+ <td>
+ {{item.distributionPrice}}
+ </td>
+ <td>
+ {{item.costprice}}
+ </td>
+ <td>
+ {{item.distributionCutMoney}}
+ </td>
+ <td>
+ {{item.cutMoney}}
+ </td>
+ <!-- <td>
{{item.levelOne}}
</td>
<td>
@@ -266,7 +283,7 @@
</td>
<td>
{{item.levelThree}}
- </td>
+ </td> -->
</tr>
{{# }); }}
</tbody>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html
index d0f84ff..47a6359 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html
@@ -183,7 +183,7 @@
1銆侀�夋嫨瀵瑰簲鐨勩�愬晢鍝佺被鍨嬨�戯紝灏嗚繘鍏ュSKU璐у搧妯″紡銆傚悓鏃跺鏋滅被鍒湁鍙傛暟锛屼篃灏嗚繘琛屾樉绀鸿缃��<br/>
2銆佽缃SKU鍚庯紝鍟嗗搧鏈韩鐨勪环鏍煎彧鍋氬澶栧睍绀虹敤锛屽疄闄呬互杩涘叆鍟嗗搧璇︽儏閫夋嫨涓嶅悓璐у搧涓哄噯銆�<br/>
3銆佽揣鍝丼KU缁勫悎灞炴�у�煎彧鏀寔锛氫腑鏂囥�佽嫳鏂囥�佹暟瀛椼�佸ぇ鍐欑鍙凤紝灏忓啓绗﹀彿涓変釜锛�-銆�/銆�.锛夛級<br/>
- 4銆佽揣鍙峰繀椤讳负SN瀛楁瘝寮�澶�<br/>
+ 4銆佽揣鍝佺紪鐮佸繀椤讳负SN瀛楁瘝寮�澶�<br/>
5銆佸鏋滀笉璁剧疆鍗曡揣鍝侀噸閲忥紝灏嗛粯璁や娇鐢ㄥ晢鍝侀噸閲忎负1涓崟浣嶇殑閲嶉噺銆�
</blockquote>-->
@@ -309,22 +309,23 @@
<tr>
<th>榛樿璐у搧</th>
<th>鍥剧墖</th>
- <th>璐у彿</th>
+ <th>璐у搧缂栫爜</th>
<th>SKU</th>
<th>閲嶉噺(鍏�)</th>
<!-- <th>璧犻�佺Н鍒�</th>
<th>绉垎鏈�澶�<br />鍙姷閲戦</th> -->
- <th>搴撳瓨</th>
+ <th>搴撳瓨鏁伴噺</th>
+ <th>鍐荤粨搴撳瓨</th>
+ <th style="width: 60px;">寤鸿闆跺敭浠�</th>
<th><i class="required-color">*</i>閿�鍞环</th>
- <th>缁忛攢鍟嗕环鏍�</th>
- <th>鎴愭湰浠�</th>
- <th>鎸囧闆跺敭浠�</th>
+ <th>缁忛攢鍟嗕环</th>
+ <th>鎴愭湰浠�</th>
- <th>缁忛攢鍟嗙敤鎴疯喘涔拌繑鐜�</th>
- <th>鏅�氱敤鎴疯喘涔拌繑鐜�</th>
+ <th style="width: 60px;">鎺ㄥ箍缁忛攢鍟嗛噰璐繑鐜�</th>
+ <th>鎺ㄥ箍鐢ㄦ埛璐拱杩旂幇</th>
<!-- <th>浜岀骇杩旂幇</th>
<!-- <th>涓夌骇杩旂幇</th> --> -->
- <th>鍐荤粨搴撳瓨</th>
+
<th>鎿嶄綔</th>
</tr>
</thead>
@@ -356,7 +357,7 @@
</div>
</td>
<td>
- <input type="text" name="product[sn][]" value="{{item.sn}}" placeholder="璐у彿" class="layui-input layui-inline-3">
+ <input type="text" name="product[sn][]" value="{{item.sn}}" placeholder="璐у搧缂栫爜" class="layui-input layui-inline-3">
</td>
<td>
<input type="hidden" name="product[spesDesc][]" value="{{item.spesDesc}}" placeholder="SKU" class="layui-input">
@@ -375,23 +376,27 @@
<input type="number" name="product[stock][]" value="{{item.stock}}" placeholder="搴撳瓨" class="layui-input layui-inline-1 goods-stock">
</td>
<td>
+ {{item.freezeStock}}
+ </td>
+ <td>
+ <input type="text" name="product[mktprice][]" value="{{item.mktprice}}" placeholder="寤鸿闆跺敭浠�" class="layui-input layui-inline-1">
+ </td>
+ <td>
<input type="text" name="product[price][]" value="{{item.price}}" placeholder="閿�鍞环" class="layui-input layui-inline-1">
</td>
<td>
- <input type="text" name="product[distributionPrice][]" value="{{item.distributionPrice||'0'}}" placeholder="缁忛攢鍟嗕环鏍�" class="layui-input layui-inline-1">
+ <input type="text" name="product[distributionPrice][]" value="{{item.distributionPrice||'0'}}" placeholder="缁忛攢鍟嗕环" class="layui-input layui-inline-1">
</td>
<td>
<input type="text" name="product[costprice][]" value="{{item.costprice}}" placeholder="鎴愭湰浠�" class="layui-input layui-inline-1">
</td>
+
<td>
- <input type="text" name="product[mktprice][]" value="{{item.mktprice}}" placeholder="鎸囧闆跺敭浠�" class="layui-input layui-inline-1">
+ <input type="text" name="product[distributionCutMoney][]" value="{{item.distributionCutMoney||'0'}}" placeholder="鎺ㄥ箍缁忛攢鍟嗛噰璐繑鐜�" class="layui-input layui-inline-1">
</td>
<td>
- <input type="text" name="product[distributionCutMoney][]" value="{{item.distributionCutMoney||'0'}}" placeholder="缁忛攢鍟嗚喘涔拌繑鐜�" class="layui-input layui-inline-1">
- </td>
- <td>
- <input type="text" name="product[cutMoney][]" value="{{item.cutMoney||'0'}}" placeholder="鏅�氱敤鎴疯喘涔拌繑鐜�" class="layui-input layui-inline-1">
+ <input type="text" name="product[cutMoney][]" value="{{item.cutMoney||'0'}}" placeholder="鎺ㄥ箍鏅�氱敤鎴疯喘涔拌繑鐜�" class="layui-input layui-inline-1">
</td>
<!-- <td>
<input type="text" name="product[levelTwo][]" value="{{item.levelTwo}}" placeholder="浜岀骇杩旂幇" class="layui-input layui-inline-1">
@@ -399,9 +404,7 @@
<td>
<input type="text" name="product[levelThree][]" value="{{item.levelThree}}" placeholder="涓夌骇杩旂幇" class="layui-input layui-inline-1">
</td> -->
- <td>
- {{item.freezeStock}}
- </td>
+
<td>
<a class="layui-btn layui-btn-danger layui-btn-xs del-class" lay-active="delTr">鍒犻櫎</a>
</td>
@@ -1299,7 +1302,7 @@
form.verify({
money: [/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, '璇疯緭鍏ラ噾棰�'],
verifybn: [/^[\S]{0,30}$/, '鍟嗗搧缂栫爜鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
- verifysn: [/^[\S]{0,30}$/, '璐у彿鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
+ verifysn: [/^[\S]{0,30}$/, '璐у搧缂栫爜鏈�澶у彧鍏佽杈撳叆30浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
verifyname: [/^.{0,200}$/, '鍟嗗搧鍚嶇О鏈�澶у彧鍏佽杈撳叆200浣嶅瓧绗�'],
verifybrief: [/^.{0,255}$/, '鍟嗗搧绠�浠嬫渶澶у彧鍏佽杈撳叆255浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
verifyimageIds: [/^[\S]{0,255}$/, '榛樿鍥剧墖 鍥剧墖id鏈�澶у彧鍏佽杈撳叆255浣嶅瓧绗︼紝涓斾笉鑳藉嚭鐜扮┖鏍�'],
diff --git a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
index c1195ab..c813e43 100644
--- a/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
+++ b/CoreCms.Net.Web.WebApi/Controllers/UserController.cs
@@ -402,7 +402,28 @@
return jm;
}
#endregion
-
+ /// <summary>
+ /// 鑾峰彇璇锋眰ID
+ /// </summary>
+ /// <param name="request"></param>
+ /// <returns></returns>
+ [HttpGet]
+ public async Task<WebApiCallBack> GeiIp([FromServices] IHttpContextAccessor request)
+ {
+ string clientIp = request.HttpContext.Connection.RemoteIpAddress.ToString();
+ // 濡傛灉瀹㈡埛绔�氳繃浠g悊璁块棶锛屽彲鑳介渶瑕佹鏌-Forwarded-For澶�
+ if (clientIp == "::1" || clientIp == "127.0.0.1")
+ {
+ clientIp = request.HttpContext.Request. Headers["X-Forwarded-For"].FirstOrDefault()
+ ?? request.HttpContext.Connection.RemoteIpAddress.ToString();
+ }
+ return new WebApiCallBack
+ {
+ code = 0,
+ data = clientIp,
+ };
+
+ }
#region 寰俊鏍搁獙鏁版嵁骞惰幏鍙栫敤鎴疯缁嗚祫鏂�=====================================================
/// <summary>
/// 鏍搁獙鏁版嵁骞惰幏鍙栫敤鎴疯缁嗚祫鏂�
--
Gitblit v1.9.1