Commit 4227f5aa authored by 徐俊's avatar 徐俊

xujun

parent c9520eeb
...@@ -343,7 +343,7 @@ ...@@ -343,7 +343,7 @@
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item prop="startDate" style="width:200px;display: inline-block;"> <a-form-model-item prop="startDate" style="width:200px;display: inline-block;">
<a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="formData.startDate" style="width: 180px" /> <a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="formData.startDate" @change="startDateChange" style="width: 180px" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="4" class="bg-gray"> <a-col :span="4" class="bg-gray">
...@@ -353,7 +353,7 @@ ...@@ -353,7 +353,7 @@
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<a-form-model-item prop="endDate" style="width:200px;display: inline-block;"> <a-form-model-item prop="endDate" style="width:200px;display: inline-block;">
<a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="formData.endDate" style="width: 180px" /> <a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="formData.endDate" @change="endDateChange" style="width: 180px" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
...@@ -604,6 +604,8 @@ ...@@ -604,6 +604,8 @@
<equipments-edit :equipments.sync="formData.equipments"/> <equipments-edit :equipments.sync="formData.equipments"/>
<!-- 科技计划项目承担单位研究资金支出预算明细表 --> <!-- 科技计划项目承担单位研究资金支出预算明细表 -->
<unit-payment-edit :unitPayment.sync="formData.unitPayment"/> <unit-payment-edit :unitPayment.sync="formData.unitPayment"/>
<!-- 项目绩效指标 -->
<project-kpi-edit :projectKPI.sync="formData.projectKPI"/>
<!-- 项目课题设置 --> <!-- 项目课题设置 -->
<project-sub-edit :projectSubList.sync="formData.projectSubList" /> <project-sub-edit :projectSubList.sync="formData.projectSubList" />
...@@ -628,6 +630,7 @@ import budgetEdit from '@/views/report/project/components/budgetEdit' ...@@ -628,6 +630,7 @@ import budgetEdit from '@/views/report/project/components/budgetEdit'
import fundPlanEdit from '@/views/report/project/components/fundPlanEdit' import fundPlanEdit from '@/views/report/project/components/fundPlanEdit'
import equipmentsEdit from '@/views/report/project/components/equipmentsEdit.vue' import equipmentsEdit from '@/views/report/project/components/equipmentsEdit.vue'
import unitPaymentEdit from '@/views/report/project/components/unitPaymentEdit.vue' import unitPaymentEdit from '@/views/report/project/components/unitPaymentEdit.vue'
import projectKpiEdit from '@/views/report/project/components/projectKpiEdit.vue'
import projectSubEdit from '@/views/report/project/components/projectSubEdit' import projectSubEdit from '@/views/report/project/components/projectSubEdit'
import managementRuleEdit from '@/views/report/project/components/managementRuleEdit' import managementRuleEdit from '@/views/report/project/components/managementRuleEdit'
import fileEdit from '@/views/report/project/components/fileEdit' import fileEdit from '@/views/report/project/components/fileEdit'
...@@ -640,11 +643,41 @@ const Cooperative = { id: null, unitName: null, unitCountry: null, unitAddress: ...@@ -640,11 +643,41 @@ const Cooperative = { id: null, unitName: null, unitCountry: null, unitAddress:
const Members = { name: null, sex: null, birthday: null, certificateType: null, certId: null, nation: null, country: null, workUnit: null, title: null, degree: null, email: null, mobile: null, telephone: null, fax: null, projWork: null, forMonths: null, spec: null } const Members = { name: null, sex: null, birthday: null, certificateType: null, certId: null, nation: null, country: null, workUnit: null, title: null, degree: null, email: null, mobile: null, telephone: null, fax: null, projWork: null, forMonths: null, spec: null }
const Equipment = { id: "", objectId: "", name: "", functionTarget: "", specificationType: "", quantity: 1, totalBudget: 0.00, useFrom: "", buyUnit: "", storageLocation: "", equipmentType: "", manufacturer: "", sharedScope: "", unitPrice: 0.00, } const Equipment = { id: "", objectId: "", name: "", functionTarget: "", specificationType: "", quantity: 1, totalBudget: 0.00, useFrom: "", buyUnit: "", storageLocation: "", equipmentType: "", manufacturer: "", sharedScope: "", unitPrice: 0.00, }
const File = { fileName: '', downloadUrl: '', fileExplain: '', downloadId: '' } const File = { fileName: '', downloadUrl: '', fileExplain: '', downloadId: '' }
const projectKPI = {
reportYear: "",
projName: "",
appUnitName: "",
projAttribute: "",
projDeadline: "",
startDate: "",
endData: "",
totalBudget: 0.00,
applyFunds: 0.00,
selfFunds: 0.00,
yearTotal: 0.00,
yearApply: 0.00,
yearSelf: 0.00,
totalRowSpan: 0, //总合并行数
outTarget: 0, //一级指标(产出指标)
benefitTarget: 0, //一级指标(效益指标)
satisfactionDegree: 0, //一级指标(满意度指标)
quantityTarget: 0, //二级指标(数量指标)
qualityTarget: 0, //二级指标(质量指标)
validityTarget: 0, //二级指标(时效指标)
costTarget: 0, //二级指标(成本指标)
economicTarget: 0, //二级指标(经济效益指标)
socialTarget: 0, //二级指标(社会效益指标)
ecologicalTarget: 0, //二级指标(生态效益指标)
sustainableTarget: 0, //二级指标(可持续影响指标)
serviceTarget: 0, //二级指标(服务对象满意度指标)
threeLevel: [],
};
export default { export default {
name: 'projectEdit', name: 'projectEdit',
components: { components: {
paraMultiSelect, paraSelect, baseSelect, projectMemberEdit, cooperativeUnitsEdit, budgetEdit, fundPlanEdit, equipmentsEdit, unitPaymentEdit, projectSubEdit, managementRuleEdit, fileEdit paraMultiSelect, paraSelect, baseSelect, projectMemberEdit, cooperativeUnitsEdit, budgetEdit, fundPlanEdit, equipmentsEdit, unitPaymentEdit, projectKpiEdit,
projectSubEdit, managementRuleEdit, fileEdit
}, },
props: { props: {
value: { value: {
...@@ -700,6 +733,7 @@ export default { ...@@ -700,6 +733,7 @@ export default {
economyTarget: null, economyTarget: null,
achievementTarget: null, achievementTarget: null,
otherTarget: null, otherTarget: null,
projectKPI: projectKPI,
unitPayment: [], unitPayment: [],
cooperativeUnits: [], cooperativeUnits: [],
members: [], members: [],
...@@ -807,6 +841,7 @@ export default { ...@@ -807,6 +841,7 @@ export default {
this.formData.fileList = [] this.formData.fileList = []
} }
}, },
//processProjectYearTarget
save () { save () {
console.log(this.formData) console.log(this.formData)
if (this.checkProjName()) { if (this.checkProjName()) {
...@@ -862,6 +897,13 @@ export default { ...@@ -862,6 +897,13 @@ export default {
return true return true
} }
}, },
startDateChange(value, dateString) {
this.formData.projectKPI.startDate = this.formData.startDate
},
endDateChange(value, dateString) {
this.formData.projectKPI.endDate = this.formData.endDate
console.log(this.formData.projectKPI)
}
}, },
watch: { watch: {
} }
......
<template>
<div class="from-table font-line-space">
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>项目绩效目标表</span>
</div>
</a-col>
</a-row>
<table class="tab-content" cellpadding="3" cellspacing="3" style="width: 98%">
<!-- <tr>
<td colspan="20" class="bg-title">{{ projectKPI.reportYear }}年度</td>
</tr>
<tr>
<td class="bg-title">项目名称</td>
<td colspan="19">{{ projectKPI.projName }}</td>
</tr>
<tr>
<td class="bg-title">实施单位</td>
<td colspan="10">{{ projectKPI.appUnitName }}</td>
<td colspan="2" class="bg-title">项目期</td>
<td colspan="7">{{ projectKPI.projDeadline }}</td>
</tr>
<tr>
<td class="bg-title">项目属性</td>
<td colspan="10">
<a-radio-group v-model="projectKPI.projAttribute">
<a-radio :value="projAttributes[0].id">{{projAttributes[0].name}}</a-radio>
<a-radio :value="projAttributes[1].id">{{projAttributes[1].name}}</a-radio>
</a-radio-group>
</td>
<td colspan="2" class="bg-title"></td>
<td colspan="7"></td>
</tr>
<tr>
<td rowspan="3" class="bg-title">项目资金(万元)</td>
<td colspan="2" class="bg-title">总体资金总额:</td>
<td colspan="8">{{ parseFloat(projectKPI.totalBudget).toFixed(2) }}</td>
<td colspan="2" class="bg-title">年度资金总额:</td>
<td colspan="7">{{ parseFloat(projectKPI.yearTotal).toFixed(2) }}</td>
</tr>
<tr>
<td colspan="2" class="bg-title">其中:财政拨款</td>
<td colspan="8">{{ parseFloat(projectKPI.applyFunds).toFixed(2) }}</td>
<td colspan="2" class="bg-title">其中:财政拨款</td>
<td colspan="7">{{ parseFloat(projectKPI.yearApply).toFixed(2) }}</td>
</tr>
<tr>
<td colspan="2" class="bg-title">其他资金</td>
<td colspan="8">{{ parseFloat(projectKPI.selfFunds).toFixed(2) }}</td>
<td colspan="2" class="bg-title">其他资金</td>
<td colspan="7">{{ parseFloat(projectKPI.yearSelf).toFixed(2) }}</td>
</tr> -->
<tr>
<td rowspan="3" class="bg-title">总体考核目标</td>
<td colspan="10" class="bg-title">
总体目标({{ moment(projectKPI.startDate).year() }}年—{{moment(projectKPI.endDate).year()}}年)
</td>
<td class="bg-title" colspan="9">分年度指标</td>
</tr>
<tr>
<td colspan="10" rowspan="2"></td>
<td class="target-value" colspan="3">{{ moment(projectKPI.startDate).year() }}</td>
<td class="target-value" colspan="3">{{ moment(projectKPI.startDate).add(1, 'year').year() }}</td>
<td class="target-value" colspan="3">{{ moment(projectKPI.startDate).add(2, 'year').year() }}</td>
</tr>
<tr>
<td colspan="3"></td>
<td colspan="3"></td>
<td colspan="3"></td>
</tr>
<tr>
<td :rowspan="projectKPI.totalRowSpan"></td>
<td rowspan="2" class="bg-title">一级指标</td>
<td rowspan="2" class="bg-title">二级指标</td>
<td rowspan="2" colspan="6" class="bg-title">三级指标</td>
<td rowspan="2" class="bg-title">指标值</td>
<td rowspan="2" class="bg-title">绩效标准</td>
<td rowspan="2" class="bg-title">二级指标</td>
<td rowspan="2" colspan="5" class="bg-title">三级指标</td>
<td colspan="3" class="bg-title">指标值</td>
</tr>
<tr>
<td>{{ moment(projectKPI.startDate).year() }}</td>
<td>{{ moment(projectKPI.startDate).add(1, 'year').year() }}</td>
<td>{{ moment(projectKPI.startDate).add(2, 'year').year() }}</td>
</tr>
<tr v-for="(item, index) in projectKPI.threeLevel" :key="index">
<td class="bg-title" v-if="item.oneDisplay" :rowspan="item.oneRowSpan">
{{ item.oneLevelName }}
</td>
<td class="bg-title" v-if="item.towDisplay" :rowspan="item.towRowSpan">
{{ item.towLevelName }}
</td>
<td colspan="6">{{ item.kpitName }}</td>
<td class="target-value">
<a-form-model-item :prop="'projectKPI.threeLevel.' + index + '.targetValue'" :rules="{required: false, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.targetValue" :min="0" :step="1" style="width: 90%" />
</a-form-model-item>
</td>
<td class="target-value">
<a-form-model-item :prop="'projectKPI.threeLevel.' + index + '.performanceStandard'" :rules="{required: false, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.performanceStandard" :min="0" :step="1" style="width: 90%" />
</a-form-model-item>
</td>
<td class="bg-title" v-if="item.towDisplay" :rowspan="item.towRowSpan">
{{ item.towLevelName }}
</td>
<td colspan="5">{{ item.kpitName }}</td>
<td class="target-value">
<a-form-model-item :prop="'projectKPI.threeLevel.' + index + '.yearValue1'" :rules="{required: false, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.yearValue1" :min="0" :step="1" style="width: 90%" />
</a-form-model-item>
</td>
<td class="target-value">
<a-form-model-item :prop="'projectKPI.threeLevel.' + index + '.yearValue2'" :rules="{required: false, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.yearValue2" :min="0" :step="1" style="width: 90%" />
</a-form-model-item>
</td>
<td class="target-value">
<a-form-model-item :prop="'projectKPI.threeLevel.' + index + '.yearValue3'" :rules="{required: false, message: '*', trigger: 'blur',}">
<a-input-number v-model="item.yearValue3" :min="0" :step="1" style="width: 90%" />
</a-form-model-item>
</td>
</tr>
</table>
</div>
</template>
<script>
import moment from "moment";
export default {
name: "projectKpiEdit",
props: {
projectKPI: {
type: Object,
default: () => {
return null;
},
},
},
data() {
return {
projAttributes: [
{ id: "5b9d6509-aece-11ef-b6cb-0c42a1380f01", name: "新增项目" },
{ id: "5b9d6509-aece-11ef-b6cb-0c42a1380f02", name: "延期项目" },
],
};
},
created() {
//this.getProjectKpitStatistic()
this.LoadParameterInfo();
},
methods: {
moment,
LoadParameterInfo() {
let pars1 = { typeId: 67 };
this.$api.parameter
.getParameterListByTypeId(pars1)
.then(({ data = {} }) => {
this.projAttributes = data;
//console.log(this.projAttribute[0].id)
})
.catch(() => {});
},
getProjectKpitStatistic() {
this.$api.statistical.getProjectKpitStatistic().then(({ data = {} }) => {
if (data) {
}
});
},
},
};
</script>
<style scoped lang="less">
table,
tr,
td {
border: 1px solid #080808;
font-size: 10pt;
text-align: left;
line-height: 25px;
height: 25px;
}
.bg-title {
background-color: #f5f5f5;
font-weight: bold;
text-align: center;
}
.target-value {
text-align: center;
}
</style>
\ No newline at end of file
...@@ -16,12 +16,12 @@ ...@@ -16,12 +16,12 @@
<td colspan="19">{{ projectKPI.projName }}</td> <td colspan="19">{{ projectKPI.projName }}</td>
</tr> </tr>
<tr> <tr>
<td class="bg-title">主管处室</td> <td class="bg-title">实施单位</td>
<td colspan="10"></td> <td colspan="10">{{ projectKPI.appUnitName }}</td>
<td colspan="2" class="bg-title">实施单位</td> <td colspan="2" class="bg-title">项目期</td>
<td colspan="7">{{ projectKPI.appUnitName }}</td> <td colspan="7">{{ projectKPI.projDeadline }}</td>
</tr> </tr>
<tr> <!-- <tr>
<td class="bg-title">项目属性</td> <td class="bg-title">项目属性</td>
<td colspan="10"> <td colspan="10">
<a-radio-group v-model="projectKPI.projAttribute"> <a-radio-group v-model="projectKPI.projAttribute">
...@@ -29,9 +29,9 @@ ...@@ -29,9 +29,9 @@
<a-radio :value="projAttributes[1].id">{{projAttributes[1].name}}</a-radio> <a-radio :value="projAttributes[1].id">{{projAttributes[1].name}}</a-radio>
</a-radio-group> </a-radio-group>
</td> </td>
<td colspan="2" class="bg-title">项目期</td> <td colspan="2" class="bg-title"></td>
<td colspan="7">{{ projectKPI.projDeadline }}</td> <td colspan="7"></td>
</tr> </tr> -->
<tr> <tr>
<td rowspan="3" class="bg-title">项目资金(万元)</td> <td rowspan="3" class="bg-title">项目资金(万元)</td>
<td colspan="2" class="bg-title">总体资金总额:</td> <td colspan="2" class="bg-title">总体资金总额:</td>
...@@ -53,14 +53,14 @@ ...@@ -53,14 +53,14 @@
</tr> </tr>
<tr> <tr>
<td rowspan="3" class="bg-title">总体考核目标</td> <td rowspan="3" class="bg-title">总体考核目标</td>
<td colspan="10" class="bg-title">总体目标({{ projectKPI.reportYear }}年—{{ projectKPI.reportYear + 2 }}年)</td> <td colspan="10" class="bg-title">总体目标({{ moment(projectKPI.startDate).year() }}年—{{ moment(projectKPI.endDate).year() }}年)</td>
<td class="bg-title" colspan="9">分年度指标</td> <td class="bg-title" colspan="9">分年度指标</td>
</tr> </tr>
<tr> <tr>
<td colspan="10" rowspan="2"></td> <td colspan="10" rowspan="2"></td>
<td class="target-value" colspan="3">{{ projectKPI.reportYear }}</td> <td class="target-value" colspan="3">{{ moment(projectKPI.startDate).year() }}</td>
<td class="target-value" colspan="3">{{ projectKPI.reportYear + 1 }}</td> <td class="target-value" colspan="3">{{ moment(projectKPI.startDate).add(1, 'year').year() }}</td>
<td class="target-value" colspan="3">{{ projectKPI.reportYear + 2 }}</td> <td class="target-value" colspan="3">{{ moment(projectKPI.startDate).add(2, 'year').year() }}</td>
</tr> </tr>
<tr> <tr>
<td colspan="3"></td> <td colspan="3"></td>
...@@ -79,9 +79,9 @@ ...@@ -79,9 +79,9 @@
<td colspan="3" class="bg-title">指标值</td> <td colspan="3" class="bg-title">指标值</td>
</tr> </tr>
<tr> <tr>
<td>2020</td> <td>{{ moment(projectKPI.startDate).year() }}</td>
<td>2021</td> <td>{{ moment(projectKPI.startDate).add(1, 'year').year() }}</td>
<td>2022</td> <td>{{ moment(projectKPI.startDate).add(2, 'year').year() }}</td>
</tr> </tr>
<tr v-for="(item, index) in projectKPI.threeLevel" :key="index"> <tr v-for="(item, index) in projectKPI.threeLevel" :key="index">
<td class="bg-title" v-if="item.oneDisplay" :rowspan="item.oneRowSpan">{{ item.oneLevelName }}</td> <td class="bg-title" v-if="item.oneDisplay" :rowspan="item.oneRowSpan">{{ item.oneLevelName }}</td>
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
<script> <script>
export default { export default {
name: "projectKPIInfo", name: "projectKpiInfo",
props: { props: {
projectKPI: { projectKPI: {
type: Object, type: Object,
......
...@@ -24,6 +24,8 @@ const projectKPI = { ...@@ -24,6 +24,8 @@ const projectKPI = {
appUnitName: "", appUnitName: "",
projAttribute: "", projAttribute: "",
projDeadline: "", projDeadline: "",
startDate: "",
endData: "",
totalBudget: 0.00, totalBudget: 0.00,
applyFunds: 0.00, applyFunds: 0.00,
selfFunds: 0.00, selfFunds: 0.00,
......
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