Authored by leo

Fixed: 修复保存报错,增加默认数据

@@ -16,21 +16,6 @@ var systemTemplates = @@ -16,21 +16,6 @@ var systemTemplates =
16 16
17 var shopTemplates = []; 17 var shopTemplates = [];
18 18
19 -var defaultModuleData = [  
20 - {  
21 - dataValid: false, // 系统模板,默认只包含模块信息,并不包含模块内容;新增的模块,也不包含模块内容。默认数据是非法的  
22 - moduleType: "ShopBanner",  
23 - },  
24 - {  
25 - dataValid: false,  
26 - moduleType: "ShopNavbar"  
27 - },  
28 - {  
29 - dataValid: true,  
30 - moduleType: "ProductSort"  
31 - }  
32 -];  
33 -  
34 var t = new common.tab({ 19 var t = new common.tab({
35 el: "#platformTab", 20 el: "#platformTab",
36 click: function () { 21 click: function () {
@@ -167,7 +152,7 @@ var Bll = { @@ -167,7 +152,7 @@ var Bll = {
167 var index = $(curTemplate).data('index'); 152 var index = $(curTemplate).data('index');
168 // index = 0:系统模板,默认数据即可,不查询 153 // index = 0:系统模板,默认数据即可,不查询
169 if(index == 0) { 154 if(index == 0) {
170 - Bll.moduleDataList = defaultModuleData; 155 + Bll.moduleDataList = Bll.base.getDefaultModuleData(+t.active ? 0 : 1);
171 return; 156 return;
172 } 157 }
173 158
@@ -1540,6 +1525,9 @@ var handleDecoratorTemplate = function() { @@ -1540,6 +1525,9 @@ var handleDecoratorTemplate = function() {
1540 return validatorResult; 1525 return validatorResult;
1541 } 1526 }
1542 1527
  1528 + // 这些模块可能没有模块数据,只是根据标识去渲染。如果检测到没有数据,增加默认数据
  1529 + let noDataModuleArray = ['ProductList', 'ShopNavbar', 'ProductSort'];
  1530 +
1543 $.each(Bll.moduleDataList, function(index, module) { 1531 $.each(Bll.moduleDataList, function(index, module) {
1544 // 根据模块的排序,重新生成order 1532 // 根据模块的排序,重新生成order
1545 module.moduleOrder = index; 1533 module.moduleOrder = index;
@@ -1547,9 +1535,11 @@ var handleDecoratorTemplate = function() { @@ -1547,9 +1535,11 @@ var handleDecoratorTemplate = function() {
1547 module.moduleStyle = 0; 1535 module.moduleStyle = 0;
1548 } 1536 }
1549 1537
1550 - // 商品列表,增加默认装修数据  
1551 - if(module.moduleType == 'ProductList') {  
1552 - module.moduleData = {data: [], properties: {}}; 1538 + // 填充默认数据
  1539 + if($.inArray(module.moduleType, noDataModuleArray) > -1) {
  1540 + if(module.moduleData === undefined) {
  1541 + module.moduleData = {data: [], properties: {}};
  1542 + }
1553 return; 1543 return;
1554 } 1544 }
1555 1545
@@ -2,8 +2,7 @@ @@ -2,8 +2,7 @@
2 let $ = require('jquery'), 2 let $ = require('jquery'),
3 common = require('../../../../common/common'); 3 common = require('../../../../common/common');
4 4
5 -var base = function() {  
6 -} 5 +var base = function() {};
7 6
8 base.prototype = { 7 base.prototype = {
9 constructor: base, 8 constructor: base,
@@ -90,6 +89,28 @@ base.prototype = { @@ -90,6 +89,28 @@ base.prototype = {
90 1: '已上架' 89 1: '已上架'
91 }, 90 },
92 91
  92 + defaultModuleData: [
  93 + {
  94 + dataValid: false, // 系统模板,默认只包含模块信息,并不包含模块内容;新增的模块,也不包含模块内容。默认数据是非法的
  95 + moduleType: "ShopBanner",
  96 + },
  97 + {
  98 + dataValid: false,
  99 + moduleType: "ShopNavbar",
  100 + },
  101 + {
  102 + dataValid: true,
  103 + moduleType: "ProductSort",
  104 + }
  105 + ],
  106 +
  107 + defaultAppModuleData: [
  108 + {
  109 + dataValid: false, // 系统模板,默认只包含模块信息,并不包含模块内容;新增的模块,也不包含模块内容。默认数据是非法的
  110 + moduleType: "ShopBanner",
  111 + }
  112 + ],
  113 +
93 /** 114 /**
94 * 根据模块区域获取可添加的模块列表信息 115 * 根据模块区域获取可添加的模块列表信息
95 * styleArea: 模块区域标识,0--APP端,1--PC端160区域,2--PC端975区域 116 * styleArea: 模块区域标识,0--APP端,1--PC端160区域,2--PC端975区域
@@ -113,6 +134,17 @@ base.prototype = { @@ -113,6 +134,17 @@ base.prototype = {
113 } 134 }
114 135
115 return statusDesc; 136 return statusDesc;
  137 + },
  138 +
  139 + getDefaultModuleData: function(platform) {
  140 + if(platform === 0) {
  141 + // PC端
  142 + let temp = JSON.stringify(this.defaultModuleData);
  143 + return JSON.parse(temp);
  144 + } else {
  145 + let temp = JSON.stringify(this.defaultAppModuleData);
  146 + return JSON.parse(temp);
  147 + }
116 } 148 }
117 } 149 }
118 150