From 10ffa741546c5d36b14932e4a6c17faa81e479bd Mon Sep 17 00:00:00 2001 From: 董国庆 <364620639@qq.com> Date: 星期五, 16 五月 2025 14:41:07 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- culture/src/views/deliveryAssessment/projectTeamIntegral/detail.vue | 80 +++++++++++++++++++++++++++++++-------- 1 files changed, 63 insertions(+), 17 deletions(-) diff --git a/culture/src/views/deliveryAssessment/projectTeamIntegral/detail.vue b/culture/src/views/deliveryAssessment/projectTeamIntegral/detail.vue index 3c17bbb..94eda43 100644 --- a/culture/src/views/deliveryAssessment/projectTeamIntegral/detail.vue +++ b/culture/src/views/deliveryAssessment/projectTeamIntegral/detail.vue @@ -1,20 +1,23 @@ <template> - <div> + <div v-if="Object.keys(detailData).length"> <div class="top-box-header"> <div class="top-box-header-title"> <div>项目组总积分表</div> <div class="top-box-header-time"> - <div>评定开始时间:2024-02-09</div> - <div>评定结束始时间:2024-02-09</div> + <div>评定开始时间:{{ detailData.startTime }}</div> + <div>评定结束始时间:{{ detailData.endTime }}</div> </div> </div> <div class="top-box-integral"> <div :style="{ backgroundColor: ['rgba(232, 250, 246, 1)', 'rgba(254, 237, 220, 1)', 'rgba(239, 248, 255, 1)', 'rgba(255, 237, 238, 1)'][item - 1] }" v-for="item in 4" :key="item" class="top-box-integral-card"> - <div class="top-box-integral-card-title">{{ ['项目组总积分', '化验师积分', '实验员积分', '实验终止次数'][item - + <div class="top-box-integral-card-title">{{ ['项目组总积分', '菌种工程师积分', '菌种实验员积分', '菌种实验失败次数'][item - 1] }}</div> <div :style="{ color: ['rgba(4, 156, 154, 1)', 'rgba(255, 147, 0, 1)', 'rgba(23, 119, 213, 1)', 'rgba(255, 73, 85, 1)'][item - 1] }" - class="top-box-integral-card-num">99.9</div> + class="top-box-integral-card-num">{{ + detailData[['teamIntegral', 'engineerIntegral', 'experimenterIntegral', 'failCount'][item - 1]] + }} + </div> </div> </div> </div> @@ -27,8 +30,13 @@ </div> </div> <div class="integral-content-box-right"> - <div v-show="actionsLeftTab != 1" @wheel.prevent="handleWheel" class="integral-content-box-right-nameTab"> - <div @click="changeActiveName(item)" :class="activeNameTab == item && 'activeName'" class="integral-content-box-right-nameTab-name" v-for="item in 8" :key="item">张三</div> + <div v-show="actionsLeftTab != 1" @wheel.prevent="handleWheel" + class="integral-content-box-right-nameTab"> + <div @click="changeActiveName(item.userName)" + :class="activeNameTab == item.userName && 'activeName'" + class="integral-content-box-right-nameTab-name" + v-for="{ item, index } in detailData.detailExperimentVOS" :key="index">{{ item.userName }} + </div> </div> <div class="integral-content-box-right-thead"> <div>评定项</div> @@ -37,14 +45,31 @@ <div>结束时间</div> </div> <div class="integral-content-box-right-body"> - <div v-for="item in itemList" :key="item" class="integral-content-box-right-body-item"> + <div v-for="(item, index) in itemList" :key="index" + class="integral-content-box-right-body-item"> <div>{{ item.gainer }}</div> <div> - <div v-if="item.situationOne">{{ item.situationOne }}</div> - <div v-if="item.situationTwo">{{ item.situationTwo }}</div> + <div>{{ item.situationOne }}{{ + actionsLeftTab === 2 ? + (selectedExperimenter || {})[item.keys[0]] : + detailData[item.keys[0]] + }}</div> + <div>{{ item.situationTwo }}{{ + actionsLeftTab === 2 ? + (selectedExperimenter || {})[item.keys[1]] : + detailData[item.keys[1]] + }}</div> </div> - <div></div> - <div></div> + <div>{{ + actionsLeftTab === 2 ? + (selectedExperimenter || {})[item.keys[2]] : + detailData[item.keys[2]] + }}</div> + <div>{{ + actionsLeftTab === 2 ? + (selectedExperimenter || {})[item.keys[3]] : + detailData[item.keys[3]] + }}</div> </div> </div> </div> @@ -54,27 +79,30 @@ </template> <script> +import { getDetailData } from './service' export default { data() { return { actionsLeftTab: 1, - activeNameTab: 1, - actionspPersonnel: null, + activeNameTab: '', craftList: [ { gainer: '1、创新型课题', situationOne: '课题数:', situationTwo: '积分数:', + keys: ['innovateCount', 'innovateIntegral', 'innovateStartTime', 'innovateEndTime'] }, { gainer: '2、规程型课题', situationOne: '课题数:', situationTwo: '积分数:', + keys: ['regulationCount', 'regulationIntegral', 'regulationStartTime', 'regulationEndTime'] }, { gainer: '3、实验操作评定', situationOne: '考核数:', situationTwo: '积分数:', + keys: ['handleCount', 'handleIntegral', 'handleStartTime', 'handleEndTime'] }, ],//菌种工程师 assayList: [ @@ -82,8 +110,11 @@ gainer: '1、实验操作评定', situationOne: '考核数:', situationTwo: '积分数:', + keys: ['handleCount', 'handleIntegral', 'handleStartTime', 'handleEndTime'] }, ],//菌种实验员 + detailData: {}, + selectedExperimenter: null } }, computed: { @@ -99,14 +130,29 @@ } }, created() { - + getDetailData(this.$route.query.id).then(res => { + this.detailData = res; + // 确保detailExperimentVOS存在且是数组 + this.detailData.detailExperimentVOS = this.detailData.detailExperimentVOS || []; + if (this.detailData.detailExperimentVOS.length) { + this.selectedExperimenter = this.detailData.detailExperimentVOS[0]; + this.activeNameTab = this.selectedExperimenter.userName; + } else { + // 设置空对象保护 + this.selectedExperimenter = {}; + this.activeNameTab = ''; + } + }) }, methods: { changeActiveItem(item) { this.actionsLeftTab = item }, - changeActiveName(item) { - this.activeNameTab = item + changeActiveName(userName) { + this.activeNameTab = userName; + this.selectedExperimenter = this.detailData.detailExperimentVOS.find( + item => item.userName === userName + ); }, handleWheel(e) { if (this.scrollTimer) { -- Gitblit v1.7.1