【新增】优化广告组件,表【CoreCmsAdvertPosition】新增【platform】广告平台字段,【type】广告位类型两个字段,用于区分pc,h5,小程序多端,以及图片还是轮播图展示形式。

This commit is contained in:
JianWeie
2023-01-10 16:04:48 +08:00
parent 3d8a3436a3
commit 8632c6fb26
21 changed files with 379 additions and 80 deletions

View File

@@ -1790,7 +1790,7 @@ namespace CoreCms.Net.Configuration
/// <summary> /// <summary>
/// 广告表类型【关联CoreCmsAdvertisement.type字段】 /// 广告表类型【关联CoreCmsAdvertisement.type字段】
/// </summary> /// </summary>
public enum AdvertPositionType public enum AdvertisementType
{ {
/// <summary> /// <summary>
/// 网址URL /// 网址URL
@@ -1820,35 +1820,39 @@ namespace CoreCms.Net.Configuration
} }
/// <summary> /// <summary>
/// 广告模板编码 /// 广告表类型【关联CoreCmsAdvertPosition.type字段】
/// </summary> /// </summary>
public enum AdvertTemplateCode public enum AdvertPositionType
{ {
/// <summary> /// <summary>
/// 首页幻灯片广告位 /// 图片
/// </summary> /// </summary>
[Description("首页幻灯片广告位")] [Description("<button type=\"button\" class=\"layui-btn layui-btn-normal layui-btn-xs\">图片</button>")]
TplSlider = 1, Image = 1,
/// <summary> /// <summary>
/// 首页广告位1 /// 轮播图
/// </summary> /// </summary>
[Description("首页广告位1")] [Description("<button type=\"button\" class=\"layui-btn layui-btn-warm layui-btn-xs\">轮播图</button>")]
TplIndexBanner1 = 2, Swiper = 2
/// <summary> }
/// 首页广告位2
/// </summary> /// <summary>
[Description("首页广告位2")] /// 广告来源
TplIndexBanner2 = 3, /// </summary>
/// <summary> public enum AdvertPlatform
/// 首页广告位3 {
/// </summary> [Description("PC页面")]
[Description("首页广告位3")] PC页面 = 1,
TplIndexBanner3 = 4, [Description("H5页面")]
/// <summary> H5页面 = 2,
/// 分类页广告位 [Description("微信小程序")]
/// </summary> = 3,
[Description("分类页广告位")] [Description("支付宝小程序")]
TplClassBanner1 = 5 = 4,
[Description("APP")]
APP = 5,
[Description("头条系小程序")]
= 6
} }
#endregion #endregion

View File

@@ -76,7 +76,7 @@
</member> </member>
<member name="M:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.#ctor"> <member name="M:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.#ctor">
<summary> <summary>
广告位置表 构造函数
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.id"> <member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.id">
@@ -104,6 +104,16 @@
更新时间 更新时间
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.platform">
<summary>
广告平台
</summary>
</member>
<member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.type">
<summary>
广告位类型
</summary>
</member>
<member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.isEnable"> <member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.isEnable">
<summary> <summary>
是否启用 是否启用
@@ -9394,9 +9404,14 @@
用户统一标识 用户统一标识
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.FromBody.WxAdvert.codes"> <member name="P:CoreCms.Net.Model.FromBody.WxAdvert.code">
<summary> <summary>
广告位置 广告位置编码
</summary>
</member>
<member name="P:CoreCms.Net.Model.FromBody.WxAdvert.platform">
<summary>
广告位值类型
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.FromBody.FMCreateAgentGood.good"> <member name="P:CoreCms.Net.Model.FromBody.FMCreateAgentGood.good">

View File

@@ -3,11 +3,13 @@
* ProjectName: 核心内容管理系统 * ProjectName: 核心内容管理系统
* Web: https://www.corecms.net * Web: https://www.corecms.net
* Author: 大灰灰 * Author: 大灰灰
* Email: jianweie@163.com * Email: jianweie@163.com
* CreateTime: 2021-06-08 22:14:58 * CreateTime: 2023/1/9 23:43:27
* Description: 暂无 * Description: 暂无
***********************************************************************/ ***********************************************************************/
using SqlSugar; using SqlSugar;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace CoreCms.Net.Model.Entities namespace CoreCms.Net.Model.Entities
@@ -15,64 +17,124 @@ namespace CoreCms.Net.Model.Entities
/// <summary> /// <summary>
/// 广告位置表 /// 广告位置表
/// </summary> /// </summary>
[SugarTable("CoreCmsAdvertPosition",TableDescription = "广告位置表")]
public partial class CoreCmsAdvertPosition public partial class CoreCmsAdvertPosition
{ {
/// <summary> /// <summary>
/// 广告位置表 /// 构造函数
/// </summary> /// </summary>
public CoreCmsAdvertPosition() public CoreCmsAdvertPosition()
{ {
} }
/// <summary> /// <summary>
/// 序列 /// 序列
/// </summary> /// </summary>
[Display(Name = "序列")] [Display(Name = "序列")]
[SugarColumn(ColumnDescription = "序列", IsPrimaryKey = true, IsIdentity = true)]
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
[Required(ErrorMessage = "请输入{0}")] [Required(ErrorMessage = "请输入{0}")]
public System.Int32 id { get; set; }
public System.Int32 id { get; set; }
/// <summary> /// <summary>
/// 名称 /// 名称
/// </summary> /// </summary>
[Display(Name = "名称")] [Display(Name = "名称")]
[SugarColumn(ColumnDescription = "名称")]
[Required(ErrorMessage = "请输入{0}")] [Required(ErrorMessage = "请输入{0}")]
[StringLength(120, ErrorMessage = "{0}不能超过{1}字符长度")] [StringLength(maximumLength:120,ErrorMessage = "{0}不能超过{1}字")]
public System.String name { get; set; }
public System.String name { get; set; }
/// <summary> /// <summary>
/// 位置编码 /// 位置编码
/// </summary> /// </summary>
[Display(Name = "位置编码")] [Display(Name = "位置编码")]
[SugarColumn(ColumnDescription = "位置编码")]
[Required(ErrorMessage = "请输入{0}")] [Required(ErrorMessage = "请输入{0}")]
[StringLength(32, ErrorMessage = "{0}不能超过{1}字符长度")] [StringLength(maximumLength:32,ErrorMessage = "{0}不能超过{1}字")]
public System.String code { get; set; }
public System.String code { get; set; }
/// <summary> /// <summary>
/// 添加时间 /// 添加时间
/// </summary> /// </summary>
[Display(Name = "添加时间")] [Display(Name = "添加时间")]
[SugarColumn(ColumnDescription = "添加时间", IsNullable = true)]
public System.DateTime? createTime { get; set; }
public System.DateTime? createTime { get; set; }
/// <summary> /// <summary>
/// 更新时间 /// 更新时间
/// </summary> /// </summary>
[Display(Name = "更新时间")] [Display(Name = "更新时间")]
[SugarColumn(ColumnDescription = "更新时间", IsNullable = true)]
public System.DateTime? updateTime { get; set; }
public System.DateTime? updateTime { get; set; }
/// <summary>
/// 广告平台
/// </summary>
[Display(Name = "广告平台")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 platform { get; set; }
/// <summary>
/// 广告位类型
/// </summary>
[Display(Name = "广告位类型")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 type { get; set; }
/// <summary> /// <summary>
/// 是否启用 /// 是否启用
/// </summary> /// </summary>
[Display(Name = "是否启用")] [Display(Name = "是否启用")]
[SugarColumn(ColumnDescription = "是否启用")]
[Required(ErrorMessage = "请输入{0}")] [Required(ErrorMessage = "请输入{0}")]
public System.Boolean isEnable { get; set; }
public System.Boolean isEnable { get; set; }
/// <summary> /// <summary>
/// 排序 /// 排序
/// </summary> /// </summary>
[Display(Name = "排序")] [Display(Name = "排序")]
[SugarColumn(ColumnDescription = "排序")]
[Required(ErrorMessage = "请输入{0}")] [Required(ErrorMessage = "请输入{0}")]
public System.Int32 sort { get; set; }
public System.Int32 sort { get; set; }
} }
} }

View File

@@ -20,9 +20,14 @@ namespace CoreCms.Net.Model.FromBody
public class WxAdvert public class WxAdvert
{ {
/// <summary> /// <summary>
/// 广告位置 /// 广告位置编码
/// </summary> /// </summary>
public string codes { get; set; } public string code { get; set; }
/// <summary>
/// 广告位值类型
/// </summary>
public int platform { get; set; }
} }
#endregion #endregion

View File

@@ -2,8 +2,15 @@
<view> <view>
<!--提示框组件--> <!--提示框组件-->
<u-toast ref="uToast" /> <u-toast ref="uToast" />
<view v-for="(item, index) in advert" :key="index"> <view v-if="position && advert">
<u--image :showLoading="true" :src="item.imageUrl" mode="widthFix" width="100%" height="auto" @click="showSliderInfo(item.type, item.val)"></u--image> <view v-if="position.type==1">
<view v-for="(item, index) in advert" :key="index">
<u--image :showLoading="true" :src="item.imageUrl" mode="widthFix" width="100%" height="auto" @click="showSliderInfo(item.type, item.val)"></u--image>
</view>
</view>
<view v-else>
<u-swiper :list="advert" indicator indicatorMode="line" circular keyName="imageUrl" :showTitle="showTitle" @click="clickSwiper"></u-swiper>
</view>
</view> </view>
</view> </view>
</template> </template>
@@ -11,29 +18,47 @@
<script> <script>
export default { export default {
props: { props: {
codes: { code: {
type: String, type: String,
required: true, required: true,
default: 'tpl1_class_banner1' default: 'tpl1_class_banner1'
} },
showTitle: {
type: Boolean,
required: false,
default: false
},
}, },
data() { data() {
return { return {
position: {},
advert: [], advert: [],
} }
}, },
created() { created() {
//console.log(this.codes);
this.getData(); this.getData();
}, },
methods: { methods: {
getData() { getData() {
this.$u.api.advert({ this.$u.api.advert({
codes: this.codes code: this.code,
platform: 3
}).then(res => { }).then(res => {
this.advert = res.data; if (res.status) {
this.advert = res.data.childs;
this.position = res.data.position;
if (this.advert) {
for (var i = 0; i < this.advert.length; i++) {
this.advert[i].title = this.advert[i].name;
}
}
}
}); });
}, },
clickSwiper(index) {
console.log(index);
this.showSliderInfo(this.advert[index].type, this.advert[index].val)
}
}, },
} }
</script> </script>

View File

@@ -69,7 +69,12 @@
</view> </view>
</u-sticky> </u-sticky>
<view class="coreshop-padding-10">
<coreshop-advert code="TplIndexBanner1" showTitle="true"></coreshop-advert>
</view>
<view class="wrapper"> <view class="wrapper">
<view class="list"> <view class="list">
<view class="category" v-for="(good, key) in goodsList" :key="key" :id="`cate-${good.id}`"> <view class="category" v-for="(good, key) in goodsList" :key="key" :id="`cate-${good.id}`">
<view class="items"> <view class="items">

View File

@@ -166,6 +166,20 @@ namespace CoreCms.Net.Web.Admin.Controllers
//排序 int //排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0); var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort); if (sort > 0) @where = @where.And(p => p.sort == sort);
//广告平台 int
var platform = Request.Form["platform"].FirstOrDefault().ObjectToInt(0);
if (platform > 0)
{
where = where.And(p => p.platform == platform);
}
//广告位类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0)
{
where = where.And(p => p.type == type);
}
//获取数据 //获取数据
var list = await _coreCmsAdvertPositionServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, var list = await _coreCmsAdvertPositionServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize); pageSize);
@@ -192,6 +206,15 @@ namespace CoreCms.Net.Web.Admin.Controllers
{ {
//返回数据 //返回数据
var jm = new AdminUiCallBack { code = 0 }; var jm = new AdminUiCallBack { code = 0 };
var advertPlatform = EnumHelper.EnumToList<GlobalEnumVars.AdvertPlatform>();
var advertPositionType = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
advertPlatform,
advertPositionType
};
return jm; return jm;
} }
@@ -210,6 +233,15 @@ namespace CoreCms.Net.Web.Admin.Controllers
{ {
//返回数据 //返回数据
var jm = new AdminUiCallBack { code = 0 }; var jm = new AdminUiCallBack { code = 0 };
var advertPlatform = EnumHelper.EnumToList<GlobalEnumVars.AdvertPlatform>();
var advertPositionType = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
advertPlatform,
advertPositionType
};
return jm; return jm;
} }
@@ -269,7 +301,16 @@ namespace CoreCms.Net.Web.Admin.Controllers
} }
jm.code = 0; jm.code = 0;
jm.data = model;
var advertPlatform = EnumHelper.EnumToList<GlobalEnumVars.AdvertPlatform>();
var advertPositionType = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
advertPlatform,
advertPositionType,
model
};
return jm; return jm;
} }
@@ -311,6 +352,8 @@ namespace CoreCms.Net.Web.Admin.Controllers
oldModel.updateTime = DateTime.Now; oldModel.updateTime = DateTime.Now;
oldModel.isEnable = entity.isEnable; oldModel.isEnable = entity.isEnable;
oldModel.sort = entity.sort; oldModel.sort = entity.sort;
oldModel.platform = entity.platform;
oldModel.type = entity.type;
//事物处理过程结束 //事物处理过程结束
var bl = await _coreCmsAdvertPositionServices.UpdateAsync(oldModel); var bl = await _coreCmsAdvertPositionServices.UpdateAsync(oldModel);

View File

@@ -225,7 +225,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
{ {
//返回数据 //返回数据
var jm = new AdminUiCallBack { code = 0 }; var jm = new AdminUiCallBack { code = 0 };
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>(); var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertisementType>();
jm.data = new jm.data = new
{ {
types types
@@ -250,7 +250,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
var jm = new AdminUiCallBack { code = 0 }; var jm = new AdminUiCallBack { code = 0 };
var advertPosition = await _coreCmsAdvertPositionServices.QueryAsync(); var advertPosition = await _coreCmsAdvertPositionServices.QueryAsync();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>(); var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertisementType>();
jm.data = new jm.data = new
{ {
advertPosition, advertPosition,
@@ -311,7 +311,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
jm.code = 0; jm.code = 0;
var advertPosition = await _coreCmsAdvertPositionServices.QueryAsync(); var advertPosition = await _coreCmsAdvertPositionServices.QueryAsync();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>(); var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertisementType>();
jm.data = new jm.data = new
{ {

View File

@@ -326,8 +326,6 @@ namespace CoreCms.Net.Admin.Admin.Controllers
}; };
jm.code = 0; jm.code = 0;
return jm; return jm;
return jm;
} }
#endregion #endregion

View File

@@ -622,6 +622,45 @@
<None Include="wwwroot\static\js\common.js" /> <None Include="wwwroot\static\js\common.js" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Update="wwwroot\views\content\advert\advertisement\create.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\edit.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\getArticle.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\getArticleType.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\getGoods.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\index.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertposition\create.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertposition\edit.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertposition\index.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ItemGroup> <ItemGroup>
<None Update="Dockerfile"> <None Update="Dockerfile">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

View File

@@ -96,6 +96,7 @@
cols: [ cols: [
[ [
{ field: 'id', title: '序列', width: 60, sort: false }, { field: 'id', title: '序列', width: 60, sort: false },
{ field: 'positionId', title: '广告位序列', sort: false },
{ field: 'name', title: '广告名称', sort: false }, { field: 'name', title: '广告名称', sort: false },
{ {
field: 'imageUrl', title: '广告图片', width: 100, sort: false, field: 'imageUrl', title: '广告图片', width: 100, sort: false,

View File

@@ -1,6 +1,30 @@
<script type="text/html" template lay-done="layui.data.done(d);"> <script type="text/html" template lay-done="layui.data.done(d);">
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsAdvertPosition-createForm" id="LAY-app-CoreCmsAdvertPosition-createForm"> <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsAdvertPosition-createForm" id="LAY-app-CoreCmsAdvertPosition-createForm">
<div class="layui-form-item">
<label for="platform" class="layui-form-label layui-form-required">广告来源</label>
<div class="layui-input-block">
<select name="platform" required lay-verify="required" lay-reqText="请选择广告来源">
<option value="">请选择</option>
{{# layui.each(d.params.data.advertPlatform, function(index, item){ }}
<option value="{{ item.value }}">{{ item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="platform" class="layui-form-label layui-form-required">广告位类型</label>
<div class="layui-input-block">
<select name="type" required lay-verify="required" lay-reqText="请选择广告位类型">
<option value="">请选择</option>
{{# layui.each(d.params.data.advertPositionType, function(index, item){ }}
<option value="{{ item.value }}">{{- item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<label for="name" class="layui-form-label">名称</label> <label for="name" class="layui-form-label">名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
@@ -28,7 +52,7 @@
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="number" min="0" max="999999" name="sort" id="sort" lay-verify="required|number" class="layui-input" value="1" placeholder="请输入排序" lay-reqText="请输入排序并为数字" /> <input type="number" min="0" max="999999" name="sort" id="sort" lay-verify="required|number" class="layui-input" value="1" placeholder="请输入排序" lay-reqText="请输入排序并为数字" />
</div> </div>
<div class="layui-form-mid layui-word-aux">请输入数字</div> <div class="layui-form-mid layui-word-aux">从大到小排序</div>
</div> </div>
<div class="layui-form-item core-hidden"> <div class="layui-form-item core-hidden">

View File

@@ -1,11 +1,37 @@
<script type="text/html" template lay-done="layui.data.sendParams(d);"> <script type="text/html" template lay-done="layui.data.sendParams(d);">
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsAdvertPosition-editForm" id="LAY-app-CoreCmsAdvertPosition-editForm"> <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsAdvertPosition-editForm" id="LAY-app-CoreCmsAdvertPosition-editForm">
<input type="hidden" name="id" id="id" value="{{d.params.data.id || '' }}" /> <input type="hidden" name="id" id="id" value="{{d.params.data.model.id || '' }}" />
<div class="layui-form-item">
<label for="platform" class="layui-form-label layui-form-required">广告来源</label>
<div class="layui-input-block">
<select name="platform" required lay-verify="required" lay-reqText="请选择广告来源">
<option value="">请选择</option>
{{# layui.each(d.params.data.advertPlatform, function(index, item){ }}
<option value="{{ item.value }}" {{item.value===d.params.data.model.platform?'selected="selected"':''}}>{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="platform" class="layui-form-label layui-form-required">广告位类型</label>
<div class="layui-input-block">
<select name="type" required lay-verify="required" lay-reqText="请选择广告位类型">
<option value="">请选择</option>
{{# layui.each(d.params.data.advertPositionType, function(index, item){ }}
<option value="{{ item.value }}" {{item.value===d.params.data.model.type?'selected="selected"':''}}>{{- item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<label for="name" class="layui-form-label">名称</label> <label for="name" class="layui-form-label">名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input name="name" id="name" lay-verify="required|verifyname" class="layui-input" placeholder="请输入名称" lay-reqText="请输入名称" value="{{d.params.data.name || '' }}" /> <input name="name" id="name" lay-verify="required|verifyname" class="layui-input" placeholder="请输入名称" lay-reqText="请输入名称" value="{{d.params.data.model.name || '' }}" />
</div> </div>
<div class="layui-form-mid layui-word-aux">请输入不超过120个字符内容</div> <div class="layui-form-mid layui-word-aux">请输入不超过120个字符内容</div>
</div> </div>
@@ -13,7 +39,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label for="code" class="layui-form-label">位置编码</label> <label for="code" class="layui-form-label">位置编码</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input name="code" id="code" lay-verify="required|verifycode" class="layui-input" lay-reqText="请输入位置编码" placeholder="请输入位置编码" value="{{d.params.data.code || '' }}"/> <input name="code" id="code" lay-verify="required|verifycode" class="layui-input" lay-reqText="请输入位置编码" placeholder="请输入位置编码" value="{{d.params.data.model.code || '' }}" />
</div> </div>
<div class="layui-form-mid layui-word-aux">请输入英文</div> <div class="layui-form-mid layui-word-aux">请输入英文</div>
</div> </div>
@@ -21,16 +47,16 @@
<div class="layui-form-item" pane> <div class="layui-form-item" pane>
<label for="isEnable" class="layui-form-label">是否启用</label> <label for="isEnable" class="layui-form-label">是否启用</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="checkbox" lay-filter="switch" name="isEnable" id="isEnable" {{ d.params.data.isEnable ? 'checked' : '' }} lay-skin="switch" lay-text="开启|关闭"> <input type="checkbox" lay-filter="switch" name="isEnable" id="isEnable" {{ d.params.data.model.isEnable ? 'checked' : '' }} lay-skin="switch" lay-text="开启|关闭">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label for="sort" class="layui-form-label">排序</label> <label for="sort" class="layui-form-label">排序</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="number" min="0" max="999999" name="sort" id="sort" lay-verify="required|number" class="layui-input" value="{{d.params.data.sort}}" placeholder="请输入排序" lay-reqText="请输入排序并为数字" /> <input type="number" min="0" max="999999" name="sort" id="sort" lay-verify="required|number" class="layui-input" value="{{d.params.data.model.sort}}" placeholder="请输入排序" lay-reqText="请输入排序并为数字" />
</div> </div>
<div class="layui-form-mid layui-word-aux">请输入数字</div> <div class="layui-form-mid layui-word-aux">从大到小排序</div>
</div> </div>
<div class="layui-form-item core-hidden"> <div class="layui-form-item core-hidden">

View File

@@ -35,6 +35,26 @@
</select> </select>
</div> </div>
</div> </div>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="platform">
<option value="">广告平台</option>
{{# layui.each(indexData.advertPlatform, function(index, item){ }}
<option value="{{ item.value }}">{{ item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="type">
<option value="">广告类型</option>
{{# layui.each(indexData.advertPositionType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-inline"> <div class="layui-inline">
<div class="layui-input-inline core-time-input"> <div class="layui-input-inline core-time-input">
<input type="text" name="updateTime" id="searchTime-CoreCmsAdvertPosition-updateTime" placeholder="请输入更新时间" class="layui-input"> <input type="text" name="updateTime" id="searchTime-CoreCmsAdvertPosition-updateTime" placeholder="请输入更新时间" class="layui-input">
@@ -104,6 +124,28 @@
[ [
//{ type: "checkbox", fixed: "left" }, //{ type: "checkbox", fixed: "left" },
{ field: 'id', title: '序列', width: 60, sort: false }, { field: 'id', title: '序列', width: 60, sort: false },
{
field: 'platform', title: '广告来源', sort: false,
templet: function (data) {
for (var i = 0; i < d.data.advertPlatform.length; i++) {
if (data.platform == d.data.advertPlatform[i].value) {
return d.data.advertPlatform[i].description;
}
}
return "";
}
},
{
field: 'type', title: '广告位类型', sort: false,
templet: function (data) {
for (var i = 0; i < d.data.advertPositionType.length; i++) {
if (data.type == d.data.advertPositionType[i].value) {
return d.data.advertPositionType[i].description;
}
}
return "";
}
},
{ field: 'name', title: '名称', sort: false }, { field: 'name', title: '名称', sort: false },
{ field: 'code', title: '位置编码', sort: false }, { field: 'code', title: '位置编码', sort: false },
{ field: 'createTime', title: '添加时间', width: 130, sort: false }, { field: 'createTime', title: '添加时间', width: 130, sort: false },
@@ -149,7 +191,7 @@
admin.popup({ admin.popup({
shadeClose: false, shadeClose: false,
title: '创建数据', title: '创建数据',
area: ['600px', '330px'], area: ['600px', '400px'],
id: 'LAY-popup-CoreCmsAdvertPosition-create', id: 'LAY-popup-CoreCmsAdvertPosition-create',
success: function (layero, index) { success: function (layero, index) {
view(this.id).render('content/advert/advertposition/create', { data: e.data }).done(function () { view(this.id).render('content/advert/advertposition/create', { data: e.data }).done(function () {
@@ -194,7 +236,7 @@
admin.popup({ admin.popup({
shadeClose: false, shadeClose: false,
title: '编辑数据', title: '编辑数据',
area: ['600px', '330px'], area: ['600px', '400px'],
id: 'LAY-popup-CoreCmsAdvertPosition-edit', id: 'LAY-popup-CoreCmsAdvertPosition-edit',
success: function (layero, index) { success: function (layero, index) {
view(this.id).render('content/advert/advertposition/edit', { data: e.data }).done(function () { view(this.id).render('content/advert/advertposition/edit', { data: e.data }).done(function () {

View File

@@ -77,8 +77,6 @@ namespace CoreCms.Net.Web.WebApi.Controllers
} }
#endregion #endregion
#region 广============================================================================= #region 广=============================================================================
/// <summary> /// <summary>
/// 获取广告位置信息 /// 获取广告位置信息
@@ -90,7 +88,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
{ {
var jm = new WebApiCallBack(); var jm = new WebApiCallBack();
var position = await _advertPositionServices.QueryByClauseAsync(p => p.isEnable && p.code == entity.codes); var position = await _advertPositionServices.QueryByClauseAsync(p => p.isEnable && p.code == entity.code && p.platform == entity.platform);
if (position == null) if (position == null)
{ {
jm.msg = "未获取到广告位置信息"; jm.msg = "未获取到广告位置信息";
@@ -98,13 +96,15 @@ namespace CoreCms.Net.Web.WebApi.Controllers
} }
jm.status = true; jm.status = true;
jm.data = await _advertisementServices.QueryListByClauseAsync(p => p.positionId == position.id); jm.data = new
{
position,
childs = await _advertisementServices.QueryListByClauseAsync(p => p.positionId == position.id, p => p.sort, OrderByType.Desc, true)
};
return jm; return jm;
} }
#endregion #endregion
} }
} }

View File

@@ -0,0 +1,2 @@
ALTER TABLE CoreCmsAdvertPosition ADD COLUMN platform int DEFAULT 0 NOT NULL COMMENT '广告平台' AFTER sort;
ALTER TABLE CoreCmsAdvertPosition ADD COLUMN type int DEFAULT 0 NOT NULL COMMENT '广告位类型' AFTER sort;

View File

@@ -1,3 +1,7 @@
2022-01-10
【新增】表【CoreCmsAdvertPosition】新增【platform】广告平台字段
【新增】表【CoreCmsAdvertPosition】新增【type】广告位类型
2022-12-30 2022-12-30
【新增】新增表【WeChatMessageResponse】微信公众号回复消息表。 【新增】新增表【WeChatMessageResponse】微信公众号回复消息表。
【新增】新增表【WeChatUserAccessToken】微信用户accessToken表。 【新增】新增表【WeChatUserAccessToken】微信用户accessToken表。

Binary file not shown.

View File

@@ -1,3 +1,7 @@
2022-01-10
【新增】表【CoreCmsAdvertPosition】新增【platform】广告平台字段
【新增】表【CoreCmsAdvertPosition】新增【type】广告位类型
2022-12-30 2022-12-30
【新增】新增表【WeChatMessageResponse】微信公众号回复消息表。 【新增】新增表【WeChatMessageResponse】微信公众号回复消息表。
【新增】新增表【WeChatUserAccessToken】微信用户accessToken表。 【新增】新增表【WeChatUserAccessToken】微信用户accessToken表。