洪海涛 před 8 roky
rodič
revize
3e73cc2c50

+ 10 - 1
www/vue/src/App.vue

@@ -8,7 +8,16 @@
 
 <script>
   export default {
-    name: 'app'
+    name: 'app',
+    watch: {
+      '$route' (to, from) {
+        const toDepth = to.path.split('/').length
+        const fromDepth = from.path.split('/').length
+        this.transitionName = toDepth < fromDepth ? 'slide-right' : 'slide-left'
+//        console.log('前一页 from = ' + from.name)
+//        console.log('准备进入的页面是  to = ' + to.name)
+      }
+    }
   }
 </script>
 

+ 29 - 5
www/vue/src/components/address/addresList.vue

@@ -12,16 +12,22 @@
       <!--<router-link class="router-link-active" @click="clear" :to="{path: '/addressAdd'}">添加地址</router-link>-->
       <a class="router-link-active" @click="clear">添加地址</a>
     </div>
+    <!--展示报错信息-->
+    <alert v-model="showAlert" :title="(alertTitle)"> {{ (alertContent) }}</alert>
   </div>
 </template>
 <script>
   import config from '../../config/config'
   import axios from 'axios'
+  import {Alert} from 'vux'
   export default {
     name: 'addressList',
     data () {
       return {
-        shopAddress: []
+        shopAddress: [],
+        showAlert: false, // 是否显示弹出框
+        alertTitle: '抱歉', // 弹窗标题
+        alertContent: '' // 弹窗内容
       }
     },
     beforeCreate () {
@@ -31,16 +37,19 @@
         this.shopAddress = res.data.data
       })
     },
+    components: {
+      Alert
+    },
     methods: {
       clear () {
-        console.log(config)
+//        console.log(config)
         config.addressAdd = {
           userName: '',
           userMobile: '',
           positionName: '请定位您的小区或者街道',
           userAddress: ''
         }
-        console.log(config)
+//        console.log(config)
         this.$router.push({path: '/addressAdd'})
       },
       btnEdit (event, index) {
@@ -52,8 +61,23 @@
       },
       backOrder (event, index) {
         event.stopPropagation()
-        config.orderAddress = this.shopAddress[index]
-        this.$router.push({path: '/placeOrder'})
+        config.addressContent = config.orderAddress = this.shopAddress[index]
+        axios.get('o2o/order/checkAddress&address_id=' + this.shopAddress[index].address_id + '&user_id=' + config.userId).then(res => {
+          if (res.data.success) {
+            this.$router.push({path: '/placeOrder'})
+            config.station = res.data.data.station
+//            this.alertTitle = '恭喜'
+//            this.alertContent = '当前地址在范围范围内!'
+//            this.showAlert = true
+            return
+          } else {
+            this.alertTitle = '抱歉'
+            this.alertContent = '您当前选中地址不在服务范围内!'
+            this.showAlert = true
+            return
+          }
+        })
+//        this.$router.push({path: '/placeOrder'})
       }
     }
   }

+ 4 - 7
www/vue/src/components/address/addressAdd.vue

@@ -65,17 +65,14 @@
         if (val) {
 //          this.$router.push({path: '/addressList'})
         }
-        console.log(69)
-        console.log(val)
-        console.log(oldVal)
       }
     },
     created () {
-      console.log(localStorage.getItem('positionName'))
+//      console.log(localStorage.getItem('positionName'))
       if (localStorage.getItem('positionName')) {
-        console.log('true')
+//        console.log('true')
       } else {
-        console.log('false')
+//        console.log('false')
         localStorage.setItem('positionName', '请定位您的小区或者街道')
       }
     },
@@ -127,7 +124,7 @@
             return
           } else {
             this.alertTitle = '抱歉'
-            this.alertContent = '您輸入的信息有誤,!'
+            this.alertContent = '您!'
             this.showAlert = true
             return
           }

+ 5 - 7
www/vue/src/components/address/addressDetail.vue

@@ -38,7 +38,7 @@
       return {
         userName: config.editAddress.name,
         userMobile: config.editAddress.mobile,
-        positionName: config.editAddress.address.poi.name,
+        positionName: config.editAddress.positionName,
         userAddress: config.editAddress.address.detail,
         showAlert: false, // 是否显示弹出框
         alertTitle: '抱歉', // 弹窗标题
@@ -50,18 +50,16 @@
       TransferDom
     },
     components: {XInput, Group, Cell, Alert},
-    beforeCreate () {
-      if (localStorage.getItem('positionName')) {
-      } else {
-        localStorage.setItem('positionName', '请定位您的小区或者街道')
-      }
-    },
+    beforeCreate () {},
     computed: {},
     watch: {
       results: function (val, oldVal) {
       }
     },
     created () {
+      if (config.editAddress.positionName === undefined) {
+        this.positionName = config.editAddress.address.poi.name
+      }
       if (localStorage.getItem('positionName')) {
 //        console.log('true')
       } else {

+ 14 - 16
www/vue/src/components/address/addressPoisiton.vue

@@ -33,12 +33,10 @@
       setFocus () {
         this.$refs.search.setFocus()
       },
-      onResultClick (evl) {
-        config.addressPio = evl
+      onResultClick (val) {
+        config.addressPio = val
         if (config.addressPio) {
-          config.addressAdd.positionName = config.addressPio.name
-          config.editAddress.address.poi.name = config.addressPio.name
-//          localStorage.setItem('positionName', config.addressPio.name)
+          config.editAddress.positionName = config.addressAdd.positionName = config.addressPio.name
           this.$router.go(-1)
         }
       },
@@ -51,11 +49,11 @@
       },
       onSubmit () {
         this.$refs.search.setBlur()
-        this.$vux.toast.show({
-          type: 'text',
-          position: 'top',
-          text: 'on submit'
-        })
+//        this.$vux.toast.show({
+//          type: 'text',
+//          position: 'top',
+//          text: 'on submit'
+//        })
       },
       onFocus () {
         console.log('on focus')
@@ -74,16 +72,16 @@
 
   function getResult (val) {
     let rs = []
-//    axios.get('api/shop/getDetailAddressByQuery&query=' + val).then(function (res) {
-//      for (let i = 0; i < 10; i++) {
-//        rs[i] = res.data.result[i]
-//      }
-//    })
-    axios.get('https://bird.ioliu.cn/v1?url=http://api.map.baidu.com/place/v2/suggestion?&ak=B349f0b32ef6e78b2e678f45cb9fddaf&output=json&region=%E4%B8%8A%E6%B5%B7%E5%B8%82&query=' + val).then(function (res) {
+    axios.get('api/shop/getDetailAddressByQuery&query=' + val).then(function (res) {
       for (let i = 0; i < 10; i++) {
         rs[i] = res.data.result[i]
       }
     })
+//    axios.get('https://bird.ioliu.cn/v1?url=http://api.map.baidu.com/place/v2/suggestion?&ak=B349f0b32ef6e78b2e678f45cb9fddaf&output=json&region=%E4%B8%8A%E6%B5%B7%E5%B8%82&query=' + val).then(function (res) {
+//      for (let i = 0; i < 10; i++) {
+//        rs[i] = res.data.result[i]
+//      }
+//    })
     return rs
   }
 </script>

+ 1 - 1
www/vue/src/components/homeList.vue

@@ -27,7 +27,7 @@
     created () {},
     methods: {
       btn: function () {
-        console.log(this.$store.state.product)
+//        console.log(this.$store.state.product)
       },
       pro: function (id) {
         // 这里清空之前下单界面的保存的状态值

+ 5 - 5
www/vue/src/components/mine.vue

@@ -12,7 +12,7 @@
 </template>
 <script type="text/javascript">
   import { mapActions } from 'vuex'
-  import config from '../config/config'
+//  import config from '../config/config'
   export default({
     data () {
       return {
@@ -21,14 +21,14 @@
       }
     },
     created () {
-      console.log(this.$store.state.user)
-      console.log(config.shopAddress)
+//      console.log(this.$store.state.user)
+//      console.log(config.shopAddress)
     },
     methods: {
       ...mapActions([]),
       btn: function (a) {
-        console.log(this.$store.state.product.products)
-        console.log(this.$store.state.user)
+//        console.log(this.$store.state.product.products)
+//        console.log(this.$store.state.user)
       }
     }
   })

+ 1 - 1
www/vue/src/components/order.vue

@@ -42,7 +42,7 @@
     },
     methods: {
       consoleIndex () {
-        console.log('click demo01', this.demo01)
+//        console.log('click demo01', this.demo01)
       }
     },
     data () {

+ 48 - 6
www/vue/src/components/placeOrder.vue

@@ -12,16 +12,28 @@
       </div>
       <!--选择数量-->
       <group>
-        <x-number title="选择数量" v-model="xNumberValue" :value="0" :min="0" @on-change="xNumberValueChange" fillable></x-number>
+        <x-number title="选择数量" v-model="xNumberValue" :value="0" :min="0" @on-change="xNumberValueChange"
+                  fillable></x-number>
       </group>
       <!--选择时间-->
       <group>
-        <datetime v-model="bookingTime" :placeholder="(bookingTime)" :max-year=2017 format="YYYY-MM-DD HH:00" @on-change="change" :title="('服务时间')" year-row="{value}年" month-row="{value}月" day-row="{value}日" hour-row="{value}点" minute-row="{value}分" confirm-text="完成" cancel-text="取消" :start-date='startDate' :end-date='endDate' :min-hour=9 :max-hour=18></datetime>
+        <datetime v-model="bookingTime" :placeholder="(bookingTime)" :max-year=2017 format="YYYY-MM-DD HH:00"
+                  @on-change="change" :title="('服务时间')" year-row="{value}年" month-row="{value}月" day-row="{value}日"
+                  hour-row="{value}点" minute-row="{value}分" confirm-text="完成" cancel-text="取消" :start-date='startDate'
+                  :end-date='endDate' :min-hour=9 :max-hour=18></datetime>
       </group>
       <!--选择地址-->
-      <group @click="clearConfig">
-        <cell class="address" title="选择地址" value="暂无服务地址" link="/addressList"></cell>
-      </group>
+      <div class="weui-cells vux-no-group-title">
+        <div class="vux-datetime weui-cell weui-cell_access" @click="clearConfig">
+          <div>
+            <p>选择地址</p>
+          </div>
+          <div class="weui-cell__ft vux-cell-primary vux-datetime-value address-info">
+            <span>{{addressContent.name}}</span><span>{{addressContent.mobile}}</span>
+            <p>{{addressContent.address.city}}&nbsp;{{addressContent.address.area}}&nbsp;{{addressContent.address.detail}}</p>
+          </div>
+        </div>
+      </div>
       <!--优惠券-->
       <group>
         <cell class="address" title="优惠券" value="暂无优惠券" isLink></cell>
@@ -54,6 +66,7 @@
   import selectTime from '../config/selectTime'
   import {Group, DatetimeRange, TransferDom, Datetime, XNumber, Cell, CellBox, XTextarea, Alert} from 'vux'
   import {mapState, mapActions} from 'vuex'
+  //  import axios from 'axios'
   export default {
     name: 'placeOrder',
     data () {
@@ -65,6 +78,7 @@
         startDate: selectTime.startDate, // 限定最小日期
         endDate: selectTime.endDate, // 限定最大日期
         isActive: config.isActive,
+        addressContent: config.addressContent, // 只做显示用户地址内容
         xNumberValue: config.xNumberValue, // 选择数量
         remarks: '', // 备注
         showAlert: false, // 是否显示弹出框
@@ -91,6 +105,18 @@
         selectTime.serviceHours = this.$store.state.order.time
       }
     },
+    created () {
+//      console.log(config.addressContent.name)
+      if (config.addressContent.name === undefined) {
+        if (config.shopAddress.length === 0) {
+          this.addressContent.name = '暂无地址信息'
+        } else {
+          this.addressContent = config.shopAddress[0]
+        }
+      } else {
+        this.addressContent = config.addressContent
+      }
+    },
     computed: {
       ...mapState({
         order: state => state.order,
@@ -100,7 +126,8 @@
     methods: {
       // 监听时间插件值得变化
       clearConfig () {
-        console.log(config)
+        this.$router.push({path: '/addressList'})
+//        console.log(config)
       },
       ...mapActions([
         'PAYCHANGE'
@@ -114,12 +141,15 @@
         config.order.time = val
       },
       btnOrder: function (cb) {
+        // 判断服务是否选择
         if (localStorage.getItem('extra') === null && config.productInfo.extra.length !== 0) {
 //          config.order.extra = ''
           this.alertTitle = '抱歉'
           this.alertContent = '你还没有选择服务类型'
           this.showAlert = true
         }
+        // 判断时间
+        // 判断地址
 //        config.order.userId = config.userId
 //        config.order.memo = this.remarks
 //        config.order.id = config.productInfo.id
@@ -215,6 +245,18 @@
     text-align: left;
   }
 
+  .address-info {
+    span {
+      font-size: 13px;
+      &:nth-child(1) {
+        margin-right: 5px;
+      }
+    }
+    p {
+      font-size: 13px;
+    }
+  }
+
   /*填写备注*/
   .remarks {
     textarea {

+ 5 - 1
www/vue/src/config/config.js

@@ -24,7 +24,9 @@ let showPosition = '' // 显示隐藏搜索框
 let editAddress = []
 // 这里是删除地址状态
 // 这里是下单地址状态
+let addressContent = {} // 只做显示用户地址内容
 let orderAddress = []
+let station = ''
 // end-用戶地址
 if (uri.indexOf('common.yiguanjia.me') > -1) {
   test = false
@@ -63,5 +65,7 @@ export default {
   addressDetail: addressDetail,
   showPosition: showPosition,
   editAddress: editAddress,
-  orderAddress: orderAddress
+  orderAddress: orderAddress,
+  station: station,
+  addressContent: addressContent
 }

+ 10 - 10
www/vue/src/main.js

@@ -29,16 +29,16 @@ const router = new VueRouter({
   routes
 })
 
-router.beforeEach((to, from, next) => {
-  // console.log(to.fullPath)
-  if (to.fullPath === '/order') {
-    // console.log()
-  }
-  // console.log('小弟B:哎呀妈呀!大兄弟,这是要去哪呀?', to)
-  // console.log('小弟A:大兄弟,哪儿旮沓的呀!', from)
-  next(true) // 大哥:谁让你过去的?
-  // 调用next(false)中止导航,于是页面回到跳转前
-})
+// router.beforeEach((to, from, next) => {
+//   // console.log(to.fullPath)
+//   if (to.fullPath === '/addressList') {
+//     console.log('order')
+//   }
+//   console.log('小弟B:哎呀妈呀!大兄弟,这是要去哪呀?', to.name)
+//   console.log('小弟A:大兄弟,哪儿旮沓的呀!', from.name)
+//   next(true) // 大哥:谁让你过去的?
+//   // 调用next(false)中止导航,于是页面回到跳转前
+// })
 
 // 注册全局组件
 Vue.component('home', require('./components/home.vue')) // 首页

+ 13 - 13
www/vue/src/router/index.js

@@ -1,15 +1,15 @@
 export default[
-  {path: '/', component: require('../components/home')},
-  {path: '/index.php', component: require('../components/home')},
-  {path: '/product', component: require('../components/product')},
-  {path: '/placeOrder', component: require('../components/placeOrder.vue')},
-  {path: '/mine', component: require('../components/mine')},
-  {path: '/order', component: require('../components/order')},
-  {path: '/myCoupon', component: require('../components/myCoupon')},
-  {path: '/recharge', component: require('../components/recharge')},
-  {path: '/brand', component: require('../components/CompanyProfile/brand')},
-  {path: '/addressList', component: require('../components/address/addresList.vue')},
-  {path: '/addressAdd', component: require('../components/address/addressAdd.vue')},
-  {path: '/addressDetail', component: require('../components/address/addressDetail.vue')},
-  {path: '/addressPoisiton', component: require('../components/address/addressPoisiton.vue')}
+  {path: '/', name: 'home', component: require('../components/home')},
+  {path: '/index.php', name: 'index.php', component: require('../components/home')},
+  {path: '/product', name: 'product', component: require('../components/product')},
+  {path: '/placeOrder', name: 'placeOrder', component: require('../components/placeOrder.vue')},
+  {path: '/mine', name: 'mine', component: require('../components/mine')},
+  {path: '/order', name: 'order', component: require('../components/order')},
+  {path: '/myCoupon', name: 'myCoupon', component: require('../components/myCoupon')},
+  {path: '/recharge', name: 'recharge', component: require('../components/recharge')},
+  {path: '/brand', name: 'brand', component: require('../components/CompanyProfile/brand')},
+  {path: '/addressList', name: 'addressList', component: require('../components/address/addresList.vue')},
+  {path: '/addressAdd', name: 'addressAdd', component: require('../components/address/addressAdd.vue')},
+  {path: '/addressDetail', name: 'addressDetail', component: require('../components/address/addressDetail.vue')},
+  {path: '/addressPoisiton', name: 'addressPoisiton', component: require('../components/address/addressPoisiton.vue')}
 ]