|
@@ -19,7 +19,14 @@
|
|
|
</a-table>
|
|
|
<div class="data-container">
|
|
|
<div id="barChart" class="bar-chart"></div>
|
|
|
- <div class="data-content"> </div>
|
|
|
+ <div class="data-content">
|
|
|
+ <div class="progress-label">缓慢氧化阶段(潜伏期):{{ latentCount }}</div>
|
|
|
+ <Progress :percent="latentPercent" size="default" strokeColor="green" :show-info="false" />
|
|
|
+ <div class="progress-label">加速氧化阶段(自热期):{{ selfHeatingCount }}</div>
|
|
|
+ <Progress :percent="selfHeatingPercent" size="default" strokeColor="yellow" :show-info="false" />
|
|
|
+ <div class="progress-label">剧烈氧化阶段(燃烧期):{{ combustionCount }}</div>
|
|
|
+ <Progress :percent="combustionPercent" size="default" strokeColor="red" :show-info="false" />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -41,6 +48,8 @@ import customHeader from '/@/components/vent/customHeader.vue';
|
|
|
import BlastDelta from './modal/blastDelta.vue';
|
|
|
import BlastDelta1 from './modal/blastDelta1.vue';
|
|
|
import * as echarts from 'echarts';
|
|
|
+import { Progress } from 'ant-design-vue';
|
|
|
+import 'ant-design-vue/dist/antd.css'; // 引入样式
|
|
|
let selectList = ref<any[]>([]);
|
|
|
let jcddArr = ref<any[]>([]);
|
|
|
let formSearch = reactive({
|
|
@@ -49,11 +58,16 @@ let formSearch = reactive({
|
|
|
fileId: '',
|
|
|
fileName: '',
|
|
|
});
|
|
|
+const latentCount = ref(0); // 缓慢氧化阶段(潜伏期)
|
|
|
+const selfHeatingCount = ref(0); // 加速氧化阶段(自热期)
|
|
|
+const combustionCount = ref(0); // 剧烈氧化阶段(燃烧期)
|
|
|
+const latentPercent = ref(0); // 缓慢氧化阶段(潜伏期)
|
|
|
+const selfHeatingPercent = ref(0); // 加速氧化阶段(自热期)
|
|
|
+const combustionPercent = ref(0); // 剧烈氧化阶段(燃烧期)
|
|
|
let tableData = ref<any[]>([]);
|
|
|
let modalVisible = ref(false);
|
|
|
let selectedFileId = ref<string | null>(null);
|
|
|
const posMonitor = shallowRef({});
|
|
|
-
|
|
|
function updateChart(data: any) {
|
|
|
const chartDom = document.getElementById('barChart');
|
|
|
const myChart = echarts.init(chartDom);
|
|
@@ -202,11 +216,18 @@ function toDetail(record: any) {
|
|
|
posMonitor.value = record;
|
|
|
modalVisible.value = true;
|
|
|
}
|
|
|
-//获取色谱仪报表
|
|
|
+//获取束管日报
|
|
|
async function getTableList(params: any) {
|
|
|
let res = await getBundleInfoList({ type: 'bundle', ...params });
|
|
|
const content = res.content;
|
|
|
let contentArr = JSON.parse(content);
|
|
|
+ latentCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '缓慢氧化阶段(潜伏期)').length;
|
|
|
+ selfHeatingCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '加速氧化阶段(自热期)').length;
|
|
|
+ combustionCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '剧烈氧化阶段(燃烧期)').length;
|
|
|
+ const total = contentArr.length;
|
|
|
+ latentPercent.value = (latentCount.value / total) * 100;
|
|
|
+ selfHeatingPercent.value = (selfHeatingCount.value / total) * 100;
|
|
|
+ combustionPercent.value = (combustionCount.value / total) * 100;
|
|
|
tableData.value = contentArr;
|
|
|
nextTick(() => {
|
|
|
updateChart(contentArr);
|
|
@@ -317,6 +338,7 @@ onMounted(() => {
|
|
|
flex-direction: column; /* 垂直排列进度条 */
|
|
|
align-items: center; /* 水平居中 */
|
|
|
}
|
|
|
+
|
|
|
.dustMonitor {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
@@ -350,4 +372,18 @@ onMounted(() => {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
}
|
|
|
+.progress {
|
|
|
+ width: 100%;
|
|
|
+ height: 20px;
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
+.progress-label {
|
|
|
+ margin-top: 10px;
|
|
|
+ text-align: center;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ color: #fff;
|
|
|
+}
|
|
|
+::deep .progress-text {
|
|
|
+ color: #fff !important; /* 自定义百分比文字颜色 */
|
|
|
+}
|
|
|
</style>
|