Authored by dongjunjie

Merge branch 'portal_dev_4.9' into protal_dev_2.2

Showing 71 changed files with 3128 additions and 508 deletions

Too many changes to show.

To preserve performance only 71 of 71+ files are displayed.

... ... @@ -15,6 +15,14 @@ module.exports=function(app) {
}
});
app.get("/loginInter", "common_login", function (login, req, res){
if (login.code == 200) {
res.myJson({code:200,data:login});
} else {
res.myJson({code:201,data:"error"});
}
});
app.get("/","common.index");
app.get("/error", "common.Error");
... ...
... ... @@ -74,8 +74,8 @@ module.exports = {
},
login: function (req, callback, common) {
var userInfo = {},result = { code: 400, message: "登录失败" },isSuccess=false;
var user = req.body.user;
var password = req.body.password;
var user = req.body.user||req.query.user;
var password = req.body.password||req.query.password;
var errcallback = function (err) {
return callback(null, result);
}
... ... @@ -95,8 +95,7 @@ module.exports = {
req.session.user = userInfo;
if (cookie && cookie.length > 0) {
req.session.gray = cookie[0];
console.log("req.session.gray",cookie);
result = { code: 200, message: "登录成功" };
result = { code: 200, message: "登录成功" ,data:req.session.user};
}
return callback(null, result);
},errcallback);
... ...
... ... @@ -112,7 +112,8 @@ module.exports={
title:'',
url: '/guang/article/getSortList',
params: [
{name: "parentId", type: "Number"}
{name: "parentId", type: "Number"},
{name:"appType",type:"Number"}
]
},
queryList:{
... ...
var request = require('request');
var _ = require('lodash');
var fs = require('fs');
var yohoSearch = global.global.Register.yohoSearch;
var yohoSearch = global.Register.yohoSearch;
module.exports = {
namespace: "common",
... ...
<%include '__ui/header'%>
<app></app>
<router-view></router-view>
<%include '__ui/footer'%>
\ No newline at end of file
... ...
... ... @@ -52,7 +52,7 @@ module.exports=function(app) {
return data;
});
/*查询网销详情*/
// app.post("/goods/netsale/getdata","netsale_getNetSaleInfo");
app.post("/goods/netsale/getdata","netsale_getNetSaleInfo");
/*保存完整网销信息*/
app.post("/goods/product/saveNetSaleAllInfo","netsale_saveNetSaleAllInfo");
/*保存基本信息接口*/
... ...
... ... @@ -50,7 +50,8 @@ module.exports={
{name: 'supplierId', type: 'Number'},
{name: 'isAuditing', type: 'Number'},
{name: 'founderName', type: 'String'},
{name:'factoryCode',type:'String'}
{name:'factoryCode',type:'String'},
{name: 'appType', type: 'Number'}
]
},
addBaseProduct:{
... ...
... ... @@ -29,7 +29,8 @@ module.exports={
{name: 'descFlag', type: 'string'},
{name:'isAdvance', type:'string'},
{name:'skcOnsaleStatus', type:'string'},
{name:'factoryCode',type:'String'}
{name:'factoryCode',type:'String'},
{name: 'appType', type: 'Number'}
]
},
queryTabProductNum:{
... ...
... ... @@ -104,7 +104,7 @@
<input id="baseProduct" name="file" data-type="baseProduct" type="file" style="cursor: pointer; height: 37px; top: 8px;">
</div>
<div class="panel-col" style="line-height: 40px;position: relative;left: -60px;">
<span class="red">必须输入品牌</span>
<span class="red">必须输入品牌、店铺</span>
</div>
</td>
</tr>
... ...
... ... @@ -117,14 +117,13 @@
<div class="col-sm-5">
<div id="tree" style="width: 100%"></div>
</div>
<label class="col-sm-1 control-label">展示平台 <span class="red">*</span></label>
<div class="col-sm-2" style="margin-top: 3px">
<label class="radio-inline">
<input type="radio" name="appType" value="0">YOHO</label>
<label class="radio-inline">
<input type="radio" name="appType" value="1">BLK</label>
<input type="hidden" id="appType" name="appType" value="[[appType||'0']]" for="radio" required />
</div>
<span class="showPlatform" style="display: none">
<label class="col-sm-1 control-label">展示平台</label>
<div class="col-sm-2 checkbox" style="margin-top: 3px">
<label><input type="checkbox" name="appType" value="1" [[appType==1?'checked':'']]>BLK</label>
<input type="hidden" id="appType" name="appType" value="[[appType||'0']]" for="checkbox" />
</div>
</span>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">商品名称 <span class="red">*</span></label>
... ...
... ... @@ -61,6 +61,13 @@
</select>
</div>
<div class="panel-col">
<select id="appType" class="form-control">
<option value="-1">是否BLK商品</option>
<option value="1">是BLK</option>
<option value="0">非BLK</option>
</select>
</div>
<div class="panel-col">
<input type="text" id="factoryCode" class="form-control" placeholder="厂家编号" style="height: 39px;"/>
</div>
<div class="panel-col2">
... ...
... ... @@ -21,12 +21,12 @@
<div class="panel-body nopadding">
<div class="form-group">
<div class="col-sm-3">店铺:[[shopName]]</div>
<div class="col-sm-3">品牌:[[brandName]]</div>
<div class="col-sm-3">供应商:[[supplierName]]</div>
<div class="col-sm-4">店铺:[[shopName]]</div>
<div class="col-sm-4">品牌:[[brandName]]</div>
<div class="col-sm-4">供应商:[[supplierName]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">品类:
<div class="col-sm-4">品类:
[[if maxSortName]]
[[maxSortName]]
[[/if]]
... ... @@ -40,37 +40,38 @@
>[[sortName]]
[[/if]]
</div>
<div class="col-sm-3">货品年/季:[[goodsYears]] / [[goodsSeason]]</div>
<div class="col-sm-3">厂家编号:[[factoryCode]]</div>
<div class="col-sm-4">货品年/季:[[goodsYears]] / [[goodsSeason]]</div>
<div class="col-sm-4">厂家编号:[[factoryCode]]</div>
</div>
<div class="form-group">
<div class="col-sm-2">SKN[[productSkn]]</div>
<div class="col-sm-2">商品话题:[[productTag]]</div>
<div class="col-sm-4">SKN[[productSkn]]</div>
<div class="col-sm-4">商品话题:[[productTag]]</div>
<div class="col-sm-4">展示平台:[[appType]]</div>
</div>
<div class="form-group">
<div class="col-sm-2">商品名称:[[productName]]</div>
<div class="col-sm-2">商品类型:[[attribute]]</div>
<div class="col-sm-4">商品名称:[[productName]]</div>
<div class="col-sm-4">商品类型:[[attribute]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">年龄层:[[ageLevel]]</div>
<div class="col-sm-3">性别:[[gender]]</div>
<div class="col-sm-3">重点款:[[grade||""]]</div>
<div class="col-sm-4">年龄层:[[ageLevel]]</div>
<div class="col-sm-4">性别:[[gender]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">限量款:[[isLimited]]</div>
<div class="col-sm-4">限量款:[[isLimited]]</div>
<div class="col-sm-4">重点款:[[grade||""]]</div>
</div>
<div class="form-group">
<div class="col-sm-3">吊牌价:[[retailPrice]]</div>
<div class="col-sm-3">销售价:[[salesPrice]]</div>
<div class="col-sm-4">吊牌价:[[retailPrice]]</div>
<div class="col-sm-4">销售价:[[salesPrice]]</div>
</div>
<div class="form-group">
<div class="col-sm-2">预计上架时间:[[expectShelfTimeStr]]</div>
<div class="col-sm-2">预计到货时间:[[expectArrivalTimeStr]]</div>
<div class="col-sm-4">预计上架时间:[[expectShelfTimeStr]]</div>
<div class="col-sm-4">预计到货时间:[[expectArrivalTimeStr]]</div>
</div>
</div>
... ...
... ... @@ -95,7 +95,6 @@
<option value="0">已下架</option>
</select>
</div>
<div class="panel-col">
<select name="isJit" id="isJit" tabindex="-1" title="" class="form-control">
<option value="-1">是否JIT商品</option>
... ... @@ -104,22 +103,29 @@
</select>
</div>
<div class="panel-col">
<select id="appType" class="form-control">
<option value="-1">是否BLK商品</option>
<option value="1">是BLK</option>
<option value="0">非BLK</option>
</select>
</div>
<div class="panel-col">
<input type="text" id="factoryCode" class="form-control" placeholder="厂家编号" style="height: 39px;"/>
</div>
<div class="panel-col">
<a id="filter-btn" href="javascript:;" class="btn btn-info">筛选</a>
<a id="all-btn" href="" class="btn btn-info">全部</a>
</div>
</div>
<div class="row" style="margin: 0 0 0 -5px;">
<a id="onshelve" href="javascript:;" class="btn btn-info" >上架</a>
<a id="offshelve" href="javascript:;" class="btn btn-info">下架</a>
<a id="export-btn" href="javascript:;" class="btn btn-info">导出</a>
<a id="import-btn" href="/goods/netsale/batch" class="btn btn-info">批量(排序、款型系列)</a>
<div class="panel-col">
<a id="onshelve" href="javascript:;" class="btn btn-success" >上架</a>
<a id="offshelve" href="javascript:;" class="btn btn-danger">下架</a>
</div>
<div class="panel-col2">
<a id="export-btn" href="javascript:;" class="btn btn-primary">导出</a>
<a id="import-btn" href="/goods/netsale/batch" class="btn btn-primary">批量(排序、款型系列)</a>
</div>
</div>
</div>
</div>
<div class="panel">
<div class="panel-body nopadding">
... ...
... ... @@ -23,7 +23,8 @@ module.exports={
{name: 'orderBy', type: 'Number'},
{name: 'status', type: 'Number'},
{name: 'name', type: 'String'},
{name: 'advertCode', type: 'String'}
{name: 'advertCode', type: 'String'},
{name: 'appType', type: 'Number'}
]
},
addSort:{
... ... @@ -34,7 +35,8 @@ module.exports={
{name: 'orderBy', type: 'Number'},
{name: 'status', type: 'Number'},
{name: 'name', type: 'String'},
{name: 'advertCode', type: 'String'}
{name: 'advertCode', type: 'String'},
{name: 'appType', type: 'Number'}
]
},
delSort:{
... ...
... ... @@ -72,7 +72,6 @@ module.exports={
params: [
{name: 'status', type: 'Number'},
{name: 'idName', type: 'String'}
]
},
getCategoryNames:{
... ... @@ -99,7 +98,8 @@ module.exports={
{name:"url",type:"String"},
{name:"contentData",type:"String"},
{name:"brands",type:"String"},
{name:"tag",type:"String"}
{name:"tag",type:"String"},
{name:"appType",type:"Number"}
]
},
updateArticle:{
... ... @@ -120,7 +120,8 @@ module.exports={
{name:"url",type:"String"},
{name:"contentData",type:"String"},
{name:"brands",type:"String"},
{name:"tag",type:"String"}
{name:"tag",type:"String"},
{name:"appType",type:"Number"}
]
},
getDetail:{
... ... @@ -133,23 +134,6 @@ module.exports={
getTags:{
title: "获取标签列表",
url:'/guang/tags/getTags'
},
queryAllGoodsSort:{
title: "标签搜索,所有(没用到)",
apis: {
colorList: {
url: '/erpproduct/product/colorList'
},
materialList: {
url: '/erpproduct/attribute/index',
params: [{
name: 'status',
type: 'String',
def:1
}]
}
}
},
}
}
}
\ No newline at end of file
... ...
... ... @@ -28,7 +28,8 @@ module.exports={
{name: 'isHot', type: 'Number'},
{name: 'status', type: 'Number'},
{name: 'orderBy', type:'Number'},
{name: 'cover', type:'String'}
{name: 'cover', type:'String'},
{name:'appType',type:'Number'}
]
},
addTag:{
... ... @@ -40,7 +41,8 @@ module.exports={
{name: 'isHot', type: 'Number'},
{name: 'status', type: 'Number'},
{name: 'orderBy', type:'Number'},
{name: 'cover', type:'String'}
{name: 'cover', type:'String'},
{name:'appType',type:'Number'}
]
},
delTag:{
... ...
... ... @@ -45,6 +45,16 @@
</div>
<div class="form-group">
<label for="advertCode" class="col-sm-2 control-label">是否BLK</label>
<div class="col-sm-10">
<select class="form-control" id="appType" value="[[appType]]">
<option value="0"></option>
<option value="1"></option>
</select>
</div>
</div>
<div class="form-group">
<label for="status" class="col-sm-2 control-label" style="margin-top: 10px">是否启用:</label>
<div class="col-sm-10 radio">
<label><input type="radio" value="1" name="status" kl_vkbd_parsed="true">开启</label>
... ...
... ... @@ -34,6 +34,16 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">是否BLK:</label>
<div class="col-sm-8">
<select class="form-control" id="appType" value="[[appType]]">
<option value="0"></option>
<option value="1"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">文章分类:</label>
<!--文章分类-->
<div class="col-sm-2">
... ... @@ -69,6 +79,7 @@
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">文章摘要:</label>
... ...
... ... @@ -94,6 +94,17 @@
<input id="status" type="hidden" value="[[status]]" for="radio" kl_vkbd_parsed="true">
</div>
<div class="form-group">
<label class="col-sm-2 control-label">是否BLK:</label>
<div class="col-sm-8">
<select class="form-control" id="appType" value="[[appType]]">
<option value="0"></option>
<option value="1"></option>
</select>
</div>
</div>
<div class="form-group" style="margin-bottom: 0">
<label class="col-sm-2 control-label">上传图片:</label>
<div class="col-sm-offset-1 col-sm-9">
... ...
... ... @@ -4,7 +4,9 @@ module.exports= {
getAllHelpCategory:{
title:"所有帮助分类列表",
url:"/HelpCategoryRest/getAllHelpCategory",
params:[]
params:{
platform:{type:String}
}
},
addCategory:{
... ...
... ... @@ -5,6 +5,29 @@
<div style="margin-bottom: 20px">
<a class="btn btn-success" id="add-category"><i class="fa fa-plus"></i> 添加帮助分类</a>
</div>
<div class="panel-body">
<div class="form-group">
<div class="col-sm-3">
<select class="form-control observe noEdit" id="platform">
<option value="-1">品牌风格</option>
<option value="iphone">IOS手机</option>
<option value="ipad">IOS Pad</option>
<option value="android">安卓手机</option>
<option value="androidpad">安卓Pad</option>
<option value="h5">手机网站</option>
<option value="web">网站</option>
<option value="platform">平台</option>
<option value="BLK_APP">BLK_APP</option>
<option value="BLK_PC">BLK_PC</option>
</select>
</div>
<div class="panel-col">
<a id="filter-btn" href="javascript:;" class="btn btn-info">筛选</a>
<a id="all-btn" href="" class="btn btn-info">全部</a>
</div>
</div>
</div>
</div>
<div class="panel">
<div class="panel-body nopadding">
<div class="dataTables_wrapper no-footer" id="help_list"></div>
... ... @@ -40,6 +63,9 @@
<label style="cursor: pointer;"><input type="checkbox" name="platform" value="h5">手机网站</label>
<label style="cursor: pointer;"><input type="checkbox" name="platform" value="web">网站</label>
<label style="cursor: pointer;"><input type="checkbox" name="platform" value="platform">平台</label>
<label style="cursor: pointer;"><input type="checkbox" name="platform" value="BLK_APP">BLK_APP</label>
<label style="cursor: pointer;"><input type="checkbox" name="platform" value="BLK_PC">BLK_PC</label>
</div>
<input type="hidden" id="platform" value="{platform}" for="checkbox">
</div>
... ...
... ... @@ -39,7 +39,7 @@
</div>
<div class="form-group">
<label class="col-sm-2 control-label">店铺类型</label>
<label class="col-sm-2 control-label">部门</label>
<div class="col-sm-3">
<select class="form-control observe" value="[[department1]]"
data-field="department1">
... ... @@ -64,7 +64,7 @@
</div>
<div class="form-group">
<label class="col-sm-2 control-label">营业期限<span class="red">*</span></label>
<label class="col-sm-2 control-label">有效时间<span class="red">*</span></label>
<div class="col-sm-3">
<input type="text" class="form-control observe" jsaction="time:end:limitDateTo"
id="limitDateFrom"
... ...
... ... @@ -5,74 +5,74 @@
module.exports=function(app) {
// /*活动模板首页*/
// app.get("/operations/activitytemplate/index","operations.activitytemplate.Index", function () {
// this.$extend = {
// moduleName: "活动模板管理",
// pageName: "活动模板管理"
// }
// });
/*活动模板首页*/
app.get("/operations/activitytemplate/index","operations.activitytemplate.Index", function () {
this.$extend = {
moduleName: "活动模板管理",
pageName: "活动模板管理"
}
});
// /*活动模板添加页*/
// app.get("/operations/activitytemplate/add","operations.activitytemplate.Edit", "resourceManage_getUrlAction", function (response) {
// this.$extend = {
// moduleName: "活动模板管理",
// pageName: "添加活动模板",
// type: "add",
// url: "/activityTemplate/addTemplate",
// data: response.data
// }
// });
/*活动模板添加页*/
app.get("/operations/activitytemplate/add","operations.activitytemplate.Edit", "resourceManage_getUrlAction", function (response) {
this.$extend = {
moduleName: "活动模板管理",
pageName: "添加活动模板",
type: "add",
url: "/activityTemplate/addTemplate",
data: response.data
}
});
// /*活动模板编辑*/
// app.get("/operations/activitytemplate/edit/:id","operations.activitytemplate.Edit","resourceManage_getUrlAction", function (response,req) {
// this.$extend = {
// moduleName: "活动模板管理",
// pageName: "编辑活动模板",
// type: "edit",
// id: req.params.id,
// url: "/activityTemplate/updateTemplate",
// data: response.data
// }
// });
/*活动模板编辑*/
app.get("/operations/activitytemplate/edit/:id","operations.activitytemplate.Edit","resourceManage_getUrlAction", function (response,req) {
this.$extend = {
moduleName: "活动模板管理",
pageName: "编辑活动模板",
type: "edit",
id: req.params.id,
url: "/activityTemplate/updateTemplate",
data: response.data
}
});
// /*活动模板编辑*/
// app.get("/operations/activitytemplate/product/:id","operations.activitytemplate.Product", function (req) {
// this.$extend = {
// moduleName: "模板商品管理",
// pageName: "模板商品管理",
// id: req.params.id,
// url: req.originalUrl
// }
// });
/*活动模板编辑*/
app.get("/operations/activitytemplate/product/:id","operations.activitytemplate.Product", function (req) {
this.$extend = {
moduleName: "模板商品管理",
pageName: "模板商品管理",
id: req.params.id,
url: req.originalUrl
}
});
// /*查询模板列表接口*/
// app.post("/activityTemplate/selectTemplateList","activitytemplate_selectTemplateList");
/*查询模板列表接口*/
app.post("/activityTemplate/selectTemplateList","activitytemplate_selectTemplateList");
// /*添加模板接口*/
// app.post("/activityTemplate/addTemplate","activitytemplate_addTemplate");
/*添加模板接口*/
app.post("/activityTemplate/addTemplate","activitytemplate_addTemplate");
// /*获取单个模板接口*/
// app.post("/activityTemplate/getTemplate","activitytemplate_getTemplate");
/*获取单个模板接口*/
app.post("/activityTemplate/getTemplate","activitytemplate_getTemplate");
// /*更新模板接口*/
// app.post("/activityTemplate/updateTemplate","activitytemplate_updateTemplate");
/*更新模板接口*/
app.post("/activityTemplate/updateTemplate","activitytemplate_updateTemplate");
// /*开启模板接口*/
// app.post("/activityTemplate/publishTemplate","activitytemplate_publishTemplate");
/*开启模板接口*/
app.post("/activityTemplate/publishTemplate","activitytemplate_publishTemplate");
// /*关闭模板接口*/
// app.post("/activityTemplate/closeTemplate","activitytemplate_closeTemplate");
/*关闭模板接口*/
app.post("/activityTemplate/closeTemplate","activitytemplate_closeTemplate");
// /*根据条件查询活动商品列表接口*/
// app.post("/activityTemplate/getProductListByCondition","activitytemplate_getProductListByCondition");
/*根据条件查询活动商品列表接口*/
app.post("/activityTemplate/getProductListByCondition","activitytemplate_getProductListByCondition");
// /*插入活动商品信息接口*/
// app.post("/activityTemplate/insertProduct","activitytemplate_insertProduct");
/*插入活动商品信息接口*/
app.post("/activityTemplate/insertProduct","activitytemplate_insertProduct");
// /*更新商品信息接口*/
// app.post("/activityTemplate/updateProduct","activitytemplate_updateProduct");
/*更新商品信息接口*/
app.post("/activityTemplate/updateProduct","activitytemplate_updateProduct");
// /*删除商品信息接口*/
// app.post("/activityTemplate/delOneProduct","activitytemplate_delOneProduct");
/*删除商品信息接口*/
app.post("/activityTemplate/delOneProduct","activitytemplate_delOneProduct");
}
... ...
... ... @@ -5,29 +5,29 @@
module.exports=function(app) {
// /*图标管理首页*/
// app.get("/operations/icon/index","operations.icon.Index", function () {
// this.$extend = {
// moduleName: "图标管理",
// pageName: "图标管理"
// }
// });
/*图标管理首页*/
app.get("/operations/icon/index","operations.icon.Index", function () {
this.$extend = {
moduleName: "图标管理",
pageName: "图标管理"
}
});
// /*列表*/
// app.post("/icon/getList","icon_getList");
/*列表*/
app.post("/icon/getList","icon_getList");
// /*添加图标*/
// app.post("/icon/addIcon","icon_addIcon");
/*添加图标*/
app.post("/icon/addIcon","icon_addIcon");
// /*根据ID获取图标信息*/
// app.post("/icon/getOneIcon","icon_getOneIcon");
/*根据ID获取图标信息*/
app.post("/icon/getOneIcon","icon_getOneIcon");
// /*更新图标信息*/
// app.post("/icon/updateIcon","icon_updateIcon");
/*更新图标信息*/
app.post("/icon/updateIcon","icon_updateIcon");
// /*开启图标入口*/
// app.post("/icon/publishIcon","icon_publishIcon");
/*开启图标入口*/
app.post("/icon/publishIcon","icon_publishIcon");
// /*关闭图标信息入口*/
// app.post("/icon/closeIcon","icon_closeIcon");
/*关闭图标信息入口*/
app.post("/icon/closeIcon","icon_closeIcon");
}
\ No newline at end of file
... ...
... ... @@ -5,42 +5,42 @@
module.exports = function (app) {
// /*活动分享管理首页*/
// app.get("/operations/webshare/index", "operations.webshare.Index", function () {
// this.$extend = {
// moduleName: "活动分享管理",
// pageName: "活动分享列表管理"
// }
// });
/*活动分享管理首页*/
app.get("/operations/webshare/index", "operations.webshare.Index", function () {
this.$extend = {
moduleName: "活动分享管理",
pageName: "活动分享列表管理"
}
});
// /*添加活动分享页面*/
// app.get("/operations/webshare/add", "operations.webshare.Edit", function () {
// this.$extend = {
// moduleName: "活动分享管理",
// pageName: "添加活动分享",
// url: "/webShare/addWebShare"
// }
// });
/*添加活动分享页面*/
app.get("/operations/webshare/add", "operations.webshare.Edit", function () {
this.$extend = {
moduleName: "活动分享管理",
pageName: "添加活动分享",
url: "/webShare/addWebShare"
}
});
// /*编辑活动分享*/
// app.get("/operations/webshare/edit/:id", "operations.webshare.Edit", function (req) {
// this.$extend = {
// moduleName: "活动分享管理",
// pageName: "编辑活动分享",
// id: req.params.id,
// url: "/webShare/updateWebShare"
// }
// });
/*编辑活动分享*/
app.get("/operations/webshare/edit/:id", "operations.webshare.Edit", function (req) {
this.$extend = {
moduleName: "活动分享管理",
pageName: "编辑活动分享",
id: req.params.id,
url: "/webShare/updateWebShare"
}
});
// /*首页列表*/
// app.post("/webShare/getWebShareList", "webshare_getWebShareList");
/*首页列表*/
app.post("/webShare/getWebShareList", "webshare_getWebShareList");
// /*新增活动分享 [注意在shareImage加上客户端需要的imageView参数]*/
// app.post("/webShare/addWebShare", "webshare_addWebShare");
/*新增活动分享 [注意在shareImage加上客户端需要的imageView参数]*/
app.post("/webShare/addWebShare", "webshare_addWebShare");
// /*更新活动分享*/
// app.post("/webShare/updateWebShare", "webshare_updateWebShare");
/*更新活动分享*/
app.post("/webShare/updateWebShare", "webshare_updateWebShare");
// /*根据id查询数据*/
// app.post("/webShare/selectWebShare", "webshare_selectWebShare");
/*根据id查询数据*/
app.post("/webShare/selectWebShare", "webshare_selectWebShare");
}
\ No newline at end of file
... ...
... ... @@ -5,23 +5,23 @@
module.exports=function(app) {
// /*图片包首页*/
// app.get("/operations/icon/ziplist","operations.ziplist.Index", function () {
// this.$extend = {
// moduleName: "图片包管理",
// pageName: "图片包管理"
// }
// });
/*图片包首页*/
app.get("/operations/icon/ziplist","operations.ziplist.Index", function () {
this.$extend = {
moduleName: "图片包管理",
pageName: "图片包管理"
}
});
// /*列表*/
// app.post("/icon/getZipList","ziplist_getZipList");
/*列表*/
app.post("/icon/getZipList","ziplist_getZipList");
// /*上传图片包*/
// app.post("/icon/addZip","ziplist_addZip");
/*上传图片包*/
app.post("/icon/addZip","ziplist_addZip");
// /*启用图片包*/
// app.post("/icon/publishZip","ziplist_publishZip");
/*启用图片包*/
app.post("/icon/publishZip","ziplist_publishZip");
// /*关闭图片包*/
// app.post("/icon/closeZip","ziplist_closeZip");
/*关闭图片包*/
app.post("/icon/closeZip","ziplist_closeZip");
}
\ No newline at end of file
... ...
... ... @@ -9,7 +9,7 @@
<input id="uploadBox" name="file" type="file" style="position: absolute; top: 0;left: 0;z-index: -999">
<div id="chooseFile" class="file-name btn btn-success">上传商品</div>
<a href="/operations/activitytemplate/index" class="btn btn-default">返回</a>
<p style="color: #999">注:上传.xls文件</p>
<p style="color: #999">注:上传 2007 以上版本 .xlsx 文件,含有头部。<a href="/ajax/link/productActvityTemplate">【模板下载】</a></p>
</div>
</div>
</div>
... ...
... ... @@ -1413,7 +1413,7 @@
</div>
<div class="form-group">
<div class="col-sm-10">
<input type="text" placeholder="图片描述" value="[[item.title]]" class="observe form-control" data-field="list.[[index]].title"/>
<input type="text" placeholder="图片描述" value="[[item.alt]]" class="observe form-control" data-field="list.[[index]].alt"/>
</div>
</div>
</td>
... ...
... ... @@ -42,6 +42,26 @@
[[/each]]
</div>
[[else if module.contentData.template_name=='blkBrand']]
<div class="form-group">
[[each module.contentData.data.list as item i]]
[[if i<=2]]
<div class="col-sm-3">
<img src="[[item.src]]" title="[[item.productName]]">
</div>
<div class="col-sm-3">
[[item.productName]]
</div>
[[/if]]
[[/each]]
</div>
[[else if module.contentData.template_name=='titleFloor']]
<div class="col-sm-12">
<div class="wordText">
<span>[[module.contentData.data.title.name]]</span>
<div style="float: right;">[[module.contentData.data.title.more_name]]</div>
</div>
</div>
<%include 'taoyu2'%>
[[/if]]
<div class="actions-box">
... ... @@ -483,4 +503,93 @@
[[/each]]
[[/each]]
</div>
</script>
\ No newline at end of file
</script>
<!--LBK-->
<script type="text/template" id="blkBrand-template">
<div class="form-group">
<div class="col-sm-12">
<label>标题:</label>
<input type="text" placeholder="标题" class="observe form-control input-form" data-field="title" value="[[contentData.data.title]]" style="width:100px;">
&emsp;
<label>显示名称: </label>
<input type="radio" name="is_show_name2" class="is_show_name2" value="Y" [[contentData.data.is_show_name=="Y"?"checked":""]]>
<input type="radio" name="is_show_name2" class="is_show_name2" value="N" [[contentData.data.is_show_name=="N"?"checked":""]]> &emsp;
<input type="hidden" id="is_show_name2" for="radio" value="[[contentData.data.is_show_name]]" />
<label>每行显示:</label>
<input style="width:60px;" type="text" data-field="number" class="observe number form-control input-form" value="[[contentData.data.number]]"> 张图片
</div>
</div>
<p><input type="button" name="select-pic" class="btn btn-info btn-xs addBtn" value="添加图片" style="margin:10px;" data-event="blkBrand.list"></p>
[[if contentData.data.list.length]]
<ul class="draggable" data-array="data.list">
[[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 type="file" name="file" value="[[item.src]]" class="observe" data-field="list.[[index]].src" required/></td>
<td>
<div class="form-group">
<div class="col-sm-10">
<select name="goTo" class="observe form-control" value="[[item.url.action]]" data-field="list.[[index]].url.action">
[[layout action_template]]
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<input type="text" placeholder="url" value="[[item.url.url]]" class="observe form-control" required="required" data-field="list.[[index]].url.url"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<input type="text" placeholder="品牌或者商品名称" value="[[item.productName]]" class="observe form-control" data-field="list.[[index]].productName"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<input type="text" placeholder="品牌或者商品描述" value="[[item.productDesc]]" class="observe form-control" data-field="list.[[index]].productDesc"/>
</div>
</div>
</td>
<td><button class="btn btn-danger btn-sm delBtn" data-event="list" type="button" data-index="[[index]]">删除</button></td>
</tr>
</tbody>
</table>
</li>
[[/each]]
</ul>
[[/if]]
</script>
<!-- 9-1 标题标签 -->
<script type="text/template" id="titleFloor-template">
<div class="rows">
<div class="form-group ">
<div class="col-sm-6">
<label>标题名称</label>&emsp;&emsp;
<input class="form-control observe input-form" placeholder="标题名称" type="text" value="[[contentData.data.title.name]]" data-field="title.name" required>
</div>
<div class="col-sm-6">
<label>更多名称</label>&emsp;&emsp;
<input class="form-control observe input-form" type="text" placeholder="更多名称" value="[[contentData.data.title.more_name]]" data-field="title.more_name">
</div>
</div>
<div class="form-group ">
<div class="col-sm-6">
<label>跳转目的</label>&emsp;&emsp;
<select name="goTo" class="form-control observe input-form" value="[[contentData.data.title.more_url.action]]" data-field="title.more_url.action">
[[layout action_template]]
</select>
</div>
<div class="col-sm-6">
<label>链接</label>&emsp;&emsp;&emsp;&emsp;
<input value="[[contentData.data.title.more_url.url]]" class="form-control observe input-form" data-field="title.more_url.url" placeholder="url"/>
<p style="color:#999;margin-top: 5px;">注:链接中不能有英文单引号</p>
</div>
</div>
</div>
</script>
... ...
<template>
<com-pageheader :module-name="'店铺管理'" :page-name="'店铺销售类目管理'"></com-pageheader>
addadasdasdasd
<div class="contentpanel">
<div class="panel">
<div class="chooseShop">
<div class="shopSelect">
<com-selection :url="selectUrl" :selected-data="{id:shopId,text:shopName}" :placeholder="'请选择店铺'"></com-selection>
</div>
<div class="shopInfo">
<span @click=''>店铺ID:<b>{{showShopId}}</b></span>
<span>店铺名称:<b>{{showShopName}}</b></span>
</div>
<div class="clearfix"></div>
</div>
<div class="panel-body">
<div v-show="shopId > 0" class="showCategory">
<div class="addCategory">
<a class="btn btn-success addBtn" @click="goEdit()"><i class="fa fa-plus"></i> 新增销售类目</a>
<span class="addTips">
当前店铺共有:<b>{{categoryNum}}</b>条销售类目,<em>最多可以添加20条</em>
</span>
</div>
<div class="categoryList">
<com-grid :columns="grid.columns" :url="grid.url" :pageAble="false"></com-grid>
</div>
</div>
<h1 v-show="shopId < 0" class="initCategory">请先选择相关店铺!</h1>
</div>
</div>
</div>
</template>
<script>
import pageheader from '../../../../components/pageheader/index';
import grid from '../../../../components/grid/index';
import selection from '../../../../components/selection/index';
</script>
\ No newline at end of file
export default{
components: {
comPageheader: pageheader,
comGrid: grid,
comSelection: selection
},
vuex:{
getters: {
stateData : function (state) {
return {state}=state;
}
},
actions: {
setShop : function ({dispatch},{id,name}) {
dispatch("SETSHOP",{id,name})
}
}
},
data(){
return {
shopId: -11,
shopName: '-3-',
selectUrl: '/ShopsRest/selectCheckPassShopsByName',
categoryNum: 0,
grid: {
url: '/shops/shopsCategoryList',
columns: [
{display: '类目ID', name: 'id'},
{display: '类目名称', name: 'name'},
{display: '创建时间', name: 'time'},
{display: '已关联商品数量', name: 'num'},
{display: '操作', render: function (item) {
return "<a href='/shop/shopCategory/edit/[[item.id]]' class='btn btn-xs btn-primary'>编辑</a>"
+ "<a href='/shop/shopCategory/info/[[item.id]]' class='btn btn-xs btn-info'>查看</a>"
+ "<a href='javascript:' class='btn btn-xs btn-danger deleteBtn' data-index='" + item.index + "'>删除</a>"
}}
]
}
}
},
computed: {
showShopId(){
return this.shopId > 0 ? this.shopId : "--";
},
showShopName(){
return this.shopId > 0 ? this.shopName : "--";
}
},
ready(){
this.initShop();
},
methods: {
initShop(){
if(this.stateData.shopId > 0){
this.shopId = this.stateData.shopId;
this.shopName = this.stateData.shopName;
}
},
getCategoryList(){
this.$broadcast('grid-reload',{shop_id:this.shopId});
},
goAdd(){
this.$router.go({name:'add'});
},
goEdit(){
this.$router.go({name:'edit',params:{
shopId:this.shopId,
shopName:this.shopName
}});
}
},
events: {
completeSelect(data){
this.shopId = data.id;
this.shopName = data.text;
this.setShop({id:data.id, name:data.text});
//this.getCategoryList();
},
completeGrid(data){
this.categoryNum = data.length;
}
}
}
</script>
<style>
.shopSelect, .shopInfo {
float: left
}
.shopInfo {
font-family: 'microsoft yahei';
font-size: 18px;
line-height: 40px;
float: left;
margin-left: 40px;
}
.shopInfo span {
color: #999;
margin-right: 20px
}
.shopInfo b {
color: #585858
}
.panel-body {
background: #eeeeee;
margin-top: 20px
}
.addCategory {
margin-bottom: 20px;
}
.addTips {
float: right;
font-size: 16px;
line-height: 37px;
font-family: 'simhei'
}
.addTips b {
color: #5cb85c;
font-size: 20px;
margin: 0 5px
}
.addTips em {
color: #f0ad4e;
font-style: normal
}
.initCategory {
height: 500px;
text-align: center;
line-height: 500px;
color: #999999
}
</style>
\ No newline at end of file
... ...
<template>
<com-pageheader :module-name="'店铺管理'" :page-name="'店铺销售类目管理'" :sub-page-name="'店铺销售类目管理详情'"></com-pageheader>
<div class="contentpanel">
<div class="panel">
<div class="chooseShop">
<div class="shopSelect">
<com-selection :disabled="true" :selected-data="{id:shopId,text:shopName}"></com-selection>
</div>
<div class="shopInfo">
<span>店铺ID:<b>{{stateData.shopId}}</b></span>
<span>店铺名称:<b>{{stateData.shopName}}</b></span>
</div>
<div class="clearfix"></div>
</div>
<div class="panel-body">
<div class="setCategoryName form-inline">
<div class="form-group">
<label>销售类目名称:</label>
<input type="text" class="form-control" v-model="categoryName" />
</div>
<div class="submit form-group">
<a href="javascript:" class="btn btn-success btn-save" @click="">保存</a>
<a href="javascript:" class="btn btn-default" @click="back()">返回</a>
</div>
</div>
<com-tab :rows="tab.rows" :active.sync="tab.active"></com-tab>
<div class="productList">
<div class="listFilter form-inline">
<input type="text" class="form-control" placeholder="SKN" v-model="params.produckSkn" />
<input type="text" class="form-control" placeholder="商家编码" v-model="params.factoryId" />
<a href="javascript:" class="btn btn-info" @click="open()">查询</a>
<a v-show="tab.active==1" href="javascript:" class="btn btn-warning" @click="" style="float: right">全部取消</a>
</div>
<div v-show="tab.active==0">
<com-grid :columns="allGrid.columns" :url="allGrid.url"></com-grid>
</div>
<div v-show="tab.active==1">
<com-grid :columns="selectedGrid.columns" :url="selectedGrid.url"></com-grid>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import pageheader from '../../../../components/pageheader/index';
import selection from '../../../../components/selection/index';
import tab from '../../../../components/tab/index';
import grid from '../../../../components/grid/index';
import common from '../../../../static/js.jquery/common/common';
export default{
components: {
comPageheader: pageheader,
comSelection: selection,
comTab: tab,
comGrid: grid
},
vuex:{
getters: {
stateData : function (state) {
console.log(state);
return {state}=state;
}
}
},
data() {
return {
shopId: -1,
shopName: '--',
categoryName:'123',
tab:{
rows:[{name:"全部"}, {name:"已选"}],
active:0
},
params:{
produckSkn:'',
factoryId:''
},
allGrid:{
url: '',
columns: [
{display: '商品图片', name: 'id'},
{display: 'SKN', name: 'name'},
{display: '商品名称', name: 'time'},
{display: '销售价(元)', name: 'num'},
{display: '分类', name: 'num'},
{display: '操作', render: function (item) {
return "<a href='javascript:' class='btn btn-xs btn-primary'>选择</a>";
}}
]
},
selectedGrid:{
url: '',
columns: [
{display: '商品图片', name: 'id'},
{display: 'SKN', name: 'name'},
{display: '商品名称', name: 'time'},
{display: '销售价(元)', name: 'num'},
{display: '分类', name: 'num'},
{display: '操作', render: function (item) {
return "<a href='javascript:' class='btn btn-xs btn-danger'>取消选择</a>";
}}
]
}
}
},
ready(){
this.initShop();
this.eventBlind();
},
methods: {
initShop(){
console.log(this.stateData);
this.shopId = this.stateData.shopId;
this.shopName = this.stateData.shopName;
},
open(){
common.dialog.confirm(this.currentShop.text,"2",function () {},function(){})
},
back(){
this.$router.go({name:'index'});
},
eventBlind(){
$(document).on('click','.btn-save', function () {
alert(1);
})
}
}
}
</script>
<style>
.shopSelect, .shopInfo {
float: left
}
.shopInfo {
font-family: 'microsoft yahei';
font-size: 18px;
line-height: 40px;
float: left;
margin-left: 40px;
}
.shopInfo span {
color: #999;
margin-right: 20px
}
.shopInfo b {
color: #585858
}
.panel-body {
background: #eeeeee;
margin-top: 20px
}
.setCategoryName{
margin-bottom: 20px;
}
.setCategoryName label{
font-size: 14px;
}
.productList{
background: #FFFFFF;
padding: 20px;
}
.nav-tabs{
border: 0;
}
.nav-tabs a{
border:0;
}
.listFilter{
margin-bottom: 20px;
}
.listFilter .form-control{
margin-right: 10px;
}
.submit{
float: right;
}
</style>
... ...
var Vue = require("vue");
Vue.use(require('vue-resource'));
var VueRouter = require('vue-router');
var VueResource = require('vue-resource');
var store = require('./vuex/store').default;
new Vue({
el: 'body',
components: {
app:require("./app.vue")
Vue.use(VueResource);
Vue.use(VueRouter);
var App = Vue.extend({
store:store
});
var router = new VueRouter({
hashbang: true,
history: false
});
router.map({
'/': {
name:"index",
component: require("./app.vue")
},
'/add': {
name:"add",
component: require("./edit.vue")
},
'/edit': {
name:"edit",
component: require("./edit.vue")
},
'/info': {
name:"info",
component: require("./info.vue")
}
});
router.start(App, 'body');
... ...
<template>
<com-pageheader :module-name="'店铺管理'" :page-name="'店铺销售类目管理'" :sub-page-name="'店铺销售类目管理详情'"></com-pageheader>
<div class="contentpanel">
<div class="panel">
<div class="chooseShop">
<div class="shopSelect">
<com-selection :disabled="true" :selected-data="currentShop"></com-selection>
</div>
<div class="shopInfo">
<span>店铺ID:<b>{{currentShop.id}}</b></span>
<span>店铺名称:<b>{{currentShop.text}}</b></span>
</div>
<div class="clearfix"></div>
</div>
<div class="panel-body">
</div>
</div>
</div>
</template>
<script>
import pageheader from '../../../../components/pageheader/index';
import selection from '../../../../components/selection/index';
export default{
components: {
comPageheader: pageheader,
comSelection: selection
},
data() {
return {
currentShop:{id:10,text:"淋淋店"}
}
}
}
</script>
<style>
.shopSelect, .shopInfo {
float: left
}
.shopInfo {
font-family: 'microsoft yahei';
font-size: 18px;
line-height: 40px;
float: left;
margin-left: 40px;
}
.shopInfo span {
color: #999;
margin-right: 20px
}
.shopInfo b {
color: #585858
}
.panel-body {
background: #eeeeee;
margin-top: 20px
}
</style>
... ...
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);
const state = {
shopId: -1,
shopName: '--'
};
const mutations = {
SETSHOP(state,{id,name}){
state.shopId = id;
state.shopName = name;
}
};
export default new Vuex.Store({
state,
mutations
})
\ No newline at end of file
... ...
... ... @@ -28,6 +28,9 @@ module.exports = function (app){
//店铺装修审核列表
app.post("/supplier/store/ajax/shenhezx","shopAudit_findAuditShopsDecorator");
//店铺装修审核
//yoho店铺装修审核通过,驳回
app.post("/shop/ShopsDecoratorRest/auditShopsDecorator","shopAudit_auditShopsDecorator");
//blk店铺装修审核通过,驳回
app.post("/shop/ShopsDecoratorRest/auditBlkShopsDecorator","shopAudit_auditBlkShopsDecorator");
}
\ No newline at end of file
... ...
module.exports = function (app){
app.get("/shop/shopCategory/index222", "shop.ShopCategory.Index", function (req,res){
app.get("/shop/shopCategory/index", "shop.ShopCategory.Index", function (req,res){
this.$extend={
moduleName:"店铺管理",
pageName:"店铺销售类目管理"
}
});
app.vue("/shop/shopCategory/index", "shop.ShopCategory", function (req,res){
app.get("/shop/shopCategory/index/:shopId", "shop.ShopCategory.Index", function (req,res){
this.$extend={
moduleName:"店铺管理",
pageName:"店铺销售类目管理"
}
});
app.get("/shop/shopCategory/add", "shop.ShopCategory.Info", function (rs,req,res){
app.get("/shop/shopCategory/edit/:shopId/:categoryId/", "shop.ShopCategory.Edit", ["shopCategory_selectShopNameById", "shopCategory_selectCategoryNameById"], function (rs1, rs2){
this.$extend={
moduleName:"店铺管理",
pageName:"店铺销售类目管理",
subPageName:"新增店铺销售类目"
subPageName:"店铺销售类目编辑",
shopName: rs1.data,
categoryName: rs2.data
}
});
app.get("/shop/shopCategory/info/:shopId", "shop.ShopCategory.Info", function (rs,req,res){
app.get("/shop/shopCategory/info/:shopId/:categoryId/", "shop.ShopCategory.Info", ["shopCategory_selectShopNameById", "shopCategory_selectCategoryNameById"], function (rs1, rs2){
this.$extend={
moduleName:"店铺管理",
pageName:"店铺销售类目管理",
subPageName:"店铺销售类目详情"
subPageName:"店铺销售类目详情",
shopName: rs1.data,
categoryName: rs2.data
}
});
app.get("/shop/shopCategory/edit/:shopId", "shop.ShopCategory.Edit", function (rs,req,res){
/*****************************Vue单页面写法*****************************/
app.vue("/shop/shopCategory", "shop.ShopCategory", function (req,res){
this.$extend={
moduleName:"店铺管理",
pageName:"店铺销售类目管理",
subPageName:"店铺销售类目编辑"
pageName:"店铺销售类目管理"
}
});
//店铺列表(公共)
// app.post("","");
//根据店铺ID获取店铺名称
app.post("/shops/shopCategory/getShopName","shopCategory_selectShopNameById");
//店铺销售类目列表
app.post("/shops/shopCategory/list","shopCategory_shopsCategoryList");
//新增店铺销售类目
app.post("/shops/shopCategory/add","shopCategory_insertShopsAndLinkCategory");
//编辑店铺销售类目
app.post("/shops/shopCategory/update","shopCategory_updateShopsAndLinkCategory");
//删除店铺销售类目
app.post("/shops/shopCategory/delete","shopCategory_deleteShopsCategory");
//获取店铺下该类目所有商品接口
app.post("/shops/shopCategory/allProducts","shopCategory_selectAllProduct");
//获取店铺下该类目已选商品接口
app.post("/shops/shopCategory/selectedProducts","shopCategory_selectCheckedProduct");
//选择关联
app.post("/shops/shopCategory/link","shopCategory_insertProductLinkCategory");
//取消选择
app.post("/shops/shopCategory/unlink","shopCategory_deleteProductLinkCategory");
//全部取消选择
app.post("/shops/shopCategory/unlinkAll","shopCategory_deleteAllProductLinkedCategory");
}
... ...
module.exports = function (app) {
/******************************店铺管理列表*************************************/
app.get("/supplier/shop/decoration", "shop.DecorationList", function (req,res){
this.$extend={
moduleName:"店铺管理",
... ... @@ -7,21 +9,30 @@ module.exports = function (app) {
};
});
app.get("/supplier/store/decorationDetail/:shopsId/:shopType/:shopsType/:id/", "shop.Decoration");
//店铺列表
app.post("/shop/ShopsDecoratorRest/findShopsDecorator","shopDecoration_findShopsDecorator");
//关店
//yoho关店
app.post("/supplier/store/closeShops","shopDecoration_closeShops");
//开店
//yoho开店
app.post("/supplier/store/openShops","shopDecoration_openShops");
//店铺装修详情
//blk关店
app.post("/supplier/store/closeBlkShops","shopDecoration_closeBlkShops");
//blk开店
app.post("/supplier/store/openBlkShops","shopDecoration_openBlkShops");
/******************************yoho装修*************************************/
//yoho店铺装修,编辑,查看,审核
app.get("/supplier/store/decorationDetail/:shopsId/:shopType/:operate/", "shop.Decoration");
//yoho店铺装修详情
app.post("/shop/ShopsDecoratorRest/findShopsDecoratorDetail","shopDecoration_findShopsDecoratorDetail");
//店铺装修保存
//yoho店铺装修保存,提交审核
app.post("/shop/ShopsDecoratorRest/saveShopsDecorator","shopDecoration_saveShopsDecorator");
//热销
... ... @@ -30,5 +41,30 @@ module.exports = function (app) {
//最新
app.post("/shop/ShopsDecoratorRest/findNewProductList","shopDecoration_findNewProductList");
/******************************BLK装修*************************************/
//blk店铺装修编辑
app.get("/shop/decoration/blkEdit/:shopsId", "shop.DecorationBLK", "shopDecoration_findBlkShopsDecoratorDetail", function (data,req,res){
data.operation = 1;
return data;
});
//blk店铺装修查看
app.get("/shop/decoration/blkView/:shopsId", "shop.DecorationBLK", "shopDecoration_findBlkShopsDecoratorDetail", function (data,req,res){
data.operation = 0;
return data;
});
//blk店铺装修审核
app.get("/shop/decoration/blkCheck/:shopsId", "shop.DecorationBLK", "shopDecoration_findBlkShopsDecoratorDetail", function (data,req,res){
data.operation = 2;
return data;
});
//BLK店铺装修保存,提交审核
app.post("/shop/decoration/saveBlkShopsDecorator","shopDecoration_saveBlkShopsDecorator");
//获取店铺下的BLK商品
app.post("/shop/decoration/findBlkProductByShopsId","shopDecoration_findBlkProductByShopsId");
}
\ No newline at end of file
... ...
... ... @@ -34,19 +34,29 @@ module.exports={
params:[
{name: 'supplierId', type: 'Number'},
{name: 'brandId', type: 'Number'},
{name: 'checkStatus', type: 'Number'}
{name: 'checkStatus', type: 'Number'},
{name: 'blkCheckStatus', type: 'Number'}
]
},
auditShopsDecorator:{
title:"店铺装修审核",
title:"yoho店铺装修审核通过,驳回",
url:"/ShopsDecoratorRest/auditShopsDecorator",
params:[
{name: 'id', type: 'Number'},
{name: 'shopsId', type: 'Number'},
{name: 'checkStatus', type: 'Number'},
{name: 'comment', type: 'String'}
]
},
auditBlkShopsDecorator:{
title:"blk店铺装修审核通过,驳回",
url:"/ShopsDecoratorRest/auditBlkShopsDecorator",
params:[
{name: 'shopsId', type: 'Number'},
{name: 'blkCheckStatus', type: 'Number'},
{name: 'blkComment', type: 'String'}
]
}
}
}
}
\ No newline at end of file
... ...
module.exports={
namespace:"shopCategory",
apis:{
selectShopNameById:{
title:"根据ID获取店铺名称或者类目名称",
url:"/ShopsSalesCategoryRest/selectNameById",
params:[
{name:"shopId",type:"Number"}
]
},
selectCategoryNameById:{
title:"根据ID获取店铺名称或者类目名称",
url:"/ShopsSalesCategoryRest/selectNameById",
params:[
{name:"categoryId",type:"Number"}
]
},
shopsCategoryList:{
title:"店铺销售类目列表",
url:"/ShopsSalesCategoryRest/shopsCategoryList",
params:[
{name:"shopId",type:"Number"}
]
},
insertShopsAndLinkCategory:{
title:"新增店铺销售类目",
url:"/ShopsSalesCategoryRest/insertShopsAndLinkCategory",
params:[
{name:"shopId",type:"Number"},
{name:"categoryName",type:"String"}
]
},
updateShopsAndLinkCategory:{
title:"编辑店铺销售类目",
url:"/ShopsSalesCategoryRest/updateShopsAndLinkCategory",
params:[
{name:"shopId",type:"Number"},
{name:"categoryId",type:"Number"},
{name:"categoryName",type:"String"}
]
},
deleteShopsCategory:{
title:"删除店铺销售类目",
url:"/ShopsSalesCategoryRest/deleteShopsCategory",
params:[
{name:"shopId",type:"Number"},
{name:"categoryId",type:"Number"}
]
},
selectAllProduct:{
title:"获取店铺下该类目所有商品接口",
url:"/ShopsSalesCategoryRest/selectAllProduct",
params:[
{name:"shopId",type:"Number"},
{name:"categoryId",type:"Number"},
{name:"productSKN",type:"Number"},
{name:"factoryCode",type:"String"},
{name:"page",type:"Number"}
]
},
selectCheckedProduct:{
title:"获取店铺下该类目已选商品接口",
url:"/ShopsSalesCategoryRest/selectCheckedProduct",
params:[
{name:"shopId",type:"Number"},
{name:"categoryId",type:"Number"},
{name:"productSKN",type:"Number"},
{name:"factoryCode",type:"String"},
{name:"page",type:"Number"}
]
},
insertProductLinkCategory:{
title:"单个将商品关联类目",
url:"/ShopsSalesCategoryRest/insertProductLinkCategory",
params:[
{name:"categoryId",type:"Number"},
{name:"productSKN",type:"Number"}
]
},
deleteProductLinkCategory:{
title:"单个将商品取消与类目的关联",
url:"/ShopsSalesCategoryRest/deleteProductLinkCategory",
params:[
{name:"categoryId",type:"Number"},
{name:"productSKN",type:"Number"}
]
},
deleteAllProductLinkedCategory:{
title:"取消所有商品与类目的关联关系",
url:"/ShopsSalesCategoryRest/deleteAllProductLinkedCategory",
params:[
{name:"categoryId",type:"Number"}
]
}
}
}
... ...
... ... @@ -10,14 +10,15 @@
{name: 'page', type: 'number'},
{name: 'size', type: 'number'},
{name: 'shopsId', type: 'number'},
{name: 'checkStatus', type: 'number'},
{name: 'checkStatus', type: 'number'},
{name: 'blkCheckStatus', type: 'number'},
{name: 'supplierId', type: 'number'},
{name: 'brandId', type: 'number'}
]
},
closeShops:{
title:"关店",
title:"yoho关店",
url:"/ShopsRest/closeShops",
params: [
{name:"shopsId",type:"Number"}
... ... @@ -25,12 +26,28 @@
},
openShops:{
title:"开店",
title:"yoho开店",
url:"/ShopsRest/openShops",
params: [
{name:"shopsId",type:"Number"}
]
},
closeBlkShops:{
title:"blk关店",
url:"/ShopsRest/closeBlkShops",
params: [
{name:"shopsId",type:"Number"}
]
},
openBlkShops:{
title:"blk开店",
url:"/ShopsRest/openBlkShops",
params: [
{name:"shopsId",type:"Number"}
]
},
/*****************店铺装修详情*********************/
... ... @@ -70,6 +87,40 @@
{name: 'shopsId', type: 'Number'},
{name: 'size', type: 'Number'}
]
},
/*****************BLK店铺装修详情*********************/
findBlkShopsDecoratorDetail:{
title:"BLK店铺装修详情",
url:"/ShopsDecoratorRest/findBlkShopsDecoratorDetail",
params:[
{name: 'shopsId', type: 'Number'}
]
},
saveBlkShopsDecorator:{
title:"保存BLK店铺装修信息",
url:"/ShopsDecoratorRest/saveBlkShopsDecorator",
params:[
{name: 'shopsId', type: 'Number'},
{name: 'platform', type: 'String'},
{name: 'templateName', type: 'String'},
{name: 'templateType', type: 'Number'},
{name: 'resources', type: 'String'},
{name: 'appType', type: 'Number'},
{name: 'submitStatus', type: 'Number'}
]
},
findBlkProductByShopsId:{
title:"获取店铺下的BLK商品",
url:"/ShopsDecoratorRest/findBlkProductByShopsId",
params:[
{name: 'shopsId', type: 'Number'},
{name: 'productSkn', type: 'Number'},
{name: 'size', type: 'number'}
]
}
}
}
\ No newline at end of file
... ...
... ... @@ -358,4 +358,37 @@
</div>
</script>
<script type="text/template" id="link">
<select class="form-control inputChange linkSelect" name="linkType" style="margin-bottom: 10px" data-index='[[index]]'>
<option value="0" [[data.linkType==0?'selected':'']]>自定义</option>
<option value="1" [[data.linkType==1?'selected':'']]>销售类目</option>
</select>
[[if data.linkType == 0]]
<div class="link_url">
<input class='form-control inputChange urlInput' type=text name='url' value='[[data.url]]' data-index='[[index]]' />
</div>
<div class="link_category" style="display: none">
<select class="form-control inputChange" name='categoryId' data-index='[[index]]'>
<option value="-1">-- 请选择销售类目 --</option>
[[each categoryList as item _index]]
<option value="[[item.categoryId]]" [[data.categoryId==item.categoryId?'selected':'']]>[[item.categoryName]]</option>
[[/each]]
</select>
</div>
[[else]]
<div class="link_url" style="display: none">
<input class='form-control inputChange urlInput' type=text name='url' value='[[data.url]]' data-index='[[index]]' />
</div>
<div class="link_category">
<select class="form-control inputChange" name='categoryId' data-index='[[index]]'>
<option value="-1">-- 请选择销售类目 --</option>
[[each categoryList as item _index]]
<option value="[[item.categoryId]]" [[data.categoryId==item.categoryId?'selected':'']]>[[item.categoryName]]</option>
[[/each]]
</select>
</div>
[[/if]]
</script>
<%include '../../common/views/__ui/footer'%>
\ No newline at end of file
... ...
<%include '../../common/views/__ui/header'%>
<div class="tabheader">
<ul class="nav nav-tabs">
<li data-template="1" class="active"><a href="javascript:">默认模板</a></li>
</ul>
</div>
<div class="pageheader">
<div class="media">
<div class="pageicon pull-left">
<i class="fa fa-th-list"></i>
</div>
<div class="media-body">
<ul class="breadcrumb" style="font-family: 'Microsoft YaHei'">
<li><a href="javascript:"><i class="glyphicon glyphicon-home"></i></a></li>
<li><a href="javascript:">店铺管理</a></li>
<li>店铺装修管理</li>
</ul>
<div style="padding-right: 60px">
<div class="col-sm-4" style="padding-left: 0; font-family: 'Microsoft YaHei'">
<h4 style="line-height: 30px;font-size: 24px;margin-top: 2px">BLK装修模板</h4>
</div>
<div class="col-sm-4">
<div class="platformView" style="text-align: center">
<label class="radio-inline"><input type="radio" name="Platform" value="pc" checked>PC端</label>
<label class="radio-inline" style="margin-left: 30px;"><input type="radio" name="Platform" value="app">APP端</label>
</div>
</div>
<div id="operations" class="col-sm-4">
<div id="decorationBack" style="display: none; text-align: right; margin-top: -10px">
<input type="button" class="btn btn-default " value="返回" onclick="location.href='/supplier/shop/decoration'">
</div>
<div id="decorationSubmite" style="display: none; text-align: right; margin-top: -10px">
<input id="saveDecoration" type="button" class="btn btn-success delay-btn" value="暂存">
<input id="submitDecoration" type="button" class="btn btn-primary delay-btn" value="提交审核">
<input type="button" class="btn btn-default " value="返回" onclick="location.href='/supplier/shop/decoration'">
</div>
<div id="decorationCheck" style="display: none; text-align: right; margin-top: -10px">
<input id="checkOk" type="button" class="btn btn-primary delay-btn" value="审核通过">
<input id="checkNo" type="button" class="btn btn-danger delay-btn" value="驳回">
<input type="button" class="btn btn-default " value="返回" onclick="location.href='/supplier/check/index'">
</div>
</div>
</div>
</div>
</div>
</div>
<div id="main" class="contentpanel"></div>
<!--BLK店铺pc端-->
<script type="text/template" id="1-pc">
<div id="decorationTemplate_blk_pc">
<div class="shopBanner canEdit" data-dialogid="shopTopBanner">
<img src="[[resources.shopTopBanner.data.shopSrc]]">
[[if resources.shopTopBanner.data.isShowShopName == "Y"]]
<h1>[[shopName]]</h1>
[[/if]]
</div>
<div class="nav canEdit" data-dialogid="navigationBar">
<ul>
<li><a href="javascript:">店铺首页</a></li>
<li><a href="javascript:">全部商品</a></li>
<li><a href="javascript:">新品上架</a></li>
<li><a href="javascript:">人气商品</a></li>
[[each resources.navigationBar.data as item _index]]
[[if item.name]]
<li><a href="javascript:">[[item.name]]</a></li>
[[/if]]
[[/each]]
</ul>
</div>
<div class="resourceImg">
<div class="largeSlideImg canEdit" data-dialogid="largeSlideImg">
<ul>
<li><img src="[[resources.largeSlideImg.data[0].src]]"></li>
<li><img src="[[resources.largeSlideImg.data[1].src]]"></li>
<div class="clearfix"></div>
</ul>
</div>
<div class="oneRowTwoColImages canEdit" data-dialogid="oneRowTwoColImages">
<ul>
<li><img src="[[resources.oneRowTwoColImages.data[0].src]]"></li>
<li><img src="[[resources.oneRowTwoColImages.data[1].src]]"></li>
</ul>
</div>
<div class="clearfix"></div>
</div>
<div class="newProducts">
<div class="title">
<h1>NEW ARRIVALS</h1>
<em>最新上架</em>
<a class="more" href="javascript:">MORE</a>
</div>
<div class="productList canEdit" data-dialogid="newProducts">
<ul>
[[if resources.newProducts.data.length > 0]]
[[if resources.newProducts.data.length < 8]]
[[each resources.newProducts.data as item _index]]
[[if _index < 4]]
<li>
<img src="[[item.src]]">
<div class="productInfo"><a href="javascript:">[[item.productName]]</a><b>¥[[item.salesPrice]]</b></div>
</li>
[[/if]]
[[/each]]
[[else]]
[[each resources.newProducts.data as item _index]]
[[if _index < 8]]
<li>
<img src="[[item.src]]">
<div class="productInfo"><a href="javascript:">[[item.productName]]</a><b>¥[[item.salesPrice]]</b></div>
</li>
[[/if]]
[[/each]]
[[/if]]
[[else]]
<li>
<img src="http://img01.yohoboys.com/staticimg/2016/05/19/15/01091c21f2317a64f123f1649fbbccf7ba.png">
<div class="productInfo"><a href="javascript:">商品展示样例</a><b>¥商品价格</b></div>
</li>
[[/if]]
<div class="clearfix"></div>
</ul>
</div>
</div>
<div class="hotProducts" style="margin-bottom: 20px">
<div class="title">
<h1>HOTS</h1>
<em>人气单品</em>
<a class="more" href="javascript:">MORE</a>
</div>
<div class="productList canEdit" data-dialogid="hotProducts">
<ul>
[[if resources.hotProducts.data.length > 0]]
[[if resources.hotProducts.data.length < 6]]
[[each resources.hotProducts.data as item _index]]
[[if _index < 3]]
<li>
<img src="[[item.src]]">
<div class="shadow"></div>
<div class="productInfo"><a href="javascript:">[[item.productName]]</a><b>¥[[item.salesPrice]]</b></div>
</li>
[[/if]]
[[/each]]
[[else]]
[[each resources.hotProducts.data as item _index]]
[[if _index < 6]]
<li>
<img src="[[item.src]]">
<div class="shadow"></div>
<div class="productInfo"><a href="javascript:">[[item.productName]]</a><b>¥[[item.salesPrice]]</b></div>
</li>
[[/if]]
[[/each]]
[[/if]]
[[else]]
<li>
<img src="http://img01.yohoboys.com/staticimg/2016/05/19/15/01091c21f2317a64f123f1649fbbccf7ba.png">
<div class="shadow"></div>
<div class="productInfo"><a href="javascript:">商品展示样例</a><b>¥商品价格</b></div>
</li>
[[/if]]
<div class="clearfix"></div>
</ul>
</div>
</div>
</div>
</script>
<!--BLK店铺app端-->
<script type="text/template" id="1-app">
<div id="decorationTemplate_blk_app">
<div class="shopBanner canEdit" data-dialogid="shopTopBanner_app">
<img src="[[resources.shopTopBanner_app.data.shopSrc]]">
</div>
</div>
</script>
<!--pc端banner-->
<script type="text/template" id="shopTopBanner">
<table class="table table-bordered">
<thead>
<tr>
<th>PC端店铺banner图片</th>
<th>PC端是否展示店铺名称</th>
<th>PC端商品详情页banner图片</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="file" fileType='14' name='shopBannerImg' class="observe" value="[[data.shopSrc]]" data-field="shopSrc" >
</td>
<td>
<lable>
<input type='radio' name='isShowShopName' class="observe" value='Y' [[data.isShowShopName=='Y'?'checked':'']] data-field="isShowShopName">
&nbsp;&nbsp;显示店铺名称
</lable><br>
<lable>
<input type='radio' name='isShowShopName' class="observe" value='N' [[data.isShowShopName=='N'?'checked':'']] data-field="isShowShopName">
&nbsp;&nbsp;不显示店铺名称
</lable>
</td>
<td>
<input type="file" fileType='15' name='DetailbannerImage' class="observe" value="[[data.detailSrc]]" data-field="detailSrc" >
</td>
</tr>
</tbody>
</table>
</script>
<!--app端banner-->
<script type="text/template" id="shopTopBanner_app">
<table class="table table-bordered">
<thead>
<tr>
<th>APP端店铺banner图片</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="file" fileType='18' name='shopBannerAppImg' class="observe" value="[[data.shopSrc]]" data-field="shopSrc" >
</td>
</tr>
</tbody>
</table>
</script>
<!--pc端nav-->
<script type="text/template" id="navigationBar">
<table class="table table-bordered">
<thead>
<tr>
<th>编号</th>
<th>导航名称</th>
<th>链接</th>
</tr>
</thead>
<tbody>
[[each data as item _index]]
<tr>
<td>[[_index+1]]</td>
<td><input type="text" class="form-control observe" name="name" value="[[item.name]]" data-field="[[_index]].name" maxlength="5"></td>
<td><input type="text" class="form-control observe" name="url" value="[[item.url]]" data-field="[[_index]].url"></td>
</tr>
[[/each]]
</tbody>
</table>
</script>
<!--pc端大图资源位-->
<script type="text/template" id="largeImg">
<table class="table table-bordered">
<thead>
<tr>
<th>图片</th>
<th>链接</th>
</tr>
</thead>
<tbody>
[[each data as item _index]]
<tr>
<td><input type="file" fileType='16' name='resourceImage' class="observe" value="[[item.src]]" data-field="[[_index]].src"></td>
<td><input type="text" class="form-control observe" name="url" value="[[item.url]]" data-field="[[_index]].url"></td>
</tr>
[[/each]]
</tbody>
</table>
</script>
<!--pc端小图资源位-->
<script type="text/template" id="smallImg">
<table class="table table-bordered">
<thead>
<tr>
<th>图片</th>
<th>链接</th>
</tr>
</thead>
<tbody>
[[each data as item _index]]
<tr>
<td><input type="file" fileType='17' name='resourceImage' class="observe" value="[[item.src]]" data-field="[[_index]].src"></td>
<td><input type="text" class="form-control observe" name="url" value="[[item.url]]" data-field="[[_index]].url"></td>
</tr>
[[/each]]
</tbody>
</table>
</script>
<!--新品,热门商品-->
<script type="text/template" id="products">
<div class="tabheader productsTabs">
<ul class="nav nav-tabs">
<li class="active"><a href="javascript:">全部商品</a></li>
<li><a href="javascript:">已选&nbsp;(<b class="selectedProductsNum"></b>)</a></li>
</ul>
</div>
<div class="filter" style="margin-top: 20px; display: none">
<input type="text" id="selectSkn" class="form-control" value="" placeholder="SKN查询" style="display: inline-block;width: 200px;margin-right: 10px">
<a id="filterSkn" href="javascript:;" class="btn btn-info">筛选</a>
</div>
<div class="productTable" style="margin-top: 20px"></div>
</script>
<%include '../../common/views/__ui/footer'%>
\ No newline at end of file
... ...
... ... @@ -21,8 +21,18 @@
</select>
</div>
<div class="panel-col">
<select name="status" id="status" tabindex="-1" title="" class="form-control">
<option value="" selected="">选择状态</option>
<select name="status" id="yohoStatus" tabindex="-1" title="" class="form-control">
<option value="" selected="">有货状态</option>
<option value="0">待装修</option>
<option value="100">暂存</option>
<option value="200">待审核</option>
<option value="300">审核通过</option>
<option value="900">驳回</option>
</select>
</div>
<div class="panel-col">
<select name="status" id="blkStatus" tabindex="-1" title="" class="form-control">
<option value="" selected="">BLK状态</option>
<option value="0">待装修</option>
<option value="100">暂存</option>
<option value="200">待审核</option>
... ...
<%include '../../../common/views/__ui/header'%>
<%include '../../../common/views/__partail/ListHeader'%>
<div class="contentpanel">
<div class="panel">
<div class="selectShop" style="font-family:'microsoft yahei';font-size: 18px;line-height: 40px;margin-bottom: 20px">
<div id="shopInfo">
<span id="shopId"><font color="#999">店铺ID:</font><b>--</b></span>
<span id="shopName" style="margin: 0 20px"><font color="#999">店铺名称:</font><b><%shopName%></b></span>
<span id="categoryName"><font color="#999">销售类目名称:</font><b><%categoryName%></b></span>
<a href="javascript:" class="btn btn-default btn-return" style="float: right">返回</a>
</div>
</div>
<div class="tabheader">
<ul class="nav nav-tabs">
<li class="active"><a href="javascript:">全部商品</a></li>
<li><a href="javascript:">已选&nbsp;(<b class="selectedProductsNum">0</b>)</a></li>
</ul>
</div>
<div class="mainTable" style="padding: 20px 20px 60px; border: 1px solid #ddd; background: #FFFFFF">
<div class="filter form-inline" style="margin-bottom: 20px">
<input id="productSKN" type="text" class="form-control" placeholder="SKN" />&nbsp;&nbsp;
<input id="factoryCode" type="text" class="form-control" placeholder="商家编码" />&nbsp;&nbsp;
<a href="javascript:" class="btn btn-info filter-btn">查询</a>
<a href="javascript:" class="btn btn-danger cancelAll" style="float: right;display: none">全部取消</a>
</div>
<div id="productTable"></div>
</div>
</div>
</div>
<%include '../../../common/views/__ui/footer'%>
\ No newline at end of file
... ...
... ... @@ -24,6 +24,18 @@
</div>
</div>
<script type="text/template" id="addTemplate">
<div class="form-horizontal" id="shopCategoryAdd">
<div class="form-group">
<label for="categoryName" class="col-sm-3 control-label">销售类目名称:</label>
<div class="col-sm-5">
<input type="text" id="categoryName" value="[[data]]" class="form-control" maxlength="30" />
</div>
<div class="col-sm-2"><label style="color: #ff0000; line-height: 40px"> * 必填</label></div>
</div>
</div>
</script>
<script type="text/template" id="listTemplate">
<div class="addCategory" style="margin-bottom: 20px">
<a class="btn btn-success addBtn"><i class="fa fa-plus"></i> 新增销售类目</a>
... ... @@ -45,14 +57,15 @@
[[if data.length > 0]]
[[each data as item _index]]
<tr>
<td style="line-height: 27px">[[item.id]]</td>
<td style="line-height: 27px">[[item.name]]</td>
<td style="line-height: 27px">[[item.date]]</td>
<td style="line-height: 27px">[[item.num]]</td>
<td style="line-height: 27px">[[item.categoryId]]</td>
<td style="line-height: 27px">[[item.categoryName]]</td>
<td style="line-height: 27px">[[item.addTime]]</td>
<td style="line-height: 27px">[[item.productNum]]</td>
<td style="line-height: 27px">
<a href='/shop/shopCategory/edit/[[item.id]]' class='btn btn-xs btn-primary'>编辑</a>
<a href='/shop/shopCategory/info/[[item.id]]' class='btn btn-xs btn-info'>查看</a>
<a href='javascript:' class='btn btn-xs btn-danger deleteBtn' data-index='"+_index+"'>删除</a>
<a href='javascript:' class='btn btn-xs btn-primary editCategory' data-categoryid='[[item.categoryId]]'>编辑名称</a>
<a href='/shop/shopCategory/edit/[[shopId]]/[[item.categoryId]]/' class='btn btn-xs btn-info'>关联商品</a>
<a href='/shop/shopCategory/info/[[shopId]]/[[item.categoryId]]/' class='btn btn-xs btn-info' style="display: none">查看</a>
<a href='javascript:' class='btn btn-xs btn-danger deleteBtn' data-categoryid='[[item.categoryId]]'>删除</a>
</td>
</tr>
[[/each]]
... ...
<%include '../../../common/views/__ui/header'%>
<%include '../../../common/views/__partail/ListHeader'%>
<div class="contentpanel">
<div class="panel">
<div class="selectShop" style="font-family:'microsoft yahei';font-size: 18px;line-height: 40px;margin-bottom: 20px">
<div id="shopInfo">
<span id="shopId"><font color="#999">店铺ID:</font><b>--</b></span>
<span id="shopName" style="margin: 0 20px"><font color="#999">店铺名称:</font><b><%shopName%></b></span>
<span id="categoryName"><font color="#999">销售类目名称:</font><b><%categoryName%></b></span>
<a href="javascript:" class="btn btn-default btn-return" style="float: right">返回</a>
</div>
</div>
<div id="productTable"></div>
</div>
</div>
<%include '../../../common/views/__ui/footer'%>
\ No newline at end of file
... ...
... ... @@ -101,7 +101,7 @@
me.data = res.data.list;
me.rowsTotal = res.data.totalPage;
me.page = res.data.page;
me.$dispatch('complete', res.data);
me.$dispatch('completeGrid', res.data);
},function (response) {
me.rowsTotal=0;
me.page=0;
... ...
<template>
<div class="selection-container">
<span class="selection-main" @click="openCloseDropdown()">
<span class="selection-main-text {{disabled?'selection-disabled':''}}">{{showSelectedData}}</span>
<span class="selection-main-arrow"><b class="{{isOpen?'up':''}}"></b></span>
</span>
<div v-show="isOpen" class="selection-dropdown">
<div class="selection-dropdown-input form-group">
<input type="text" class="form-control" v-model="searchText" style="height: 30px">
</div>
<ul class="selection-dropdown-option">
<li value="-1" class="{{-1==selectedData.id?'selected':''}}" @click="selectOption({id:-1,text:''})">{{placeholder}}</li>
<li v-for="data in seachList" value="{{data.id}}" class="{{data.id==selectedData.id?'selected':''}}" @click="selectOption(data)">
{{data.text}}
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
props: {
selectedData:{type: Object, default: {id:-1}},//默认选中选项
url: {type: String, default: ""},
options: {type: Array, default: []},
placeholder: {type: String, default: "请选择"},
disabled:{type: Boolean, default: false}
},
data() {
return {
isOpen:false,
searchText:'',
dataList:[],
seachList:[]
}
},
computed:{
showSelectedData(){
return this.selectedData.id < 0 ? this.placeholder : this.selectedData.text;
}
},
ready() {
this.getData();
this.blindEvent();
},
watch:{
'dataList': function (val,oldval) {
this.getSearchData();
},
'searchText': function (val,oldval) {
this.getSearchData();
}
},
methods: {
//选择菜单内容
selectOption(data){
this.isOpen = false;
this.searchText = '';
this.selectedData = data;
this.$dispatch('completeSelect', data);
},
//开关下拉菜单
openCloseDropdown(){
if(!this.disabled){
if(!this.isOpen){
this.isOpen = true;
}else{
this.isOpen = false;
}
}
},
//下拉数据筛选
getSearchData(){
var list = [];
for(var i=0;i<this.dataList.length;i++){
if(this.dataList[i].text.indexOf(this.searchText) > -1){
list.push(this.dataList[i]);
}
}
this.seachList = list;
},
//获取数据
getData(){
if(this.url && this.url != ''){
this.$http.post(this.url).then(function (res) {
this.dataList = res.data.data;
})
}else if(this.options && this.options != ''){
this.dataList = this.options;
}
},
//点击空白处弹层关闭
blindEvent(){
var self = this;
$(document).on("click", function () {
self.isOpen = false;
});
$(".selection-container").on("click", function (event) {
event.stopPropagation();//阻止事件向上冒泡
});
}
}
}
</script>
<style>
.selection-container {
box-sizing: border-box;
display: inline-block;
position: relative;
vertical-align: middle;
float: left;
margin: 0 5px 0 0;
width: 320px;
}
.selection-main{
box-sizing: border-box;
background-color: #fff;
border: 1px solid #aaa;
border-radius: 4px;
cursor: pointer;
display: block;
height: 39px;
line-height: 37px;
}
.selection-main-text{
display: block;
padding-left: 10px;
padding-right: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.selection-disabled{
background-color: #DDDDDD;
}
.selection-main-arrow{
height: 36px;
position: absolute;
top: 1px;
right: 1px;
width: 20px;
}
.selection-main-arrow b{
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0;
}
.selection-main-arrow b.up{
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px;
}
.selection-dropdown{
position: absolute;
top:40px;
width: 100%;
background-color: #fff;
border: 1px solid #aaa;
border-radius: 4px;
box-sizing: border-box;
display: block;
position: absolute;
z-index: 998;
}
.selection-dropdown-input{
margin-bottom: 0;
padding: 5px 5px;
}
.selection-dropdown-option{
margin: 0;
padding: 0;
list-style: none;
max-height: 200px;
max-width: 100%;
overflow-y: auto;
}
.selection-dropdown-option li{
font-size: 13px;
padding: 5px 10px;
cursor: pointer;
}
.selection-dropdown-option li.selected{
background-color: #5897fb;
color: #FFFFFF;
}
.selection-dropdown-option li:hover{
background-color: #ddd;
}
.selection-dropdown-option li.selected:hover{
background-color: #5897fb;
}
</style>
\ No newline at end of file
... ...
<style>
.multilevel{position: relative; font-family: 'microsoft yahei'; font-size:14px; color: #585858}
.multilevel a,.multilevel span{cursor: pointer; text-decoration: none; color:#585858; display: inline-block;}
.multilevel span.placeholder{font-size: 12px; color: #999999; height: 20px; line-height: 20px}
.picker-data{display: inline-block; width: auto; height: 34px; border: 1px solid #ccd0d4; padding:6px 12px; position: relative; border-radius: 3px}
.placeholder,.data{display: inline-block; width: 200px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden;}
.data a{font-size: 12px}
.select-item a{padding: 0 2px}
.select-item a:hover{background: #CCCCCC}
.clearData{display: inline-block; width: 30px; margin-left: 10px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden;}
.clearData em{color: #999999; font-size: 12px; font-style: normal;}
.picker-dropdown{position: absolute; top: 36px; left: 1px; z-index: 999;}
.select-wrap{box-shadow: 0 1px 5px rgba(0, 0, 0, 0.5); border-radius: 4px; width: 350px}
.select-tab{background: #f0f0f0; border-bottom: 1px solid #ccc;}
.select-tab a{display: inline-block; font-size: 12px; padding: 8px 15px; border-left: 1px solid #ccc; border-bottom: 1px solid transparent; margin-bottom: -1px}
.select-tab a:first-child {border-left: none}
.select-tab a:last-child.active {border-right: 1px solid #ccc}
.select-tab a.active{background: #FFFFFF; border-bottom: 1px solid #FFFFFF;}
.select-content{background: #FFFFFF;}
.levelContent,.noSort{clear: both; list-style: none; margin: 0; padding: 10px;}
.levelContent li,.noSort li{display: inline-block; padding: 5px 10px;}
.levelContent li.active{background: #5bc0de; border-radius: 4px}
.levelContent li.active a{color:#FFFFFF}
.noSort li span{color: #ff0000}
.multilevel {
position: relative;
font-family: 'microsoft yahei';
font-size: 14px;
color: #585858
}
.multilevel a, .multilevel span {
cursor: pointer;
text-decoration: none;
color: #585858;
display: inline-block;
}
.multilevel span.placeholder {
font-size: 12px;
color: #999999;
height: 20px;
line-height: 20px
}
.picker-data {
display: inline-block;
width: auto;
height: 34px;
border: 1px solid #ccd0d4;
padding: 6px 12px;
position: relative;
border-radius: 3px
}
.placeholder, .data {
display: inline-block;
width: 200px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.data a {
font-size: 12px
}
.select-item a {
padding: 0 2px
}
.select-item a:hover {
background: #CCCCCC
}
.clearData {
display: inline-block;
width: 30px;
margin-left: 10px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.clearData em {
color: #999999;
font-size: 12px;
font-style: normal;
}
.picker-dropdown {
position: absolute;
top: 36px;
left: 1px;
z-index: 999;
}
.select-wrap {
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.5);
border-radius: 4px;
width: 350px
}
.select-tab {
background: #f0f0f0;
border-bottom: 1px solid #ccc;
}
.select-tab a {
display: inline-block;
font-size: 12px;
padding: 8px 15px;
border-left: 1px solid #ccc;
border-bottom: 1px solid transparent;
margin-bottom: -1px
}
.select-tab a:first-child {
border-left: none
}
.select-tab a:last-child.active {
border-right: 1px solid #ccc
}
.select-tab a.active {
background: #FFFFFF;
border-bottom: 1px solid #FFFFFF;
}
.select-content {
background: #FFFFFF;
}
.levelContent, .noSort {
clear: both;
list-style: none;
margin: 0;
padding: 10px;
}
.levelContent li, .noSort li {
display: inline-block;
padding: 5px 10px;
}
.levelContent li.active {
background: #5bc0de;
border-radius: 4px
}
.levelContent li.active a {
color: #FFFFFF
}
.noSort li span {
color: #ff0000
}
</style>
<template>
<div class="multilevel">
<div class="multilevel">
<span class="picker-data">
<span v-show="dataList.length==0" class="placeholder" @click="showDropdown">请选择类目</span>
... ... @@ -45,117 +152,118 @@
</span>
</span>
<div class="picker-dropdown" v-show="isShowDropdown">
<div class="select-wrap">
<div class="select-tab">
<a v-for="tab in tabList" class="level {{$index==activeTab?'active':''}}" @click="selectTab($index)">{{tab}}</a>
</div>
<div class="picker-dropdown" v-show="isShowDropdown">
<div class="select-wrap">
<div class="select-tab">
<a v-for="tab in tabList" class="level {{$index==activeTab?'active':''}}"
@click="selectTab($index)">{{tab}}</a>
</div>
<div class="select-content">
<ul v-for="(index,content) in levelContent" class="levelContent" v-show="activeTab==index">
<li v-for="(key,item) in content" class="{{item.id==dataList[index].id?'active':''}}">
<a href="javascript:" @click="selectItem(item)">{{item.sortName}}</a>
</li>
</ul>
<div class="select-content">
<ul v-for="(index,content) in levelContent" class="levelContent" v-show="activeTab==index">
<li v-for="(key,item) in content" class="{{item.id==dataList[index].id?'active':''}}">
<a href="javascript:" @click="selectItem(item)">{{item.sortName}}</a>
</li>
</ul>
<ul v-show="activeTab>=levelContent.length" class="noSort">
<li><span>请选择上级类目!</span></li>
</ul>
<ul v-show="activeTab>=levelContent.length" class="noSort">
<li><span>请选择上级类目!</span></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props:{
dataList: {type: Array, default: []}
},
data() {
return {
tabList:["一级目录","二级目录","三级目录"],
levelContent:[],
isShowDropdown:false,
activeTab:0,
maxTab:2
}
},
ready() {
this.fetchAllSortList();
this.blindEvent();
},
methods: {
showDropdown(event){
this.isShowDropdown = true;
event.stopPropagation();//阻止事件向上冒泡
},
closeDropdown(){
this.activeTab = 0;
this.isShowDropdown = false;
},
selectTab(index){
this.isShowDropdown = true;
this.activeTab = index;
},
selectItem(item){
this.dataList.$set(this.activeTab,item);
this.dataList.splice(this.activeTab+1, this.dataList.length-this.activeTab-1);
if(this.activeTab < this.maxTab){
this.activeTab ++;
this.fetchSubSortList(item.id);
}else{
this.closeDropdown();
export default {
props: {
dataList: {type: Array, default: []}
},
data() {
return {
tabList: ["一级目录", "二级目录", "三级目录"],
levelContent: [],
isShowDropdown: false,
activeTab: 0,
maxTab: 2
}
},
ready() {
this.fetchAllSortList();
this.blindEvent();
},
methods: {
showDropdown(event){
this.isShowDropdown = true;
event.stopPropagation();//阻止事件向上冒泡
},
closeDropdown(){
this.activeTab = 0;
this.isShowDropdown = false;
},
selectTab(index){
this.isShowDropdown = true;
this.activeTab = index;
},
selectItem(item){
this.dataList.$set(this.activeTab, item);
this.dataList.splice(this.activeTab + 1, this.dataList.length - this.activeTab - 1);
if (this.activeTab < this.maxTab) {
this.activeTab++;
this.fetchSubSortList(item.id);
} else {
this.closeDropdown();
}
},
destroy(){
this.dataList.splice(0, this.dataList.length);
this.activeTab = 0;
this.levelContent.splice(1, this.levelContent.length - 1);
},
fetchAllSortList(){
this.$http.post("/product/class/queryAllProductSortList").then(function (response) {
var rs = response.data;
this.levelContent.$set(0, rs.data);
}, function (response) {
var rs = response.data;
console.log(rs.message);
});
},
fetchSubSortList(sortId){
this.$http.post("/product/class/queryProductSortList", {
param: sortId
}).then(function (response) {
var rs = response.data;
if (rs.data.length > 0) {
this.levelContent.$set(this.activeTab, rs.data);
} else {
this.closeDropdown();
}
}, function (response) {
var rs = response.data;
console.log(rs.message);
})
},
//点击空白处弹层关闭
blindEvent(){
var self = this;
$(document).on("click", function () {
self.closeDropdown();
});
$(".picker-dropdown").on("click", function (event) {
event.stopPropagation();//阻止事件向上冒泡
});
}
}
},
destroy(){
this.dataList.splice(0,this.dataList.length);
this.activeTab = 0;
this.levelContent.splice(1, this.levelContent.length-1);
},
fetchAllSortList(){
this.$http.post("/product/class/queryAllProductSortList").then(function (response) {
var rs = response.data;
this.levelContent.$set(0,rs.data);
}, function (response) {
var rs = response.data;
console.log(rs.message);
});
},
fetchSubSortList(sortId){
this.$http.post("/product/class/queryProductSortList",{
param:sortId
}).then(function (response) {
var rs = response.data;
if(rs.data.length>0){
this.levelContent.$set(this.activeTab,rs.data);
}else{
this.closeDropdown();
}
}, function (response) {
var rs = response.data;
console.log(rs.message);
})
},
//点击空白处弹层关闭
blindEvent(){
var self = this;
$(document).on("click", function(){
self.closeDropdown();
});
$(".picker-dropdown").on("click", function(event){
event.stopPropagation();//阻止事件向上冒泡
});
}
}
}
}
</script>
... ...
... ... @@ -234,4 +234,4 @@ gulp.task('vue',["vue-gulp"], function (cb) {
});
gulp.task("default",["jquery","assets","sass"]);
gulp.task('start', ["default", "static", "server", "vue"]);//"vue"
\ No newline at end of file
gulp.task('start', ["default", "static","server","vue"]);//"vue"
\ No newline at end of file
... ...
{
"name": "yohobuy-portal-fe",
"version": "4.7.7",
"version": "4.8.3",
"description": "Construction of the presentation layer solution is based on express, handlebars",
"main": "app.js",
"scripts": {
"code":"set NODE_ENV=coding&& gulp start",
"build":"set NODE_ENV=production && gulp && gulp mvc",
"server":"set NODE_ENV=server&& gulp start"
"code": "set NODE_ENV=coding&& gulp start",
"build": "set NODE_ENV=production && gulp && gulp mvc",
"server": "set NODE_ENV=server&& gulp start"
},
"dependencies": {
"art-template": "^3.0.3",
... ... @@ -15,14 +15,17 @@
"connect-multiparty": "^2.0.0",
"connect-redis": "^3.0.2",
"cookie-parser": "^1.4.1",
"dev": "^0.1.3",
"express": "^4.13.4",
"express-session": "^1.13.0",
"glob": "^7.0.3",
"lodash": "^4.11.1",
"md5": "^2.1.0",
"mkdirp": "^0.5.1",
"request": "^2.72.0",
"winston": "^2.2.0",
"glob": "^7.0.3"
"vue-router": "^0.7.13",
"vuex": "^1.0.0-rc.2",
"winston": "^2.2.0"
},
"devDependencies": {
"autoprefixer-loader": "^3.2.0",
... ...
... ... @@ -141,6 +141,8 @@ edit.prototype = {
var ext = src.split('.').pop().toLowerCase();
if ("mp4,rmvb,avi,mov".indexOf(ext) > -1) {
Temp += '<video width="76" height="80" src="' + src + '"></video>';
} else if("pdf".indexOf(ext) > -1){
Temp += '<span style="display: block;text-align: center;font-size: 16px">pdf文件</span>';
} else {
if(src.indexOf("?imageView")){
src=util.__template(src,{width:"76",height:"80",mode:"2"});
... ... @@ -174,7 +176,7 @@ edit.prototype = {
_w.html('<video width="76" height="80" src="' + response.data + '"></video>');
} else if(ext == "pdf"){//支持上传pdf文件,支持点击下载
_w.html('pdf文件').css("display","block").css("text-align","center").css("font-size","16px");
_w.attr("href",response.data).attr("target","_blank");
//_w.attr("href",response.data).attr("target","_blank");
} else{
if(response.data.indexOf("?imageView")){
response.data=util.__template(response.data,{width:"76",height:"80",mode:"2"});
... ...
... ... @@ -13,7 +13,7 @@ var components=function(el,option){
};
this.el = el;
this.option = option || {};
}
};
components.prototype={
constructor:components,
on: function(name, callback) {
... ... @@ -163,6 +163,19 @@ components.prototype={
} else {
that.$tip(response.message);
}
},
'onStart': function(params) {
//图片限制参数
if($(this).attr("fileType")){
console.log("fileType:" + $(this).attr("fileType"));
params.limitType = $(this).attr("fileType");
}
if($(this).attr("bucket")){
params.bucket = $(this).attr("bucket");
}
that.__listen("callback", {
key: "file_onStart_" + $(this).attr("id")
});
}
});
});
... ...
... ... @@ -268,6 +268,7 @@ grid.prototype = {
g.__bodyClomun([], p.second);
}
g.total = data.total?data.total:0;
p.complete2 && p.complete2(res);
},
complete: function(res) {
console.log("gridComplete~~");
... ...
... ... @@ -101,6 +101,10 @@ var SORTDATA={
var tabTree=new common.tabTree("#tree",SORTDATA);
tabTree.isfeeze=true;
if(ACTION == 1){ //编辑页面显示展示平台
$('.showPlatform').show();
}
if(ACTION == 1 && canEditSort){
tabTree.options.datas[0].disabled = true;
tabTree.isfeeze=false;
... ... @@ -109,7 +113,10 @@ if(ACTION == 1 && canEditSort){
tabTree.init(SORTDATA.datas);
if(RESPONSEDATA.isAuditing==200){
$("#goodsYears").add("#goodsSeason").add("#retailPriceStr").add("#salesPriceStr").add("#stock").prop("disabled",true);
$("#brandId").add("#shopId").add("#supplierId")
.add("#goodsYears").add("#goodsSeason")
.add("#retailPriceStr").add("#salesPriceStr").add("#stock")
.prop("disabled",true);
//.add("#expectShelfTimeStr").add("#expectArrivalTimeStr")
}
... ... @@ -163,7 +170,7 @@ var g=new common.grid({
}
},
{
display:"<label class='red'>厂家颜色、尺码、销售价、条码必填</label>",render:function(item){
display:"<label class='red'>厂家颜色、尺码、销售价 必填</label>",render:function(item){
if(!item.isAdd&&!g.__gsm.hasOwnProperty(item.__index)){
g.__gsm[item.__index]=item.goodsSizeList.length;
}
... ... @@ -512,7 +519,8 @@ $(document).on("click","#btnReview",function(){
e.submit($("#basicForm").attr("action"),function(option){
var select=tabTree.getAddress();
option.data.appType=option.data.appType||'0';
// option.data.isAuditing=200;
option.data.supplierId=common.util.__input("supplierId")?$("#supplierId").val():"0";
option.data.shopId=common.util.__input("shopId")?$("#shopId").val():"0";
... ...
... ... @@ -216,7 +216,8 @@ var g = new common.grid({
smallSortId: select[2] ? select[2].id : "",
sortId: select[3] ? select[3].id : "",
founderName: common.util.__input("founderName"),
factoryCode: common.util.__input("factoryCode")
factoryCode: common.util.__input("factoryCode"),
appType: common.util.__input("appType")
};
},
columns: [{
... ...
... ... @@ -16,6 +16,7 @@ data.data.goodsSeason={"0":"四季","1":"春","2":"夏","3":"秋","4":"冬","5":
data.data.isPromotionalGifts={"N":"否","Y":"是"}[""+data.data.isPromotionalGifts];
data.data.isLimited={"N":"否","Y":"是"}[""+data.data.isLimited];
data.data.isLimitbuy={"N":"否","Y":"是"}[""+data.data.isLimitbuy];
data.data.appType={"0":"有货平台","1":"有货,BLK平台"}[""+data.data.appType];
var param=[data.data.productSkn]
var a=common.util.__template2($("#template").html(), data.data);
... ...
... ... @@ -13,7 +13,7 @@ if ($('.contentpanel').data('type') == 'info') {
$('.contentpanel').find('input').prop('disabled', true);
$('.contentpanel').find('.btn').addClass('disabled');
}
$("#productSkn").val(window.NETSALEDATA.baseProductInfo.baseProduct.productSkn);
console.log(window.NETSALEDATA);
window.GOLABDATA = {
... ...
... ... @@ -131,7 +131,8 @@ var g = new common.grid({
sortFlag: sortFlag,
skcOnsaleStatus: common.util.__input("skcOnsaleStatus"),
isAdvance: common.util.__input("isAdvance"),
factoryCode: common.util.__input("factoryCode")
factoryCode: common.util.__input("factoryCode"),
appType: common.util.__input("appType")
};
},
columns: [{
... ...
... ... @@ -172,8 +172,8 @@ $('#saveBasicInfo').on('click', function() {
})
})
// var e = new common.edit('#basicInfoWrap');
// e.init();
var e = new common.edit('#basicInfoWrap');
e.init();
// //保存基本信息
// $('#saveBasicInfo').on('click', function() {
... ...
... ... @@ -221,7 +221,8 @@ new common.dropDown({
ajax: "guangGetSortList",
params: function () {
return {
parentId: 0
parentId: 0,
appType:$.trim($("#appType").val())
};
}
});
... ... @@ -655,7 +656,7 @@ var goodsgird = new common.grid({
query: common.util.__input('skns'),
price: price,
color: Bll2.getIds(Bll.sorts[0].list),
style: getIds(Bll.sorts[1].list),//风格先不管
style: Bll2.getIds(Bll.sorts[1].list),//风格先不管
msort: Bll2.getIds(Bll.sorts[2].list),
brand: Bll2.getIds(Bll.sorts[3].list),
gender: Bll2.getIds(Bll.sorts[4].list)
... ...
... ... @@ -5,6 +5,11 @@ common = require('../../common/common');
var g = new common.grid({
el: '#help_list',
hash: false,
parms:function(){
return {
platform: common.util.__input("platform")
}
},
columns: [
{display: "编号", name: "id"},
{display: "分类名称", name: "categoryName"},
... ... @@ -35,6 +40,11 @@ var g = new common.grid({
g.init("/operations/helpcategory/getAllHelpCategory");
// 筛选
$(document).on('click', "#filter-btn", function() {
g.reload(1);
});
var Bll = {
getLocalTime: function (nS) {
var date = new Date(parseInt(nS) * 1000);
... ...
... ... @@ -28,7 +28,7 @@ var departments = [
var couponTypes = ["A券", "B券", "公开券", "生日券", "免邮券"];
var useLimitTypes = ["无限制", "货物件数限制", "订单金额限制"];
// var customTypes = ["新客户", "银卡会员", "金卡会员", "白金卡会员", "普通用户(不含新客)"];
var customTypes={1:"新客户",2:"银卡会员", 3:"金卡会员", 4:"白金卡会员", 5:"普通用户(不含新客)",9:"学生"}
var customTypes={1:"新客户",2:"银卡会员", 3:"金卡会员", 4:"白金卡会员", 5:"普通用户(不含新客)",9:"学生"};
var ENUM = {
status: {0: '待审核', 1: '审核通过', 2: '驳回', '-1': '过期', 3: '作废'},//全部
tips: {"0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "all": 0}
... ...
... ... @@ -990,6 +990,38 @@ var Button = [
}
]
}
},
{
button_name: "blk品牌单品管理",
template_intro: "blkBrand",
__title:"blk品牌单品管理",
template_name: "blkBrand",
dialog: "blkBrand-template",
data: {
title: "",
is_show_name: "N",
number: "",
list: [
{src:"",url:{action:"",url:""},productName:"",productDesc:""}
]
}
},
{
button_name:"blk标题楼层",
template_name: "titleFloor",
template_intro: "标题楼层",
__title:"标题楼层",
dialog: "titleFloor-template",
data: {
title: {
name: "",
more_name: "",
more_url: {
action: "",
url: ""
}
}
}
}
];
... ...
... ... @@ -124,7 +124,7 @@ var addObj = {
"action": "",
"url": ""
},
"title": ""
"alt": ""
},
textNav_data: {//文本导航->导航
"name": "",
... ... @@ -258,6 +258,15 @@ var addObj = {
},
discountActivity_list:{
"id":""
},
blkBrand_list:{
src:"",
url:{
action:"",
url:""
},
productName:"",
productDesc:""
}
};
... ...
... ... @@ -381,6 +381,7 @@ $(document).on("click", ".addBtn", function () {
Bll.renderDialog(arr[0] + "-template");
});
/*删除行*/
$(document).on("click", ".delBtn", function () {
var arr = $(this).data("event").split(".");
... ... @@ -439,6 +440,13 @@ $(document).on('click', '.brand-index', function () {
var brandIndex = $(this).text();
$('.brand-wrap').find('[name="' + brandIndex + '"]').show().siblings().hide();
});
//*****************************************************************//
/*LBK*/
/*图片列表*/
$(document).on("click", '.is_show_name2', function () {
Bll.module.contentData.data.is_show_name = $(this).val();
Bll.renderDialog("imageList-template2");
});
//*****************************************************************//
/*图片列表*/
... ...
... ... @@ -4,47 +4,54 @@ var $ = require('jquery'),
common=require('../../common/common');
var g; //grid
var shopsId, jsonMain, jsonClone; //基础数据
var curDialogId; //当前打开的编辑弹层ID
var curPlatform = "pc"; //当前渲染页面用的模板名称
var curTemplateType = "2"; //当前模板类型 1:基础模板,2:经典模板
var shopType = 1; //店铺类型 1:单品牌,2:多品牌
var shopOperate = 'view'; //操作 editor:可编辑, view:查看不可编辑
var shopCategory = []; //店铺下所有的销售类目
var defaultSrc = "http://img01.yohoboys.com/staticimg/2016/05/19/15/01091c21f2317a64f123f1649fbbccf7ba.png"; //初始化默认图片路径
//添加一条不同弹层使用的初始化模板
var ENUM = {
"editor-largePic":{"src": "", "url": "", "startTime": "", "endTime": "", "publishStatus": 0},
"editor-largePic2":{"position":"", "data":[{"src": "", "url": "", "startTime": "", "endTime": "", "publishStatus": 0}]},
"editor-smallPic":{"src": "", "url": "", "startTime": "", "endTime": "", "publishStatus": 0},
"editor-brand":{"position":"", "name":"", "url":""},
"editor-recommend": {"position":"", "name":"", "enName":"", "src":"", "url":""},
"editor-hotRecommend":{"position":"", "src":"", "url":""},
"editor-signboard":{"position":"", "src":"", "url":"","startTime": "","endTime": "","publishStatus": 0},
"editor-newGoodTab":{"position":"", "name":"", "url":""},
"editor-hotGoodTab":{"position":"", "name":"", "url":""},
"editor-newProduct":{"productId":"", "position":"", "productName":"", "productSkn":"", "salesPrice":"", "src":"", "url":""},
"editor-hotProduct":{"productId":"", "position":"", "productName":"", "productSkn":"", "salesPrice":"", "src":"", "url":""}
}; //添加一条不同弹层使用的初始化模板
"editor-largePic":{"src": "", "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""},
"editor-largePic2":{"position":"", "data":[{"src": "", "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""}]},
"editor-smallPic":{"src": "", "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""},
"editor-recommend": {"position":"", "name":"", "enName":"", "src":"", "url":"", linkType:'1', categoryId:'-1'},
"editor-hotRecommend":{"position":"", "src":"", "url":"", linkType:'1', categoryId:'-1'},
"editor-signboard":{"position":"", "src":"", "url":"", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""},
"editor-newGoodTab":{"position":"", "name":"", "url":"", linkType:'1', categoryId:'-1'},
"editor-hotGoodTab":{"position":"", "name":"", "url":"", linkType:'1', categoryId:'-1'}
};
//初始化装修信息json
var resourcesNew = {
"shopTopBanner":{
"id":"",
"data": [{"shopSrc": defaultSrc, "detailSrc": defaultSrc, "isShowShopName": "N"}]
"data": [{"shopSrc":defaultSrc, "detailSrc":defaultSrc, "isShowShopName":"N"}]
},
"shopTopBanner_base":{
"id":"",
"data": [{"shopSrc": defaultSrc, "detailSrc": defaultSrc, "isShowShopName": "N"}]
"data": [{"shopSrc":defaultSrc, "detailSrc":defaultSrc, "isShowShopName":"N"}]
},
"navigationBar":{
"id":"",
"data": [{"name":"",url:""}, {"name":"",url:""}, {"name":"",url:""}]
"data": [
{"name":"", url:"", linkType:'1', categoryId:'-1'},
{"name":"", url:"", linkType:'1', categoryId:'-1'},
{"name":"", url:"", linkType:'1', categoryId:'-1'}
]
},
"largeSlideImg":{
"id":"",
"data": [{"position": 1, "data":[{"src": defaultSrc, "url": "", "startTime": "", "endTime": ""}]}]
"data": [
{"position": 1, "data":[{"src": defaultSrc, "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""}]}
]
},
"oneRowTwoColImages":{
"id":"",
"data": [
{"position": 2, "data":[{"src": defaultSrc, "url": "", "startTime": "", "endTime": ""}]},
{"position": 1, "data":[{"src": defaultSrc, "url": "", "startTime": "", "endTime": ""}]}
{"position": 2, "data":[{"src": defaultSrc, "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""}]},
{"position": 1, "data":[{"src": defaultSrc, "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""}]}
]
},
"brandBrowse":{
... ... @@ -54,22 +61,28 @@ var resourcesNew = {
"recommend":{
"id":"",
"title":"经典推荐",
"data": [{"position":1, "name":"默认商品", "enName":"", "src":defaultSrc, "url":""}]
"data": [
{"position":1, "name":"默认商品", "enName":"", "src":defaultSrc, "url":"", linkType:'1', categoryId:'-1'}
]
},
"hotRecommend":{
"id":"",
"title":"",
"data": [{"position":1, "src":defaultSrc, "url":""}]
"data": [
{"position":1, "src":defaultSrc, "url":"", linkType:'1', categoryId:'-1'}
]
},
"signboard":{
"id":"",
"data": [{"position": 1, "data":[{"src": defaultSrc, "url": "", "startTime": "", "endTime": ""}]}]
"data": [
{"position": 1, "data":[{"src": defaultSrc, "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""}]}
]
},
"goodsTabBar":{
"id":"",
"data": {
"new":[{"position":0, "name":"MORE", "url":""}],
"hot":[{"position":0, "name":"MORE", "url":""}]
"new":[{"position":0, "name":"MORE", "url":"", linkType:'1', categoryId:'-1'}],
"hot":[{"position":0, "name":"MORE", "url":"", linkType:'1', categoryId:'-1'}]
}
},
"newProducts":{
... ... @@ -93,35 +106,38 @@ var resourcesNew = {
"isUsed":"N",
"data": [{"shopSrc": defaultSrc, "detailSrc": defaultSrc, "isShowShopName": "N"}]
},
"oneRowTwoColImages_APP":{
"largeSlideImg_APP":{
"id":"",
"isUsed":"N",
"data": [
{"position": 2, "data":[{"src": defaultSrc, "url": "", "startTime": "", "endTime": ""}]},
{"position": 1, "data":[{"src": defaultSrc, "url": "", "startTime": "", "endTime": ""}]}
{"position": 1, "data":[{"src": defaultSrc, "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""}]}
]
},
"hotProducts_APP":{
"oneRowTwoColImages_APP":{
"id":"",
"isUsed":"N",
"data": []
"data": [
{"position": 2, "data":[{"src": defaultSrc, "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""}]},
{"position": 1, "data":[{"src": defaultSrc, "url": "", linkType:'1', categoryId:'-1', "startTime": "", "endTime": ""}]}
]
},
"allHotProducts_APP":{
"recommend_APP":{
"id":"",
"data":[]
"isUsed":"N",
"data": [
{"position":1, "name":"默认商品", "enName":"", "src":defaultSrc, "url":"", linkType:'1', categoryId:'-1'}
]
},
"largeSlideImg_APP":{
"hotProducts_APP":{
"id":"",
"isUsed":"N",
"data": [{"position": 1, "data":[{"src": defaultSrc, "url": "", "startTime": "", "endTime": ""}]}]
"data": []
},
"recommend_APP":{
"allHotProducts_APP":{
"id":"",
"isUsed":"N",
"data": [{"position":1, "name":"默认商品", "enName":"", "src":defaultSrc, "url":""}]
"data":[]
}
} //初始化装修信息json
var shopsId, _id, jsonMain, jsonClone;
};
getParams();
findDecoration();
... ... @@ -138,7 +154,6 @@ function getParams(){
shopsId = paramList[1];
shopType = paramList[2];
shopOperate = paramList[3];
_id = paramList[4];
}
if(shopOperate == 'editor'){
$(".moduleSubmite").show().siblings().hide();
... ... @@ -181,7 +196,7 @@ function showMain(){
if($(this).width() > 280){
$(this).css("right",(280-($(this).width()))+"px");
}
})
});
showEditorIconEvent();
}
//弹窗编辑主流程
... ... @@ -216,7 +231,7 @@ function editorIconEvent(title,id){
}
}
]
}
};
if(curPlatform == "pc"){
option = setSendToAppBtm(id, option);
}
... ... @@ -265,6 +280,10 @@ function findDecoration(){
//最新上架,最热商品接口
if(shopOperate == 'editor'){
//获取店铺下销售类目
findShopCategory();
//最新商品,最热单品
if(!jsonMain.resources.allNewProducts.data || jsonMain.resources.allNewProducts.data.length < 1){
findTopNewProducts();
}
... ... @@ -274,11 +293,26 @@ function findDecoration(){
if(!jsonMain.resources.allHotProducts_APP.data || jsonMain.resources.allHotProducts_APP.data.length < 1){
findTopHotProducts_APP();
}
/*findTopNewProducts(); findTopHotProducts(); findTopHotProducts_APP();*/
}
//渲染页面
showMain();
},true);
}
//Ajax查询店铺下销售类目
function findShopCategory() {
common.util.__ajax({
url:'/shops/shopCategory/list',
data: {
shopId: jsonMain.shopsId
}
},function(rs){
console.log(rs);
if(rs.data){
shopCategory = rs.data;
}
},true);
}
//Ajax最新上架商品
function findTopNewProducts(){
common.util.__ajax({
... ... @@ -353,7 +387,7 @@ function checkDecoration(checkStatus,comment){
common.util.__ajax({
url:'/shop/ShopsDecoratorRest/auditShopsDecorator',
data: {
"id": _id,
"shopsId": jsonMain.shopsId,
"checkStatus": checkStatus,
"comment": comment
}
... ... @@ -367,7 +401,7 @@ function checkDecoration(checkStatus,comment){
common.util.__ajax({
url:'/shop/ShopsDecoratorRest/auditShopsDecorator',
data: {
"id": _id,
"shopsId": jsonMain.shopsId,
"checkStatus": checkStatus
}
},function(rs){
... ... @@ -478,7 +512,13 @@ function gridInit(id){
return "<input class='form-control inputChange' type=text name='name' value='"+item.name+"' data-index='"+item.__index+"' maxlength='5' />";
}},
{display:"链接", render:function(item){
return "<input class='form-control inputChange urlInput' type=text name='url' value='"+(item.url).replace(/'/g,'\"')+"' data-index='"+item.__index+"' />";
if(item.url != ''){
item.linkType = item.linkType || '0';
}else{
item.linkType = item.linkType || '1';
}
item.categoryId = item.categoryId || '-1';
return common.util.__template2($("#link").html(),{data:item, categoryList:shopCategory, index:item.__index});
}}
]
});
... ... @@ -591,7 +631,13 @@ function gridInit(id){
}
}},
{display:"链接", render:function(item){
return "<input class='form-control inputChange urlInput' type=text name='url' value='"+(item.url).replace(/'/g,'\"')+"' data-index='"+item.__index+"' />";
if(item.url != ''){
item.linkType = item.linkType || '0';
}else{
item.linkType = item.linkType || '1';
}
item.categoryId = item.categoryId || '-1';
return common.util.__template2($("#link").html(),{data:item, categoryList:shopCategory, index:item.__index});
}},
{display:"操作", render:function(item){
var htmlPic = "",i=item.__index;
... ... @@ -639,7 +685,13 @@ function gridInit(id){
return "<input type=file fileType='9' name='signboardImage' id='hotRecommendImage_"+item.__index+"' value='"+item.src+"' />";
}},
{display:"链接", render:function(item){
return "<input class='form-control inputChange urlInput' type=text name='url' value='"+(item.url).replace(/'/g,'\"')+"' data-index='"+item.__index+"' />";
if(item.url != ''){
item.linkType = item.linkType || '0';
}else{
item.linkType = item.linkType || '1';
}
item.categoryId = item.categoryId || '-1';
return common.util.__template2($("#link").html(),{data:item, categoryList:shopCategory, index:item.__index});
}},
{display:"操作", render:function(item){
var htmlPic = "",i=item.__index;
... ... @@ -719,7 +771,13 @@ function gridInit(id){
if(item.__index == 0){
return "http://店铺商品列表页(默认)";
}else{
return "<input class='form-control inputChange urlInput' type=text name='url' value='"+(item.url).replace(/'/g,'\"')+"' data-index='"+item.__index+"' />";
if(item.url != ''){
item.linkType = item.linkType || '0';
}else{
item.linkType = item.linkType || '1';
}
item.categoryId = item.categoryId || '-1';
return common.util.__template2($("#link").html(),{data:item, categoryList:shopCategory, index:item.__index});
}
}},
{display:"操作", render:function(item){
... ... @@ -767,7 +825,13 @@ function gridInit(id){
if(item.__index == 0){
return "http://店铺商品列表页(默认)";
}else{
return "<input class='form-control inputChange urlInput' type=text name='url' value='"+(item.url).replace(/'/g,'\"')+"' data-index='"+item.__index+"' />";
if(item.url != ''){
item.linkType = item.linkType || '0';
}else{
item.linkType = item.linkType || '1';
}
item.categoryId = item.categoryId || '-1';
return common.util.__template2($("#link").html(),{data:item, categoryList:shopCategory, index:item.__index});
}
}},
{display:"操作", render:function(item){
... ... @@ -1166,15 +1230,15 @@ function editorTipInit(id){
function editorCheck(id){
switch (id){
case "editor-nav":
return checkUrlInput();
return (checkUrlInput() && checkCategory());
break;
case "editor-largePic":
return (checkNumInput() && checkEndTime() && checkUrlInput());
return (checkNumInput() && checkCategory() && checkEndTime() && checkUrlInput());
break;
case "editor-smallPic":
return (checkNumInput() && checkEndTime() && checkUrlInput());
return (checkNumInput() && checkCategory() && checkEndTime() && checkUrlInput());
break;
case "editor-brand":
... ... @@ -1188,7 +1252,7 @@ function editorCheck(id){
common.util.__tip("模块标题不能为空!");
return false;
}
if(checkNumInput() && checkUrlInput()){
if(checkNumInput() && checkCategory() && checkUrlInput()){
var nameList = $(".grid input[name='name']");
for(var i=0; i<nameList.length; i++){
if(!nameList.eq(i).val()){
... ... @@ -1202,19 +1266,19 @@ function editorCheck(id){
break;
case "editor-hotRecommend":
return (checkNumInput() && checkUrlInput());
return (checkNumInput() && checkCategory() && checkUrlInput());
break;
case "editor-signboard":
return (checkNumInput() && checkEndTime() && checkUrlInput());
return (checkNumInput() && checkCategory() && checkEndTime() && checkUrlInput());
break;
case "editor-newGoodTab":
return (checkNumInput() && checkUrlInput());
return (checkNumInput() && checkCategory() && checkUrlInput());
break;
case "editor-hotGoodTab":
return (checkNumInput() && checkUrlInput());
return (checkNumInput() && checkCategory() && checkUrlInput());
break;
case "editor-newProduct":
... ... @@ -1230,6 +1294,19 @@ function editorCheck(id){
break;
}
}
//销售类目校验
function checkCategory(){
var categoryList = $(".grid select[name='categoryId']:visible");
console.log(categoryList.length);
for(var i=0; i<categoryList.length; i++){
if(categoryList.eq(i).val() < 0){
categoryList.eq(i).focus().addClass("error");
common.util.__tip("请选择店铺销售类目!");
return false;
}
}
return true;
}
//排序序号校验
function checkNumInput(){
var positionList = $(".grid input[name='position']");
... ... @@ -1256,7 +1333,7 @@ function checkNumInput(){
}
//url域名校验
function checkUrlInput(){
var urlList = $(".grid input[name='url']");
var urlList = $(".grid input[name='url']:visible");
for(var i=0; i<urlList.length; i++){
var reg = new RegExp(".+\.yoho[^.]*\.(com|cn).*","g");
if(urlList.eq(i).val() != ""){
... ... @@ -1354,10 +1431,15 @@ function resourcesHtmlInit(item,resName){
var picList = item.data,
htmlPic = "";
for(var i=0; i<picList.length; i++){
picList[i].url=picList[i].url.replace(/'/g,'\"'); // 字符串里面单引号转换成双引号
htmlPic += "<div class='row'><div class='col-sm-2'>";
//picList[i].url=picList[i].url.replace(/'/g,'\"'); // 字符串里面单引号转换成双引号
if(i == 0){
htmlPic += "<div class='row' style='padding: 10px 0'>";
}else{
htmlPic += "<div class='row' style='padding: 10px 0; border-top: 1px solid #dddddd'>";
}
//大图资源位,小图资源位,水牌图片尺寸校验——fileType参数
//图片,大图资源位,小图资源位,水牌图片尺寸校验——fileType参数
htmlPic += "<div class='col-sm-2'>";
if(curPlatform == "pc"){
if(curDialogId == "editor-largePic"){//经典模板pc大图资源位
htmlPic += "<input type=file fileType='6' name='"+ resName +"Image' id='"+ resName +"Image_"+item.__index+"_"+i+"' value='"+picList[i].src+"' />";
... ... @@ -1377,19 +1459,43 @@ function resourcesHtmlInit(item,resName){
htmlPic += "<input type=file fileType='12' name='"+ resName +"Image' id='"+ resName +"Image_"+item.__index+"_"+i+"' value='"+picList[i].src+"' />";
}
}
htmlPic += "</div>";
//url&销售类目
console.log(picList[i].url);
if(picList[i].url != ''){
picList[i].linkType = picList[i].linkType || '0';
}else{
picList[i].linkType = picList[i].linkType || '1';
}
picList[i].categoryId = picList[i].categoryId || '-1';
htmlPic += "</div><div class='col-sm-3'><input type=text class='form-control inputChange urlInput' name='url' value='"+picList[i].url+"' data-index='"+item.__index+"_"+i+"' /></div>" +
"<div class='col-sm-2'>";
htmlPic += "<div class='col-sm-3'>";
htmlPic += common.util.__template2($("#link").html(),{data:picList[i], categoryList:shopCategory, index:item.__index+'_'+i});
htmlPic += "</div>";
//开始时间
htmlPic += "<div class='col-sm-2'>";
if(i>0){
htmlPic += "<input type=text class='form-control' disabled jsaction='time:end:endTime_"+item.__index+"_"+ i +"' id='startTime_"+item.__index+"_"+ i +"' name='startTime' value='"+ picList[i].startTime +"' />" +
"<span style='color: #999; font-size: 12px'>*上一条结束时间</span>";
}else{
htmlPic += "<input type=text class='form-control inputChange' style='background-color:#fff' readOnly='true' jsaction='time:end:endTime_"+item.__index+"_"+ i +"' id='startTime_"+item.__index+"_"+ i +"' name='startTime' value='"+ picList[i].startTime +"' data-index='"+ item.__index +"_"+ i +"' />";
}
htmlPic += "</div><div class='col-sm-2'>" +
"<input type=text class='form-control inputChange' style='background-color:#fff' readOnly='true' jsaction='time:start:startTime_"+item.__index+"_"+ i +"' id='endTime_"+item.__index+"_"+ i +"' name='endTime' value='"+ picList[i].endTime +"' data-index='"+ item.__index +"_"+ i +"' /></div>" +
"<div class='col-sm-1'><span class='publishStatus' style='white-space: nowrap; line-height: 40px'>"+ checkdate(picList[i].startTime,picList[i].endTime) +"</span></div>" +
"<div class='col-sm-2' style='line-height: 40px'>";
htmlPic += "</div>";
//结束时间
htmlPic += "<div class='col-sm-2'>"
+ "<input type=text class='form-control inputChange' style='background-color:#fff' readOnly='true' jsaction='time:start:startTime_"+item.__index+"_"+ i +"' id='endTime_"+item.__index+"_"+ i +"' name='endTime' value='"+ picList[i].endTime +"' data-index='"+ item.__index +"_"+ i +"' />"
+ "</div>";
//状态
htmlPic += "<div class='col-sm-1'><span class='publishStatus' style='white-space: nowrap; line-height: 40px'>"+ checkdate(picList[i].startTime,picList[i].endTime) +"</span></div>";
//操作
htmlPic += "<div class='col-sm-2' style='line-height: 40px'>";
if(i == (picList.length-1) && picList.length > 1){
htmlPic += "<input type=button class='btn btn-danger btn-xs deleteBtn' value='删除' data-index='"+ item.__index +"_"+ i +"' /><br>";
htmlPic += "<input type=button class='btn btn-info btn-xs addBtn' style='margin-top: 10px' value='添加一条' data-index='"+ item.__index +"_"+ i +"' />";
... ... @@ -1515,16 +1621,16 @@ $(document).on("click",".tabheader .nav-tabs li",function(){
$(this).addClass('active').siblings('li').removeClass('active');
curTemplateType = $(this).attr("data-toggle");
showMain();
})
});
//pc,app切换
$(document).on("click","input[name=brandLevel]",function(){
curPlatform = $("input[name=brandLevel]:checked").val();
showMain();
})
});
//暂存模板
$(document).on("click","#saveModule",function(){
saveDecoration(100);
})
});
//提交审核
$(document).on("click","#submitModule",function(){
jsonMain.templateType = curTemplateType;
... ... @@ -1537,7 +1643,7 @@ $(document).on("click","#submitModule",function(){
},
function(){}
)
})
});
//审核通过
$(document).on("click","#checkOk",function(){
common.dialog.confirm(
... ... @@ -1548,7 +1654,7 @@ $(document).on("click","#checkOk",function(){
},
function(){}
);
})
});
//驳回
$(document).on("click","#checkNo",function(){
common.dialog.confirm(
... ... @@ -1567,7 +1673,15 @@ $(document).on("click","#checkNo",function(){
},
function(){}
);
})
});
//销售类目&自定义切换
$(document).on("change", ".linkSelect", function () {
if($(this).val() == 0){ //自定义
$(this).next('.link_url').show().next('.link_category').hide();
}else{ //销售类目
$(this).next('.link_url').hide().next('.link_category').show();
}
});
//删除
$(document).on("click",".deleteBtn",function(){
var _index = $(this).data("index")+"";
... ... @@ -1605,7 +1719,7 @@ $(document).on("click",".addBtn",function(){
$(document).on("click",".addBtn2",function(){
if( curDialogId == "editor-largePic" && g.__rows.length > 4){
$(".largePicAddTip").text("* 最多只能添加5个资源位大图!").css("color","#ff0000");
return;
return false;
}else{
$(".largePicAddTip").empty();
g.__rows.push($.extend(true,{},ENUM["editor-largePic2"]));
... ... @@ -1660,7 +1774,7 @@ $(document).on("click",".topAdd",function(){
}else{
if(g.__rows.length < 8){
$(this).addClass("selected");
var item = $.extend({},ENUM[curDialogId]);
var item = {};
item.src = $(this).find('img').attr("src");
item.productId = $(this).attr("data-productId");
item.productName = $(this).attr("data-productName");
... ...
//BLK店铺装修
'use strict';
var $ = require('jquery'),
common=require('../../common/common');
var curShopId; //当前店铺id
var curTemplateType = "1"; //当前模板类型 1:默认模板
var curPlatform = "pc"; //当前渲染页面用的模板名称
var operation = 0; //操作 1:可编辑, 0:查看不可编辑
var curDialogId; //当前打开的编辑弹层ID
var curDialogData; //当前弹层数据
var curSelectedSkn = []; //当前所有已选商品的skn(用于:新品上架,人气单品)
//初始化默认图片路径
var defaultSrc = "http://img01.yohoboys.com/staticimg/2016/05/19/15/01091c21f2317a64f123f1649fbbccf7ba.png";
//初始化装修数据
var resourcesNew = {
shopTopBanner:{
id:'',
data:{shopSrc:defaultSrc, detailSrc:defaultSrc, isShowShopName: "N"}
},
shopTopBanner_app:{
id:'',
data:{shopSrc:defaultSrc}
},
navigationBar:{
id:'',
data: [{name:"", url:""}, {name:"", url:""}, {name:"", url:""}]
},
largeSlideImg:{
id:'',
data: [
{src:defaultSrc, url:''},
{src:defaultSrc, url:''}
]
},
oneRowTwoColImages:{
id:'',
data: [
{src:defaultSrc, url: ''},
{src:defaultSrc, url: ''}
]
},
newProducts:{
id:'',
data:[]
},
hotProducts:{
id:'',
data:[]
}
};
/***************数据层*****************/
var mainData = window.ViewModel.data;
operation = window.ViewModel.operation; //获取是否可编辑状态
curShopId = mainData.shopsId;
if(!mainData.resources || $.isEmptyObject(mainData.resources)){
mainData.resources = resourcesNew;
}
console.log(mainData);
//弹层编辑主配置
var ENUM = {
shopTopBanner:{
title:"PC顶部banner图片编辑",
template:"shopTopBanner",
data:"shopTopBanner",
tip:"上传图片大小不能超过500KB;店铺banner尺寸:1150*150;商品详情页banner尺寸:1920*45"
},
shopTopBanner_app:{
title:"APP顶部banner图片编辑",
template:"shopTopBanner_app",
data:"shopTopBanner_app",
tip:"请上传像素750*468的图片,上传图片大小不能超过500KB"
},
navigationBar:{
title:"导航栏编辑",
template:"navigationBar",
data:"navigationBar",
validate: ['url'],
tip:"标题名称最多五个汉字"
},
largeSlideImg:{
title:"资源位大图编辑",
template:"largeImg",
data:"largeSlideImg",
validate: ['url'],
tip:"请上传像素375*400的图片,上传图片大小不能超过500KB"
},
oneRowTwoColImages:{
title:"资源位小图编辑",
template:"smallImg",
data:"oneRowTwoColImages",
validate: ['url'],
tip:"请上传像素360*190的图片,上传图片大小不能超过500KB"
},
newProducts:{
title:"新品上架商品编辑",
template:"products",
width:"70%",
data:"newProducts"
},
hotProducts:{
title:"人气单品商品编辑",
template:"products",
width:"70%",
data:"hotProducts"
}
};
var g1 = new common.grid({
el: '.productTable',
parms: function() {
return {
shopsId: curShopId,
productSkn: common.util.__input("selectSkn")
};
},
columns: [
{display: "SKN", name: "productSkn"},
{display: "图片", render: function (item) {
return item.src ? '<img src="'+item.src+'?imageView/0/w/78/h/78">' : '';
}},
{display: "名称", name: "productName"},
{display: "销售价", name: "salesPrice"},
{display: "操作", render: function (item) {
if(curSelectedSkn.indexOf(item.productSkn) > -1){
return '<a href="javascript:" class="btn btn-warning btn-xs cancelProduct2" data-index="'+item.__index+'">取消选择</a>';
}else{
return '<a href="javascript:" class="btn btn-success btn-xs selectProduct" data-index="'+item.__index+'">选择</a>';
}
}}
]
});
var g2 = new common.grid({
el: '.productTable',
columns: [
{display: "排序", render: function (item) {
return "<input class='form-control observe' type=text name='position' value='"+item.position+"' data-field='"+item.__index+".position' style='width: 40px' />";
}},
{display: "SKN", name: "productSkn"},
{display: "图片", render: function (item) {
return item.src ? '<img src="'+item.src+'?imageView/0/w/78/h/78">' : '';
}},
{display: "名称", name: "productName"},
{display: "销售价", name: "salesPrice"},
{display: "操作", render: function (item) {
return '<a href="javascript:" class="btn btn-warning btn-xs cancelProduct" data-index="'+item.__index+'">取消选择</a>';
}}
]
});
var e = new common.edit2(".editorMain",{bucket:"yhb-img02"});
/***************公共方法层*****************/
//公共渲染方法
var Bll = {
init: function () {
switch(operation){
case 0: //查看
$('#decorationBack').show();
break;
case 1: //编辑
$('#decorationSubmite').show();
break;
case 2: //审核
$('#decorationCheck').show();
break;
default:
break;
}
this._templateRender();
},
//打开弹层
openDialog: function (id) {
curDialogId = id;
var tip = ENUM[id].tip ? "提示:" + ENUM[id].tip : '';
var option = {
title:ENUM[id].title,
content:"<div class='editorMain'></div><div class='editorTip'>"+tip+"</div>",
width:ENUM[id].width ? ENUM[id].width : '60%',
button:[
{value:"取消", callback:function(){
curDialogData = null;
curSelectedSkn.length = 0;
}},
{value:"确认", css:"btn-info", callback:function(){
var checkResult = true;
if(ENUM[id].validate && ENUM[id].validate.length > 0){
$.each(ENUM[id].validate, function (index, item) {
checkResult = (checkResult && checkFunction[item].call(null));
if(!checkResult) return false;
})
}
if(checkResult){
//如果是新品上架或者人气单品,需要对已选商品倒序排序
if(ENUM[id].template == "products"){
curDialogData.data = sortArry(curDialogData.data, 1);
}
mainData.resources[ENUM[id].data] = curDialogData;
curDialogData = null;
curSelectedSkn.length = 0;
Bll._templateRender();
}else{
return false;
}
}}
]
};
new common.dialog(option);
$('.modal-dialog .close').hide();
//克隆当前弹层数据
curDialogData = $.extend(true,{},mainData.resources[ENUM[id].data]);
//渲染弹层主体内容
this._dialogRender(ENUM[id].template, curDialogData);
},
//渲染装修模板
_templateRender: function () {
$('#main').empty().html(common.util.__template2($("#"+curTemplateType+"-"+curPlatform).html(), mainData));
this._canEditEvent();
},
//渲染装修编辑弹层
_dialogRender: function (templateId, data) {
$('.editorMain').html(common.util.__template2($("#"+templateId).html(), data));
this._editRender();
if(templateId == "products"){
$.each(curDialogData.data, function (index, item) {
curSelectedSkn.push(item.productSkn);
});
//初始化默认展示全部商品
$('.filter').show();
$('.selectedProductsNum').text(curDialogData.data.length);
g1.init("/shop/decoration/findBlkProductByShopsId");
}
},
//edit组件初始化
_editRender: function () {
e.init();
e.on("file_onComplete", function (obj) {
var field = obj.field;
curDialogData.data = common.util.__buildobj(field, '.', curDialogData.data, function (o, name) {
o[name] = obj.data;
});
});
},
//绑定可编辑动画
_canEditEvent: function () {
if(operation == 1){
$("#main .canEdit").hover(function () {
$(this).append("<div class='editBorder'></div><a class='editIcon' href='javascript:'>编辑</a>");
}, function () {
$(".editIcon").remove();
$(".editBorder").remove();
});
}
}
};
//校验方法
var checkFunction = {
name: function () {
var nameList = $(".editorMain input[name='name']");
for(var i=0; i<nameList.length; i++){
var value = $(nameList[i]).val();
if(value == ""){
common.util.__tip("名称为空!");
return false;
}
}
return true;
},
url: function () {
var urlList = $(".editorMain input[name='url']");
for(var i=0; i<urlList.length; i++){
var reg = new RegExp(".+\.yoho[^.]*\.(com|cn).*","g");
var value = $(urlList[i]).val();
if(value != ""){
if(!reg.test(value)){
common.util.__tip("Url必须包含yohobuy或者yoho,域名格式为com或者cn!");
return false;
}
}
}
return true;
}
};
Bll.init();
/***************事件层*****************/
//pc,app切换
$(document).on("click", "input[name='Platform']", function(){
curPlatform = $("input[name='Platform']:checked").val();
Bll._templateRender();
});
//编辑触发弹层
$(document).on("click", ".editIcon", function () {
var dialogId = $(this).parent('.canEdit').data("dialogid");
Bll.openDialog(dialogId);
});
//通过skn查询
$(document).on("click", "#filterSkn", function(){
g1.reload();
});
//input监听绑定json
$(document).on("change", ".observe", function () {
var value = $(this).val();
var field = $(this).data("field");
curDialogData.data = common.util.__buildobj(field, '.', curDialogData.data, function (obj, name) {
obj[name] = value;
});
});
//全部&已选tab切换
$(document).on("click", ".productsTabs .nav-tabs li", function () {
if($(this).hasClass("active")) return false;
$(this).addClass('active').siblings('li').removeClass('active');
var _index = $(this).index();
//全部商品
if(_index == 0){
$('.filter').show();
$('#selectSkn').val('');
g1.init("/shop/decoration/findBlkProductByShopsId");
}
//已选商品
if(_index == 1){
$('.filter').hide();
g2.init(curDialogData.data);
}
});
//选择商品
$(document).on("click", ".selectProduct", function () {
var index = $(this).data("index");
var item = g1.rows[index];
curDialogData.data.push({
position: 0,
src: item.src,
productId:item.productId,
productSkn: item.productSkn,
productName:item.productName,
salesPrice:item.salesPrice,
goodsId: item.goodsId,
cnAlphabet: item.cnAlphabet
});
curSelectedSkn.push(item.productSkn);
$('.selectedProductsNum').text(curDialogData.data.length);
$(this).parent().html('<a href="javascript:" class="btn btn-warning btn-xs cancelProduct2" data-index="'+index+'">取消选择</a>');
});
//在已选商品中,取消选择商品
$(document).on("click", ".cancelProduct", function () {
var index = $(this).data("index");
[].splice.call(curDialogData.data, index, 1);
[].splice.call(curSelectedSkn, index, 1);
$('.selectedProductsNum').text(curDialogData.data.length);
g2.init(curDialogData.data);
});
//在全部商品中,取消选择商品
$(document).on("click", ".cancelProduct2", function () {
var index = $(this).data("index");
$.each(curDialogData.data, function (_index, item) {
if(item.productSkn == g1.rows[index].productSkn){
[].splice.call(curDialogData.data, _index, 1);
[].splice.call(curSelectedSkn, _index, 1);
return false;
}
});
$('.selectedProductsNum').text(curDialogData.data.length);
$(this).parent().html('<a href="javascript:" class="btn btn-success btn-xs selectProduct" data-index="'+index+'">选择</a>');
});
//暂存 submitStatus=100
$(document).on("click", "#saveDecoration", function () {
console.log(mainData);
common.util.__ajax({
url:'/shop/decoration/saveBlkShopsDecorator',
data: {
submitStatus: 100,
shopsId: mainData.shopsId,
resources: JSON.stringify(mainData.resources)
}
},function(rs){
if(rs.data){
mainData = rs.data;
Bll._templateRender();
}
});
});
//提交审核 submitStatus=200
$(document).on("click", "#submitDecoration", function () {
common.util.__ajax({
url:'/shop/decoration/saveBlkShopsDecorator',
data: {
submitStatus: 200,
shopsId: mainData.shopsId,
resources: JSON.stringify(mainData.resources)
}
},function(rs){
setTimeout(function() {
location.href="/supplier/shop/decoration";
}, 1000);
});
});
//审核通过 blkCheckStatus=300
$(document).on("click", "#checkOk", function () {
common.dialog.confirm(
"审核通过确认",
"你确认<strong style='color:#5cb85c'>审核通过</strong>么?",
function(){
common.util.__ajax({
url:'/shop/ShopsDecoratorRest/auditBlkShopsDecorator',
data: {
shopsId: mainData.shopsId,
blkCheckStatus: 300
}
},function(rs){
common.util.__tip("审核通过成功!","success");
setTimeout(function() {
location.href="/supplier/check/index";
}, 1000);
},true);
},
function(){}
);
});
//驳回 blkCheckStatus=900
$(document).on("click","#checkNo",function(){
common.dialog.confirm(
"审核驳回",
"你确认<strong style='color:#d9534f'>审核驳回</strong>么?如果确认,<strong style='color: #f0ad4e'>请填写驳回理由!</strong>" +
"<textarea id='checkComment' class='form-control' rows='3' style='margin: 10px 0'></textarea>" +
"<div class='checkTip' style='display: none;color: #ff0000'><span>提示:请填写驳回理由!</span></div>",
function(){
var comment = $("#checkComment").val();
if(comment){
common.util.__ajax({
url:'/shop/ShopsDecoratorRest/auditBlkShopsDecorator',
data: {
shopsId: mainData.shopsId,
blkCheckStatus: 900,
blkComment: comment
}
},function(rs){
common.util.__tip("审核驳回成功!","success");
setTimeout(function() {
location.href="/supplier/check/index";
}, 1000);
},true);
}else{
$(".checkTip").show();
return false;
}
},
function(){}
);
});
/******************工具方法******************/
//json数组排序, dir参数:0:从小到大,1:从大到小
function sortArry(arr,dir){
var len = arr.length, tmp;
for(var i=0; i < len-1; i++){
if(dir == 0){
for(var j=0; j < len-1-i; j++){
if(parseInt(arr[j].position) > parseInt(arr[j+1].position)){
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
if(dir == 1){
for(var j=0; j < len-1-i; j++){
if(parseInt(arr[j].position) < parseInt(arr[j+1].position)){
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
return arr;
}
\ No newline at end of file
... ...
... ... @@ -31,7 +31,8 @@ var g = new common.grid({
parms: function() {
return {
shopsId: common.util.__input("shop-name"),
checkStatus: common.util.__input("status"),
checkStatus: common.util.__input("yohoStatus"),
blkCheckStatus: common.util.__input("blkStatus"),
supplierId: common.util.__input("supplier-name"),
brandId: common.util.__input("brand-name")
};
... ... @@ -59,26 +60,26 @@ var g = new common.grid({
}
}, {
display: "创建时间",
name: "createTime",
render: function(item) {
if (item.createTime) {
return common.util.__dateFormat(new Date(item.createTime * 1000), "yyyy-MM-dd hh:mm:ss");
} else {
return '';
}
}
name: "createTime"
// render: function(item) {
// if (item.createTime) {
// return common.util.__dateFormat(new Date(item.createTime * 1000), "yyyy-MM-dd hh:mm:ss");
// } else {
// return '';
// }
// }
}, {
display: "更新时间",
name: "updateTime",
render: function(item) {
if (item.updateTime) {
return common.util.__dateFormat(new Date(item.updateTime * 1000), "yyyy-MM-dd hh:mm:ss");
} else {
return '';
}
}
name: "updateTime"
// render: function(item) {
// if (item.updateTime) {
// return common.util.__dateFormat(new Date(item.updateTime * 1000), "yyyy-MM-dd hh:mm:ss");
// } else {
// return '';
// }
// }
}, {
display: "状态",
display: "有货状态",
name: "checkStatus",
render: function(item) {
if (item.checkStatus) {
... ... @@ -87,28 +88,71 @@ var g = new common.grid({
return '待装修';
}
}
},{
display: "BLK状态",
name: "blkCheckStatus",
render: function(item) {
if (item.blkCheckStatus) {
return ENUM.checkStatus[item.blkCheckStatus]
} else {
return '待装修';
}
}
}, {
display: "操作",
render: function(item) {
var HtmArr = [];
/**********************yoho店铺***************************/
HtmArr.push("<div>");
if(+item.checkStatus == 200){
HtmArr.push('<a href="/supplier/store/decorationDetail/'+item.shopsId+'/'+item.shopsType+'/view/'+item.id+'/" class="btn btn-info btn-xs">装修查看</a>');
HtmArr.push('<a href="/supplier/store/decorationDetail/'+item.shopsId+'/'+item.shopsType+'/view/" class="btn btn-info btn-xs">有货装修查看</a>');
}else {
HtmArr.push('<a href="/supplier/store/decorationDetail/'+item.shopsId+'/'+item.shopsType+'/editor/'+item.id+'/" class="btn btn-primary btn-xs">装修编辑</a>');
HtmArr.push('<a href="/supplier/store/decorationDetail/'+item.shopsId+'/'+item.shopsType+'/editor/" class="btn btn-primary btn-xs">有货装修编辑</a>');
}
if (+item.checkStatus == 900) {
HtmArr.push('<a href="javascript:;" class="btn btn-warning btn-xs commentBtn" data-comment="'+item.comment+'">有货驳回理由</a>');
}
if(item.passStatus && +item.passStatus == 1){
if(+item.shopStatus == 1){
// 1开启 0 关闭
HtmArr.push('<a data-index="'+item.__index+'" href="javascript:void(0);" class="closeshops btn btn-danger btn-xs">关店</a>');
HtmArr.push('<a data-index="'+item.__index+'" href="javascript:void(0);" class="closeshops btn btn-danger btn-xs">有货关店</a>');
}else{
HtmArr.push('<a data-index="'+item.__index+'" href="javascript:void(0);" class=" openshops btn btn-success btn-xs">开店</a>');
HtmArr.push('<a data-index="'+item.__index+'" href="javascript:void(0);" class=" openshops btn btn-success btn-xs">有货开店</a>');
}
}
if (+item.checkStatus == 900) {
HtmArr.push('<a href="javascript:void(0)" class="btn btn-warning btn-xs commentBtn" data-comment="'+item.comment+'">驳回理由</a>');
HtmArr.push("</div>");
/**********************blk店铺***************************/
if(item.blkProductNum && item.blkProductNum > 0){ //该店铺下有blk商品
HtmArr.push("<div style='margin-top: 10px'>");
if(+item.blkCheckStatus == 200){
HtmArr.push('<a href="/shop/decoration/blkView/'+item.shopsId+'" class="btn btn-info btn-xs">BLK装修查看</a>');
}else {
HtmArr.push('<a href="/shop/decoration/blkEdit/'+item.shopsId+'" class="btn btn-primary btn-xs">BLK装修编辑</a>');
}
if (+item.blkCheckStatus == 900) {
HtmArr.push('<a href="javascript:;" class="btn btn-warning btn-xs commentBtn" data-comment="'+item.blkComment+'">BLK驳回理由</a>');
}
if(item.blkPassStatus && +item.blkPassStatus == 1){
if(+item.blkShopStatus == 1){
// 1开启 0 关闭
HtmArr.push('<a data-index="'+item.__index+'" href="javascript:void(0);" class="closeshops_blk btn btn-danger btn-xs">BLK关店</a>');
}else{
HtmArr.push('<a data-index="'+item.__index+'" href="javascript:void(0);" class=" openshops_blk btn btn-success btn-xs">BLK开店</a>');
}
}
HtmArr.push("</div>");
}
return HtmArr.join('');
... ... @@ -145,16 +189,28 @@ var Bll={
});
});
}
}
};
//关闭yoho店铺
$(document).on('click', '.closeshops', function() {
var item=g.rows[$(this).data("index")];
Bll.toast("确定要关闭此有货店铺吗?","/supplier/store/closeShops",item.shopsId);
});
//开启yoho店铺
$(document).on('click', '.openshops', function() {
var item=g.rows[$(this).data("index")];
Bll.toast("确定要开启此有货店铺吗?","/supplier/store/openShops",item.shopsId);
});
//关闭店铺
$('#basicTable').on('click', '.closeshops', function() {
//关闭blk店铺
$(document).on('click', '.closeshops_blk', function() {
var item=g.rows[$(this).data("index")];
Bll.toast("确定要关闭此店铺吗?","/supplier/store/closeShops",item.shopsId);
Bll.toast("确定要关闭此BLK店铺吗?","/supplier/store/closeBlkShops",item.shopsId);
});
//开启店铺
$('#basicTable').on('click', '.openshops', function() {
//开启blk店铺
$(document).on('click', '.openshops_blk', function() {
var item=g.rows[$(this).data("index")];
Bll.toast("确定要开启此店铺吗?","/supplier/store/openShops",item.shopsId);
Bll.toast("确定要开启此BLK店铺吗?","/supplier/store/openBlkShops",item.shopsId);
});
\ No newline at end of file
... ...
... ... @@ -52,7 +52,7 @@ var t = new common.tab({
new common.dropDown({el: "#status"});
new common.dropDown({el: "#store-type"});
new common.dropDown({el: "#store-model"});
new common.dropDown({el: "#brand-name", ajax: "brand");
new common.dropDown({el: "#brand-name", ajax: "brand"});
new common.dropDown({el: "#supplier-name", ajax: "supplier"});
var authority = JSON.parse($("#authority").val());
... ... @@ -69,7 +69,8 @@ var g = new common.grid({
"brandId": common.util.__input("brand-name"),
"checkStatus": (+t.active) ? 200 : common.util.__input("status"),
"operationStatus": authority.operationStatus,
"checkStatusArr": authority.checkStatusArr
"checkStatusArr": authority.checkStatusArr,
"blkCheckStatus": 200
};
},
columns: [
... ... @@ -90,15 +91,33 @@ var g = new common.grid({
{display: "更新时间", name: "updateTime"},
{
display: "状态", name: "checkStatus", render: function (item) {
return ENUM.status[item.checkStatus];
var status = '';
if (t.active == "1"){
if(item.checkStatus){
status += "有货店铺" + ENUM.status[item.checkStatus] + "<br>";
}
if(item.blkCheckStatus){
status += "BLK店铺" + ENUM.status[item.blkCheckStatus];
}
}else {
status = ENUM.status[item.checkStatus];
}
return status;
}
},
{
display: "操作", name: "", render: function (item) {
var HtmArr = [];
if (t.active == "1") {
HtmArr.push('<a href="/supplier/store/decorationDetail/' + item.shopsId + '/' + item.shopsType + '/check/' + item.id + '/" class="btn btn-info btn-xs">装修查看</a>');
if (t.active == "1") { //店铺装修审核
if(+item.checkStatus == 200){
HtmArr.push('<a href="/supplier/store/decorationDetail/' + item.shopsId + '/' + item.shopsType + '/check/" class="btn btn-info btn-xs">有货装修查看</a>');
}
if(+item.blkCheckStatus == 200){
HtmArr.push('<a href="/shop/decoration/blkCheck/'+item.shopsId+'" class="btn btn-info btn-xs">BLK装修查看</a>')
}
} else {
HtmArr.push('<a href="/supplier/store/' + authority.info + '/' + item.shopsId + '" href="javascript:void(0);" class="btn btn-info btn-xs">查看</a>');
}
... ...
'use strict';
var $ = require('jquery'),
common = require('../../../common/common');
var curShopId = -1,
curCategoryId = 0,
selectedNum = 0,
curTab = 0;
var g1 = new common.grid({
el: '#productTable',
parms: function() {
return {
shopId: curShopId,
categoryId: curCategoryId,
productSKN: common.util.__input("productSKN"),
factoryCode: common.util.__input("factoryCode")
};
},
columns: [
{display: "商品图片", render: function (item) {
return item.productPic ? '<img src="'+item.productPic+'?imageView/0/w/40/h/60">' : '';
}},
{display: "SKN", name: "productSKN"},
{display: "厂家编号", name: "factoryCode"},
{display: "商品名称", name: "productName"},
{display: "销售价(元)", name: "salePrice"},
{display: "分类", name: "productSort"},
{display: "销售类目", render: function (item) {
var name = item.categoryName ? item.categoryName : '未分类';
var categoryList = '<span class="name" style="display: block; text-align: center">'+ name +'</span>';
if(item.saleCategory && item.saleCategory.length > 1){
categoryList += '<ul class="list" style="display: none;margin: 0; padding: 0;text-align:center">';
for(var i=0; i<item.saleCategory.length; i++){
categoryList += '<li>'+item.saleCategory[i]+'</li>'
}
categoryList += '</ul>' +
'<a href="javascript:" class="moreCategory" style="display: block;text-align: center;color:#999" data-num="'+(item.saleCategory.length-1)+'">' +
'显示更多('+(item.saleCategory.length-1)+')</a>';
}
return categoryList;
}},
{display: "操作", render: function (item) {
if(item.checked){
return '<a href="javascript:" class="btn btn-warning btn-xs cancelProduct" data-index="'+item.__index+'">取消选择</a>'
}else{
return '<a href="javascript:" class="btn btn-success btn-xs selectProduct" data-index="'+item.__index+'">选择</a>'
}
}}
],
complete2: function (res) {
selectedNum = res.data.checkedCount;
$('.selectedProductsNum').text(selectedNum);
}
});
var g2 = new common.grid({
el: '#productTable',
parms: function() {
return {
shopId: curShopId,
categoryId: curCategoryId,
productSKN: common.util.__input("productSKN"),
factoryCode: common.util.__input("factoryCode")
};
},
columns: [
{display: "商品图片", render: function (item) {
return item.productPic ? '<img src="'+item.productPic+'?imageView/0/w/40/h/60">' : '';
}},
{display: "SKN", name: "productSKN"},
{display: "厂家编号", name: "factoryCode"},
{display: "商品名称", name: "productName"},
{display: "销售价(元)", name: "salePrice"},
{display: "分类", name: "productSort"},
{display: "销售类目", render: function (item) {
var name = item.categoryName ? item.categoryName : '未分类';
var categoryList = '<span class="name" style="display: block; text-align: center">'+ name +'</span>';
if(item.saleCategory && item.saleCategory.length > 1){
categoryList += '<ul class="list" style="display: none;margin: 0; padding: 0;text-align:center">';
for(var i=0; i<item.saleCategory.length; i++){
categoryList += '<li>'+item.saleCategory[i]+'</li>'
}
categoryList += '</ul>' +
'<a href="javascript:" class="moreCategory" style="display: block;text-align: center;color:#999" data-num="'+(item.saleCategory.length-1)+'">' +
'显示更多('+(item.saleCategory.length-1)+')</a>';
}
return categoryList;
}},
{display: "操作", render: function (item) {
return '<a href="javascript:" class="btn btn-warning btn-xs cancelProduct" data-index="'+item.__index+'">取消选择</a>'
}}
],
complete2: function (res) {
selectedNum = res.data.list.length;
$('.selectedProductsNum').text(selectedNum);
}
});
var Bll = {
init: function () {
this.getParamsInUrl();
$('#shopId b').text(curShopId);
g1.init('/shops/shopCategory/allProducts');
},
getParamsInUrl: function () {
var paramUrl = location.href + "";
if(paramUrl.indexOf("edit") > 0){
var param = paramUrl.substring(paramUrl.indexOf("edit"));
var paramList = param.split("/");
curShopId = paramList[1];
curCategoryId = paramList[2];
}
}
};
Bll.init();
//tab切换
$(document).on("click", ".nav-tabs li", function () {
if($(this).hasClass('active')) return false;
$(this).addClass('active').siblings().removeClass('active');
curTab = $(this).index();
switch (curTab){
case 0:
$('.cancelAll').hide();
g1.init('/shops/shopCategory/allProducts');
break;
case 1:
$('.cancelAll').show();
g2.init('/shops/shopCategory/selectedProducts');
break;
}
});
//选择商品
$(document).on("click", ".selectProduct", function () {
var self = this;
var index = $(self).data("index");
var item = g1.rows[index];
common.util.__ajax({
url:'/shops/shopCategory/link',
data:{
categoryId: curCategoryId,
productSKN: item.productSKN
}
},function(){
$(self).parent().html('<a href="javascript:" class="btn btn-warning btn-xs cancelProduct" data-index="'+index+'">取消选择</a>');
$('.selectedProductsNum').text(++selectedNum);
}, true);
});
//在全部商品中,取消选择商品
$(document).on("click", ".cancelProduct", function () {
var self = this;
var index = $(self).data("index");
var g = curTab == 0 ? g1 : g2;
var item = g.rows[index];
common.util.__ajax({
url:'/shops/shopCategory/unlink',
data:{
categoryId: curCategoryId,
productSKN: item.productSKN
}
},function(){
if(curTab == 0){
$(self).parent().html('<a href="javascript:" class="btn btn-success btn-xs selectProduct" data-index="'+index+'">选择</a>');
$('.selectedProductsNum').text(--selectedNum);
}
if(curTab == 1){
g2.reload();
}
}, true);
});
//全部取消选择
$(document).on("click", ".cancelAll", function () {
common.dialog.confirm(
"温馨提示", "你确定全部取消选择所有商品么?",
function(){
common.util.__ajax({
url:'/shops/shopCategory/unlinkAll',
data:{
categoryId: curCategoryId
}
},function(){
g2.reload();
}, true);
},
function(){}
);
});
//查看更多销售类目
$(document).on("click", ".moreCategory", function () {
var num = $(this).data('num');
if($(this).hasClass('open')){
$(this).text('显示更多('+num+')').removeClass('open').prev('ul').hide().prev('span').show();
}else{
$(this).text('收起').addClass('open').prev('ul').show().prev('span').hide();
}
});
//筛选
$(document).on("click", ".filter-btn", function () {
if(curTab == 0){
g1.reload();
}else{
g2.reload();
}
});
//返回
$(document).on("click", ".btn-return", function () {
location.href="/shop/shopCategory/index/" + curShopId;
});
\ No newline at end of file
... ...