You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
5.5 KiB
225 lines
5.5 KiB
<template>
|
|
<view v-if="show" class="dialog-mask">
|
|
<view class="dialog-box">
|
|
<view class="box-title">主观题答案解析</view>
|
|
<view class="box-content">
|
|
<view class="content-item" @click="payDialogOpen = true">
|
|
<image src="@/static/images/special/lecturer.png" mode="aspectFill" style="height: 101rpx;"></image>
|
|
<view class="item-info">
|
|
<view>人工阅卷</view>
|
|
<view>真人老师付费阅卷</view>
|
|
</view>
|
|
<text class="more"></text>
|
|
</view>
|
|
<view class="content-item" @click="payDialogOpen = true">
|
|
<image src="@/static/images/special/live.png" mode="aspectFill" style="height: 93rpx;"></image>
|
|
<view class="item-info">
|
|
<view>直播阅卷</view>
|
|
<view>真人老师付费阅卷</view>
|
|
</view>
|
|
<text class="more"></text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<image src="@/static/images/special/close.png" mode="aspectFill" class="guanbi" @click="show = false;"></image>
|
|
<PayDialog :open.sync="payDialogOpen" :money="Number(money)"
|
|
:now_money="nowMoney" :pay_type_num="pay_type_num" :special_id="Number(e_id || 0)" :template-id="templateId"
|
|
:is-wechat="isWechat" :is-yue="isYue" :wxpay-h5="wxpayH5" :is-alipay="isAlipay" :is-balance="isBalance" @change="onChange"
|
|
:isMember="!!isMember" :isMembership="true" :memberMoney="member_money" />
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import PayDialog from "@/components/PayDialog/index.vue";
|
|
import { getAuthInfo } from "@/api/auth";
|
|
export default {
|
|
components: {
|
|
PayDialog,
|
|
},
|
|
props: {
|
|
e_id: {
|
|
type: Number,
|
|
default: () => 0,
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
show: false,
|
|
payDialogOpen: false, // 是否显示支付弹窗
|
|
money: 10,
|
|
nowMoney: 0,
|
|
member_money: 10,
|
|
pay_type_num: 80,
|
|
special_id: 0,
|
|
orderId: "",
|
|
isMember: false,
|
|
isWechat: false,
|
|
isYue: true,
|
|
templateId: "",
|
|
wxpayH5: false,
|
|
isAlipay: false,
|
|
isBalance: false,
|
|
isOpenWeixing: false,
|
|
status: -1,
|
|
is_analysis: 0,
|
|
special_id: 0,
|
|
};
|
|
},
|
|
watch: {
|
|
show() {
|
|
if (this.show) {
|
|
console.log(this.$props, this.e_id);
|
|
this.getAuthInfo();
|
|
}
|
|
},
|
|
e_id() {
|
|
console.log(this.e_id);
|
|
},
|
|
},
|
|
methods: {
|
|
async getAuthInfo() {
|
|
const res = await getAuthInfo();
|
|
const { nowMoney, isWechat, isAlipay, isBalance, wxpayH5 } = res.data
|
|
Object.assign(this, {
|
|
nowMoney,
|
|
isWechat,
|
|
isAlipay,
|
|
isBalance,
|
|
wxpayH5
|
|
})
|
|
},
|
|
onChange(obj) {
|
|
if (typeof obj != "object") {
|
|
obj = {};
|
|
}
|
|
var action = obj.action || "";
|
|
var value = obj.value || "";
|
|
this[action] && this[action](value);
|
|
},
|
|
pay_order(data) {
|
|
this.orderId = data.data.result.orderId || "";
|
|
switch (data.data.status) {
|
|
case "WECHAT_PAY":
|
|
this.wechatPay(data.data.result.jsConfig);
|
|
break;
|
|
case "WECHAT_ROUTINE_PAY":
|
|
this.$util.wechatRoutinePay(data.data.result.jsConfig, this);
|
|
break;
|
|
case "WECHAT_H5_PAY":
|
|
this.payDialogOpen = false;
|
|
this.$util.wechatH5Pay(data.data.result.jsConfig, this);
|
|
break;
|
|
case "ZHIFUBAO_PAY":
|
|
this.aliPay(data.data.result, "testpaper")
|
|
break;
|
|
case "SUCCESS":
|
|
this.successOrder(data.msg);
|
|
break;
|
|
case 'TOUTIAO_PAY':
|
|
this.$util.toutiaoPay(data.data.result.jsConfig, this);
|
|
break;
|
|
case 'KUAISHOU_PAY':
|
|
this.$util.kuaishouPay(data.data.result.jsConfig, this);
|
|
break
|
|
default:
|
|
this.extendOrder(data.msg);
|
|
break;
|
|
}
|
|
},
|
|
aliPay(msn, type) {
|
|
this.$util.aliPay(msn, type, this)
|
|
},
|
|
wechatPay(config) {
|
|
this.$util.weixinpay(config, this)
|
|
},
|
|
successOrder(msg) {
|
|
this.$util.showMsg(msg ? msg : "支付成功");
|
|
this.payDialogOpen = false;
|
|
},
|
|
extendOrder(msg) {
|
|
if (typeof msg === "object") {
|
|
if (msg.errMsg === "chooseWXPay:cancel") {
|
|
msg = "微信支付取消";
|
|
} else {
|
|
msg = "支付失败";
|
|
}
|
|
} else {
|
|
msg = "支付失败";
|
|
}
|
|
this.payDialogOpen = false
|
|
this.$util.showMsg(msg)
|
|
},
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.dialog-mask {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: rgba(0, 0, 0, 0.5);
|
|
z-index: 99;
|
|
.dialog-box {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
z-index: 100;
|
|
padding: 60rpx 30rpx;
|
|
background: linear-gradient(to bottom, #BED3FE 0%, #fff 100%);
|
|
box-shadow: 0rpx 3rpx 2rpx 0rpx rgba(255,255,255,0.69);
|
|
border-radius: 50rpx;
|
|
border: 1px solid #FFFFFF;
|
|
width: 610rpx;
|
|
.box-title {
|
|
color: #333333;
|
|
font-size: 34rpx;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
margin-bottom: 30rpx;
|
|
}
|
|
.box-content {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-direction: column;
|
|
.content-item {
|
|
width: 524rpx;
|
|
height: 150rpx;
|
|
background: #F3F6FD;
|
|
border-radius: 20rpx;
|
|
border: 1px solid #92BCF4;
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 24rpx 40rpx 24rpx 20rpx;
|
|
margin-bottom: 20rpx;
|
|
image {
|
|
width: 105rpx;
|
|
}
|
|
.item-info {
|
|
color: #333333;
|
|
font-size: 28rpx;
|
|
line-height: 28rpx;
|
|
>view:last-child {
|
|
color: #999999;
|
|
margin-top: 16rpx;
|
|
}
|
|
}
|
|
.more {
|
|
border-color: #0F74BB;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.guanbi {
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 80%;
|
|
transform: translate(-50%, -50%);
|
|
width: 54rpx;
|
|
height: 54rpx;
|
|
}
|
|
}
|
|
</style> |