二级app修改

This commit is contained in:
2025-12-07 12:54:39 +08:00
parent 041ac52600
commit f0b21a5588
5 changed files with 662 additions and 300 deletions

View File

@@ -19,7 +19,58 @@
<text class="refresh-icon" :class="{ 'rotating': isRefreshing }"></text>
</view>
<scroll-view scroll-y class="scroll-container" v-if="currentTab === 1">
<!-- 快速导航菜单固定在左下角 -->
<view class="nav-menu-fixed" :class="{ 'nav-expanded': navMenuExpanded }">
<view class="nav-toggle" @click="navMenuExpanded = !navMenuExpanded">
<text class="nav-toggle-icon">{{ navMenuExpanded ? '✕' : '☰' }}</text>
</view>
<view class="nav-items" v-if="navMenuExpanded">
<view class="nav-item" @click="scrollToSection('speed-monitor')">
<text class="nav-label">速度监控</text>
</view>
<view class="nav-item" @click="scrollToSection('exit-speed-chart')">
<text class="nav-label">出口速度趋势</text>
</view>
<view class="nav-item" @click="scrollToSection('temp-chart')">
<text class="nav-label">酸槽温度趋势</text>
</view>
<view class="nav-item" @click="scrollToSection('looper-status')">
<text class="nav-label">活套运行状态</text>
</view>
<view class="nav-item" @click="scrollToSection('tank-concentration')">
<text class="nav-label">酸槽浓度监控</text>
</view>
<view class="nav-item" @click="scrollToSection('force-chart')">
<text class="nav-label">轧制力趋势</text>
</view>
<view class="nav-item" @click="scrollToSection('process-params')">
<text class="nav-label">工艺参数</text>
</view>
<view class="nav-item" @click="scrollToSection('roll-speed')">
<text class="nav-label">轧辊速度监控</text>
</view>
<view class="nav-item" @click="scrollToSection('reduc-rate')">
<text class="nav-label">机架压下率</text>
</view>
<view class="nav-item" @click="scrollToSection('tension-monitor')">
<text class="nav-label">带钢张力监控</text>
</view>
<view class="nav-item" @click="scrollToSection('power-ratio')">
<text class="nav-label">机架功率百分比</text>
</view>
<view class="nav-item" @click="scrollToSection('paint-speed')">
<text class="nav-label">涂装速度监控</text>
</view>
<view class="nav-item" @click="scrollToSection('tlv-params')">
<text class="nav-label">拉矫参数</text>
</view>
<view class="nav-item" @click="scrollToSection('paint-temp-chart')">
<text class="nav-label">烘干温度趋势</text>
</view>
</view>
</view>
<scroll-view scroll-y class="scroll-container" v-if="currentTab === 1" :scroll-into-view="scrollIntoView">
<!-- 顶部状态栏 -->
<view class="status-bar">
<view class="status-item">
@@ -39,7 +90,7 @@
</view>
<!-- 速度监控 -->
<view class="section">
<view class="section" id="speed-monitor">
<view class="section-title">速度监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in speedMetrics" :key="index">
@@ -50,8 +101,16 @@
</view>
</view>
<!-- 出口速度趋势 -->
<view class="section" id="exit-speed-chart">
<view class="section-title">出口速度趋势</view>
<view class="chart-box">
<qiun-data-charts type="line" :chartData="exitSpeedChartData" :opts="lineChartOpts" />
</view>
</view>
<!-- 酸槽温度趋势 -->
<view class="section">
<view class="section" id="temp-chart">
<view class="section-title">酸槽温度趋势</view>
<view class="chart-box">
<qiun-data-charts type="line" :chartData="tempChartData" :opts="lineChartOpts" />
@@ -59,7 +118,7 @@
</view>
<!-- 活套运行状态 -->
<view class="section">
<view class="section" id="looper-status">
<view class="section-title">活套运行状态</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in looperMetrics" :key="index">
@@ -71,7 +130,7 @@
</view>
<!-- 酸槽浓度监控 -->
<view class="section">
<view class="section" id="tank-concentration">
<view class="section-title">酸槽浓度监控</view>
<view class="tank-grid">
<view class="tank-card" v-for="(tank, index) in tankConcentration" :key="index">
@@ -91,8 +150,16 @@
</view>
</view>
<!-- 轧制力趋势 -->
<view class="section" id="force-chart">
<view class="section-title">轧制力趋势</view>
<view class="chart-box">
<qiun-data-charts type="line" :chartData="forceChartData" :opts="forceLineChartOpts" />
</view>
</view>
<!-- 工艺参数 -->
<view class="section">
<view class="section" id="process-params">
<view class="section-title">工艺参数</view>
<view class="metrics-grid-2">
<view class="metric-box" v-for="(item, index) in processMetrics" :key="index">
@@ -102,6 +169,96 @@
</view>
</view>
</view>
<!-- ============ 镀锌线数据 ============ -->
<view class="section-divider">
<text class="divider-text">镀锌线监控数据</text>
</view>
<!-- 轧辊速度监控 -->
<view class="section" id="roll-speed">
<view class="section-title">轧辊速度监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in rollSpeedMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 机架压下率 -->
<view class="section" id="reduc-rate">
<view class="section-title">机架压下率</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in reducMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 带钢张力监控 -->
<view class="section" id="tension-monitor">
<view class="section-title">带钢张力监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in tensionMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 机架功率百分比 -->
<view class="section" id="power-ratio">
<view class="section-title">机架功率百分比</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in powerMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- ============ 涂装线数据 ============ -->
<view class="section-divider">
<text class="divider-text">涂装线监控数据</text>
</view>
<!-- 涂装速度监控 -->
<view class="section" id="paint-speed">
<view class="section-title">涂装速度监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in paintSpeedMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 拉矫参数 -->
<view class="section" id="tlv-params">
<view class="section-title">拉矫参数</view>
<view class="metrics-grid-2">
<view class="metric-box" v-for="(item, index) in tlvMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 烘干温度趋势 -->
<view class="section" id="paint-temp-chart">
<view class="section-title">烘干温度趋势</view>
<view class="chart-box">
<qiun-data-charts type="line" :chartData="paintTempChartData" :opts="paintLineChartOpts" />
</view>
</view>
</scroll-view>
<scroll-view scroll-y class="scroll-container" v-if="currentTab == 2">
@@ -139,6 +296,8 @@ export default {
lastUpdateTime: '—', // 最后更新时间
isRefreshing: false, // 是否正在刷新
refreshTimer: null, // 定时器
navMenuExpanded: false, // 导航菜单是否展开
scrollIntoView: '', // 滚动目标
// 速度监控指标ID=1,2,3
speedMetrics: [
{ label: '出口带钢速度', value: '—', unit: 'm/min' },
@@ -165,8 +324,60 @@ export default {
{ label: '联机活套张力', value: '—', unit: 'kN' },
{ label: '拉矫机延伸率', value: '—', unit: '%' }
],
// 镀锌线数据
rollSpeedMetrics: [
{ label: '1#机架', value: '—', unit: 'm/min' },
{ label: '2#机架', value: '—', unit: 'm/min' },
{ label: '3#机架', value: '—', unit: 'm/min' },
{ label: '4#机架', value: '—', unit: 'm/min' },
{ label: '5#机架', value: '—', unit: 'm/min' },
{ label: '6#机架', value: '—', unit: 'm/min' }
],
reducMetrics: [
{ label: '1#机架', value: '—', unit: '%' },
{ label: '2#机架', value: '—', unit: '%' },
{ label: '3#机架', value: '—', unit: '%' },
{ label: '4#机架', value: '—', unit: '%' },
{ label: '5#机架', value: '—', unit: '%' },
{ label: '6#机架', value: '—', unit: '%' }
],
tensionMetrics: [
{ label: '0#张力', value: '—', unit: 'kN' },
{ label: '1#张力', value: '—', unit: 'kN' },
{ label: '2#张力', value: '—', unit: 'kN' },
{ label: '3#张力', value: '—', unit: 'kN' },
{ label: '4#张力', value: '—', unit: 'kN' },
{ label: '5#张力', value: '—', unit: 'kN' },
{ label: '6#张力', value: '—', unit: 'kN' }
],
powerMetrics: [
{ label: '1#机架', value: '—', unit: '%' },
{ label: '2#机架', value: '—', unit: '%' },
{ label: '3#机架', value: '—', unit: '%' },
{ label: '4#机架', value: '—', unit: '%' },
{ label: '5#机架', value: '—', unit: '%' },
{ label: '6#机架', value: '—', unit: '%' }
],
// 涂装线数据
paintSpeedMetrics: [
{ label: '出口带钢速度', value: '—', unit: 'm/min' },
{ label: '涂装带钢速度', value: '—', unit: 'm/min' },
{ label: '圆盘剪速度', value: '—', unit: 'm/min' }
],
tlvMetrics: [
{ label: '拉矫延伸率', value: '—', unit: '%' },
{ label: '破磷机插入量1', value: '—', unit: 'mm' },
{ label: '破磷机插入量2', value: '—', unit: 'mm' },
{ label: '破磷机插入量3', value: '—', unit: 'mm' }
],
// 温度趋势图数据ID=4,5,6
tempChartData: {},
// 出口速度趋势图数据ID=1
exitSpeedChartData: {},
// 轧制力趋势图数据ID=30-35
forceChartData: {},
// 涂装线温度趋势图数据ID=4-7, 17
paintTempChartData: {},
lineChartOpts: {
color: ["#0066cc", "#409eff", "#66b1ff"],
padding: [15, 15, 0, 15],
@@ -203,6 +414,78 @@ export default {
}
}
},
forceLineChartOpts: {
color: ["#0066cc", "#409eff", "#66b1ff", "#a0cfff", "#d9ecff", "#ecf5ff"],
padding: [15, 15, 0, 15],
enableScroll: false,
legend: {
show: true,
position: "top",
fontSize: 10,
lineHeight: 14,
itemGap: 6
},
dataLabel: false,
dataPointShape: false,
xAxis: {
disableGrid: true,
rotateLabel: true,
itemCount: 5,
labelCount: 5,
fontSize: 10
},
yAxis: {
gridType: "dash",
dashLength: 4,
gridColor: "#e4e7ed",
showTitle: true,
fontSize: 10,
data: [{ min: 0, title: "轧制力(kN)" }]
},
extra: {
line: {
type: "curve",
width: 2,
activeType: "hollow"
}
}
},
paintLineChartOpts: {
color: ["#0066cc", "#409eff", "#66b1ff", "#a0cfff", "#d9ecff"],
padding: [15, 15, 0, 15],
enableScroll: false,
legend: {
show: true,
position: "top",
fontSize: 10,
lineHeight: 14,
itemGap: 6
},
dataLabel: false,
dataPointShape: false,
xAxis: {
disableGrid: true,
rotateLabel: true,
itemCount: 5,
labelCount: 5,
fontSize: 10
},
yAxis: {
gridType: "dash",
dashLength: 4,
gridColor: "#e4e7ed",
showTitle: true,
fontSize: 10,
data: [{ min: 0, title: "温度(°C)" }]
},
extra: {
line: {
type: "curve",
width: 2,
activeType: "hollow"
}
}
},
plantStateDefines: [] // 缓存所有的状态定义
};
},
@@ -372,6 +655,7 @@ export default {
// 更新所有实时指标
updateCurrentMetrics() {
// ===== 酸轧线数据 =====
// 1. 速度监控ID=1,2,3
const exitSpeed = this.getDefineById(1)
const plSpeed = this.getDefineById(2)
@@ -471,9 +755,67 @@ export default {
unit: tlvElong?.units || '%'
}
]
// ===== 镀锌线数据 =====
// 1. 轧辊速度ID=36-41
this.rollSpeedMetrics = [
{ label: '1#机架', value: this.formatValue(this.getDefineById(36)?.currentValue), unit: this.getDefineById(36)?.units || 'm/min' },
{ label: '2#机架', value: this.formatValue(this.getDefineById(37)?.currentValue), unit: this.getDefineById(37)?.units || 'm/min' },
{ label: '3#机架', value: this.formatValue(this.getDefineById(38)?.currentValue), unit: this.getDefineById(38)?.units || 'm/min' },
{ label: '4#机架', value: this.formatValue(this.getDefineById(39)?.currentValue), unit: this.getDefineById(39)?.units || 'm/min' },
{ label: '5#机架', value: this.formatValue(this.getDefineById(40)?.currentValue), unit: this.getDefineById(40)?.units || 'm/min' },
{ label: '6#机架', value: this.formatValue(this.getDefineById(41)?.currentValue), unit: this.getDefineById(41)?.units || 'm/min' }
]
// 2. 机架压下率ID=24-29
this.reducMetrics = [
{ label: '1#机架', value: this.formatValue(this.getDefineById(24)?.currentValue), unit: this.getDefineById(24)?.units || '%' },
{ label: '2#机架', value: this.formatValue(this.getDefineById(25)?.currentValue), unit: this.getDefineById(25)?.units || '%' },
{ label: '3#机架', value: this.formatValue(this.getDefineById(26)?.currentValue), unit: this.getDefineById(26)?.units || '%' },
{ label: '4#机架', value: this.formatValue(this.getDefineById(27)?.currentValue), unit: this.getDefineById(27)?.units || '%' },
{ label: '5#机架', value: this.formatValue(this.getDefineById(28)?.currentValue), unit: this.getDefineById(28)?.units || '%' },
{ label: '6#机架', value: this.formatValue(this.getDefineById(29)?.currentValue), unit: this.getDefineById(29)?.units || '%' }
]
// 3. 带钢张力ID=42-48
this.tensionMetrics = [
{ label: '0#张力', value: this.formatValue(this.getDefineById(42)?.currentValue), unit: this.getDefineById(42)?.units || 'kN' },
{ label: '1#张力', value: this.formatValue(this.getDefineById(43)?.currentValue), unit: this.getDefineById(43)?.units || 'kN' },
{ label: '2#张力', value: this.formatValue(this.getDefineById(44)?.currentValue), unit: this.getDefineById(44)?.units || 'kN' },
{ label: '3#张力', value: this.formatValue(this.getDefineById(45)?.currentValue), unit: this.getDefineById(45)?.units || 'kN' },
{ label: '4#张力', value: this.formatValue(this.getDefineById(46)?.currentValue), unit: this.getDefineById(46)?.units || 'kN' },
{ label: '5#张力', value: this.formatValue(this.getDefineById(47)?.currentValue), unit: this.getDefineById(47)?.units || 'kN' },
{ label: '6#张力', value: this.formatValue(this.getDefineById(48)?.currentValue), unit: this.getDefineById(48)?.units || 'kN' }
]
// 4. 功率百分比ID=49-54
this.powerMetrics = [
{ label: '1#机架', value: this.formatValue(this.getDefineById(49)?.currentValue), unit: this.getDefineById(49)?.units || '%' },
{ label: '2#机架', value: this.formatValue(this.getDefineById(50)?.currentValue), unit: this.getDefineById(50)?.units || '%' },
{ label: '3#机架', value: this.formatValue(this.getDefineById(51)?.currentValue), unit: this.getDefineById(51)?.units || '%' },
{ label: '4#机架', value: this.formatValue(this.getDefineById(52)?.currentValue), unit: this.getDefineById(52)?.units || '%' },
{ label: '5#机架', value: this.formatValue(this.getDefineById(53)?.currentValue), unit: this.getDefineById(53)?.units || '%' },
{ label: '6#机架', value: this.formatValue(this.getDefineById(54)?.currentValue), unit: this.getDefineById(54)?.units || '%' }
]
// ===== 涂装线数据 =====
// 1. 涂装速度ID=1-3与酸轧线相同
this.paintSpeedMetrics = [
{ label: '出口带钢速度', value: this.formatValue(this.getDefineById(1)?.currentValue), unit: this.getDefineById(1)?.units || 'm/min' },
{ label: '涂装带钢速度', value: this.formatValue(this.getDefineById(2)?.currentValue), unit: this.getDefineById(2)?.units || 'm/min' },
{ label: '圆盘剪速度', value: this.formatValue(this.getDefineById(3)?.currentValue), unit: this.getDefineById(3)?.units || 'm/min' }
]
// 2. 拉矫参数ID=20-23
this.tlvMetrics = [
{ label: '拉矫延伸率', value: this.formatValue(this.getDefineById(20)?.currentValue), unit: this.getDefineById(20)?.units || '%' },
{ label: '破磷机插入量1', value: this.formatValue(this.getDefineById(21)?.currentValue), unit: this.getDefineById(21)?.units || 'mm' },
{ label: '破磷机插入量2', value: this.formatValue(this.getDefineById(22)?.currentValue), unit: this.getDefineById(22)?.units || 'mm' },
{ label: '破磷机插入量3', value: this.formatValue(this.getDefineById(23)?.currentValue), unit: this.getDefineById(23)?.units || 'mm' }
]
},
// 加载温度趋势图3个酸槽温度ID=4,5,6
// 加载历史趋势图数据(温度、出口速度、轧制力
loadTempTrend(isSilent = false) {
return listPlantStateHistory({ pageNum: 1, pageSize: 30 }).then(response => {
if (!isSilent) {
@@ -485,20 +827,39 @@ export default {
const tank1Data = []
const tank2Data = []
const tank3Data = []
const exitSpeedData = []
const force1Data = []
const force2Data = []
const force3Data = []
const force4Data = []
const force5Data = []
const force6Data = []
// 获取温度定义
// 获取定义
const tank1Temp = this.getDefineById(4)
const tank2Temp = this.getDefineById(5)
const tank3Temp = this.getDefineById(6)
const exitSpeed = this.getDefineById(1)
response.rows.forEach(item => {
const dateStr = this.formatDate(item.insdate)
categories.push(dateStr)
tank1Data.push(Number(item.value4) || 0) // ID=4 对应 value4
tank2Data.push(Number(item.value5) || 0) // ID=5 对应 value5
tank3Data.push(Number(item.value6) || 0) // ID=6 对应 value6
// 温度数据
tank1Data.push(Number(item.value4) || 0)
tank2Data.push(Number(item.value5) || 0)
tank3Data.push(Number(item.value6) || 0)
// 出口速度数据
exitSpeedData.push(Number(item.value1) || 0)
// 轧制力数据
force1Data.push(Number(item.value30) || 0)
force2Data.push(Number(item.value31) || 0)
force3Data.push(Number(item.value32) || 0)
force4Data.push(Number(item.value33) || 0)
force5Data.push(Number(item.value34) || 0)
force6Data.push(Number(item.value35) || 0)
})
// 温度趋势
this.tempChartData = {
categories: categories.reverse(),
series: [
@@ -507,12 +868,59 @@ export default {
{ name: tank3Temp?.comments || '3#酸槽温度', data: tank3Data.reverse() }
]
}
// 出口速度趋势
this.exitSpeedChartData = {
categories: categories,
series: [
{ name: exitSpeed?.comments || '出口带钢速度', data: exitSpeedData.reverse() }
]
}
// 轧制力趋势
this.forceChartData = {
categories: categories,
series: [
{ name: '1#轧制力', data: force1Data.reverse() },
{ name: '2#轧制力', data: force2Data.reverse() },
{ name: '3#轧制力', data: force3Data.reverse() },
{ name: '4#轧制力', data: force4Data.reverse() },
{ name: '5#轧制力', data: force5Data.reverse() },
{ name: '6#轧制力', data: force6Data.reverse() }
]
}
// 涂装线温度趋势ID=4-7, 17
const paintTemp1Data = []
const paintTemp2Data = []
const paintTemp3Data = []
const paintTemp4Data = []
const paintTemp5Data = []
response.rows.forEach(item => {
paintTemp1Data.push(Number(item.value4) || 0) // ID=4
paintTemp2Data.push(Number(item.value5) || 0) // ID=5
paintTemp3Data.push(Number(item.value6) || 0) // ID=6
paintTemp4Data.push(Number(item.value7) || 0) // ID=7
paintTemp5Data.push(Number(item.value17) || 0) // ID=17
})
this.paintTempChartData = {
categories: categories,
series: [
{ name: '1#酸槽温度', data: paintTemp1Data.reverse() },
{ name: '2#酸槽温度', data: paintTemp2Data.reverse() },
{ name: '3#酸槽温度', data: paintTemp3Data.reverse() },
{ name: '漂洗温度', data: paintTemp4Data.reverse() },
{ name: '烘干温度', data: paintTemp5Data.reverse() }
]
}
}
}).catch(error => {
if (!isSilent) {
uni.hideLoading()
}
console.error('加载温度趋势失败:', error)
console.error('加载历史趋势失败:', error)
})
},
@@ -536,6 +944,12 @@ export default {
const num = Number(value)
if (isNaN(num)) return '—'
return num.toFixed(2)
},
// 滚动到指定部分
scrollToSection(sectionId) {
this.scrollIntoView = sectionId
this.navMenuExpanded = false // 点击后关闭菜单
}
}
};
@@ -606,6 +1020,84 @@ export default {
}
}
/* 快速导航菜单(固定在左下角) */
.nav-menu-fixed {
position: fixed;
left: 32rpx;
bottom: 120rpx;
z-index: 998;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 12rpx;
}
.nav-toggle {
width: 96rpx;
height: 96rpx;
background: #409eff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 8rpx 20rpx rgba(64, 158, 255, 0.4);
transition: all 0.3s ease;
&:active {
opacity: 0.8;
transform: scale(0.95);
}
}
.nav-toggle-icon {
font-size: 48rpx;
color: #fff;
display: block;
line-height: 1;
}
.nav-items {
display: flex;
flex-direction: column;
gap: 8rpx;
animation: slideUp 0.3s ease;
}
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(20rpx);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.nav-item {
background: #fff;
border: 2rpx solid #409eff;
border-radius: 8rpx;
padding: 16rpx 24rpx;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4rpx 12rpx rgba(64, 158, 255, 0.2);
transition: all 0.2s ease;
&:active {
background: #f0f9ff;
transform: scale(0.95);
}
}
.nav-label {
font-size: 26rpx;
color: #409eff;
font-weight: 500;
white-space: nowrap;
}
.refresh-icon {
font-size: 48rpx;
color: #fff;
@@ -699,6 +1191,24 @@ export default {
border-left: 4rpx solid #0066cc;
}
/* 分隔符 */
.section-divider {
display: flex;
align-items: center;
margin: 40rpx 0 24rpx 0;
padding: 0 16rpx;
}
.divider-text {
font-size: 28rpx;
font-weight: 600;
color: #0066cc;
padding: 0 12rpx;
background: #f5f7fa;
border-left: 4rpx solid #0066cc;
padding-left: 16rpx;
}
/* 指标卡片 - 3列布局 */
.metrics-grid-3 {
display: grid;

View File

@@ -20,78 +20,11 @@
</view>
<scroll-view scroll-y class="scroll-container" v-if="currentTab === 1">
<!-- 顶部状态栏 -->
<view class="status-bar">
<view class="status-item">
<text class="status-label">网络状态</text>
<text class="status-value" :class="'status-' + webStatus[0].value">{{ webStatus[0].value }}</text>
</view>
<view class="status-divider"></view>
<view class="status-item">
<text class="status-label">当前班组</text>
<text class="status-value">{{ webStatus[1].value }}</text>
</view>
<view class="status-divider"></view>
<view class="status-item">
<text class="status-label">更新时间</text>
<text class="status-value status-time">{{ lastUpdateTime }}</text>
</view>
</view>
<!-- 涂装速度监控 -->
<view class="section">
<view class="section-title">涂装速度监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in speedMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 烘干温度趋势 -->
<view class="section">
<view class="section-title">烘干温度趋势</view>
<view class="chart-box">
<qiun-data-charts type="line" :chartData="tempChartData" :opts="lineChartOpts" />
</view>
</view>
<!-- 活套状态 -->
<view class="section">
<view class="section-title">活套运行状态</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in looperMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 工艺参数监控 -->
<view class="section">
<view class="section-title">工艺参数</view>
<view class="metrics-grid-2">
<view class="metric-box" v-for="(item, index) in processMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 拉矫参数 -->
<view class="section">
<view class="section-title">拉矫参数</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in tlvMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
<!-- 未启用提示 -->
<view class="disabled-container">
<view class="disabled-icon">🔒</view>
<view class="disabled-title">该功能未启用</view>
<view class="disabled-desc">涂装线实时监控功能暂未启用请联系管理员</view>
</view>
</scroll-view>
@@ -629,4 +562,34 @@ export default {
border-radius: 8rpx;
padding: 24rpx 16rpx;
}
/* 未启用容器 */
.disabled-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: calc(100vh - 200rpx);
padding: 40rpx;
text-align: center;
}
.disabled-icon {
font-size: 120rpx;
margin-bottom: 32rpx;
opacity: 0.6;
}
.disabled-title {
font-size: 32rpx;
font-weight: 600;
color: #303133;
margin-bottom: 16rpx;
}
.disabled-desc {
font-size: 26rpx;
color: #909399;
line-height: 1.6;
}
</style>

View File

@@ -20,78 +20,11 @@
</view>
<scroll-view scroll-y class="scroll-container" v-if="currentTab === 1">
<!-- 顶部状态栏 -->
<view class="status-bar">
<view class="status-item">
<text class="status-label">网络状态</text>
<text class="status-value" :class="'status-' + webStatus[0].value">{{ webStatus[0].value }}</text>
</view>
<view class="status-divider"></view>
<view class="status-item">
<text class="status-label">当前班组</text>
<text class="status-value">{{ webStatus[1].value }}</text>
</view>
<view class="status-divider"></view>
<view class="status-item">
<text class="status-label">更新时间</text>
<text class="status-value status-time">{{ lastUpdateTime }}</text>
</view>
</view>
<!-- 轧机速度监控 -->
<view class="section">
<view class="section-title">轧机速度监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in rollSpeedMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 机架压下率 -->
<view class="section">
<view class="section-title">机架压下率</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in reducMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 轧制力趋势 -->
<view class="section">
<view class="section-title">轧制力趋势</view>
<view class="chart-box">
<qiun-data-charts type="line" :chartData="forceChartData" :opts="lineChartOpts" />
</view>
</view>
<!-- 带钢张力 -->
<view class="section">
<view class="section-title">带钢张力监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in tensionMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 功率百分比 -->
<view class="section">
<view class="section-title">机架功率百分比</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in powerMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
<!-- 未启用提示 -->
<view class="disabled-container">
<view class="disabled-icon">🔒</view>
<view class="disabled-title">该功能未启用</view>
<view class="disabled-desc">镀锌线1实时监控功能暂未启用请联系管理员</view>
</view>
</scroll-view>
@@ -629,4 +562,34 @@ export default {
border-radius: 8rpx;
padding: 24rpx 16rpx;
}
/* 未启用容器 */
.disabled-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: calc(100vh - 200rpx);
padding: 40rpx;
text-align: center;
}
.disabled-icon {
font-size: 120rpx;
margin-bottom: 32rpx;
opacity: 0.6;
}
.disabled-title {
font-size: 32rpx;
font-weight: 600;
color: #303133;
margin-bottom: 16rpx;
}
.disabled-desc {
font-size: 26rpx;
color: #909399;
line-height: 1.6;
}
</style>

View File

@@ -20,78 +20,11 @@
</view>
<scroll-view scroll-y class="scroll-container" v-if="currentTab === 1">
<!-- 顶部状态栏 -->
<view class="status-bar">
<view class="status-item">
<text class="status-label">网络状态</text>
<text class="status-value" :class="'status-' + webStatus[0].value">{{ webStatus[0].value }}</text>
</view>
<view class="status-divider"></view>
<view class="status-item">
<text class="status-label">当前班组</text>
<text class="status-value">{{ webStatus[1].value }}</text>
</view>
<view class="status-divider"></view>
<view class="status-item">
<text class="status-label">更新时间</text>
<text class="status-value status-time">{{ lastUpdateTime }}</text>
</view>
</view>
<!-- 轧机速度监控 -->
<view class="section">
<view class="section-title">轧机速度监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in rollSpeedMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 机架压下率 -->
<view class="section">
<view class="section-title">机架压下率</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in reducMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 轧制力趋势 -->
<view class="section">
<view class="section-title">轧制力趋势</view>
<view class="chart-box">
<qiun-data-charts type="line" :chartData="forceChartData" :opts="lineChartOpts" />
</view>
</view>
<!-- 带钢张力 -->
<view class="section">
<view class="section-title">带钢张力监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in tensionMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 功率百分比 -->
<view class="section">
<view class="section-title">机架功率百分比</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in powerMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
<!-- 未启用提示 -->
<view class="disabled-container">
<view class="disabled-icon">🔒</view>
<view class="disabled-title">该功能未启用</view>
<view class="disabled-desc">镀锌线2实时监控功能暂未启用请联系管理员</view>
</view>
</scroll-view>
@@ -629,4 +562,34 @@ export default {
border-radius: 8rpx;
padding: 24rpx 16rpx;
}
/* 未启用容器 */
.disabled-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: calc(100vh - 200rpx);
padding: 40rpx;
text-align: center;
}
.disabled-icon {
font-size: 120rpx;
margin-bottom: 32rpx;
opacity: 0.6;
}
.disabled-title {
font-size: 32rpx;
font-weight: 600;
color: #303133;
margin-bottom: 16rpx;
}
.disabled-desc {
font-size: 26rpx;
color: #909399;
line-height: 1.6;
}
</style>

View File

@@ -20,78 +20,11 @@
</view>
<scroll-view scroll-y class="scroll-container" v-if="currentTab === 1">
<!-- 顶部状态栏 -->
<view class="status-bar">
<view class="status-item">
<text class="status-label">网络状态</text>
<text class="status-value" :class="'status-' + webStatus[0].value">{{ webStatus[0].value }}</text>
</view>
<view class="status-divider"></view>
<view class="status-item">
<text class="status-label">当前班组</text>
<text class="status-value">{{ webStatus[1].value }}</text>
</view>
<view class="status-divider"></view>
<view class="status-item">
<text class="status-label">更新时间</text>
<text class="status-value status-time">{{ lastUpdateTime }}</text>
</view>
</view>
<!-- 轧机速度监控 -->
<view class="section">
<view class="section-title">轧机速度监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in rollSpeedMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 机架压下率 -->
<view class="section">
<view class="section-title">机架压下率</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in reducMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 轧制力趋势 -->
<view class="section">
<view class="section-title">轧制力趋势</view>
<view class="chart-box">
<qiun-data-charts type="line" :chartData="forceChartData" :opts="lineChartOpts" />
</view>
</view>
<!-- 带钢张力 -->
<view class="section">
<view class="section-title">带钢张力监控</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in tensionMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
</view>
<!-- 功率百分比 -->
<view class="section">
<view class="section-title">机架功率百分比</view>
<view class="metrics-grid-3">
<view class="metric-box" v-for="(item, index) in powerMetrics" :key="index">
<text class="metric-name">{{ item.label }}</text>
<text class="metric-value">{{ item.value }}</text>
<text class="metric-unit">{{ item.unit }}</text>
</view>
</view>
<!-- 未启用提示 -->
<view class="disabled-container">
<view class="disabled-icon">🔒</view>
<view class="disabled-title">该功能未启用</view>
<view class="disabled-desc">镀锌线3实时监控功能暂未启用请联系管理员</view>
</view>
</scroll-view>
@@ -629,4 +562,34 @@ export default {
border-radius: 8rpx;
padding: 24rpx 16rpx;
}
/* 未启用容器 */
.disabled-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: calc(100vh - 200rpx);
padding: 40rpx;
text-align: center;
}
.disabled-icon {
font-size: 120rpx;
margin-bottom: 32rpx;
opacity: 0.6;
}
.disabled-title {
font-size: 32rpx;
font-weight: 600;
color: #303133;
margin-bottom: 16rpx;
}
.disabled-desc {
font-size: 26rpx;
color: #909399;
line-height: 1.6;
}
</style>