Commit 0670b538 authored by wangxl's avatar wangxl

4444

parent adc2ae3c
...@@ -243,9 +243,6 @@ export default { ...@@ -243,9 +243,6 @@ export default {
watch: { watch: {
value: { value: {
handler (value) { handler (value) {
if (!!!value)
this.selected = ''
else
this.selected = value + '' this.selected = value + ''
this.$emit("input", this.selected) this.$emit("input", this.selected)
}, },
......
...@@ -2,8 +2,14 @@ ...@@ -2,8 +2,14 @@
<template> <template>
<div class="app-content" style="height: 76vh;overflow: auto;"> <div class="app-content" style="height: 76vh;overflow: auto;">
<a-spin :spinning="loading" style="width: 100%;height: 100%;"> <a-spin :spinning="loading" style="width: 100%;height: 100%;">
<div class="page-card">
<a-tabs type="card" hideAdd size="small" @change="callback">
<a-tab-pane :key="item.key" :tab="item.title" v-for="(item) in tabsData">
</a-tab-pane>
</a-tabs>
</div>
<div class="page-content"> <div class="page-content">
<task-edit v-model="value" @close="closeWindow" @load="onLoad" ref="taskCreate" /> <task-edit v-model="value" @close="closeWindow" @load="onLoad" ref="taskCreate" :tabsData.sync="tabsData" />
</div> </div>
<div class="page-footer"> <div class="page-footer">
<a-button type="primary" @click="save">保 存</a-button> <a-button type="primary" @click="save">保 存</a-button>
...@@ -23,6 +29,17 @@ export default { ...@@ -23,6 +29,17 @@ export default {
data () { data () {
return { return {
loading: false, loading: false,
tabsData: [
{ title: '填报信息', key: '0', isShow: true },
{ title: '项目组主要成员及单位', key: '1', isShow: true },
{ title: '项目主要实施内容和目标', key: '2', isShow: true },
{ title: '申请书正文', key: '3', isShow: true },
{ title: '经费预算及设备明细', key: '4', isShow: true },
{ title: '项目实施阶段及任务', key: '5', isShow: true },
{ title: '项目课题设置', key: '6', isShow: true },
{ title: '绩效目标表', key: '7', isShow: true },
{ title: '附件信息', key: '8', isShow: true },
],
} }
}, },
props: { props: {
...@@ -48,6 +65,13 @@ export default { ...@@ -48,6 +65,13 @@ export default {
onLoad (value) { onLoad (value) {
this.loading = value this.loading = value
}, },
callback (key) {
var index = parseInt(key)
this.tabsData.forEach(e => {
e.isShow = false
})
this.tabsData[index].isShow = true;
},
}, },
} }
</script> </script>
...@@ -60,9 +84,14 @@ export default { ...@@ -60,9 +84,14 @@ export default {
width: 8px; width: 8px;
height: 6px; height: 6px;
} }
.page-card {
width: 100%;
height: 50px;
overflow: auto;
}
.page-content { .page-content {
width: 100%; width: 100%;
height: calc(100% - 40px); height: calc(100% - 90px);
overflow: auto; overflow: auto;
} }
.page-footer { .page-footer {
......
<template> <template>
<div> <div class="from-table font-line-space">
<a-form-model ref="form" :model="formData" :rules="rules" style="border-top: 0px" class="from-table font-line-space"> <div v-if="tabsData[0].isShow">
<a-form-model ref="form" :model="formData" :rules="rules" style="border-top: 0px">
<a-row> <a-row>
<a-col :span="24" style="border-top: 0px"> <a-col :span="24" style="border-top: 0px">
<div class="tb-title"> <div class="tb-title">
...@@ -612,7 +613,7 @@ ...@@ -612,7 +613,7 @@
<div class="special-middle"> <div class="special-middle">
<div> <div>
<a-form-model-item prop="isTechnologyReport"> <a-form-model-item prop="isTechnologyReport">
<base-select v-model="formData.isTechnologyReport" :type="12" :isAll="true" :width="80" /> <base-select v-model="formData.isTechnologyReport" :type="12" :isAll="true" :width="120" />
</a-form-model-item> </a-form-model-item>
</div> </div>
</div> </div>
...@@ -636,6 +637,438 @@ ...@@ -636,6 +637,438 @@
</a-col> </a-col>
</a-row> </a-row>
</a-form-model> </a-form-model>
<!-- 项目主要参与单位及分工 -->
<participate-units-info :dataList.sync="value.participateUnits" />
</div>
<div v-if="tabsData[1].isShow">
<a-row>
<a-col :span="24" style="border-top: 0px">
<div class="main-title">
<span>项目人员情况</span>
</div>
</a-col>
</a-row>
<a-row>
<a-col :span="24" style="border-top: 0px">
<div class="tb-title">
<span>项目负责人</span>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>姓名</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.appPersonName }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>性别</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.sex }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>出生日期</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ moment(value.birthday).format('YYYY-MM-DD') }}
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>证件类型</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
身份证
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>证件号码</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.certId }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>民族</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.nationName }}
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>职称</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.titleName }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>从事专业</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.specName }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>学位</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.degreeName }}
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>职务</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.dutyName }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>电话</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.mobile }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>电子邮箱</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.email }}
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>个人通讯地址</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.address }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>工作单位</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.appUnitName }}
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>每年工作时间(月)</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ value.jobTime }}
</div>
</div>
</a-col>
</a-row>
<!-- 项目组成员 -->
<project-member-info :dataList.sync="value.members" />
<a-row type="flex">
<a-col :span="24" style="text-align: center;">
<div class="special-middle">
&nbsp;
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>总人数</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>高级</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>中级</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>初级</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>博士后</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>博士生</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>硕士生</div>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="4">
<div class="special-middle">
<div>
{{ value.memCount }}
</div>
</div>
</a-col>
<a-col :span="3">
<div class="special-middle">
<div>
{{ value.memHighCount }}
</div>
</div>
</a-col>
<a-col :span="3">
<div class="special-middle">
<div>
{{ value.memMiddleCount }}
</div>
</div>
</a-col>
<a-col :span="3">
<div class="special-middle">
<div>
{{ value.memLowCount }}
</div>
</div>
</a-col>
<a-col :span="4">
<div class="special-middle">
<div>
{{ value.memBshCount }}
</div>
</div>
</a-col>
<a-col :span="4">
<div class="special-middle">
<div>
{{ value.memBsCount }}
</div>
</div>
</a-col>
<a-col :span="3">
<div class="special-middle">
<div>
{{ value.memSsCount }}
</div>
</div>
</a-col>
</a-row>
</div>
<div v-if="tabsData[2].isShow">
<a-row>
<a-col :span="24" style="border-top: 0px">
<div class="main-title">
<span>项目主要实施内容和目标</span>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>项目实施目标</div>
</div>
</a-col>
<a-col :span="20">
<div v-html="toTextarea(value.researchContent)"></div>
</a-col>
</a-row>
<a-row>
<a-col :span="24" style="border-top: 0px">
<div class="tb-title">
<span>项目考核指标</span>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>主要技术指标</div>
</div>
</a-col>
<a-col :span="20">
<div v-html="toTextarea(value.technologyTarget)"></div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>主要经济指标</div>
</div>
</a-col>
<a-col :span="20">
<div v-html="toTextarea(value.economyTarget)"></div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>项目实施中形成的示范基地、中试线、生产线及其规模等</div>
</div>
</a-col>
<a-col :span="20">
<div v-html="toTextarea(value.achievementTarget)"></div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>科技报告考核指标</div>
</div>
</a-col>
<a-col :span="20">
<div v-html="toTextarea(value.technologyReportsTarget)"></div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div>其他应考核的指标</div>
</div>
</a-col>
<a-col :span="20">
<div v-html="toTextarea(value.otherTarget)"></div>
</a-col>
</a-row>
</div>
<div v-if="tabsData[3].isShow">
<a-row>
<a-col :span="24" style="border-top: 0px">
<div class="main-title">
<span>申请书正文</span>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="24" class="bg-gray">
<div class="special-middle" style="font-weight: bold;text-align: center;">
<document-view :fileUrl="value.downloadUrl" :fileName="value.fileName" :imageArray="[value.downloadUrl]" v-if="!!value.downloadUrl"></document-view>
</div>
</a-col>
</a-row>
</div>
<div v-if="tabsData[4].isShow">
<!-- 经费预算 -->
<budget-info :budget.sync="value.budget" />
<a-row type="flex">
<a-col :span="24" style="text-align: center;">
<div class="special-middle">
&nbsp;
</div>
</a-col>
</a-row>
<!-- 分年度用款计划 -->
<fund-plan-info :fundPlan.sync="value.fundPlan" />
<!-- 设备费-购置设备预算明细表 -->
<device-info :deviceList.sync="value.deviceList" />
<!-- 设备费-试制设备预算明细表 -->
<manufacture-info :manufactureList.sync:="value.manufactureList" />
<!-- 项目承担单位研究资金支出预算明细表 -->
<unit-payment-info :unitPayment.sync="value.unitPayment" />
</div>
<div v-if="tabsData[5].isShow">
<!-- 项目安排及阶段目标 -->
<proj-stage-goals-info :stageGoals.sync="value.stageGoals" />
</div>
<div v-if="tabsData[6].isShow">
<!-- 项目课题设置 -->
<project-sub-info :dataList.sync="value.projectSubList" />
</div>
<div v-if="tabsData[7].isShow">
<project-kpi-info v-if="value.projectKPI" :projectKPI.sync="value.projectKPI" />
</div>
<div v-if="tabsData[8].isShow">
<!-- 附件 -->
<file-info :fileList.sync="value.fileList" />
</div>
</div> </div>
</template> </template>
...@@ -643,12 +1076,24 @@ ...@@ -643,12 +1076,24 @@
import { isEmptyParams } from "@/views/utils/common" import { isEmptyParams } from "@/views/utils/common"
import moment from 'moment' import moment from 'moment'
import cooperativeUnitsInfo from '@/views/report/project/components/cooperativeUnitsInfo'
import participateUnitsInfo from '@/views/report/project/components/participateUnitsInfo'
import projectMemberInfo from '@/views/report/project/components/projectMemberInfo'
import projectKpiInfo from '@/views/report/project/components/projectKpiInfo.vue'
import budgetInfo from '@/views/report/project/components/budgetInfo'
import fundPlanInfo from '@/views/report/project/components/fundPlanInfo'
import unitPaymentInfo from '@/views/report/project/components/unitPaymentInfo'
import deviceInfo from '@/views/report/project/components/deviceInfo'
import manufactureInfo from '@/views/report/project/components/manufactureInfo'
import projStageGoalsInfo from "@/views/report/project/components/projStageGoalsInfo";
import projectSubInfo from '@/views/report/project/components/projectSubInfo'
import fileInfo from "@/views/report/project/components/fileInfo";
import { toTextarea } from '@/views/utils/common'
export default { export default {
name: 'projectEdit', name: 'projectEdit',
components: { components: {
cooperativeUnitsInfo, projectMemberInfo, projectKpiInfo, budgetInfo, fundPlanInfo, unitPaymentInfo, deviceInfo, manufactureInfo, fileInfo, projStageGoalsInfo, projectSubInfo, participateUnitsInfo
}, },
props: { props: {
value: { value: {
...@@ -657,6 +1102,12 @@ export default { ...@@ -657,6 +1102,12 @@ export default {
return null return null
} }
}, },
tabsData: {
type: Array,
default: () => {
return []
}
},
}, },
data () { data () {
return { return {
...@@ -772,7 +1223,7 @@ export default { ...@@ -772,7 +1223,7 @@ export default {
mounted () { mounted () {
}, },
methods: { methods: {
moment, moment, toTextarea,
save () { save () {
this.$emit('load', true) this.$emit('load', true)
let pars = isEmptyParams(this.formData) let pars = isEmptyParams(this.formData)
......
...@@ -828,7 +828,6 @@ ...@@ -828,7 +828,6 @@
</a-col> </a-col>
</a-row> </a-row>
</div> </div>
</div> </div>
</template> </template>
......
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