| | |
| | | <template> |
| | | <el-dialog v-model="params.visible" :title="`发布评优任务(${params.data?.taskName || ''})`" width="50%" @open="openDialog" @close="dialogClose"> |
| | | <el-dialog v-model="params.visible" :title="`发布评优任务(${params.data?.taskName || ''})`" width="65%" @open="openDialog" @close="dialogClose"> |
| | | <div class="content"> |
| | | <el-form :model="form" ref="formRef" :rules="rules" label-position="top"> |
| | | <el-form-item prop="categoryEntities"> |
| | | <template #label> |
| | | 评优类别 |
| | | <el-button type="primary" icon="el-icon-view" text>查看第一轮候选结果</el-button> |
| | | 评优奖项 |
| | | <el-button type="primary" icon="el-icon-view" text @click="viewCandidateResult">查看第一轮候选结果</el-button> |
| | | </template> |
| | | <ul class="type-list"> |
| | | <li class="type-item"> |
| | | <div class="title">类别</div> |
| | | <div class="title">奖项</div> |
| | | <div class="introduction">认定标准</div> |
| | | <div class="number">名额</div> |
| | | <div class="tool">操作</div> |
| | |
| | | <el-checkbox-group v-model="form.pollingPersons"> |
| | | <el-checkbox v-for="item in employeeDict" :key="item.id" :label="item.dictKey"> |
| | | {{ item.dictValue }} |
| | | <el-button type="primary" icon="el-icon-edit" text @click="selectionHandler(item)">设置人员</el-button> |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | |
| | | <el-button @click="() => params.visible = false">取消</el-button> |
| | | <el-button type="primary" @click="taskPublic">确认发布</el-button> |
| | | </template> |
| | | <!-- 查看第一轮候选结果 --> |
| | | <candidateResult :params="candidateResultParams" /> |
| | | <!-- 添加评优种类候选人 --> |
| | | <addEcCandidate :params="addEcCandidateParams" /> |
| | | <!-- 人员选择 --> |
| | | <selectionDialog :params="selectionParams" /> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | |
| | | import { getDict } from '@/api/dict' |
| | | import { update, getEcList } from '@/api/evaluate/evaluateTask' |
| | | import addEcCandidate from './addEcCandidate.vue'; |
| | | import candidateResult from './candidateResult.vue'; |
| | | import selectionDialog from './selectionDialog.vue'; |
| | | |
| | | export default { |
| | | components: { |
| | | addEcCandidate |
| | | addEcCandidate, |
| | | candidateResult, |
| | | selectionDialog |
| | | }, |
| | | props: { |
| | | params: { |
| | |
| | | size: 100, |
| | | total: 0 |
| | | }, |
| | | addEcCandidateParams: {} |
| | | addEcCandidateParams: {}, |
| | | candidateResultParams: {}, |
| | | selectionParams: {} |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | const data = _.cloneDeep(this.form) |
| | | const { id } = this.params.data |
| | | data.id = id |
| | | data.candidateState = 2 |
| | | data.evaluateState = 1 |
| | | // data.candidateState = 2 |
| | | // data.evaluateState = 1 |
| | | data.pollingPersons = data.pollingPersons.join(',') |
| | | delete data.categoryEntities |
| | | update(data).then(res => { |
| | |
| | | visible: true, |
| | | data: row |
| | | } |
| | | }, |
| | | viewCandidateResult() { |
| | | this.candidateResultParams = { |
| | | visible: true, |
| | | data: this.params.data |
| | | } |
| | | }, |
| | | selectionHandler(row) { |
| | | this.selectionParams = { |
| | | visible: true, |
| | | data: row |
| | | } |
| | | } |
| | | } |
| | | }; |
| | |
| | | $borderColor: var(--el-border-color); |
| | | |
| | | .content { |
| | | max-height: 400px; |
| | | max-height: 600px; |
| | | overflow-y: auto; |
| | | |
| | | .time-span { |