Authored by 王钱钧

Merge branch 'release/1.6' of http://git.dev.yoho.cn/platform/yohobuy-portal-fe into release/1.6

Conflicts:
	client/js/common/util.js
... ... @@ -182,8 +182,6 @@ var util = {
}
var header = "var " + keys.join(',') + ";";
html = html.replace(/(^|\]\])(.*?)(\[\[|$)/igm, function(name, $1, $2) {
var trim = $2.replace(/^\s+|\s+$/, '');
return trim ? formstr($2) : '';
... ... @@ -200,7 +198,6 @@ var util = {
}
result += "return p.join('');\n";
var fn = new Function(header + result);
var b = fn.call(source);
return b;
... ... @@ -229,21 +226,17 @@ var util = {
? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
}
}
return format;
} else {
return "";
}
},
__filterNull:function(obj, prop) {
__filterNull: function(obj, prop) {
// 判断item里面 instr属性是不是为空
if (obj[prop]) {
return obj[prop];
} else {
return "";
}
if (obj[prop]) {
return obj[prop];
} else {
return "";
}
}
}
module.exports = util;
\ No newline at end of file
... ...
... ... @@ -119,6 +119,7 @@ $(document).on("click", "#saveAllInfo", function() {
res = res.data;
if (res.code == '200') {
e.$tip(res.message, function() {}, 'growl-success');
location.href = '/goods/netsale/index';
} else {
e.$tip(res.message);
}
... ...
... ... @@ -272,10 +272,10 @@ var g = new common.grid({
render: function(item) {
var HtmArr = [];
if (item.status == 1) {
if (item.status == 4 || item.status == 1 || item.status == 5 || item.status == 0 || item.status == 6) {
HtmArr.push('<a href="/goods/netsale/edit/' + item.productSkn + editPostion + '" class="btn btn-info btn-xs edit-btn">编辑</a>');
HtmArr.push('<a href="javascript:;" class="btn btn-danger btn-xs shelve-btn" data-skn="' + item.productSkn + '">下架</a>');
} else if (item.status != 2 && item.status != 5) {
} else if (item.status == 3 || item.status == 8 || item.status == 2) {
HtmArr.push('<a href="/goods/netsale/edit/' + item.productSkn + editPostion + '" class="btn btn-info btn-xs edit-btn">编辑</a>');
HtmArr.push('<a href="javascript:;" class="btn btn-success btn-xs shelve-btn" data-skn="' + item.productSkn + '">上架</a>');
}
... ... @@ -366,7 +366,6 @@ $('#export-btn').on('click', function() {
}
});
console.log(count, len);
if (count == 0 && len <= 0) {
common.util.__tip('请选择导出商品的条件', 'warning');
return;
... ... @@ -469,12 +468,10 @@ $('#basicTable').on('click', '.shelve-btn', function() {
}
param.targetStatus = $(this).data('type');
console.log(param);
common.util.__ajax({
url: reqUrl,
data: param
}, function(res) {
console.log(res);
if (res.code == 200) {
shelveLayer.close();
}
... ...
... ... @@ -85,18 +85,16 @@ $.ajax({
if (typeof value == 'string') {
data[key] = value.replace(/,/g, "|");
}
});
if (comfort) {
$.each(comfort, function(index, item) {
if (item.value) {
data.productComfort.data[index].value = item.value;
}
});
}
$.each(data.productComfort.data, function(index, item) {
if (comfort) {
item.value = comfort[index].value;
} else {
item.value = '';
}
});
$('#addinfo-wrap').html(common.util.__template2($('#addInfoTemp').html(), data));
... ...
... ... @@ -63,7 +63,6 @@ common.util.__ajax({
productSkn: NETSALEDATA.baseProductInfo.baseProduct.productSkn
}
}, function(res) {
console.log(res);
$('#guang-wrap').html(common.util.__template2($('#guangWrapTemp').html(), {
data: res.data
}));
... ... @@ -258,6 +257,7 @@ common.edit.ajaxfileupload(".fenmianfile", {
item.push(data);
goodsList[$(this).data("index")].goodsImagesList = item;
$(this).parents(".cover-image-item").before(common.util.__template2($("#fenmianImgTemp").html(), data));
$('#cover-color').append($($('#colorCoverTemp').html()));
} else {
common.util.__tip(response.message);
}
... ... @@ -265,20 +265,28 @@ common.edit.ajaxfileupload(".fenmianfile", {
});
$(document).on("click", ".cover-color .btn-metro", function() {
var index = $(this).parents("ul").data("index");
var index1 = $(this).parents(".cover-image-item").data("index");
$('#cover-color').on("click", ".btn-metro", function() {
var index = $(this).parents(".form-group").siblings().find('.cover-image-list').data("index");
var index1 = $(this).parents(".cover-color-box").index();
var item = goodsList[index].goodsImagesList[index1];
if ($(this).hasClass("info")) {
$(this).removeClass("info");
var $groups = $(this).parents(".cover-color-box");
var colorIndex = $(this).index();
if ($(this).hasClass('info')) {
$(this).removeClass('info');
} else {
$(this).addClass("info").siblings().removeClass("info");
$('.cover-color-box').each(function() {
$(this).find('.btn-metro').eq(colorIndex).removeClass('info');
});
$(this).siblings('.btn-metro').removeClass('info').end().addClass('info');
}
var groups = $(this).parent(".cover-color");
item.isDefault = groups.find("a").eq(0).hasClass("info") ? "Y" : "N";
if (groups.find("a").eq(1).hasClass("info")) {
item.isDefault = $groups.find('.btn-metro').eq(0).hasClass('info') ? 'Y' : 'N';
if ($groups.find('.btn-metro').eq(1).hasClass('info')) {
item.genderCover = 1;
} else if (item.genderCover = groups.find("a").eq(2).hasClass("info")) {
} else if (item.genderCover = $groups.find('.btn-metro').eq(2).hasClass('info')) {
item.genderCover = 2;
} else {
item.genderCover = 0;
... ...
... ... @@ -43,7 +43,6 @@ var $ = require('jquery');
onClick:function(url, item, hint) {
var e = new common.edit("#baseform");
console.log(item);
common.dialog.confirm(hint,
common.util.__template($("#template").html(), item),
function() {
... ... @@ -59,7 +58,6 @@ var $ = require('jquery');
});
});
e.init();
// console.log(item.parentId);
new common.dropDown({el: "#parentId", "ajax": "firstCategory"});
if(hint == "修改分类") {
common.util.__ajax({
... ... @@ -73,7 +71,7 @@ var $ = require('jquery');
}
}
});
},true);
}
}
... ...
var $ = require('jquery'),
common = require('../common/common');
common = require('../common/common'),
util = require('../common/util');
var g = new common.grid({
el: "#product-pool",
... ... @@ -53,8 +54,9 @@ var $ = require('jquery'),
__type: "batch-import"
},
onComplete:function(res){
util.__tip("上传成功",'success');
$("#sknVal").val(JSON.stringify(res.data.productSkn));
//console.log($("#sknVal").val().replace("[", "").replace("]", ""));
$("#path").val($("#productSkn").val());
}
});
... ...
... ... @@ -81,6 +81,21 @@ var $ = require('jquery'),
return "开始时间和结束时间必须同时存在";
}
});
e.on("validate", function() {
var temp = $("#productPoolId").val();
if(!temp || temp == -1) {
return "请填写商品池";
}
});
e.on("validate", function() {
if(($("#promotion1").is(":checked") && !$("#promotionName1").val())
|| ($("#promotion2").is(":checked") && (!$("#promotionName2").val() || !$("#promotionName3").val()))
|| ($("#promotion4").is(":checked") && !$("#promotionName4").val())
|| ($("#promotion5").is(":checked") && !$("#promotionName5").val())) {
return "请将折扣形式填写完整";
}
});
common.dialog.confirm(hint,
common.util.__template($("#template").html(), item),
... ... @@ -90,29 +105,25 @@ var $ = require('jquery'),
if(typeof option.data.startTime == "string") {
option.data.startTime=new Date(option.data.startTime).getTime() / 1000;
option.data.endTime=new Date(option.data.endTime).getTime() / 1000;
// console.log(option.data.startTime);
}
var arr;
try {
arr=option.data.promotionName.split(":")//"promotionName1:折起";
option.data.promotionName = "";
for(var i = 0; i < arr.length; i++) {
var value = "";
try {
value = $("#" + arr[i]).val();
} catch(e) {
value = arr[i];
}
option.data.promotionName += value ? value : arr[i];
}
}catch(e){}
var val=$('input:radio[name="promotionName"]:checked').val();
if(val == 1) {
option.data.promotionName = $("#promotionName1").val() + "折起";
}else if(val == 2) {
option.data.promotionName = $("#promotionName2").val() + "~" + $("#promotionName3").val() + "折";
}else if(val == 4) {
option.data.promotionName = $("#promotionName4").val() + "元起";
}else if(val == 5) {
option.data.promotionName = $("#promotionName5").val() + "%Off";
}
option.success=function(){
g.reload();
};
option.error=function(){
}
});
option.success=function(){
g.reload();
};
option.error=function(){
}
});
});
//
if(item.promotionName) {
... ... @@ -134,6 +145,7 @@ var $ = require('jquery'),
$("#promotion5").attr("checked","checked");
}
}
console.log($("#promotion1").val());
e.init();
new common.dropDown({el: "#productPoolId","ajax":"productPool"});
... ... @@ -143,11 +155,8 @@ var $ = require('jquery'),
url:'/runManage/subjectManage/queryBaseProductPoolListById',
data:{id:item.productPoolId}
},function(res) {
// console.log(res);
$("#select2-productPoolId-container").html(res.data[0].text);
},true);
} else {
$("#select2-productPoolId-container").html("选择商品池");
}
}
};
... ...
... ... @@ -31,14 +31,12 @@ input[type=date], input[type=time], input[type=datetime-local], input[type=month
.cover-image-list {
li {
float: left;
width: auto;
width: 135px;
height: auto;
border: none;
}
.btn {
padding: 2px 5px;
}
.goods-img {
margin: 0 auto;
... ... @@ -51,6 +49,16 @@ input[type=date], input[type=time], input[type=datetime-local], input[type=month
}
}
.cover-color {
.cover-color-box {
float: left;
width: 135px;
}
.btn {
padding: 2px 5px;
}
}
.goods-img {
position: relative;
width: 110px;
... ...
exports.domain = require('../config/common.js').domain;
//exports.domain = 'http://172.16.6.227:8083/yohobuy-platform-web'; //马力
//exports.domain = 'http://172.16.6.227:8088/platform'; //马力
//exports.domain = 'http://172.16.6.236:8080/platform'; //钱军
//exports.domain = 'http://172.16.6.162:8088/platform'; //李建
//exports.domain = 'http://172.16.6.197:8080/yohobuy-platform-web'; //耿超
... ... @@ -313,6 +313,30 @@ exports.res = [{
}, {
name: 'searchSortList',
type: 'string'
}, {
name: 'recommend',
type: 'string'
}, {
name: 'productDesc',
type: 'string'
}, {
name: 'searchKeys',
type: 'string'
}, {
name: 'searchSortList',
type: 'string'
}, {
name: 'goodsImagesReq',
type: 'string'
}, {
name: 'washTips',
type: 'string'
}, {
name: 'brandRelationList',
type: 'string'
}, {
name: 'productMaterial',
type: 'string'
}]
}, {
//网销信息 -> 保存基本信息接口
... ...
... ... @@ -3,6 +3,7 @@ var _ = require('lodash');
var fs = require('fs');
var ipaddr = require('ipaddr.js');
var domain = require('../../config/common.js').domain;
//var domain = 'http://172.16.6.227:8088/platform'; //马力
// var domain = 'http://172.16.6.227:8083/yohobuy-platform-web';
exports.downFile = function(req, res) {
... ...
... ... @@ -3,7 +3,7 @@ var _ = require('lodash');
var fs = require('fs');
var ipaddr = require('ipaddr.js');
var domain = require('../../config/common.js').domain;
//var domain = 'http://172.16.6.227:8083/yohobuy-platform-web'; //马力
//var domain = 'http://172.16.6.227:8088/platform'; //马力
// var domain = 'http://172.16.6.162:8088/platform';
//var domain = 'http://172.16.6.240:8088/platform';
... ...
... ... @@ -27,7 +27,7 @@
<script type="text/template" id="template">
<div class="rows" id="baseform">
<div class="form-group">
<label for="category_name_value" class="col-sm-2 control-label">分类名称</label>
<label for="categoryName" class="col-sm-2 control-label">分类名称</label>
<div class="col-sm-10">
<input type="hidden" value="{id}" id="id" />
... ... @@ -36,7 +36,7 @@
</div>
</div>
<div class="form-group">
<label for="fir_category_value" class="col-sm-2 control-label">一级分类</label>
<label class="col-sm-2 control-label">一级分类</label>
<div class="col-sm-10">
<select id="parentId" style="width: 280px;" value="{parentId}" name="{parentId}">
<option value="{parentId}">请选择</option>
... ...
... ... @@ -71,10 +71,13 @@
</div>
<div class="form-group">
<label class="col-sm-2 control-label">上传</label>
<div class="col-sm-10">
<div class="col-sm-6">
<input id="path" class="form-control" type="text" disabled="disabled" style="cursor:default">
</div>
<div class="col-sm-4">
<input id="productSkn" name="productSkn" class="btn btn-default excel-upload" type="file">
<div class="file-name btn btn-default">请选择文件</div>
<input type="hidden" id="sknVal" />
<input type="hidden" id="sknVal" />
</div>
</div>
</div>
... ...
... ... @@ -99,18 +99,17 @@
<div class="form-group">
<label class="col-sm-2 control-label">促销形式</label>
<div class="col-sm-10">
<input id="promotion1" name="promotionName" type="radio" value="promotionName1:折起" />
<input id="promotion1" name="promotionName" type="radio" value="1" />
<input class="smalltxt" type="text" id="promotionName1" />折起
<input class="smalltxt" type="text" id="promotionName1" />折起&nbsp;&nbsp;
<input id="promotion2" name="promotionName" type="radio" value="promotionName2:~:promotionName3:折" /><input class="smalltxt" type="text" id="promotionName2" />~<input class="smalltxt" type="text" id="promotionName3" />
<input id="promotion2" name="promotionName" type="radio" value="2" /><input class="smalltxt" type="text" id="promotionName2" />~<input class="smalltxt" type="text" id="promotionName3" />&nbsp;&nbsp;
<input id="promotion4" name="promotionName" type="radio" value="promotionName4:元起" /><input class="smalltxt" type="text" id="promotionName4" />元起
<input id="promotion4" name="promotionName" type="radio" value="4" /><input class="smalltxt" type="text" id="promotionName4" />元起&nbsp;&nbsp;
<input id="promotion5" name="promotionName" type="radio" value="promotionName5:%Off" /><input class="smalltxt" type="text" id="promotionName5" />%Off(大图折扣)
<input id="promotion5" name="promotionName" type="radio" value="5" /><input class="smalltxt" type="text" id="promotionName5" />%Off(大图折扣)
</div>
<input type="hidden" id="promotionName" value="{promotionName}" for="radio"/>
</div>
<div class="form-group col-sm-100">
<label class="col-sm-2 control-label">活动时间</label>
... ... @@ -146,9 +145,11 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="">添加商品</label>
<label class="col-sm-2 control-label" for="">添加商品<font color="#f00">*</font></label>
<div class="col-sm-10">
<select id="productPoolId" style="width: 280px;" value="{productPoolId}"></select>
<select id="productPoolId" style="width: 280px;" value="{productPoolId}">
<option value="{productPoolId}">请选择商品池</option>
</select>
</div>
</div>
</div>
... ...
... ... @@ -31,7 +31,7 @@
[[/if]]
</div>
<div class="form-group">
<div class="col-sm-3">品类:</div>
<div class="col-sm-3">品类:[[maxSortName]]/[[middleSortName]]/[[smallSortName]]</div>
<div class="col-sm-3">货品年:[[goodsYears]]</div>
<div class="col-sm-3">货品季:[[goodsSeason]]</div>
[[if renderType=='info']]
... ... @@ -43,10 +43,10 @@
<div class="col-sm-3">商品类型:[[attribute]]</div>
</div>
<div class="form-group">
<div class="col-sm-1 height40">商品名称<i class="red">*</i>:</div>
<div class="col-sm-2 height40">商品名称<i class="red">*</i>:</div>
[[if renderType=='edit']]
<div class="col-sm-8"><input id="productName" class="form-control" placeholder="基础商品名称" type="text" value="[[productName]]" required></div>
<div class="col-sm-12" style="color: red;"><div class="col-sm-1"></div>建议名称:【品牌英文+性别+图案纹理+版型+风格+三级类目+商家款号+(款型)】,如此可增加商品在搜索页的展示。</div>
<div class="col-sm-12" style="color: red;"><div class="col-sm-2"></div>建议名称:【品牌英文+性别+图案纹理+版型+风格+三级类目+商家款号+(款型)】,如此可增加商品在搜索页的展示。</div>
[[else]]
<div class="col-sm-8 height40">[[productName]]</div>
[[/if]]
... ... @@ -120,7 +120,7 @@
<blockquote>上架必填</blockquote>
</div>
<div class="form-group">
<div class="col-sm-1 height40">商品短评<i class="red">*</i>:</div>
<div class="col-sm-2 height40">商品短评<i class="red">*</i>:</div>
<div class="col-sm-8 height40">
[[if renderType=='edit']]
<input id="phrase" class="form-control" placeholder="商品短评" value="[[phrase]]" type="text" required>
... ...
... ... @@ -23,7 +23,6 @@
<p>[[item.goodsName]]</p>
<p>[[item.factoryGoodsName]]</p>
</div>
<div class="cover-color height40">颜色封面:</div>
</div>
<div class="col-sm-11">
... ... @@ -33,7 +32,25 @@
<div class="goods-img">
<a class="fileinput-button-icon" href="javascript:void(0);"><img src="[[_item.imageUrl]]"></a>
</div>
<div class="cover-color height40">
</li>
[[/each]]
<li class="cover-image-item fileinput-button">
<div class="goods-img">
<a class="fileinput-button-icon" href="javascript:void(0);">+</a>
<input type="file" class="goods-img-upload fenmianfile" name="fenmianfile" data-index=[[index]]>
</div>
</li>
</ul>
</div>
</div>
<div class="form-group">
<div class="col-sm-1">
<div class="height40">颜色封面:</div>
</div>
<div class="col-sm-11">
<div id="cover-color" class="cover-color col-sm-12 height40">
[[each item.goodsImagesList as _item _index]]
<div class="cover-color-box">
[[if _item.isDefault=="Y"]]
<a href="javascript:;" class="btn btn-default btn-metro info">默认</a>
[[else]]
... ... @@ -51,25 +68,13 @@
[[else]]
<a href="javascript:;" class="btn btn-default btn-metro">女封</a>
[[/if]]
</div>
<!-- <div class="goods-color height40">
<a href="javascript:;" class="btn btn-default btn-metro">设置默认</a>
<a href="javascript:;" class="btn btn-default btn-metro">调用图片</a>
</div> -->
</li>
[[/each]]
<li class="cover-image-item fileinput-button">
<div class="goods-img">
<a class="fileinput-button-icon" href="javascript:void(0);">+</a>
<input type="file" class="goods-img-upload fenmianfile" name="fenmianfile" data-index=[[index]]>
</div>
<div class="cover-color height40">
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-1">
<div class="goods-color height40">商品封面:</div>
... ... @@ -93,10 +98,13 @@
<div class="goods-img">
<a class="fileinput-button-icon" href="javascript:void(0);"><img src="[[imageUrl]]"></a>
</div>
<div class="cover-color height40">
<a href="javascript:;" class="btn btn-default btn-metro">默认</a>
<a href="javascript:;" class="btn btn-default btn-metro">男封</a>
<a href="javascript:;" class="btn btn-default btn-metro">女封</a>
</div>
</li>
</script>
<script type="text/template" id="colorCoverTemp">
<div class="cover-color-box">
<a href="javascript:;" class="btn btn-default btn-metro">默认</a>
<a href="javascript:;" class="btn btn-default btn-metro">男封</a>
<a href="javascript:;" class="btn btn-default btn-metro">女封</a>
</div>
</script>
\ No newline at end of file
... ...