Authored by 姜敏

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

@@ -5,6 +5,8 @@ var $ = require('jquery'), @@ -5,6 +5,8 @@ var $ = require('jquery'),
5 common = require('../common/common'), 5 common = require('../common/common'),
6 util = require('../common/util'); 6 util = require('../common/util');
7 7
  8 +var hasClickEvent = false//判断保存按钮是否有点击事件;
  9 +
8 $(document).on('click', '#searchSku', function() { 10 $(document).on('click', '#searchSku', function() {
9 var val = $.trim($("#skuInput").val()); 11 var val = $.trim($("#skuInput").val());
10 if(!val.match(/^[0-9]+$/)) { 12 if(!val.match(/^[0-9]+$/)) {
@@ -12,6 +14,7 @@ $(document).on('click', '#searchSku', function() { @@ -12,6 +14,7 @@ $(document).on('click', '#searchSku', function() {
12 return; 14 return;
13 } 15 }
14 if(val) { 16 if(val) {
  17 + $("#add-list").hide();
15 common.util.__ajax({ 18 common.util.__ajax({
16 url:'/meterManage/productSize/queryProdSizeList', 19 url:'/meterManage/productSize/queryProdSizeList',
17 data:{productSku:val} 20 data:{productSku:val}
@@ -19,20 +22,6 @@ $(document).on('click', '#searchSku', function() { @@ -19,20 +22,6 @@ $(document).on('click', '#searchSku', function() {
19 if(res.data.list && res.data.list.length > 0) { 22 if(res.data.list && res.data.list.length > 0) {
20 var e = new common.edit("#add-list"); 23 var e = new common.edit("#add-list");
21 24
22 - e.on('validate', function() {  
23 - var flag = false;  
24 - $("input[name='noMeasureIds']").not("input:checked").each(function () {  
25 - $("." + $(this).val()).each(function() {  
26 - if(!$(this).val()){  
27 - flag = true;  
28 - return false;  
29 - }  
30 - });  
31 - if(flag) return false;  
32 - });  
33 - if (flag)  
34 - return "请将没有勾选无需测量的列填写完整!";  
35 - });  
36 var item = res.data.list[0]; 25 var item = res.data.list[0];
37 var headList = []; 26 var headList = [];
38 var j = 0;//创造一个变量以供赋值 27 var j = 0;//创造一个变量以供赋值
@@ -45,16 +34,18 @@ $(document).on('click', '#searchSku', function() { @@ -45,16 +34,18 @@ $(document).on('click', '#searchSku', function() {
45 } 34 }
46 }); 35 });
47 for (var i = 0; i < item.sizeRelationsList[0].prdSizeAttributeBoList.length; i++) {//尺码列 36 for (var i = 0; i < item.sizeRelationsList[0].prdSizeAttributeBoList.length; i++) {//尺码列
48 - var sizeAttributes = item.sizeRelationsList[0].prdSizeAttributeBoList[i];// 码数组里的数据 37 + var sizeAttributes = item.sizeRelationsList[0].prdSizeAttributeBoList[i];//参考尺码数组里的数据
49 var chkbox = '<label style="cursor: pointer;"><input type="checkbox" name="noMeasureIds" value="' + sizeAttributes.sizeAttributeId + '"/>无需测量</label>'; 38 var chkbox = '<label style="cursor: pointer;"><input type="checkbox" name="noMeasureIds" value="' + sizeAttributes.sizeAttributeId + '"/>无需测量</label>';
50 headList.push({ 39 headList.push({
51 display: sizeAttributes.sizeAttributeName + "<br>" + chkbox, 40 display: sizeAttributes.sizeAttributeName + "<br>" + chkbox,
52 name: "sizeValue", 41 name: "sizeValue",
53 render: function (item) { 42 render: function (item) {
54 - if (j == item.prdSizeAttributeBoList.length) j = 0;//防止越界  
55 - var sizeVal = item.prdSizeAttributeBoList[j].sizeValue ? item.prdSizeAttributeBoList[j].sizeValue : ""; 43 + var prdList = item.prdSizeAttributeBoList;
  44 + if (j == prdList.length) j = 0;//防止越界
  45 + var sizeVal = prdList[j].sizeValue ? prdList[j].sizeValue : "";
56 //j++;// 46 //j++;//
57 - return '<input class="form-control sizeInfo '+ item.prdSizeAttributeBoList[j++].sizeAttributeId +'" data-index="' + item.__index + '"' + 'value="' + sizeVal + '"/>'; 47 + return '<input class="form-control sizeInfo '+ prdList[j++].sizeAttributeId
  48 + +'" data-index="' + item.__index + '"' + 'value="' + sizeVal + '"/>';
58 } 49 }
59 }); 50 });
60 } 51 }
@@ -66,53 +57,76 @@ $(document).on('click', '#searchSku', function() { @@ -66,53 +57,76 @@ $(document).on('click', '#searchSku', function() {
66 columns:headList 57 columns:headList
67 }); 58 });
68 grid.init(item.sizeRelationsList); 59 grid.init(item.sizeRelationsList);
69 - $("#add-saveArea").show(); 60 + //$("#add-saveArea").show();
70 $("#add-head").html(common.util.__template2($("#modifySize-template").html(), item)); 61 $("#add-head").html(common.util.__template2($("#modifySize-template").html(), item));
71 $("#noMeasureIds").val(item.noMeasureIds? item.noMeasureIds.join("|"):""); 62 $("#noMeasureIds").val(item.noMeasureIds? item.noMeasureIds.join("|"):"");
  63 + $("#add-list").show();
72 e.init(); 64 e.init();
73 - $(document).on('click', '#add-saveBtn', function() {  
74 - e.submit("/meterManage/productSize/saveProdSizeInfo",function(option){  
75 - //option.data;= 65 + if(!hasClickEvent) {
  66 + hasClickEvent = true;
  67 + $(document).on('click', '#add-saveBtn', function () {
  68 +
  69 + var flag = false;
  70 + $("input[name='noMeasureIds']").not("input:checked").each(function () {
  71 + $("." + $(this).val()).each(function() {
  72 + if(!$(this).val()){
  73 + flag = true;
  74 + return false;
  75 + }
  76 + });
  77 + if(flag) return false;
  78 + });
  79 + if (flag) {
  80 + util.__tip("请将没有勾选无需测量的列填写完整!", "warning");
  81 + return false;
  82 + }
76 83
77 - option.data.productSkn = item.productSkn;  
78 - option.data.noMeasureIds = $("#noMeasureIds").val()?$("#noMeasureIds").val().split("|"):[];  
79 - option.data.noMeasureIds = JSON.stringify(option.data.noMeasureIds);  
80 - option.data.sizeInfoList = []; 84 + var noMeasureIds = JSON.stringify($("#noMeasureIds").val()?$("#noMeasureIds").val().split("|"):[]);//无需测量的列
  85 + //尺码信息列表
  86 + var sizeInfoList = [];
81 for(var i = 0; i < $(".sizeInfo").length; i++){ 87 for(var i = 0; i < $(".sizeInfo").length; i++){
82 - var info = $($(".sizeInfo")[i]);  
83 - option.data.sizeInfoList[i] = ({ 88 + var info = $($(".sizeInfo")[i]);//当前尺码input对象
  89 + var prdList = grid.rows[info.data("index")].prdSizeAttributeBoList;//当前列的对象的尺码列表
  90 + var attrIndex = parseInt(i%prdList.length);//在当前列的索引
  91 + sizeInfoList[i] = ({
84 productSkn: item.productSkn, 92 productSkn: item.productSkn,
85 sizeId:grid.rows[info.data("index")].sizeId, 93 sizeId:grid.rows[info.data("index")].sizeId,
86 - sizeAttributeId:grid.rows[info.data("index")].prdSizeAttributeBoList[parseInt(i%grid.rows[info.data("index")].prdSizeAttributeBoList.length)].sizeAttributeId, 94 + sizeAttributeId:prdList[attrIndex].sizeAttributeId,
87 sizeValue:info.val() 95 sizeValue:info.val()
88 }); 96 });
89 } 97 }
90 - option.data.sizeInfoList = JSON.stringify(option.data.sizeInfoList);  
91 - option.data.productSizeReferList = []; 98 + //商品参考尺码
  99 + var productSizeReferList = [];
92 for(var i = 0; i < $(".refInfo").length; i++) { 100 for(var i = 0; i < $(".refInfo").length; i++) {
93 var ref = $($(".refInfo")[i]); 101 var ref = $($(".refInfo")[i]);
94 - option.data.productSizeReferList.push({ 102 + productSizeReferList.push({
95 sizeId: grid.rows[ref.data("index")].sizeId, 103 sizeId: grid.rows[ref.data("index")].sizeId,
96 gender: item.gender, 104 gender: item.gender,
97 referenceName: ref.val() 105 referenceName: ref.val()
98 }); 106 });
99 } 107 }
100 - option.data.productSizeReferList = JSON.stringify(option.data.productSizeReferList);  
101 -  
102 - option.success=function(res){  
103 - util.__tip(res.data.message, 'success');  
104 - grid.reload();  
105 - };  
106 - option.error=function(res){  
107 - //dialog.close();  
108 - util.__tip(res.message); 108 + common.util.__ajax({
  109 + url:"/meterManage/productSize/saveProdSizeInfo",
  110 + data:{
  111 + productSkn: item.productSkn,
  112 + noMeasureIds: noMeasureIds,
  113 + sizeInfoList: JSON.stringify(sizeInfoList),
  114 + productSizeReferList: JSON.stringify(productSizeReferList)
109 } 115 }
  116 + },function() {
110 }); 117 });
111 return false; 118 return false;
112 }); 119 });
  120 + }
113 }else { 121 }else {
114 util.__tip("未搜索到sku:" + val); 122 util.__tip("未搜索到sku:" + val);
115 } 123 }
116 },true); 124 },true);
117 } 125 }
118 }); 126 });
  127 +
  128 +$("#skuInput").keydown(function() {
  129 + if(event.keyCode == "13") {
  130 + $("#searchSku").click();
  131 + }
  132 +});
@@ -9,12 +9,10 @@ var $ = require('jquery'), @@ -9,12 +9,10 @@ var $ = require('jquery'),
9 9
10 new common.edit("#filter").init(); 10 new common.edit("#filter").init();
11 11
12 -//new common.dropDown({el: "#brand-filter", "ajax": "getSelectItems"});  
13 new common.dropDown({el: "#hasMeasure-filter"}); 12 new common.dropDown({el: "#hasMeasure-filter"});
14 new common.dropDown({el: "#brand-filter", ajax: "brand",params:function(){ 13 new common.dropDown({el: "#brand-filter", ajax: "brand",params:function(){
15 return {status:1}; 14 return {status:1};
16 }}); 15 }});
17 -//new common.dropDown({el: "#category-filter", "ajax": "getHelpCategory"});  
18 16
19 var tabTree=new common.tabTree("#category-filter",{ 17 var tabTree=new common.tabTree("#category-filter",{
20 columns: [{ 18 columns: [{
@@ -26,8 +24,6 @@ var tabTree=new common.tabTree("#category-filter",{ @@ -26,8 +24,6 @@ var tabTree=new common.tabTree("#category-filter",{
26 datas:[{id:"",name:""}] 24 datas:[{id:"",name:""}]
27 }); 25 });
28 tabTree.init(); 26 tabTree.init();
29 -//tabTree.getAddress()&&tabTree.getAddress()[0].id  
30 -//tabTree.isfeeze=true;  
31 27
32 var g = new common.grid({ 28 var g = new common.grid({
33 el: "#content-list", 29 el: "#content-list",
@@ -90,7 +86,15 @@ var Bll = { @@ -90,7 +86,15 @@ var Bll = {
90 toast:function(url, item, hint) { 86 toast:function(url, item, hint) {
91 var e = new common.edit("#nidaye"); 87 var e = new common.edit("#nidaye");
92 88
93 - e.on('validate', function() { 89 + var dialog=new common.dialog({
  90 + title:hint,
  91 + content:'<div id="nidaye"><input type="hidden" id="noMeasureIds" for="checkbox">'
  92 + + common.util.__template2($("#modifySize-template").html(), item)
  93 + + '<div id="faGrid" style="height: 600px;overflow:auto;"></div></div>',
  94 + width: "90%",
  95 + button:[{
  96 + value:"提交",
  97 + callback:function(){
94 var flag = false; 98 var flag = false;
95 $("input[name='noMeasureIds']").not("input:checked").each(function () { 99 $("input[name='noMeasureIds']").not("input:checked").each(function () {
96 $("." + $(this).val()).each(function() { 100 $("." + $(this).val()).each(function() {
@@ -101,56 +105,46 @@ var Bll = { @@ -101,56 +105,46 @@ var Bll = {
101 }); 105 });
102 if(flag) return false; 106 if(flag) return false;
103 }); 107 });
104 - if (flag)  
105 - return "请将没有勾选无需测量的列填写完整!";  
106 - });  
107 -  
108 - var dialog=new common.dialog({  
109 - title:hint,  
110 - content:'<div id="nidaye"><input type="hidden" id="noMeasureIds" for="checkbox">'+ common.util.__template2($("#modifySize-template").html(), item) +'<div id="faGrid" style="height: 600px;overflow:auto;"></div></div>',  
111 - width: "90%",  
112 - button:[{  
113 - value:"提交",  
114 - callback:function(){  
115 - e.submit(url,function(option){  
116 - //option.data;= 108 + if (flag) {
  109 + util.__tip("请将没有勾选无需测量的列填写完整!", "warning");
  110 + return false;
  111 + }
117 112
118 - option.data.productSkn = item.productSkn;  
119 - option.data.noMeasureIds = $("#noMeasureIds").val()?$("#noMeasureIds").val().split("|"):[];  
120 - option.data.noMeasureIds = JSON.stringify(option.data.noMeasureIds);  
121 - option.data.sizeInfoList = []; 113 + var noMeasureIds = JSON.stringify($("#noMeasureIds").val()?$("#noMeasureIds").val().split("|"):[]);//无需测量的列
  114 + //尺码信息列表
  115 + var sizeInfoList = [];
122 for(var i = 0; i < $(".sizeInfo").length; i++){ 116 for(var i = 0; i < $(".sizeInfo").length; i++){
123 - var info = $($(".sizeInfo")[i]);  
124 - option.data.sizeInfoList[i] = ({ 117 + var info = $($(".sizeInfo")[i]);//当前尺码input对象
  118 + var prdList = grid.rows[info.data("index")].prdSizeAttributeBoList;//当前列的对象的尺码列表
  119 + var attrIndex = parseInt(i%prdList.length);//在当前列的索引
  120 + sizeInfoList[i] = ({
125 productSkn: item.productSkn, 121 productSkn: item.productSkn,
126 sizeId:grid.rows[info.data("index")].sizeId, 122 sizeId:grid.rows[info.data("index")].sizeId,
127 - sizeAttributeId:grid.rows[info.data("index")].prdSizeAttributeBoList[parseInt(i%grid.rows[info.data("index")].prdSizeAttributeBoList.length)].sizeAttributeId, 123 + sizeAttributeId:prdList[attrIndex].sizeAttributeId,
128 sizeValue:info.val() 124 sizeValue:info.val()
129 }); 125 });
130 } 126 }
131 - option.data.sizeInfoList = JSON.stringify(option.data.sizeInfoList);  
132 - option.data.productSizeReferList = []; 127 + //商品参考尺码
  128 + var productSizeReferList = [];
133 for(var i = 0; i < $(".refInfo").length; i++) { 129 for(var i = 0; i < $(".refInfo").length; i++) {
134 var ref = $($(".refInfo")[i]); 130 var ref = $($(".refInfo")[i]);
135 - option.data.productSizeReferList.push({ 131 + productSizeReferList.push({
136 sizeId: grid.rows[ref.data("index")].sizeId, 132 sizeId: grid.rows[ref.data("index")].sizeId,
137 gender: item.gender, 133 gender: item.gender,
138 referenceName: ref.val() 134 referenceName: ref.val()
139 }); 135 });
140 } 136 }
141 - option.data.productSizeReferList = JSON.stringify(option.data.productSizeReferList);  
142 -  
143 - option.success=function(res){  
144 - dialog.close();  
145 - util.__tip(res.data.message, 'success');  
146 - g.reload();  
147 - };  
148 - option.error=function(res){  
149 - //dialog.close();  
150 - util.__tip(res.message); 137 + common.util.__ajax({
  138 + url:url,
  139 + data:{
  140 + productSkn: item.productSkn,
  141 + noMeasureIds: noMeasureIds,
  142 + sizeInfoList: JSON.stringify(sizeInfoList),
  143 + productSizeReferList: JSON.stringify(productSizeReferList)
151 } 144 }
  145 + },function() {
  146 + g.reload();
152 }); 147 });
153 - return false;  
154 }}, 148 }},
155 { 149 {
156 value:"取消" 150 value:"取消"
@@ -167,16 +161,18 @@ var Bll = { @@ -167,16 +161,18 @@ var Bll = {
167 } 161 }
168 }); 162 });
169 for (var i = 0; i < item.sizeRelationsList[0].prdSizeAttributeBoList.length; i++) {//尺码列 163 for (var i = 0; i < item.sizeRelationsList[0].prdSizeAttributeBoList.length; i++) {//尺码列
170 - var sizeAttributes = item.sizeRelationsList[0].prdSizeAttributeBoList[i];// 码数组里的数据 164 + var sizeAttributes = item.sizeRelationsList[0].prdSizeAttributeBoList[i];//参考尺码数组里的数据
171 var chkbox = '<label style="cursor: pointer;"><input type="checkbox" name="noMeasureIds" value="' + sizeAttributes.sizeAttributeId + '"/>无需测量</label>'; 165 var chkbox = '<label style="cursor: pointer;"><input type="checkbox" name="noMeasureIds" value="' + sizeAttributes.sizeAttributeId + '"/>无需测量</label>';
172 headList.push({ 166 headList.push({
173 display: sizeAttributes.sizeAttributeName + "<br>" + chkbox, 167 display: sizeAttributes.sizeAttributeName + "<br>" + chkbox,
174 name: "sizeValue", 168 name: "sizeValue",
175 render: function (item) { 169 render: function (item) {
176 - if (j == item.prdSizeAttributeBoList.length) j = 0;//防止越界  
177 - var sizeVal = item.prdSizeAttributeBoList[j].sizeValue ? item.prdSizeAttributeBoList[j].sizeValue : ""; 170 + var prdList = item.prdSizeAttributeBoList;
  171 + if (j == prdList.length) j = 0;//防止越界
  172 + var sizeVal = prdList[j].sizeValue ? prdList[j].sizeValue : "";
178 //j++;// 173 //j++;//
179 - return '<input class="form-control sizeInfo '+ item.prdSizeAttributeBoList[j++].sizeAttributeId +'" data-index="' + item.__index + '"' + 'value="' + sizeVal + '"/>'; 174 + return '<input class="form-control sizeInfo '+ prdList[j++].sizeAttributeId
  175 + +'" data-index="' + item.__index + '"' + 'value="' + sizeVal + '"/>';
180 } 176 }
181 }); 177 });
182 } 178 }
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 */ 4 */
5 exports.domain = require('../config/common.js').domain; 5 exports.domain = require('../config/common.js').domain;
6 //exports.domain = 'http://172.16.6.162:8088/platform'; //李建 6 //exports.domain = 'http://172.16.6.162:8088/platform'; //李建
7 -//exports.domain = 'http://192.168.102.216:8180/platform'; //测试环境 7 +//exports.domain = 'http://192.168.102.216:8180/platform'; //开发环境
8 8
9 exports.res = [ 9 exports.res = [
10 10
@@ -27,17 +27,17 @@ @@ -27,17 +27,17 @@
27 <input type="text" class="form-control" id="skuInput" /> 27 <input type="text" class="form-control" id="skuInput" />
28 </div> 28 </div>
29 <div class="panel-col"> 29 <div class="panel-col">
30 - <input type="button" class="btn" value="搜索" id="searchSku" /> 30 + <input type="button" class="btn btn-info" value="搜索" id="searchSku" />
31 </div> 31 </div>
32 </div> 32 </div>
33 </div> 33 </div>
34 </div> 34 </div>
35 - <div id="add-list"> 35 + <div id="add-list" hidden>
36 <input type="hidden" id="noMeasureIds" for="checkbox"> 36 <input type="hidden" id="noMeasureIds" for="checkbox">
37 <div id="add-head"></div> 37 <div id="add-head"></div>
38 <div id="content-list"></div> 38 <div id="content-list"></div>
39 - <div id="add-saveArea" hidden="hidden">  
40 - <input type="button" class="btn" value="保存" id="add-saveBtn" /> 39 + <div id="add-saveArea">
  40 + <input type="button" class="btn btn-primary" value="保存" id="add-saveBtn" />
41 </div> 41 </div>
42 </div> 42 </div>
43 </div> 43 </div>