Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
X
xzf_uniapp-wechat-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李智书
xzf_uniapp-wechat-web
Commits
81d2a368
Commit
81d2a368
authored
Jul 14, 2022
by
李智书
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into uat
parents
50dec480
2a5c403c
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
7812 additions
and
5344 deletions
+7812
-5344
src/pages.json
src/pages.json
+21
-3
src/pages/BankModule/Recharge/Recharge.vue
src/pages/BankModule/Recharge/Recharge.vue
+2180
-1868
src/pages/IcbcModule/Recharge/Recharge.vue
src/pages/IcbcModule/Recharge/Recharge.vue
+1856
-1525
src/pages/SchoolReport/SchoolReport.vue
src/pages/SchoolReport/SchoolReport.vue
+1544
-369
src/pages/assignDeposit/assignDeposit.vue
src/pages/assignDeposit/assignDeposit.vue
+2005
-1579
src/pages/commonProblem/commonProblem.vue
src/pages/commonProblem/commonProblem.vue
+110
-0
src/pages/problemDetail/problemDetail.vue
src/pages/problemDetail/problemDetail.vue
+96
-0
src/static/images/breakfastTimeBg.png
src/static/images/breakfastTimeBg.png
+0
-0
src/static/images/consumeOpenbgm.png
src/static/images/consumeOpenbgm.png
+0
-0
src/static/images/consumerAdvice.png
src/static/images/consumerAdvice.png
+0
-0
src/static/images/consumerRationality.png
src/static/images/consumerRationality.png
+0
-0
src/static/images/mealPal.png
src/static/images/mealPal.png
+0
-0
src/static/images/noAttendanceReportDatailData.png
src/static/images/noAttendanceReportDatailData.png
+0
-0
src/static/images/progress.png
src/static/images/progress.png
+0
-0
src/static/images/progressIcon.png
src/static/images/progressIcon.png
+0
-0
src/static/images/timeTrends.png
src/static/images/timeTrends.png
+0
-0
No files found.
src/pages.json
View file @
81d2a368
...
...
@@ -125,7 +125,7 @@
"path"
:
"pages/IcbcModule/Recharge/Recharge"
,
"style"
:
{
"navigationStyle"
:
"custom"
,
"navigationBarTitleText"
:
"
充值
"
,
"navigationBarTitleText"
:
"
电子校园卡
"
,
"enablePullDownRefresh"
:
false
}
...
...
@@ -263,7 +263,7 @@
"path"
:
"pages/BankModule/Recharge/Recharge"
,
"style"
:
{
"navigationStyle"
:
"custom"
,
"navigationBarTitleText"
:
"
充值
"
,
"navigationBarTitleText"
:
"
电子校园卡
"
,
"enablePullDownRefresh"
:
false
}
...
...
@@ -433,6 +433,24 @@
}
}
,
{
"path"
:
"pages/commonProblem/commonProblem"
,
"style"
:
{
"navigationBarTitleText"
:
"常见问题"
,
"navigationStyle"
:
"custom"
,
"enablePullDownRefresh"
:
false
}
}
,{
"path"
:
"pages/problemDetail/problemDetail"
,
"style"
:
{
"navigationBarTitleText"
:
""
,
"enablePullDownRefresh"
:
false
}
}
],
"globalStyle"
:
{
"navigationBarTextStyle"
:
"black"
,
...
...
src/pages/BankModule/Recharge/Recharge.vue
View file @
81d2a368
<
template
>
<view
class=
"container"
>
<view
class=
"userInfoBox"
>
<view
class=
"firstLine"
>
<view
class=
"avatar"
>
<image
:src=
"ImgUrl + 'user/personAva.png'"
alt=
""
></image>
</view>
<view
class=
"name"
>
{{
PersonalInfo
.
name
}}
</view>
<view
v-if=
"PersonalInfo.usertype == '1'"
>
{{
PersonalInfo
.
gradename
}}{{
PersonalInfo
.
classname
}}
</view>
<view
v-else
>
教职工
</view>
</view>
<view
class=
"secondLine"
>
{{
PersonalInfo
.
schoolname
}}
</view>
</view>
<view
class=
"contentWrapper"
>
<view
class=
"balanceWrapper"
>
<view
class=
"firstLine"
>
<view
class=
"left"
>
<view>
可用余额(元)
</view>
<view>
{{
cardBalanceTx
}}
</view>
</view>
<view
class=
"right"
>
<van-popover
v-model=
"showPopover"
trigger=
"click"
placement=
"bottom-end"
>
<view
class=
"popoverItem"
v-for=
"(item, index) in actions"
@
click=
"onSelect(item)"
:id=
"item.id ? item.id : '#item'+index"
>
{{
item
.
text
}}
</view>
<template
#reference
>
<image
class=
"icon"
:src=
"ImgUrl + 'user/more.png'"
alt=
""
></image>
</
template
>
</van-popover>
</view>
</view>
<view
class=
"lastLine"
>
<view>
**** **** ****
{{
bankInfo_.accountNo.slice(bankInfo_.accountNo.length - 4)
}}
</view>
<view
class=
"right"
@
click=
"ToWalletTx"
>
<!-- <image class="btn" :src="ImgUrl + 'user/cashBtn.png'" alt=""></image> -->
提现
</view>
</view>
</view>
</view>
<view
class=
"contentBox"
v-if=
"!depotMoneyother"
>
<!-- <image mode='widthFix' src="https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/xiaopaycard (31).png"></image> -->
<view
class=
"contentDiv
"
>
<view
class=
"contentDiv"
style=
"display: none
"
>
<view
class=
"headview"
>
<view
class=
"schoolname"
>
{{ PersonalInfo.schoolname }}
</view>
<view
class=
"IconCls"
>
电子校园卡
</view>
</view>
<!-- 卡号显示 -->
<view
class=
"cardNum"
>
<view
class=
"cardNumleft"
><span>
账户:
</span>
**** **** ****
<view
class=
"cardNumleft"
><span>
账户:
</span>
**** **** ****
{{ bankInfo_.accountNo.slice(bankInfo_.accountNo.length - 4) }}
<span>
({{ accountEnum[bankInfo_.accountType + ""] }})
</span>
</view>
<view
class=
"cardNumright"
id=
"cardNumright"
@
click=
"CopyCardNumber"
>
复制
</view
>
<view
class=
"cardNumright"
id=
"cardNumright"
@
click=
"CopyCardNumber"
>
复制
</view>
</view>
<view
class=
"HidenText"
>
<view
class=
"userName"
style=
"
<view
class=
"userName"
style=
"
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
"
>
姓名:
<span>
{{
PersonalInfo
.
name
}}
</span></view
>
<view
class=
"StudentCls"
style=
"
"
>
姓名:
<span>
{{ PersonalInfo.name }}
</span></view>
<view
class=
"StudentCls"
style=
"
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
"
v-if=
"PersonalInfo.usertype == '1'"
>
"
v-if=
"PersonalInfo.usertype == '1'"
>
班级:{{ PersonalInfo.gradename }}({{
PersonalInfo.classname
}}
)
</view
>
<view
class=
"TeacherCls"
style=
"
}})
</view>
<view
class=
"TeacherCls"
style=
"
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
"
v-else
>
教职工
</view
>
"
v-else
>
教职工
</view>
</view>
<view
class=
"Balance"
>
<view
class=
"cardBalanceTx"
>
余额:¥
<span>
{{
cardBalanceTx
}}
</span></view
>
<view
class=
"cardBalanceTx"
>
余额:¥
<span>
{{ cardBalanceTx }}
</span></view>
<view
@
click=
"ToWalletTx"
>
<span
style=
"display: inline-block; padding-right: 10rpx"
>
余额提现
</span
>
<image
style=
"position: relative; width: 13rpx; height: 20rpx"
class=
"ImgIcon1"
mode=
"widthFix"
:src=
"ImgUrl + 'images/xiaopaycard (17).png'"
alt=
""
></image>
<span
style=
"display: inline-block; padding-right: 10rpx"
>
余额提现
</span>
<image
style=
"position: relative; width: 13rpx; height: 20rpx"
class=
"ImgIcon1"
mode=
"widthFix"
:src=
"ImgUrl + 'images/xiaopaycard (17).png'"
alt=
""
></image>
</view>
</view>
</view>
<!-- 充值明细 -->
<view
class=
"RechargeDetailed"
@
click=
"BackToMini('purchaseDetail')"
>
<!--
<view class="RechargeDetailed" @click="BackToMini('purchaseDetail')">
账户明细
</view
>
</view> --
>
<!-- 充值账户 -->
<view
class=
"Recharge"
>
<span></span>
<span>
账户充值
</span>
<span>
充值金额
</span>
</view>
<view
class=
"moneyWrapper"
>
<view
class=
"moneyItem"
@
click=
"depotMoney(item.value, index)"
v-bind:class=
"MoneyIndex == index ? 'active' : ''"
:data-money=
"item.value || 0"
v-for=
"(item, index) in MoneyList"
:key=
"index"
>
<view>
{{ item.value }}
</view>
<view>
{{ item.lable }}
</view>
</view>
<view
class=
"other"
>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
@
blur=
"ReturnToTop"
placeholder=
"其他金额,最低3元"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
</view>
</view>
<!-- 充值的金额 -->
<view
class=
"MoneyBox"
>
<view
class=
"depotMoney"
@
click=
"depotMoney(item.value, index)"
v-bind:class=
"MoneyIndex == index ? 'choiceClass' : ''"
:data-money=
"item.value || 0"
v-for=
"(item, index) in MoneyList"
:key=
"index"
>
<view
class=
"MoneyBox"
style=
"display: none"
>
<view
class=
"depotMoney"
@
click=
"depotMoney(item.value, index)"
v-bind:class=
"MoneyIndex == index ? 'choiceClass' : ''"
:data-money=
"item.value || 0"
v-for=
"(item, index) in MoneyList"
:key=
"index"
>
<span
class=
"value"
>
{{ item.value }}
</span>
...
...
@@ -111,41 +134,33 @@
</view> -->
</view>
<!-- 充值其它金额 -->
<!-- <view class="OtherMoney" v-if="isOtherMoney"> -->
<view
class=
"OtherMoney
"
>
<view
class=
"OtherMoney"
style=
"display: none
"
>
<span>
¥
</span>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
@
blur=
"ReturnToTop"
placeholder=
"请输入其他金额,最低3元"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
@
blur=
"ReturnToTop"
placeholder=
"请输入其他金额,最低3元"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
</view>
<!-- 充值限额提示 -->
<view
class=
"depositbox"
>
<image
mode=
"widthFix"
class=
"depositImg"
src=
"../../../static/img/depositIcon.png"
></image>
<span
style=
"
<image
mode=
"widthFix"
class=
"depositImg"
src=
"../../../static/img/depositIcon.png"
></image>
<span
style=
"
vertical-align: middle;
font-size: 28rpx;
color: #333333;
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=
"payType"
@
click=
"queryBindCardList"
>
<view
class=
"paytype"
>
<view
class=
"left"
>
付款账户
</view>
<view
class=
"right"
@
click=
"queryBindCardList"
>
{{ bankInfo_.bindCardName }}({{
bankInfo_.bindCardNo.slice(bankInfo_.bindCardNo.length - 4)
}})
<van-icon
name=
"arrow"
/>
</view>
</view>
<view
class=
"payType"
style=
"display: none"
@
click=
"queryBindCardList"
>
<view>
付款方式
</view>
<view>
{{ bankInfo_.bindCardName }}
...
...
@@ -158,40 +173,29 @@
<!-- <view class="" style="height: 1rpx;background-color: #DFDFDF;"></view> -->
<!-- 充值生活费 -->
<view
class=
"bottomdiv"
>
<view
class=
"DepositID"
@
click=
"toDeposit"
v-bind:style=
"Money != '' ? '' : 'background: #e6e6e6 !important;'"
>
<view
class=
"DepositID"
@
click=
"toDeposit"
v-bind:style=
"Money != '' ? '' : 'background: #e6e6e6 !important;'"
>
<span>
充值生活费
</span>
</view>
<view
class=
"service"
>
{{bankInfo_.accountName}}Ⅲ类户为您提供服务
</view>
<!-- -->
<view
class=
"switchbankCard"
@
click=
"ChangeBankPay"
>
我要换银行卡支付
</view
>
<!-- <view class="switchbankCard" @click="ChangeBankPay">我要换银行卡支付</view> -->
</view>
</view>
<!-- 其他充值金额 -->
<view
class=
"contentBox"
v-if=
"depotMoneyother
"
>
<view
class=
"contentBox"
style=
"display: none
"
>
<view
class=
"OtherTitle"
>
充值金额
</view>
<view
class=
"inputOtherM"
>
<span>
¥
</span>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
</view>
<view
class=
"OtherLine"
></view>
<!-- 充值范围 -->
<view
class=
"Recharge_"
>
<!-- <image mode="widthFix" class="depositImg" src="../../static/img/depositIcon.png"></image> -->
<span>
最大可充值金额:
</span>
<span
>
¥
<span>
3.00 ~
{{
RechargeMax
}}
</span></span
>
<span>
¥
<span>
3.00 ~ {{ RechargeMax }}
</span></span>
</view>
</view>
<!-- 弹出层 -->
...
...
@@ -203,42 +207,19 @@
<image
src=
"../../../static/img/close.png"
mode=
"aspectFit"
></image>
</view>
<view
class=
"RechargeInfo1"
>
验证校园卡开卡手机号
</view>
<van-field
label-class=
"openCardPhonTxt"
label=
"手机号:"
maxlength=
"11"
v-model=
"openCardPhon"
placeholder=
"校园卡开卡手机号"
center
:border=
"false"
>
<van-field
label-class=
"openCardPhonTxt"
label=
"手机号:"
maxlength=
"11"
v-model=
"openCardPhon"
placeholder=
"校园卡开卡手机号"
center
:border=
"false"
>
<view
slot=
"right-icon"
v-if=
"bankInfo_.accountType == 4"
>
<view
class=
"changPhone"
style=
"display: flex; justify-content: center"
@
click=
"changePhone"
>
变更手机号
<view
class=
"changPhone"
style=
"display: flex; justify-content: center"
@
click=
"changePhone"
>
变更手机号
<van-icon
name=
"arrow"
/>
</view>
</view>
</van-field>
<view
style=
"width: 520rpx; height: 1rpx; background: #eeeeee"
></view>
<van-field
v-model=
"openCardPhonSms"
label-class=
"openCardPhonSmsTxt"
maxlength=
"6"
label=
"验证码:"
placeholder=
"输入短信验证码"
center
clearable
:border=
"false"
>
<van-button
slot=
"button"
size=
"small"
type=
"primary"
@
click=
"SendSms"
>
<van-field
v-model=
"openCardPhonSms"
label-class=
"openCardPhonSmsTxt"
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>
</van-button>
</van-field>
...
...
@@ -252,15 +233,29 @@
</uni-popup>
<!-- 选择银行卡 -->
<view
class=
"selectCard"
>
<van-popup
v-model=
"popshow"
round
position=
"bottom"
:style=
"
{ height: '30%' }"
>
<van-popup
v-model=
"popshow"
round
position=
"bottom"
:style=
"{ height: '30%' }"
>
<!-- 银行卡列表 -->
<view
class=
"accountlist"
>
<!-- 切换绑定的一类卡列表 -->
<view
class=
"showBindCardList"
>
<view
class=
"choiceBox"
>
选择付款账户
</view>
<view
class=
"cardsList"
>
<view
class=
"ListItem"
@
click=
"ChangeCardPay(item)"
v-for=
"(item, index) in bindcardList"
:key=
"index"
>
<span
style=
"padding-right: 10px"
>
{{ item.bindCardName }}
</span>
<span>
尾号:{{
item.bindCardNo.slice(item.bindCardNo.length - 4)
}}
</span>
<!-- <image class="BankListImg" src="../../../static/img/choiceBank.png"></image> -->
</view>
</view>
<view
class=
"changeCard"
@
click=
"ChangeBankPay"
>
我要换卡支付
</view>
</view>
</view>
<!-- 银行卡列表
<view class="accountlist">
<!-- 切换绑定的一类卡列表
<view class="showBindCardList">
<view class="choiceBox">选择付款账户</view>
<view
...
...
@@ -275,37 +270,43 @@
item.bindCardNo.slice(item.bindCardNo.length - 4)
}}</span
>
<image
class=
'BankListImg'
src=
'../../../static/img/choiceBank.png'
></image>
</view>
<image
class="BankListImg"
src="../../../static/img/choiceBank.png"
></image>
</view>
</view>
</view> -->
</van-popup>
</view>
</view>
</template>
<
script
>
import
{
Dialog
,
Toast
}
from
"
vant
"
;
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:
"
)
{
import
{
Dialog
,
Toast
}
from
"
vant
"
;
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 = "/api";
}
let
times
=
0
;
var
limitClick
=
false
;
//禁止重复点击
var
sessionID
=
""
,
}
let
times
=
0
;
var
limitClick
=
false
;
//禁止重复点击
var
sessionID
=
""
,
userID
=
""
;
var
payCardNumber
=
""
;
//一类卡号
var
orderSerialNo
=
""
;
//提现结果查询 指令号
var
businessNo
=
""
,
var
payCardNumber
=
""
;
//一类卡号
var
orderSerialNo
=
""
;
//提现结果查询 指令号
var
businessNo
=
""
,
otpOrderNo
=
""
,
mobileNo
=
""
;
var
MyTimer
=
null
;
var
fromType
=
0
;
//0转账 1提现
var
opeType
=
0
;
//0充值 1提现 手机号验证
var
bankInfo
=
{
var
MyTimer
=
null
;
var
fromType
=
0
;
//0转账 1提现
var
opeType
=
0
;
//0充值 1提现 手机号验证
var
bankInfo
=
{
acctNoArray
:
""
,
idNo
:
""
,
schoolId
:
""
,
...
...
@@ -313,14 +314,14 @@ var bankInfo = {
userId
:
""
,
sessionid
:
""
,
wechattype
:
1
,
};
var
accountType
=
""
;
let
orderApi
=
window
.
location
.
origin
;
/**
};
var
accountType
=
""
;
let
orderApi
=
window
.
location
.
origin
;
/**
* 对象转拼接字符串
* @param {*} res Object 需要转换的数据对象
*/
function
OforS
(
res
)
{
function
OforS
(
res
)
{
var
resL
=
0
;
var
outS
=
""
;
for
(
var
i
in
res
)
{
...
...
@@ -332,14 +333,27 @@ function OforS(res) {
resL
++
;
}
return
outS
;
}
export
default
{
}
export
default
{
components
:
{
keyboardPackage
,
},
name
:
"
Recharge
"
,
data
()
{
return
{
showPopover
:
false
,
// 通过 actions 属性来定义菜单选项
actions
:
[{
text
:
"
复制卡号
"
,
id
:
"
cardNumright
"
},
{
text
:
"
账户明细
"
,
},
{
text
:
"
常见问题
"
,
},
],
popshow
:
false
,
// 输入其它金额
isOtherMoney
:
false
,
...
...
@@ -365,8 +379,7 @@ export default {
bindCardNo
:
""
,
},
ImgUrl
:
this
.
$ImgUrl
,
MoneyList
:
[
{
MoneyList
:
[{
lable
:
"
元
"
,
value
:
100
,
},
...
...
@@ -411,7 +424,7 @@ export default {
RechargeSmsorderNoInfo
:
{},
//第三方合作交易标识
};
},
onLoad
:
function
(
options
)
{
onLoad
:
function
(
options
)
{
console
.
log
(
options
);
// 初始化
userID
=
options
[
"
userID
"
]
||
""
;
...
...
@@ -420,14 +433,25 @@ export default {
bankInfo
.
sessionid
=
sessionID
||
""
;
this
.
beforeQuerySignStatus
();
},
created
:
function
()
{},
mounted
:
function
()
{},
onShow
:
function
()
{
created
:
function
()
{},
mounted
:
function
()
{},
onShow
:
function
()
{
if
(
bankInfo
.
userId
)
{
this
.
queryBankInfo
();
}
},
methods
:
{
onSelect
(
action
)
{
if
(
action
.
text
==
"
复制卡号
"
)
{
this
.
CopyCardNumber
();
}
else
if
(
action
.
text
==
"
账户明细
"
)
{
this
.
BackToMini
(
"
purchaseDetail
"
);
}
else
if
(
action
.
text
==
"
常见问题
"
)
{
uni
.
navigateTo
({
url
:
`../../commonProblem/commonProblem`
,
});
}
},
async
beforeQuerySignStatus
()
{
await
this
.
QueryUserInfo
();
// 渤海银行要判断是否有代扣签约
...
...
@@ -505,8 +529,7 @@ export default {
$
(
"
.doBtnTx
"
).
html
(
"
提现
"
);
opeType
=
1
;
uni
.
navigateTo
({
url
:
"
../Reflect/Reflect?
"
+
url
:
"
../Reflect/Reflect?
"
+
OforS
({
sessionID
:
sessionID
,
userID
:
userID
,
...
...
@@ -524,7 +547,7 @@ export default {
this_
.
MoneyIndex
=
-
1
;
this_
.
isOtherMoney
=
true
;
let
obj
=
e
.
detail
;
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
obj
.
value
=
obj
.
value
.
replace
(
/
[^\d
.
]
/g
,
""
);
//清除"数字"和"."以外的字符
obj
.
value
=
obj
.
value
.
replace
(
/^
\.
/g
,
""
);
//验证第一个字符是数字而不是.
obj
.
value
=
obj
.
value
.
replace
(
/
\.{2,}
/g
,
"
.
"
);
//只保留第一个. 清除多余的.
...
...
@@ -553,7 +576,7 @@ export default {
if
(
str
.
lastIndexOf
(
"
.
"
)
==
str
.
length
-
1
)
{
this
.
inputOtherM
=
str
.
substring
(
0
,
str
.
length
-
1
);
}
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
document
.
scrollingElement
.
scrollTo
(
0
,
this
.
scrollTop
);
});
},
...
...
@@ -585,12 +608,12 @@ export default {
schoolId
:
bankInfo
.
schoolId
,
//学校id
userId
:
userID
,
//用户id
sessionid
:
sessionID
,
wechattype
:
1
wechattype
:
1
,
},
headers
:
{
sessionid
:
sessionID
,
},
success
:
function
(
respes
)
{
success
:
function
(
respes
)
{
loading
.
clear
();
if
(
respes
.
code
==
"
10000
"
)
{
console
.
log
(
respes
,
"
respes
"
);
...
...
@@ -598,8 +621,7 @@ export default {
// 1已签约
Dialog
.
alert
({
title
:
"
使用说明
"
,
message
:
"
您暂未进行银行代扣签约,将影响电子校园卡的正常使用,请尽快前往签约
"
,
message
:
"
您暂未进行银行代扣签约,将影响电子校园卡的正常使用,请尽快前往签约
"
,
theme
:
"
round-button
"
,
confirmButtonText
:
"
确认签约
"
,
confirmButtonColor
:
"
#2ddbb6
"
,
...
...
@@ -620,7 +642,7 @@ export default {
throw
new
Error
(
"
代扣状态查询,请重试!
"
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
clear
();
Toast
(
err
||
"
代扣状态查询,请重试!
"
);
throw
new
Error
(
"
代扣状态查询,请重试!
"
);
...
...
@@ -681,7 +703,7 @@ export default {
headers
:
{
sessionid
:
sessionID
,
},
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
loading
.
clear
();
if
(
res5
.
code
==
"
10000
"
)
{
this_
.
IntervalFun
();
...
...
@@ -695,7 +717,7 @@ export default {
});
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
clear
();
},
});
...
...
@@ -786,7 +808,7 @@ export default {
headers
:
{
sessionid
:
sessionID
,
},
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
uni
.
hideLoading
();
if
(
res5
.
code
==
"
10000
"
)
{
this_
.
close
();
...
...
@@ -798,9 +820,9 @@ export default {
let
accountNo
=
this_
.
bankInfo_
.
bindCardNo
;
accountNo
=
accountNo
.
slice
(
accountNo
.
length
-
4
,
accountNo
.
length
);
let
minutes_
=
thiTime
.
getMinutes
().
toString
().
length
<
2
?
thiTime
.
getMinutes
().
toString
().
padStart
(
2
,
"
0
"
)
:
thiTime
.
getMinutes
().
toString
();
thiTime
.
getMinutes
().
toString
().
length
<
2
?
thiTime
.
getMinutes
().
toString
().
padStart
(
2
,
"
0
"
)
:
thiTime
.
getMinutes
().
toString
();
switch
(
bankInfo
.
accountType
)
{
case
3
:
if
(
thiTime
.
getMinutes
()
+
20
>=
60
)
{
...
...
@@ -813,7 +835,7 @@ export default {
title
:
"
充值申请已提交
"
,
content
:
"
银行处理需要1-20分钟时间,充值结果以余额查询为准。
"
,
showCancel
:
false
,
success
:
function
()
{
success
:
function
()
{
uni
.
navigateTo
({
url
:
`../../recharging/recharging?bankName=
${
this_
.
bankInfo_
.
bindCardName
...
...
@@ -843,7 +865,7 @@ export default {
weui
.
topTips
(
res5
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
uni
.
hideLoading
();
},
});
...
...
@@ -872,7 +894,7 @@ export default {
headers
:
{
sessionid
:
sessionID
,
},
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
loading
.
clear
();
if
(
res5
.
code
==
"
10000
"
)
{
let
appStatus
=
res5
.
results
.
appStatus
;
...
...
@@ -896,7 +918,7 @@ export default {
});
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
clear
();
},
});
...
...
@@ -908,9 +930,10 @@ export default {
title
:
"
系统提示
"
,
message
:
"
复制成功!
"
,
});
this
.
$nextTick
(
function
()
{
console
.
log
(
value
,
'
valuevaluevaluevaluevalue
'
)
this
.
$nextTick
(
function
()
{
let
clipboard
=
new
ClipboardJS
(
"
#cardNumright
"
,
{
text
:
function
()
{
text
:
function
()
{
return
value
;
},
});
...
...
@@ -933,7 +956,7 @@ export default {
},
//按钮操作
HideHTML
(
dom
,
type
)
{
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
if
(
type
==
0
)
{
$
(
"
.
"
+
dom
).
css
(
"
display
"
,
"
none
"
);
}
else
{
...
...
@@ -983,7 +1006,7 @@ export default {
bindMedium
:
item
.
bindCardNo
,
bindMediumName
:
item
.
bindCardName
,
},
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
loading
.
hide
();
if
(
res5
.
code
==
"
10000
"
)
{
this_
.
queryUserBankInfo
();
...
...
@@ -993,7 +1016,7 @@ export default {
}
this_
.
popshow
=
false
;
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -1013,7 +1036,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res4
)
{
success
:
function
(
res4
)
{
loading
.
hide
();
if
(
res4
.
code
==
"
10000
"
)
{
this_
.
bindcardList
=
res4
.
results
;
...
...
@@ -1022,7 +1045,7 @@ export default {
weui
.
topTips
(
res4
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -1063,7 +1086,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res3
)
{
success
:
function
(
res3
)
{
// loading.hide();
if
(
res3
.
code
==
"
10000
"
)
{
if
(
bankInfo
.
accountType
==
4
)
{
...
...
@@ -1101,10 +1124,10 @@ export default {
weui
.
topTips
(
res3
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
// loading.hide();
},
complete
:
function
(
XMLHttpRequest
,
status
)
{
complete
:
function
(
XMLHttpRequest
,
status
)
{
// loading.hide();
if
(
status
==
"
timeout
"
)
{
weui
.
topTips
(
"
请求超时,余额查询失败
"
);
...
...
@@ -1117,7 +1140,7 @@ export default {
let
this_
=
this
;
// let loading = weui.loading('请稍后');
$
.
ajax
({
url
:
gHost
+
"
/bank-wechat/user/bank/get
"
,
url
:
gHost
+
"
/bank-wechat/user/bank/get/v2
"
,
type
:
"
POST
"
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
{
...
...
@@ -1126,7 +1149,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res2
)
{
success
:
function
(
res2
)
{
if
(
res2
.
code
==
"
10000
"
)
{
if
(
!
res2
.
results
)
{
weui
.
topTips
(
"
获取用户银行信息失败!
"
);
...
...
@@ -1143,7 +1166,7 @@ export default {
weui
.
topTips
(
res2
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
// loading.hide();
},
});
...
...
@@ -1166,7 +1189,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res1
)
{
success
:
function
(
res1
)
{
loading
.
clear
();
console
.
log
(
sessionID
);
if
(
res1
.
code
==
"
10000
"
)
{
...
...
@@ -1189,37 +1212,206 @@ export default {
},
1500
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
clear
();
},
});
},
},
};
};
</
script
>
<
style
lang=
"scss"
>
html
,
body
,
page
{
html
,
body
,
page
{
width
:
750rpx
;
background
:
linear-gradient
(
180deg
,
#ffffff
0%
,
#fafafa
100%
);
}
}
.changPhone
{
.userInfoBox
{
display
:
flex
;
flex-direction
:
column
;
width
:
calc
(
100%
-
64rpx
);
height
:
150rpx
;
margin
:
0
32rpx
;
margin-top
:
30rpx
;
background
:
linear-gradient
(
270deg
,
#f4f4f4
0%
,
#ebebeb
100%
);
border-radius
:
16px
;
.firstLine
{
display
:
flex
;
flex-direction
:
row
;
width
:
calc
(
100%
-
68rpx
);
height
:
56rpx
;
line-height
:
56rpx
;
margin
:
0
34rpx
;
margin-top
:
28rpx
;
overflow
:
hidden
;
view
{
white-space
:
nowrap
;
}
.avatar
{
width
:
56rpx
;
height
:
56rpx
;
uni-image
{
width
:
56rpx
;
height
:
56rpx
;
}
}
.name
{
margin-left
:
17rpx
;
font-size
:
36rpx
;
font-weight
:
600
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
}
view
:last-child
{
margin-left
:
10rpx
;
align-self
:
center
;
align-items
:
center
;
padding
:
0
8rpx
;
height
:
40rpx
;
line-height
:
40rpx
;
background
:
rgba
(
0
,
0
,
0
,
0
.08
);
border-radius
:
4rpx
;
font-size
:
26rpx
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.5
);
}
}
.secondLine
{
display
:
flex
;
width
:
calc
(
100%
-
62rpx
);
margin
:
0
31rpx
;
margin-top
:
8rpx
;
height
:
37rpx
;
line-height
:
37rpx
;
font-size
:
26rpx
;
color
:
rgba
(
0
,
0
,
0
,
0
.45
);
}
}
.contentWrapper
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.balanceWrapper
{
width
:
calc
(
100%
-
144rpx
);
margin
:
0
32rpx
;
margin-top
:
24rpx
;
height
:
249rpx
;
padding
:
40rpx
40rpx
0
;
background-image
:
url("https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/user/bankBg.png")
;
background-repeat
:
no-repeat
;
background-size
:
100%
100%
;
position
:
relative
;
display
:
flex
;
flex-direction
:
column
;
.firstLine
{
display
:
flex
;
justify-content
:
space-between
;
.left
{
view
:first-child
{
height
:
33rpx
;
font-size
:
24rpx
;
font-weight
:
600
;
color
:
rgba
(
255
,
255
,
255
,
0
.85
);
line-height
:
33rpx
;
}
view
:last-child
{
height
:
84rpx
;
font-size
:
60rpx
;
font-weight
:
600
;
color
:
#ffffff
;
line-height
:
84rpx
;
}
}
.right
{
width
:
60rpx
;
height
:
60rpx
;
align-self
:
flex-start
;
.icon
{
width
:
60rpx
;
height
:
60rpx
;
}
}
}
.lastLine
{
display
:
flex
;
width
:
100%
;
justify-content
:
space-between
;
margin-top
:
20rpx
;
view
:first-child
{
height
:
60rpx
;
font-size
:
40rpx
;
font-weight
:
600
;
color
:
#ffffff
;
line-height
:
60rpx
;
}
.right
{
width
:
140rpx
;
height
:
60rpx
;
line-height
:
60rpx
;
font-size
:
30rpx
;
font-weight
:
600
;
color
:
#04b871
;
background-image
:
url("https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/user/cashBtn.png")
;
background-repeat
:
no-repeat
;
background-size
:
cover
;
text-align
:
center
;
}
.btn
{
width
:
140rpx
;
height
:
60rpx
;
}
}
}
.changPhone
{
font-size
:
14px
;
color
:
#39f
;
text-align
:
right
;
}
}
.accountlist
{
width
:
100%
;
height
:
100%
;
}
.showBindCardList
{
width
:
100%
;
height
:
100%
;
.showBindCardList
{
.choiceBox
{
text-align
:
center
;
font-weight
:
bold
;
height
:
50
px
;
line-height
:
50
px
;
height
:
100r
px
;
line-height
:
100r
px
;
padding
:
0
;
border-bottom
:
0
.5px
solid
#e6e6e6
;
// border-bottom: 1rpx solid #e6e6e6;
}
.cardsList
{
width
:
100%
;
height
:
calc
(
100%
-
260rpx
);
overflow-y
:
scroll
;
}
.ListItem
{
...
...
@@ -1230,18 +1422,29 @@ page {
position
:
relative
;
text-align
:
center
;
}
}
.SubmittedSuccessfully
{
.changeCard
{
margin
:
0
auto
;
margin-top
:
40rpx
;
height
:
40rpx
;
font-size
:
28rpx
;
font-weight
:
400
;
color
:
#04b871
;
line-height
:
40rpx
;
text-align
:
center
;
}
}
.SubmittedSuccessfully
{
width
:
400rpx
!
important
;
height
:
200rpx
!
important
;
margin
:
0
auto
!
important
;
background
:
#000000
;
opacity
:
0
.8
;
border-radius
:
8rpx
;
}
}
.cardNum
{
.cardNum
{
width
:
574rpx
;
margin
:
0
auto
;
display
:
flex
;
...
...
@@ -1261,9 +1464,9 @@ page {
text-decoration
:
underline
;
color
:
#ffffff
;
}
}
}
.RechargeDetailed
{
.RechargeDetailed
{
text-align
:
center
;
// width: 118rpx;
height
:
32rpx
;
...
...
@@ -1274,15 +1477,15 @@ page {
text-decoration
:
underline
;
color
:
#36a8ff
;
margin-top
:
50rpx
;
}
}
.contentBox
{
.contentBox
{
width
:
670rpx
;
height
:
376rpx
;
margin
:
0
auto
;
}
}
.contentDiv
{
.contentDiv
{
height
:
100%
;
// margin-top: 36rpx;
border-radius
:
15rpx
;
...
...
@@ -1292,16 +1495,16 @@ page {
position: relative;
top: 36rpx;
}
}
.HidenText {
.HidenText {
width: 574rpx;
margin: 0 auto;
padding-top: 88rpx;
}
}
.HidenText,
.Balance {
.HidenText,
.Balance {
padding-left: 46rpx;
padding-right: 40rpx;
display: flex;
...
...
@@ -1309,9 +1512,9 @@ page {
font-size: 28rpx;
color: #ffffff;
}
}
.Balance {
.Balance {
width: 574rpx;
margin: 0 auto;
margin-top: 20rpx;
...
...
@@ -1320,33 +1523,20 @@ page {
font-family: PingFang SC;
font-weight: bold;
color: #ffffff;
}
.Recharge {
// height: 30rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
margin-top: 58rpx;
span:nth-child(1) {
width: 4rpx;
height: 30rpx;
background: #23d6a3;
border-radius: 2rpx;
display: inline-block;
position: relative;
top: 5rpx;
}
span:nth-child(2) {
display: inline-block;
margin-left: 16rpx;
.Recharge {
width: 100%;
height: 40rpx;
margin-top: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(0, 0, 0, 0.4);
line-height: 40rpx;
}
}
.headview {
.headview {
display: flex;
justify-content: space-between;
// padding-left: 40rpx;
...
...
@@ -1355,9 +1545,9 @@ page {
padding-top: 36rpx;
width: 574rpx;
margin: 0 auto;
}
}
.headview .schoolname {
.headview .schoolname {
// width: 252rpx;
height: 50rpx;
font-size: 36rpx;
...
...
@@ -1365,9 +1555,9 @@ page {
font-weight: 500;
color: #ffffff;
line-height: 50rpx;
}
}
.headview .IconCls {
.headview .IconCls {
width: 170rpx;
height: 48rpx;
background: #20946d;
...
...
@@ -1378,23 +1568,91 @@ page {
color: #ffffff;
line-height: 48rpx;
text-align: center;
}
}
.moneyWrapper {
margin-top: 10rpx;
width: 100%;
display: flex;
flex-wrap: wrap;
.moneyItem {
width: 210rpx;
height: 120rpx;
background: #f8f8f8;
border-radius: 12rpx;
display: flex;
justify-content: center;
margin-right: 8rpx;
font-family: PingFangSC-Medium, PingFang SC;
margin-bottom: 24rpx;
border: 3rpx solid transparent;
view {
align-self: center;
color: #333333;
}
view:first-child {
font-size: 40rpx;
font-weight: 500;
}
view:last-child {
font-size: 30rpx;
}
}
.moneyItem:nth-child(3n) {
margin-right: 0;
}
.active {
border: 3rpx solid #04b871;
view {
color: #04b871;
}
}
.other {
width: 444rpx;
height: 120rpx;
line-height: 120rpx;
text-align: center;
background: #f8f8f8;
border-radius: 12rpx;
border: 3rpx solid transparent;
/deep/.uni-input-wrapper {
position: absolute;
width: 444rpx;
height: 120rpx;
font-size: 40rpx;
font-weight: 500;
color: #333333;
}
/deep/.uni-input-input {
height: 120rpx;
line-height: 120rpx;
}
}
}
.MoneyBox {
.MoneyBox {
flex-wrap: wrap;
height: auto;
color: #888888;
width: 686rpx;
margin: 0 auto;
overflow: hidden;
}
}
.choiceClass {
.choiceClass {
background: rgba(39, 266, 148, 0.1) !important;
color: #28d79c;
}
}
.MoneyBox view {
.MoneyBox view {
width: 220rpx;
height: 120rpx;
background: #ffffff;
...
...
@@ -1406,17 +1664,17 @@ page {
box-shadow: 0px 9rpx 23rpx 0rpx rgba(25, 26, 88, 0.07);
margin-right: 2px;
float: left;
}
}
.depotMoney .value {
.depotMoney .value {
font-size: 45rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
line-height: 120rpx;
text-align: center;
}
}
.depotMoney .tips {
.depotMoney .tips {
// width: 79rpx;
// height: 33rpx;
// background: linear-gradient(180deg, #FA6400 0%, #FD9D00 100%);
...
...
@@ -1429,9 +1687,9 @@ page {
// position: absolute;
// right: 0rpx;
// line-height: 33rpx;
}
}
.OtherMoney {
.OtherMoney {
display: flex;
justify-content: flex-start;
// color: #999999;
...
...
@@ -1460,9 +1718,9 @@ page {
input {
height: 100%;
}
}
}
.OtherMoney view:nth-child(2) {
.OtherMoney view:nth-child(2) {
// width: 30rpx;
// height: 30rpx;
// background: #F0F0F0;
...
...
@@ -1471,16 +1729,39 @@ page {
// line-height: 30rpx;
// margin-top: 7rpx;
// margin-left: 5rpx;
}
}
.paytype {
display: flex;
margin-top: 39rpx;
width: 100%;
height: 40rpx;
justify-content: space-between;
font-size: 28rpx;
.payType {
.left {
font-weight: 500;
color: rgba(0, 0, 0, 0.4);
}
.right {
color: rgba(0, 0, 0, 0.85);
.van-icon {
font-size: 28rpx;
color: #161616;
}
}
}
.payType {
height: 98rpx;
line-height: 98rpx;
display: flex;
justify-content: space-between;
}
}
.payType view:nth-child(1) {
.payType view:nth-child(1) {
// width: 120rpx;
height: 42rpx;
font-size: 32rpx;
...
...
@@ -1488,9 +1769,9 @@ page {
font-weight: 500;
color: #888888;
line-height: 98rpx;
}
}
.payType view::nth-child(2) {
.payType view::nth-child(2) {
width: 225rpx;
height: 45rpx;
font-size: 32rpx;
...
...
@@ -1498,9 +1779,9 @@ page {
font-weight: bold;
color: #333333;
line-height: 45rpx;
}
}
.arrow {
.arrow {
transform: rotate(-45deg);
top: -3rpx;
border: solid #999999;
...
...
@@ -1508,37 +1789,54 @@ page {
display: inline-block;
padding: 8rpx;
position: relative;
}
}
@media (min-height: 650px) {
// @media (min-height: 650px) {
@media (min-height: 1040px) {
.bottomdiv {
position: fixed;
left: 0;
right: 0;
bottom: 30rpx;
}
}
}
.DepositID {
width: 630rpx;
height: 92rpx;
background: #04ba73;
border-radius: 8rpx;
.DepositID {
width: 100%;
height: 90rpx;
background: #04b871;
border-radius: 45px;
line-height: 90rpx;
text-align: center;
font-size: 34rpx;
font-weight: 500;
color: #ffffff;
margin: 0 auto;
margin-top: 29rpx;
text-align: center;
bottom: 30rpx;
}
}
.DepositID span {
.DepositID span {
height: 50rpx;
font-size: 36rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 92rpx;
}
}
.service {
margin-top: 118rpx;
width: 100%;
height: 40rpx;
font-size: 28rpx;
font-weight: 400;
color: rgba(0, 0, 0, 0.5);
line-height: 40rpx;
text-align: center;
}
.switchbankCard {
.switchbankCard {
text-align: center;
/* width: 205px; */
// height: 28rpx;
...
...
@@ -1548,9 +1846,9 @@ page {
text-decoration: underline;
color: #268ef8;
margin-top: 23rpx;
}
}
.RechargeConfirmationBox {
.RechargeConfirmationBox {
position: fixed;
left: 0;
right: 0;
...
...
@@ -1645,9 +1943,9 @@ page {
}
}
}
}
}
.closePhoneBox {
.closePhoneBox {
// width: 35rpx;
height: 35rpx;
position: relative;
...
...
@@ -1661,9 +1959,9 @@ page {
position: relative;
right: 10rpx;
}
}
}
.doBtnTx {
.doBtnTx {
width: 506rpx;
height: 92rpx;
background: #04ba73;
...
...
@@ -1675,46 +1973,46 @@ page {
right: 0;
margin: 0 auto;
bottom: 38rpx;
}
}
.PhoneNum,
.VerifyCode {
.PhoneNum,
.VerifyCode {
width: 506rpx;
height: 80rpx;
line-height: 60rpx;
background: #f7f6fb;
margin: 0 auto;
margin-top: 20rpx;
}
}
.VerifyCode {
.VerifyCode {
display: flex;
justify-content: space-between;
}
}
.VerifyCode input {
.VerifyCode input {
width: 200rpx;
}
}
.CodeMsg {
.CodeMsg {
color: #01bc73;
background: #f7f6fb;
font-size: 32rpx;
font-weight: 600;
line-height: 80rpx;
letter-spacing: 3rpx;
}
}
.placeholderInput {
.placeholderInput {
color: #aaaaaa;
font-size: 42rpx;
font-weight: 500;
letter-spacing: 3rpx;
// padding-left: 50rpx;
height: 80rpx;
}
}
.OtherTitle {
.OtherTitle {
height: 67rpx;
font-size: 48rpx;
font-family: PingFangSC-Semibold, PingFang SC;
...
...
@@ -1723,55 +2021,55 @@ page {
line-height: 67rpx;
padding-top: 60rpx;
}
}
.inputOtherM {
.inputOtherM {
display: flex;
height: 100rpx;
margin-top: 40rpx;
}
}
.inputOtherM input {
.inputOtherM input {
border: none;
outline: none;
height: 50rpx;
padding-left: 16rpx;
font-size: 72rpx;
font-weight: 600;
}
}
.inputOtherM span:nth-child(1) {
.inputOtherM span:nth-child(1) {
width: 72rpx;
font-size: 80rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #010101;
line-height: 100rpx;
}
}
.OtherLine {
.OtherLine {
width: 631rpx;
height: 1rpx;
background-color: #cccccc;
margin-top: 19rpx;
}
}
.depositbox {
.depositbox {
margin-top: 31rpx;
height: 30rpx;
line-height: 30rpx;
}
}
.depositImg {
.depositImg {
width: 24rpx;
height: 24rpx;
vertical-align: middle;
margin-right: 8rpx;
position: relative;
top: -2rpx;
}
}
.Recharge_ {
.Recharge_ {
height: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
...
...
@@ -1779,16 +2077,16 @@ page {
color: #333333;
line-height: 40rpx;
margin-top: 40rpx;
}
}
.Recharge_ span:nth-child(2) {
.Recharge_ span:nth-child(2) {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #fa6400;
}
}
.placeholderinputOtherM {
.placeholderinputOtherM {
height: 50rpx;
// font-family: PingFangSC-Semibold, PingFang SC;
// font-weight: 600;
...
...
@@ -1799,14 +2097,14 @@ page {
font-family: PingFang SC;
font-weight: 500;
color: #888888;
}
}
// 异常处理
.RechargeException {
// 异常处理
.RechargeException {
padding-top: 20rpx;
}
}
.weui-label {
.weui-label {
// width: 118rpx;
height: 42rpx;
font-size: 30rpx;
...
...
@@ -1816,9 +2114,9 @@ page {
line-height: 42rpx;
font-weight: bold;
margin-left: 30rpx;
}
}
.tiptext {
.tiptext {
height: 1.06rem;
font-size: 0.75rem;
font-family: PingFangSC-Regular, PingFang SC;
...
...
@@ -1827,9 +2125,9 @@ page {
line-height: 1.06rem;
margin-bottom: 0.625rem;
text-align: center;
}
}
.bottomDetail {
.bottomDetail {
width: 628rpx;
height: 88rpx;
color: white;
...
...
@@ -1842,37 +2140,37 @@ page {
line-height: 88rpx;
margin-top: 84rpx;
}
}
.RechargeException input::placeholder {
.RechargeException input::placeholder {
color: #a1a4a8;
}
}
.RechargeException .weui-cell {
.RechargeException .weui-cell {
height: 4rem;
padding: 0 !important;
}
}
.idCardPhoto1,
.idCardPhoto2 {
.idCardPhoto1,
.idCardPhoto2 {
width: 388rpx;
height: 224rpx;
margin: 0 auto;
margin-top: 20rpx;
}
}
.idCardPhoto1 image,
.idCardPhoto2 image {
.idCardPhoto1 image,
.idCardPhoto2 image {
width: 100%;
height: 100%;
position: relative;
}
}
.weui-toptips_success {
.weui-toptips_success {
background-color: #03bc73 !important;
}
}
.positionCam {
.positionCam {
height: 32rpx;
font-size: 22rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
...
...
@@ -1882,9 +2180,9 @@ page {
text-align: center;
position: relative;
top: -29px;
}
}
.BgCoverBox {
.BgCoverBox {
width: 100vw;
height: 100vh;
position: fixed;
...
...
@@ -1893,22 +2191,22 @@ page {
z-index: 10;
background: #000000;
opacity: 0.5;
}
}
.hideListCover {
.hideListCover {
max-height: 50vh;
overflow-y: auto;
padding: 0;
}
}
.bottomDiv {
.bottomDiv {
font-weight: bold;
height: 50px;
line-height: 50px;
border-bottom: 1px solid #e6e6e6;
}
}
/deep/ .signAlert {
/deep/ .signAlert {
/deep/ .van-dialog__message {
line-height: 60rpx;
}
...
...
@@ -1918,11 +2216,25 @@ page {
flex: none !important;
margin: 0 auto;
}
}
}
/deep/ uni-input.otherMoneyInput {
/deep/ uni-input.otherMoneyInput {
height: 120rpx;
line-height: 120rpx;
font-weight: 600;
}
}
.popoverItem {
width: 225rpx;
margin: 0 20rpx;
padding: 16rpx 0;
text-align: center;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
border-bottom: 1rpx solid #dddddd;
}
.popoverItem:last-child {
border-bottom: 0;
}
</
style
>
src/pages/IcbcModule/Recharge/Recharge.vue
View file @
81d2a368
<
template
>
<view
class=
"container"
>
<view
class=
"userInfoBox"
>
<view
class=
"firstLine"
>
<view
class=
"avatar"
>
<image
:src=
"ImgUrl + 'user/personAva.png'"
alt=
""
></image>
</view>
<view
class=
"name"
>
{{
PersonalInfo
.
name
}}
</view>
<view
v-if=
"PersonalInfo.usertype == '1'"
>
{{
PersonalInfo
.
gradename
}}{{
PersonalInfo
.
classname
}}
</view>
<view
v-else
>
教职工
</view>
</view>
<view
class=
"secondLine"
>
{{
PersonalInfo
.
schoolname
}}
</view>
</view>
<view
class=
"contentWrapper"
v-if=
"!depotMoneyother"
>
<view
class=
"balanceWrapper"
>
<view
class=
"firstLine"
>
<view
class=
"left"
>
<view>
可用余额(元)
</view>
<view>
{{
cardBalanceTx
}}
</view>
</view>
<view
class=
"right"
>
<van-popover
v-model=
"showPopover"
trigger=
"click"
placement=
"bottom-end"
>
<view
class=
"popoverItem"
v-for=
"(item, index) in actions"
@
click=
"onSelect(item)"
:id=
"item.id ? item.id : '#item'+index"
>
{{
item
.
text
}}
</view>
<template
#reference
>
<image
class=
"icon"
:src=
"ImgUrl + 'user/more.png'"
alt=
""
></image>
</
template
>
</van-popover>
</view>
</view>
<view
class=
"lastLine"
>
<view>
**** **** **** {{ bankInfo_.accountNo.slice(bankInfo_.accountNo.length - 4)}}
</view>
<view
class=
"right"
@
click=
"ToWalletTx"
>
<!-- <image class="btn" :src="ImgUrl + 'user/cashBtn.png'" alt=""></image> -->
提现
</view>
</view>
</view>
</view>
<view
class=
"contentBox"
v-if=
"!depotMoneyother"
>
<!-- <image mode='widthFix' src="https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/xiaopaycard (31).png"></image> -->
<view
class=
"contentDiv
"
>
<view
class=
"contentDiv"
style=
"display: none
"
>
<view
class=
"headview"
>
<view
class=
"schoolname"
>
{{ PersonalInfo.schoolname }}
</view>
<view
class=
"IconCls"
>
电子校园卡
</view>
</view>
<!-- 卡号显示 -->
<view
class=
"cardNum"
>
<view
class=
"cardNumleft"
><span>
账户:
</span>
**** **** ****
<view
class=
"cardNumleft"
><span>
账户:
</span>
**** **** ****
{{ bankInfo_.accountNo.slice(bankInfo_.accountNo.length - 4) }}
<span>
(工商III类户)
</span>
</view>
<view
class=
"cardNumright"
id=
"cardNumright"
@
click=
"CopyCardNumber"
>
复制
</view
>
<view
class=
"cardNumright"
id=
"cardNumright"
@
click=
"CopyCardNumber"
>
复制
</view>
</view>
<view
class=
"HidenText"
>
<view
class=
"userName"
>
姓名:
<span>
{{
PersonalInfo
.
name
}}
</span></view
>
<view
class=
"userName"
>
姓名:
<span>
{{ PersonalInfo.name }}
</span></view>
<view
class=
"StudentCls"
v-if=
"PersonalInfo.usertype == '1'"
>
班级:{{ PersonalInfo.gradename }}({{
PersonalInfo.classname
}}
)
</view
>
}})
</view>
<view
class=
"TeacherCls"
v-else
>
教职工
</view>
</view>
<view
class=
"Balance"
>
<view
class=
"cardBalanceTx"
>
余额:¥
<span>
{{
cardBalanceTx
}}
</span></view
>
<view
class=
"cardBalanceTx"
>
余额:¥
<span>
{{ cardBalanceTx }}
</span></view>
<view
@
click=
"ToWalletTx"
>
<span
style=
"display: inline-block; padding-right: 10rpx"
>
余额提现
</span
>
<image
style=
"position: relative; width: 13rpx; height: 20rpx"
class=
"ImgIcon1"
mode=
"widthFix"
:src=
"ImgUrl + 'images/xiaopaycard (17).png'"
alt=
""
></image>
<span
style=
"display: inline-block; padding-right: 10rpx"
>
余额提现
</span>
<image
style=
"position: relative; width: 13rpx; height: 20rpx"
class=
"ImgIcon1"
mode=
"widthFix"
:src=
"ImgUrl + 'images/xiaopaycard (17).png'"
alt=
""
></image>
</view>
</view>
</view>
<!-- 充值明细 -->
<view
class=
"RechargeDetailed"
@
click=
"BackToMini('purchaseDetail')"
>
<!-- <view style="display: none"
class="RechargeDetailed" @click="BackToMini('purchaseDetail')">
账户明细
</view
>
</view> --
>
<!-- 充值账户 -->
<view
class=
"Recharge"
>
<span></span>
<span>
账户充值
</span>
</view>
<!-- 充值的金额 -->
<view
class=
"MoneyBox"
>
<view
class=
"depotMoney"
@
click=
"depotMoney(item.value, index)"
v-bind:class=
"MoneyIndex == index ? 'choiceClass' : ''"
:data-money=
"item.value || 0"
v-for=
"(item, index) in MoneyList"
:key=
"index"
>
<!-- <view class="MoneyBox">
<view class="depotMoney" @click="depotMoney(item.value, index)"
v-bind:class="MoneyIndex == index ? 'choiceClass' : ''" :data-money="item.value || 0"
v-for="(item, index) in MoneyList" :key="index">
<span class="value">
{{ item.value }}
</span>
<span style="font-size: 28rpx; font-weight: 600; margin-left: 7rpx">{{
item.lable
}}</span>
</view>
</view> -->
<view
class=
"moneyWrapper"
>
<view
class=
"moneyItem"
@
click=
"depotMoney(item.value, index)"
v-bind:class=
"MoneyIndex == index ? 'active' : ''"
:data-money=
"item.value || 0"
v-for=
"(item, index) in MoneyList"
:key=
"index"
>
<view>
{{ item.value }}
</view>
<view>
{{ item.lable }}
</view>
</view>
<view
class=
"other"
>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
@
blur=
"ReturnToTop"
placeholder=
"其他金额,最低3元"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
</view>
</view>
<!-- <view class="MoneyBox" style="display: none !important;">
<view class="depotMoney" @click="depotMoney(item.value, index)"
v-bind:class="MoneyIndex == index ? 'choiceClass' : ''" :data-money="item.value || 0"
v-for="(item, index) in MoneyList" :key="index">
<span class="value">
{{ item.value }}
</span>
<span style="font-size: 28rpx; font-weight: 600; margin-left: 7rpx">
{{item.lable}}
</span>
</view>
</view> -->
<!-- <span class="tips" v-show="item.tips">
{{item.tips}}
</span> -->
</view>
</view>
<!-- 充值限额提示 -->
<view
class=
"depositbox"
>
<image
mode=
"widthFix"
class=
"depositImg"
src=
"../../../static/img/depositIcon.png"
></image>
<span
style=
"
<image
mode=
"widthFix"
class=
"depositImg"
src=
"../../../static/img/depositIcon.png"
></image>
<span
style=
"
vertical-align: middle;
font-size: 28rpx;
color: #333333;
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"> -->
<view
class=
"OtherMoney
"
>
<view
class=
"OtherMoney"
style=
"display: none
"
>
<span>
¥
</span>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
@
blur=
"ReturnToTop"
placeholder=
"请输入其他金额,最低3元"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
@
blur=
"ReturnToTop"
placeholder=
"请输入其他金额,最低3元"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
</view>
<!-- 支付方式 -->
<view
class=
"payType"
@
click=
"queryBindCardList"
>
<view
class=
"paytype"
>
<view
class=
"left"
>
付款账户
</view>
<view
class=
"right"
@
click=
"queryBindCardList"
>
{{ bankInfo_.bindCardName }}({{ bankInfo_.bindCardNo.slice(bankInfo_.bindCardNo.length - 4)}})
<van-icon
name=
"arrow"
/>
</view>
</view>
<view
class=
"payType"
style=
"display: none"
@
click=
"queryBindCardList"
>
<view>
付款方式
</view>
<view>
{{ bankInfo_.bindCardName }}
{{ bankInfo_.bindCardNo.slice(bankInfo_.bindCardNo.length - 4)
}}
<span
class=
"arrow"
></span
>
</view>
}}
<span
class=
"arrow"
></span
>
</view>
<!-- <view>{{bankInfo_.accountName}}({{bankInfo_.accountNo.slice(bankInfo_.accountNo.length-4)}}) <span
class="arrow"></span></view> -->
</view>
<!-- <view class="" style="height: 1rpx;background-color: #DFDFDF;"></view> -->
<!-- 充值生活费 -->
<view
class=
"bottomdiv"
>
<view
class=
"DepositID"
@
click=
"toDeposit"
v-bind:style=
"Money != '' ? '' : 'background: #e6e6e6 !important;'"
>
<view
class=
"DepositID"
@
click=
"toDeposit"
v-bind:style=
"Money != '' ? '' : 'background: #e6e6e6 !important;'"
>
<span>
充值生活费
</span>
</view>
<!-- -->
<view
class=
"switchbankCard"
@
click=
"ChangeBankPay"
<!--
<view class="switchbankCard" @click="ChangeBankPay"
>我要换银行卡支付</view
>
> -->
<view
class=
"service"
>
{{bankInfo_.accountName}}Ⅲ类户为您提供服务
</view>
</view>
</view>
<!-- 其他充值金额 -->
<view
class=
"contentBox
"
v-if=
"depotMoneyother"
>
<view
class=
"contentBox"
style=
"display: none;
"
v-if=
"depotMoneyother"
>
<view
class=
"OtherTitle"
>
充值金额
</view>
<view
class=
"inputOtherM"
>
<span>
¥
</span>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
<input
v-model=
"inputOtherM"
@
input=
"inputControl"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
</view>
<view
class=
"OtherLine"
></view>
<!-- 充值范围 -->
<view
class=
"Recharge_"
>
<!-- <image mode="widthFix" class="depositImg" src="../../static/img/depositIcon.png"></image> -->
<span>
最大可充值金额:
</span>
<span
>
¥
<span>
3.00 ~
{{
RechargeMax
}}
</span></span
>
<span>
¥
<span>
3.00 ~ {{ RechargeMax }}
</span></span>
</view>
</view>
<!-- 弹出层 -->
...
...
@@ -193,31 +217,21 @@
</uni-popup>
<!-- 选择银行卡 -->
<view
class=
"selectCard"
>
<van-popup
v-model=
"popshow"
round
position=
"bottom"
:style=
"
{ height: '30%' }"
>
<van-popup
v-model=
"popshow"
round
position=
"bottom"
:style=
"{ height: '40%' }"
>
<!-- 银行卡列表 -->
<view
class=
"accountlist"
>
<!-- 切换绑定的一类卡列表 -->
<view
class=
"showBindCardList"
>
<view
class=
"choiceBox"
>
选择付款账户
</view>
<view
class=
"ListItem"
@
click=
"ChangeCardPay(item)"
v-for=
"(item, index) in bindcardList"
:key=
"index"
>
<view
class=
"cardsList"
>
<view
class=
"ListItem"
@
click=
"ChangeCardPay(item)"
v-for=
"(item, index) in bindcardList"
:key=
"index"
>
<span
style=
"padding-right: 10px"
>
{{ item.bindCardName }}
</span>
<span
>
尾号:
{{
item
.
bindCardNo
.
slice
(
item
.
bindCardNo
.
length
-
4
)
}}
</span
>
<image
class=
'BankListImg'
src=
'../../../static/img/choiceBank.png'
></image>
<span>
尾号:{{item.bindCardNo.slice(item.bindCardNo.length - 4)}}
</span>
<!-- <image class="BankListImg" src="../../../static/img/choiceBank.png"></image> -->
</view>
</view>
<view
class=
"changeCard"
@
click=
"ChangeBankPay"
>
我要换卡支付
</view>
</view>
</view>
</van-popup>
...
...
@@ -226,28 +240,31 @@
</template>
<
script
>
import
{
Dialog
,
Toast
}
from
"
vant
"
;
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:
"
)
{
import
{
Dialog
,
Toast
}
from
"
vant
"
;
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 = "/api";
}
let
times
=
0
;
var
limitClick
=
false
;
//禁止重复点击
var
sessionID
=
""
,
}
let
times
=
0
;
var
limitClick
=
false
;
//禁止重复点击
var
sessionID
=
""
,
userID
=
""
;
var
payCardNumber
=
""
;
//一类卡号
var
orderSerialNo
=
""
;
//提现结果查询 指令号
var
businessNo
=
""
,
var
payCardNumber
=
""
;
//一类卡号
var
orderSerialNo
=
""
;
//提现结果查询 指令号
var
businessNo
=
""
,
otpOrderNo
=
""
,
mobileNo
=
""
;
var
msCount
=
60
;
//定时器
var
MyTimer
=
null
;
var
fromType
=
0
;
//0转账 1提现
var
opeType
=
0
;
//0充值 1提现 手机号验证
var
bankInfo
=
{
var
msCount
=
60
;
//定时器
var
MyTimer
=
null
;
var
fromType
=
0
;
//0转账 1提现
var
opeType
=
0
;
//0充值 1提现 手机号验证
var
bankInfo
=
{
acctNoArray
:
""
,
idNo
:
""
,
schoolId
:
""
,
...
...
@@ -255,12 +272,12 @@ var bankInfo = {
userId
:
""
,
sessionid
:
""
,
wechattype
:
1
,
};
/**
};
/**
* 对象转拼接字符串
* @param {*} res Object 需要转换的数据对象
*/
function
OforS
(
res
)
{
function
OforS
(
res
)
{
var
resL
=
0
;
var
outS
=
""
;
for
(
var
i
in
res
)
{
...
...
@@ -272,14 +289,24 @@ function OforS(res) {
resL
++
;
}
return
outS
;
}
export
default
{
}
export
default
{
components
:
{
keyboardPackage
,
},
name
:
"
Recharge
"
,
data
()
{
return
{
showPopover
:
false
,
// 通过 actions 属性来定义菜单选项
actions
:
[{
text
:
"
复制卡号
"
,
id
:
"
cardNumright
"
},
{
text
:
"
账户明细
"
},
{
text
:
"
常见问题
"
}],
popshow
:
false
,
// 输入其它金额
isOtherMoney
:
false
,
...
...
@@ -305,8 +332,7 @@ export default {
bindCardNo
:
""
,
},
ImgUrl
:
this
.
$ImgUrl
,
MoneyList
:
[
{
MoneyList
:
[{
lable
:
"
元
"
,
value
:
100
,
},
...
...
@@ -330,7 +356,7 @@ export default {
bindcardList
:
[],
};
},
onLoad
:
function
(
options
)
{
onLoad
:
function
(
options
)
{
console
.
log
(
options
);
// 初始化
userID
=
options
[
"
userID
"
]
||
""
;
...
...
@@ -339,11 +365,24 @@ export default {
bankInfo
.
sessionid
=
sessionID
||
""
;
this
.
QueryUserInfo
();
},
created
:
function
()
{},
mounted
:
function
()
{},
created
:
function
()
{},
mounted
:
function
()
{},
methods
:
{
onSelect
(
action
)
{
if
(
action
.
text
==
"
复制卡号
"
)
{
this
.
CopyCardNumber
();
}
else
if
(
action
.
text
==
"
账户明细
"
)
{
this
.
BackToMini
(
'
purchaseDetail
'
);
}
else
if
(
action
.
text
==
"
常见问题
"
)
{
uni
.
navigateTo
({
url
:
`../../commonProblem/commonProblem`
})
}
},
async
ChangeBankPay
()
{
uni
.
showLoading
({
mask
:
true
});
uni
.
showLoading
({
mask
:
true
});
let
status
=
await
this
.
accountCloseacceptStatusQuery
();
uni
.
hideLoading
();
if
(
status
!==
0
)
return
false
;
...
...
@@ -353,8 +392,7 @@ export default {
return
new
Promise
((
resolve
,
reject
)
=>
{
$
.
ajax
({
//查询是否提交销户
url
:
gHost
+
url
:
gHost
+
"
/bank-wechat/icbc/account/manager/accountCloseacceptStatusQuery
"
,
type
:
"
post
"
,
data
:
{
...
...
@@ -367,10 +405,14 @@ export default {
headers
:
{
sessionid
:
sessionID
,
},
success
:
({
code
,
message
,
results
})
=>
{
success
:
({
code
,
message
,
results
})
=>
{
let
status
=
results
&&
results
.
status
;
// 0表示未申请,1申请中,2已销户,3销户申请失败
if
(
code
===
"
10000
"
&&
status
==
"
0
"
)
{
}
else
if
(
code
===
"
10000
"
&&
status
==
"
1
"
)
{
if
(
code
===
"
10000
"
&&
status
==
"
0
"
)
{}
else
if
(
code
===
"
10000
"
&&
status
==
"
1
"
)
{
uni
.
showToast
({
title
:
"
您已提交销户申请,银行正在审核中。
"
,
icon
:
"
none
"
,
...
...
@@ -383,7 +425,7 @@ export default {
}
resolve
(
status
);
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
uni
.
showToast
({
title
:
err
.
message
||
"
请求失败
"
,
icon
:
"
none
"
,
...
...
@@ -434,8 +476,7 @@ export default {
$
(
"
.doBtnTx
"
).
html
(
"
提现
"
);
opeType
=
1
;
uni
.
navigateTo
({
url
:
"
../Reflect/Reflect?
"
+
url
:
"
../Reflect/Reflect?
"
+
OforS
({
sessionID
:
sessionID
,
userID
:
userID
,
...
...
@@ -453,7 +494,7 @@ export default {
this_
.
MoneyIndex
=
-
1
;
this_
.
isOtherMoney
=
true
;
let
obj
=
e
.
detail
;
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
obj
.
value
=
obj
.
value
.
replace
(
/
[^\d
.
]
/g
,
""
);
//清除"数字"和"."以外的字符
obj
.
value
=
obj
.
value
.
replace
(
/^
\.
/g
,
""
);
//验证第一个字符是数字而不是.
obj
.
value
=
obj
.
value
.
replace
(
/
\.{2,}
/g
,
"
.
"
);
//只保留第一个. 清除多余的.
...
...
@@ -482,7 +523,7 @@ export default {
if
(
str
.
lastIndexOf
(
"
.
"
)
==
str
.
length
-
1
)
{
this
.
inputOtherM
=
str
.
substring
(
0
,
str
.
length
-
1
);
}
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
document
.
scrollingElement
.
scrollTo
(
0
,
this
.
scrollTop
);
});
},
...
...
@@ -540,7 +581,7 @@ export default {
headers
:
{
sessionid
:
sessionID
,
},
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
uni
.
hideLoading
();
if
(
res5
.
code
==
"
10000
"
)
{
this_
.
close
();
...
...
@@ -556,7 +597,7 @@ export default {
weui
.
topTips
(
res5
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
uni
.
hideLoading
();
},
});
...
...
@@ -585,7 +626,7 @@ export default {
headers
:
{
sessionid
:
sessionID
,
},
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
loading
.
clear
();
if
(
res5
.
code
==
"
10000
"
)
{
let
appStatus
=
res5
.
results
.
appStatus
;
...
...
@@ -609,7 +650,7 @@ export default {
});
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
clear
();
},
});
...
...
@@ -617,13 +658,14 @@ export default {
// 复制我卡号
async
CopyCardNumber
()
{
let
value
=
this
.
bankInfo_
.
accountNo
;
console
.
log
(
value
,
'
valuevaluevaluevaluevalue
'
)
Dialog
({
title
:
"
系统提示
"
,
message
:
"
复制成功!
"
,
});
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
let
clipboard
=
new
ClipboardJS
(
"
#cardNumright
"
,
{
text
:
function
()
{
text
:
function
()
{
return
value
;
},
});
...
...
@@ -649,7 +691,7 @@ export default {
},
//按钮操作
HideHTML
(
dom
,
type
)
{
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
if
(
type
==
0
)
{
$
(
"
.
"
+
dom
).
css
(
"
display
"
,
"
none
"
);
}
else
{
...
...
@@ -688,7 +730,7 @@ export default {
bindMedium
:
item
.
bindCardNo
,
bindMediumName
:
item
.
bindCardName
,
},
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
loading
.
hide
();
if
(
res5
.
code
==
"
10000
"
)
{
this_
.
queryUserBankInfo
();
...
...
@@ -698,7 +740,7 @@ export default {
}
this_
.
popshow
=
false
;
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -718,7 +760,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res4
)
{
success
:
function
(
res4
)
{
loading
.
hide
();
if
(
res4
.
code
==
"
10000
"
)
{
this_
.
bindcardList
=
res4
.
results
;
...
...
@@ -727,7 +769,7 @@ export default {
weui
.
topTips
(
res4
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -748,7 +790,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res3
)
{
success
:
function
(
res3
)
{
// loading.hide();
if
(
res3
.
code
==
"
10000
"
)
{
if
(
res3
.
results
.
accountBalance
==
null
)
{
...
...
@@ -770,10 +812,10 @@ export default {
weui
.
topTips
(
res3
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
// loading.hide();
},
complete
:
function
(
XMLHttpRequest
,
status
)
{
complete
:
function
(
XMLHttpRequest
,
status
)
{
// loading.hide();
if
(
status
==
"
timeout
"
)
{
weui
.
topTips
(
"
请求超时,余额查询失败
"
);
...
...
@@ -786,7 +828,7 @@ export default {
let
this_
=
this
;
// let loading = weui.loading('请稍后');
$
.
ajax
({
url
:
gHost
+
"
/bank-wechat/user/bank/get
"
,
url
:
gHost
+
"
/bank-wechat/user/bank/get/v2
"
,
type
:
"
POST
"
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
{
...
...
@@ -795,7 +837,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res2
)
{
success
:
function
(
res2
)
{
if
(
res2
.
code
==
"
10000
"
)
{
if
(
!
res2
.
results
)
{
weui
.
topTips
(
"
获取用户银行信息失败!
"
);
...
...
@@ -811,7 +853,7 @@ export default {
weui
.
topTips
(
res2
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
// loading.hide();
},
});
...
...
@@ -834,7 +876,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res1
)
{
success
:
function
(
res1
)
{
loading
.
clear
();
if
(
res1
.
code
==
"
10000
"
)
{
bankInfo
.
schoolId
=
res1
.
results
.
schoolid
;
...
...
@@ -855,31 +897,199 @@ export default {
},
1500
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
clear
();
},
});
},
},
};
};
</
script
>
<
style
lang=
"scss"
>
html
,
body
,
page
{
html
,
body
,
page
{
width
:
750rpx
;
background
:
linear-gradient
(
180deg
,
#ffffff
0%
,
#fafafa
100%
);
}
}
.userInfoBox
{
display
:
flex
;
flex-direction
:
column
;
width
:
calc
(
100%
-
64rpx
);
height
:
150rpx
;
margin
:
0
32rpx
;
margin-top
:
30rpx
;
background
:
linear-gradient
(
270deg
,
#f4f4f4
0%
,
#ebebeb
100%
);
border-radius
:
16px
;
.firstLine
{
display
:
flex
;
flex-direction
:
row
;
width
:
calc
(
100%
-
68rpx
);
height
:
56rpx
;
line-height
:
56rpx
;
margin
:
0
34rpx
;
margin-top
:
28rpx
;
overflow
:
hidden
;
view
{
white-space
:
nowrap
;
}
.avatar
{
width
:
56rpx
;
height
:
56rpx
;
uni-image
{
width
:
56rpx
;
height
:
56rpx
;
}
}
.name
{
margin-left
:
17rpx
;
font-size
:
36rpx
;
font-weight
:
600
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
}
view
:last-child
{
margin-left
:
10rpx
;
align-self
:
center
;
align-items
:
center
;
padding
:
0
8rpx
;
height
:
40rpx
;
line-height
:
40rpx
;
background
:
rgba
(
0
,
0
,
0
,
0
.08
);
border-radius
:
4rpx
;
font-size
:
26rpx
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.5
);
}
}
.secondLine
{
display
:
flex
;
width
:
calc
(
100%
-
62rpx
);
margin
:
0
31rpx
;
margin-top
:
8rpx
;
height
:
37rpx
;
line-height
:
37rpx
;
font-size
:
26rpx
;
color
:
rgba
(
0
,
0
,
0
,
0
.45
);
}
}
.contentWrapper
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.balanceWrapper
{
width
:
calc
(
100%
-
144rpx
);
margin
:
0
32rpx
;
margin-top
:
24rpx
;
height
:
249rpx
;
padding
:
40rpx
40rpx
0
;
background-image
:
url("https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/user/bankBg.png")
;
background-repeat
:
no-repeat
;
background-size
:
100%
100%
;
position
:
relative
;
display
:
flex
;
flex-direction
:
column
;
.firstLine
{
display
:
flex
;
justify-content
:
space-between
;
.left
{
view
:first-child
{
height
:
33rpx
;
font-size
:
24rpx
;
font-weight
:
600
;
color
:
rgba
(
255
,
255
,
255
,
0
.85
);
line-height
:
33rpx
;
}
view
:last-child
{
height
:
84rpx
;
font-size
:
60rpx
;
font-weight
:
600
;
color
:
#ffffff
;
line-height
:
84rpx
;
}
}
.right
{
width
:
60rpx
;
height
:
60rpx
;
align-self
:
flex-start
;
.icon
{
width
:
60rpx
;
height
:
60rpx
;
}
}
}
.lastLine
{
display
:
flex
;
width
:
100%
;
justify-content
:
space-between
;
margin-top
:
20rpx
;
view
:first-child
{
height
:
60rpx
;
font-size
:
40rpx
;
font-weight
:
600
;
color
:
#ffffff
;
line-height
:
60rpx
;
}
.right
{
width
:
140rpx
;
height
:
60rpx
;
line-height
:
60rpx
;
font-size
:
30rpx
;
font-weight
:
600
;
color
:
#04b871
;
background-image
:
url("https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/user/cashBtn.png")
;
background-repeat
:
no-repeat
;
background-size
:
cover
;
text-align
:
center
;
}
.btn
{
width
:
140rpx
;
height
:
60rpx
;
}
}
}
.accountlist
{
width
:
100%
;
height
:
100%
;
}
.showBindCardList
{
width
:
100%
;
height
:
100%
;
.showBindCardList
{
.choiceBox
{
text-align
:
center
;
font-weight
:
bold
;
height
:
50
px
;
line-height
:
50
px
;
height
:
100r
px
;
line-height
:
100r
px
;
padding
:
0
;
border-bottom
:
0
.5px
solid
#e6e6e6
;
border-bottom
:
1rpx
solid
#e6e6e6
;
}
.cardsList
{
width
:
100%
;
height
:
calc
(
100%
-
260rpx
);
overflow-y
:
scroll
;
}
.ListItem
{
...
...
@@ -890,18 +1100,29 @@ page {
position
:
relative
;
text-align
:
center
;
}
}
.SubmittedSuccessfully
{
.changeCard
{
margin
:
0
auto
;
margin-top
:
40rpx
;
height
:
40rpx
;
font-size
:
28rpx
;
font-weight
:
400
;
color
:
#04B871
;
line-height
:
40rpx
;
text-align
:
center
;
}
}
.SubmittedSuccessfully
{
width
:
400rpx
!
important
;
height
:
200rpx
!
important
;
margin
:
0
auto
!
important
;
background
:
#000000
;
opacity
:
0
.8
;
border-radius
:
8rpx
;
}
}
.cardNum
{
.cardNum
{
width
:
574rpx
;
margin
:
0
auto
;
display
:
flex
;
...
...
@@ -921,9 +1142,9 @@ page {
text-decoration
:
underline
;
color
:
#ffffff
;
}
}
}
.RechargeDetailed
{
.RechargeDetailed
{
text-align
:
center
;
// width: 118rpx;
height
:
32rpx
;
...
...
@@ -934,15 +1155,16 @@ page {
text-decoration
:
underline
;
color
:
#36a8ff
;
margin-top
:
50rpx
;
}
}
.contentBox
{
.contentBox
{
width
:
670rpx
;
height
:
376rpx
;
display
:
flex
;
flex-direction
:
column
;
margin
:
0
auto
;
}
}
.contentDiv
{
.contentDiv
{
height
:
100%
;
// margin-top: 36rpx;
border-radius
:
15rpx
;
...
...
@@ -952,16 +1174,16 @@ page {
position: relative;
top: 36rpx;
}
}
.HidenText {
.HidenText {
width: 574rpx;
margin: 0 auto;
padding-top: 88rpx;
}
}
.HidenText,
.Balance {
.HidenText,
.Balance {
padding-left: 46rpx;
padding-right: 40rpx;
display: flex;
...
...
@@ -969,9 +1191,9 @@ page {
font-size: 28rpx;
color: #ffffff;
}
}
.Balance {
.Balance {
width: 574rpx;
margin: 0 auto;
margin-top: 20rpx;
...
...
@@ -980,33 +1202,20 @@ page {
font-family: PingFang SC;
font-weight: bold;
color: #ffffff;
}
.Recharge {
// height: 30rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
margin-top: 58rpx;
span:nth-child(1) {
width: 4rpx;
height: 30rpx;
background: #23d6a3;
border-radius: 2rpx;
display: inline-block;
position: relative;
top: 5rpx;
}
span:nth-child(2) {
display: inline-block;
margin-left: 16rpx;
.Recharge {
width: 100%;
height: 40rpx;
margin-top: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: rgba(0, 0, 0, 0.4);
line-height: 40rpx;
}
}
.headview {
.headview {
display: flex;
justify-content: space-between;
// padding-left: 40rpx;
...
...
@@ -1015,9 +1224,9 @@ page {
padding-top: 36rpx;
width: 574rpx;
margin: 0 auto;
}
}
.headview .schoolname {
.headview .schoolname {
width: 252rpx;
height: 50rpx;
font-size: 36rpx;
...
...
@@ -1025,9 +1234,9 @@ page {
font-weight: 500;
color: #ffffff;
line-height: 50rpx;
}
}
.headview .IconCls {
.headview .IconCls {
width: 170rpx;
height: 48rpx;
background: #20946d;
...
...
@@ -1038,23 +1247,92 @@ page {
color: #ffffff;
line-height: 48rpx;
text-align: center;
}
}
.moneyWrapper {
margin-top: 10rpx;
width: 100%;
display: flex;
flex-wrap: wrap;
.moneyItem {
width: 210rpx;
height: 120rpx;
background: #f8f8f8;
border-radius: 12rpx;
display: flex;
justify-content: center;
margin-right: 8rpx;
font-family: PingFangSC-Medium, PingFang SC;
margin-bottom: 24rpx;
border: 3rpx solid transparent;
view {
align-self: center;
color: #333333;
}
view:first-child {
font-size: 40rpx;
font-weight: 500;
}
view:last-child {
font-size: 30rpx;
}
}
.moneyItem:nth-child(3n) {
margin-right: 0;
}
.active {
border: 3rpx solid #04b871;
view {
color: #04b871;
}
}
.other {
width: 444rpx;
height: 120rpx;
line-height: 120rpx;
text-align: center;
background: #f8f8f8;
border-radius: 12rpx;
border: 3rpx solid transparent;
/deep/.uni-input-wrapper {
position: absolute;
width: 444rpx;
height: 120rpx;
font-size: 40rpx;
font-weight: 500;
color: #333333;
}
/deep/.uni-input-input {
height: 120rpx;
line-height: 120rpx;
}
}
}
.MoneyBox {
.MoneyBox {
flex-wrap: wrap;
height: auto;
color: #888888;
width: 686rpx;
margin: 0 auto;
overflow: hidden;
}
}
.choiceClass {
.choiceClass {
background: rgba(39, 266, 148, 0.1) !important;
color: #28d79c;
}
}
.MoneyBox view {
.MoneyBox view {
width: 220rpx;
height: 120rpx;
background: #ffffff;
...
...
@@ -1066,17 +1344,17 @@ page {
box-shadow: 0px 9rpx 23rpx 0rpx rgba(25, 26, 88, 0.07);
margin-right: 2px;
float: left;
}
}
.depotMoney .value {
.depotMoney .value {
font-size: 45rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
line-height: 120rpx;
text-align: center;
}
}
.depotMoney .tips {
.depotMoney .tips {
// width: 79rpx;
// height: 33rpx;
// background: linear-gradient(180deg, #FA6400 0%, #FD9D00 100%);
...
...
@@ -1089,9 +1367,9 @@ page {
// position: absolute;
// right: 0rpx;
// line-height: 33rpx;
}
}
.OtherMoney {
.OtherMoney {
display: flex;
justify-content: flex-start;
// color: #999999;
...
...
@@ -1120,9 +1398,9 @@ page {
input {
height: 100%;
}
}
}
.OtherMoney view:nth-child(2) {
.OtherMoney view:nth-child(2) {
// width: 30rpx;
// height: 30rpx;
// background: #F0F0F0;
...
...
@@ -1131,16 +1409,39 @@ page {
// line-height: 30rpx;
// margin-top: 7rpx;
// margin-left: 5rpx;
}
}
.paytype {
display: flex;
margin-top: 39rpx;
width: 100%;
height: 40rpx;
justify-content: space-between;
font-size: 28rpx;
.payType {
.left {
font-weight: 500;
color: rgba(0, 0, 0, 0.4);
}
.right {
color: rgba(0, 0, 0, 0.85);
.van-icon {
font-size: 28rpx;
color: #161616;
}
}
}
.payType {
height: 98rpx;
line-height: 98rpx;
display: flex;
justify-content: space-between;
}
}
.payType view:nth-child(1) {
.payType view:nth-child(1) {
// width: 120rpx;
height: 42rpx;
font-size: 32rpx;
...
...
@@ -1148,9 +1449,9 @@ page {
font-weight: 500;
color: #888888;
line-height: 98rpx;
}
}
.payType view::nth-child(2) {
.payType view::nth-child(2) {
width: 225rpx;
height: 45rpx;
font-size: 32rpx;
...
...
@@ -1158,9 +1459,9 @@ page {
font-weight: bold;
color: #333333;
line-height: 45rpx;
}
}
.arrow {
.arrow {
transform: rotate(-45deg);
top: -3rpx;
border: solid #999999;
...
...
@@ -1168,37 +1469,53 @@ page {
display: inline-block;
padding: 8rpx;
position: relative;
}
}
@media (min-height: 65
0px) {
@media (min-height: 104
0px) {
.bottomdiv {
position: fixed;
left: 0;
right: 0;
bottom: 30rpx;
}
}
}
.DepositID {
width: 630rpx;
height: 92rpx;
background: #04ba73;
border-radius: 8rpx;
.DepositID {
width: 100%;
height: 90rpx;
background: #04b871;
border-radius: 45px;
line-height: 90rpx;
text-align: center;
font-size: 34rpx;
font-weight: 500;
color: #ffffff;
margin: 0 auto;
margin-top: 29rpx;
text-align: center;
bottom: 30rpx;
}
}
.DepositID span {
.DepositID span {
height: 50rpx;
font-size: 36rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 92rpx;
}
}
.switchbankCard {
.service {
margin-top: 118rpx;
width: 100%;
height: 40rpx;
font-size: 28rpx;
font-weight: 400;
color: rgba(0, 0, 0, 0.5);
line-height: 40rpx;
text-align: center;
}
.switchbankCard {
text-align: center;
/* width: 205px; */
// height: 28rpx;
...
...
@@ -1208,9 +1525,9 @@ page {
text-decoration: underline;
color: #268ef8;
margin-top: 23rpx;
}
}
.RechargeConfirmationBox {
.RechargeConfirmationBox {
position: fixed;
left: 0;
right: 0;
...
...
@@ -1281,9 +1598,9 @@ page {
}
}
}
}
}
.closePhoneBox {
.closePhoneBox {
// width: 35rpx;
height: 35rpx;
position: relative;
...
...
@@ -1296,9 +1613,9 @@ page {
height: 40rpx;
position: relative;
}
}
}
.doBtnTx {
.doBtnTx {
width: 506rpx;
height: 92rpx;
background: #04ba73;
...
...
@@ -1310,46 +1627,46 @@ page {
right: 0;
margin: 0 auto;
bottom: 38rpx;
}
}
.PhoneNum,
.VerifyCode {
.PhoneNum,
.VerifyCode {
width: 506rpx;
height: 80rpx;
line-height: 60rpx;
background: #f7f6fb;
margin: 0 auto;
margin-top: 20rpx;
}
}
.VerifyCode {
.VerifyCode {
display: flex;
justify-content: space-between;
}
}
.VerifyCode input {
.VerifyCode input {
width: 200rpx;
}
}
.CodeMsg {
.CodeMsg {
color: #01bc73;
background: #f7f6fb;
font-size: 32rpx;
font-weight: 600;
line-height: 80rpx;
letter-spacing: 3rpx;
}
}
.placeholderInput {
.placeholderInput {
color: #aaaaaa;
font-size: 42rpx;
font-weight: 500;
letter-spacing: 3rpx;
// padding-left: 50rpx;
height: 80rpx;
}
}
.OtherTitle {
.OtherTitle {
height: 67rpx;
font-size: 48rpx;
font-family: PingFangSC-Semibold, PingFang SC;
...
...
@@ -1358,55 +1675,55 @@ page {
line-height: 67rpx;
padding-top: 60rpx;
}
}
.inputOtherM {
.inputOtherM {
display: flex;
height: 100rpx;
margin-top: 40rpx;
}
}
.inputOtherM input {
.inputOtherM input {
border: none;
outline: none;
height: 50rpx;
padding-left: 16rpx;
font-size: 72rpx;
font-weight: 600;
}
}
.inputOtherM span:nth-child(1) {
.inputOtherM span:nth-child(1) {
width: 72rpx;
font-size: 80rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #010101;
line-height: 100rpx;
}
}
.OtherLine {
.OtherLine {
width: 631rpx;
height: 1rpx;
background-color: #cccccc;
margin-top: 19rpx;
}
}
.depositbox {
margin-top: 31
rpx;
.depositbox {
margin-top: 40
rpx;
height: 30rpx;
line-height: 30rpx;
}
}
.depositImg {
.depositImg {
width: 24rpx;
height: 24rpx;
vertical-align: middle;
margin-right: 8rpx;
position: relative;
top: -2rpx;
}
}
.Recharge_ {
.Recharge_ {
height: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
...
...
@@ -1414,34 +1731,34 @@ page {
color: #333333;
line-height: 40rpx;
margin-top: 40rpx;
}
}
.Recharge_ span:nth-child(2) {
.Recharge_ span:nth-child(2) {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #fa6400;
}
}
.placeholderinputOtherM {
height: 50rpx;
// font-family: PingFangSC-Semibold, PingFang SC;
// font-weight: 600;
// color: #010101;
line-height: 50rpx;
width: 323rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #888888;
}
.placeholderinputOtherM {
height: 120rpx;
line-height: 120rpx;
font-size: 32rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(0, 0, 0, 0.25);
}
// 异常处理
.RechargeException {
/deep/uni-input {
line-height: 120rpx;
}
// 异常处理
.RechargeException {
padding-top: 20rpx;
}
}
.weui-label {
.weui-label {
// width: 118rpx;
height: 42rpx;
font-size: 30rpx;
...
...
@@ -1451,9 +1768,9 @@ page {
line-height: 42rpx;
font-weight: bold;
margin-left: 30rpx;
}
}
.tiptext {
.tiptext {
height: 1.06rem;
font-size: 0.75rem;
font-family: PingFangSC-Regular, PingFang SC;
...
...
@@ -1462,9 +1779,9 @@ page {
line-height: 1.06rem;
margin-bottom: 0.625rem;
text-align: center;
}
}
.bottomDetail {
.bottomDetail {
width: 628rpx;
height: 88rpx;
color: white;
...
...
@@ -1477,37 +1794,37 @@ page {
line-height: 88rpx;
margin-top: 84rpx;
}
}
.RechargeException input::placeholder {
.RechargeException input::placeholder {
color: #a1a4a8;
}
}
.RechargeException .weui-cell {
.RechargeException .weui-cell {
height: 4rem;
padding: 0 !important;
}
}
.idCardPhoto1,
.idCardPhoto2 {
.idCardPhoto1,
.idCardPhoto2 {
width: 388rpx;
height: 224rpx;
margin: 0 auto;
margin-top: 20rpx;
}
}
.idCardPhoto1 image,
.idCardPhoto2 image {
.idCardPhoto1 image,
.idCardPhoto2 image {
width: 100%;
height: 100%;
position: relative;
}
}
.weui-toptips_success {
.weui-toptips_success {
background-color: #03bc73 !important;
}
}
.positionCam {
.positionCam {
height: 32rpx;
font-size: 22rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
...
...
@@ -1517,9 +1834,9 @@ page {
text-align: center;
position: relative;
top: -29px;
}
}
.BgCoverBox {
.BgCoverBox {
width: 100vw;
height: 100vh;
position: fixed;
...
...
@@ -1528,18 +1845,32 @@ page {
z-index: 10;
background: #000000;
opacity: 0.5;
}
}
.hideListCover {
.hideListCover {
max-height: 50vh;
overflow-y: auto;
padding: 0;
}
}
.bottomDiv {
.bottomDiv {
font-weight: bold;
height: 50px;
line-height: 50px;
border-bottom: 1px solid #e6e6e6;
}
}
.popoverItem {
width: 225rpx;
margin: 0 20rpx;
padding: 16rpx 0;
text-align: center;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
border-bottom: 1rpx solid #dddddd;
}
.popoverItem:last-child {
border-bottom: 0;
}
</
style
>
src/pages/SchoolReport/SchoolReport.vue
View file @
81d2a368
<
template
>
<view
class=
"tainer"
:style=
"
{height:containerHeight+'rpx'}">
<view
v-if=
"showReport"
>
<view
class=
"school-report-header-bg"
>
</view>
<view
class=
"school-report-header-position"
>
<view
class=
"school-report-header"
>
<view
class=
"school-report-header-item"
>
<view
class=
"user-avatar"
>
...
...
@@ -18,7 +21,8 @@
<view
class=
"school-report-screen"
>
<view
class=
"school-report-screen-item"
>
<view
class=
"school-report-type"
>
<picker
@
change=
"schoolReportChange"
:value=
"reportTypeIndex"
:range=
"reportTypeArr"
>
<picker
@
change=
"schoolReportChange"
:value=
"reportTypeIndex"
:range=
"reportTypeArr"
>
<view
class=
"uni-input"
>
{{
reportTypeArr
[
reportTypeIndex
]
}}
</view>
</picker>
</view>
...
...
@@ -38,20 +42,25 @@
</view>
</view>
</view>
<view
class=
"school-report-context"
>
<view
class=
"school-report-context-tab"
>
<view
class=
"school-report-context-tab-item"
>
<view
v-if=
"isService"
class=
"school-report-context-tab-item-one"
:class=
"tabIndex==1?'active':''"
@
tap=
"tabTap(1)"
>
<text>
消费报告
</text>
<view
class=
"tab-title"
><text>
消费报告
</text></view>
<view
:class=
"tabIndex==1?'active-bottomline':''"
>
</view>
</view>
<view
v-if=
"isAttendanceService"
class=
"school-report-context-tab-item-one"
:class=
"tabIndex==2?'active':''"
@
tap=
"tabTap(2)"
>
<text>
出入校报告
</text>
<view
class=
"tab-title"
><text>
出入校报告
</text></view>
<view
:class=
"tabIndex==2?'active-bottomline':''"
>
</view>
</view>
<view
v-if=
"isPubTalkService"
class=
"school-report-context-tab-item-one"
:class=
"tabIndex==3?'active':''"
@
tap=
"tabTap(3)"
>
<text>
公话报告
</text>
<view
class=
"tab-title"
><text>
公话报告
</text></view>
<view
:class=
"tabIndex==3?'active-bottomline':''"
>
</view>
</view>
</view>
<view
class=
"school-report-context-tab-item-two"
>
...
...
@@ -64,10 +73,13 @@
</view>
</view>
</view>
</view>
<view
v-if=
"tabIndex"
class=
"school-report-context"
>
<view
:class=
"['consumer-report-bgImg','attendance-report-bgImg','pubTalk-report-bgImg'][tabIndex-1]"
>
</view>
<view
class=
"school-report-context-card"
>
<view
class=
"school-report-context-card-one"
:style=
"
{height:[598,256,525][tabIndex-1]+'rpx'}">
<view
class=
"school-report-context-card-one"
:style=
"
{height:[804,256,pubTalkSummaryHeight][tabIndex-1]+'rpx'}">
<view
:class=
"['consumer-report-img','attendance-report-img','pubTalk-report-img'][tabIndex-1]"
>
</view>
<!-- 消费报告 -->
...
...
@@ -109,8 +121,7 @@
的同学
<text
v-if=
"isReasonable"
>
,请及时评估生活费是否合理
</text>
</view>
</view>
<view
class=
"school-report-context-card-one-context-item school-report-context-card-one-context-item-last"
>
<view
class=
"school-report-context-card-one-context-item"
>
<view
class=
"school-report-context-card-one-context-dot"
>
<view
class=
"school-report-context-card-one-context-dot-item"
>
</view>
...
...
@@ -121,12 +132,41 @@
<text
v-else
>
每日消费金额较稳定,继续保持哦
</text>
</view>
</view>
<view
class=
"school-report-context-card-one-context-item"
>
<view
class=
"school-report-context-card-one-context-dot"
>
<view
class=
"school-report-context-card-one-context-dot-item"
>
</view>
</view>
<view
v-if=
"!abnormalStr"
class=
"school-report-context-card-one-context-txt"
>
早、中、晚餐就餐时间较稳定,按时吃饭,自律如昔,你就赢了大多数人
</view>
<view
v-else
class=
"school-report-context-card-one-context-txt"
>
<text
class=
"txt-important"
>
{{
abnormalStr
}}
</text>
的就餐时间跟同班同学相差超20分钟,如果快乐很难,那么按时吃饭
</view>
</view>
<view
class=
"school-report-context-card-one-context-item school-report-context-card-one-context-item-last"
>
<view
class=
"school-report-context-card-one-context-dot"
>
<view
class=
"school-report-context-card-one-context-dot-item"
>
</view>
</view>
<view
v-if=
"!mealPalArr.length"
class=
"school-report-context-card-one-context-txt"
>
独立的
<text
class=
"txt-important"
>
{{
userInfo
.
userName
}}
</text>
很棒,偶尔也可以叫上朋友一起吃饭哦
</text>
</view>
<view
v-else-if=
"mealPalArr.length==1"
class=
"school-report-context-card-one-context-txt"
>
最佳饭友非
<text
class=
"txt-important"
>
{{
mealPalStr
}}
</text>
莫属,有饭友吃嘛嘛香
</text>
</view>
<view
v-else
class=
"school-report-context-card-one-context-txt"
>
最佳干饭组合,赶快叫上
<text
class=
"txt-important"
>
{{
mealPalStr
}}
</text>
一起吃饭吧
</text>
</view>
</view>
</view>
<!-- 出入校报告 -->
<view
v-show=
"tabIndex==2"
class=
"attendance-report-context-card-one-context"
>
<view
class=
"attendance-report-context-card-one-context-item"
>
<text
v-if=
"attendanceReport.abnormalNum&&attendanceReport.abnormalNum!=-1"
>
共
<text
class=
"txt-important"
>
{{
attendanceReport
.
abnormalNum
}}
</text>
天出
勤
异常,请及时关注
</text>
class=
"txt-important"
>
{{
attendanceReport
.
abnormalNum
}}
</text>
天出
入
异常,请及时关注
</text>
<text
v-else-if=
"attendanceReport.abnormalNum==-1"
>
风雨无阻上学路,继续加油哦
</text>
<text
v-else
>
恭喜
<text
class=
"txt-important"
>
{{
userInfo
.
userName
}}
</text>
荣获全勤好学生,风雨无阻上学路
</text>
...
...
@@ -260,7 +300,7 @@
</view>
</view>
</view>
<view
v-
if
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-three"
>
<view
v-
show
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-three"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
消费偏好
</text>
...
...
@@ -277,7 +317,7 @@
<view
id=
"consumer-preferences-pie"
>
</view>
</view>
<view
v-
if
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-four"
>
<view
v-
show
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-four"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
生活费额度
</text>
...
...
@@ -329,7 +369,7 @@
</view>
</view>
</view>
<view
v-
if
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-five"
>
<view
v-
show
=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-five"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
消费趋势
</text>
...
...
@@ -360,17 +400,173 @@
</view>
</view>
</view>
<view
v-show=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-six"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
就餐时间趋势
</text>
</view>
</view>
<view
class=
"school-report-context-card-six-conclusion"
>
<view
class=
"school-report-context-card-six-conclusion-item"
>
<text
v-if=
"!abnormalStr"
>
早、中、晚餐就餐时间较稳定,按时吃饭,自律如昔,你就赢了大多数人
</text>
<text
v-else
>
<text
class=
"abnormal-date"
>
{{
abnormalStr
}}
</text>
的就餐时间跟同班同学相差超20分钟,如果快乐很难,那么按时吃饭
</text>
</view>
</view>
<view
v-if=
"mealtypeArr.indexOf(1)!=-1"
class=
"mealtime-trends"
>
<view
class=
"mealtime-trends-theme"
>
<view
class=
"meal-type"
>
<text>
早餐
</text>
</view>
<view
class=
"user-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
>
</view>
<view
class=
"user-meal-time-logo-middle"
>
</view>
<view
class=
"user-meal-time-logo-right"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
就餐时间
</text>
</view>
</view>
<view
class=
"class-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-middle"
style=
"border: 3rpx solid rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-right"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
班级集中就餐时间
</text>
</view>
</view>
</view>
</view>
<view
v-if=
"mealtypeArr.indexOf(1)!=-1"
id=
"breakfast-time-line"
>
</view>
<view
v-if=
"mealtypeArr.indexOf(2)!=-1"
class=
"mealtime-trends"
style=
"position: relative;top:-134rpx"
>
<view
class=
"mealtime-trends-theme"
>
<view
class=
"meal-type"
>
<text>
中餐
</text>
</view>
<view
class=
"user-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
>
</view>
<view
class=
"user-meal-time-logo-middle"
>
</view>
<view
class=
"user-meal-time-logo-right"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
就餐时间
</text>
</view>
</view>
<view
class=
"class-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-middle"
style=
"border: 3rpx solid rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-right"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
班级集中就餐时间
</text>
</view>
</view>
</view>
</view>
<view
v-if=
"mealtypeArr.indexOf(2)!=-1"
id=
"lunch-time-line"
>
</view>
<view
v-if=
"mealtypeArr.indexOf(3)!=-1"
class=
"mealtime-trends"
style=
"position: relative;top:-286rpx"
>
<view
class=
"mealtime-trends-theme"
>
<view
class=
"meal-type"
>
<text>
晚餐
</text>
</view>
<view
class=
"user-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
>
</view>
<view
class=
"user-meal-time-logo-middle"
>
</view>
<view
class=
"user-meal-time-logo-right"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
就餐时间
</text>
</view>
</view>
<view
class=
"class-meal-time"
>
<view
class=
"user-meal-time-logo"
>
<view
class=
"user-meal-time-logo-left"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-middle"
style=
"border: 3rpx solid rgba(0, 0, 0, 0.5)"
>
</view>
<view
class=
"user-meal-time-logo-right"
style=
"background: rgba(0, 0, 0, 0.5)"
>
</view>
</view>
<view
class=
"user-meal-time-txt"
>
<text>
班级集中就餐时间
</text>
</view>
</view>
</view>
</view>
<view
v-if=
"mealtypeArr.indexOf(3)!=-1"
id=
"dinner-time-line"
>
</view>
</view>
<view
v-show=
"tabIndex==1&&isOpen"
class=
"school-report-context-card-seven"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
饭友分析
</text>
</view>
</view>
<view
class=
"school-report-context-card-seven-conclusion"
>
<view
class=
"school-report-context-card-seven-conclusion-item"
>
<text
v-if=
"!mealPalArr.length"
>
独立的
<text
class=
"abnormal-date"
>
{{
userInfo
.
userName
}}
</text>
很棒,偶尔也可以叫上朋友一起吃饭哦
</text>
</text>
<text
v-else-if=
"mealPalArr.length==1"
>
最佳饭友非
<text
class=
"abnormal-date"
>
{{
mealPalStr
}}
</text>
莫属,有饭友吃嘛嘛香
</text>
</text>
<text
v-else
>
最佳干饭组合,赶快叫上
<text
class=
"abnormal-date"
>
{{
mealPalStr
}}
</text>
一起吃饭吧
</text>
</text>
</view>
</view>
<view
class=
"meal-pal-bar-unit"
>
<view
class=
"meal-pal-bar-unit-item"
>
<view
class=
"meal-pal-bar-icon"
>
</view>
<view
class=
"meal-pal-bar-txt"
>
<text>
一起就餐天数
</text>
</view>
</view>
</view>
<view
id=
"meal-pal-bar"
>
</view>
</view>
<!-- 出入校报告 -->
<view
v-show=
"tabIndex==2"
class=
"attendance-report-context-card-two"
>
<view
class=
"school-report-context-card-title"
>
<view
class=
"school-report-context-card-title-img"
>
<text>
出
勤
情况
</text>
<text>
出
入校
情况
</text>
</view>
</view>
<view
class=
"attendance-report-context-card-two-conclusion"
>
<view
class=
"attendance-report-context-card-two-conclusion-txt"
>
<text
v-if=
"attendanceReport.abnormalNum!=-1"
>
本
{{
[
'
月
'
,
'
周
'
][
reportTypeIndex
]
}}
共
<text
class=
"abnormal-days"
>
{{
attendanceReport
.
abnormalNum
}}
</text>
天出
勤
异常
</text>
class=
"abnormal-days"
>
{{
attendanceReport
.
abnormalNum
}}
</text>
天出
入
异常
</text>
</view>
<view
class=
"attendance-report-context-card-two-conclusion-logo"
>
<view
class=
"attendance-report-context-card-two-conclusion-logo-item"
>
...
...
@@ -397,14 +593,16 @@
<template
#top-info
="
item
"
>
<span
v-if=
"item.topInfo=='请假'"
class=
"mark-green"
>
请假
</span>
<span
v-if=
"item.topInfo=='迟到'"
class=
"mark-orange"
>
迟到
</span>
<span
v-if=
"item.topInfo=='
旷课'"
class=
"mark-orange"
>
旷课
</span>
<span
v-if=
"item.topInfo=='
未到校'"
class=
"mark-orange"
>
未到校
</span>
<span
v-if=
"item.topInfo=='早退'"
class=
"mark-orange"
>
早退
</span>
<span
v-if=
"item.topInfo=='冠军'"
class=
"mark-yellow"
>
冠军
</span>
<span
v-if=
"item.topInfo=='进步'"
class=
"mark-yellow"
>
进步
</span>
</
template
>
</van-calendar>
</view>
</view>
<view
v-if=
"tabIndex==2&&attendanceReportDatail.length"
class=
"attendance-report-context-details"
>
<view
v-if=
"tabIndex==2&&isAttendanceOpen"
class=
"attendance-report-context-details"
:style=
"{height:attendanceReportDatail.length?858:620+'rpx',overflow:attendanceReportDatail.length?'scroll':'none',top:attendanceReportDatail.length?-30:0+'rpx'}"
>
<view
v-for=
"(detailItem,detailIndex) in attendanceReportDatail"
:key=
"detailIndex"
>
<view
v-if=
"detailItem.attendIntervalType&&detailItem.attendIntervalType!=-1"
class=
"attendance-report-context-card-two-details"
>
...
...
@@ -428,6 +626,8 @@
class=
"attendance-report-context-card-two-details"
>
<view
class=
"attendance-report-context-card-two-details-item"
>
<view
class=
"attendance-report-context-card-two-details-time"
>
<view
class=
"attendance-report-context-card-two-details-time-img"
>
</view>
<view
class=
"attendance-report-context-card-two-details-time-txt txt-details"
>
<text>
未设置考勤时间
</text>
</view>
...
...
@@ -437,7 +637,7 @@
</view>
</view>
</view>
<view
class=
"attendance-report-context-card-three"
>
<view
v-if=
"attendanceReportDatail.length"
class=
"attendance-report-context-card-three"
>
<view
v-for=
"(item,index) in detailItem.attendDetailReportDTOList"
:key=
"index"
>
<view
class=
"attendance-report-details"
>
<view
class=
"dashed-line-box"
>
...
...
@@ -469,17 +669,26 @@
<text>
早到冠军
</text>
</view>
</view>
<view
v-else-if=
"item.describeContent=='非常不错哦,比昨天早到'"
class=
"early-champions"
style=
"width: 368rpx"
>
<view
class=
"progress-img"
>
</view>
<view
class=
"early-champions-txt"
>
<text>
非常不错哦,比昨天早到
</text>
</view>
</view>
</view>
<view
class=
"attendance-report-details-img-item"
>
<view
class=
"attendance-report-time-details"
>
<view
v-if=
"item.describeContent!='当日早到冠军'"
<view
v-if=
"item.describeContent!='当日早到冠军'&&item.describeContent!='非常不错哦,比昨天早到'"
class=
"attendance-report-time-details-item"
>
<text>
{{item.describeContent}}
</text>
</view>
<view
class=
"attendance-report-time-details-icon"
>
</view>
</view>
</view>
<view
class=
"attendance-report-details-img-item"
>
<view
class=
"attendance-report-details-img-box"
>
<image
v-if=
"item.attendImage"
:src=
"item.attendImage"
mode=
""
@
click=
"imageClick(item.attendImage)"
>
...
...
@@ -491,6 +700,24 @@
</view>
</view>
</view>
<view
v-if=
"!attendanceReportDatail.length"
class=
"noAttendanceReportDatail"
>
<view
class=
"attendance-report-context-card-two-details"
>
<view
class=
"attendance-report-context-card-two-details-item"
>
<view
class=
"attendance-report-context-card-two-details-time"
>
<view
class=
"attendance-report-context-card-two-details-time-img"
>
</view>
<view
class=
"attendance-report-context-card-two-details-time-txt txt-details"
>
<text>
未设置考勤时间
</text>
</view>
</view>
<view
class=
"attendance-report-context-card-two-details-date"
>
<text>
{{attendanceSituations.attendanceDate}}
</text>
</view>
</view>
</view>
<view
class=
"noAttendanceReportDatailImg"
>
</view>
</view>
</view>
<van-dialog
v-model=
"imageDialogShow"
width=
"620rpx"
>
<view
class=
"image-dialog"
>
...
...
@@ -548,7 +775,7 @@
<view
id=
"leave-message-bar"
>
</view>
</view>
<view
v-if=
"
isOpen||isPubTalkOpen||isAttendanceOpen
"
class=
"school-report-footer"
>
<view
v-if=
"
tabIndex&&flag!=tabIndex
"
class=
"school-report-footer"
>
<view
class=
"school-report-footer-item"
>
<view
class=
"school-report-footer-item-txt"
>
<text>
到期后将无法查看完整报告
</text>
...
...
@@ -566,76 +793,120 @@
</view>
</view>
</view>
<view
v-if=
"flag==tabIndex"
class=
"no-open"
:style=
"{height:[9
15,845,891][tabIndex-1]+'rpx',top:[1425,1099,1260
][tabIndex-1]+'rpx'}"
>
<view
v-if=
"
tabIndex&&
flag==tabIndex"
class=
"no-open"
:style=
"{height:[9
92,845,891][tabIndex-1]+'rpx',top:[1620,1099,pubTalkNoopenHeight
][tabIndex-1]+'rpx'}"
>
<view
class=
"no-open-solution"
@
tap=
"equityPay"
>
<view
class=
"no-open-solution-txt"
>
<text>
最低{{memberInfo.leastAmount
||''
}}元/天开通,查看完整{{['消费','出入校','公话'][tabIndex-1]}}报告
</text>
<text>
最低{{memberInfo.leastAmount}}元/天开通,查看完整{{['消费','出入校','公话'][tabIndex-1]}}报告
</text>
</view>
<view
class=
"no-open-solution-item"
>
</view>
</view>
<view
class=
"open-results"
>
<view
class=
"open-results-title"
>
<!-- 消费报告 -->
<view
v-if=
"tabIndex==1"
class=
"open-results-title consume-open-results-title"
>
<text>
开通后,掌握消费动态、更省心
</text>
</view>
<view
v-else
class=
"open-results-title"
>
<text>
开通后,你将解锁
</text>
</view>
<view
class=
"open-results-items"
>
<view
class=
"open-results-items-summary"
>
<view
class=
"open-results-items"
:class=
"tabIndex==1?'consume-open-results-items':''"
>
<view
v-if=
"tabIndex==2||tabIndex==3"
class=
"open-results-items-summary"
>
<view
class=
"summary-item"
>
<text>
{{['
月度消费报告','实时推送','音视频通话'][tabIndex-1
]}}
</text>
<text>
{{['
实时推送','音视频通话'][tabIndex-2
]}}
</text>
</view>
<view
class=
"summary-item-icon"
:class=
"['
consumer-report-icon','attendance-report-icon','pubTalk-report-icon'][tabIndex-1
]"
>
:class=
"['
attendance-report-icon','pubTalk-report-icon'][tabIndex-2
]"
>
<text>
+
</text>
</view>
<view
class=
"summary-item"
>
<text>
{{['
消费总结','月度出入校报告','月度公话报告'][tabIndex-1
]}}
</text>
<text>
{{['
月度出入校报告','月度公话报告'][tabIndex-2
]}}
</text>
</view>
</view>
<view
class=
"open-results-items-details"
>
<!-- 消费报告 -->
<view
v-if=
"tabIndex==1"
>
<view
class=
"open-results-items-details-item"
>
<view
v-if=
"tabIndex==1"
class=
"consume-open-results-items-details"
>
<view
class=
"consume-open-results-items-details-item"
>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
孩子是否缺餐?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"dining-situations-img"
>
</view>
<view
class=
"open-results-items-details-item
-txt"
>
<text>
就餐情况分析
</text>
<view
class=
"details-item-down
-txt"
>
<text>
【就餐情况】告诉你
</text>
</view>
<view
class=
"consumer-rationality-img"
>
</view>
<view
class=
"open-results-items-details-item-txt"
>
<text>
消费合理性
</text>
</view>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
孩子在校交友了?
</text>
</view>
<view
class=
"open-results-items-details-item
"
>
<view
class=
"consumer-preference
-img"
>
<view
class=
"details-item-down
"
>
<view
class=
"meal-pal
-img"
>
</view>
<view
class=
"open-results-items-details-item
-txt"
>
<text>
消费偏好分析
</text>
<view
class=
"details-item-down
-txt"
>
<text>
【饭友分析】告诉你
</text>
</view>
<view
class=
"consumer-advice-img"
>
</view>
<view
class=
"open-results-items-details-item-txt"
>
<text>
消费建议
</text>
</view>
</view>
<view
class=
"open-results-items-details-item"
>
<view
class=
"consume-open-results-items-details-item"
>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
消费偏高还是偏低?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"consumer-num-img"
>
</view>
<view
class=
"open-results-items-details-item
-txt"
>
<text>
生活费额度分析
</text>
<view
class=
"details-item-down
-txt"
>
<text>
【生活费额度】直观看
</text>
</view>
</view>
<view
class=
"open-results-items-details-item"
>
</view>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
孩子正餐超市消费多?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"consumer-preference-img"
>
</view>
<view
class=
"details-item-down-txt"
>
<text>
【消费偏好】直观看
</text>
</view>
</view>
</view>
</view>
<view
class=
"consume-open-results-items-details-item"
>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
担心孩子被迫高额消费?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"consumer-trend-img"
>
</view>
<view
class=
"open-results-items-details-item-txt"
>
<text>
消费趋势分析
</text>
<view
class=
"details-item-down-txt"
>
<text>
【消费趋势】告诉你
</text>
</view>
</view>
</view>
<view
class=
"details-item-left"
>
<view
class=
"details-item-up"
>
<text>
孩子是否准时就餐?
</text>
</view>
<view
class=
"details-item-down"
>
<view
class=
"time-trends-img"
>
</view>
<view
class=
"details-item-down-txt"
>
<text>
【就餐时间趋势】告诉你
</text>
</view>
</view>
</view>
</view>
</view>
<view
v-else
class=
"open-results-items-details"
>
<!-- 出入校报告 -->
<view
v-
else-
if=
"tabIndex==2"
>
<view
v-if=
"tabIndex==2"
>
<view
class=
"open-results-items-details-item"
>
<view
class=
"admission-notice-img"
>
</view>
...
...
@@ -645,7 +916,7 @@
<view
class=
"admission-analysis-img"
>
</view>
<view
class=
"open-results-items-details-item-txt"
>
<text>
出
勤
情况分析
</text>
<text>
出
入
情况分析
</text>
</view>
</view>
<view
class=
"open-results-items-details-item"
>
...
...
@@ -719,7 +990,7 @@
</view>
</view>
</view>
<view
v-else
class=
"nodata"
>
<view
v-else
class=
"nodata"
@
click=
"nodataClick"
>
<view
class=
"nodataImg"
>
<img
style=
"width: 100%"
src=
"https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/purchaseChart.gif"
/>
...
...
@@ -728,8 +999,20 @@
<text>
当前为使用高峰期,请稍后再试
</text>
</view>
</view>
<van-dialog
class=
"htmlCanvas"
id=
"htmlCanvas"
ref=
"imgCanvas"
v-model=
"dialogShow"
confirm-button-text=
'长按保存'
close-on-click-overlay
style=
"width: 100%; max-height: 80% !important;overflow: scroll"
>
<van-dialog
v-model=
"dialogShow"
:showConfirmButton=
"false"
close-on-click-overlay
style=
"width: 90%;background: linear-gradient(225deg, #0ADD80 0%, #04B871 100%);margin: 100rpx 0 0;"
>
<view
class=
"htmlCanvasTxt"
>
<view
class=
"htmlCanvasTxt1"
>
<text>
长按下方图片分享
</text>
</view>
<view
class=
"htmlCanvasTxt2"
>
<text>
您可以分享给好友,或者保存到手机
</text>
</view>
</view>
<view
class=
"htmlCanvasBox"
>
<view
class=
"htmlCanvas"
id=
"htmlCanvas"
ref=
"imgCanvas"
>
</view>
</view>
</van-dialog>
</view>
</view>
...
...
@@ -777,7 +1060,7 @@
maxDate
:
new
Date
(),
imgUrl
:
''
,
// 存储base64图片
dialogShow
:
false
,
tabIndex
:
1
,
tabIndex
:
0
,
// 就餐情况
diningSituations
:
{
diningSituationsDate
:
''
,
...
...
@@ -802,6 +1085,16 @@
consumerTrend
:
{},
isAbnormal
:
false
,
lineDatas
:
[],
// 饭友分析
mealPalData
:
[],
mealPalArr
:
[],
mealPalStr
:
''
,
// 就餐时间趋势
breakfastAbnormalStr
:
''
,
lunchAbnormalStr
:
''
,
dinnerAbnormalStr
:
''
,
mealtypeArr
:
[],
mealtimeTrendsData
:
[],
// 出入校报告数据
attendanceSituations
:
{
attendanceDate
:
''
,
...
...
@@ -842,10 +1135,34 @@
differDay
:
''
},
containerHeight
:
''
,
pubTalkSummaryHeight
:
275
,
pubTalkNoopenHeight
:
1260
,
isnodataClick
:
false
}
},
computed
:
{
abnormalStr
()
{
if
(
this
.
mealtypeArr
.
length
)
{
var
breakfastAbnormalStr
=
this
.
mealtimeAbnormalDate
(
1
);
var
lunchAbnormalStr
=
this
.
mealtimeAbnormalDate
(
2
);
var
dinnerAbnormalStr
=
this
.
mealtimeAbnormalDate
(
3
);
var
str1
=
breakfastAbnormalStr
?
breakfastAbnormalStr
+
'
早餐
'
:
''
;
var
str2
=
lunchAbnormalStr
?
lunchAbnormalStr
+
'
中餐
'
:
''
;
var
str3
=
dinnerAbnormalStr
?
dinnerAbnormalStr
+
'
晚餐
'
:
''
;
var
str
=
str1
?
(
str1
+
(
str2
?
(
'
、
'
+
str2
+
(
str3
?
'
、
'
+
str3
:
''
))
:
(
str3
?
'
、
'
+
str3
:
''
)))
:
(
str2
?
(
str2
+
(
str3
?
'
、
'
+
str3
:
''
))
:
(
str3
?
str3
:
''
));
}
else
{
var
str
=
''
}
return
str
;
}
},
mounted
()
{
if
(
this
.
isPeakPeriod
())
{
this
.
init
()
},
methods
:
{
init
()
{
if
(
this
.
isPeakPeriod
()
&&
!
this
.
isnodataClick
)
{
this
.
showReport
=
false
;
return
}
...
...
@@ -863,7 +1180,8 @@
// 有无进出校、公话入口
this
.
queryMemberServcieItem
().
then
(()
=>
{
if
(
this
.
queryMemberServcieItemList
.
length
)
{
this
.
isAttendanceService
=
this
.
queryMemberServcieItemList
.
indexOf
(
3002
)
==
-
1
?
false
:
true
;
this
.
isAttendanceService
=
this
.
queryMemberServcieItemList
.
indexOf
(
3002
)
==
-
1
?
false
:
true
;
this
.
isPubTalkService
=
this
.
queryMemberServcieItemList
.
indexOf
(
2002
)
==
-
1
?
false
:
true
;
}
})
...
...
@@ -873,19 +1191,58 @@
this
.
queryMemberValidTime
(
1002
).
then
(
e
=>
{
if
(
new
Date
(
this
.
memberInfo
.
invalidDate
).
getTime
()
<=
new
Date
(
'
2022/06/30
'
)
.
getTime
())
{
this
.
isOpen
=
true
;
this
.
flag
=
0
;
this
.
tabIndex
=
1
;
this
.
memberInfo
.
invalidDateStr
=
'
2022年6月30日
'
;
this
.
memberInfo
.
differDay
=
dayjs
(
'
2022/06/30
'
).
diff
(
dayjs
(),
'
day
'
)
+
1
;
this
.
containerHeight
=
4200
;
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryMealPalAnalyse
().
then
(()
=>
this
.
mealPalBarchart
());
this
.
queryRepastTimeTrend
().
then
(()
=>
{
if
(
this
.
mealtypeArr
.
indexOf
(
1
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
breakfast-time-line
'
,
1
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
2
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
lunch-time-line
'
,
2
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
3
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
dinner-time-line
'
,
3
);
}
})
}
else
{
this
.
tabIndex
=
1
;
this
.
queryIsDredgeMember
(
1002
,
1
).
then
(()
=>
{
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryMealPalAnalyse
().
then
(()
=>
this
.
mealPalBarchart
());
this
.
queryRepastTimeTrend
().
then
(()
=>
{
if
(
this
.
mealtypeArr
.
indexOf
(
1
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
breakfast-time-line
'
,
1
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
2
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
lunch-time-line
'
,
2
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
3
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
dinner-time-line
'
,
3
);
}
})
});
}
})
...
...
@@ -893,16 +1250,36 @@
if
(
new
Date
().
getTime
()
<=
new
Date
(
'
2022/06/30
'
).
getTime
())
{
this
.
isOpen
=
true
;
this
.
flag
=
0
;
this
.
tabIndex
=
1
;
this
.
memberInfo
.
invalidDateStr
=
'
2022年6月30日
'
;
this
.
memberInfo
.
differDay
=
dayjs
(
'
2022/06/30
'
).
diff
(
dayjs
(),
'
day
'
)
+
1
;
this
.
containerHeight
=
4200
;
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryMealPalAnalyse
().
then
(()
=>
this
.
mealPalBarchart
());
this
.
queryRepastTimeTrend
().
then
(()
=>
{
if
(
this
.
mealtypeArr
.
indexOf
(
1
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
breakfast-time-line
'
,
1
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
2
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
lunch-time-line
'
,
2
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
3
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
dinner-time-line
'
,
3
);
}
})
}
else
{
this
.
tabIndex
=
1
;
this
.
queryIsDredgeMember
(
1002
,
1
).
then
(()
=>
{
this
.
queryConsumerSummaryAmount
();
this
.
queryDayConsumerTrend
();
});
this
.
queryMealPalAnalyse
();
this
.
queryRepastTimeTrend
();
})
}
}
});
...
...
@@ -930,22 +1307,26 @@
this
.
queryNotRepastDetails
(
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
).
then
(()
=>
{
if
(
this
.
diningSituations
.
notRepastDetailsDTOS
)
{
let
today
=
this
.
diningSituations
.
notRepastDetailsDTOS
.
filter
(
e
=>
e
.
repastDate
===
tmpDate
)[
let
today
=
this
.
diningSituations
.
notRepastDetailsDTOS
.
filter
(
e
=>
e
.
repastDate
===
tmpDate
)[
0
];
this
.
diningSituations
.
notRepastDetails
=
today
;
}
else
{
this
.
diningSituations
.
notRepastDetails
=
{};
}
});
if
(
this
.
isPubTalkService
)
{
this
.
getPubTalkReport
();
}
},
methods
:
{
// 当天6:30 ~ 9:00,11:30 ~ 12:00, 17:30 ~ 19:00属于高峰期
// 当天11:00 ~ 13:00属于高峰期
isPeakPeriod
()
{
let
first
=
this
.
timeIn
(
"
06:30:00
"
,
"
09:00:00
"
);
let
second
=
this
.
timeIn
(
"
11:00:00
"
,
"
12:00:00
"
);
let
three
=
this
.
timeIn
(
"
17:30:00
"
,
"
19:00:00
"
);
console
.
log
(
first
,
"
first
"
,
second
,
"
second
"
,
three
,
"
three
"
);
return
first
||
second
||
three
;
let
first
=
this
.
timeIn
(
"
11:00:00
"
,
"
13:00:00
"
);
return
first
;
},
nodataClick
:
function
()
{
this
.
isnodataClick
=
true
this
.
init
()
},
/*在某段时间内*/
timeIn
(
s
,
e
)
{
...
...
@@ -987,11 +1368,30 @@
this
.
queryConsumerSummaryAmount
(
1
).
then
(
e
=>
this
.
piechart
());
this
.
queryDayConsumerTrend
(
1
).
then
(
e
=>
this
.
linechart
(
this
.
reportTypeIndex
));
this
.
queryMealPalAnalyse
().
then
(()
=>
this
.
mealPalBarchart
());
this
.
queryRepastTimeTrend
().
then
(()
=>
{
if
(
this
.
mealtypeArr
.
indexOf
(
1
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
breakfast-time-line
'
,
1
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
2
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
lunch-time-line
'
,
2
);
}
if
(
this
.
mealtypeArr
.
indexOf
(
3
)
!=
-
1
)
{
this
.
breakfastTimeLinechart
(
this
.
reportTypeIndex
,
'
dinner-time-line
'
,
3
);
}
})
}
else
{
this
.
queryConsumerSummaryAmount
();
this
.
queryDayConsumerTrend
();
}
})
}
else
if
(
num
==
2
)
{
if
(
flag
)
{
this
.
attendanceSituations
.
attendanceDate
=
this
.
formatDate
(
this
.
minDate
);
...
...
@@ -1010,7 +1410,7 @@
if
(
this
.
attendanceReportDatail
.
length
)
{
this
.
containerHeight
=
2762
;
}
else
{
this
.
containerHeight
=
190
4
;
this
.
containerHeight
=
252
4
;
}
});
}
...
...
@@ -1037,23 +1437,21 @@
this
.
memberInfo
.
differDay
=
''
;
this
.
memberInfo
.
invalidDateStr
=
''
;
this
.
memberInfo
.
leastAmount
=
''
;
this
.
getPubTalkReport
().
then
(()
=>
{
this
.
queryIsDredgeMember
(
2002
).
then
(
e
=>
{
if
(
this
.
isPubTalkOpen
)
{
this
.
getPubTalkReport
().
then
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
callNumberBarchart
();
this
.
callDurationBarchart
();
this
.
leaveMessageBarchart
();
})
})
}
else
{
this
.
getPubTalkReport
().
then
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
callNumberBarchart
();
})
})
}
})
})
}
}
},
...
...
@@ -1061,6 +1459,10 @@
this
.
$nextTick
(()
=>
{
html2cancas
(
document
.
getElementsByClassName
(
"
tainer
"
)[
0
],
{
useCORS
:
true
,
// 解决截图不完整问题
scale
:
1
,
height
:
document
.
getElementsByClassName
(
"
tainer
"
)[
0
].
scrollHeight
,
windowHeight
:
document
.
getElementsByClassName
(
"
tainer
"
)[
0
].
scrollHeight
}).
then
((
canvas
)
=>
{
let
htmlCanvas
=
document
.
getElementById
(
'
htmlCanvas
'
);
let
url
=
canvas
.
toDataURL
(
'
image/png
'
);
...
...
@@ -1068,7 +1470,8 @@
let
img
=
document
.
createElement
(
"
img
"
);
img
.
setAttribute
(
'
src
'
,
this
.
imgUrl
);
img
.
setAttribute
(
'
class
'
,
'
htmlCanvasImg
'
);
img
.
style
.
width
=
'
100vw
'
;
img
.
style
.
width
=
'
83vw
'
;
img
.
style
.
borderRadius
=
'
15px
'
;
htmlCanvas
.
appendChild
(
img
);
})
})
...
...
@@ -1139,8 +1542,10 @@
const
lunchTxt
=
item
.
lunchStatus
?
''
:
'
中
'
;
const
supperTxt
=
item
.
supperStatus
?
''
:
'
晚
'
;
day
.
topInfo
=
breakfastTxt
+
lunchTxt
+
supperTxt
;
if
(
day
.
topInfo
)
{
day
.
className
=
'
notice-day
'
}
}
})
}
}
else
if
(
this
.
tabIndex
==
2
)
{
// 出入校报告
...
...
@@ -1149,10 +1554,11 @@
.
abnomalType
==
3
||
e
.
abnomalType
==
5
);
const
leaveList
=
this
.
attendanceReport
.
abnomalDateList
.
filter
(
e
=>
e
.
abnomalType
==
4
);
const
championList
=
this
.
attendanceReport
.
abnomalDateList
.
filter
(
e
=>
e
.
abnomalType
==
6
);
// 迟到 早退 旷课
const
progressList
=
this
.
attendanceReport
.
abnomalDateList
.
filter
(
e
=>
e
.
abnomalType
==
7
);
// 迟到 早退 未到校
abnomalList
.
forEach
(
item
=>
{
if
(
sum
==
item
.
attendDate
.
slice
(
0
,
10
))
{
var
topInfo
=
item
.
abnomalType
==
5
?
'
旷课
'
:
item
.
abnomaleName
;
var
topInfo
=
item
.
abnomalType
==
5
?
'
未到校
'
:
item
.
abnomaleName
;
day
.
topInfo
=
topInfo
;
day
.
className
=
'
late-day
'
;
}
...
...
@@ -1171,6 +1577,13 @@
day
.
className
=
'
champion-day
'
;
}
})
// 进步
progressList
.
forEach
(
item
=>
{
if
(
sum
==
item
.
attendDate
.
slice
(
0
,
10
))
{
day
.
topInfo
=
item
.
abnomaleName
;
day
.
className
=
'
progress-day
'
;
}
})
}
}
return
day
;
...
...
@@ -1374,6 +1787,324 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
myLineChart
.
resize
();
})
},
// 就餐时间趋势
breakfastTimeLinechart
:
function
(
num
,
eleId
,
mealtype
)
{
var
mySize
=
document
.
getElementById
(
eleId
);
mySize
.
style
.
width
=
350
+
'
px
'
;
mySize
.
style
.
height
=
260
+
'
px
'
;
var
myBreakfastTimeLineChart
=
echarts
.
init
(
mySize
);
var
cateringList
=
this
.
mealtimeTrendsData
.
filter
(
e
=>
e
.
mealtype
==
mealtype
)[
0
].
cateringList
;
var
breakfastTimeData
=
JSON
.
parse
(
JSON
.
stringify
(
cateringList
));
var
breakfastTimeDataTwo
=
JSON
.
parse
(
JSON
.
stringify
(
cateringList
));
breakfastTimeData
.
forEach
(
e
=>
{
if
(
'
itemStyle
'
in
e
)
delete
e
.
itemStyle
;
if
(
'
symbol
'
in
e
)
delete
e
.
symbol
;
if
(
'
symbolSize
'
in
e
)
delete
e
.
symbolSize
;
if
(
e
.
classmealtime
.
indexOf
(
'
2022/07/01
'
)
==
-
1
)
{
e
.
classmealtime
=
"
2022/07/01
"
+
e
.
classmealtime
}
e
.
value
=
e
.
classmealtime
;
});
breakfastTimeDataTwo
.
forEach
(
e
=>
{
if
(
'
itemStyle
'
in
e
)
delete
e
.
itemStyle
;
if
(
'
symbol
'
in
e
)
delete
e
.
symbol
;
if
(
'
symbolSize
'
in
e
)
delete
e
.
symbolSize
;
if
(
e
.
usermealtime
.
indexOf
(
'
2022/07/01
'
)
==
-
1
)
{
e
.
usermealtime
=
"
2022/07/01
"
+
e
.
usermealtime
}
e
.
value
=
e
.
usermealtime
;
});
var
xInterval
=
this
.
reportTypeIndex
?
0
:
6
;
var
yMidPoint
=
"
2022/07/01
"
+
this
.
mealtimeTrendsData
.
filter
(
e
=>
e
.
mealtype
==
1
)[
0
].
earliestTime
;
var
maxDate
=
new
Date
(
yMidPoint
).
setHours
(
new
Date
(
yMidPoint
).
getHours
()
==
23
?
'
00
'
:
new
Date
(
yMidPoint
).
getHours
()
+
1
);
var
minDate
=
new
Date
(
yMidPoint
).
setHours
(
new
Date
(
yMidPoint
).
getHours
()
==
0
?
23
:
new
Date
(
yMidPoint
).
getHours
()
-
1
);
var
xdata
=
breakfastTimeData
.
map
(
e
=>
e
.
repasttime
.
slice
(
5
));
var
year
=
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
.
slice
(
0
,
4
);
var
month
=
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
.
slice
(
5
,
7
);
var
saturdayList
=
this
.
getMonthSaturdayDate
(
year
,
month
);
var
seriesDataOne
=
[];
var
seriesDataTwo
=
[];
switch
(
num
)
{
case
0
:
// 月报
breakfastTimeData
.
map
(
v
=>
{
if
(
v
.
repastType
==
1
)
{
if
(
v
.
repasttime
==
this
.
formatDateTwo
(
new
Date
(
year
,
month
,
0
))
||
saturdayList
.
includes
(
v
.
repasttime
))
{
// 第1/2/3/4周的最后一天+月末最后一天
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
,
borderWidth
:
1.5
},
symbol
:
'
none
'
}))
}
}
else
{
if
(
v
.
repasttime
==
this
.
formatDateTwo
(
new
Date
(
year
,
month
,
0
))
||
saturdayList
.
includes
(
v
.
repasttime
))
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#FF8646
'
,
borderWidth
:
1.5
},
symbol
:
'
none
'
}))
}
}
});
breakfastTimeDataTwo
.
map
(
v
=>
{
if
(
v
.
repastType
==
1
)
{
if
(
v
.
repasttime
==
this
.
formatDateTwo
(
new
Date
(
year
,
month
,
0
))
||
saturdayList
.
includes
(
v
.
repasttime
))
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#0BDB7E
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#0BDB7E
'
,
borderWidth
:
1.5
},
symbol
:
'
none
'
}))
}
}
else
{
if
(
v
.
repasttime
==
this
.
formatDateTwo
(
new
Date
(
year
,
month
,
0
))
||
saturdayList
.
includes
(
v
.
repasttime
))
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#0BDB7E
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#FF8646
'
,
borderWidth
:
1.5
},
symbol
:
'
none
'
}))
}
}
});
break
;
case
1
:
// 周报
breakfastTimeData
.
map
(
v
=>
{
if
(
v
.
repastType
==
1
)
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataOne
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#FF8646
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
});
breakfastTimeDataTwo
.
map
(
v
=>
{
if
(
v
.
repastType
==
1
)
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#0BDB7E
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
else
{
seriesDataTwo
.
push
(
Object
.
assign
(
v
,
{
itemStyle
:
{
color
:
'
#FF8646
'
,
borderWidth
:
1.5
},
symbolSize
:
4
}))
}
});
break
;
}
var
option
=
{
xAxis
:
{
type
:
'
category
'
,
data
:
xdata
,
axisLabel
:
{
interval
:
xInterval
},
},
yAxis
:
{
type
:
'
time
'
,
axisLabel
:
{
margin
:
2
,
formatter
:
function
(
value
)
{
return
(
moment
(
value
).
format
(
'
YYYY-MM-DD HH:mm
'
)).
slice
(
11
)
}
},
max
:
function
(
value
)
{
if
(
new
Date
(
maxDate
).
getMinutes
()
>
0
&&
new
Date
(
maxDate
).
getMinutes
()
<
30
)
{
return
new
Date
(
maxDate
).
setMinutes
(
30
);
}
else
{
return
maxDate
;
}
},
min
:
minDate
,
minInterval
:
2400
*
1000
,
maxInterval
:
2400
*
1000
},
series
:
[{
data
:
seriesDataOne
,
type
:
'
line
'
,
smooth
:
true
,
lineStyle
:
{
color
:
'
rgba(0, 0, 0, 0.5)
'
}
},
{
data
:
seriesDataTwo
,
type
:
'
line
'
,
smooth
:
true
,
lineStyle
:
{
color
:
'
#0BDB7E
'
}
},
],
tooltip
:
{
trigger
:
'
axis
'
,
axisPointer
:
{
type
:
'
shadow
'
,
shadowStyle
:
{
color
:
'
transparent
'
}
},
extraCssText
:
`width:150px;height:30px;line-height:33rpx;background: no-repeat center/100% url(./static/images/breakfastTimeBg.png);
font-size:24rpx;font-family: PingFangSC-Medium, PingFang SC;font-weight: 500;
color: #FF8646;padding:23px 0 30px 12px;box-sizing:border-box;`
,
confine
:
true
,
position
:
function
(
pt
)
{
return
[
pt
[
0
]
-
30
,
pt
[
1
]
-
5
];
},
formatter
:
function
(
data
)
{
if
(
data
[
0
].
data
.
repastType
==
2
&&
data
[
0
].
data
.
symbolSize
)
{
return
`
${
new
Date
(
data
[
0
].
data
.
repasttime
).
getMonth
()
+
1
}
月
${
new
Date
(
data
[
0
].
data
.
repasttime
).
getDate
()}
日就餐时间较晚`
;
}
else
if
(
data
[
0
].
data
.
repastType
==
3
&&
data
[
0
].
data
.
symbolSize
)
{
return
`
${
new
Date
(
data
[
0
].
data
.
repasttime
).
getMonth
()
+
1
}
月
${
new
Date
(
data
[
0
].
data
.
repasttime
).
getDate
()}
日就餐时间较早`
;
}
}
},
};
option
&&
myBreakfastTimeLineChart
.
setOption
(
option
);
window
.
addEventListener
(
'
resize
'
,
function
()
{
myBreakfastTimeLineChart
.
resize
();
})
},
mealPalBarchart
:
function
()
{
var
mySize
=
document
.
getElementById
(
'
meal-pal-bar
'
);
mySize
.
style
.
width
=
300
+
'
px
'
;
mySize
.
style
.
height
=
280
+
'
px
'
;
var
myMealPalBarchart
=
echarts
.
init
(
mySize
);
var
ydata
=
this
.
mealPalArr
;
var
seriesData
=
this
.
mealPalData
.
map
(
v
=>
v
.
mealnumber
);
var
seriesDataMax
=
Math
.
max
(...
seriesData
);
var
option
=
{
xAxis
:
{
type
:
'
value
'
,
interval
:
Math
.
ceil
(
seriesDataMax
/
5
),
axisLabel
:
{
formatter
:
'
{value}天
'
},
splitLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
'
#979797
'
],
width
:
0.5
,
type
:
'
solid
'
}
}
},
yAxis
:
{
type
:
'
category
'
,
data
:
ydata
,
axisLabel
:
{
show
:
true
,
textStyle
:
{
color
:
'
#000000
'
,
fontSize
:
12
},
},
axisLine
:
{
show
:
true
,
lineStyle
:
{
color
:
[
'
#979797
'
],
width
:
0.5
,
type
:
'
solid
'
}
}
},
series
:
[{
data
:
seriesData
,
type
:
'
bar
'
,
itemStyle
:
{
color
:
new
this
.
$echarts
.
graphic
.
LinearGradient
(
0
,
0
,
1
,
0
,
[{
offset
:
0
,
color
:
'
#04B871
'
},
{
offset
:
1
,
color
:
'
#07D66A
'
}
]),
barBorderRadius
:
[
0
,
8
,
8
,
0
],
},
label
:
{
show
:
true
,
position
:
'
right
'
,
color
:
'
#04B871
'
,
fontSize
:
'
14px
'
,
formatter
:
(
params
)
=>
{
return
params
.
value
+
'
天
'
;
}
},
barWidth
:
25
}]
};
option
&&
myMealPalBarchart
.
setOption
(
option
);
window
.
addEventListener
(
'
resize
'
,
function
()
{
myMealPalBarchart
.
resize
();
})
},
callNumberBarchart
:
function
()
{
var
mySize
=
document
.
getElementById
(
'
call-number-bar
'
);
mySize
.
style
.
width
=
350
+
'
px
'
;
...
...
@@ -1753,11 +2484,13 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
title
:
data
.
msg
})
return
}
if
(
!
data
.
obj
)
return
;
if
(
data
.
obj
.
length
)
{
const
tmpObj
=
data
.
obj
[
0
];
this
.
isEatLow
=
tmpObj
.
canteenamount
/
tmpObj
.
consumergrossamount
<
0.5
?
true
:
false
;
this
.
isEatLow
=
tmpObj
.
canteenamount
/
tmpObj
.
consumergrossamount
<
0.5
?
true
:
false
;
if
(
num
)
{
this
.
pieDatas
=
[
[{
...
...
@@ -1786,12 +2519,17 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
name
:
'
gradeAverageHeight
'
,
num
:
this
.
consumerAmountObj
.
gradeavgamount
});
const
tempArr
=
[
this
.
consumerAmountObj
.
schoolavgamount
,
this
.
consumerAmountObj
const
tempArr
=
[
this
.
consumerAmountObj
.
schoolavgamount
,
this
.
consumerAmountObj
.
consumergrossamount
,
this
.
consumerAmountObj
.
gradeavgamount
];
const
heightArr
=
Object
.
keys
(
this
.
counterArray
(
tempArr
)).
length
==
1
?
[
139
,
139
,
139
]
:
(
Object
.
keys
(
this
.
counterArray
(
tempArr
)).
length
==
2
?
[
139
,
139
,
160
]
:
[
139
,
160
,
192
]
const
heightArr
=
Object
.
keys
(
this
.
counterArray
(
tempArr
)).
length
==
1
?
[
139
,
139
,
139
]
:
(
Object
.
keys
(
this
.
counterArray
(
tempArr
)).
length
==
2
?
[
139
,
139
,
160
]
:
[
139
,
160
,
192
]
);
sortArr
.
forEach
(
e
=>
{
this
[
e
.
name
]
=
heightArr
[
e
.
tag
]
...
...
@@ -1860,6 +2598,106 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
})
}
},
// 饭友分析
async
queryMealPalAnalyse
()
{
try
{
let
data
=
await
this
.
$http
.
get
({
url
:
gHost
+
'
/report-push/campus-consumer-report/queryMealPalAnalyse
'
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
studentId
:
getQueryParams
(
'
userId
'
),
startDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
endDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
,
timeType
:
this
.
dataRangeIndex
==
0
?
2
:
1
})
if
(
data
.
code
!=
200
)
{
uni
.
showToast
({
icon
:
"
none
"
,
mask
:
true
,
title
:
data
.
message
})
return
}
this
.
mealPalData
=
data
.
obj
||
[];
this
.
mealPalArr
=
this
.
mealPalData
.
map
(
v
=>
v
.
mealpalname
.
slice
(
0
,
1
)
+
'
**
'
);
this
.
mealPalStr
=
this
.
mealPalArr
.
join
(
'
、
'
);
}
catch
(
e
)
{
//TODO handle the exception
console
.
log
(
e
);
uni
.
showToast
({
icon
:
"
none
"
,
mask
:
true
,
title
:
e
.
message
})
}
},
// 异常就餐日期
mealtimeAbnormalDate
(
mealtype
)
{
// mealtype 1 早餐 2 中餐 3 晚餐
var
breakfastArr
=
this
.
mealtimeTrendsData
.
filter
(
e
=>
e
.
mealtype
==
mealtype
);
var
breakfastAbnormalArr
=
[];
var
breakfastAbnormalStr
=
''
;
if
(
breakfastArr
&&
breakfastArr
[
0
].
cateringList
)
{
breakfastAbnormalArr
=
breakfastArr
[
0
].
cateringList
.
filter
(
e
=>
e
.
repastType
==
2
||
e
.
repastType
==
3
)
.
map
(
e
=>
e
.
repasttime
.
slice
(
8
,
9
)
?
e
.
repasttime
.
slice
(
8
)
:
e
.
repasttime
.
slice
(
8
,
9
))
if
(
breakfastAbnormalArr
.
length
>
1
)
{
for
(
var
i
=
0
;
i
<
breakfastAbnormalArr
.
length
-
1
;
i
++
)
{
breakfastAbnormalStr
+=
breakfastAbnormalArr
[
i
]
+
'
日、
'
;
}
breakfastAbnormalStr
+=
breakfastAbnormalArr
[
breakfastAbnormalArr
.
length
-
1
]
+
'
日
'
;
}
else
if
(
breakfastAbnormalArr
.
length
==
1
)
{
breakfastAbnormalStr
+=
breakfastAbnormalArr
[
breakfastAbnormalArr
.
length
-
1
]
+
'
日
'
;
}
}
return
breakfastAbnormalStr
;
},
// 就餐时间趋势
async
queryRepastTimeTrend
()
{
try
{
let
data
=
await
this
.
$http
.
get
({
url
:
gHost
+
'
/report-push/campus-consumer-report/queryRepastTimeTrend
'
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
startDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
endDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
,
timeType
:
this
.
dataRangeIndex
==
0
?
2
:
1
})
if
(
data
.
code
!=
200
)
{
uni
.
showToast
({
icon
:
"
none
"
,
mask
:
true
,
title
:
data
.
message
})
return
}
if
(
data
.
obj
)
{
this
.
mealtimeTrendsData
=
data
.
obj
}
if
(
data
.
obj
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
1
)
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
1
)[
0
]
.
cateringList
)
{
this
.
mealtypeArr
.
push
(
1
)
}
if
(
data
.
obj
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
2
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
2
)[
0
]
.
cateringList
))
{
this
.
mealtypeArr
.
push
(
2
)
}
if
(
data
.
obj
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
3
&&
data
.
obj
.
filter
(
e
=>
e
.
mealtype
==
3
)[
0
]
.
cateringList
))
{
this
.
mealtypeArr
.
push
(
3
)
}
}
catch
(
e
)
{
//TODO handle the exception
console
.
log
(
e
);
uni
.
showToast
({
icon
:
"
none
"
,
mask
:
true
,
title
:
e
.
message
})
}
},
// 获取公话报告
async
getPubTalkReport
()
{
try
{
...
...
@@ -1869,8 +2707,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
studentId
:
getQueryParams
(
'
userId
'
),
startDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
endDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
,
startDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
]
.
startDate
,
endDate
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
]
.
endDate
,
})
if
(
data
.
code
!=
0
)
{
uni
.
showToast
({
...
...
@@ -1881,6 +2721,15 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
return
}
this
.
pubTalkReport
=
data
.
data
||
{};
if
(
!
this
.
pubTalkReport
.
talkText5
&&
!
this
.
pubTalkReport
.
talkText9
)
{
this
.
pubTalkSummaryHeight
=
275
;
}
else
if
(
this
.
pubTalkReport
.
talkText5
&&
!
this
.
pubTalkReport
.
talkText9
)
{
this
.
pubTalkSummaryHeight
=
387
;
}
else
{
this
.
pubTalkSummaryHeight
=
525
;
}
}
catch
(
e
)
{
//TODO handle the exception
console
.
log
(
e
);
...
...
@@ -1901,8 +2750,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
startTime
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
startDate
,
endTime
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
].
endDate
,
startTime
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
]
.
startDate
,
endTime
:
this
.
dataRangeArr
[
this
.
dataRangeIndex
]
.
endDate
,
classId
:
this
.
userInfo
.
classId
})
if
(
data
.
code
!=
200
)
{
...
...
@@ -1924,7 +2775,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
})
}
},
// 出
勤
情况明细
// 出
入
情况明细
async
attendanceReprotDatail
(
currentDate
)
{
try
{
let
data
=
await
this
.
$http
.
post
({
...
...
@@ -1947,10 +2798,14 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
var
tempList
=
data
.
data
;
if
(
tempList
&&
tempList
.
length
)
{
tempList
.
forEach
(
e
=>
{
if
(
e
.
attendDetailReportDTOList
&&
e
.
attendDetailReportDTOList
.
length
)
{
e
.
attendDetailReportDTOList
.
forEach
(
c
=>
{
c
.
border
=
c
.
describeContent
&&
c
.
describeContent
!=
'
当日早到冠军
'
?
if
(
e
.
attendDetailReportDTOList
&&
e
.
attendDetailReportDTOList
.
length
)
{
e
.
attendDetailReportDTOList
.
forEach
(
c
=>
{
c
.
border
=
c
.
describeContent
&&
c
.
describeContent
!=
'
当日早到冠军
'
?
'
4rpx solid #F9793F
'
:
'
4rpx solid rgba(0, 0, 0, 0.25)
'
})
...
...
@@ -1991,32 +2846,41 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
switch
(
serviceItemCode
)
{
case
1002
:
this
.
isOpen
=
data
.
obj
.
status
;
this
.
isOpen
=
data
.
obj
&&
data
.
obj
.
status
||
false
;
if
(
!
this
.
isOpen
)
{
this
.
flag
=
1
;
}
break
;
case
2002
:
this
.
isPubTalkOpen
=
data
.
obj
.
status
;
this
.
isPubTalkOpen
=
data
.
obj
&&
data
.
obj
.
status
||
false
;
if
(
this
.
isPubTalkOpen
)
{
this
.
queryMemberValidTime
(
serviceItemCode
);
this
.
containerHeight
=
3290
;
this
.
containerHeight
=
2765
+
this
.
pubTalkSummaryHeight
;
this
.
flag
=
0
;
}
else
{
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
containerHeight
=
2130
;
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
containerHeight
=
1605
+
this
.
pubTalkSummaryHeight
;
this
.
pubTalkNoopenHeight
=
735
+
this
.
pubTalkSummaryHeight
;
this
.
flag
=
3
;
}
break
;
case
3002
:
this
.
isAttendanceOpen
=
data
.
obj
.
status
;
this
.
isAttendanceOpen
=
data
.
obj
&&
data
.
obj
.
status
||
false
;
if
(
this
.
isAttendanceOpen
)
{
this
.
queryMemberValidTime
(
serviceItemCode
);
this
.
containerHeight
=
2762
;
this
.
flag
=
0
;
}
else
{
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
containerHeight
=
1944
;
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
containerHeight
=
1974
;
this
.
flag
=
2
;
}
break
;
...
...
@@ -2027,7 +2891,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
this
.
containerHeight
=
4200
;
this
.
flag
=
0
;
}
else
{
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
queryMemberConsumerAmount
(
serviceItemCode
);
this
.
containerHeight
=
2340
;
}
}
...
...
@@ -2061,7 +2926,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
const
tempList
=
data
.
obj
||
[];
if
(
tempList
.
length
)
{
this
.
queryMemberServcieItemList
=
tempList
.
map
(
e
=>
e
.
serviceCode
);
this
.
queryMemberServcieItemList
=
tempList
.
map
(
e
=>
e
.
serviceCode
);
}
else
{
this
.
queryMemberServcieItemList
=
[];
}
...
...
@@ -2082,7 +2948,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
url
:
gHost
+
'
/report-push/member-info/queryMemberConsumerAmount
'
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
schoolId
:
getQueryParams
(
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
serviceItemCode
})
...
...
@@ -2094,7 +2961,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
})
return
}
this
.
memberInfo
.
leastAmount
=
data
.
obj
.
leastAmount
||
''
;
this
.
memberInfo
.
leastAmount
=
data
.
obj
.
leastAmount
;
}
catch
(
e
)
{
//TODO handle the exception
console
.
log
(
e
);
...
...
@@ -2112,8 +2980,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
url
:
gHost
+
'
/report-push/member-info/queryMemberValidTime
'
},
{
schoolId
:
getQueryParams
(
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
schoolId
:
getQueryParams
(
'
schoolId
'
),
userId
:
getQueryParams
(
'
userId
'
),
serviceItemCode
})
if
(
data
.
code
!=
200
)
{
...
...
@@ -2124,17 +2994,24 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
})
return
}
this
.
memberInfo
.
differDay
=
data
.
obj
.
differDay
;
this
.
memberInfo
.
invalidDate
=
data
.
obj
.
invalidDate
;
this
.
memberInfo
.
differDay
=
data
.
obj
.
differDay
;
this
.
memberInfo
.
invalidDate
=
data
.
obj
.
invalidDate
;
if
(
data
.
obj
.
invalidDate
)
{
let
month
=
data
.
obj
.
invalidDate
.
slice
(
5
,
6
)
==
0
?
data
.
obj
.
invalidDate
.
slice
(
6
,
7
)
:
data
.
obj
let
month
=
data
.
obj
.
invalidDate
.
slice
(
5
,
6
)
==
0
?
data
.
obj
.
invalidDate
.
slice
(
6
,
7
)
:
data
.
obj
.
invalidDate
.
slice
(
5
,
7
);
let
date
=
data
.
obj
.
invalidDate
.
slice
(
8
,
9
)
==
0
?
data
.
obj
let
date
=
data
.
obj
.
invalidDate
.
slice
(
8
,
9
)
==
0
?
data
.
obj
.
invalidDate
.
slice
(
9
)
:
data
.
obj
.
invalidDate
.
slice
(
8
);
this
.
memberInfo
.
invalidDateStr
=
data
.
obj
.
invalidDate
.
slice
(
0
,
4
)
+
'
年
'
+
month
+
'
月
'
+
date
+
'
日
'
;
this
.
memberInfo
.
invalidDateStr
=
data
.
obj
.
invalidDate
.
slice
(
0
,
4
)
+
'
年
'
+
month
+
'
月
'
+
date
+
'
日
'
;
}
else
{
this
.
memberInfo
.
invalidDateStr
=
''
;
}
...
...
@@ -2157,7 +3034,9 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
fail
:
function
fail
(
_fail
)
{
console
.
warn
(
_fail
);
uni
.
showModal
({
content
:
JSON
.
stringify
(
_fail
)
content
:
JSON
.
stringify
(
_fail
)
});
}
});
...
...
@@ -2194,12 +3073,60 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
.htmlCanvasTxt
{
height
:
154rpx
;
width
:
100%
;
padding
:
42rpx
0
20rpx
29rpx
;
box-sizing
:
border-box
;
.htmlCanvasTxt1
{
font-size
:
32rpx
;
font-family
:
PingFangSC-Semibold
,
PingFang
SC
;
font-weight
:
600
;
color
:
#FFFFFF
;
line-height
:
44rpx
;
}
.htmlCanvasTxt2
{
font-size
:
26rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#FFFFFF
;
line-height
:
44rpx
;
}
}
.htmlCanvasBox
{
overflow
:
scroll
;
height
:
943rpx
;
border-radius
:
30rpx
;
margin
:
0
24rpx
25rpx
;
}
.tainer
{
position
:
relative
;
.school-report-header-bg
{
height
:
292rpx
;
}
.school-report-header-position
{
height
:
292rpx
;
padding
:
72rpx
0
0
30rpx
;
box-sizing
:
border-box
;
position
:
fixed
;
top
:
0
;
left
:
0
;
background
:
#FFFFFF
;
z-index
:
1000
;
.school-report-header
{
height
:
88rpx
;
margin
:
72rpx
0
48rpx
40rpx
;
display
:
flex
;
justify-content
:
space-between
;
position
:
relative
;
margin
:
0
0
48rpx
;
.school-report-header-item
{
display
:
flex
;
...
...
@@ -2287,10 +3214,8 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
.school-report-context
{
.school-report-context-tab
{
height
:
84rpx
;
padding-left
:
40rpx
;
box-sizing
:
border-box
;
display
:
flex
;
justify-content
:
space-between
;
...
...
@@ -2304,14 +3229,25 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
border-radius
:
20rpx
20rpx
0rpx
0rpx
;
font-size
:
30rpx
;
font-family
:
PingFangSC-Semibold
,
PingFang
SC
;
font-weight
:
600
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
flex-direction
:
column
;
&
.active
{
background
:
#E4F9F2
;
font-weight
:
600
;
}
.tab-title
{
margin
:
20rpx
0
10rpx
;
}
.active-bottomline
{
width
:
49rpx
;
height
:
7rpx
;
background
:
#04B871
;
border-radius
:
4rpx
;
}
}
}
...
...
@@ -2346,6 +3282,9 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
.school-report-context
{
.consumer-report-bgImg
{
width
:
100%
;
height
:
452rpx
;
...
...
@@ -2388,7 +3327,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
background
:
#E5F8F1
;
padding
:
0
30rpx
;
position
:
absolute
;
top
:
65
0rpx
;
top
:
72
0rpx
;
box-sizing
:
border-box
;
.school-report-context-card-one
{
...
...
@@ -2882,19 +3821,25 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
height
:
88rpx
;
margin-left
:
10rpx
;
}
/
deep
/
.progress-day
{
color
:
#DAA000
;
background
:
url(../../static/images/progress.png)
no-repeat
-2rpx
center
/
100%
;
border-radius
:
22rpx
;
width
:
88rpx
;
height
:
88rpx
;
margin-left
:
10rpx
;
}
}
}
.attendance-report-context-details
{
height
:
858rpx
;
overflow
:
scroll
;
.attendance-report-context-card-two-details
{
position
:
relative
;
top
:
-30rpx
;
height
:
146rpx
;
background
:
#F5F7F7
;
padding
:
57
rpx
39rpx
0
34rpx
;
padding
:
28
rpx
39rpx
0
34rpx
;
box-sizing
:
border-box
;
.attendance-report-context-card-two-details-item
{
...
...
@@ -3000,13 +3945,16 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
.attendance-report-details-item-box
{
width
:
83
.5%
;
height
:
156rpx
;
display
:
flex
;
justify-content
:
space-betwee
n
;
flex-direction
:
colum
n
;
position
:
absolute
;
margin-left
:
71rpx
;
.attendance-report-details-item
{
height
:
40rpx
;
display
:
flex
;
justify-content
:
space-between
;
.attendance-report-time
{
display
:
flex
;
...
...
@@ -3016,6 +3964,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
line-height
:
40rpx
;
.attendance-report-time-txt
{
width
:
56rpx
;
}
.attendance-report-time-item
{
color
:
#F9793F
;
margin
:
0
21rpx
0
15rpx
;
...
...
@@ -3037,6 +3989,13 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
margin-right
:
2rpx
;
}
.progress-img
{
width
:
30rpx
;
height
:
29rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/progressIcon.png)
;
margin-right
:
2rpx
;
}
.early-champions-txt
{
font-size
:
24rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
...
...
@@ -3045,12 +4004,6 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
}
.attendance-report-details-img-item
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
flex-end
;
.attendance-report-time-details
{
width
:
212rpx
;
...
...
@@ -3075,15 +4028,22 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
width
:
21rpx
;
height
:
12rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/arrowUp.png)
;
margin-left
:
30rpx
;
//
margin-left: 30rpx;
}
}
}
.attendance-report-details-img-item
{
display
:
flex
;
justify-content
:
flex-end
;
width
:
100%
;
height
:
95rpx
;
margin
:
14rpx
0
0
;
.attendance-report-details-img-box
{
width
:
155rpx
;
height
:
95rpx
;
display
:
flex
;
justify-content
:
flex-end
;
image
{
width
:
100%
;
...
...
@@ -3094,6 +4054,21 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
}
.noAttendanceReportDatail
{
height
:
620rpx
;
background
:
#F5F7F7
;
margin
:
-40rpx
0
0
;
border-radius
:
0
0
16rpx
16rpx
;
.noAttendanceReportDatailImg
{
margin
:
78rpx
0
0
107rpx
;
width
:
474rpx
;
height
:
235rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/noAttendanceReportDatailData.png)
;
}
}
}
.image-dialog
{
...
...
@@ -3337,6 +4312,7 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
height
:
634rpx
;
background
:
#FFFFFF
;
border-radius
:
16rpx
;
margin
:
0
0
40rpx
;
position
:
relative
;
.school-report-context-card-five-conclusion
{
...
...
@@ -3406,6 +4382,172 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
.school-report-context-card-six
{
height
:
1590rpx
;
background
:
#FFFFFF
;
border-radius
:
16rpx
;
margin
:
0
0
40rpx
;
.school-report-context-card-six-conclusion
{
margin
:
40rpx
0
57rpx
;
.school-report-context-card-six-conclusion-item
{
margin
:
0
40rpx
0
30rpx
;
height
:
120rpx
;
font-size
:
28rpx
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
line-height
:
40rpx
;
.abnormal-date
{
color
:
#04B871
;
}
}
}
.mealtime-trends
{
.mealtime-trends-theme
{
height
:
42rpx
;
padding
:
0
49rpx
0
30rpx
;
box-sizing
:
border-box
;
display
:
flex
;
.meal-type
{
font-size
:
30rpx
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
line-height
:
42rpx
;
}
.user-meal-time
{
width
:
144rpx
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin
:
0
32rpx
0
143rpx
;
}
.class-meal-time
{
width
:
234rpx
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
}
.user-meal-time-logo
{
display
:
flex
;
align-items
:
center
;
margin-right
:
10rpx
;
.user-meal-time-logo-left
,
.user-meal-time-logo-right
{
width
:
8rpx
;
height
:
1rpx
;
background
:
#0BDA7D
;
}
.user-meal-time-logo-middle
{
width
:
12rpx
;
height
:
12rpx
;
background
:
#FFFFFF
;
border
:
3rpx
solid
#0BDB7E
;
border-radius
:
12rpx
;
}
}
.user-meal-time-txt
{
font-size
:
24rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#8C8C8C
;
}
}
}
#breakfast-time-line
{
position
:
relative
;
top
:
-95rpx
;
left
:
24rpx
;
z-index
:
100
;
}
#lunch-time-line
{
position
:
relative
;
top
:
-228rpx
;
left
:
24rpx
;
z-index
:
100
;
}
#dinner-time-line
{
position
:
relative
;
top
:
-376rpx
;
left
:
24rpx
;
z-index
:
100
;
}
}
.school-report-context-card-seven
{
height
:
645rpx
;
background
:
#FFFFFF
;
border-radius
:
16rpx
;
margin
:
0
0
40rpx
;
.school-report-context-card-seven-conclusion
{
margin
:
40rpx
0
50rpx
;
.school-report-context-card-seven-conclusion-item
{
margin
:
0
40rpx
0
30rpx
;
height
:
40rpx
;
font-size
:
28rpx
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
line-height
:
40rpx
;
.abnormal-date
{
color
:
#04B871
;
}
}
}
.meal-pal-bar-unit
{
height
:
33rpx
;
display
:
flex
;
justify-content
:
center
;
.meal-pal-bar-unit-item
{
width
:
180rpx
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.meal-pal-bar-icon
{
width
:
20rpx
;
height
:
20rpx
;
background
:
linear-gradient
(
360deg
,
#04B871
0%
,
#07D66A
100%
);
border-radius
:
4rpx
;
}
.meal-pal-bar-txt
{
font-size
:
24rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#8C8C8C
;
line-height
:
33rpx
;
}
}
}
#meal-pal-bar
{
position
:
relative
;
top
:
-106rpx
;
left
:
18rpx
;
z-index
:
100
;
}
}
.school-report-footer
{
height
:
169rpx
;
margin
:
40rpx
0
43rpx
;
...
...
@@ -3509,6 +4651,10 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
&
.consume-open-results-title
{
background
:
url(../../static/images/consumeOpenbgm.png)
center
/
100%
no-repeat
;
}
}
.open-results-items
{
...
...
@@ -3519,6 +4665,12 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
padding
:
32rpx
0
43rpx
73rpx
;
box-sizing
:
border-box
;
&
.consume-open-results-items
{
padding
:
44rpx
0
0
34rpx
;
box-sizing
:
border-box
;
height
:
473rpx
;
}
.open-results-items-summary
{
width
:
100%
;
height
:
45rpx
;
...
...
@@ -3538,10 +4690,6 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
line-height
:
45rpx
;
}
.consumer-report-icon
{
margin
:
0
45rpx
0
70rpx
;
}
.attendance-report-icon
{
margin
:
0
35rpx
0
134rpx
;
}
...
...
@@ -3551,62 +4699,89 @@ color: #FF8646;padding:13rpx 12rpx 30rpx 17rpx;`,
}
}
.open-results-items-details
{
.open-results-items-details-item
{
width
:
100%
;
height
:
40rpx
;
margin
:
0
0
24rpx
;
.consume-open-results-items-details
{
.consume-open-results-items-details-item
{
display
:
flex
;
align-items
:
center
;
height
:
80rpx
;
margin
:
0
0
55rpx
;
.open-results-items-details-item-txt
{
.details-item-left
{
width
:
313rpx
;
.details-item-up
{
font-size
:
28rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
4
00
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
5
00
;
color
:
#13664C
;
line-height
:
40rpx
;
}
.details-item-down
{
display
:
flex
;
align-items
:
center
;
.details-item-down-txt
{
font-size
:
24rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
rgba
(
19
,
102
,
76
,
0
.7
);
line-height
:
33rpx
;
}
.dining-situations-img
{
width
:
34
rpx
;
height
:
27
rpx
;
width
:
26
rpx
;
height
:
21
rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/repast.png)
;
margin-right
:
22rpx
;
}
.consumer-rationality-img
{
width
:
34rpx
;
height
:
34rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerRationality.png)
;
margin
:
0
22rpx
0
108rpx
;
.meal-pal-img
{
width
:
26rpx
;
height
:
22rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/mealPal.png)
;
}
.consumer-num-img
{
width
:
22rpx
;
height
:
25rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerNum.png)
;
}
.consumer-preference-img
{
width
:
30
rpx
;
height
:
27
rpx
;
width
:
25
rpx
;
height
:
23
rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerPreference.png)
;
margin-right
:
24rpx
;
}
.consumer-advice-img
{
width
:
31rpx
;
height
:
31rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerAdvice.png)
;
margin
:
0
24rpx
0
112rpx
;
.consumer-trend-img
{
width
:
24rpx
;
height
:
21rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerTrend.png)
;
}
.consumer-num-img
{
width
:
30rpx
;
height
:
34rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerNum.png)
;
margin-right
:
24rpx
;
.time-trends-img
{
width
:
25rpx
;
height
:
25rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/timeTrends.png)
;
}
}
}
}
}
.consumer-trend-img
{
width
:
28rpx
;
height
:
25rpx
;
background
:
no-repeat
center
/
100%
url(../../static/images/consumerTrend.png)
;
margin-right
:
25rpx
;
.open-results-items-details
{
.open-results-items-details-item
{
width
:
100%
;
height
:
40rpx
;
margin
:
0
0
24rpx
;
display
:
flex
;
align-items
:
center
;
.open-results-items-details-item-txt
{
font-size
:
28rpx
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#13664C
;
line-height
:
40rpx
;
}
// 出入校报告
...
...
src/pages/assignDeposit/assignDeposit.vue
View file @
81d2a368
<
template
>
<view
class=
"container"
>
<view
class=
"contentBox"
v-if=
"!depotMoneyother"
>
<view
class=
"userInfoBox"
>
<view
class=
"firstLine"
>
<view
class=
"avatar"
>
<image
:src=
"ImgUrl + 'user/personAva.png'"
alt=
""
></image>
</view>
<view
class=
"name"
>
张三
</view>
<view
v-if=
"PersonalInfo.usertype=='1'"
>
高一(63班)
</view>
<view
v-else
>
教职工
</view>
</view>
<view
class=
"secondLine"
>
{{
PersonalInfo
.
schoolname
}}
</view>
</view>
<view
class=
"contentWrapper"
v-if=
"!depotMoneyother"
>
<view
class=
"balanceWrapper"
>
<view
class=
"firstLine"
>
<view
class=
"left"
>
<view>
可用余额(元)
</view>
<view>
{{
cardBalanceTx
}}
</view>
</view>
<view
class=
"right"
>
<van-popover
v-model=
"showPopover"
trigger=
"click"
:actions=
"actions"
placement=
"bottom-end"
@
select=
"onSelect"
>
<template
#reference
>
<image
class=
"icon"
:src=
"ImgUrl + 'user/more.png'"
alt=
""
></image>
</
template
>
</van-popover>
</view>
</view>
<view
class=
"lastLine"
>
<view>
**** **** **** 5947
</view>
<view
class=
"right"
@
click=
"ToWalletTx"
>
<!-- <image class="btn" :src="ImgUrl + 'user/cashBtn.png'" alt=""></image> -->
提现
</view>
</view>
</view>
</view>
<view
class=
"contentBox"
style=
"display: none;"
v-if=
"!depotMoneyother"
>
<!-- <image mode='widthFix' src="https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/xiaopaycard (31).png"></image> -->
<view
class=
"contentDiv"
>
<view
class=
"headview"
>
...
...
@@ -28,7 +64,21 @@
</view>
</view>
<!-- -->
<view
class=
"MoneyBox"
>
<view
class=
"moneyWrapper"
>
<view
class=
"moneyItem"
@
click=
"depotMoney(item.value, index)"
v-bind:class=
"MoneyIndex == index ? 'active' : ''"
:data-money=
"item.value || 0"
v-for=
"(item, index) in MoneyList"
:key=
"index"
>
<view>
{{ item.value }}
</view>
<view>
{{ item.lable }}
</view>
</view>
<view
class=
"other"
>
<input
@
focus=
"openKeyBoard('number')"
v-model=
"inputOtherM"
@
input=
"inputControl"
@
blur=
"ReturnToTop"
placeholder=
"其他金额,最低3元"
placeholder-class=
"placeholderinputOtherM"
type=
"text"
maxlength=
"6"
/>
</view>
</view>
<!-- 充值其它金额 -->
<view
class=
"MoneyBox"
style=
"display: none;"
>
<view
class=
"depotMoney"
@
click=
"depotMoney(item.value,index)"
v-bind:class=
"(Money!=''&&MoneyIndex==index)?'choiceClass':''"
:data-money=
"item.value"
v-for=
"(item,index) in MoneyList"
:key=
"index"
>
...
...
@@ -36,22 +86,40 @@
{{item.value}}
</span>
<span
style=
"font-size: 28rpx;font-weight: 600;margin-left: 7rpx;"
>
{{item.lable}}
</span>
<span
class=
"tips"
v-show=
"item.tips"
>
<
!-- <
span class="tips" v-show="item.tips">
{{item.tips}}
</span>
</span>
-->
</view>
</view>
<!-- 充值限额提示 -->
<view
class=
"depositbox"
>
<image
mode=
"widthFix"
class=
"depositImg"
src=
"../../static/img/depositIcon.png"
></image>
<span
style=
"
vertical-align: middle;
font-size: 28rpx;
color: #333333;
font-weight: 500;
"
>
最大可充值金额:
<span
style=
"color: red"
>
¥
<span
class=
"canDepositTx"
>
{{ RechargeMax }}
</span></span></span>
</view>
<!-- -->
<view
class=
"OtherMoney"
@
click=
"OtherMoney"
>
<view
class=
"OtherMoney"
style=
"display: none;"
@
click=
"OtherMoney"
>
<view>
其他充值金额
</view>
<view>
>
</span></view>
</view>
<!-- 支付方式 -->
<view
class=
"payType"
@
click=
"queryBindCardList"
>
<view
class=
"paytype"
>
<view
class=
"left"
>
付款账户
</view>
<view
class=
"right"
@
click=
"queryBindCardList"
>
招商银行(5947)
<van-icon
name=
"arrow"
/>
</view>
</view>
<view
class=
"payType"
style=
"display: none;"
@
click=
"queryBindCardList"
>
<view>
付款方式
</view>
<view>
招商银行(5947)
<span
class=
"arrow"
></span></view>
</view>
<
view
class=
""
style=
"height: 1rpx;background-color: #DFDFDF;"
></view
>
<
!-- <view class="" style="height: 1rpx;background-color: #DFDFDF;"></view> --
>
<!-- -->
<view
class=
"switchbankCard"
@
click=
"BackToMini('AssignAddCard')"
>
我要换银行卡支付
<span
class=
"arrow"
style=
"transform: rotate(45deg);left: 15rpx;top: -8rpx;"
></span></view>
...
...
@@ -61,7 +129,7 @@
</view>
</view>
<!-- 其他充值金额 -->
<view
class=
"contentBox"
v-if=
"depotMoneyother"
>
<view
class=
"contentBox"
style=
"display: none;"
v-if=
"depotMoneyother"
>
<view
class=
"OtherTitle"
>
充值金额
</view>
<view
class=
"inputOtherM"
>
<span>
¥
</span>
...
...
@@ -168,26 +236,26 @@
</template>
<
script
>
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:
"
)
{
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
"
;
}
let
times
=
0
;
var
limitClick
=
false
;
//禁止重复点击
var
sessionID
=
""
,
}
let
times
=
0
;
var
limitClick
=
false
;
//禁止重复点击
var
sessionID
=
""
,
userID
=
""
;
var
payCardNumber
=
""
;
//一类卡号
var
orderSerialNo
=
""
;
//提现结果查询 指令号
var
businessNo
=
""
,
var
payCardNumber
=
""
;
//一类卡号
var
orderSerialNo
=
""
;
//提现结果查询 指令号
var
businessNo
=
""
,
otpOrderNo
=
""
,
mobileNo
=
""
;
var
msCount
=
60
;
//定时器
var
MyTimer
=
null
;
var
fromType
=
0
;
//0转账 1提现
var
opeType
=
0
;
//0充值 1提现 手机号验证
var
bankInfo
=
{
var
msCount
=
60
;
//定时器
var
MyTimer
=
null
;
var
fromType
=
0
;
//0转账 1提现
var
opeType
=
0
;
//0充值 1提现 手机号验证
var
bankInfo
=
{
acctNoArray
:
""
,
idNo
:
""
,
schoolId
:
""
,
...
...
@@ -195,34 +263,43 @@ var bankInfo = {
userId
:
""
,
sessionid
:
""
,
wechattype
:
1
,
};
// 20210422 充值账户异常资料补充参数
var
acctErrorUpdateParms
=
{
};
// 20210422 充值账户异常资料补充参数
var
acctErrorUpdateParms
=
{
backSideImgId
:
""
,
//反面身份证图片Id
frontSideImgId
:
""
,
//正面身份证图片Id
homeAddress
:
""
,
//家庭住址
occupation
:
""
,
//职业代码
StreetInformation
:
""
,
//街道
businessNo
:
""
,
};
// /wefile/wefileId
// 获取上传影像的Token接口
let
wefileId
=
{};
// bizCode: "000000"
// bizMsg: "获取上传影像token成功"
// businessNo: "OB89d5ed802cRA202104226389071452"
// expiredTime: 1619072725503
// project: "BOBS-OBP"
// uuid: "8238f256d8f54209a0e9a2a3b25e7393"
// wefileToken: "QplB0tfvjtzOU+tWgKI2+L+4B9HE8kbpJVREUTwXZCsVqXcUwyDxHAbTU3bW8ziGb4hKAaWiLQXAyZUbYRB9hBKhSt1VVvoFl5qOCR4GT+X1KpcQgBlhKYi/NYPkmsjeZO/qn9YXGDp/1sGmxazv6T05y8EbU9HXreRhF/jh8G1HtUCwprFoaulGFShvV819EUBdHifDF5IjpPekLtgzIm8C/kYYX8xproKvxV4maRji5p1Krkyv/U1K3C18/TyjHwPpC4KlOEqA6QpFujR8yZ42qvLZqfqgUkRFZ4WC27/nN3+do9VNpNbK4MAMSLTRaxdGmKe2wStKbZ5OQ+1WFA=="
// wefileUrl: "https://bfiles-stg.pingan.com.cn/brcp/secfile/sec_wefiles_udmp_upload.do"
export
default
{
};
// /wefile/wefileId
// 获取上传影像的Token接口
let
wefileId
=
{};
// bizCode: "000000"
// bizMsg: "获取上传影像token成功"
// businessNo: "OB89d5ed802cRA202104226389071452"
// expiredTime: 1619072725503
// project: "BOBS-OBP"
// uuid: "8238f256d8f54209a0e9a2a3b25e7393"
// wefileToken: "QplB0tfvjtzOU+tWgKI2+L+4B9HE8kbpJVREUTwXZCsVqXcUwyDxHAbTU3bW8ziGb4hKAaWiLQXAyZUbYRB9hBKhSt1VVvoFl5qOCR4GT+X1KpcQgBlhKYi/NYPkmsjeZO/qn9YXGDp/1sGmxazv6T05y8EbU9HXreRhF/jh8G1HtUCwprFoaulGFShvV819EUBdHifDF5IjpPekLtgzIm8C/kYYX8xproKvxV4maRji5p1Krkyv/U1K3C18/TyjHwPpC4KlOEqA6QpFujR8yZ42qvLZqfqgUkRFZ4WC27/nN3+do9VNpNbK4MAMSLTRaxdGmKe2wStKbZ5OQ+1WFA=="
// wefileUrl: "https://bfiles-stg.pingan.com.cn/brcp/secfile/sec_wefiles_udmp_upload.do"
export
default
{
components
:
{
keyboardPackage
,
},
name
:
"
assignDeposit
"
,
data
()
{
return
{
showPopover
:
false
,
// 通过 actions 属性来定义菜单选项
actions
:
[{
text
:
"
复制卡号
"
},
{
text
:
"
账户明细
"
},
{
text
:
"
常见问题
"
}],
inputOtherM
:
""
,
RechargeException
:
false
,
depotMoneyother
:
false
,
//其他充值
...
...
@@ -254,35 +331,37 @@ export default {
tempFiles2
:
"
../../static/img/idCardBg0.png
"
,
};
},
created
:
function
()
{},
mounted
:
function
()
{
created
:
function
()
{},
mounted
:
function
()
{
let
this_
=
this
;
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
// $(".RechargeException").siblings().hide()
// $(".RechargeException").show()
// 家庭住址
$
(
"
#homeAddress
"
).
on
(
"
click
"
,
function
()
{
$
(
"
#homeAddress
"
).
on
(
"
click
"
,
function
()
{
weui
.
picker
(
cityData
,
{
defaultValue
:
[
110000
,
110000
,
110101
],
depth
:
3
,
onChange
:
function
(
result
)
{
onChange
:
function
(
result
)
{
console
.
log
(
result
);
},
onConfirm
:
function
(
result
)
{
onConfirm
:
function
(
result
)
{
console
.
log
(
result
);
console
.
log
(
result
);
acctErrorUpdateParms
.
homeAddress
=
result
[
0
].
label
+
"
/
"
+
result
[
1
].
label
+
"
/
"
+
result
[
2
].
label
;
result
[
0
].
label
+
"
/
"
+
result
[
1
].
label
+
"
/
"
+
result
[
2
]
.
label
;
$
(
"
#homeAddress
"
)[
0
].
innerText
=
result
[
0
].
label
+
"
/
"
+
result
[
1
].
label
+
"
/
"
+
result
[
2
].
label
;
result
[
0
].
label
+
"
/
"
+
result
[
1
].
label
+
"
/
"
+
result
[
2
]
.
label
;
$
(
"
#homeAddress
"
).
css
(
"
color
"
,
"
#000
"
);
},
title
:
"
家庭地址
"
,
});
});
// 选择职业
$
(
"
#showPicker
"
).
on
(
"
click
"
,
function
()
{
$
(
"
#showPicker
"
).
on
(
"
click
"
,
function
()
{
// 获取职业信息
this_
.
getOccupationList
()
...
...
@@ -294,10 +373,10 @@ export default {
};
});
weui
.
picker
(
data
,
{
onChange
:
function
(
result
)
{
onChange
:
function
(
result
)
{
console
.
log
(
result
);
},
onConfirm
:
function
(
result
)
{
onConfirm
:
function
(
result
)
{
console
.
log
(
result
[
0
].
value
);
acctErrorUpdateParms
.
occupation
=
result
[
0
].
value
;
$
(
"
#showPicker
"
)[
0
].
innerText
=
result
[
0
].
label
;
...
...
@@ -346,12 +425,23 @@ export default {
}
else
{
this_
.
ToWalletTx
();
}
setTimeout
(
function
()
{
setTimeout
(
function
()
{
this_
.
getWefileId
();
},
500
);
});
},
methods
:
{
onSelect
(
action
)
{
if
(
action
.
text
==
"
复制卡号
"
)
{
this
.
CopyCardNumber
();
}
else
if
(
action
.
text
==
"
账户明细
"
)
{
this
.
BackToMini
(
'
purchaseDetail
'
);
}
else
if
(
action
.
text
==
"
常见问题
"
)
{
uni
.
navigateTo
({
url
:
`../../commonProblem/commonProblem`
})
}
},
// 身份证上传
async
idCardUpload
(
type
)
{
let
this_
=
this
;
...
...
@@ -359,7 +449,7 @@ export default {
count
:
6
,
//默认9
sizeType
:
[
"
original
"
,
"
compressed
"
],
sourceType
:
[
"
album
"
,
"
camera
"
],
//从相册选择
success
:
function
(
res
)
{
success
:
function
(
res
)
{
this_
[
"
tempFiles
"
+
type
]
=
res
.
tempFilePaths
[
0
];
this_
.
uploaderInput
(
res
.
tempFiles
,
type
);
},
...
...
@@ -508,7 +598,7 @@ export default {
type
:
"
POST
"
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
params
,
success
:
function
(
res7
)
{
success
:
function
(
res7
)
{
if
(
res7
.
code
==
"
10000
"
)
{
if
(
res7
.
results
.
status
==
0
||
res7
.
results
.
status
==
1
)
{
//status 状态 0:失败;1:成功;2:处理中 返回处理中,需要调用“提现(提现)结果查询”接口查结果
...
...
@@ -539,7 +629,7 @@ export default {
weui
.
topTips
(
res7
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -561,7 +651,7 @@ export default {
type
:
"
POST
"
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
params
,
success
:
function
(
res8
)
{
success
:
function
(
res8
)
{
if
(
res8
.
code
==
"
10000
"
)
{
if
(
res8
.
results
.
orderStatus
==
3
||
...
...
@@ -595,7 +685,7 @@ export default {
weui
.
topTips
(
res8
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -636,12 +726,12 @@ export default {
type
:
"
POST
"
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
params
,
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
if
(
res5
.
code
==
"
10000
"
)
{
if
(
res5
.
errCode
&&
res5
.
errCode
==
"
TI009
"
)
{
loading
.
hide
();
weui
.
topTips
(
res5
.
results
.
errMsg
);
setTimeout
(
function
()
{
setTimeout
(
function
()
{
$
(
"
.RechargeException
"
).
siblings
().
hide
();
$
(
"
.RechargeException
"
).
show
();
});
...
...
@@ -673,7 +763,7 @@ export default {
weui
.
topTips
(
res5
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -698,7 +788,7 @@ export default {
type
:
"
POST
"
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
params
,
success
:
function
(
res6
)
{
success
:
function
(
res6
)
{
if
(
res6
.
code
==
"
10000
"
)
{
orderSerialNo
=
res6
.
results
.
orderSerialNo
;
if
(
res6
.
results
.
status
==
1
||
res6
.
results
.
status
==
0
)
{
...
...
@@ -724,7 +814,7 @@ export default {
weui
.
topTips
(
res6
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -778,7 +868,7 @@ export default {
type
:
"
POST
"
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
params
,
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
loading
.
hide
();
if
(
res5
.
code
==
"
10000
"
)
{
otpOrderNo
=
res5
.
results
.
otpOrderNo
;
...
...
@@ -790,7 +880,7 @@ export default {
weui
.
topTips
(
res5
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -814,7 +904,7 @@ export default {
type
:
"
POST
"
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
params
,
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
loading
.
hide
();
if
(
res5
.
code
==
"
10000
"
)
{
otpOrderNo
=
res5
.
results
.
otpOrderNo
;
...
...
@@ -826,7 +916,7 @@ export default {
weui
.
topTips
(
res5
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
(
res5
.
message
);
},
});
...
...
@@ -851,7 +941,7 @@ export default {
accountName
:
bankName
,
accountNo
:
bindCard
,
},
success
:
function
(
res5
)
{
success
:
function
(
res5
)
{
loading
.
hide
();
if
(
res5
.
code
==
"
10000
"
)
{
this_
.
HideHTML
(
"
showBindCardList
"
,
0
);
...
...
@@ -860,7 +950,7 @@ export default {
weui
.
topTips
(
res5
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -879,15 +969,13 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res4
)
{
success
:
function
(
res4
)
{
loading
.
hide
();
if
(
res4
.
code
==
"
10000
"
)
{
var
divList
=
""
;
var
choiceIndex
=
0
;
for
(
let
i
=
0
;
i
<
res4
.
results
.
accountList
[
0
].
bindcardList
.
length
;
i
++
let
i
=
0
;
i
<
res4
.
results
.
accountList
[
0
].
bindcardList
.
length
;
i
++
)
{
divList
+=
`<div onclick=ChangeCardPay('
${
res4
.
results
.
accountList
[
0
].
bindcardList
[
i
].
bankName
...
...
@@ -920,7 +1008,7 @@ export default {
weui
.
topTips
(
res4
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -935,7 +1023,7 @@ export default {
timeout
:
8000
,
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
bankInfo
,
success
:
function
(
res3
)
{
success
:
function
(
res3
)
{
loading
.
hide
();
if
(
res3
.
code
==
"
10000
"
)
{
if
(
res3
.
results
.
acctInfoList
==
null
)
{
...
...
@@ -962,10 +1050,10 @@ export default {
weui
.
topTips
(
res3
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
complete
:
function
(
XMLHttpRequest
,
status
)
{
complete
:
function
(
XMLHttpRequest
,
status
)
{
loading
.
hide
();
if
(
status
==
"
timeout
"
)
{
weui
.
topTips
(
"
请求超时,余额查询失败
"
);
...
...
@@ -987,7 +1075,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res2
)
{
success
:
function
(
res2
)
{
if
(
res2
.
code
==
"
10000
"
)
{
bankInfo
.
acctNoArray
=
res2
.
results
.
accountNo
;
bankInfo
.
idNo
=
res2
.
results
.
idNo
;
...
...
@@ -1009,7 +1097,7 @@ export default {
weui
.
topTips
(
res2
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -1027,7 +1115,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res1
)
{
success
:
function
(
res1
)
{
loading
.
hide
();
if
(
res1
.
code
==
"
10000
"
)
{
bankInfo
.
schoolId
=
res1
.
results
.
schoolid
;
...
...
@@ -1052,7 +1140,7 @@ export default {
},
1500
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
},
});
...
...
@@ -1066,7 +1154,12 @@ export default {
acctErrorUpdateParms
.
homeAddress
=
acctErrorUpdateParms
.
homeAddress
+
acctErrorUpdateParms
.
StreetInformation
;
let
{
backSideImgId
,
frontSideImgId
,
homeAddress
,
occupation
}
=
let
{
backSideImgId
,
frontSideImgId
,
homeAddress
,
occupation
}
=
acctErrorUpdateParms
;
acctErrorUpdateParms
.
sessionid
=
sessionID
;
acctErrorUpdateParms
.
wechattype
=
1
;
...
...
@@ -1095,13 +1188,13 @@ export default {
contentType
:
"
application/x-www-form-urlencoded
"
,
data
:
acctErrorUpdateParms
,
timeout
:
8000
,
//超时时间设置,单位毫秒
success
:
function
(
res
)
{
success
:
function
(
res
)
{
loading
.
hide
();
if
(
res
.
code
==
"
000000
"
)
{
weui
.
topTips
(
"
信息更新成功
"
,
{
duration
:
3000
,
//3秒后消失
className
:
"
weui-toptips_success
"
,
//自定义类名
callback
:
function
()
{
callback
:
function
()
{
//回调函数
console
.
log
(
"
close
"
);
window
.
location
.
reload
();
...
...
@@ -1114,7 +1207,7 @@ export default {
reject
(
res
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
reject
(
err
);
},
...
...
@@ -1148,14 +1241,13 @@ export default {
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
$
.
ajax
({
url
:
gHost
+
url
:
gHost
+
`/bank-wechat-server/wefile/upload?wechattype=1&sessionid=
${
sessionID
}
`
,
type
:
"
post
"
,
data
:
formData
,
processData
:
false
,
contentType
:
false
,
success
:
function
(
res
)
{
success
:
function
(
res
)
{
console
.
log
(
res
);
if
(
res
.
code
==
"
10000
"
)
{
if
(
type
==
1
)
{
...
...
@@ -1166,7 +1258,7 @@ export default {
weui
.
topTips
(
"
上传成功
"
,
{
duration
:
3000
,
//3秒后消失
className
:
"
weui-toptips_success
"
,
//自定义类名
callback
:
function
()
{},
callback
:
function
()
{},
});
loading
.
hide
();
resolve
(
res
);
...
...
@@ -1176,7 +1268,7 @@ export default {
reject
(
res
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
weui
.
topTips
(
"
上传失败!请检查
"
);
reject
(
err
);
...
...
@@ -1200,7 +1292,7 @@ export default {
sessionid
:
sessionID
,
wechattype
:
1
,
},
success
:
function
(
res
)
{
success
:
function
(
res
)
{
loading
.
hide
();
if
(
res
.
code
==
"
10000
"
)
{
wefileId
=
res
.
results
;
...
...
@@ -1209,7 +1301,7 @@ export default {
reject
(
res
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
reject
(
err
);
},
...
...
@@ -1240,7 +1332,7 @@ export default {
headers
:
{
Authorization
:
getQueryParams
(
"
seesionID
"
),
},
success
:
function
(
res
)
{
success
:
function
(
res
)
{
loading
.
hide
();
if
(
res
.
code
==
"
10000
"
)
{
resolve
(
res
.
results
);
...
...
@@ -1248,7 +1340,7 @@ export default {
reject
(
res
.
message
);
}
},
error
:
function
(
err
)
{
error
:
function
(
err
)
{
loading
.
hide
();
reject
(
err
);
},
...
...
@@ -1268,24 +1360,267 @@ export default {
return
false
;
},
},
};
};
</
script
>
<
style
scoped
lang=
"scss"
>
html
,
body
,
page
{
html
,
body
,
page
{
width
:
750rpx
;
background
:
linear-gradient
(
180deg
,
#ffffff
0%
,
#fafafa
100%
);
}
}
.userInfoBox
{
display
:
flex
;
flex-direction
:
column
;
width
:
calc
(
100%
-
64rpx
);
height
:
150rpx
;
margin
:
0
32rpx
;
margin-top
:
30rpx
;
background
:
linear-gradient
(
270deg
,
#f4f4f4
0%
,
#ebebeb
100%
);
border-radius
:
16px
;
.firstLine
{
display
:
flex
;
flex-direction
:
row
;
width
:
calc
(
100%
-
68rpx
);
height
:
56rpx
;
line-height
:
56rpx
;
margin
:
0
34rpx
;
margin-top
:
28rpx
;
overflow
:
hidden
;
view
{
white-space
:
nowrap
;
}
.avatar
{
width
:
56rpx
;
height
:
56rpx
;
uni-image
{
width
:
56rpx
;
height
:
56rpx
;
}
}
.name
{
margin-left
:
17rpx
;
font-size
:
36rpx
;
font-weight
:
600
;
color
:
rgba
(
0
,
0
,
0
,
0
.85
);
}
view
:last-child
{
margin-left
:
10rpx
;
align-self
:
center
;
align-items
:
center
;
padding
:
0
8rpx
;
height
:
40rpx
;
line-height
:
40rpx
;
background
:
rgba
(
0
,
0
,
0
,
0
.08
);
border-radius
:
4rpx
;
font-size
:
26rpx
;
font-weight
:
500
;
color
:
rgba
(
0
,
0
,
0
,
0
.5
);
}
}
.secondLine
{
display
:
flex
;
width
:
calc
(
100%
-
62rpx
);
margin
:
0
31rpx
;
margin-top
:
8rpx
;
height
:
37rpx
;
line-height
:
37rpx
;
font-size
:
26rpx
;
color
:
rgba
(
0
,
0
,
0
,
0
.45
);
}
}
.contentWrapper
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.balanceWrapper
{
width
:
calc
(
100%
-
144rpx
);
margin
:
0
32rpx
;
margin-top
:
24rpx
;
height
:
249rpx
;
padding
:
40rpx
40rpx
0
;
background-image
:
url("https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/user/bankBg.png")
;
background-repeat
:
no-repeat
;
background-size
:
100%
100%
;
position
:
relative
;
display
:
flex
;
flex-direction
:
column
;
.firstLine
{
display
:
flex
;
justify-content
:
space-between
;
.left
{
view
:first-child
{
height
:
33rpx
;
font-size
:
24rpx
;
font-weight
:
600
;
color
:
rgba
(
255
,
255
,
255
,
0
.85
);
line-height
:
33rpx
;
}
view
:last-child
{
height
:
84rpx
;
font-size
:
60rpx
;
font-weight
:
600
;
color
:
#ffffff
;
line-height
:
84rpx
;
}
}
.right
{
width
:
60rpx
;
height
:
60rpx
;
align-self
:
flex-start
;
.icon
{
width
:
60rpx
;
height
:
60rpx
;
}
}
}
.lastLine
{
display
:
flex
;
width
:
100%
;
justify-content
:
space-between
;
view
:first-child
{
height
:
60rpx
;
font-size
:
40rpx
;
font-weight
:
600
;
color
:
#ffffff
;
line-height
:
60rpx
;
}
.right
{
width
:
140rpx
;
height
:
60rpx
;
line-height
:
60rpx
;
font-size
:
30rpx
;
font-weight
:
600
;
color
:
#04b871
;
background-image
:
url("https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/user/cashBtn.png")
;
background-repeat
:
no-repeat
;
background-size
:
cover
;
text-align
:
center
;
}
.btn
{
width
:
140rpx
;
height
:
60rpx
;
}
}
}
.accountlist
{
width
:
100%
;
height
:
100%
;
}
.showBindCardList
{
width
:
100%
;
height
:
100%
;
.contentBox
{
.choiceBox
{
text-align
:
center
;
font-weight
:
bold
;
height
:
100rpx
;
line-height
:
100rpx
;
padding
:
0
;
border-bottom
:
1rpx
solid
#e6e6e6
;
}
.cardsList
{
width
:
100%
;
height
:
calc
(
100%
-
260rpx
);
overflow-y
:
scroll
;
}
.ListItem
{
border-bottom
:
1rpx
solid
#e6e6e6
;
font-size
:
30rpx
;
padding
:
25rpx
0
;
background
:
#fff
;
position
:
relative
;
text-align
:
center
;
}
.changeCard
{
margin
:
0
auto
;
margin-top
:
40rpx
;
height
:
40rpx
;
font-size
:
28rpx
;
font-weight
:
400
;
color
:
#04B871
;
line-height
:
40rpx
;
text-align
:
center
;
}
}
.SubmittedSuccessfully
{
width
:
400rpx
!
important
;
height
:
200rpx
!
important
;
margin
:
0
auto
!
important
;
background
:
#000000
;
opacity
:
0
.8
;
border-radius
:
8rpx
;
}
.cardNum
{
width
:
574rpx
;
margin
:
0
auto
;
display
:
flex
;
justify-content
:
space-between
;
padding-top
:
36rpx
;
font-size
:
24rpx
;
.cardNumleft
{
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#ffffff
;
}
.cardNumright
{
font-family
:
PingFang
SC
;
font-weight
:
500
;
text-decoration
:
underline
;
color
:
#ffffff
;
}
}
.RechargeDetailed
{
text-align
:
center
;
// width: 118rpx;
height
:
32rpx
;
margin
:
0
auto
;
font-size
:
30rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
text-decoration
:
underline
;
color
:
#36a8ff
;
margin-top
:
50rpx
;
}
.contentBox
{
width
:
670rpx
;
height
:
376rpx
;
margin
:
0
auto
;
}
}
.contentDiv
{
.contentDiv
{
height
:
100%
;
// margin-top: 36rpx;
border-radius
:
15rpx
;
...
...
@@ -1295,14 +1630,14 @@ page {
position: relative;
top: 36rpx;
}
}
.HidenText {
.HidenText {
margin-top: 147rpx;
}
}
.HidenText,
.Balance {
.HidenText,
.Balance {
padding-left: 46rpx;
padding-right: 40rpx;
display: flex;
...
...
@@ -1310,19 +1645,19 @@ page {
font-size: 28rpx;
color: #ffffff;
}
}
.Balance {
.Balance {
margin-top: 20rpx;
}
}
.Recharge {
.Recharge {
display: flex;
justify-content: space-between;
margin-top: 70rpx;
}
}
.Recharge .leftdiv {
.Recharge .leftdiv {
width: 192rpx;
height: 67rpx;
font-size: 48rpx;
...
...
@@ -1330,33 +1665,33 @@ page {
font-weight: 600;
color: #010101;
line-height: 67rpx;
}
}
.Recharge .rightdiv {
.Recharge .rightdiv {
height: 67rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
line-height: 67rpx;
}
}
.Recharge .rightdiv image {
.Recharge .rightdiv image {
position: relative;
width: 20rpx;
height: 20rpx;
}
}
.headview {
.headview {
display: flex;
justify-content: space-between;
padding-left: 40rpx;
padding-right: 40rpx;
padding-top: 36rpx;
}
}
.headview .schoolname {
.headview .schoolname {
width: 252rpx;
height: 50rpx;
font-size: 36rpx;
...
...
@@ -1364,9 +1699,9 @@ page {
font-weight: 500;
color: #ffffff;
line-height: 50rpx;
}
}
.headview .IconCls {
.headview .IconCls {
width: 170rpx;
height: 48rpx;
background: #20946d;
...
...
@@ -1377,22 +1712,90 @@ page {
color: #ffffff;
line-height: 48rpx;
text-align: center;
}
}
.MoneyBox {
.moneyWrapper {
margin-top: 10rpx;
width: 100%;
display: flex;
flex-wrap: wrap;
.moneyItem {
width: 210rpx;
height: 120rpx;
background: #f8f8f8;
border-radius: 12rpx;
display: flex;
justify-content: center;
margin-right: 18rpx;
font-family: PingFangSC-Medium, PingFang SC;
margin-bottom: 24rpx;
view {
align-self: center;
color: #333333;
}
view:first-child {
font-size: 40rpx;
font-weight: 500;
}
view:last-child {
font-size: 30rpx;
}
}
.moneyItem:nth-child(3n) {
margin-right: 0;
}
.active {
border: 3rpx solid #04b871;
view {
color: #04b871;
}
}
.other {
width: 444rpx;
height: 120rpx;
line-height: 120rpx;
text-align: center;
background: #f8f8f8;
border-radius: 12rpx;
/deep/.uni-input-wrapper {
position: absolute;
width: 444rpx;
height: 120rpx;
font-size: 40rpx;
font-weight: 500;
color: #333333;
}
/deep/.uni-input-input {
height: 120rpx;
line-height: 120rpx;
}
}
}
.MoneyBox {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
height: auto;
color: #333333;
}
}
.choiceClass {
.choiceClass {
background: #01bc73 !important;
color: #fff;
}
}
.MoneyBox view {
.MoneyBox view {
width: 206rpx;
height: 133rpx;
background: #f5f5f5;
...
...
@@ -1401,17 +1804,17 @@ page {
text-align: center;
position: relative;
}
}
.depotMoney .value {
.depotMoney .value {
font-size: 48rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
line-height: 133rpx;
text-align: center;
}
}
.depotMoney .tips {
.depotMoney .tips {
// width: 79rpx;
height: 33rpx;
background: linear-gradient(180deg, #fa6400 0%, #fd9d00 100%);
...
...
@@ -1424,9 +1827,9 @@ page {
position: absolute;
right: 0rpx;
line-height: 33rpx;
}
}
.OtherMoney {
.OtherMoney {
display: flex;
justify-content: center;
color: #999999;
...
...
@@ -1437,9 +1840,9 @@ page {
line-height: 40rpx;
margin-top: 26rpx;
}
}
.OtherMoney view:nth-child(2) {
.OtherMoney view:nth-child(2) {
width: 30rpx;
height: 30rpx;
background: #f0f0f0;
...
...
@@ -1448,16 +1851,39 @@ page {
line-height: 30rpx;
margin-top: 7rpx;
margin-left: 5rpx;
}
}
.payType {
.paytype {
display: flex;
margin-top: 39rpx;
width: 100%;
height: 40rpx;
justify-content: space-between;
font-size: 28rpx;
.left {
font-weight: 500;
color: rgba(0, 0, 0, 0.4);
}
.right {
color: rgba(0, 0, 0, 0.85);
.van-icon {
font-size: 28rpx;
color: #161616;
}
}
}
.payType {
height: 98rpx;
line-height: 98rpx;
display: flex;
justify-content: space-between;
}
}
.payType view:nth-child(1) {
.payType view:nth-child(1) {
width: 120rpx;
height: 42rpx;
font-size: 30rpx;
...
...
@@ -1465,9 +1891,9 @@ page {
font-weight: 400;
color: #666666;
line-height: 98rpx;
}
}
.payType view::nth-child(2) {
.payType view::nth-child(2) {
width: 225rpx;
height: 45rpx;
font-size: 32rpx;
...
...
@@ -1475,9 +1901,9 @@ page {
font-weight: 500;
color: #333333;
line-height: 45rpx;
}
}
.switchbankCard {
.switchbankCard {
width: 224px;
height: 40rpx;
font-size: 28rpx;
...
...
@@ -1486,9 +1912,9 @@ page {
color: #999999;
line-height: 40rpx;
margin-top: 12rpx;
}
}
.arrow {
.arrow {
transform: rotate(-45deg);
top: -1rpx;
border: solid #999999;
...
...
@@ -1496,9 +1922,9 @@ page {
display: inline-block;
padding: 8rpx;
position: relative;
}
}
.DepositID {
.DepositID {
width: 630rpx;
height: 92rpx;
background: #04ba73;
...
...
@@ -1510,18 +1936,18 @@ page {
position: fixed;
left: 0;
right: 0;
}
}
.DepositID span {
.DepositID span {
height: 50rpx;
font-size: 36rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 92rpx;
}
}
.MyPhoneCls {
.MyPhoneCls {
position: fixed;
width: 562rpx;
height: 497rpx;
...
...
@@ -1532,9 +1958,9 @@ page {
font-size: 30rpx;
background: #fff;
border-radius: 8rpx;
}
}
.closePhoneBox {
.closePhoneBox {
width: 35rpx;
height: 35rpx;
background: #7e7e7e;
...
...
@@ -1546,9 +1972,9 @@ page {
color: #bebebe;
border-radius: 100%;
border: 2px solid #bebebe;
}
}
.doBtnTx {
.doBtnTx {
width: 506rpx;
height: 92rpx;
background: #04ba73;
...
...
@@ -1560,54 +1986,54 @@ page {
right: 0;
margin: 0 auto;
bottom: 38rpx;
}
}
.MyPhoneCls input {
.MyPhoneCls input {
border: none;
outline: none;
height: 80rpx;
line-height: 80rpx;
padding-left: 50rpx;
}
}
.PhoneNum,
.VerifyCode {
.PhoneNum,
.VerifyCode {
width: 506rpx;
height: 80rpx;
line-height: 60rpx;
background: #f7f6fb;
margin: 0 auto;
margin-top: 20rpx;
}
}
.VerifyCode {
.VerifyCode {
display: flex;
justify-content: space-between;
}
}
.VerifyCode input {
.VerifyCode input {
width: 200rpx;
}
}
.CodeMsg {
.CodeMsg {
color: #01bc73;
background: #f7f6fb;
font-size: 28rpx;
font-weight: 600;
line-height: 80rpx;
letter-spacing: 3rpx;
}
}
.placeholderInput {
.placeholderInput {
color: #aaaaaa;
font-size: 32rpx;
font-weight: 500;
letter-spacing: 3rpx;
// padding-left: 50rpx;
height: 80rpx;
}
}
.OtherTitle {
.OtherTitle {
height: 67rpx;
font-size: 48rpx;
font-family: PingFangSC-Semibold, PingFang SC;
...
...
@@ -1616,46 +2042,46 @@ page {
line-height: 67rpx;
padding-top: 60rpx;
}
}
.inputOtherM {
.inputOtherM {
display: flex;
height: 100rpx;
margin-top: 40rpx;
}
}
.inputOtherM input {
.inputOtherM input {
border: none;
outline: none;
height: 50rpx;
padding-left: 16rpx;
font-size: 72rpx;
font-weight: 600;
}
}
.inputOtherM span:nth-child(1) {
.inputOtherM span:nth-child(1) {
width: 72rpx;
font-size: 80rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #010101;
line-height: 100rpx;
}
}
.OtherLine {
.OtherLine {
width: 631rpx;
height: 1rpx;
background-color: #cccccc;
margin-top: 19rpx;
}
}
.depositImg {
.depositImg {
width: 14rpx;
vertical-align: middle;
margin-right: 8rpx;
}
}
.Recharge_ {
.Recharge_ {
height: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
...
...
@@ -1663,29 +2089,29 @@ page {
color: #333333;
line-height: 40rpx;
margin-top: 40rpx;
}
}
.Recharge_ span:nth-child(2) {
.Recharge_ span:nth-child(2) {
font-size: 28rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #fa6400;
}
}
.placeholderinputOtherM {
.placeholderinputOtherM {
height: 50rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #010101;
line-height: 50rpx;
}
}
// 异常处理
.RechargeException {
// 异常处理
.RechargeException {
padding-top: 20rpx;
}
}
.weui-label {
.weui-label {
// width: 118rpx;
height: 42rpx;
font-size: 30rpx;
...
...
@@ -1695,9 +2121,9 @@ page {
line-height: 42rpx;
font-weight: bold;
margin-left: 30rpx;
}
}
.tiptext {
.tiptext {
height: 1.06rem;
font-size: 0.75rem;
font-family: PingFangSC-Regular, PingFang SC;
...
...
@@ -1706,9 +2132,9 @@ page {
line-height: 1.06rem;
margin-bottom: 0.625rem;
text-align: center;
}
}
.bottomDetail {
.bottomDetail {
width: 628rpx;
height: 88rpx;
color: white;
...
...
@@ -1721,37 +2147,37 @@ page {
line-height: 88rpx;
margin-top: 84rpx;
}
}
.RechargeException input::placeholder {
.RechargeException input::placeholder {
color: #a1a4a8;
}
}
.RechargeException .weui-cell {
.RechargeException .weui-cell {
height: 4rem;
padding: 0 !important;
}
}
.idCardPhoto1,
.idCardPhoto2 {
.idCardPhoto1,
.idCardPhoto2 {
width: 388rpx;
height: 224rpx;
margin: 0 auto;
margin-top: 20rpx;
}
}
.idCardPhoto1 image,
.idCardPhoto2 image {
.idCardPhoto1 image,
.idCardPhoto2 image {
width: 100%;
height: 100%;
position: relative;
}
}
.weui-toptips_success {
.weui-toptips_success {
background-color: #03bc73 !important;
}
}
.positionCam {
.positionCam {
height: 32rpx;
font-size: 22rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
...
...
@@ -1761,5 +2187,5 @@ page {
text-align: center;
position: relative;
top: -29px;
}
}
</
style
>
src/pages/commonProblem/commonProblem.vue
0 → 100644
View file @
81d2a368
<
template
>
<view
class=
"commonProblem"
>
<view
class=
"itemWrapper"
>
<view
class=
"title"
>
使用规则
</view>
<view
class=
"content"
>
<view
@
click=
"toDetail('使用规则', 1, 1)"
>
余额储存在哪里?
</view>
<view
@
click=
"toDetail('使用规则',1, 2)"
>
为什么我的余额充足却消费失败?
</view>
</view>
</view>
<view
class=
"itemWrapper"
>
<view
class=
"title"
>
充值问题
</view>
<view
class=
"content"
>
<view
@
click=
"toDetail('充值问题',2, 1)"
>
充值失败后我的钱去哪了?
</view>
<view
@
click=
"toDetail('充值问题',2, 2)"
>
充值的上限是多少?
</view>
</view>
</view>
<view
class=
"itemWrapper"
>
<view
class=
"title"
>
提现问题
</view>
<view
class=
"content"
>
<view
@
click=
"toDetail('提现问题',3, 1)"
>
充值金额是否可以提现?
</view>
<view
@
click=
"toDetail('提现问题',3, 2)"
>
提现申请成功后,多久可以到账?
</view>
<view
@
click=
"toDetail('提现问题',3, 3)"
>
为什么线上提现会失败?
</view>
</view>
</view>
<view
class=
"itemWrapper"
>
<view
class=
"title"
>
其他问题
</view>
<view
class=
"content"
>
<view
@
click=
"toDetail('其他问题',4, 1)"
>
为什么电子校园卡激活收到银行的短信?
</view>
<view
@
click=
"toDetail('其他问题',4, 2)"
>
电子校园卡内的余额为什么会调整更新?
</view>
</view>
</view>
</view>
</
template
>
<
script
>
import
{
Dialog
,
Toast
}
from
"
vant
"
;
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 = "/api";
}
export
default
{
components
:
{
},
name
:
"
commonProblem
"
,
data
()
{
return
{
}
},
onLoad
:
function
(
options
)
{
},
created
:
function
()
{},
mounted
:
function
()
{},
methods
:
{
// 跳转问题详情界面
toDetail
(
title
,
parent
,
sub
){
uni
.
navigateTo
({
url
:
`../problemDetail/problemDetail?title=
${
title
}
&parent=
${
parent
}
&sub=
${
sub
}
`
})
}
},
};
</
script
>
<
style
lang=
"scss"
>
html
,
body
,
page
{
width
:
750rpx
;
background
:
linear-gradient
(
180deg
,
#ffffff
0%
,
#fafafa
100%
);
}
.commonProblem
{
width
:
100%
;
height
:
100%
;
min-height
:
100vh
;
display
:
flex
;
flex-direction
:
column
;
.itemWrapper
{
width
:
calc
(
100%
-
64rpx
);
margin
:
30rpx
32rpx
0
;
padding-bottom
:
30rpx
;
border-bottom
:
1rpx
solid
#CCCCCC
;
display
:
flex
;
justify-content
:
space-between
;
.title
{
width
:
180rpx
;
font-size
:
30rpx
;
align-self
:
center
;
font-weight
:
600
;
color
:
#333333
;
}
.content
{
width
:
calc
(
100%
-
200rpx
);
display
:
flex
;
flex-direction
:
column
;
font-size
:
28rpx
;
color
:
#888888
;
line-height
:
50rpx
;
margin-left
:
20rpx
;
}
}
.itemWrapper
:first-child
{
margin-top
:
50rpx
;
}
}
</
style
>
src/pages/problemDetail/problemDetail.vue
0 → 100644
View file @
81d2a368
<
template
>
<view
class=
"problemDetail"
>
<van-collapse
v-model=
"activeName"
accordion
>
<van-collapse-item
title=
"余额储存在哪里?"
v-if=
"parent == 1"
name=
"1-1"
>
<span>
为了保障用户资金安全、存储合规,用户充值金额均存在
</span><span
class=
"red"
>
用户以本人名义
</span><span>
开立的银行电子账户(即电子校园卡)中。
</span>
</van-collapse-item>
<van-collapse-item
title=
"为什么我的余额充足却消费失败?"
v-if=
"parent == 1"
name=
"1-2"
>
<p>
以下情况可能导致支付失败:
</p>
<p>
1.单笔支付超100
</p>
<p>
2.可能因用户个人原因(非正常操作、违规操作等),导致账户被开户银行进行司法冻结。具体可咨询开户银行客户热线
</p>
<p>
工商银行:95588
</p>
<p>
交通银行:95559
</p>
<p>
平安银行:95511
</p>
<p>
渤海银行:95541
</p>
</van-collapse-item>
<van-collapse-item
title=
"充值失败后我的钱去哪了?"
v-if=
"parent == 2"
name=
"2-1"
>
充值失败后,充值金额将在7个工作日内退回用户开户时指定的银行卡账户中。
</van-collapse-item>
<van-collapse-item
title=
"充值的上限是多少?"
v-if=
"parent == 2"
name=
"2-2"
>
根据人民银行关于II/III类户使用相关法规限制,III类户可用金额上限2000,II类户可用金额上限10000。
</van-collapse-item>
<van-collapse-item
title=
"充值金额是否可以提现?"
v-if=
"parent == 3"
name=
"3-1"
>
充值金额可随时发起提现。
</van-collapse-item>
<van-collapse-item
title=
"提现申请成功后,多久可以到账?"
v-if=
"parent == 3"
name=
"3-2"
>
提现到账时间受到人民银行相关支付系统稳定性影响,无法准确预估。一般提现到账时间为2个小时。
</van-collapse-item>
<van-collapse-item
title=
"为什么线上提现会失败?"
v-if=
"parent == 3"
name=
"3-3"
>
<p>
提现失败的原因可能有:
</p>
<p>
1.超出当日提现次数
</p>
<p>
2.由于用户个人问题导致的账户出款功能受限制等
</p>
<p>
具体可咨询客服400-9656-210
</p>
</van-collapse-item>
<van-collapse-item
title=
"为什么电子校园卡激活收到银行的短信?"
v-if=
"parent == 4"
name=
"4-1"
>
电子校园卡账户由银行II/III账户支持。
</van-collapse-item>
<van-collapse-item
title=
"电子校园卡内的余额为什么会调整更新?"
v-if=
"parent == 4"
name=
"4-2"
>
账户中的实际金额以银行II/III类户账户中的余额为准,当您在银行进行提现等操作时,真实余额将会同步更新。如对明细有疑问,请致电银行客户热线
</van-collapse-item>
</van-collapse>
</view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
activeName
:
'
1-1
'
,
parent
:
1
,
sub
:
1
}
},
onLoad
:
function
(
options
)
{
const
{
title
,
parent
,
sub
}
=
options
;
// 设置标题
uni
.
setNavigationBarTitle
({
title
:
title
})
this
.
parent
=
parent
;
this
.
sub
=
sub
;
this
.
activeName
=
parent
+
"
-
"
+
sub
;
},
methods
:
{
change
(
e
)
{
console
.
log
(
e
);
}
}
}
</
script
>
<
style
lang=
"scss"
>
.problemDetail
{
width
:
100%
;
height
:
100%
;
min-height
:
calc
(
100vh
-
88rpx
);
.content
{
padding
:
30rpx
;
.red
{
color
:
red
;
}
}
.text
{
font-size
:
28rpx
;
color
:
#666666
;
line-height
:
40rpx
;
}
}
</
style
>
src/static/images/breakfastTimeBg.png
0 → 100644
View file @
81d2a368
19.5 KB
src/static/images/consumeOpenbgm.png
0 → 100644
View file @
81d2a368
6.69 KB
src/static/images/consumerAdvice.png
deleted
100644 → 0
View file @
50dec480
1.07 KB
src/static/images/consumerRationality.png
deleted
100644 → 0
View file @
50dec480
2.74 KB
src/static/images/mealPal.png
0 → 100644
View file @
81d2a368
2.16 KB
src/static/images/noAttendanceReportDatailData.png
0 → 100644
View file @
81d2a368
77.3 KB
src/static/images/progress.png
0 → 100644
View file @
81d2a368
5.77 KB
src/static/images/progressIcon.png
0 → 100644
View file @
81d2a368
2.5 KB
src/static/images/timeTrends.png
0 → 100644
View file @
81d2a368
2.01 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment