...
|
...
|
@@ -102,7 +102,14 @@ var Bll = { |
|
|
Bll.renderAjax();
|
|
|
|
|
|
// 加载模板列表
|
|
|
Bll.renderTemplateList(0);
|
|
|
let index = 0;
|
|
|
$.each(shopTemplates, function(_index, template) {
|
|
|
if(template.flag && template.flag === 1) {
|
|
|
index = _index;
|
|
|
return;
|
|
|
}
|
|
|
});
|
|
|
Bll.renderTemplateList(index);
|
|
|
|
|
|
// 查询模板数据
|
|
|
Bll.getTemplateResource();
|
...
|
...
|
@@ -216,7 +223,12 @@ var Bll = { |
|
|
var moduleList = res.data.modules[0].resData;
|
|
|
// 数据库中 moduleData 存储的格式是字符串,需要转化成对象
|
|
|
$.each(moduleList, function(index, module) {
|
|
|
module.moduleData = JSON.parse(module.moduleData);
|
|
|
// 兼容自动保存模板,可能不包含模块数据
|
|
|
if(module.moduleData === undefined || module.moduleData.length === 0) {
|
|
|
module.moduleData = undefined;
|
|
|
} else {
|
|
|
module.moduleData = JSON.parse(module.moduleData);
|
|
|
}
|
|
|
});
|
|
|
Bll.moduleDataList = moduleList;
|
|
|
}
|
...
|
...
|
@@ -837,7 +849,8 @@ var Bll = { |
|
|
// 店招
|
|
|
case "ShopBanner":
|
|
|
moduleData = {
|
|
|
data: [{text: "", pic: "", linkType: "", resource: ""}]
|
|
|
data: [{text: "", pic: "", linkType: "", resource: ""}],
|
|
|
properties: {}
|
|
|
};
|
|
|
break;
|
|
|
// 双图
|
...
|
...
|
@@ -846,7 +859,8 @@ var Bll = { |
|
|
data: [
|
|
|
{text: "", pic: "", linkType: "", resource: ""},
|
|
|
{text: "", pic: "", linkType: "", resource: ""}
|
|
|
]
|
|
|
],
|
|
|
properties: {}
|
|
|
};
|
|
|
break;
|
|
|
// 三张图
|
...
|
...
|
@@ -856,13 +870,15 @@ var Bll = { |
|
|
{text: "", pic: "", linkType: "", resource: ""},
|
|
|
{text: "", pic: "", linkType: "", resource: ""},
|
|
|
{text: "", pic: "", linkType: "", resource: ""}
|
|
|
]
|
|
|
],
|
|
|
properties: {}
|
|
|
};
|
|
|
break;
|
|
|
// 视频
|
|
|
case "Video":
|
|
|
moduleData = {
|
|
|
data: [{text: {title: "", content: ""}, pic: "", video: ""}]
|
|
|
data: [{text: {title: "", content: ""}, pic: "", video: ""}],
|
|
|
properties: {}
|
|
|
};
|
|
|
break;
|
|
|
};
|
...
|
...
|
@@ -1099,6 +1115,11 @@ var handleDecoratorTemplate = function() { |
|
|
|
|
|
// 校验所有模块数据
|
|
|
$.each(Bll.moduleDataList, function(index, module) {
|
|
|
|
|
|
if(module.moduleData === undefined) {
|
|
|
module.dataValid = false;
|
|
|
}
|
|
|
|
|
|
// 单模块在保存时,已经校验通过,此处无需再次校验
|
|
|
if(module.dataValid == undefined || module.dataValid) {
|
|
|
return; // 不能使用 continue
|
...
|
...
|
@@ -1160,6 +1181,52 @@ var handleDecoratorTemplate = function() { |
|
|
return true;
|
|
|
}
|
|
|
|
|
|
var autoSaveTemplate = function() {
|
|
|
var result = handleDecoratorTemplate();
|
|
|
if(! result) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
saveTemplate(1, '', function() {
|
|
|
// 保存模板为异步调用,此处需要使用回调的方式,否则选中的模板不是保存后的
|
|
|
publishDecoratorTemplate();
|
|
|
});
|
|
|
}
|
|
|
|
|
|
var saveTemplate = function(flag, name, cb) {
|
|
|
if(flag === 1) {
|
|
|
name = '自动保存';
|
|
|
}
|
|
|
|
|
|
common.util.__ajax({
|
|
|
url: '/shop/ModularDecoratorRest/saveDecoratorTemplate',
|
|
|
data: {
|
|
|
shopId: Bll.shopId,
|
|
|
platform: +t.active ? 1 : 0,
|
|
|
appType: Bll.appType,
|
|
|
templateName: name,
|
|
|
modules: JSON.stringify(Bll.moduleDataList),
|
|
|
flag: flag
|
|
|
}
|
|
|
}, function(res) {
|
|
|
if(res && res.code == 200) {
|
|
|
// 重载模板列表
|
|
|
Bll.getTemplates();
|
|
|
$.each(shopTemplates, function(index, template) {
|
|
|
if(template.templateId == res.data) {
|
|
|
Bll.renderTemplateList(index);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 计数器置零
|
|
|
Bll.changedModuleMonitor = 0;
|
|
|
if(cb && typeof cb === 'function') {
|
|
|
cb.call();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 存储模板,callback:保存成功后的回调
|
|
|
var saveDecoratorTemplate = function(cb) {
|
|
|
var result = handleDecoratorTemplate();
|
...
|
...
|
@@ -1185,32 +1252,8 @@ var saveDecoratorTemplate = function(cb) { |
|
|
common.util.__tip('请输入模板名称!', 'warning');
|
|
|
return false;
|
|
|
}
|
|
|
common.util.__ajax({
|
|
|
url: '/shop/ModularDecoratorRest/saveDecoratorTemplate',
|
|
|
data: {
|
|
|
shopId: Bll.shopId,
|
|
|
platform: +t.active ? 1 : 0,
|
|
|
appType: Bll.appType,
|
|
|
templateName: templateName,
|
|
|
modules: JSON.stringify(Bll.moduleDataList)
|
|
|
}
|
|
|
}, function(res) {
|
|
|
if(res && res.code == 200) {
|
|
|
// 重载模板列表
|
|
|
Bll.getTemplates();
|
|
|
$.each(shopTemplates, function(index, template) {
|
|
|
if(template.templateId == res.data) {
|
|
|
Bll.renderTemplateList(index);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 计数器置零
|
|
|
Bll.changedModuleMonitor = 0;
|
|
|
if(cb && typeof cb === 'function') {
|
|
|
cb.call();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
saveTemplate(0, templateName);
|
|
|
}
|
|
|
}
|
|
|
]
|
...
|
...
|
@@ -1282,20 +1325,18 @@ var publishDecoratorTemplate = function() { |
|
|
|
|
|
// 发布模板
|
|
|
$(document).on('click', '#publishBtn', function() {
|
|
|
// 检测到模块数据有变化,提示保存
|
|
|
if(Bll.changedModuleMonitor > 0) {
|
|
|
common.dialog.confirm('温馨提示', '装修模块内容有变化,是否先保存模板? 选择否,则会发布编辑前的模板!',
|
|
|
function() {
|
|
|
// 先保存模板,再发布模板
|
|
|
saveDecoratorTemplate(function() {
|
|
|
publishDecoratorTemplate();
|
|
|
});
|
|
|
}, function() {
|
|
|
// 直接发布模板
|
|
|
publishDecoratorTemplate();
|
|
|
});
|
|
|
} else {
|
|
|
if(Bll.changedModuleMonitor === 0) {
|
|
|
// 装修模板数据未有变化,直接发布模板
|
|
|
// 此处需要再次校验,防止自动保存模板中的模块没有数据,直接点击发布
|
|
|
var result = handleDecoratorTemplate();
|
|
|
if(! result) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
publishDecoratorTemplate();
|
|
|
} else {
|
|
|
// 装修模板数据变化,先自动保存模板,然后发布
|
|
|
autoSaveTemplate();
|
|
|
}
|
|
|
});
|
|
|
|
...
|
...
|
@@ -1327,8 +1368,22 @@ $(document).on('click', '#applyBtn', function() { |
|
|
|
|
|
// 退出装修工具
|
|
|
$(document).on('click', '#quitBtn', function() {
|
|
|
common.dialog.confirm("温馨提示", "是否确认退出装修工具?为防止数据丢失,请确保已经存储模板!", function() {
|
|
|
common.dialog.confirm("温馨提示", "是否确认退出装修工具?", function() {
|
|
|
// window.close();
|
|
|
// 自动保存当前数据,无需校验
|
|
|
|
|
|
$.each(Bll.moduleDataList, function(index, module) {
|
|
|
if(module.moduleData === undefined) {
|
|
|
module.moduleData = '';
|
|
|
}
|
|
|
|
|
|
module.moduleOrder = index;
|
|
|
if(module.moduleStyle === undefined) {
|
|
|
module.moduleStyle = 0;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
saveTemplate(1);
|
|
|
window.location.href = '/shop/modular/decorator';
|
|
|
});
|
|
|
});
|
...
|
...
|
|