Authored by liuyue

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

... ... @@ -5,11 +5,9 @@
var $ = require('jquery');
var edit = require('../common/edit');
var dropDown = require('../common/dropDown');
var grid=require('../common/grid');
var baseNum = 1;
common = require('../common/common');
var sortmenu = require('../common/sortmenu');
// 把Y、N转换成是、否
function convertNorY(val) {
... ... @@ -21,223 +19,91 @@ function convertNorY(val) {
}
var tableGird = new common.grid({
var tableGird = new grid({
el: "#attr-table",
parms: function () {
el:"#attr-table",
parms:function(){
console.log(window.categoryId);
console.log(window.sortid);
return {
categoryId: window.categoryId * baseNum
categoryId: window.sortid
};
},
columns:[
{display: "属性名称", name: "attributeName"},
{display: "属性类型",name: "attributeValues"},
{display: "输入类型",name: "inputType"},
{display: "是否必选",
name:"isMust",
render:function(item){
columns: [
{display: "属性名称", name: "attributeName"},
{display: "属性类型", name: "attributeValues"},
{display: "输入类型", name: "inputType"},
{
display: "是否必选",
name: "isMust",
render: function (item) {
return convertNorY(item.isMust);
}
}, {
display: "是否可搜索",
name: "isSearch",
render: function(item){
render: function (item) {
return convertNorY(item.isSearch);
}
}, {
display:"操作",
name:"categoryId",
render:function(items){
display: "操作",
name: "categoryId",
render: function (items) {
return ('<button attribute-id="' + items.attributeId + '" class="btn btn-success btn-xs edit-class-btn">编辑</button>');
return ('<button data-index="' + items.__index + '" class="btn btn-success btn-xs edit-class-btn">编辑</button>');
}
}
]
});
sortmenu.init(function () {
tableGird.init('/product/attr/queryProductAttributeList');
});
var $attributeName = $('#attributeName');
var $saleType = $('#saleType');
var $inputType = $('#inputType');
var $isMust = $('#isMust');
var $isSearch = $('#isSearch');
var $maxValueLen = $('#maxValueLen');
var $isAllowAlias = $('#isAllowAlias');
var $orderBy = $('#orderBy');
var $attributeValues = $('#attributeValues');
var $displayPosition = $('#displayPosition');
var $remark = $('#remark');
var $attributeId = $('#attributeId');
function removeAttr() {
$attributeName.val('');
$saleType.val('');
$inputType.val('');
$isMust.val('');
$isSearch.val('');
$maxValueLen.val('');
$isAllowAlias.val('');
$orderBy.val('');
$attributeValues.val('');
$displayPosition.val('');
$remark.val('');
$attributeId.val('');
}
//产品属性列表三级导航
var $navItem = $('.list-group-item');
var $navIcon = $navItem.find('span.icon');
$navItem.click(function (event) {
var $this = $(this),
$thisNext = $this.nextAll(),
thisVal = $(this).attr('data-val'),
$target = $(event.target);
if (!$this.attr('data-active')) {
if ($target.hasClass('list-group-item')) {
$navItem.removeClass('attr-item-active');
$(this).addClass('attr-item-active').attr('data-active', 'data-active');
$('.model-attr-btn').removeAttr('disabled');
$('input#categoryId').val($this.attr('data-val'));
//列表渲染
//queryAttrList($this.attr('data-val'));
window.categoryId = $this.attr('data-val');
tableGird.init('/product/attr/queryProductAttributeList');
}
} else {
if ($target.hasClass('list-group-item')) {
$(this).removeClass('attr-item-active').removeAttr('data-active');
$('.model-attr-btn').attr('disabled', 'disabled');
}
}
if ($this.attr('data-status') === 'close') {
if ($target.hasClass('icon')) {
$thisNext.filter(function (index) {
return $(this).attr('data-parent') === thisVal;
}).removeClass('hidden');
$this.attr('data-status', 'open').find('span')
.removeClass('glyphicon-plus').addClass('glyphicon-minus');
}
} else {
if ($target.hasClass('icon')) {
$thisNext.filter(function (index) {
var thisR = $(this).attr('data-parent') === thisVal;
if (thisR && $(this).attr('data-status') === 'open') {
$(this).find('span.icon').trigger('click');
}
return thisR;
}).addClass('hidden');
$this.attr('data-status', 'close').find('span')
.removeClass('glyphicon-minus').addClass('glyphicon-plus');
}
}
});
//添加属性
//表单验证
var addAttrVerification = new edit("#add-attr-form");
$('#add-attri').click(function () {
$('.add-attr-btn').click(function(){
attributeOp("添加", '/product/attr/add', {categoryId: window.sortid});
if (!!$('#attributeName').attr('update')) {
$('#add-attr-form').attr('action','/product/attr/update');
}
});
addAttrVerification.submit($("#add-attr-form").attr("action"), function(option,that) {
option.success=function(res){
console.log(res);
// 编辑产品属性
$(document).on('click', '.edit-class-btn', function () {
var item = tableGird.rows[$(this).data('index')];
attributeOp("修改", '/product/attr/update', item);
});
$('#addAttr').modal('toggle');
removeAttr();
tableGird.reload();
};
option.error=function(res){
console.log(res);
}
function attributeOp(prefix, url, item) {
var a = new common.edit(".confirm");
common.dialog.confirm(prefix + "属性", common.util.__template($("#template").html(), item), function () {
return a.submit(url, function (option) {
option.data.categoryId = item.categoryId;
option.data.attributeId = item.attributeId;
option.success = function (res) {
res = res.data;
if (res.code == "200") {
a.$tip("提交成功", function () {
tableGird.reload();
}, 'growl-success');
} else {
a.$tip(res.message);
}
return false;
},
option.error = function (res) {
a.$tip(res.message);
}
});
return false;
});
// 编辑产品属性
$(document).on('click', '.edit-class-btn', function () {
var $this = $(this);
var attrId = $this.attr('attribute-id');
$.ajax({
type: 'POST',
dataType: 'json',
url: '/product/attr/getProductAttribute',
data: {
attributeId: attrId*baseNum
}
}).then(function (d) {
var data = d.data.data;
$attributeName.val(data.attributeName).attr('update', 'true');
$saleType.val(data.saleType);
$inputType.val(data.inputType);
$isMust.val(data.isMust);
$isSearch.val(data.isSearch);
$maxValueLen.val(data.maxValueLen);
$isAllowAlias.val(data.isAllowAlias);
$orderBy.val(data.orderBy);
$attributeValues.val(data.attributeValues);
$displayPosition.val(data.displayPosition);
$remark.val(data.remark);
$attributeId.val(attrId);
// 显示dialog
$('#addAttr').modal('toggle');
tableGird.reload();
console.log(d);
});
});
$('.add-attr-btn-close').click(function () {
removeAttr();
});
a.init();
}
... ...
... ... @@ -11,7 +11,7 @@ var g = new common.grid({
{display: "颜色名称", name: "colorName"},
{display: "颜色代码", name: "colorCode"},
{display: "颜色值", name: "colorValue", render: function (item) {
return '<img src="'+item.colorValue+'"/>';
return '<img style="width:40px; height:40px" src="'+item.colorValue+'"/>';
}},
{
display: "操作", name: "", render: function (item) {
... ...
... ... @@ -3,7 +3,7 @@
*/
var $ = require('jquery'),
common = require('../common/common');
require('../util/datepicker');
//require('../util/datepicker');
// 热搜词状态xxz
var StatusEnum = {
... ...
... ... @@ -3,78 +3,83 @@
*/
'use strict';
var $ = require('jquery'),
common=require('../common/common');
common = require('../common/common');
var sortmenu=require('../common/sortmenu');
var sortmenu = require('../common/sortmenu');
var g=new common.grid({
el:"#basicTable",
parms:function(){
var g = new common.grid({
el: "#basicTable",
parms: function () {
return {
sortId:window.sortid?window.sortid:"",
sortId: window.sortid ? window.sortid : "",
};
},
columns:[
//分类ID 分类名称 尺码ID 尺码名 排序 操作
{display:"分类ID",name:"sortId"},
{display:"分类名称",name:"sortName"},
{display:"尺码ID",name:"sizeId"},
{display:"尺码名",name:"sizeName"},
{display:"排序",name:"orderBy"},
{display:"操作",name:'id',render:function(item){
return '<a data-index="'+ item.__index+'" href="javascript:void(0)" class="btn btn-success btn-xs delbtn">删除</a>';
}}
]
});
columns: [
//分类ID 分类名称 尺码ID 尺码名 排序 操作
{display: "分类ID", name: "sortId"},
{display: "分类名称", name: "sortName"},
{display: "尺码ID", name: "sizeId"},
{display: "尺码名", name: "sizeName"},
{display: "排序", name: "orderBy"},
{
display: "操作", name: 'id', render: function (item) {
return '<a data-index="' + item.__index + '" href="javascript:void(0)" class="btn btn-success btn-xs delbtn">删除</a>';
}
}
]
});
sortmenu.init(function(){
g.init('/erpproduct/sortsize/ajax/index');
});
sortmenu.init(function () {
g.init('/erpproduct/sortsize/ajax/index');
});
var _model=JSON.parse($("#model").val());
$(document).on("click","#btn-add",function(){
var _title=$(this).text();
common.dialog.confirm(_title,common.util.__template($("#template").html(),{name:_model.name,sortname:window.sortname}),function(){
var data={sortId:window.sortid,sizeId:$("#sizeId").val(),orderBy:$("#orderBy").val()};
if(!data.sortId){
common.util.__tip("尺码不可为空","warning");
return;
}
if(!~data.sizeId){
common.util.__tip("尺码属性不可为空","warning");
return;
}
if(!data.orderBy){
common.util.__tip("排序不可为空","warning");
return;
}
common.util.__ajax({
url:'/erpproduct/sortsize/ajax/add',
data:data
},function(){
g.reload();
});
});
new common.dropDown({
el:"#sizeId",
ajax:"sortsize"
var _model = JSON.parse($("#model").val());
$(document).on("click", "#btn-add", function () {
var _title = $(this).text();
common.dialog.confirm(_title, common.util.__template($("#template").html(), {
name: _model.name,
sortname: window.sortname
}), function () {
var data = {sortId: window.sortid, sizeId: $("#sizeId").val(), orderBy: $("#orderBy").val()};
if (!data.sortId) {
common.util.__tip("尺码不可为空", "warning");
return;
}
if (!~data.sizeId) {
common.util.__tip("尺码属性不可为空", "warning");
return;
}
if (!data.orderBy) {
common.util.__tip("排序不可为空", "warning");
return;
}
common.util.__ajax({
url: '/erpproduct/sortsize/ajax/add',
data: data
}, function () {
g.reload();
});
});
new common.dropDown({
el: "#sizeId",
ajax: "sortsize"
});
});
$(document).on("click",".delbtn",function(){
var item=g.rows[$(this).data("index")];
common.dialog.confirm("温馨提示","你确定要删除吗?",function(){
common.util.__ajax({
url:'/erpproduct/sortsize/ajax/delete',
data:{sortId:item.sortId,sizeId:item.sizeId}
},function(){
g.reload();
});
$(document).on("click", ".delbtn", function () {
var item = g.rows[$(this).data("index")];
common.dialog.confirm("温馨提示", "你确定要删除吗?", function () {
common.util.__ajax({
url: '/erpproduct/sortsize/ajax/delete',
data: {sortId: item.sortId, sizeId: item.sizeId}
}, function () {
g.reload();
});
});
});
... ...
... ... @@ -238,6 +238,9 @@ exports.res = [
},{
name: 'attributeId',
type: 'Number'
},{
name: 'categoryId',
type: 'Number'
}
]
},{
... ...
... ... @@ -25,19 +25,19 @@
<input type="hidden" id='id' value="{{data.id}}" />
<div class="col-xs-10 col-sm-10 col-md-10 col-lg-10">
<div class="form-group">
<label for="input" class="col-sm-2 control-label">颜色名称:</label>
<label for="colorName" class="col-sm-2 control-label">颜色名称:</label>
<div class="col-sm-8">
<input type="text" name="" id="colorName" class="form-control" value="{{data.colorName}}" required="required" pattern="" title="">
</div>
</div>
<div class="form-group">
<label for="input" class="col-sm-2 control-label">颜色代码:</label>
<label for="colorCode" class="col-sm-2 control-label">颜色代码:</label>
<div class="col-sm-8">
<input type="text" name="" id="colorCode" class="form-control" value="{{data.colorCode}}" required="required" pattern="" title="">
</div>
</div>
<div class="form-group">
<label for="input" class="col-sm-2 control-label">颜色值:</label>
<label for="colorValue" class="col-sm-2 control-label">颜色值:</label>
<div class="col-sm-8" id="colorUrlBox">
<input type="file" id="colorValue" name="colorValue" value="{{data.colorValue}}">
</div>
... ...
... ... @@ -12,7 +12,7 @@
<div>
<div style="width: 30%;float: left;">
<h4>颜色列表</h4>
<h4>颜色管理列表</h4>
</div>
</div>
</div>
... ...
... ... @@ -36,7 +36,7 @@
<div class="col-md-9">
<div class="panel panel-default">
<div class="panel-heading noborder">
<button class="btn btn-success model-attr-btn" disabled data-toggle="modal" data-target="#addAttr">
<button class="btn btn-success model-attr-btn" disabled data-toggle="modal" id="add-attri" data-target="#addAttr">
<i class="glyphicon-plus"></i>添加属性
</button>
</div>
... ... @@ -60,182 +60,168 @@
</div>
</div>
<!--模态框-->
<div class="modal fade" id="addAttr" tabindex="-1" role="dialog" aria-labelledby="addAttr">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="addAttrTitle">添加属性</h4>
</div>
<div class="modal-body">
<form id="add-attr-form" class="form-horizontal form-bordered" method="post" action="/product/attr/add">
<div class="form-group">
<label class="col-md-3 control-label">
属性名称<i>*</i>
</label>
<div class="col-md-6">
<input id="attributeName" class="form-control width300" type="text" placeholder="属性名称" required>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
销售类型<i>*</i>
</label>
<div class="col-md-6">
<select id="saleType" class="attr-select width300" data-placeholder="销售类型" required>
<option value="0">请选择</option>
<option value="1">销售属性</option>
<option value="2">非销售属性</option>
<option value="3">扩展属性</option>
</select>
</div>
</div>
<script type="text/template" id="template">
<form id="add-attr-form" class="form-horizontal form-bordered" method="post" action="/product/attr/add" style="height: 600px;overflow: auto">
<div class="form-group">
<label class="col-md-3 control-label">
属性名称<i class="red">*</i>
</label>
<div class="form-group">
<label class="col-md-3 control-label">
输入类型<i>*</i>
</label>
<div class="col-md-6">
<select id="inputType" class="attr-select width300" data-placeholder="输入类型" required>
<option value="0">请选择</option>
<option value="radio">单选按钮</option>
<option value="checkbox">复选框</option>
<option value="select">下拉列表</option>
<option value="input">单行文本框</option>
<option value="textarea">多行文本框</option>
</select>
</div>
</div>
<div class="col-md-6">
<input id="attributeName" value="{attributeName}" class="form-control width300" type="text" placeholder="属性名称" required="required">
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
是否必选
</label>
<div class="col-md-6">
<select id="isMust" class="attr-select width300" data-placeholder="是否必选">
<option value="0">请选择</option>
<option value="Y"></option>
<option value="N"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
销售类型<i class="red">*</i>
</label>
<div class="col-md-6">
<select id="saleType" class="attr-select width300" data-placeholder="销售类型" value="{saleType}" required="required">
<option value="">请选择</option>
<option value="1">销售属性</option>
<option value="2">非销售属性</option>
<option value="3">扩展属性</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
启用搜索
</label>
<div class="col-md-6">
<select id="isSearch" class="attr-select width300" data-placeholder="启用搜索">
<option value="0">请选择</option>
<option value="Y"></option>
<option value="N"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
输入类型<i class="red">*</i>
</label>
<div class="col-md-6">
<select id="inputType" class="attr-select width300" data-placeholder="输入类型" value="{inputType}" required="required">
<option value="">请选择</option>
<option value="radio">单选按钮</option>
<option value="checkbox">复选框</option>
<option value="select">下拉列表</option>
<option value="text">单行文本框</option>
<option value="textarea">多行文本框</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
最大输入值
</label>
<div class="form-group">
<label class="col-md-3 control-label">
是否必选
</label>
<div class="col-md-6">
<select id="isMust" value="{isMust}" class="attr-select width300" data-placeholder="是否必选">
<option value="">请选择</option>
<option value="Y"></option>
<option value="N"></option>
</select>
</div>
</div>
<div class="col-md-6">
<input id="maxValueLen" class="form-control width300" type="text" placeholder="最大输入值">
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
启用搜索
</label>
<div class="col-md-6">
<select id="isSearch" value="{isSearch}" class="attr-select width300" data-placeholder="启用搜索">
<option value="0">请选择</option>
<option value="Y"></option>
<option value="N"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
是否允许别名
</label>
<div class="col-md-6">
<select id="isAllowAlias" class="attr-select width300" data-placeholder="是否允许别名">
<option value="0">请选择</option>
<option value="Y"></option>
<option value="N"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
最大输入值
</label>
<div class="form-group">
<label class="col-md-3 control-label">
排序
</label>
<div class="col-md-6">
<input id="maxValueLen" class="form-control width300" value="{maxValueLen}" type="text" placeholder="最大输入值">
</div>
</div>
<div class="col-md-6">
<input id="orderBy" class="form-control width300" type="text" placeholder="排序">
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
是否允许别名
</label>
<div class="col-md-6">
<select id="isAllowAlias" value="{isAllowAlias}" class="attr-select width300" data-placeholder="是否允许别名">
<option value="">请选择</option>
<option value="Y"></option>
<option value="N"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
属性值<i>*</i>
</label>
<div class="form-group">
<label class="col-md-3 control-label">
排序
</label>
<div class="col-md-6">
<input id="attributeValues" class="form-control width300" type="text" placeholder="属性值" required>
</div>
</div>
<div class="col-md-6">
<input id="orderBy" class="form-control width300" type="text" value="{orderBy}" placeholder="排序">
</div>
</div>
<!--新增-->
<div class="form-group">
<label class="col-md-3 control-label">
展示位置
</label>
<div class="col-md-6">
<select id="displayPosition" class="attr-select width300" data-placeholder="展示位置" required>
<option value="0">请选择</option>
<option value="1">基础商品-非销售属性</option>
<option value="2">网售信息-上架后补全信息</option>
<option value="3">网售信息-商品参数</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
属性值<i class="red">*</i>
</label>
<div class="form-group">
<label class="col-md-3 control-label">
备注
</label>
<div class="col-md-6">
<input id="attributeValues" value="{attributeValues}" class="form-control width300" type="text" placeholder="属性值" required="required">
</div>
</div>
<div class="col-md-6">
<textarea id="remark" class="form-control width300" rows="2" name="remark"></textarea>
</div>
</div>
<!--新增-->
<div class="form-group">
<label class="col-md-3 control-label">
展示位置
</label>
<div class="col-md-6">
<select id="displayPosition" value="{displayPosition}" class="attr-select width300" data-placeholder="展示位置">
<option value="">请选择</option>
<option value="1">基础商品-非销售属性</option>
<option value="2">网售信息-上架后补全信息</option>
<option value="3">网售信息-商品参数</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">
备注
</label>
<div class="form-group hidden">
<label class="col-md-3 control-label">
ID<i>*</i>
</label>
<div class="col-md-6">
<textarea id="remark" value="{remark}" class="form-control width300" rows="2" name="remark"></textarea>
</div>
</div>
<div class="col-md-6">
<input id="categoryId" class="form-control width300" value="" type="text" placeholder="ID">
</div>
</div>
<div class="form-group hidden">
<label class="col-md-3 control-label">
attributeId<i>*</i>
</label>
<div class="col-md-6">
<input id="attributeId" class="form-control width300" value="" type="text" placeholder="attributeId">
</div>
</div>
</form>
<div class="form-group hidden">
<label class="col-md-3 control-label">
ID<i>*</i>
</label>
<div class="col-md-6">
<input id="categoryId" class="form-control width300" value="" type="text" placeholder="ID">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default m-t-20 add-attr-btn-close" data-dismiss="modal">关闭</button>
<button type="button" class="add-attr-btn btn btn-primary m-t-20">添加</button>
</div>
<div class="form-group hidden">
<label class="col-md-3 control-label">
attributeId<i class="red">*</i>
</label>
<div class="col-md-6">
<input id="attributeId" class="form-control width300" value="" type="text" placeholder="attributeId">
</div>
</div>
</div>
</div>
\ No newline at end of file
</form>
</script>
\ No newline at end of file
... ...
... ... @@ -12,7 +12,7 @@
<div>
<div style="width: 30%;float: left;">
<h4>尺码列表</h4>
<h4>尺码列表</h4>
</div>
</div>
</div>
... ...
... ... @@ -7,12 +7,12 @@
<ul class="breadcrumb">
<li><a href=""><i class="glyphicon glyphicon-home"></i></a></li>
<li><a href="">尺码属性管理</a></li>
<li>尺码属性管理</li>
<li>实物测量属性</li>
</ul>
<div>
<div style="width: 30%;float: left;">
<h4>尺码属性列表</h4>
<h4>实物测量属性列表</h4>
</div>
</div>
</div>
... ...
... ... @@ -9,7 +9,7 @@
<li><a href="#">品类尺码关系管理 </a></li>
<li>品类尺码关系列表</li>
</ul>
<h4>品类尺码关系列表</h4>
<h4>品类关联实物测量属性列表</h4>
</div>
</div>
<!-- media -->
... ...