From 901607bb65a40aebf55a246d64b09d3f3a99cd5c Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Fri, 05 Jan 2024 17:12:00 +0800
Subject: [PATCH] 个人评优任务更新
---
src/views/evaluate/components/IndividualTaskPublic.vue | 90 +++++++++++++++++++++++++++++++--------------
1 files changed, 62 insertions(+), 28 deletions(-)
diff --git a/src/views/evaluate/components/IndividualTaskPublic.vue b/src/views/evaluate/components/IndividualTaskPublic.vue
index e519611..c796021 100644
--- a/src/views/evaluate/components/IndividualTaskPublic.vue
+++ b/src/views/evaluate/components/IndividualTaskPublic.vue
@@ -1,8 +1,12 @@
<template>
- <el-dialog v-model="params.visible" title="发布评优任务" width="50%" @open="openDialog" @close="dialogClose">
+ <el-dialog v-model="params.visible" :title="`发布评优任务(${params.data?.taskName || ''})`" width="50%" @open="openDialog" @close="dialogClose">
<div class="content">
<el-form :model="form" ref="formRef" :rules="rules" label-position="top">
- <el-form-item label="任务类别" prop="taskType">
+ <el-form-item prop="categoryEntities">
+ <template #label>
+ 评优类别
+ <el-button type="primary" icon="el-icon-view" text>查看第一轮候选结果</el-button>
+ </template>
<ul class="type-list">
<li class="type-item">
<div class="title">类别</div>
@@ -10,39 +14,39 @@
<div class="number">名额</div>
<div class="tool">操作</div>
</li>
- <li class="type-item" v-for="(item, index) in form.taskType" :key="index">
- <div class="title">{{ item.title }}</div>
+ <li class="type-item" v-for="(item, index) in form.categoryEntities" :key="index">
+ <div class="title">{{ item.categoryName }}</div>
<el-tooltip effect="dark" placement="top">
<template #content>
- <p style="width: 500px;">{{ item.introduction }}</p>
+ <p style="max-width: 500px;">{{ item.standard }}</p>
</template>
<div class="introduction">
- {{ item.introduction }}
+ {{ item.standard }}
</div>
</el-tooltip>
- <div class="number">{{ item.number }}</div>
+ <div class="number">{{ item.peopleNum }}</div>
<div class="tool">
- <el-button type="primary" icon="el-icon-plus" text>添加候选人</el-button>
+ <el-button type="primary" icon="el-icon-plus" text @click="addEcCandidateHandler(item)">添加候选人</el-button>
</div>
</li>
</ul>
</el-form-item>
- <el-form-item label="投票人员" prop="employees">
- <el-checkbox-group v-model="form.employees">
+ <el-form-item label="投票人员" prop="pollingPersons">
+ <el-checkbox-group v-model="form.pollingPersons">
<el-checkbox v-for="item in employeeDict" :key="item.id" :label="item.dictKey">
{{ item.dictValue }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="第二轮任务结束时间" required>
- <el-form-item class="time-box" prop="candidateCutoffTimeStart">
- <el-date-picker v-model="form.candidateCutoffTimeStart" type="datetime" placeholder="请选择任务开始时间"
+ <el-form-item class="time-box" prop="evaluateCutoffTimeStart">
+ <el-date-picker v-model="form.evaluateCutoffTimeStart" type="datetime" placeholder="请选择任务开始时间"
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%;" />
</el-form-item>
<span class="time-span">至</span>
- <el-form-item class="time-box" prop="candidateCutoffTimeEnd">
- <el-date-picker v-model="form.candidateCutoffTimeEnd" type="datetime" placeholder="请选择任务结束时间"
+ <el-form-item class="time-box" prop="evaluateCutoffTimeEnd">
+ <el-date-picker v-model="form.evaluateCutoffTimeEnd" type="datetime" placeholder="请选择任务结束时间"
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%;" />
</el-form-item>
</el-form-item>
@@ -50,17 +54,22 @@
</div>
<template #footer>
<el-button @click="() => params.visible = false">取消</el-button>
- <el-button type="primary">确定发布</el-button>
+ <el-button type="primary" @click="taskPublic">确认发布</el-button>
</template>
+ <addEcCandidate :params="addEcCandidateParams" />
</el-dialog>
</template>
<script>
import _ from 'lodash';
import { getDict } from '@/api/dict'
-import { getEcList } from '@/api/evaluate/evaluateTask'
+import { update, getEcList } from '@/api/evaluate/evaluateTask'
+import addEcCandidate from './addEcCandidate.vue';
export default {
+ components: {
+ addEcCandidate
+ },
props: {
params: {
type: Object,
@@ -76,30 +85,31 @@
return {
employeeDict: [],
form: {
- taskType: [],
- employees: [],
- candidateCutoffTimeStart: '',
- candidateCutoffTimeEnd: ''
+ categoryEntities: [],
+ pollingPersons: [],
+ evaluateCutoffTimeStart: '',
+ evaluateCutoffTimeEnd: ''
},
rules: {
- taskType: [
+ categoryEntities: [
{ required: true, message: '任务类别不可为空', trigger: 'click' },
],
- employees: [
+ pollingPersons: [
{ required: true, message: '请选择评定人员', trigger: 'click' },
],
- candidateCutoffTimeStart: [
+ evaluateCutoffTimeStart: [
{ required: true, message: '请选择任务开始时间', trigger: 'click' },
],
- candidateCutoffTimeEnd: [
+ evaluateCutoffTimeEnd: [
{ required: true, message: '请选择任务开始时间', trigger: 'click' },
]
},
page: {
current: 1,
- size: 10,
+ size: 100,
total: 0
- }
+ },
+ addEcCandidateParams: {}
}
},
methods: {
@@ -111,8 +121,9 @@
const { id } = this.params.data
const { current, size } = this.page
getEcList(current, size, id).then(ecResult => {
- const { code, data } = ecResult.data
- console.log(data);
+ const { code, data: { records } } = ecResult.data
+ if (code !== 200) return this.$message.error('评优类别加载失败')
+ this.form.categoryEntities = records
})
},
initDict() {
@@ -123,6 +134,29 @@
}
this.employeeDict = data
})
+ },
+ taskPublic() {
+ this.$refs.formRef.validate(valid => {
+ if (!valid) return
+ const data = _.cloneDeep(this.form)
+ const { id } = this.params.data
+ data.id = id
+ data.candidateState = 2
+ data.evaluateState = 1
+ data.pollingPersons = data.pollingPersons.join(',')
+ delete data.categoryEntities
+ update(data).then(res => {
+ if (res.data.code !== 200) return
+ this.params.visible = false
+ this.$emit('refreshTable', { currentPage:1, pageSize: 10 })
+ })
+ })
+ },
+ addEcCandidateHandler(row) {
+ this.addEcCandidateParams = {
+ visible: true,
+ data: row
+ }
}
}
};
--
Gitblit v1.9.3