444 lines
9.6 KiB
Vue
444 lines
9.6 KiB
Vue
![]() |
<template>
|
|||
|
<tui-bottom-popup :zIndex="1002" :maskZIndex="1001" :show="popupShow" @close="hiddenPopup">
|
|||
|
<view class="order-box">
|
|||
|
<view class="avatar-box">
|
|||
|
<u-image width="140" height="140" border-radius="20" :src="clerk.avatar"></u-image>
|
|||
|
<view class="close-span" @click="hiddenPopup">
|
|||
|
<u-icon name="close-circle" color="#98a2a1" size="50"></u-icon>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<scroll-view style="height: 700rpx;" scroll-y>
|
|||
|
<view class="page-box">
|
|||
|
|
|||
|
<view class="form-box">
|
|||
|
|
|||
|
<view class="input-box">
|
|||
|
<view class="tag-box">
|
|||
|
<view class="name">服务类型</view>
|
|||
|
</view>
|
|||
|
<view class="tab-span">
|
|||
|
<!-- <view @click="changeTab(0)" class="btn" :class="form.rewardType == 0 ? 'active' : ''">赠送</view> -->
|
|||
|
<view @click="changeTab(1)" class="btn" :class="form.rewardType == 1 ? 'active' : ''">赠礼</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
|
|||
|
<view class="input-box" v-if="form.rewardType == 0">
|
|||
|
<view class="tag-box">
|
|||
|
<view class="name">打赏金额</view>
|
|||
|
</view>
|
|||
|
<view class="input-span">
|
|||
|
<u-input v-model="payMoney" type="number" :placeholder-style="`fontSize: 24rpx; color: #cbced5;`" placeholder="请输入赠送金额"></u-input>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="input-box" v-if="form.rewardType == 1">
|
|||
|
<view class="tag-box">
|
|||
|
<view class="name">赠送礼物</view>
|
|||
|
</view>
|
|||
|
<view class="select-span" @click="openGift">
|
|||
|
<view v-if="gift.id > 0">已选【{{gift.name}}】</view>
|
|||
|
<view v-else>点击选择礼物</view>
|
|||
|
<u-icon name="arrow-right"></u-icon>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="input-box" v-if="gift.id > 0">
|
|||
|
<view class="tag-box">
|
|||
|
<view class="name">礼物数量</view>
|
|||
|
</view>
|
|||
|
<view class="step-span">
|
|||
|
<img class="img" :src="gift.img"></img>
|
|||
|
<tui-numberbox iconBgColor="var(--ui-BG-Main)" iconColor="#fff" backgroundColor="#fff" :min="1" :value="form.count" @change="change"></tui-numberbox>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="input-box">
|
|||
|
<view class="textarea-box">
|
|||
|
<view class="name">心动留言</view>
|
|||
|
</view>
|
|||
|
<view class="textarea-span">
|
|||
|
<u-input v-model="form.msg" type="textarea" :placeholder-style="`fontSize: 24rpx; color: #cbced5;`" placeholder="请输入心动留言"></u-input>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="input-box" v-if="isPass">
|
|||
|
<view class="tag-box">
|
|||
|
<view class="name">您的微信号</view>
|
|||
|
</view>
|
|||
|
<view class="input-span">
|
|||
|
<u-input v-model="form.weixin" :placeholder-style="`fontSize: 24rpx; color: #cbced5;`" placeholder="请输入正确的微信号"></u-input>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
</view>
|
|||
|
|
|||
|
</view>
|
|||
|
</scroll-view>
|
|||
|
<view class="bottom-box2" v-if="form.rewardType == 0">
|
|||
|
<view class="btn-box">
|
|||
|
<view class="pay-btn" @click="confirm">立即赠送</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="bottom-box" v-if="form.rewardType == 1">
|
|||
|
<view class="price-box">
|
|||
|
<text>总价:</text>
|
|||
|
<text class="price">{{ fen2yuan(gift.money*form.count) }}</text>
|
|||
|
<text>钻石</text>
|
|||
|
</view>
|
|||
|
<view class="btn-box">
|
|||
|
<view class="pay-btn" @click="confirm">立即赠送</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</tui-bottom-popup>
|
|||
|
|
|||
|
<gift-list :showPop="giftFlag" :dataList="giftList" v-model="gift" @close="closeGift"></gift-list>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import tuiBottomPopup from "@/components/thorui/tui-bottom-popup/tui-bottom-popup.vue"
|
|||
|
import tuiNumberbox from "@/components/thorui/tui-numberbox/tui-numberbox.vue"
|
|||
|
import GiftList from '@/pages/clerk/detail/components/giftList.vue';
|
|||
|
import RewardApi from '@/sheep/api/worker/reward';
|
|||
|
import sheep from '@/sheep';
|
|||
|
export default {
|
|||
|
components: {
|
|||
|
tuiBottomPopup,
|
|||
|
tuiNumberbox,
|
|||
|
GiftList,
|
|||
|
},
|
|||
|
props: {
|
|||
|
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
popupShow: false,
|
|||
|
|
|||
|
gift: {
|
|||
|
id: -1,
|
|||
|
money: 0,
|
|||
|
},
|
|||
|
|
|||
|
giftFlag: false,
|
|||
|
|
|||
|
giftList: [],
|
|||
|
|
|||
|
payMoney: '',
|
|||
|
|
|||
|
form: {
|
|||
|
rewardType: 1,
|
|||
|
count: 1,
|
|||
|
giftId: -1,
|
|||
|
money: '',
|
|||
|
weixin: '',
|
|||
|
msg: '',
|
|||
|
payMoney: '',
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
},
|
|||
|
computed: {
|
|||
|
clerk() {
|
|||
|
return sheep.$store('sys').clerk;
|
|||
|
},
|
|||
|
userInfo() {
|
|||
|
return sheep.$store('user').userInfo;
|
|||
|
},
|
|||
|
isPass() {
|
|||
|
return sheep.$store('user').tradeConfig.weixinEnabled;
|
|||
|
},
|
|||
|
},
|
|||
|
methods: {
|
|||
|
//调用此方法显示弹层
|
|||
|
showPopup() {
|
|||
|
this.form.weixin = this.userInfo.weixin;
|
|||
|
RewardApi.getGiftList().then(res => {
|
|||
|
this.giftList = res.data;
|
|||
|
this.popupShow = true
|
|||
|
});
|
|||
|
},
|
|||
|
showGiftPopup(e) {
|
|||
|
this.gift = e;
|
|||
|
this.form.rewardType = 1;
|
|||
|
this.form.weixin = this.userInfo.weixin;
|
|||
|
RewardApi.getGiftList().then(res => {
|
|||
|
this.giftList = res.data;
|
|||
|
this.popupShow = true
|
|||
|
});
|
|||
|
},
|
|||
|
hiddenPopup() {
|
|||
|
this.popupShow = false
|
|||
|
},
|
|||
|
change(e) {
|
|||
|
this.form.count = e.value
|
|||
|
},
|
|||
|
changeTab(e) {
|
|||
|
this.form.rewardType = e;
|
|||
|
this.gift = {
|
|||
|
id: -1,
|
|||
|
money: 0,
|
|||
|
};
|
|||
|
},
|
|||
|
fen2yuan(price) {
|
|||
|
var f = 0;
|
|||
|
var p = (price / 100.0).toFixed(0);
|
|||
|
var p1 = (price / 100.0).toFixed(1);
|
|||
|
var p2 = (price / 100.0).toFixed(2);
|
|||
|
if(p*100 == price){
|
|||
|
f = 0;
|
|||
|
}else if(p1*100 == price){
|
|||
|
f = 1;
|
|||
|
}else if(p2*100 == price){
|
|||
|
f = 2;
|
|||
|
}
|
|||
|
return (price / 100.0).toFixed(f)
|
|||
|
},
|
|||
|
yuan2fen(price) {
|
|||
|
return (price * 100.0).toFixed(0)
|
|||
|
},
|
|||
|
openGift() {
|
|||
|
this.giftFlag = true;
|
|||
|
},
|
|||
|
closeGift() {
|
|||
|
this.form.count = 1;
|
|||
|
this.giftFlag = false;
|
|||
|
},
|
|||
|
confirm() {
|
|||
|
if(this.isPass && !this.form.weixin){
|
|||
|
sheep.$helper.toast('请输入正确的微信');
|
|||
|
return;
|
|||
|
}
|
|||
|
if(this.form.rewardType == 0){
|
|||
|
this.form.payMoney = this.yuan2fen(this.payMoney);
|
|||
|
if(this.form.payMoney < 1){
|
|||
|
sheep.$helper.toast('请输入打赏金额');
|
|||
|
return;
|
|||
|
}
|
|||
|
}else{
|
|||
|
this.form.giftId = this.gift.id;
|
|||
|
if(this.form.giftId < 1){
|
|||
|
sheep.$helper.toast('请选择打赏礼物');
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
this.form.workerClerkId = this.clerk.id;
|
|||
|
RewardApi.createRewardOrder(this.form).then(res => {
|
|||
|
// 跳转到支付页面
|
|||
|
this.$u.route({
|
|||
|
url: 'pages/pay/reward/index',
|
|||
|
params: {
|
|||
|
id: res.data.payOrderId,
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
},
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss" scoped>
|
|||
|
.avatar-box {
|
|||
|
padding: 10px 0;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
|
|||
|
.close-span {
|
|||
|
position: absolute;
|
|||
|
right: 5px;
|
|||
|
top: 5px;
|
|||
|
width: 70rpx;
|
|||
|
height: 70rpx;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.page-box {
|
|||
|
padding: 15px;
|
|||
|
padding-bottom: 10px;
|
|||
|
|
|||
|
.form-box {
|
|||
|
margin-bottom: 10px;
|
|||
|
|
|||
|
.tag-box {
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
width: 180rpx;
|
|||
|
|
|||
|
.name {
|
|||
|
font-size: 24rpx;
|
|||
|
color: #333;
|
|||
|
margin-left: 5px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.textarea-box {
|
|||
|
height: 20px;
|
|||
|
display: flex;
|
|||
|
width: 180rpx;
|
|||
|
|
|||
|
.name {
|
|||
|
font-size: 24rpx;
|
|||
|
color: #333;
|
|||
|
margin-left: 5px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.input-box {
|
|||
|
display: flex;
|
|||
|
margin-bottom: 20px;
|
|||
|
align-items: center;
|
|||
|
|
|||
|
.input-span {
|
|||
|
background-color: #f6f6f6;
|
|||
|
margin-left: 15px;
|
|||
|
display: flex;
|
|||
|
flex: 1;
|
|||
|
padding: 0 12px;
|
|||
|
border-radius: 10rpx;
|
|||
|
}
|
|||
|
|
|||
|
.select-span {
|
|||
|
font-size: 24rpx;
|
|||
|
background-color: #f6f6f6;
|
|||
|
margin-left: 15px;
|
|||
|
display: flex;
|
|||
|
flex: 1;
|
|||
|
padding: 12px 12px;
|
|||
|
border-radius: 10rpx;
|
|||
|
color: #aaaaaa;
|
|||
|
justify-content: space-between;
|
|||
|
}
|
|||
|
|
|||
|
.tab-span {
|
|||
|
display: flex;
|
|||
|
flex: 1;
|
|||
|
padding: 0 12px;
|
|||
|
align-items: center;
|
|||
|
|
|||
|
.btn {
|
|||
|
background-color: #f6f6f6;
|
|||
|
font-size: 24rpx;
|
|||
|
padding: 7px 0;
|
|||
|
border-radius: 40px;
|
|||
|
min-width: 120rpx;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
margin-right: 15px;
|
|||
|
}
|
|||
|
|
|||
|
.active {
|
|||
|
color: #fff;
|
|||
|
background-color: var(--ui-BG-Main);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.textarea-span {
|
|||
|
background-color: #f6f6f6;
|
|||
|
margin-left: 15px;
|
|||
|
flex: 1;
|
|||
|
padding: 2px 12px;
|
|||
|
border-radius: 10px;
|
|||
|
}
|
|||
|
|
|||
|
.step-span {
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
flex: 1;
|
|||
|
padding-left: 12px;
|
|||
|
align-items: center;
|
|||
|
|
|||
|
.img {
|
|||
|
width: 80rpx;
|
|||
|
height: 80rpx;
|
|||
|
border-radius: 100%;
|
|||
|
box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.bottom-box {
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
align-items: center;
|
|||
|
padding: 15px;
|
|||
|
box-shadow: 0 0 6px 0 #ccc;
|
|||
|
|
|||
|
.price-box {
|
|||
|
color: #fb932c;
|
|||
|
font-size: 28rpx;
|
|||
|
width: 50%;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
|
|||
|
.price {
|
|||
|
margin-right: 5px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.btn-box {
|
|||
|
width: 50%;
|
|||
|
padding-left: 15px;
|
|||
|
|
|||
|
.pay-btn {
|
|||
|
background-color: var(--ui-BG-Main);
|
|||
|
color: #fff;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
border-radius: 40px;
|
|||
|
font-size: 28rpx;
|
|||
|
height: 70rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
.bottom-box2 {
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
padding: 15px;
|
|||
|
box-shadow: 0 0 6px 0 #ccc;
|
|||
|
|
|||
|
.price-box {
|
|||
|
color: #fb932c;
|
|||
|
font-size: 28rpx;
|
|||
|
width: 50%;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
|
|||
|
.price {
|
|||
|
margin-right: 5px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.btn-box {
|
|||
|
width: 50%;
|
|||
|
|
|||
|
.pay-btn {
|
|||
|
background-color: var(--ui-BG-Main);
|
|||
|
color: #fff;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
border-radius: 40px;
|
|||
|
font-size: 28rpx;
|
|||
|
height: 70rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
</style>
|