|
@@ -12,25 +12,18 @@
|
|
|
<div class="pay-left">
|
|
|
<div class="device">
|
|
|
<div class="attr">开通选择:</div>
|
|
|
- <div class="val">b0f1ec548965</div>
|
|
|
+ <div class="val">{{childName}}</div>
|
|
|
</div>
|
|
|
<div class="top">
|
|
|
<div class="attr">开通选择:</div>
|
|
|
<div class="val">
|
|
|
- <div class="tag" :class="{'tag-active':privilege==='year'}" @click="privilege='year'">
|
|
|
- <span class="year">1年</span>
|
|
|
+ <div class="tag" v-for="(item,i) in privilegeArr" :key="i" :class="{'tag-active':privilege===item.privilege}" @click="privilege=item.privilege">
|
|
|
+ <span class="year">{{item.duration}}</span>
|
|
|
<span class="price">
|
|
|
- <i style="font-size:12px">¥</i>1999
|
|
|
- <span class="per">166元/月</span>
|
|
|
+ <i style="font-size:12px">¥</i>{{item.price}}
|
|
|
+ <span class="per" v-if="item.each">{{item.each}}元/月</span>
|
|
|
</span>
|
|
|
- <img v-if="privilege==='year'" src="@/assets/images/tag-icon.png" alt />
|
|
|
- </div>
|
|
|
- <div class="tag" :class="{'tag-active':privilege==='mouth'}" @click="privilege='mouth'">
|
|
|
- <span class="year">1个月</span>
|
|
|
- <span class="price">
|
|
|
- <i style="font-size:12px">¥</i>199
|
|
|
- </span>
|
|
|
- <img v-if="privilege==='mouth'" src="@/assets/images/tag-icon.png" alt />
|
|
|
+ <img v-if="privilege===item.privilege" src="@/assets/images/tag-icon.png" alt />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -65,11 +58,11 @@
|
|
|
<img src="@/assets/images/tag-icon.png" class="t-click" alt />
|
|
|
<form
|
|
|
class="form-con"
|
|
|
- :action="`${$serverName}api/order/pay/paypal`"
|
|
|
method="post"
|
|
|
+ :action="`${$serverName}api/order/pay/paypal`"
|
|
|
>
|
|
|
- <input v-model="$route.params.orderId" type="text" name="orderId" />
|
|
|
- <input v-model="$route.params.orderType" type="text" name="orderType" />
|
|
|
+ <input v-model="currentId" type="text" name="orderId" />
|
|
|
+ <input v-model="currentType" type="text" name="orderType" />
|
|
|
<input type="submit" value="提交" />
|
|
|
</form>
|
|
|
</div>
|
|
@@ -96,7 +89,10 @@
|
|
|
<p>{{item.name}}</p>
|
|
|
</li>
|
|
|
</ul>
|
|
|
- <div class="pay-detail" @click="$router.push({path:'/introduce'})">了解特权详细</div>
|
|
|
+ <div class="pay-detail" @click="$router.push({name:'privilege',params: {
|
|
|
+ cameraId: cameraId,
|
|
|
+ childName: childName
|
|
|
+ }})">了解特权详细</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="pay-bottom">©2019 4dkankan移动开放平台</div>
|
|
@@ -105,23 +101,35 @@
|
|
|
|
|
|
<script>
|
|
|
import { mapState } from 'vuex'
|
|
|
+
|
|
|
let payTypes = {
|
|
|
wechatPay: '微信',
|
|
|
alipay: '支付宝',
|
|
|
paypal: 'paypal'
|
|
|
}
|
|
|
-let PAYS = {
|
|
|
- 0: 'wechatPay',
|
|
|
- 1: 'alipay',
|
|
|
- 2: 'paypal'
|
|
|
-}
|
|
|
+
|
|
|
let PAYSID = {
|
|
|
wechatPay: 0,
|
|
|
alipay: 1,
|
|
|
paypal: 2
|
|
|
}
|
|
|
+let PAYSSTR = {
|
|
|
+ 0: 'wechatPay',
|
|
|
+ 1: 'alipay',
|
|
|
+ 2: 'paypal'
|
|
|
+}
|
|
|
|
|
|
export default {
|
|
|
+ computed: {
|
|
|
+ ...mapState({
|
|
|
+ token: state => state.user.token,
|
|
|
+ language: state => state.language.current,
|
|
|
+ info: state => state.user.info
|
|
|
+ }),
|
|
|
+ payZH () {
|
|
|
+ return payTypes[this.paytype]
|
|
|
+ }
|
|
|
+ },
|
|
|
data () {
|
|
|
let payicon = [{
|
|
|
img: require('@/assets/images/payicon1.png'),
|
|
@@ -136,30 +144,44 @@ export default {
|
|
|
img: require('@/assets/images/payicon4.png'),
|
|
|
name: '更优惠的扩容价格'
|
|
|
}]
|
|
|
+ let privilegeArr = [
|
|
|
+ {
|
|
|
+ duration: '1年',
|
|
|
+ price: 1999,
|
|
|
+ each: 166,
|
|
|
+ privilege: 'year'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ duration: '1个月',
|
|
|
+ price: 199,
|
|
|
+ each: '',
|
|
|
+ privilege: 'mouth'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ let {cameraId, childName} = this.$route.params
|
|
|
return {
|
|
|
+ privilegeArr,
|
|
|
privilege: 'year',
|
|
|
response: '',
|
|
|
payicon,
|
|
|
t1: null,
|
|
|
- paytype: PAYS[this.$route.params.payType]
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- ...mapState({
|
|
|
- token: state => state.user.token,
|
|
|
- info: state => state.user.info
|
|
|
- }),
|
|
|
- payZH () {
|
|
|
- return payTypes[this.paytype]
|
|
|
+ paytype: 'wechatPay',
|
|
|
+ currentId: '',
|
|
|
+ currentType: 3,
|
|
|
+ cameraId,
|
|
|
+ childName
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
paytype (newVal, oldVal) {
|
|
|
this.getCode()
|
|
|
+ },
|
|
|
+ privilege () {
|
|
|
+ this.pay()
|
|
|
}
|
|
|
},
|
|
|
mounted () {
|
|
|
- // this.getCode()
|
|
|
+ this.pay()
|
|
|
},
|
|
|
methods: {
|
|
|
inverRequest () {
|
|
@@ -171,25 +193,17 @@ export default {
|
|
|
},
|
|
|
async queryOrderStatus () {
|
|
|
if (this.t1) {
|
|
|
- let { orderSn, orderType } = this.$route.params
|
|
|
- if (!orderSn) {
|
|
|
- return this.$toast.show('error', '获取订单信息失败')
|
|
|
- }
|
|
|
-
|
|
|
let params = {
|
|
|
- orderSn,
|
|
|
- orderType: Number(orderType),
|
|
|
- payType: Number(PAYSID[this.paytype])
|
|
|
+ orderSn: this.orderSn,
|
|
|
+ orderType: 3,
|
|
|
+ payType: PAYSID[this.paytype]
|
|
|
}
|
|
|
- let res = await this.$http.post(
|
|
|
- '/user/order/queryOrderStatus',
|
|
|
- params,
|
|
|
- {
|
|
|
+ let res = await this.$http
|
|
|
+ .post('/user/order/queryOrderStatus', params, {
|
|
|
headers: {
|
|
|
token: this.token
|
|
|
}
|
|
|
- }
|
|
|
- )
|
|
|
+ })
|
|
|
let response = res.data
|
|
|
if (response.code === 0 && response.data) {
|
|
|
this.t1 = null
|
|
@@ -203,21 +217,53 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- async getCode () {
|
|
|
- let { orderId, orderType } = this.$route.params
|
|
|
- if (!orderId || (!orderType && orderType !== 0)) {
|
|
|
- return this.$toast.show('error', '获取订单信息失败')
|
|
|
+ async pay () {
|
|
|
+ let skuSn, commerceType
|
|
|
+ if (this.privilege === 'year') {
|
|
|
+ skuSn = 'U15604134906280002'
|
|
|
+ commerceType = 0
|
|
|
+ } else {
|
|
|
+ skuSn = 'U15604134903250001'
|
|
|
+ commerceType = 1
|
|
|
}
|
|
|
- if (this.paytype !== 'paypal') {
|
|
|
- let params = {
|
|
|
- orderId: orderId,
|
|
|
- orderType: Number(orderType)
|
|
|
- }
|
|
|
- let res = await this.$http.post(`/order/pay/${this.paytype}`, params, {
|
|
|
+ let params = {
|
|
|
+ cameraId: this.cameraId,
|
|
|
+ commerceType,
|
|
|
+ count: 1,
|
|
|
+ payType: PAYSID[this.paytype],
|
|
|
+ skuSn,
|
|
|
+ abroad: this.language === 'en' ? 1 : 0
|
|
|
+ }
|
|
|
+
|
|
|
+ let res = await this.$http
|
|
|
+ .post('/user/order/commerceOrder', params, {
|
|
|
headers: {
|
|
|
token: this.token
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ let data = res.data
|
|
|
+ if (data.code !== 0) {
|
|
|
+ return this.$toast.show('error', `获取订单信息失败,${data.msg}`)
|
|
|
+ }
|
|
|
+ let {id, orderSn} = data.data
|
|
|
+ this.currentId = id
|
|
|
+ this.orderSn = orderSn
|
|
|
+ this.getCode()
|
|
|
+ },
|
|
|
+ async getCode () {
|
|
|
+ let payType = PAYSID[this.paytype]
|
|
|
+ if (payType !== 2) {
|
|
|
+ let params = {
|
|
|
+ orderId: this.currentId,
|
|
|
+ orderType: 3
|
|
|
+ }
|
|
|
+ let res = await this.$http
|
|
|
+ .post(`/order/pay/${PAYSSTR[payType]}`, params, {
|
|
|
+ headers: {
|
|
|
+ token: this.token
|
|
|
+ }
|
|
|
+ })
|
|
|
let response = res.data
|
|
|
if (response.code !== 0) {
|
|
|
return this.$toast.show('error', '获取支付二维码失败', () => {
|
|
@@ -228,7 +274,6 @@ export default {
|
|
|
this.response = response.data
|
|
|
this.inverRequest()
|
|
|
} else {
|
|
|
- document.getElementById('formid').submit()
|
|
|
this.$toast.show('warn', '正在跳转至paypal支付链接,请稍等')
|
|
|
}
|
|
|
}
|
|
@@ -301,6 +346,7 @@ $theme-color: #1fe4dc;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
border: 1px solid #f4f4f4;
|
|
|
+ cursor: pointer;
|
|
|
position: relative;
|
|
|
.year {
|
|
|
width: 52px;
|