From c1d2051abc8ca88cd07f0d7c56c0dbf8165d5c33 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 18 九月 2025 17:02:22 +0800 Subject: [PATCH] 2025.9.18 数据产品(待完成) --- src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue | 104 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 88 insertions(+), 16 deletions(-) diff --git a/src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue b/src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue index 7412ddf..ef1323e 100644 --- a/src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue +++ b/src/views/fysp/data-product/base-data-product/ProdSceneInfo.vue @@ -1,31 +1,103 @@ <template> - <BaseProdProcess :active="active"> - <template #step1> + <BaseProdProcess + v-model:active="active" + @onStep1="onStep1" + @onStep2="onStep2" + @onStep3="onStep3" + :loading="loading" + > + <!-- <template #step1> <ProdQueryOpt :loading="loading" @submit="onSearch"> </ProdQueryOpt> + </template> --> + <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="name" + label="鍚嶇О" + :show-overflow-tooltip="true" + min-width="200" + > + </el-table-column> + <el-table-column prop="type" label="绫诲瀷" width="50" /> + <el-table-column prop="status" label="鐘舵��" width="60" /> + <el-table-column prop="stage" label="闃舵" width="90" /> + <!-- <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="townname" label="琛楅亾" width="110" /> + <el-table-column prop="location" label="鍦板潃" width="200" /> + <el-table-column prop="contacts" label="鑱旂郴浜�" width="70" /> + <el-table-column prop="contactst" label="鐢佃瘽" width="96" /> + <!-- <el-table-column prop="longitude" label="缁忓害" width="110" /> + <el-table-column prop="latitude" label="绾害" width="110" /> --> + <!-- <el-table-column + prop="updatedate" + label="鏇存柊鏃堕棿" + width="140" + :formatter="timeFormat" + /> --> + </el-table> </template> - <template #step2></template> - <template #step3></template> + <!-- <template #step3></template> --> </BaseProdProcess> </template> <script setup> -import { ref } from 'vue'; +import { ref, inject } from 'vue'; +import dayjs from 'dayjs'; import BaseProdProcess from '@/views/fysp/data-product/base-data-product/components/BaseProdProcess.vue'; import ProdQueryOpt from '@/views/fysp/data-product/base-data-product/components/ProdQueryOpt.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 = ref(1); -const loading = ref(false) +const { active, changeActive } = useProdStepChange(); +const loading = ref(false); +const tableData = ref([]); -function changeActive() { - active.value++; - active.value = active.value > 3 ? 1 : active.value; +function onStep1(opt) { + loading.value = true; + dataprodbaseApi + .fetchProdSceneInfo(opt) + .then((res) => { + if (res.success) { + tableData.value = res.data.map((item) => ({ + status: item.status, + stage: item.stage, + ...item.scene + })); + } + changeActive(); + }) + .finally(() => { + loading.value = false; + }); } -function onSearch(opt) { - console.log(opt); - loading.value = true; - setTimeout(() => { - changeActive() +function onStep2() { + changeActive(); +} + +function onStep3(val) { + if (val.downloadType == '1') { + loading.value = true; + conversionFromTable('prod-scene-table', '宸℃煡鍦烘櫙娓呭崟'); loading.value = false; - }, 1000); + } +} + +function timeFormat(row, column, cellValue, index) { + return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss'); } </script> -- Gitblit v1.9.3