unknown
9 months ago
22 changed files with 149 additions and 971 deletions
-
2App.vue
-
7components/UserTab/UserTab.vue
-
2components/user-info/user-info.vue
-
54pages.json
-
39pages/login/login.vue
-
2pages/tabbar/examSimulation/comp/coach.vue
-
2pages/tabbar/examSimulation/index.vue
-
78pages/tabbar/mine/index.vue
-
8pages/tabbar/operateTrain/index.vue
-
2pages/tabbar/statistics/comp/examinCoach.vue
-
6pages/tabbar/statistics/index.vue
-
3pages/tabbar/student/index.vue
-
174pages/userCenter/statistics/comp/columnChart.vue
-
186pages/userCenter/statistics/comp/comp.scss
-
117pages/userCenter/statistics/comp/examinCoach.vue
-
76pages/userCenter/statistics/comp/operateCoach.vue
-
99pages/userCenter/statistics/comp/principal.vue
-
51pages/userCenter/statistics/comp/stage.vue
-
74pages/userCenter/statistics/comp/tabDate.vue
-
55pages/userCenter/statistics/comp/topUserInfo.vue
-
76pages/userCenter/statistics/index.vue
-
3store/modules/user.js
@ -1,174 +0,0 @@ |
|||||
<template> |
|
||||
<view class="charts-box"> |
|
||||
<qiun-data-charts |
|
||||
type="line" |
|
||||
:opts="opts" |
|
||||
:chartData="chartData" |
|
||||
/> |
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
export default { |
|
||||
data() { |
|
||||
return { |
|
||||
chartData: {}, |
|
||||
//这里的 opts 是图表类型 type="column" 的全部配置参数,您可以将此配置复制到 config-ucharts.js 文件中下标为 ['column'] 的节点中来覆盖全局默认参数。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。 |
|
||||
opts: { |
|
||||
timing: "easeOut", |
|
||||
duration: 1000, |
|
||||
rotate: false, |
|
||||
rotateLock: false, |
|
||||
color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"], |
|
||||
padding: [15,15,0,5], |
|
||||
fontSize: 13, |
|
||||
fontColor: "#1989FA", |
|
||||
dataLabel: true, |
|
||||
dataPointShape: true, |
|
||||
dataPointShapeType: "solid", |
|
||||
touchMoveLimit: 60, |
|
||||
enableScroll: false, |
|
||||
enableMarkLine: false, |
|
||||
legend: { |
|
||||
show: false, |
|
||||
position: "bottom", |
|
||||
float: "center", |
|
||||
padding: 5, |
|
||||
margin: 5, |
|
||||
backgroundColor: "rgba(0,0,0,0)", |
|
||||
borderColor: "rgba(0,0,0,0)", |
|
||||
borderWidth: 0, |
|
||||
fontSize: 13, |
|
||||
fontColor: "#666666", |
|
||||
lineHeight: 11, |
|
||||
hiddenColor: "#CECECE", |
|
||||
itemGap: 10 |
|
||||
}, |
|
||||
xAxis: { |
|
||||
disableGrid: true, |
|
||||
disabled: false, |
|
||||
axisLine: true, |
|
||||
axisLineColor: "#E8E9EC", |
|
||||
calibration: false, |
|
||||
fontColor: "#686B73", |
|
||||
fontSize: 12, |
|
||||
lineHeight: 20, |
|
||||
marginTop: 0, |
|
||||
rotateLabel: false, |
|
||||
rotateAngle: 45, |
|
||||
itemCount: 5, |
|
||||
boundaryGap: "center", |
|
||||
splitNumber: 5, |
|
||||
gridColor: "#CCCCCC", |
|
||||
gridType: "solid", |
|
||||
dashLength: 4, |
|
||||
gridEval: 1, |
|
||||
scrollShow: false, |
|
||||
scrollAlign: "left", |
|
||||
scrollColor: "#A6A6A6", |
|
||||
scrollBackgroundColor: "#EFEBEF", |
|
||||
title: "", |
|
||||
titleFontSize: 13, |
|
||||
titleOffsetY: 0, |
|
||||
titleOffsetX: 0, |
|
||||
titleFontColor: "#666666", |
|
||||
format: "" |
|
||||
}, |
|
||||
yAxis: { |
|
||||
data: [ |
|
||||
{ |
|
||||
min: 0 |
|
||||
} |
|
||||
], |
|
||||
disabled: true, |
|
||||
disableGrid: false, |
|
||||
splitNumber: 5, |
|
||||
gridType: "dash", |
|
||||
dashLength: 8, |
|
||||
gridColor: "#E8E9EC", |
|
||||
padding: 10, |
|
||||
showTitle: false |
|
||||
}, |
|
||||
extra: { |
|
||||
column: { |
|
||||
type: "group", |
|
||||
width: 9, |
|
||||
activeBgColor: "#000000", |
|
||||
activeBgOpacity: 0.08, |
|
||||
seriesGap: 2, |
|
||||
categoryGap: 3, |
|
||||
barBorderCircle: false, |
|
||||
linearType: "none", |
|
||||
linearOpacity: 1, |
|
||||
colorStop: 0, |
|
||||
meterBorder: 1, |
|
||||
meterFillColor: "#FFFFFF", |
|
||||
labelPosition: "outside" |
|
||||
}, |
|
||||
tooltip: { |
|
||||
showBox: false, |
|
||||
showArrow: true, |
|
||||
showCategory: false, |
|
||||
borderWidth: 0, |
|
||||
borderRadius: 0, |
|
||||
borderColor: "#000000", |
|
||||
borderOpacity: 0.7, |
|
||||
bgColor: "#000000", |
|
||||
bgOpacity: 0.7, |
|
||||
gridType: "solid", |
|
||||
dashLength: 4, |
|
||||
gridColor: "#CCCCCC", |
|
||||
boxPadding: 3, |
|
||||
fontSize: 12, |
|
||||
lineHeight: 20, |
|
||||
fontColor: "#FFFFFF", |
|
||||
legendShow: true, |
|
||||
legendShape: "auto", |
|
||||
splitLine: true, |
|
||||
horizentalLine: false, |
|
||||
xAxisLabel: false, |
|
||||
yAxisLabel: false, |
|
||||
labelBgColor: "#FFFFFF", |
|
||||
labelBgOpacity: 0.7, |
|
||||
labelFontColor: "#666666" |
|
||||
}, |
|
||||
markLine: { |
|
||||
type: "solid", |
|
||||
dashLength: 4, |
|
||||
data: [] |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
}; |
|
||||
}, |
|
||||
mounted() { |
|
||||
this.getServerData(); |
|
||||
}, |
|
||||
methods: { |
|
||||
getServerData() { |
|
||||
//模拟从服务器获取数据时的延时 |
|
||||
setTimeout(() => { |
|
||||
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接 |
|
||||
let res = { |
|
||||
categories: ["08/01","08/02","08/03","08/04","08/05","08/06"], |
|
||||
series: [ |
|
||||
{ |
|
||||
name: "目标值", |
|
||||
data: [35,16,31,33,35,36,] |
|
||||
} |
|
||||
] |
|
||||
}; |
|
||||
this.chartData = JSON.parse(JSON.stringify(res)); |
|
||||
}, 500); |
|
||||
}, |
|
||||
} |
|
||||
}; |
|
||||
</script> |
|
||||
|
|
||||
<style scoped> |
|
||||
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */ |
|
||||
.charts-box { |
|
||||
width: 100%; |
|
||||
height: 100%; |
|
||||
} |
|
||||
</style> |
|
@ -1,186 +0,0 @@ |
|||||
|
|
||||
|
|
||||
.pageBgImg { |
|
||||
width: 100%; |
|
||||
// background: url('http://192.168.1.20:81/zhili/image/20230824/30073140957f4349b6579cb0ff00d4b1.png') #F6F6F6 no-repeat; |
|
||||
// background-size: 100% 492rpx; |
|
||||
padding: 40rpx 28rpx 140rpx 28rpx; |
|
||||
.userInfo { |
|
||||
|
|
||||
.tit { |
|
||||
font-size: 48rpx; |
|
||||
color: #fff; |
|
||||
font-weight: 500; |
|
||||
} |
|
||||
|
|
||||
.userRow { |
|
||||
align-items: center; |
|
||||
margin-bottom: 20rpx; |
|
||||
.schoolIcon { |
|
||||
width: 28rpx; |
|
||||
height: 28rpx; |
|
||||
} |
|
||||
|
|
||||
.schoolName { |
|
||||
font-size: 28rpx; |
|
||||
padding: 20rpx; |
|
||||
max-width: 220rpx; |
|
||||
color: #fff; |
|
||||
} |
|
||||
|
|
||||
.tag { |
|
||||
min-width: 112rpx; |
|
||||
height: 44rpx; |
|
||||
padding: 0 20rpx; |
|
||||
background: #82AFDD; |
|
||||
border-radius: 22rpx; |
|
||||
font-size: 20rpx; |
|
||||
color: #fff; |
|
||||
line-height: 44rpx; |
|
||||
text-align: center; |
|
||||
white-space: nowrap; |
|
||||
width: fit-content; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.priceBox { |
|
||||
padding: 32rpx; |
|
||||
color: $themC; |
|
||||
.blueLab { |
|
||||
font-weight: 500; |
|
||||
font-size: 28rpx; |
|
||||
} |
|
||||
|
|
||||
.price { |
|
||||
font-size: 56rpx; |
|
||||
font-weight: 600; |
|
||||
padding: 12rpx 0 24rpx 0; |
|
||||
} |
|
||||
.toDay { |
|
||||
padding: 14rpx 0; |
|
||||
border-top: 2rpx dashed #E8E9EC; |
|
||||
border-bottom: 2rpx dashed #E8E9EC; |
|
||||
margin-bottom: 20rpx; |
|
||||
.row { |
|
||||
padding: 16rpx 0; |
|
||||
display: flex; |
|
||||
align-items: center; |
|
||||
.lab { |
|
||||
color: #686B73; |
|
||||
font-size: 24rpx; |
|
||||
width: 210rpx; |
|
||||
} |
|
||||
.val { |
|
||||
font-size: 28rpx; |
|
||||
font-weight: 600; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.flex-b { |
|
||||
|
|
||||
.data { |
|
||||
font-size: 24rpx; |
|
||||
color: #363A44; |
|
||||
} |
|
||||
|
|
||||
.refresh { |
|
||||
width: 130rpx; |
|
||||
height: 60rpx; |
|
||||
background: rgba(25,137,250,0.1); |
|
||||
border-radius: 8rpx; |
|
||||
border: 2rpx solid #1989FA; |
|
||||
line-height: 60rpx; |
|
||||
display: flex; |
|
||||
align-items: center; |
|
||||
justify-content: center; |
|
||||
.text { |
|
||||
font-size: 28rpx; |
|
||||
} |
|
||||
|
|
||||
.icon { |
|
||||
width: 24rpx; |
|
||||
height: 24rpx; |
|
||||
margin-left: 6rpx; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.h1 { |
|
||||
margin: 32rpx 0 24rpx 0; |
|
||||
} |
|
||||
|
|
||||
.tabs { |
|
||||
display: flex; |
|
||||
justify-content: space-between; |
|
||||
padding-bottom: 24rpx; |
|
||||
.tab { |
|
||||
width: 96rpx; |
|
||||
height: 60rpx; |
|
||||
background: rgba(25,137,250,0.1); |
|
||||
border-radius: 8rpx; |
|
||||
border: 2rpx solid #1989FA; |
|
||||
font-size: 28rpx; |
|
||||
text-align: center; |
|
||||
line-height: 60rpx; |
|
||||
color: $themC; |
|
||||
&.active { |
|
||||
color: #fff; |
|
||||
background-color: $themC; |
|
||||
} |
|
||||
&.long { |
|
||||
min-width: 336rpx; |
|
||||
width: fit-content !important; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.card { |
|
||||
margin-bottom: 20rpx; |
|
||||
.chart { |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
.moreBtn { |
|
||||
width: 200rpx; |
|
||||
height: 60rpx; |
|
||||
background: #FFFFFF; |
|
||||
border-radius: 8rpx; |
|
||||
border: 2rpx solid #E8E9EC; |
|
||||
color: #ADADAD; |
|
||||
text-align: center; |
|
||||
line-height: 60rpx; |
|
||||
margin: 32rpx auto 8rpx auto; |
|
||||
} |
|
||||
} |
|
||||
.chart { |
|
||||
width:100%; |
|
||||
height: 390rpx; |
|
||||
background: #FFFFFF; |
|
||||
border-radius: 16rpx; |
|
||||
padding: 28rpx; |
|
||||
} |
|
||||
|
|
||||
.toDayServe { |
|
||||
display: flex; |
|
||||
justify-content: space-around; |
|
||||
padding: 20rpx 0; |
|
||||
.serveItem { |
|
||||
width: 33%; |
|
||||
width: 140rpx; |
|
||||
height: 146rpx; |
|
||||
background: rgba(25,137,250,0.06); |
|
||||
border-radius: 12rpx; |
|
||||
text-align: center; |
|
||||
.lab { |
|
||||
font-size: 24rpx; |
|
||||
margin: 18rpx 0 16rpx 0; |
|
||||
} |
|
||||
.val { |
|
||||
font-size: 56rpx; |
|
||||
font-weight: 600; |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,117 +0,0 @@ |
|||||
<template> |
|
||||
<view class="content"> |
|
||||
<view class="userInfo"> |
|
||||
<view class="tit">Hi,{{ vuex_userInfo.user.nickname }}</view> |
|
||||
<view class="flex userRow"> |
|
||||
<view class="schoolIcon"> |
|
||||
<image src="@/static/images/index/ic_jiaxiao.png" mode=""></image> |
|
||||
</view> |
|
||||
<view class="schoolName oneRowText">缺字段</view> |
|
||||
<view class="tag">{{identity}}</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="card priceBox"> |
|
||||
<view class="blueLab">今日待服务</view> |
|
||||
<view class="toDayServe"> |
|
||||
<view class="serveItem"> |
|
||||
<view class="lab">科目二</view> |
|
||||
<view class="val">6</view> |
|
||||
</view> |
|
||||
<view class="serveItem"> |
|
||||
<view class="lab">科目三</view> |
|
||||
<view class="val">10</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="flex-b"> |
|
||||
<view class="data">截止:2023/08/08 11:00:00</view> |
|
||||
<view class="refresh"> |
|
||||
<view class="text">刷新</view> |
|
||||
<view class="icon"> |
|
||||
<image src="@/static/images/index/ic_shuaxin.png" mode=""></image> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
|
|
||||
<view class="h1">服务次数统计</view> |
|
||||
<view class="navBox"> |
|
||||
<cardNav :navData="navData" :currentNav="currentNav" @changeNav="changeNav"></cardNav> |
|
||||
</view> |
|
||||
<view class="tab_box"> |
|
||||
<tabDate/> |
|
||||
</view> |
|
||||
|
|
||||
<view class="card"> |
|
||||
<view class="chart"> |
|
||||
<columnChart/> |
|
||||
</view> |
|
||||
</view> |
|
||||
|
|
||||
|
|
||||
<view class="h1">服务学员人数统计</view> |
|
||||
<view class="tab_box"> |
|
||||
<tabDate/> |
|
||||
</view> |
|
||||
<view class="card"> |
|
||||
<view class="chart"> |
|
||||
<columnChart/> |
|
||||
</view> |
|
||||
</view> |
|
||||
|
|
||||
<UserTab name ='统计'></UserTab> |
|
||||
|
|
||||
|
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import stage from './stage' |
|
||||
import columnChart from './columnChart' |
|
||||
import tabDate from './tabDate' |
|
||||
export default { |
|
||||
components: { stage, columnChart, tabDate }, |
|
||||
data() { |
|
||||
return { |
|
||||
value1: '', |
|
||||
currentTab: 1, |
|
||||
currentTab2: 1, |
|
||||
showDatePicker: false, |
|
||||
navData: [ |
|
||||
{text: '全部', id: 0}, |
|
||||
{text: '科目二', id: 1}, |
|
||||
{text: '科目三', id: 2}, |
|
||||
], |
|
||||
currentNav: 1 |
|
||||
} |
|
||||
}, |
|
||||
onLoad() { |
|
||||
|
|
||||
}, |
|
||||
onShow() { |
|
||||
; |
|
||||
}, |
|
||||
methods: { |
|
||||
|
|
||||
tabClick2(num) { |
|
||||
this.currentTab2 = num |
|
||||
if(num==4) { |
|
||||
this.showDatePicker = true |
|
||||
} |
|
||||
}, |
|
||||
changeNav(num) { |
|
||||
this.currentNav = num |
|
||||
}, |
|
||||
// 2选择时间选择器里的时间 |
|
||||
selectDateClick(val) { |
|
||||
console.log(val) |
|
||||
}, |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style lang="scss" scoped> |
|
||||
@import './comp.scss'; |
|
||||
.navBox { |
|
||||
margin-bottom: 24rpx; |
|
||||
} |
|
||||
</style> |
|
@ -1,76 +0,0 @@ |
|||||
<template> |
|
||||
<view class="content"> |
|
||||
<view class="userInfo"> |
|
||||
<view class="tit">Hi,大乔教练</view> |
|
||||
<view class="flex userRow"> |
|
||||
<view class="schoolIcon"> |
|
||||
<image src="@/static/images/index/ic_jiaxiao.png" mode=""></image> |
|
||||
</view> |
|
||||
<view class="schoolName oneRowText">翔力驾校</view> |
|
||||
<view class="tag">合作教练</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="card priceBox"> |
|
||||
<view class="blueLab">今日已结算金额</view> |
|
||||
<view class="price">¥36333.66</view> |
|
||||
<view class="flex-b"> |
|
||||
<view class="data">截止:2023/08/08 11:00:00</view> |
|
||||
<view class="refresh"> |
|
||||
<view class="text">刷新</view> |
|
||||
<view class="icon"> |
|
||||
<image src="@/static/images/index/ic_shuaxin.png" mode=""></image> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
|
|
||||
<view class="h1"> 结算统计</view> |
|
||||
<view class="tab_box"> |
|
||||
<tabDate/> |
|
||||
</view> |
|
||||
<view class="card"> |
|
||||
<view class="chart"> |
|
||||
<columnChart/> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="flex-b"> |
|
||||
<view class="h1">结算明细</view> |
|
||||
<moreRight text="更多"/> |
|
||||
</view> |
|
||||
<view class="record"> |
|
||||
<view class="card" v-for="(item,index) in 10" :key="index"> |
|
||||
<stage/> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="moreBtn" @click="$goPage('/pages/indexEntry/settlement/settlement')">查看更多</view> |
|
||||
<UserTab name ='统计'></UserTab> |
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import stage from './stage' |
|
||||
import columnChart from './columnChart' |
|
||||
import tabDate from './tabDate' |
|
||||
export default { |
|
||||
components: { stage, columnChart, tabDate }, |
|
||||
data() { |
|
||||
return { |
|
||||
value1: '', |
|
||||
currentTab: 1, |
|
||||
} |
|
||||
}, |
|
||||
onLoad() { |
|
||||
|
|
||||
}, |
|
||||
methods: { |
|
||||
tabClick(num) { |
|
||||
this.currentTab = num |
|
||||
|
|
||||
}, |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style lang="scss" scoped> |
|
||||
@import './comp.scss' |
|
||||
</style> |
|
@ -1,99 +0,0 @@ |
|||||
<template> |
|
||||
<view class="content"> |
|
||||
<view class="userInfo"> |
|
||||
<view class="tit">Hi,{{ vuex_userInfo.user.nickname }}</view> |
|
||||
<view class="flex userRow"> |
|
||||
<view class="schoolIcon"> |
|
||||
<image src="@/static/images/index/ic_jiaxiao.png" mode=""></image> |
|
||||
</view> |
|
||||
<view class="schoolName oneRowText">{{ vuex_userInfo.user.schoolName}}</view> |
|
||||
<view class="tag">{{ identity }}</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="card priceBox"> |
|
||||
<view class="blueLab">今日已结算金额</view> |
|
||||
<view class="price">¥36333.66</view> |
|
||||
<view class="toDay"> |
|
||||
<view class="row"> |
|
||||
<view class="lab">今日学员退款</view> |
|
||||
<view class="val">¥900</view> |
|
||||
</view> |
|
||||
<view class="row"> |
|
||||
<view class="lab">今日代收费</view> |
|
||||
<view class="val">¥900</view> |
|
||||
</view> |
|
||||
<view class="row"> |
|
||||
<view class="lab">今日学员退款</view> |
|
||||
<view class="val">¥900</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="flex-b"> |
|
||||
<view class="data">截止:2023/08/08 11:00:00</view> |
|
||||
<view class="refresh"> |
|
||||
<view class="text">刷新</view> |
|
||||
<view class="icon"> |
|
||||
<image src="@/static/images/index/ic_shuaxin.png" mode=""></image> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
|
|
||||
<view class="h1"> 收入统计</view> |
|
||||
<view class="tab_box"> |
|
||||
<tabDate/> |
|
||||
</view> |
|
||||
<view class="card"> |
|
||||
<view class="chart"> |
|
||||
<columnChart/> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="flex-b"> |
|
||||
<view class="h1">收入明细</view> |
|
||||
<moreRight text="更多"/> |
|
||||
</view> |
|
||||
<view class="record"> |
|
||||
<view class="card" v-for="(item,index) in 10" :key="index"> |
|
||||
<stage/> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="moreBtn" @click="$goPage('/pages/indexEntry/settlement/settlement')">查看更多</view> |
|
||||
<UserTab name ='统计'></UserTab> |
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import stage from './stage' |
|
||||
import columnChart from './columnChart' |
|
||||
import tabDate from './tabDate' |
|
||||
export default { |
|
||||
components: { stage, columnChart, tabDate }, |
|
||||
data() { |
|
||||
return { |
|
||||
value1: '', |
|
||||
currentTab: 1, |
|
||||
showDatePicker: false, |
|
||||
} |
|
||||
}, |
|
||||
onLoad() { |
|
||||
|
|
||||
}, |
|
||||
methods: { |
|
||||
tabClick(num) { |
|
||||
this.currentTab = num |
|
||||
if(num==4) { |
|
||||
this.showDatePicker = true |
|
||||
} |
|
||||
}, |
|
||||
// 2选择时间选择器里的时间 |
|
||||
confirmDatePicker(val) { |
|
||||
this.showDatePicker = false |
|
||||
let date = uni.$u.date(val.value, 'yyyy-mm-dd') |
|
||||
console.log(date) |
|
||||
}, |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style lang="scss" scoped> |
|
||||
@import './comp.scss' |
|
||||
</style> |
|
@ -1,51 +0,0 @@ |
|||||
<template> |
|
||||
<view class="li"> |
|
||||
<view class="name_row"> |
|
||||
<view class="name">张三三</view> |
|
||||
<view class="price">+¥1,130.86</view> |
|
||||
</view> |
|
||||
<view class="stage"> |
|
||||
<view>第一阶段</view> |
|
||||
<view>2023/08/08 10:55:21</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
</script> |
|
||||
|
|
||||
<style lang="scss" scoped> |
|
||||
.li { |
|
||||
height: 168rpx; |
|
||||
padding: 0 34rpx; |
|
||||
|
|
||||
.name_row { |
|
||||
display: flex; |
|
||||
justify-content: space-between; |
|
||||
height: 98rpx; |
|
||||
align-items: center; |
|
||||
|
|
||||
.name { |
|
||||
font-weight: 500; |
|
||||
font-size: 32rpx; |
|
||||
} |
|
||||
|
|
||||
.price { |
|
||||
font-size: 32rpx; |
|
||||
color: $themC; |
|
||||
font-weight: 500; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.stage { |
|
||||
display: flex; |
|
||||
justify-content: space-between; |
|
||||
height: 68rpx; |
|
||||
align-items: center; |
|
||||
font-size: 24rpx; |
|
||||
color: #686B73; |
|
||||
border-top: 2rpx dashed #E8E9EC; |
|
||||
; |
|
||||
} |
|
||||
} |
|
||||
</style> |
|
@ -1,74 +0,0 @@ |
|||||
<template> |
|
||||
<view class="tabBox"> |
|
||||
<view class="tabs"> |
|
||||
<view class="tab" @click="tabClick(1)" :class="{active: currentTab==1}">按日</view> |
|
||||
<view class="tab" @click="tabClick(2)" :class="{active: currentTab==2}">按月</view> |
|
||||
<!-- <view class="tab" @click="tabClick(3)" :class="{active: currentTab==3}">按年</view> --> |
|
||||
<!-- <view class="tab long" @click="tabClick(4)" :class="{active: currentTab==4}">{{ customDate }}</view> --> |
|
||||
</view> |
|
||||
|
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
export default { |
|
||||
data() { |
|
||||
return { |
|
||||
currentTab: 1, |
|
||||
showDatePicker: false, |
|
||||
customDate: '自定义日期' |
|
||||
} |
|
||||
}, |
|
||||
mounted() { |
|
||||
let numDate = this.$u.utils.getCustomDay(-7) |
|
||||
console.log(numDate) |
|
||||
}, |
|
||||
methods: { |
|
||||
tabClick(num) { |
|
||||
this.currentTab = num |
|
||||
if(num==4) { |
|
||||
this.showDatePicker = true |
|
||||
} |
|
||||
}, |
|
||||
// 2选择时间选择器里的时间 |
|
||||
selectDateClick(val) { |
|
||||
if(val.date1) { |
|
||||
this.customDate = val.date1 |
|
||||
}else { |
|
||||
this.customDate = val.date2+ '至' + val.date3 |
|
||||
} |
|
||||
this.showDatePicker = false |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style lang="scss" scoped> |
|
||||
.tabs { |
|
||||
display: flex; |
|
||||
// justify-content: space-between; |
|
||||
padding-bottom: 24rpx; |
|
||||
|
|
||||
.tab { |
|
||||
width: 96rpx; |
|
||||
height: 60rpx; |
|
||||
background: rgba(25, 137, 250, 0.1); |
|
||||
border-radius: 8rpx; |
|
||||
border: 2rpx solid #1989FA; |
|
||||
font-size: 28rpx; |
|
||||
text-align: center; |
|
||||
line-height: 60rpx; |
|
||||
color: $themC; |
|
||||
margin-right: 30rpx; |
|
||||
&.active { |
|
||||
color: #fff; |
|
||||
background-color: $themC; |
|
||||
} |
|
||||
|
|
||||
&.long { |
|
||||
min-width: 336rpx; |
|
||||
width: fit-content !important; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
</style> |
|
@ -1,55 +0,0 @@ |
|||||
<template> |
|
||||
<view class="userInfo"> |
|
||||
<view class="tit">Hi,{{vuex_userInfo.user.nickname}}</view> |
|
||||
<view class="flex userRow"> |
|
||||
<view class="schoolIcon"> |
|
||||
<image src="@/static/images/index/ic_jiaxiao.png" mode=""></image> |
|
||||
</view> |
|
||||
<view class="schoolName oneRowText">{{ vuex_userInfo.user.schoolName}}</view> |
|
||||
<view class="tag">{{identity}}</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
</script> |
|
||||
|
|
||||
<style lang="scss" scoped> |
|
||||
.userInfo { |
|
||||
|
|
||||
.tit { |
|
||||
font-size: 48rpx; |
|
||||
color: #fff; |
|
||||
font-weight: 500; |
|
||||
} |
|
||||
|
|
||||
.userRow { |
|
||||
align-items: center; |
|
||||
margin-bottom: 20rpx; |
|
||||
.schoolIcon { |
|
||||
width: 28rpx; |
|
||||
height: 28rpx; |
|
||||
} |
|
||||
|
|
||||
.schoolName { |
|
||||
font-size: 28rpx; |
|
||||
padding: 20rpx; |
|
||||
max-width: 420rpx; |
|
||||
color: #fff; |
|
||||
} |
|
||||
|
|
||||
.tag { |
|
||||
min-width: 112rpx; |
|
||||
height: 44rpx; |
|
||||
background: #82AFDD; |
|
||||
border-radius: 22rpx; |
|
||||
font-size: 20rpx; |
|
||||
color: #fff; |
|
||||
line-height: 44rpx; |
|
||||
text-align: center; |
|
||||
white-space: nowrap; |
|
||||
width: fit-content; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
</style> |
|
@ -1,76 +0,0 @@ |
|||||
<template> |
|
||||
<view class="main"> |
|
||||
<view class="userInfo"> |
|
||||
<view class="tit">Hi,大乔教练</view> |
|
||||
<view class="flex userRow"> |
|
||||
<view class="schoolIcon"> |
|
||||
<image src="@/static/images/index/ic_jiaxiao.png" mode=""></image> |
|
||||
</view> |
|
||||
<view class="schoolName oneRowText">翔力驾校</view> |
|
||||
<view class="tag">合作教练</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="card priceBox"> |
|
||||
<view class="blueLab">今日已结算金额</view> |
|
||||
<view class="price">¥36333.66</view> |
|
||||
<view class="flex-b"> |
|
||||
<view class="data">截止:2023/08/08 11:00:00</view> |
|
||||
<view class="refresh"> |
|
||||
<view class="text">刷新</view> |
|
||||
<view class="icon"> |
|
||||
<image src="@/static/images/index/ic_shuaxin.png" mode=""></image> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
</view> |
|
||||
|
|
||||
<view class="h1"> 结算统计</view> |
|
||||
<view class="tab_box"> |
|
||||
<tabDate/> |
|
||||
</view> |
|
||||
<view class="card"> |
|
||||
<view class="chart"> |
|
||||
<columnChart/> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="flex-b"> |
|
||||
<view class="h1">结算明细</view> |
|
||||
<moreRight text="更多"/> |
|
||||
</view> |
|
||||
<view class="record"> |
|
||||
<view class="card" v-for="(item,index) in 10" :key="index"> |
|
||||
<stage/> |
|
||||
</view> |
|
||||
</view> |
|
||||
<view class="moreBtn" @click="$goPage('/pages/indexEntry/settlement/settlement')">查看更多</view> |
|
||||
<UserTab name ='统计'></UserTab> |
|
||||
</view> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import stage from './comp/stage' |
|
||||
import columnChart from './comp/columnChart' |
|
||||
import tabDate from './comp/tabDate' |
|
||||
export default { |
|
||||
components: { stage, columnChart, tabDate }, |
|
||||
data() { |
|
||||
return { |
|
||||
value1: '', |
|
||||
currentTab: 1, |
|
||||
} |
|
||||
}, |
|
||||
onLoad() { |
|
||||
|
|
||||
}, |
|
||||
methods: { |
|
||||
tabClick(num) { |
|
||||
this.currentTab = num |
|
||||
|
|
||||
}, |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<style lang="scss" scoped> |
|
||||
@import './comp/comp.scss' |
|
||||
</style> |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue