shop_app/pages/order/comment/success.vue

154 lines
3.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="order">
<view class="order-icon">
<up-icon name="checkmark-circle-fill" :color="Color" size="25" />
<text>晒单已提交</text>
</view>
<view v-if="isReward == 1" style="margin-top: 30rpx;">
您已获得<text :style="{color: Color}">{{couponData.amount}}</text>优惠券
</view>
<view v-if="score_comment" style="margin-top: 30rpx;">
您的晒单积分奖励已到账积分<text :style="{color: Color}">+{{score_comment}}</text>
</view>
<view class="order-btn">
<button @click="handleShare()" class="green">分享到群聊</button>
</view>
</view>
</template>
<script>
import { post } from '@/api/request.js'
import { ref, reactive, toRefs } from 'vue'
import { uniShare } from '@/components/common.js'
export default {
setup() {
const data = reactive({
imageUrl: '',
shareUrl: '',
ids: '',
id: '',
isReward: '',
couponData: {},
score_comment: '',
Color: uni.getStorageSync('theme_color')
})
function toHome() {
uni.switchTab({
url: '/pages/index/index'
})
}
function toOrder() {
uni.redirectTo({
url: '/pages/order/info/index?id=' + id.value
})
}
// 获取是否设置优惠券
const getShopBaskSetting = () => {
post('/api/v1/Shop/getShopBaskSetting').then((res) => {
data.isReward = res.data.is_reward
data.couponData = res.data.shop_coupon
})
}
// 获取分享图
const getShareTemplate = () => {
post('/api/v1/sales/share', { shop_goods_id: data.ids }).then((res) => {
res.data.forEach((item) => {
if (item.type === 4) {
data.imageUrl = item.image
}
})
})
}
// 分享路径
const getShareUrl = () => {
post('/api/v1/user/share', {
page: 'pages/share/index',
query: `id=${data.id}`
}).then((res) => {
data.shareUrl = res.data.path
})
}
function handleShare() {
let title = '本团已收到多个好评,快来看看吧!'
let imageUrl = data.imageUrl
let path = data.shareUrl
uniShare(title, imageUrl, path)
}
return {
uniShare,
...toRefs(data),
toHome,
toOrder,
getShareTemplate,
getShareUrl,
getShopBaskSetting,
handleShare
}
},
async onLoad(options) {
this.id = options.id
this.score_comment = options.score_comment || ''
this.ids = parseInt(options.ids)
await this.$onLaunched
this.getShareTemplate()
this.getShareUrl()
this.getShopBaskSetting()
}
}
</script>
<style lang="scss" scoped>
.green {
background: v-bind('Color');
color: #ffff;
font-size: 32rpx;
width: 80%;
height: 80rpx;
text-align: center;
line-height: 80rpx;
}
.order {
text-align: center;
padding: 50rpx 0;
background-color: #fff;
&-icon {
display: flex;
justify-content: center;
font-size: 34rpx;
text {
margin-left: 10rpx;
font-weight: bold;
}
}
&-btn {
display: flex;
justify-content: center;
margin-top: 60rpx;
.btn1,
.btn2 {
font-size: 30rpx;
width: 38%;
height: 77rpx;
line-height: 77rpx;
border-radius: 49rpx;
}
.btn1 {
border: 1px solid #98989f;
margin-right: 40rpx;
}
.btn2 {
color: #fff;
background: $Color3;
}
}
}
</style>