Authored by 姜敏

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

@@ -2,8 +2,10 @@ @@ -2,8 +2,10 @@
2 var $ = require('jquery'), 2 var $ = require('jquery'),
3 common=require('../common/common'); 3 common=require('../common/common');
4 4
  5 +/*基础商品模型(Model)*/
5 var RESPONSEDATA={}; 6 var RESPONSEDATA={};
6 7
  8 +/*获取基础商品数据*/
7 var param = location.href.match(/(add|update|update2)\/(\d+)/); 9 var param = location.href.match(/(add|update|update2)\/(\d+)/);
8 if(param){ 10 if(param){
9 common.util.__ajax({ 11 common.util.__ajax({
@@ -15,6 +17,7 @@ if(param){ @@ -15,6 +17,7 @@ if(param){
15 },true); 17 },true);
16 } 18 }
17 19
  20 +/*货品年,规则从2015年开始,到今年之后的10年*/
18 RESPONSEDATA.ENUMYEAR=(function(){ 21 RESPONSEDATA.ENUMYEAR=(function(){
19 var _y=[]; 22 var _y=[];
20 for(var i=2005;i<(new Date).getFullYear()+10;i++){ 23 for(var i=2005;i<(new Date).getFullYear()+10;i++){
@@ -28,20 +31,20 @@ console.log(RESPONSEDATA); @@ -28,20 +31,20 @@ console.log(RESPONSEDATA);
28 31
29 32
30 33
31 -/*审核*/  
32 - 34 +/*根据Model渲染View 基础商品基本信息*/
33 $("#basicInfo").html(common.util.__template2($("#template2").html(),RESPONSEDATA)); 35 $("#basicInfo").html(common.util.__template2($("#template2").html(),RESPONSEDATA));
34 36
  37 +/*类目配置*/
35 var ENUM={ 38 var ENUM={
36 goodsSizeList:{"sizeId":"","salePrice":$("#salesPriceStr").val(),"barCode":"","isSuppled":"N","presaleStorageNum":""} 39 goodsSizeList:{"sizeId":"","salePrice":$("#salesPriceStr").val(),"barCode":"","isSuppled":"N","presaleStorageNum":""}
37 } 40 }
38 41
39 -/*商品名称*/ 42 +/*公共模块*/
40 var Bll={ 43 var Bll={
  44 + /*判断类目级别,如果符合三级四级,返回对应id*/
41 validateSort:function(){ 45 validateSort:function(){
42 var id=false; 46 var id=false;
43 var select=tabTree.getAddress(); 47 var select=tabTree.getAddress();
44 - console.log("select",select);  
45 if(select.length>2){ 48 if(select.length>2){
46 if(select[2]&&select[2].id){ 49 if(select[2]&&select[2].id){
47 id=select[2].id; 50 id=select[2].id;
@@ -52,6 +55,7 @@ var Bll={ @@ -52,6 +55,7 @@ var Bll={
52 } 55 }
53 return id; 56 return id;
54 }, 57 },
  58 + /*商品名称*/
55 IsEnter:false, 59 IsEnter:false,
56 productNameArr:['','',''], 60 productNameArr:['','',''],
57 setProductName:function(){ 61 setProductName:function(){
@@ -65,45 +69,45 @@ var Bll={ @@ -65,45 +69,45 @@ var Bll={
65 } 69 }
66 70
67 /*非销售属性配置*/ 71 /*非销售属性配置*/
68 -var ag=new common.grid({  
69 - el:"#attributeTable",  
70 - columns:[  
71 - {display:"名称",name:"attributeName",render:function(item){  
72 - item.required=item.isMust=="Y"?"required":"";  
73 - var arr=[];  
74 - arr.push(item.attributeName);  
75 - if(item.required){  
76 - arr.push("<span class='red'>*</span>");  
77 - }  
78 - return arr.join('');  
79 - }},  
80 - {display:"属性",render:function(item){  
81 - item.required=item.isMust=="Y"?"required":"";  
82 - // item.attributeValues=item.attributeValues.split(',').map(function(elem, index, arr){  
83 - // return {name:elem}  
84 - // });  
85 - var attrs=RESPONSEDATA.productStandardRelationBoList;  
86 - if(attrs){  
87 - for(var i in attrs){  
88 - if(attrs[i].standardId==item.attributeId){  
89 - item.val=attrs[i].standardVal  
90 - item.__val=attrs[i].parameterMakeId  
91 - }  
92 - }  
93 - }  
94 -  
95 - // item.attributeValues={name:};  
96 - return common.util.__template2($("#template3").html(),item);  
97 - }},  
98 - {display:"备注",name:"remark"}  
99 - ],  
100 - complete:function(){  
101 - ag.__edit.init();  
102 - }  
103 -});  
104 -ag.__edit=new common.edit("#attributeTable");  
105 -  
106 -/*品类*/ 72 +// var ag=new common.grid({
  73 +// el:"#attributeTable",
  74 +// columns:[
  75 +// {display:"名称",name:"attributeName",render:function(item){
  76 +// item.required=item.isMust=="Y"?"required":"";
  77 +// var arr=[];
  78 +// arr.push(item.attributeName);
  79 +// if(item.required){
  80 +// arr.push("<span class='red'>*</span>");
  81 +// }
  82 +// return arr.join('');
  83 +// }},
  84 +// {display:"属性",render:function(item){
  85 +// item.required=item.isMust=="Y"?"required":"";
  86 +// // item.attributeValues=item.attributeValues.split(',').map(function(elem, index, arr){
  87 +// // return {name:elem}
  88 +// // });
  89 +// var attrs=RESPONSEDATA.productStandardRelationBoList;
  90 +// if(attrs){
  91 +// for(var i in attrs){
  92 +// if(attrs[i].standardId==item.attributeId){
  93 +// item.val=attrs[i].standardVal
  94 +// item.__val=attrs[i].parameterMakeId
  95 +// }
  96 +// }
  97 +// }
  98 +
  99 +// // item.attributeValues={name:};
  100 +// return common.util.__template2($("#template3").html(),item);
  101 +// }},
  102 +// {display:"备注",name:"remark"}
  103 +// ],
  104 +// complete:function(){
  105 +// ag.__edit.init();
  106 +// }
  107 +// });
  108 +// ag.__edit=new common.edit("#attributeTable");
  109 +
  110 +/*品类初始化*/
107 var SORTDATA={ 111 var SORTDATA={
108 url:"/goods/query/querySortBySmallSort", 112 url:"/goods/query/querySortBySmallSort",
109 datas:[ 113 datas:[
@@ -120,19 +124,18 @@ var SORTDATA={ @@ -120,19 +124,18 @@ var SORTDATA={
120 Bll.productNameArr[2]=data[data.length-1].sortName; 124 Bll.productNameArr[2]=data[data.length-1].sortName;
121 Bll.setProductName(); 125 Bll.setProductName();
122 /*查出非销售属性*/ 126 /*查出非销售属性*/
123 - var sorid=Bll.validateSort();  
124 - if(sorid){  
125 - common.util.__ajax({  
126 - url:'/base/goods/queryAllProductAttr',  
127 - data:{  
128 - categoryId:sorid,  
129 - displayPosition:1  
130 - }  
131 - },function(res){  
132 - console.log("分类",res);  
133 - ag.init(res.data);  
134 - },true);  
135 - } 127 + // var sorid=Bll.validateSort();
  128 + // if(sorid){
  129 + // common.util.__ajax({
  130 + // url:'/base/goods/queryAllProductAttr',
  131 + // data:{
  132 + // categoryId:sorid,
  133 + // displayPosition:1
  134 + // }
  135 + // },function(res){
  136 + // ag.init(res.data);
  137 + // },true);
  138 + // }
136 139
137 } 140 }
138 } 141 }
@@ -190,7 +193,7 @@ var g=new common.grid({ @@ -190,7 +193,7 @@ var g=new common.grid({
190 g.__gsm[item.__index]=item.goodsSizeList.length; 193 g.__gsm[item.__index]=item.goodsSizeList.length;
191 } 194 }
192 var html=[]; 195 var html=[];
193 - 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>"); 196 + 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>");
194 html.push('<div class="rows" id="rows__'+item.__index+'">'); 197 html.push('<div class="rows" id="rows__'+item.__index+'">');
195 item.goodsSizeList=item.goodsSizeList||[$.extend({},ENUM.goodsSizeList)]; 198 item.goodsSizeList=item.goodsSizeList||[$.extend({},ENUM.goodsSizeList)];
196 var ISXIANGO=(common.util.__input("isAdvance")=="Y"&&+RESPONSEDATA.isAuditing==200)?true:false; 199 var ISXIANGO=(common.util.__input("isAdvance")=="Y"&&+RESPONSEDATA.isAuditing==200)?true:false;
@@ -225,7 +228,7 @@ var g=new common.grid({ @@ -225,7 +228,7 @@ var g=new common.grid({
225 var warp=$("#basicTable").find("tbody").children("tr").eq(i); 228 var warp=$("#basicTable").find("tbody").children("tr").eq(i);
226 warp.find(".w-goods-text").prop("readonly",true).prop("disabled",true); 229 warp.find(".w-goods-text").prop("readonly",true).prop("disabled",true);
227 warp.find("input[name=file]").prop("readonly",true).prop("disabled",true); 230 warp.find("input[name=file]").prop("readonly",true).prop("disabled",true);
228 - warp.find(".factoryCode").prop("readonly",true).prop("disabled",true); 231 + warp.find(".modelCode").prop("readonly",true).prop("disabled",true);
229 warp.find(".sortdelete").remove(); 232 warp.find(".sortdelete").remove();
230 } 233 }
231 } 234 }
@@ -259,7 +262,7 @@ $(document).on("click",".sortadd",function(){ @@ -259,7 +262,7 @@ $(document).on("click",".sortadd",function(){
259 var goodsSizeList=$.extend({},ENUM.goodsSizeList); 262 var goodsSizeList=$.extend({},ENUM.goodsSizeList);
260 goodsSizeList.salePrice=$("#salesPriceStr").val(); 263 goodsSizeList.salePrice=$("#salesPriceStr").val();
261 g.__rows.push({ 264 g.__rows.push({
262 - "factoryCode": "", 265 + "modelCode": "",
263 "goodsColorImage": "", 266 "goodsColorImage": "",
264 goodsName: $(this).text(), 267 goodsName: $(this).text(),
265 colorId: (+$(this).data("id")), 268 colorId: (+$(this).data("id")),
@@ -311,20 +314,23 @@ $(document).on("change",".salesPriceStr",function(){ @@ -311,20 +314,23 @@ $(document).on("change",".salesPriceStr",function(){
311 ENUM.goodsSizeList.salePrice=$.trim($(this).val()); 314 ENUM.goodsSizeList.salePrice=$.trim($(this).val());
312 }); 315 });
313 $(document).on("click",".sortdelete",function(){ 316 $(document).on("click",".sortdelete",function(){
  317 + var that=this;
314 common.dialog.confirm("温馨提示","你确定删除吗?",function(){ 318 common.dialog.confirm("温馨提示","你确定删除吗?",function(){
315 - var index=$(this).data("index"); 319 + var index=$(that).data("index");
316 [].splice.call(g.__rows,index,1); 320 [].splice.call(g.__rows,index,1);
317 g.reload(); 321 g.reload();
318 }); 322 });
319 // g.__e.init(); 323 // g.__e.init();
320 }); 324 });
321 -$(document).on("change",".factoryCode",function(){ 325 +$(document).on("change",".modelCode",function(){
322 var item=g.__rows[$(this).data("index")]; 326 var item=g.__rows[$(this).data("index")];
323 - item.factoryCode=$(this).val(); 327 + item.modelCode=$(this).val();
324 }); 328 });
325 $(document).on("click",".btn-sort-add",function(){ 329 $(document).on("click",".btn-sort-add",function(){
326 var item=g.__rows[$(this).data("index")]; 330 var item=g.__rows[$(this).data("index")];
327 - item.goodsSizeList.push($.extend({},ENUM.goodsSizeList)); 331 + var goodsSizeList=$.extend({},ENUM.goodsSizeList);
  332 + goodsSizeList.salePrice=$("#salesPriceStr").val();
  333 + item.goodsSizeList.push(goodsSizeList);
328 g.reload(); 334 g.reload();
329 // g.__e.init(); 335 // g.__e.init();
330 }); 336 });
@@ -402,7 +408,6 @@ $(document).on("change",".attr_input",function(){ @@ -402,7 +408,6 @@ $(document).on("change",".attr_input",function(){
402 $(document).on("change",".attr_checkobx_class",function(){ 408 $(document).on("change",".attr_checkobx_class",function(){
403 var item=ag.rows[$(this).data("index")]; 409 var item=ag.rows[$(this).data("index")];
404 item.val=$("#attr_"+$(this).data("index")).val(); 410 item.val=$("#attr_"+$(this).data("index")).val();
405 - console.log(item);  
406 }) 411 })
407 412
408 var e=new common.edit("#basicInfo"); 413 var e=new common.edit("#basicInfo");
@@ -417,7 +422,6 @@ e.on("validate",function(){ @@ -417,7 +422,6 @@ e.on("validate",function(){
417 return "请选择完整的分类目录"; 422 return "请选择完整的分类目录";
418 }); 423 });
419 e.on("validate",function(){ 424 e.on("validate",function(){
420 - console.log(g.__gsm);  
421 if(g.__rows.length==0){ 425 if(g.__rows.length==0){
422 return "请添加销售属性"; 426 return "请添加销售属性";
423 } 427 }
@@ -470,11 +474,12 @@ e.on("validate",function(){ @@ -470,11 +474,12 @@ e.on("validate",function(){
470 } 474 }
471 }); 475 });
472 476
473 -e.on("validate",function(){  
474 - if(!ag.__edit.validate(true)){  
475 - return ag.__edit.errMessage;  
476 - }  
477 -}); 477 +/*非销售属性验证*/
  478 +// e.on("validate",function(){
  479 +// if(!ag.__edit.validate(true)){
  480 +// return ag.__edit.errMessage;
  481 +// }
  482 +// });
478 483
479 484
480 $(document).on("click","#btnReview",function(){ 485 $(document).on("click","#btnReview",function(){
@@ -503,6 +508,9 @@ $(document).on("click","#btnReview",function(){ @@ -503,6 +508,9 @@ $(document).on("click","#btnReview",function(){
503 508
504 option.data.baseGoodInfoStr=JSON.stringify(g.__rows); 509 option.data.baseGoodInfoStr=JSON.stringify(g.__rows);
505 510
  511 +
  512 + /*获取非销售属性数据*/
  513 + /*
506 option.data.productStandardRelationStr=[]; 514 option.data.productStandardRelationStr=[];
507 if(ag.rows.length>0){ 515 if(ag.rows.length>0){
508 for(var i in ag.rows){ 516 for(var i in ag.rows){
@@ -533,10 +541,12 @@ $(document).on("click","#btnReview",function(){ @@ -533,10 +541,12 @@ $(document).on("click","#btnReview",function(){
533 } 541 }
534 } 542 }
535 } 543 }
536 - option.data.productStandardRelationStr=JSON.stringify(option.data.productStandardRelationStr); 544 + option.data.productStandardRelationStr=JSON.stringify(option.data.productStandardRelationStr);*/
  545 +
  546 +
537 547
538 // option.debug=true; 548 // option.debug=true;
539 - console.log(option.data); 549 + // console.log(option.data);
540 option.success=function(res){ 550 option.success=function(res){
541 res = res.data; 551 res = res.data;
542 if(res.code == "200") { 552 if(res.code == "200") {
@@ -7,10 +7,11 @@ var edit=require('../common/edit'); @@ -7,10 +7,11 @@ var edit=require('../common/edit');
7 //brandTonality 7 //brandTonality
8 e.on("validate",function(){ 8 e.on("validate",function(){
9 var num=$.trim($("#brandTonality").val()); 9 var num=$.trim($("#brandTonality").val());
10 - if(+num>100||+num<1){  
11 - return "调性指数(范围:1-100)"; 10 + if(num){
  11 + if(+num>100||+num<1){
  12 + return "调性指数(范围:1-100)";
  13 + }
12 } 14 }
13 -  
14 return true; 15 return true;
15 }); 16 });
16 e.init(); 17 e.init();
@@ -5,19 +5,19 @@ var $ = require('jquery'); @@ -5,19 +5,19 @@ var $ = require('jquery');
5 var urlObj = { 5 var urlObj = {
6 'supplier': '/supplier/supplier/getSupplierListByIdName', 6 'supplier': '/supplier/supplier/getSupplierListByIdName',
7 'brand': '/brand/getBrandNames', 7 'brand': '/brand/getBrandNames',
8 - 'managerName': '/supplier/storeadmin/managerName',//根据身份选择管理员 8 + 'managerName': '/supplier/storeadmin/managerName', //根据身份选择管理员
9 'sortattribute': '/erpproduct/sortattribute/ajax/automatic', // 品类关联实物测量属性 9 'sortattribute': '/erpproduct/sortattribute/ajax/automatic', // 品类关联实物测量属性
10 - 'sortsize': '/erpproduct/sortsize/ajax/automatic',//尺码模糊查询【验证通过】  
11 - 'queryBrand': '/goods/query/brand',//查询品牌列表接口  
12 - 'querySupplier': '/goods/query/supplier',//查询供应商列表接口 10 + 'sortsize': '/erpproduct/sortsize/ajax/automatic', //尺码模糊查询【验证通过】
  11 + 'queryBrand': '/goods/query/brand', //查询品牌列表接口
  12 + 'querySupplier': '/goods/query/supplier', //查询供应商列表接口
13 'queryShop': '/goods/query/shop', // 查询店铺列表接口 13 'queryShop': '/goods/query/shop', // 查询店铺列表接口
14 'queryShopPass': '/goods/query/shopPass', // 查询通过审核店铺列表接口 14 'queryShopPass': '/goods/query/shopPass', // 查询通过审核店铺列表接口
15 - 'maxSort': '/goods/query/maxSort',//查询一级类目列表接口 15 + 'maxSort': '/goods/query/maxSort', //查询一级类目列表接口
16 'shopsRest': '/ShopsRest/getShopsByName', // 店铺列表 16 'shopsRest': '/ShopsRest/getShopsByName', // 店铺列表
17 'xiangouID': '/limit/xiangouID/selectActivityListForSelect', //限购ID 17 'xiangouID': '/limit/xiangouID/selectActivityListForSelect', //限购ID
18 - 'sortsize2':'/erpproduct/sortsize/ajax/querySizeListBySortId4Html',//尺码  
19 - 'sortbybrand':'/goods/query/queryShopsByBrandId',  
20 - 'getjitSup':'/goods/query/getJitSupplierByBrandld', 18 + 'sortsize2': '/erpproduct/sortsize/ajax/querySizeListBySortId4Html', //尺码
  19 + 'sortbybrand': '/goods/query/queryShopsByBrandId',
  20 + 'getjitSup': '/goods/query/getJitSupplierByBrandld',
21 // 'getsort':'/goods/query/querySortBySmallSort', 21 // 'getsort':'/goods/query/querySortBySmallSort',
22 22
23 'sortlist': '/product/class/queryAllProductSortList', 23 'sortlist': '/product/class/queryAllProductSortList',
@@ -27,6 +27,7 @@ var urlObj = { @@ -27,6 +27,7 @@ var urlObj = {
27 'getAllHelpCategory': '/operations/helpcontent/getAllHelpCategory', 27 'getAllHelpCategory': '/operations/helpcontent/getAllHelpCategory',
28 'getHelpCategory': '/operations/helpcontent/getHelpCategory', 28 'getHelpCategory': '/operations/helpcontent/getHelpCategory',
29 'queryAll4Select': '/goods/brandSeries/queryAll4Select', //品牌款型系列 29 'queryAll4Select': '/goods/brandSeries/queryAll4Select', //品牌款型系列
  30 +
30 'getSelectItems': '/meterManage/brand/getSelectItems',//品牌获取选择选项的枚举 31 'getSelectItems': '/meterManage/brand/getSelectItems',//品牌获取选择选项的枚举
31 32
32 // 逛 33 // 逛
@@ -34,9 +35,12 @@ var urlObj = { @@ -34,9 +35,12 @@ var urlObj = {
34 'guangGetSortList':'/guang/article/getSortList', // 逛-获取作者 35 'guangGetSortList':'/guang/article/getSortList', // 逛-获取作者
35 'guangGetTagCategoryByStatus':'/guang/tagSort/getTagItems', 36 'guangGetTagCategoryByStatus':'/guang/tagSort/getTagItems',
36 'guangCommentGetFilterItems':'/guang/comment/getItems', // 逛-评论列表-获取筛选条件 37 'guangCommentGetFilterItems':'/guang/comment/getItems', // 逛-评论列表-获取筛选条件
  38 +
  39 + 'queryBrandByShopId': '/query/brandByshopId', //查询店铺下关联品牌
  40 + 'querySupplierByShopId': '/query/supplierByshopId' //查询店铺下关联供应商
37 }; 41 };
38 42
39 -var minimumResultsForSearch=["sortbybrand","getjitSup","sortsize2"]; 43 +var minimumResultsForSearch = ["sortbybrand", "getjitSup", "sortsize2"];
40 44
41 var dropDown = function(option) { 45 var dropDown = function(option) {
42 new dropDown.prototype.init(option); 46 new dropDown.prototype.init(option);
@@ -54,24 +58,24 @@ dropDown.prototype = { @@ -54,24 +58,24 @@ dropDown.prototype = {
54 option[i] = _option[i]; 58 option[i] = _option[i];
55 } 59 }
56 } 60 }
57 - if(minimumResultsForSearch.indexOf(_option.ajax)>-1){  
58 - option.minimumResultsForSearch=Infinity 61 + if (minimumResultsForSearch.indexOf(_option.ajax) > -1) {
  62 + option.minimumResultsForSearch = Infinity
59 } 63 }
60 if (option.ajax) { 64 if (option.ajax) {
61 $(option.el).select2({ 65 $(option.el).select2({
62 - minimumResultsForSearch: option.minimumResultsForSearch||0, 66 + minimumResultsForSearch: option.minimumResultsForSearch || 0,
63 ajax: { 67 ajax: {
64 url: option.url, 68 url: option.url,
65 dataType: 'json', 69 dataType: 'json',
66 type: 'POST', 70 type: 'POST',
67 delay: 250, 71 delay: 250,
68 data: function(params) { 72 data: function(params) {
69 -  
70 - var param={};  
71 - if(Object.prototype.toString.call(option.params)=="[object Function]"){  
72 - param=option.params();  
73 - }else{  
74 - param=option.params; 73 +
  74 + var param = {};
  75 + if (Object.prototype.toString.call(option.params) == "[object Function]") {
  76 + param = option.params();
  77 + } else {
  78 + param = option.params;
75 } 79 }
76 var data = $.extend({}, { 80 var data = $.extend({}, {
77 idName: params.term 81 idName: params.term
@@ -76,7 +76,7 @@ $.ajax({ @@ -76,7 +76,7 @@ $.ajax({
76 url: '/goods/product/queryAttributesByConf', 76 url: '/goods/product/queryAttributesByConf',
77 data: { 77 data: {
78 saleType: 2, 78 saleType: 2,
79 - displayPosition: 3, 79 + displayPosition: 2,
80 categoryId: basicInfo.smallSortId 80 categoryId: basicInfo.smallSortId
81 }, 81 },
82 dataType: 'json', 82 dataType: 'json',
@@ -175,7 +175,7 @@ common.util.__ajax({ @@ -175,7 +175,7 @@ common.util.__ajax({
175 url: '/goods/product/queryAttributesByConfEx', 175 url: '/goods/product/queryAttributesByConfEx',
176 data: { 176 data: {
177 saleType: 2, 177 saleType: 2,
178 - displayPosition: 2, 178 + displayPosition: 3,
179 categoryId: basicInfo.smallSortId 179 categoryId: basicInfo.smallSortId
180 } 180 }
181 }, function(res) { 181 }, function(res) {
@@ -238,11 +238,12 @@ function saveDecoration(submitStatus){ @@ -238,11 +238,12 @@ function saveDecoration(submitStatus){
238 jsonClone = $.extend(true,{},jsonMain); 238 jsonClone = $.extend(true,{},jsonMain);
239 showMain(); 239 showMain();
240 }else{ 240 }else{
241 - common.util.__tip("提交审核成功!","success");  
242 - location.href="/supplier/shop/decoration"; 241 + setTimeout(function() {
  242 + location.href="/supplier/shop/decoration";
  243 + }, 1000);
243 } 244 }
244 } 245 }
245 - },true); 246 + });
246 } 247 }
247 //Ajax审核,审核通过:300,驳回:900 248 //Ajax审核,审核通过:300,驳回:900
248 function checkDecoration(checkStatus,comment){ 249 function checkDecoration(checkStatus,comment){
@@ -256,7 +257,9 @@ function checkDecoration(checkStatus,comment){ @@ -256,7 +257,9 @@ function checkDecoration(checkStatus,comment){
256 } 257 }
257 },function(rs){ 258 },function(rs){
258 common.util.__tip("审核通过成功!","success"); 259 common.util.__tip("审核通过成功!","success");
259 - location.href="/supplier/check/index"; 260 + setTimeout(function() {
  261 + location.href="/supplier/check/index";
  262 + }, 1000);
260 },true); 263 },true);
261 }else{ 264 }else{
262 common.util.__ajax({ 265 common.util.__ajax({
@@ -267,7 +270,9 @@ function checkDecoration(checkStatus,comment){ @@ -267,7 +270,9 @@ function checkDecoration(checkStatus,comment){
267 } 270 }
268 },function(rs){ 271 },function(rs){
269 common.util.__tip("审核驳回成功!","success"); 272 common.util.__tip("审核驳回成功!","success");
270 - location.href="/supplier/check/index"; 273 + setTimeout(function() {
  274 + location.href="/supplier/check/index";
  275 + }, 1000);
271 },true); 276 },true);
272 } 277 }
273 } 278 }
@@ -1007,7 +1012,7 @@ function untilEditorEvent(id){ @@ -1007,7 +1012,7 @@ function untilEditorEvent(id){
1007 } 1012 }
1008 }); 1013 });
1009 $("#"+id+" nav").hide(); 1014 $("#"+id+" nav").hide();
1010 - $(".modal-dialog").css("width","1000px"); 1015 + $(".modal-dialog").css("width","900px");
1011 $(".modal-dialog .modal-body .editor-dialog").css("max-height","650px"); 1016 $(".modal-dialog .modal-body .editor-dialog").css("max-height","650px");
1012 $(".modal-dialog .modal-body .editor-dialog").css("overflow-y","auto"); 1017 $(".modal-dialog .modal-body .editor-dialog").css("overflow-y","auto");
1013 $(".modal-dialog .modal-body .editor-dialog").css("overflow-x","hidden"); 1018 $(".modal-dialog .modal-body .editor-dialog").css("overflow-x","hidden");
1 1
2 { 2 {
3 "name": "yohobuy-portal", 3 "name": "yohobuy-portal",
4 - "version": "0.2.1", 4 + "version": "0.3.4",
5 "description": "yohobuy-portal", 5 "description": "yohobuy-portal",
6 "keywords": [], 6 "keywords": [],
7 "homepage": "", 7 "homepage": "",
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 pc端店铺模板css 2 pc端店铺模板css
3 */ 3 */
4 .editor-dialog ul.upload-image-list{padding: 0 10px} 4 .editor-dialog ul.upload-image-list{padding: 0 10px}
5 -.editor-dialog input.numInput{ width: 50px} 5 +.editor-dialog input.numInput{ width: 40px}
6 .editorTitle input.error,.editor-dialog input.error{ border: 2px solid #ff0000} 6 .editorTitle input.error,.editor-dialog input.error{ border: 2px solid #ff0000}
7 .editorTip{ color: #ff0000} 7 .editorTip{ color: #ff0000}
8 8
@@ -524,7 +524,7 @@ exports.res = [{ @@ -524,7 +524,7 @@ exports.res = [{
524 bottons: '{"edit":true,"columnsHidisFr":true}', 524 bottons: '{"edit":true,"columnsHidisFr":true}',
525 gridurl: '/goods/price/list', 525 gridurl: '/goods/price/list',
526 domain: exports.domain, 526 domain: exports.domain,
527 - download: '/common/batchUpdatePrice.xlsx' 527 + download: 'batchUpdatePrice'
528 } 528 }
529 }, { 529 }, {
530 //代销变价 -> 列表数据 530 //代销变价 -> 列表数据
@@ -640,7 +640,7 @@ exports.res = [{ @@ -640,7 +640,7 @@ exports.res = [{
640 bottons: '{"edit":true,"columnsHidisFr":true}', 640 bottons: '{"edit":true,"columnsHidisFr":true}',
641 gridurl: '/goods/brandCooperation/list', 641 gridurl: '/goods/brandCooperation/list',
642 domain: exports.domain, 642 domain: exports.domain,
643 - download: '/common/brandCooperation.xlsx' 643 + download: 'brandCooperation'
644 } 644 }
645 }, { 645 }, {
646 //品牌合作模式 -> 列表数据 646 //品牌合作模式 -> 列表数据
  1 +exports.domain =require('../config/common.js').domain;
  2 +// exports.domain="http://172.16.6.240:8088/platform";
  3 +// exports.domain = "http://172.16.6.227:8088/platform";
  4 +exports.res = [
  5 + {//基础商品列表
  6 + route:'/resource/manager/content',
  7 + method:'GET',
  8 + view:'pages/resource/content',
  9 + src: '/resource/content'
  10 + }
  11 +]
1 -//exports.domain = require('../config/common.js').domain; 1 +exports.domain = require('../config/common.js').domain;
2 //exports.domain = 'http://localhost:30012'; 2 //exports.domain = 'http://localhost:30012';
3 -exports.domain = 'http://172.16.6.115:8080/platform'; 3 +//exports.domain = 'http://172.16.6.115:8080/platform';
4 4
5 exports.res = [ 5 exports.res = [
6 { 6 {
1 -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":""}}  
  1 +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":""}}
@@ -2,6 +2,7 @@ var authService = require('../service/auth'); @@ -2,6 +2,7 @@ var authService = require('../service/auth');
2 var uploader=require('../service/upload'); 2 var uploader=require('../service/upload');
3 var down=require('../service/down'); 3 var down=require('../service/down');
4 var ueditor=require('../service/ueditor'); 4 var ueditor=require('../service/ueditor');
  5 +var link=require('../service/link');
5 6
6 module.exports = { 7 module.exports = {
7 '/auth_bak':function(req, res){ 8 '/auth_bak':function(req, res){
@@ -81,5 +82,8 @@ module.exports = { @@ -81,5 +82,8 @@ module.exports = {
81 }, 82 },
82 '/ajax/ueditor':function(req,res){ 83 '/ajax/ueditor':function(req,res){
83 ueditor.uploadFile(req,res); 84 ueditor.uploadFile(req,res);
  85 + },
  86 + '/ajax/link/:name':function(req,res){
  87 + link.linkFile(req,res);
84 } 88 }
85 } 89 }
  1 +var request = require('request');
  2 +var _ = require('lodash');
  3 +var fs = require('fs');
  4 +var path=require('path');
  5 +var domain = require('../../config/common.js').domain;
  6 +
  7 +exports.linkFile = function(req, res) {
  8 + request.get(domain+"/common/"+req.params.name+".xlsx").pipe(res);
  9 +}
@@ -70,7 +70,7 @@ @@ -70,7 +70,7 @@
70 <td colspan="2"> 70 <td colspan="2">
71 1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br> 71 1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br>
72 2、第一行标题栏:<span style="color: #67D267;">货品名称、厂家编号、一级分类、二级分类、三级分类、四级分类、性别、货品年、货品季、吊牌价、销售价、色系、厂家颜色、款型、尺码、条码、能否补货、SKN计数</span><br> 72 2、第一行标题栏:<span style="color: #67D267;">货品名称、厂家编号、一级分类、二级分类、三级分类、四级分类、性别、货品年、货品季、吊牌价、销售价、色系、厂家颜色、款型、尺码、条码、能否补货、SKN计数</span><br>
73 - 3、<a href="{{domain}}/common/baseproduct.xlsx">下载样例</a> 73 + 3、<a href="/ajax/link/baseproduct">下载样例</a>
74 </td> 74 </td>
75 </tr> 75 </tr>
76 </table> 76 </table>
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 <td colspan="2"> 36 <td colspan="2">
37 1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br> 37 1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br>
38 2、第一行标题栏:<span style="color: #67D267;">SKU|补货</span><br> 38 2、第一行标题栏:<span style="color: #67D267;">SKU|补货</span><br>
39 - 3、<a href="{{domain}}/common/batchModifySupply.xlsx">下载样例</a> 39 + 3、<a href="/ajax/link/batchModifySupply">下载样例</a>
40 </td> 40 </td>
41 </tr> 41 </tr>
42 <tr> 42 <tr>
@@ -49,7 +49,7 @@ @@ -49,7 +49,7 @@
49 <td colspan="2"> 49 <td colspan="2">
50 1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br> 50 1、上传文件必须是<span style="color:red;">.xlsx</span>文件<br>
51 2、第一行标题栏:<span style="color: #67D267;">SKU|奥莱</span><br> 51 2、第一行标题栏:<span style="color: #67D267;">SKU|奥莱</span><br>
52 - 3、<a href="{{domain}}/common/batchModifyOutlet.xlsx">下载样例</a> 52 + 3、<a href="/ajax/link/batchModifyOutlet">下载样例</a>
53 </td> 53 </td>
54 </tr> 54 </tr>
55 </table> 55 </table>
@@ -29,14 +29,14 @@ @@ -29,14 +29,14 @@
29 <div class="panel-body" id="basicInfo"> 29 <div class="panel-body" id="basicInfo">
30 30
31 </div> 31 </div>
32 - <div class="panel-heading"> 32 + <!-- <div class="panel-heading">
33 <h4 class="panel-title">非销售属性</h4> 33 <h4 class="panel-title">非销售属性</h4>
34 </div> 34 </div>
35 <div class="panel-body"> 35 <div class="panel-body">
36 <div class="row"> 36 <div class="row">
37 <div id="attributeTable"></div> 37 <div id="attributeTable"></div>
38 </div> 38 </div>
39 - </div> 39 + </div> -->
40 40
41 <div class="panel-heading"> 41 <div class="panel-heading">
42 <h4 class="panel-title">销售属性</h4> 42 <h4 class="panel-title">销售属性</h4>
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 <p> 48 <p>
49 {{#data}} 49 {{#data}}
50 {{#each list}} 50 {{#each list}}
51 - <button type="button" class="btn btn-default sortadd btn-xs" data-id="{{id}}">{{colorName}}(+)</button> 51 + <button type="button" class="btn btn-default sortadd btn-xs" data-id="{{id}}">{{colorName}}</button>
52 {{/each}} 52 {{/each}}
53 {{/data}} 53 {{/data}}
54 </p> 54 </p>
@@ -64,7 +64,7 @@ @@ -64,7 +64,7 @@
64 <div class="row"> 64 <div class="row">
65 <div class="col-sm-8 col-sm-offset-2"> 65 <div class="col-sm-8 col-sm-offset-2">
66 <a class="btn btn-default" href="/supplier/baseproduct/index">取消</a> 66 <a class="btn btn-default" href="/supplier/baseproduct/index">取消</a>
67 - <button type="submit" class="btn btn-success mr5" data-loading-text="提交审核中..." id="btnReview">提交审核</button> 67 + <button type="submit" class="btn btn-success mr5" data-loading-text="保存中..." id="btnReview">保存</button>
68 </div> 68 </div>
69 </div> 69 </div>
70 </div> 70 </div>
@@ -374,7 +374,7 @@ @@ -374,7 +374,7 @@
374 374
375 [[if inputType=='select']] 375 [[if inputType=='select']]
376 <select class="form-control attr_input" style="width: 280px" data-index='[[__index]]' value="[[__val||'']]" [[required]]> 376 <select class="form-control attr_input" style="width: 280px" data-index='[[__index]]' value="[[__val||'']]" [[required]]>
377 - <option value="">请选择</option> 377 + <option value="">请选择[[attributeName]]</option>
378 [[each idNameList as item index ]] 378 [[each idNameList as item index ]]
379 <option value="[[item.id]]">[[item.text]]</option> 379 <option value="[[item.id]]">[[item.text]]</option>
380 [[/each]] 380 [[/each]]
@@ -29,8 +29,8 @@ @@ -29,8 +29,8 @@
29 <div class="panel-body"> 29 <div class="panel-body">
30 <div class="row"> 30 <div class="row">
31 <div class="panel-col"> 31 <div class="panel-col">
32 - <input type="number" id="productSkn" value="" class="form-control" placeholder="SKN"  
33 - style="height: 39px;"/> 32 + <input type="text" id="productSkn" value="" class="form-control" placeholder="SKN"
  33 + style="height: 39px;" maxlength="9" />
34 </div> 34 </div>
35 <div class="panel-col"> 35 <div class="panel-col">
36 <input type="text" id="productName" class="form-control" placeholder="商品名称" style="height: 39px;"/> 36 <input type="text" id="productName" class="form-control" placeholder="商品名称" style="height: 39px;"/>
@@ -126,16 +126,16 @@ @@ -126,16 +126,16 @@
126 <tr> 126 <tr>
127 <th> 127 <th>
128 <span>[[item.productSkc]]</span> 128 <span>[[item.productSkc]]</span>
129 - <span>[[item.factoryGoodsName||""]]</span> 129 + <span>[[item.goodsName]]</span>
130 </th> 130 </th>
131 <th> 131 <th>
132 <span>[[_item.productSku]]</span> 132 <span>[[_item.productSku]]</span>
133 <span>[[_item.sizeName]]</span> 133 <span>[[_item.sizeName]]</span>
134 </th> 134 </th>
135 <th>[[_item.salePrice]]</th> 135 <th>[[_item.salePrice]]</th>
136 - <th>[[item.factoryCode]]</th> 136 + <th>[[item.modelCode]]</th>
137 <th>[[_item.barCode]]</th> 137 <th>[[_item.barCode]]</th>
138 - <th>[[item.goodsName]]</th> 138 + <th>[[item.factoryGoodsName]]</th>
139 [[if _item.isSuppled=="Y"]] 139 [[if _item.isSuppled=="Y"]]
140 <th></th> 140 <th></th>
141 [[else]] 141 [[else]]
@@ -222,7 +222,7 @@ @@ -222,7 +222,7 @@
222 </div> 222 </div>
223 223
224 <div class="form-group"> 224 <div class="form-group">
225 - <label class="col-sm-2 control-label">调性指数<span class="red">*</span></label> 225 + <label class="col-sm-2 control-label">调性指数</label>
226 <div class="col-sm-2"> 226 <div class="col-sm-2">
227 <input type="number" id="brandTonality" name="brandTonality" class="form-control" placeholder="调性指数(范围:1-100)" value="{{brandTonality}}"> 227 <input type="number" id="brandTonality" name="brandTonality" class="form-control" placeholder="调性指数(范围:1-100)" value="{{brandTonality}}">
228 </div> 228 </div>
@@ -165,7 +165,7 @@ @@ -165,7 +165,7 @@
165 <input id="upload-input" name="file" class="btn btn-default excel-upload" type="file"> 165 <input id="upload-input" name="file" class="btn btn-default excel-upload" type="file">
166 </span> 166 </span>
167 167
168 - <a class="excel-model" href="{{domain}}{{download}}">表头下载</a> 168 + <a class="excel-model" href="/ajax/link/{{download}}">表头下载</a>
169 <input id="sure-change" class="btn btn-primary" type="button" value="确定变价"> 169 <input id="sure-change" class="btn btn-primary" type="button" value="确定变价">
170 170
171 </div> 171 </div>
@@ -118,10 +118,10 @@ @@ -118,10 +118,10 @@
118 <div class="form-group col-sm-100"> 118 <div class="form-group col-sm-100">
119 <label class="col-sm-2 control-label">活动时间</label> 119 <label class="col-sm-2 control-label">活动时间</label>
120 <div class="panel-col1 col-sm-4"> 120 <div class="panel-col1 col-sm-4">
121 - <input type="text" id="startTime" jsaction="time:end:endTime" class="form-control panel-input hasDatepicker " name="start_time" placeholder="开始时间" value="{startTime}"> 121 + <input type="text" id="startTime" jsaction="time:end:endTime" readonly class="form-control panel-input hasDatepicker " name="start_time" placeholder="开始时间" value="{startTime}">
122 </div> 122 </div>
123 <div class="panel-col1 col-sm-4"> 123 <div class="panel-col1 col-sm-4">
124 - <input type="text" id="endTime" jsaction="time:start:startTime" class="form-control panel-input hasDatepicker" name="end_time" placeholder="结束时间" value="{endTime}"> 124 + <input type="text" id="endTime" jsaction="time:start:startTime" readonly class="form-control panel-input hasDatepicker" name="end_time" placeholder="结束时间" value="{endTime}">
125 </div> 125 </div>
126 </div> 126 </div>
127 </div> 127 </div>
@@ -121,12 +121,12 @@ @@ -121,12 +121,12 @@
121 <label class="col-sm-2 control-label">活动时间</label> 121 <label class="col-sm-2 control-label">活动时间</label>
122 <div class="panel-col1 col-sm-4"> 122 <div class="panel-col1 col-sm-4">
123 <input type="text" id="startTime" jsaction="time:end:endTime" 123 <input type="text" id="startTime" jsaction="time:end:endTime"
124 - class="form-control panel-input hasDatepicker " name="start_time" placeholder="开始时间" 124 + class="form-control panel-input hasDatepicker " readonly name="start_time" placeholder="开始时间"
125 value="{startTime}"> 125 value="{startTime}">
126 </div> 126 </div>
127 <div class="panel-col1 col-sm-4"> 127 <div class="panel-col1 col-sm-4">
128 <input type="text" id="endTime" jsaction="time:start:startTime" 128 <input type="text" id="endTime" jsaction="time:start:startTime"
129 - class="form-control panel-input hasDatepicker" name="end_time" placeholder="结束时间" 129 + class="form-control panel-input hasDatepicker" readonly name="end_time" placeholder="结束时间"
130 value="{endTime}"> 130 value="{endTime}">
131 </div> 131 </div>
132 </div> 132 </div>
  1 +<div class="pageheader">
  2 + <div class="media">
  3 + <div class="pageicon pull-left">
  4 + <i class="fa fa-home"></i>
  5 + </div>
  6 + <div class="media-body">
  7 + <ul class="breadcrumb">
  8 + <li><a href="/"><i class="glyphicon glyphicon-home"></i></a></li>
  9 + <li>Dashboard</li>
  10 + </ul>
  11 + <h4>Dashboard</h4>
  12 + </div>
  13 + </div>
  14 +</div>
  15 +<div class="contentpanel">
  16 + <div class="rows">
  17 +
  18 + </div>
  19 +</div>
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 </select> 37 </select>
38 </div> 38 </div>
39 </div> 39 </div>
40 - <div class="col-sm-3"> 40 + <div id="operations" class="col-sm-3">
41 <div class="moduleView" style="display: none; text-align: right; margin-top: -10px"> 41 <div class="moduleView" style="display: none; text-align: right; margin-top: -10px">
42 <input type="button" class="btn btn-default " value="返回" onclick="history.go(-1)"> 42 <input type="button" class="btn btn-default " value="返回" onclick="history.go(-1)">
43 </div> 43 </div>
@@ -178,7 +178,11 @@ @@ -178,7 +178,11 @@
178 <!--新品上架--> 178 <!--新品上架-->
179 <div class="model-show"> 179 <div class="model-show">
180 <div class="model-showTitle"> 180 <div class="model-showTitle">
  181 + [[if resources.newProducts.data.length > 0]]
181 <div class="showName"><span>新品上架&nbsp;&nbsp;NEW</span></div> 182 <div class="showName"><span>新品上架&nbsp;&nbsp;NEW</span></div>
  183 + [[else]]
  184 + <div class="showName model-editor" data-toggle="editor-newProduct" data-title="新品上架商品编辑"><span>新品上架&nbsp;&nbsp;NEW</span></div>
  185 + [[/if]]
182 <div class="showTab model-editor" data-toggle="editor-newGoodTab" data-title="新品上架标签编辑"> 186 <div class="showTab model-editor" data-toggle="editor-newGoodTab" data-title="新品上架标签编辑">
183 <ul> 187 <ul>
184 [[each resources.goodsTabBar.data.new as item _index]] 188 [[each resources.goodsTabBar.data.new as item _index]]
@@ -207,7 +211,11 @@ @@ -207,7 +211,11 @@
207 <!--人气单品--> 211 <!--人气单品-->
208 <div class="model-show"> 212 <div class="model-show">
209 <div class="model-showTitle"> 213 <div class="model-showTitle">
  214 + [[if resources.hotProducts.data.length > 0]]
210 <div class="showName"><span>人气单品&nbsp;&nbsp;NEW</span></div> 215 <div class="showName"><span>人气单品&nbsp;&nbsp;NEW</span></div>
  216 + [[else]]
  217 + <div class="showName model-editor" data-toggle="editor-hotProduct" data-title="人气单品商品编辑"><span>人气单品&nbsp;&nbsp;NEW</span></div>
  218 + [[/if]]
211 <div class="showTab model-editor" data-toggle="editor-hotGoodTab" data-title="人气单品标签编辑"> 219 <div class="showTab model-editor" data-toggle="editor-hotGoodTab" data-title="人气单品标签编辑">
212 <ul> 220 <ul>
213 [[each resources.goodsTabBar.data.hot as item _index]] 221 [[each resources.goodsTabBar.data.hot as item _index]]
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 <div class="form-group"> 42 <div class="form-group">
43 <label class="col-sm-2 control-label">营业执照号 <span class="red">*</span></label> 43 <label class="col-sm-2 control-label">营业执照号 <span class="red">*</span></label>
44 <div class="col-sm-8"> 44 <div class="col-sm-8">
45 - <input type="number" id="supplierCode" placeholder="营业执照号" class="form-control" required value="{{supplierCode}}"> 45 + <input type="text" id="supplierCode" placeholder="营业执照号" class="form-control" required value="{{supplierCode}}">
46 </div> 46 </div>
47 </div> 47 </div>
48 48