徐志豪 пре 5 година
родитељ
комит
79463b0916
2 измењених фајлова са 75 додато и 30 уклоњено
  1. 74 28
      js/shop/goods.js
  2. 1 2
      statics/libs/contabs.js

+ 74 - 28
js/shop/goods.js

@@ -158,7 +158,8 @@ var vm = new Vue({
                 isAppExclusive: 0,
                 isAppExclusive: 0,
                 isLimited: 0,
                 isLimited: 0,
                 isHot: 0,
                 isHot: 0,
-                categoryName: ''
+                categoryName: '',
+                guigeArr: []
             },
             },
             ruleValidate: {
             ruleValidate: {
                 categoryName: [
                 categoryName: [
@@ -210,13 +211,15 @@ var vm = new Vue({
             var arr = []
             var arr = []
             this.ggContent.forEach(function (item){
             this.ggContent.forEach(function (item){
                 uuidLink = []
                 uuidLink = []
+                
                 uuidLink.push(item.uuid)
                 uuidLink.push(item.uuid)
                 if (item.subItems) {
                 if (item.subItems) {
                     item.subItems.forEach(function(sub){
                     item.subItems.forEach(function(sub){
-                        uuidLink.push(sub.uuid)
+                        uuidLink[1] = sub.uuid
                         if (sub.subItems) {
                         if (sub.subItems) {
                             sub.subItems.forEach(function(last){
                             sub.subItems.forEach(function(last){
-                                uuidLink.push(last.uuid)
+                                uuidLink[2] = last.uuid
+                                console.log(uuidLink, 'last.uuid')
                                 if (!last.subItems) {
                                 if (!last.subItems) {
                                     arr.push(Object.assign({},{
                                     arr.push(Object.assign({},{
                                         uuidLink:uuidLink.join('_')
                                         uuidLink:uuidLink.join('_')
@@ -241,7 +244,7 @@ var vm = new Vue({
             })
             })
 
 
             // console.log(this.ggContent)
             // console.log(this.ggContent)
-
+            console.log(arr)
             this.inputArr = arr
             this.inputArr = arr
         },
         },
         showArrsds:function () {
         showArrsds:function () {
@@ -300,6 +303,10 @@ var vm = new Vue({
             // }]
             // }]
         },
         },
         showArr:function () {
         showArr:function () {
+            if (this.guigeArr.length <= 0) {
+                layer.alert("请先添加规格项目", {icon: 5});
+                return
+            }
             let tmp = []
             let tmp = []
             let itm = []
             let itm = []
             let goodsSpecificationList = []
             let goodsSpecificationList = []
@@ -341,6 +348,7 @@ var vm = new Vue({
             })
             })
     
     
             this.ggContent = tmp[0]
             this.ggContent = tmp[0]
+            console.log(this.ggContent)
             // console.log(this.guigeArr)
             // console.log(this.guigeArr)
             this.goodsSpecificationList = goodsSpecificationList
             this.goodsSpecificationList = goodsSpecificationList
             this.getInputArr()
             this.getInputArr()
@@ -382,17 +390,22 @@ var vm = new Vue({
             
             
         },
         },
         addGoodsItem:function () {
         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 () {
         query: function () {
             vm.reload();
             vm.reload();
@@ -514,7 +527,7 @@ var vm = new Vue({
             vm.goods.goodsImgList = vm.uploadList;
             vm.goods.goodsImgList = vm.uploadList;
 
 
             vm.goods['goodsSpecificationList'] = vm.goodsSpecificationList
             vm.goods['goodsSpecificationList'] = vm.goodsSpecificationList
-            
+            console.log(vm.inputArr)
             vm.goods['productList'] = vm.inputArr
             vm.goods['productList'] = vm.inputArr
 
 
             vm.goods['guigeArr'] = JSON.stringify(vm.guigeArr)
             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) {
         getInfo: function (id) {
             Ajax.request({
             Ajax.request({
                 url: "../goods/info/" + id,
                 url: "../goods/info/" + id,
@@ -628,11 +653,17 @@ var vm = new Vue({
                 successCallback: function (r) {
                 successCallback: function (r) {
                     vm.goods = r.goods;
                     vm.goods = r.goods;
                     // vm.goodsSpecificationList = r.goods.goodsSpecificationList
                     // 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)
                     vm.ggContent = JSON.parse(r.goods.ggContent)
-
+                    console.log(vm.ggContent)
 
 
                     vm.ggname = []
                     vm.ggname = []
 
 
@@ -669,15 +700,18 @@ var vm = new Vue({
                 async: true,
                 async: true,
                 successCallback: function (r) {
                 successCallback: function (r) {
                     ztree = $.fn.zTree.init($("#categoryTree"), setting, r.list);
                     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;
             return check;
         },
         },
         handleSubmit: function (name) {
         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) {
         handleFormatError: function (file) {
             this.$Notice.warning({
             this.$Notice.warning({

+ 1 - 2
statics/libs/contabs.js

@@ -313,8 +313,7 @@ $(function () {
     $('.J_tabCloseItem').on('click',function (e) {
     $('.J_tabCloseItem').on('click',function (e) {
             $('.page-tabs-content').children("[data-id]").not(":first").each(function (idx,item) {
             $('.page-tabs-content').children("[data-id]").not(":first").each(function (idx,item) {
                     var target = $('.active.J_menuTab');
                     var target = $('.active.J_menuTab');
-                    console.log(target[0].dataset.id)
-                    if (target[0].dataset.id !=='main') {
+                    if (target[0] && target[0].dataset.id !=='main') {
                         target.remove();
                         target.remove();
                     }
                     }
             });
             });