Commit 75f4a2e4 authored by 李智书's avatar 李智书

Merge branch 'develop'

parents f567487f ff4fc2f1
...@@ -341,6 +341,44 @@ ...@@ -341,6 +341,44 @@
"navigationBarBackgroundColor":"#01CB88", "navigationBarBackgroundColor":"#01CB88",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
},
{
"path": "pages/ReceiveMoney/ReceiveMoney",
"style": {
"navigationBarTitleText": "领取红包",
"navigationStyle":"custom",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/StudentPayment/PayProjectHistoryDetails/PayProjectHistoryDetails",
"style" :
{
"navigationBarTitleText": "缴费详情单",
"navigationStyle":"custom",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/StudentPayment/PayProgress/PayProgress",
"style" :
{
"navigationBarTitleText": "缴费进度",
"navigationStyle":"custom",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/StudentPayment/PayProgressDetails/PayProgressDetails",
"style" :
{
"navigationStyle":"custom",
"navigationBarTitleText": "缴费进度",
"enablePullDownRefresh": false
}
} }
], ],
......
...@@ -9,65 +9,39 @@ ...@@ -9,65 +9,39 @@
</view> </view>
<!-- 卡号显示 --> <!-- 卡号显示 -->
<view class="cardNum"> <view class="cardNum">
<view class="cardNumleft" <view class="cardNumleft"><span>账户:</span> **** **** ****
><span>账户:</span> **** **** ****
{{ bankInfo_.accountNo.slice(bankInfo_.accountNo.length - 4) }} {{ bankInfo_.accountNo.slice(bankInfo_.accountNo.length - 4) }}
<span>({{ accountEnum[bankInfo_.accountType + ""] }})</span> <span>({{ accountEnum[bankInfo_.accountType + ""] }})</span>
</view> </view>
<view class="cardNumright" id="cardNumright" @click="CopyCardNumber" <view class="cardNumright" id="cardNumright" @click="CopyCardNumber">复制</view>
>复制</view
>
</view> </view>
<view class="HidenText"> <view class="HidenText">
<view <view class="userName" style="
class="userName"
style="
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
" ">
> 姓名:<span>{{ PersonalInfo.name }}</span></view>
姓名:<span>{{ PersonalInfo.name }}</span></view <view class="StudentCls" style="
>
<view
class="StudentCls"
style="
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
" " v-if="PersonalInfo.usertype == '1'">
v-if="PersonalInfo.usertype == '1'"
>
班级:{{ PersonalInfo.gradename }}({{ 班级:{{ PersonalInfo.gradename }}({{
PersonalInfo.classname PersonalInfo.classname
}})</view }})</view>
> <view class="TeacherCls" style="
<view
class="TeacherCls"
style="
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
" " v-else>教职工</view>
v-else
>教职工</view
>
</view> </view>
<view class="Balance"> <view class="Balance">
<view class="cardBalanceTx" <view class="cardBalanceTx">余额:¥<span>{{ cardBalanceTx }}</span></view>
>余额:¥<span>{{ cardBalanceTx }}</span></view
>
<view @click="ToWalletTx"> <view @click="ToWalletTx">
<span style="display: inline-block; padding-right: 10rpx" <span style="display: inline-block; padding-right: 10rpx">余额提现</span>
>余额提现</span <image style="position: relative; width: 13rpx; height: 20rpx" class="ImgIcon1" mode="widthFix"
> :src="ImgUrl + 'images/xiaopaycard (17).png'" alt=""></image>
<image
style="position: relative; width: 13rpx; height: 20rpx"
class="ImgIcon1"
mode="widthFix"
:src="ImgUrl + 'images/xiaopaycard (17).png'"
alt=""
></image>
</view> </view>
</view> </view>
</view> </view>
...@@ -82,14 +56,9 @@ ...@@ -82,14 +56,9 @@
</view> </view>
<!-- 充值的金额 --> <!-- 充值的金额 -->
<view class="MoneyBox"> <view class="MoneyBox">
<view <view class="depotMoney" @click="depotMoney(item.value, index)"
class="depotMoney" v-bind:class="MoneyIndex == index ? 'choiceClass' : ''" :data-money="item.value || 0"
@click="depotMoney(item.value, index)" v-for="(item, index) in MoneyList" :key="index">
v-bind:class="MoneyIndex == index ? 'choiceClass' : ''"
:data-money="item.value || 0"
v-for="(item, index) in MoneyList"
:key="index"
>
<span class="value"> <span class="value">
{{ item.value }} {{ item.value }}
</span> </span>
...@@ -100,38 +69,33 @@ ...@@ -100,38 +69,33 @@
{{item.tips}} {{item.tips}}
</span> --> </span> -->
</view> </view>
<!-- <view class="depotMoney" @click="depotOtherMoney">
<span class="value">
</span>
<span style="font-size: 28rpx; font-weight: 600; margin-left: 7rpx">其他金额</span>
</view> -->
<!-- <view class="depotMoney">
<input v-model="inputOtherM" class="otherMoneyInput" @input="inputControl" @blur="ReturnToTop"
placeholder="最低3元" type="text" maxlength="6" />
</view> -->
</view>
<!-- 充值其它金额 -->
<!-- <view class="OtherMoney" v-if="isOtherMoney"> -->
<view class="OtherMoney">
<span></span>
<input v-model="inputOtherM" @input="inputControl" @blur="ReturnToTop" placeholder="请输入其他金额,最低3元"
placeholder-class="placeholderinputOtherM" type="text" maxlength="6" />
</view> </view>
<!-- 充值限额提示 --> <!-- 充值限额提示 -->
<view class="depositbox"> <view class="depositbox">
<image <image mode="widthFix" class="depositImg" src="../../../static/img/depositIcon.png"></image>
mode="widthFix" <span style="
class="depositImg"
src="../../../static/img/depositIcon.png"
></image>
<span
style="
vertical-align: middle; vertical-align: middle;
font-size: 28rpx; font-size: 28rpx;
color: #333333; color: #333333;
font-weight: 500; font-weight: 500;
" ">最大可充值金额:<span style="color: red"><span class="canDepositTx">{{ RechargeMax }}</span></span></span>
>最大可充值金额:<span style="color: red"
><span class="canDepositTx">{{ RechargeMax }}</span></span
></span
>
</view>
<!-- 充值其它金额 -->
<view class="OtherMoney" v-if="isOtherMoney">
<span></span>
<input
v-model="inputOtherM"
@input="inputControl"
@blur="ReturnToTop"
placeholder="请输入其他金额,最低3元"
placeholder-class="placeholderinputOtherM"
type="text"
maxlength="6"
/>
</view> </view>
<!-- 支付方式 --> <!-- 支付方式 -->
<view class="payType" @click="queryBindCardList"> <view class="payType" @click="queryBindCardList">
...@@ -139,25 +103,20 @@ ...@@ -139,25 +103,20 @@
<view> <view>
{{ bankInfo_.bindCardName }} {{ bankInfo_.bindCardName }}
{{ bankInfo_.bindCardNo.slice(bankInfo_.bindCardNo.length - 4) {{ bankInfo_.bindCardNo.slice(bankInfo_.bindCardNo.length - 4)
}}<span class="arrow"></span }}<span class="arrow"></span>
></view> </view>
<!-- <view>{{bankInfo_.accountName}}({{bankInfo_.accountNo.slice(bankInfo_.accountNo.length-4)}}) <span <!-- <view>{{bankInfo_.accountName}}({{bankInfo_.accountNo.slice(bankInfo_.accountNo.length-4)}}) <span
class="arrow"></span></view> --> class="arrow"></span></view> -->
</view> </view>
<!-- <view class="" style="height: 1rpx;background-color: #DFDFDF;"></view> --> <!-- <view class="" style="height: 1rpx;background-color: #DFDFDF;"></view> -->
<!-- 充值生活费 --> <!-- 充值生活费 -->
<view class="bottomdiv"> <view class="bottomdiv">
<view <view class="DepositID" @click="toDeposit"
class="DepositID" v-bind:style="Money != '' ? '' : 'background: #e6e6e6 !important;'">
@click="toDeposit"
v-bind:style="Money != '' ? '' : 'background: #e6e6e6 !important;'"
>
<span>充值生活费</span> <span>充值生活费</span>
</view> </view>
<!-- --> <!-- -->
<view class="switchbankCard" @click="ChangeBankPay" <view class="switchbankCard" @click="ChangeBankPay">我要换银行卡支付</view>
>我要换银行卡支付</view
>
</view> </view>
</view> </view>
<!-- 其他充值金额 --> <!-- 其他充值金额 -->
...@@ -165,22 +124,15 @@ ...@@ -165,22 +124,15 @@
<view class="OtherTitle">充值金额</view> <view class="OtherTitle">充值金额</view>
<view class="inputOtherM"> <view class="inputOtherM">
<span></span> <span></span>
<input <input v-model="inputOtherM" @input="inputControl" placeholder-class="placeholderinputOtherM"
v-model="inputOtherM" type="text" maxlength="6" />
@input="inputControl"
placeholder-class="placeholderinputOtherM"
type="text"
maxlength="6"
/>
</view> </view>
<view class="OtherLine"></view> <view class="OtherLine"></view>
<!-- 充值范围 --> <!-- 充值范围 -->
<view class="Recharge_"> <view class="Recharge_">
<!-- <image mode="widthFix" class="depositImg" src="../../static/img/depositIcon.png"></image> --> <!-- <image mode="widthFix" class="depositImg" src="../../static/img/depositIcon.png"></image> -->
<span>最大可充值金额:</span> <span>最大可充值金额:</span>
<span <span><span>3.00 ~ {{ RechargeMax }}</span></span>
><span>3.00 ~ {{ RechargeMax }}</span></span
>
</view> </view>
</view> </view>
<!-- 弹出层 --> <!-- 弹出层 -->
...@@ -192,42 +144,19 @@ ...@@ -192,42 +144,19 @@
<image src="../../../static/img/close.png" mode="aspectFit"></image> <image src="../../../static/img/close.png" mode="aspectFit"></image>
</view> </view>
<view class="RechargeInfo1"> 验证校园卡开卡手机号 </view> <view class="RechargeInfo1"> 验证校园卡开卡手机号 </view>
<van-field <van-field label-class="openCardPhonTxt" label="手机号:" maxlength="11" v-model="openCardPhon"
label-class="openCardPhonTxt" placeholder="校园卡开卡手机号" center :border="false">
label="手机号:"
maxlength="11"
v-model="openCardPhon"
placeholder="校园卡开卡手机号"
center
:border="false"
>
<view slot="right-icon" v-if="bankInfo_.accountType == 4"> <view slot="right-icon" v-if="bankInfo_.accountType == 4">
<view <view class="changPhone" style="display: flex; justify-content: center"
class="changPhone" @click="changePhone">变更手机号
style="display: flex; justify-content: center"
@click="changePhone"
>变更手机号
<van-icon name="arrow" /> <van-icon name="arrow" />
</view> </view>
</view> </view>
</van-field> </van-field>
<view style="width: 520rpx; height: 1rpx; background: #eeeeee"></view> <view style="width: 520rpx; height: 1rpx; background: #eeeeee"></view>
<van-field <van-field v-model="openCardPhonSms" label-class="openCardPhonSmsTxt" maxlength="6" label="验证码:"
v-model="openCardPhonSms" placeholder="输入短信验证码" center clearable :border="false">
label-class="openCardPhonSmsTxt" <van-button slot="button" size="small" type="primary" @click="SendSms">
maxlength="6"
label="验证码:"
placeholder="输入短信验证码"
center
clearable
:border="false"
>
<van-button
slot="button"
size="small"
type="primary"
@click="SendSms"
>
<div style="font-size: 28rpx">{{ CodeMsg }}</div> <div style="font-size: 28rpx">{{ CodeMsg }}</div>
</van-button> </van-button>
</van-field> </van-field>
...@@ -241,29 +170,18 @@ ...@@ -241,29 +170,18 @@
</uni-popup> </uni-popup>
<!-- 选择银行卡 --> <!-- 选择银行卡 -->
<view class="selectCard"> <view class="selectCard">
<van-popup <van-popup v-model="popshow" round position="bottom" :style="{ height: '30%' }">
v-model="popshow"
round
position="bottom"
:style="{ height: '30%' }"
>
<!-- 银行卡列表 --> <!-- 银行卡列表 -->
<view class="accountlist"> <view class="accountlist">
<!-- 切换绑定的一类卡列表 --> <!-- 切换绑定的一类卡列表 -->
<view class="showBindCardList"> <view class="showBindCardList">
<view class="choiceBox">选择付款账户</view> <view class="choiceBox">选择付款账户</view>
<view <view class="ListItem" @click="ChangeCardPay(item)" v-for="(item, index) in bindcardList"
class="ListItem" :key="index">
@click="ChangeCardPay(item)"
v-for="(item, index) in bindcardList"
:key="index"
>
<span style="padding-right: 10px">{{ item.bindCardName }} </span> <span style="padding-right: 10px">{{ item.bindCardName }} </span>
<span <span>尾号:{{
>尾号:{{
item.bindCardNo.slice(item.bindCardNo.length - 4) item.bindCardNo.slice(item.bindCardNo.length - 4)
}}</span }}</span>
>
<!-- <image class='BankListImg' src='../../../static/img/choiceBank.png'></image> --> <!-- <image class='BankListImg' src='../../../static/img/choiceBank.png'></image> -->
</view> </view>
</view> </view>
...@@ -274,27 +192,30 @@ ...@@ -274,27 +192,30 @@
</template> </template>
<script> <script>
import { Dialog, Toast } from "vant"; import {
import keyboardPackage from "@/components/keyboard-package/keyboard-package.vue"; Dialog,
import cityData from "@/common/js/city.js"; Toast
var gHost = "https://" + window.location.host; } from "vant";
if (window.location.protocol != "https:") { import keyboardPackage from "@/components/keyboard-package/keyboard-package.vue";
import cityData from "@/common/js/city.js";
var gHost = "https://" + window.location.host;
if (window.location.protocol != "https:") {
gHost = "https://fpdev.xiaopay.net"; gHost = "https://fpdev.xiaopay.net";
// gHost = "/api"; // gHost = "/api";
} }
let times = 0; let times = 0;
var limitClick = false; //禁止重复点击 var limitClick = false; //禁止重复点击
var sessionID = "", var sessionID = "",
userID = ""; userID = "";
var payCardNumber = ""; //一类卡号 var payCardNumber = ""; //一类卡号
var orderSerialNo = ""; //提现结果查询 指令号 var orderSerialNo = ""; //提现结果查询 指令号
var businessNo = "", var businessNo = "",
otpOrderNo = "", otpOrderNo = "",
mobileNo = ""; mobileNo = "";
var MyTimer = null; var MyTimer = null;
var fromType = 0; //0转账 1提现 var fromType = 0; //0转账 1提现
var opeType = 0; //0充值 1提现 手机号验证 var opeType = 0; //0充值 1提现 手机号验证
var bankInfo = { var bankInfo = {
acctNoArray: "", acctNoArray: "",
idNo: "", idNo: "",
schoolId: "", schoolId: "",
...@@ -302,12 +223,13 @@ var bankInfo = { ...@@ -302,12 +223,13 @@ var bankInfo = {
userId: "", userId: "",
sessionid: "", sessionid: "",
wechattype: 1, wechattype: 1,
}; };
/** let orderApi = window.location.origin;
/**
* 对象转拼接字符串 * 对象转拼接字符串
* @param {*} res Object 需要转换的数据对象 * @param {*} res Object 需要转换的数据对象
*/ */
function OforS(res) { function OforS(res) {
var resL = 0; var resL = 0;
var outS = ""; var outS = "";
for (var i in res) { for (var i in res) {
...@@ -319,8 +241,8 @@ function OforS(res) { ...@@ -319,8 +241,8 @@ function OforS(res) {
resL++; resL++;
} }
return outS; return outS;
} }
export default { export default {
components: { components: {
keyboardPackage, keyboardPackage,
}, },
...@@ -352,8 +274,7 @@ export default { ...@@ -352,8 +274,7 @@ export default {
bindCardNo: "", bindCardNo: "",
}, },
ImgUrl: this.$ImgUrl, ImgUrl: this.$ImgUrl,
MoneyList: [ MoneyList: [{
{
lable: "", lable: "",
value: 100, value: 100,
}, },
...@@ -369,10 +290,10 @@ export default { ...@@ -369,10 +290,10 @@ export default {
lable: "", lable: "",
value: 1000, value: 1000,
}, },
{ // {
lable: "其他金额", // lable: "其他金额",
value: "", // value: "",
}, // },
], ],
numberList: [], numberList: [],
tempFiles1: "../../static/img/idCardBg1.png", //上传身份证临时选择文件 tempFiles1: "../../static/img/idCardBg1.png", //上传身份证临时选择文件
...@@ -398,7 +319,7 @@ export default { ...@@ -398,7 +319,7 @@ export default {
RechargeSmsorderNoInfo: {}, //第三方合作交易标识 RechargeSmsorderNoInfo: {}, //第三方合作交易标识
}; };
}, },
onLoad: function (options) { onLoad: function(options) {
console.log(options); console.log(options);
// 初始化 // 初始化
userID = options["userID"] || ""; userID = options["userID"] || "";
...@@ -407,9 +328,13 @@ export default { ...@@ -407,9 +328,13 @@ export default {
bankInfo.sessionid = sessionID || ""; bankInfo.sessionid = sessionID || "";
this.QueryUserInfo(); this.QueryUserInfo();
}, },
created: function () {}, created: function() {},
mounted: function () {}, mounted: function() {},
onShow: function () { onShow: function() {
if (bankInfo.accountType == 4) {
// 渤海银行要判断是否有代扣签约
this.signStatusQuery();
}
if (bankInfo.userId) { if (bankInfo.userId) {
this.queryBankInfo(); this.queryBankInfo();
} }
...@@ -438,6 +363,7 @@ export default { ...@@ -438,6 +363,7 @@ export default {
}, },
// 验证码弹出框开启 // 验证码弹出框开启
toDeposit() { toDeposit() {
console.log(this.isOtherMoney, 'isOtherMoney')
if (this.isOtherMoney) { if (this.isOtherMoney) {
if (this.inputOtherM == "") { if (this.inputOtherM == "") {
uni.showModal({ uni.showModal({
...@@ -484,8 +410,7 @@ export default { ...@@ -484,8 +410,7 @@ export default {
$(".doBtnTx").html("提现"); $(".doBtnTx").html("提现");
opeType = 1; opeType = 1;
uni.navigateTo({ uni.navigateTo({
url: url: "../Reflect/Reflect?" +
"../Reflect/Reflect?" +
OforS({ OforS({
sessionID: sessionID, sessionID: sessionID,
userID: userID, userID: userID,
...@@ -500,8 +425,10 @@ export default { ...@@ -500,8 +425,10 @@ export default {
// 输入限制 // 输入限制
inputControl(e) { inputControl(e) {
let this_ = this; let this_ = this;
this_.MoneyIndex = -1;
this_.isOtherMoney = true;
let obj = e.detail; let obj = e.detail;
this.$nextTick(function () { this.$nextTick(function() {
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符 obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字而不是. obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的. obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的.
...@@ -530,7 +457,7 @@ export default { ...@@ -530,7 +457,7 @@ export default {
if (str.lastIndexOf(".") == str.length - 1) { if (str.lastIndexOf(".") == str.length - 1) {
this.inputOtherM = str.substring(0, str.length - 1); this.inputOtherM = str.substring(0, str.length - 1);
} }
this.$nextTick(function () { this.$nextTick(function() {
document.scrollingElement.scrollTo(0, this.scrollTop); document.scrollingElement.scrollTo(0, this.scrollTop);
}); });
}, },
...@@ -546,6 +473,41 @@ export default { ...@@ -546,6 +473,41 @@ export default {
this.CodeMsg = this.msCount + "s后获取"; this.CodeMsg = this.msCount + "s后获取";
} }
}, },
// 代扣状态查询
async signStatusQuery() {
let respes = await this.$http.post({
// url: "http://159.75.47.27:8091/bank-wechat/bohai/comprehensive/signStatusQuery",
url: orderApi + "/bank-wechat/bohai/comprehensive/signStatusQuery",
data: {
schoolId: bankInfo.schoolId, //学校id
userId: userID, //用户id
},
});
if (respes.code == "10000") {
console.log(respes, "respes");
if (respes.results.dkstatus != 1) { // 1已签约
Dialog.alert({
title: '使用说明',
message: '您暂未进行银行代扣签约,将影响电子校园卡的正常使用,请尽快前往签约',
theme: 'round-button',
confirmButtonText: '确认签约',
confirmButtonColor: '#2ddbb6',
className: 'signAlert'
}).then(() => {
// on confirm
jWeixin.miniProgram.navigateTo({
url: `/pages/SignProxyPay/main`,
});
})
.catch(() => {
// on cancel
});
}
} else {
Toast(respes.message || "代扣状态查询,请重试!");
throw new Error("代扣状态查询,请重试!");
}
},
// 充值验证获取验证码 // 充值验证获取验证码
async SendSms() { async SendSms() {
if (MyTimer) { if (MyTimer) {
...@@ -600,7 +562,7 @@ export default { ...@@ -600,7 +562,7 @@ export default {
headers: { headers: {
sessionid: sessionID, sessionid: sessionID,
}, },
success: function (res5) { success: function(res5) {
loading.clear(); loading.clear();
if (res5.code == "10000") { if (res5.code == "10000") {
this_.IntervalFun(); this_.IntervalFun();
...@@ -614,7 +576,7 @@ export default { ...@@ -614,7 +576,7 @@ export default {
}); });
} }
}, },
error: function (err) { error: function(err) {
loading.clear(); loading.clear();
}, },
}); });
...@@ -705,7 +667,7 @@ export default { ...@@ -705,7 +667,7 @@ export default {
headers: { headers: {
sessionid: sessionID, sessionid: sessionID,
}, },
success: function (res5) { success: function(res5) {
uni.hideLoading(); uni.hideLoading();
if (res5.code == "10000") { if (res5.code == "10000") {
this_.close(); this_.close();
...@@ -717,9 +679,9 @@ export default { ...@@ -717,9 +679,9 @@ export default {
let accountNo = this_.bankInfo_.bindCardNo; let accountNo = this_.bankInfo_.bindCardNo;
accountNo = accountNo.slice(accountNo.length - 4, accountNo.length); accountNo = accountNo.slice(accountNo.length - 4, accountNo.length);
let minutes_ = let minutes_ =
thiTime.getMinutes().toString().length < 2 thiTime.getMinutes().toString().length < 2 ?
? thiTime.getMinutes().toString().padStart(2, "0") thiTime.getMinutes().toString().padStart(2, "0") :
: thiTime.getMinutes().toString(); thiTime.getMinutes().toString();
switch (bankInfo.accountType) { switch (bankInfo.accountType) {
case 3: case 3:
if (thiTime.getMinutes() + 20 >= 60) { if (thiTime.getMinutes() + 20 >= 60) {
...@@ -732,7 +694,7 @@ export default { ...@@ -732,7 +694,7 @@ export default {
title: "充值申请已提交", title: "充值申请已提交",
content: "银行处理需要1-20分钟时间,充值结果以余额查询为准。", content: "银行处理需要1-20分钟时间,充值结果以余额查询为准。",
showCancel: false, showCancel: false,
success: function () { success: function() {
uni.navigateTo({ uni.navigateTo({
url: `../../recharging/recharging?bankName=${ url: `../../recharging/recharging?bankName=${
this_.bankInfo_.bindCardName this_.bankInfo_.bindCardName
...@@ -762,7 +724,7 @@ export default { ...@@ -762,7 +724,7 @@ export default {
weui.topTips(res5.message); weui.topTips(res5.message);
} }
}, },
error: function (err) { error: function(err) {
uni.hideLoading(); uni.hideLoading();
}, },
}); });
...@@ -791,7 +753,7 @@ export default { ...@@ -791,7 +753,7 @@ export default {
headers: { headers: {
sessionid: sessionID, sessionid: sessionID,
}, },
success: function (res5) { success: function(res5) {
loading.clear(); loading.clear();
if (res5.code == "10000") { if (res5.code == "10000") {
let appStatus = res5.results.appStatus; let appStatus = res5.results.appStatus;
...@@ -815,7 +777,7 @@ export default { ...@@ -815,7 +777,7 @@ export default {
}); });
} }
}, },
error: function (err) { error: function(err) {
loading.clear(); loading.clear();
}, },
}); });
...@@ -827,9 +789,9 @@ export default { ...@@ -827,9 +789,9 @@ export default {
title: "系统提示", title: "系统提示",
message: "复制成功!", message: "复制成功!",
}); });
this.$nextTick(function () { this.$nextTick(function() {
let clipboard = new ClipboardJS("#cardNumright", { let clipboard = new ClipboardJS("#cardNumright", {
text: function () { text: function() {
return value; return value;
}, },
}); });
...@@ -839,22 +801,20 @@ export default { ...@@ -839,22 +801,20 @@ export default {
OtherMoney() { OtherMoney() {
this.depotMoneyother = true; this.depotMoneyother = true;
}, },
// 选择其它金额
async depotOtherMoney() {
console.log('其它金额')
},
// 快捷选择金额 // 快捷选择金额
async depotMoney(value, MoneyIndex) { async depotMoney(value, MoneyIndex) {
console.log(value);
if (!value) {
this.isOtherMoney = true;
this.Money = "";
this.MoneyIndex = MoneyIndex;
return;
}
this.isOtherMoney = false; this.isOtherMoney = false;
this.inputOtherM = "";
this.Money = parseInt(value); this.Money = parseInt(value);
this.MoneyIndex = MoneyIndex; this.MoneyIndex = MoneyIndex;
}, },
//按钮操作 //按钮操作
HideHTML(dom, type) { HideHTML(dom, type) {
this.$nextTick(function () { this.$nextTick(function() {
if (type == 0) { if (type == 0) {
$("." + dom).css("display", "none"); $("." + dom).css("display", "none");
} else { } else {
...@@ -904,7 +864,7 @@ export default { ...@@ -904,7 +864,7 @@ export default {
bindMedium: item.bindCardNo, bindMedium: item.bindCardNo,
bindMediumName: item.bindCardName, bindMediumName: item.bindCardName,
}, },
success: function (res5) { success: function(res5) {
loading.hide(); loading.hide();
if (res5.code == "10000") { if (res5.code == "10000") {
this_.queryUserBankInfo(); this_.queryUserBankInfo();
...@@ -914,7 +874,7 @@ export default { ...@@ -914,7 +874,7 @@ export default {
} }
this_.popshow = false; this_.popshow = false;
}, },
error: function (err) { error: function(err) {
loading.hide(); loading.hide();
}, },
}); });
...@@ -934,7 +894,7 @@ export default { ...@@ -934,7 +894,7 @@ export default {
sessionid: sessionID, sessionid: sessionID,
wechattype: 1, wechattype: 1,
}, },
success: function (res4) { success: function(res4) {
loading.hide(); loading.hide();
if (res4.code == "10000") { if (res4.code == "10000") {
this_.bindcardList = res4.results; this_.bindcardList = res4.results;
...@@ -943,7 +903,7 @@ export default { ...@@ -943,7 +903,7 @@ export default {
weui.topTips(res4.message); weui.topTips(res4.message);
} }
}, },
error: function (err) { error: function(err) {
loading.hide(); loading.hide();
}, },
}); });
...@@ -984,7 +944,7 @@ export default { ...@@ -984,7 +944,7 @@ export default {
sessionid: sessionID, sessionid: sessionID,
wechattype: 1, wechattype: 1,
}, },
success: function (res3) { success: function(res3) {
// loading.hide(); // loading.hide();
if (res3.code == "10000") { if (res3.code == "10000") {
if (bankInfo.accountType == 4) { if (bankInfo.accountType == 4) {
...@@ -1022,10 +982,10 @@ export default { ...@@ -1022,10 +982,10 @@ export default {
weui.topTips(res3.message); weui.topTips(res3.message);
} }
}, },
error: function (err) { error: function(err) {
// loading.hide(); // loading.hide();
}, },
complete: function (XMLHttpRequest, status) { complete: function(XMLHttpRequest, status) {
// loading.hide(); // loading.hide();
if (status == "timeout") { if (status == "timeout") {
weui.topTips("请求超时,余额查询失败"); weui.topTips("请求超时,余额查询失败");
...@@ -1047,7 +1007,7 @@ export default { ...@@ -1047,7 +1007,7 @@ export default {
sessionid: sessionID, sessionid: sessionID,
wechattype: 1, wechattype: 1,
}, },
success: function (res2) { success: function(res2) {
if (res2.code == "10000") { if (res2.code == "10000") {
if (!res2.results) { if (!res2.results) {
weui.topTips("获取用户银行信息失败!"); weui.topTips("获取用户银行信息失败!");
...@@ -1064,7 +1024,7 @@ export default { ...@@ -1064,7 +1024,7 @@ export default {
weui.topTips(res2.message); weui.topTips(res2.message);
} }
}, },
error: function (err) { error: function(err) {
// loading.hide(); // loading.hide();
}, },
}); });
...@@ -1087,7 +1047,7 @@ export default { ...@@ -1087,7 +1047,7 @@ export default {
sessionid: sessionID, sessionid: sessionID,
wechattype: 1, wechattype: 1,
}, },
success: function (res1) { success: function(res1) {
loading.clear(); loading.clear();
if (res1.code == "10000") { if (res1.code == "10000") {
bankInfo.schoolId = res1.results.schoolid; bankInfo.schoolId = res1.results.schoolid;
...@@ -1108,30 +1068,30 @@ export default { ...@@ -1108,30 +1068,30 @@ export default {
}, 1500); }, 1500);
} }
}, },
error: function (err) { error: function(err) {
loading.clear(); loading.clear();
}, },
}); });
}, },
}, },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
html, html,
body, body,
page { page {
width: 750rpx; width: 750rpx;
background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%); background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
} }
.changPhone { .changPhone {
font-size: 14px; font-size: 14px;
color: #39f; color: #39f;
text-align: right; text-align: right;
} }
.showBindCardList { .showBindCardList {
.choiceBox { .choiceBox {
text-align: center; text-align: center;
font-weight: bold; font-weight: bold;
...@@ -1149,18 +1109,18 @@ page { ...@@ -1149,18 +1109,18 @@ page {
position: relative; position: relative;
text-align: center; text-align: center;
} }
} }
.SubmittedSuccessfully { .SubmittedSuccessfully {
width: 400rpx !important; width: 400rpx !important;
height: 200rpx !important; height: 200rpx !important;
margin: 0 auto !important; margin: 0 auto !important;
background: #000000; background: #000000;
opacity: 0.8; opacity: 0.8;
border-radius: 8rpx; border-radius: 8rpx;
} }
.cardNum { .cardNum {
width: 574rpx; width: 574rpx;
margin: 0 auto; margin: 0 auto;
display: flex; display: flex;
...@@ -1180,9 +1140,9 @@ page { ...@@ -1180,9 +1140,9 @@ page {
text-decoration: underline; text-decoration: underline;
color: #ffffff; color: #ffffff;
} }
} }
.RechargeDetailed { .RechargeDetailed {
text-align: center; text-align: center;
// width: 118rpx; // width: 118rpx;
height: 32rpx; height: 32rpx;
...@@ -1193,15 +1153,15 @@ page { ...@@ -1193,15 +1153,15 @@ page {
text-decoration: underline; text-decoration: underline;
color: #36a8ff; color: #36a8ff;
margin-top: 50rpx; margin-top: 50rpx;
} }
.contentBox { .contentBox {
width: 670rpx; width: 670rpx;
height: 376rpx; height: 376rpx;
margin: 0 auto; margin: 0 auto;
} }
.contentDiv { .contentDiv {
height: 100%; height: 100%;
// margin-top: 36rpx; // margin-top: 36rpx;
border-radius: 15rpx; border-radius: 15rpx;
...@@ -1211,16 +1171,16 @@ page { ...@@ -1211,16 +1171,16 @@ page {
position: relative; position: relative;
top: 36rpx; top: 36rpx;
} }
.HidenText { .HidenText {
width: 574rpx; width: 574rpx;
margin: 0 auto; margin: 0 auto;
padding-top: 88rpx; padding-top: 88rpx;
} }
.HidenText, .HidenText,
.Balance { .Balance {
padding-left: 46rpx; padding-left: 46rpx;
padding-right: 40rpx; padding-right: 40rpx;
display: flex; display: flex;
...@@ -1228,9 +1188,9 @@ page { ...@@ -1228,9 +1188,9 @@ page {
font-size: 28rpx; font-size: 28rpx;
color: #ffffff; color: #ffffff;
} }
.Balance { .Balance {
width: 574rpx; width: 574rpx;
margin: 0 auto; margin: 0 auto;
margin-top: 20rpx; margin-top: 20rpx;
...@@ -1239,9 +1199,9 @@ page { ...@@ -1239,9 +1199,9 @@ page {
font-family: PingFang SC; font-family: PingFang SC;
font-weight: bold; font-weight: bold;
color: #ffffff; color: #ffffff;
} }
.Recharge { .Recharge {
// height: 30rpx; // height: 30rpx;
font-size: 32rpx; font-size: 32rpx;
font-family: PingFang SC; font-family: PingFang SC;
...@@ -1263,9 +1223,9 @@ page { ...@@ -1263,9 +1223,9 @@ page {
display: inline-block; display: inline-block;
margin-left: 16rpx; margin-left: 16rpx;
} }
} }
.headview { .headview {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
// padding-left: 40rpx; // padding-left: 40rpx;
...@@ -1274,9 +1234,9 @@ page { ...@@ -1274,9 +1234,9 @@ page {
padding-top: 36rpx; padding-top: 36rpx;
width: 574rpx; width: 574rpx;
margin: 0 auto; margin: 0 auto;
} }
.headview .schoolname { .headview .schoolname {
// width: 252rpx; // width: 252rpx;
height: 50rpx; height: 50rpx;
font-size: 36rpx; font-size: 36rpx;
...@@ -1284,9 +1244,9 @@ page { ...@@ -1284,9 +1244,9 @@ page {
font-weight: 500; font-weight: 500;
color: #ffffff; color: #ffffff;
line-height: 50rpx; line-height: 50rpx;
} }
.headview .IconCls { .headview .IconCls {
width: 170rpx; width: 170rpx;
height: 48rpx; height: 48rpx;
background: #20946d; background: #20946d;
...@@ -1297,23 +1257,23 @@ page { ...@@ -1297,23 +1257,23 @@ page {
color: #ffffff; color: #ffffff;
line-height: 48rpx; line-height: 48rpx;
text-align: center; text-align: center;
} }
.MoneyBox { .MoneyBox {
flex-wrap: wrap; flex-wrap: wrap;
height: auto; height: auto;
color: #888888; color: #888888;
width: 686rpx; width: 686rpx;
margin: 0 auto; margin: 0 auto;
overflow: hidden; overflow: hidden;
} }
.choiceClass { .choiceClass {
background: rgba(39, 266, 148, 0.1) !important; background: rgba(39, 266, 148, 0.1) !important;
color: #28d79c; color: #28d79c;
} }
.MoneyBox view { .MoneyBox view {
width: 220rpx; width: 220rpx;
height: 120rpx; height: 120rpx;
background: #ffffff; background: #ffffff;
...@@ -1325,17 +1285,17 @@ page { ...@@ -1325,17 +1285,17 @@ page {
box-shadow: 0px 9rpx 23rpx 0rpx rgba(25, 26, 88, 0.07); box-shadow: 0px 9rpx 23rpx 0rpx rgba(25, 26, 88, 0.07);
margin-right: 2px; margin-right: 2px;
float: left; float: left;
} }
.depotMoney .value { .depotMoney .value {
font-size: 45rpx; font-size: 45rpx;
font-family: PingFangSC-Semibold, PingFang SC; font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600; font-weight: 600;
line-height: 120rpx; line-height: 120rpx;
text-align: center; text-align: center;
} }
.depotMoney .tips { .depotMoney .tips {
// width: 79rpx; // width: 79rpx;
// height: 33rpx; // height: 33rpx;
// background: linear-gradient(180deg, #FA6400 0%, #FD9D00 100%); // background: linear-gradient(180deg, #FA6400 0%, #FD9D00 100%);
...@@ -1348,9 +1308,9 @@ page { ...@@ -1348,9 +1308,9 @@ page {
// position: absolute; // position: absolute;
// right: 0rpx; // right: 0rpx;
// line-height: 33rpx; // line-height: 33rpx;
} }
.OtherMoney { .OtherMoney {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
// color: #999999; // color: #999999;
...@@ -1379,9 +1339,9 @@ page { ...@@ -1379,9 +1339,9 @@ page {
input { input {
height: 100%; height: 100%;
} }
} }
.OtherMoney view:nth-child(2) { .OtherMoney view:nth-child(2) {
// width: 30rpx; // width: 30rpx;
// height: 30rpx; // height: 30rpx;
// background: #F0F0F0; // background: #F0F0F0;
...@@ -1390,16 +1350,16 @@ page { ...@@ -1390,16 +1350,16 @@ page {
// line-height: 30rpx; // line-height: 30rpx;
// margin-top: 7rpx; // margin-top: 7rpx;
// margin-left: 5rpx; // margin-left: 5rpx;
} }
.payType { .payType {
height: 98rpx; height: 98rpx;
line-height: 98rpx; line-height: 98rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.payType view:nth-child(1) { .payType view:nth-child(1) {
// width: 120rpx; // width: 120rpx;
height: 42rpx; height: 42rpx;
font-size: 32rpx; font-size: 32rpx;
...@@ -1407,9 +1367,9 @@ page { ...@@ -1407,9 +1367,9 @@ page {
font-weight: 500; font-weight: 500;
color: #888888; color: #888888;
line-height: 98rpx; line-height: 98rpx;
} }
.payType view::nth-child(2) { .payType view::nth-child(2) {
width: 225rpx; width: 225rpx;
height: 45rpx; height: 45rpx;
font-size: 32rpx; font-size: 32rpx;
...@@ -1417,9 +1377,9 @@ page { ...@@ -1417,9 +1377,9 @@ page {
font-weight: bold; font-weight: bold;
color: #333333; color: #333333;
line-height: 45rpx; line-height: 45rpx;
} }
.arrow { .arrow {
transform: rotate(-45deg); transform: rotate(-45deg);
top: -3rpx; top: -3rpx;
border: solid #999999; border: solid #999999;
...@@ -1427,18 +1387,18 @@ page { ...@@ -1427,18 +1387,18 @@ page {
display: inline-block; display: inline-block;
padding: 8rpx; padding: 8rpx;
position: relative; position: relative;
} }
@media (min-height: 650px) { @media (min-height: 650px) {
.bottomdiv { .bottomdiv {
position: fixed; position: fixed;
left: 0; left: 0;
right: 0; right: 0;
bottom: 30rpx; bottom: 30rpx;
} }
} }
.DepositID { .DepositID {
width: 630rpx; width: 630rpx;
height: 92rpx; height: 92rpx;
background: #04ba73; background: #04ba73;
...@@ -1446,18 +1406,18 @@ page { ...@@ -1446,18 +1406,18 @@ page {
margin: 0 auto; margin: 0 auto;
text-align: center; text-align: center;
bottom: 30rpx; bottom: 30rpx;
} }
.DepositID span { .DepositID span {
height: 50rpx; height: 50rpx;
font-size: 36rpx; font-size: 36rpx;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
color: #ffffff; color: #ffffff;
line-height: 92rpx; line-height: 92rpx;
} }
.switchbankCard { .switchbankCard {
text-align: center; text-align: center;
/* width: 205px; */ /* width: 205px; */
// height: 28rpx; // height: 28rpx;
...@@ -1467,9 +1427,9 @@ page { ...@@ -1467,9 +1427,9 @@ page {
text-decoration: underline; text-decoration: underline;
color: #268ef8; color: #268ef8;
margin-top: 23rpx; margin-top: 23rpx;
} }
.RechargeConfirmationBox { .RechargeConfirmationBox {
position: fixed; position: fixed;
left: 0; left: 0;
right: 0; right: 0;
...@@ -1564,9 +1524,9 @@ page { ...@@ -1564,9 +1524,9 @@ page {
} }
} }
} }
} }
.closePhoneBox { .closePhoneBox {
// width: 35rpx; // width: 35rpx;
height: 35rpx; height: 35rpx;
position: relative; position: relative;
...@@ -1580,9 +1540,9 @@ page { ...@@ -1580,9 +1540,9 @@ page {
position: relative; position: relative;
right: 10rpx; right: 10rpx;
} }
} }
.doBtnTx { .doBtnTx {
width: 506rpx; width: 506rpx;
height: 92rpx; height: 92rpx;
background: #04ba73; background: #04ba73;
...@@ -1594,46 +1554,46 @@ page { ...@@ -1594,46 +1554,46 @@ page {
right: 0; right: 0;
margin: 0 auto; margin: 0 auto;
bottom: 38rpx; bottom: 38rpx;
} }
.PhoneNum, .PhoneNum,
.VerifyCode { .VerifyCode {
width: 506rpx; width: 506rpx;
height: 80rpx; height: 80rpx;
line-height: 60rpx; line-height: 60rpx;
background: #f7f6fb; background: #f7f6fb;
margin: 0 auto; margin: 0 auto;
margin-top: 20rpx; margin-top: 20rpx;
} }
.VerifyCode { .VerifyCode {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.VerifyCode input { .VerifyCode input {
width: 200rpx; width: 200rpx;
} }
.CodeMsg { .CodeMsg {
color: #01bc73; color: #01bc73;
background: #f7f6fb; background: #f7f6fb;
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
line-height: 80rpx; line-height: 80rpx;
letter-spacing: 3rpx; letter-spacing: 3rpx;
} }
.placeholderInput { .placeholderInput {
color: #aaaaaa; color: #aaaaaa;
font-size: 42rpx; font-size: 42rpx;
font-weight: 500; font-weight: 500;
letter-spacing: 3rpx; letter-spacing: 3rpx;
// padding-left: 50rpx; // padding-left: 50rpx;
height: 80rpx; height: 80rpx;
} }
.OtherTitle { .OtherTitle {
height: 67rpx; height: 67rpx;
font-size: 48rpx; font-size: 48rpx;
font-family: PingFangSC-Semibold, PingFang SC; font-family: PingFangSC-Semibold, PingFang SC;
...@@ -1642,55 +1602,55 @@ page { ...@@ -1642,55 +1602,55 @@ page {
line-height: 67rpx; line-height: 67rpx;
padding-top: 60rpx; padding-top: 60rpx;
} }
.inputOtherM { .inputOtherM {
display: flex; display: flex;
height: 100rpx; height: 100rpx;
margin-top: 40rpx; margin-top: 40rpx;
} }
.inputOtherM input { .inputOtherM input {
border: none; border: none;
outline: none; outline: none;
height: 50rpx; height: 50rpx;
padding-left: 16rpx; padding-left: 16rpx;
font-size: 72rpx; font-size: 72rpx;
font-weight: 600; font-weight: 600;
} }
.inputOtherM span:nth-child(1) { .inputOtherM span:nth-child(1) {
width: 72rpx; width: 72rpx;
font-size: 80rpx; font-size: 80rpx;
font-family: PingFangSC-Semibold, PingFang SC; font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600; font-weight: 600;
color: #010101; color: #010101;
line-height: 100rpx; line-height: 100rpx;
} }
.OtherLine { .OtherLine {
width: 631rpx; width: 631rpx;
height: 1rpx; height: 1rpx;
background-color: #cccccc; background-color: #cccccc;
margin-top: 19rpx; margin-top: 19rpx;
} }
.depositbox { .depositbox {
margin-top: 31rpx; margin-top: 31rpx;
height: 30rpx; height: 30rpx;
line-height: 30rpx; line-height: 30rpx;
} }
.depositImg { .depositImg {
width: 24rpx; width: 24rpx;
height: 24rpx; height: 24rpx;
vertical-align: middle; vertical-align: middle;
margin-right: 8rpx; margin-right: 8rpx;
position: relative; position: relative;
top: -2rpx; top: -2rpx;
} }
.Recharge_ { .Recharge_ {
height: 40rpx; height: 40rpx;
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
...@@ -1698,16 +1658,16 @@ page { ...@@ -1698,16 +1658,16 @@ page {
color: #333333; color: #333333;
line-height: 40rpx; line-height: 40rpx;
margin-top: 40rpx; margin-top: 40rpx;
} }
.Recharge_ span:nth-child(2) { .Recharge_ span:nth-child(2) {
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC; font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600; font-weight: 600;
color: #fa6400; color: #fa6400;
} }
.placeholderinputOtherM { .placeholderinputOtherM {
height: 50rpx; height: 50rpx;
// font-family: PingFangSC-Semibold, PingFang SC; // font-family: PingFangSC-Semibold, PingFang SC;
// font-weight: 600; // font-weight: 600;
...@@ -1718,14 +1678,14 @@ page { ...@@ -1718,14 +1678,14 @@ page {
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 500; font-weight: 500;
color: #888888; color: #888888;
} }
// 异常处理 // 异常处理
.RechargeException { .RechargeException {
padding-top: 20rpx; padding-top: 20rpx;
} }
.weui-label { .weui-label {
// width: 118rpx; // width: 118rpx;
height: 42rpx; height: 42rpx;
font-size: 30rpx; font-size: 30rpx;
...@@ -1735,9 +1695,9 @@ page { ...@@ -1735,9 +1695,9 @@ page {
line-height: 42rpx; line-height: 42rpx;
font-weight: bold; font-weight: bold;
margin-left: 30rpx; margin-left: 30rpx;
} }
.tiptext { .tiptext {
height: 1.06rem; height: 1.06rem;
font-size: 0.75rem; font-size: 0.75rem;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
...@@ -1746,9 +1706,9 @@ page { ...@@ -1746,9 +1706,9 @@ page {
line-height: 1.06rem; line-height: 1.06rem;
margin-bottom: 0.625rem; margin-bottom: 0.625rem;
text-align: center; text-align: center;
} }
.bottomDetail { .bottomDetail {
width: 628rpx; width: 628rpx;
height: 88rpx; height: 88rpx;
color: white; color: white;
...@@ -1761,37 +1721,37 @@ page { ...@@ -1761,37 +1721,37 @@ page {
line-height: 88rpx; line-height: 88rpx;
margin-top: 84rpx; margin-top: 84rpx;
} }
.RechargeException input::placeholder { .RechargeException input::placeholder {
color: #a1a4a8; color: #a1a4a8;
} }
.RechargeException .weui-cell { .RechargeException .weui-cell {
height: 4rem; height: 4rem;
padding: 0 !important; padding: 0 !important;
} }
.idCardPhoto1, .idCardPhoto1,
.idCardPhoto2 { .idCardPhoto2 {
width: 388rpx; width: 388rpx;
height: 224rpx; height: 224rpx;
margin: 0 auto; margin: 0 auto;
margin-top: 20rpx; margin-top: 20rpx;
} }
.idCardPhoto1 image, .idCardPhoto1 image,
.idCardPhoto2 image { .idCardPhoto2 image {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative; position: relative;
} }
.weui-toptips_success { .weui-toptips_success {
background-color: #03bc73 !important; background-color: #03bc73 !important;
} }
.positionCam { .positionCam {
height: 32rpx; height: 32rpx;
font-size: 22rpx; font-size: 22rpx;
font-family: PingFang-SC-Medium, PingFang-SC; font-family: PingFang-SC-Medium, PingFang-SC;
...@@ -1801,9 +1761,9 @@ page { ...@@ -1801,9 +1761,9 @@ page {
text-align: center; text-align: center;
position: relative; position: relative;
top: -29px; top: -29px;
} }
.BgCoverBox { .BgCoverBox {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
position: fixed; position: fixed;
...@@ -1812,18 +1772,36 @@ page { ...@@ -1812,18 +1772,36 @@ page {
z-index: 10; z-index: 10;
background: #000000; background: #000000;
opacity: 0.5; opacity: 0.5;
} }
.hideListCover { .hideListCover {
max-height: 50vh; max-height: 50vh;
overflow-y: auto; overflow-y: auto;
padding: 0; padding: 0;
} }
.bottomDiv { .bottomDiv {
font-weight: bold; font-weight: bold;
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
border-bottom: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6;
} }
/deep/ .signAlert {
/deep/ .van-dialog__message {
line-height: 60rpx;
}
/deep/ .signAlert .van-dialog__confirm {
width: 200rpx !important;
flex: none !important;
margin: 0 auto;
}
}
/deep/ uni-input.otherMoneyInput {
height: 120rpx;
line-height: 120rpx;
font-weight: 600;
}
</style> </style>
...@@ -97,7 +97,8 @@ ...@@ -97,7 +97,8 @@
> >
</view> </view>
<!-- 充值其它金额 --> <!-- 充值其它金额 -->
<view class="OtherMoney" v-if="isOtherMoney"> <!-- <view class="OtherMoney" v-if="isOtherMoney"> -->
<view class="OtherMoney">
<span></span> <span></span>
<input <input
v-model="inputOtherM" v-model="inputOtherM"
...@@ -321,10 +322,6 @@ export default { ...@@ -321,10 +322,6 @@ export default {
lable: "", lable: "",
value: 1000, value: 1000,
}, },
{
lable: "其他金额",
value: "",
},
], ],
numberList: [], numberList: [],
tempFiles1: "../../static/img/idCardBg1.png", //上传身份证临时选择文件 tempFiles1: "../../static/img/idCardBg1.png", //上传身份证临时选择文件
...@@ -453,6 +450,8 @@ export default { ...@@ -453,6 +450,8 @@ export default {
// 输入限制 // 输入限制
inputControl(e) { inputControl(e) {
let this_ = this; let this_ = this;
this_.MoneyIndex = -1;
this_.isOtherMoney = true;
let obj = e.detail; let obj = e.detail;
this.$nextTick(function () { this.$nextTick(function () {
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符 obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
...@@ -636,14 +635,15 @@ export default { ...@@ -636,14 +635,15 @@ export default {
}, },
// 快捷选择金额 // 快捷选择金额
async depotMoney(value, MoneyIndex) { async depotMoney(value, MoneyIndex) {
console.log(value); // console.log(value);
if (!value) { // if (!value) {
this.isOtherMoney = true; // this.isOtherMoney = true;
this.Money = ""; // this.Money = "";
this.MoneyIndex = MoneyIndex; // this.MoneyIndex = MoneyIndex;
return; // return;
} // }
this.isOtherMoney = false; this.isOtherMoney = false;
this.inputOtherM = "";
this.Money = parseInt(value); this.Money = parseInt(value);
this.MoneyIndex = MoneyIndex; this.MoneyIndex = MoneyIndex;
}, },
......
<template>
<view class="contaner">
<view class="headerbox">
<image src="../../static/ReceiveMoney.png" mode="aspectFit"></image>
</view>
<view class="LoginBox">
<view class="phon">
<input type="number" class="phonNumber" :adjust-position="true" maxlength="11" v-model="phonNumber"
value="" placeholder="请输入手机号" placeholder-class="placeholder" />
</view>
<view class="phon" style="margin-top: 50rpx;">
<input type="text" class="phonNumber" :adjust-position="true" v-model="studentName" value=""
placeholder="请输入学生姓名" placeholder-class="placeholder" />
</view>
<view class="VerificationCode">
<input type="number" class="code" value="" :adjust-position="true" maxlength="6"
v-model="VerificationCode" placeholder="请输入验证码" placeholder-class="placeholder" />
<view class="sendBtn" @click="getVerificationCode">
{{timer?second+'s后获取':'获取验证码'}}
</view>
</view>
<view class="ReceiveMoney" @tap="ReceiveMoney">
领取红包
</view>
</view>
<!-- 温馨提示 -->
<view class="activity">
</view>
</view>
</template>
<script>
export default {
name: "ReceiveMoney",
data() {
return {
phonNumber: "",
VerificationCode: "",
studentName: "",
timer: null,
second: 3
}
},
methods: {
// 获取验证码
async getVerificationCode() {
try {
if (!this.phonNumber) {
this.$toast("请输入手机号码!");
return
}
if (this.timer) {
return
}
this.$toast.loading({
duration: 0,
message: '请稍后...',
forbidClick: true,
loadingType: 'spinner',
});
this.timer = setInterval(() => {
this.second--;
if (!this.second) {
clearInterval(this.timer);
// 手动清除 Toast
this.$toast.clear();
this.second = 60
this.timer = null
}
}, 1000);
} catch (e) {
//TODO handle the exception
console.log(e);
}
},
// 验证手机号码领取红包
async ReceiveMoney() {
try {
if (!this.phonNumber) {
this.$toast("请输入手机号码!");
return
}
if (!this.VerificationCode) {
this.$toast("请输入验证码!");
return
}
this.$toast.loading({
duration: 3000,
message: '请稍后...',
forbidClick: true,
loadingType: 'spinner',
});
await new Promise((res, rej) => {
setTimeout(() => {
res()
}, 3000)
})
await this.$dialog.alert({
title: '系统提示',
message: '领取成功!',
theme: 'round-button',
});
if (typeof WeixinJSBridge !== 'undefined') {
WeixinJSBridge.call('closeWindow');
} else {
window.opener = null;
window.close()
}
} catch (e) {
//TODO handle the exception
console.warn("----", e);
}
}
}
}
</script>
<style>
page {
width: 750pxr;
height: 100vh;
background: linear-gradient(0deg, #790003 0%, #BD000B 100%);
position: relative;
}
.headerbox {
width: 750rpx;
height: 268rpx;
}
.headerbox image {
width: 100%;
height: 100%;
position: relative;
}
.LoginBox {
width: 570rpx;
height: 450rpx;
margin: 0 auto;
position: absolute;
left: 0;
right: 0;
top: 404rpx;
}
.placeholder {
/* width: 310rpx; */
font-size: 30rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #999999;
/* padding-left: 31rpx; */
}
.phonNumber {
/* width: 570rpx; */
height: 100rpx;
background: #FFFFFF;
border-radius: 8rpx;
padding-left: 31rpx;
}
.VerificationCode {
display: flex;
justify-content: space-between;
margin-top: 50rpx;
}
.code {
width: 350rpx;
height: 100rpx;
background: #FFFFFF;
border-radius: 8rpx;
padding-left: 31rpx;
}
.sendBtn {
width: 170rpx;
height: 100rpx;
background: #FFE49C;
border-radius: 8rpx;
line-height: 100rpx;
text-align: center;
font-size: 28rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #222222;
}
.ReceiveMoney {
width: 570rpx;
height: 100rpx;
background: #FFC948;
border-radius: 8rpx;
line-height: 100rpx;
text-align: center;
font-size: 36rpx;
font-family: Source Han Sans CN;
font-weight: 500;
color: #222222;
margin-top: 100rpx;
}
</style>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<text class="name">年级班级:</text> <text class="name">年级班级:</text>
<text class="value">{{ChargeProDetail.userGrade||""}} {{ChargeProDetail.userClass||""}}</text> <text class="value">{{ChargeProDetail.userGrade||""}} {{ChargeProDetail.userClass||""}}</text>
</view> </view>
<view class="rowInfo"> <view class="rowInfo" v-if="false">
<text class="name">订单编号:</text> <text class="name">订单编号:</text>
<text class="value">{{ChargeProDetail.tradeId||""}}</text> <text class="value">{{ChargeProDetail.tradeId||""}}</text>
</view> </view>
...@@ -164,6 +164,12 @@ ...@@ -164,6 +164,12 @@
if (options.PaymentRsults) { if (options.PaymentRsults) {
this_.dialogShow = true this_.dialogShow = true
this.PaymentRsults = parseInt(options.PaymentRsults); this.PaymentRsults = parseInt(options.PaymentRsults);
if (this.PaymentRsults == 1) {
// 支付成功返回交费项目列表
setTimeout(() => {
this_.dialogClosed()
}, 3000)
}
// 上报支付结果 // 上报支付结果
this.returnPaymentResult(uni.getStorageSync("prepayId").tradeId, this.PaymentRsults) this.returnPaymentResult(uni.getStorageSync("prepayId").tradeId, this.PaymentRsults)
} }
......
<template>
<view class="tainer">
<van-dialog v-model="dialogShow" :show-confirm-button="false" :show-cancel-button="false"
:closeOnClickOverlay="true">
<view class="OneExpeditingBox">
<image style="width: 88rpx;height: 88rpx;" mode='widthFix' :src="ImgUrl+'StudentPayment/Tips.png'">
</image>
<view class="title1">
是否发送信息
</view>
<view class="title2">
给未交纳费用的家长发送信息,提醒其
交纳费用?
</view>
<view class="" style="background: #E6E6E6;height: 1rpx; margin-top: 30rpx;">
</view>
<view class="dialogBtnGrou">
<view class="cancelBtn" @click="dialogShow=false">
取消
</view>
<view class="" style="background: #E6E6E6;width: 1rpx;">
</view>
<view class="confirmBtn" @click="OneExpediting(OneExpeditingData)">
确认
</view>
</view>
</view>
</van-dialog>
<van-tabs ref="tabs" title-inactive-color="#999999" title-active-color="#333333" sticky animated
v-model:active="active" swipeable color="#01CB88" background="#FFFFFF" line-width="30px" line-height="4px"
@change="PayProjectTab">
<van-tab :title="vanTab[0]" title-class="PayProjectTab PayProjectList">
<!-- 收费项目 -->
<view class="ListBox">
<view class="" v-if="ChargePaymentPageList.length>0">
<view class="container ProjectList" v-for="(item,index) in ChargePaymentPageList" :key="index">
<view class="listitem top" @tap="PayProgressDetails(item)">
<view class="title">
{{item.chargeName}}
</view>
</view>
<view class="hairline"
style="width: 620rpx;height: 1rpx;background-color: #E6E6E6;margin: 0 auto;margin-top: 28rpx;">
</view>
<view class="contentTxt" @tap="PayProgressDetails(item)">
<view class="left">
<text>未交纳人数:</text>
<text>{{item.nopayNum}}</text>
</view>
<view class="right">
<text>已交纳人数:</text>
<text>{{item.paiedNum}}</text>
</view>
</view>
<view class="listitem botto" style="align-items: baseline;">
<van-icon name="clock-o" /> <text class="Tips"
@tap="PayProgressDetails(item)">{{item.diffTime}}收费结束</text>
<view class="OneExpediting" v-if="item.nopayNum>0" @click="OneExpeditingPop(item)">
一键催交
</view>
</view>
</view>
<view class="bottomtxt">已经到底啦~</view>
</view>
<!-- 没有数据 -->
<view class="noData" v-else>
<image style="width: 301rpx;height: 258rpx;" :src="ImgUrl+'StudentPayment/NoRecord.png'"
mode='widthFix'></image>
<view>暂无数据</view>
</view>
</view>
</van-tab>
<van-tab :title="vanTab[1]" title-class="PayProjectTab PayProjectHistory">
<!-- 缴费历史 -->
<view class="ListBox">
<view class="" v-if="ChargeEndPageList.length>0">
<view class="container ProjectHistory" v-for="(item,index) in ChargeEndPageList" :key="index"
@tap="PayProgressDetails(item)">
<view class="listitem top">
<view class="title">
{{item.chargeName}}
</view>
</view>
<view class="hairline"
style="width: 620rpx;height: 1rpx;background-color: #E6E6E6;margin: 0 auto;margin-top: 28rpx;">
</view>
<view class="contentTxt">
<view class="left">
<text>未交纳人数:</text>
<text>{{item.nopayNum}}</text>
</view>
<view class="right">
<text>已交纳人数:</text>
<text>{{item.paiedNum}}</text>
</view>
</view>
</view>
<view class="bottomtxt">已经到底啦~</view>
</view>
<!-- 没有数据 -->
<view class="noData" v-else>
<image style="width: 290rpx;height: 242rpx;" :src="ImgUrl+'StudentPayment/development.png'"
mode='widthFix'></image>
<view>程序员正在玩命加载</view>
<view class="bottomtxt">暂无数据</view>
</view>
</view>
</van-tab>
</van-tabs>
</view>
</template>
<script>
// 时间处理模块
import dayjs from 'dayjs'
let orderApi = window.location.origin
export default {
name: "PayProgress",
data() {
return {
ImgUrl: this.$ImgUrl,
active: 0,
vanTab: ['交费中', '已结束'],
ChargePaymentPageList: [],
ChargeEndPageList: [],
pageCurrent: 1,
pageSize: 10,
total: 0,
allData: {},
// 弹框
dialogShow: false,
// 一键催缴的数据
OneExpeditingData: {}
}
},
onLoad: function(options) {
console.log("PayProject", options);
if (options.seesionID && options.userID && options.schoolId) {
uni.setStorageSync("personalInfo", {
userId: options.userID || '',
seesionID: options.seesionID || '',
schoolId: options.schoolId || '',
openId: options.openId
})
this.allData = options
} else {
let personalInfo = uni.getStorageSync("personalInfo")
this.allData = Object.assign(options, personalInfo)
}
this.queryChargePaymentPage()
},
onPullDownRefresh: function(e) {
console.log("onPullDownRefresh", e);
},
onReachBottom: function(e) {
console.log("onReachBottom", e);
this.pageCurrent = this.pageCurrent + 1
if (this.active == 0) {
this.queryChargePaymentPage()
return
}
this.queryChargeEndPage()
},
methods: {
// 一键催缴弹框
async OneExpeditingPop(ItemData) {
try {
this.dialogShow = true;
this.OneExpeditingData = ItemData
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 一键催缴
async OneExpediting() {
try {
let data = await this.$http.post({
url: orderApi + '/order-charge/teacher/charge/paymentNoticeAll'
}, {
"chargeId": this.OneExpeditingData ? this.OneExpeditingData.id : '',
"schoolId": this.allData.schoolId,
})
if (data.code != 200) {
this.dialogShow = false;
uni.showToast({
icon: "none",
mask: true,
title: data.msg
})
return
}
this.dialogShow = false;
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 切换tab
async PayProjectTab(index) {
try {
this.pageCurrent = 1
if (index > 0) {
this.queryChargeEndPage(index)
return
}
this.queryChargePaymentPage(index)
} catch (e) {
//TODO handle the exception
console.log(e);
}
},
// 交费中项目信息分页查询
async queryChargePaymentPage(index) {
try {
let data = await this.$http.post({
url: orderApi + '/order-charge/teacher/charge/queryChargePaymentPage'
}, {
"pageCurrent": this.pageCurrent,
"pageSize": this.pageSize,
"schoolId": this.allData.schoolId,
"userId": this.allData.userId || this.allData.userID
})
if (data.code != 200) {
uni.showToast({
icon: "none",
mask: true,
title: data.msg
})
this.ChargePaymentPageList = []
return
}
if (data.data.records && Array.isArray(data.data.records)) {
let tmp = data.data.records;
let newArr = []
for (let s of tmp) {
let diffTime = dayjs(s.endTime).diff(new Date(), 'hour');
if (diffTime > 24) {
diffTime = dayjs(s.endTime).diff(new Date(), 'day');
s.diffTime = diffTime + ' 天后'
} else {
s.diffTime = 1 + ' 天后'
}
newArr.push(s)
}
if (this.pageCurrent == 1) {
this.ChargePaymentPageList = newArr
return
}
if (this.pageCurrent > 1) {
this.ChargePaymentPageList.push(...newArr)
return
}
} else {
this.ChargePaymentPageList = []
}
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 交费项目已结束信息分页查询
async queryChargeEndPage(index) {
try {
let data = await this.$http.post({
url: orderApi + '/order-charge/teacher/charge/queryChargeEndPage'
}, {
"pageCurrent": this.pageCurrent,
"pageSize": this.pageSize,
"schoolId": this.allData.schoolId,
"userId": this.allData.userId || this.allData.userID
})
if (data.code != 200) {
uni.showToast({
icon: "none",
mask: true,
title: data.msg
})
this.ChargeEndPageList = []
return
}
if (data.data.records && Array.isArray(data.data.records)) {
let tmp = data.data.records;
let newArr = []
for (let s of tmp) {
newArr.push(s)
}
if (this.pageCurrent == 1) {
this.ChargeEndPageList = newArr
return
}
if (this.pageCurrent > 1) {
this.ChargeEndPageList.push(...newArr)
return
}
} else {
this.ChargeEndPageList = []
}
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 收费项目详情
async PayProgressDetails(data) {
try {
console.log(data);
uni.setStorageSync("PayProgressDetails", data)
uni.navigateTo({
url: `../PayProgressDetails/PayProgressDetails?active=${this.active}&chargeId=${data.id ||''}`
})
} catch (e) {
//TODO handle the exception
console.log(e);
}
}
}
}
</script>
<style lang="scss">
page {
background: #F3F5F6;
}
.noData {
text-align: center;
margin-top: 316rpx;
image {
position: relative;
}
}
.tainer {
.OneExpeditingBox {
text-align: center;
margin-top: 50rpx;
}
.title1 {
font-size: 36rpx;
font-family: PingFang SC;
font-weight: bold;
color: #666666;
}
.title2 {
width: 440rpx;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #666666;
margin: 0 auto;
margin-top: 30rpx;
}
.dialogBtnGrou {
height: 88rpx;
line-height: 88rpx;
display: flex;
justify-content: space-around;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
.cancelBtn {
width: 100%;
color: #999999;
}
.confirmBtn {
width: 100%;
color: #01CB88;
}
}
}
.ListBox {
width: 750rpx;
min-height: 100%;
background: #F3F5F6;
padding-top: 12rpx;
padding-bottom: 100rpx;
.container {
width: 686rpx;
background: #FFFFFF;
border-radius: 16rpx;
margin: 0 auto;
margin-top: 20rpx;
}
.container {
font-family: PingFang SC;
.top {
.title {
width: 266rpx;
font-size: 32rpx;
font-weight: bold;
color: #333333;
line-height: 36rpx;
padding-left: 31rpx;
padding-top: 30rpx;
word-break: break-all;
white-space: nowrap;
text-overflow: ellipsis;
}
.money {
font-size: 36rpx;
font-family: DIN;
font-weight: bold;
color: #01CB88;
line-height: 36rpx;
padding-left: 230rpx;
padding-top: 30rpx;
}
.money::before {
content: "¥";
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #01CB88;
}
}
.center {
.describe {
width: 614rpx;
height: 63rpx;
font-size: 28rpx;
font-weight: 500;
color: #666666;
line-height: 36rpx;
padding-top: 38rpx;
padding-left: 32rpx;
overflow-y: auto;
}
}
.botto {
// padding-top: 30rpx;
padding-left: 32rpx;
font-size: 24rpx;
font-weight: 500;
color: #BABABA;
height: 95rpx;
.Tips {
padding-left: 10rpx;
}
}
.contentTxt {
width: 620rpx;
margin: 0 auto;
display: flex;
flex-direction: row;
height: 100rpx;
line-height: 100rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
.left,
.right {
display: flex;
align-items: center;
}
.left text:nth-child(2) {
font-size: 36rpx;
font-family: DIN;
font-weight: 500;
color: #FF3B00;
}
.right {
padding-left: 79rpx;
}
.right text:nth-child(2) {
font-size: 36rpx;
font-family: DIN;
font-weight: 500;
color: #333333;
}
}
.OneExpediting {
width: 176rpx;
height: 60rpx;
background: #01CB88;
border-radius: 30rpx;
text-align: center;
line-height: 60rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
position: relative;
left: 250rpx;
}
}
.ProjectHistory {}
.listitem {
display: flex;
align-items: center;
}
.bottomtxt {
height: 21rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #999999;
line-height: 90rpx;
text-align: center;
}
}
.van-tabs__content {
width: 100%;
height: 100%;
position: fixed;
left: 0;
z-index: 999;
overflow: scroll
}
.van-tabs {
.PayProjectTab {
height: 200rpx;
}
}
</style>
<template>
<view class="contaner">
<view class="queryBox">
<view class="search">
<van-search class="inputSearch" v-model="searchValue" show-action placeholder="请输入姓名查询"
@search="onSearch">
<template #action>
<div class="SearchBtn" @click="onSearch">查询</div>
</template>
</van-search>
</view>
<van-dropdown-menu class="dropdownMenu" active-color="#01CB88">
<van-dropdown-item v-model="classId" :title="dropTitle" @change="dropItemChange1">
<van-tree-select main-active-class="tree_father" content-active-class="tree_father" :items="items"
@click-item="treeSelect " :active-id.sync="activeIds" :main-active-index.sync="activeIndex"
max="1" />
</van-dropdown-item>
<van-dropdown-item v-model="payStatus" @change="dropItemChange2" :options="option2" />
</van-dropdown-menu>
</view>
<!-- 数据列表 -->
<view class="ChargeUserPageListBox" v-if="ChargeUserPageList.length>0">
<view class="PageItemList" v-for="(item,index) in ChargeUserPageList" :key="index">
<view class="hrow">
<view class="left ">
<text class="name">{{item.userName||''}}</text>
<text class="payStatus" v-if="item.payStatus==2"
:style="{'background':'#FFECE6','color': '#FF3B00'}">未交纳</text>
<text class="payStatus" v-if="item.payStatus==1"
:style="{'background':'#E4FBF3','color': '#01CB88'}">已交纳</text>
</view>
<view class="right" v-if="item.payStatus==1">
<text>实交纳:</text>
<text class="money">{{item.amount/100||""}}</text>
</view>
</view>
<view class="paymentNotice" @tap="paymentNotice(item)" v-if="item.payStatus==2&&allData.active==0">
催交
</view>
<view class="class_name">
<text>{{(item.userClass||'')+'/'+(item.userGrade||'')}}</text>
</view>
</view>
<view class="bottomtxt">已经到底啦~</view>
</view>
<!-- -->
<view class="noData" v-else>
<image style="width: 301rpx;height: 258rpx;" :src="ImgUrl+'StudentPayment/NoRecord.png'" mode='widthFix'>
</image>
<view>暂无更多数据</view>
</view>
</view>
</template>
<script>
// 时间处理模块
import dayjs from 'dayjs'
let orderApi = window.location.origin
import {
Dialog
} from 'vant';
export default {
name: "PayProgressDetails",
data() {
return {
searchValue: "",
classId: '',
payStatus: '',
option1: [{
text: '请选择年级',
value: 0
},
{
text: '当前教职工管理年级',
value: 1
},
{
text: '当前选择年级下的班级',
value: 2
},
],
option2: [{
text: '请选择状态',
value: ''
},
{
text: '已交费',
value: 1
},
{
text: '未交费',
value: 2
},
],
ImgUrl: this.$ImgUrl,
pageCurrent: 1,
pageSize: 10,
total: 0,
// 交费项目用户分页查询
ChargeUserPageList: [],
items: [],
activeIds: [],
activeIndex: 0,
dropTitle: "请选择年级"
}
},
onLoad: function(options) {
let personalInfo = uni.getStorageSync("personalInfo")
this.allData = Object.assign(options, personalInfo)
this.queryChargeUserPage(options.chargeId)
this.queryTeacherClassList()
},
onReachBottom: function(e) {
console.log("onReachBottom", e);
this.pageCurrent = this.pageCurrent + 1
this.queryChargeUserPage(this.allData.chargeId, this.searchValue)
},
methods: {
// 查询教职工管理的年级班级列表
async queryTeacherClassList() {
try {
let data = await this.$http.post({
url: orderApi + '/order-charge/charge/group/queryTeacherClassList'
}, {
"schoolId": this.allData.schoolId,
"userId": this.allData.userId || this.allData.userID
})
if (data.code != 200) {
this.dialogShow = false;
uni.showToast({
icon: "none",
mask: true,
title: data.msg
})
return
}
if (data.data && Array.isArray(data.data)) {
let tmp = data.data;
let newArr = []
for (let s of tmp) {
s.text = s.groupname;
// 导航节点额外类名
s.className = 'my-class';
let tmp2 = []
for (let i = 0; i < s.classes.length; i++) {
let s2 = s.classes[i]
s2.text = s2.groupname;
tmp2.push(s2)
}
s.children = tmp2
newArr.push(s)
}
this.items = newArr
} else {
this.items = []
}
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 一键催缴
async paymentNotice(item) {
try {
let data = await this.$http.post({
url: orderApi + '/order-charge/teacher/charge/paymentNotice'
}, {
"chargeId": item.chargeId || '',
"schoolId": this.allData.schoolId,
"userId": item.userId
})
if (data.code != 200) {
this.dialogShow = false;
uni.showToast({
icon: "none",
mask: true,
title: data.msg
})
return
}
await Dialog.alert({
confirmButtonColor: "#01CB88",
title: '系统提示',
message: '催缴成功!',
})
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 下拉选择年纪班级
async treeSelect(value) {
try {
this.classId = value.id
let children = this.items[this.activeIndex].children
children = children.filter(v => {
return this.activeIds[0] == v.id
}).map(v => {
return v.text
}).join()
this.dropTitle = this.items[this.activeIndex].groupname + "/" + children
this.pageCurrent = 1
this.queryChargeUserPage(this.allData.chargeId, this.searchValue)
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 下拉选择
async dropItemChange1(value) {
try {
console.warn(value)
this.pageCurrent = 1
this.queryChargeUserPage(this.allData.chargeId, this.searchValue)
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
async dropItemChange2(value) {
try {
console.warn(value)
this.pageCurrent = 1
this.queryChargeUserPage(this.allData.chargeId, this.searchValue)
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 搜索框
async onSearch(value) {
try {
console.warn(value)
this.pageCurrent = 1
this.queryChargeUserPage(this.allData.chargeId, this.searchValue)
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 交费项目用户分页查询
async queryChargeUserPage(chargeId, userName) {
try {
this.activeIds = [];
this.activeIndex = -1;
let data = await this.$http.post({
url: orderApi + '/order-charge/teacher/charge/queryChargeUserPage'
}, {
userName,
chargeId,
"classId": this.classId,
"pageCurrent": this.pageCurrent,
"pageSize": this.pageSize,
"payStatus": this.payStatus,
"schoolId": this.allData.schoolId,
"userId": this.allData.userId || this.allData.userID
})
if (data.code != 200) {
uni.showToast({
icon: "none",
mask: true,
title: data.msg
})
this.ChargeUserPageList = []
return
}
if (data.data.records && Array.isArray(data.data.records)) {
let tmp = data.data.records;
let newArr = []
// [1, 2, 3, 4, 5, 6].map(v => {
// return {
// payStatus: parseInt(Math.random() * 2) + 1,
// amount: "100",
// id: 1
// }
// })
for (let s of tmp) {
newArr.push(s)
}
if (this.pageCurrent == 1) {
this.ChargeUserPageList = newArr
return
}
if (this.pageCurrent > 1) {
this.ChargeUserPageList.push(...newArr)
return
}
} else {
this.ChargeUserPageList = []
}
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
}
}
</script>
<style lang="scss">
page {
background: #F3F5F6;
}
.bottomtxt {
// height: 21rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #999999;
line-height: 90rpx;
text-align: center;
}
.noData {
text-align: center;
margin-top: 316rpx;
image {
position: relative;
}
}
.queryBox {
background: #FFFFFF;
padding-top: 12rpx;
.search {
width: 686rpx;
height: 70rpx;
background: #FFFFFF;
border: 2rpx solid #01CB88;
border-radius: 35rpx;
margin: 0 auto;
.SearchBtn {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #01CB88;
}
.inputSearch {
height: 100%;
width: 92%;
margin: 0 auto;
padding: 0 !important;
.van-search__content {
background: #FFFFFF;
height: 90%;
}
}
}
}
.my-class::before {
background-color: #01CB88;
}
.van-tree-select__item--active {
color: #01CB88;
}
.ChargeUserPageListBox {
padding-top: 10rpx;
width: 686rpx;
height: 170rpx;
margin: 0 auto;
.PageItemList {
width: 686rpx;
height: 170rpx;
background: #FFFFFF;
border-radius: 24rpx;
margin: 0 auto;
margin-top: 20rpx;
// padding-left: 32rpx;
// padding-right: 32rpx;
position: relative;
}
.paymentNotice {
width: 118rpx;
height: 60rpx;
background: #01CB88;
border-radius: 30rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
text-align: center;
line-height: 60rpx;
position: absolute;
right: 32rpx;
bottom: 55rpx;
}
.hrow {
padding-left: 32rpx;
padding-right: 32rpx;
display: flex;
justify-content: space-between;
.left {
display: flex;
align-items: center;
height: 100rpx;
.name {
font-size: 42rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
}
}
.payStatus {
width: 94rpx;
height: 34rpx;
border-radius: 8rpx;
line-height: 34rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
text-align: center;
margin-left: 20rpx;
}
.right {
height: 100rpx;
line-height: 100rpx;
display: flex;
align-items: center;
}
.right text:nth-child(1) {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
}
.right text:nth-child(2) {
font-size: 36rpx;
font-family: DIN;
font-weight: 500;
color: #333333;
}
}
.class_name {
padding-right: 32rpx;
padding-left: 32rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
}
}
</style>
...@@ -44,21 +44,30 @@ ...@@ -44,21 +44,30 @@
@tap="PayOrderDetails(item)"> @tap="PayOrderDetails(item)">
<view class="listitem top"> <view class="listitem top">
<view class="title"> <view class="title">
2022高一春季收费 {{item.chargeName}}
</view> </view>
<view class="money"> <view class="money" v-if="false">
100.00 {{item.amountMust}}
</view>
</view>
<view class="hairline"
style="width: 686rpx;height: 1rpx; background-color:#E6E6E6;margin-top: 28rpx;">
</view>
<view class="History">
<view class="Historyitem">
<span>实交金额:</span>
<span class="money">{{item.realAmount/100||""}}</span>
</view>
<view class="Historyitem">
<span>交费时间:</span>
<span>{{item.payTime||""}}</span>
</view> </view>
</view> </view>
<view class="listitem center"> <view class="listitem center">
<text class="describe"> <text class="describe">
本次收费需要收取高一春季开学相关费用,并根据 {{item.descInfo||""}}
备注输入相关信息。
</text> </text>
</view> </view>
<view class="listitem botto" style="align-items: baseline;">
<van-icon name="clock-o" /> <text class="Tips">5天后收费结束</text>
</view>
</view> </view>
<view class="bottomtxt">已经到底啦~</view> <view class="bottomtxt">已经到底啦~</view>
</view> </view>
...@@ -66,8 +75,8 @@ ...@@ -66,8 +75,8 @@
<view class="noData" v-else> <view class="noData" v-else>
<image style="width: 290rpx;height: 242rpx;" :src="ImgUrl+'StudentPayment/development.png'" <image style="width: 290rpx;height: 242rpx;" :src="ImgUrl+'StudentPayment/development.png'"
mode='widthFix'></image> mode='widthFix'></image>
<view>程序员正在玩命开发</view> <view>正在玩命加载</view>
<view class="bottomtxt">详情请联系客服</view> <view class="bottomtxt">暂无历交费项目</view>
</view> </view>
</view> </view>
</van-tab> </van-tab>
...@@ -116,13 +125,19 @@ ...@@ -116,13 +125,19 @@
onReachBottom: function(e) { onReachBottom: function(e) {
console.log("onReachBottom", e); console.log("onReachBottom", e);
this.pageCurrent = this.pageCurrent + 1 this.pageCurrent = this.pageCurrent + 1
if (this.active == 0) {
this.getPayProject() this.getPayProject()
return
}
this.queryChargeHistoryPage()
}, },
methods: { methods: {
// 切换tab // 切换tab
async PayProjectTab(index) { async PayProjectTab(index) {
try { try {
this.pageCurrent = 1
if (index > 0) { if (index > 0) {
this.queryChargeHistoryPage(index)
return return
} }
this.getPayProject(index) this.getPayProject(index)
...@@ -131,6 +146,56 @@ ...@@ -131,6 +146,56 @@
console.log(e); console.log(e);
} }
}, },
// 交费历史记录分页查询
async queryChargeHistoryPage() {
try {
let data = await this.$http.post({
url: orderApi + '/order-charge/app/charge/project/queryChargeHistoryPage'
}, {
"pageCurrent": this.pageCurrent,
"pageSize": this.pageSize,
"schoolId": this.allData.schoolId,
"userId": this.allData.userId || this.allData.userID
})
if (data.code != 200) {
uni.showToast({
icon: "none",
mask: true,
title: data.msg
})
this.PayProjectHistory = []
return
}
if (data.data.records && Array.isArray(data.data.records)) {
let tmp = data.data.records;
let newArr = []
for (let s of tmp) {
s.payTime = dayjs(s.payTime).format("YYYY-MM-DD HH:mm:ss");
newArr.push(s)
}
if (this.pageCurrent == 1) {
this.PayProjectHistory = newArr
return
}
if (this.pageCurrent > 1) {
this.PayProjectHistory.push(...newArr)
return
}
} else {
this.PayProjectHistory = []
}
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 交费项目信息分页查询 // 交费项目信息分页查询
async getPayProject(index) { async getPayProject(index) {
try { try {
...@@ -188,13 +253,19 @@ ...@@ -188,13 +253,19 @@
}) })
} }
}, },
// 收费项目详情 // 收费项目详情/历史详情
async PayOrderDetails(data) { async PayOrderDetails(data) {
try { try {
console.log(data); console.log(data);
uni.setStorageSync("PayOrderDetails", data) uni.setStorageSync("PayOrderDetails", data)
let url = "../PayOrderDetails/PayOrderDetails?chargeId=" + data.id || ''
if (this.active == 0) {
url = "../PayOrderDetails/PayOrderDetails?chargeId=" + data.id || ''
} else {
url = "../PayProjectHistoryDetails/PayProjectHistoryDetails?chargeId=" + data.id || ''
}
uni.navigateTo({ uni.navigateTo({
url: "../PayOrderDetails/PayOrderDetails?chargeId=" + data.id || '' url
}) })
} catch (e) { } catch (e) {
//TODO handle the exception //TODO handle the exception
...@@ -299,10 +370,50 @@ ...@@ -299,10 +370,50 @@
.Tips { .Tips {
padding-left: 10rpx; padding-left: 10rpx;
} }
span {
color: #333333;
font-size: 30rpx;
}
} }
} }
.ProjectHistory {} .ProjectHistory {
height: 330rpx;
background: #FFFFFF;
border-radius: 16rpx;
.money {
font-size: 36rpx;
font-family: DIN;
font-weight: bold;
color: #01CB88;
}
.money::before {
content: "¥";
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #01CB88;
}
.describe {
padding-top: 20rpx !important;
}
.History {
width: 630rpx;
margin: 0 auto;
.Historyitem {
height: 60rpx;
line-height: 60rpx;
display: flex;
justify-content: space-between;
}
}
}
.listitem { .listitem {
display: flex; display: flex;
......
<template>
<view class="tainer">
<view class="headerImg">
<view style="width: 686rpx;height: 60rpx;margin: 0 auto;padding-top: 44rpx;">
<image style="width: 686rpx;height: 60rpx;" :src="ImgUrl+'StudentPayment/bg3.png'" mode='widthFix'>
</image>
</view>
<view class="cardInfo">
<view class="title">
交费详情单
</view>
<!-- <view class="title2">
<van-notice-bar :scrollable="ChargeProDetail.descInfo.length>20?true:false" background="#ffffff"
color="#333333" style="padding: 0;" :text="ChargeProDetail.descInfo||''" />
</view> -->
<view style="position: relative;">
<image style="width: 124rpx;height: 106rpx;position: absolute;top: -110rpx;right: 0;"
:src="ImgUrl+'StudentPayment/yijiaona.png'" mode='widthFix'>
</image>
</view>
<van-divider dashed />
<view class="botto">
<view class="rowInfo">
<text class="name">订单编号:</text>
<text class="value">{{ChargeProDetail.tradeId||""}}</text>
</view>
<view class="rowInfo">
<text class="name">交纳时间:</text>
<text class="value">{{ChargeProDetail.payTime||""}}</text>
</view>
<view class="rowInfo">
<text class="name">学生姓名:</text>
<text class="value">{{ChargeProDetail.userName||""}}</text>
</view>
<view class="rowInfo">
<text class="name">年级班级:</text>
<text class="value">{{ChargeProDetail.userGrade||""}} {{ChargeProDetail.userClass||""}}</text>
</view>
</view>
</view>
</view>
<!-- 收费项目 -->
<view class="PayProject">
<view style="padding-top: 20rpx;padding-left: 30rpx;">
<view style="font-size: 32rpx;font-family: PingFang SC;font-weight: 500;color: #333333;">
{{ChargeProDetail.chargeName||""}}
</view>
<van-notice-bar :scrollable="ChargeProDetail.descInfo.length>20?true:false" background="#ffffff"
color="#333333" style="padding: 0; font-family: PingFang SC;font-weight: 500;color: #999999;"
:text="ChargeProDetail.descInfo||''" />
</view>
<!-- 备注 -->
<view class="remarks" style="height: auto;">
<text class="remarksTxt" style="font-size: 32rpx;">
交费信息
</text>
</view>
<view class="tabNames" style="background: #F8F8F8;">
<view>
收费子项
</view>
<view>
收费类型
</view>
<view>
金额(元)
</view>
</view>
<!-- Project -->
<view class="ProjectBox">
<view class="ProjectItem" style="border: none;" v-for="(item,index) in ChargeProDetail.items"
:key="index" v-if="!(item.itemAmount==0&&item.mustFlag==0)">
<view class="tabNames">
<view class="ProjectName">
<image v-if="SPayProject(index)" style="width: 32rpx;height: 32rpx;"
:src="ImgUrl+'StudentPayment/gx.png'" mode='widthFix'></image>
<image v-else style="width: 32rpx;height: 32rpx;" :src="ImgUrl+'StudentPayment/wgx.png'"
mode='widthFix'></image>
<text>{{item.itemName}}</text>
</view>
<view class="ProjectType">
{{['选交项目','必交项目'][item.mustFlag]}}
</view>
<view class="money">
{{itemAmount(item.itemAmount)}}
</view>
</view>
</view>
</view>
<!-- .......................... -->
<!-- 备注 -->
<view class="remarks" style="height: auto;">
<text class="remarksTxt" style="font-size: 32rpx;">
支付信息
</text>
</view>
<view class="tabNames" style="background: #F8F8F8;">
<view>
支付方式
</view>
<view>
支付单号
</view>
<view>
支付金额
</view>
</view>
<!-- Project -->
<view class="ProjectBox" style="border: none;">
<view class="ProjectItem" style="border: none;background-color: white;"
v-for="(item,index) in ChargeProDetail.payInfos" :key="index">
<view class="tabNames">
<view class="ProjectName">
<text>微信</text>
</view>
<view class="ProjectType"
style=" overflow: hidden;word-break: break-all; white-space: nowrap;text-overflow: ellipsis;">
{{item.transactionId}}
</view>
<view class="money">
{{itemAmount(item.amount)}}
</view>
</view>
</view>
<!-- 备注 -->
<view class="remarks">
<text class="remarksTxt">
备注
</text>
<view class="remarksTextarea">
{{ChargeProDetail.remarks||''}}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
/**
* 对象转拼接字符串
* @param {*} res Object 需要转换的数据对象
*/
function OforS(res) {
var resL = 0;
var outS = "";
for (var i in res) {
if (resL == 0) {
outS += "" + i + "=" + res[i];
} else {
outS += "&" + i + "=" + res[i];
}
resL++;
}
return outS;
}
let orderApi = window.location.origin
// 时间处理模块
import dayjs from 'dayjs'
export default {
name: "PayProjectHistoryDetails",
data() {
return {
ImgUrl: this.$ImgUrl,
payMoney: "0.00",
// 选择收费子项目
selectPayProject: [],
// 选择收费子项目
selectPayProjectObj: {},
selectCount: 0,
dialogShow: false,
PaymentRsults: -1,
allData: {},
// 交费项目详情信息
ChargeProDetail: {
descInfo: ''
},
// 备注信息
remarks: "",
remarksType: ["备注", "邮箱", "手机号码", "身份证"],
// 费用id
chargeItemIds: []
}
},
onLoad: function(options) {
let this_ = this;
let personalInfo = uni.getStorageSync("personalInfo")
let PayOrderDetails = uni.getStorageSync("PayOrderDetails")
this.allData = Object.assign(options, personalInfo, {
chargeId: PayOrderDetails.id
})
this.queryChargeHistoryDetail()
},
onShow: function() {
},
computed: {
itemAmount() {
return function(Amount) {
if (Amount) {
return (Amount / 100).toFixed(2)
} else {
return "0.00"
}
}
},
SPayProject() {
return function(index) {
if (index == 0 || index > 0) {
return this.selectPayProject.includes(index)
} else {
return false
}
}
}
},
methods: {
// 查询交费订单明细信息
async queryChargeHistoryDetail() {
try {
let data = await this.$http.post({
url: orderApi + '/order-charge/app/charge/project/queryChargeHistoryDetail'
}, {
"chargeId": this.allData.chargeId,
"schoolId": this.allData.schoolId,
"userId": this.allData.userId
})
if (data.code != 200 || !data.data) {
uni.showToast({
icon: "none",
mask: true,
title: data.msg
})
return
}
this.ChargeProDetail = data.data;
this.ChargeProDetail.payTime = dayjs(data.data.payTime).format("YYYY-MM-DD HH:mm:ss");
// 收费类型必缴项目默认选择
for (let i = 0; i < data.data.items.length; i++) {
if (data.data.items[i].mustFlag == 1) {
this.selectProject(data.data.items[i], i)
}
}
} catch (e) {
//TODO handle the exception
console.log(e);
uni.showToast({
icon: "none",
mask: true,
title: e.message
})
}
},
// 选择支付的项目
async selectProject(data, index) {
try {
if (!this.selectPayProject.includes(index)) {
this.selectPayProject.push(index)
this.selectPayProjectObj[index + ''] = data
} else {
let indexOf = this.selectPayProject.indexOf(index)
this.selectPayProject.splice(indexOf, 1)
delete this.selectPayProjectObj[index + '']
}
// 计算金额
let payMoney = 0,
// 选择的项目数
selectCount = 0,
// 费用id
chargeItemIds = [];
for (let key in this.selectPayProjectObj) {
selectCount++
payMoney += this.selectPayProjectObj[key].itemAmount;
chargeItemIds.push(this.selectPayProjectObj[key].id)
}
this.selectCount = selectCount;
this.payMoney = (payMoney / 100).toFixed(2);
this.chargeItemIds = chargeItemIds;
} catch (e) {
//TODO handle the exception
console.log(e);
}
},
}
}
</script>
<style lang="scss">
page,
.tainer {
background: #F3F5F6;
height: 100vh;
}
.PaymentRsults {
width: 580rpx;
height: 480rpx;
background: #FFFFFF;
border-radius: 16rpx;
text-align: center;
text-align: center;
margin: 0 auto;
font-family: PingFang SC;
image {
top: 115rpx;
}
.PaymentRsultsTxt {
height: 34rpx;
font-size: 36rpx;
font-weight: bold;
color: #333333;
text-align: center;
margin: 0 auto;
margin-top: 115rpx;
}
}
.PayProject,
.remarks {
width: 646rpx;
background: #FFFFFF;
border-radius: 16rpx;
margin: 0 auto;
}
.PayProject {
height: auto;
margin-top: 20rpx;
.ProjectBox {
height: auto;
// overflow: auto;
.tabNames {
justify-content: flex-start;
height: 100%;
}
.ProjectItem {
// width: 628rpx;
height: 100rpx;
margin: 0 auto;
border: 2rpx solid #E6E6E6;
border-radius: 16rpx;
// margin-top: 19rpx;
}
.selectProjectItem {
border: 2rpx solid #01CB88 !important;
background-color: rgba(1, 203, 136, 0.1);
}
.ProjectName {
margin-left: 25rpx;
display: flex;
justify-content: flex-start;
align-items: center;
image {
display: inline-block;
}
text {
display: inline-block;
width: 176rpx;
overflow: hidden;
word-break: break-all;
margin-left: 16rpx;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.ProjectName,
.ProjectType {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
}
.ProjectType {
width: 120rpx;
// margin-left: 40rpx;
}
.money {
font-size: 32rpx;
font-family: DIN;
font-weight: bold;
color: #01CB88;
width: 32%;
text-align: right;
}
.money::before {
content: "¥";
font-size: 28rpx;
font-family: PingFang SC;
font-weight: bold;
color: #01CB88;
}
}
.tabNames {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
justify-content: space-around;
display: flex;
align-items: center;
height: 87rpx;
line-height: 87rpx;
}
}
.remarks {
height: 220rpx;
// margin-top: 20rpx;
textarea {
width: 100%;
height: 100%;
padding-left: 30rpx;
}
.remarksTxt {
height: 80rpx;
line-height: 80rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
margin-left: 66rpx;
position: relative;
}
.remarksTxt:before {
content: " ";
width: 25rpx;
height: 25rpx;
background: #01CB88;
border-radius: 50%;
position: absolute;
z-index: 100;
top: 10rpx;
left: -40rpx;
}
.remarksTxt:after {
content: " ";
width: 25rpx;
height: 25rpx;
background: #FFB62D;
border-radius: 50%;
position: absolute;
z-index: 99;
left: -32rpx;
top: 10rpx;
}
.remarksTextarea {
width: 576rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
margin: 0 auto;
}
}
.headerImg {
width: 750rpx;
height: 480rpx;
background-image: url(https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/StudentPayment/bg.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.cardInfo {
width: 646rpx;
height: 444rpx;
background: #FFFFFF;
border-radius: 16rpx;
position: relative;
margin: 0 auto;
top: -32rpx;
overflow: hidden;
font-family: PingFang SC;
background: linear-gradient(180deg, #E2FBF1 1%, #FFFFFF 20%);
.title {
width: 370rpx;
// height: 34rpx;
font-size: 36rpx;
font-weight: 800;
color: #333333;
margin: 0 auto;
margin-top: 60rpx;
text-align: center;
}
.title2 {
width: 599rpx;
height: 55rpx;
font-size: 24rpx;
font-weight: 500;
color: #999999;
margin: 0 auto;
text-align: center;
margin-top: 24rpx;
}
.botto {
.rowInfo {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
margin-left: 30rpx;
line-height: 60rpx;
}
.name {
width: 128rpx;
color: #999999;
}
.value {
width: 58rpx;
color: #333333;
}
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment