|
|
@@ -496,10 +496,10 @@ let refreshTimer: ReturnType<typeof setInterval> | null = null
|
|
|
/** 指标/告警自动刷新间隔(可研:实时刷新) */
|
|
|
const DASHBOARD_REFRESH_MS = 30_000
|
|
|
|
|
|
-/** 图表主色:暖金政务 */
|
|
|
-const CHART_COLOR = '#c9a66e'
|
|
|
-const CHART_COLORS = ['#c9a66e', '#8b9d7a', '#d4a06a', '#b08a6a', '#9a8b7a']
|
|
|
-const CHART_COLOR_GREEN = '#8b9d7a'
|
|
|
+/** 图表主色:政务蓝行政台 */
|
|
|
+const CHART_COLOR = '#2B73F8'
|
|
|
+const CHART_COLORS = ['#2B73F8', '#27C98E', '#FA8C16', '#722ED1', '#1890FF']
|
|
|
+const CHART_COLOR_GREEN = '#27C98E'
|
|
|
|
|
|
const userStore = useUserStore()
|
|
|
/** shallowRef:整包替换工作台数据,避免深层响应拖慢图表重算 */
|
|
|
@@ -837,8 +837,8 @@ function buildBarOption(
|
|
|
yName: string,
|
|
|
valueFormatter?: (v: unknown) => string,
|
|
|
barColorStops = [
|
|
|
- { offset: 0, color: '#d4b07a' },
|
|
|
- { offset: 1, color: '#c9a66e' },
|
|
|
+ { offset: 0, color: '#4A8AFF' },
|
|
|
+ { offset: 1, color: '#2B73F8' },
|
|
|
],
|
|
|
): EChartsCoreOption {
|
|
|
return {
|
|
|
@@ -846,7 +846,7 @@ function buildBarOption(
|
|
|
tooltip: {
|
|
|
trigger: 'axis',
|
|
|
backgroundColor: 'rgba(255,255,255,0.96)',
|
|
|
- borderColor: '#e8e0d0',
|
|
|
+ borderColor: '#d6e4ff',
|
|
|
textStyle: { color: '#333', fontSize: 12 },
|
|
|
valueFormatter,
|
|
|
},
|
|
|
@@ -945,11 +945,11 @@ const roleBarOption = computed(() =>
|
|
|
const batchCompareOption = computed<EChartsCoreOption>(() => {
|
|
|
const list = data.value?.batchCompareChart ?? []
|
|
|
return {
|
|
|
- color: [CHART_COLOR, '#8b7355'],
|
|
|
+ color: [CHART_COLOR, '#1A56C4'],
|
|
|
tooltip: {
|
|
|
trigger: 'axis',
|
|
|
backgroundColor: 'rgba(255,255,255,0.96)',
|
|
|
- borderColor: '#e8e0d0',
|
|
|
+ borderColor: '#d6e4ff',
|
|
|
textStyle: { color: '#333', fontSize: 12 },
|
|
|
},
|
|
|
legend: {
|
|
|
@@ -1000,8 +1000,8 @@ const batchCompareOption = computed<EChartsCoreOption>(() => {
|
|
|
x2: 0,
|
|
|
y2: 1,
|
|
|
colorStops: [
|
|
|
- { offset: 0, color: '#d4b07a' },
|
|
|
- { offset: 1, color: '#c9a66e' },
|
|
|
+ { offset: 0, color: '#4A8AFF' },
|
|
|
+ { offset: 1, color: '#2B73F8' },
|
|
|
],
|
|
|
},
|
|
|
},
|
|
|
@@ -1014,8 +1014,8 @@ const batchCompareOption = computed<EChartsCoreOption>(() => {
|
|
|
smooth: true,
|
|
|
symbol: 'circle',
|
|
|
symbolSize: 7,
|
|
|
- lineStyle: { width: 2, color: '#8b7355' },
|
|
|
- itemStyle: { color: '#8b7355', borderWidth: 2, borderColor: '#fff' },
|
|
|
+ lineStyle: { width: 2, color: '#1A56C4' },
|
|
|
+ itemStyle: { color: '#1A56C4', borderWidth: 2, borderColor: '#fff' },
|
|
|
data: list.map((i) => i.count ?? 0),
|
|
|
},
|
|
|
],
|
|
|
@@ -1032,7 +1032,7 @@ function buildPieOption(
|
|
|
trigger: 'item',
|
|
|
formatter: '{b}: {c} ({d}%)',
|
|
|
backgroundColor: 'rgba(255,255,255,0.96)',
|
|
|
- borderColor: '#e8e0d0',
|
|
|
+ borderColor: '#d6e4ff',
|
|
|
textStyle: { color: '#333', fontSize: 12 },
|
|
|
},
|
|
|
legend: {
|
|
|
@@ -1060,7 +1060,7 @@ function buildPieOption(
|
|
|
itemStyle: { borderColor: '#fff', borderWidth: 2 },
|
|
|
emphasis: {
|
|
|
scaleSize: 4,
|
|
|
- itemStyle: { shadowBlur: 8, shadowColor: 'rgba(201,166,110,0.35)' },
|
|
|
+ itemStyle: { shadowBlur: 8, shadowColor: 'rgba(43,115,248,0.35)' },
|
|
|
},
|
|
|
},
|
|
|
],
|
|
|
@@ -1116,8 +1116,8 @@ const districtWithoutLandOption = computed(() =>
|
|
|
'人数(人)',
|
|
|
(v) => `${Number(v).toLocaleString('zh-CN')} 人`,
|
|
|
[
|
|
|
- { offset: 0, color: '#d4b07a' },
|
|
|
- { offset: 1, color: '#c9a66e' },
|
|
|
+ { offset: 0, color: '#4A8AFF' },
|
|
|
+ { offset: 1, color: '#2B73F8' },
|
|
|
],
|
|
|
),
|
|
|
)
|
|
|
@@ -1251,7 +1251,7 @@ watch(
|
|
|
padding: 6px 10px;
|
|
|
background: #fff8ef;
|
|
|
border: 1px solid @border-light;
|
|
|
- border-left: 3px solid #c9a66e;
|
|
|
+ border-left: 3px solid #2B73F8;
|
|
|
|
|
|
&__label {
|
|
|
display: inline-flex;
|
|
|
@@ -1521,7 +1521,7 @@ watch(
|
|
|
font-weight: 700;
|
|
|
color: #fff;
|
|
|
background: linear-gradient(145deg, @brand-gold-deep 0%, @primary-color 100%);
|
|
|
- box-shadow: 0 1px 3px rgba(139, 115, 85, 0.28);
|
|
|
+ box-shadow: 0 1px 3px rgba(43, 115, 248, 0.28);
|
|
|
}
|
|
|
|
|
|
&__line {
|
|
|
@@ -1529,7 +1529,7 @@ watch(
|
|
|
width: 2px;
|
|
|
margin: 4px 0 2px;
|
|
|
min-height: 12px;
|
|
|
- background: linear-gradient(180deg, rgba(201, 166, 110, 0.55), rgba(201, 166, 110, 0.12));
|
|
|
+ background: linear-gradient(180deg, rgba(43, 115, 248, 0.55), rgba(43, 115, 248, 0.12));
|
|
|
border-radius: 1px;
|
|
|
}
|
|
|
|
|
|
@@ -1541,15 +1541,15 @@ watch(
|
|
|
gap: 4px;
|
|
|
padding: 12px 14px;
|
|
|
margin-bottom: 10px;
|
|
|
- background: linear-gradient(135deg, #fbf8f2 0%, #f7f1e6 100%);
|
|
|
- border: 1px solid #efe6d6;
|
|
|
+ background: linear-gradient(135deg, #f5f9ff 0%, #eef4ff 100%);
|
|
|
+ border: 1px solid #d6e4ff;
|
|
|
border-left: 3px solid @primary-color;
|
|
|
border-radius: 0 @radius-sm @radius-sm 0;
|
|
|
transition: border-color 0.15s, background 0.15s;
|
|
|
|
|
|
&:hover {
|
|
|
- background: linear-gradient(135deg, #fff 0%, #f7f1e6 100%);
|
|
|
- border-color: rgba(201, 166, 110, 0.65);
|
|
|
+ background: linear-gradient(135deg, #fff 0%, #eef4ff 100%);
|
|
|
+ border-color: rgba(43, 115, 248, 0.65);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1584,8 +1584,8 @@ watch(
|
|
|
justify-content: space-between;
|
|
|
gap: 12px;
|
|
|
padding: 12px 16px;
|
|
|
- background: linear-gradient(90deg, #f7f1e6 0%, #faf8f3 55%, #fff 100%);
|
|
|
- border-bottom: 1px solid #efe6d6;
|
|
|
+ background: linear-gradient(90deg, #eef4ff 0%, #f7f9fc 55%, #fff 100%);
|
|
|
+ border-bottom: 1px solid #d6e4ff;
|
|
|
}
|
|
|
|
|
|
&__title {
|
|
|
@@ -1633,8 +1633,8 @@ watch(
|
|
|
padding: 2px 6px 2px 10px;
|
|
|
font-size: 12px;
|
|
|
color: @primary-dark;
|
|
|
- background: rgba(201, 166, 110, 0.12);
|
|
|
- border: 1px solid rgba(201, 166, 110, 0.35);
|
|
|
+ background: rgba(43, 115, 248, 0.12);
|
|
|
+ border: 1px solid rgba(43, 115, 248, 0.35);
|
|
|
border-radius: @radius-sm;
|
|
|
}
|
|
|
|
|
|
@@ -1649,7 +1649,7 @@ watch(
|
|
|
:deep(.el-input__wrapper) {
|
|
|
background: #fff;
|
|
|
box-shadow: none;
|
|
|
- border: 1px solid rgba(201, 166, 110, 0.45);
|
|
|
+ border: 1px solid rgba(43, 115, 248, 0.45);
|
|
|
}
|
|
|
|
|
|
:deep(.el-input__inner) {
|
|
|
@@ -1740,7 +1740,7 @@ watch(
|
|
|
}
|
|
|
|
|
|
&.tone-gold .metric-item__icon {
|
|
|
- background: #f5efe4;
|
|
|
+ background: #e8f1ff;
|
|
|
color: @primary-dark;
|
|
|
}
|
|
|
|