Commit c633c017 authored by wangxl's avatar wangxl
parents 06002dfe 772b6845
...@@ -411,6 +411,9 @@ export default { ...@@ -411,6 +411,9 @@ export default {
}, },
getUnAssignProjectListByPage (params) { getUnAssignProjectListByPage (params) {
return fetch('/v1/science-admin/com_project_audit/getUnAssignProjectListByPage', params) return fetch('/v1/science-admin/com_project_audit/getUnAssignProjectListByPage', params)
},
getAssignExpertList (params) {
return fetch('/v1/science-admin/com-project-group-assign/getAssignExpertList', params)
} }
}, },
project: { project: {
......
...@@ -32,7 +32,12 @@ ...@@ -32,7 +32,12 @@
<a-divider style="height: 1px; background-color: #e8e8e8;" /> <a-divider style="height: 1px; background-color: #e8e8e8;" />
<a-table :dataSource="tableData" :columns="columns" rowKey="id" :pagination="false" :loading="loading"> <a-table :dataSource="tableData" :columns="columns" rowKey="id" :pagination="false" :loading="loading">
<template slot="projName" slot-scope="record"> <template slot="projName" slot-scope="record">
<a-tooltip placement="topLeft">
<template slot="title">
<span>{{ record.projName }}</span>
</template>
<a @click="recordClick(record,'view')">{{record.projName}}</a> <a @click="recordClick(record,'view')">{{record.projName}}</a>
</a-tooltip>
</template> </template>
<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>
...@@ -40,6 +45,12 @@ ...@@ -40,6 +45,12 @@
<template slot="expertEvaluation" slot-scope="record"> <template slot="expertEvaluation" slot-scope="record">
<a-tag :color="evaluationColor(record)">{{evaluationText(record)}}</a-tag> <a-tag :color="evaluationColor(record)">{{evaluationText(record)}}</a-tag>
</template> </template>
<template slot="projClassInfo" slot-scope="record">
{{ record.projClass == 1 ? "一般项目" : "重点项目" }}
</template>
<template slot="expertInfo" slot-scope="record">
<a-tag :color="record.expertType == 1 ? technology : finance">{{ record.expertType == 1 ? "技术专家" : "财务专家" }}</a-tag>
</template>
<template slot="option" slot-scope="record"> <template slot="option" slot-scope="record">
<a-popconfirm title="确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="recordClick(record,'del')"> <a-popconfirm title="确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="recordClick(record,'del')">
<a-button type="link" size="small">删除</a-button> <a-button type="link" size="small">删除</a-button>
...@@ -71,16 +82,20 @@ export default { ...@@ -71,16 +82,20 @@ export default {
searchForm: { projName: null, projNo: null, assignYear: null, personName: null, certId: null, sex: "", projType: getType() }, searchForm: { projName: null, projNo: null, assignYear: null, personName: null, certId: null, sex: "", projType: getType() },
tableData: [], tableData: [],
columns: [ columns: [
{ title: "项目名称", scopedSlots: { customRender: 'projName' } }, { title: "项目名称", scopedSlots: { customRender: 'projName' }, ellipsis: true, width: 300, },
{ title: '项目编号', dataIndex: 'projNo', align: 'center' }, { title: "项目分组", dataIndex: 'groupName', align: 'center' },
{ title: '专家姓名', dataIndex: 'personName', align: 'center' }, { title: "项目类别", scopedSlots: { customRender: 'projClassInfo' }, align: 'center' },
{ title: '申报单位', dataIndex: 'appUnitName', align: 'center' },
// { title: '项目编号', dataIndex: 'projNo', align: 'center' },
// { title: '性别', dataIndex: 'sex', align: 'center' }, // { title: '性别', dataIndex: 'sex', align: 'center' },
{ title: '证件号', dataIndex: 'certId', align: 'center' }, // { title: '证件号', dataIndex: 'certId', align: 'center' },
{ title: '专家姓名', dataIndex: 'personName', align: 'center' },
{ title: "专家类型", scopedSlots: { customRender: 'expertInfo' }, align: 'center' },
{ title: '专家单位', dataIndex: 'unitName', align: 'center' },
{ title: '手机号', dataIndex: 'mobile', align: 'center' }, { title: '手机号', dataIndex: 'mobile', align: 'center' },
// { title: '邮箱', dataIndex: 'email', align: 'center' }, // { title: '邮箱', dataIndex: 'email', align: 'center' },
// { title: '职称', dataIndex: 'titleName', align: 'center' }, // { title: '职称', dataIndex: 'titleName', align: 'center' },
// { title: '评审专业', scopedSlots: { customRender: 'spec' }, align: 'center' }, // { title: '评审专业', scopedSlots: { customRender: 'spec' }, align: 'center' },
{ title: '单位', dataIndex: 'unitName', align: 'center' },
{ title: '评分', dataIndex: 'totalScore', align: 'center' }, { title: '评分', dataIndex: 'totalScore', align: 'center' },
{ title: '评审状态', scopedSlots: { customRender: 'expertEvaluation', colName: 'gradeScore' }, align: 'center' }, { title: '评审状态', scopedSlots: { customRender: 'expertEvaluation', colName: 'gradeScore' }, align: 'center' },
// { title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: 120, }, // { title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: 120, },
...@@ -89,6 +104,8 @@ export default { ...@@ -89,6 +104,8 @@ export default {
loading: false, loading: false,
projId: null, projId: null,
visibleView: false, visibleView: false,
technology: "#2db7f5",
finance: "#87d068",
} }
}, },
created () { created () {
......
<template>
<div>
<a-row>
<a-col :span="24">
<a-table style="margin: 5px;" :dataSource="tableData" size="small" :columns="columns" rowKey="id" :pagination="false" :loading="loading">
<template slot="expertInfo" slot-scope="record">
<a-tag :color="record.expertType == 1 ? technology : finance">{{ record.expertType == 1 ? "技术专家" : "财务专家" }}</a-tag>
</template>
</a-table>
</a-col>
</a-row>
</div>
</template>
<script>
export default {
name: "GroupExpertDetail",
props: {
value: {
type: String,
default: () => {
return null;
},
},
},
data() {
return {
tableData: [],
columns: [
{ title: '证件号', dataIndex: 'certId', align: 'center' },
{ title: '姓名', dataIndex: 'personName', align: 'center' },
{ title: '单位', dataIndex: 'workUnit', align: 'center' },
{ title: "专家类型", scopedSlots: { customRender: 'expertInfo' }, align: 'center' },
{ title: '手机号', dataIndex: 'mobile', align: 'center' },
{ title: '电子邮箱', dataIndex: 'email', align: 'center' },
],
loading: true,
technology: "#2db7f5",
finance: "#87d068",
};
},
created() {
this.getAssignExpertList()
},
methods: {
getAssignExpertList() {
let pars = { groupId: this.value }
this.$api.projectAssign.getAssignExpertList(pars).then(({ data = {} }) => {
if (data) {
this.tableData = data
console.log(this.tableData)
this.loading = false
}
}).catch(() => { })
}
},
};
</script>
<template> <template>
<div class="app-content"> <div class="app-content" style="overflow: hidden;">
<a-row>
<a-col :span="24" class="titalCol">
<div style="margin: 10px;font-size:12pt;">项目组专家明细</div>
</a-col>
</a-row>
<a-row>
<a-col :span="24">
<group-expert-detail v-model="value"></group-expert-detail>
</a-col>
</a-row>
<a-row>
<a-col :span="24" class="titalCol">
<div style="margin: 10px;font-size:12pt;">项目组项目明细</div>
</a-col>
</a-row>
<a-row>
<a-col :span="24">
<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> <a-form-item>
<a-input placeholder="项目名称" v-model="searchForm.projName" :maxLength="100" style="width: 160px" /> <a-input placeholder="项目名称" v-model="searchForm.projName" :maxLength="100" style="width: 160px" />
...@@ -28,6 +46,9 @@ ...@@ -28,6 +46,9 @@
</template> </template>
</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-col>
</a-row>
<a-modal v-model="visibleView" v-if="visibleView" title="项目详情" width="94%" :footer="null" :dialog-style="{ top: '8%' }" destroyOnClose :maskClosable="false"> <a-modal v-model="visibleView" v-if="visibleView" title="项目详情" width="94%" :footer="null" :dialog-style="{ top: '8%' }" destroyOnClose :maskClosable="false">
<project-view v-model="projId" @close="() => this.visibleView = false" /> <project-view v-model="projId" @close="() => this.visibleView = false" />
</a-modal> </a-modal>
...@@ -46,11 +67,12 @@ ...@@ -46,11 +67,12 @@
import projectView from '@/views/report/project/components/projectView' import projectView from '@/views/report/project/components/projectView'
import projectSelect from '@/views/peAssign/components/projectSelect' import projectSelect from '@/views/peAssign/components/projectSelect'
import { isEmptyParams, hideIdCard } from '@/views/utils/common' import { isEmptyParams, hideIdCard } from '@/views/utils/common'
import groupExpertDetail from '@/views/assign/components/groupExpertDetail'
export default { export default {
name: "GroupDetail", name: "GroupDetail",
components: { components: {
projectView, projectSelect projectView, projectSelect, groupExpertDetail
}, },
props: { props: {
value: { value: {
...@@ -73,10 +95,11 @@ export default { ...@@ -73,10 +95,11 @@ export default {
loading: false, loading: false,
tableData: [], tableData: [],
columns: [ columns: [
{ dataIndex: 'appNo', title: '申请编号', ellipsis: true, width: 150 }, { title: '申请编号', dataIndex: 'appNo', ellipsis: true, width: 150 },
// { dataIndex: 'projName', title: '项目名称', ellipsis: true }, // { dataIndex: 'projName', title: '项目名称', ellipsis: true },
{ title: "项目名称", scopedSlots: { customRender: 'projName' }, ellipsis: true }, { title: "项目名称", scopedSlots: { customRender: 'projName' }, ellipsis: true },
{ title: "项目类别", scopedSlots: { customRender: 'projClassInfo' }, align: 'center', width: 80 }, { title: "项目类别", scopedSlots: { customRender: 'projClassInfo' }, align: 'center', width: 80 },
{ title: '申报单位', dataIndex: 'appUnitName', align: 'center', },
// { title: '项目编号', dataIndex: 'projNo', align: 'center' }, // { title: '项目编号', dataIndex: 'projNo', align: 'center' },
{ title: '学科名称', dataIndex: 'knowledgeName', align: 'center' }, { title: '学科名称', dataIndex: 'knowledgeName', align: 'center' },
{ title: '申报人', dataIndex: 'personName', align: 'center', width: 80 }, { title: '申报人', dataIndex: 'personName', align: 'center', width: 80 },
...@@ -174,3 +197,12 @@ export default { ...@@ -174,3 +197,12 @@ export default {
}, },
} }
</script> </script>
<style scoped>
.titalCol {
text-align: left;
background: #f8fafc;
font-weight: bold;
height: 48px;
}
</style>
...@@ -47,7 +47,12 @@ ...@@ -47,7 +47,12 @@
</template> </template>
<template slot="assignInfo" slot-scope="record"> <template slot="assignInfo" slot-scope="record">
<a-tag v-if="!record.expertList||record.expertList.length===0" :color="'red'">未分配</a-tag> <a-tag v-if="!record.expertList||record.expertList.length===0" :color="'red'">未分配</a-tag>
<a-tag v-else v-for="data in record.expertList" :key="data.id" :color="data.expertType == 1 ? technology : finance" @click="evaluationView(data)">{{data.personName}}</a-tag> <a-tooltip v-else v-for="data in record.expertList" :key="data.id" placement="topLeft">
<template slot="title">
<span>{{ data.workUnit }}</span>
</template>
<a-tag :color="data.expertType == 1 ? technology : finance" @click="evaluationView(data)">{{data.personName}}</a-tag>
</a-tooltip>
</template> </template>
<template slot="option" slot-scope="record"> <template slot="option" slot-scope="record">
<a-button type="link" size="small" @click="recordClick(record, 'edit')">修改</a-button> <a-button type="link" size="small" @click="recordClick(record, 'edit')">修改</a-button>
...@@ -78,7 +83,7 @@ ...@@ -78,7 +83,7 @@
<a-modal v-model="evaluationVisible" title="专家查看" width="1000px" :dialog-style="{ top: '15%' }" :footer="null" destroyOnClose> <a-modal v-model="evaluationVisible" title="专家查看" width="1000px" :dialog-style="{ top: '15%' }" :footer="null" destroyOnClose>
<assign-group-expert-view v-model="evaluationId" @close="closeAssignExpertView" /> <assign-group-expert-view v-model="evaluationId" @close="closeAssignExpertView" />
</a-modal> </a-modal>
<a-modal v-model="assignDetailVisible" title="专家查看" width="90%" :dialog-style="{ top: '5%' }" :footer="null" destroyOnClose> <a-modal v-model="assignDetailVisible" title="分配明细" width="90%" :dialog-style="{ top: '5%' }" :footer="null" destroyOnClose>
<assign-detail /> <assign-detail />
</a-modal> </a-modal>
<a-modal v-model="projectIntoGroupVisible" :title="projectIntoGroupTitle" width="70%" :dialog-style="{ top: '15%' }" :maskClosable="false" destroyOnClose> <a-modal v-model="projectIntoGroupVisible" :title="projectIntoGroupTitle" width="70%" :dialog-style="{ top: '15%' }" :maskClosable="false" destroyOnClose>
...@@ -89,7 +94,7 @@ ...@@ -89,7 +94,7 @@
</template> </template>
<project-select-into-group v-model="groupId" @close="closeProjectIntoGroupWindow" ref="childEdit"></project-select-into-group> <project-select-into-group v-model="groupId" @close="closeProjectIntoGroupWindow" ref="childEdit"></project-select-into-group>
</a-modal> </a-modal>
<a-modal v-model="projDetailVisible" title="项目组明细" width="95%" :dialog-style="{ top: '8%' }" :footer="null" class="custom-modal" destroyOnClose> <a-modal v-model="projDetailVisible" :title="projectGroupTitle" width="95%" :dialog-style="{ top: '8%' }" :footer="null" class="custom-modal" destroyOnClose>
<group-detail v-model="groupId" @close="() => this.projDetailVisible = false" /> <group-detail v-model="groupId" @close="() => this.projDetailVisible = false" />
</a-modal> </a-modal>
</div> </div>
...@@ -162,7 +167,7 @@ export default { ...@@ -162,7 +167,7 @@ export default {
projectIntoGroupVisible: false, projectIntoGroupVisible: false,
projectIntoGroupTitle: null, projectIntoGroupTitle: null,
technology: "#2db7f5", technology: "#2db7f5",
finance: "#f50", finance: "#87d068",
}; };
}, },
created () { created () {
......
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