From d13cebe7fbadd396e91a989af331df8a8e7b40f8 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 21 Jan 2025 11:40:42 +0800
Subject: [PATCH] 考核结果查看详情
---
src/views/evaluate/components/viewEvaluateDetail.vue | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 170 insertions(+), 0 deletions(-)
diff --git a/src/views/evaluate/components/viewEvaluateDetail.vue b/src/views/evaluate/components/viewEvaluateDetail.vue
index d22cf1e..fa20021 100644
--- a/src/views/evaluate/components/viewEvaluateDetail.vue
+++ b/src/views/evaluate/components/viewEvaluateDetail.vue
@@ -1,10 +1,180 @@
<template>
+ <el-drawer v-model="props.params.visible" @open="openDrawer" direction="rtl" size="50%">
+ <template #header>
+ <div class="drawer-title">{{ props.params.data?.taskName || '评优任务详情' }}</div>
+ </template>
+ <el-collapse v-model="collapseParams.activeNames">
+ <el-collapse-item v-if="!type()" title="当前任务评优奖项" name="1">
+ <ul class="type-list">
+ <li class="type-item">
+ <div class="title">奖项</div>
+ <div class="introduction">认定标准</div>
+ <div class="number">名额</div>
+ </li>
+ <li class="type-item" v-for="(item, index) in collapseParams.categoryEntities" :key="index">
+ <div class="title">{{ item.categoryName }}</div>
+ <el-tooltip effect="dark" placement="top">
+ <template #content>
+ <p style="max-width: 500px;">{{ item.standard }}</p>
+ </template>
+ <div class="introduction">
+ {{ item.standard }}
+ </div>
+ </el-tooltip>
+ <div class="number">{{ item.peopleNum }}人</div>
+ </li>
+ </ul>
+ </el-collapse-item>
+ <el-collapse-item v-if="!type()" name="2">
+ <template #title>
+ 第一轮候选结果
+ <el-tag
+ style="margin-left: 10px;"
+ :type="status[props.params.data.candidateState].type">
+ 当前状态:{{ status[props.params.data.candidateState].text }}
+ </el-tag>
+ </template>
+ <firstRoundResult :params="{ data: props.params.data }" />
+ </el-collapse-item>
+ <el-collapse-item name="3">
+ <template #title>
+ 最终评优结果
+ <el-tag
+ style="margin-left: 10px;"
+ :type="status[props.params.data.evaluateState].type">
+ 当前状态:{{ status[props.params.data.evaluateState].text }}
+ </el-tag>
+ </template>
+ <secondRoundResult :params="{ data: props.params.data }" />
+ </el-collapse-item>
+ </el-collapse>
+ </el-drawer>
</template>
<script setup>
+import firstRoundResult from './firstRoundResult.vue';
+import secondRoundResult from './secondRoundResult.vue';
+import { inject, markRaw, onMounted, reactive } from 'vue';
+import { getEcList } from '@/api/evaluate/evaluateTask'
+
+const props = defineProps({
+ params: {
+ type: Object,
+ default: () => {
+ return {
+ visible: false,
+ data: {}
+ }
+ }
+ }
+})
+
+const type = inject('type')
+
+const status = markRaw({
+ 0: {
+ text: '未开始',
+ type: 'warning'
+ },
+ 1: {
+ text: '进行中',
+ type: 'success'
+ },
+ 2: {
+ text: '已完成',
+ type: 'primary'
+ },
+})
+
+const collapseParams = reactive({
+ activeNames: ['1'],
+ categoryEntities: []
+})
+
+const pageParams = reactive({
+ current: 1,
+ size: 10,
+ total: 0
+})
+
+const currentTaskParams = reactive({
+ data: {}
+})
+
+const openDrawer = () => {
+ const { id } = props.params.data
+ const { current, size } = pageParams
+ getEcList(current, size, id).then(ecResult => {
+ const { code, data: { records } } = ecResult.data
+ if (code !== 200) return this.$message.error('评优类别加载失败')
+ collapseParams.categoryEntities = records
+ })
+ currentTaskParams.data = props.params.data
+ collapseParams.activeNames = !type() ? ['1'] : ['3']
+}
</script>
<style lang="scss" scoped>
+$borderColor: var(--el-border-color);
+
+.drawer-title {
+ border-left: 3px solid #409eff;
+ padding-left: 10px;
+}
+
+.type-list {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+ width: 100%;
+ border: 1px solid $borderColor;
+ border-radius: var(--el-border-radius-base);
+ box-sizing: border-box;
+
+ .type-item {
+ display: flex;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+
+ div {
+ border-bottom: 1px solid $borderColor;
+ flex-shrink: 0;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .title {
+ flex: 2;
+ }
+
+ .introduction {
+ flex: 5;
+ flex-shrink: 0;
+
+ border: {
+ right: 1px solid $borderColor;
+ left: 1px solid $borderColor;
+ }
+ }
+
+ .number {
+ flex: 1;
+ }
+
+ .tool {
+ flex: 2;
+ border-left: 1px solid $borderColor;
+ }
+
+ &:last-child {
+ div {
+ border-bottom: 0;
+ }
+ }
+ }
+}
</style>
\ No newline at end of file
--
Gitblit v1.9.3