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