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/check/ProCheck.vue | 176 +++++++++++++++++++++++----------------------------------- 1 files changed, 71 insertions(+), 105 deletions(-) diff --git a/src/views/fysp/check/ProCheck.vue b/src/views/fysp/check/ProCheck.vue index 411065c..d47f6a0 100644 --- a/src/views/fysp/check/ProCheck.vue +++ b/src/views/fysp/check/ProCheck.vue @@ -3,7 +3,12 @@ <template #header> <SearchBar @on-submit="search"> <template #summary> - <CompSubTaskStatistic :subtasks="subtasks" /> + <CompSubTaskStatistic + :loading="sideLoading" + :sceneType="sceneTypeId" + :subtasks="subtasks" + :monitorObjList="curMonitorObjList" + /> </template> </SearchBar> </template> @@ -16,29 +21,29 @@ ></SideList> </template> <template #main> - <ToolBar - :title="curSubtask.title" - :descriptions="proStatus" - :buttons="buttons" - :loading="mainLoading" - ></ToolBar> - <el-scrollbar - v-if="curProList.length > 0" - class="el-scrollbar" - v-loading="mainLoading" - > - <CompProblemCard - :key="i" - v-for="(p, i) in curProList" - :index="i + 1" - :problem="p" - :subtask="curSubtask.data" - :topTask="topTask" - @submit="updateSubtask" - @check="handleProblemCheck" - ></CompProblemCard> + <el-scrollbar> + <ToolBar + ref="toolBarRef" + class="toolbar-sticky" + :title="curSubtask.title" + :descriptions="proStatus" + :buttons="buttons" + :loading="mainLoading" + ></ToolBar> + <div v-if="curProList.length > 0" v-loading="mainLoading"> + <CompProblemCard + :key="i" + v-for="(p, i) in curProList" + :index="i + 1" + :problem="p" + :subtask="curSubtask.data" + :topTask="topTask" + @submit="updateSubtask" + @check="handleProblemCheck" + ></CompProblemCard> + </div> + <el-empty v-else description="鏆傛棤闂" v-loading="mainLoading" /> </el-scrollbar> - <el-empty v-else description="鏆傛棤闂" v-loading="mainLoading" /> </template> </BaseContentLayout> <CompProblemAddOrUpd @@ -65,38 +70,51 @@ ref="deviceShowRef" > </CompDeviceShowTest> + <SceneEditDialog + v-model="sceneInfoDialog" + :sceneId="curSubtask.data ? curSubtask.data.sceneId : undefined" + ></SceneEditDialog> </template> <script> import ArbitraryPhoto from './components/ArbitraryPhoto.vue'; import taskApi from '@/api/fysp/taskApi'; +import problemApi from '@/api/fysp/problemApi'; import ProCheckProxy from './ProCheckProxy'; import CompProblemAddOrUpd from './components/CompProblemAddOrUpd.vue'; import CompProblemCard from './components/CompProblemCard.vue'; import CompSubTaskStatistic from './components/CompSubTaskStatistic.vue'; import CompDeviceShowTest from './components/CompDeviceShowTest.vue'; +import SceneEditDialog from '@/views/fysp/scene/SceneEditDialog.vue'; export default { components: { CompProblemCard, CompSubTaskStatistic, CompProblemAddOrUpd, ArbitraryPhoto, - CompDeviceShowTest + CompDeviceShowTest, + SceneEditDialog }, data() { return { - // 璁惧鍥� + // 璁惧鍥惧璇濇 deviceShowDialog: false, - // 浠绘剰鍥� + // 浠绘剰鍥惧璇濇 anyPhotoDialog: false, - // 鏂板闂 + // 鏂板闂瀵硅瘽妗� proAddOrUpdDialogVisible: false, + // 鍩烘湰淇℃伅瀵硅瘽妗� + sceneInfoDialog: false, //宸︿晶鑿滃崟鏍忓姞杞界姸鎬� sideLoading: false, //鍙充晶鍐呭鏍忓姞杞界姸鎬� mainLoading: false, // 鎬讳换鍔� topTask: {}, + // 鍦烘櫙绫诲瀷id + sceneTypeId: undefined, + // 鎬讳换鍔″贰鏌ヨ鍒掓竻鍗� + curMonitorObjList: [], //瀛愪换鍔″垪琛� subtasks: [], //褰撳墠閫変腑鐨勪换鍔� @@ -105,6 +123,14 @@ curProList: [], //鎿嶄綔鎸夐挳 buttons: [ + { + name: '鍦烘櫙淇℃伅', + color: 'success', + // color: 'primary', + click: () => { + this.sceneInfoDialog = true; + } + }, { name: '鏂板闂', // color: 'success', @@ -140,81 +166,6 @@ //闂鐘舵�� proStatus() { return ProCheckProxy.proStatusArray(this.curProList); - }, - //浠诲姟闂瀹℃牳鎯呭喌缁熻淇℃伅 - summary() { - const _summary = [ - { - name: '浠诲姟鎬昏', - value: 0, - type: 'info' - }, - { - name: '闂鏈鏍�', - value: 0, - type: 'success', - icon: 'SuccessFilled' - }, - { - name: '闂閮ㄥ垎瀹℃牳', - value: 0, - type: 'success', - icon: 'SuccessFilled' - }, - { - name: '闂鍏ㄩ儴瀹℃牳', - value: 0, - type: 'success', - icon: 'SuccessFilled' - }, - { - name: '鏈暣鏀�', - value: 0, - type: 'info', - icon: 'WarningFilled' - }, - { - name: '鏁存敼鏈鏍�', - value: 0, - type: 'info', - icon: 'WarningFilled' - }, - { - name: '鏁存敼閮ㄥ垎瀹℃牳', - value: 0, - type: 'warning', - icon: 'WarningFilled' - }, - { - name: '鏁存敼鍏ㄩ儴瀹℃牳', - value: 0, - type: 'warning', - icon: 'WarningFilled' - } - ]; - - this.subtasks.forEach((s) => { - _summary[0].value++; - - if (s.data.proNum == 0) { - _summary[1].value++; - } else if (s.data.proCheckedNum == 0) { - _summary[3].value++; - } else if (s.data.proCheckedNum < s.data.proNum) { - _summary[2].value++; - } else { - _summary[1].value++; - } - }); - _summary.forEach((s, i) => { - if (i > 0) { - let per = Math.round((s.value / _summary[0].value) * 1000) / 10; - if (isNaN(per)) per = 0; - s.value = `${s.value}(${per}%)`; - } - }); - - return _summary; } }, methods: { @@ -232,6 +183,7 @@ this.mainLoading = true; this.curProList = []; this.curSubtask = {}; + this.sceneTypeId = formSearch.sceneTypeId; const param = { topTaskId: formSearch.topTask.tguid, sceneTypeId: formSearch.sceneTypeId @@ -254,6 +206,9 @@ this.mainLoading = false; } }); + taskApi.fetchMonitorObjectVersion(param.topTaskId).then((res) => { + this.curMonitorObjList = res; + }); }, //鐐瑰嚮宸︿晶鑿滃崟浠诲姟浜嬩欢 chooseSubtask(s) { @@ -261,7 +216,7 @@ this.sideLoading = false; this.mainLoading = true; // const controller = new AbortController(); - taskApi + problemApi .getProBySubtask(s.data.stGuid) .then((res) => { this.curProList = res; @@ -286,7 +241,7 @@ this.sideLoading = false; setTimeout(() => { this.mainLoading = true; - taskApi + problemApi .getProBySubtask(this.curSubtask.data.stGuid) .then((res) => { if (refresh) { @@ -325,7 +280,18 @@ </script> <style scoped> -.el-scrollbar { +.scrollbar-outer { + height: calc(100vh - 60px * 2 - 24px); + background-color: aliceblue; +} + +.scrollbar-inner { height: calc(100vh - 60px * 2 - 20px * 2 - var(--height-toolbar)); } + +.toolbar-sticky { + position: sticky; + z-index: 2; + top: 0; +} </style> -- Gitblit v1.9.3