$(function () { $("#jqGrid").Grid({ url: '../goods/list', rownumWidth:60, colModel: [ {label: 'id', name: 'id', index: 'id', key: true, hidden: true}, {label: '商品名称', align:'center', name: 'name', index: 'name',sortable:false, width: 160}, {label: '店铺名称', align:'center', name: 'brandName', index: 'brand_id', width: 100,sortable:false}, { label: '商品图片', name: 'primaryPicUrl',sortable:false, align:'center',index: 'primary_picUrl', width: 300, formatter: function (value) { return transMedia(value,300,'auto'); } } // {label: '商品序列号', name: 'id', index: 'id',sortable:false, width: 80}, // {label: '商品库存', name: 'goodsNumber', index: 'goods_number',sortable:false, width: 80}, // {label: '零售价格(元)', name: 'retailPrice', index: 'retail_price',sortable:false, width: 80}, // {label: '市场价格(元)', name: 'marketPrice', index: 'market_price',sortable:false, width: 80}, ] }); $('#goodsDesc').editable({ inlineMode: false, alwaysBlank: true, minHeight: '200px', language: "zh_cn", spellcheck: false, plainPaste: true, enableScript: false, imageButtons: ["floatImageLeft", "floatImageNone", "floatImageRight", "linkImage", "replaceImage", "removeImage"], allowedImageTypes: ["jpeg", "jpg", "png", "gif"], imageUploadURL: '../sys/oss/upload', imageUploadParams: {id: "edit"}, imagesLoadURL: '../sys/oss/queryAll' }) }); var ztree; var setting = { data: { simpleData: { enable: true, idKey: "id", pIdKey: "parentId", rootPId: -1 }, key: { url: "nourl" } } }; let sid = getQueryString("sid"); let sceneNum = getQueryString("sceneNum"); let pageSid = getQueryString("pageSid"); var vm = new Vue({ el: '#rrapp', data: { showList: true, title: null, uploadList: [], imgName: '', visible: false, goods: { primaryPicUrl: '', listPicUrl: '', categoryId: '', isOnSale: 1, isNew: 1, isAppExclusive: 0, isLimited: 0, isHot: 0, categoryName: '' }, ruleValidate: { name: [ {required: true, message: '名称不能为空', trigger: 'blur'} ] }, q: { name: '', brandId:'' }, brands: [],//品牌 macros: [],//商品单位 attributeCategories: []//属性类别 }, methods: { query: function () { vm.reload(); }, add: function () { vm.showList = false; vm.title = "新增"; vm.uploadList = []; vm.goods = { primaryPicUrl: '', listPicUrl: '', categoryId: '', isOnSale: 1, isNew: 1, isAppExclusive: 0, isLimited: 0, isHot: 0, categoryName: '' }; $('#goodsDesc').editable('setHTML', ''); vm.getCategory(); vm.brands = []; vm.macros = []; vm.attributeCategories = []; // vm.attribute = []; vm.getBrands(); vm.getMacro(); vm.getAttributeCategories(); // vm.getAttributes(''); }, update: function (event) { var id = getSelectedRow("#jqGrid"); if (id == null) { return; } vm.showList = false; vm.title = "修改"; vm.uploadList = []; vm.getInfo(id); vm.getBrands(); vm.getMacro(); vm.getAttributeCategories(); vm.getGoodsGallery(id); }, /** * 获取品牌 */ getBrands: function () { Ajax.request({ url: "../brand/queryAll", async: true, successCallback: function (r) { vm.brands = r.list; } }); }, /** * 获取单位 */ getMacro: function () { Ajax.request({ url: "../sys/macro/queryMacrosByValue?value=goodsUnit", async: true, successCallback: function (r) { vm.macros = r.list; } }); }, getGoodsGallery: function (id) {//获取商品顶部轮播图 Ajax.request({ url: "../goodsgallery/queryAll?goodsId=" + id, async: true, successCallback: function (r) { vm.uploadList = r.list; } }); }, getAttributeCategories: function () { Ajax.request({ url: "../attributecategory/queryAll", async: true, successCallback: function (r) { vm.attributeCategories = r.list; } }); }, saveOrUpdate: function (event) { var url = vm.goods.id == null ? "../goods/save" : "../goods/update"; vm.goods.goodsDesc = $('#goodsDesc').editable('getHTML'); vm.goods.goodsImgList = vm.uploadList; Ajax.request({ type: "POST", url: url, contentType: "application/json", params: JSON.stringify(vm.goods), successCallback: function (r) { alert('操作成功', function (index) { vm.reload(); }); } }); }, enSale: function () { var id = getSelectedRow("#jqGrid"); if (id == null) { return; } confirm('确定要上架选中的商品?', function () { Ajax.request({ type: "POST", url: "../goods/enSale", params: JSON.stringify(id), contentType: "application/json", type: 'POST', successCallback: function () { alert('提交成功', function (index) { vm.reload(); }); } }); }); }, openSpe: function () { var id = getSelectedRow("#jqGrid"); if (id == null) { return; } openWindow({ type: 2, title: '商品规格', content: '../shop/goodsspecification.html?goodsId=' + id }) }, openPro: function () { var id = getSelectedRow("#jqGrid"); if (id == null) { return; } openWindow({ type: 2, title: '产品设置', content: '../shop/product.html?goodsId=' + id }); }, unSale: function () { var id = getSelectedRow("#jqGrid"); if (id == null) { return; } confirm('确定要下架选中的商品?', function () { Ajax.request({ type: "POST", url: "../goods/unSale", contentType: "application/json", params: JSON.stringify(id), successCallback: function (r) { alert('操作成功', function (index) { vm.reload();; }); } }); }); }, bind: function (event) { var ids = getSelectedRows("#jqGrid"); if (ids == null) { return; } let sid = getQueryString("sid"); let sceneNum = getQueryString("sceneNum"); let pageSid = getQueryString("pageSid"); confirm('确定要关联选中的商品?', function () { Ajax.request({ type: "POST", url: "../brand/saveGoodsHot", params: { goodsIds: ids.join(','), sid, sceneNum, pageSid }, successCallback: function (r) { alert('操作成功', function (index) { vm.closeWindow() vm.reload();; }); } }); }); }, getInfo: function (id) { Ajax.request({ url: "../goods/info/" + id, async: true, successCallback: function (r) { vm.goods = r.goods; $('#goodsDesc').editable('setHTML', vm.goods.goodsDesc); vm.getCategory(); } }); }, reload: function (event) { this.getBrands(); vm.showList = true; var page = $("#jqGrid").jqGrid('getGridParam', 'page'); $("#jqGrid").jqGrid('setGridParam', { postData: {'name': vm.q.name,'brandId': vm.q.brandId}, page: page }).trigger("reloadGrid"); vm.handleReset('formValidate'); }, getCategory: function () { //加载分类树 Ajax.request({ url: "../category/queryAll", async: true, successCallback: function (r) { ztree = $.fn.zTree.init($("#categoryTree"), setting, r.list); var node = ztree.getNodeByParam("id", vm.goods.categoryId); if (node) { ztree.selectNode(node); vm.goods.categoryName = node.name; } else { node = ztree.getNodeByParam("id", 0); ztree.selectNode(node); vm.goods.categoryName = node.name; } } }); }, closeWindow:function () { formClose() }, categoryTree: function () { openWindow({ title: "选择类型", area: ['300px', '450px'], content: jQuery("#categoryLayer"), btn: ['确定', '取消'], btn1: function (index) { var node = ztree.getSelectedNodes(); //选择上级菜单 vm.goods.categoryId = node[0].id; vm.goods.categoryName = node[0].name; layer.close(index); } }); }, handleView(name) { this.imgName = name; this.visible = true; }, handleRemove(file) { // 从 upload 实例删除数据 const fileList = this.uploadList; this.uploadList.splice(fileList.indexOf(file), 1); }, handleSuccess(res, file) { // 因为上传过程为实例,这里模拟添加 url file.imgUrl = res.url; file.name = res.url; vm.uploadList.add(file); }, handleBeforeUpload() { const check = this.uploadList.length < 5; if (!check) { this.$Notice.warning({ title: '最多只能上传 5 张图片。' }); } return check; }, handleSubmit: function (name) { handleSubmitValidate(this, name, function () { vm.saveOrUpdate() }); }, handleFormatError: function (file) { this.$Notice.warning({ title: '文件格式不正确', desc: '文件 ' + file.name + ' 格式不正确,请上传 jpg 或 png 格式的图片。' }); }, handleMaxSize: function (file) { this.$Notice.warning({ title: '超出文件大小限制', desc: '文件 ' + file.name + ' 太大,不能超过 2M。' }); }, handleReset: function (name) { handleResetForm(this, name); }, handleSuccessPicUrl: function (res, file) { vm.goods.primaryPicUrl = file.response.url; }, handleSuccessListPicUrl: function (res, file) { vm.goods.listPicUrl = file.response.url; }, eyeImagePicUrl: function () { var url = vm.goods.primaryPicUrl; eyeImage(url); }, eyeImageListPicUrl: function () { var url = vm.goods.listPicUrl; eyeImage(url); }, eyeImage: function (e) { eyeImage($(e.target).attr('src')); } }, mounted() { this.getBrands(); this.uploadList = this.$refs.upload.fileList; } });