mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 20:03:26 +08:00
【新增】新增微信扫码支付功能,对接PC端。
【新增】增加DTO类库,将逐步完善dto层。 【修复】修复【分类】切换后,切换回来未清零原始数据,导致更新数据重复的问题。 【调整】移除模板库功能,防止出现审核因为模板库页面存在而导致的审核失败。暂将模板库的代码存放到会员QQ群内,方便下载使用。 【调整】代码生成器【Repository.tpl】移除Cache手动增删改,【SqlSugarSetup】增加sqlsugar自动检测增删改后清理二级缓存。 【调整】后端新增秒杀独立组件,用于区分团购及秒杀的差异,首页新增秒杀组件。 【优化】重写首页所有组件样式及接口数据获取效率。 【优化】优化拼团,秒杀,团购,接龙数据获取逻辑,提升列表及详情页面数据获取效率。 【优化】调整拼团,秒杀,团购,服务商品推广海报为新式海报效果。增加服务商品推广海报。 【优化】清理h5相关代码判断,移除h5支付组件,提高响应速度。 【优化】移除小程序前端冗余代码。加快代码执行效率。
This commit is contained in:
@@ -21,6 +21,7 @@ using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Services;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
@@ -74,7 +75,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
|
||||
//获取数据
|
||||
var list = await _coreCmsArticleTypeServices.QueryListByClauseAsync(p => p.id > 0, p => p.sort,
|
||||
OrderByType.Desc);
|
||||
OrderByType.Desc, true, true);
|
||||
//返回数据
|
||||
jm.data = list;
|
||||
jm.code = 0;
|
||||
@@ -132,12 +133,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
[Description("创建提交")]
|
||||
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsArticleType entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var bl = await _coreCmsArticleTypeServices.InsertAsync(entity) > 0;
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure);
|
||||
|
||||
var jm = await _coreCmsArticleTypeServices.InsertAsync(entity);
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
@@ -194,15 +190,13 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
return jm;
|
||||
}
|
||||
//事物处理过程开始
|
||||
oldModel.id = entity.id;
|
||||
//oldModel.id = entity.id;
|
||||
oldModel.name = entity.name;
|
||||
oldModel.parentId = entity.parentId;
|
||||
oldModel.sort = entity.sort;
|
||||
|
||||
//事物处理过程结束
|
||||
var bl = await _coreCmsArticleTypeServices.UpdateAsync(oldModel);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
|
||||
jm = await _coreCmsArticleTypeServices.UpdateAsync(oldModel);
|
||||
|
||||
return jm;
|
||||
}
|
||||
@@ -240,9 +234,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
return jm;
|
||||
}
|
||||
|
||||
var bl = await _coreCmsArticleTypeServices.DeleteByIdAsync(entity.id);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
jm = await _coreCmsArticleTypeServices.DeleteByIdAsync(entity.id);
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
@@ -1142,10 +1142,12 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
var jm = new AdminUiCallBack();
|
||||
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
|
||||
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
|
||||
var where = PredicateBuilder.True<CoreCmsPromotion>();
|
||||
|
||||
var dt = DateTime.Now;
|
||||
where = where.And(p => p.isEnable == true && p.isDel == false && p.startTime < dt && p.endTime > dt && p.type == (int)GlobalEnumVars.PromotionType.Seckill);
|
||||
where = where.And(p => p.isEnable == true && p.isDel == false && p.startTime < dt && p.endTime > dt && p.type == id);
|
||||
|
||||
//促销名称 nvarchar
|
||||
var name = Request.Form["name"].FirstOrDefault();
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"AppConfig": {
|
||||
"AppUrl": "https://admin.test.pro.coreshop.cn/", //后端管理地址
|
||||
"AppInterFaceUrl": "https://api.test.pro.coreshop.cn/", //接口请求地址
|
||||
"AppVersion": "CoreShopProfessional v0.6.2"
|
||||
"AppVersion": "CoreShopProfessional v0.6.4"
|
||||
},
|
||||
//redis为必须启动项,请保持redis为正常可用
|
||||
"RedisConfig": {
|
||||
|
||||
@@ -1045,7 +1045,8 @@ template {
|
||||
#selectGoods li .icon-delete:hover {
|
||||
color: #000;
|
||||
}
|
||||
#selectGroupPurchaseGoods li {
|
||||
#selectGroupPurchaseGoods li,
|
||||
#selectSeckillGoods li {
|
||||
float: left;
|
||||
margin: 10px;
|
||||
height: 100px;
|
||||
@@ -1055,23 +1056,27 @@ template {
|
||||
border-radius: 3px;
|
||||
cursor: move;
|
||||
}
|
||||
#selectGroupPurchaseGoods li .left {
|
||||
#selectGroupPurchaseGoods li .left,
|
||||
#selectSeckillGoods li .left {
|
||||
float: left;
|
||||
width: 170px;
|
||||
height: 90px;
|
||||
}
|
||||
#selectGroupPurchaseGoods li .left img {
|
||||
#selectGroupPurchaseGoods li .left img,
|
||||
#selectSeckillGoods li .left img {
|
||||
width: 170px;
|
||||
height: 90px;
|
||||
object-fit: cover;
|
||||
}
|
||||
#selectGroupPurchaseGoods li .right {
|
||||
#selectGroupPurchaseGoods li .right,
|
||||
#selectSeckillGoods li .right {
|
||||
float: left;
|
||||
width: calc(100% - 180px);
|
||||
height: 90px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
#selectGroupPurchaseGoods li .icon-delete {
|
||||
#selectGroupPurchaseGoods li .icon-delete,
|
||||
#selectSeckillGoods li .icon-delete {
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
right: -6px;
|
||||
@@ -1082,7 +1087,8 @@ template {
|
||||
transition: background-color 0.3s ease-out, border-color 0.3s ease-out;
|
||||
-webkit-transition: background-color 0.3s ease-out, border-color 0.3s ease-out;
|
||||
}
|
||||
#selectGroupPurchaseGoods li .icon-delete:hover {
|
||||
#selectGroupPurchaseGoods li .icon-delete:hover,
|
||||
#selectSeckillGoods li .icon-delete:hover {
|
||||
color: #000;
|
||||
}
|
||||
.divider {
|
||||
|
||||
@@ -289,7 +289,7 @@ template { display: none; }
|
||||
}
|
||||
}
|
||||
}
|
||||
#selectGroupPurchaseGoods {
|
||||
#selectGroupPurchaseGoods, #selectSeckillGoods {
|
||||
li { float: left; margin: 10px; height: 100px; width: calc(100% - 20px); background: #f7fafc; position: relative; border-radius: 3px; cursor: move;
|
||||
.left { float: left; width: 170px; height: 90px;
|
||||
img { width: 170px; height: 90px; object-fit: cover; }
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -296,9 +296,30 @@ var allWidget = {
|
||||
},
|
||||
{
|
||||
"type": "groupPurchase",
|
||||
"name": "团购秒杀",
|
||||
"name": "团购",
|
||||
"value": {
|
||||
"title": '活动名称',
|
||||
"title": '团购活动名称',
|
||||
"limit": '10',
|
||||
"list": [
|
||||
{
|
||||
"image": "/static/images/common/empty-banner.png",
|
||||
"name": '',
|
||||
"price": ''
|
||||
},
|
||||
{
|
||||
"image": "/static/images/common/empty-banner.png",
|
||||
"name": '',
|
||||
"price": ''
|
||||
},
|
||||
]
|
||||
},
|
||||
"icon": "icon-tuangou"
|
||||
},
|
||||
{
|
||||
"type": "seckill",
|
||||
"name": "秒杀",
|
||||
"value": {
|
||||
"title": '秒杀活动名称',
|
||||
"limit": '10',
|
||||
"list": [
|
||||
{
|
||||
@@ -780,7 +801,10 @@ Vue.component('layout-config', {
|
||||
return '商品选项卡'
|
||||
break;
|
||||
case 'groupPurchase':
|
||||
return '团购秒杀'
|
||||
return '团购'
|
||||
break;
|
||||
case 'seckill':
|
||||
return '秒杀'
|
||||
break;
|
||||
case 'pinTuan':
|
||||
return '拼团'
|
||||
@@ -1202,7 +1226,7 @@ Vue.component('layout-config', {
|
||||
var that = this;
|
||||
layui.use(['form', 'table'], function () {
|
||||
layui.admin.popup({
|
||||
title: '团购秒杀列表',
|
||||
title: '团购列表',
|
||||
area: ['1200px', '90%'],
|
||||
id: 'LAY-app-CoreCmsCommon-getGroupIds',
|
||||
success: function (layero, index) {
|
||||
@@ -1218,9 +1242,36 @@ Vue.component('layout-config', {
|
||||
for (let i in ids) {
|
||||
arr.push(ids[i]);
|
||||
}
|
||||
|
||||
console.log(arr);
|
||||
|
||||
that.$set(that.selectWg.value, 'list', arr)
|
||||
layer.close(index);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
selectSeckillGoods: function () {
|
||||
var that = this;
|
||||
layui.use(['form', 'table'], function () {
|
||||
layui.admin.popup({
|
||||
title: '秒杀列表',
|
||||
area: ['1200px', '90%'],
|
||||
id: 'LAY-app-CoreCmsCommon-getSeckillIds',
|
||||
success: function (layero, index) {
|
||||
layui.view(this.id).render('common/getSeckillIds', null).done(function () {
|
||||
layui.form.on('submit(LAY-app-CoreCmsCommon-GetSeckillIds-submit)',
|
||||
function (data) {
|
||||
//判断个数是否满足
|
||||
if (Object.getOwnPropertyNames(ids).length > that.maxSelectGoods) {
|
||||
layer.msg("最多只能选择" + that.maxSelectGoods + "个");
|
||||
return false;
|
||||
}
|
||||
var arr = []
|
||||
for (let i in ids) {
|
||||
arr.push(ids[i]);
|
||||
}
|
||||
console.log(arr);
|
||||
that.$set(that.selectWg.value, 'list', arr)
|
||||
layer.close(index);
|
||||
});
|
||||
|
||||
@@ -12,7 +12,7 @@ layui.define(['laytpl', 'layer', 'element', 'util'], function (exports) {
|
||||
, pageTabs: false //是否开启页面选项卡功能。单页版不推荐开启
|
||||
|
||||
, name: '核心商城系统'
|
||||
, version: 'CoreShopProfessional v0.6.2'
|
||||
, version: '0.6.4'
|
||||
, tableName: 'CoreCms' //本地存储表名
|
||||
, MOD_NAME: 'admin' //模块事件名
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
/** layuiAdmin.pro-v1.7.0 LPPL License */
|
||||
; layui.extend({ setter: "config", admin: "lib/admin", view: "lib/view", breadcrumb: 'controller/breadcrumb' }).define(["setter", "admin", "breadcrumb"],function(e){var a=layui.setter,n=layui.element,i=layui.admin,t=i.tabsPage,l=layui.view,r=function(){var e=layui.router(),o=e.path,y=i.correctRouter(e.path.join("/"));o.length||(o=[""]),""===o[o.length-1]&&(o[o.length-1]=a.entry);var h=function(e){r.haveInit&&d(".layui-layer").each(function(){var e=d(this),a=e.attr("times");e.hasClass("layui-layim")||layer.close(a)}),r.haveInit=!0,d(s).scrollTop(0),delete t.type};return"tab"===t.type&&("/"!==y||"/"===y&&i.tabsBody().html())?(i.tabsBodyChange(t.index),h(t.type)):(l().render(o.join("/")).then(function(l){var r,o=d("#LAY_app_tabsheader>li");o.each(function(e){var a=d(this),n=a.attr("lay-id");n===y&&(r=!0,t.index=e)}),a.pageTabs&&"/"!==y&&(r||(d(s).append('<div class="layadmin-tabsbody-item layui-show"></div>'),t.index=o.length,n.tabAdd(u,{title:"<span>"+(l.title||"新标签页")+"</span>",id:y,attr:e.href}))),this.container=i.tabsBody(t.index),a.pageTabs||this.container.scrollTop(0),n.tabChange(u,y),i.tabsBodyChange(t.index)}).done(function(){layui.use("common",layui.cache.callback.common),c.on("resize",layui.data.resize),n.render("breadcrumb","breadcrumb"),i.tabsBody(t.index).on("scroll",function(){var e=d(this),a=d(".layui-laydate"),n=d(".layui-layer")[0];a[0]&&(a.each(function(){var e=d(this);e.hasClass("layui-laydate-static")||e.remove()}),e.find("input").blur()),n&&layer.closeAll("tips")})}),void h())},o=function(e){var n,t=layui.router(),o=l(a.container),s=i.correctRouter(t.path.join("/"));if(layui.each(a.indPage,function(e,a){if(s===a)return n=!0}),layui.config({base:a.base+"controller/"}),n||"/user/login"===s)o.render(t.path.join("/")).done(function(){i.pageType="alone"});else{if(a.interceptor){var u=layui.data(a.tableName);if(!u[a.request.tokenName])return location.hash="/user/login/redirect="+encodeURIComponent(s)}"console"===i.pageType?r():o.render("layout").done(function(){r(),layui.element.render(),i.screen()<2&&i.sideFlexible(),i.pageType="console"})}},s="#LAY_app_body",u="layadmin-layout-tabs",d=layui.$,c=d(window);layui.link(a.base+"style/admin.css?v="+(i.v+"-1"),function(){o()},"layuiAdmin"),window.onhashchange=function(){o(),layui.event.call(this,a.MOD_NAME,"hash({*})",layui.router())},layui.each(a.extend,function(e,n){var i={},t=a.extend.constructor===Array;i[t?n:e]="{/}"+a.base+"lib/extend/"+n,layui.extend(i)}),e("index",{render:r})});
|
||||
; layui.extend({ setter: "config", admin: "lib/admin", view: "lib/view", breadcrumb: 'controller/breadcrumb' }).define(["setter", "admin", "breadcrumb"],function(e){console.log(`\n %c \u6838\u5fc3\u5546\u57ce\u7cfb\u7edf\u0020\u0043\u006f\u0072\u0065\u0053\u0068\u006f\u0070 V${layui.setter.version} %c \u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0077\u0077\u0077\u002e\u0063\u006f\u0072\u0065\u0073\u0068\u006f\u0070\u002e\u0063\u006e\u002f \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0;', 'color: #3c9cff;background: #f1f1f1; padding:5px 0;');var a=layui.setter,n=layui.element,i=layui.admin,t=i.tabsPage,l=layui.view,r=function(){var e=layui.router(),o=e.path,y=i.correctRouter(e.path.join("/"));o.length||(o=[""]),""===o[o.length-1]&&(o[o.length-1]=a.entry);var h=function(e){r.haveInit&&d(".layui-layer").each(function(){var e=d(this),a=e.attr("times");e.hasClass("layui-layim")||layer.close(a)}),r.haveInit=!0,d(s).scrollTop(0),delete t.type};return"tab"===t.type&&("/"!==y||"/"===y&&i.tabsBody().html())?(i.tabsBodyChange(t.index),h(t.type)):(l().render(o.join("/")).then(function(l){var r,o=d("#LAY_app_tabsheader>li");o.each(function(e){var a=d(this),n=a.attr("lay-id");n===y&&(r=!0,t.index=e)}),a.pageTabs&&"/"!==y&&(r||(d(s).append('<div class="layadmin-tabsbody-item layui-show"></div>'),t.index=o.length,n.tabAdd(u,{title:"<span>"+(l.title||"新标签页")+"</span>",id:y,attr:e.href}))),this.container=i.tabsBody(t.index),a.pageTabs||this.container.scrollTop(0),n.tabChange(u,y),i.tabsBodyChange(t.index)}).done(function(){layui.use("common",layui.cache.callback.common),c.on("resize",layui.data.resize),n.render("breadcrumb","breadcrumb"),i.tabsBody(t.index).on("scroll",function(){var e=d(this),a=d(".layui-laydate"),n=d(".layui-layer")[0];a[0]&&(a.each(function(){var e=d(this);e.hasClass("layui-laydate-static")||e.remove()}),e.find("input").blur()),n&&layer.closeAll("tips")})}),void h())},o=function(e){var n,t=layui.router(),o=l(a.container),s=i.correctRouter(t.path.join("/"));if(layui.each(a.indPage,function(e,a){if(s===a)return n=!0}),layui.config({base:a.base+"controller/"}),n||"/user/login"===s)o.render(t.path.join("/")).done(function(){i.pageType="alone"});else{if(a.interceptor){var u=layui.data(a.tableName);if(!u[a.request.tokenName])return location.hash="/user/login/redirect="+encodeURIComponent(s)}"console"===i.pageType?r():o.render("layout").done(function(){r(),layui.element.render(),i.screen()<2&&i.sideFlexible(),i.pageType="console"})}},s="#LAY_app_body",u="layadmin-layout-tabs",d=layui.$,c=d(window);layui.link(a.base+"style/admin.css?v="+(i.v+"-1"),function(){o()},"layuiAdmin"),window.onhashchange=function(){o(),layui.event.call(this,a.MOD_NAME,"hash({*})",layui.router())},layui.each(a.extend,function(e,n){var i={},t=a.extend.constructor===Array;i[t?n:e]="{/}"+a.base+"lib/extend/"+n,layui.extend(i)}),e("index",{render:r})});
|
||||
@@ -61,7 +61,7 @@
|
||||
method: 'POST',
|
||||
toolbar: '#LAY-app-getGroupIds-toolbar',
|
||||
defaultToolbar: null,
|
||||
where: { types: 3 },
|
||||
where: { id: 3 },
|
||||
height: 'full-260',//无面包屑127,搜索框189,1行62
|
||||
page: true,
|
||||
limit: 30,
|
||||
@@ -70,8 +70,8 @@
|
||||
cols: [
|
||||
[
|
||||
{ type: "checkbox", fixed: "left" },
|
||||
{ field: 'id', title: '', width: 60, sort: false },
|
||||
{ field: 'name', title: '团购(秒杀)名称', sort: false },
|
||||
{ field: 'id', title: '序列', width: 60, sort: false },
|
||||
{ field: 'name', title: '团购名称', sort: false },
|
||||
{ field: 'sort', title: '权重', sort: false, width: 105 },
|
||||
]
|
||||
],
|
||||
|
||||
132
CoreCms.Net.Web.Admin/wwwroot/views/common/getSeckillIds.html
Normal file
132
CoreCms.Net.Web.Admin/wwwroot/views/common/getSeckillIds.html
Normal file
@@ -0,0 +1,132 @@
|
||||
<script type="text/html" template lay-done="layui.data.done(d);">
|
||||
|
||||
</script>
|
||||
<script type="text/html" id="LAY-app-GetSeckillIds-toolbar">
|
||||
<div class="layui-form coreshop-toolbar-search-form">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="name" id="name" placeholder="请输入秒杀名称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-CoreCmsPromotion-search"><i class="layui-icon layui-icon-search"></i>筛选</button>
|
||||
</div>
|
||||
<div class="layui-inline"><div class="layui-form-mid">您选择了:<span id="tagGroupsNum">0</span>个秒杀</div></div>
|
||||
<button class="layui-btn layui-btn-sm float-right" lay-submit lay-filter="LAY-app-CoreCmsCommon-GetSeckillIds-submit" style="float: right"><i class="layui-icon layui-icon-add-1"></i>提交选项</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<div class="noDefaultToolbar">
|
||||
<table id="LAY-app-CoreCmsPromotion-tableBox" lay-filter="LAY-app-CoreCmsPromotion-tableBox"></table>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var ids = {};
|
||||
var table_data = new Array();
|
||||
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', '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;
|
||||
|
||||
//重载form
|
||||
form.render();
|
||||
var searchwhere;
|
||||
//监听搜索
|
||||
form.on('submit(LAY-app-CoreCmsPromotion-search)',
|
||||
function (data) {
|
||||
var field = data.field;
|
||||
searchwhere = field;
|
||||
//执行重载
|
||||
table.reloadData('LAY-app-CoreCmsPromotion-tableBox', { where: field });
|
||||
});
|
||||
//数据绑定
|
||||
table.render({
|
||||
elem: '#LAY-app-CoreCmsPromotion-tableBox',
|
||||
url: layui.setter.apiUrl + 'Api/Tools/TagPromotions',
|
||||
method: 'POST',
|
||||
toolbar: '#LAY-app-GetSeckillIds-toolbar',
|
||||
defaultToolbar: null,
|
||||
where: { id: 4 },
|
||||
height: 'full-260',//无面包屑127,搜索框189,1行62
|
||||
page: true,
|
||||
limit: 30,
|
||||
limits: [10, 15, 20, 25, 30, 50, 100, 200],
|
||||
text: { none: '暂无相关数据' },
|
||||
cols: [
|
||||
[
|
||||
{ type: "checkbox", fixed: "left" },
|
||||
{ field: 'id', title: '序列', width: 60, sort: false },
|
||||
{ field: 'name', title: '秒杀名称', sort: false },
|
||||
{ field: 'sort', title: '权重', sort: false, width: 105 },
|
||||
]
|
||||
],
|
||||
done: function (res, curr, count) {
|
||||
//数据表格加载完成时调用此函数
|
||||
//如果是异步请求数据方式,res即为你接口返回的信息。
|
||||
//如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度
|
||||
|
||||
//设置全部数据到全局变量
|
||||
table_data = res.data;
|
||||
|
||||
//在缓存中找到id ,然后设置data表格中的选中状态
|
||||
//循环所有数据,找出对应关系,设置checkbox选中状态
|
||||
for (var i = 0; i < res.data.length; i++) {
|
||||
if (ids[res.data[i].id]) {
|
||||
//这里才是真正的有效勾选
|
||||
res.data[i]["LAY_CHECKED"] = 'true';
|
||||
//找到对应数据改变勾选样式,呈现出选中效果
|
||||
var index = res.data[i]['LAY_TABLE_INDEX'];
|
||||
$('#LAY-app-CoreCmsPromotion-tableBox + div .layui-table-body tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
|
||||
$('#LAY-app-CoreCmsPromotion-tableBox + div .layui-table-body tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
|
||||
}
|
||||
}
|
||||
//设置全选checkbox的选中状态,只有改变LAY_CHECKED的值, table.checkStatus才能抓取到选中的状态
|
||||
var checkStatus = layui.table.checkStatus('LAY-app-CoreCmsPromotion-tableBox');
|
||||
if (checkStatus.isAll) {
|
||||
$('#LAY-app-CoreCmsPromotion-tableBox + div .layui-table-header th[data-field="0"] input[type="checkbox"]').prop('checked', true);
|
||||
$('#LAY-app-CoreCmsPromotion-tableBox + div .layui-table-header th[data-field="0"] input[type="checkbox"]').next().addClass('layui-form-checked');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//监听表格复选框选择
|
||||
layui.table.on('checkbox(LAY-app-CoreCmsPromotion-tableBox)', function (obj) {
|
||||
if (obj.checked) {
|
||||
if (obj.type == 'one') {
|
||||
ids[obj.data.id] = obj.data;
|
||||
} else {
|
||||
for (var i = 0; i < table_data.length; i++) {
|
||||
ids[table_data[i].id] = table_data[i];
|
||||
}
|
||||
}
|
||||
//the_val[obj.data.id] = obj.data;
|
||||
} else {
|
||||
if (obj.type == 'one') {
|
||||
delete ids[obj.data.id];
|
||||
} else {
|
||||
for (var i = 0; i < table_data.length; i++) {
|
||||
delete ids[table_data[i].id];
|
||||
}
|
||||
}
|
||||
}
|
||||
$('#tagGroupsNum').html(Object.getOwnPropertyNames(ids).length);
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
</script>
|
||||
@@ -225,7 +225,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 团购秒杀 -->
|
||||
<!-- 团购 -->
|
||||
<div v-if="item.type === 'groupPurchase'" class="drag clearfix lay-goods slide group">
|
||||
<div class="goods-head">
|
||||
<div>{{item.value.title}}</div>
|
||||
@@ -248,6 +248,29 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 秒杀 -->
|
||||
<div v-if="item.type === 'seckill'" class="drag clearfix lay-goods slide group">
|
||||
<div class="goods-head">
|
||||
<div>{{item.value.title}}</div>
|
||||
</div>
|
||||
<div class="group-item" v-for="(goods,key) in item.value.list" :key="key">
|
||||
<div class="group-image">
|
||||
<img src="/static/images/common/empty-banner.png" alt="">
|
||||
</div>
|
||||
<div class="group-detail">
|
||||
<p class="group-name twolist-hidden">
|
||||
{{goods.name||'此处显示商品名称'}}
|
||||
</p>
|
||||
<p class="group-price">{{goods.price||'¥99.00'}}</p>
|
||||
<p class="group-time">
|
||||
<span>剩余:</span><span class="time">21</span>:<span class="time">30</span>:<span class="time">45</span>
|
||||
</p>
|
||||
<span class="buy-icon">
|
||||
<img src="/static/images/common/ic-car.png" alt="">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 拼团 -->
|
||||
<div v-if="item.type === 'pinTuan'" class="drag clearfix lay-goods slide group">
|
||||
<div class="goods-head">
|
||||
@@ -684,7 +707,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 团购秒杀 -->
|
||||
<!-- 团购 -->
|
||||
<template v-if="selectWg.type=='groupPurchase'">
|
||||
<div>
|
||||
<div class="select_seller_goods_box">
|
||||
@@ -718,7 +741,46 @@
|
||||
</el-form-item>
|
||||
<div class="pl25">
|
||||
<p class="layout-tip">
|
||||
团购秒杀数据请到 促销管理 - <a href="javascript:;" lay-href="/promotion/group/">团购秒杀列表</a>中管理
|
||||
团购数据请到 促销管理 - <a href="javascript:;" lay-href="/promotion/group/">团购秒杀列表</a>中管理
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 秒杀 -->
|
||||
<template v-if="selectWg.type=='seckill'">
|
||||
<div>
|
||||
<div class="select_seller_goods_box">
|
||||
<input type="hidden" name="params[goodsId]" value="">
|
||||
<ul id="selectSeckillGoods" class="sellect_seller_goods_list clearfix">
|
||||
<draggable element="ul" :list="selectWg.value.list" :options="{group:{ name:'selectGoodsList'}, ghostClass: 'ghost',animation: 150}">
|
||||
<li v-for="(goods,key) in selectWg.value.list" :key="key">
|
||||
<i class="layui-icon layui-icon-close-fill icon-delete" @click="handleDeleteGoods(key)"></i>
|
||||
<!--<img :src="goods.image" alt="">-->
|
||||
<div class="left">
|
||||
<img src="/static/images/common/empty-banner.png" alt="">
|
||||
</div>
|
||||
<div class="right">
|
||||
<p>{{goods.name}}</p>
|
||||
</div>
|
||||
</li>
|
||||
</draggable>
|
||||
</ul>
|
||||
<div class="addImg" @click="selectSeckillGoods">
|
||||
<i class="iconfontCustom icon-icon-test"></i>
|
||||
<span>选择商品</span>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="divider">
|
||||
</hr>
|
||||
<el-form-item label="商品组名称">
|
||||
<input type="text" v-model="selectWg.value.title" class="selectLinkVal">
|
||||
</el-form-item>
|
||||
<el-form-item label="显示数量">
|
||||
<input type="number" v-model.number="selectWg.value.limit" min="1" class="number-input">
|
||||
</el-form-item>
|
||||
<div class="pl25">
|
||||
<p class="layout-tip">
|
||||
秒杀数据请到 促销管理 - <a href="javascript:;" lay-href="/promotion/group/">团购秒杀列表</a>中管理
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user