Authored by weiqingting

Merge branch 'release/1.6' into develop

# Conflicts:
#	client/js/common/dropDown.js
#	client/package.json
... ... @@ -2,8 +2,10 @@
var $ = require('jquery'),
common=require('../common/common');
/*基础商品模型(Model)*/
var RESPONSEDATA={};
/*获取基础商品数据*/
var param = location.href.match(/(add|update|update2)\/(\d+)/);
if(param){
common.util.__ajax({
... ... @@ -15,6 +17,7 @@ if(param){
},true);
}
/*货品年,规则从2015年开始,到今年之后的10年*/
RESPONSEDATA.ENUMYEAR=(function(){
var _y=[];
for(var i=2005;i<(new Date).getFullYear()+10;i++){
... ... @@ -28,20 +31,20 @@ console.log(RESPONSEDATA);
/*审核*/
/*根据Model渲染View 基础商品基本信息*/
$("#basicInfo").html(common.util.__template2($("#template2").html(),RESPONSEDATA));
/*类目配置*/
var ENUM={
goodsSizeList:{"sizeId":"","salePrice":$("#salesPriceStr").val(),"barCode":"","isSuppled":"N","presaleStorageNum":""}
}
/*商品名称*/
/*公共模块*/
var Bll={
/*判断类目级别,如果符合三级四级,返回对应id*/
validateSort:function(){
var id=false;
var select=tabTree.getAddress();
console.log("select",select);
if(select.length>2){
if(select[2]&&select[2].id){
id=select[2].id;
... ... @@ -52,6 +55,7 @@ var Bll={
}
return id;
},
/*商品名称*/
IsEnter:false,
productNameArr:['','',''],
setProductName:function(){
... ... @@ -65,45 +69,45 @@ var Bll={
}
/*非销售属性配置*/
var ag=new common.grid({
el:"#attributeTable",
columns:[
{display:"名称",name:"attributeName",render:function(item){
item.required=item.isMust=="Y"?"required":"";
var arr=[];
arr.push(item.attributeName);
if(item.required){
arr.push("<span class='red'>*</span>");
}
return arr.join('');
}},
{display:"属性",render:function(item){
item.required=item.isMust=="Y"?"required":"";
// item.attributeValues=item.attributeValues.split(',').map(function(elem, index, arr){
// return {name:elem}
// });
var attrs=RESPONSEDATA.productStandardRelationBoList;
if(attrs){
for(var i in attrs){
if(attrs[i].standardId==item.attributeId){
item.val=attrs[i].standardVal
item.__val=attrs[i].parameterMakeId
}
}
}
// item.attributeValues={name:};
return common.util.__template2($("#template3").html(),item);
}},
{display:"备注",name:"remark"}
],
complete:function(){
ag.__edit.init();
}
});
ag.__edit=new common.edit("#attributeTable");
/*品类*/
// var ag=new common.grid({
// el:"#attributeTable",
// columns:[
// {display:"名称",name:"attributeName",render:function(item){
// item.required=item.isMust=="Y"?"required":"";
// var arr=[];
// arr.push(item.attributeName);
// if(item.required){
// arr.push("<span class='red'>*</span>");
// }
// return arr.join('');
// }},
// {display:"属性",render:function(item){
// item.required=item.isMust=="Y"?"required":"";
// // item.attributeValues=item.attributeValues.split(',').map(function(elem, index, arr){
// // return {name:elem}
// // });
// var attrs=RESPONSEDATA.productStandardRelationBoList;
// if(attrs){
// for(var i in attrs){
// if(attrs[i].standardId==item.attributeId){
// item.val=attrs[i].standardVal
// item.__val=attrs[i].parameterMakeId
// }
// }
// }
// // item.attributeValues={name:};
// return common.util.__template2($("#template3").html(),item);
// }},
// {display:"备注",name:"remark"}
// ],
// complete:function(){
// ag.__edit.init();
// }
// });
// ag.__edit=new common.edit("#attributeTable");
/*品类初始化*/
var SORTDATA={
url:"/goods/query/querySortBySmallSort",
datas:[
... ... @@ -120,19 +124,18 @@ var SORTDATA={
Bll.productNameArr[2]=data[data.length-1].sortName;
Bll.setProductName();
/*查出非销售属性*/
var sorid=Bll.validateSort();
if(sorid){
common.util.__ajax({
url:'/base/goods/queryAllProductAttr',
data:{
categoryId:sorid,
displayPosition:1
}
},function(res){
console.log("分类",res);
ag.init(res.data);
},true);
}
// var sorid=Bll.validateSort();
// if(sorid){
// common.util.__ajax({
// url:'/base/goods/queryAllProductAttr',
// data:{
// categoryId:sorid,
// displayPosition:1
// }
// },function(res){
// ag.init(res.data);
// },true);
// }
}
}
... ... @@ -190,7 +193,7 @@ var g=new common.grid({
g.__gsm[item.__index]=item.goodsSizeList.length;
}
var html=[];
html.push("<div class='form-group'><div class='col-sm-11 red'><input type=text value='"+item.factoryCode+"' data-index="+item.__index+" class='factoryCode form-control' placeholder='款型编码' required/></div></div>");
html.push("<div class='form-group'><div class='col-sm-11 red'><input type=text value='"+item.modelCode+"' data-index="+item.__index+" class='modelCode form-control' placeholder='款型编码' required/></div></div>");
html.push('<div class="rows" id="rows__'+item.__index+'">');
item.goodsSizeList=item.goodsSizeList||[$.extend({},ENUM.goodsSizeList)];
var ISXIANGO=(common.util.__input("isAdvance")=="Y"&&+RESPONSEDATA.isAuditing==200)?true:false;
... ... @@ -225,7 +228,7 @@ var g=new common.grid({
var warp=$("#basicTable").find("tbody").children("tr").eq(i);
warp.find(".w-goods-text").prop("readonly",true).prop("disabled",true);
warp.find("input[name=file]").prop("readonly",true).prop("disabled",true);
warp.find(".factoryCode").prop("readonly",true).prop("disabled",true);
warp.find(".modelCode").prop("readonly",true).prop("disabled",true);
warp.find(".sortdelete").remove();
}
}
... ... @@ -259,7 +262,7 @@ $(document).on("click",".sortadd",function(){
var goodsSizeList=$.extend({},ENUM.goodsSizeList);
goodsSizeList.salePrice=$("#salesPriceStr").val();
g.__rows.push({
"factoryCode": "",
"modelCode": "",
"goodsColorImage": "",
goodsName: $(this).text(),
colorId: (+$(this).data("id")),
... ... @@ -311,20 +314,23 @@ $(document).on("change",".salesPriceStr",function(){
ENUM.goodsSizeList.salePrice=$.trim($(this).val());
});
$(document).on("click",".sortdelete",function(){
var that=this;
common.dialog.confirm("温馨提示","你确定删除吗?",function(){
var index=$(this).data("index");
var index=$(that).data("index");
[].splice.call(g.__rows,index,1);
g.reload();
});
// g.__e.init();
});
$(document).on("change",".factoryCode",function(){
$(document).on("change",".modelCode",function(){
var item=g.__rows[$(this).data("index")];
item.factoryCode=$(this).val();
item.modelCode=$(this).val();
});
$(document).on("click",".btn-sort-add",function(){
var item=g.__rows[$(this).data("index")];
item.goodsSizeList.push($.extend({},ENUM.goodsSizeList));
var goodsSizeList=$.extend({},ENUM.goodsSizeList);
goodsSizeList.salePrice=$("#salesPriceStr").val();
item.goodsSizeList.push(goodsSizeList);
g.reload();
// g.__e.init();
});
... ... @@ -402,7 +408,6 @@ $(document).on("change",".attr_input",function(){
$(document).on("change",".attr_checkobx_class",function(){
var item=ag.rows[$(this).data("index")];
item.val=$("#attr_"+$(this).data("index")).val();
console.log(item);
})
var e=new common.edit("#basicInfo");
... ... @@ -417,7 +422,6 @@ e.on("validate",function(){
return "请选择完整的分类目录";
});
e.on("validate",function(){
console.log(g.__gsm);
if(g.__rows.length==0){
return "请添加销售属性";
}
... ... @@ -470,11 +474,12 @@ e.on("validate",function(){
}
});
e.on("validate",function(){
if(!ag.__edit.validate(true)){
return ag.__edit.errMessage;
}
});
/*非销售属性验证*/
// e.on("validate",function(){
// if(!ag.__edit.validate(true)){
// return ag.__edit.errMessage;
// }
// });
$(document).on("click","#btnReview",function(){
... ... @@ -503,6 +508,9 @@ $(document).on("click","#btnReview",function(){
option.data.baseGoodInfoStr=JSON.stringify(g.__rows);
/*获取非销售属性数据*/
/*
option.data.productStandardRelationStr=[];
if(ag.rows.length>0){
for(var i in ag.rows){
... ... @@ -533,10 +541,12 @@ $(document).on("click","#btnReview",function(){
}
}
}
option.data.productStandardRelationStr=JSON.stringify(option.data.productStandardRelationStr);
option.data.productStandardRelationStr=JSON.stringify(option.data.productStandardRelationStr);*/
// option.debug=true;
console.log(option.data);
// console.log(option.data);
option.success=function(res){
res = res.data;
if(res.code == "200") {
... ...
... ... @@ -7,10 +7,11 @@ var edit=require('../common/edit');
//brandTonality
e.on("validate",function(){
var num=$.trim($("#brandTonality").val());
if(+num>100||+num<1){
return "调性指数(范围:1-100)";
if(num){
if(+num>100||+num<1){
return "调性指数(范围:1-100)";
}
}
return true;
});
e.init();
... ...
... ... @@ -5,19 +5,19 @@ var $ = require('jquery');
var urlObj = {
'supplier': '/supplier/supplier/getSupplierListByIdName',
'brand': '/brand/getBrandNames',
'managerName': '/supplier/storeadmin/managerName',//根据身份选择管理员
'managerName': '/supplier/storeadmin/managerName', //根据身份选择管理员
'sortattribute': '/erpproduct/sortattribute/ajax/automatic', // 品类关联实物测量属性
'sortsize': '/erpproduct/sortsize/ajax/automatic',//尺码模糊查询【验证通过】
'queryBrand': '/goods/query/brand',//查询品牌列表接口
'querySupplier': '/goods/query/supplier',//查询供应商列表接口
'sortsize': '/erpproduct/sortsize/ajax/automatic', //尺码模糊查询【验证通过】
'queryBrand': '/goods/query/brand', //查询品牌列表接口
'querySupplier': '/goods/query/supplier', //查询供应商列表接口
'queryShop': '/goods/query/shop', // 查询店铺列表接口
'queryShopPass': '/goods/query/shopPass', // 查询通过审核店铺列表接口
'maxSort': '/goods/query/maxSort',//查询一级类目列表接口
'maxSort': '/goods/query/maxSort', //查询一级类目列表接口
'shopsRest': '/ShopsRest/getShopsByName', // 店铺列表
'xiangouID': '/limit/xiangouID/selectActivityListForSelect', //限购ID
'sortsize2':'/erpproduct/sortsize/ajax/querySizeListBySortId4Html',//尺码
'sortbybrand':'/goods/query/queryShopsByBrandId',
'getjitSup':'/goods/query/getJitSupplierByBrandld',
'sortsize2': '/erpproduct/sortsize/ajax/querySizeListBySortId4Html', //尺码
'sortbybrand': '/goods/query/queryShopsByBrandId',
'getjitSup': '/goods/query/getJitSupplierByBrandld',
// 'getsort':'/goods/query/querySortBySmallSort',
'sortlist': '/product/class/queryAllProductSortList',
... ... @@ -27,6 +27,7 @@ var urlObj = {
'getAllHelpCategory': '/operations/helpcontent/getAllHelpCategory',
'getHelpCategory': '/operations/helpcontent/getHelpCategory',
'queryAll4Select': '/goods/brandSeries/queryAll4Select', //品牌款型系列
'getSelectItems': '/meterManage/brand/getSelectItems',//品牌获取选择选项的枚举
// 逛
... ... @@ -34,9 +35,12 @@ var urlObj = {
'guangGetSortList':'/guang/article/getSortList', // 逛-获取作者
'guangGetTagCategoryByStatus':'/guang/tagSort/getTagItems',
'guangCommentGetFilterItems':'/guang/comment/getItems', // 逛-评论列表-获取筛选条件
'queryBrandByShopId': '/query/brandByshopId', //查询店铺下关联品牌
'querySupplierByShopId': '/query/supplierByshopId' //查询店铺下关联供应商
};
var minimumResultsForSearch=["sortbybrand","getjitSup","sortsize2"];
var minimumResultsForSearch = ["sortbybrand", "getjitSup", "sortsize2"];
var dropDown = function(option) {
new dropDown.prototype.init(option);
... ... @@ -54,24 +58,24 @@ dropDown.prototype = {
option[i] = _option[i];
}
}
if(minimumResultsForSearch.indexOf(_option.ajax)>-1){
option.minimumResultsForSearch=Infinity
if (minimumResultsForSearch.indexOf(_option.ajax) > -1) {
option.minimumResultsForSearch = Infinity
}
if (option.ajax) {
$(option.el).select2({
minimumResultsForSearch: option.minimumResultsForSearch||0,
minimumResultsForSearch: option.minimumResultsForSearch || 0,
ajax: {
url: option.url,
dataType: 'json',
type: 'POST',
delay: 250,
data: function(params) {
var param={};
if(Object.prototype.toString.call(option.params)=="[object Function]"){
param=option.params();
}else{
param=option.params;
var param = {};
if (Object.prototype.toString.call(option.params) == "[object Function]") {
param = option.params();
} else {
param = option.params;
}
var data = $.extend({}, {
idName: params.term
... ...
... ... @@ -76,7 +76,7 @@ $.ajax({
url: '/goods/product/queryAttributesByConf',
data: {
saleType: 2,
displayPosition: 3,
displayPosition: 2,
categoryId: basicInfo.smallSortId
},
dataType: 'json',
... ... @@ -175,7 +175,7 @@ common.util.__ajax({
url: '/goods/product/queryAttributesByConfEx',
data: {
saleType: 2,
displayPosition: 2,
displayPosition: 3,
categoryId: basicInfo.smallSortId
}
}, function(res) {
... ...
{
"name": "yohobuy-portal",
"version": "0.2.1",
"version": "0.3.4",
"description": "yohobuy-portal",
"keywords": [],
"homepage": "",
... ...
... ... @@ -524,7 +524,7 @@ exports.res = [{
bottons: '{"edit":true,"columnsHidisFr":true}',
gridurl: '/goods/price/list',
domain: exports.domain,
download: '/common/batchUpdatePrice.xlsx'
download: 'batchUpdatePrice'
}
}, {
//代销变价 -> 列表数据
... ... @@ -640,7 +640,7 @@ exports.res = [{
bottons: '{"edit":true,"columnsHidisFr":true}',
gridurl: '/goods/brandCooperation/list',
domain: exports.domain,
download: '/common/brandCooperation.xlsx'
download: 'brandCooperation'
}
}, {
//品牌合作模式 -> 列表数据
... ...
exports.domain =require('../config/common.js').domain;
// exports.domain="http://172.16.6.240:8088/platform";
// exports.domain = "http://172.16.6.227:8088/platform";
exports.res = [
{//基础商品列表
route:'/resource/manager/content',
method:'GET',
view:'pages/resource/content',
src: '/resource/content'
}
]
\ No newline at end of file
... ...
exports.staticDir = {"test":{"path":"/dist"},"preview":{"path":"http://cdn.yoho.cn/yohobuy-portal/0.3.2","md5":""},"production":{"path":"http://cdn.yoho.cn/yohobuy-portal/0.3.2","md5":""}}
\ No newline at end of file
exports.staticDir = {"test":{"path":"/dist"},"preview":{"path":"http://cdn.yoho.cn/yohobuy-portal/0.3.4","md5":""},"production":{"path":"http://cdn.yoho.cn/yohobuy-portal/0.3.4","md5":""}}
\ No newline at end of file
... ...
... ... @@ -2,6 +2,7 @@ var authService = require('../service/auth');
var uploader=require('../service/upload');
var down=require('../service/down');
var ueditor=require('../service/ueditor');
var link=require('../service/link');
module.exports = {
'/auth_bak':function(req, res){
... ... @@ -81,5 +82,8 @@ module.exports = {
},
'/ajax/ueditor':function(req,res){
ueditor.uploadFile(req,res);
},
'/ajax/link/:name':function(req,res){
link.linkFile(req,res);
}
}
\ No newline at end of file
... ...
var request = require('request');
var _ = require('lodash');
var fs = require('fs');
var path=require('path');
var domain = require('../../config/common.js').domain;
exports.linkFile = function(req, res) {
request.get(domain+"/common/"+req.params.name+".xlsx").pipe(res);
}
\ No newline at end of file
... ...
... ... @@ -70,7 +70,7 @@
<td colspan="2">
1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br>
2、第一行标题栏:<span style="color: #67D267;">货品名称、厂家编号、一级分类、二级分类、三级分类、四级分类、性别、货品年、货品季、吊牌价、销售价、色系、厂家颜色、款型、尺码、条码、能否补货、SKN计数</span><br>
3、<a href="{{domain}}/common/baseproduct.xlsx">下载样例</a>
3、<a href="/ajax/link/baseproduct">下载样例</a>
</td>
</tr>
</table>
... ...
... ... @@ -36,7 +36,7 @@
<td colspan="2">
1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br>
2、第一行标题栏:<span style="color: #67D267;">SKU|补货</span><br>
3、<a href="{{domain}}/common/batchModifySupply.xlsx">下载样例</a>
3、<a href="/ajax/link/batchModifySupply">下载样例</a>
</td>
</tr>
<tr>
... ... @@ -49,7 +49,7 @@
<td colspan="2">
1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br>
2、第一行标题栏:<span style="color: #67D267;">SKU|奥莱</span><br>
3、<a href="{{domain}}/common/batchModifyOutlet.xlsx">下载样例</a>
3、<a href="/ajax/link/batchModifyOutlet">下载样例</a>
</td>
</tr>
</table>
... ...
... ... @@ -29,14 +29,14 @@
<div class="panel-body" id="basicInfo">
</div>
<div class="panel-heading">
<!-- <div class="panel-heading">
<h4 class="panel-title">非销售属性</h4>
</div>
<div class="panel-body">
<div class="row">
<div id="attributeTable"></div>
</div>
</div>
</div> -->
<div class="panel-heading">
<h4 class="panel-title">销售属性</h4>
... ... @@ -48,7 +48,7 @@
<p>
{{#data}}
{{#each list}}
<button type="button" class="btn btn-default sortadd btn-xs" data-id="{{id}}">{{colorName}}(+)</button>
<button type="button" class="btn btn-default sortadd btn-xs" data-id="{{id}}">{{colorName}}</button>
{{/each}}
{{/data}}
</p>
... ... @@ -64,7 +64,7 @@
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<a class="btn btn-default" href="/supplier/baseproduct/index">取消</a>
<button type="submit" class="btn btn-success mr5" data-loading-text="提交审核中..." id="btnReview">提交审核</button>
<button type="submit" class="btn btn-success mr5" data-loading-text="保存中..." id="btnReview">保存</button>
</div>
</div>
</div>
... ... @@ -374,7 +374,7 @@
[[if inputType=='select']]
<select class="form-control attr_input" style="width: 280px" data-index='[[__index]]' value="[[__val||'']]" [[required]]>
<option value="">请选择</option>
<option value="">请选择[[attributeName]]</option>
[[each idNameList as item index ]]
<option value="[[item.id]]">[[item.text]]</option>
[[/each]]
... ...
... ... @@ -29,8 +29,8 @@
<div class="panel-body">
<div class="row">
<div class="panel-col">
<input type="number" id="productSkn" value="" class="form-control" placeholder="SKN"
style="height: 39px;"/>
<input type="text" id="productSkn" value="" class="form-control" placeholder="SKN"
style="height: 39px;" maxlength="9" />
</div>
<div class="panel-col">
<input type="text" id="productName" class="form-control" placeholder="商品名称" style="height: 39px;"/>
... ...
... ... @@ -126,16 +126,16 @@
<tr>
<th>
<span>[[item.productSkc]]</span>
<span>[[item.factoryGoodsName||""]]</span>
<span>[[item.goodsName]]</span>
</th>
<th>
<span>[[_item.productSku]]</span>
<span>[[_item.sizeName]]</span>
</th>
<th>[[_item.salePrice]]</th>
<th>[[item.factoryCode]]</th>
<th>[[item.modelCode]]</th>
<th>[[_item.barCode]]</th>
<th>[[item.goodsName]]</th>
<th>[[item.factoryGoodsName]]</th>
[[if _item.isSuppled=="Y"]]
<th></th>
[[else]]
... ...
... ... @@ -222,7 +222,7 @@
</div>
<div class="form-group">
<label class="col-sm-2 control-label">调性指数<span class="red">*</span></label>
<label class="col-sm-2 control-label">调性指数</label>
<div class="col-sm-2">
<input type="number" id="brandTonality" name="brandTonality" class="form-control" placeholder="调性指数(范围:1-100)" value="{{brandTonality}}">
</div>
... ...
... ... @@ -165,7 +165,7 @@
<input id="upload-input" name="file" class="btn btn-default excel-upload" type="file">
</span>
<a class="excel-model" href="{{domain}}{{download}}">表头下载</a>
<a class="excel-model" href="/ajax/link/{{download}}">表头下载</a>
<input id="sure-change" class="btn btn-primary" type="button" value="确定变价">
</div>
... ...
... ... @@ -118,10 +118,10 @@
<div class="form-group col-sm-100">
<label class="col-sm-2 control-label">活动时间</label>
<div class="panel-col1 col-sm-4">
<input type="text" id="startTime" jsaction="time:end:endTime" class="form-control panel-input hasDatepicker " name="start_time" placeholder="开始时间" value="{startTime}">
<input type="text" id="startTime" jsaction="time:end:endTime" readonly class="form-control panel-input hasDatepicker " name="start_time" placeholder="开始时间" value="{startTime}">
</div>
<div class="panel-col1 col-sm-4">
<input type="text" id="endTime" jsaction="time:start:startTime" class="form-control panel-input hasDatepicker" name="end_time" placeholder="结束时间" value="{endTime}">
<input type="text" id="endTime" jsaction="time:start:startTime" readonly class="form-control panel-input hasDatepicker" name="end_time" placeholder="结束时间" value="{endTime}">
</div>
</div>
</div>
... ...
... ... @@ -121,12 +121,12 @@
<label class="col-sm-2 control-label">活动时间</label>
<div class="panel-col1 col-sm-4">
<input type="text" id="startTime" jsaction="time:end:endTime"
class="form-control panel-input hasDatepicker " name="start_time" placeholder="开始时间"
class="form-control panel-input hasDatepicker " readonly name="start_time" placeholder="开始时间"
value="{startTime}">
</div>
<div class="panel-col1 col-sm-4">
<input type="text" id="endTime" jsaction="time:start:startTime"
class="form-control panel-input hasDatepicker" name="end_time" placeholder="结束时间"
class="form-control panel-input hasDatepicker" readonly name="end_time" placeholder="结束时间"
value="{endTime}">
</div>
</div>
... ...
<div class="pageheader">
<div class="media">
<div class="pageicon pull-left">
<i class="fa fa-home"></i>
</div>
<div class="media-body">
<ul class="breadcrumb">
<li><a href="/"><i class="glyphicon glyphicon-home"></i></a></li>
<li>Dashboard</li>
</ul>
<h4>Dashboard</h4>
</div>
</div>
</div>
<div class="contentpanel">
<div class="rows">
</div>
</div>
\ No newline at end of file
... ...
... ... @@ -42,7 +42,7 @@
<div class="form-group">
<label class="col-sm-2 control-label">营业执照号 <span class="red">*</span></label>
<div class="col-sm-8">
<input type="number" id="supplierCode" placeholder="营业执照号" class="form-control" required value="{{supplierCode}}">
<input type="text" id="supplierCode" placeholder="营业执照号" class="form-control" required value="{{supplierCode}}">
</div>
</div>
... ...