You've already forked qlg.frontend
Init Repo
This commit is contained in:
855
js/addgoods.js
Normal file
855
js/addgoods.js
Normal file
@ -0,0 +1,855 @@
|
||||
mui.init({
|
||||
beforeback: function() { //获得父页面的webview
|
||||
var list = plus.webview.currentWebview().opener(); //触发父页面的自定义事件(refresh),从而进行刷新
|
||||
mui.fire(list, 'reload');
|
||||
//返回true,继续页面关闭逻辑
|
||||
return true;
|
||||
}
|
||||
});
|
||||
$(".pricset_con").hide();
|
||||
|
||||
function escape2Html(str) {
|
||||
var arrEntities = {
|
||||
'lt': '<',
|
||||
'gt': '>',
|
||||
'nbsp': ' ',
|
||||
'amp': '&',
|
||||
'quot': '"'
|
||||
};
|
||||
return str.replace(/&(lt|gt|nbsp|amp|quot);/ig, function(all, i) {
|
||||
return arrEntities[i];
|
||||
});
|
||||
};
|
||||
mui.plusReady(function() {
|
||||
$("#isSale").prop("checked", true);
|
||||
var self = plus.webview.currentWebview();
|
||||
|
||||
var shopId = self.id;
|
||||
var goodsId = self.goodsId;
|
||||
var richText = '';
|
||||
|
||||
var E = window.wangEditor
|
||||
var editor = new E('#goodsDesc')
|
||||
// editor.customConfig.showLinkImg = false // 隐藏“网络图片”tab
|
||||
// editor.customConfig.uploadFileName = 'yourFileName' //给上传的本地图片文件命名的统一名称
|
||||
// editor.customConfig.uploadImgServer = '/upload'; //官方文档上写的是服务器地址,也就是上传图片的方法名
|
||||
|
||||
// 允许上传到七牛云存储
|
||||
editor.customConfig.qiniu = true;
|
||||
editor.customConfig.debug = true;
|
||||
// editor.customConfig.onchange = function (html) {
|
||||
// // 监控变化,同步更新到 textarea
|
||||
// // $text1.val(html)
|
||||
// };
|
||||
editor.create();
|
||||
// 初始化七牛上传
|
||||
|
||||
|
||||
if (goodsId > 0) {
|
||||
$(".title").text("编辑商品")
|
||||
|
||||
JZL.ajax(qlgUrl("app/shops/getGoodsInfo"), {
|
||||
shopId: shopId,
|
||||
goodsId: goodsId
|
||||
}, function(data) {
|
||||
//console.log(data);
|
||||
if (data.status == 1) {
|
||||
var html1 = '';
|
||||
var data = data.data;
|
||||
var i = 0,
|
||||
j = 0;
|
||||
var res = '';
|
||||
var bjSpec = data.isSpec;
|
||||
if (1 == data.isSpec) {
|
||||
$(".pricset_con").show()
|
||||
var id = data.setNameId;
|
||||
|
||||
|
||||
getRecommend(page, pageSize, id)
|
||||
|
||||
JZL.ajax(qlgUrl('app/shops/getGoodsSpecCats'), {
|
||||
shopId: shopId,
|
||||
id: id
|
||||
}, function(data1) {
|
||||
|
||||
if (1 == data1.status) {
|
||||
var that = this
|
||||
var arr = [];
|
||||
var arr2 = {};
|
||||
for (var i = 0; i < data1.data.length; i++) {
|
||||
arr.push(data1.data[i].list);
|
||||
arr2[data1.data[i].catId] = data1.data[i].list;
|
||||
}
|
||||
|
||||
|
||||
var cLength = 0;
|
||||
var catId = 0;
|
||||
var goodsRes = "";
|
||||
if (arr.length > 0) {
|
||||
var calc = calcDescartes(arr);
|
||||
var cIndex = 0,
|
||||
cArr = [];
|
||||
while (true) {
|
||||
if (cIndex >= calc.length) {
|
||||
break;
|
||||
}
|
||||
//区分单规格和多规格
|
||||
if (Array.isArray(calc[cIndex])) {
|
||||
res = calc[cIndex].join(' ');
|
||||
cArr = calc[cIndex];
|
||||
cLength = calc[cIndex].length;
|
||||
} else {
|
||||
res = calc[cIndex];
|
||||
cArr[0] = res;
|
||||
cLength = 1;
|
||||
}
|
||||
for (i = 0; i < cArr.length; i++) {
|
||||
//获取catId
|
||||
|
||||
// console.log(cArr[i]);
|
||||
$.each(arr2, function(ind, val) {
|
||||
//console.log(val);
|
||||
$.each(val, function(index, value) {
|
||||
if (value == cArr[i]) {
|
||||
catId = ind;
|
||||
// console.log(catId);
|
||||
return;
|
||||
}
|
||||
});
|
||||
});
|
||||
html1 += '<input type="hidden" name="specItemIds[]" id="specItemIds[' + j + '][' + i +
|
||||
']" class="inp" value="0" />' + //属性值id
|
||||
'<input type="hidden" name="specNamesId[]" id="specNamesId[' + j + '][' + i + ']" class="inp" value="' +
|
||||
catId + '" />' + //分类ID
|
||||
'<input type="hidden" name="specItems[]" id="specItems[' + j + '][' + i + ']" class="inp" value="' +
|
||||
cArr[i] + //属性值
|
||||
'" />';
|
||||
}
|
||||
//console.log(j);
|
||||
html1 += '<input type="hidden" name="specIds[]" id="specIds[' + j + ']" class="inp" value="0" />' + //规格表ID 新增传0
|
||||
'<div class="addcon_con shadown_wai"><div class="radio"><input name="defaultId" type="radio" value="' +
|
||||
j + '" /></div><label for="" data-id = "' + j +
|
||||
'" name="showSpecNames[]" class="">' + res +
|
||||
'</label><input type="text" name="specPrice[]" id="specPrice[' + j +
|
||||
']" class="inp label-t" value="" /><input type="text" name="specStock[]" id="specStock[' + j +
|
||||
']" class="inp label-t" value=""/></div>';
|
||||
j++;
|
||||
cIndex++;
|
||||
}
|
||||
|
||||
$('.pricset_con_con').html(html1);
|
||||
//var setNum = 0;
|
||||
|
||||
mui.each(data.spec, function(idx, val) {
|
||||
// console.log(val.names);
|
||||
//if (calc[setNum].length != val.names.length) return false;
|
||||
//setNum++;
|
||||
goodsRes = '';
|
||||
i = 0;
|
||||
mui.each(val.names, function(index, value) {
|
||||
goodsRes += value.itemName + ' '; //hongse 39ma
|
||||
})
|
||||
|
||||
var showSpecNames = $('label[name="showSpecNames[]"]');
|
||||
var specNameArr = [];
|
||||
for (var k = 0; k < showSpecNames.length; k++) {
|
||||
specNameArr[$(showSpecNames[k]).attr('data-id')] = $(showSpecNames[k]).text();
|
||||
}
|
||||
$.each(specNameArr, function(sitem, sval) {
|
||||
if ($.trim(goodsRes) == $.trim(sval)) { //去除空格 不然报错
|
||||
i = 0;
|
||||
mui.each(val.names, function(index, value) {
|
||||
|
||||
document.getElementById('specItemIds[' + +sitem + '][' + i + ']').value = value.itemId //属性值ID 新增传0
|
||||
i++;
|
||||
});
|
||||
document.getElementById('specIds[' + +sitem + ']').value = val.id //规格表ID,新增传0
|
||||
document.getElementById('specPrice[' + +sitem + ']').value = val.specPrice
|
||||
document.getElementById('specStock[' + +sitem + ']').value = val.specStock
|
||||
if (1 == val.isDefault) {
|
||||
|
||||
//checked
|
||||
var inputList = $('input[name=defaultId]')
|
||||
|
||||
|
||||
$.each(inputList, function(index, value) {
|
||||
|
||||
this.previousElementSibling
|
||||
if (sitem == this.value) {
|
||||
this.checked = true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
} else if (0 == data.isSpec) {
|
||||
// $('#setNameId').html('<option value="0">选择属性</option>')
|
||||
getRecommend(page, pageSize)
|
||||
}
|
||||
if (1 == data.isSale) {
|
||||
$('#isSale').prop("checked", "checked");
|
||||
}
|
||||
mui.each(data, function(index, element) {
|
||||
if ($('#' + index).attr("type") == "hidden" & $('#' + index).hasClass('inp')) {
|
||||
var imgindex = index.substring(0, index.length - 3);
|
||||
var obj = '#' + imgindex;
|
||||
if ($(obj).is('img')) {
|
||||
$(obj).attr("src", hyhImgUrl(element))
|
||||
$('#' + index).val(element)
|
||||
} else if ($('#' + index).hasClass('gallery')) {
|
||||
var html = '';
|
||||
if (element.length > 0) {
|
||||
var imgurls = element.split(",") ? imgurls = element.split(",") : imgurls = element;
|
||||
html = ''
|
||||
for (var i = 0; i < imgurls.length; i++) {
|
||||
html += '<div data-id="' + i +
|
||||
'" data-src="" class="galleryImg photo"><div class="delete"><img src="../img/close.png" alt=""></div><img src=' +
|
||||
hyhImgUrl(imgurls[i]) + ' class="ossfile" id="galleryImg[' + i +
|
||||
']" alt=""><input type="hidden" value="' + imgurls[i] +
|
||||
'" name="gallery[]" class="gallery" id="gallery[' + i + ']"><span class=""></span></div>'
|
||||
// $('#' + index+'Img['+i+']').val(hyhImgUrl(imgurls[i]))
|
||||
}
|
||||
var maxNum = +$('.galleryImg').last().attr('data-id') + 1; //$('.batchImg').children('.galleryImg').length - 1;
|
||||
html += '<div class="galleryImg photo" data-id="' + maxNum +
|
||||
'" ><img src="../img/pjimg.png" class="ossfile" id="galleryImg[' +
|
||||
maxNum + ']" alt=""><input type="hidden" name="gallery[]" value="" class="gallery" id="gallery[' +
|
||||
maxNum +
|
||||
']"><span class=""></span></div>';
|
||||
$(".batchImg").html(html)
|
||||
} else {
|
||||
html = "";
|
||||
html =
|
||||
'<div class="galleryImg photo" data-id="0" ><img src="../img/pjimg.png" class="ossfile" id="galleryImg[0]" alt=""><input type="hidden" name="gallery[]" value="" class="gallery" id="gallery[0]"><span class=""></span></div>';
|
||||
$(".batchImg").html(html)
|
||||
}
|
||||
}
|
||||
} else if (index == 'goodsCatIdPath') {
|
||||
// data.goodsCatIdPath 三级目录
|
||||
var goodsCatIdPathArr = [];
|
||||
var pathArr = ["largeCat", "mediumCat", "smallCat"]
|
||||
//console.log(data.goodsCatIdPath);
|
||||
goodsCatIdPathArr = data.goodsCatIdPath.split('_')
|
||||
goodsCatIdPathArr.pop() //移除最后一个数组元素 _
|
||||
mui.each(pathArr, function(idx, ele) {
|
||||
//console.log(idx);
|
||||
switch (ele) {
|
||||
case 'largeCat':
|
||||
getCatIdPathName(goodsCatIdPathArr[0], function(data) {
|
||||
getGoodsCats('largeCat', 0, goodsCatIdPathArr[0]);
|
||||
})
|
||||
break;
|
||||
case 'mediumCat':
|
||||
getCatIdPathName(goodsCatIdPathArr[1], function(data) {
|
||||
$('#mediumCat').html('<option selected value="' + goodsCatIdPathArr[1] + '">' + data.data.catName +
|
||||
'</option>')
|
||||
});
|
||||
break;
|
||||
case 'smallCat':
|
||||
getCatIdPathName(goodsCatIdPathArr[2], function(data) {
|
||||
$('#smallCat').html('<option selected value="' + goodsCatIdPathArr[2] + '">' + data.data.catName +
|
||||
'</option>')
|
||||
});
|
||||
break;
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
$('#' + index).val(element)
|
||||
}
|
||||
})
|
||||
if ('' != data.goodsDesc) {
|
||||
var Desc = escape2Html(data.goodsDesc)
|
||||
editor.txt.html(Desc)
|
||||
}
|
||||
} else {
|
||||
mui.alert(data.msg)
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
getGoodsCats("largeCat", 0)
|
||||
getRecommend(page, pageSize);
|
||||
$(".title").text("添加商品")
|
||||
}
|
||||
function getCatIdPathName(catId, callback) {
|
||||
JZL.ajax(qlgUrl("app/goodscats/getCatName"), {
|
||||
catId: catId
|
||||
}, function(data) {
|
||||
callback(data);
|
||||
})
|
||||
}
|
||||
|
||||
//获取商品总规格列表
|
||||
var page = 1;
|
||||
var pageSize = 100;
|
||||
var isjiazai = 1;
|
||||
function getRecommend(page, pageSize, defaultVal) {
|
||||
var recommenddata = {
|
||||
page: page ? page : 1,
|
||||
pageSize: pageSize ? pageSize : 100
|
||||
}
|
||||
recommenddata.shopId = shopId
|
||||
if (isjiazai == 0) {
|
||||
return;
|
||||
} else {
|
||||
isjiazai = 0;
|
||||
}
|
||||
JZL.ajax(qlgUrl('app/shops/getSpecs'), recommenddata, function(data) {
|
||||
|
||||
|
||||
// ////console.log(data);
|
||||
data = toJson(data);
|
||||
if (data.status == 1) {
|
||||
data = data.data;
|
||||
var html = '<option value="0">无规格属性</option>';
|
||||
if (typeof(defaultVal) == "undefined") {
|
||||
// ////console.log(1);
|
||||
$.each(data.Rows, function() {
|
||||
html += '<option value= "' + this.id + '" data-id="' + this.id + ' ">' + this.setName + '</option>'
|
||||
});
|
||||
if (page == 1) {
|
||||
$('#setNameId').html(html);
|
||||
|
||||
} else {
|
||||
$('#setNameId').append(html);
|
||||
|
||||
}
|
||||
} else {
|
||||
// ////console.log(defaultVal);
|
||||
$.each(data.Rows, function() {
|
||||
if (this.id == defaultVal) {
|
||||
selected = 'selected';
|
||||
} else {
|
||||
selected = '';
|
||||
}
|
||||
html += '<option data-id="' + this.id + '" value="' + this.id + '" ' + selected + '>' + this.setName +
|
||||
'</option>';
|
||||
|
||||
});
|
||||
if (page == 1) {
|
||||
$('#setNameId').html(html);
|
||||
|
||||
} else {
|
||||
$('#setNameId').append(html);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
// mui.alert('发生错误请刷新后重试!');
|
||||
mui.alert(data.msg);
|
||||
// location.reload();
|
||||
}
|
||||
isjiazai = 1;
|
||||
})
|
||||
}
|
||||
|
||||
//获取商品规格
|
||||
//笛卡尔积
|
||||
function calcDescartes(array) {
|
||||
if (array.length < 2) return array[0] || [];
|
||||
return [].reduce.call(array, function(col, set) {
|
||||
var res = [];
|
||||
col.forEach(function(c) {
|
||||
set.forEach(function(s) {
|
||||
var t = [].concat(Array.isArray(c) ? c : [c]);
|
||||
t.push(s);
|
||||
res.push(t);
|
||||
})
|
||||
});
|
||||
return res;
|
||||
});
|
||||
}
|
||||
// 笛卡尔积
|
||||
// combins = function(args) {
|
||||
//
|
||||
// if (args.length < 2) return args[0] || [];
|
||||
// // if (arguments.length < 2) return arguments[0] || [];
|
||||
// //var args = Array.prototype.slice.call(arguments);
|
||||
// var that = {
|
||||
// index: 0,
|
||||
// nth: function(n) {
|
||||
// var result = [],
|
||||
// d = 0;
|
||||
// for (; d < this.dim; d++) {
|
||||
// var l = this[d].length;
|
||||
// var i = n % l;
|
||||
// result.push(this[d][i]);
|
||||
// n -= i;
|
||||
// n /= l;
|
||||
// }
|
||||
// return result;
|
||||
// },
|
||||
// next: function() {
|
||||
// if (this.index >= size) return;
|
||||
// var result = this.nth(this.index);
|
||||
// this.index++;
|
||||
// return result;
|
||||
// }
|
||||
// };
|
||||
// var size = 1;
|
||||
// for (var i = 0; i < args.length; i++) {
|
||||
// size = size * args[i].length;
|
||||
// that[i] = args[i];
|
||||
// }
|
||||
// that.size = size;
|
||||
// that.dim = args.length;
|
||||
// return that;
|
||||
// }
|
||||
|
||||
|
||||
|
||||
$('#setNameId').change(function() {
|
||||
var id = $('#setNameId option:selected').attr('data-id')
|
||||
// ////console.log(id);
|
||||
|
||||
var html1 = "";
|
||||
if (typeof id == "undefined" || 0 == id) {
|
||||
$(".pricset_con").hide()
|
||||
} else {
|
||||
$(".pricset_con").show()
|
||||
JZL.ajax(qlgUrl('app/shops/getGoodsSpecCats'), {
|
||||
shopId: shopId,
|
||||
id: id
|
||||
}, function(data) {
|
||||
// ////console.log(data);
|
||||
if (1 == data.status) {
|
||||
html1 = "";
|
||||
var arr = [];
|
||||
var arr2 = {};
|
||||
for (var i = 0; i < data.data.length; i++) {
|
||||
arr.push(data.data[i].list);
|
||||
arr2[data.data[i].catId] = data.data[i].list;
|
||||
}
|
||||
var calc = calcDescartes(arr);
|
||||
var cIndex = 0;
|
||||
var i = 0,
|
||||
j = 0,
|
||||
cArr = [];
|
||||
while (true) {
|
||||
if (cIndex >= calc.length) {
|
||||
break;
|
||||
}
|
||||
//区分单规格和多规格
|
||||
if (Array.isArray(calc[cIndex])) {
|
||||
res = calc[cIndex].join(' ');
|
||||
cArr = calc[cIndex];
|
||||
cLength = calc[cIndex].length;
|
||||
} else {
|
||||
res = calc[cIndex];
|
||||
cArr[0] = res;
|
||||
cLength = 1;
|
||||
}
|
||||
for (i = 0; i < cArr.length; i++) {
|
||||
//获取catId
|
||||
|
||||
// console.log(cArr[i]);
|
||||
$.each(arr2, function(ind, val) {
|
||||
//console.log(val);
|
||||
$.each(val, function(index, value) {
|
||||
if (value == cArr[i]) {
|
||||
catId = ind;
|
||||
// console.log(catId);
|
||||
return;
|
||||
}
|
||||
});
|
||||
});
|
||||
html1 += '<input type="hidden" name="specItemIds[]" id="specItemIds[' + j + '][' + i +
|
||||
']" class="inp" value="0" />' + //属性值id
|
||||
'<input type="hidden" name="specNamesId[]" id="specNamesId[' + j + '][' + i + ']" class="inp" value="' +
|
||||
catId + '" />' + //分类ID
|
||||
'<input type="hidden" name="specItems[]" id="specItems[' + j + '][' + i + ']" class="inp" value="' + cArr[
|
||||
i] + //属性值
|
||||
'" />';
|
||||
}
|
||||
//console.log(j);
|
||||
html1 += '<input type="hidden" name="specIds[]" id="specIds[' + j + ']" class="inp" value="0" />' + //规格表ID 新增传0
|
||||
'<div class="addcon_con shadown_wai"><div class="radio"><input name="defaultId" type="radio" value="' + j +
|
||||
'" /></div><label for="" data-id = "' + j +
|
||||
'" name="showSpecNames[]" class="">' + res +
|
||||
'</label><input type="text" name="specPrice[]" id="specPrice[' + j +
|
||||
']" class="inp label-t" value="" /><input type="text" name="specStock[]" id="specStock[' + j +
|
||||
']" class="inp label-t" value=""/></div>';
|
||||
j++;
|
||||
cIndex++;
|
||||
}
|
||||
|
||||
$('.pricset_con_con').html(html1);
|
||||
} else {
|
||||
mui.alert(data.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
// 下一页
|
||||
var check = true;
|
||||
mui("body").on('tap', '.next_btn', function() {
|
||||
check = true;
|
||||
$('.isemptyinp').each(function() {
|
||||
if (!this.value || "" == $.trim(this.value)) {
|
||||
var label = this.previousElementSibling;
|
||||
mui.alert(label.innerText + "不允许为空")
|
||||
check = false;
|
||||
return false;
|
||||
}
|
||||
})
|
||||
|
||||
if ($("#shopPrice").val() == "" & $("#setNameId option:selected").val() == "0" & check == true) {
|
||||
mui.alert("商品没有属性必须输入商品价格")
|
||||
check = false;
|
||||
return false;
|
||||
}
|
||||
if ($("#setNameId option:selected").val() != 0 && check == true) {
|
||||
|
||||
if ($('input[name="defaultId"]:checked').length == 0) {
|
||||
mui.alert("请选择默认规格")
|
||||
check = false;
|
||||
return false
|
||||
}
|
||||
$('.pricset_con_con input').each(function() {
|
||||
if ((!$(this).val() || "" == $.trim(this.value))) {
|
||||
|
||||
|
||||
mui.alert("请输入数据")
|
||||
$(this).focus();
|
||||
check = false;
|
||||
return false;
|
||||
}
|
||||
})
|
||||
}
|
||||
// var shopPrice= $('input[name="defaultId"]:checked').parent().parent().find('input[name="specPrice[]"]').val();
|
||||
// ////console.log(shopPrice)
|
||||
if ($("#isSale").prop("checked")) {
|
||||
isSale = "1";
|
||||
} else {
|
||||
isSale = "0";
|
||||
}
|
||||
if (check == true) {
|
||||
$(".addcon").css("display", "none")
|
||||
$(".pre").css("display", "block");
|
||||
backTop();
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
//预览
|
||||
$('.prelook').hide();
|
||||
// mui("body").on('tap', '.prelook', function() {
|
||||
//
|
||||
//
|
||||
//
|
||||
// })
|
||||
// 上一页
|
||||
mui('body').on('tap', '.pre_btn', function() {
|
||||
$(".addcon").css("display", "block")
|
||||
$(".pre").css("display", "none")
|
||||
})
|
||||
// ////console.log($("#goodsDesc").text());
|
||||
|
||||
//提交
|
||||
// 判断是否上架
|
||||
var isSale = "",
|
||||
setNameId,
|
||||
isSpec;
|
||||
//提交
|
||||
var click = false;
|
||||
mui('.btn').on('tap', '.submit_btn ', function() {
|
||||
// if (click == true) return;
|
||||
richText = editor.txt.text()
|
||||
// 判断有没有商品属性
|
||||
if ($("#setNameId option:selected").val() != 0) {
|
||||
isSpec = 1;
|
||||
} else {
|
||||
isSpec = 0;
|
||||
}
|
||||
if (click == true) return;
|
||||
if ($("#isSale").prop("checked")) {
|
||||
isSale = "1";
|
||||
} else {
|
||||
isSale = "0";
|
||||
}
|
||||
var imgs = '';
|
||||
var data = $('input[name="gallery[]"]');
|
||||
$.each(data, function() {
|
||||
if ('' != $(this).val())
|
||||
imgs = $(this).val() + ',' + imgs;
|
||||
|
||||
})
|
||||
|
||||
|
||||
imgs = imgs.substring(0, imgs.lastIndexOf(','));
|
||||
|
||||
|
||||
$('#gallery').val(imgs);
|
||||
//默认选中
|
||||
var defaultPrice = $('input[name="defaultId"]:checked').parent().parent().find('input[name="specPrice[]"]').val();
|
||||
var params = JZL.getParams(".inp");
|
||||
params.shopId = shopId;
|
||||
params.isSale = isSale;
|
||||
params.isSpec = isSpec;
|
||||
params.defaultId = $('input[name="defaultId"]:checked').val();
|
||||
params.goodsDesc = editor.txt.html();
|
||||
params.setNameId = $('#setNameId option:selected').val()
|
||||
if (isSpec == 1) {
|
||||
// params.shopPrice = shopPrice
|
||||
$('#shopPrice').val(defaultPrice);
|
||||
|
||||
}
|
||||
params.shopPrice = $('#shopPrice').val()
|
||||
click = true;
|
||||
if (goodsId > 0) {
|
||||
params.goodsId = goodsId;
|
||||
|
||||
}
|
||||
|
||||
JZL.ajax(qlgUrl('app/shops/addGoods'), params, function(data) {
|
||||
|
||||
if (data.status == 1) {
|
||||
click = false;
|
||||
mui.toast(data.msg);
|
||||
mui.back();
|
||||
} else {
|
||||
// mui.alert('发生错误请刷新后重试!');
|
||||
// location.reload();
|
||||
mui.alert(data.msg)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
})
|
||||
|
||||
//获取类目
|
||||
$('.selectarea').on("change", ".area", function() {
|
||||
var objs = ['largeCat', 'mediumCat', 'smallCat'];
|
||||
// var areaStr = ['请选择', '请选择', '请选择'];
|
||||
var level = +$(this).attr('data-level') + 1; //0
|
||||
pid = $('#' + objs[level - 1] + ' option:selected').val();
|
||||
getGoodsCats(objs[level], pid);
|
||||
|
||||
})
|
||||
|
||||
//三级类目
|
||||
function getGoodsCats(obj, pid, defaultId) {
|
||||
JZL.ajax(qlgUrl('app/shops/getGoodsCats'), {
|
||||
pid: pid
|
||||
},
|
||||
function(data) {
|
||||
// ////console.log(data);
|
||||
if (data.status == 1) {
|
||||
data = data.data;
|
||||
var html = '<option value="">' + "请选择" + '</option>';
|
||||
if ('undefined' == typeof(defaultId)) {
|
||||
$.each(data, function() {
|
||||
// ////console.log(this);
|
||||
html += '<option value="' + this.catId + '">' + this.catName + '</option>'
|
||||
});
|
||||
} else {
|
||||
$.each(data, function() {
|
||||
if (this.catId == defaultId) {
|
||||
selected = 'selected';
|
||||
} else {
|
||||
selected = '';
|
||||
}
|
||||
html += '<option value="' + this.catId + '" ' + selected + '>' + this.catName + '</option>'
|
||||
});
|
||||
}
|
||||
$('#' + obj).html(html);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 上传图片
|
||||
$(".batchImg").on("tap", '.galleryImg', function() {
|
||||
var num = $(this).attr('data-id');
|
||||
UP.init("gallery[" + num + "]", "test", "galleryImg[" + num + "]", 1);
|
||||
var that = $(this);
|
||||
openCamera(function(t, status, fileName, serverName) {
|
||||
var html = '<div class="delete" data-id="' + num + '"><img src="../img/close.png" alt=""></div><img src="' +
|
||||
serverName + '" class="ossfile" data-src="' + fileName + '" data-id="' + num + '" id="galleryImg[' + num +
|
||||
']" alt=""><input type="hidden" name="gallery[]" value="' + fileName +
|
||||
'" class="gallery" id="gallery[' + num + ']"><span class=""></span>';
|
||||
|
||||
|
||||
that.html(html);
|
||||
|
||||
|
||||
var maxNum = $('.galleryImg').last().attr('data-id'); //$('.batchImg').children('.galleryImg').length - 1;
|
||||
if (num == maxNum) {
|
||||
maxNum++;
|
||||
html = '<div class="galleryImg photo" data-id="' + maxNum +
|
||||
'" ><img src="../img/pjimg.png" class="ossfile" id="galleryImg[' +
|
||||
maxNum + ']" alt=""><input type="hidden" name="gallery[]" value="" class="gallery" id="gallery[' + maxNum +
|
||||
']"><span class=""></span></div>';
|
||||
$(".batchImg").append(html);
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
$(".oneImg").on("tap", '#goods', function() {
|
||||
|
||||
|
||||
UP.init("goodsImg", "test", "goods")
|
||||
openCamera(function(t, status, fileName, serverName) {
|
||||
var html = '<img src="' + serverName + '" class="ossfile" data-src="' + fileName +
|
||||
'" id="goods" alt=""><input type="hidden" value="' + fileName +
|
||||
'" class="goodsImg inp" id="goodsImg"><span class=""></span>';
|
||||
|
||||
$(".goods").html(html);
|
||||
|
||||
})
|
||||
})
|
||||
// 删除图片
|
||||
$(".batchImg").on('tap', '.delete', function(e) {
|
||||
|
||||
e.preventDefault();
|
||||
e.stopPropagation()
|
||||
|
||||
|
||||
var that = $(this)
|
||||
|
||||
if (confirm('确认删除图片?')) {
|
||||
that.parent().remove()
|
||||
|
||||
}
|
||||
})
|
||||
//上传图片到七牛;
|
||||
|
||||
var uptoken = '';
|
||||
var rs = send_request();
|
||||
rs = JSON.parse(rs);
|
||||
|
||||
uptoken = rs.token;
|
||||
|
||||
function send_request() {
|
||||
var xmlhttp = null;
|
||||
if (window.XMLHttpRequest) {
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
} else if (window.ActiveXObject) {
|
||||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
|
||||
if (xmlhttp != null) {
|
||||
|
||||
serverUrl = hyhUrl('oss/qiniu.php');
|
||||
xmlhttp.open("GET", serverUrl, false);
|
||||
xmlhttp.send(null);
|
||||
return xmlhttp.responseText
|
||||
} else {
|
||||
mui.alert("Your browser does not support XMLHTTP.");
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
// 初始化七牛上传的方法
|
||||
function uploadInit() {
|
||||
var btnId = editor.imgMenuId;
|
||||
var containerId = editor.toolbarElemId;
|
||||
var textElemId = editor.textElemId;
|
||||
// 创建上传对象
|
||||
var uploader = Qiniu.uploader({
|
||||
runtimes: 'html5,flash,html4', //上传模式,依次退化
|
||||
browse_button: btnId, //上传选择的点选按钮,**必需**
|
||||
//uptoken_url: rs,
|
||||
//Ajax请求upToken的Url,**强烈建议设置**(服务端提供)
|
||||
uptoken: uptoken,
|
||||
// url: 'http://up-z1.qiniup.com',
|
||||
|
||||
// uptoken : '<Your upload token>',
|
||||
//若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成
|
||||
// unique_names: true,
|
||||
// 默认 false,key为文件名。若开启该选项,SDK会为每个文件自动生成key(文件名)
|
||||
// save_key: true,
|
||||
// 默认 false。若在服务端生成uptoken的上传策略中指定了 `sava_key`,则开启,SDK在前端将不对key进行任何处理
|
||||
// domain: 'http://7xrjl5.com1.z0.glb.clouddn.com/',
|
||||
// domain:$('#domain').val(),
|
||||
domain: rs.url,
|
||||
|
||||
//bucket 域名,下载资源时用到,**必需**
|
||||
container: containerId, //上传区域DOM ID,默认是browser_button的父元素,
|
||||
max_file_size: '100mb', //最大文件体积限制
|
||||
flash_swf_url: '../js/plupload/Moxie.swf', //引入flash,相对路径
|
||||
filters: {
|
||||
mime_types: [
|
||||
//只允许上传图片文件 (注意,extensions中,逗号后面不要加空格)
|
||||
{
|
||||
title: "图片文件",
|
||||
extensions: "jpg,gif,png,bmp"
|
||||
}
|
||||
]
|
||||
},
|
||||
max_retries: 3, //上传失败最大重试次数
|
||||
dragdrop: true, //开启可拖曳上传
|
||||
drop_element: textElemId, //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
|
||||
chunk_size: '4mb', //分块上传时,每片的体积
|
||||
auto_start: true, //选择文件后自动上传,若关闭需要自己绑定事件触发上传
|
||||
init: {
|
||||
'FilesAdded': function(up, files) {
|
||||
plupload.each(files, function(file) {
|
||||
// 文件添加进队列后,处理相关的事情
|
||||
// printLog('on FilesAdded');
|
||||
});
|
||||
},
|
||||
'BeforeUpload': function(up, file) {
|
||||
// 每个文件上传前,处理相关的事情
|
||||
// printLog('on BeforeUpload');
|
||||
},
|
||||
'UploadProgress': function(up, file) {
|
||||
// 显示进度
|
||||
// printLog('进度 ' + file.percent)
|
||||
},
|
||||
'FileUploaded': function(up, file, info) {
|
||||
// 每个文件上传成功后,处理相关的事情
|
||||
// 其中 info 是文件上传成功后,服务端返回的json,形式如
|
||||
// {
|
||||
// "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
|
||||
// "key": "gogopher.jpg"
|
||||
// }
|
||||
// printLog(info);
|
||||
// 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html
|
||||
|
||||
var domain = up.getOption('domain');
|
||||
var res = $.parseJSON(info);
|
||||
var sourceLink = domain + res.key; //获取上传成功后的文件的Url
|
||||
// 插入图片到editor
|
||||
editor.cmd.do('insertHtml', '<img src="' + sourceLink + '" style="max-width:100%;"/>')
|
||||
},
|
||||
'Error': function(up, err, errTip) {
|
||||
//上传出错时,处理相关的事情
|
||||
// printLog('on Error');
|
||||
},
|
||||
'UploadComplete': function() {
|
||||
//队列文件处理完毕后,处理相关的事情
|
||||
// printLog('on UploadComplete');
|
||||
}
|
||||
// Key 函数如果有需要自行配置,无特殊需要请注释
|
||||
//,
|
||||
// 'Key': function(up, file) {
|
||||
// // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
|
||||
// // 该配置必须要在 unique_names: false , save_key: false 时才生效
|
||||
// var key = "";
|
||||
// // do something with key here
|
||||
// return key
|
||||
// }
|
||||
}
|
||||
// domain 为七牛空间(bucket)对应的域名,选择某个空间后,可通过"空间设置->基本设置->域名设置"查看获取
|
||||
// uploader 为一个plupload对象,继承了所有plupload的方法,参考http://plupload.com/docs
|
||||
});
|
||||
}
|
||||
uploadInit();
|
||||
// 封装 ////console.log 函数
|
||||
function printLog(title, info) {
|
||||
window.console && console.log(title, info);
|
||||
}
|
||||
})
|
Reference in New Issue
Block a user