修改首页面板
This commit is contained in:
parent
856dbfe26e
commit
1d3dbf3487
13
src/assets/icons/home/earlyWarnBj.vue
Normal file
13
src/assets/icons/home/earlyWarnBj.vue
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<template>
|
||||||
|
<svg t="1729148285396" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5501" width="200" height="200"><path d="M0 0m146.285714 0l731.428572 0q146.285714 0 146.285714 146.285714l0 731.428572q0 146.285714-146.285714 146.285714l-731.428572 0q-146.285714 0-146.285714-146.285714l0-731.428572q0-146.285714 146.285714-146.285714Z" fill="#D9B039" p-id="5502"></path><path d="M746.331429 360.594286l-121.782858-135.350857a23.881143 23.881143 0 0 0-17.792-7.954286H322.432a50.980571 50.980571 0 0 0-50.724571 50.816v487.789714a50.980571 50.980571 0 0 0 50.852571 50.852572h379.318857a50.633143 50.633143 0 0 0 50.377143-51.181715V376.466286a23.04 23.04 0 0 0-5.924571-15.872z m-210.651429 187.190857a23.826286 23.826286 0 0 1-47.652571 0v-158.902857a23.990857 23.990857 0 0 1 23.954285-23.844572h0.329143a23.698286 23.698286 0 0 1 23.515429 23.826286l-0.146286 158.902857zM512 639.579429h0.329143a31.250286 31.250286 0 0 1 31.140571 31.451428 31.323429 31.323429 0 1 1-62.537143 0 31.268571 31.268571 0 0 1 31.085715-31.451428z" fill="#FFFFFF" p-id="5503"></path></svg>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "earlyWarnBj"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
13
src/assets/icons/home/inventory.vue
Normal file
13
src/assets/icons/home/inventory.vue
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<template>
|
||||||
|
<svg t="1729148298299" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5644" width="200" height="200"><path d="M0 0m146.285714 0l731.428572 0q146.285714 0 146.285714 146.285714l0 731.428572q0 146.285714-146.285714 146.285714l-731.428572 0q-146.285714 0-146.285714-146.285714l0-731.428572q0-146.285714 146.285714-146.285714Z" fill="#1367C1" p-id="5645"></path><path d="M672.073143 350.793143s27.830857 0 27.830857 25.289143v25.289143H324.077714v-25.289143c0-25.289143 27.830857-25.289143 27.830857-25.289143h320.164572z" fill="#FFFFFF" p-id="5646"></path><path d="M736.054857 379.684571l20.370286 19.529143c2.230857 2.322286 4.370286 4.425143 6.381714 6.381715 12.580571 12.324571 20.352 19.931429 14.774857 50.651428-3.620571 20.022857-15.030857 90.130286-25.161143 152.411429-7.917714 48.585143-15.049143 92.416-17.097142 103.936a33.645714 33.645714 0 0 1-33.170286 28.525714H321.792a33.737143 33.737143 0 0 1-33.243429-28.525714c-1.938286-11.062857-8.594286-52.041143-16.146285-98.377143-10.331429-63.634286-22.345143-137.453714-26.038857-157.970286-5.485714-30.573714 2.230857-38.235429 14.72-50.633143 1.993143-1.956571 4.114286-4.059429 6.308571-6.4l20.425143-19.529143v50.651429h448.256v-50.651429h-0.018286z m-119.222857 122.88a25.307429 25.307429 0 0 0-25.307429 25.270858v46.994285a7.222857 7.222857 0 0 1-7.241142 7.222857h-144.566858a7.222857 7.222857 0 0 1-7.241142-7.241142v-46.976a25.289143 25.289143 0 0 0-50.56 0v75.904a28.982857 28.982857 0 0 0 28.928 28.946285h202.441142a28.964571 28.964571 0 0 0 28.928-28.946285v-75.885715a25.417143 25.417143 0 0 0-25.417142-25.307428h0.036571zM628.388571 285.714286s28.196571 0 28.196572 36.150857H374.637714c0-36.150857 28.16-36.150857 28.16-36.150857h225.590857z" fill="#FFFFFF" p-id="5647"></path></svg>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "inventory"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@ -145,5 +145,7 @@ export { default as HomeSetup } from './home/setup.vue'
|
|||||||
export { default as HomeUser } from './home/user.vue'
|
export { default as HomeUser } from './home/user.vue'
|
||||||
export { default as Repaired } from './home/repaired.vue'
|
export { default as Repaired } from './home/repaired.vue'
|
||||||
export { default as HomeAdd } from './home/Add.vue'
|
export { default as HomeAdd } from './home/Add.vue'
|
||||||
|
export { default as EarlyWarnBj } from './home/earlyWarnBj.vue'
|
||||||
|
export { default as HomeInventory } from './home/inventory.vue'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -169,7 +169,6 @@ export default {
|
|||||||
},
|
},
|
||||||
// 上传成功
|
// 上传成功
|
||||||
handleSuccess(){
|
handleSuccess(){
|
||||||
// console.log(res,file,files)
|
|
||||||
// this.$message.success('上传成功,马上开始导入数据');
|
// this.$message.success('上传成功,马上开始导入数据');
|
||||||
},
|
},
|
||||||
// 上传失败
|
// 上传失败
|
||||||
|
|||||||
@ -6,68 +6,66 @@
|
|||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
name: "view-permission",
|
name: "view-search",
|
||||||
path:"/setting/user/view-permission",
|
path:"/view-search",
|
||||||
component:"setting/user/view-permission",
|
component:"home/search/index",
|
||||||
meta: {
|
meta: {
|
||||||
code:"permission_system_user_view_permission",
|
code:"",
|
||||||
icon: "sc-icon-Home",
|
icon: "sc-icon-Home",
|
||||||
title: "查看权限",
|
title: "搜索",
|
||||||
hidden: true
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
// {
|
name: "home",
|
||||||
// name: "home",
|
path: "/home",
|
||||||
// path: "/home",
|
meta: {
|
||||||
// meta: {
|
icon: "sc-icon-Home",
|
||||||
// icon: "sc-icon-Home",
|
title: "首页",
|
||||||
// title: "首页",
|
hidden: true
|
||||||
// hidden: true
|
},
|
||||||
// },
|
children: [{
|
||||||
// children: [{
|
name: "dashboard",
|
||||||
// name: "dashboard",
|
path: "/dashboard",
|
||||||
// path: "/dashboard",
|
component: "home/console",
|
||||||
// component: "home/console",
|
meta: {
|
||||||
// meta: {
|
icon: "sc-icon-Console",
|
||||||
// icon: "sc-icon-Console",
|
title: "控制台",
|
||||||
// title: "控制台",
|
}
|
||||||
// }
|
},{
|
||||||
// },{
|
name: "userCenter",
|
||||||
// name: "userCenter",
|
path: "/user-center",
|
||||||
// path: "/user-center",
|
component: "userCenter",
|
||||||
// component: "userCenter",
|
meta: {
|
||||||
// meta: {
|
icon: "sc-icon-UserInfo",
|
||||||
// icon: "sc-icon-UserInfo",
|
title: "个人信息",
|
||||||
// title: "个人信息",
|
}
|
||||||
// }
|
},{
|
||||||
// },{
|
name: "document",
|
||||||
// name: "document",
|
path: "/document",
|
||||||
// path: "/document",
|
component: "docsManager/index",
|
||||||
// component: "docsManager/index",
|
meta: {
|
||||||
// meta: {
|
icon: "sc-icon-UserInfo",
|
||||||
// icon: "sc-icon-UserInfo",
|
title: "文档管理",
|
||||||
// title: "文档管理",
|
}
|
||||||
// }
|
},{
|
||||||
// },{
|
name: "earlyWarning",
|
||||||
// name: "earlyWarning",
|
path: "/early-warning",
|
||||||
// path: "/early-warning",
|
component: "earlyManager/index",
|
||||||
// component: "earlyManager/index",
|
meta: {
|
||||||
// meta: {
|
icon: "sc-icon-UserInfo",
|
||||||
// icon: "sc-icon-UserInfo",
|
title: "预警管理",
|
||||||
// title: "预警管理",
|
}
|
||||||
// }
|
},{
|
||||||
// },{
|
name: "mail",
|
||||||
// name: "mail",
|
path: "/mail",
|
||||||
// path: "/mail",
|
component: "userCenter",
|
||||||
// component: "userCenter",
|
meta: {
|
||||||
// meta: {
|
icon: "sc-icon-UserInfo",
|
||||||
// icon: "sc-icon-UserInfo",
|
title: "我的邮件",
|
||||||
// title: "我的邮件",
|
}
|
||||||
// }
|
}]
|
||||||
// }]
|
},
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
name: "order",
|
name: "order",
|
||||||
path: "/order",
|
path: "/order",
|
||||||
|
|||||||
@ -196,7 +196,7 @@
|
|||||||
//全屏
|
//全屏
|
||||||
screen() {
|
screen() {
|
||||||
const element = document.documentElement;
|
const element = document.documentElement;
|
||||||
this.$TOOL.screen(element)
|
this.$TOOL.screen(element);
|
||||||
},
|
},
|
||||||
//显示短消息
|
//显示短消息
|
||||||
showMsg() {
|
showMsg() {
|
||||||
@ -233,7 +233,8 @@
|
|||||||
},
|
},
|
||||||
//搜索
|
//搜索
|
||||||
search() {
|
search() {
|
||||||
this.searchVisible = true
|
// this.searchVisible = true;
|
||||||
|
eventBus.$emit('tagClose','/view-search');
|
||||||
},
|
},
|
||||||
//任务
|
//任务
|
||||||
tasks() {
|
tasks() {
|
||||||
|
|||||||
@ -12,6 +12,24 @@
|
|||||||
color: var(--el-color-dark);
|
color: var(--el-color-dark);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
.cardTitleFlex{
|
||||||
|
display: flex;align-items: center;justify-content: space-between;
|
||||||
|
.titleBtnView{
|
||||||
|
display: flex;align-items: center;
|
||||||
|
background: #F4F5F9;
|
||||||
|
border-radius: 4px;
|
||||||
|
.btnItem{
|
||||||
|
padding: 3px 16px;
|
||||||
|
color: #444;font-size: 12px;font-weight: initial;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.trueItem{
|
||||||
|
background: var(--el-color-primary);
|
||||||
|
border-radius: 4px;
|
||||||
|
color: var(--el-color-white);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.cardBody{
|
.cardBody{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -123,6 +141,57 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.workOrderView{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: flex-start;
|
||||||
|
.item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 25%;
|
||||||
|
.cardContent{
|
||||||
|
.num{font-size: 26px;font-weight: 500;color: var(--el-color-dark);margin-bottom: 8px;}
|
||||||
|
.name{font-size: 12px;color: #888;width: 120px;}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item:nth-child(1),.item:nth-child(5){
|
||||||
|
|
||||||
|
}
|
||||||
|
.item:nth-child(4),.item:nth-child(8){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.spareParts{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
.item{
|
||||||
|
width: calc(50% - 8px);
|
||||||
|
height: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
background: #F8F8F8;
|
||||||
|
border-radius: 8px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
.icon{font-size: 56px;}
|
||||||
|
.num{font-size: 26px;font-weight: 500;margin: 8px 0;}
|
||||||
|
.name{font-size: 12px;color: #555;}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.orderNum{
|
||||||
|
.item{
|
||||||
|
flex: 1;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.middleBox{
|
.middleBox{
|
||||||
.briefing{
|
.briefing{
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@ -14,96 +14,200 @@ export default {
|
|||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
option:{
|
option:{
|
||||||
tooltip: {
|
// tooltip: {
|
||||||
trigger: 'axis'
|
// trigger: 'axis'
|
||||||
},
|
// },
|
||||||
grid: {
|
// grid: {
|
||||||
left: "1%",
|
// left: "1%",
|
||||||
right: '5%',
|
// right: '5%',
|
||||||
bottom: '3%',
|
// bottom: '3%',
|
||||||
top: "3%",
|
// top: "3%",
|
||||||
containLabel: true
|
// containLabel: true
|
||||||
},
|
// },
|
||||||
xAxis: {
|
// xAxis: {
|
||||||
boundaryGap: true,
|
// boundaryGap: true,
|
||||||
type: 'category',
|
// type: 'category',
|
||||||
axisLine:{
|
// axisLine:{
|
||||||
show:true,
|
// show:true,
|
||||||
lineStyle:{
|
// lineStyle:{
|
||||||
color:['rgba(255,255,255,0.9)']
|
// color:['rgba(255,255,255,0.9)']
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
axisTick:{
|
// axisTick:{
|
||||||
show:false,
|
// show:false,
|
||||||
},
|
// },
|
||||||
data:['周一','周二','周三','周四','周四','周五','周六','周日']
|
// data:['周一','周二','周三','周四','周四','周五','周六','周日']
|
||||||
},
|
// },
|
||||||
yAxis: [{
|
// yAxis: [{
|
||||||
type: 'value',
|
// type: 'value',
|
||||||
name: '',
|
// name: '',
|
||||||
axisLine:{
|
// axisLine:{
|
||||||
show:true,
|
// show:true,
|
||||||
lineStyle:{
|
// lineStyle:{
|
||||||
color:['rgba(255,255,255,0.9)']
|
// color:['rgba(255,255,255,0.9)']
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
axisLabel:{
|
// axisLabel:{
|
||||||
show:true,
|
// show:true,
|
||||||
color:'#fff',
|
// color:'#fff',
|
||||||
},
|
// },
|
||||||
axisTick:{
|
// axisTick:{
|
||||||
show:false,
|
// show:false,
|
||||||
},
|
// },
|
||||||
splitLine:{
|
// splitLine:{
|
||||||
show:true,
|
// show:true,
|
||||||
lineStyle:{
|
// lineStyle:{
|
||||||
color:['rgba(255,255,255,0.06)']
|
// color:['rgba(255,255,255,0.06)']
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}],
|
// }],
|
||||||
series: [
|
// series: [
|
||||||
{
|
// {
|
||||||
name: '用电',
|
// name: '用电',
|
||||||
type: 'bar',
|
// type: 'bar',
|
||||||
smooth:true,
|
// smooth:true,
|
||||||
symbol: 'none',
|
// symbol: 'none',
|
||||||
labelLine:{
|
// labelLine:{
|
||||||
show:false,
|
// show:false,
|
||||||
smooth:false,
|
// smooth:false,
|
||||||
},
|
// },
|
||||||
itemStyle: {
|
// itemStyle: {
|
||||||
color: '#1367C1',
|
// color: '#1367C1',
|
||||||
},
|
// },
|
||||||
areaStyle: {
|
// areaStyle: {
|
||||||
opacity: 0.4,
|
// opacity: 0.4,
|
||||||
},
|
// },
|
||||||
data: [123,646,577,323,687,189,263,462]
|
// data: [123,646,577,323,687,189,263,462]
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
name: '用气',
|
// name: '用气',
|
||||||
type: 'bar',
|
// type: 'bar',
|
||||||
smooth:'true',
|
// smooth:'true',
|
||||||
symbol: 'none',
|
// symbol: 'none',
|
||||||
labelLine:{
|
// labelLine:{
|
||||||
},
|
// },
|
||||||
itemStyle: {
|
// itemStyle: {
|
||||||
color: '#2A91C4',
|
// color: '#2A91C4',
|
||||||
},
|
// },
|
||||||
areaStyle: {
|
// areaStyle: {
|
||||||
opacity: 0.4,
|
// opacity: 0.4,
|
||||||
},
|
// },
|
||||||
data: [123,246,577,623,267,189,563,246]
|
// data: [123,246,577,623,267,189,563,246]
|
||||||
},
|
// },
|
||||||
],
|
// ],
|
||||||
},
|
},
|
||||||
|
feesData:{
|
||||||
|
tableList:{}
|
||||||
|
},
|
||||||
|
reqParams:{
|
||||||
|
page:1,
|
||||||
|
pageSize:30,
|
||||||
|
date_type:'month',
|
||||||
|
dateSelect:[],
|
||||||
|
start:'',
|
||||||
|
end:'',
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.getData();
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
async getData() {
|
||||||
|
this.loading = true;
|
||||||
|
const res = await this.$API.finance.cost.summary.post(this.reqParams);
|
||||||
|
this.loading = false;
|
||||||
|
if(res.code == 200){
|
||||||
|
res.data.tableList.data = this.setTableList(res.data.tableList.data);
|
||||||
|
this.feesData = res.data;
|
||||||
|
let option = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
axisPointer: {
|
||||||
|
type: 'shadow'
|
||||||
|
},
|
||||||
|
formatter: function (params) {
|
||||||
|
const filteredParams = params.filter(param => param.value !== 0);
|
||||||
|
let totalData = 0;
|
||||||
|
filteredParams.map(em=> {
|
||||||
|
totalData += em.value
|
||||||
|
})
|
||||||
|
const formattedParams = filteredParams.map(param => {
|
||||||
|
const percentage = (param.value/totalData*100).toFixed(2);
|
||||||
|
const seriesColor = param.color;
|
||||||
|
return `<span style="display: flex;justify-content: space-between"><span><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${seriesColor};"></span>${param.seriesName} </span><div style="display: flex;justify-content: space-between;margin-left: 15px"><span style="font-weight: 500;display: inline-block;text-align: right;">¥ ${param.value}</span><span style="display: inline-block;margin-left: 10px; width: 50px;text-align: left;font-weight: 500;">${percentage}%</span></div></span>`;
|
||||||
|
}).join('');
|
||||||
|
return params[0].name + '<br/>总金额:¥ '+ totalData.toFixed(2) + '<br/>' + formattedParams;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
toolbox:{
|
||||||
|
show:false,
|
||||||
|
feature: {
|
||||||
|
magicType: { type: ['line', 'bar'] },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
grid:{
|
||||||
|
bottom:40,
|
||||||
|
left:10,
|
||||||
|
},
|
||||||
|
legend:{
|
||||||
|
show:true,
|
||||||
|
bottom:10
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
boundaryGap: false,
|
||||||
|
type: 'category',
|
||||||
|
data: this.feesData.dateRange
|
||||||
|
},
|
||||||
|
yAxis: [{
|
||||||
|
type: 'value',
|
||||||
|
show:true,
|
||||||
|
axisLabel:{
|
||||||
|
margin:this.feesData.dateRange.length<13? 56:20
|
||||||
|
},
|
||||||
|
name: '',
|
||||||
|
axisTick:{
|
||||||
|
show:false
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
show: false
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
series: this.setList(this.feesData.summaryList),
|
||||||
|
};
|
||||||
|
this.option = option;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setList(data){
|
||||||
|
let newData = data[0].cost_item.map(item => ({
|
||||||
|
name: item,
|
||||||
|
data: [],
|
||||||
|
type:'bar',
|
||||||
|
symbol: 'none',
|
||||||
|
stack:'fees',
|
||||||
|
smooth: true,
|
||||||
|
}));
|
||||||
|
if(data && data.length>0){
|
||||||
|
data.forEach(item => {
|
||||||
|
item.cost_amount.forEach((amount, index) => {
|
||||||
|
newData[index].data.push(amount);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return newData
|
||||||
|
},
|
||||||
|
setTableList(data){
|
||||||
|
let newData = data.columns.map(column => [column]);
|
||||||
|
if(data.rows && data.rows.length>0){
|
||||||
|
data.rows.forEach((row, rowIndex) => {
|
||||||
|
data.columns.forEach((columnName, columnIndex) => {
|
||||||
|
newData[columnIndex][1 + rowIndex] = row[columnIndex]==0?'-':'¥'+row[columnIndex];
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return newData
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -11,6 +11,23 @@ export default {
|
|||||||
components:{
|
components:{
|
||||||
scEcharts
|
scEcharts
|
||||||
},
|
},
|
||||||
|
props:{
|
||||||
|
proObj:{
|
||||||
|
type:Object,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
proObj:{
|
||||||
|
deep:true,
|
||||||
|
immediate:true,
|
||||||
|
handler(val){
|
||||||
|
let option = this.$TOOL.objCopy(this.option);
|
||||||
|
option.series[0].data[0].value = val.value;
|
||||||
|
option.series[0].data[0].name = val.title;
|
||||||
|
this.option = option;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
option:{
|
option:{
|
||||||
@ -19,7 +36,7 @@ export default {
|
|||||||
type: 'gauge',
|
type: 'gauge',
|
||||||
startAngle: 90,
|
startAngle: 90,
|
||||||
endAngle: -270,
|
endAngle: -270,
|
||||||
radius: '86%',
|
radius: '80%',
|
||||||
pointer: {
|
pointer: {
|
||||||
show: false
|
show: false
|
||||||
},
|
},
|
||||||
@ -70,22 +87,26 @@ export default {
|
|||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
value: 46,
|
value: 0,
|
||||||
name: '',
|
name: '',
|
||||||
|
title: {
|
||||||
|
offsetCenter: ['0%', '30%']
|
||||||
|
},
|
||||||
detail: {
|
detail: {
|
||||||
|
fontSize:25,
|
||||||
valueAnimation: true,
|
valueAnimation: true,
|
||||||
offsetCenter: ['0%', '0']
|
offsetCenter: ['0%', '-10%']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
title: {
|
title: {
|
||||||
fontSize: 14
|
fontSize: 14,
|
||||||
},
|
},
|
||||||
detail: {
|
detail: {
|
||||||
fontSize: 18,
|
fontSize: 20,
|
||||||
color: "#1367C1",
|
color: "#1367C1",
|
||||||
borderColor: '#ddd',
|
borderColor: '#ddd',
|
||||||
borderRadius: 20,
|
borderRadius: 10,
|
||||||
borderWidth: 0,
|
borderWidth: 0,
|
||||||
formatter: '{value}%'
|
formatter: '{value}%'
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,29 +3,38 @@
|
|||||||
<div class="consoleView">
|
<div class="consoleView">
|
||||||
<div class="headerBox">
|
<div class="headerBox">
|
||||||
<el-row class="colRow" :gutter="20">
|
<el-row class="colRow" :gutter="20">
|
||||||
<el-col class="leftCol" :span="10" :md="10" :sm="24" :xs="24">
|
<el-col class="leftCol" :span="16" :md="16" :sm="24" :xs="24">
|
||||||
<div class="cardBox">
|
<div class="cardBox">
|
||||||
<div class="cardTitle">占位</div>
|
<div class="cardTitle">工单数量</div>
|
||||||
<div class="cardBody">
|
<div class="cardBody workOrderView">
|
||||||
|
<div class="item" v-for="(item,index) in workOrder" :key="index">
|
||||||
|
<div class="cardContent">
|
||||||
|
<div class="num">{{item.value}}</div>
|
||||||
|
<div class="name">{{item.title}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col class="middleCol" :span="10" :md="10" :sm="24" :xs="24">
|
<!-- <el-col class="middleCol" :span="10" :md="10" :sm="24" :xs="24">-->
|
||||||
<div class="cardBox">
|
<!-- <div class="cardBox">-->
|
||||||
<div class="cardTitle">占位</div>
|
<!-- <div class="cardTitle">占位</div>-->
|
||||||
<div class="cardBody">
|
<!-- <div class="cardBody">-->
|
||||||
<el-scrollbar>
|
<!-- <el-scrollbar>-->
|
||||||
|
|
||||||
</el-scrollbar>
|
<!-- </el-scrollbar>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
<el-col class="rightCol" :span="4" :md="4" :sm="24" :xs="24">
|
<el-col class="rightCol" :span="8" :md="8" :sm="24" :xs="24">
|
||||||
<div class="cardBox progressView">
|
<div class="cardBox progressView">
|
||||||
<div class="cardTitle">不良率</div>
|
<div class="cardTitle">备件库存</div>
|
||||||
<div class="cardBody">
|
<div class="cardBody spareParts">
|
||||||
<progressBox />
|
<div class="item" v-for="(item,index) in spareParts" :key="index">
|
||||||
|
<el-icon class="icon"><component :is="item.icon" /></el-icon>
|
||||||
|
<div class="num">{{item.value}}</div>
|
||||||
|
<div class="name">{{item.title}}</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -54,9 +63,20 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col class="rightCol" :span="8" :md="8" :sm="24" :xs="24">
|
<el-col class="rightCol" :span="8" :md="8" :sm="24" :xs="24">
|
||||||
<div class="cardBox chartView">
|
<div class="cardBox chartView">
|
||||||
<div class="cardTitle">占位</div>
|
<div class="cardTitle cardTitleFlex">
|
||||||
<div class="cardBody">
|
<span class="name">工单数量</span>
|
||||||
<pointBox />
|
<div class="titleBtnView">
|
||||||
|
<div class="btnItem" :class="reachShow?'trueItem':''" @click="reachShow=true">国内</div>
|
||||||
|
<div class="btnItem" :class="!reachShow?'trueItem':''" @click="reachShow=false">海外</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cardBody orderNum">
|
||||||
|
<template v-for="(item,index) in reachStandard" :key="index">
|
||||||
|
<div class="item" v-if="reachShow?index<2:index>=2">
|
||||||
|
<progressBox :proObj="item" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<!-- <pointBox />-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -64,22 +84,22 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="footerBox">
|
<div class="footerBox">
|
||||||
<el-row class="colRow" :gutter="20">
|
<el-row class="colRow" :gutter="20">
|
||||||
<el-col class="leftCol" :span="8" :md="8" :sm="24" :xs="24">
|
<el-col class="leftCol" :span="16" :md="16" :sm="24" :xs="24">
|
||||||
<div class="cardBox chartView">
|
<div class="cardBox chartView">
|
||||||
<div class="cardTitle">实时数据</div>
|
<div class="cardTitle">成本汇总</div>
|
||||||
<div class="cardBody">
|
<div class="cardBody">
|
||||||
<barBox />
|
<barBox />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col class="middleCol" :span="8" :md="8" :sm="24" :xs="24">
|
<!-- <el-col class="middleCol" :span="8" :md="8" :sm="24" :xs="24">-->
|
||||||
<div class="cardBox chartView">
|
<!-- <div class="cardBox chartView">-->
|
||||||
<div class="cardTitle">占位</div>
|
<!-- <div class="cardTitle">占位</div>-->
|
||||||
<div class="cardBody">
|
<!-- <div class="cardBody">-->
|
||||||
<ringBox />
|
<!-- <ringBox />-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
<el-col class="rightCol" :span="8" :md="8" :sm="24" :xs="24">
|
<el-col class="rightCol" :span="8" :md="8" :sm="24" :xs="24">
|
||||||
<div class="cardBox chartView">
|
<div class="cardBox chartView">
|
||||||
<div class="cardTitle">快捷功能入口</div>
|
<div class="cardTitle">快捷功能入口</div>
|
||||||
@ -112,11 +132,30 @@ export default {
|
|||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
|
workOrder:[
|
||||||
|
{title:"总工单数",value:2340,icon:''},
|
||||||
|
{title:"已维修数",value:560,icon:''},
|
||||||
|
{title:"待维修数",value:460,icon:''},
|
||||||
|
{title:"0BD 数",value:560,icon:''},
|
||||||
|
{title:"1BD 数",value:703,icon:''},
|
||||||
|
{title:"当前预约数",value:180,icon:''},
|
||||||
|
],
|
||||||
|
spareParts:[
|
||||||
|
{title:"维保库存数",value:45,icon:'sc-icon-HomeInventory'},
|
||||||
|
{title:"预警库存MPN数",value:20,icon:'sc-icon-EarlyWarnBj'},
|
||||||
|
],
|
||||||
|
reachStandard:[
|
||||||
|
{title:"国内SLA 月达标率",value:0},
|
||||||
|
{title:"周达标率",value:0},
|
||||||
|
{title:"海外SLA 月达标率",value:0},
|
||||||
|
{title:"周达标率",value:0},
|
||||||
|
],
|
||||||
|
reachShow:true,
|
||||||
briefing:[
|
briefing:[
|
||||||
{num:189376,name:'待提交数',icon:'sc-icon-Gather'},
|
{num:9376,name:'待提交数',icon:'sc-icon-Gather'},
|
||||||
{num:12496,name:'计划维修数',icon:'sc-icon-HomeSetup'},
|
{num:126,name:'计划维修数',icon:'sc-icon-HomeSetup'},
|
||||||
{num:756,name:'正在维修数',icon:'sc-icon-Repaired'},
|
{num:756,name:'正在维修数',icon:'sc-icon-Repaired'},
|
||||||
{num:97662,name:'待审核数',icon:'sc-icon-EarlyWarn'},
|
{num:662,name:'待审核数',icon:'sc-icon-EarlyWarn'},
|
||||||
{num:3553,name:'个人中心',icon:'sc-icon-HomeUser'},
|
{num:3553,name:'个人中心',icon:'sc-icon-HomeUser'},
|
||||||
{num:253,name:'个人中心',icon:'sc-icon-HomeChart'},
|
{num:253,name:'个人中心',icon:'sc-icon-HomeChart'},
|
||||||
],
|
],
|
||||||
@ -132,7 +171,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
getWsResult(res){
|
getWsResult(res){
|
||||||
if(res.data && (res.data.type == 21)){
|
if(res.data && (res.data.type == 21 || res.data.type == 24 || res.data.type == 25 || res.data.type == 26)){
|
||||||
if(res.data.type == 21){
|
if(res.data.type == 21){
|
||||||
this.briefing.forEach(item=>{
|
this.briefing.forEach(item=>{
|
||||||
res.data.list_count_info && res.data.list_count_info.main_order_count.forEach(em=>{
|
res.data.list_count_info && res.data.list_count_info.main_order_count.forEach(em=>{
|
||||||
@ -142,6 +181,21 @@ export default {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if(res.data.type == 24 && res.data.function == 'order_count'){
|
||||||
|
this.workOrder = res.data.count;
|
||||||
|
}
|
||||||
|
if(res.data.type == 25){
|
||||||
|
this.spareParts.forEach(item=>{
|
||||||
|
res.data.count.forEach(em=>{
|
||||||
|
if(item.title == em.title){
|
||||||
|
item.value = em.value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if(res.data.type == 26 && res.data.function == 'repair_count'){
|
||||||
|
this.reachStandard = res.data.count
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -154,12 +208,12 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
.headerBox{
|
.headerBox{
|
||||||
flex: 2;
|
flex: 3;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
}
|
}
|
||||||
.middleBox{
|
.middleBox{
|
||||||
flex: 3;
|
flex: 4;
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
}
|
}
|
||||||
.footerBox{
|
.footerBox{
|
||||||
|
|||||||
61
src/views/home/search/index.vue
Normal file
61
src/views/home/search/index.vue
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<template>
|
||||||
|
<el-container class="searchBox">
|
||||||
|
<el-header class="searchHeader">
|
||||||
|
<div class="searchHeaderBack">
|
||||||
|
<el-row style="width: 100%" :gutter="24" justify="center">
|
||||||
|
<el-col :span="10" :lg="8" :sm="10">
|
||||||
|
<el-input type="text" size="large">
|
||||||
|
<template #prepend>
|
||||||
|
<el-select style="width: 115px">
|
||||||
|
<el-option label="维保工单" value="1" ></el-option>
|
||||||
|
<el-option label="公司信息" value="2" ></el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
<template #append>
|
||||||
|
<el-button icon="el-icon-Search">搜索</el-button>
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</el-header>
|
||||||
|
<el-main>
|
||||||
|
7889
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "",
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.searchHeader{
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
height: 68px;
|
||||||
|
background: url(https://dm-auto.oss-cn-shanghai.aliyuncs.com/xw_cloud/image/search_back.png) no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.searchHeaderBack{
|
||||||
|
height: 100%;width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
background: rgba(231,243,255,0.4);
|
||||||
|
position: absolute;left: 0;top: 0;z-index: 10;
|
||||||
|
display: flex;align-items: center;justify-content: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -69,9 +69,8 @@ export default {
|
|||||||
return {
|
return {
|
||||||
size:'small',
|
size:'small',
|
||||||
flowList:[
|
flowList:[
|
||||||
{name:'执行维修',left:false,right:true},
|
{name:'确认工单',left:false,right:true},
|
||||||
{name:'维修中',left:true,right:true},
|
{name:'下发维保',left:true,right:false},
|
||||||
{name:'维修完成',left:true,right:false},
|
|
||||||
],
|
],
|
||||||
dialog: {
|
dialog: {
|
||||||
confirm: false,
|
confirm: false,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user