Authored by weiqingting

Merge branch 'release/1.1' into develop

... ... @@ -22,5 +22,7 @@ require('./js/store/adminindex');
require('./js/store/examine');
require('./js/store/indexlist');
require('./js/store/info');
require('./js/store/check');
require('./js/store/index');
module.exports = demo;
\ No newline at end of file
... ...
... ... @@ -37,6 +37,7 @@ dropDown.prototype={
};
},
processResults: function (data, params) {
console.log( data.data.data);
params.page = params.page || 1;
return {
results: data.data.data
... ...
... ... @@ -146,22 +146,22 @@ edit.prototype={
}
/*初始化文件上传*/
$(".fileinput-button-icon").each(function(){
var id=$(this).attr("id");
file({
button:id,
uptoken:$("#uptoken").val(),
callback:function(src){
var _img=$("#"+id).find("img");
if(_img.length>0){
_img.attr("src",src);
}else{
$("#"+id).prepend("<img width='76' height='80' src='"+src+"' />");
}
$("#"+id).find(":hidden").val(src);
}
});
});
// $(".fileinput-button-icon").each(function(){
// var id=$(this).attr("id");
// file({
// button:id,
// uptoken:$("#uptoken").val(),
// callback:function(src){
// var _img=$("#"+id).find("img");
// if(_img.length>0){
// _img.attr("src",src);
// }else{
// $("#"+id).prepend("<img width='76' height='80' src='"+src+"' />");
// }
// $("#"+id).find(":hidden").val(src);
// }
// });
// });
that.__listen("render");
},
bind:function(){
... ...
... ... @@ -91,9 +91,9 @@ grid.prototype={
},
__getparams:function(){
var g = this, p = this.options;
if (!p.page) p.page = 1;
//if (!p.page) p.page = 1;
var param = {};
//urlArr = location.hash.substring(1).split('&&');
urlArr = location.hash.substring(1).split('&&');
if (p.parms) {
if (typeof (p.parms) == "function") {
... ... @@ -101,28 +101,34 @@ grid.prototype={
}
}
/*$.each(urlArr, function(i, value){
//param.page = p.page;
param.size = p.size;
$.each(urlArr, function(i, value){
var result = value.split('='),
key = result[0],
value = result[1];
if (key !== '') {
if (key !== undefined) {
param[key] = value;
}
});*/
});
if (p.page) {
param.page = p.page;
}
if (p.status !== undefined) {
console.log(p.status);
param.status = p.status;
}
param.page = p.page;
param.size = p.size;
console.log(param);
var html = '';
$.each(param, function(key, value) {
if (value !== '') {
if (value !== '' && !isNaN(value)) {
html += key + '=' + value + '&&';
}
});
... ... @@ -143,6 +149,7 @@ grid.prototype={
onPageClick: function(pageNumber, event) {
p.page = pageNumber;
g.renderBody();
//g.__getparams();
return false;
}
});
... ... @@ -269,11 +276,10 @@ grid.prototype={
p[key] = value;
});
}
//p.page=1;
g.__bodyload();
}
},
}
... ...
var $=require('jquery');
var jQuery=require('jquery');
// var Qiniu=require("../util/qiniu");
var Qiniu=require("../util/qiniu");
var uploader = function(option){
Qiniu.uploader({
runtimes: 'html5,flash,html4',
browse_button: option.button,
uptoken: option.uptoken,
unique_names: true,
multi_selection: false,
filters: {
mime_types: [
{title: "Image files", extensions: "jpg,jpeg,png"}
]
},
dragdrop: false,
domain: option.domain||'http://img01.yohoboys.com/',
max_file_size: '5mb',
max_retries: 3,
chunk_size: '4mb',
auto_start: true,
init: {
'UploadProgress':function(){
},
'FileUploaded': function (up, file, info) {
var imgLink = Qiniu.imageMogr2({
quality: 100, // 图片质量,取值范围1-100
format: 'png'//新图的输出格式,取值范围:jpg,gif,png,webp等
}, info.key);
var domain = up.getOption('domain');
var res = JSON.parse(info);
var sourceLink = domain + res.key+"?"+imgLink;
option.callback&&option.callback(sourceLink);
},
'Error':function(up, err, errTip){
console.log(err);
jQuery.extend({
createUploadIframe: function(id, uri){
//create frame
var frameId = 'jUploadFrame' + id;
var iframeHtml = '<iframe id="' + frameId + '" name="' + frameId + '" style="position:absolute; top:-9999px; left:-9999px"';
if(window.ActiveXObject){
if(jQuery.browser.version=="9.0" || jQuery.browser.version=="10.0"){
var io = document.createElement('iframe');
io.id = frameId;
io.name = frameId;
}else if(jQuery.browser.version=="6.0" || jQuery.browser.version=="7.0" || jQuery.browser.version=="8.0"){
var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
if(typeof uri== 'boolean'){
io.src = 'javascript:false';
} else if(typeof uri== 'string'){
io.src = uri;
}
}
}
iframeHtml += ' />';
jQuery(iframeHtml).appendTo(document.body);
return jQuery('#' + frameId).get(0);
},
createUploadForm: function(id, fileElementId, data){
//create form
var formId = 'jUploadForm' + id;
var fileId = 'jUploadFile' + id;
var form = jQuery('<form action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');
if(data){
for(var i in data){
jQuery('<input type="hidden" name="' + i + '" value="' + data[i] + '" />').appendTo(form);
}
}
//single
if(typeof(fileElementId) == 'string'){
fileElementId = [fileElementId];
}
for(var i in fileElementId){
var oldElement = jQuery('#' + fileElementId[i]);
var newElement = jQuery(oldElement).clone();
jQuery(oldElement).attr('id', fileId);
jQuery(oldElement).attr('name', "image");
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);
}
//set attributes
jQuery(form).css('position', 'absolute');
jQuery(form).css('top', '-1200px');
jQuery(form).css('left', '-1200px');
jQuery(form).appendTo('body');
return form;
},
ajaxFileUpload: function(s) {
// TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
s = jQuery.extend({}, jQuery.ajaxSettings, s);
var id = new Date().getTime()
var form = jQuery.createUploadForm(id, s.fileElementId, (typeof(s.data)=='undefined'?false:s.data));
var io = jQuery.createUploadIframe(id, s.secureuri);
var frameId = 'jUploadFrame' + id;
var formId = 'jUploadForm' + id;
// Watch for a new set of requests
if ( s.global && ! jQuery.active++ ){
jQuery.event.trigger( "ajaxStart" );
}
var requestDone = false;
// Create the request object
var xml = {};
if ( s.global )
jQuery.event.trigger("ajaxSend", [xml, s]);
// Wait for a response to come back
var uploadCallback = function(isTimeout){
var io = document.getElementById(frameId);
var execontent = function(){
try
{
if(io.contentWindow)
{
xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
}else if(io.contentDocument)
{
xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
}
}catch(e)
{
jQuery.handleError(s, xml, null, e);
}
if ( xml || isTimeout == "timeout"){
requestDone = true;
var status;
try {
status = isTimeout != "timeout" ? "success" : "error";
// Make sure that the request was successful or notmodified
if ( status != "error" )
{
// process the data (runs the xml through httpData regardless of callback)
var data = jQuery.uploadHttpData( xml, s.dataType );
// If a local callback was specified, fire it and pass it the data
if ( s.success )
s.success( data, status );
// Fire the global callback
if( s.global )
jQuery.event.trigger( "ajaxSuccess", [xml, s] );
} else
jQuery.handleError(s, xml, status);
} catch(e)
{
status = "error";
jQuery.handleError(s, xml, status, e);
}
// The request was completed
if( s.global )
jQuery.event.trigger( "ajaxComplete", [xml, s] );
// Handle the global AJAX counter
if ( s.global && ! --jQuery.active )
jQuery.event.trigger( "ajaxStop" );
// Process result
if ( s.complete )
s.complete(xml, status);
jQuery(io).unbind();
setTimeout(function(){
try{
jQuery(io).remove();
jQuery(form).remove();
} catch(e){
jQuery.handleError(s, xml, null, e);
}
}, 100);
xml = null;
}
};
execontent();
}
// Timeout checker
if ( s.timeout > 0 ){
setTimeout(function(){
// Check to see if the request is still happening
if( !requestDone ) uploadCallback( "timeout" );
}, s.timeout);
}
try{
var form = jQuery('#' + formId);
jQuery(form).attr('action', s.url);
jQuery(form).attr('method', 'POST');
jQuery(form).attr('target', frameId);
if(form.encoding)
{
jQuery(form).attr('encoding', 'multipart/form-data');
}else{
jQuery(form).attr('enctype', 'multipart/form-data');
}
jQuery(form).submit();
} catch(e){
jQuery.handleError(s, xml, null, e);
}
jQuery('#' + frameId).load(uploadCallback );
return {abort: function () {}};
},
uploadHttpData: function( r, type ) {
var data = !type;
data = type == "xml" || data ? r.responseXML : r.responseText;
// If the type is "script", eval it in global context
if ( type == "script" )
jQuery.globalEval( data );
// Get the JavaScript object, if JSON is used.
if ( type == "json" )
eval( "data = " + data );
// evaluate scripts within html
if ( type == "html" )
jQuery("<div>").html(data).evalScripts();
return data;
},
handleError: function( s, xhr, status, e ){
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
// Fire the global callback
if ( s.global ) {
(s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] );
}
}
});
// document.domain = 'yohobuy.com';
//document.domain = "http://192.168.102.215:8080";
jQuery('#fileupload').on('change', function() {
jQuery.ajaxFileUpload({
url:'http://192.168.102.215:8080/platform/fileupload/upload/',
//url: 'http://upload.static.yohobuy.com',
secureuri:false,
fileElementId:'fileupload',//file标签的id
dataType: 'json',//返回数据的类型
data:{userId:543883,bucket:'smart'},//一同上传的数据
// data:{pid:0, project:"", is_public:"N",exporttype:"html"},
success: function (data, status) {
console.log(data);
//把图片替换
// var obj = jQuery.parseJSON(data);
// $("#upload").attr("src", "../image/"+obj.fileName);
// if(typeof(data.error) != 'undefined') {
// if(data.error != '') {
// alert(data.error);
// } else {
// alert(data.msg);
// }
// }
},
error: function (data, status, e) {
alert(e);
}
});
});
// $('.js-add-image').fileupload({
// url:'http://upload.static.yohobuy.com',
// dataType: 'html',
// forceIframeTransport: true,
// formData:{pid:0, project:'', is_public:'N', tags:'',exporttype:"html"},
// acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
// autoUpload: false,
// maxFileSize: 5000000,
// add: function (e, data) {
// for(k in data.files){
// console.log(data.files[k]);
// }
// }
// });
}
module.exports=uploader;
\ No newline at end of file
... ...
... ... @@ -46,7 +46,7 @@ exports.init = function() {
* 优惠码tab卡文字替换及默认选中
* @param: param(请求count接口参数), indexStatus(切换条件时选中的tab卡)
*/
function tabShow(param, indexStatus) {
function tabShow(param, filterStatus) {
var param = param || {};
$.ajax({
type: 'POST',
... ... @@ -54,37 +54,59 @@ exports.init = function() {
url: '/getCodeCount',
data: param,
success: function(res) {
var tpl = Handlebars.compile($('#tab-tpl').html());
var tpl = Handlebars.compile($('#tab-tpl').html()),
$activeTab = null;
$('.list-tabs ul').html(tpl({
data: res.data.data
}));
$('.list-tabs').find('li').each(function() {
var status = $(this).data('status');
var urlArr = location.hash.substring(1).split('&&'),
urlStatus = null;
$(this).find('span').text(statusConvert(status));
$.each(urlArr, function(i, value){
var result = value.split('='),
key = result[0],
value = result[1];
if (status === 'all') {
$(this).addClass('active').siblings().removeClass('active');
if (key === 'status') {
urlStatus = value;
}
});
if (indexStatus === undefined) {
$('.list-tabs').find('[data-status="all"]').addClass('active').siblings().removeClass('active');
} else {
$('.list-tabs').find('[data-status="' + indexStatus + '"]').addClass('active').siblings().removeClass('active');
}
$('.list-tabs').find('li').each(function() {
var status = $(this).data('status');
$(this).find('span').text(statusConvert(status));
});
$activeTab = $('.list-tabs').find('[data-status="all"]');
if (urlStatus) {
$activeTab = $('.list-tabs').find('[data-status="' + urlStatus + '"]');
} else if (filterStatus) {
$activeTab = $('.list-tabs').find('[data-status="' + filterStatus + '"]');
}
if ($activeTab.size() <= 0) {
$activeTab = $('.list-tabs').find('[data-status="all"]');
}
$activeTab.addClass('active').siblings().removeClass('active');
}
})
}
tabShow();
//tab卡切换列表事件
$('.list-tabs').on('click', 'li', function() {
$(this).addClass('active').siblings().removeClass('active');
g.reload();
g.reload({
page: 1,
status: parseInt($('.list-tabs').find('.active').data('status'))
});
});
var btnAuthority = JSON.parse($("#btnAuthority").val());
... ... @@ -150,9 +172,11 @@ exports.init = function() {
batchNo: $.trim($('#filter-id').val()),
name: $.trim($('#filter-name').val()),
reqDepartment:$.trim($('#filter-dep').val())
}, parseInt($('.list-tabs').find('.active').data('status')))
}, $('.list-tabs').find('.active').data('status'));
location.hash = '';
g.reload({
status: 'all',
page: 1
});
});
... ...
/**
* 创建供应商
*/
'use strict';
var $ = require('jquery'),
dropDown=require('../common/dropDown');
var grid=require('../common/grid');
require('../util/jquery.gritter');
var menu=require('./index');
var select=require('../common/dropDown');
exports.init = function() {
new select({
el:"#sizeId",
ajax:"supplier"
});
var g=new grid({
el:"#basicTable",
parms:function(){
return {
id:window.menuid?window.menuid:"",
};
},
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-sortid="'+item.sortId+'" href="javascript:void(0)" class="btn btn-success btn-xs delbtn">删除</a>';
}}
]
});
menu.menu(function(){
g.init('/erpproduct/sortattribute/ajax/index');
$("#sortName").val(window.menuname);
});
function __ajax(options,callback){
$.ajax({
type: 'POST',
url: options.url,
dataType: 'json',
data:options.data||{},
success: function(res) {
res=res.data;
if (res.code === 200) {
$.gritter.add({
title: res.message,
class_name: 'growl-success',
sticky: false,
time:1000,
after_open:setTimeout(function() {
callback&&callback();
},100)
});
} else {
$.gritter.add({
title: res.message,
class_name: 'growl-danger',
sticky: false,
time:1000
});
}
}
});
}
$(document).on("click",".delbtn",function(){
var _id=$(this).data("sortid");
__ajax({
url:'/erpproduct/sortattribute/ajax/delete',
data:{id:_id}
},function(){
g.reload();
});
});
$(document).on("click",".add-attr-btn",function(){
var data={sortId:window.menuid,sizeId:$("#sizeId").val(),orderBy:$("#orderBy").val()};
if(!data.sortId){
alert("尺码不可为空");
return;
}
if(!~data.sizeId){
alert("尺码属性不可为空");
return;
}
if(!data.orderBy){
alert("排序不可为空");
return;
}
__ajax({
url:'/erpproduct/sortattribute/ajax/add',
data:{sortId:"",sortName:"",sizeId:"",orderBy:""}
},function(){
g.reload();
});
});
}
\ No newline at end of file
... ...
/**
* 创建供应商
*/
'use strict';
var $ = require('jquery'),
dropDown=require('../common/dropDown');
var grid=require('../common/grid');
require('../util/jquery.gritter');
var select=require('../common/dropDown');
exports.menu=function(callback){
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'));
}
} 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');
}
}
window.menuid=thisVal;
//获取文案
var c=[];
function aa(a){
var b=a.prev();
if(b.length>0&&b.find(".glyphicon-minus")){
aa(b);
}
c.push($.trim(a.text()));
}
aa($("[data-val="+thisVal+"]"));
window.menuname=c.join('/');
callback&&callback();
});
}
exports.init = function() {
new select({
el:"#sizeId",
ajax:"supplier"
});
var g=new grid({
el:"#basicTable",
parms:function(){
return {
id:window.menuid?window.menuid:"",
};
},
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-sortid="'+item.sortId+'" href="javascript:void(0)" class="btn btn-success btn-xs delbtn">删除</a>';
}}
]
});
exports.menu(function(){
g.init('/erpproduct/sortsize/ajax/index');
$("#sortName").val(window.menuname);
});
function __ajax(options,callback){
$.ajax({
type: 'POST',
url: options.url,
dataType: 'json',
data:options.data||{},
success: function(res) {
res=res.data;
if (res.code === 200) {
$.gritter.add({
title: res.message,
class_name: 'growl-success',
sticky: false,
time:1000,
after_open:setTimeout(function() {
callback&&callback();
},1000)
});
} else {
$.gritter.add({
title: res.message,
class_name: 'growl-danger',
sticky: false,
time:1000
});
}
}
});
}
$(document).on("click",".delbtn",function(){
var _id=$(this).data("sortid");
__ajax({
url:'/erpproduct/sortsize/ajax/delete',
data:{id:_id}
},function(){
g.reload();
$("#addAttr").modal('hide');
});
});
$(document).on("click",".add-attr-btn",function(){
var data={sortName:window.menuid,sizeId:$("#sizeId").val(),orderBy:$("#orderBy").val()};
if(!data.sortName){
alert("尺码不可为空");
return;
}
if(!~data.sizeId){
alert("尺码属性不可为空");
return;
}
if(!data.orderBy){
alert("排序不可为空");
return;
}
__ajax({
url:'/erpproduct/sortsize/ajax/add',
data:data
},function(){
g.reload();
$("#addAttr").modal('hide');
});
});
}
\ No newline at end of file
... ...
... ... @@ -17,9 +17,9 @@ exports.init=function(){
var g=new grid({
el:'#storeadmin_Tabel',
parms:function(){
var supplierid=$('#supplier-name').val(),
brandId = $('#brand-name').val(),
checkStatus = $('#status').val();
var supplierid=!!~$.trim($('#supplier-name').val())?$('#supplier-name').val():"0",
brandId = !!~$.trim($('#brand-name').val())?$('#brand-name').val():"0",
checkStatus = !!~$.trim($('#status').val())?$('#status').val():"0";
return {
"supplierId":supplierid,
"brandId":brandId,
... ...
... ... @@ -16,9 +16,9 @@ exports.init=function(){
var g=new grid({
el:'#storeadmin_Tabel',
parms:function(){
var supplierid=$('#supplier-name').val(),
brandId = $('#brand-name').val(),
checkStatus = $('#status').val();
var supplierid=!!~$.trim($('#supplier-name').val())?$('#supplier-name').val():"0",
brandId = !!~$.trim($('#brand-name').val())?$('#brand-name').val():"0",
checkStatus = !!~$.trim($('#status').val())?$('#status').val():"0";
return {
"supplierId":supplierid,
"brandId":brandId,
... ...
... ... @@ -69,7 +69,7 @@ exports.init = function() {
function(option) {
option.success = function(res) {
if (res.data.code == "200") {
// location.href="/supplier/store/index";
location.href="/supplier/store/index";
} else {
e.$tip("提交失败");
}
... ... @@ -88,7 +88,7 @@ exports.init = function() {
function(option) {
option.success = function(res) {
if (res.data.code == "200") {
// location.href="/supplier/store/index";
location.href="/supplier/store/index";
} else {
e.$tip("提交失败");
}
... ...
... ... @@ -11,14 +11,14 @@ var env = process.env.NODE_ENV || 'development';
var config = {
'development':{
redis:null,
domain:'http://192.168.102.202:8081/platform'
domain:'http://192.168.102.215:8080/platform'
},
'test': {
redis: {
port:6379,
host:'localhost'
},
domain:'http://192.168.102.215:8080/platform'
domain:'http://192.168.102.202:8081/platform'
},
'preview': {
redis: {
... ...
... ... @@ -35,10 +35,10 @@ exports.res = [
name: 'status',
type: 'Number'
}, {
name: 'page',
name: 'curPage',
type: 'Number'
}, {
name: 'size',
name: 'pageSize',
type: 'Number'
}, {
name: 'batchNo',
... ...
//"http://172.16.6.220:8080/yohobuy-platform-web";
exports.domain ="http://localhost:30012";//require('../config/common.js').domain;
//路由配置
exports.res = [{
route: '/erpproduct/sortsize/index',
method: 'GET',
view: 'pages/sortsize/index',
url: '/product/queryAllProductSortList',
isJsonRaw:true,
data: {
addTitle:"添加尺码",
sortsize:true,
gridurl:"/erpproduct/sortsize/ajax/index"
},
src:'/sortsize/index'
},{
route: '/erpproduct/sortsize/ajax/index',
method: 'POST',
url: '/product/querySizeListBySortId',
isJsonRaw:true
},
{
route: '/erpproduct/sortsize/ajax/delete',
method: 'POST',
url: '/delete/aaaaaaa',
isJsonRaw:true
},
{//自动提示
route:'/erpproduct/sortsize/ajax/automatic',
method:'POST',
url: '/supplier/supplier/getSupplierListByIdName',
isJsonRaw: true,
params:[
{name:"idName",type:"String",def: 1}
]
},
{
route: '/erpproduct/sortsize/ajax/add',
method: 'POST',
url: '/delete/aaaaaaa',
isJsonRaw:true
},
//************************品类尺码属性管理*****************************
{
route: '/erpproduct/sortattribute/index',
method: 'GET',
view: 'pages/sortsize/index',
url: '/product/queryAllProductSortList',
isJsonRaw:true,
data: {
addTitle:"添加尺码属性",
sortattribute:true,
gridurl:"/erpproduct/sortattribute/ajax/index"
},
src:'/sortsize/attri'
},{
//获取品类关联尺码属性列表
route: '/erpproduct/sortattribute/ajax/index',
method: 'POST',
url: '/product/querySizeListBySortId',
isJsonRaw:true
},{//删除品类关联尺码属性接口
route: '/erpproduct/sortattribute/ajax/delete',
method: 'POST',
url: '/sortAttribute/delete',
isJsonRaw:true
},
{//添加品类关联尺码属性接口
route: '/erpproduct/sortattribute/ajax/add',
method: 'POST',
url: '/sortAttribute/add',
isJsonRaw:true
}]
\ No newline at end of file
... ...
... ... @@ -77,8 +77,8 @@ exports.res = [{
isJsonRaw:true,
params: [
{name: 'id', type: 'String'},
{name: 'page', type: 'Number'},
{name: 'size', type: 'Number'},
{name: 'curPage', type: 'Number'},
{name: 'pageSize', type: 'Number'},
{name: 'status', type: 'String'},
{name: 'timeSort', type: 'String'}
]
... ... @@ -90,8 +90,8 @@ exports.res = [{
isJsonRaw:true,
params: [
{name: 'id', type: 'String'},
{name: 'page', type: 'Number'},
{name: 'size', type: 'Number'},
{name: 'curPage', type: 'Number'},
{name: 'pageSize', type: 'Number'},
{name: 'status', type: 'String'},
{name: 'timeSort', type: 'String'}
]
... ...
module.exports = {
'/product/querySizeListBySortId': function(req, res) {
res.json({
"code": 200,
"data": {
"list": [
{
"orderBy": 1,
"sizeId": 199,
"sizeName": "F",
"sortId": 72,
"sortName": "耳钉/耳环"
},
{
"orderBy": 1,
"sizeId": 217,
"sizeName": "XXS",
"sortId": 72,
"sortName": "耳钉/耳环"
},
{
"orderBy": 1,
"sizeId": 218,
"sizeName": "XXXL",
"sortId": 72,
"sortName": "耳钉/耳环"
},
{
"orderBy": 1,
"sizeId": 348,
"sizeName": "XXXXL",
"sortId": 72,
"sortName": "耳钉/耳环"
}
],
"page": 0,
"size": 0,
"total": 0,
"totalPage": 0
},
"md5": "4ebf5e614102a54b0025164d794f8032",
"message": "sortsize List."
});
},
'/delete/aaaaaaa':function(req,res){
res.json({
"code": 200,
"md5": "dfc645ecb0c66c8d4771dd2a749047e8",
"message": "sortsize delete success."
});
}
}
\ 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>
<h4>品类尺码关系列表</h4>
</div>
</div>
<!-- media -->
</div>
<div class="contentpanel">
<div class="row">
<div class="col-md-3">
<div class="panel panel-default noborder pattrscroll">
<div class="panel-body">
<div class="pannel-scroll">
<ul class="list-group">
{{# data}}
<li class="list-group-item level{{sortLevel}} {{# child}}hidden{{/ child}}" data-parent="{{parentId}}" data-val="{{id}}" data-status="close">
<span class="icon expand-icon glyphicon glyphicon-plus"></span>
{{sortName}}
</li>
{{/ data}}
</ul>
</div>
</div>
</div>
</div>
<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">
<i class="glyphicon-plus"></i>{{addTitle}}
</button>
</div>
</div>
<div id="basicTable" class="table-responsive">
</div>
</div>
</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">{{addTitle}}</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="sortName" class="form-control" type="text" placeholder="属性名称" required readonly>
</div>
</div>
{{#sortsize}}
<div class="form-group">
<label class="col-md-3 control-label">
尺码<i>*</i>
</label>
<div class="col-md-6">
<select id="sizeId" class="attr-select width300" data-placeholder="尺码" required>
<option value="-1">请选择</option>
</select>
</div>
</div>
{{/sortsize}}
{{#sortattribute}}
<div class="form-group">
<label class="col-md-3 control-label">
尺码属性属性<i>*</i>
</label>
<div class="col-md-6">
<select id="sizeId" class="attr-select width300" data-placeholder="尺码属性" required>
<option value="-1">请选择</option>
</select>
</div>
</div>
{{/sortattribute}}
<div class="form-group">
<label class="col-md-3 control-label">
排序<i>*</i>
</label>
<div class="col-md-6">
<input id="orderBy" class="form-control width300" value="" type="number" placeholder="ID" required>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default m-t-20" data-dismiss="modal">关闭</button>
<button type="button" class="add-attr-btn btn btn-primary m-t-20">添加</button>
</div>
</div>
</div>
... ...
... ... @@ -11,6 +11,7 @@
</ul>
<div>
<div style="width: 30%;float: left;">
<input type="file" id="fileupload">
<h4>添加供应商</h4>
</div>
</div>
... ... @@ -83,7 +84,9 @@
<label class="col-sm-2 control-label">法人身份证电子版 </label>
<div class="col-sm-8">
<ul class="upload-image-list" style="-webkit-padding-start: 0px;padding-left: 0px;">
<li class="fileinput-button"><a class="fileinput-button-icon" id="forlegalIdentityCard" href="javascript:void(0);">
<li class="fileinput-button">
<a class="fileinput-button-icon" id="forlegalIdentityCard" href="javascript:void(0);">
{{#legalIdentityCard}}
<img width="76" height="80" src="{{legalIdentityCard}}">
{{/legalIdentityCard}}
... ...