Commit 6a361ca8 authored by 徐俊's avatar 徐俊
parents f96e3d9f 1ead41ec
...@@ -24,9 +24,14 @@ ...@@ -24,9 +24,14 @@
<template slot="spec" slot-scope="record"> <template slot="spec" slot-scope="record">
<span v-for="data in record.specList" :key="data.id" :color="'green'">{{data.specName+' '}}</span> <span v-for="data in record.specList" :key="data.id" :color="'green'">{{data.specName+' '}}</span>
</template> </template>
<template slot="expertEvaluation" slot-scope="record"> <template slot="evaluationType" slot-scope="record">
<a-tag :color="evaluationColor(record)">{{evaluationText(record)}}</a-tag> <a-tag :color="'#87d068'" v-if="record.evaluationType==1">A类(通过)</a-tag>
<a-tag :color="'#2db7f5'" v-if="record.evaluationType==2">B类(建议修改)</a-tag>
<a-tag :color="'#f50'" v-if="record.evaluationType==3">C类(不通过)</a-tag>
</template> </template>
<!-- <template slot="expertEvaluation" slot-scope="record">
<a-tag :color="evaluationColor(record)">{{evaluationText(record)}}</a-tag>
</template> -->
<template slot="option" slot-scope="record"> <template slot="option" slot-scope="record">
<a-button type="link" size="small" v-if="!!record.auditState && record.auditState == 2" @click="recordClick(record,'eView')">查看</a-button> <a-button type="link" size="small" v-if="!!record.auditState && record.auditState == 2" @click="recordClick(record,'eView')">查看</a-button>
<!-- <a-popconfirm title="确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="recordClick(record,'del')"> <!-- <a-popconfirm title="确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="recordClick(record,'del')">
...@@ -60,15 +65,12 @@ export default { ...@@ -60,15 +65,12 @@ export default {
columns: [ columns: [
{ title: '姓名', dataIndex: 'personName', align: 'center' }, { title: '姓名', dataIndex: 'personName', align: 'center' },
{ title: '性别', dataIndex: 'sex', align: 'center' }, { title: '性别', dataIndex: 'sex', align: 'center' },
// { title: '证件号', dataIndex: 'certId', align: 'center' },
// { title: '手机号', dataIndex: 'mobile', align: 'center' },
// { title: '邮箱', dataIndex: 'email', align: 'center' },
{ title: '职称', dataIndex: 'titleName', align: 'center' }, { title: '职称', dataIndex: 'titleName', align: 'center' },
{ title: '评审专业', scopedSlots: { customRender: 'spec' }, align: 'center' }, { title: "专家单位", dataIndex: "workUnit", align: 'center' },
{ title: '专家单位', dataIndex: 'unitName', align: 'center' }, { title: "评审意见", dataIndex: "remark", align: 'center' },
// { title: '用户名', dataIndex: 'username', align: 'center' },
{ title: '评分', dataIndex: 'totalScore', align: 'center' }, { title: '评分', dataIndex: 'totalScore', align: 'center' },
{ title: '评审状态', scopedSlots: { customRender: 'expertEvaluation', colName: 'gradeScore' }, align: 'center' }, { title: '评审结果', scopedSlots: { customRender: 'evaluationType' }, align: 'center' },
// { title: '评审状态', scopedSlots: { customRender: 'expertEvaluation' }, align: 'center' },
{ title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: 120, }, { title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: 120, },
], ],
pagination: { pageIndex: 1, pageSize: this.$defaultPageSize, total: 0, pageSizeOptions: this.$defaultPageSizeOptions }, pagination: { pageIndex: 1, pageSize: this.$defaultPageSize, total: 0, pageSizeOptions: this.$defaultPageSizeOptions },
......
<template> <template>
<div class="app-content"> <div class="app-content">
<a-form :form="form" :model="searchForm" layout="inline" class="search_form"> <a-form :form="form" :model="searchForm" layout="inline" class="search_form">
<a-form-item style="min-height:36px"> <!-- <a-form-item style="min-height:36px">
<unit-tree-select v-model="searchForm.treeCode" :unitType="2" /> <unit-tree-select v-model="searchForm.treeCode" :unitType="2" />
</a-form-item> </a-form-item> -->
<br />
<a-form-item> <a-form-item>
<a-input placeholder="申报单位" v-model="searchForm.appUnitName" :maxLength="100" style="width: 150px" /> <a-input placeholder="申报单位" v-model="searchForm.appUnitName" :maxLength="100" style="width: 150px" />
</a-form-item> </a-form-item>
...@@ -32,12 +31,13 @@ ...@@ -32,12 +31,13 @@
<btn-group :data="tabDate" :itemCount="itemCount" v-model="activekey" @change="callback" /> <btn-group :data="tabDate" :itemCount="itemCount" v-model="activekey" @change="callback" />
</div> </div>
<div style="display: inline-block;width:50%;text-align: right;"> <div style="display: inline-block;width:50%;text-align: right;">
<a-tag :color="technology">{{ '技术专家' }}</a-tag>&nbsp;<a-tag :color="finance">{{ '财务专家' }}</a-tag>
<a-button type="primary" @click="exportData" icon="download">Excel</a-button> <a-button type="primary" @click="exportData" icon="download">Excel</a-button>
</div> </div>
</div> </div>
<a-divider style="height: 1px; background-color: #e8e8e8;" /> <a-divider style="height: 1px; background-color: #e8e8e8;" />
<span class="form-description" v-if="description"> ※ 审核时间:{{ description }}</span> <span style="margin:6px;display: block;color:red;">评分为 总分/平均分,最终得分=技术专家平均分X80% + 财务专家X20%</span>
<a-table :dataSource="tableData" :columns="columns" :scroll="{ x: 'max-content' }" rowKey="id" :pagination="false" :loading="loading"> <a-table :dataSource="tableData" :columns="columns" rowKey="id" :scroll="{ x: 'max-content' }" :pagination="false" :loading="loading">
<template slot="projName" slot-scope="record"> <template slot="projName" slot-scope="record">
<a @click="recordClick(record, 'view')">{{record.projName}}</a> <a @click="recordClick(record, 'view')">{{record.projName}}</a>
</template> </template>
...@@ -51,6 +51,21 @@ ...@@ -51,6 +51,21 @@
<a-button type="link" size="small" @click="recordClick(record, 'evaluation')">专家评审明细</a-button> <a-button type="link" size="small" @click="recordClick(record, 'evaluation')">专家评审明细</a-button>
<a-button type="link" size="small" v-if="record.auditResult == 1" @click="recordClick(record, 'audit')">审核</a-button> <a-button type="link" size="small" v-if="record.auditResult == 1" @click="recordClick(record, 'audit')">审核</a-button>
</template> </template>
<p slot="expandedRowRender" slot-scope="record" style="margin: 0;">
<a-table :dataSource="record.assignList" :columns="innerColumns" rowKey="id" :pagination="false">
<template slot="personName" slot-scope="obj">
<a-tag :color="obj.expertType == 1 ? technology : finance">{{obj.personName}}</a-tag>
</template>
<template slot="evaluationType" slot-scope="obj">
<a-tag :color="'#87d068'" v-if="obj.evaluationType==1">A类(通过)</a-tag>
<a-tag :color="'#2db7f5'" v-if="obj.evaluationType==2">B类(建议修改)</a-tag>
<a-tag :color="'#f50'" v-if="obj.evaluationType==3">C类(不通过)</a-tag>
</template>
<template slot="option" slot-scope="obj">
<a-button type="link" size="small" @click="recordClick(obj,'eView')">查看</a-button>
</template>
</a-table>
</p>
</a-table> </a-table>
<a-pagination v-if="pagination.total > 0" :total="pagination.total" show-size-changer show-quick-jumper v-model="pagination.pageIndex" :page-size="pagination.pageSize" :page-size-options="pagination.pageSizeOptions" @showSizeChange="showSizeChange" @change="change" :showTotal="() => `共 ${pagination.total} 条`" /> <a-pagination v-if="pagination.total > 0" :total="pagination.total" show-size-changer show-quick-jumper v-model="pagination.pageIndex" :page-size="pagination.pageSize" :page-size-options="pagination.pageSizeOptions" @showSizeChange="showSizeChange" @change="change" :showTotal="() => `共 ${pagination.total} 条`" />
<a-modal v-model="assignInfoVisible" title="分配详情" width="85%" :dialog-style="{ top: '8%' }" :footer="null" destroyOnClose> <a-modal v-model="assignInfoVisible" title="分配详情" width="85%" :dialog-style="{ top: '8%' }" :footer="null" destroyOnClose>
...@@ -65,6 +80,9 @@ ...@@ -65,6 +80,9 @@
<a-modal v-model="taskFileInfoView" title="查看项目任务书" :width="'60%'" :maskClosable="false" :footer="null" destroyOnClose class="sc_modal"> <a-modal v-model="taskFileInfoView" title="查看项目任务书" :width="'60%'" :maskClosable="false" :footer="null" destroyOnClose class="sc_modal">
<task-file-info v-model="ProjId" @close="() => this.taskFileInfoView = false" /> <task-file-info v-model="ProjId" @close="() => this.taskFileInfoView = false" />
</a-modal> </a-modal>
<a-modal v-model="visibleEvaluationView" title="专家评分" width="90%" :dialog-style="{ top: '8%' }" :footer="null" destroyOnClose>
<score-view v-model="assignId" @close="() => this.visibleEvaluationView = false" />
</a-modal>
</div> </div>
</template> </template>
...@@ -78,14 +96,17 @@ import audit from '@/views/audit/project/audit' ...@@ -78,14 +96,17 @@ import audit from '@/views/audit/project/audit'
import projectView from '@/views/report/project/components/projectView' import projectView from '@/views/report/project/components/projectView'
import unitTreeSelect from '@/views/components/common/unitTreeSelect' import unitTreeSelect from '@/views/components/common/unitTreeSelect'
import taskFileInfo from '@/views/report/task/components/taskFileInfo' import taskFileInfo from '@/views/report/task/components/taskFileInfo'
import scoreView from '@/views/evaluation/components/scoreView'
export default { export default {
name: "projectFinal", name: "projectFinal",
components: { components: {
projectView, paraSelect, audit, unitTreeSelect, projectAssignDetail, taskFileInfo projectView, paraSelect, audit, unitTreeSelect, projectAssignDetail, taskFileInfo, scoreView
}, },
data () { data () {
return { return {
technology: "#2db7f5",
finance: "#f50",
// 选项卡 // 选项卡
panes: { count1: 0, count2: 0, count3: 0, count4: 0, count5: 0, }, panes: { count1: 0, count2: 0, count3: 0, count4: 0, count5: 0, },
form: this.$form.createForm(this, { name: 'advanced_search' }), form: this.$form.createForm(this, { name: 'advanced_search' }),
...@@ -112,19 +133,29 @@ export default { ...@@ -112,19 +133,29 @@ export default {
{ key: "", tab: "所有" }, { key: "", tab: "所有" },
], ],
itemCount: [0, 0, 0, 0, 0], itemCount: [0, 0, 0, 0, 0],
tableData: [],
columns: [ columns: [
{ title: "项目名称", scopedSlots: { customRender: 'projName' } }, { title: "项目名称", scopedSlots: { customRender: 'projName' } },
{ title: "项目编号", dataIndex: "projNo", align: 'center' }, { title: "项目编号", dataIndex: "projNo", align: 'center' },
{ title: "专家评分(总分/平均分)", dataIndex: "gradeScore", align: 'center' },
{ title: "开始时间", dataIndex: "startDate", align: 'center' },
{ title: "结束时间", dataIndex: "endDate", align: 'center' },
{ title: "申报年度", dataIndex: "reportYear", align: 'center' },
{ title: '申报单位', dataIndex: 'appUnitName', align: 'center' }, { title: '申报单位', dataIndex: 'appUnitName', align: 'center' },
{ title: '申报人', dataIndex: 'appPersonName', align: 'center' }, { title: '申报人', dataIndex: 'appPersonName', align: 'center' },
{ title: '技术专家评分', dataIndex: 'gradeScore1', align: 'center' },
{ title: '财务专家评分', dataIndex: 'gradeScore2', align: 'center' },
{ title: '最终得分', dataIndex: 'gradeScore', align: 'center' },
// { title: "开始时间", dataIndex: "startDate", align: 'center' },
// { title: "结束时间", dataIndex: "endDate", align: 'center' },
// { title: "申报年度", dataIndex: "reportYear", align: 'center' },
//{ title: '是否选择接受立项不资助', dataIndex: 'isAccept', align: 'center' }, //{ title: '是否选择接受立项不资助', dataIndex: 'isAccept', align: 'center' },
//{ title: '是否存在境外机构或人员参与', dataIndex: 'isOverseas', align: 'center' }, //{ title: '是否存在境外机构或人员参与', dataIndex: 'isOverseas', align: 'center' },
{ title: '审核状态', dataIndex: 'auditResultName', align: 'center' }, { title: '审核状态', dataIndex: 'auditResultName', align: 'center' },
{ title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', width: 120, },
],
tableData: [],
innerColumns: [
{ title: "姓名", scopedSlots: { customRender: 'personName' }, align: 'center' },
{ title: "单位", dataIndex: "workUnit", align: 'center' },
{ title: "评审意见", dataIndex: "remark", align: 'center' },
{ title: '评分', dataIndex: 'totalScore', align: 'center' },
{ title: '评审结果', scopedSlots: { customRender: 'evaluationType' }, align: 'center' },
{ title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: 120, }, { title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: 120, },
], ],
excelCol: [ excelCol: [
...@@ -153,9 +184,11 @@ export default { ...@@ -153,9 +184,11 @@ export default {
// 弹窗标志 // 弹窗标志
visibleAudit: false, visibleAudit: false,
visibleView: false, visibleView: false,
visibleEvaluationView: false,
isButten: false, isButten: false,
description: '', description: '',
id: null, id: null,
assignId: null,
objectId: null, objectId: null,
taskFileInfoView: false, taskFileInfoView: false,
ProjId: null, ProjId: null,
...@@ -202,10 +235,21 @@ export default { ...@@ -202,10 +235,21 @@ export default {
this.tableData.forEach(e => { this.tableData.forEach(e => {
e.startDate = moment(e.startDate).format('YYYY-MM-DD') e.startDate = moment(e.startDate).format('YYYY-MM-DD')
e.endDate = moment(e.endDate).format('YYYY-MM-DD') e.endDate = moment(e.endDate).format('YYYY-MM-DD')
if (e.totalScore) // 技术专家
e.gradeScore = e.totalScore + '/' + e.averageScore if (!!e.technologyScore)
e.gradeScore1 = e.technologyScore + '/' + e.technologyAverageScore
else
e.gradeScore1 = ' 0/0'
// 财务专家
if (!!e.economyScore)
e.gradeScore2 = e.economyScore + '/' + e.economyAverageScore
else
e.gradeScore2 = ' 0/0'
// 最后得分
if (!!e.calculateScore)
e.gradeScore = e.calculateScore + ''
else else
e.gradeScore = ' 0/0' e.gradeScore = '0'
}) })
this.loading = false this.loading = false
} }
...@@ -252,6 +296,9 @@ export default { ...@@ -252,6 +296,9 @@ export default {
} else if (type === 'viewProjectTask') { } else if (type === 'viewProjectTask') {
this.ProjId = record.auditObjectId this.ProjId = record.auditObjectId
this.taskFileInfoView = true; this.taskFileInfoView = true;
} else if (type === 'eView') {
this.assignId = record.id
this.visibleEvaluationView = true
} }
}, },
callback (key) { callback (key) {
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<a-row type="flex"> <!-- <a-row type="flex">
<a-col :span="4" class="bg-gray"> <a-col :span="4" class="bg-gray">
<div class="special-middle" style="text-align:center!important;"> <div class="special-middle" style="text-align:center!important;">
<div>是否推荐立项支持 </div> <div>是否推荐立项支持 </div>
...@@ -46,6 +46,22 @@ ...@@ -46,6 +46,22 @@
</a-radio-group> </a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> -->
<a-row type="flex">
<a-col :span="4" class="bg-gray">
<div class="special-middle" style="text-align:center!important;">
<div>评审结果 </div>
</div>
</a-col>
<a-col :span="20">
<a-form-model-item prop="evaluationType">
<a-radio-group v-model="formData.evaluationType">
<a-radio :value="1">A类(通过)</a-radio>
<a-radio :value="2">B类(建议修改)</a-radio>
<a-radio :value="3">C类(不通过)</a-radio>
</a-radio-group>
</a-form-model-item>
</a-col>
</a-row> </a-row>
</div> </div>
</div> </div>
...@@ -203,7 +219,7 @@ export default { ...@@ -203,7 +219,7 @@ export default {
additionalScore: { required: true, message: "*", trigger: "blur" }, additionalScore: { required: true, message: "*", trigger: "blur" },
recommendFunding: { required: true, message: "*", trigger: "blur" }, recommendFunding: { required: true, message: "*", trigger: "blur" },
supportState: { required: true, message: "请选择是否支持立项", trigger: "blur" }, supportState: { required: true, message: "请选择是否支持立项", trigger: "blur" },
evaluationType: { required: true, message: "*", trigger: "blur" }, evaluationType: { required: true, message: "*", trigger: "change" },
}, },
projectInfo: { projectInfo: {
projName: '', projName: '',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment