报工报表接口对接,投料bug修复
parent
16f59c10be
commit
226b2d295e
@ -0,0 +1,79 @@
|
|||||||
|
|
||||||
|
const COLOR = [
|
||||||
|
"#EE6A66", "#6BC588", "#FFC300", "#24ABFD"
|
||||||
|
];
|
||||||
|
|
||||||
|
var ISCANVAS2D = true;
|
||||||
|
|
||||||
|
switch (uni.getSystemInfoSync().platform) {
|
||||||
|
case 'android':
|
||||||
|
ISCANVAS2D = true
|
||||||
|
break;
|
||||||
|
case 'ios':
|
||||||
|
ISCANVAS2D = true
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ISCANVAS2D = false
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const RESPOND = {
|
||||||
|
success: 0,
|
||||||
|
warn: 301,
|
||||||
|
error: 500,
|
||||||
|
};
|
||||||
|
|
||||||
|
const TIMEARRAY = [
|
||||||
|
{
|
||||||
|
text: '当天',
|
||||||
|
value: 'today'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '昨天',
|
||||||
|
value: 'yesterday'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '本周',
|
||||||
|
value: 'week'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '上周',
|
||||||
|
value: 'weeklast'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '本月',
|
||||||
|
value: 'month'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '上月',
|
||||||
|
value: 'monthlast'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '指定日期',
|
||||||
|
value: 'auto'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const TABLIST = [
|
||||||
|
{name:"企业微信",type:"WECHAT"},
|
||||||
|
{name:"会员运营",type:"OPERATE"},
|
||||||
|
{name:"会员健康",type:"GJJK"},
|
||||||
|
{name:"会员服务",type:"SERVICE"},
|
||||||
|
];
|
||||||
|
|
||||||
|
const CARD_MENU = [
|
||||||
|
{title:"会员报表中心",author:"howcode",img:"https://s1.ax1x.com/2023/03/31/ppRp4iV.jpg",url:"/myPackageA/pages/main/index"},
|
||||||
|
{title:"智慧教育报表中心",author:"howcode",img:"https://s1.ax1x.com/2023/03/31/ppRp5GT.jpg",url:"/myPackageA/pages/school/index"},
|
||||||
|
{title:"差旅报表中心",author:"秋云",img:"https://s1.ax1x.com/2023/03/31/ppRpfI0.jpg",url:""},
|
||||||
|
{title:"运动报表中心",author:"howcode",img:"https://s1.ax1x.com/2023/03/31/ppRpWaq.jpg",url:"/myPackageA/pages/sport/index"},
|
||||||
|
{title:"财务报表中心",author:"howcode",img:"https://s1.ax1x.com/2023/03/31/ppRpozF.jpg",url:"/myPackageA/pages/finance/index"},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
COLOR,
|
||||||
|
TIMEARRAY,
|
||||||
|
TABLIST,
|
||||||
|
RESPOND,
|
||||||
|
ISCANVAS2D,
|
||||||
|
CARD_MENU
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"expend":{
|
||||||
|
"categories": [
|
||||||
|
"1月",
|
||||||
|
"2月",
|
||||||
|
"2月",
|
||||||
|
"4月",
|
||||||
|
"5月"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"name": "支出情况",
|
||||||
|
"data": [1201,2501.5,985,1760,2013.85],
|
||||||
|
"type": "line",
|
||||||
|
"style": "curve",
|
||||||
|
"color": "#4ECDB6",
|
||||||
|
"unit":""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"yAxis":[
|
||||||
|
{"calibration":true,"position":"left","title":"单位/元","titleFontSize":12,"unit":"","tofix":0,"min":0,"disableGrid":true}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"income":{
|
||||||
|
"categories": [
|
||||||
|
"1月",
|
||||||
|
"2月",
|
||||||
|
"2月",
|
||||||
|
"4月",
|
||||||
|
"5月"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"name": "收入情况",
|
||||||
|
"data": [1601,1840.5,1900,1760,1500.85],
|
||||||
|
"type": "line",
|
||||||
|
"style": "curve",
|
||||||
|
"color": "#4ECDB6",
|
||||||
|
"unit":""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"yAxis":[
|
||||||
|
{"calibration":true,"position":"left","title":"单位/元","titleFontSize":12,"unit":"","tofix":0,"min":0,"disableGrid":true}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"remaining":{
|
||||||
|
"categories": [
|
||||||
|
"1月",
|
||||||
|
"2月",
|
||||||
|
"2月",
|
||||||
|
"4月",
|
||||||
|
"5月"
|
||||||
|
],
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"name": "结余情况",
|
||||||
|
"data": [815,712.5,378,450,600.85],
|
||||||
|
"type": "line",
|
||||||
|
"style": "curve",
|
||||||
|
"color": "#4ECDB6",
|
||||||
|
"unit":""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"yAxis":[
|
||||||
|
{"calibration":true,"position":"left","title":"单位/元","titleFontSize":12,"unit":"","tofix":0,"min":0,"disableGrid":true}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"series": [
|
||||||
|
{
|
||||||
|
"data":[
|
||||||
|
{
|
||||||
|
"name": "住房相关",
|
||||||
|
"value": 3200,
|
||||||
|
"color":"#4DCCB3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "食品酒水",
|
||||||
|
"value": 1020,
|
||||||
|
"color":"#5A77EC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "娱乐休闲",
|
||||||
|
"value": 500,
|
||||||
|
"color":"#4E94EC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "交流通讯",
|
||||||
|
"value": 214.5,
|
||||||
|
"color":"#4FD4EB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "其他",
|
||||||
|
"value": 320.13,
|
||||||
|
"color":"#B5ED21"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -0,0 +1,125 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<view v-if="copyContent.length > 0" class="ranking">
|
||||||
|
<view class="ranking-item" v-for="(content,index) in copyContent" :key="index" :style="{padding:progressPadding+'rpx'}">
|
||||||
|
<view class="name">{{content.name}}</view>
|
||||||
|
<view class="progress" >
|
||||||
|
<text :style="{background:content.background,width:content.width + '%',height:progressWidth+'rpx'}"></text>
|
||||||
|
</view>
|
||||||
|
<view class="num">{{content.num}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default{
|
||||||
|
name:'ranking-list',
|
||||||
|
props:{
|
||||||
|
content:{
|
||||||
|
type: Array,
|
||||||
|
default() {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
isPC:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false
|
||||||
|
},
|
||||||
|
isRank:{
|
||||||
|
type:Boolean,
|
||||||
|
default:false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
progressWidth:24,
|
||||||
|
progressPadding:10,
|
||||||
|
maxNumber:0,
|
||||||
|
culCount:0,
|
||||||
|
copyContent:[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
content(newV){
|
||||||
|
this.init()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
init(){
|
||||||
|
this.copyContent = this.deepClone(this.content)
|
||||||
|
if(this.copyContent && this.copyContent.length >0){
|
||||||
|
if(this.isRank){
|
||||||
|
this.copyContent = this.copyContent.sort((a,b) => b.num - a.num);
|
||||||
|
this.maxNumber = this.copyContent[0].num;
|
||||||
|
}else{
|
||||||
|
this.maxNumber = Math.max.apply(Math,this.copyContent.map(item => { return item.num }));
|
||||||
|
}
|
||||||
|
this.copyContent.map((item,index) =>{
|
||||||
|
item.width = this.computeWidth(this.maxNumber,item.num);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computeWidth(max,current){
|
||||||
|
let num = (current / max) * 100;
|
||||||
|
return num.toFixed(2);
|
||||||
|
},
|
||||||
|
deepClone(obj) {
|
||||||
|
var cloneObj = new obj.constructor()
|
||||||
|
if(obj === null) return obj
|
||||||
|
if(obj instanceof Date) return new Date(obj)
|
||||||
|
if(obj instanceof RegExp) return new RegExp(obj)
|
||||||
|
if (typeof obj !== 'object') return obj
|
||||||
|
for (var i in obj) {
|
||||||
|
if (obj.hasOwnProperty(i)) {
|
||||||
|
cloneObj[i] = this.deepClone(obj[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cloneObj
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if(this.isPC){
|
||||||
|
this.progressWidth = 40;
|
||||||
|
this.progressPadding = 30;
|
||||||
|
}
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.ranking-item{
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 13rpx;
|
||||||
|
align-content: center;
|
||||||
|
height: 50rpx;
|
||||||
|
|
||||||
|
.name{
|
||||||
|
padding-right: 10rpx;
|
||||||
|
color: #868688;
|
||||||
|
font-size: 20rpx;
|
||||||
|
flex: 1;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.progress{
|
||||||
|
flex:5;
|
||||||
|
text-align: left;
|
||||||
|
padding-right: 10rpx;
|
||||||
|
|
||||||
|
text{
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
vertical-align:top;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.num{
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #3EB2F5;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,512 @@
|
|||||||
|
<template>
|
||||||
|
<view class="body">
|
||||||
|
<view class="top_head">
|
||||||
|
<view class="text_des">
|
||||||
|
<text class="month_num">{{ nowTime.month }}</text>
|
||||||
|
<text class="month_text">月</text>
|
||||||
|
<text class="month_year">{{ nowTime.year }}</text>
|
||||||
|
<text class="point">.</text>
|
||||||
|
<text class="title">报工报表</text>
|
||||||
|
</view>
|
||||||
|
<view class="top_desc">
|
||||||
|
<view>
|
||||||
|
<view class="text">上月报工汇总</view>
|
||||||
|
<view class="text-gray">总数</view>
|
||||||
|
<view class="remaining">{{ lastMonthSum.sumNumber }}</view>
|
||||||
|
<view class="row head_block">
|
||||||
|
<view class="flex_1">
|
||||||
|
<text class="text-gray">合格数</text>
|
||||||
|
<text class="text_green">{{ lastMonthSum.totalQualityNumber }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex_1">
|
||||||
|
<text class="text-gray">废品数</text>
|
||||||
|
<text class="income">{{ lastMonthSum.totalWasteNumber }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<view class="text">本月报工汇总</view>
|
||||||
|
<view class="text-gray">总数</view>
|
||||||
|
<view class="remaining">{{ thisMonthSum.sumNumber }}</view>
|
||||||
|
<view class="row head_block">
|
||||||
|
<view class="flex_1">
|
||||||
|
<text class="text-gray">合格数</text>
|
||||||
|
<text class="text_green">{{ thisMonthSum.totalQualityNumber }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex_1">
|
||||||
|
<text class="text-gray">废品数</text>
|
||||||
|
<text class="income">{{ thisMonthSum.totalWasteNumber }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="main">
|
||||||
|
<view class="row_block">
|
||||||
|
<view class="the_title" style="justify-content: space-between;">
|
||||||
|
<view class="left_title">
|
||||||
|
<view class="title_icon"></view>
|
||||||
|
<text class="margin_stand-samll font-big wide">30天报工数据</text>
|
||||||
|
</view>
|
||||||
|
<view class="right_btn">
|
||||||
|
<view v-for="(item, index) in historyBtn" :key="index" :class="item.state ? 'active_btn' : ''"
|
||||||
|
@click="changeHistoryBtn(item.type)">{{ item.name }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="charts-box" style="height: 200px;">
|
||||||
|
<qiun-data-charts type="line" canvasId="finance_a" :canvas2d="isCanvas2d" :reshow="delayload"
|
||||||
|
:opts="{ xAxis: { itemCount: 12, disableGrid: true }, yAxis: { disableGrid: true, data: [{ disabled: true }] } }"
|
||||||
|
:chartData="historyData" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row_block">
|
||||||
|
<view class="the_title">
|
||||||
|
<view class="title_icon"></view>
|
||||||
|
<text class="margin_stand-samll font-big wide">最近30天计时列表</text>
|
||||||
|
</view>
|
||||||
|
<view class="detail_list">
|
||||||
|
<view v-for="(item, index) in detailList" :key="index" class="detail_item">
|
||||||
|
<view>
|
||||||
|
<view class="font-middle">报工日期</view>
|
||||||
|
<view class="font-small">{{ item.reportDay }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="right_content">
|
||||||
|
<view class="hour">计时时长</view>
|
||||||
|
<view class="text-gray font-middle">{{ item.reportTime }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="end_block">
|
||||||
|
<view class="the_title" style="margin-bottom: 40rpx;">
|
||||||
|
<view class="title_icon"></view>
|
||||||
|
<text class="margin_stand-samll font-big wide">本月上月计时汇总</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex_wrap">
|
||||||
|
<view>
|
||||||
|
<text class="text-gray" style="margin-right: 10px">上月总计时</text>
|
||||||
|
<text class="text_green">{{ sumReportTime.totalWasteNumber }}</text>
|
||||||
|
</view>
|
||||||
|
<view>
|
||||||
|
<text class="text-gray" style="margin-right: 10px">本月总计时</text>
|
||||||
|
<text class="text_green">{{ sumReportTime.totalQualityNumber }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import dataOne from '@/pages/json/1.json';
|
||||||
|
import expendDetail from '@/pages/json/2.json';
|
||||||
|
import {getDayReportTime, getLastMonthSum, getReportTime, getSumReportTime, getThisMonthSum} from "@/api/mes/report";
|
||||||
|
import useUserStore from "@/store/modules/user";
|
||||||
|
import Config from '@/pages/js/config'
|
||||||
|
import { ref } from 'vue';
|
||||||
|
import { onLoad } from "@dcloudio/uni-app";
|
||||||
|
|
||||||
|
const now = new Date();
|
||||||
|
const nowTime = {
|
||||||
|
year: now.getFullYear(),
|
||||||
|
month: now.getMonth() + 1,
|
||||||
|
day: now.getDate()
|
||||||
|
};
|
||||||
|
|
||||||
|
const useStore = useUserStore()
|
||||||
|
const userId = ref(useStore.userId)
|
||||||
|
const isCanvas2d = ref(Config.ISCANVAS2D)
|
||||||
|
|
||||||
|
let expendCount = 0;
|
||||||
|
let delayload = ref(false);
|
||||||
|
let historyData = ref({});
|
||||||
|
const reportTime = ref({})
|
||||||
|
const lastMonthSum = ref({});
|
||||||
|
const thisMonthSum = ref({});
|
||||||
|
const sumReportTime = ref({})
|
||||||
|
const detailList = ref([]);
|
||||||
|
|
||||||
|
const historyBtn = ref([
|
||||||
|
{
|
||||||
|
name: "总数",
|
||||||
|
state: 1,
|
||||||
|
type: "sumNumber"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "合格数",
|
||||||
|
state: 0,
|
||||||
|
type: "totalQualityNumber"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "废品数",
|
||||||
|
state: 0,
|
||||||
|
type: "totalWasteNumber"
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
const filterHistoryData = () => {
|
||||||
|
let type = historyBtn.value.filter(x => x.state == 1)[0].type;
|
||||||
|
switch (type) {
|
||||||
|
case "sumNumber":
|
||||||
|
historyData.value = dataOne.sumNumber;
|
||||||
|
break;
|
||||||
|
case "totalQualityNumber":
|
||||||
|
historyData.value = dataOne.totalQualityNumber;
|
||||||
|
break;
|
||||||
|
case "totalWasteNumber":
|
||||||
|
historyData.value = dataOne.totalWasteNumber;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const getData =()=> {
|
||||||
|
filterHistoryData();
|
||||||
|
for (let i = 0; i < expendDetail.series.length; i++) {
|
||||||
|
expendDetail.series[i].format = "pieDemo";
|
||||||
|
}
|
||||||
|
let length = expendDetail.series[0].data.length;
|
||||||
|
for (let i = 0; i < length; i++) {
|
||||||
|
expendCount += expendDetail.series[0].data[i].value;
|
||||||
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
delayload.value = true;
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
const changeHistoryBtn = (type) => {
|
||||||
|
for (let i = 0; i < historyBtn.value.length; i++) {
|
||||||
|
if (historyBtn.value[i].type === type) {
|
||||||
|
historyBtn.value[i].state = 1;
|
||||||
|
} else {
|
||||||
|
historyBtn.value[i].state = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filterHistoryData();
|
||||||
|
}
|
||||||
|
// 30天报工数据
|
||||||
|
const getReportTimeList = ()=>{
|
||||||
|
getReportTime(userId.value).then(response => {
|
||||||
|
reportTime.value = response.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 上月报工汇总
|
||||||
|
const getLastMonthSumList = ()=>{
|
||||||
|
getLastMonthSum(userId.value).then(response => {
|
||||||
|
lastMonthSum.value = response.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 本月报工汇总
|
||||||
|
const getThisMonthSumList = ()=>{
|
||||||
|
getThisMonthSum(userId.value).then(response => {
|
||||||
|
thisMonthSum.value = response.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 本月上月计时汇总
|
||||||
|
const getSumReportTimeList = ()=>{
|
||||||
|
getSumReportTime(userId.value).then(response => {
|
||||||
|
sumReportTime.value = response.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 最近30天计时列表
|
||||||
|
const getDayReportTimeList = ()=>{
|
||||||
|
getDayReportTime(userId.value).then(response => {
|
||||||
|
detailList.value = response.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onLoad(() => {
|
||||||
|
getData();
|
||||||
|
getReportTimeList()
|
||||||
|
getLastMonthSumList()
|
||||||
|
getThisMonthSumList()
|
||||||
|
getSumReportTimeList()
|
||||||
|
getDayReportTimeList();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.body {
|
||||||
|
height: 100%;
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
margin: 0;
|
||||||
|
padding-bottom: 20rpx;
|
||||||
|
|
||||||
|
.text_green {
|
||||||
|
color: #4ECDB6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 10rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
|
||||||
|
.detail_list {
|
||||||
|
height: 700rpx;
|
||||||
|
overflow: auto;
|
||||||
|
color: #9E9E9E;
|
||||||
|
|
||||||
|
.detail_item {
|
||||||
|
display: flex;
|
||||||
|
margin: 20rpx 0;
|
||||||
|
align-items: center;
|
||||||
|
.right_content {
|
||||||
|
width: 75%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.hour {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.extend_message {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
color: #ccc;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
text {
|
||||||
|
color: #ff9900;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.level_bar {
|
||||||
|
width: 100%;
|
||||||
|
height: 40rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
color: #ccc;
|
||||||
|
font-size: 20rpx;
|
||||||
|
text-align: right;
|
||||||
|
line-height: 40rpx;
|
||||||
|
|
||||||
|
view {
|
||||||
|
border-right: 2rpx solid #fff;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
position: absolute;
|
||||||
|
top: -30rpx;
|
||||||
|
right: -40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.range {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 30rpx;
|
||||||
|
right: -40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.default_bar {
|
||||||
|
background-color: #A0DFCD;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active_bar {
|
||||||
|
background-color: #02AE7A;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.right_btn {
|
||||||
|
float: right;
|
||||||
|
display: flex;
|
||||||
|
color: #ccc;
|
||||||
|
font-size: 22rpx;
|
||||||
|
|
||||||
|
view {
|
||||||
|
line-height: 50rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
margin: 0 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active_btn {
|
||||||
|
padding: 0 20rpx;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.end_block {
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
position: relative;
|
||||||
|
padding: 20rpx;
|
||||||
|
.flex_wrap {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.row_block {
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
position: relative;
|
||||||
|
padding: 20rpx;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
height: 0;
|
||||||
|
width: 92%;
|
||||||
|
position: absolute;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
left: 50%;
|
||||||
|
bottom: 0;
|
||||||
|
border-top: 1px dashed #ccc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.the_title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.left_title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title_icon {
|
||||||
|
background-color: #7E7E7E;
|
||||||
|
height: 40rpx;
|
||||||
|
width: 10rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.extend_rank {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #F5F5F5;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10rpx;
|
||||||
|
|
||||||
|
.rank_item {
|
||||||
|
width: 100%;
|
||||||
|
margin: 20rpx 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
font-size: 26rpx;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
margin: 0 10rpx;
|
||||||
|
color: #7D7D7D;
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desc {
|
||||||
|
width: 50%;
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.money {
|
||||||
|
width: 20%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.top_head {
|
||||||
|
height: 495rpx;
|
||||||
|
width: 100%;
|
||||||
|
padding: 110rpx 10rpx 0 10rpx;
|
||||||
|
background: url('@/static/images/icon/background.png') no-repeat center 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.top_desc {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
padding: 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
.text {
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #1783f2;
|
||||||
|
margin-bottom: 10px
|
||||||
|
}
|
||||||
|
.text-gray {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #ccc;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.remaining {
|
||||||
|
font-size: 46rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex_1 {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.head_block {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
|
||||||
|
.income {
|
||||||
|
color: #E34B5E;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text_des {
|
||||||
|
height: 100rpx;
|
||||||
|
color: #fff;
|
||||||
|
font-weight: 900;
|
||||||
|
position: relative;
|
||||||
|
margin-left: 60rpx;
|
||||||
|
|
||||||
|
text {
|
||||||
|
display: inline-block;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.month_num {
|
||||||
|
font-size: 90rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.month_text {
|
||||||
|
font-size: 56rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.month_year {
|
||||||
|
font-size: 22rpx;
|
||||||
|
position: absolute;
|
||||||
|
left: 60rpx;
|
||||||
|
top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.point {
|
||||||
|
font-size: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 40rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue