Authored by xuhongyun

build

... ... @@ -46,16 +46,16 @@ webpackJsonp([54],{
/*删除skn第一张图片*/
$(document).on("click", "#btn-deleteFirstDesc", function(){
common.util.__ajax({
url:'/product/deleteBatchProductDescFirstImg',
data:{
productSknStrs:common.util.__input('productSkn'),
brandId: common.util.__input("brandId"),
maxSortId: tabTree.selected.length > 0 ? tabTree.selected[0].id : "", // 一级类目
middleSortId: tabTree.selected.length > 1 ? tabTree.selected[1].id : "", // 二级类目
smallSortId: tabTree.selected.length > 2 ? tabTree.selected[2].id : "", // 三级类目
}
});
common.util.__ajax({
url:'/product/deleteBatchProductDescFirstImg',
data:{
productSknStrs:common.util.__input('productSkn'),
brandId: common.util.__input("brandId"),
maxSortId: tabTree.selected.length > 0 ? tabTree.selected[0].id : "", // 一级类目
middleSortId: tabTree.selected.length > 1 ? tabTree.selected[1].id : "", // 二级类目
smallSortId: tabTree.selected.length > 2 ? tabTree.selected[2].id : "", // 三级类目
}
});
});
... ...
... ... @@ -123,7 +123,19 @@ webpackJsonp([151],{
}
// 通用楼层检查
if (module.contentData.template_name == 'floorMark'){
if (module.contentData.floorCategory =='-1'){
common.util.__tip('楼层分类不能为空!', 'warning');
return false;
}
// 楼层分类 不能选择 订单
if (module.contentData.floorCategory =='3'){
common.util.__tip('楼层分类不能是订单!', 'warning');
return false;
}
}
// 新商品列表
if (module.contentData.template_name == 'newProductListMerge'){
... ... @@ -944,6 +956,8 @@ webpackJsonp([151],{
chooseChannelActive(Bll.module.contentData.data.channel);
}
}
new common.dropDown({el: ".smallSortList"});
/*下拉选择*/
new common.dropDown({
... ... @@ -1404,6 +1418,11 @@ webpackJsonp([151],{
Bll.renderDialog("splitJointImg-template");
});
$(document).on("change", '#floorContent', function () {
Bll.module.contentData.floorContent = $(this).val();
Bll.renderDialog("floorMark-template");
});
$(document).on("change", '#position-select', function () {
Bll.module.contentData.data.ufo_position = $(this).val();
Bll.renderDialog("cpsShowBanner-template");
... ... @@ -1438,6 +1457,12 @@ webpackJsonp([151],{
Bll.renderDialog("splitJointImgBanner-template");
});
$(document).on("change", '#floorCategory', function () {
Bll.module.contentData.floorCategory = $(this).val();
Bll.module.contentData.floorCategoryName = $(this).find("option:selected").text();
});
$(document).on("change", '#split_image_height', function () {
Bll.module.contentData.image_height = $(this).val();
Bll.renderDialog("splitJointImg-template");
... ... @@ -1501,6 +1526,8 @@ webpackJsonp([151],{
Bll.renderDialog("splitJointImgBanner-template");
});
$(document).on("change", '#isNewUserFloor', function () {
if ($(this).is(':checked')) {
Bll.module.contentData.isNewUserFloor = 1;
... ... @@ -2619,6 +2646,8 @@ webpackJsonp([151],{
}
}
var LottiefilesView = {
init : function(){
var _g = this;
... ... @@ -2648,7 +2677,7 @@ webpackJsonp([151],{
BT.push({
"channel":"app",
"buttonNames":['splitJointImg','splitJointImgBanner','twoPicture','newSingleImage','imageListFloor','divideImage','focus','newUserFloor','imageListBanner',
"buttonNames":['splitJointImg','splitJointImgBanner','twoPicture','newSingleImage','imageListFloor','divideImage','floorMark','focus','newUserFloor','imageListBanner',
'guessLike','newProductListFloor','headChannelSwitch','category',
'popularListFloor','newProductListMerge','findGoodsListFloor','recommendContentFive','limitSaleListFloor','editorTalk',
'shopActivityListFloor','shopFloor','tabFloor','textNav','tfGoodsList','recommendGoodsGroup','guangRqFloor','guangShowOrderFloor','timeImage']
... ... @@ -2750,6 +2779,15 @@ webpackJsonp([151],{
"divideColour" : "2"
},
{
template_intro: "通用楼层",
button_name: "通用楼层",
dialog: "floorMark-template",
template_name: "floorMark",
floorCategory:"-1",
itemNum:"4",
floorCategoryName:""
},
{
template_intro: "均分图片",
button_name: "均分图片",
dialog: "splitJointImg-template",
... ...
... ... @@ -222,6 +222,14 @@ webpackJsonp([178],{
} else {
module.moduleData = JSON.parse(module.moduleData);
}
if(module.moduleType == 'DivideCarouselImage'){
$.each(module.moduleData.data, function(index, data) {
var _index = data.pic.indexOf("?imageView2");
if(_index != -1) {
data.pic = data.pic.substring(0, _index);
}
});
}
});
Bll.moduleDataList = moduleList;
}
... ... @@ -793,6 +801,61 @@ webpackJsonp([178],{
Bll.moduleGrid.__rows = Bll.getModuleData(module);
Bll.moduleGrid.init(Bll.moduleGrid.__rows);
break;
case "DivideCarouselImage":
// 添加一行
$('.editorTitle').append('<div><a class="btn btn-primary add-moduledata-btn" javascript=":;" >添加一行</div>');
$('.editorTitle').append(common.util.__template2($('#divide-carousel-image').html(), {date: Bll.getDivideProperties(module)}));
Bll.moduleGrid = new grid({
hash: false,
el: selector,
columns: [
{
display: '关联类型',
width:150,
render: function(item) {
return common.util.__template2($('#link-type-template').html(), {data: item, index: item.__index});
}
},
{
display: '关联到',
width:150,
render: function(item) {
return common.util.__template2($('#link-resource-template').html(), {data: item, index: item.__index, categoryList: Bll.shopCategoryList});
}
},
{
display: '图片地址',
render: function(item) {
return common.util.__template2($('#upload-image-template').html(), {item: item});
}
},
{
display: '分组',
width:150,
render: function(item) {
return common.util.__template2($('#divide-group').html(), {item: item});
}
},
{
display: '操作',
render: function(item) {
if(item.__index == 0) {
return '';
} else {
return '<a href="javascript:;" class="del-moduledata-btn" data-index="' + item.__index+ '" title="删除数据"><span class="glyphicon glyphicon-remove"></span></a>';
}
}
}
],
// onBodyLoad: function() {
// $('.upload-image').each(function() {
// $(this).attr('spec', '750*234');
// });
// }
});
Bll.moduleGrid.__rows = Bll.getModuleData(module);
Bll.moduleGrid.init(Bll.moduleGrid.__rows);
break;
case "CarouselImage":
// 添加一行
$('.editorTitle').append('<div><a class="btn btn-primary add-moduledata-btn" javascript=":;" data-limit="5">添加一行</div>');
... ... @@ -1121,6 +1184,13 @@ webpackJsonp([178],{
$('.editorTitle').append(common.util.__template2($('#module-margin-template').html(), {isModuleMargin: Bll.getModuleMargin(module)}));
},
getDivideProperties: function (module) {
if(module.moduleData && module.moduleData.properties) {
return module.moduleData.properties
}
return "";
},
// 获取是否设置模块间间距,默认是1
getModuleMargin: function(module) {
if(module.moduleData && module.moduleData.properties) {
... ... @@ -1253,6 +1323,16 @@ webpackJsonp([178],{
}else if(moduleType == 'DoubleImage'){
Bll.moduleDataList[index].moduleData.properties.isModuleMargin = 0;
}
if(moduleType == 'DivideCarouselImage'){
if($('#divideWidth').val() == "" || $('#divideHigh').val() == "" || $('#divideRow').val() == "" || $('#divideColumn').val() == "") {
common.util.__tip('均分轮播图模块中宽、高、行、列不可为空!', 'warning');
return false;
}
Bll.moduleDataList[index].moduleData.properties.divideWidth = $('#divideWidth').val();
Bll.moduleDataList[index].moduleData.properties.divideHigh = $('#divideHigh').val();
Bll.moduleDataList[index].moduleData.properties.divideRow = $('#divideRow').val();
Bll.moduleDataList[index].moduleData.properties.divideColumn = $('#divideColumn').val();
}
if(moduleType == 'RecommendProduct' || moduleType == 'AppRecommendProduct') {
validation = Bll.validator.validateModule(moduleType, Bll.recommendProduct);
Bll.saveRecommendProduct(index);
... ... @@ -1448,6 +1528,12 @@ webpackJsonp([178],{
case "SingleImage":
// 轮播图
case "CarouselImage":
case "DivideCarouselImage":
moduleData = {
data: [{text: "", pic: "", linkType: "", resource: "", group: ""}],
properties: {}
};
break;
// 标题模块
case "Title":
// PC端,整图模块
... ... @@ -1612,6 +1698,8 @@ webpackJsonp([178],{
return "请上传尺寸为750*234,不大于500KB的图片,支持GIF、JPG、JPEG格式!";
case "CarouselImage":
return "请上传尺寸为750*234,不大于500KB的图片,最多五张,支持GIF、JPG、JPEG格式!";
case "DivideCarouselImage":
return "请上传不大于500KB的图片,支持GIF、JPG、JPEG格式!";
case "SingleImage":
return "请上传宽度为750,不大于500KB的图片,图片高度不限,支持GIF、JPG、JPEG格式!";
case "DoubleImage":
... ... @@ -1709,6 +1797,15 @@ webpackJsonp([178],{
}
});
break;
case "DivideCarouselImage":
// 轮播图,限制图片尺寸为 750 * 234
$.each(module.moduleData.data, function(index, data) {
var _index = data.pic.indexOf(imageView);
if(_index != -1) {
data.pic = data.pic.substring(0, _index) + imageView + '/1/w/750/h/234';
}
});
break;
case "TripleImage":
var displayType = Bll.moduleGrid.displayType;
if(displayType == undefined) {
... ... @@ -1885,6 +1982,40 @@ webpackJsonp([178],{
if(Bll.templateType == null || Bll.templateType == undefined){
Bll.templateType = 1;
}
$.each(Bll.moduleDataList, function(index, data) {
if(data.moduleType == 'DivideCarouselImage'){
var group = [];
$.each(data.moduleData.data, function(index, module) {
var _index = module.pic.indexOf("?imageView2");
if(_index != -1) {
module.pic = module.pic.substring(0, _index) + '?imageView2/{mode}/w/{width}/h/{height}';
}else if(module.pic != ""){
module.pic = module.pic + '?imageView2/{mode}/w/{width}/h/{height}';
}
if(group.indexOf(module.group) == -1){
group.push(module.group);
}
});
var groupList = []
for(var i=0;i<group.length;i++){
var arr = [];
var obj = {};
var src = "";
$.each(data.moduleData.data, function(index, module) {
if(group[i] == module.group){
arr.push(module);
if(src == ""){
src = module.pic;
}
}
})
obj.list = arr;
obj.src = src;
groupList.push(obj);
}
data.moduleData.groupList = groupList;
}
})
common.util.__ajax({
url: '/shop/ModularDecoratorRest/saveDecoratorTemplate',
data: {
... ... @@ -1989,7 +2120,40 @@ webpackJsonp([178],{
if(! result) {
return;
}
$.each(Bll.moduleDataList, function(index, data) {
if(data.moduleType == 'DivideCarouselImage'){
var group = [];
$.each(data.moduleData.data, function(index, module) {
var _index = module.pic.indexOf("?imageView2");
if(_index != -1) {
module.pic = module.pic.substring(0, _index) + '?imageView2/{mode}/w/{width}/h/{height}';
}else if(module.pic != ""){
module.pic = module.pic + '?imageView2/{mode}/w/{width}/h/{height}';
}
if(group.indexOf(module.group) == -1){
group.push(module.group);
}
});
var groupList = []
for(var i=0;i<group.length;i++){
var arr = [];
var obj = {};
var src = "";
$.each(data.moduleData.data, function(index, module) {
if(group[i] == module.group){
arr.push(module);
if(src == ""){
src = module.pic;
}
}
})
obj.list = arr;
obj.src = src;
groupList.push(obj);
}
data.moduleData.groupList = groupList;
}
})
common.util.__ajax({
url: "/shop/ModularDecoratorRest/updateDecoratorTemplate",
data: {
... ... @@ -2208,7 +2372,6 @@ webpackJsonp([178],{
Bll.moduleGrid.__rows[index].pic = pic;
}
}
Bll.moduleGrid.__rows[index].resource = resource;
Bll.moduleGrid.reload();
});
... ... @@ -2219,6 +2382,11 @@ webpackJsonp([178],{
Bll.moduleGrid.__rows[index].showProductInfo = $(this).context.checked;
});
$(document).on('change', '.divide-group-class', function() {
var index = $(this).data("index");
Bll.moduleGrid.__rows[index].group = $(this).val();
});
// 标题输入框变化
$(document).on('change', '.title-text', function() {
... ... @@ -2596,6 +2764,8 @@ webpackJsonp([178],{
return this.validateMultiImage(moduleData, '双图模块');
case "CarouselImage":
return this.validateMultiImage(moduleData, '轮播图模块');
case "DivideCarouselImage":
return this.validateMultiImage(moduleData, '均分轮播图模块');
case "TripleImage":
return this.validateMultiImage(moduleData, '三张图模块');
case "FourImage":
... ... @@ -2718,12 +2888,18 @@ webpackJsonp([178],{
var linkType = data.linkType;
var resource = data.resource;
if(!data.pic) {
if(!data.pic && moduleName != '均分轮播图模块') {
common.util.__tip(moduleName + '中,第' + (index + 1) + '条装修内容中图片地址为空,请确认!', 'warning');
validateResult = false;
return;
}
if(moduleName == '均分轮播图模块'){
if(data.group == "" || data.group == undefined || data.group == null){
common.util.__tip(moduleName + "中,第" + (index + 1) + "条装修内容中分组值为空,请确认!", 'warning');
validateResult = false;
return;
}
}
if(!linkType) {
return;
}
... ... @@ -3368,6 +3544,10 @@ webpackJsonp([178],{
name: '轮播图',
description: '添加一张或者多张图片,最多五张,图片多于一张的话,支持轮播。',
type: 'CarouselImage'
},{
name: '均分轮播图',
description: '添加一张或者多张图片,图片多于一张的话,支持轮播。',
type: 'DivideCarouselImage'
},
{
name: '单图',
... ...
... ... @@ -14,11 +14,14 @@ module.exports=function(app) {
});
/*资源内容管理页*/
app.get("/resource/content/index/:param/:param/:param/:param","resource.resourceManage.ContentManage", ["select_selectCheckPassShopsByName","resourceManage_getUrlAction","resourceManage_queryCatogaryListByLevel"], function (shopData,response,sort) {
app.get("/resource/content/index/:param/:param/:param/:param","resource.resourceManage.ContentManage",
["select_selectCheckPassShopsByName","resourceManage_getUrlAction","resourceManage_queryCatogaryListByLevel","resourceManage_queryFloorCategory"],
function (shopData,response,sort,floorCategroy) {
this.$extend = {
shopData:shopData.data,
data:response.data,
smallSort:sort.data,
floorCategroy:floorCategroy.data,
moduleName: "资源管理",
pageName: "资源内容管理"
};
... ...
... ... @@ -31,6 +31,7 @@ module.exports={
{name: 'status',type: 'Number'},
{name: 'brandName',type: 'string'},
{name: 'brandNameEn',type: 'string'},
{name: 'brandNameCn',type: 'string'},
{name: 'brandDomain',type: 'string'},
{name: 'brandLevel',type: 'string'},
{name: 'promotionLevel',type: 'Number'},
... ... @@ -61,7 +62,8 @@ module.exports={
params:[
{name: 'brandName',type: 'string'},
{name: 'brandNameEn',type: 'string'},
{name: 'brandDomain',type: 'string'},
{name: 'brandNameCn',type: 'string'},
{name: 'brandDomain',type: 'string'},
{name: 'brandLevel',type: 'string'},
{name: 'promotionLevel',type: 'Number'},
{name: 'mainCategory',type: 'Number'},
... ...
... ... @@ -24,5 +24,6 @@ module.exports={
{name: 'smallSortId',type: 'Number'}
]
}
}
}
\ No newline at end of file
... ...
... ... @@ -70,6 +70,11 @@ module.exports={
url: "/salesCategory/querySortListByLevel"
},
queryFloorCategory:{
title: "获取楼层分类",
url: "/appEntranceIcon/selectAllCategory"
},
resContentIndex:{
title: "根据id获取资源内容",
url: "/resources/resContentIndex",
... ...
... ... @@ -26,6 +26,13 @@
</div>
<div class="form-group">
<label class="col-sm-2 control-label">中文名称 </label>
<div class="col-sm-8">
<input type="text" id="brandNameCn" name="brandNameCn" class="form-control" placeholder="中文名称" required value="<%data.brandNameCn%>">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">二级域名 <span class="red">*</span></label>
<div class="col-sm-8">
<div class="input-group col-sm-6">
... ...
... ... @@ -50,6 +50,7 @@
<script id="edit-descriptioner" type="text/plain" style="width:100%;"></script>
<input id="productDesc" type="hidden" required placeholder="商品描述">
</div>
<div class="panel-footer">
<a href="javascript:;" class="btn btn-primary" id="btn-descriptioner">保存描述</a>
</div>
... ...
... ... @@ -12,6 +12,14 @@
<%/each%>
</script>
<!-- 楼层分类 -->
<script type="text/template" id="floorCategory_template">
<option value="-1">请选择</option>
<%each floorCategroy as item index%>
<option value="<%item.id%>"><%item.text%></option>
<%/each%>
</script>
<script type="text/template" id="shop_template">
<option value="">请选择店铺</option>
<%each shopData as item index%>
... ...
... ... @@ -2058,6 +2058,48 @@
</ul>
</script>
<script type="text/template" id="headChannelSwitch-template">
<input type="button" class="btn btn-info btn-xs addBtn" data-event="headChannelSwitch.list" value="添加Tab" style="margin:10px;">
<br>
<ul class="draggable" data-array="data">
[[each contentData.data.list as item index]]
<li>
<table class="table table-hover table-bordered responsive dataTable no-footer">
<tbody>
<tr>
<td align="center">[[index+1]]</td>
<td align="center">
<input class="form-control observe" value="[[item.tabName?item.tabName:'']]" placeholder="Tab中文名称"
data-field='list.[[index]].tabName' required/>
</td>
<td align="center">
<input class="form-control observe" value="[[item.tabNameEn?item.tabNameEn:'']]" placeholder="Tab英文名称"
data-field='list.[[index]].tabNameEn'/>
</td>
<td align="center">
<input class="form-control observe" value="[[item.channel?item.channel:'']]" placeholder="频道"
data-field='list.[[index]].channel' required/>
</td>
<td>
<input class="form-control observe" placeholder="code码" data-field="list.[[index]].code"
value="[[item.code?item.code:'']]" required/>
</td>
<td>
<input class="form-control observe" placeholder="默认搜索词" data-field="list.[[index]].searchWord"
value="[[item.searchWord?item.searchWord:'']]"/>
</td>
<td>
<a target="_blank" class="btn btn-xs btn-primary goResourceContent" data-index="[[index]]">内容编辑</a>
<button class="btn btn-danger btn-sm delBtn" data-event="headChannelSwitch.list" type="button" data-index="[[index]]">删除</button></td>
</tr>
</tbody>
</table>
</li>
[[/each]]
</ul>
</script>
<script type="text/template" id="category-template">
<input type="button" class="btn btn-info btn-xs addBtn" data-event="category.data" value="添加图片" style="margin:10px;"><br>
... ...
... ... @@ -66,6 +66,12 @@
<div class="col-sm-12">
<img src="[[module.contentData.data[0].src]]" title="[[module.contentData.data[0].title]]">
</div>
[[else if module.contentData.template_name=='floorMark']]
<div class="col-sm-12">
<div class="col-sm-4">
<label>[[module.contentData.floorCategoryName]]</label>
</div>
</div>
[[else if module.contentData.template_name=='smallPic']]
[[each module.contentData.data as item i]]
<div class="col-sm-6">
... ... @@ -435,6 +441,28 @@
</script>
<!-- 通用楼层-->
<script type="text/template" id="floorMark-template">
<div class="form-group">
<div class="col-sm-10">
<label>楼层分类:</label>
<select class="form-control input-form" id="floorCategory" value="[[contentData.floorCategory]]">
[[layout floorCategory_template]]
</select>
</div>
<div class="col-sm-10">
<label>入口个数:</label>
<select class="form-control input-form" id="itemNum" value="[[contentData.itemNum]]">
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
</div>
</script>
<!-- 均分图片轮播图 -->
<script type="text/template" id="splitJointImgBanner-template">
... ... @@ -1926,52 +1954,7 @@
</div>
</script>
<script type="text/template" id="headChannelSwitch-template">
<input type="button" class="btn btn-info btn-xs addBtn" data-event="headChannelSwitch.list" value="添加Tab" style="margin:10px;">
<br>
<div class="rows">
<div>
<ul class="draggable" data-array="data">
[[each contentData.data.list as item index]]
<li>
<table class="table table-hover table-bordered responsive dataTable no-footer">
<tbody>
<tr>
<td align="center">[[index+1]]</td>
<td align="center">
<input class="form-control observe" value="[[item.tabName?item.tabName:'']]" placeholder="Tab中文名称"
data-field='list.[[index]].tabName' required/>
</td>
<td align="center">
<input class="form-control observe" value="[[item.tabNameEn?item.tabNameEn:'']]" placeholder="Tab英文名称"
data-field='list.[[index]].tabNameEn'/>
</td>
<td align="center">
<input class="form-control observe" value="[[item.channel?item.channel:'']]" placeholder="频道"
data-field='list.[[index]].channel' required/>
</td>
<td>
<input class="form-control observe" placeholder="code码" data-field="list.[[index]].code"
value="[[item.code?item.code:'']]" required/>
</td>
<td>
<input class="form-control observe" placeholder="默认搜索词" data-field="list.[[index]].searchWord"
value="[[item.searchWord?item.searchWord:'']]"/>
</td>
<td>
<a target="_blank" class="btn btn-xs btn-primary goResourceContent" data-index="[[index]]">内容编辑</a>
[[if index > 1]]
<button class="btn btn-danger btn-sm delBtn" data-event="headChannelSwitch.list" type="button" data-index="[[index]]">删除</button></td>
[[/if]]
</tr>
</tbody>
</table>
</li>
[[/each]]
</ul>
</div>
</div>
</script>
<script type="text/template" id="shopFloor-template">
<input type="button" class="btn btn-info btn-xs addBtn addShopBtn" data-event="shopFloor.list" value="添加店铺信息" style="margin:10px;">
... ...
... ... @@ -205,6 +205,13 @@
</div>
</script>
<!-- 分组 -->
<script type="text/template" id="divide-group">
<div class="input-group">
<input type="text" class="form-control form-input divide-group-class" data-index="[[item.__index]]" value="[[item.group]]" required>
</div>
</script>
<!-- 模块间距选择 -->
<script type="text/template" id="module-margin-template">
<div class="form-group">
... ... @@ -222,6 +229,15 @@
</div>
</script>
<script type="text/template" id="divide-carousel-image">
<div class="form-group">
<div class="col-sm-2">宽度:<input type="text" id="divideWidth" class="form-control title-text" value="[[date.divideWidth]]"></div>
<div class="col-sm-2">高度:<input type="text" id="divideHigh" class="form-control title-text" value="[[date.divideHigh]]"></div>
<div class="col-sm-2">均分图片()<input type="text" id="divideRow" class="form-control title-text" value="[[date.divideRow]]"></div>
<div class="col-sm-2">均分图片()<input type="text" id="divideColumn" class="form-control title-text" value="[[date.divideColumn]]"></div>
</div>
</script>
<!-- 推荐商品模块,筛选框 -->
<script type="text-template" id="recommend-product-filter">
<div class="form-group">
... ...
... ... @@ -75,6 +75,21 @@
[[/if]]
[[/if]]
[[if item.moduleType == 'DivideCarouselImage']]
[[if item.moduleData]]
<div class="app-carousel-image modular-editor carouse-animation" data-type="DivideCarouselImage" data-title="编辑均分轮播图模块" data-index="[[index]]"
style="[[item.moduleData.properties.isModuleMargin == 0 ? 'margin-bottom: 0;' : '']]">
[[each item.moduleData.data as data _index]]
<img src="[[data.pic]]" alt="#" class="img-item" style="[[_index == 0 ? 'display: inline;' : '']]">
[[/each]]
</div>
[[else]]
<div class="app-carousel-image modular-editor" data-type="DivideCarouselImage" data-title="编辑均分轮播图模块" data-index="[[index]]">
<img src="/static/assets/images/decorator/yoho-logo.png" alt="#" class="logo">
</div>
[[/if]]
[[/if]]
<!-- 一张图 -->
[[if item.moduleType == 'SingleImage']]
<!-- 展示装修数据 -->
... ...