# 2022-03-21

### 1.4.1 开源社区版:
无
### 0.3.0 专业版:
【新增】微信自定义交易组件增加【免审更新】功能。
【新增】微信自定义交易组件增加【上传品牌信息】功能。
【新增】微信自定义交易组件增加【品牌信息】审核回调验证功能。
This commit is contained in:
JianWeie
2022-03-21 04:10:58 +08:00
parent 88dec4dd21
commit 37c3ff7bf3
36 changed files with 3907 additions and 106 deletions

View File

@@ -2870,6 +2870,88 @@ namespace CoreCms.Net.Configuration
}
/// <summary>
/// 品牌审核-认证审核类型
/// </summary>
public enum RegisterType
{
R标 = 1,
TM标 = 2,
R标 = 3,
TM标 = 4
}
/// <summary>
/// 品牌审核-商标分类
/// </summary>
public enum TrademarkType
{
1 = 1,
2 = 2,
3 = 3,
4 = 4,
5 = 5,
6 = 6,
7 = 7,
8 = 8,
9 = 9,
10 = 10,
11 = 11,
12 = 12,
13 = 13,
14 = 14,
15 = 15,
16 = 16,
17 = 17,
18 = 18,
19 = 19,
20 = 20,
21 = 21,
22 = 22,
23 = 23,
24 = 24,
25 = 25,
26 = 26,
27 = 27,
28 = 28,
29 = 29,
30 = 30,
31 = 31,
32 = 32,
33 = 33,
34 = 34,
35 = 35,
36 = 36,
37 = 37,
38 = 38,
39 = 39,
40 = 40,
41 = 41,
42 = 42,
43 = 43,
44 = 44,
45 = 45,
}
/// <summary>
/// 品牌审核-品牌经营类型
/// </summary>
public enum BrandManagementType
{
= 1,
= 2,
= 3
}
/// <summary>
/// 品牌审核-商品产地是否进口
/// </summary>
public enum CommodityOriginType
{
= 1,
= 2
}
#endregion
#region

View File

@@ -8,7 +8,12 @@
* Description: 暂无
***********************************************************************/
using System;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.Basics;
using SqlSugar;
namespace CoreCms.Net.IRepository
{
@@ -17,5 +22,23 @@ namespace CoreCms.Net.IRepository
/// </summary>
public interface ICoreCmsUserWeChatInfoRepository : IBaseRepository<CoreCmsUserWeChatInfo>
{
/// <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>
new Task<IPageList<CoreCmsUserWeChatInfo>> QueryPageAsync(
Expression<Func<CoreCmsUserWeChatInfo, bool>> predicate,
Expression<Func<CoreCmsUserWeChatInfo, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false);
}
}

View File

@@ -0,0 +1,29 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/21 3:30:18
* 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 IWeChatTransactionComponentBrandAuditLogRepository : IBaseRepository<WeChatTransactionComponentBrandAuditLog>
{
}
}

View File

@@ -0,0 +1,88 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/20 1:01:47
* 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 IWeChatTransactionComponentBrandAuditRepository : IBaseRepository<WeChatTransactionComponentBrandAudit>
{
#region ===========================================================
/// <summary>
/// 重写异步插入方法
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
new Task<AdminUiCallBack> InsertAsync(WeChatTransactionComponentBrandAudit entity);
/// <summary>
/// 重写异步更新方法
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
new Task<AdminUiCallBack> UpdateAsync(WeChatTransactionComponentBrandAudit entity);
/// <summary>
/// 重写异步更新方法
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
new Task<AdminUiCallBack> UpdateAsync(List<WeChatTransactionComponentBrandAudit> entity);
/// <summary>
/// 重写删除指定ID的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
new Task<AdminUiCallBack> DeleteByIdAsync(object id);
/// <summary>
/// 重写删除指定ID集合的数据(批量删除)
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
new Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
#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>
new Task<IPageList<WeChatTransactionComponentBrandAudit>> QueryPageAsync(
Expression<Func<WeChatTransactionComponentBrandAudit, bool>> predicate,
Expression<Func<WeChatTransactionComponentBrandAudit, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false);
}
}

View File

@@ -8,7 +8,12 @@
* Description: 暂无
***********************************************************************/
using System;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.Basics;
using SqlSugar;
namespace CoreCms.Net.IServices
{
@@ -17,5 +22,25 @@ namespace CoreCms.Net.IServices
/// </summary>
public interface ICoreCmsUserWeChatInfoServices : IBaseServices<CoreCmsUserWeChatInfo>
{
#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>
new Task<IPageList<CoreCmsUserWeChatInfo>> QueryPageAsync(
Expression<Func<CoreCmsUserWeChatInfo, bool>> predicate,
Expression<Func<CoreCmsUserWeChatInfo, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false);
#endregion
}
}

View File

@@ -8,7 +8,14 @@
* 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
{

View File

@@ -0,0 +1,29 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/21 3:30:18
* 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 IWeChatTransactionComponentBrandAuditLogServices : IBaseServices<WeChatTransactionComponentBrandAuditLog>
{
}
}

View File

@@ -0,0 +1,83 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/20 1:01:47
* 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 IWeChatTransactionComponentBrandAuditServices : IBaseServices<WeChatTransactionComponentBrandAudit>
{
#region ===========================================================
/// <summary>
/// 重写异步插入方法
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
new Task<AdminUiCallBack> InsertAsync(WeChatTransactionComponentBrandAudit entity);
/// <summary>
/// 重写异步更新方法
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
new Task<AdminUiCallBack> UpdateAsync(WeChatTransactionComponentBrandAudit entity);
/// <summary>
/// 重写异步更新方法
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
new Task<AdminUiCallBack> UpdateAsync(List<WeChatTransactionComponentBrandAudit> entity);
/// <summary>
/// 重写删除指定ID的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
new Task<AdminUiCallBack> DeleteByIdAsync(object id);
/// <summary>
/// 重写删除指定ID集合的数据(批量删除)
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
new Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
#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>
new Task<IPageList<WeChatTransactionComponentBrandAudit>> QueryPageAsync(
Expression<Func<WeChatTransactionComponentBrandAudit, bool>> predicate,
Expression<Func<WeChatTransactionComponentBrandAudit, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false);
#endregion
}
}

View File

@@ -0,0 +1,308 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/21 3:39:55
* Description: 暂无
***********************************************************************/
using SqlSugar;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace CoreCms.Net.Model.Entities
{
/// <summary>
/// 自定义交易组件上传品牌信息
/// </summary>
public partial class WeChatTransactionComponentBrandAudit
{
/// <summary>
/// 构造函数
/// </summary>
public WeChatTransactionComponentBrandAudit()
{
}
/// <summary>
/// 序列
/// </summary>
[Display(Name = "序列")]
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 id { get; set; }
/// <summary>
/// 营业执照或组织机构代码证
/// </summary>
[Display(Name = "营业执照或组织机构代码证")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength:500,ErrorMessage = "{0}不能超过{1}字")]
public System.String license { get; set; }
/// <summary>
/// 认证审核类型
/// </summary>
[Display(Name = "认证审核类型")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 brand_audit_type { get; set; }
/// <summary>
/// 商标分类
/// </summary>
[Display(Name = "商标分类")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength:10,ErrorMessage = "{0}不能超过{1}字")]
public System.String trademark_type { get; set; }
/// <summary>
/// 经营类型
/// </summary>
[Display(Name = "经营类型")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 brand_management_type { get; set; }
/// <summary>
/// 商品产地是否进口
/// </summary>
[Display(Name = "商品产地是否进口")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 commodity_origin_type { get; set; }
/// <summary>
/// 商标/品牌词
/// </summary>
[Display(Name = "商标/品牌词")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength:50,ErrorMessage = "{0}不能超过{1}字")]
public System.String brand_wording { get; set; }
/// <summary>
/// 销售授权书
/// </summary>
[Display(Name = "销售授权书")]
[StringLength(maximumLength:500,ErrorMessage = "{0}不能超过{1}字")]
public System.String sale_authorization { get; set; }
/// <summary>
/// 商标注册证书
/// </summary>
[Display(Name = "商标注册证书")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength:500,ErrorMessage = "{0}不能超过{1}字")]
public System.String trademark_registration_certificate { get; set; }
/// <summary>
/// 商标变更证明
/// </summary>
[Display(Name = "商标变更证明")]
[StringLength(maximumLength:500,ErrorMessage = "{0}不能超过{1}字")]
public System.String trademark_change_certificate { get; set; }
/// <summary>
/// 商标注册人姓名
/// </summary>
[Display(Name = "商标注册人姓名")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength:100,ErrorMessage = "{0}不能超过{1}字")]
public System.String trademark_registrant { get; set; }
/// <summary>
/// 商标注册号/申请号
/// </summary>
[Display(Name = "商标注册号/申请号")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength:10,ErrorMessage = "{0}不能超过{1}字")]
public System.String trademark_registrant_nu { get; set; }
/// <summary>
/// 商标有效期
/// </summary>
[Display(Name = "商标有效期")]
[Required(ErrorMessage = "请输入{0}")]
public System.DateTime trademark_authorization_period { get; set; }
/// <summary>
/// 商标注册申请受理通知书
/// </summary>
[Display(Name = "商标注册申请受理通知书")]
[StringLength(maximumLength:100,ErrorMessage = "{0}不能超过{1}字")]
public System.String trademark_registration_application { get; set; }
/// <summary>
/// 商标申请人姓名
/// </summary>
[Display(Name = "商标申请人姓名")]
[StringLength(maximumLength:100,ErrorMessage = "{0}不能超过{1}字")]
public System.String trademark_applicant { get; set; }
/// <summary>
/// 商标申请时间
/// </summary>
[Display(Name = "商标申请时间")]
[Required(ErrorMessage = "请输入{0}")]
public System.DateTime trademark_application_time { get; set; }
/// <summary>
/// 中华人民共和国海关进口货物报关单
/// </summary>
[Display(Name = "中华人民共和国海关进口货物报关单")]
[StringLength(maximumLength:500,ErrorMessage = "{0}不能超过{1}字")]
public System.String imported_goods_form { get; set; }
/// <summary>
/// 商品使用场景
/// </summary>
[Display(Name = "商品使用场景")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 scene_group_list { get; set; }
/// <summary>
/// 审核单id
/// </summary>
[Display(Name = "审核单id")]
[StringLength(maximumLength:50,ErrorMessage = "{0}不能超过{1}字")]
public System.String audit_id { get; set; }
/// <summary>
/// 审核状态
/// </summary>
[Display(Name = "审核状态")]
public System.Int32? status { get; set; }
/// <summary>
/// 品牌id
/// </summary>
[Display(Name = "品牌id")]
public System.Int32? brandId { get; set; }
/// <summary>
/// 拒绝原因
/// </summary>
[Display(Name = "拒绝原因")]
[StringLength(maximumLength:255,ErrorMessage = "{0}不能超过{1}字")]
public System.String rejectReason { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Display(Name = "创建时间")]
[Required(ErrorMessage = "请输入{0}")]
public System.DateTime createTime { get; set; }
}
}

View File

@@ -0,0 +1,116 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/21 3:30:18
* Description: 暂无
***********************************************************************/
using SqlSugar;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace CoreCms.Net.Model.Entities
{
/// <summary>
/// 自定义交易组件上传品牌信息审核结果日志
/// </summary>
public partial class WeChatTransactionComponentBrandAuditLog
{
/// <summary>
/// 构造函数
/// </summary>
public WeChatTransactionComponentBrandAuditLog()
{
}
/// <summary>
/// 序列
/// </summary>
[Display(Name = "序列")]
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 id { get; set; }
/// <summary>
/// 审核Id
/// </summary>
[Display(Name = "审核Id")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength:50,ErrorMessage = "{0}不能超过{1}字")]
public System.String audit_id { get; set; }
/// <summary>
/// 审核状态,1:已通过,9:拒绝
/// </summary>
[Display(Name = "审核状态,1:已通过,9:拒绝")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 status { get; set; }
/// <summary>
/// 审核类型本接口固定为1
/// </summary>
[Display(Name = "审核类型本接口固定为1")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 audit_type { get; set; }
/// <summary>
/// 相关信息
/// </summary>
[Display(Name = "相关信息")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength:500,ErrorMessage = "{0}不能超过{1}字")]
public System.String reject_reason { get; set; }
/// <summary>
/// 品牌id
/// </summary>
[Display(Name = "品牌id")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 brand_id { get; set; }
/// <summary>
/// 回调时间
/// </summary>
[Display(Name = "回调时间")]
[Required(ErrorMessage = "请输入{0}")]
public System.DateTime createTime { get; set; }
}
}

View File

@@ -58,7 +58,7 @@ namespace CoreCms.Net.Model.Entities
[Display(Name = "商家自定义商品ID")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
[StringLength(maximumLength:50,ErrorMessage = "{0}不能超过{1}字")]
public System.String outProductId { get; set; }
@@ -70,7 +70,7 @@ namespace CoreCms.Net.Model.Entities
[Display(Name = "商家自定义skuID")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
[StringLength(maximumLength:50,ErrorMessage = "{0}不能超过{1}字")]
public System.String outSkuId { get; set; }
@@ -82,7 +82,7 @@ namespace CoreCms.Net.Model.Entities
[Display(Name = "sku小图")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 255, ErrorMessage = "{0}不能超过{1}字")]
[StringLength(maximumLength:255,ErrorMessage = "{0}不能超过{1}字")]
public System.String thumbImg { get; set; }
@@ -142,7 +142,7 @@ namespace CoreCms.Net.Model.Entities
[Display(Name = "条形码")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
[StringLength(maximumLength:50,ErrorMessage = "{0}不能超过{1}字")]
public System.String barCode { get; set; }
@@ -154,7 +154,7 @@ namespace CoreCms.Net.Model.Entities
[Display(Name = "商品编码")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
[StringLength(maximumLength:50,ErrorMessage = "{0}不能超过{1}字")]
public System.String skuCode { get; set; }

View File

@@ -8,9 +8,15 @@
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.Basics;
using SqlSugar;
namespace CoreCms.Net.Repository
{
@@ -23,5 +29,83 @@ namespace CoreCms.Net.Repository
public CoreCmsUserWeChatInfoRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
#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 new async Task<IPageList<CoreCmsUserWeChatInfo>> QueryPageAsync(Expression<Func<CoreCmsUserWeChatInfo, bool>> predicate,
Expression<Func<CoreCmsUserWeChatInfo, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false)
{
RefAsync<int> totalCount = 0;
List<CoreCmsUserWeChatInfo> page;
if (blUseNoLock)
{
page = await DbClient.Queryable<CoreCmsUserWeChatInfo>()
.OrderByIF(orderByExpression != null, orderByExpression, orderByType)
.WhereIF(predicate != null, predicate).Select(p => new CoreCmsUserWeChatInfo
{
id = p.id,
type = p.type,
userId = p.userId,
openid = p.openid,
sessionKey = p.sessionKey,
unionId = p.unionId,
avatar = p.avatar,
nickName = p.nickName,
gender = p.gender,
language = p.language,
city = p.city,
province = p.province,
country = p.country,
countryCode = p.countryCode,
mobile = p.mobile,
createTime = p.createTime,
updateTime = p.updateTime,
}).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
}
else
{
page = await DbClient.Queryable<CoreCmsUserWeChatInfo>()
.OrderByIF(orderByExpression != null, orderByExpression, orderByType)
.WhereIF(predicate != null, predicate).Select(p => new CoreCmsUserWeChatInfo
{
id = p.id,
type = p.type,
userId = p.userId,
openid = p.openid,
sessionKey = p.sessionKey,
unionId = p.unionId,
avatar = p.avatar,
nickName = p.nickName,
gender = p.gender,
language = p.language,
city = p.city,
province = p.province,
country = p.country,
countryCode = p.countryCode,
mobile = p.mobile,
createTime = p.createTime,
updateTime = p.updateTime,
}).ToPageListAsync(pageIndex, pageSize, totalCount);
}
var list = new PageList<CoreCmsUserWeChatInfo>(page, pageIndex, pageSize, totalCount);
return list;
}
#endregion
}
}

View File

@@ -8,9 +8,18 @@
* 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.Entities;
using CoreCms.Net.Model.ViewModels.UI;
using SqlSugar;
namespace CoreCms.Net.Repository
{
@@ -20,10 +29,10 @@ namespace CoreCms.Net.Repository
public class WeChatAccessTokenRepository : BaseRepository<WeChatAccessToken>, IWeChatAccessTokenRepository
{
private readonly IUnitOfWork _unitOfWork;
public WeChatAccessTokenRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
_unitOfWork = unitOfWork;
}
}
}

View File

@@ -0,0 +1,37 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/21 3:30:18
* 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;
namespace CoreCms.Net.Repository
{
/// <summary>
/// 自定义交易组件上传品牌信息审核结果日志 接口实现
/// </summary>
public class WeChatTransactionComponentBrandAuditLogRepository : BaseRepository<WeChatTransactionComponentBrandAuditLog>, IWeChatTransactionComponentBrandAuditLogRepository
{
private readonly IUnitOfWork _unitOfWork;
public WeChatTransactionComponentBrandAuditLogRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
_unitOfWork = unitOfWork;
}
}
}

View File

@@ -0,0 +1,236 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/20 1:19:25
* 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;
namespace CoreCms.Net.Repository
{
/// <summary>
/// 自定义交易组件上传品牌信息 接口实现
/// </summary>
public class WeChatTransactionComponentBrandAuditRepository : BaseRepository<WeChatTransactionComponentBrandAudit>, IWeChatTransactionComponentBrandAuditRepository
{
private readonly IUnitOfWork _unitOfWork;
public WeChatTransactionComponentBrandAuditRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
_unitOfWork = unitOfWork;
}
#region ==========================================================
/// <summary>
/// 重写异步插入方法
/// </summary>
/// <param name="entity">实体数据</param>
/// <returns></returns>
public new async Task<AdminUiCallBack> InsertAsync(WeChatTransactionComponentBrandAudit entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
entity.status = (int)CoreCms.Net.WeChat.Service.TransactionComponent.Enum.AuditEnum.AuditCategoryStatus.;
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 new async Task<AdminUiCallBack> UpdateAsync(WeChatTransactionComponentBrandAudit entity)
{
var jm = new AdminUiCallBack();
var oldModel = await DbClient.Queryable<WeChatTransactionComponentBrandAudit>().In(entity.id).SingleAsync();
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
//oldModel.id = entity.id;
oldModel.license = entity.license;
oldModel.brand_audit_type = entity.brand_audit_type;
oldModel.trademark_type = entity.trademark_type;
oldModel.brand_management_type = entity.brand_management_type;
oldModel.commodity_origin_type = entity.commodity_origin_type;
oldModel.brand_wording = entity.brand_wording;
oldModel.sale_authorization = entity.sale_authorization;
oldModel.trademark_registration_certificate = entity.trademark_registration_certificate;
oldModel.trademark_change_certificate = entity.trademark_change_certificate;
oldModel.trademark_registrant = entity.trademark_registrant;
oldModel.trademark_registrant_nu = entity.trademark_registrant_nu;
oldModel.trademark_authorization_period = entity.trademark_authorization_period;
oldModel.trademark_registration_application = entity.trademark_registration_application;
oldModel.trademark_applicant = entity.trademark_applicant;
oldModel.trademark_application_time = entity.trademark_application_time;
oldModel.imported_goods_form = entity.imported_goods_form;
oldModel.scene_group_list = entity.scene_group_list;
//事物处理过程结束
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 new async Task<AdminUiCallBack> UpdateAsync(List<WeChatTransactionComponentBrandAudit> 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 new async Task<AdminUiCallBack> DeleteByIdAsync(object id)
{
var jm = new AdminUiCallBack();
var bl = await DbClient.Deleteable<WeChatTransactionComponentBrandAudit>(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 new async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
{
var jm = new AdminUiCallBack();
var bl = await DbClient.Deleteable<WeChatTransactionComponentBrandAudit>().In(ids).ExecuteCommandHasChangeAsync();
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#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 new async Task<IPageList<WeChatTransactionComponentBrandAudit>> QueryPageAsync(Expression<Func<WeChatTransactionComponentBrandAudit, bool>> predicate,
Expression<Func<WeChatTransactionComponentBrandAudit, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false)
{
RefAsync<int> totalCount = 0;
List<WeChatTransactionComponentBrandAudit> page;
if (blUseNoLock)
{
page = await DbClient.Queryable<WeChatTransactionComponentBrandAudit>()
.OrderByIF(orderByExpression != null, orderByExpression, orderByType)
.WhereIF(predicate != null, predicate).Select(p => new WeChatTransactionComponentBrandAudit
{
id = p.id,
license = p.license,
brand_audit_type = p.brand_audit_type,
trademark_type = p.trademark_type,
brand_management_type = p.brand_management_type,
commodity_origin_type = p.commodity_origin_type,
brand_wording = p.brand_wording,
sale_authorization = p.sale_authorization,
trademark_registration_certificate = p.trademark_registration_certificate,
trademark_change_certificate = p.trademark_change_certificate,
trademark_registrant = p.trademark_registrant,
trademark_registrant_nu = p.trademark_registrant_nu,
trademark_authorization_period = p.trademark_authorization_period,
trademark_registration_application = p.trademark_registration_application,
trademark_applicant = p.trademark_applicant,
trademark_application_time = p.trademark_application_time,
imported_goods_form = p.imported_goods_form,
scene_group_list = p.scene_group_list,
audit_id = p.audit_id,
status = p.status,
brandId = p.brandId,
rejectReason = p.rejectReason,
createTime = p.createTime,
}).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
}
else
{
page = await DbClient.Queryable<WeChatTransactionComponentBrandAudit>()
.OrderByIF(orderByExpression != null, orderByExpression, orderByType)
.WhereIF(predicate != null, predicate).Select(p => new WeChatTransactionComponentBrandAudit
{
id = p.id,
license = p.license,
brand_audit_type = p.brand_audit_type,
trademark_type = p.trademark_type,
brand_management_type = p.brand_management_type,
commodity_origin_type = p.commodity_origin_type,
brand_wording = p.brand_wording,
sale_authorization = p.sale_authorization,
trademark_registration_certificate = p.trademark_registration_certificate,
trademark_change_certificate = p.trademark_change_certificate,
trademark_registrant = p.trademark_registrant,
trademark_registrant_nu = p.trademark_registrant_nu,
trademark_authorization_period = p.trademark_authorization_period,
trademark_registration_application = p.trademark_registration_application,
trademark_applicant = p.trademark_applicant,
trademark_application_time = p.trademark_application_time,
imported_goods_form = p.imported_goods_form,
scene_group_list = p.scene_group_list,
audit_id = p.audit_id,
status = p.status,
brandId = p.brandId,
rejectReason = p.rejectReason,
createTime = p.createTime,
}).ToPageListAsync(pageIndex, pageSize, totalCount);
}
var list = new PageList<WeChatTransactionComponentBrandAudit>(page, pageIndex, pageSize, totalCount);
return list;
}
#endregion
}
}

View File

@@ -9,13 +9,15 @@
***********************************************************************/
using System;
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.UI;
using CoreCms.Net.Model.ViewModels.Basics;
using SqlSugar;
namespace CoreCms.Net.Services
@@ -34,5 +36,27 @@ namespace CoreCms.Net.Services
_unitOfWork = unitOfWork;
}
#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 new async Task<IPageList<CoreCmsUserWeChatInfo>> QueryPageAsync(Expression<Func<CoreCmsUserWeChatInfo, bool>> predicate,
Expression<Func<CoreCmsUserWeChatInfo, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false)
{
return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
}
#endregion
}
}

View File

@@ -15,7 +15,6 @@ using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.UI;
namespace CoreCms.Net.Services

View File

@@ -8,10 +8,19 @@
* 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
{
@@ -25,9 +34,10 @@ namespace CoreCms.Net.Services
public WeChatAccessTokenServices(IUnitOfWork unitOfWork, IWeChatAccessTokenRepository dal)
{
_dal = dal;
BaseDal = dal;
this._dal = dal;
base.BaseDal = dal;
_unitOfWork = unitOfWork;
}
}
}

View File

@@ -0,0 +1,43 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/21 3:30:18
* 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 WeChatTransactionComponentBrandAuditLogServices : BaseServices<WeChatTransactionComponentBrandAuditLog>, IWeChatTransactionComponentBrandAuditLogServices
{
private readonly IWeChatTransactionComponentBrandAuditLogRepository _dal;
private readonly IUnitOfWork _unitOfWork;
public WeChatTransactionComponentBrandAuditLogServices(IUnitOfWork unitOfWork, IWeChatTransactionComponentBrandAuditLogRepository dal)
{
this._dal = dal;
base.BaseDal = dal;
_unitOfWork = unitOfWork;
}
}
}

View File

@@ -0,0 +1,117 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/20 1:01:47
* 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 WeChatTransactionComponentBrandAuditServices : BaseServices<WeChatTransactionComponentBrandAudit>, IWeChatTransactionComponentBrandAuditServices
{
private readonly IWeChatTransactionComponentBrandAuditRepository _dal;
private readonly IUnitOfWork _unitOfWork;
public WeChatTransactionComponentBrandAuditServices(IUnitOfWork unitOfWork, IWeChatTransactionComponentBrandAuditRepository dal)
{
this._dal = dal;
base.BaseDal = dal;
_unitOfWork = unitOfWork;
}
#region ==========================================================
/// <summary>
/// 重写异步插入方法
/// </summary>
/// <param name="entity">实体数据</param>
/// <returns></returns>
public new async Task<AdminUiCallBack> InsertAsync(WeChatTransactionComponentBrandAudit entity)
{
return await _dal.InsertAsync(entity);
}
/// <summary>
/// 重写异步更新方法方法
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public new async Task<AdminUiCallBack> UpdateAsync(WeChatTransactionComponentBrandAudit entity)
{
return await _dal.UpdateAsync(entity);
}
/// <summary>
/// 重写异步更新方法方法
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public new async Task<AdminUiCallBack> UpdateAsync(List<WeChatTransactionComponentBrandAudit> entity)
{
return await _dal.UpdateAsync(entity);
}
/// <summary>
/// 重写删除指定ID的数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public new async Task<AdminUiCallBack> DeleteByIdAsync(object id)
{
return await _dal.DeleteByIdAsync(id);
}
/// <summary>
/// 重写删除指定ID集合的数据(批量删除)
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public new async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
{
return await _dal.DeleteByIdsAsync(ids);
}
#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 new async Task<IPageList<WeChatTransactionComponentBrandAudit>> QueryPageAsync(Expression<Func<WeChatTransactionComponentBrandAudit, bool>> predicate,
Expression<Func<WeChatTransactionComponentBrandAudit, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
int pageSize = 20, bool blUseNoLock = false)
{
return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
}
#endregion
}
}

View File

@@ -63,7 +63,10 @@ namespace CoreCms.Net.WeChat.Service.Configuration
/// 类目审核结果回调
/// </summary>
public const string OpenProductCategoryAudit = "open_product_category_audit";
/// <summary>
/// 品牌审核结果
/// </summary>
public const string OpenProductBrandAudit = "open_product_brand_audit";
#endregion

View File

@@ -0,0 +1,112 @@
/***********************************************************************
* Project: CoreCms.Net *
* Web: https://CoreCms.Net *
* ProjectName: 核心内容管理系统 *
* Author: 大灰灰 *
* Email: JianWeie@163.com *
* CreateTime: 2020-08-13 23:57:23
* Description: 暂无
***********************************************************************/
using System;
using System.Threading;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.IServices;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.WeChat.Service.HttpClients;
using CoreCms.Net.WeChat.Service.Models;
using MediatR;
using SKIT.FlurlHttpClient.Wechat.Api;
using SKIT.FlurlHttpClient.Wechat.Api.Events;
namespace CoreCms.Net.WeChat.Service.Mediator
{
/// <summary>
/// 表示 TEXT 事件的数据
/// </summary>
public class OpenProductBrandAuditEventCommand : IRequest<WeChatApiCallBack>
{
public OpenProductBrandAuditEvent EventObj { get; set; }
}
/// <summary>
/// 品牌审核结果
/// </summary>
public class OpenProductBrandAuditEventCommandHandler : IRequestHandler<OpenProductBrandAuditEventCommand, WeChatApiCallBack>
{
private readonly IWeChatTransactionComponentBrandAuditServices _auditServices;
private readonly IWeChatTransactionComponentBrandAuditLogServices _logServices;
private readonly ICoreCmsSettingServices _settingServices;
private readonly ICoreCmsSmsServices _smsServices;
public OpenProductBrandAuditEventCommandHandler(IWeChatTransactionComponentBrandAuditServices auditServices, IWeChatTransactionComponentBrandAuditLogServices logServices, ICoreCmsSettingServices settingServices, ICoreCmsSmsServices smsServices)
{
_auditServices = auditServices;
_logServices = logServices;
_settingServices = settingServices;
_smsServices = smsServices;
}
public async Task<WeChatApiCallBack> Handle(OpenProductBrandAuditEventCommand request, CancellationToken cancellationToken)
{
var jm = new WeChatApiCallBack() { Status = true };
if (request.EventObj != null)
{
var brand = await _auditServices.QueryByClauseAsync(p => p.audit_id == request.EventObj.EventData.AuditId);
if (brand != null)
{
await _auditServices.UpdateAsync(p => new WeChatTransactionComponentBrandAudit()
{
status = request.EventObj.EventData.Status,
rejectReason = request.EventObj.EventData.RejectReason,
brandId = request.EventObj.EventData.BrandId,
}, p => p.audit_id == request.EventObj.EventData.AuditId);
var log = new WeChatTransactionComponentBrandAuditLog();
log.audit_id = request.EventObj.EventData.AuditId;
log.status = request.EventObj.EventData.Status;
log.audit_type = request.EventObj.EventData.AuditType;
log.reject_reason = request.EventObj.EventData.RejectReason;
log.brand_id = request.EventObj.EventData.BrandId;
log.createTime = DateTime.Now;
var id = await _logServices.InsertAsync(log);
if (id > 0)
{
var smsOptions = await _settingServices.GetSmsOptions();
if (smsOptions.Enabled == true)
{
var smsBody = string.Empty;
if (log.status == 1)
{
smsBody = "你提交的品牌已经通过,请登录平台查看。";
}
else if (log.status == 9)
{
smsBody = "你提交的品牌审核已被拒绝,失败原因为:" + log.reject_reason + ",请修改资料后重新提交。";
}
if (!string.IsNullOrEmpty(smsBody))
{
var allConfigs = await _settingServices.GetConfigDictionaries();
var shopMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopMobile);
await _smsServices.SendSms(shopMobile, smsBody, smsOptions);
}
}
}
}
}
return await Task.FromResult(jm);
}
}
}

View File

@@ -0,0 +1,585 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/3/20 1:19:25
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Caching.AccressToken;
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 CoreCms.Net.WeChat.Service.HttpClients;
using CoreCms.Net.WeChat.Service.TransactionComponent.Enum;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SKIT.FlurlHttpClient.Wechat.Api;
using SKIT.FlurlHttpClient.Wechat.Api.Models;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 自定义交易组件上传品牌信息
///</summary>
[Description("自定义交易组件上传品牌信息")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize]
public class WeChatTransactionComponentBrandAuditController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IWeChatTransactionComponentBrandAuditServices _weChatTransactionComponentBrandAuditServices;
private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
/// <summary>
/// 构造函数
///</summary>
public WeChatTransactionComponentBrandAuditController(IWebHostEnvironment webHostEnvironment
, IWeChatTransactionComponentBrandAuditServices weChatTransactionComponentBrandAuditServices, IWeChatApiHttpClientFactory weChatApiHttpClientFactory)
{
_webHostEnvironment = webHostEnvironment;
_weChatTransactionComponentBrandAuditServices = weChatTransactionComponentBrandAuditServices;
_weChatApiHttpClientFactory = weChatApiHttpClientFactory;
}
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/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<WeChatTransactionComponentBrandAudit>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<WeChatTransactionComponentBrandAudit, object>> orderEx = orderField switch
{
"id" => p => p.id,
"license" => p => p.license,
"brand_audit_type" => p => p.brand_audit_type,
"trademark_type" => p => p.trademark_type,
"brand_management_type" => p => p.brand_management_type,
"commodity_origin_type" => p => p.commodity_origin_type,
"brand_wording" => p => p.brand_wording,
"sale_authorization" => p => p.sale_authorization,
"trademark_registration_certificate" => p => p.trademark_registration_certificate,
"trademark_change_certificate" => p => p.trademark_change_certificate,
"trademark_registrant" => p => p.trademark_registrant,
"trademark_registrant_nu" => p => p.trademark_registrant_nu,
"trademark_authorization_period" => p => p.trademark_authorization_period,
"trademark_registration_application" => p => p.trademark_registration_application,
"trademark_applicant" => p => p.trademark_applicant,
"trademark_application_time" => p => p.trademark_application_time,
"imported_goods_form" => p => p.imported_goods_form,
"scene_group_list" => p => p.scene_group_list,
"audit_id" => p => p.audit_id,
"status" => p => p.status,
"brandId" => p => p.brandId,
"rejectReason" => p => p.rejectReason,
"createTime" => p => p.createTime,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//营业执照或组织机构代码证 nvarchar
var license = Request.Form["license"].FirstOrDefault();
if (!string.IsNullOrEmpty(license))
{
where = where.And(p => p.license.Contains(license));
}
//认证审核类型 int
var brand_audit_type = Request.Form["brand_audit_type"].FirstOrDefault().ObjectToInt(0);
if (brand_audit_type > 0)
{
where = where.And(p => p.brand_audit_type == brand_audit_type);
}
//商标分类 nvarchar
var trademark_type = Request.Form["trademark_type"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_type))
{
where = where.And(p => p.trademark_type.Contains(trademark_type));
}
//经营类型 int
var brand_management_type = Request.Form["brand_management_type"].FirstOrDefault().ObjectToInt(0);
if (brand_management_type > 0)
{
where = where.And(p => p.brand_management_type == brand_management_type);
}
//商品产地是否进口 int
var commodity_origin_type = Request.Form["commodity_origin_type"].FirstOrDefault().ObjectToInt(0);
if (commodity_origin_type > 0)
{
where = where.And(p => p.commodity_origin_type == commodity_origin_type);
}
//商标/品牌词 nvarchar
var brand_wording = Request.Form["brand_wording"].FirstOrDefault();
if (!string.IsNullOrEmpty(brand_wording))
{
where = where.And(p => p.brand_wording.Contains(brand_wording));
}
//销售授权书 nvarchar
var sale_authorization = Request.Form["sale_authorization"].FirstOrDefault();
if (!string.IsNullOrEmpty(sale_authorization))
{
where = where.And(p => p.sale_authorization.Contains(sale_authorization));
}
//商标注册证书 nvarchar
var trademark_registration_certificate = Request.Form["trademark_registration_certificate"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_registration_certificate))
{
where = where.And(p => p.trademark_registration_certificate.Contains(trademark_registration_certificate));
}
//商标变更证明 nvarchar
var trademark_change_certificate = Request.Form["trademark_change_certificate"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_change_certificate))
{
where = where.And(p => p.trademark_change_certificate.Contains(trademark_change_certificate));
}
//商标注册人姓名 nvarchar
var trademark_registrant = Request.Form["trademark_registrant"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_registrant))
{
where = where.And(p => p.trademark_registrant.Contains(trademark_registrant));
}
//商标注册号/申请号 nvarchar
var trademark_registrant_nu = Request.Form["trademark_registrant_nu"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_registrant_nu))
{
where = where.And(p => p.trademark_registrant_nu.Contains(trademark_registrant_nu));
}
//商标有效期 datetime
var trademark_authorization_period = Request.Form["trademark_authorization_period"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_authorization_period))
{
if (trademark_authorization_period.Contains("到"))
{
var dts = trademark_authorization_period.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.trademark_authorization_period > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.trademark_authorization_period < dtEnd);
}
else
{
var dt = trademark_authorization_period.ObjectToDate();
where = where.And(p => p.trademark_authorization_period > dt);
}
}
//商标注册申请受理通知书 nvarchar
var trademark_registration_application = Request.Form["trademark_registration_application"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_registration_application))
{
where = where.And(p => p.trademark_registration_application.Contains(trademark_registration_application));
}
//商标申请人姓名 nvarchar
var trademark_applicant = Request.Form["trademark_applicant"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_applicant))
{
where = where.And(p => p.trademark_applicant.Contains(trademark_applicant));
}
//商标申请时间 datetime
var trademark_application_time = Request.Form["trademark_application_time"].FirstOrDefault();
if (!string.IsNullOrEmpty(trademark_application_time))
{
if (trademark_application_time.Contains("到"))
{
var dts = trademark_application_time.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.trademark_application_time > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.trademark_application_time < dtEnd);
}
else
{
var dt = trademark_application_time.ObjectToDate();
where = where.And(p => p.trademark_application_time > dt);
}
}
//中华人民共和国海关进口货物报关单 nvarchar
var imported_goods_form = Request.Form["imported_goods_form"].FirstOrDefault();
if (!string.IsNullOrEmpty(imported_goods_form))
{
where = where.And(p => p.imported_goods_form.Contains(imported_goods_form));
}
//商品使用场景 int
var scene_group_list = Request.Form["scene_group_list"].FirstOrDefault().ObjectToInt(0);
if (scene_group_list > 0)
{
where = where.And(p => p.scene_group_list == scene_group_list);
}
//审核单id nvarchar
var audit_id = Request.Form["audit_id"].FirstOrDefault();
if (!string.IsNullOrEmpty(audit_id))
{
where = where.And(p => p.audit_id.Contains(audit_id));
}
//审核状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0)
{
where = where.And(p => p.status == status);
}
//品牌id int
var brandId = Request.Form["brandId"].FirstOrDefault().ObjectToInt(0);
if (brandId > 0)
{
where = where.And(p => p.brandId == brandId);
}
//拒绝原因 nvarchar
var rejectReason = Request.Form["rejectReason"].FirstOrDefault();
if (!string.IsNullOrEmpty(rejectReason))
{
where = where.And(p => p.rejectReason.Contains(rejectReason));
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _weChatTransactionComponentBrandAuditServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
//认证审核类型
var registerType = EnumHelper.EnumToList<GlobalEnumVars.RegisterType>();
//商标分类
var trademarkType = EnumHelper.EnumToList<GlobalEnumVars.TrademarkType>();
//品牌经营类型
var brandManagementType = EnumHelper.EnumToList<GlobalEnumVars.BrandManagementType>();
//商品产地是否进口
var commodityOriginType = EnumHelper.EnumToList<GlobalEnumVars.CommodityOriginType>();
var auditCategoryStatus = EnumHelper.EnumToList<AuditEnum.AuditCategoryStatus>();
jm.data = new
{
registerType,
trademarkType,
brandManagementType,
commodityOriginType,
auditCategoryStatus
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
//认证审核类型
var registerType = EnumHelper.EnumToList<GlobalEnumVars.RegisterType>();
//商标分类
var trademarkType = EnumHelper.EnumToList<GlobalEnumVars.TrademarkType>();
//品牌经营类型
var brandManagementType = EnumHelper.EnumToList<GlobalEnumVars.BrandManagementType>();
//商品产地是否进口
var commodityOriginType = EnumHelper.EnumToList<GlobalEnumVars.CommodityOriginType>();
jm.data = new
{
registerType,
trademarkType,
brandManagementType,
commodityOriginType,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] WeChatTransactionComponentBrandAudit entity)
{
var jm = await _weChatTransactionComponentBrandAuditServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/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 _weChatTransactionComponentBrandAuditServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
//认证审核类型
var registerType = EnumHelper.EnumToList<GlobalEnumVars.RegisterType>();
//商标分类
var trademarkType = EnumHelper.EnumToList<GlobalEnumVars.TrademarkType>();
//品牌经营类型
var brandManagementType = EnumHelper.EnumToList<GlobalEnumVars.BrandManagementType>();
//商品产地是否进口
var commodityOriginType = EnumHelper.EnumToList<GlobalEnumVars.CommodityOriginType>();
jm.data = new
{
model,
registerType,
trademarkType,
brandManagementType,
commodityOriginType,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] WeChatTransactionComponentBrandAudit entity)
{
var jm = await _weChatTransactionComponentBrandAuditServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/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 _weChatTransactionComponentBrandAuditServices.ExistsAsync(p => p.id == entity.id, true);
if (!model)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm = await _weChatTransactionComponentBrandAuditServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/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 _weChatTransactionComponentBrandAuditServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentBrandAudit/DoAudit/10
/// <summary>
/// 提交审核
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("提交审核")]
public async Task<AdminUiCallBack> DoAudit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _weChatTransactionComponentBrandAuditServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
//获取小程序认证
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
var request = new ShopAuditAuditBrandRequest();
request.AccessToken = accessToken;
request.Audit.LicenseUrl = model.license;
request.Audit.Brand.BrandAuditType = model.brand_audit_type;
request.Audit.Brand.TrademarkType = model.trademark_type;
request.Audit.Brand.BrandManagementType = model.brand_management_type;
request.Audit.Brand.CommodityOriginType = model.commodity_origin_type;
request.Audit.Brand.BrandWording = model.brand_wording;
request.Audit.Brand.SaleAuthorizationUrlList = !string.IsNullOrEmpty(model.sale_authorization)
? new List<string>(model.sale_authorization.Split(",")) : new List<string>();
request.Audit.Brand.TrademarkRegistrationCertificateUrlList = !string.IsNullOrEmpty(model.trademark_registration_certificate)
? new List<string>(model.trademark_registration_certificate.Split(",")) : new List<string>();
request.Audit.Brand.TrademarkChangeCertificateUrlList = !string.IsNullOrEmpty(model.trademark_change_certificate)
? new List<string>(model.trademark_change_certificate.Split(",")) : new List<string>();
request.Audit.Brand.TrademarkRegistrant = model.trademark_registrant;
request.Audit.Brand.TrademarkRegistrantNumber = model.trademark_registrant_nu;
request.Audit.Brand.TrademarkAuthorizationTime = model.trademark_authorization_period;
request.Audit.Brand.TrademarkRegistrationApplicationUrlList = !string.IsNullOrEmpty(model.trademark_registration_application)
? new List<string>(model.trademark_registration_application.Split(",")) : new List<string>();
request.Audit.Brand.TrademarkApplicant = model.trademark_applicant;
request.Audit.Brand.TrademarkAuthorizationTime = model.trademark_application_time;
request.Audit.Brand.ImportedGoodsFormUrlList = !string.IsNullOrEmpty(model.imported_goods_form)
? new List<string>(model.imported_goods_form.Split(",")) : new List<string>();
var response = await client.ExecuteShopAuditAuditBrandAsync(request);
if (response.IsSuccessful())
{
var bl = await _weChatTransactionComponentBrandAuditServices.UpdateAsync(
p => new WeChatTransactionComponentBrandAudit() { audit_id = response.AuditId },
p => p.id == model.id);
jm.code = 0;
jm.msg = "提交审核成功";
}
else
{
jm.code = 1;
jm.data = response.ErrorCode;
jm.msg = response.ErrorMessage;
jm.otherData = accessToken;
}
return jm;
}
#endregion
}
}

View File

@@ -843,6 +843,74 @@ namespace CoreCms.Net.Web.Admin.Controllers
}
#endregion
#region ============================================================
// POST: Api/WeChatTransactionComponentGood/WithoutAuditUpdateSKU/10
/// <summary>
/// 提交更新
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("免审更新")]
public async Task<AdminUiCallBack> WithoutAuditUpdateSKU([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _weChatTransactionComponentGoodsServices.QueryByClauseAsync(p => p.id == entity.id, true);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var sku = await _weChatTransactionComponentGoodSkuServices.QueryListByClauseAsync(p =>
p.isSelect == true && p.outProductId == model.outProductId);
//获取小程序认证
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
var request = new ShopSPUUpdateWithoutAuditRequest();
request.AccessToken = accessToken;
request.OutProductId = model.outProductId;
request.ProductId = model.productId;
request.PagePath = model.path;
request.SKUList = new List<ShopSPUUpdateWithoutAuditRequest.Types.SKU>();
sku.ForEach(p =>
{
var item = new ShopSPUUpdateWithoutAuditRequest.Types.SKU();
item.OutSKUId = p.outSkuId;
item.SalePrice = Convert.ToInt32(p.salePrice * 100);
item.MarketPrice = Convert.ToInt32(p.marketPrice * 100);
item.Stock = p.stockNum;
item.BarCode = p.barCode;
item.SKUCode = p.skuCode;
request.SKUList.Add(item);
});
var response = await client.ExecuteShopSPUUpdateWithoutAuditAsync(request);
if (response.IsSuccessful())
{
jm.code = 0;
jm.msg = "更新成功";
}
else
{
jm.code = 1;
jm.data = response.ErrorCode;
jm.msg = response.ErrorMessage;
}
return jm;
}
#endregion
}
}

View File

@@ -46,6 +46,7 @@
<Compile Include="Controllers\WeChat\CoreCmsUserWeChatInfoController.cs" />
<Compile Include="Controllers\WeChat\CoreCmsUserWeChatMsgTemplateController.cs" />
<Compile Include="Controllers\WeChat\WeChatTransactionComponentAuditCategoryController.cs" />
<Compile Include="Controllers\WeChat\WeChatTransactionComponentBrandAuditController.cs" />
<Compile Include="Controllers\WeChat\WeChatTransactionComponentDeliveryCompanyController.cs" />
<Compile Include="Controllers\WeChat\WeChatTransactionComponentGoodController.cs" />
<Compile Include="Controllers\WeChat\WeChatTransactionComponentThirdCategoryController.cs" />

View File

@@ -109,6 +109,7 @@ a {
}
.coreshop-form .layui-form-label {
font-size: 12px;
padding: 8px 5px;
}
/*用于给*打红色标记一般用于<i>*/
.required-color {
@@ -1065,3 +1066,41 @@ xm-select .xm-body .xm-option.hide-icon.selected {
display: inline;
vertical-align: middle;
}
.continuousCheckInBox {
overflow: hidden;
width: 450px;
margin-left: 50px;
border: 1px solid rgba(0, 0, 0, 0.1);
padding: 10px;
margin-bottom: 10px;
border-radius: 10px;
position: relative;
float: left;
}
.continuousCheckInBox .layui-form-item label {
width: 100px;
}
.continuousCheckInBox .btn-continuous-delete {
position: absolute;
right: 30px;
top: 30px;
}
.cumulativeCheckInBox {
overflow: hidden;
width: 450px;
margin-left: 50px;
border: 1px solid rgba(0, 0, 0, 0.1);
padding: 10px;
margin-bottom: 10px;
border-radius: 10px;
position: relative;
float: left;
}
.cumulativeCheckInBox .layui-form-item label {
width: 100px;
}
.cumulativeCheckInBox .btn-delete {
position: absolute;
right: 30px;
top: 30px;
}

View File

@@ -43,7 +43,7 @@ a { cursor: pointer }
.layui-form-mid { padding: 8px 10px !important; border-bottom: 1px dashed #eee; min-height: 21px; color: #999 !important;
.layui-form-switch { margin-top: -3px; }
}
/*表单左侧label文字大小重写*/ .layui-form-label { font-size: 12px; }
/*表单左侧label文字大小重写*/ .layui-form-label { font-size: 12px; padding: 8px 5px; }
}
/*用于给*打红色标记一般用于<i>*/
.required-color { color: red; }
@@ -362,3 +362,17 @@ xm-select .xm-label .xm-label-block, xm-select .xm-body .xm-option.hide-icon.sel
.ew-tree-table .ew-tree-pack { cursor: pointer; line-height: 16px; display: inline; vertical-align: middle; }
.ew-tree-table .ew-tree-pack > span { height: 16px; line-height: 16px; display: inline; vertical-align: middle; }
//连续签到
.continuousCheckInBox { overflow: hidden; width: 450px; margin-left: 50px; border: 1px solid rgba(0, 0, 0, 0.1); padding: 10px; margin-bottom: 10px; border-radius: 10px; position: relative; float: left;
.layui-form-item label { width: 100px; }
.btn-continuous-delete { position: absolute; right: 30px; top: 30px; }
}
//累计签到
.cumulativeCheckInBox { overflow: hidden; width: 450px; margin-left: 50px; border: 1px solid rgba(0, 0, 0, 0.1); padding: 10px; margin-bottom: 10px; border-radius: 10px; position: relative; float: left;
.layui-form-item label { width: 100px; }
.btn-delete { position: absolute; right: 30px; top: 30px; }
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,478 @@
<style>
.layui-upload-list { min-height: 120px; border: 1px solid #e6e6fa; padding: 10px; }
</style>
<script type="text/html" template lay-done="layui.data.done(d);">
<div class="layui-form coreshop-form transactioncomponent layui-form-pane" lay-filter="LAY-app-WeChatTransactionComponentBrandAudit-createForm" id="LAY-app-WeChatTransactionComponentBrandAudit-createForm">
<div class="layui-form-item">
<label for="license" class="layui-form-label layui-form-required">营业执照</label>
<div class="layui-input-inline layui-inline-12">
<input name="license" id="license" lay-verify="required|verifylicense" class="layui-input" lay-reqText="点击上传营业执照或组织机构代码证" placeholder="点击上传营业执照或组织机构代码证" />
</div>
<div class="layui-input-block">
<img class="coreshop-upload-img" id="viewImgBoxlicense" src="{{ layui.setter.noImagePicUrl }}">
<button type="button" class="layui-btn" id="upBtnlicense">点击上传营业执照或组织机构代码证</button>
</div>
</div>
<div class="layui-form-item">
<label for="brand_audit_type" class="layui-form-label layui-form-required">认证审核类型</label>
<div class="layui-input-inline layui-inline-3">
<select name="brand_audit_type" lay-verify="required|number" lay-reqText="请选择证审核类型">
<option value="">请选择证审核类型</option>
{{# layui.each(indexData.registerType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
<label for="trademark_type" class="layui-form-label layui-form-required">商标分类</label>
<div class="layui-input-inline layui-inline-3">
<select name="trademark_type" lay-verify="required|number" lay-reqText="请选择商标分类">
<option value="">请选择商标分类</option>
{{# layui.each(indexData.trademarkType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
<label for="brand_management_type" class="layui-form-label layui-form-required">经营类型</label>
<div class="layui-input-inline layui-inline-3">
<select name="brand_management_type" lay-reqText="请选择经营类型" lay-verify="required|number">
<option value="">请选择经营类型</option>
{{# layui.each(indexData.brandManagementType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
<label for="commodity_origin_type" class="layui-form-label layui-form-required">是否进口</label>
<div class="layui-input-inline layui-inline-3">
<select name="commodity_origin_type" lay-reqText="请选择商品是否进口" lay-verify="required|number">
<option value="">请选择商品是否进口</option>
{{# layui.each(indexData.commodityOriginType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="brand_wording" class="layui-form-label layui-form-required">商标/品牌词</label>
<div class="layui-input-block">
<input name="brand_wording" lay-verify="required|verifybrand_wording" class="layui-input" lay-reqText="请输入商标/品牌词" placeholder="请输入商标/品牌词" />
</div>
</div>
<!--<div class="layui-form-item">
<label for="sale_authorization" class="layui-form-label">销售授权书</label>
<div class="layui-input-block">
<input name="sale_authorization" lay-verify="required|verifysale_authorization" class="layui-input" lay-reqText="请输入销售授权书" placeholder="请输入销售授权书" />
</div>
</div>-->
<fieldset class="layui-elem-field layui-field-title site-title"><legend><a name="compress">销售授权书如商持人为自然人还需提供有其签名的身份证正反面扫描件最多不超过10张 <button type="button" class="layui-btn layui-btn-xs" id="upBtnSaleAuthorization"><i class="layui-icon"></i></button></a></legend></fieldset>
<div class="layui-form-item">
<div class="layui-input-inline layui-inline-2">
<input type="hidden" name="sale_authorization" id="sale_authorization" class="layui-input" placeholder="请上传缩略图" lay-reqText="请上传缩略图" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-upload-list" id="sale_authorization_list"></div>
</div>
<div class="layui-form-item">
<label for="trademark_registration_certificate" class="layui-form-label layui-form-required">商标注册证书</label>
<div class="layui-input-inline layui-inline-12">
<input name="trademark_registration_certificate" id="trademark_registration_certificate" lay-verify="required|verifytrademark_registration_certificate" class="layui-input" lay-reqText="请输入商标注册证书" placeholder="请输入商标注册证书" />
</div>
<div class="layui-input-block">
<img class="coreshop-upload-img" id="viewImgBoxtrademark_registration_certificate" src="{{ layui.setter.noImagePicUrl }}">
<button type="button" class="layui-btn" id="upBtntrademark_registration_certificate">点击上传商标注册证书</button>
</div>
</div>
<!--<div class="layui-form-item">
<label for="trademark_change_certificate" class="layui-form-label">商标变更证明</label>
<div class="layui-input-block">
<input name="trademark_change_certificate" lay-verify="required|verifytrademark_change_certificate" class="layui-input" lay-reqText="请输入商标变更证明" placeholder="请输入商标变更证明" />
</div>
</div>-->
<fieldset class="layui-elem-field layui-field-title site-title"><legend><a name="compress">商标变更证明最多不超过5张 <button type="button" class="layui-btn layui-btn-xs" id="upBtnTrademarkChangeCertificate"><i class="layui-icon"></i></button></a></legend></fieldset>
<div class="layui-form-item">
<div class="layui-input-inline layui-inline-2">
<input type="hidden" name="trademark_change_certificate" id="trademark_change_certificate" class="layui-input" placeholder="请上传缩略图" lay-reqText="请上传缩略图" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-upload-list" id="trademark_change_certificate_list"></div>
</div>
<div class="layui-form-item">
<label for="trademark_registrant" class="layui-form-label layui-form-required">商标注册人姓名</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_registrant" lay-verify="required|verifytrademark_registrant" class="layui-input" lay-reqText="请输入商标注册人姓名" placeholder="请输入商标注册人姓名" />
</div>
<label for="trademark_registrant_nu" class="layui-form-label layui-form-required">商标注册号</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_registrant_nu" lay-verify="required|verifytrademark_registrant_nu" class="layui-input" lay-reqText="请输入商标注册号/申请号" placeholder="请输入商标注册号/申请号" />
</div>
<div class="layui-form-mid">可提交商标注册号/申请号</div>
</div>
<div class="layui-form-item">
<label for="trademark_authorization_period" class="layui-form-label layui-form-required">商标有效期</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_authorization_period" id="createTime-WeChatTransactionComponentBrandAudit-trademark_authorization_period" type="text" lay-verify="required|datetime" class="layui-input" placeholder="请输入商标有效期" lay-reqText="请输入商标有效期" />
</div>
</div>
<div class="layui-form-item">
<label for="trademark_registration_application" class="layui-form-label">商标受理通知书</label>
<div class="layui-input-inline layui-inline-12">
<input name="trademark_registration_application" id="trademark_registration_application" lay-verify="required|verifytrademark_registration_application" class="layui-input" lay-reqText="请输入商标注册申请受理通知书" placeholder="请输入商标注册申请受理通知书" />
</div>
<div class="layui-input-block">
<img class="coreshop-upload-img" id="viewImgBoxTrademarkRegistrationApplication" src="{{ layui.setter.noImagePicUrl }}">
<button type="button" class="layui-btn" id="upBtnTrademarkRegistrationApplication">点击上传商标受理通知书</button>
</div>
</div>
<div class="layui-form-item">
<label for="trademark_applicant" class="layui-form-label">商标申请人姓名</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_applicant" lay-verify="required|verifytrademark_applicant" class="layui-input" lay-reqText="请输入商标申请人姓名" placeholder="请输入商标申请人姓名" />
</div>
<label for="trademark_application_time" class="layui-form-label">商标申请时间</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_application_time" id="createTime-WeChatTransactionComponentBrandAudit-trademark_application_time" type="text" lay-verify="required|datetime" class="layui-input" placeholder="请输入商标申请时间" lay-reqText="请输入商标申请时间" />
</div>
</div>
<!--<div class="layui-form-item">
<label for="imported_goods_form" class="layui-form-label">海关报关单</label>
<div class="layui-input-block">
<input name="imported_goods_form" lay-verify="required|verifyimported_goods_form" class="layui-input" lay-reqText="请输入中华人民共和国海关进口货物报关单" placeholder="请输入中华人民共和国海关进口货物报关单" />
</div>
</div>-->
<fieldset class="layui-elem-field layui-field-title site-title"><legend><a name="compress">海关报关单最多不超过5张 <button type="button" class="layui-btn layui-btn-xs" id="upBtnImportedGoodsForm"><i class="layui-icon"></i></button></a></legend></fieldset>
<div class="layui-form-item">
<div class="layui-input-inline layui-inline-2">
<input type="hidden" name="imported_goods_form" id="imported_goods_form" class="layui-input" placeholder="请上传缩略图" lay-reqText="请上传缩略图" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-upload-list" id="imported_goods_form_list"></div>
</div>
<div class="layui-form-item">
<label for="scene_group_list" class="layui-form-label">商品使用场景</label>
<div class="layui-input-block">
<select name="scene_group_list" lay-reqText="请选择商品使用场景" lay-verify="required|number">
<option value="1">视频号</option>
<option value="3">订单中心</option>
</select>
</div>
</div>
<div class="layui-form-item text-right core-hidden">
<input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-WeChatTransactionComponentBrandAudit-createForm-submit" id="LAY-app-WeChatTransactionComponentBrandAudit-createForm-submit" value="确认添加">
</div>
</div>
</script>
<script id="image_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="imgdiv">
<img src="{{ item }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px;height:100px;">
<div id="operate">
<div><a class="del" onclick="delImg(this,'{{ item }}')">删除</a>|<a class="setmain" onclick="setDefault(this,'{{ item }}')"></a></div>
</div>
</div>
{{# }); }}
</script>
<script id="image_hg_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="imgdiv">
<img src="{{ item }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px;height:100px;">
<div id="operate">
<div><a class="del" onclick="delHGImg(this,'{{ item }}')">删除</a>|<a class="setmain" onclick="setHGDefault(this,'{{ item }}')"></a></div>
</div>
</div>
{{# }); }}
</script>
<script id="image_xs_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="imgdiv">
<img src="{{ item }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px;height:100px;">
<div id="operate">
<div><a class="del" onclick="delXSImg(this,'{{ item }}')">删除</a>|<a class="setmain" onclick="setXSDefault(this,'{{ item }}')"></a></div>
</div>
</div>
{{# }); }}
</script>
<script>
var $;
var trademark_change_certificate_imgs = [];
var imported_goods_form_imgs = [];
var sale_authorization_imgs = [];
var debug = layui.setter.debug;
layui.data.done = function (d) {
//开启调试情况下获取接口赋值数据
if (debug) { console.log(d.params.data); }
layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'laytpl'],
function () {
$ = layui.$; var form = layui.form, admin = layui.admin, laydate = layui.laydate, upload = layui.upload, coreHelper = layui.coreHelper, laytpl = layui.laytpl;
//营业执照上传
upload.render({
elem: '#upBtnlicense'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
$('#viewImgBoxlicense').attr('src', res.data.fileUrl);
$("#license").val(res.data.fileUrl);
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//商标注册证书
upload.render({
elem: '#upBtntrademark_registration_certificate'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
$('#viewImgBoxtrademark_registration_certificate').attr('src', res.data.fileUrl);
$("#trademark_registration_certificate").val(res.data.fileUrl);
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//商标变更证明
upload.render({
elem: '#upBtnTrademarkChangeCertificate'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
trademark_change_certificate_imgs.push(res.data.fileUrl);
$('#trademark_change_certificate').val(trademark_change_certificate_imgs);
var getTpl = image_tpl.innerHTML, view = document.getElementById('trademark_change_certificate_list');
laytpl(getTpl).render(trademark_change_certificate_imgs, function (html) {
view.innerHTML = html;
});
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//商标受理通知书
upload.render({
elem: '#upBtnTrademarkRegistrationApplication'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
$('#viewImgBoxTrademarkRegistrationApplication').attr('src', res.data.fileUrl);
$("#trademark_registration_application").val(res.data.fileUrl);
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//海关报关单
upload.render({
elem: '#upBtnImportedGoodsForm'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
imported_goods_form_imgs.push(res.data.fileUrl);
$('#imported_goods_form').val(imported_goods_form_imgs);
var getTpl = image_hg_tpl.innerHTML, view = document.getElementById('imported_goods_form_list');
laytpl(getTpl).render(imported_goods_form_imgs, function (html) {
view.innerHTML = html;
});
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//销售授权书
upload.render({
elem: '#upBtnSaleAuthorization'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
sale_authorization_imgs.push(res.data.fileUrl);
$('#sale_authorization').val(sale_authorization_imgs);
var getTpl = image_xs_tpl.innerHTML, view = document.getElementById('sale_authorization_list');
laytpl(getTpl).render(sale_authorization_imgs, function (html) {
view.innerHTML = html;
});
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
laydate.render({
elem: '#createTime-WeChatTransactionComponentBrandAudit-trademark_authorization_period',
type: 'datetime'
});
laydate.render({
elem: '#createTime-WeChatTransactionComponentBrandAudit-trademark_application_time',
type: 'datetime'
});
form.verify({
verifylicense: [/^.{0,500}$/, '营业执照或组织机构代码证最大只允许输入500位字符'],
verifytrademark_type: [/^.{0,10}$/, '商标分类最大只允许输入10位字符'],
verifybrand_wording: [/^.{0,50}$/, '商标/品牌词最大只允许输入50位字符'],
verifysale_authorization: [/^.{0,500}$/, '销售授权书最大只允许输入500位字符'],
verifytrademark_registration_certificate: [/^.{0,500}$/, '商标注册证书最大只允许输入500位字符'],
verifytrademark_change_certificate: [/^.{0,500}$/, '商标变更证明最大只允许输入500位字符'],
verifytrademark_registrant: [/^.{0,100}$/, '商标注册人姓名最大只允许输入100位字符'],
verifytrademark_registrant_nu: [/^.{0,10}$/, '商标注册号/申请号最大只允许输入10位字符'],
verifytrademark_registration_application: [/^.{0,100}$/, '商标注册申请受理通知书最大只允许输入100位字符'],
verifytrademark_applicant: [/^.{0,100}$/, '商标申请人姓名最大只允许输入100位字符'],
verifyimported_goods_form: [/^.{0,500}$/, '中华人民共和国海关进口货物报关单最大只允许输入500位字符'],
});
//重载form
form.render(null, 'LAY-app-WeChatTransactionComponentBrandAudit-createForm');
})
};
//删除图片
function delImg(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
imgDiv.remove();
var index = trademark_change_certificate_imgs.indexOf(imageUrl);
if (index > -1) {
trademark_change_certificate_imgs.splice(index, 1);
}
$('#trademark_change_certificate').val(trademark_change_certificate_imgs);
}
//设为默认图
function setDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
$("#trademark_change_certificate_list").prepend(imgDiv);
var index = trademark_change_certificate_imgs.indexOf(imageUrl);
if (index > -1) {
trademark_change_certificate_imgs.unshift(trademark_change_certificate_imgs.splice(index, 1)[0]);
}
$('#trademark_change_certificate').val(trademark_change_certificate_imgs);
}
//删除图片
function delHGImg(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
imgDiv.remove();
var index = imported_goods_form_imgs.indexOf(imageUrl);
if (index > -1) {
imported_goods_form_imgs.splice(index, 1);
}
$('#imported_goods_form').val(imported_goods_form_imgs);
}
//设为默认图
function setHGDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
$("#imported_goods_form_list").prepend(imgDiv);
var index = imported_goods_form_imgs.indexOf(imageUrl);
if (index > -1) {
imported_goods_form_imgs.unshift(imported_goods_form_imgs.splice(index, 1)[0]);
}
$('#imported_goods_form').val(imported_goods_form_imgs);
}
//删除图片
function delXSImg(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
imgDiv.remove();
var index = sale_authorization_imgs.indexOf(imageUrl);
if (index > -1) {
sale_authorization_imgs.splice(index, 1);
}
$('#sale_authorization').val(sale_authorization_imgs);
}
//设为默认图
function setXSDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
$("#sale_authorization_list").prepend(imgDiv);
var index = sale_authorization_imgs.indexOf(imageUrl);
if (index > -1) {
sale_authorization_imgs.unshift(sale_authorization_imgs.splice(index, 1)[0]);
}
$('#sale_authorization').val(sale_authorization_imgs);
}
</script>

View File

@@ -0,0 +1,189 @@
<script type="text/html" template lay-done="layui.data.done(d);">
<table class="layui-table layui-form" lay-filter="LAY-app-WeChatTransactionComponentBrandAudit-detailsForm" id="LAY-app-WeChatTransactionComponentBrandAudit-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="license">营业执照或组织机构代码证</label>
</td>
<td>
{{ d.params.data.license || '' }}
</td>
</tr>
<tr>
<td>
<label for="brand_audit_type">认证审核类型</label>
</td>
<td>
{{ d.params.data.brand_audit_type || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_type">商标分类</label>
</td>
<td>
{{ d.params.data.trademark_type || '' }}
</td>
</tr>
<tr>
<td>
<label for="brand_management_type">经营类型</label>
</td>
<td>
{{ d.params.data.brand_management_type || '' }}
</td>
</tr>
<tr>
<td>
<label for="commodity_origin_type">商品产地是否进口</label>
</td>
<td>
{{ d.params.data.commodity_origin_type || '' }}
</td>
</tr>
<tr>
<td>
<label for="brand_wording">商标/品牌词</label>
</td>
<td>
{{ d.params.data.brand_wording || '' }}
</td>
</tr>
<tr>
<td>
<label for="sale_authorization">销售授权书</label>
</td>
<td>
{{ d.params.data.sale_authorization || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_registration_certificate">商标注册证书</label>
</td>
<td>
{{ d.params.data.trademark_registration_certificate || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_change_certificate">商标变更证明</label>
</td>
<td>
{{ d.params.data.trademark_change_certificate || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_registrant">商标注册人姓名</label>
</td>
<td>
{{ d.params.data.trademark_registrant || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_registrant_nu">商标注册号/申请号</label>
</td>
<td>
{{ d.params.data.trademark_registrant_nu || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_authorization_period">商标有效期</label>
</td>
<td>
{{ d.params.data.trademark_authorization_period || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_registration_application">商标注册申请受理通知书</label>
</td>
<td>
{{ d.params.data.trademark_registration_application || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_applicant">商标申请人姓名</label>
</td>
<td>
{{ d.params.data.trademark_applicant || '' }}
</td>
</tr>
<tr>
<td>
<label for="trademark_application_time">商标申请时间</label>
</td>
<td>
{{ d.params.data.trademark_application_time || '' }}
</td>
</tr>
<tr>
<td>
<label for="imported_goods_form">中华人民共和国海关进口货物报关单</label>
</td>
<td>
{{ d.params.data.imported_goods_form || '' }}
</td>
</tr>
<tr>
<td>
<label for="scene_group_list">商品使用场景</label>
</td>
<td>
{{ d.params.data.scene_group_list || '' }}
</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-WeChatTransactionComponentBrandAudit-detailsForm');
});
};
</script>

View File

@@ -0,0 +1,515 @@
<style>
.layui-upload-list { min-height: 120px; border: 1px solid #e6e6fa; padding: 10px; }
</style>
<script type="text/html" template lay-done="layui.data.sendParams(d);">
<div class="layui-form coreshop-form transactioncomponent layui-form-pane" lay-filter="LAY-app-WeChatTransactionComponentBrandAudit-editForm" id="LAY-app-WeChatTransactionComponentBrandAudit-editForm">
<input type="hidden" name="id" value="{{d.params.data.model.id || '' }}" />
<div class="layui-form-item">
<label for="license" class="layui-form-label layui-form-required">营业执照</label>
<div class="layui-input-inline layui-inline-12">
<input name="license" id="license" lay-verify="required|verifylicense" class="layui-input" lay-reqText="点击上传营业执照或组织机构代码证" placeholder="点击上传营业执照或组织机构代码证" value="{{d.params.data.model.license || '' }}" />
</div>
<div class="layui-input-block">
<img class="coreshop-upload-img" id="viewImgBoxlicense" src="{{ d.params.data.model.license || layui.setter.noImagePicUrl }}">
<button type="button" class="layui-btn" id="upBtnlicense">点击上传营业执照或组织机构代码证</button>
</div>
</div>
<div class="layui-form-item">
<label for="brand_audit_type" class="layui-form-label layui-form-required">认证审核类型</label>
<div class="layui-input-inline layui-inline-3">
<select name="brand_audit_type" lay-verify="required|number" lay-reqText="请选择证审核类型">
<option value="">请选择证审核类型</option>
{{# layui.each(indexData.registerType, function(index, item){ }}
<option value="{{ item.value }}" {{d.params.data.model.brand_audit_type == item.value ? 'selected="selected"' :''}}>{{ item.title }}</option>
{{# }); }}
</select>
</div>
<label for="trademark_type" class="layui-form-label layui-form-required">商标分类</label>
<div class="layui-input-inline layui-inline-3">
<select name="trademark_type" lay-verify="required|number" lay-reqText="请选择商标分类">
<option value="">请选择商标分类</option>
{{# layui.each(indexData.trademarkType, function(index, item){ }}
<option value="{{ item.value }}" {{d.params.data.model.trademark_type ==item.value ? 'selected="selected"' :''}}>{{ item.title }}</option>
{{# }); }}
</select>
</div>
<label for="brand_management_type" class="layui-form-label layui-form-required">经营类型</label>
<div class="layui-input-inline layui-inline-3">
<select name="brand_management_type" lay-reqText="请选择经营类型" lay-verify="required|number">
<option value="">请选择经营类型</option>
{{# layui.each(indexData.brandManagementType, function(index, item){ }}
<option value="{{ item.value }}" {{d.params.data.model.brand_management_type ==item.value ? 'selected="selected"' :''}}>{{ item.title }}</option>
{{# }); }}
</select>
</div>
<label for="commodity_origin_type" class="layui-form-label layui-form-required">是否进口</label>
<div class="layui-input-inline layui-inline-3">
<select name="commodity_origin_type" lay-reqText="请选择商品是否进口" lay-verify="required|number">
<option value="">请选择商品是否进口</option>
{{# layui.each(indexData.commodityOriginType, function(index, item){ }}
<option value="{{ item.value }}" {{d.params.data.model.commodity_origin_type ==item.value ? 'selected="selected"' :''}}>{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="brand_wording" class="layui-form-label layui-form-required">商标/品牌词</label>
<div class="layui-input-block">
<input name="brand_wording" lay-verType="tips" lay-verify="required|verifybrand_wording" class="layui-input" placeholder="请输入商标/品牌词" lay-reqText="请输入商标/品牌词" value="{{d.params.data.model.brand_wording || '' }}" />
</div>
</div>
<!--<div class="layui-form-item">
<label for="sale_authorization" class="layui-form-label layui-form-required">销售授权书</label>
<div class="layui-input-block">
<input name="sale_authorization" lay-verType="tips" lay-verify="required|verifysale_authorization" class="layui-input" placeholder="请输入销售授权书" lay-reqText="请输入销售授权书" value="{{d.params.data.model.sale_authorization || '' }}" />
</div>
</div>-->
<fieldset class="layui-elem-field layui-field-title site-title"><legend><a name="compress">销售授权书如商持人为自然人还需提供有其签名的身份证正反面扫描件最多不超过10张 <button type="button" class="layui-btn layui-btn-xs" id="upBtnSaleAuthorization"><i class="layui-icon"></i></button></a></legend></fieldset>
<div class="layui-form-item">
<div class="layui-input-inline layui-inline-2">
<input type="hidden" name="sale_authorization" id="sale_authorization" value="{{d.params.data.model.sale_authorization || '' }}" class="layui-input" placeholder="请上传缩略图" lay-reqText="请上传缩略图" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-upload-list" id="sale_authorization_list"></div>
</div>
<!--<div class="layui-form-item">
<label for="trademark_registration_certificate" class="layui-form-label layui-form-required">商标注册证书</label>
<div class="layui-input-block">
<input name="trademark_registration_certificate" lay-verType="tips" lay-verify="required|verifytrademark_registration_certificate" class="layui-input" placeholder="请输入商标注册证书" lay-reqText="请输入商标注册证书" value="{{d.params.data.model.trademark_registration_certificate || '' }}" />
</div>
</div>-->
<div class="layui-form-item">
<label for="trademark_registration_certificate" class="layui-form-label layui-form-required">商标注册证书</label>
<div class="layui-input-inline layui-inline-12">
<input name="trademark_registration_certificate" id="trademark_registration_certificate" lay-verify="required|verifytrademark_registration_certificate" class="layui-input" lay-reqText="请输入商标注册证书" placeholder="请输入商标注册证书" value="{{d.params.data.model.trademark_registration_certificate || '' }}" />
</div>
<div class="layui-input-block">
<img class="coreshop-upload-img" id="viewImgBoxtrademark_registration_certificate" src="{{ d.params.data.model.trademark_registration_certificate ||layui.setter.noImagePicUrl }}">
<button type="button" class="layui-btn" id="upBtntrademark_registration_certificate">点击上传商标注册证书</button>
</div>
</div>
<!--<div class="layui-form-item">
<label for="trademark_change_certificate" class="layui-form-label layui-form-required">商标变更证明</label>
<div class="layui-input-block">
<input name="trademark_change_certificate" lay-verType="tips" lay-verify="required|verifytrademark_change_certificate" class="layui-input" placeholder="请输入商标变更证明" lay-reqText="请输入商标变更证明" value="{{d.params.data.model.trademark_change_certificate || '' }}" />
</div>
</div>-->
<fieldset class="layui-elem-field layui-field-title site-title"><legend><a name="compress">商标变更证明最多不超过5张 <button type="button" class="layui-btn layui-btn-xs" id="upBtnTrademarkChangeCertificate"><i class="layui-icon"></i></button></a></legend></fieldset>
<div class="layui-form-item">
<div class="layui-input-inline layui-inline-2">
<input type="hidden" name="trademark_change_certificate" id="trademark_change_certificate" value="{{d.params.data.model.trademark_change_certificate || '' }}" class="layui-input" placeholder="请上传缩略图" lay-reqText="请上传缩略图" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-upload-list" id="trademark_change_certificate_list"></div>
</div>
<div class="layui-form-item">
<label for="trademark_registrant" class="layui-form-label layui-form-required">商标注册人姓名</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_registrant" lay-verType="tips" lay-verify="required|verifytrademark_registrant" class="layui-input" placeholder="请输入商标注册人姓名" lay-reqText="请输入商标注册人姓名" value="{{d.params.data.model.trademark_registrant || '' }}" />
</div>
<label for="trademark_registrant_nu" class="layui-form-label layui-form-required">商标注册号/申请号</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_registrant_nu" lay-verType="tips" lay-verify="required|verifytrademark_registrant_nu" class="layui-input" placeholder="请输入商标注册号/申请号" lay-reqText="请输入商标注册号/申请号" value="{{d.params.data.model.trademark_registrant_nu || '' }}" />
</div>
</div>
<div class="layui-form-item">
<label for="trademark_authorization_period" class="layui-form-label layui-form-required">商标有效期</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_authorization_period" id="editTime-WeChatTransactionComponentBrandAudit-trademark_authorization_period" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="请输入商标有效期" lay-reqText="请输入商标有效期" value="{{d.params.data.model.trademark_authorization_period || '' }}" />
</div>
</div>
<!--<div class="layui-form-item">
<label for="trademark_registration_application" class="layui-form-label layui-form-required">商标注册申请受理通知书</label>
<div class="layui-input-block">
<input name="trademark_registration_application" lay-verType="tips" lay-verify="required|verifytrademark_registration_application" class="layui-input" placeholder="请输入商标注册申请受理通知书" lay-reqText="请输入商标注册申请受理通知书" value="{{d.params.data.model.trademark_registration_application || '' }}" />
</div>
</div>-->
<div class="layui-form-item">
<label for="trademark_registration_application" class="layui-form-label">商标受理通知书</label>
<div class="layui-input-inline layui-inline-12">
<input name="trademark_registration_application" id="trademark_registration_application" lay-verify="required|verifytrademark_registration_application" class="layui-input" lay-reqText="请输入商标注册申请受理通知书" placeholder="请输入商标注册申请受理通知书" value="{{d.params.data.model.trademark_registration_application || '' }}" />
</div>
<div class="layui-input-block">
<img class="coreshop-upload-img" id="viewImgBoxTrademarkRegistrationApplication" src="{{ d.params.data.model.trademark_registration_application || layui.setter.noImagePicUrl }}">
<button type="button" class="layui-btn" id="upBtnTrademarkRegistrationApplication">点击上传商标受理通知书</button>
</div>
</div>
<div class="layui-form-item">
<label for="trademark_applicant" class="layui-form-label layui-form-required">商标申请人姓名</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_applicant" lay-verType="tips" lay-verify="required|verifytrademark_applicant" class="layui-input" placeholder="请输入商标申请人姓名" lay-reqText="请输入商标申请人姓名" value="{{d.params.data.model.trademark_applicant || '' }}" />
</div>
<label for="trademark_application_time" class="layui-form-label layui-form-required">商标申请时间</label>
<div class="layui-input-inline layui-inline-6">
<input name="trademark_application_time" id="editTime-WeChatTransactionComponentBrandAudit-trademark_application_time" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="请输入商标申请时间" lay-reqText="请输入商标申请时间" value="{{d.params.data.model.trademark_application_time || '' }}" />
</div>
</div>
<!--<div class="layui-form-item">
<label for="imported_goods_form" class="layui-form-label layui-form-required">中华人民共和国海关进口货物报关单</label>
<div class="layui-input-block">
<input name="imported_goods_form" lay-verType="tips" lay-verify="required|verifyimported_goods_form" class="layui-input" placeholder="请输入中华人民共和国海关进口货物报关单" lay-reqText="请输入中华人民共和国海关进口货物报关单" value="{{d.params.data.model.imported_goods_form || '' }}" />
</div>
</div>-->
<fieldset class="layui-elem-field layui-field-title site-title"><legend><a name="compress">海关报关单最多不超过5张 <button type="button" class="layui-btn layui-btn-xs" id="upBtnImportedGoodsForm"><i class="layui-icon"></i></button></a></legend></fieldset>
<div class="layui-form-item">
<div class="layui-input-inline layui-inline-2">
<input type="hidden" name="imported_goods_form" id="imported_goods_form" value="{{d.params.data.model.imported_goods_form || '' }}" class="layui-input" placeholder="请上传缩略图" lay-reqText="请上传缩略图" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-upload-list" id="imported_goods_form_list"></div>
</div>
<div class="layui-form-item">
<label for="scene_group_list" class="layui-form-label layui-form-required">商品使用场景</label>
<div class="layui-input-block">
<select name="scene_group_list" lay-reqText="请选择商品使用场景" lay-verify="required|number">
<option value="1" {{d.params.data.model.scene_group_list ===1 ? 'selected="selected"' :''}}>视频号</option>
<option value="3" {{d.params.data.model.scene_group_list ===3 ? 'selected="selected"' :''}}>订单中心</option>
</select>
</div>
</div>
<div class="layui-form-item text-right core-hidden">
<input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-WeChatTransactionComponentBrandAudit-editForm-submit" id="LAY-app-WeChatTransactionComponentBrandAudit-editForm-submit" value="确认编辑">
</div>
</div>
</script>
<script id="image_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="imgdiv">
<img src="{{ item }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px;height:100px;">
<div id="operate">
<div><a class="del" onclick="delImg(this,'{{ item }}')">删除</a>|<a class="setmain" onclick="setDefault(this,'{{ item }}')"></a></div>
</div>
</div>
{{# }); }}
</script>
<script id="image_hg_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="imgdiv">
<img src="{{ item }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px;height:100px;">
<div id="operate">
<div><a class="del" onclick="delHGImg(this,'{{ item }}')">删除</a>|<a class="setmain" onclick="setHGDefault(this,'{{ item }}')"></a></div>
</div>
</div>
{{# }); }}
</script>
<script id="image_xs_tpl" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="imgdiv">
<img src="{{ item }}" class="layui-upload-img" onclick='layui.coreHelper.viewImage("{{ item }}")' style="width: 100px;height:100px;">
<div id="operate">
<div><a class="del" onclick="delXSImg(this,'{{ item }}')">删除</a>|<a class="setmain" onclick="setXSDefault(this,'{{ item }}')"></a></div>
</div>
</div>
{{# }); }}
</script>
<script>
var $;
var trademark_change_certificate_imgs = [];
var imported_goods_form_imgs = [];
var sale_authorization_imgs = [];
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 () {
$ = layui.$; var form = layui.form, admin = layui.admin, laydate = layui.laydate, upload = layui.upload, coreHelper = layui.coreHelper, laytpl = layui.laytpl;
if (d.params.data.model.sale_authorization) {
sale_authorization_imgs = d.params.data.model.sale_authorization.split(',');
var getTpl = image_xs_tpl.innerHTML, view = document.getElementById('sale_authorization_list');
laytpl(getTpl).render(sale_authorization_imgs, function (html) {
view.innerHTML = html;
});
}
if (d.params.data.model.trademark_change_certificate) {
trademark_change_certificate_imgs = d.params.data.model.trademark_change_certificate.split(',');
var getTpl = image_tpl.innerHTML, view = document.getElementById('trademark_change_certificate_list');
laytpl(getTpl).render(trademark_change_certificate_imgs, function (html) {
view.innerHTML = html;
});
}
if (d.params.data.model.imported_goods_form) {
imported_goods_form_imgs = d.params.data.model.imported_goods_form.split(',');
var getTpl = image_hg_tpl.innerHTML, view = document.getElementById('imported_goods_form_list');
laytpl(getTpl).render(imported_goods_form_imgs, function (html) {
view.innerHTML = html;
});
}
//营业执照上传
upload.render({
elem: '#upBtnlicense'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
$('#viewImgBoxlicense').attr('src', res.data.fileUrl);
$("#license").val(res.data.fileUrl);
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//商标注册证书
upload.render({
elem: '#upBtntrademark_registration_certificate'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
$('#viewImgBoxtrademark_registration_certificate').attr('src', res.data.fileUrl);
$("#trademark_registration_certificate").val(res.data.fileUrl);
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//商标变更证明
upload.render({
elem: '#upBtnTrademarkChangeCertificate'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
trademark_change_certificate_imgs.push(res.data.fileUrl);
$('#trademark_change_certificate').val(trademark_change_certificate_imgs);
var getTpl = image_tpl.innerHTML, view = document.getElementById('trademark_change_certificate_list');
laytpl(getTpl).render(trademark_change_certificate_imgs, function (html) {
view.innerHTML = html;
});
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//商标受理通知书
upload.render({
elem: '#upBtnTrademarkRegistrationApplication'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
$('#viewImgBoxTrademarkRegistrationApplication').attr('src', res.data.fileUrl);
$("#trademark_registration_application").val(res.data.fileUrl);
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//海关报关单
upload.render({
elem: '#upBtnImportedGoodsForm'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
imported_goods_form_imgs.push(res.data.fileUrl);
$('#imported_goods_form').val(imported_goods_form_imgs);
var getTpl = image_hg_tpl.innerHTML, view = document.getElementById('imported_goods_form_list');
laytpl(getTpl).render(imported_goods_form_imgs, function (html) {
view.innerHTML = html;
});
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
//销售授权书
upload.render({
elem: '#upBtnSaleAuthorization'
, url: layui.setter.apiUrl + 'Api/Tools/MiNiShopOpenComponent2_UploadImg'
, before: function (obj) {
obj.preview(function (index, file, result) {
layer.msg('上传中', { icon: 16, shade: 0.4 });
});
}
, done: function (res) {
layer.closeAll('loading'); //关闭加载层
if (res.code > 0) {
return layer.msg('上传失败');
}
layer.msg('上传成功');
sale_authorization_imgs.push(res.data.fileUrl);
$('#sale_authorization').val(sale_authorization_imgs);
var getTpl = image_xs_tpl.innerHTML, view = document.getElementById('sale_authorization_list');
laytpl(getTpl).render(sale_authorization_imgs, function (html) {
view.innerHTML = html;
});
}
, error: function (res) {
layer.msg('上传失败,请重试');
console.log(res);
}
});
laydate.render({
elem: '#editTime-WeChatTransactionComponentBrandAudit-trademark_authorization_period',
type: 'datetime'
});
laydate.render({
elem: '#editTime-WeChatTransactionComponentBrandAudit-trademark_application_time',
type: 'datetime'
});
form.verify({
verifylicense: [/^.{0,500}$/, '营业执照或组织机构代码证最大只允许输入500位字符'],
verifytrademark_type: [/^.{0,10}$/, '商标分类最大只允许输入10位字符'],
verifybrand_wording: [/^.{0,50}$/, '商标/品牌词最大只允许输入50位字符'],
verifysale_authorization: [/^.{0,500}$/, '销售授权书最大只允许输入500位字符'],
verifytrademark_registration_certificate: [/^.{0,500}$/, '商标注册证书最大只允许输入500位字符'],
verifytrademark_change_certificate: [/^.{0,500}$/, '商标变更证明最大只允许输入500位字符'],
verifytrademark_registrant: [/^.{0,100}$/, '商标注册人姓名最大只允许输入100位字符'],
verifytrademark_registrant_nu: [/^.{0,10}$/, '商标注册号/申请号最大只允许输入10位字符'],
verifytrademark_registration_application: [/^.{0,100}$/, '商标注册申请受理通知书最大只允许输入100位字符'],
verifytrademark_applicant: [/^.{0,100}$/, '商标申请人姓名最大只允许输入100位字符'],
verifyimported_goods_form: [/^.{0,500}$/, '中华人民共和国海关进口货物报关单最大只允许输入500位字符'],
});
//重载form
form.render(null, 'LAY-app-WeChatTransactionComponentBrandAudit-editForm');
})
};
//删除图片
function delImg(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
imgDiv.remove();
var index = trademark_change_certificate_imgs.indexOf(imageUrl);
if (index > -1) {
trademark_change_certificate_imgs.splice(index, 1);
}
$('#trademark_change_certificate').val(trademark_change_certificate_imgs);
}
//设为默认图
function setDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
$("#trademark_change_certificate_list").prepend(imgDiv);
var index = trademark_change_certificate_imgs.indexOf(imageUrl);
if (index > -1) {
trademark_change_certificate_imgs.unshift(trademark_change_certificate_imgs.splice(index, 1)[0]);
}
$('#trademark_change_certificate').val(trademark_change_certificate_imgs);
}
//删除图片
function delHGImg(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
imgDiv.remove();
var index = imported_goods_form_imgs.indexOf(imageUrl);
if (index > -1) {
imported_goods_form_imgs.splice(index, 1);
}
$('#imported_goods_form').val(imported_goods_form_imgs);
}
//设为默认图
function setHGDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
$("#imported_goods_form_list").prepend(imgDiv);
var index = imported_goods_form_imgs.indexOf(imageUrl);
if (index > -1) {
imported_goods_form_imgs.unshift(imported_goods_form_imgs.splice(index, 1)[0]);
}
$('#imported_goods_form').val(imported_goods_form_imgs);
}
//删除图片
function delXSImg(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
imgDiv.remove();
var index = sale_authorization_imgs.indexOf(imageUrl);
if (index > -1) {
sale_authorization_imgs.splice(index, 1);
}
$('#sale_authorization').val(sale_authorization_imgs);
}
//设为默认图
function setXSDefault(obj, imageUrl) {
var imgDiv = $(obj).parent().parent().parent();
$("#sale_authorization_list").prepend(imgDiv);
var index = sale_authorization_imgs.indexOf(imageUrl);
if (index > -1) {
sale_authorization_imgs.unshift(sale_authorization_imgs.splice(index, 1)[0]);
}
$('#sale_authorization').val(sale_authorization_imgs);
}
</script>

View File

@@ -0,0 +1,430 @@
<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/WeChatTransactionComponentBrandAudit/GetIndex" lay-done="layui.data.done(d);">
</script>
<div class="table-body">
<table id="LAY-app-WeChatTransactionComponentBrandAudit-tableBox" lay-filter="LAY-app-WeChatTransactionComponentBrandAudit-tableBox"></table>
</div>
<script type="text/html" id="LAY-app-WeChatTransactionComponentBrandAudit-toolbar">
<div class="layui-form coreshop-toolbar-search-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" for="brand_audit_type">认证审核类型</label>
<div class="layui-input-inline">
<select name="brand_audit_type">
<option value="">请选择证审核类型</option>
{{# layui.each(indexData.registerType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label" for="trademark_type">商标分类</label>
<div class="layui-input-inline">
<select name="trademark_type">
<option value="">请选择商标分类</option>
{{# layui.each(indexData.trademarkType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label" for="brand_management_type">经营类型</label>
<div class="layui-input-inline">
<select name="brand_management_type">
<option value="">请选择经营类型</option>
{{# layui.each(indexData.brandManagementType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label" for="commodity_origin_type">商品产地是否进口</label>
<div class="layui-input-inline">
<select name="commodity_origin_type">
<option value="">请选择商品产地是否进口</option>
{{# layui.each(indexData.commodityOriginType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-WeChatTransactionComponentBrandAudit-search"><i class="layui-icon layui-icon-search"></i></button>
</div>
</div>
</div>
</script>
<script type="text/html" id="LAY-app-WeChatTransactionComponentBrandAudit-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>
<a class="layui-btn layui-btn-sm" data-id="{{d.id}}" lay-event="audit"><i class="layui-icon layui-icon-time"></i></a>
</div>
</script>
<script type="text/html" id="LAY-app-WeChatTransactionComponentBrandAudit-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="#WeChatTransactionComponentBrandAuditTbDelDrop{{d.LAY_INDEX}}" no-shade="true">删除</a>
<div class="dropdown-menu-nav dropdown-popconfirm dropdown-top-right layui-hide" id="WeChatTransactionComponentBrandAuditTbDelDrop{{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-WeChatTransactionComponentBrandAudit-search)',
function (data) {
var field = data.field;
searchwhere = field;
//执行重载
table.reloadData('LAY-app-WeChatTransactionComponentBrandAudit-tableBox', { where: field });
});
//数据绑定
table.render({
elem: '#LAY-app-WeChatTransactionComponentBrandAudit-tableBox',
url: layui.setter.apiUrl + 'Api/WeChatTransactionComponentBrandAudit/GetPageList',
method: 'POST',
toolbar: '#LAY-app-WeChatTransactionComponentBrandAudit-toolbar',
pagebar: '#LAY-app-WeChatTransactionComponentBrandAudit-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: "radio", fixed: "left" },
{ field: 'id', title: '序列', width: 60, sort: false },
//{ field: 'license', title: '营业执照或组织机构代码证', sort: false, width: 105 },
{
field: 'license', title: '营业执照', width: 80, sort: false,
templet: function (d) {
if (d.license) {
return '<a href="javascript:void(0);" onclick=layui.coreHelper.viewImage("' + d.license + '")><image style="max-width:28px;max-height:28px;" src="' + d.license + '"/></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: 'brand_audit_type', title: '认证审核类型', sort: false, width: 105 },
{
field: 'brand_audit_type', title: '认证审核类型', sort: false, width: 130, templet: function (data) {
for (var i = 0; i < d.data.registerType.length; i++) {
if (data.brand_audit_type == d.data.registerType[i].value) {
return d.data.registerType[i].title;
}
}
return "";
}
},
//{ field: 'trademark_type', title: '商标分类', sort: false, width: 105 },
{
field: 'trademark_type', title: '商标分类', sort: false, width: 100, templet: function (data) {
for (var i = 0; i < d.data.trademarkType.length; i++) {
if (data.trademark_type == d.data.trademarkType[i].value) {
return d.data.trademarkType[i].title;
}
}
return "";
}
},
//{ field: 'brand_management_type', title: '经营类型', sort: false, width: 105 },
{
field: 'brand_management_type', title: '经营类型', sort: false, width: 100, templet: function (data) {
for (var i = 0; i < d.data.brandManagementType.length; i++) {
if (data.brand_management_type == d.data.brandManagementType[i].value) {
return d.data.brandManagementType[i].title;
}
}
return "";
}
},
//{ field: 'commodity_origin_type', title: '商品产地是否进口', sort: false, width: 130 },
{
field: 'commodity_origin_type', title: '商品产地是否进口', sort: false, width: 130, templet: function (data) {
for (var i = 0; i < d.data.commodityOriginType.length; i++) {
if (data.commodity_origin_type == d.data.commodityOriginType[i].value) {
return d.data.commodityOriginType[i].title;
}
}
return "";
}
},
{ field: 'brand_wording', title: '商标/品牌词', sort: false },
//{ field: 'sale_authorization', title: '销售授权书', sort: false, width: 105 },
//{ field: 'trademark_registration_certificate', title: '商标注册证书', sort: false, width: 105 },
//{ field: 'trademark_change_certificate', title: '商标变更证明', sort: false, width: 105 },
{ field: 'trademark_registrant', title: '商标注册人姓名', sort: false },
//{ field: 'trademark_registrant_nu', title: '商标注册号/申请号', sort: false, width: 105 },
{ field: 'trademark_authorization_period', title: '商标有效期', width: 130, sort: false },
//{ field: 'trademark_registration_application', title: '商标注册申请受理通知书', sort: false, width: 105 },
//{ field: 'trademark_applicant', title: '商标申请人姓名', sort: false, width: 105 },
//{ field: 'trademark_application_time', title: '商标申请时间', width: 130, sort: false },
//{ field: 'imported_goods_form', title: '中华人民共和国海关进口货物报关单', sort: false, width: 105 },
//{ field: 'scene_group_list', title: '商品使用场景', sort: false, width: 105 },
{ field: 'audit_id', title: '审核单', sort: false, width: 105 },
{
field: 'status', title: '审核状态', sort: false, width: 105, templet: function (data) {
for (var i = 0; i < d.data.auditCategoryStatus.length; i++) {
if (data.status == d.data.auditCategoryStatus[i].value) {
return d.data.auditCategoryStatus[i].description;
}
}
return "";
}
},
{ field: 'rejectReason', title: '拒绝原因', sort: false },
{ field: 'createTime', title: '创建时间', width: 130, sort: false },
{ width: 162, align: 'center', title: '操作', fixed: 'right', toolbar: '#LAY-app-WeChatTransactionComponentBrandAudit-tableBox-bar' }
]
]
});
//监听排序事件
table.on('sort(LAY-app-WeChatTransactionComponentBrandAudit-tableBox)', function (obj) {
table.reloadData('LAY-app-WeChatTransactionComponentBrandAudit-tableBox', {
initSort: obj, //记录初始排序,如果不设的话,将无法标记表头的排序状态。
where: { //请求参数(注意:这里面的参数可任意定义,并非下面固定的格式)
orderField: obj.field, //排序字段
orderDirection: obj.type //排序方式
}
});
});
//监听行双击事件
table.on('rowDouble(LAY-app-WeChatTransactionComponentBrandAudit-tableBox)', function (obj) {
//查看详情
doDetails(obj);
});
//头工具栏事件
table.on('pagebar(LAY-app-WeChatTransactionComponentBrandAudit-tableBox)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id);
switch (obj.event) {
case 'addData':
doCreate();
break;
case 'batchDelete':
doBatchDelete(checkStatus);
break;
case 'audit':
doAudit(checkStatus)
break;
};
});
//监听工具条
table.on('tool(LAY-app-WeChatTransactionComponentBrandAudit-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/WeChatTransactionComponentBrandAudit/GetCreate", null, function (e) {
if (e.code === 0) {
admin.popup({
shadeClose: false,
title: '创建数据',
area: ['1200px', '90%'],
id: 'LAY-popup-WeChatTransactionComponentBrandAudit-create',
success: function (layero, index) {
view(this.id).render('wechat/transactioncomponent/brandaudit/create', { data: e.data }).done(function () {
//监听提交
form.on('submit(LAY-app-WeChatTransactionComponentBrandAudit-createForm-submit)',
function (data) {
var field = data.field; //获取提交的字段
if (debug) { console.log(field); } //开启调试返回数据
//提交 Ajax 成功后,关闭当前弹层并重载表格
coreHelper.Post("Api/WeChatTransactionComponentBrandAudit/DoCreate", field, function (e) {
console.log(e)
if (e.code === 0) {
layui.table.reloadData('LAY-app-WeChatTransactionComponentBrandAudit-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-WeChatTransactionComponentBrandAudit-createForm-submit").click();
}
});
} else {
layer.msg(e.msg);
}
});
}
//执行编辑操作
function doEdit(obj) {
coreHelper.Post("Api/WeChatTransactionComponentBrandAudit/GetEdit", { id: obj.data.id }, function (e) {
if (e.code === 0) {
admin.popup({
shadeClose: false,
title: '编辑数据',
area: ['1200px', '90%'],
id: 'LAY-popup-WeChatTransactionComponentBrandAudit-edit',
success: function (layero, index) {
view(this.id).render('wechat/transactioncomponent/brandaudit/edit', { data: e.data }).done(function () {
//监听提交
form.on('submit(LAY-app-WeChatTransactionComponentBrandAudit-editForm-submit)',
function (data) {
var field = data.field; //获取提交的字段
if (debug) { console.log(field); } //开启调试返回数据
//提交 Ajax 成功后,关闭当前弹层并重载表格
coreHelper.Post("Api/WeChatTransactionComponentBrandAudit/DoEdit", field, function (e) {
console.log(e)
if (e.code === 0) {
layui.table.reloadData('LAY-app-WeChatTransactionComponentBrandAudit-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-WeChatTransactionComponentBrandAudit-editForm-submit").click();
}
});
} else {
layer.msg(e.msg);
}
});
}
//执行预览操作
function doDetails(obj) {
coreHelper.Post("Api/WeChatTransactionComponentBrandAudit/GetDetails", { id: obj.data.id }, function (e) {
if (e.code === 0) {
admin.popup({
shadeClose: false,
title: '查看详情',
area: ['1200px', '90%'],
id: 'LAY-popup-WeChatTransactionComponentBrandAudit-details',
success: function (layero, index) {
view(this.id).render('wechat/transactioncomponent/brandaudit/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/WeChatTransactionComponentBrandAudit/DoDelete", { id: obj.data.id }, function (e) {
if (debug) { console.log(e); } //开启调试返回数据
table.reloadData('LAY-app-WeChatTransactionComponentBrandAudit-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/WeChatTransactionComponentBrandAudit/DoBatchDelete", { id: delidsStr }, function (e) {
if (debug) { console.log(e); } //开启调试返回数据
table.reloadData('LAY-app-WeChatTransactionComponentBrandAudit-tableBox');
layer.msg(e.msg);
});
});
}
//执行提交审核操作
function doAudit(checkStatus) {
var checkData = checkStatus.data;
if (checkData.length === 0) {
return layer.msg('请选择您要处理的数据');
}
coreHelper.Post("Api/WeChatTransactionComponentBrandAudit/DoAudit", { id: checkData[0].id }, function (e) {
if (debug) { console.log(e); } //开启调试返回数据
table.reloadData('LAY-app-WeChatTransactionComponentBrandAudit-tableBox');
layer.msg(e.msg);
});
}
//重载form
form.render();
});
};
</script>

View File

@@ -46,6 +46,7 @@
<a class="layui-btn layui-btn-sm" data-id="{{d.id}}" lay-event="getDraftSKU">获取草稿状态</a>
<a class="layui-btn layui-btn-sm" data-id="{{d.id}}" lay-event="getLineSKU">获取线上状态</a>
<a class="layui-btn layui-btn-sm" data-id="{{d.id}}" lay-event="listingSKU">上架商品</a>
<a class="layui-btn layui-btn-sm" data-id="{{d.id}}" lay-event="withoutAuditUpdateSKU">免审更新</a>
<a class="layui-btn layui-btn-sm" data-id="{{d.id}}" lay-event="delistingSKU">下架商品</a>
<a class="layui-btn layui-btn-sm layui-btn-danger" data-id="{{d.id}}" lay-event="deleteSpu">清空数据</a>
</div>
@@ -207,7 +208,9 @@
case 'delistingSKU':
doDelistingSpu(checkStatus)
break;
case 'withoutAuditUpdateSKU':
doWithoutAuditUpdateSKU(checkStatus)
break;
};
});
@@ -591,7 +594,19 @@
});
});
}
//监听 表格复选框操作
//执行免审更新操作
function doWithoutAuditUpdateSKU(checkStatus) {
var checkData = checkStatus.data;
if (checkData.length === 0) {
return layer.msg('请选择您要处理的数据');
}
coreHelper.Post("Api/WeChatTransactionComponentGood/WithoutAuditUpdateSKU", { id: checkData[0].id }, function (e) {
if (debug) { console.log(e); } //开启调试返回数据
table.reloadData('LAY-app-WeChatTransactionComponentGood-tableBox');
layer.msg(e.msg);
});
}
});
};

View File

@@ -1,3 +1,6 @@
2022-03-21
【新增】表【WeChatTransactionComponentBrandAudit】【WeChatTransactionComponentBrandAuditLog】实现自定义交易组件上传品牌信息及品牌审核回调
2022-03-14
【新增】表【CoreCmsContinuousCheckInRuleDetails】【CoreCmsContinuousCheckInRules】【CoreCmsCumulativeCheckInRules】【CoreCmsUserCheckIn】【CoreCmsUserCheckInDetails】实现日历签到功能。