CoreCms.Net.IRepository/baifenbinfa/ICoreCmsProductsRepository.cs
New file @@ -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); } } CoreCms.Net.IServices/baifenbingfa/ICoreCmsProductsServices.cs
New file @@ -0,0 +1,120 @@ /*********************************************************************** * 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); } } CoreCms.Net.Model/Entities/Good/CoreCmsProductsPartial.cs
@@ -21,6 +21,8 @@ /// </summary> public partial class CoreCmsProducts { /// <summary> /// 商品编码 /// </summary> @@ -141,5 +143,12 @@ [Display(Name = "三级佣金")] [SugarColumn(IsIgnore = true)] public decimal levelThree { get; set; } = 0; /// <summary> /// 商品分类 /// </summary> [Display(Name = "商品分类")] [SugarColumn(IsIgnore = true)] public string Category { get; set; } } } CoreCms.Net.Repository/baifenbingfa/CoreCmsProductsRepository.cs
New file @@ -0,0 +1,453 @@ /*********************************************************************** * 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.id = entity.id; oldModel.goodsId = entity.goodsId; oldModel.barcode = entity.barcode; oldModel.sn = entity.sn; 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.spesDesc = entity.spesDesc; oldModel.isDefalut = entity.isDefalut; oldModel.images = entity.images; oldModel.isDel = entity.isDel; 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 } } CoreCms.Net.Services/baifenbingfa/CoreCmsProductsServices.cs
New file @@ -0,0 +1,159 @@ /*********************************************************************** * 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; 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); } #endregion } } CoreCms.Net.Web.Admin/Controllers/baifenbingfa/CoreCmsProductsController.cs
New file @@ -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); } //积分可抵扣金额 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.QueryByIdAsync(entity.id, false); 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(); //添加一个sheet 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); //给sheet1添加第一行的头部标题 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("积分可抵扣金额"); //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); } //积分可抵扣金额 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(); //添加一个sheet var mySheet = book.CreateSheet("Sheet1"); //获取list数据 var listModel = await _CoreCmsProductsServices.QueryDetaiListAsync(where, p => p.goodsId, OrderByType.Asc, true); //给sheet1添加第一行的头部标题 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("积分可抵扣金额"); //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++; } // 写入到excel 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 } } CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/create.html
New file @@ -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">积分可抵扣金额</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> CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/details.html
New file @@ -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">积分可抵扣金额</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> CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/edit.html
New file @@ -0,0 +1,192 @@ <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="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="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="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="pointsDeduction" class="layui-form-label layui-form-required">积分可抵扣金额</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="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="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="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="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="请输入普通用户购买返佣金" lay-reqText="请输入普通用户购买返佣金" value="{{d.params.data.cutMoney || '0' }}" /> </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="请输入经销商用户购买返佣金" lay-reqText="请输入经销商用户购买返佣金" value="{{d.params.data.distributionCutMoney || '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> CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/corecmsproducts/index.html
New file @@ -0,0 +1,555 @@ <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">积分可抵扣金额</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: 'price', title: '价格', sort: false,width: 105 }, { field: 'costprice', title: '成本价', sort: false,width: 105 }, { field: 'mktprice', title: '市场价', sort: false,width: 105 }, // { field: 'pointsDeduction', title: '积分可抵扣金额', sort: false,width: 105 }, { field: 'distributionPrice', title: '经销商价格', sort: false,width: 105 }, { field: 'cutMoney', title: '普通用户购买返佣金', sort: false,width: 135 }, { field: 'distributionCutMoney', title: '经销商用户购买返佣金', sort: false,width: 140 }, // { 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> 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' } 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> @@ -208,10 +208,13 @@ <th>库存</th> <th><i class="required-color">*</i>销售价</th> <th>成本价</th> <th>经销商价格</th> <th>指导零售价</th> <th>一级返现</th> <th>经销商用户购买返现</th> <th>普通用户购买返现</th> <!-- <th>一级返现</th> <th>二级返现</th> <th>三级返现</th> <th>三级返现</th> --> </tr> </thead> <tbody id="productsTbody"> @@ -256,9 +259,18 @@ {{item.costprice}} </td> <td> {{item.distributionPrice}} </td> <td> {{item.mktprice}} </td> <td> {{item.distributionCutMoney}} </td> <td> {{item.cutMoney}} </td> <!-- <td> {{item.levelOne}} </td> <td> @@ -266,7 +278,7 @@ </td> <td> {{item.levelThree}} </td> </td> --> </tr> {{# }); }} </tbody>