| | |
| | | <template> |
| | | 1 |
| | | <BaseProdProcess |
| | | v-model:active="active" |
| | | @onStep1="onStep1" |
| | | @onStep2="onStep2" |
| | | @onStep3="onStep3" |
| | | :loading="loading" |
| | | > |
| | | <template #step2="{ contentHeight }"> |
| | | <el-table |
| | | id="prod-scene-table" |
| | | :data="tableData" |
| | | v-loading="loading" |
| | | :height="contentHeight + 'px'" |
| | | table-layout="fixed" |
| | | :show-overflow-tooltip="true" |
| | | size="small" |
| | | border |
| | | > |
| | | <el-table-column fixed="left" prop="index" label="排名" width="50"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | fixed="left" |
| | | prop="scene.name" |
| | | label="名称" |
| | | :show-overflow-tooltip="true" |
| | | min-width="200" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="data.drAvg" label="平均值(mg/m³)" width="100" /> |
| | | <el-table-column |
| | | prop="data.drOverAvgPer" |
| | | label="超区均值" |
| | | width="80" |
| | | :formatter="ratioFormat" |
| | | /> |
| | | <el-table-column label="超市均值" width="80" /> |
| | | <!-- <el-table-column prop="provincename" label="省" width="90" /> |
| | | <el-table-column prop="cityname" label="市" width="90" /> |
| | | <el-table-column prop="districtname" label="区县" width="90" /> --> |
| | | <el-table-column prop="scene.townname" label="属地" width="110" /> |
| | | </el-table> |
| | | </template> |
| | | <!-- <template #step3></template> --> |
| | | </BaseProdProcess> |
| | | </template> |
| | | <script setup></script> |
| | | <script setup> |
| | | import { ref, inject } from 'vue'; |
| | | import dayjs from 'dayjs'; |
| | | import BaseProdProcess from '@/views/fysp/data-product/components/BaseProdProcess.vue'; |
| | | import dataprodbaseApi from '@/api/fysp/dataprodbaseApi.js'; |
| | | import { conversionFromTable } from '@/utils/excel'; |
| | | import { useProdStepChange } from '@/views/fysp/data-product/prod-step-change.js'; |
| | | |
| | | const { active, changeActive } = useProdStepChange(); |
| | | const loading = ref(false); |
| | | const tableData = ref([]); |
| | | |
| | | function onStep1(opt) { |
| | | loading.value = true; |
| | | dataprodbaseApi |
| | | .fetchProdMonitorDataInfo(opt) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | tableData.value = res.data |
| | | .sort((a, b) => { |
| | | return b.data.drAvg - a.data.drAvg; |
| | | }) |
| | | .map((item, index) => { |
| | | return { |
| | | ...item, |
| | | index: index + 1 |
| | | }; |
| | | }); |
| | | } |
| | | changeActive(); |
| | | }) |
| | | .finally(() => { |
| | | loading.value = false; |
| | | }); |
| | | } |
| | | |
| | | function onStep2() { |
| | | changeActive(); |
| | | } |
| | | |
| | | function onStep3(val) { |
| | | if (val.downloadType == '1') { |
| | | loading.value = true; |
| | | conversionFromTable('prod-scene-table', '在线监测数据清单'); |
| | | loading.value = false; |
| | | } |
| | | } |
| | | |
| | | function ratioFormat(row, column, cellValue, index) { |
| | | return Math.round(cellValue * 1000) / 10 + '%'; |
| | | } |
| | | </script> |