You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

353 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="home-wrapper">
<el-card style="margin: 20px 20px; font-size: 14px">
<div slot="header"><span>工作台</span></div>
<div class="first"><img alt="" :src="avatar" style="width: 50px; height: 50px; float:left; margin-right:10px;border-radius:50%" />
<p style="font-size:16px;margin-bottom:8px">{{name}}{{hello}}</p>
<p style="font-size:12px;color:rgb(185, 181, 189)">今天是{{nowTime}}</p>
</div>
<div class="first">
<ul>
<li class="li" style="width: 33%">访客数
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
<li class="li" style="width: 33%">支付买家数
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
<li class="li" style="width: 33%">浏览量
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
</ul>
<ul>
<li class="da" style="width: 33%">
<router-link to="/basic/warehouse">2,910</router-link>
</li>
<li class="da" style="width: 33%">
<router-link to="/basic/area">56</router-link>
</li>
<li class="da" style="width: 33%">
<router-link to="/basic/rack">21,085</router-link>
</li>
</ul>
</div>
</el-card>
<el-row class="pl20 pr20" :gutter="10">
<el-col :span="8">
<el-card shadow="always" style="padding-bottom: 20px">
<div slot="header"><span>售后</span></div>
<ul>
<li class="li" style="width: 50%">待处理
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
<li class="li" style="width: 50%">处理中
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
</ul>
<ul>
<li class="da" style="width: 50%">2</li>
<li class="da" style="width: 50%">1</li>
</ul>
</el-card>
</el-col>
<el-col :span="16">
<el-card shadow="always" style="padding-bottom: 20px">
<div slot="header"><span>订单</span></div>
<div>
<ul>
<li class="li">未发订单数
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
<li class="li">未揽件有退款
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
<li class="li">发货超时
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
<li class="li">物流预警
<el-popover class="ml5" content="功能开发中" placement="top" trigger="hover"><i class="el-icon-warning-outline" slot="reference"></i></el-popover>
</li>
</ul>
<ul>
<li class="da">
<router-link to="/relation/customer">50</router-link>
</li>
<li class="da">
<router-link to="/relation/supplier">0</router-link>
</li>
<li class="da">
<router-link to="/relation/carrier">4</router-link>
</li>
<li class="da">
<router-link to="/item">3</router-link>
</li>
</ul>
</div>
</el-card>
</el-col>
</el-row>
<el-row class="pl20 pr20" :gutter="10">
<el-col :span="16">
<el-card style="margin: 20px 20px; font-size: 14px">
<div slot="header"><span>订单统计</span></div>
<el-row>
<el-col :span="4">
<div style="padding: 20px">
<div>
<div style="color: #909399;font-size: 14px">本月订单总数</div>
<div style="color: #606266;font-size: 24px;padding: 10px 0">10000</div>
<div><span class="color-success" style="font-size: 14px">+10%</span><span style="color: #C0C4CC;font-size: 14px">同比上月</span></div>
</div>
<div style="margin-top: 20px;">
<div style="color: #909399;font-size: 14px">本周订单总数</div>
<div style="color: #606266;font-size: 24px;padding: 10px 0">1000</div>
<div><span class="color-danger" style="font-size: 14px">-10%</span><span style="color: #C0C4CC;font-size: 14px">同比上周</span></div>
</div>
<div style="margin-top: 20px;">
<div style="color: #909399;font-size: 14px">本月销售总额</div>
<div style="color: #606266;font-size: 24px;padding: 10px 0">100000</div>
<div><span class="color-success" style="font-size: 14px">+10%</span><span style="color: #C0C4CC;font-size: 14px">同比上月</span></div>
</div>
<div style="margin-top: 20px;">
<div style="color: #909399;font-size: 14px">本周销售总额</div>
<div style="color: #606266;font-size: 24px;padding: 10px 0">50000</div>
<div><span class="color-danger" style="font-size: 14px">-10%</span><span style="color: #C0C4CC;font-size: 14px">同比上周</span></div>
</div>
</div>
</el-col>
<el-col :span="20">
<div style="padding: 10px;border-left:1px solid #DCDFE6">
<el-date-picker v-model="orderCountDate" align="right" end-placeholder="结束日期" :picker-options="pickerOptions" range-separator="至" size="small" start-placeholder="开始日期" style="float: right;z-index: 1" type="daterange" unlink-panels="unlink-panels" @change="handleDateChange"></el-date-picker>
<div>
<ve-line :data-empty="dataEmpty" :data="chartData" :legend-visible="false" :loading="loading" :settings="chartSettings"></ve-line>
</div>
</div>
</el-col>
</el-row>
</el-card>
</el-col>
<el-col :span="8">
<el-card style="margin: 20px 20px; font-size: 14px">
<div slot="header"><span>发展历程</span></div>
<el-timeline>
<el-timeline-item placement="top" timestamp="2018年">
<el-card>
<h4>参与京东服务市场商品分析应用开发参与京东服务市场会员积分应用开发</h4>
</el-card>
</el-timeline-item>
<el-timeline-item placement="top" timestamp="2019年">
<el-card>
<h4>参与京东服务市场商品搬家应用开发参与拼多多服务市场订单应用开发</h4>
</el-card>
</el-timeline-item>
<el-timeline-item placement="top" timestamp="2020年">
<el-card>
<h4>所参与开发的拼多多订单应用排名服务市场类目第一开始快手服务市场订单应用开发</h4>
</el-card>
</el-timeline-item>
<el-timeline-item placement="top" timestamp="2021年">
<el-card>
<h4>日处理拼多多订单200万条开始美团饿了么应用市场应用开发</h4>
</el-card>
</el-timeline-item>
<el-timeline-item placement="top" timestamp="2022年">
<el-card>
<h4>累计服务10万+电商平台店铺5+外卖店铺开始抖音淘宝服务市场订单应用开发开源ruoyi-wms</h4>
</el-card>
</el-timeline-item>
</el-timeline>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import {str2Date} from '@/utils/date';
import PanelGroup from '@/views/components/PanelGroup'
import { mapGetters } from 'vuex'
const DATA_FROM_BACKEND = {
columns: ['date', 'orderCount','orderAmount'],
rows: [
{date: '2018-11-01', orderCount: 10, orderAmount: 1093},
{date: '2018-11-02', orderCount: 20, orderAmount: 2230},
{date: '2018-11-03', orderCount: 33, orderAmount: 3623},
{date: '2018-11-04', orderCount: 50, orderAmount: 6423},
{date: '2018-11-05', orderCount: 80, orderAmount: 8492},
{date: '2018-11-06', orderCount: 60, orderAmount: 6293},
{date: '2018-11-07', orderCount: 20, orderAmount: 2293},
{date: '2018-11-08', orderCount: 60, orderAmount: 6293},
{date: '2018-11-09', orderCount: 50, orderAmount: 5293},
{date: '2018-11-10', orderCount: 30, orderAmount: 3293},
{date: '2018-11-11', orderCount: 20, orderAmount: 2293},
{date: '2018-11-12', orderCount: 80, orderAmount: 8293},
{date: '2018-11-13', orderCount: 100, orderAmount: 10293},
{date: '2018-11-14', orderCount: 10, orderAmount: 1293},
{date: '2018-11-15', orderCount: 40, orderAmount: 4293}
]
};
export default {
components: {
PanelGroup
},
data() {
return {
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
let start = new Date();
start.setFullYear(2018);
start.setMonth(10);
start.setDate(1);
end.setTime(start.getTime() + 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一月',
onClick(picker) {
const end = new Date();
let start = new Date();
start.setFullYear(2018);
start.setMonth(10);
start.setDate(1);
end.setTime(start.getTime() + 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}]
},
orderCountDate: '',
chartSettings: {
xAxisType: 'time',
area:true,
axisSite: { right: ['orderAmount']},
labelMap: {'orderCount': '订单数量', 'orderAmount': '订单金额'}},
chartData: {
columns: [],
rows: []
},
loading: false,
dataEmpty: false,
nowTime: '',
hello: ''
}
},
computed: {
...mapGetters(['avatar', 'name'])
},
created() {
this.showTimes()
this.helloTimes()
this.initOrderCountDate()
this.getData()
},
methods: {
handleDateChange(){
this.getData();
},
initOrderCountDate(){
let start = new Date();
start.setFullYear(2018, 10, 1);
const end = new Date();
end.setTime(start.getTime() + 1000 * 60 * 60 * 24 * 7);
this.orderCountDate=[start,end];
},
getData(){
setTimeout(() => {
this.chartData = {
columns: ['date', 'orderCount','orderAmount'],
rows: []
};
for(let i=0;i<DATA_FROM_BACKEND.rows.length;i++){
let item=DATA_FROM_BACKEND.rows[i];
let currDate=str2Date(item.date);
let start=this.orderCountDate[0];
let end=this.orderCountDate[1];
if(currDate.getTime()>=start.getTime()&&currDate.getTime()<=end.getTime()){
this.chartData.rows.push(item);
}
}
this.dataEmpty = false;
this.loading = false
}, 1000)
},
timeFormate(timeStamp) {
let year = new Date(timeStamp).getFullYear()
let month =
new Date(timeStamp).getMonth() + 1 < 10
? '0' + (new Date(timeStamp).getMonth() + 1)
: new Date(timeStamp).getMonth() + 1
let date =
new Date(timeStamp).getDate() < 10
? '0' + new Date(timeStamp).getDate()
: new Date(timeStamp).getDate()
let hh =
new Date(timeStamp).getHours() < 10
? '0' + new Date(timeStamp).getHours()
: new Date(timeStamp).getHours()
let mm =
new Date(timeStamp).getMinutes() < 10
? '0' + new Date(timeStamp).getMinutes()
: new Date(timeStamp).getMinutes()
let ss =
new Date(timeStamp).getSeconds() < 10
? '0' + new Date(timeStamp).getSeconds()
: new Date(timeStamp).getSeconds()
let week = new Date(timeStamp).getDay()
let weeks = ['日', '一', '二', '三', '四', '五', '六']
let getWeek = '星期' + weeks[week]
this.nowTime =
year +
'年' +
month +
'月' +
date +
'日' +
' ' +
getWeek
},
showTimes() {
this.timeFormate(new Date())
},
helloTimes() {
let hh = new Date().getHours()
if (0 < hh < 12) {
this.hello = '上午好'
} else if (hh < 18) {
this.hello = '下午好'
} else {
this.hello = '晚上好'
}
}
}
}
</script>
<style scoped lang="stylus">
.home-wrapper
.li {
float: left;
width: 25%;
font-size: 12px;
color: rgb(185, 181, 189);
}
.da {
float: left;
width: 25%;
font-size: 20px;
}
.first {
float: left;
width: 50%;
margin-bottom: 20px;
}
.el-table .warning-row {
background: rgb(39, 138, 230);
}
</style>