洪海涛 %!s(int64=8) %!d(string=hai) anos
pai
achega
43c4508a45

+ 1 - 1
www/protected/modules/o2o/views/web/index.php

@@ -25,7 +25,7 @@
       text-decoration: initial;
     }
   </style>
-
+  <script type="text/javascript" src = 'http://webapi.amap.com/maps?v=1.3&key=ea4228b685c663ac62af7da3a0702c97'></script>
   <!--vue-->
   <link rel="stylesheet" id="app_css" href="http://<?php echo $host ?>/vue/dist/static/css/app.css?v=<?php echo time()?>">
   <!--vue_end-->

+ 1 - 0
www/vue/.babelrc

@@ -1,6 +1,7 @@
 {
   "presets": [
     ["env", { "modules": false }],
+    ["es2015", { "modules": false }],
     "stage-2"
   ],
   "plugins": ["transform-runtime"],

+ 3 - 0
www/vue/build/webpack.base.conf.js

@@ -63,6 +63,9 @@ const webpackConfig = {
         }
       }
     ]
+  },
+  externals: {
+    'AMap': 'AMap'
   }
 } // 原来的webpack配置
 const vuxLoader = require('vux-loader')

+ 1 - 0
www/vue/index.html

@@ -3,6 +3,7 @@
 <head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+  <script type="text/javascript" src = 'http://webapi.amap.com/maps?v=1.3&key=ea4228b685c663ac62af7da3a0702c97'></script>
   <title>vue</title>
   <style>
     html, body {

+ 8 - 7
www/vue/package.json

@@ -14,16 +14,17 @@
     "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
   },
   "dependencies": {
-    "vue": "^2.3.3",
-    "vuex": "^2.3.1",
-    "vue-router": "^2.3.1",
+    "css-loader": "^0.28.4",
+    "less-loader": "^4.0.4",
     "qs": "^6.4.0",
-    "vue-axios": "^2.0.2",
+    "vue": "^2.3.3",
+    "vue-amap": "^0.2.8",
     "vue-awesome-swiper": "^2.4.2",
-    "vux": "^2.3.4",
+    "vue-axios": "^2.0.2",
+    "vue-router": "^2.3.1",
     "vue-style-loader": "^3.0.1",
-    "css-loader": "^0.28.4",
-    "less-loader": "^4.0.4"
+    "vuex": "^2.3.1",
+    "vux": "^2.3.4"
   },
   "devDependencies": {
     "autoprefixer": "^6.7.2",

+ 30 - 0
www/vue/src/components/address/addressAdd.vue

@@ -0,0 +1,30 @@
+<template>
+  <div id="near">
+    <div id="amap-main">
+
+    </div>
+  </div>
+</template>
+<script>
+  import {lazyAMapApiLoaderInstance} from 'vue-amap'
+  import AMap from 'vue-amap'
+  export default {
+    name: 'near',
+    mounted () {
+      lazyAMapApiLoaderInstance.load().then(() => {
+        this.map = AMap.Map('container', {
+          resizeEnable: true,
+          zoom: 11,
+          center: [116.397428, 39.90923]
+        })
+      })
+    }
+  }
+</script>
+<style lang="less" scoped>
+  #near {
+    #amap-main {
+      height: 300px
+    }
+  }
+</style>

+ 9 - 2
www/vue/src/components/homeList.vue

@@ -16,6 +16,7 @@
 
 <script>
   import config from '../config/config'
+  import selectTime from '../config/selectTime'
   import product from '../config/product'
   export default {
     name: 'home',
@@ -24,13 +25,19 @@
         productIcon: product.productIcon
       }
     },
-    created () {},
+    created () {
+      console.log(selectTime)
+    },
     methods: {
       btn: function () {
         console.log(this.$store.state.product)
       },
       pro: function (id) {
-        config.productInfo = {}
+        // 这里清空之前下单界面的保存的状态值
+        config.isActive = ''
+        config.order = []
+        config.orderInfo = []
+        // 循环判断被用户点击的商品,并将该商品的详细信息保存到全局变量config.productInfo
         let products = this.$store.state.product.products.products
         for (let i in products) {
           if (products[i].id === id) {

+ 19 - 17
www/vue/src/components/placeOrder.vue

@@ -12,24 +12,18 @@
       </div>
       <!--选择数量-->
       <group>
-        <x-number title="选择数量" v-model="xNumberValue" :value="0" :min="0" @on-change="change" 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>
-        <!--<cell class="address" title="选择地址" value="暂无服务地址" link="/order"></cell>-->
-        <cell class="address" title="选择地址" value="暂无服务地址" isLink></cell>
+        <cell class="address" title="选择地址" value="暂无服务地址" link="/addressList"></cell>
       </group>
       <!--优惠券-->
       <group>
-        <!--<cell class="address" title="选择地址" value="暂无服务地址" link="/order"></cell>-->
         <cell class="address" title="优惠券" value="暂无优惠券" isLink></cell>
       </group>
       <!--备注-->
@@ -66,12 +60,12 @@
       return {
         productBox: config.productInfo, // 当前服务内容
         extraB: config.productInfo.extra, // 当前服务类型
-        isActive: -1, // extra样式切换
-        bookingTime: selectTime.startDate + ' 9:00', // 服务时间
+        bookingTime: selectTime.serviceHours, // 服务时间
         value: ['2017-06-24', '03', '05'], // 设定日期格式
         startDate: selectTime.startDate, // 限定最小日期
         endDate: selectTime.endDate, // 限定最大日期
-        xNumberValue: 0, // 选择数量
+        isActive: config.isActive,
+        xNumberValue: config.xNumberValue, // 选择数量
         remarks: '', // 备注
         showAlert: false, // 是否显示弹出框
         alertTitle: '', // 弹窗标题
@@ -87,7 +81,10 @@
       Group, DatetimeRange, TransferDom, Datetime, XNumber, Cell, CellBox, XTextarea, Alert
     },
     beforeCreate () {
-      console.log(localStorage.removeItem('extra'))
+      if (this.$store.state.order.time !== undefined) {
+        selectTime.serviceHours = this.$store.state.order.time
+      }
+      console.log(config.order.time)
     },
     computed: {
       ...mapState({
@@ -99,12 +96,16 @@
       ...mapActions([
         'PAYCHANGE'
       ]),
+      // 商品数量
+      xNumberValueChange (val) {
+        config.xNumberValue = val
+      },
       change (val) {
+        this.$store.state.order.time = val
         config.order.time = val
+        console.log(this.$store.state.order.time)
       },
       btnOrder: function (cb) {
-        console.log(this.bookingTime)
-        console.log(config.productInfo.extra.length)
         if (localStorage.getItem('extra') === null && config.productInfo.extra.length !== 0) {
 //          config.order.extra = ''
           this.alertTitle = '抱歉'
@@ -159,11 +160,12 @@
 //        }
 //        config.orderInfo = tmp
       },
-      btnAction: function (index) {
+      btnAction: function (index, event) {
         localStorage.setItem('extra', index)
-//        console.log(config.productInfo.extra[index])
         config.order.extra = JSON.stringify(config.productInfo.extra[index])
         this.isActive = index
+        config.isActive = index
+        console.log(config.isActive)
       }
     }
   }

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

@@ -4,10 +4,12 @@ let uri = location.href
 let test = true
 let userId = ''
 let formData = ''
-let orderInfo = []
-let productInfo = []
-let order = []
-
+// 以下是订单状态的保存
+let orderInfo = [] // 订单信息
+let productInfo = [] // 当前操作商品的详细信息
+let order = [] // 添加订单需要传的参数数组
+let isActive = '' // 记录下单界面extra选中的组件
+let xNumberValue = 0 // 记录下单界面商品的选择数量
 if (uri.indexOf('common.yiguanjia.me') > -1) {
   test = false
 }
@@ -37,5 +39,7 @@ export default {
   orderInfo: orderInfo,
   test: test,
   productInfo: productInfo,
-  order: order
+  order: order,
+  isActive: isActive,
+  xNumberValue: xNumberValue
 }

+ 4 - 3
www/vue/src/config/selectTime.js

@@ -1,7 +1,7 @@
 let startDate = '' // 2017-01-01
 let endDate = '' // 2017-02-02
 let value = '' // value: ['2017-06-24', '03', '05']
-
+let serviceHours = ''  // 服务时间
 let currentDate = new Date() // Sat Jun 24 2017 10:09:18 GMT+0800 (中国标准时间)
 let currentYear = currentDate.getFullYear()  // 当前年 2017
 let currentMonth = currentDate.getMonth() + 1 // 当前月 6
@@ -19,9 +19,10 @@ startDate = startDateNewdt.getFullYear() + '-' + (startDateNewdt.getMonth() + 1)
 // endDate
 let endDateNewdt = new Date(Number(endArr[0]), Number(endArr[1]) - 1, Number(endArr[2]) + 14)
 endDate = endDateNewdt.getFullYear() + '-' + (endDateNewdt.getMonth() + 1) + '-' + endDateNewdt.getDate()
-
+serviceHours = startDate + ' 9:00'
 export default {
   startDate: startDate,
   endDate: endDate,
-  value: value
+  value: value,
+  serviceHours: serviceHours
 }

+ 31 - 32
www/vue/src/main.js

@@ -9,6 +9,14 @@ import VueRouter from 'vue-router'
 import store from './store/'
 import VueAwesomeSwiper from 'vue-awesome-swiper'
 import VueScroller from 'vue-scroller'
+import AMap from 'vue-amap'
+
+Vue.use(AMap)
+AMap.initAMapApiLoader({
+  key: 'ea4228b685c663ac62af7da3a0702c97', // 刚刚开发者申请哪里的key
+  plugin: ['AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType']
+})
+
 // vux
 // import { AlertPlugin, ToastPlugin } from 'vux'
 // Vue.use(AlertPlugin)
@@ -36,38 +44,29 @@ router.beforeEach((to, from, next) => {
 })
 
 // 注册全局组件
-// 首页
-Vue.component('home', require('./components/home.vue'))
-// 首页的商品列表
-Vue.component('homeList', require('./components/homeList.vue'))
-// 商品详情
-Vue.component('product', require('./components/product.vue'))
-// 立即下单
-Vue.component('placeOrder', require('./components/placeOrder.vue'))
-// 个人中心
-Vue.component('mine', require('./components/mine.vue'))
-// SAP底部导航
-Vue.component('navigation', require('./components/navigation'))
-// 轮播图
-Vue.component('swiper', require('./components/swiper'))
-// SAP顶部标题
-Vue.component('navTitle', require('./components/navTitle'))
-// 我的订单
-Vue.component('order', require('./components/order'))
-// 我的代金券
-Vue.component('myCoupon', require('./components/myCoupon'))
-// 充值
-Vue.component('recharge', require('./components/recharge'))
-// 公司品牌
-Vue.component('brand', require('./components/CompanyProfile/brand'))
-// 公司管家
-Vue.component('housekeeper', require('./components/CompanyProfile/housekeeper'))
-// 公司证件
-Vue.component('documents', require('./components/CompanyProfile/documents'))
-// 公司赔款
-Vue.component('indemnity', require('./components/CompanyProfile/indemnity'))
-// 公司工具
-Vue.component('tool', require('./components/CompanyProfile/tool'))
+Vue.component('home', require('./components/home.vue')) // 首页
+Vue.component('homeList', require('./components/homeList.vue')) // 首页的商品列表
+Vue.component('product', require('./components/product.vue')) // 商品详情
+Vue.component('placeOrder', require('./components/placeOrder.vue')) // 立即下单
+// 添加地址
+Vue.component('addresList', require('./components/address/addresList.vue'))
+Vue.component('addressAdd', require('./components/address/addressAdd.vue'))
+Vue.component('addressDetail', require('./components/address/addressDetail.vue'))
+Vue.component('addressPoisiton', require('./components/address/addressPoisiton.vue'))
+
+Vue.component('mine', require('./components/mine.vue')) // 个人中心
+Vue.component('navigation', require('./components/navigation')) // SAP底部导航
+Vue.component('swiper', require('./components/swiper')) // 轮播图
+Vue.component('navTitle', require('./components/navTitle')) // SAP顶部标题
+Vue.component('order', require('./components/order')) // 我的订单
+Vue.component('myCoupon', require('./components/myCoupon')) // 我的代金券
+Vue.component('recharge', require('./components/recharge')) // 充值
+// 公司形象
+Vue.component('brand', require('./components/CompanyProfile/brand')) // 公司品牌
+Vue.component('housekeeper', require('./components/CompanyProfile/housekeeper')) // 公司管家
+Vue.component('documents', require('./components/CompanyProfile/documents')) // 公司证件
+Vue.component('indemnity', require('./components/CompanyProfile/indemnity')) // 公司赔款
+Vue.component('tool', require('./components/CompanyProfile/tool')) // 公司工具
 
 /* eslint-disable no-new */
 new Vue({

+ 5 - 1
www/vue/src/router/index.js

@@ -7,5 +7,9 @@ export default[
   {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: '/brand', component: require('../components/CompanyProfile/brand')},
+  {path: '/addresList', 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')}
 ]