From ceed4eccea0e2d9d51c6906ca214d251d7d22ca4 Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Tue, 26 Dec 2023 15:57:24 +0800
Subject: [PATCH] 头部按钮显示修改

---
 src/views/evaluate/components/viewEvaluateDetail.vue |  186 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 149 insertions(+), 37 deletions(-)

diff --git a/src/views/evaluate/components/viewEvaluateDetail.vue b/src/views/evaluate/components/viewEvaluateDetail.vue
index d0657b2..4ca4489 100644
--- a/src/views/evaluate/components/viewEvaluateDetail.vue
+++ b/src/views/evaluate/components/viewEvaluateDetail.vue
@@ -5,8 +5,11 @@
                 <div class="label">{{ item.title }}</div>
                 <div class="value" v-if="!item.isSlot">{{ item.value }}</div>
                 <div class="table" v-else>
-                    <avue-crud :option="item.option" :data="item.data" ref="crud" @current-change="currentChange"
-                        @size-change="sizeChange" @refresh-change="refreshChange"></avue-crud>
+                    <template v-if="item.evaluateState === 2">
+                        <avue-crud :option="item.option" :data="item.data" ref="crud" @current-change="currentChange"
+                            @size-change="sizeChange" @refresh-change="refreshChange"></avue-crud>
+                    </template>
+                    <template v-else>当前任务暂未结束</template>
                 </div>
             </div>
         </div>
@@ -14,11 +17,15 @@
 </template>
 
 <script setup>
-import { reactive, watch } from 'vue';
+import { reactive, watch, getCurrentInstance, ref } from 'vue';
 import {
     getCandidateList,
     getFinallyResult
 } from '@/api/evaluate/evaluateTask'
+import _ from 'lodash'
+
+const { findObject } = getCurrentInstance().appContext.config.globalProperties;
+
 
 const props = defineProps({
     params: {
@@ -36,7 +43,9 @@
     total: 0
 })
 
-const taskDateil = reactive([
+const taskDateil = ref(null)
+
+const personOption = reactive([
     {
         title: '任务名称',
         prop: 'taskName',
@@ -80,6 +89,12 @@
         width: '50%'
     },
     {
+        title: '候选人数量',
+        prop: 'candidateNum',
+        value: '',
+        width: '100%'
+    },
+    {
         title: '候选结果',
         prop: 'candidateResult',
         value: '',
@@ -90,6 +105,7 @@
         prop: 'finallyResult',
         isSlot: true,
         width: '100%',
+        evaluateState: 0,
         data: [],
         option: {
             height: 260,
@@ -103,39 +119,114 @@
             menuLeft: false,
             header: false,
             menuFixed: 'right',
-            column: [
-                {
-                    label: '评优项目',
-                    prop: 'evaluateTaskName',
-                    type: 'input',
-                },
-                // {
-                //     label: '任务类别',
-                //     prop: '',
-                //     type: 'input',
-                // },
-                {
-                    label: '候选人',
-                    prop: 'userName',
-                    type: 'input',
-                },
-                {
-                    label: '部门',
-                    prop: 'deptName',
-                    type: 'input'
-                },
-                {
-                    label: '票数',
-                    prop: 'voteNum',
-                    type: 'input'
-                }
-            ]
+            column: [{
+                label: '评优项目',
+                prop: 'evaluateTaskName',
+                type: 'input',
+            },
+            {
+                label: '候选人',
+                prop: 'userName',
+                type: 'input',
+            },
+            {
+                label: '部门',
+                prop: 'deptName',
+                type: 'input'
+            },
+            {
+                label: '票数',
+                prop: 'voteNum',
+                type: 'input'
+            }],
+        }
+    }
+])
+
+const sectionOption = reactive([
+    {
+        title: '任务名称',
+        prop: 'taskName',
+        value: '',
+        width: 'calc(100% / 3)'
+    },
+    {
+        title: '任务类别',
+        prop: 'taskType',
+        value: '',
+        width: 'calc(100% / 3)'
+    },
+    {
+        title: '评定标准',
+        prop: 'remark',
+        value: '',
+        width: 'calc(100% / 3)'
+    },
+    {
+        title: '候选人截止日期',
+        prop: 'candidateCutoffTime',
+        value: '',
+        width: '50%'
+    },
+    {
+        title: '评优截止日期',
+        prop: 'evaluateCutoffTime',
+        value: '',
+        width: '50%'
+    },
+    {
+        title: '评优评先状态',
+        prop: 'evaluateState',
+        value: '',
+        width: '100%'
+    },
+    {
+        title: '评优人数量',
+        prop: 'candidateNum',
+        value: '',
+        width: '100%'
+    },
+    {
+        title: '最终评定结果',
+        prop: 'finallyResult',
+        isSlot: true,
+        width: '100%',
+        evaluateState: 0,
+        data: [],
+        option: {
+            height: 260,
+            calcHeight: 30,
+            tip: false,
+            searchShow: true,
+            border: true,
+            index: true,
+            dialogClickModal: false,
+            menu: false,
+            menuLeft: false,
+            header: false,
+            menuFixed: 'right',
+            column: [{
+                label: '评优项目',
+                prop: 'evaluateTaskName',
+                type: 'input',
+            },
+            {
+                label: '部门',
+                prop: 'deptName',
+                type: 'input'
+            },
+            {
+                label: '票数',
+                prop: 'voteNum',
+                type: 'input'
+            }],
         }
     }
 ])
 
 watch(() => props.params.visible, (val) => {
-    val && initData()
+    if (!val) return
+    initData()
 }, {
     deep: true
 })
@@ -151,11 +242,13 @@
 }
 
 const getFinallyList = () => {
+    const { type } = props.params
     const { id, evaluateNum } = props.params.data
     const params = {
         evaluateTaskId: id,
         current: 1,
-        size: evaluateNum
+        size: evaluateNum,
+        type: !type ? 2 : 1
     }
     return getFinallyResult(params).then(res => {
         return res.data.data.records
@@ -164,17 +257,35 @@
 
 const initData = async () => {
     const data = props.params.data
+    taskDateil.value = !props.params.type ? personOption : sectionOption
     const status = {
         0: '未开始',
         1: '进行中',
         2: '已完成'
     }
 
-    for (const item of taskDateil) {
+    for (const item of taskDateil.value) {
         item.value = data[item.prop] || '暂未完善'
 
         if (['candidateState', 'evaluateState'].includes(item.prop)) {
-            item.value = status[item.value]
+            item.value = status[data[item.prop]]
+            if (item.prop === 'evaluateState') {
+                const obj = taskDateil.value.find(s => s.prop === 'finallyResult')
+                obj.evaluateState = data[item.prop]
+            }
+        }
+        
+        if (item.prop === 'candidateNum') {
+            const candidateNumStrArr = []
+            const { candidateNum } = _.cloneDeep(data)
+            candidateNum.forEach(item => {
+                const userList = []
+                item.users.forEach(user => {
+                    userList.push(user.name)
+                })
+                candidateNumStrArr.push(`${item.deptName}(${item.users.length}人):${userList.join('、')}`)
+            })
+            item.value = candidateNumStrArr.join('\n')
         }
 
         if (item.prop === 'candidateResult') {
@@ -205,11 +316,11 @@
         if (item.prop === 'finallyResult') {
             const res = await getFinallyList()
             item.data = res
-            console.log(item.data);
         }
     }
 
-    // 获取当前数据
+    console.log(taskDateil.value);
+
 }
 </script>
 
@@ -250,6 +361,7 @@
             background-color: aliceblue;
             border-right: 1px solid #eeeded;
         }
+
         .value {
             white-space: pre-line;
         }

--
Gitblit v1.9.3