style(ui): 更新组件颜色主题为浅色模式
修改多个组件的颜色变量和背景色,从深色主题调整为浅色主题 更新图表组件背景色和文本颜色,优化Y轴范围计算 调整主页标题样式和卡片组件颜色
This commit is contained in:
@@ -113,22 +113,27 @@ export default {
|
|||||||
|
|
||||||
// 根据当前图表类型获取配置
|
// 根据当前图表类型获取配置
|
||||||
getChartOption() {
|
getChartOption() {
|
||||||
|
// 计算Y轴的合适范围,使数据变化更明显
|
||||||
|
const yAxisRange = this.calculateYAxisRange();
|
||||||
|
|
||||||
const baseOption = {
|
const baseOption = {
|
||||||
backgroundColor: 'transparent',
|
backgroundColor: '#ffffff', // 图表背景色改为白色
|
||||||
tooltip: { trigger: 'axis' },
|
tooltip: { trigger: 'axis' },
|
||||||
grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
|
grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true },
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
boundaryGap: false,
|
boundaryGap: false,
|
||||||
data: this.chartData[this.currentChart].time,
|
data: this.chartData[this.currentChart].time,
|
||||||
axisLine: { lineStyle: { color: '#666' } },
|
axisLine: { lineStyle: { color: '#999' } },
|
||||||
axisLabel: { color: '#b0b0b0' }
|
axisLabel: { color: '#666' }
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value',
|
type: 'value',
|
||||||
axisLine: { lineStyle: { color: '#666' } },
|
min: yAxisRange.min,
|
||||||
axisLabel: { color: '#b0b0b0' },
|
max: yAxisRange.max,
|
||||||
splitLine: { lineStyle: { color: 'rgba(255, 255, 255, 0.1)' } }
|
axisLine: { lineStyle: { color: '#999' } },
|
||||||
|
axisLabel: { color: '#666' },
|
||||||
|
splitLine: { lineStyle: { color: 'rgba(0, 0, 0, 0.05)' } }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -139,7 +144,7 @@ export default {
|
|||||||
...baseOption,
|
...baseOption,
|
||||||
legend: {
|
legend: {
|
||||||
data: ['入口张力1', '入口张力2', '入口张力3', '带钢速度'],
|
data: ['入口张力1', '入口张力2', '入口张力3', '带钢速度'],
|
||||||
textStyle: { color: '#e0e0e0' }
|
textStyle: { color: '#333' }
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{ name: '入口张力1', type: 'line', data: this.chartData.entry.tensionPorBr1, smooth: true, lineStyle: { width: 2 } },
|
{ name: '入口张力1', type: 'line', data: this.chartData.entry.tensionPorBr1, smooth: true, lineStyle: { width: 2 } },
|
||||||
@@ -154,7 +159,7 @@ export default {
|
|||||||
...baseOption,
|
...baseOption,
|
||||||
legend: {
|
legend: {
|
||||||
data: ['PH炉实际温度', 'NOF1炉实际温度', 'NOF1炉设定温度'],
|
data: ['PH炉实际温度', 'NOF1炉实际温度', 'NOF1炉设定温度'],
|
||||||
textStyle: { color: '#e0e0e0' }
|
textStyle: { color: '#333' }
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{ name: 'PH炉实际温度', type: 'line', data: this.chartData.furnace.phFurnaceTemperatureActual, smooth: true, lineStyle: { width: 2 } },
|
{ name: 'PH炉实际温度', type: 'line', data: this.chartData.furnace.phFurnaceTemperatureActual, smooth: true, lineStyle: { width: 2 } },
|
||||||
@@ -168,7 +173,7 @@ export default {
|
|||||||
...baseOption,
|
...baseOption,
|
||||||
legend: {
|
legend: {
|
||||||
data: ['顶部平均涂层重量', '底部平均涂层重量', '气刀压力', '出口速度'],
|
data: ['顶部平均涂层重量', '底部平均涂层重量', '气刀压力', '出口速度'],
|
||||||
textStyle: { color: '#e0e0e0' }
|
textStyle: { color: '#333' }
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{ name: '顶部平均涂层重量', type: 'line', data: this.chartData.coat.avrCoatingWeightTop, smooth: true, lineStyle: { width: 2 } },
|
{ name: '顶部平均涂层重量', type: 'line', data: this.chartData.coat.avrCoatingWeightTop, smooth: true, lineStyle: { width: 2 } },
|
||||||
@@ -183,7 +188,7 @@ export default {
|
|||||||
...baseOption,
|
...baseOption,
|
||||||
legend: {
|
legend: {
|
||||||
data: ['出口张力1', '出口张力2', '出口速度'],
|
data: ['出口张力1', '出口张力2', '出口速度'],
|
||||||
textStyle: { color: '#e0e0e0' }
|
textStyle: { color: '#333' }
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{ name: '出口张力1', type: 'line', data: this.chartData.exit.tensionBr8Br9, smooth: true, lineStyle: { width: 2 } },
|
{ name: '出口张力1', type: 'line', data: this.chartData.exit.tensionBr8Br9, smooth: true, lineStyle: { width: 2 } },
|
||||||
@@ -197,6 +202,46 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 计算Y轴的合适范围,避免从0开始导致变化不明显
|
||||||
|
calculateYAxisRange() {
|
||||||
|
const chartData = this.chartData[this.currentChart];
|
||||||
|
let allValues = [];
|
||||||
|
|
||||||
|
// 收集当前图表类型的所有数据点
|
||||||
|
Object.keys(chartData).forEach(key => {
|
||||||
|
if (key !== 'time' && Array.isArray(chartData[key])) {
|
||||||
|
allValues = allValues.concat(chartData[key].filter(val => val !== null && val !== undefined));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 如果没有数据,使用默认范围
|
||||||
|
if (allValues.length === 0) {
|
||||||
|
return { min: 0, max: 100 };
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算数据的最小值和最大值
|
||||||
|
const minVal = Math.min(...allValues);
|
||||||
|
const maxVal = Math.max(...allValues);
|
||||||
|
|
||||||
|
// 计算数据范围
|
||||||
|
const range = maxVal - minVal;
|
||||||
|
|
||||||
|
// 如果所有值都相同,添加一些范围使图表可见
|
||||||
|
if (range === 0) {
|
||||||
|
return {
|
||||||
|
min: minVal - 10,
|
||||||
|
max: maxVal + 10
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加10%的边距,使图表更美观
|
||||||
|
const padding = range * 0.1;
|
||||||
|
return {
|
||||||
|
min: minVal - padding,
|
||||||
|
max: maxVal + padding
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
// 处理窗口大小变化
|
// 处理窗口大小变化
|
||||||
handleWindowResize() {
|
handleWindowResize() {
|
||||||
if (this.chartInstance) {
|
if (this.chartInstance) {
|
||||||
@@ -350,8 +395,15 @@ export default {
|
|||||||
// 更新当前显示的图表
|
// 更新当前显示的图表
|
||||||
updateCurrentChart() {
|
updateCurrentChart() {
|
||||||
if (this.chartInstance) {
|
if (this.chartInstance) {
|
||||||
|
// 重新计算Y轴范围
|
||||||
|
const yAxisRange = this.calculateYAxisRange();
|
||||||
|
|
||||||
this.chartInstance.setOption({
|
this.chartInstance.setOption({
|
||||||
xAxis: { data: this.chartData[this.currentChart].time },
|
xAxis: { data: this.chartData[this.currentChart].time },
|
||||||
|
yAxis: {
|
||||||
|
min: yAxisRange.min,
|
||||||
|
max: yAxisRange.max
|
||||||
|
},
|
||||||
series: this.getSeriesData()
|
series: this.getSeriesData()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -402,8 +454,8 @@ export default {
|
|||||||
.process-monitor {
|
.process-monitor {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
font-family: Arial, sans-serif;
|
font-family: Arial, sans-serif;
|
||||||
background-color: #3f4449;
|
background-color: #ffffff; /* 根容器背景改为白色 */
|
||||||
color: #e0e0e0;
|
color: #333333; /* 文本颜色改为深色 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.control-bar {
|
.control-bar {
|
||||||
@@ -412,11 +464,13 @@ export default {
|
|||||||
gap: 20px;
|
gap: 20px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-bottom: 1px solid #eeeeee; /* 添加分隔线 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-selector {
|
.chart-selector {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
background-color: #4a4f55;
|
background-color: #f8f8f8; /* 选择器背景改为浅灰 */
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -424,49 +478,58 @@ export default {
|
|||||||
|
|
||||||
.chart-selector label {
|
.chart-selector label {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
color: #e0e0e0;
|
color: #555555; /* 标签颜色改为深灰 */
|
||||||
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-selector select {
|
.chart-selector select {
|
||||||
padding: 5px 10px;
|
padding: 6px 12px;
|
||||||
border: 1px solid #5d6268;
|
border: 1px solid #dddddd; /* 边框改为浅灰 */
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
background-color: #555a60;
|
background-color: #ffffff; /* 选择框背景改为白色 */
|
||||||
color: #e0e0e0;
|
color: #333333; /* 选择框文本改为深色 */
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
transition: border-color 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chart-selector select:focus {
|
||||||
|
outline: none;
|
||||||
|
border-color: #999999; /* 聚焦时边框加深 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.connection-status {
|
.connection-status {
|
||||||
padding: 8px 10px;
|
padding: 8px 12px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
background-color: #4a4f55;
|
background-color: #f8f8f8; /* 状态背景改为浅灰 */
|
||||||
color: #ffd700;
|
color: #e6a23c; /* 连接中颜色(橙色系) */
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.connection-status.connected {
|
.connection-status.connected {
|
||||||
color: #32cd32;
|
color: #67c23a; /* 已连接颜色(绿色系) */
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-container {
|
.chart-container {
|
||||||
background-color: #4a4f55;
|
background-color: #ffffff; /* 图表容器背景改为白色 */
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); /* 阴影变浅 */
|
||||||
padding: 15px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-title {
|
.chart-title {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
color: #f0f0f0;
|
color: #333333; /* 标题颜色改为深色 */
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
border-bottom: 1px solid #5d6268;
|
border-bottom: 1px solid #eeeeee; /* 分隔线改为浅灰 */
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart {
|
.chart {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 400px; /* 增大图表高度提升可读性 */
|
height: 400px; /* 保持图表高度 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 响应式调整 */
|
/* 响应式调整 */
|
||||||
|
|||||||
@@ -52,12 +52,12 @@ export default {
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
// 主题色变量(建议提取为全局变量,此处暂与父页面保持一致)
|
// 主题色变量(建议提取为全局变量,此处暂与父页面保持一致)
|
||||||
$theme-primary: #a7acb4;
|
$theme-primary: #a7acb4;
|
||||||
$theme-text-gray: #c9cdcf;
|
$theme-text-gray: #a1a6af;
|
||||||
|
|
||||||
// 仅维护组件自身样式,无定位属性
|
// 仅维护组件自身样式,无定位属性
|
||||||
.current-time {
|
.current-time {
|
||||||
padding: 1.2vw 1.8vw;
|
padding: 1.2vw 1.8vw;
|
||||||
background: rgba(26, 29, 33, 0.6);
|
background: white;
|
||||||
backdrop-filter: blur(8px);
|
backdrop-filter: blur(8px);
|
||||||
border: 1px solid rgba(167, 172, 180, 0.3);
|
border: 1px solid rgba(167, 172, 180, 0.3);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
<div class="header-section">
|
<div class="header-section">
|
||||||
<div class="tech-logo">
|
<div class="tech-logo">
|
||||||
<div class="logo-shape"></div>
|
<div class="logo-shape"></div>
|
||||||
<h1>KLP <span class="highlight">VISION</span></h1>
|
<h1><span class="highlight">KLP VISION</span></h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="main-title">
|
<div class="main-title">
|
||||||
<h2>探索生产与信息的无限可能</h2>
|
<p>探索生产与信息的无限可能</p>
|
||||||
<p class="subtitle">创新 · 科技 · 未来</p>
|
<p class="subtitle">创新 · 科技 · 未来</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<svg-icon :icon-class="card.icon"></svg-icon>
|
<svg-icon :icon-class="card.icon"></svg-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-info">
|
<div class="card-info">
|
||||||
<h3>{{ card.title }}</h3>
|
<h4>{{ card.title }}</h4>
|
||||||
<!-- <p>{{ card.desc }}</p> -->
|
<!-- <p>{{ card.desc }}</p> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="card-glow"></div>
|
<div class="card-glow"></div>
|
||||||
@@ -56,8 +56,8 @@ export default {
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
// 主题色变量
|
// 主题色变量
|
||||||
$theme-primary: #a7acb4;
|
$theme-primary: #a7acb4;
|
||||||
$theme-light: rgba(167, 172, 180, 0.8);
|
$theme-light: #a7acb4;
|
||||||
$theme-dark: rgba(140, 145, 153, 0.8);
|
$theme-dark: #a7acb4;
|
||||||
$theme-text-light: #f0f0f0;
|
$theme-text-light: #f0f0f0;
|
||||||
$theme-text-gray: #c9cdcf;
|
$theme-text-gray: #c9cdcf;
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ $theme-text-gray: #c9cdcf;
|
|||||||
position: relative;
|
position: relative;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding: 10px 12px;
|
padding: 10px 12px;
|
||||||
background: rgba(26, 29, 33, 0.5);
|
background: rgba(255, 255, 255, 0.05);
|
||||||
backdrop-filter: blur(6px);
|
backdrop-filter: blur(6px);
|
||||||
border: 1px solid rgba(167, 172, 180, 0.2);
|
border: 1px solid rgba(167, 172, 180, 0.2);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
@@ -172,10 +172,11 @@ $theme-text-gray: #c9cdcf;
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
color: #111;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
transform: translateY(-3px);
|
transform: translateY(-3px);
|
||||||
background: rgba(26, 29, 33, 0.7);
|
// background: rgba(26, 29, 33, 0.7);
|
||||||
box-shadow: 0 4px 12px rgba(167, 172, 180, 0.3);
|
box-shadow: 0 4px 12px rgba(167, 172, 180, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,12 +192,14 @@ $theme-text-gray: #c9cdcf;
|
|||||||
|
|
||||||
i {
|
i {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: $theme-primary;
|
// color: $theme-primary;
|
||||||
|
color: #111;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-info {
|
.card-info {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
color: #111;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ export default {
|
|||||||
cellStyle() {
|
cellStyle() {
|
||||||
return {
|
return {
|
||||||
'font-size': '12px',
|
'font-size': '12px',
|
||||||
'color': '#fff',
|
'color': '#111',
|
||||||
'background': 'transparent',
|
'background': 'transparent',
|
||||||
'border-bottom': '1px solid rgba(255, 255, 255, 0.1)',
|
'border-bottom': '1px solid rgba(255, 255, 255, 0.1)',
|
||||||
'white-space': 'nowrap',
|
'white-space': 'nowrap',
|
||||||
@@ -71,7 +71,7 @@ export default {
|
|||||||
headerCellStyle() {
|
headerCellStyle() {
|
||||||
return {
|
return {
|
||||||
'font-size': '12px',
|
'font-size': '12px',
|
||||||
'color': '#fff',
|
'color': '#111',
|
||||||
'font-weight': '500',
|
'font-weight': '500',
|
||||||
'background': 'rgba(255, 255, 255, 0.05)',
|
'background': 'rgba(255, 255, 255, 0.05)',
|
||||||
'border-bottom': '1px solid rgba(255, 255, 255, 0.1)',
|
'border-bottom': '1px solid rgba(255, 255, 255, 0.1)',
|
||||||
|
|||||||
@@ -94,14 +94,14 @@ export default {
|
|||||||
|
|
||||||
.card-title {
|
.card-title {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: rgba(255, 255, 255, 0.8);
|
color: #000;
|
||||||
margin-bottom: 6px;
|
margin-bottom: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-value {
|
.card-value {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #ffffff;
|
color: #111;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<knova-stage @rectClick="selectCard" :matMapList="matMapList"></knova-stage>
|
<knova-stage @rectClick="selectCard" :matMapList="matMapList"></knova-stage>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div style="border: 1px solid #000; padding: 10px; border-radius: 10px; color: white; margin-bottom: 10px;">
|
<div style="border: 1px solid #000; padding: 10px; border-radius: 10px; color: black; margin-bottom: 10px;">
|
||||||
<!-- 调整工具,选择两个位置,两个下拉选,分别双向绑定 -->
|
<!-- 调整工具,选择两个位置,两个下拉选,分别双向绑定 -->
|
||||||
<el-form :model="adjustForm" ref="adjustForm" label-width="80px">
|
<el-form :model="adjustForm" ref="adjustForm" label-width="80px">
|
||||||
<el-form-item label="当前位置" prop="current">
|
<el-form-item label="当前位置" prop="current">
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
<el-button type="primary" :disabled="!adjustForm.current || !adjustForm.target" @click="handleConfirmAdjust">确认调整</el-button>
|
<el-button type="primary" :disabled="!adjustForm.current || !adjustForm.target" @click="handleConfirmAdjust">确认调整</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="border: 1px solid #000; padding: 10px; border-radius: 10px; color: white; margin-bottom: 10px;">
|
<div style="border: 1px solid #000; padding: 10px; border-radius: 10px; color: black; margin-bottom: 10px;">
|
||||||
<el-row v-if="selectedCard">
|
<el-row v-if="selectedCard">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<div class="detail-item">
|
<div class="detail-item">
|
||||||
|
|||||||
Reference in New Issue
Block a user