$(function () {
$("#jqGrid").jqGrid({
url: '../goods/list',
datatype: "json",
colModel: [
{label: 'ID', name: 'id', index: 'id', width: 60, key: true},
{label: '商户名称', name: 'merchName', index: 'merchName', width: 100, align: 'center'},
{label: '第三方商户编号', name: 'thirdPartyMerchCode', index: 'thirdPartyMerchCode', width: 60, align: 'center'},
{label: '商品编码', name: 'goodsSn', index: 'goods_Sn', width: 60, align: 'center'},
{label: 'SKU', name: 'sku', index: 'sku', width: 80, align: 'center'},
{label: '产品条码', name: 'prodBarcode', index: 'prod_barcode', width: 60, align: 'center'},
// {label: '商品类型', name: 'categoryName', index: 'category_id', width: 40, align: 'center'},
{label: '名称', name: 'name', index: 'name', width: 160, align: 'center'},
{
label: '货品业务类型', name: 'goodsBizType', index: 'goods_biz_type', width: 70, align: 'center',
formatter: function (value) {
if (value == '00') {
return '保税备货';
} else if (value == '02') {
return '保税展示补货';
} else if (value == '10') {
return '保税展示跨境';
}
return '普通货物';
}
},
{label: '库存是否共享', name: 'isStockShare', index: 'isStockShare', width: 80, align: 'center',
formatter: function (value) {
if (value == '0') {
return '否';
} else if (value == '1') {
return '是';
}
return '-';
}},
{label: '商品库存', name: 'goodsNumber', index: 'goodsNumber', width: 80, align: 'center'},
// {label: '零售价格', name: 'retailPrice', index: 'retail_price', width: 80, align: 'center'},
// {label: '市场价', name: 'marketPrice', index: 'market_price', width: 80, align: 'center'},
{
label: '上架', name: 'isOnSale', index: 'is_on_sale', width: 40, align: 'center',
formatter: function (value) {
return transIsNot(value);
}
},
{
label: '热销', name: 'isHot', index: 'is_hot', width: 80, formatter: function (value) {
return transIsNot(value);
}
},
/*{
label: '活动', name: 'goodsType', index: 'goodsType', width: 80,
formatter: function (value) {
if (value == 2) {
return '团购';
} else {
return '无活动';
}
}
},*/
{
label: '录入日期', name: 'addTime', index: 'add_time', width: 80, align: 'center',
formatter: function (value) {
return transDate(value, 'yyyy-MM-dd hh:mm:ss');
}
}
],
viewrecords: true,
height: 575,
rowNum: 10,
rowList: [10, 30, 50],
rownumbers: true,
rownumWidth: 25,
autowidth: true,
multiselect: true,
pager: "#jqGridPager",
jsonReader: {
root: "page.list",
page: "page.currPage",
total: "page.totalPage",
records: "page.totalCount"
},
prmNames: {
page: "page",
rows: "limit",
order: "order"
},
gridComplete: function () {
$("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
}
});
$('#goodsDesc').editable({
inlineMode: false,
alwaysBlank: true,
height: '500px', //高度
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 exportMsg;
var setting = {
data: {
simpleData: {
enable: true,
idKey: "id",
pIdKey: "parentId",
rootPId: -1
},
key: {
url: "nourl"
}
}
};
var vm = new Vue({
el: '#rrapp',
data: {
showList: true,
fileList: true,
title: null,
uploadList: [],
imgName: '',
visible: false,
goods: {primaryPicUrl: '', listPicUrl: '',videoUrl:'', categoryId: '', isOnSale: 1, isAppExclusive: 0, isLimited: 0, isHot: 0, categoryName: '', retailPrice: '', marketPrice: '', goodsRate: '', sortOrder: '',goodsNumber: '' },
ruleValidate: {
/*name: [
{required: true, message: '名称不能为空', trigger: 'blur'}
]*/
},
q: {name: '', goodsSn: '', prodBarcode: '',goodsBizType:'', merchSn: '',thirdPartyMerchCode:''},
attributes: [],
attributeEntityList: [{'id': '', 'goodsId': '', 'attributeId': '', 'value': '', 'isDelete': 0}],
productEntityList: [{'id': '', 'goodsId': '', 'goodsSpecificationIds': '', 'goodsSpecificationNameValue': '', 'goodsSn': '', 'goodsNumber': '', 'isDelete': 0, 'goodsDefault': 0}],
/*queryCategories: [],//一级分类
queryCategoriesTwo: [],*/
queryMerch: [],
/*categories: [],//一级分类
categoriesTwo: [],*/
macros: [],//商品单位
// attributeCategories: [],//属性类别
specifications: [],
// brands: [],
// freights: [],
showInput: true,
// categoryId: '',
cusUnitCodeList: [],
cusNationCodeList: [],
merchList: [],
suppliers: [],
thirdMerchantBizList: [],
thirdMerchantBizViewList: [],
isStockShare: false,
goodsBizType: '',
isOperator: '',
share: ''
},
methods: {
delSpeRow: function (index) {
//最后一行时禁止删除
if (vm.productEntityList.length == 1) {
return;
}
vm.productEntityList[index].isDelete = 1;
},
addSpeRow: function () {
let goodsId = '';
if (vm.goods) {
goodsId = vm.goods.id;
}
vm.productEntityList.push({'id': '', 'goodsId': '', 'goodsSpecificationIds': '', 'goodsSpecificationNameValue': '', 'goodsSn': '', 'goodsNumber': '', 'isDelete': 0, 'goodsDefault': 0});
},
/*delAttrRow: function (index) {
//最后一行时禁止删除
if (vm.attributeEntityList.length == 1) {
return;
}
vm.attributeEntityList[index].isDelete = 1;
},
addAttrRow: function () {
let goodsId = '';
if (vm.goods) {
goodsId = vm.goods.id;
}
vm.attributeEntityList.push({'id': '', 'goodsId': goodsId, 'attributeId': '', 'value': '', 'isDelete': 0});
},*/
reloadSearch: function () {
vm.q = {
name: '',
goodsSn: '',
prodBarcode: '',
goodsBizType: '',
merchSn: '',
thirdPartyMerchCode:''
}
},
query: function () {
vm.reload(1);
},
add: function () {
vm.showList = false;
vm.isOperator='add';
vm.title = "新增";
vm.uploadList = [];
vm.goods = {primaryPicUrl: '', listPicUrl: '',videoUrl:'', categoryId: '', isOnSale: 1, isAppExclusive: 0, isLimited: 0,
isHot: 0, categoryName: '', retailPrice: '', marketPrice: '', goodsRate: '', sortOrder: '',goodsNumber: '' };
$('#goodsDesc').editable('setHTML', '');
vm.getCategory();
vm.macros = [];
vm.brands = [];
// vm.freights = [];
vm.cusUnitCodeList = [];
vm.cusNationCodeList = [];
// vm.attributeEntityList = [{'id': '', 'goodsId': '', 'attributeId': '', 'value': '', 'isDelete': 0}];
vm.getMacro();
vm.getCusUnitCodeList();
vm.getCusNationCode();
vm.getMerchList();
vm.showInput = true;
},
update: function (event) {
var id = getSelectedRow();
if (id == null) {
return;
}
vm.isOperator='update';
vm.showList = false;
vm.title = "修改";
vm.uploadList = [];
// vm.goods = {primaryPicUrl: '', listPicUrl: '',videoUrl:'', categoryId: '', isOnSale: 1, isAppExclusive: 0, isLimited: 0,
// isHot: 0, categoryName: '', retailPrice: '', marketPrice: '', goodsRate: '', sortOrder: '',goodsNumber: '' };
vm.getInfo(id);/*
var opt = {};
opt.value = vm.goods.categoryId;
opt.flag = 1;
vm.getAttributes(opt);*/
vm.thirdMerchantBizList = [];
vm.getMacro();
vm.getCusUnitCodeList();
vm.getCusNationCode();
vm.getGoodsGallery(id);
vm.getMerchList();
vm.showInput = true;
if (vm.goods.goodsBizType == '10' || vm.goods.goodsBizType == '02') {
vm.showInput = false;
}
},
getMacro: function () {
// 获取货品业务类型
$.get("../sys/macro/queryMacrosByValue?value=goodsBizType", function (r) {
vm.macros = r.list;
});
},/*
getBrand: function (merchSn) {
$.get("../brand/queryAll?merchSn=" + merchSn, function (r) {
vm.brands = r.list;
});
},*/
getSuppliers: function (thirdMerchantCode) {
$.get("../supplier/queryAll?thirdPartyMerchCode=" + thirdMerchantCode, function (r) {
vm.suppliers = r.list;
});
},
getCusUnitCodeList: function () {
$.get("../syscusunitcode/queryAll", function (r) {
vm.cusUnitCodeList = r.list;
});
},
getCusNationCode: function () {
$.get("../syscusnationcode/queryAll", function (r) {
vm.cusNationCodeList = r.list;
});
},/*
getFreights: function(merchSn) {
$.get("../freight/queryAll?merchSn=" + merchSn, function (r) {
vm.freights = r.list;
});
},*/
getGoodsGallery: function (id) {//获取商品顶部轮播图
$.get("../goodsgallery/queryAll?goodsId=" + id, function (r) {
vm.uploadList = r.list;
});
},
getMerchList: function() {
$.get("../merch/queryAll", function (r) {
vm.merchList = r.list;
});
},
getThirdMerchantBizList: function(merchSn) {
$.get("../thirdmerchantbiz/queryAll?merchSn=" + merchSn, function (r) {
vm.thirdMerchantBizList = 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;
// vm.goods.attributeEntityList = vm.attributeEntityList;
vm.goods.productEntityList = vm.productEntityList;
$.ajax({
type: "POST",
url: url,
dataType: "json",
contentType: "application/json",
data: JSON.stringify(vm.goods),
success: function (r) {
if (r.code === 0) {
alert('操作成功', function (index) {
vm.reload();
});
} else {
alert(r.msg);
}
}
});
},
enSale: function () {
var ids = getSelectedRows();
if (ids == null) {
return;
}
confirm('确定要上架选中的商品?', function () {
$.ajax({
type: "POST",
url: "../goods/enSaleBatch",
contentType: "application/json",
data: JSON.stringify(ids),
success: function (r) {
if (r.code == 0) {
alert('操作成功', function (index) {
$("#jqGrid").trigger("reloadGrid");
});
} else {
alert(r.msg);
}
}
});
});
},
openSpe: function () {
var id = getSelectedRow();
if (id == null) {
return;
}
openWindow({
type: 2,
title: '商品规格',
content: '../shop/goodsspecification.html?goodsId=' + id
})
},
openPro: function () {
var id = getSelectedRow();
if (id == null) {
return;
}
openWindow({
type: 2,
title: '产品设置',
content: '../shop/product.html?goodsId=' + id
});
},
unSale: function () {
var ids = getSelectedRows();
if (ids == null) {
return;
}
confirm('确定要下架选中的商品?', function () {
$.ajax({
type: "POST",
url: "../goods/unSaleBatch",
contentType: "application/json",
data: JSON.stringify(ids),
success: function (r) {
if (r.code == 0) {
alert('操作成功', function (index) {
$("#jqGrid").trigger("reloadGrid");
});
} else {
alert(r.msg);
}
}
});
});
},
del: function (event) {
var ids = getSelectedRows();
if (ids == null) {
return;
}
confirm('确定要删除选中的记录?', function () {
$.ajax({
type: "POST",
url: "../goods/delete",
contentType: "application/json",
data: JSON.stringify(ids),
success: function (r) {
if (r.code == 0) {
alert('操作成功', function (index) {
$("#jqGrid").trigger("reloadGrid");
});
} else {
alert(r.msg);
}
}
});
});
},
getInfo: function (id) {
$.get("../goods/info/" + id, function (r) {
vm.goods = r.goods;
vm.goodsBizType = r.goods.goodsBizType;
// var opt = {};
// opt.value = vm.goods.thirdPartyMerchCode;
// vm.showStockShare(opt);
// var opt2 = {};
// opt2.value = vm.goods.goodsBizType;
// vm.changeGoodsBizType(opt2);
/*vm.categoryId = r.goods.categoryId;
// vm.getCategory();
var opt = {};
opt.value = vm.goods.attributeCategory;
vm.changeCategories(opt);
if (r.goods.attributeEntityList.length > 0) {
vm.attributeEntityList = r.goods.attributeEntityList;
} else {
vm.attributeEntityList = [{'id': '', 'goodsId': '', 'attributeId': '', 'value': '', 'isDelete': 0}];
}
if (r.goods.productEntityList.length > 0) {
vm.productEntityList = r.goods.productEntityList;
} else {
vm.productEntityList = [{'id': '', 'goodsId': '', 'goodsSpecificationIds': '', 'goodsSpecificationNameValue': '', 'goodsSn': '', 'goodsNumber': '', 'isDelete': 0, 'goodsDefault': 0}];
}*/
if(vm.goods.goodsDesc){
$('#goodsDesc').editable('setHTML', vm.goods.goodsDesc);
}else{
$('#goodsDesc').editable('setHTML', '');
}
});
},
reload: function (event) {
vm.showList = true;
let page = event;
if (event != 1) {
page = $("#jqGrid").jqGrid('getGridParam', 'page');
}
$("#jqGrid").jqGrid('setGridParam', {
postData: {
'name': vm.q.name,
'goodsSn': vm.q.goodsSn,
'prodBarcode': vm.q.prodBarcode,
'goodsBizType': vm.q.goodsBizType,
'merchSn': vm.q.merchSn,
'thirdPartyMerchCode': vm.q.thirdPartyMerchCode
},
page: page
}).trigger("reloadGrid");
vm.handleReset('formValidate');
},
getCategory: function () {
//加载分类树
$.get("../category/query", 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;
}
})
},
categoryTree: function () {
openWindow({
title: "选择类型",
area: ['300px', '450px'],
content: jQuery("#categoryLayer"),
btn: ['确定', '取消'],
btn1: function (index) {
var node = ztree.getSelectedNodes();
if (node[0].isParent) {
alert("只能选择");
return;
}
//选择上级菜单
vm.goods.categoryId = node[0].id;
vm.goods.categoryName = node[0].name;
layer.close(index);
}
});
},
showStockShare:function(opt){
var thirdMerchantCode = opt.value;
/*$.get("../thirdmerchantbiz/infoByCode?thirdMerchantCode=" + thirdMerchantCode, function (r) {
if(r.thirdMerchantBiz){
vm.share = r.thirdMerchantBiz.isStockShare;
if(vm.goods.goodsBizType == '00' && r.thirdMerchantBiz.isStockShare == 1){
// vm.isStockShare = true;
}else{
// vm.isStockShare = false;
vm.goods.goodsNumber= '';
}
}
});*/
vm.getSuppliers(thirdMerchantCode);
},
changeGoodsBizType: function(opt) {
var goodsBizType = opt.value;
if (vm.goods.goodsBizType == '10' || vm.goods.goodsBizType == '02') {
vm.showInput = false;
} else {
vm.showInput = true;
}
// console.log('goodsBizType:'+vm.goods.goodsBizType)
// console.log('share:'+vm.share)
// if(vm.goods.goodsBizType == '00' && vm.share == 1){
// vm.isStockShare = true;
// }else{
// vm.isStockShare = false;
// // vm.goods.goodsNumber= '';
// // console.log('错错错')
// }
},
handleView(name) {
this.imgName = name;
this.visible = true;
},
/*changeQueryCategories: function (opt) {
var value = opt.value;
$.get("../category/getCategorySelectByParent?parentId=" + value, function (r) {
vm.queryCategoriesTwo = r.list;
});
},
getAttributes: function (opt) {
var value = opt.value;
$.get("../attribute/query?attributeCategoryId=" + value, function (r) {
vm.attributes = r.list;
});
if (opt.flag != 1 && !(value === vm.categoryId)) {
if (vm.attributeEntityList.length > 0 && vm.attributeEntityList[0].attributeId != '') {
for (var i = 0; i < vm.attributeEntityList.length; i++) {
if (!(vm.attributeEntityList[0].attributeId === '')) {
vm.attributeEntityList[i].isDelete = 1;
}
}
var goodsId = '';
if (vm.goods) {
goodsId = vm.goods.id;
}
vm.attributeEntityList.unshift({'id': '', 'goodsId': goodsId, 'attributeId': '', 'value': '', 'isDelete': 0});
}
}
},
changeCategories: function (opt) {
var value = opt.value;
$.get("../category/getCategorySelectByParent?isShow=1&parentId=" + value, function (r) {
vm.categoriesTwo = r.list;
});
},*/
uploadExcelSuccess: function (data) {
// console.log(data);
if(data.code==0){
alert('导入成功', function (index) {
$("#jqGrid").trigger("reloadGrid");
});
}else{
alert(data.msg);
}
},
uploadExcelError: function () {
alert('上传出现异常,请重试!');
},
uploadExcelFormatError: function (file) {
this.$Notice.warning({
title: '文件格式不正确',
desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
});
},
uploadExcelProgress:function(event, file, fileList){
console.log("上传中")
console.log(event)
console.log(file)
console.log(fileList)
console.log("上传中")
exportMsg = this.$Message.loading({
content: 'Loading...',
duration: 0
});
setTimeout(exportMsg,1000);
},
handleRemove(file) {
// 从 upload 实例删除数据
const fileList = vm.uploadList;
vm.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 = vm.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 + ' 太大,不能超过 100k。'
});
},
handleMaxSizeByInfo: function (file) {
this.$Notice.warning({
title: '超出文件大小限制',
desc: '文件 ' + file.name + ' 太大,不能超过 300k。'
});
},
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'));
},
eyeImageListVideoUrl: function (e) {
var url = vm.goods.videoUrl;
eyeVideo(url);
},
handleVideoFormatError: function (file) {
this.$Notice.warning({
title: '文件格式不正确',
desc: '文件 ' + file.name + ' 格式不正确,请上传 mp4 格式的图片。'
});
},
handleVideoMaxSize: function (file) {
this.$Notice.warning({
title: '超出文件大小限制',
desc: '文件 ' + file.name + ' 太大,不能超过 1M。'
});
},
handleSuccessListVideoUrl: function (res, file) {
vm.goods.videoUrl = file.response.url;
},
goodsExport: function () {
vm.fileList = false;
},
showMerchInfo:function(opt){
var merchSn = opt.value;
// vm.getCategories(merchSn);
// vm.getFreights(merchSn);
// vm.getBrand(merchSn);
vm.getThirdMerchantBizList(merchSn);
},
// getCategories: function (merchSn) {
// $.get("../category/getCategorySelect?isShow=1&merchSn=" + merchSn, function (r) {
// vm.categories = r.list;
// });
// }
},
mounted() {
// this.uploadList = this.$refs.upload.fileList;
/*$.get("../category/getCategorySelect", function (r) {
vm.queryCategories = r.list;
});*/
$.get("../merch/queryAll", function (r) {
vm.queryMerch = r.list;
});
$.get("../sys/macro/queryMacrosByValue?value=goodsBizType", function (r) {
vm.macros = r.list;
});
$.get("../thirdmerchantbiz/queryAll", function (r) {
vm.thirdMerchantBizViewList = r.list;
});
}
});