Forráskód Böngészése

免费用户选择区域修改

TANGSHIZHE 4 éve
szülő
commit
506239c0fa

+ 77 - 11
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/change_area.js

@@ -63,6 +63,7 @@ $(function () {
 
     // 省下拉市事件
     var isAnimating = false
+    var keyItems = []
 
     function slideFunc() {
         if (isAnimating) return
@@ -99,6 +100,13 @@ $(function () {
         } else {
             isLockedTipButtons(false)
         }
+        if(Object.keys(selected) == '全国' || Object.keys(selected) == '') {
+            if(getParam('subvip') == 'free') {
+                isLockedTipButtons(true)
+            } else {
+                isLockedTipButtons(false) 
+            }
+        }
 
         //是否需要升级
         if (needUpgrade(getBuySet(selected, areaData.data.industry), {
@@ -132,11 +140,22 @@ $(function () {
                 if(getParam('subvip') == 'free') {
                     let freeSelect = Object.keys(new_selected)
                     if(freeSelect[0] == '全国') {
-                        isLockedTipButtons(true)
+                        if(keyItems.length == 0) {
+                            isLockedTipButtons(true)
+                        } else {
+                            isLockedTipButtons(false)
+                        }
                     }
                 }
                 return setDataInResult('.result-selected .result-info .info-overview', getBuySet(selected, []));
             }
+            if(!p) {
+                if(getParam('subvip') == 'free') {
+                    if(JSON.stringify(new_selected) == '{}') {
+                        isLockedTipButtons(true)
+                    }
+                }
+            }
             if (selected[p].length === 0) {
                 selectedCount.province++
             } else {
@@ -151,16 +170,29 @@ $(function () {
             $('.result .info-tip').hide().siblings('.info-overview').text('');
         } else {
             new_selected = selected
-            setDataInResult('.result-selected .result-info .info-overview', getBuySet(selected, []));
-        }
-        if(getParam('subvip') == 'free') {
-            console.log(Object.keys(new_selected))
-            let freeSelect = Object.keys(new_selected)
-            if(freeSelect.length > 1) {
-                isLockedTipButtons(true)
-            } else {
-                isLockedTipButtons(false)
+            // (1)免费订阅设置过订阅条件的用户,可继续选择全国和多个省份;
+            // (2)免费订阅未设置过订阅条件的用户,省份只可单选且不展示“全国”选项。
+            if(getParam('subvip') == 'free') {
+                console.log(Object.keys(new_selected))
+                let freeSelect = Object.keys(new_selected)
+                if(freeSelect.length > 1) {
+                    console.log(keyItems,$('.tab.whole').parents('li'))
+                    if(keyItems.length==0) {
+                        $('.tab.whole').parents('li').hide()
+                        isLockedTipButtons(true)
+                    } else {
+                        isLockedTipButtons(false)
+                    }
+                } else {
+                    if(!freeSelect) {
+                        if(JSON.stringify(new_selected) == '{}' || JSON.stringify(new_selected) == 'undefind') {
+                            isLockedTipButtons(true)
+                        }
+                    }
+                    isLockedTipButtons(false)
+                }
             }
+            setDataInResult('.result-selected .result-info .info-overview', getBuySet(selected, []));
         }
     }
 
@@ -182,7 +214,16 @@ $(function () {
         };
 
         if (selectedData.areacount === -1) {
-            $(selector).text('全国')
+            if(getParam('subvip') == 'free') {
+                let freeSelect = Object.keys(new_selected)
+                if(keyItems.length==0) {
+                    $(selector).text('')
+                } else {
+                    $(selector).text('全国')
+                }
+            } else {
+                $(selector).text('全国')
+            }
         } else {
             var dunhao = '';
             if (citySum !== 0 && selectedData.areacount !== 0) {
@@ -473,6 +514,31 @@ $(function () {
             if(!res.data.industry) {
                 res.data.industry = []
             }
+            if(res.data.items) {
+                res.data.items.forEach(function (item, index) {
+                    item.a_key.forEach(function(data,i) {
+                        keyItems.push(data.key[0])
+                    })
+                })
+                // (1)免费订阅设置过订阅条件的用户,可继续选择全国和多个省份;
+                // (2)免费订阅未设置过订阅条件的用户,省份只可单选且不展示“全国”选项。
+                if(getParam('subvip') == 'free') {
+                    let freeSelect = Object.keys(res.data.area)
+                    $('.result-purchased.result-item').hide()
+                    if(keyItems.length==0) {
+                        $('.tab.whole').parents('li').hide()
+                        $('.province.all-country').removeClass('active')
+                        $('.info-overview.ellipsis').html('')
+                        if(freeSelect.length > 1) {
+                            isLockedTipButtons(true)
+                        } else {
+                            isLockedTipButtons(false)
+                        }
+                    } else {
+                        isLockedTipButtons(false)
+                    }
+                }
+            }
             areaData.data = res.data
             res.data.oldArea = res.data.area;
             res.data.oldIndustry = res.data.industry;

+ 3 - 1
src/jfw/modules/app/src/web/templates/vipsubscribe/messageType.html

@@ -280,7 +280,9 @@
                 if(r.userData){
                     var _userData = r.userData;
                     var _vipData = _userData["o_vipjy"];
-                    var a_infotype = _vipData["a_infotype"]
+                    if(_vipData) {
+                        var a_infotype = _vipData["a_infotype"]
+                    }
                     if (a_infotype!=undefined&&a_infotype.length>0&&a_infotype!=""){
                         inputHtml(a_infotype);
                         isLockButton (true);

+ 9 - 7
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_introduce.html

@@ -235,13 +235,15 @@
                         success:function(res) {
                             if(res.success) {
                                 _this.initData = res.data
-                                let proArea = res.data.area
-                                Object.keys(proArea).forEach(function(item, index) {
-                                    if(proArea[item].length !== 0) {
-                                        proArea[item] = []
-                                    }
-                                })
-                                sessionStorage.setItem('vipSubSelectArea', JSON.stringify(proArea))
+                                if(res.data.area) {
+                                    let proArea = res.data.area
+                                    Object.keys(proArea).forEach(function(item, index) {
+                                        if(proArea[item].length !== 0) {
+                                            proArea[item] = []
+                                        }
+                                    })
+                                    sessionStorage.setItem('vipSubSelectArea', JSON.stringify(proArea))
+                                }
                             }
                         }
                     })

+ 3 - 1
src/web/staticres/common-module/vipsubscribe/js/vip-subscribe-set-template.js

@@ -263,7 +263,9 @@ var subComponent = {
           } else {
               var arr = []
               state.items.forEach(function (item, index) {
-                  arr.push(item['s_item'])
+                item.a_key.forEach(function(data,i) {
+                  arr.push(data.key[0])
+                })
               })
               // $('.body-item.keywords .keywords-text').text(arr.join('、'))
               $('.body-item.keywords .keywords-text').text('已设置' +arr.length+ '组关键词')

+ 77 - 3
src/web/staticres/vipsubscribe/js/change_area.js

@@ -63,6 +63,7 @@ $(function () {
 
     // 省下拉市事件
     var isAnimating = false
+    var keyItems = []
 
     function slideFunc() {
         if (isAnimating) return
@@ -99,6 +100,13 @@ $(function () {
         } else {
             isLockedTipButtons(false)
         }
+        if(Object.keys(selected) == '全国' || Object.keys(selected) == '') {
+            if(getParam('subvip') == 'free') {
+                isLockedTipButtons(true)
+            } else {
+                isLockedTipButtons(false) 
+            }
+        }
 
         //是否需要升级
         if (needUpgrade(getBuySet(selected, areaData.data.industry), {
@@ -132,12 +140,22 @@ $(function () {
                 if(getParam('subvip') == 'free') {
                     let freeSelect = Object.keys(new_selected)
                     if(freeSelect[0] == '全国') {
-                        isLockedTipButtons(true)
+                        if(keyItems.length == 0) {
+                            isLockedTipButtons(true)
+                        } else {
+                            isLockedTipButtons(false)
+                        }
                     }
                 }
                 return setDataInResult('.result-selected .result-info .info-overview', getBuySet(selected, []));
             }
-
+            if(!p) {
+                if(getParam('subvip') == 'free') {
+                    if(JSON.stringify(new_selected) == '{}') {
+                        isLockedTipButtons(true)
+                    }
+                }
+            }
             if (selected[p].length === 0) {
                 selectedCount.province++
             } else {
@@ -152,6 +170,28 @@ $(function () {
             $('.result .info-tip').hide().siblings('.info-overview').text('');
         } else {
             new_selected = selected
+            // (1)免费订阅设置过订阅条件的用户,可继续选择全国和多个省份;
+            // (2)免费订阅未设置过订阅条件的用户,省份只可单选且不展示“全国”选项。
+            if(getParam('subvip') == 'free') {
+                console.log(Object.keys(new_selected))
+                let freeSelect = Object.keys(new_selected)
+                if(freeSelect.length > 1) {
+                    console.log(keyItems,$('.tab.whole').parents('li'))
+                    if(keyItems.length==0) {
+                        $('.tab.whole').parents('li').hide()
+                        isLockedTipButtons(true)
+                    } else {
+                        isLockedTipButtons(false)
+                    }
+                } else {
+                    if(!freeSelect) {
+                        if(JSON.stringify(new_selected) == '{}' || JSON.stringify(new_selected) == 'undefind') {
+                            isLockedTipButtons(true)
+                        }
+                    }
+                    isLockedTipButtons(false)
+                }
+            }
             setDataInResult('.result-selected .result-info .info-overview', getBuySet(selected, []));
         }
         if(getParam('subvip') == 'free') {
@@ -183,7 +223,16 @@ $(function () {
         };
 
         if (selectedData.areacount === -1) {
-            $(selector).text('全国')
+            if(getParam('subvip') == 'free') {
+                let freeSelect = Object.keys(new_selected)
+                if(keyItems.length==0) {
+                    $(selector).text('')
+                } else {
+                    $(selector).text('全国')
+                }
+            } else {
+                $(selector).text('全国')
+            }
         } else {
             var dunhao = '';
             if (citySum !== 0 && selectedData.areacount !== 0) {
@@ -474,6 +523,31 @@ $(function () {
             if(!res.data.industry) {
                 res.data.industry = []
             }
+            if(res.data.items) {
+                res.data.items.forEach(function (item, index) {
+                    item.a_key.forEach(function(data,i) {
+                        keyItems.push(data.key[0])
+                    })
+                })
+                // (1)免费订阅设置过订阅条件的用户,可继续选择全国和多个省份;
+                // (2)免费订阅未设置过订阅条件的用户,省份只可单选且不展示“全国”选项。
+                if(getParam('subvip') == 'free') {
+                    let freeSelect = Object.keys(res.data.area)
+                    $('.result-purchased.result-item').hide()
+                    if(keyItems.length==0) {
+                        $('.tab.whole').parents('li').hide()
+                        $('.province.all-country').removeClass('active')
+                        $('.info-overview.ellipsis').html('')
+                        if(freeSelect.length > 1) {
+                            isLockedTipButtons(true)
+                        } else {
+                            isLockedTipButtons(false)
+                        }
+                    } else {
+                        isLockedTipButtons(false)
+                    }
+                }
+            }
             areaData.data = res.data
             res.data.oldArea = res.data.area;
             res.data.oldIndustry = res.data.industry;

+ 3 - 1
src/web/templates/weixin/vipsubscribe/messageType.html

@@ -236,7 +236,9 @@
             if (r.userData) {
                 var _userData = r.userData;
                 var _vipData = _userData["o_vipjy"];
-                var a_infotype = _vipData["a_infotype"]
+                if(_vipData) {
+                    var a_infotype = _vipData["a_infotype"]
+                }
                 if (a_infotype != undefined && a_infotype.length > 0 && a_infotype != "") {
                     inputHtml(a_infotype);
                     isLockButton(true);

+ 9 - 7
src/web/templates/weixin/vipsubscribe/vip_introduce.html

@@ -231,13 +231,15 @@
                             success:function(res) {
                                 if(res.success) {
                                     _this.initData = res.data
-                                    let proArea = res.data.area
-                                    Object.keys(proArea).forEach(function(item, index) {
-                                        if(proArea[item].length !== 0) {
-                                            proArea[item] = []
-                                        }
-                                    })
-                                    sessionStorage.setItem('vipSubSelectArea', JSON.stringify(proArea))
+                                    if(res.data.area) {
+                                        let proArea = res.data.area
+                                        Object.keys(proArea).forEach(function(item, index) {
+                                            if(proArea[item].length !== 0) {
+                                                proArea[item] = []
+                                            }
+                                        })
+                                        sessionStorage.setItem('vipSubSelectArea', JSON.stringify(proArea))
+                                    }
                                 }
                             }
                         })