| | |
| | | <el-button type="primary" icon="el-icon-plus" @click="handleAdd">新增</el-button> |
| | | <el-button type="danger" icon="el-icon-delete" plain v-if="permission.evaluateTask_delete" |
| | | @click="handleDelete">删除</el-button> |
| | | <el-button type="warning" plain icon="el-icon-download" @click="handleExport">导出</el-button> |
| | | <!-- <el-button type="warning" plain icon="el-icon-download" @click="handleExport">导出</el-button> --> |
| | | </template> |
| | | <template #menu="{ size, row, index }"> |
| | | <el-button type="primary" text plain icon="el-icon-view" @click="viewDateilDialog(row)">详情</el-button> |
| | | <el-button type="primary" text plain icon="el-icon-edit" @click="editDialog(row)">编辑</el-button> |
| | | <el-button type="primary" text plain icon="el-icon-position" @click="publicTimeBtn(row)" v-if="row.status === 2">发布</el-button> |
| | | <el-button type="primary" text plain icon="el-icon-download">导出</el-button> |
| | | <el-button type="primary" text plain icon="el-icon-position" @click="publicTimeBtn(row)" |
| | | v-if="row.candidateState === 2 && row.evaluateState === 0">发布</el-button> |
| | | <el-button type="primary" v-if="row.type === 0 && row.candidateState === 0" text plain icon="el-icon-plus" @click="addCandidateHandle(row)">新增候选人</el-button> |
| | | <!-- <el-button type="primary" text plain icon="el-icon-download">导出</el-button> --> |
| | | </template> |
| | | </avue-crud> |
| | | <!-- 发布弹窗 --> |
| | |
| | | </el-dialog> |
| | | <!-- 新增编辑弹窗 --> |
| | | <addDialog :params="addParams" @refreshTable="this.onLoad" /> |
| | | <!-- 新增候选人 --> |
| | | <addCandidate :params="addCandidateParams" @refreshTable="this.onLoad" /> |
| | | <!-- 预览弹窗 --> |
| | | <viewEvaluateDetail :params="viewEvaluateDetailParams" /> |
| | | </basic-container> |
| | | </template> |
| | | |
| | |
| | | import NProgress from 'nprogress'; |
| | | import 'nprogress/nprogress.css'; |
| | | import addDialog from './components/addDialog.vue'; |
| | | import addCandidate from './components/addCandidate.vue'; |
| | | import viewEvaluateDetail from './components/viewEvaluateDetail.vue'; |
| | | import { getDeptTree } from '@/api/system/dept'; |
| | | |
| | | export default { |
| | | components: { |
| | | addDialog, |
| | | addCandidate, |
| | | viewEvaluateDetail |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | // 新增候选人params |
| | | addCandidateParams: {}, |
| | | // 信息预览弹窗 |
| | | viewEvaluateDetailParams: {}, |
| | | }; |
| | | }, |
| | | watch: { |
| | |
| | | type: n, |
| | | }; |
| | | // 更改option |
| | | !n ? (this.option = option) : (this.option = sectionOption) |
| | | !n ? (this.option = option) : (this.option = sectionOption) |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | }, |
| | |
| | | ...row, |
| | | }, |
| | | }; |
| | | }, |
| | | viewDateilDialog(row) { |
| | | this.viewEvaluateDetailParams = { |
| | | visible: true, |
| | | data: row |
| | | } |
| | | }, |
| | | rowUpdate(row, index, done, loading) { |
| | | update(row).then( |
| | |
| | | if (['edit', 'view'].includes(type)) { |
| | | getDetail(this.form.id).then(res => { |
| | | if (type === 'view') { |
| | | this.deptData().then(deptRes => { |
| | | const candidates = []; |
| | | res.data.data.candidateNum.forEach(item => { |
| | | const value = deptRes.find(dept => dept.id === item.deptId); |
| | | candidates.push(`${value.title}: ${item.val || 0}人`); |
| | | }); |
| | | this.form.candidateNum = candidates.join('、'); |
| | | }); |
| | | const candidates = []; |
| | | res.data.data.candidateNum.forEach(item => { |
| | | const users = [] |
| | | item.users.forEach(item => users.push(item.name)) |
| | | candidates.push(`${item.deptName}(${item.val || 0}人): ${users.join('、')}`); |
| | | }) |
| | | this.form.candidateNum = candidates.join('\n'); |
| | | } |
| | | this.form = res.data.data; |
| | | }); |
| | |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | this.onLoad(this.page, { type: this.defaultTaskType }); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.query = params; |
| | | this.query = { |
| | | ...params, |
| | | type: this.defaultTaskType, |
| | | }; |
| | | this.page.currentPage = 1; |
| | | this.onLoad(this.page, params); |
| | | done(); |
| | |
| | | this.rowData = row; |
| | | this.dialogVisible = true; |
| | | }, |
| | | // 发布 |
| | | timeSubmit() { |
| | | const { id } = this.rowData; |
| | | const params = { |
| | | id, |
| | | // candidateState: 1, |
| | | evaluateState: 1, |
| | | evaluateCutoffTime: this.publicForm.publicData, |
| | | }; |
| | | add(params).then( |
| | | update(params).then( |
| | | res => { |
| | | this.$message({ |
| | | type: 'success', |
| | |
| | | ); |
| | | this.dialogVisible = false; |
| | | }, |
| | | addCandidateHandle(row) { |
| | | this.addCandidateParams = { |
| | | visible: true, |
| | | type: 0, |
| | | data: { |
| | | ...row |
| | | } |
| | | } |
| | | }, |
| | | tabChange(value) { |
| | | this.defaultTaskType = value.prop; |
| | | }, |