Authored by liuyue

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

'use strict';
var $ = require('jquery'),
common=require('../../common/common');
var ENUM={
//1待上架,2待审核,3驳回,4通过,1已上架,0已下架,5再上架待审核,6再上架驳回,7再上架通过。
//enum:{0:'已下架',
// 1:'待上架',
// 2:'待审核',
// 3:'驳回',
// 4:'通过',
// 5:'再上架待审核',
// 6:'再上架驳回',
// 7:'再上架通过'
//},
//tips:{"0":0,"1":0,"2":0,"3":0,"4":0,"all":0}
enum:{
2:'待审核',
3:'驳回',
4:'通过',
all:"全部商品"
},
tips:{"2":0,"3":0,"4":0,"all":0}
}
// 审核状态枚举
var AuditEnum = {
status:{
100:"待审核",
200:"审核通过",
300:"驳回",
"":"过期",
"1":"作废",
}
}
// 年龄层枚举
var AgeLevelEnum = {
level: {
1:"成人",
2:"大童",
3:"小童",
"":"未知年龄"
}
}
// 性别
var GenderEnum = {
gender: {
1: "男",
2: "女",
3: "通用"
}
}
// 商品类型
var GoodsTypeEnum = {
type: {
1:"普通商品",
2:"赠品",
3:"虚拟商品",
"":"未知类型"
}
}
/*下拉选择*/
new common.dropDown({el:"#shopId",ajax:"queryShop"});
new common.dropDown({el:"#brandId",ajax:"queryBrand"});
new common.dropDown({el:"#founder",ajax:"querySupplier"});
var tabTree=new common.tabTree("#sort");
tabTree.init();
var t = new common.tab({
el:"#basicTab",
click:function(){
g.reload(1);
},
columns:[
{name:"2",display:"待审核({2})"},
{name:"3",display:"驳回({3})"},
{name:"4",display:"通过({4})"},
{name:"all",display:"全部商品({all})"}
]
}).init(ENUM.tips);
var g = new common.grid({
el: '#basicTable',
parms:function(){
return {
productSkn:common.util.__input("productSkn"),
productSkc:common.util.__input("productSkc"),
productSku:common.util.__input("productSku"),
productName: common.util.__input("productName"),
shopId: common.util.__input("shopId"),
brandId:common.util.__input("brandId"),
isJit: common.util.__input("isJit"),
gender: common.util.__input("gender"),
maxSortId: tabTree.selected.length>0?tabTree.selected[0].id:"", // 一级类目
middleSortId: tabTree.selected.length>1?tabTree.selected[1].id:"", // 二级类目
smallSortId: tabTree.selected.length>2?tabTree.selected[2].id:"", // 三级类目
size: common.util.__input("size"),
};
},
columns:[
{
display: '',
type: 'checkbox'
}, {
display: 'SKN',
name: 'productSkn'
},{
display: '图片',
name: 'picImgUrl',
render: function(item) {
return '<img src="' + item.picImgUrl + '">';
}
},
{
display: '商品信息',
render: function(item) {
return '<p><strong>名称:</strong>' + item.productName + '</p>' +
'<p><strong>品牌:</strong>' + item.brandName + '</p>' +
'<p><strong>类目:</strong>' + item.maxSortName + '/' + item.middleSortName + '</p>';
}
},
{display:"售价",
render: function(item) {
return '<p><strong>吊牌价:</strong>' + item.retailPrice + '</p>' +
'<p><strong>销售价:</strong>' + item.salesPrice + '</p>' +
'<p><strong>是否VIP:</strong></p>' +
'<p style="color: #ccc;"><strong>yoho币:</strong>' + item.returnCoin + '</p>';
}
},
{
display: '库存',
name: 'stock'
},
{display:"年龄层/性别",render:function(item){
var html=[];
var ageLevel = AgeLevelEnum.level[item.ageLevel];
var gender = GenderEnum.gender[item.gender];
html.push("<p>"+ageLevel+" / "+gender+"</p>");
return html.join('');
}},
{display:"预售/奥莱",render:function(item){
var html=[];
//判断是否是预售商品
if (item.isAdvance === "Y") {
html.push("<p>预售</p>");
} else {
html.push("<p>否</p>");
}
if (item.isOutLets == "Y") {
html.push( "<p>/奥莱</p>");
} else {
html.push( "<p>/否</p>");
}
return html.join('');
}},
{display:"上架时间",render: function (item) {
return "<p>"+item.shelveTime+"</p>";
}},
{display:"商品类别", render: function(item) {
var type = GoodsTypeEnum.type[item.attribute] ? GoodsTypeEnum.type[item.attribute]:"未知类型";
return "<p>"+type+"</p>"
}},
{display:"操作信息",render:function(item){
var html=[];
html.push("<p>"+item.founderName+"</p>");
html.push("<p>"+item.editTime+"</p>");
return html.join('');
}},
{display:"操作",render:function(item){
var html=[];
html.push('<a data-index="'+ item.__index+ '" href="JavaScript:;" class="btn btn-info btn-xs edit-class-btn" id="btn-item-info">查看</a>');
html.push('<a data-index="'+ item.__index+ '" href="JavaScript:;" class="btn btn-info btn-xs edit-class-btn" id="btn-item-pass">通过</a>');
html.push('<a data-index="'+ item.__index+ '" href="JavaScript:;" class="btn btn-info btn-xs edit-class-btn" id="btn-item-reject">驳回</a>');
return html.join('');
}},
]
});
g.init('/goods/netsale/getList');
// tab初始化
var loadTab = function () {
t.active = undefined;
setTimeout(function () {
common.util.__ajax({
url:"/supplier/baseproduct/auditGoodsCount",
//data:g.options.parms()
}, function (res) {
var __dt=$.extend({},ENUM.tips,res.data);
t.init(__dt);
}, true);
}, 400);
}
loadTab();
// 筛选
$(document).on('click', "#filter-btn", function () {
g.reload();
});
var Bll={
toast:function(content,fn){
common.dialog.confirm("温馨提示",content,function(){
common.util.__ajax({
url:'/supplier/baseproduct/auditReject',
data:fn()
},function(){
g.reload();
});
});
}
}
//批量驳回
$(document).on("click","#reject-btn",function(){
var selectedArr = g.selected,
len = selectedArr.length,
sknList = [];
if (len <= 0) {
common.util.__tip('请选择要驳回的商品', 'warning');
return;
}
var data=function(){
var reason = $('#reason').val();
if (reason === '' || $.trim(reason) === '') {
return "请填写驳回原因";
}
$.each(selectedArr, function(i, value) {
sknList.push(value['productSkn']);
});
console.log(sknList);
return {
productSknList:JSON.stringify(sknList),
targetStatus:3, // 驳回
rejectReason: reason
};
}
Bll.toast($("#template").html(),data);
});
//批量通过
$(document).on("click","#pass-btn",function(){
var selectedArr = g.selected,
len = selectedArr.length,
sknList = [];
if (len <= 0) {
common.util.__tip('请选择审核通过的商品', 'warning');
return;
}
var data=function(){
$.each(selectedArr, function(i, value) {
sknList.push(value['productSkn']);
});
console.log(sknList);
return {
productSknList:JSON.stringify(sknList),
targetStatus:4, // 通过
rejectReason: ""
};
}
Bll.toast("确定要通过该申请吗?",data);
});
// 单个驳回
$(document).on("click","#btn-item-reject",function(){
//auditOperation([],3,)
var item=g.rows[$(this).data("index")];
var data=function(){
var reason = $('#reason').val();
if (reason === '' || $.trim(reason) === '') {
return "请填写驳回原因";
}
return {
productSknList:JSON.stringify([item.productSkn]),
targetStatus:3, // 驳回
rejectReason:reason
};
}
Bll.toast($("#template").html(),data);
});
// 单个通过
$(document).on("click","#btn-item-pass",function(){
//auditOperation([],3,)
var item=g.rows[$(this).data("index")];
var data=function(){
return {
productSknList:JSON.stringify([item.productSkn]),
targetStatus:4, //通过
rejectReason:""
};
}
Bll.toast("确定要通过该申请吗?",data);
});
// 时间转化
Date.prototype.format = function(format) {
var date = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S+": this.getMilliseconds()
};
if (/(y+)/i.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in date) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1
? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
}
}
return format;
}
... ...
... ... @@ -6,7 +6,7 @@ var edit = require('../common/edit');
// 上传图片
var e = new edit('#form-base',{
"bucket" : "activity"
"bucket" : "goodsimg"
});
e.init();
... ...
/**
* Created by wangqianjun on 16/3/11.
* 上架审核
*/
exports.domain = require('../config/common.js').domain;
exports.res = [
{//基础商品列表
route:'/supplier/baseproduct/audit',
method:'GET',
view:'pages/goods/shelf_audit/index',
src: '/goods/shelf_audit/index',
data:{
iscreate:true
}
},
{//驳回操作
route:'/supplier/baseproduct/auditReject',
method:'POST',
url:'/product/updateProductSknStatus',
params:[
{name: 'productSknList',type: 'String'},
{name: 'targetStatus',type: 'Number'},
{name: 'rejectReason',type:'String'},
]
},
{//获取各审核状态下商品的数量
route:'/supplier/baseproduct/auditGoodsCount',
method:'POST',
url:'/product/updateProductSknStatus',
params:[
{name: 'productSknList',type: 'String'},
{name: 'targetStatus',type: 'Number'},
{name: 'rejectReason',type:'String'},
]
},
//{//添加页面
// route:'/base/goods/add',
// method:'GET',
// view:'pages/basegoods/edit',
// data:{
// data:{},
// action:"/base/goods/ajax/add"
// },
// src:'/basegoods/edit'
//},
//{//添加接口
// route:'/base/goods/ajax/add',
// method:'POST',
// url:'/product/addBaseProduct',
// params:[
// {name: 'attribute',type: 'Number'},
// {name: 'baseGoodList',type: 'String'},
// {name:'brandId',type:'Number'},
// {name:'gender',type:'Number'},
// {name:'isAdvance',type:'String'},
// {name:'isJit',type:'String'},
// {name:'isLimited',type:'String'},
// {name:'maxSortId',type:'Number'},
// {name:'middleSortId',type:'Number'},
// {name:'productName',type:'Number'},
// {name:'retailPrice',type:'Number'},
// {name:'salesPrice',type:'Number'},
// {name:'shopId',type:'Number'},
// {name:'smallSortId',type:'Number'},
// {name:'sortId',type:'Number'},
// {name:'supplierId',type:'Number'},
// {name:'founder',type:'Number'}
// ]
//},
//{//修改页面
// route:'/base/goods/update/:productSkn',
// method:'GET',
// view:'pages/basegoods/edit',
// url:'xxx'
//},
//{//修改接口
// route:'/base/goods/ajax/update',
// method:'POST',
// url:'/接口/',
// params:[
// {name: 'page',type: 'Number'},
// {name: 'size',type: 'Number'}
// ]
//},
//{//基础商品详情空页面
// route:'/base/goods/info/:productSkn',
// method:'GET',
// view:'pages/basegoods/info',
// src:'/basegoods/goodsInfo'
//},
//
//{
// // 获取商品详情数据
// route:'/base/goods/getData',
// method:'POST',
// url:'/product/getBaseProduct',
// params:[
// {name:'productSkn',type:'Number'},
// ]
//}
];
\ No newline at end of file
... ...
<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">
<li><a href=""><i class="glyphicon glyphicon-home"></i></a></li>
<li><a href="">商品管理</a></li>
<li>上架审核</li>
</ul>
<div>
<div style="width: 30%;float: left;">
<h4>上架审核</h4>
</div>
</div>
</div>
</div>
</div>
<div class="contentpanel">
<div class="panel panel-default" style="margin-bottom:10px;">
<div class="panel-body">
<div class="row">
<div class="panel-col">
<input type="text" id="productSkn" value="" class="form-control" placeholder="SKN" style="height: 39px;" />
</div>
<div class="panel-col">
<input type="text" id="productSkc" value="" class="form-control" placeholder="SKC" style="height: 39px;" />
</div>
<div class="panel-col">
<input type="text" id="productSku" value="" class="form-control" placeholder="SKU" style="height: 39px;" />
</div>
<div class="panel-col">
<input type="text" id="productName" class="form-control" placeholder="商品名称" style="height: 39px;"/>
</div>
<div class="panel-col">
<select id="shopId" class="form-control">
<option value="-1">请选择店铺</option>
</select>
</div>
<div class="panel-col">
<select id="brandId" class="form-control">
<option value="-1">请选择品牌</option>
</select>
</div>
<div class="panel-col">
<select id="isJit" class="form-control">
<option value="-1">是否JIT商品</option>
<option value="Y">是JIT</option>
<option value="N">非JIT</option>
</select>
</div>
<div class="panel-col">
<select id="gender" class="form-control">
<option value="-1">请选择性别</option>
<option value="1"></option>
<option value="2"></option>
<option value="3">通用</option>
</select>
</div>
<div class="panel-col" style="width:300px">
<div id="sort"></div>
</div>
<div class="panel-col">
<select id="size" class="form-control">
<option value="10">单页显示条目数</option>
<option value="10">10条</option>
<option value="20">20条</option>
<option value="30">30条</option>
<option value="50">50条</option>
<option value="100">100条</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 class="panel-col">
<a id="pass-btn" href="javascript:;" class="btn btn-info">通过</a>
<a id="reject-btn" href="javascript:;" class="btn btn-info">驳回</a>
</div>
</div>
</div>
</div>
<div class="panel panel-primary-head">
<div class="dataTab_wrapper" id="basicTab"></div>
<div class="dataTab_wrapper" id="basicTable" ></div>
</div>
</div>
<input type="hidden" id="btnAuthority" value="{{bottons}}">
<input type="hidden" id="gridurl" value="{{gridurl}}">
<script type="text/template" id="template">
<div class="rows" style="height: 100px;">
<div class="form-group">
<span class="col-sm-2 control-label">驳回原因:</span>
<div class="col-sm-8">
<textarea id="reason" class="form-control" rows="3" ></textarea>
</div>
</div>
</div>
</div>
</script>
... ...