|
@@ -158,7 +158,8 @@ var vm = new Vue({
|
|
|
isAppExclusive: 0,
|
|
|
isLimited: 0,
|
|
|
isHot: 0,
|
|
|
- categoryName: ''
|
|
|
+ categoryName: '',
|
|
|
+ guigeArr: []
|
|
|
},
|
|
|
ruleValidate: {
|
|
|
categoryName: [
|
|
@@ -210,13 +211,15 @@ var vm = new Vue({
|
|
|
var arr = []
|
|
|
this.ggContent.forEach(function (item){
|
|
|
uuidLink = []
|
|
|
+
|
|
|
uuidLink.push(item.uuid)
|
|
|
if (item.subItems) {
|
|
|
item.subItems.forEach(function(sub){
|
|
|
- uuidLink.push(sub.uuid)
|
|
|
+ uuidLink[1] = sub.uuid
|
|
|
if (sub.subItems) {
|
|
|
sub.subItems.forEach(function(last){
|
|
|
- uuidLink.push(last.uuid)
|
|
|
+ uuidLink[2] = last.uuid
|
|
|
+ console.log(uuidLink, 'last.uuid')
|
|
|
if (!last.subItems) {
|
|
|
arr.push(Object.assign({},{
|
|
|
uuidLink:uuidLink.join('_')
|
|
@@ -241,7 +244,7 @@ var vm = new Vue({
|
|
|
})
|
|
|
|
|
|
// console.log(this.ggContent)
|
|
|
-
|
|
|
+ console.log(arr)
|
|
|
this.inputArr = arr
|
|
|
},
|
|
|
showArrsds:function () {
|
|
@@ -300,6 +303,10 @@ var vm = new Vue({
|
|
|
// }]
|
|
|
},
|
|
|
showArr:function () {
|
|
|
+ if (this.guigeArr.length <= 0) {
|
|
|
+ layer.alert("请先添加规格项目", {icon: 5});
|
|
|
+ return
|
|
|
+ }
|
|
|
let tmp = []
|
|
|
let itm = []
|
|
|
let goodsSpecificationList = []
|
|
@@ -341,6 +348,7 @@ var vm = new Vue({
|
|
|
})
|
|
|
|
|
|
this.ggContent = tmp[0]
|
|
|
+ console.log(this.ggContent)
|
|
|
// console.log(this.guigeArr)
|
|
|
this.goodsSpecificationList = goodsSpecificationList
|
|
|
this.getInputArr()
|
|
@@ -382,17 +390,22 @@ var vm = new Vue({
|
|
|
|
|
|
},
|
|
|
addGoodsItem:function () {
|
|
|
- if (this.guigeArr.length<3) {
|
|
|
- this.guigeArr.push({
|
|
|
- name:'',
|
|
|
- val:[
|
|
|
- {
|
|
|
- name:'',
|
|
|
- picUrl:''
|
|
|
- }
|
|
|
- ]
|
|
|
- })
|
|
|
+ if (!this.guigeArr) {
|
|
|
+ this.guigeArr = []
|
|
|
}
|
|
|
+ if (this.guigeArr.length >= 3) {
|
|
|
+ window.alert('抱歉,最多只能添加三个规格')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.guigeArr.push({
|
|
|
+ name:'',
|
|
|
+ val:[
|
|
|
+ {
|
|
|
+ name:'',
|
|
|
+ picUrl:''
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ })
|
|
|
},
|
|
|
query: function () {
|
|
|
vm.reload();
|
|
@@ -514,7 +527,7 @@ var vm = new Vue({
|
|
|
vm.goods.goodsImgList = vm.uploadList;
|
|
|
|
|
|
vm.goods['goodsSpecificationList'] = vm.goodsSpecificationList
|
|
|
-
|
|
|
+ console.log(vm.inputArr)
|
|
|
vm.goods['productList'] = vm.inputArr
|
|
|
|
|
|
vm.goods['guigeArr'] = JSON.stringify(vm.guigeArr)
|
|
@@ -621,6 +634,18 @@ var vm = new Vue({
|
|
|
|
|
|
});
|
|
|
},
|
|
|
+ countProductSort(uuidLink) {
|
|
|
+ if (!uuidLink) return;
|
|
|
+ var sort = uuidLink.split('_')
|
|
|
+ var length = sort.length
|
|
|
+ var val = 0
|
|
|
+ sort.forEach((item, index) => {
|
|
|
+ var arr = item.split('-')
|
|
|
+ val += arr[1] * Math.pow(10, length - index)
|
|
|
+ })
|
|
|
+ console.log(val)
|
|
|
+ return val
|
|
|
+ },
|
|
|
getInfo: function (id) {
|
|
|
Ajax.request({
|
|
|
url: "../goods/info/" + id,
|
|
@@ -628,11 +653,17 @@ var vm = new Vue({
|
|
|
successCallback: function (r) {
|
|
|
vm.goods = r.goods;
|
|
|
// vm.goodsSpecificationList = r.goods.goodsSpecificationList
|
|
|
- vm.inputArr = r.goods.productList
|
|
|
+ var productList = r.goods.productList.sort(function(a, b) {
|
|
|
+ var a_uuid_sort = vm.countProductSort(a.uuidLink)
|
|
|
+ var b_uuid_sort = vm.countProductSort(b.uuidLink)
|
|
|
+ return b_uuid_sort - a_uuid_sort
|
|
|
+
|
|
|
+ })
|
|
|
+ vm.inputArr = productList
|
|
|
|
|
|
- vm.guigeArr = JSON.parse(r.goods.guigeArr)
|
|
|
+ vm.guigeArr = JSON.parse(r.goods.guigeArr) || []
|
|
|
vm.ggContent = JSON.parse(r.goods.ggContent)
|
|
|
-
|
|
|
+ console.log(vm.ggContent)
|
|
|
|
|
|
vm.ggname = []
|
|
|
|
|
@@ -669,15 +700,18 @@ var vm = new Vue({
|
|
|
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;
|
|
|
+ if (vm.goods.categoryId) {
|
|
|
+ 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;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
},
|
|
@@ -722,9 +756,21 @@ var vm = new Vue({
|
|
|
return check;
|
|
|
},
|
|
|
handleSubmit: function (name) {
|
|
|
- handleSubmitValidate(this, name, function () {
|
|
|
- vm.saveOrUpdate()
|
|
|
+ vm.validateData(name, vm.saveOrUpdate)
|
|
|
+ },
|
|
|
+ validateData (name, cb) {
|
|
|
+ handleSubmitValidate(vm, name, function () {
|
|
|
+ var pass = true
|
|
|
+ vm.guigeArr.forEach(item => {
|
|
|
+ if (!item.name) {
|
|
|
+ pass = false
|
|
|
+ alert('商品规格请填写完整')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ })
|
|
|
+ pass && cb()
|
|
|
});
|
|
|
+
|
|
|
},
|
|
|
handleFormatError: function (file) {
|
|
|
this.$Notice.warning({
|