27 Commits

Author SHA1 Message Date
lb
22772fecbc update 关闭3d图的详情小框 2023-02-01 11:09:52 +08:00
lb
942da81c4f update V3dApp data.js 2023-02-01 09:57:44 +08:00
lb
637d181638 update 3doverview 2023-01-31 17:02:23 +08:00
lb
0eaf7fd13e Merge branch 'master' into lb 2023-01-31 16:06:00 +08:00
lb
c98608a941 update 修改公用工程消耗氧气CDA天然气值 2023-01-31 15:55:55 +08:00
4d7d2e0c3d Merge pull request 'lb' (#25) from lb into master
Reviewed-on: #25
2022-12-16 09:02:44 +08:00
lb
50670208c1 update remote url 2022-12-16 08:38:32 +08:00
SanDiego
f0714123b7 update gotoHome 2022-12-15 16:50:59 +08:00
lb
4200801c7b update公用工程 2022-12-05 11:22:18 +08:00
lb
f4ba65a25f update 实时产量和能耗时间为近7天 2022-12-02 16:44:12 +08:00
989f9b9976 Merge pull request 'update remove首页二字' (#23) from lb into master
Reviewed-on: #23
2022-12-02 14:09:47 +08:00
lb
4f91525bea update remove首页二字 2022-12-02 14:01:52 +08:00
9b3d8b4926 Merge pull request 'lb' (#22) from lb into master
Reviewed-on: #22
2022-12-01 08:57:55 +08:00
lb
fedff36ff0 Merge branch 'master' into lb 2022-12-01 08:55:17 +08:00
62bb4c05e8 Merge pull request '1' (#21) from zjl into master
Reviewed-on: #21
2022-11-28 16:53:01 +08:00
b812a8eb01 1 2022-11-28 16:51:17 +08:00
lb
4026826869 update small blur box 2022-11-28 15:42:09 +08:00
792496f685 Merge pull request '修改' (#20) from zjl into master
Reviewed-on: #20
2022-11-28 15:40:36 +08:00
6378239090 修改 2022-11-28 15:39:42 +08:00
3cbe02f50a Merge pull request '工单管理' (#19) from zjl into master
Reviewed-on: #19
2022-11-28 15:04:10 +08:00
c113ad3588 工单管理 2022-11-28 15:02:51 +08:00
29dfb47b4b Merge pull request 'lb' (#18) from lb into master
Reviewed-on: #18
2022-11-28 10:47:27 +08:00
lb
6e6a0ce257 update 2022-11-28 09:46:51 +08:00
lb
4cd6f748a9 update 2022-11-28 09:45:49 +08:00
lb
3e10beb7a6 update 2022-11-28 09:34:09 +08:00
lb
3964f8541e update 设备管理scrollbar 2022-11-28 09:15:18 +08:00
86a5d3737c Merge pull request 'lb' (#17) from lb into master
Reviewed-on: #17
2022-11-25 16:46:40 +08:00
19 changed files with 313 additions and 272 deletions

View File

@@ -1,7 +1,7 @@
<template> <template>
<div class="navbar" :style="showTitle ? 'background: rgba(8,17,50,0.25)' : ''"> <div class="navbar" :style="showTitle ? 'background: rgba(8,17,50,0.25)' : ''">
<div v-if="showTitle" class="homeNavIcon" @click="goToRootPage"> <div v-if="showTitle" class="homeNavIcon" @click="goToRootPage">
<img src="../../assets/img/cnbm.png" alt="" /> <img src="../../assets/img/cnbm.png" alt="">
<span> <span>
{{ 'title' | i18nFilter }} {{ 'title' | i18nFilter }}
</span> </span>
@@ -25,9 +25,9 @@
:icon-class="showTitle ? 'home' : 'homeb'" :icon-class="showTitle ? 'home' : 'homeb'"
style="height: calc(24px * var(--beilv)); width: calc(24px * var(--beilv)); vertical-align: calc(-7px * var(--beilv)); margin-right: 2px;" style="height: calc(24px * var(--beilv)); width: calc(24px * var(--beilv)); vertical-align: calc(-7px * var(--beilv)); margin-right: 2px;"
/> />
<span v-if="showhome"> <!-- <span v-if="showhome">
{{ 'navbar.homepage' | i18nFilter }} {{ 'navbar.homepage' | i18nFilter }}
</span> </span> -->
</div> </div>
<el-dropdown <el-dropdown
:style="showTitle ? 'color: #fff' : '#000'" :style="showTitle ? 'color: #fff' : '#000'"
@@ -97,7 +97,7 @@
trigger="click" trigger="click"
> >
<div class="avatar-wrapper"> <div class="avatar-wrapper">
<img :src="require('@/assets/img/head.png')" class="user-avatar" /> <img :src="require('@/assets/img/head.png')" class="user-avatar">
<div class="avatar-username" :title="username">{{ username }}</div> <div class="avatar-username" :title="username">{{ username }}</div>
<div class="avatar-roles" :title="roles.join(',')">{{ roles.length > 0 ? roles[0] : '' }}</div> <div class="avatar-roles" :title="roles.join(',')">{{ roles.length > 0 ? roles[0] : '' }}</div>
<!-- <i class="el-icon-caret-bottom" /> --> <!-- <i class="el-icon-caret-bottom" /> -->
@@ -144,7 +144,7 @@
<el-tooltip class="item" effect="dark" placement="bottom-end"> <el-tooltip class="item" effect="dark" placement="bottom-end">
<div slot="content"> <div slot="content">
{{ 'copyright.copyright' | i18nFilter }}{{ 'copyright.company' | i18nFilter }} {{ 'copyright.copyright' | i18nFilter }}{{ 'copyright.company' | i18nFilter }}
<br /> <br>
{{ 'copyright.version' | i18nFilter }}3.0 {{ 'copyright.version' | i18nFilter }}3.0
</div> </div>
<svg-icon <svg-icon
@@ -248,7 +248,8 @@ export default {
const password = Cookie.get('password') const password = Cookie.get('password')
if (username && password) { if (username && password) {
window.location = `http://192.168.1.103:9527/#/?username=${username}&password=${password}` window.location = `http://main.cnbmai.picaiba.com/#/?username=${username}&password=${password}`
// window.location = `http://192.168.1.103:9527/#/?username=${username}&password=${password}`
} }
}, },
winBlur() { winBlur() {

View File

@@ -6,6 +6,7 @@
import echarts from 'echarts' import echarts from 'echarts'
import resize from '@/views/OperationalOverview/components/mixins/resize' import resize from '@/views/OperationalOverview/components/mixins/resize'
import { Random } from 'mockjs' import { Random } from 'mockjs'
import moment from 'moment'
class ChartOption { class ChartOption {
constructor() { constructor() {
@@ -50,16 +51,18 @@ class ChartOption {
formatter: params => { formatter: params => {
return ` return `
<div style="display: flex; flex-direction: column; gap: calc(4px * var(--beilv));"> <div style="display: flex; flex-direction: column; gap: calc(4px * var(--beilv));">
<h2 style="font-size: calc(14px * var(--beilv)); margin: 0 0 4px; font-weight: normal; color: white;">${params[0].axisValue}</h2> <h2 style="font-size: calc(14px * var(--beilv)); margin: 0 0 4px; font-weight: normal; color: white;">${
params[0].axisValue
}</h2>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[0] this.color[0]
}"></span><span>${params[0].seriesName}: ${params[0].value}</span></span> }"></span><span>${params[0].seriesName}: ${params[0].value}V</span></span>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[1] this.color[1]
}"></span><span>${params[1].seriesName}: ${params[1].value}</span></span> }"></span><span>${params[1].seriesName}: ${params[1].value}%</span></span>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[2] this.color[2]
}"></span><span>${params[2].seriesName}: ${params[2].value}</span></span> }"></span><span>${params[2].seriesName}: ${params[2].value}°C</span></span>
</div> </div>
` `
} }
@@ -67,7 +70,15 @@ class ChartOption {
this.xAxis = { this.xAxis = {
type: 'category', type: 'category',
data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], // boundaryGap: false,
data: Array(7)
.fill(1)
.map((_, idx) => {
const d = moment()
const day = idx ? d.subtract(idx, 'd') : d
return day.format('M-DD')
})
.reverse(),
axisTick: { show: false }, axisTick: { show: false },
axisLabel: { axisLabel: {
color: '#fff9', color: '#fff9',
@@ -100,10 +111,11 @@ class ChartOption {
}, },
axisLabel: { axisLabel: {
color: '#fff9', color: '#fff9',
fontSize: 10 fontSize: 10,
formatter: '{value}%'
}, },
splitLine: { splitLine: {
show: true, show: false,
lineStyle: { lineStyle: {
color: '#fff1', color: '#fff1',
type: 'dotted' type: 'dotted'
@@ -133,7 +145,7 @@ class ChartOption {
splitLine: { splitLine: {
show: true, show: true,
lineStyle: { lineStyle: {
color: '#fff1', color: '#fff3',
type: 'dotted' type: 'dotted'
} }
} }
@@ -149,10 +161,13 @@ class ChartOption {
width: 1 width: 1
} }
}, },
// min: 'dataMin',
min: 20,
max: 50,
type: 'value', type: 'value',
splitNumber: 4, splitNumber: 4,
splitLine: { splitLine: {
show: true, show: false,
lineStyle: { lineStyle: {
color: '#fff1', color: '#fff1',
type: 'dotted' type: 'dotted'
@@ -160,41 +175,84 @@ class ChartOption {
}, },
axisLabel: { axisLabel: {
color: '#fff9', color: '#fff9',
fontSize: 10 fontSize: 10,
formatter: '{value}°C'
} }
} }
] ]
this.series = [ this.series = [
{ {
name: 'ABC三相电压/v', name: '电压',
type: 'line',
yAxisIndex: 0,
// smooth: true,
emphasis: {
focus: 'series'
},
data: Array(12)
.fill(1)
.map(_ => Random.integer(30, 100)),
symbol: 'circle',
symbolSize: 0.2,
showSymbol: false
},
{
name: 'ABC三相电流/a',
type: 'line', type: 'line',
yAxisIndex: 1, yAxisIndex: 1,
// smooth: true, // smooth: true,
emphasis: { emphasis: {
focus: 'series' focus: 'series'
}, },
data: Array(12) data: Array(7)
.fill(1) .fill(1)
.map(_ => Random.integer(30, 100)), // .map(_ => Random.integer(30, 100)),
.map(_ => Random.integer(360, 390)),
symbol: 'circle', symbol: 'circle',
symbolSize: 0.2, symbolSize: 0.2,
showSymbol: false showSymbol: false,
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: '#E0209466' // 0% 处的颜色
},
{
offset: 1,
color: 'transparent' // 100% 处的颜色
}
],
global: false // 缺省为 false
}
}
},
{
name: '电流',
type: 'line',
yAxisIndex: 0,
// smooth: true,
emphasis: {
focus: 'series'
},
data: Array(7)
.fill(1)
.map(_ => Random.integer(76, 85)),
// .map(_ => Random.integer(30, 100)),
symbol: 'circle',
symbolSize: 0.2,
showSymbol: false,
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: '#F0D63C66' // 0% 处的颜色
},
{
offset: 1,
color: 'transparent' // 100% 处的颜色
}
],
global: false // 缺省为 false
}
}
}, },
{ {
name: '电缆温度', name: '电缆温度',
@@ -204,12 +262,33 @@ class ChartOption {
emphasis: { emphasis: {
focus: 'series' focus: 'series'
}, },
data: Array(12) data: Array(7)
.fill(1) .fill(1)
.map(_ => Random.integer(30, 100)), // .map(_ => Random.integer(20, 55)),
.map(_ => Random.integer(36, 45)),
symbol: 'circle', symbol: 'circle',
symbolSize: 0.2, symbolSize: 0.2,
showSymbol: false showSymbol: false,
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: '#1A99FF66' // 0% 处的颜色
},
{
offset: 1,
color: 'transparent' // 100% 处的颜色
}
],
global: false // 缺省为 false
}
}
} }
] ]
} }
@@ -232,7 +311,7 @@ class ChartOption {
if (key === 'colorStops') newOption[key] = option[key] if (key === 'colorStops') newOption[key] = option[key]
else if ( else if (
typeof option[key] === 'number' /** 过滤不做变化的属性 */ && typeof option[key] === 'number' /** 过滤不做变化的属性 */ &&
['splitNumber', 'x', 'x2', 'y', 'y2', 'yAxisIndex', 'xAxisIndex'].indexOf(key) === -1 ['splitNumber', 'x', 'x2', 'min', 'max', 'y', 'y2', 'yAxisIndex', 'xAxisIndex'].indexOf(key) === -1
) { ) {
newOption[key] = calcSize(option[key]) newOption[key] = calcSize(option[key])
} else newOption[key] = this.optionFilter(option[key], calcSize) } else newOption[key] = this.optionFilter(option[key], calcSize)
@@ -291,8 +370,8 @@ export default {
return num * beilv return num * beilv
}, },
setChartOption() { setChartOption() {
let chartOption = new ChartOption() const cOption = new ChartOption()
this.chart.setOption(chartOption.optionFilter(chartOption.option, this.calcSize)) this.chart.setOption(cOption.optionFilter(cOption.option, this.calcSize))
} }
} }
} }

View File

@@ -1,9 +1,9 @@
<template> <template>
<div class="public-consume__inner"> <div class="public-consume__inner">
<div> <div style="min-height: calc(106px * var(--beilv)); flex: 1;">
<TechyBox class="water-consume"> <TechyBox class="water-consume">
<div class="header-part"> <div class="header-part">
<img src="./assets/consume/s.png" width="32" height="32" alt="water" /> <img src="./assets/consume/s.png" width="32" height="32" alt="water">
<span></span> <span></span>
</div> </div>
<div class="content-part"> <div class="content-part">
@@ -35,10 +35,10 @@
</TechyBox> </TechyBox>
</div> </div>
<div> <div style="min-height: calc(106px * var(--beilv)); flex: 1;">
<TechyBox class="gas-consume"> <TechyBox class="gas-consume">
<div class="header-part "> <div class="header-part ">
<img src="./assets/consume/gas.png" width="32" height="32" alt="qi" /> <img src="./assets/consume/gas.png" width="32" height="32" alt="qi">
<span></span> <span></span>
</div> </div>
<div class="content-part"> <div class="content-part">
@@ -46,31 +46,31 @@
<span class="name">&nbsp;&nbsp;&nbsp;&nbsp;</span> <span class="name">&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span class="diy-process-bar bar-width-4 color-1" /> <span class="diy-process-bar bar-width-4 color-1" />
<span class="amount"> <span class="amount">
23Pa 0.42MPa
</span> </span>
</div> </div>
<div class="row"> <div class="row">
<span class="name">CDA</span> <span class="name">CDA</span>
<span class="diy-process-bar bar-width-5 color-2" /> <span class="diy-process-bar bar-width-5 color-2" />
<span class="amount"> <span class="amount">
39Pa 0.61MPa
</span> </span>
</div> </div>
<div class="row"> <div class="row">
<span class="name">天然气</span> <span class="name">天然气</span>
<span class="diy-process-bar bar-width-6 color-3" /> <span class="diy-process-bar bar-width-6 color-3" />
<span class="amount"> <span class="amount">
239pa 0.31MPa
</span> </span>
</div> </div>
</div> </div>
</TechyBox> </TechyBox>
</div> </div>
<div style="min-height: calc(144px * var(--beilv)); flex: 1;"> <div style="min-height: calc(168px * var(--beilv)); flex: 1;">
<TechyBox class="dian-consume"> <TechyBox class="dian-consume">
<div class="header-part"> <div class="header-part">
<img src="./assets/consume/d.png" width="32" height="32" alt="dian" /> <img src="./assets/consume/d.png" width="32" height="32" alt="dian">
<span></span> <span></span>
</div> </div>
<div style="height: 100%; flex: 1; overflow: hidden"> <div style="height: 100%; flex: 1; overflow: hidden">
@@ -79,30 +79,29 @@
</TechyBox> </TechyBox>
</div> </div>
<div style="min-height: calc(144px * var(--beilv)); flex: 1;"> <!-- <div style="min-height: calc(144px * var(--beilv)); flex: 1;">
<TechyBox class="elec-consume"> <TechyBox class="elec-consume">
<div class="header-part"> <div class="header-part">
<img src="./assets/consume/fad.png" width="32" height="32" alt="fadian" /> <img src="./assets/consume/fad.png" width="32" height="32" alt="fadian" />
<span>发电</span> <span>发电</span>
</div> </div>
<div style="height: 100%; flex: 1; overflow: hidden"> <div style="height: 100%; flex: 1; overflow: hidden">
<!-- <FadianChart /> -->
<DianChart id="fa-dian" key="fa-dian" /> <DianChart id="fa-dian" key="fa-dian" />
</div> </div>
</TechyBox> </TechyBox>
</div> </div> -->
</div> </div>
</template> </template>
<script> <script>
import TechyBarChart from './TechyBarChart.vue' // import TechyBarChart from './TechyBarChart.vue'
import TechyLineChart from './TechyLineChart.vue' // import TechyLineChart from './TechyLineChart.vue'
import TechyBox from './TechyBox.vue' import TechyBox from './TechyBox.vue'
import FadianChart from './FadianChart.vue' // import FadianChart from './FadianChart.vue'
import DianChart from './DianChart.vue' import DianChart from './DianChart.vue'
export default { export default {
name: 'LeftContentPublicConsume', name: 'LeftContentPublicConsume',
components: { TechyBarChart, TechyBox, FadianChart, DianChart, TechyLineChart }, components: { TechyBox, DianChart },
data() { data() {
return {} return {}
}, },
@@ -153,17 +152,23 @@ export default {
.header-part > span { .header-part > span {
color: #fffc; color: #fffc;
font-size: calc(12px * var(--beilv)); font-size: calc(12px * var(--beilv));
line-height: calc(12px * var(--beilv));
white-space: nowrap; white-space: nowrap;
} }
.content-part { .content-part {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
font-size: calc(12px * var(--beilv)); justify-content: center;
color: #fff9; /* height: calc(48px * var(--beilv)); */
height: calc(48px * var(--beilv));
flex: 1 1; flex: 1 1;
gap: calc(4px * var(--beilv)); gap: calc(10px * var(--beilv));
color: #fff9;
}
.content-part span.name {
font-size: calc(12px * var(--beilv));
line-height: calc(14px * var(--beilv));
} }
.row { .row {
@@ -181,6 +186,7 @@ export default {
.row > .amount { .row > .amount {
text-align: right; text-align: right;
width: 15%;
} }
.diy-process-bar { .diy-process-bar {
@@ -211,13 +217,13 @@ export default {
width: 99%; width: 99%;
} }
.bar-width-4::after { .bar-width-4::after {
width: 20%; width: 42%;
} }
.bar-width-5::after { .bar-width-5::after {
width: 29%; width: 61%;
} }
.bar-width-6::after { .bar-width-6::after {
width: 79%; width: 31%;
} }
.diy-process-bar.color-1::after { .diy-process-bar.color-1::after {

View File

@@ -239,7 +239,7 @@ export default {
const colorGradient = colors[dataIndex] const colorGradient = colors[dataIndex]
if (totalRate + percent < 25) { if (totalRate + percent < 25) {
/** 也许这里需要完善,但目前工作良好 */ /** 也许这里需要完善,但目前工作良好 */
;(() => {})() (() => {})()
} else if (totalRate + percent < 50) { } else if (totalRate + percent < 50) {
colorGradient.x = 0 colorGradient.x = 0
colorGradient.y = 0 colorGradient.y = 0
@@ -252,7 +252,7 @@ export default {
colorGradient.y2 = 0 colorGradient.y2 = 0
} else if (totalRate + percent < 100) { } else if (totalRate + percent < 100) {
/** 也许这里需要完善,但目前工作良好 */ /** 也许这里需要完善,但目前工作良好 */
;(() => {})() (() => {})()
} }
totalRate += percent totalRate += percent
@@ -290,8 +290,8 @@ export default {
return beilv * baseSize return beilv * baseSize
}, },
applyChartOption() { applyChartOption() {
const fs1 = this.calcFontsize(1 /** px*/) // const fs1 = this.calcFontsize(1 /** px*/)
const fs3 = this.calcFontsize(3 /** px*/) // const fs3 = this.calcFontsize(3 /** px*/)
const fs5 = this.calcFontsize(5 /** px*/) const fs5 = this.calcFontsize(5 /** px*/)
const fs8 = this.calcFontsize(8 /** px*/) const fs8 = this.calcFontsize(8 /** px*/)
const fs10 = this.calcFontsize(10 /** px*/) const fs10 = this.calcFontsize(10 /** px*/)

View File

@@ -6,6 +6,7 @@
import echarts from 'echarts' import echarts from 'echarts'
import resize from '@/views/OperationalOverview/components/mixins/resize' import resize from '@/views/OperationalOverview/components/mixins/resize'
import { Random } from 'mockjs' import { Random } from 'mockjs'
import moment from 'moment'
class ChartOption { class ChartOption {
constructor() { constructor() {
@@ -61,29 +62,31 @@ class ChartOption {
return ` return `
<div style="display: flex; flex-direction: column; gap: calc(4px * var(--beilv));"> <div style="display: flex; flex-direction: column; gap: calc(4px * var(--beilv));">
<h2 style="font-size: calc(14px * var(--beilv)); margin: 0 0 4px; font-weight: normal; color: white;">${ <h2 style="font-size: calc(14px * var(--beilv)); margin: 0 0 4px; font-weight: normal; color: white;">${
params[0].axisValue params[0].axisValue
}</h2> }</h2>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[0] this.color[0]
}"></span><span>${params[0].seriesName}: ${params[0].value}</span></span> }"></span><span>${params[0].seriesName}: ${params[0].value}</span></span>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[1] this.color[1]
}"></span><span>${params[1].seriesName}: ${params[1].value}</span></span> }"></span><span>${params[1].seriesName}: ${params[1].value}</span></span>
</div> </div>
` `
} }
} }
let d = new Date()
this.xAxis = { this.xAxis = {
type: 'category', type: 'category',
boundaryGap: false, // boundaryGap: false,
// data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], // data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
data: Array(7) data: Array(7)
.fill(0) .fill(0)
.map((_, idx) => { .map((_, idx) => {
return d.getMonth() + 1 + '-' + (d.getDate() + idx) const d = moment()
}), const day = idx ? d.subtract(idx, 'd') : d
return day.format('M-DD')
})
.reverse(),
axisTick: { axisTick: {
show: false show: false
}, },
@@ -244,7 +247,7 @@ export default {
return num * beilv return num * beilv
}, },
setChartOption() { setChartOption() {
let chartOption = new ChartOption() const chartOption = new ChartOption()
this.chart.setOption(chartOption.optionFilter(chartOption.option, this.calcSize)) this.chart.setOption(chartOption.optionFilter(chartOption.option, this.calcSize))
} }
} }

View File

@@ -9,13 +9,14 @@
list: [32, 65, 65, 54, 37, 77] list: [32, 65, 65, 54, 37, 77]
} }
]" /> --> ]" /> -->
<div class="techy-chart" ref="realtimeLineChart"></div> <div ref="realtimeLineChart" class="techy-chart" />
</template> </template>
<script> <script>
import echarts from 'echarts' import echarts from 'echarts'
import resize from '@/views/OperationalOverview/components/mixins/resize' import resize from '@/views/OperationalOverview/components/mixins/resize'
import { Random } from 'mockjs' import { Random } from 'mockjs'
import moment from 'moment'
class ChartOption { class ChartOption {
constructor() { constructor() {
@@ -59,32 +60,36 @@ class ChartOption {
formatter: params => { formatter: params => {
return ` return `
<div style="display: flex; flex-direction: column; gap: calc(4px * var(--beilv));"> <div style="display: flex; flex-direction: column; gap: calc(4px * var(--beilv));">
<h2 style="font-size: calc(14px * var(--beilv)); margin: 0 0 4px; font-weight: normal; color: white;">${params[0].axisValue}</h2> <h2 style="font-size: calc(14px * var(--beilv)); margin: 0 0 4px; font-weight: normal; color: white;">${
params[0].axisValue
}</h2>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[0] this.color[0]
}"></span><span>${params[0].seriesName}: ${params[0].value}</span></span> }"></span><span>${params[0].seriesName}: ${params[0].value}</span></span>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[1] this.color[1]
}"></span><span>${params[1].seriesName}: ${params[1].value}</span></span> }"></span><span>${params[1].seriesName}: ${params[1].value}</span></span>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[2] this.color[2]
}"></span><span>${params[2].seriesName}: ${params[2].value}</span></span> }"></span><span>${params[2].seriesName}: ${params[2].value}</span></span>
<span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${ <span style="display: flex; align-items: center; gap: 8px;"><span style="width: 10px; height: 10px; border-radius: 5px; background: ${
this.color[3] this.color[3]
}"></span><span>${params[3].seriesName}: ${params[3].value}</span></span> }"></span><span>${params[3].seriesName}: ${params[3].value}</span></span>
</div> </div>
` `
} }
} }
let d = new Date()
this.xAxis = { this.xAxis = {
type: 'category', type: 'category',
data: Array(7) data: Array(7)
.fill(1) .fill(1)
.map((_, idx) => { .map((_, idx) => {
return d.getMonth() + 1 + '-' + (d.getDate() + idx) const d = moment()
}), const day = idx ? d.subtract(idx, 'd') : d
return day.format('M-DD')
})
.reverse(),
axisTick: { show: false }, axisTick: { show: false },
axisLabel: { axisLabel: {
color: '#fff9', color: '#fff9',
@@ -377,7 +382,7 @@ export default {
return num * beilv return num * beilv
}, },
setChartOption() { setChartOption() {
let chartOption = new ChartOption() const chartOption = new ChartOption()
this.chart.setOption(chartOption.optionFilter(chartOption.option, this.calcSize)) this.chart.setOption(chartOption.optionFilter(chartOption.option, this.calcSize))
} }
} }

View File

@@ -1,63 +0,0 @@
<template>
<div class="techy-fake-table">
<div class="table-inner">
<section class="table-header" />
<section class="table-body" />
</div>
</div>
</template>
<script>
export default {
name: '',
props: {
tableProps: {
type: Array,
default: () => []
},
tableData: {
type: Array,
default: () => []
}
},
data() {
return {
headMap: {}
}
},
created() {},
mounted() {
this.renderHeadRow().then(() => {
this.renderCommonRow()
})
},
methods: {
renderHeadRow() {
return new Promise((resolve, reject) => {
// do something...
})
},
renderCommonRow() {
return new Promise((resolve, reject) => {
// do something...
})
}
}
}
</script>
<style scoped>
.techy-fake-table {
position: relative;
width: 100%;
height: 100px;
background: #3333;
overflow: hidden;
overflow-x: scroll;
}
.table-inner {
max-width: 10000px;
color: white;
white-space: nowrap;
}
</style>

View File

@@ -1,6 +1,6 @@
<template> <template>
<header class="techy-header"> <header class="techy-header">
<img class="logo-img" src="./logo.png" alt="cnbm" /> <img class="logo-img" src="./logo.png" alt="cnbm">
<span class="techy-header__title">{{ headTitle }}</span> <span class="techy-header__title">{{ headTitle }}</span>
<div class="date">{{ now.format('yyyy.MM.DD') }}</div> <div class="date">{{ now.format('yyyy.MM.DD') }}</div>
@@ -90,7 +90,8 @@ export default {
const password = Cookie.get('password') const password = Cookie.get('password')
if (username && password) { if (username && password) {
window.location = `http://192.168.1.103:9527/#/?username=${username}&password=${password}` window.location = `http://main.cnbmai.picaiba.com/#/?username=${username}&password=${password}`
// window.location = `http://192.168.1.103:9527/#/?username=${username}&password=${password}`
} else { } else {
this.$router.push('/') this.$router.push('/')
} }

View File

@@ -7,7 +7,7 @@
--> -->
<template> <template>
<div class="visual-base-table-container"> <div class="visual-base-table-container">
<el-table class="techy-el-table" v-loading="isLoading" :data="renderData" border height="100%"> <el-table v-loading="isLoading" class="techy-el-table" :data="renderData" border height="100%">
<el-table-column <el-table-column
v-if="page && limit && showIndex" v-if="page && limit && showIndex"
prop="_pageIndex" prop="_pageIndex"
@@ -29,7 +29,7 @@
:inject-data="{ ...scope.row, ...item }" :inject-data="{ ...scope.row, ...item }"
@emitData="emitData" @emitData="emitData"
/> />
<span v-else>{{ scope.row[item.prop] | commonFilter(item.filter) }}</span> <span v-else :title="scope.row[item.prop]">{{ scope.row[item.prop] | commonFilter(item.filter) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<slot name="content" /> <slot name="content" />

View File

@@ -142,6 +142,7 @@ export default {
data() { data() {
return { return {
eqId: null, eqId: null,
oldEqId: null,
currentEquipment: null, currentEquipment: null,
showPage: false, showPage: false,
toggleResize: 'toggle-1' // <=== no need to worry this toggleResize: 'toggle-1' // <=== no need to worry this
@@ -170,7 +171,17 @@ export default {
}, },
handle3DClick() { handle3DClick() {
this.eqId = document.getElementById('V3DData').rel this.eqId = document.getElementById('V3DData').rel
if (this.oldEqId && this.oldEqId === this.eqId) {
// 关闭框
console.log('here.........关闭框', this.oldEqId, this.eqId)
this.currentEquipment = null
this.oldEqId = null
return
}
if (this.eqId) { if (this.eqId) {
this.oldEqId = this.eqId
this.currentEquipment = eqList.find(item => item.id === this.eqId) this.currentEquipment = eqList.find(item => item.id === this.eqId)
} }
} }
@@ -286,19 +297,11 @@ export default {
width: calc(472px * var(--beilv)); width: calc(472px * var(--beilv));
} }
/* 现场实时监控 */
.ft-monitor {
}
/* 缺陷分类分析 */ /* 缺陷分类分析 */
.fault-analysis { .fault-analysis {
width: calc(290px * var(--beilv)); width: calc(290px * var(--beilv));
} }
/* 设备报警提示 */
.eq-alert {
}
.techy-body-part__left, .techy-body-part__left,
.techy-body-part__right { .techy-body-part__right {
/* height: 100%; */ /* height: 100%; */
@@ -326,20 +329,14 @@ export default {
.techy-body-part__middle { .techy-body-part__middle {
position: absolute; position: absolute;
/* background: #ff3311; */
top: 0; top: 0;
right: calc(-16px * var(--beilv)); right: calc(-16px * var(--beilv));
} transform: translateX(100%);
.techy-body-part__middle .techy-box {
position: absolute;
top: 0;
left: 0;
height: calc(128px * var(--beilv));
width: calc(188px * var(--beilv));
} }
.techy-body-part__middle__inner { .techy-body-part__middle__inner {
height: 100%; /* height: 100%; */
padding: calc(16px * var(--beilv)); padding: calc(16px * var(--beilv));
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -354,8 +351,17 @@ export default {
line-height: 1.5; line-height: 1.5;
color: #fff; color: #fff;
display: flex; display: flex;
min-width: calc(168px * var(--beilv));
} }
.techy-body-part__middle__inner p:not(:last-child) {
margin-bottom: calc(8px * var(--beilv));
}
/* .techy-body-part__middle__inner p > b {
width: calc(90px * var(--beilv));
} */
.techy-body-part__middle__inner p > span { .techy-body-part__middle__inner p > span {
position: relative; position: relative;
padding-left: calc(16px * var(--beilv)); padding-left: calc(16px * var(--beilv));

View File

@@ -1,21 +1,23 @@
export default [ export default [
{ id: 'C123-1', pl: 'A', name: 'A钢化', amount: 32, status: '生产中' },
{ id: 'C456-1', pl: 'B', name: 'B钢化', amount: 32, status: '生产中' },
{ id: 'C1-0', pl: 'A1', name: 'A1上片', amount: 32, status: '生产中' }, { id: 'C1-0', pl: 'A1', name: 'A1上片', amount: 32, status: '生产中' },
{ id: 'C1-1', pl: 'A1', name: 'A1磨边', amount: 32, status: '生产中' }, { id: 'C1-1', pl: 'A1', name: 'A1磨边', amount: 32, status: '生产中' },
{ id: 'C1-2', pl: 'A1', name: 'A1磨边后清洗', amount: 32, status: '调试中' }, { id: 'C1-2', pl: 'A1', name: 'A1磨边后清洗', amount: 32, status: '生产中' },
{ id: 'C1-3', pl: 'A1', name: 'A1打孔', amount: 32, status: '生产中' }, { id: 'C1-3', pl: 'A1', name: 'A1打孔', amount: 32, status: '生产中' },
{ id: 'C1-4', pl: 'A1', name: 'A1打孔后清洗', amount: 32, status: '生产中' }, { id: 'C1-4', pl: 'A1', name: 'A1打孔后清洗', amount: 32, status: '生产中' },
{ id: 'C1-5', pl: 'A1', name: 'A1丝印', amount: 32, status: '生产中' }, { id: 'C1-5', pl: 'A1', name: 'A1丝印', amount: 32, status: '生产中' },
{ id: 'C1-6', pl: 'A1', name: 'A1固化', amount: 32, status: '生产中' }, { id: 'C1-6', pl: 'A1', name: 'A1固化', amount: 32, status: '生产中' },
{ id: 'C1-7', pl: 'A1', name: 'A1储片', amount: 32, status: '生产中' }, { id: 'C1-7', pl: 'A1', name: 'A1储片', amount: 32, status: '生产中' },
{ id: 'C1-8', pl: 'A1', name: 'A钢化', amount: 32, status: '生产中' }, { id: 'C1-8', pl: 'A1', name: 'A1钢化后清洗', amount: 32, status: '生产中' },
{ id: 'C1-9', pl: 'A1', name: 'A1钢化后清洗', amount: 32, status: '生产中' }, { id: 'C1-9', pl: 'A1', name: 'A1下片', amount: 32, status: '生产中' },
{ id: 'C1-10', pl: 'A1', name: 'A1下片', amount: 32, status: '生产中' },
{ id: 'C2-0', pl: 'A2', name: 'A2上片', amount: 32, status: '调试中' }, { id: 'C2-0', pl: 'A2', name: 'A2上片', amount: 32, status: '调试中' },
{ id: 'C2-1', pl: 'A2', name: 'A2磨边', amount: 32, status: '生产中' }, { id: 'C2-1', pl: 'A2', name: 'A2磨边', amount: 32, status: '生产中' },
{ id: 'C2-2', pl: 'A2', name: 'A2磨边后清洗', amount: 32, status: '调试中' }, { id: 'C2-2', pl: 'A2', name: 'A2磨边后清洗', amount: 32, status: '调试中' },
{ id: 'C2-3', pl: 'A2', name: 'A2打孔', amount: 32, status: '调试中' }, { id: 'C2-3', pl: 'A2', name: 'A2打孔', amount: 32, status: '调试中' },
{ id: 'C2-4', pl: 'A2', name: 'A2打孔后清洗', amount: 32, status: '调试中' }, { id: 'C2-4', pl: 'A2', name: 'A2打孔后清洗', amount: 32, status: '生产中' },
{ id: 'C2-5', pl: 'A2', name: 'A2丝印', amount: 32, status: '生产中' }, { id: 'C2-5', pl: 'A2', name: 'A2丝印', amount: 32, status: '生产中' },
{ id: 'C2-6', pl: 'A2', name: 'A2固化', amount: 32, status: '生产中' }, { id: 'C2-6', pl: 'A2', name: 'A2固化', amount: 32, status: '生产中' },
{ id: 'C2-7', pl: 'A2', name: 'A2储片', amount: 32, status: '生产中' }, { id: 'C2-7', pl: 'A2', name: 'A2储片', amount: 32, status: '生产中' },
@@ -26,8 +28,8 @@ export default [
{ id: 'C3-1', pl: 'A3', name: 'A3磨边', amount: 32, status: '生产中' }, { id: 'C3-1', pl: 'A3', name: 'A3磨边', amount: 32, status: '生产中' },
{ id: 'C3-2', pl: 'A3', name: 'A3磨边后清洗', amount: 32, status: '生产中' }, { id: 'C3-2', pl: 'A3', name: 'A3磨边后清洗', amount: 32, status: '生产中' },
{ id: 'C3-3', pl: 'A3', name: 'A3打孔', amount: 32, status: '生产中' }, { id: 'C3-3', pl: 'A3', name: 'A3打孔', amount: 32, status: '生产中' },
{ id: 'C3-4', pl: 'A3', name: 'A3打孔后清洗', amount: 32, status: '生产中' }, { id: 'C3-4', pl: 'A3', name: 'A3打孔后清洗', amount: 32, status: '故障' },
{ id: 'C3-5', pl: 'A3', name: 'A3丝印', amount: 32, status: '故障' }, { id: 'C3-5', pl: 'A3', name: 'A3丝印', amount: 32, status: '生产中' },
{ id: 'C3-6', pl: 'A3', name: 'A3固化', amount: 32, status: '生产中' }, { id: 'C3-6', pl: 'A3', name: 'A3固化', amount: 32, status: '生产中' },
{ id: 'C3-7', pl: 'A3', name: 'A3储片', amount: 32, status: '生产中' }, { id: 'C3-7', pl: 'A3', name: 'A3储片', amount: 32, status: '生产中' },
{ id: 'C3-8', pl: 'A3', name: 'A3钢化后清洗', amount: 32, status: '生产中' }, { id: 'C3-8', pl: 'A3', name: 'A3钢化后清洗', amount: 32, status: '生产中' },
@@ -35,15 +37,14 @@ export default [
{ id: 'C4-0', pl: 'B1', name: 'B1上片', amount: 32, status: '故障' }, { id: 'C4-0', pl: 'B1', name: 'B1上片', amount: 32, status: '故障' },
{ id: 'C4-1', pl: 'B1', name: 'B1磨边', amount: 32, status: '生产中' }, { id: 'C4-1', pl: 'B1', name: 'B1磨边', amount: 32, status: '生产中' },
{ id: 'C4-2', pl: 'B1', name: 'B1磨边后清洗', amount: 32, status: '生产中' }, { id: 'C4-2', pl: 'B1', name: 'B1磨边后清洗', amount: 32, status: '故障' },
{ id: 'C4-3', pl: 'B1', name: 'B1打孔', amount: 32, status: '故障' }, { id: 'C4-3', pl: 'B1', name: 'B1打孔', amount: 32, status: '故障' },
{ id: 'C4-4', pl: 'B1', name: 'B1打孔后清洗', amount: 32, status: '故障' }, { id: 'C4-4', pl: 'B1', name: 'B1打孔后清洗', amount: 32, status: '生产中' },
{ id: 'C4-5', pl: 'B1', name: 'B1丝印', amount: 32, status: '生产中' }, { id: 'C4-5', pl: 'B1', name: 'B1丝印', amount: 32, status: '生产中' },
{ id: 'C4-6', pl: 'B1', name: 'B1固化', amount: 32, status: '生产中' }, { id: 'C4-6', pl: 'B1', name: 'B1固化', amount: 32, status: '生产中' },
{ id: 'C4-7', pl: 'B1', name: 'B1储片', amount: 32, status: '生产中' }, { id: 'C4-7', pl: 'B1', name: 'B1储片', amount: 32, status: '生产中' },
{ id: 'C4-8', pl: 'B1', name: 'B钢化', amount: 32, status: '生产中' }, { id: 'C4-8', pl: 'B1', name: 'B1钢化后清洗', amount: 32, status: '生产中' },
{ id: 'C4-9', pl: 'B1', name: 'B1钢化后清洗', amount: 32, status: '生产中' }, { id: 'C4-9', pl: 'B1', name: 'B下片', amount: 32, status: '生产中' },
{ id: 'C4-10', pl: 'B1', name: 'B下片', amount: 32, status: '生产中' },
{ id: 'C5-0', pl: 'B2', name: 'B2上片', amount: 32, status: '生产中' }, { id: 'C5-0', pl: 'B2', name: 'B2上片', amount: 32, status: '生产中' },
{ id: 'C5-1', pl: 'B2', name: 'B2磨边', amount: 32, status: '生产中' }, { id: 'C5-1', pl: 'B2', name: 'B2磨边', amount: 32, status: '生产中' },
@@ -61,6 +62,6 @@ export default [
{ id: 'C6-3', pl: 'B3', name: 'B3打孔', amount: 32, status: '生产中' }, { id: 'C6-3', pl: 'B3', name: 'B3打孔', amount: 32, status: '生产中' },
{ id: 'C6-4', pl: 'B3', name: 'B3打孔后清洗', amount: 32, status: '生产中' }, { id: 'C6-4', pl: 'B3', name: 'B3打孔后清洗', amount: 32, status: '生产中' },
{ id: 'C6-5', pl: 'B3', name: 'B3丝印', amount: 32, status: '生产中' }, { id: 'C6-5', pl: 'B3', name: 'B3丝印', amount: 32, status: '生产中' },
{ id: 'C6-6', pl: 'B3', name: 'B3固化', amount: 32, status: '生产中' }, { id: 'C6-6', pl: 'B3', name: 'B3固化', amount: 32, status: '故障' },
{ id: 'C6-7', pl: 'B3', name: 'B3储片', amount: 32, status: '故障' }, { id: 'C6-7', pl: 'B3', name: 'B3储片', amount: 32, status: '故障' }
] ]

View File

@@ -226,23 +226,22 @@ export default {
</script> </script>
<style scoped> <style scoped>
::-webkit-scrollbar { .visual-container >>> ::-webkit-scrollbar {
width: calc(8px * var(--beilv)); width: calc(8px * var(--beilv));
} }
::-webkit-scrollbar-track { .visual-container >>> ::-webkit-scrollbar-track {
background-color: #14243f; background-color: #14243f;
border-radius: 0; border-radius: 0;
} }
::-webkit-scrollbar-button { .visual-container >>> ::-webkit-scrollbar-button {
width: calc(8px * var(--beilv)); display: none;
height: calc(8px * var(--beilv));
background: #5bc4bf9f; background: #5bc4bf9f;
position: relative; position: relative;
} }
::-webkit-scrollbar-thumb { .visual-container >>> ::-webkit-scrollbar-thumb {
border-radius: calc(8px * var(--beilv)); border-radius: calc(8px * var(--beilv));
background: #5bc4bf9f; background: #5bc4bf9f;
} }
@@ -394,10 +393,6 @@ export default {
left: calc(140px * var(--beilv)); left: calc(140px * var(--beilv));
} }
.pl-select {
/* height: calc(18px * var(--beilv)); */
}
.pl-select >>> input { .pl-select >>> input {
/* height: 100%; */ /* height: 100%; */
outline: none; outline: none;

View File

@@ -126,8 +126,9 @@ export default {
} }
.visual-base-table-container >>> ::-webkit-scrollbar-button { .visual-base-table-container >>> ::-webkit-scrollbar-button {
width: calc(8px * var(--beilv)); display: none;
height: calc(8px * var(--beilv)); /* width: calc(8px * var(--beilv));
height: calc(8px * var(--beilv)); */
background: #5bc4bf9f; background: #5bc4bf9f;
position: relative; position: relative;
} }

View File

@@ -45,6 +45,28 @@ export default {
color: white; color: white;
} }
.techy-vertical-table >>> ::-webkit-scrollbar {
width: calc(8px * var(--beilv));
}
.techy-vertical-table >>> ::-webkit-scrollbar-track {
background-color: #14243f;
border-radius: 0;
}
.techy-vertical-table >>> ::-webkit-scrollbar-button {
display: none;
/* width: calc(8px * var(--beilv));
height: calc(8px * var(--beilv)); */
background: #5bc4bf9f;
position: relative;
}
.techy-vertical-table >>> ::-webkit-scrollbar-thumb {
border-radius: calc(8px * var(--beilv));
background: #5bc4bf9f;
}
.trow { .trow {
width: 100%; width: 100%;
white-space: nowrap; white-space: nowrap;

View File

@@ -207,7 +207,7 @@
:class="{ 'pl-select__active': dateMode2 === 'day' }" :class="{ 'pl-select__active': dateMode2 === 'day' }"
@click=" @click="
dateMode2 = 'day' dateMode2 = 'day'
dataUpdateToken = Math.random()+'' dataUpdateToken = Math.random() + ''
" "
> >
@@ -216,7 +216,7 @@
:class="{ 'pl-select__active': dateMode2 === 'month' }" :class="{ 'pl-select__active': dateMode2 === 'month' }"
@click=" @click="
dateMode2 = 'month' dateMode2 = 'month'
dataUpdateToken = Math.random()+'' dataUpdateToken = Math.random() + ''
" "
> >
@@ -307,7 +307,7 @@ import TechyBox from './components/TechyBox.vue'
import TechyTable from './components/TechyTable.vue' import TechyTable from './components/TechyTable.vue'
import TechyAnalysisBar from './components/TechyAnalysisBar.vue' import TechyAnalysisBar from './components/TechyAnalysisBar.vue'
import TechyAnalysisHeader from './components/TechyAnalysisHeader.vue' import TechyAnalysisHeader from './components/TechyAnalysisHeader.vue'
import productionRateHeader from './components/productionRateHeader.vue' // import productionRateHeader from './components/productionRateHeader.vue'
// import FaultCategoryChart from './components/charts/FaultCategoryChart.vue' // import FaultCategoryChart from './components/charts/FaultCategoryChart.vue'
import PlFaultAnalysisPieChart from './components/charts/PlFaultAnalysisPieChart.vue' import PlFaultAnalysisPieChart from './components/charts/PlFaultAnalysisPieChart.vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@@ -330,8 +330,8 @@ export default {
// FaultCategoryChart, // FaultCategoryChart,
PlFaultAnalysisPieChart, PlFaultAnalysisPieChart,
TechyBar, TechyBar,
NewLineStack, NewLineStack
productionRateHeader // productionRateHeader
}, },
data() { data() {
const quexianDatalist = [ const quexianDatalist = [
@@ -668,47 +668,13 @@ export default {
width: calc(375px * var(--beilv)); width: calc(375px * var(--beilv));
} }
.fake-legend{ .fake-legend {
cursor: unset; cursor: unset;
} }
.fake-legend span { .fake-legend span {
background: none; background: none;
cursor: none; cursor: none;
color: #DFF1FE; color: #dff1fe;
} }
/* @media all and (max-width: 1680px) {
.production-rate {
text-align: center;
}
.production-rate >>> .top-icon,
.production-rate >>> .date-select {
display: none;
}
}
@media all and (min-width: 1680px) {
.production-rate {
text-align: left;
}
.production-rate >>> .top-icon {
display: none;
}
}
@media all and (min-width: 2048px) {
.production-rate {
text-align: center;
}
.production-rate >>> .date-select > span {
background-color: #568588;
}
.production-rate >>> .date-select > span.date-select__active {
background-color: #42bbb7;
}
} */
</style> </style>

View File

@@ -126,8 +126,9 @@ export default {
} }
.visual-base-table-container >>> ::-webkit-scrollbar-button { .visual-base-table-container >>> ::-webkit-scrollbar-button {
width: calc(8px * var(--beilv)); /* width: calc(8px * var(--beilv));
height: calc(8px * var(--beilv)); height: calc(8px * var(--beilv)); */
display: none;
background: #5bc4bf9f; background: #5bc4bf9f;
position: relative; position: relative;
} }
@@ -137,15 +138,10 @@ export default {
background: #5bc4bf9f; background: #5bc4bf9f;
} }
/* .visual-base-table-container {
min-width: 30vw;
} */
.visual-base-table-container { .visual-base-table-container {
height: 100%; height: 100%;
} }
/* .visual-base-table-container >>> .el-table {
min-width: 120%;
} */
/* 清除默认样式 */ /* 清除默认样式 */
.visual-base-table-container >>> th.gutter { .visual-base-table-container >>> th.gutter {
display: none; display: none;

View File

@@ -243,20 +243,20 @@ export default {
const colorGradient = colors[dataIndex] const colorGradient = colors[dataIndex]
if (totalRate + percent < 25) { if (totalRate + percent < 25) {
/** 也许这里需要完善,但目前工作良好 */ /** 也许这里需要完善,但目前工作良好 */
;(() => {})() (() => {})()
} else if (totalRate + percent < 50) { } else if (totalRate + percent < 50) {
colorGradient.x = 0 colorGradient.x = 0
colorGradient.y = 0 colorGradient.y = 0
colorGradient.x2 = 1 colorGradient.x2 = 1
colorGradient.y2 = 1 colorGradient.y2 = 1
} else if (totalRate + percent >= 50 && dataIndex == 1) { } else if (totalRate + percent >= 50 && dataIndex === 1) {
colorGradient.x = 1 colorGradient.x = 1
colorGradient.y = 1 colorGradient.y = 1
colorGradient.x2 = 0 colorGradient.x2 = 0
colorGradient.y2 = 0 colorGradient.y2 = 0
} else if (totalRate + percent < 100) { } else if (totalRate + percent < 100) {
/** 也许这里需要完善,但目前工作良好 */ /** 也许这里需要完善,但目前工作良好 */
;(() => {})() (() => {})()
} }
totalRate += percent totalRate += percent
@@ -306,21 +306,19 @@ export default {
applyChartOption(datalist) { applyChartOption(datalist) {
const fs5 = this.calcFontsize(5 /** px*/) const fs5 = this.calcFontsize(5 /** px*/)
const fs8 = this.calcFontsize(8 /** px*/) const fs8 = this.calcFontsize(8 /** px*/)
const fs10 = this.calcFontsize(10 /** px*/) // const fs10 = this.calcFontsize(10 /** px*/)
const fs12 = this.calcFontsize(12 /** px*/) const fs12 = this.calcFontsize(12 /** px*/)
const fs13 = this.calcFontsize(13 /** px*/) const fs13 = this.calcFontsize(13 /** px*/)
const fs18 = this.calcFontsize(18 /** px*/) // const fs18 = this.calcFontsize(18 /** px*/)
const fs20 = this.calcFontsize(20 /** px*/) const fs20 = this.calcFontsize(20 /** px*/)
const legendTextFixWidth = this.calcFontsize(48 /** px*/) const legendTextFixWidth = this.calcFontsize(48 /** px*/)
const legnedTop = this.calcFontsize(72 /** px*/) const legnedTop = this.calcFontsize(72 /** px*/)
const legendTopRate = this.calcFontsize(30 /** % */) // const legendTopRate = this.calcFontsize(30 /** % */)
this.configs.title.text = this.configs.title.text =
this.dataPeriod === 'month' this.dataPeriod === 'month'
? // 如果是月数据,单位为 千片 ? this.dataList.reduce((prev, curr) => prev + curr.value * 1000, 0) // 如果是月数据,单位为 千片
this.dataList.reduce((prev, curr) => prev + curr.value * 1000, 0) : this.dataList.reduce((prev, curr) => prev + curr.value, 0) // 如果是日数据,单位为 片
: // 如果是日数据,单位为 片
this.dataList.reduce((prev, curr) => prev + curr.value, 0)
this.configs.title.textStyle.fontSize = fs20 this.configs.title.textStyle.fontSize = fs20
this.configs.title.subtextStyle.fontSize = fs13 this.configs.title.subtextStyle.fontSize = fs13

View File

@@ -1,19 +1,19 @@
<template> <template>
<div class="state-box"> <div class="state-box">
<span v-if="this.injectData.status === 1"> <span v-if="this.injectData.status === 1">
<svg-icon icon-class="yellow_dot" style="font-size: 14px; position: relative; top: .08em" /> <svg-icon icon-class="yellow_dot" class="tip"/>
在途 在途
</span> </span>
<span v-if="this.injectData.status === 2"> <span v-if="this.injectData.status === 2">
<svg-icon icon-class="blue_dot" style="font-size: 14px; position: relative; top: .08em" /> <svg-icon icon-class="blue_dot" class="tip"/>
已下发 已下发
</span> </span>
<span v-if="this.injectData.status === 3"> <span v-if="this.injectData.status === 3">
<svg-icon icon-class="green_dot" style="font-size: 14px; position: relative; top: .08em" /> <svg-icon icon-class="green_dot" class="tip" />
已完成 已完成
</span> </span>
<span v-if="this.injectData.status === 4"> <span v-if="this.injectData.status === 4">
<svg-icon icon-class="orange_dot" style="font-size: 14px; position: relative; top: .08em" /> <svg-icon icon-class="orange_dot" class="tip" />
待下发 待下发
</span> </span>
</div> </div>
@@ -44,8 +44,11 @@ export default {
} }
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.state-box { .state-box {
height: calc(15px * var(--beilv)) .tip {
font-size: calc(14px * var(--beilv));
vertical-align: middle;
}
} }
</style> </style>

View File

@@ -63,6 +63,7 @@ export default {
justify-content: space-between; justify-content: space-between;
.box { .box {
width: 49.5%; width: 49.5%;
height: 49.5%;
margin-bottom: 8px; margin-bottom: 8px;
background-image: url('../../../../assets/img/cockpit/module-back.png'); background-image: url('../../../../assets/img/cockpit/module-back.png');
background-repeat: no-repeat; background-repeat: no-repeat;
@@ -92,6 +93,26 @@ export default {
background: #366F5D; background: #366F5D;
} }
} }
::-webkit-scrollbar {
width: calc(8px * var(--beilv));
}
::-webkit-scrollbar-track {
background-color: #14243f;
border-radius: 0;
}
::-webkit-scrollbar-button {
width: calc(8px * var(--beilv));
height: calc(8px * var(--beilv));
background: #5bc4bf9f;
position: relative;
}
::-webkit-scrollbar-thumb {
border-radius: calc(8px * var(--beilv));
background: #5bc4bf9f;
}
} }
.progress-box { .progress-box {
border-radius: 5px; border-radius: 5px;