tremble 6 年之前
父节点
当前提交
2c40ab50bc

+ 1 - 1
build/webpack.dev.conf.js

@@ -10,7 +10,7 @@ const HtmlWebpackPlugin = require('html-webpack-plugin')
 const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
 const portfinder = require('portfinder')
 
-const HOST = '192.168.0.132'
+const HOST = '192.168.0.133'
 const PORT = process.env.PORT && Number(process.env.PORT)
 
 const devWebpackConfig = merge(baseWebpackConfig, {

二进制
src/assets/images/bg_a.png


二进制
src/assets/images/c03.jpg


二进制
src/assets/images/c04.jpg


+ 16 - 14
src/pages/account/forget/index.vue

@@ -59,20 +59,22 @@ export default {
         document.querySelector('#app').style.height = '100%'
       }, 20)
     },
-    getAuthCode () {
-      this.$store.dispatch('getAuthCode', this.phone)
-      this.interl && clearInterval(this.interl)
-      this.interl = null
-      this.jishi = true
-      this.interl = setInterval(() => {
-        this.interTime--
-        if (this.interTime <= 0) {
-          this.jishi = false
-          this.interTime = 60
-          clearInterval(this.interl)
-          this.interl = null
-        }
-      }, 1000)
+    async getAuthCode () {
+      let res = await this.$store.dispatch('getAuthCode', this.phone)
+      if (res) {
+        this.interl && clearInterval(this.interl)
+        this.interl = null
+        this.jishi = true
+        this.interl = setInterval(() => {
+          this.interTime--
+          if (this.interTime <= 0) {
+            this.jishi = false
+            this.interTime = 60
+            clearInterval(this.interl)
+            this.interl = null
+          }
+        }, 1000)
+      }
     },
     async submit () {
       if (!this.password) {

+ 3 - 3
src/pages/account/manage/change/index.vue

@@ -74,9 +74,9 @@ export default {
         document.querySelector('#app').style.height = '100%'
       }, 20)
     },
-    getAuthCode () {
-      this.$store.dispatch('getAuthCode', this.phone)
-      if (this.phone) {
+    async getAuthCode () {
+      let res = await this.$store.dispatch('getAuthCode', this.phone)
+      if (res) {
         this.interl && clearInterval(this.interl)
         this.interl = null
         this.jishi = true

+ 0 - 2
src/pages/account/manage/confirm/index.vue

@@ -140,9 +140,7 @@ export default {
     },
     next () {
       let temp = cloneObj(this.payinfo)
-
       let invoice = this.selectedId === 2 ? this.invoice2 : this.selectedId === 3 ? this.invoice3 : null
-      console.log(invoice)
       temp['invoice'] = invoice
       temp['receiver'] = this.address
 

+ 3 - 3
src/pages/account/manage/payselect/index.vue

@@ -68,11 +68,11 @@ export default {
         orderId: orderId,
         orderType: Number(orderType)
       }
-      if (this.isWeixin) {
-        return location.replace(`https://open.weixin.qq.com/connect/oauth2/authorize?redirect_uri=http%3a%2f%2fpro.4dkankan.com%2fapi%2forder%2fpay%2fwechatPreJsPay%3forderId=${orderId}&appid=wx779dbafb46bab697&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect`)
-      }
 
       if (PAYS[item.id] !== 'paypal') {
+        if (this.isWeixin) {
+          return location.replace(`https://open.weixin.qq.com/connect/oauth2/authorize?redirect_uri=http%3a%2f%2fpro.4dkankan.com%2fapi%2forder%2fpay%2fwechatPreJsPay%3forderId=${orderId}&appid=wx779dbafb46bab697&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect`)
+        }
         let response = await this.$http
           .post(`/order/pay/${PAYS[item.id]}`, params, {
             headers: {

+ 3 - 3
src/pages/account/manage/submit/index.vue

@@ -172,10 +172,10 @@ export default {
       this.orderId = res.data.data.id
       this.orderType = 0
 
-      if (this.isWeixin) {
-        return location.replace(`https://open.weixin.qq.com/connect/oauth2/authorize?redirect_uri=http%3a%2f%2fpro.4dkankan.com%2fapi%2forder%2fpay%2fwechatPreJsPay%3forderId=${this.orderId}&appid=wx779dbafb46bab697&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect`)
-      }
       if (Number(payType) !== 2) {
+        if (this.isWeixin) {
+          return location.replace(`https://open.weixin.qq.com/connect/oauth2/authorize?redirect_uri=http%3a%2f%2fpro.4dkankan.com%2fapi%2forder%2fpay%2fwechatPreJsPay%3forderId=${this.orderId}&appid=wx779dbafb46bab697&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect`)
+        }
         let response = await this.$http
           .post(`order/pay/${paytypes[payType]}`, data, {
             headers: {

+ 16 - 13
src/pages/account/register/index.vue

@@ -52,6 +52,7 @@ export default {
       nickname: '',
       phone: '',
       authCode: '',
+      inputActive: '',
       password: '',
       confirmPass: '',
       interTime: 60,
@@ -69,19 +70,21 @@ export default {
       }, 20)
     },
     async getAuthCode () {
-      await this.$store.dispatch('getAuthCode', this.phone)
-      this.interl && clearInterval(this.interl)
-      this.interl = null
-      this.jishi = true
-      this.interl = setInterval(() => {
-        this.interTime--
-        if (this.interTime <= 0) {
-          this.jishi = false
-          this.interTime = 60
-          clearInterval(this.interl)
-          this.interl = null
-        }
-      }, 1000)
+      let res = await this.$store.dispatch('getAuthCode', this.phone)
+      if (res) {
+        this.interl && clearInterval(this.interl)
+        this.interl = null
+        this.jishi = true
+        this.interl = setInterval(() => {
+          this.interTime--
+          if (this.interTime <= 0) {
+            this.jishi = false
+            this.interTime = 60
+            clearInterval(this.interl)
+            this.interl = null
+          }
+        }, 1000)
+      }
     },
     async submit () {
       if (!this.isAgree) {

+ 0 - 1
src/pages/binocular/index.vue

@@ -73,7 +73,6 @@ export default {
     })
   },
   components: {vcenter}
-
 }
 </script>
 

+ 5 - 9
src/pages/home/style.scss

@@ -123,7 +123,7 @@ $theme-color: #1fe4dc;
   .plate02 {
     position: relative;
     .booking {
-      background: url("~@/assets/images/under.png") #f7f7f8 top center no-repeat;
+      background: url("https://4dscene.4dage.com/new4dkk/mobile/images/under.png") #f7f7f8 top center no-repeat;
       background-size: cover;
       width: 100%;
       display: flex;
@@ -185,12 +185,8 @@ $theme-color: #1fe4dc;
         }
       }
     }
-    .hxjs{
-      .b-text2{
-      }
-    }
     .kjdw {
-      background: url("~@/assets/images/bg_a.png") #fff top center no-repeat;
+      background: url("https://4dscene.4dage.com/new4dkk/mobile/images/bg_a.png") #fff top center no-repeat;
       background-size: 100% 100%;
       .b-text2 {
         margin: 0 auto 16px;
@@ -199,7 +195,7 @@ $theme-color: #1fe4dc;
     }
 
     .kjjm {
-      background: url("~@/assets/images/bg_b.png") #fff top center no-repeat;
+      background: url("https://4dscene.4dage.com/new4dkk/mobile/images/bg_b.png") #fff top center no-repeat;
       background-size: 100% 100%;
       .b-text2 {
         margin: 0 auto 16px;
@@ -208,7 +204,7 @@ $theme-color: #1fe4dc;
     }
     .kjzs {
       .player{
-        background: url("~@/assets/images/bg_c.png") #fff top center no-repeat;
+        background: url("https://4dscene.4dage.com/new4dkk/mobile/images/bg_c.png") #fff top center no-repeat;
         background-size: 100% 100%;
         margin: 0 auto 0;
         padding-top: 32px;
@@ -287,7 +283,7 @@ $theme-color: #1fe4dc;
   //           padding-right: 20px;
   //           padding-top: 10px;
   //           display: inline-block;
-  //           background: url('~@/assets/images/index_icon_record_arrow.png') no-repeat top right;
+  //           background: url('https://4dscene.4dage.com/new4dkk/mobile/images/index_icon_record_arrow.png') no-repeat top right;
   //           background-size: 20px;
   //         }
 

+ 1 - 1
src/pages/layout/style.scss

@@ -52,7 +52,7 @@ $bannerHeight:60px;
       }
       &.active {
         .l1 {
-          transform: translateY(4px) rotate(45deg);
+          transform: translateY(3px) rotate(45deg);
         }
         .l2 {
           left: -80px;

+ 0 - 168
src/pages/service/plugin/backup.vue

@@ -1,168 +0,0 @@
-<template>
-  <div class="select-layout">
-    <div class="swiper-container">
-      <div class="sli-layout" ref="slider">
-        <div class="slider"
-          :class="{animation: !pauseAnimation}"
-          :style="{
-            width: contentWidth + 'px',
-          }">
-          <div class="item" v-for="(item,index) in product" :key="index"
-          :style="{
-            transform:'translateX(' + (left + activeLeft)  + 'px)'+'scale('+ (1 - Math.min(Math.abs(0.004 * ((index+1)*0.8+0.9) * activeLeft), 1)) +')'
-          }"
-          >
-            <img class="main-img" :src="item.img">
-            <div class="main-txt">{{item.name}}</div>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-
-export default {
-  data () {
-    let product = [
-      {
-        img: this.$cdn + 'images/pro.png',
-        name: 'Pro'
-      },
-      {
-        img: this.$cdn + 'images/lite.png',
-        name: 'Lite'
-      }
-    ]
-
-    return {
-      startX: '',
-      runAnimation: false,
-      active: 0,
-      mapActive: 0,
-      animations: [],
-      pauseAnimation: true,
-      outWidth: window.outerWidth / 2,
-      activeLeft: 0,
-      product
-    }
-  },
-  watch: {
-    async active (newVal, oldVal) {
-      console.log(newVal)
-
-      let newActive = null
-      if (newVal === -1) {
-        newActive = 0
-      } else if (newVal >= this.product.length) {
-        newActive = this.product.length - 1
-      }
-
-      if (newActive !== null) {
-        this.runAnimation = true
-        await new Promise(resolve => setTimeout(resolve, 300))
-        this.pauseAnimation = true
-        await new Promise(resolve => setTimeout(resolve))
-        this.active = newActive
-        await new Promise(resolve => setTimeout(resolve, 16))
-        this.pauseAnimation = false
-        this.runAnimation = false
-      }
-    }
-  },
-  computed: {
-    itemWidth () {
-      return this.outWidth / 2
-    },
-    contentWidth () {
-      return this.outWidth
-    },
-    showActive () {
-      return this.active
-    },
-    left () {
-      return -this.showActive * this.itemWidth
-    }
-  },
-  methods: {
-    next () {
-      this.setActive(this.active + 1)
-    },
-    prev () {
-      this.setActive(this.active - 1)
-    },
-    startHandle (ev) {
-      if (this.runAnimation) return
-      this.pauseAnimation = true
-      this.startX = ev.touches[0].clientX
-    },
-    moveHandle (ev) {
-      ev.stopPropagation()
-      ev.preventDefault()
-      if (this.runAnimation) return
-      this.activeLeft = ev.touches[0].clientX - this.startX
-      console.log(this.activeLeft)
-    },
-    endHandle (ev) {
-      if (this.runAnimation) return
-      if (this.activeLeft > 50) {
-        this.prev()
-      } else if (this.activeLeft < -50) {
-        this.next()
-      }
-      this.pauseAnimation = false
-      this.activeLeft = 0
-    },
-    setActive (newActive) {
-      if (!this.runAnimation) {
-        this.active = newActive
-      }
-    }
-  },
-  mounted () {
-    this.startHandle = this.startHandle.bind(this)
-    this.moveHandle = this.moveHandle.bind(this)
-    this.endHandle = this.endHandle.bind(this)
-    this.$refs.slider.addEventListener('touchstart', this.startHandle, false)
-    this.$refs.slider.addEventListener('touchmove', this.moveHandle, {passive: false})
-    this.$refs.slider.addEventListener('touchend', this.endHandle, false)
-  },
-  beforeDestroy () {
-    this.$refs.layout.removeEventListener('touchstart', this.startHandle, false)
-    this.$refs.layout.removeEventListener('touchmove', this.moveHandle, {passive: false})
-    this.$refs.layout.removeEventListener('touchend', this.endHandle, false)
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.select-layout{
-  margin: 0 auto;
-  .sli-layout{
-    width: 100%;
-    overflow: hidden;
-    .slider{
-      display: flex;
-      margin: 0 auto;
-      overflow: hidden;
-      .item{
-        .main-img {
-          width: 100%;
-          margin: 0 auto;
-          display: block;
-        }
-        .main-txt{
-          text-align: center;
-          margin: 24px 0 16px;
-          font-size: 14px;
-          color: #4d4d4d;
-        }
-      }
-    }
-    .animation {
-      transition: all .2s linear;
-    }
-  }
-}
-</style>

+ 16 - 16
src/pages/service/plugin/select.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="select-layout">
     <div class="swiper-container">
-    <swiper class="swiper-wrapper swiper-wrapper-n" :options="swiperOption">
-      <swiper-slide class="swiper-slide" v-for="(item,index) in product" :key="index">
-        <img class="main-img" :src="item.img">
+    <swiper class="swiper-wrapper swiper-wrapper-n" :options="swiperOption" ref="mySwiper">
+      <swiper-slide class="swiper-slide" v-for="(item,index) in product" :key="index" >
+        <img class="main-img" :src="item.img" @click="tapTo(index)">
         <div class="main-txt">{{item.name}}</div>
       </swiper-slide>
     </swiper>
@@ -22,7 +22,6 @@ export default {
   },
   data () {
     return {
-      activeIdx: 'a',
       product: [
         {
           img: require('@/assets/images/pro.png'),
@@ -36,24 +35,20 @@ export default {
     }
   },
   computed: {
+    swiper () {
+      return this.$refs.mySwiper.swiper
+    },
     swiperOption () {
       let _this = this
       let option = {
         slidesPerView: 'auto',
-        autoplay: false,
         centeredSlides: true,
         watchSlidesProgress: true,
         // pagination: {
         //   el: '.swiper-pagination'
         // },
-        navigation: {
-          nextEl: '.swiper-button-next',
-          prevEl: '.swiper-button-prev'
-        },
-        loop: false,
-        paginationClickable: true,
         on: {
-          slideChangeTransitionEnd: function () {
+          slideChange: function () {
             let idx = this.activeIndex
             _this.$emit('current', idx)
           },
@@ -62,8 +57,8 @@ export default {
             var b, c, d
             for (b = 0; b < a.slides.length; b++) {
               c = a.slides[b]
-              d = c.progress
-              var scale = 1 - Math.min(Math.abs(0.3 * d), 1)
+              d = b === 0 ? c.progress + 0.5 : c.progress
+              var scale = 1 - Math.min(Math.abs(0.4 * d), 1)
               var es = c.style
               // es.opacity = 1 - Math.min(Math.abs(d / 2), 1)
               es.webkitTransform = es.MsTransform = es.msTransform = es.MozTransform = es.OTransform = es.transform =
@@ -86,6 +81,11 @@ export default {
       }
       return option
     }
+  },
+  methods: {
+    tapTo (index) {
+      this.swiper.slideTo(index)
+    }
   }
 }
 </script>
@@ -99,9 +99,9 @@ export default {
 }
 
 .swiper-slide {
-  width: 14.3%;
+  width: 20.3%;
   transform-style: preserve-3d;
-  margin: 0 10%;
+  margin: 0 5%;
 }
 
 .swiper-slide img{

+ 0 - 17
src/pages/service/plugin/select2.vue

@@ -1,17 +0,0 @@
-<template>
-  <div class="select-layout">
-    <div class="sli-layout" ref="slider">
-
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-
-}
-</script>
-
-<style lang="scss" scoped>
-
-</style>

+ 26 - 26
src/router/index.js

@@ -9,106 +9,106 @@ let router = new Router({
     {
       path: '/',
       name: 'home',
-      component: () => import('@/pages/home')
+      component: resolve => require(['@/pages/home'], resolve)
     },
     {
       path: '/binocular',
       name: 'binocular',
-      component: () => import('@/pages/binocular')
+      component: resolve => require(['@/pages/binocular'], resolve)
     },
     {
       path: '/eight',
       name: 'eight',
-      component: () => import('@/pages/eight')
+      component: resolve => require(['@/pages/eight'], resolve)
     },
     {
       path: '/about',
       name: 'about',
-      component: () => import('@/pages/about')
+      component: resolve => require(['@/pages/about'], resolve)
     },
     {
       path: '/pay',
       name: 'pay',
-      component: () => import('@/pages/pay')
+      component: resolve => require(['@/pages/pay'], resolve)
     },
     {
       path: '/check',
       name: 'check',
-      component: () => import('@/pages/check')
+      component: resolve => require(['@/pages/check'], resolve)
     },
     {
       path: '/login',
       name: 'login',
-      component: () => import('@/pages/account/login')
+      component: resolve => require(['@/pages/account/login'], resolve)
     },
     {
       path: '/register',
       name: 'register',
-      component: () => import('@/pages/account/register')
+      component: resolve => require(['@/pages/account/register'], resolve)
     },
 
     {
       path: '/forget',
       name: 'forget',
-      component: () => import('@/pages/account/forget')
+      component: resolve => require(['@/pages/account/forget'], resolve)
     },
     {
       path: '/',
       name: 'manage',
-      component: () => import('@/pages/account/manage'),
+      component: resolve => require(['@/pages/account/manage'], resolve),
       children: [
         {
           name: 'information',
           path: '/information',
-          component: () => import('@/pages/account/manage/information'),
+          component: resolve => require(['@/pages/account/manage/information'], resolve),
           meta: {requireAuth: true}
         },
         {
           name: 'order',
           path: '/order',
-          component: () => import('@/pages/account/manage/order'),
+          component: resolve => require(['@/pages/account/manage/order'], resolve),
           meta: {requireAuth: true}
         },
         {
           name: 'myscene',
           path: '/myscene',
-          component: () => import('@/pages/account/manage/myscene'),
+          component: resolve => require(['@/pages/account/manage/myscene'], resolve),
           meta: {requireAuth: true}
         },
         {
           path: '/payselect/:orderId/:orderType',
           name: 'payselect',
-          component: () => import('@/pages/account/manage/payselect'),
+          component: resolve => require(['@/pages/account/manage/payselect'], resolve),
           meta: {requireAuth: true}
         },
         {
           name: 'change',
           path: '/change',
-          component: () => import('@/pages/account/manage/change'),
+          component: resolve => require(['@/pages/account/manage/change'], resolve),
           meta: {requireAuth: true}
         },
         {
           name: 'confirm',
           path: '/confirm',
-          component: () => import('@/pages/account/manage/confirm'),
+          component: resolve => require(['@/pages/account/manage/confirm'], resolve),
           meta: {requireAuth: true}
         },
         {
           name: 'submit',
           path: '/submit',
-          component: () => import('@/pages/account/manage/submit'),
+          component: resolve => require(['@/pages/account/manage/submit'], resolve),
           meta: {requireAuth: true}
         },
         {
           name: 'paytype',
           path: '/paytype',
-          component: () => import('@/pages/account/manage/paytype'),
+          component: resolve => require(['@/pages/account/manage/paytype'], resolve),
           meta: {requireAuth: true}
         },
         {
           name: 'cart',
           path: '/cart',
-          component: () => import('@/pages/account/manage/cart'),
+          component: resolve => require(['@/pages/account/manage/cart'], resolve),
           meta: {requireAuth: true}
         }
       ]
@@ -116,37 +116,37 @@ let router = new Router({
     {
       path: '/cases/:id',
       name: 'cases',
-      component: () => import('@/pages/cases')
+      component: resolve => require(['@/pages/cases'], resolve)
     },
     {
       path: '/service/:id',
       name: 'service',
-      component: () => import('@/pages/service')
+      component: resolve => require(['@/pages/service'], resolve)
     },
     {
       path: '/location',
       name: 'location',
-      component: () => import('@/pages/location')
+      component: resolve => require(['@/pages/location'], resolve)
     },
     {
       path: '/purchase',
       name: 'purchase',
-      component: () => import('@/pages/purchase')
+      component: resolve => require(['@/pages/purchase'], resolve)
     },
     {
       path: '/purchasetwo',
       name: 'purchasetwo',
-      component: () => import('@/pages/purchasetwo')
+      component: resolve => require(['@/pages/purchasetwo'], resolve)
     },
     {
       path: '/payresult/:isSuccess',
       name: 'payresult',
-      component: () => import('@/pages/payresult')
+      component: resolve => require(['@/pages/payresult'], resolve)
     },
     {
       path: '/useimg/:id',
       name: 'useimg',
-      component: () => import('@/pages/service/useimg')
+      component: resolve => require(['@/pages/service/useimg'], resolve)
     }
   ],
   scrollBehavior (to, from, savedPosition) {

+ 1 - 0
src/store/user.js

@@ -248,6 +248,7 @@ export default {
         }, res => {
 
         })
+        return true
       } else {
         return vue.$toast.show('warn', '手机号码不合法')
       }