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() { var self = plus.webview.currentWebview(); // ////console.log(self); 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; // ////console.log(id); getRecommend(page, pageSize, id) JZL.ajax(qlgUrl('app/shops/getGoodsSpecCats'), { shopId: shopId, id: id }, function(data1) { //console.log(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; } // ////console.log(a); var cLength = 0; var catId = 0; var goodsRes = ""; if (arr.length > 0) { var tmpI = 0; var a = combins(arr); while (true) { if (arr.length > 1) { c = a.next(); if (!c) break; cLength = c.length; res = c.join(' '); } else { if (tmpI >= arr[0].length) { break; } c = arr[0]; res = arr[0][tmpI]; cLength = arr[0].length; } tmpI++; // ////console.log(c); // ////console.log(res); for (i = 0; i < cLength; i++) { $.each(arr2, function(ind, val) { $.each(val, function(index, value) { if (value == c[i]) { catId = ind; return; } }); }) html1 += '' + //属性值id '' + //分类ID ''; } //console.log(j); html1 += '' + //规格表ID 新增传0 '
'; j++; } $('.pricset_con_con').html(html1); var setNum = 0; mui.each(data.spec, function(idx, val) { if (cLength != val.names.length) return false; goodsRes = ''; i = 0; if (arr.length > 1) { mui.each(val.names, function(index, value) { goodsRes += value.itemName + ' '; //hongse 39ma }) } else { // //console.log(val); //console.log(val.names); goodsRes = val.names[setNum].itemName; setNum++; } 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) { // ////console.log(i); 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) { // ////console.log(value, index); this.previousElementSibling if (sitem == this.value) { this.checked = true } }) } } }) }) } } }) } else if (0 == data.isSpec) { // $('#setNameId').html('') 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 += '
' // $('#' + index+'Img['+i+']').val(hyhImgUrl(imgurls[i])) } var maxNum = +$('.galleryImg').last().attr('data-id') + 1; //$('.batchImg').children('.galleryImg').length - 1; html += '
'; $(".batchImg").html(html) } else { html = ""; html = '
'; $(".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('') }); break; case 'smallCat': getCatIdPathName(goodsCatIdPathArr[2], function(data) { $('#smallCat').html('') }); break; } }) } else { $('#' + index).val(element) } }) if ('' != data.goodsDesc) { var Desc = escape2Html(data.goodsDesc) // var Desc= HtmlUtils.htmlUnescape(data.goodsDesc) ////console.log(Desc) // $('#goodsDesc').val(Desc) // $('#goodsDesc').html(Desc) editor.txt.html(Desc) } // params.goodsDesc = editor.txt.html(); } 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 = ''; if (typeof(defaultVal) == "undefined") { // ////console.log(1); $.each(data.Rows, function() { html += '' }); 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 += ''; }); if (page == 1) { $('#setNameId').html(html); } else { $('#setNameId').append(html); } } } else { // mui.alert('发生错误请刷新后重试!'); mui.alert(data.msg); // location.reload(); } isjiazai = 1; }) } //获取商品规格 // 笛卡尔积 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 j = 0; var res = ''; var cLength = 0; var catId = 0; var tmpI = 0; var a = combins(arr); while (true) { if (arr.length > 1) { c = a.next(); if (!c) break; cLength = c.length; res = c.join(' '); } else { if (tmpI >= arr[0].length) { break; } c = arr[0]; res = arr[0][tmpI]; cLength = arr[0].length; } tmpI++; for (i = 0; i < cLength; i++) { $.each(arr2, function(ind, val) { $.each(val, function(index, value) { if (value == c[i]) { catId = ind; return; } }); }) html1 += '' + '' + ''; } html1 += '' + '
' j++; } $('.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; // ////console.log(typeof($("#setNameId option:selected").val())); //提交 var click = false; mui('.btn').on('tap', '.submit_btn ', function() { richText = editor.txt.text() // 判断有没有商品属性 if ($("#setNameId option:selected").val() != 0) { isSpec = 1; } else { isSpec = 0; } if (click == true) { return } if ($("#isSale").prop("checked")) { // ////console.log(1); isSale = "1"; } else { // ////console.log(0); isSale = "0"; } var imgs = ''; var data = $('input[name="gallery[]"]'); // ////console.log(data); $.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; } // alert(editor.txt.html()) JZL.ajax(qlgUrl('app/shops/addGoods'), params, function(data) { // ////console.log(data); if (data.status == 1) { 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 = ''; if ('undefined' == typeof(defaultId)) { $.each(data, function() { // ////console.log(this); html += '' }); } else { $.each(data, function() { if (this.catId == defaultId) { selected = 'selected'; } else { selected = ''; } html += '' }); } $('#' + 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 = '
'; // ////console.log($('#galleryImg[' + num + ']')); //if ($('#galleryImg[' + num + ']').length > 0) { that.html(html); //} else { // $(".batchImg").append(html); //} var maxNum = $('.galleryImg').last().attr('data-id'); //$('.batchImg').children('.galleryImg').length - 1; if (num == maxNum) { maxNum++; html = '
'; $(".batchImg").append(html); } }); }) $(".oneImg").on("tap", '#goods', function() { // UP.init("accountBookImg", "test", "accountBookImgTag") UP.init("goodsImg", "test", "goods") openCamera(function(t, status, fileName, serverName) { var html = ''; $(".goods").html(html); }) }) // 删除图片 $(".batchImg").on('tap', '.delete', function(e) { e.preventDefault(); e.stopPropagation() // ////console.log(this); var that = $(this) //var idx = that.parent().attr('data-id'); //var maxNum = $('.galleryImg').last().attr('data-id'); //$('.batchImg').children('.galleryImg').length - 1; if (confirm('确认删除图片?')) { that.parent().remove() //delete galleryarr[idx]; } }) //上传图片到七牛; 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) { // ////console.log(dir) 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 : '', //若未指定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', '') }, '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); } })