Commit 37f512a2 by 施宇

Merge branch 'sy_ic_1016'

# Conflicts:
#	dist/js/quoteprice/releaseinquiry.js
parents 44837207 e38ea008
......@@ -98,17 +98,6 @@
{{# } }}
<div class=" goods_desc boxsiz">
<div class="title">
<div class="fr title_right">
{{# if(d['audit_status'] == 1){ }}
{{# if(d['status'] == 1){ }}
<span class="mark lineBlock zs"></span><span class="text">展示中</span>
{{# } else { }}
<span class="mark lineBlock xj"></span><span class="text">已下架</span>
{{# } }}
{{# } else { }}
<span class="mark lineBlock jy"></span><span class="text">禁用中</span>
{{# } }}
</div>
<div class="title_left">
<h3 class="bold fl boxsiz goods_name">{{d.goods_name}}</h3>
<div class="price fl bold boxsiz">
......
......@@ -2,15 +2,15 @@
<html lang="zh-CN">
<head>
<include file="Common@public/header"/>
<include file="Common@public/header" />
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/goodmanage.css">
</head>
<body>
<div class="wrapper">
<include file="Common@public/navleft"/>
<div class="wrapper">
<include file="Common@public/navleft" />
<div class="wrapper_right">
<include file="Common@public/top"/>
<include file="Common@public/top" />
<div class="right_content good_manage_content">
<div class="content">
<div class="nav_title">商品管理 > 商品列表</div>
......@@ -39,25 +39,18 @@
<span class="fl">日期选择:</span>
<div class="start_date_div fl">
<div class="icon_div fl icon iconfont iconjuxing13"></div>
<input type="text" name="start_time" placeholder="开始日期" class="fl boxsiz" id="start_time">
<input type="text" name="start_time" placeholder="开始日期" class="fl boxsiz"
id="start_time">
</div>
<div class="fl heng"></div>
<div class="end_date_div fl">
<div class="icon_div fl icon iconfont iconjuxing13">
</div>
<input type="text" name="end_time" placeholder="结束日期" class="fl boxsiz" id="end_time">
<input type="text" name="end_time" placeholder="结束日期" class="fl boxsiz"
id="end_time">
</div>
</div>
<div class="layui-form-style fr">
<span class="lineBlock">状态:</span>
<select name="status/eq">
<option value=""></option>
<option value="1">上架</option>
<option value="2">下架</option>
<option value="3">禁用</option>
</select>
</div>
</div>
<div class="input_div boxsiz">
<span class="lineBlock">商品型号:</span>
......@@ -71,61 +64,44 @@
<span>目前商品sku上限为2000条,超出部分将上传失败。</span>
</div>
<div class="btn_group clr">
<div class="dgsc fl btn btn_blue">
<div class="fl more-delete">
<span class="gx-status wxz"></span>
<span class="plsc-text">批量删除</span>
</div>
<div class="dgsc fr btn btn_blue">
<span class="icon iconfont iconjuxing16"></span>
上传商品
</div>
<div class="xz fr boxsiz btn btn_border">
<a href="__PUBLIC__/ic_templet.xls">下载商品模板</a>
</div>
<div class="plsc fr btn btn_green">
<span class="icon iconfont iconjuxing16 "></span>
批量上传
</div>
<div class="xz fr boxsiz btn btn_border">
<a href="__PUBLIC__/ic_templet.xls">下载商品模板</a>
</div>
<div class="good_data" id='listData'>
<!-- <div class="data_list">
<div class="data_item">
<div class="data_detail">
<div class="type fl ellipsis boxsiz">
<span class="bold">STM32F103ZET6STM32F103ZET6</span>
<span class="icon iconfont iconjuxing17"></span>
</div>
<div class="brand fl ellipsis boxsiz">
品牌:<span>Texas Instrument</span>
</div>
<div class="num fl ellipsis boxsiz">库存:
<span>PCS10,000</span>
</div>
<div class="price fl ellipsis boxsiz bold">¥1.8835</div>
<div class="data_status fl boxsiz zs">
<span class="mark lineBlock"></span>
<span class="text">展示中</span>
</div>
<div class="time fr ellipsis boxsiz">2019-05-22 15:35</div>
</div>
<a class="xj fr">下架</a>
<a class="edit fr">编辑</a>
<div class="cl fr boxsiz btn disabled">
擦亮商品
</div>
</div>
<div class="no_data" style="display: none">
<img src="__PUBLIC__/images/nosearchdata.png" alt="">
<p class="bold">未搜索到询价信息</p>
</div>-->
<div class="good_data" id='listData'>
</div>
</div>
</div>
</div>
</div>
<include file="Common@public/foot"/>
<script src="__PUBLIC__/js/goodmanage/index.js"></script>
<script type="text/html" id="listHtml">
</div>
<include file="Common@public/foot" />
<script src="__PUBLIC__/js/goodmanage/index.js"></script>
<script type="text/html" id="listHtml">
<div class="data_list">
{{# layui.each(d, function(index, item){ }}
<div class="data_item" goodid="{{item.goods_id}}">
<div class="data_detail">
<div class="type fl boxsiz">
<div class="gx-div lineBlock">
<span class="gx-status wxz" goodid="{{item.goods_id}}"></span>
</div>
<span class="text lineBlock va-m bold ellipsis">{{item.goods_name}}</span>
{{# if(item['goods_images']){ }}
<div class="icon iconfont iconjuxing17 lineBlock">
......@@ -148,37 +124,18 @@
{{# } }}
{{item.price}}
</div>
{{# if(item['audit_status'] == 1){ }}
{{# if(item['status'] == 1){ }}
{{# if(item['update_time'] > item['morning_time']){ }}
<div class="data_status fl boxsiz zs">
<span class="mark lineBlock"></span><span class="text">展示中</span>
<span class="mark lineBlock"></span><span class="text">已擦亮</span>
</div>
{{# } else { }}
<div class="data_status fl boxsiz xj">
<span class="mark lineBlock"></span><span class="text">已下架</span>
</div>
{{# } }}
{{# } else { }}
<div class="data_status fl boxsiz jy">
<span class="mark lineBlock"></span><span class="text">禁用中</span>
<span class="mark lineBlock"></span><span class="text">未擦亮</span>
</div>
{{# } }}
<div class="time fr ellipsis boxsiz">{{ layui.util.toDateString(item.update_time * 1000)}}</div>
</div>
{{# if(item['status'] == 1){ }}
{{# if(item['audit_status'] == 1){ }}
<a class="xj xj_status fr xj_btn">下架</a>
{{# } else { }}
<a class="xj xj_status fr disabled xj_btn">下架</a>
{{# } }}
{{# } else { }}
{{# if(item['audit_status'] == 1){ }}
<a class="fb xj_status fr">发布</a>
{{# } else { }}
<a class="fb xj_status fr disabled">发布</a>
{{# } }}
{{# } }}
{{# if(item['audit_status'] == 1){ }}
<a class="edit fr" href="/uploadsingle?id={{item.goods_id}}">编辑</a>
{{# } else { }}
......@@ -194,8 +151,8 @@
{{# } }}
</div>
<div class="pagination-with" id="pagination" style="text-align: right;margin-top: 25px;"></div>
</script>
<script type="text/html" id="countHtml">
</script>
<script type="text/html" id="countHtml">
<div class="fl my_good">
<h3>{{d.mygoods}}</h3>
<p>我的商品</p>
......@@ -210,8 +167,8 @@
</div>
<div class="center_line line1"></div>
<div class="center_line line2"></div>
</script>
<script>
</script>
<script>
$('.dgsc').click(function () {
window.location.href = '/uploadsingle'
})
......@@ -224,7 +181,7 @@
$('.data_item').click(function () {
window.location.href = '/gooddetail'
})
</script>
</script>
</body>
</html>
\ No newline at end of file
......@@ -46,7 +46,7 @@
</div>
</div>
<div class="num input_div ">
<span class="input_title lineBlock">*库存:</span>
<span class="input_title lineBlock">*需求数量:</span>
<div class="input_parent">
<input type="text" name="number" placeholder="请输入需求数量" class="input boxsiz"
lay-verify="required|number|limitStock">
......
......@@ -131,9 +131,18 @@
.good_manage_content .btn_group div {
padding: 0 19px;
}
.good_manage_content .btn_group div.xz {
.good_manage_content .btn_group div.more-delete {
padding: 0 25px;
}
.good_manage_content .btn_group div.xz,
.good_manage_content .btn_group div.plsc,
.good_manage_content .btn_group div.dgsc {
margin-left: 20px;
}
.good_manage_content .btn_group div.disabled {
background-color: #DAE1E7;
cursor: not-allowed;
}
.good_manage_content .gb {
height: 34px;
line-height: 34px;
......@@ -164,7 +173,7 @@
position: absolute;
top: 0;
left: 25px;
right: 140px;
right: 60px;
bottom: 0;
}
.good_manage_content .good_data .data_list .data_item .data_detail > div {
......@@ -175,8 +184,11 @@
font-size: 16px;
width: 25%;
}
.good_manage_content .good_data .data_list .data_item .type .gx-status {
margin-right: 12px;
}
.good_manage_content .good_data .data_list .data_item .type .text {
max-width: 80%;
max-width: 68%;
}
.good_manage_content .good_data .data_list .data_item .type .icon {
position: relative;
......@@ -288,3 +300,31 @@
.good_manage_content .good_data .data_list .data_item .xj_status.fb {
color: #0D84D1;
}
.good_manage_content .gx-div {
height: 100%;
width: 32px;
}
.good_manage_content .gx-status {
display: inline-block;
height: 20px;
width: 20px;
cursor: pointer;
vertical-align: sub;
}
.good_manage_content .gx-status.wxz {
background: url('../images/wxz-icon.png') no-repeat;
background-size: 100% 100%;
}
.good_manage_content .gx-status.xz {
background: url('../images/xz-icon.png') no-repeat;
background-size: 100% 100%;
}
.good_manage_content .plsc-text {
font-size: 14px;
color: #686E73;
cursor: pointer;
margin-left: 17px;
}
.good_manage_content .plsc-text:hover {
color: #0D84D1;
}
......@@ -170,10 +170,17 @@
div {
padding: 0 19px;
&.xz {
&.more-delete{
padding:0 25px;
}
&.xz, &.plsc, &.dgsc {
margin-left: 20px;
}
&.disabled{
background-color: #DAE1E7;
cursor: not-allowed;
}
}
}
.gb {
......@@ -209,7 +216,7 @@
position: absolute;
top: 0;
left: 25px;
right: 140px;
right: 60px;
bottom: 0;
& > div {
......@@ -221,9 +228,11 @@
color: #2E3033;
font-size: 16px;
width: 25%;
.gx-status{
margin-right:12px;
}
.text {
max-width: 80%;
max-width: 68%;
}
.icon {
......@@ -370,4 +379,33 @@
}
}
}
.gx-div{
height:100%;
width:32px;
}
.gx-status{
display: inline-block;
height:20px;
width:20px;
cursor: pointer;
vertical-align: sub;
&.wxz{
background: url('../images/wxz-icon.png') no-repeat;
background-size: 100% 100%;
}
&.xz{
background: url('../images/xz-icon.png') no-repeat;
background-size: 100% 100%;
}
}
.plsc-text{
font-size: 14px;
color:#686E73;
cursor: pointer;
margin-left:17px;
&:hover{
color:#0D84D1;
}
}
}
\ No newline at end of file
......@@ -198,7 +198,15 @@
/**
* 获取最新版本信息
*/
getVersion: user_url + '/get/version'
getVersion: user_url + '/get/version',
/**
* 批量删除商品
*/
goodsDelete: goods_url + '/goods/delete',
/**
* 擦亮全部商品
*/
polishAll: goods_url + '/goods/polish/all'
};
if (typeof define === "function" && define.amd) {
return apis;
......
! function () {
window.IcController = {
isCl:true,//用户是否已经擦亮过商品 默认为已擦亮
init: function () {
this.created(this).mounted(this).handleBind(this);
},
......@@ -132,7 +133,16 @@
});
}
//判断用户是否点击了擦亮商品的按钮
if(window.location.pathname == '/goodmanage'){
if(res.data.polish_status == 2){//未刷新
opt.isCl = false;
$('.cl').addClass('btn_yellow').removeClass('disabled')
}else{//已刷新
opt.isCl = true;
$('.cl').addClass('disabled').removeClass('btn_yellow')
}
}
}
});
......
!function () {
! function () {
window.GoodManageController = {
token: Util.getCookie('token') || '',
deleteGoods: [],
init: function () {
this.created(this).mounted(this).render(this, {
offset: 10,
......@@ -13,7 +15,7 @@
//日期控件初始化
layui.laydate.render({
elem: '#start_time',
theme: '#0D84D1'
theme: '#0D84D1',
});
layui.laydate.render({
......@@ -48,14 +50,17 @@
return this;
},
render: function (opt, params, curr) {
opt.deleteGoods = [];
var morningTime = new Date(new Date().toLocaleDateString()).getTime()/1000;//当前时间的凌晨时间
$('.more-delete .gx-status').addClass('wxz').removeClass('xz')
//商品列表初始化
IcController.getData(apis.goodsInfo, 'GET', params, function (res) {
var getTpl = listHtml.innerHTML;
if (res.errcode === 0) {
for(var k in res.goods_list){//把凌晨数据加到列表数据中跟更新时间做比较
res.goods_list[k].morning_time = morningTime
};
layui.laytpl(getTpl).render(res.goods_list, function (html) {
$("#listData").empty().html(html);
......@@ -70,7 +75,6 @@
jump: function (obj, first) {
if (!first) {
//分页回调调用
var json = {
p: obj.curr
......@@ -119,6 +123,47 @@
}
})
},
//批量删除商品的接口
deleteGoodsAjax: function (opt) {
IcController.getData(apis.goodsDelete, 'GET', {
"token": Util.getCookie('token') || "",
"goods_id": JSON.stringify(opt.deleteGoods),
}, function (res) {
if (res.errcode === 0) {
opt.deleteGoods = [];
layer.msg('删除成功', {
time: 600
}, function () {
opt.mounted(opt)
$('.cx').click();
});
} else {
layer.msg('删除失败')
}
})
},
//擦亮商品的接口
clGoodsAjax: function (opt) {
IcController.getData(apis.polishAll, 'GET', {
"token": Util.getCookie('token') || "",
}, function (res) {
if (res.errcode === 0) {
layer.msg('擦亮成功', {
time: 600
}, function () {
opt.mounted(opt);
IcController.isCl = true;
$('.cl').addClass('disabled').removeClass('btn_yellow')
$('.layui-icon-refresh').click();
});
} else {
layer.msg('擦亮失败');
IcController.isCl = false;
}
})
},
handleBind: function (opt) {
......@@ -182,16 +227,77 @@
e.stopPropagation();
var goodId = $(this).attr('goodid');
window.location.href="/gooddetail?type=1&id="+goodId
window.location.href = "/gooddetail?type=1&id=" + goodId
});
//阻止默认事件
$(document).on('click','.data_list .disabled',function (e) {
$(document).on('click', '.data_list .disabled', function (e) {
e.stopPropagation();
});
$(document).on('click', '.gx-div', function (e) {
//单个商品勾选
e.stopPropagation();
var goodid = $(this).find('.gx-status').attr('goodid')
if ($(this).find('.gx-status').hasClass('wxz')) {
//未勾选时变成勾选
$(this).find('.gx-status').removeClass('wxz').addClass('xz');
opt.deleteGoods.push(goodid);
} else {
//勾选时变为未勾选
$(this).find('.gx-status').removeClass('xz').addClass('wxz');
var index = opt.deleteGoods.indexOf(goodid);
if (index != -1) {
opt.deleteGoods.splice(index, 1)
}
}
if (opt.deleteGoods.length == 10) {
$('.more-delete .gx-status').removeClass('wxz').addClass('xz');
} else {
$('.more-delete .gx-status').removeClass('xz').addClass('wxz');
}
});
$('.more-delete').on('click', '.gx-status', function () {
//全选
opt.deleteGoods = [];
if ($(this).hasClass('wxz')) {
//未勾选时变成勾选
$(this).removeClass('wxz').addClass('xz');
$('#listData .gx-status').each(function () {
var goodid = $(this).attr('goodid')
$(this).removeClass('wxz').addClass('xz');
opt.deleteGoods.push(goodid)
})
} else {
//勾选时变为未勾选
$(this).removeClass('xz').addClass('wxz');
$('#listData .gx-status').each(function () {
$(this).removeClass('xz').addClass('wxz');
})
}
});
//批量删除
$('.plsc-text').on('click', function () {
if (opt.deleteGoods.length) {
layer.confirm('是否确认删除当前选中的商品?', {
icon: 3,
title: '提示',
move: false
}, function (index) {
opt.deleteGoodsAjax(opt)
layer.close(index);
})
}
});
//擦亮商品
$('.cl').on('click',function(){
if(!IcController.isCl){//未刷新
opt.clGoodsAjax(opt)
}
})
......
......@@ -218,9 +218,9 @@
return '品牌不能小于2个字符'
}
},
limitStock: function (value, item) {
if (value > 10000000) {
return '库存最大为10000000(一千万)'
limitStock:function(value, item){
if(value>10000000){
return '数量最大为10000000(一千万)'
}
},
limitLengthLgThree: function (value, item) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment