123 lines
3.0 KiB
JavaScript
123 lines
3.0 KiB
JavaScript
import api from '../../config/api'
|
|
import { funMixin } from '../../config/mixin'
|
|
import { ref, onMounted } from 'vue';
|
|
import cookie from '@/utils/cookie'
|
|
|
|
export default function (componentContent, typeId, shopId) {
|
|
const { sendReq, beforeGetData, afterGetData, jumpStore } = funMixin()
|
|
const couponsData = ref([])
|
|
|
|
onMounted(() => {
|
|
getData()
|
|
})
|
|
|
|
// 获取优惠券列表
|
|
function getData () {
|
|
if (
|
|
componentContent.value.selectedCoupon &&
|
|
componentContent.value.selectedCoupon.length > 0
|
|
) {
|
|
beforeGetData()
|
|
let _url = `${api.getCoupons}?isPage=2&ids=${componentContent.value.selectedCoupon}`
|
|
const params = {
|
|
method: 'GET',
|
|
url: _url,
|
|
}
|
|
sendReq(
|
|
params,
|
|
(res) => {
|
|
afterGetData()
|
|
couponsData.value = res.data.list
|
|
},
|
|
() => {
|
|
afterGetData()
|
|
}
|
|
)
|
|
} else {
|
|
couponsData.value = []
|
|
}
|
|
}
|
|
|
|
// 领取优惠券
|
|
async function receiveCoupon (item) {
|
|
var token = cookie.get('accessToken')
|
|
if (typeof uni !== 'undefined') {
|
|
if (token) {
|
|
const params = {
|
|
url: `${api.takeCoupon}${item.id}`,
|
|
method: 'GET',
|
|
}
|
|
sendReq(
|
|
params,
|
|
(res) => {
|
|
if (res.code !== 0) {
|
|
uni.showToast({
|
|
title: res.msg,
|
|
icon: 'none'
|
|
})
|
|
} else {
|
|
getData()
|
|
uni.showToast({
|
|
title: '领取成功',
|
|
icon: 'success'
|
|
})
|
|
}
|
|
|
|
},
|
|
() => {
|
|
if (res.code !== 0) {
|
|
uni.showToast({
|
|
title: res.msg,
|
|
icon: 'none'
|
|
})
|
|
}
|
|
}
|
|
)
|
|
} else {
|
|
uni.showToast({
|
|
title: '请先登录',
|
|
icon: 'none'
|
|
})
|
|
uni.navigateTo({
|
|
url: '/pages/login/guid'
|
|
})
|
|
}
|
|
} else {
|
|
if (token) {
|
|
const params = {
|
|
url: `${api.takeCoupon}${item.id}`,
|
|
method: 'GET',
|
|
}
|
|
sendReq(params).then(res => {
|
|
ElMessage({
|
|
message: '领取成功!',
|
|
type: 'success'
|
|
})
|
|
getData()
|
|
}).catch(res => {
|
|
if (res.data.code !== '200') {
|
|
ElMessage({
|
|
message: res.data.message,
|
|
type: 'success'
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
ElMessage({
|
|
message: '请先登录'
|
|
})
|
|
// 登录弹框
|
|
// store.commit('IS_LOGIN', false) // 清除顶部个人中心数据
|
|
// store.commit('SHOW_LOGIN') // 调用登录弹框
|
|
}
|
|
}
|
|
}
|
|
|
|
return {
|
|
componentContent,
|
|
couponsData,
|
|
receiveCoupon,
|
|
jumpStore
|
|
}
|
|
}
|