Explorar el Código

fix: 免费订阅省份设置页面逻辑修改2

cuiyalong hace 3 años
padre
commit
15ae8cd544

+ 26 - 9
src/jfw/modules/app/src/web/templates/areaPack/page_set_area.html

@@ -212,7 +212,7 @@
                 var restore = this.restoreState()
 
                 if (restore) {
-                    
+                    this.initPageInfo()
                 } else {
                     if (type === 'new') {
                         this.setAreaAllNotSelected()
@@ -222,6 +222,17 @@
                 }
             },
             methods: {
+                initPageInfo: function () {
+                    var area = this.selectedArea
+                    this.setComponentState(area)
+                },
+                setAreaSelected: function (area) {
+                    this.$set(this, 'selectedArea', area)
+                },
+                setComponentState: function (area) {
+                    vNode.data.initCityMap = area
+                    vueComponent.setCitySelected(area)
+                },
                 setAreaAllNotSelected: function () {
                     vueComponent.setCitySelected()
                     vueComponent.provinceListMap['#'][0].selectedState = ''
@@ -239,7 +250,14 @@
                                     if (res.data.area === null || res.data.area === undefined) {
                                         _this.setAreaAllNotSelected()
                                     } else {
-                                        Object.assign(_this.userSubInfo, res.data)
+                                        if (res.data.area) {
+                                            // 赋值默认已选
+                                            _this.setAreaSelected(res.data.area)
+                                        }
+                                        for (var key in res.data) {
+                                            _this.$set(_this.userSubInfo, key, res.data[key])
+                                        }
+                                        _this.initPageInfo()
                                     }
                                 }
                             } else {
@@ -270,9 +288,6 @@
                         }
                     })
                 },
-                setAreaSelected: function (area) {
-                    this.$set(this, 'selectedArea', area)
-                },
                 confirmed: function (area) {
                     this.setAreaSelected(area)
                     if (this.moreThanSubCount) {
@@ -301,16 +316,18 @@
                     if ($data) {
                         $data = JSON.parse($data)
 
-                        for (var key in $data) {
-                            Object.assign(this.$data[key], $data[key])
-                        }
+                        this.selectedArea = $data.selectedArea
+                        Object.assign(this.userSubInfo, $data.userSubInfo)
 
                         sessionStorage.removeItem(this.sessKey)
                     }
                     return !!$data
                 },
                 savePageState: function () {
-                    var data = JSON.stringify(this.$data)
+                    var data = {
+                        selectedArea: this.selectedArea,
+                        userSubInfo: this.userSubInfo
+                    }
                     sessionStorage.setItem(this.sessKey, JSON.stringify(data))
                 },
             }

+ 26 - 9
src/web/templates/areaPack/wx/page_set_area.html

@@ -212,7 +212,7 @@
                 var restore = this.restoreState()
 
                 if (restore) {
-                    
+                    this.initPageInfo()
                 } else {
                     if (type === 'new') {
                         this.setAreaAllNotSelected()
@@ -222,6 +222,17 @@
                 }
             },
             methods: {
+                initPageInfo: function () {
+                    var area = this.selectedArea
+                    this.setComponentState(area)
+                },
+                setAreaSelected: function (area) {
+                    this.$set(this, 'selectedArea', area)
+                },
+                setComponentState: function (area) {
+                    vNode.data.initCityMap = area
+                    vueComponent.setCitySelected(area)
+                },
                 setAreaAllNotSelected: function () {
                     vueComponent.setCitySelected()
                     vueComponent.provinceListMap['#'][0].selectedState = ''
@@ -239,7 +250,14 @@
                                     if (res.data.area === null || res.data.area === undefined) {
                                         _this.setAreaAllNotSelected()
                                     } else {
-                                        Object.assign(_this.userSubInfo, res.data)
+                                        if (res.data.area) {
+                                            // 赋值默认已选
+                                            _this.setAreaSelected(res.data.area)
+                                        }
+                                        for (var key in res.data) {
+                                            _this.$set(_this.userSubInfo, key, res.data[key])
+                                        }
+                                        _this.initPageInfo()
                                     }
                                 }
                             } else {
@@ -270,9 +288,6 @@
                         }
                     })
                 },
-                setAreaSelected: function (area) {
-                    this.$set(this, 'selectedArea', area)
-                },
                 confirmed: function (area) {
                     this.setAreaSelected(area)
                     if (this.moreThanSubCount) {
@@ -301,16 +316,18 @@
                     if ($data) {
                         $data = JSON.parse($data)
 
-                        for (var key in $data) {
-                            Object.assign(this.$data[key], $data[key])
-                        }
+                        this.selectedArea = $data.selectedArea
+                        Object.assign(this.userSubInfo, $data.userSubInfo)
 
                         sessionStorage.removeItem(this.sessKey)
                     }
                     return !!$data
                 },
                 savePageState: function () {
-                    var data = JSON.stringify(this.$data)
+                    var data = {
+                        selectedArea: this.selectedArea,
+                        userSubInfo: this.userSubInfo
+                    }
                     sessionStorage.setItem(this.sessKey, JSON.stringify(data))
                 },
             }