|
|
@@ -1,14 +1,7 @@
|
|
|
<template>
|
|
|
<div class="ignition-view manual-view">
|
|
|
<!-- 左:人工录入 -->
|
|
|
- <ModuleCommon
|
|
|
- :show-style="panelShowStyle(20, 132, 353, 907)"
|
|
|
- :module-data="EMPTY_MODULE_DATA"
|
|
|
- module-name="人工录入"
|
|
|
- device-type="ignition_manual_input"
|
|
|
- :data="{}"
|
|
|
- :visible="true"
|
|
|
- >
|
|
|
+ <Module :x="20" :y="132" :width="393" :height="907" title="人工录入">
|
|
|
<div class="manual-form">
|
|
|
<div class="form-toolbar">
|
|
|
<div class="eval-type-tabs">
|
|
|
@@ -21,29 +14,23 @@
|
|
|
<div v-if="loadingOptions" class="form-loading">评价指标加载中...</div>
|
|
|
<template v-else>
|
|
|
<div v-for="group in fieldGroups" :key="group.key" class="form-group">
|
|
|
- <div class="group-collapse" @click="toggleGroup(group.key)">
|
|
|
- <img class="group-icon" src="@/assets/images/vent/home/selfIgnition/form-icon.svg" alt="" />
|
|
|
- <span>{{ group.title }}</span>
|
|
|
- <i class="collapse-arrow" :class="{ collapsed: collapsed[group.key] }"></i>
|
|
|
+ <div class="group-title">
|
|
|
+ <span class="title-bars">
|
|
|
+ <i v-for="n in 4" :key="n"></i>
|
|
|
+ </span>
|
|
|
+ <span>{{ group.title }}指标</span>
|
|
|
+ <span class="title-dots">
|
|
|
+ <i></i>
|
|
|
+ <b></b>
|
|
|
+ <i></i>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <template v-if="!collapsed[group.key]">
|
|
|
- <div class="group-title">
|
|
|
- <span class="title-bars">
|
|
|
- <i v-for="n in 4" :key="n"></i>
|
|
|
- </span>
|
|
|
- <span>{{ group.title }}指标</span>
|
|
|
- <span class="title-dots">
|
|
|
- <i v-for="n in 3" :key="n"></i>
|
|
|
- <b></b>
|
|
|
- </span>
|
|
|
+ <div class="field-list">
|
|
|
+ <div v-for="item in group.fields" :key="item.code" class="field-row">
|
|
|
+ <span class="field-label" :title="item.name">{{ item.name }}:</span>
|
|
|
+ <PanelSelect v-model="formValues[FIELD_BY_CODE[item.code]]" :options="selectOptions(item)" />
|
|
|
</div>
|
|
|
- <div class="field-list">
|
|
|
- <div v-for="item in group.fields" :key="item.code" class="field-row">
|
|
|
- <span class="field-label" :title="item.name">{{ item.name }}:</span>
|
|
|
- <PanelSelect v-model="formValues[FIELD_BY_CODE[item.code]]" :options="selectOptions(item)" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div v-if="!fieldGroups.length" class="form-loading">暂无评价指标</div>
|
|
|
</template>
|
|
|
@@ -58,28 +45,19 @@
|
|
|
</button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </ModuleCommon>
|
|
|
+ </Module>
|
|
|
|
|
|
<!-- 右:评价结果 -->
|
|
|
- <ModuleCommon
|
|
|
- :show-style="panelShowStyle(1545, 132, 353, 907)"
|
|
|
- :module-data="EMPTY_MODULE_DATA"
|
|
|
- module-name="评价结果"
|
|
|
- device-type="ignition_evaluation_result"
|
|
|
- :data="{}"
|
|
|
- :visible="true"
|
|
|
- >
|
|
|
+ <Module :x="1505" :y="132" :width="393" :height="907" title="评价结果">
|
|
|
<div class="result-panel">
|
|
|
<div class="result-top">
|
|
|
<div class="score-line">
|
|
|
- <span class="score-label">安全评价得分:</span>
|
|
|
- <img class="score-info" src="@/assets/images/vent/home/selfIgnition/info-icon.svg" alt="由后端算法计算" />
|
|
|
+ <span class="score-label">风险分值:</span>
|
|
|
<span class="score-value">{{ resultScore }}</span>
|
|
|
</div>
|
|
|
<div class="gauge-line">
|
|
|
<div class="gauge">
|
|
|
- <img class="gauge-segment gauge-segment-1" src="@/assets/images/vent/home/selfIgnition/risk-gauge.png" alt="" />
|
|
|
- <img class="gauge-segment gauge-segment-2" src="@/assets/images/vent/home/selfIgnition/risk-gauge.png" alt="" />
|
|
|
+ <img class="gauge-segment" src="@/assets/images/vent/home/selfIgnition/risk-gauge.png" alt="" />
|
|
|
</div>
|
|
|
<span class="risk-tag" :style="{ '--risk-color': resultRiskColor }">{{ resultTagText }}</span>
|
|
|
</div>
|
|
|
@@ -96,9 +74,9 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="level-table">
|
|
|
- <div class="level-head"><span>评价等级</span><span>评分范围</span><span>对应颜色</span></div>
|
|
|
+ <div class="level-head"><span>评价等级</span><span>风险分值范围</span><span>对应颜色</span></div>
|
|
|
<div
|
|
|
- v-for="item in levels"
|
|
|
+ v-for="(item, index) in levels"
|
|
|
:key="item.level"
|
|
|
class="level-row"
|
|
|
:class="{ highlight: item.level === resultLevel }"
|
|
|
@@ -106,6 +84,7 @@
|
|
|
>
|
|
|
<span class="level-name">
|
|
|
<i :style="{ background: item.color, boxShadow: `0 0 8px ${item.color}` }"></i>
|
|
|
+ <b>{{ levelRoman(index) }}</b>
|
|
|
{{ item.level }}
|
|
|
</span>
|
|
|
<span>{{ item.range }}</span>
|
|
|
@@ -113,15 +92,14 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </ModuleCommon>
|
|
|
+ </Module>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
import { computed, onMounted, reactive, ref, watch } from 'vue';
|
|
|
- import ModuleCommon from '../../configurable/components/ModuleCommon.vue';
|
|
|
+ import Module from './Module.vue';
|
|
|
import PanelSelect from './PanelSelect.vue';
|
|
|
- import { EMPTY_MODULE_DATA, panelShowStyle } from '../utils';
|
|
|
import { useMessage } from '/@/hooks/web/useMessage';
|
|
|
import { calculateSafetyEvaluation, getSafetyEvaluationByScene, getSafetyItemOptions, saveSafetyEvaluation } from '../safetyEvaluation.api';
|
|
|
import { EVAL_RISK_LEVELS, EVAL_RISK_MAP, FIELD_BY_CODE, FALLBACK_SAFETY_ITEMS } from '../evaluation.config';
|
|
|
@@ -137,7 +115,6 @@
|
|
|
const items = ref<SafetyItem[]>([]);
|
|
|
const evalType = ref(1);
|
|
|
const formValues = reactive<Record<string, string>>({});
|
|
|
- const collapsed = reactive<Record<string, boolean>>({});
|
|
|
const evaluation = ref<SafetyEvaluationEntity | null>(null);
|
|
|
const loadingOptions = ref(false);
|
|
|
const previewing = ref(false);
|
|
|
@@ -172,7 +149,20 @@
|
|
|
const resultLevel = computed(() => evaluation.value?.riskLevel || '');
|
|
|
const resultLevelMeta = computed(() => EVAL_RISK_MAP[resultLevel.value] || null);
|
|
|
const resultRiskColor = computed(() => resultLevelMeta.value?.color || '#3df6ff');
|
|
|
- const resultTagText = computed(() => resultLevel.value || '未评价');
|
|
|
+
|
|
|
+ const ROMAN_NUMERALS = ['I', 'II', 'III', 'IV', 'V', 'VI'];
|
|
|
+
|
|
|
+ function levelRoman(index: number) {
|
|
|
+ return ROMAN_NUMERALS[index] || '';
|
|
|
+ }
|
|
|
+
|
|
|
+ const resultTagText = computed(() => {
|
|
|
+ const level = resultLevel.value;
|
|
|
+ if (!level) return '未评价';
|
|
|
+ const index = levels.findIndex((item) => item.level === level);
|
|
|
+ return index >= 0 ? `${levelRoman(index)} ${level}` : level;
|
|
|
+ });
|
|
|
+
|
|
|
const resultTarget = computed(() => evaluation.value?.workfaceName || targetName.value);
|
|
|
const resultTime = computed(() => evaluation.value?.createTime || '--');
|
|
|
|
|
|
@@ -180,7 +170,8 @@
|
|
|
const value = evaluation.value?.totalScore;
|
|
|
if (value === null || value === undefined || value === '') return '--';
|
|
|
const score = Number(value);
|
|
|
- return Number.isFinite(score) ? score.toFixed(2) : String(value);
|
|
|
+ // 与设计稿一致:最多保留两位小数并去掉末尾的 0(58.60 → 58.6)
|
|
|
+ return Number.isFinite(score) ? `${Number(score.toFixed(2))}` : String(value);
|
|
|
});
|
|
|
|
|
|
function selectOptions(item: SafetyItem) {
|
|
|
@@ -191,10 +182,6 @@
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
- function toggleGroup(key: string) {
|
|
|
- collapsed[key] = !collapsed[key];
|
|
|
- }
|
|
|
-
|
|
|
function formatDateTime(date: Date) {
|
|
|
const pad = (value: number) => `${value}`.padStart(2, '0');
|
|
|
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
|
|
|
@@ -215,12 +202,9 @@
|
|
|
.filter((item) => item.code && item.options.length);
|
|
|
}
|
|
|
|
|
|
- function initDefaults() {
|
|
|
- items.value.forEach((item) => {
|
|
|
- const field = FIELD_BY_CODE[item.code];
|
|
|
- if (field && !formValues[field]) {
|
|
|
- formValues[field] = item.options[0]?.name || '';
|
|
|
- }
|
|
|
+ function clearFormValues() {
|
|
|
+ Object.keys(formValues).forEach((key) => {
|
|
|
+ formValues[key] = '';
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -238,7 +222,6 @@
|
|
|
createMessage.warning('评价指标接口异常,已使用内置指标字典');
|
|
|
} finally {
|
|
|
loadingOptions.value = false;
|
|
|
- initDefaults();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -248,8 +231,7 @@
|
|
|
...entity,
|
|
|
createTime: entity.createTime || formatDateTime(new Date()),
|
|
|
};
|
|
|
- items.value.forEach((item) => {
|
|
|
- const field = FIELD_BY_CODE[item.code];
|
|
|
+ Object.values(FIELD_BY_CODE).forEach((field) => {
|
|
|
const value = entity[field];
|
|
|
if (field && value) {
|
|
|
formValues[field] = value;
|
|
|
@@ -259,6 +241,7 @@
|
|
|
|
|
|
async function loadLatest() {
|
|
|
evaluation.value = null;
|
|
|
+ clearFormValues();
|
|
|
if (!props.manageSystemId) {
|
|
|
return;
|
|
|
}
|
|
|
@@ -268,8 +251,6 @@
|
|
|
const entity = evalType.value === 2 ? data?.miningEval : data?.beforeEval;
|
|
|
if (entity) {
|
|
|
applyEvaluation(entity);
|
|
|
- } else {
|
|
|
- evaluation.value = null;
|
|
|
}
|
|
|
} catch {
|
|
|
evaluation.value = null;
|
|
|
@@ -362,6 +343,8 @@
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
+@import '/@/views/vent/home/selfIgnition/scrollbar.less';
|
|
|
+
|
|
|
.manual-view {
|
|
|
position: absolute;
|
|
|
inset: 0;
|
|
|
@@ -433,14 +416,7 @@
|
|
|
overflow-x: hidden;
|
|
|
padding-right: 2px;
|
|
|
|
|
|
- &::-webkit-scrollbar {
|
|
|
- width: 4px;
|
|
|
- }
|
|
|
-
|
|
|
- &::-webkit-scrollbar-thumb {
|
|
|
- background: rgba(61, 246, 255, 0.35);
|
|
|
- border-radius: 2px;
|
|
|
- }
|
|
|
+ .scrollbar-cyan();
|
|
|
}
|
|
|
|
|
|
.form-group {
|
|
|
@@ -451,56 +427,48 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .group-collapse {
|
|
|
+ .group-title {
|
|
|
+ position: relative;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- gap: 6px;
|
|
|
- height: 34px;
|
|
|
- padding: 0 8px;
|
|
|
- border-left: 2px solid #3df6ff;
|
|
|
- background: linear-gradient(90deg, rgba(15, 77, 120, 0.9), rgba(9, 43, 70, 0.15));
|
|
|
+ gap: 3px;
|
|
|
+ height: 22px;
|
|
|
+ margin-bottom: 4px;
|
|
|
+ padding: 0;
|
|
|
+ box-sizing: border-box;
|
|
|
color: #fff;
|
|
|
- font-size: 15px;
|
|
|
- letter-spacing: 0.5px;
|
|
|
- cursor: pointer;
|
|
|
- user-select: none;
|
|
|
- }
|
|
|
-
|
|
|
- .group-icon {
|
|
|
- width: 13px;
|
|
|
- height: 15px;
|
|
|
- }
|
|
|
-
|
|
|
- .collapse-arrow {
|
|
|
- margin-left: auto;
|
|
|
- width: 0;
|
|
|
- height: 0;
|
|
|
- border-left: 4px solid transparent;
|
|
|
- border-right: 4px solid transparent;
|
|
|
- border-top: 5px solid #cfefff;
|
|
|
- transition: transform 0.2s;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 600;
|
|
|
+ letter-spacing: 1px;
|
|
|
|
|
|
- &.collapsed {
|
|
|
- transform: rotate(-90deg);
|
|
|
+ // 底部的渐变光带(左侧亮、向右淡出至消失)
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ left: 4px;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ height: 13px;
|
|
|
+ background: linear-gradient(90deg, rgba(43, 143, 214, 0.55) 0%, rgba(24, 86, 140, 0.18) 45%, rgba(12, 40, 70, 0) 78%);
|
|
|
+ pointer-events: none;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- .group-title {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- gap: 6px;
|
|
|
- height: 24px;
|
|
|
- padding: 0 4px;
|
|
|
- color: #a9dcf4;
|
|
|
- font-size: 12px;
|
|
|
- letter-spacing: 0.5px;
|
|
|
+ > * {
|
|
|
+ position: relative;
|
|
|
+ z-index: 1;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.title-bars {
|
|
|
+ position: relative;
|
|
|
display: flex;
|
|
|
align-items: flex-end;
|
|
|
- gap: 2px;
|
|
|
- height: 12px;
|
|
|
+ gap: 1px;
|
|
|
+ width: 14px;
|
|
|
+ height: 14px;
|
|
|
+ padding-bottom: 2px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-bottom: 2px solid #6bd9ff;
|
|
|
|
|
|
i {
|
|
|
width: 3px;
|
|
|
@@ -511,36 +479,38 @@
|
|
|
}
|
|
|
|
|
|
&:nth-child(2) {
|
|
|
- height: 12px;
|
|
|
+ height: 9px;
|
|
|
}
|
|
|
|
|
|
&:nth-child(3) {
|
|
|
- height: 8px;
|
|
|
+ height: 12px;
|
|
|
}
|
|
|
|
|
|
&:nth-child(4) {
|
|
|
- height: 4px;
|
|
|
+ height: 6px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.title-dots {
|
|
|
+ position: absolute;
|
|
|
+ right: 10px;
|
|
|
+ bottom: 4px;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
gap: 3px;
|
|
|
- margin-left: auto;
|
|
|
|
|
|
i {
|
|
|
- width: 2px;
|
|
|
- height: 2px;
|
|
|
- background: rgba(61, 246, 255, 0.65);
|
|
|
+ width: 3px;
|
|
|
+ height: 3px;
|
|
|
+ background: rgba(110, 200, 255, 0.75);
|
|
|
}
|
|
|
|
|
|
b {
|
|
|
- width: 3px;
|
|
|
- height: 3px;
|
|
|
- background: #3df6ff;
|
|
|
- box-shadow: 0 0 4px rgba(61, 246, 255, 0.9);
|
|
|
+ width: 5px;
|
|
|
+ height: 5px;
|
|
|
+ background: #a9e6ff;
|
|
|
+ box-shadow: 0 0 5px rgba(61, 246, 255, 0.9);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -610,90 +580,68 @@
|
|
|
.result-panel {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
- justify-content: space-evenly;
|
|
|
height: 100%;
|
|
|
- padding: 10px 12px 14px;
|
|
|
+ padding: 28px 12px 0;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
|
|
|
.result-top {
|
|
|
- display: flex;
|
|
|
flex: none;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: center;
|
|
|
- height: 180px;
|
|
|
- box-sizing: border-box;
|
|
|
- background: url('@/assets/images/vent/home/selfIgnition/result-top-bg.png') no-repeat center / 100% 100%;
|
|
|
+ padding: 0 16px;
|
|
|
}
|
|
|
|
|
|
.score-line {
|
|
|
display: flex;
|
|
|
align-items: baseline;
|
|
|
- padding: 0 20px;
|
|
|
+ justify-content: space-between;
|
|
|
}
|
|
|
|
|
|
.score-label {
|
|
|
color: #fff;
|
|
|
- font-size: 19px;
|
|
|
+ font-size: 34px;
|
|
|
+ line-height: 1;
|
|
|
letter-spacing: 1px;
|
|
|
}
|
|
|
|
|
|
- .score-info {
|
|
|
- width: 12px;
|
|
|
- height: 12px;
|
|
|
- margin-left: 5px;
|
|
|
- align-self: center;
|
|
|
- opacity: 0.85;
|
|
|
- }
|
|
|
-
|
|
|
.score-value {
|
|
|
- margin-left: 16px;
|
|
|
color: #fff;
|
|
|
- font-size: 42px;
|
|
|
+ font-size: 54px;
|
|
|
font-weight: 700;
|
|
|
line-height: 1;
|
|
|
letter-spacing: 1px;
|
|
|
- text-shadow: 0 0 16px rgba(255, 255, 255, 0.35);
|
|
|
+ text-shadow: 0 0 16px rgba(255, 255, 255, 0.3);
|
|
|
}
|
|
|
|
|
|
.gauge-line {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
- margin-top: 26px;
|
|
|
- padding: 0 18px;
|
|
|
+ margin-top: 12px;
|
|
|
}
|
|
|
|
|
|
.gauge {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- width: 150px;
|
|
|
- height: 26px;
|
|
|
+ width: 149px;
|
|
|
+ height: 27px;
|
|
|
}
|
|
|
|
|
|
.gauge-segment {
|
|
|
- width: 80px;
|
|
|
- height: 22px;
|
|
|
- object-fit: fill;
|
|
|
-
|
|
|
- & + & {
|
|
|
- margin-left: -8px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .gauge-segment-2 {
|
|
|
- opacity: 0.72;
|
|
|
+ display: block;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
}
|
|
|
|
|
|
.risk-tag {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
+ justify-content: center;
|
|
|
width: 159px;
|
|
|
height: 34px;
|
|
|
- padding-left: 22px;
|
|
|
+ padding: 0 12px 0 6px;
|
|
|
box-sizing: border-box;
|
|
|
color: #fff;
|
|
|
- font-size: 15px;
|
|
|
+ font-size: 19px;
|
|
|
font-weight: 600;
|
|
|
letter-spacing: 0.5px;
|
|
|
white-space: nowrap;
|
|
|
@@ -707,32 +655,34 @@
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
justify-content: center;
|
|
|
- gap: 4px;
|
|
|
- padding: 12px 16px;
|
|
|
- border-left: 1px solid rgba(61, 246, 255, 0.16);
|
|
|
- border-right: 1px solid rgba(61, 246, 255, 0.16);
|
|
|
- background: rgba(7, 42, 70, 0.62);
|
|
|
+ width: calc(100% - 18px);
|
|
|
+ height: 139px;
|
|
|
+ margin: 38px auto 0;
|
|
|
+ padding: 0 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ background: url('@/assets/images/vent/home/selfIgnition/result-top-bg.png') no-repeat center / 100% 100%;
|
|
|
}
|
|
|
|
|
|
.info-row {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
- height: 46px;
|
|
|
+ height: 34px;
|
|
|
color: #fff;
|
|
|
- font-size: 15px;
|
|
|
+ font-size: 19px;
|
|
|
letter-spacing: 0.5px;
|
|
|
|
|
|
em {
|
|
|
color: #3df6ff;
|
|
|
font-style: normal;
|
|
|
- font-size: 16px;
|
|
|
+ font-size: 19px;
|
|
|
text-shadow: 0 0 8px rgba(61, 246, 255, 0.35);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.level-table {
|
|
|
flex: none;
|
|
|
+ margin-top: 33px;
|
|
|
}
|
|
|
|
|
|
.level-head,
|
|
|
@@ -743,19 +693,17 @@
|
|
|
}
|
|
|
|
|
|
.level-head {
|
|
|
- height: 40px;
|
|
|
- border: 1px solid rgba(61, 246, 255, 0.4);
|
|
|
- border-radius: 4px;
|
|
|
+ height: 32px;
|
|
|
color: #3df6ff;
|
|
|
- font-size: 13px;
|
|
|
+ font-size: 17px;
|
|
|
background: url('@/assets/images/vent/home/selfIgnition/result-table-head.png') no-repeat center / 100% 100%;
|
|
|
|
|
|
span:nth-child(1) {
|
|
|
- width: 42%;
|
|
|
+ width: 36%;
|
|
|
}
|
|
|
|
|
|
span:nth-child(2) {
|
|
|
- width: 32%;
|
|
|
+ width: 38%;
|
|
|
}
|
|
|
|
|
|
span:nth-child(3) {
|
|
|
@@ -765,17 +713,17 @@
|
|
|
|
|
|
.level-row {
|
|
|
position: relative;
|
|
|
- height: 50px;
|
|
|
+ height: 59px;
|
|
|
color: #e8f8ff;
|
|
|
- font-size: 14px;
|
|
|
- background: url('@/assets/images/vent/home/selfIgnition/result-row-glow.png') no-repeat center bottom / 100% 10px;
|
|
|
+ font-size: 17px;
|
|
|
+ background: url('@/assets/images/vent/home/selfIgnition/result-row-glow.png') no-repeat center bottom / 100% 25px;
|
|
|
|
|
|
span:nth-child(1) {
|
|
|
- width: 42%;
|
|
|
+ width: 36%;
|
|
|
}
|
|
|
|
|
|
span:nth-child(2) {
|
|
|
- width: 32%;
|
|
|
+ width: 38%;
|
|
|
}
|
|
|
|
|
|
span:nth-child(3) {
|
|
|
@@ -783,10 +731,15 @@
|
|
|
}
|
|
|
|
|
|
&.highlight {
|
|
|
- outline: 1px solid var(--highlight-color, #ff9d1c);
|
|
|
- outline-offset: -1px;
|
|
|
- background-color: rgba(255, 157, 28, 0.08);
|
|
|
- box-shadow: inset 0 0 18px rgba(255, 157, 28, 0.16);
|
|
|
+ &::after {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ inset: 2px;
|
|
|
+ border: 2px solid var(--highlight-color, #ff9d1c);
|
|
|
+ border-radius: 6px;
|
|
|
+ box-shadow: 0 0 10px rgba(255, 157, 28, 0.25);
|
|
|
+ pointer-events: none;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -794,13 +747,18 @@
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
- gap: 6px;
|
|
|
+ gap: 7px;
|
|
|
|
|
|
i {
|
|
|
- width: 7px;
|
|
|
- height: 7px;
|
|
|
+ flex: none;
|
|
|
+ width: 9px;
|
|
|
+ height: 9px;
|
|
|
border-radius: 50%;
|
|
|
}
|
|
|
+
|
|
|
+ b {
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.action-button {
|