Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
Y
yn-science-front
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐俊
yn-science-front
Commits
bbdb4eea
Commit
bbdb4eea
authored
Dec 31, 2024
by
wangxl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
333
parent
c60a3d61
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
7 additions
and
1000 deletions
+7
-1000
index.js
src/router/index.js
+0
-1
projectCreate.vue
src/views/report/project/components/projectCreate.vue
+0
-81
projectEdit.vue
src/views/report/project/components/projectEdit.vue
+0
-911
Index.vue
src/views/report/task/Index.vue
+5
-5
Index.vue
src/views/statistic/project/Index.vue
+2
-2
No files found.
src/router/index.js
View file @
bbdb4eea
...
...
@@ -116,7 +116,6 @@ export const routes = [
{
path
:
'/report/task'
,
name
:
'合同书上报'
,
component
:
()
=>
import
(
'@/views/report/task/Index.vue'
),
meta
:
{
title
:
'合同书上报'
,
icon
:
''
,
noCache
:
true
}
},
{
path
:
'/report/check'
,
name
:
'中期考核上报'
,
component
:
()
=>
import
(
'@/views/report/check/Index.vue'
),
meta
:
{
title
:
'中期考核上报'
,
icon
:
''
,
noCache
:
true
}
},
{
path
:
'/report/conclusion'
,
name
:
'项目结题'
,
component
:
()
=>
import
(
'@/views/conclusion/index.vue'
),
meta
:
{
title
:
'项目结题'
,
icon
:
''
,
noCache
:
true
}
},
{
path
:
'/project/create'
,
name
:
'项目创建'
,
component
:
()
=>
import
(
'@/views/report/project/components/projectCreate'
),
meta
:
{
title
:
'项目创建'
,
icon
:
''
,
noCache
:
true
}
},
{
path
:
'/query/project'
,
name
:
'项目申报查询1'
,
component
:
()
=>
import
(
'@/views/query/project/Index.vue'
),
meta
:
{
title
:
'项目申报查询'
,
icon
:
''
,
noCache
:
true
}
},
{
path
:
'/query/task'
,
name
:
'合同书查询1'
,
component
:
()
=>
import
(
'@/views/query/task/Index.vue'
),
meta
:
{
title
:
'合同书查询'
,
icon
:
''
,
noCache
:
true
}
},
{
path
:
'/query/check'
,
name
:
'中期考核上报查询1'
,
component
:
()
=>
import
(
'@/views/query/check/Index.vue'
),
meta
:
{
title
:
'中期考核上报查询'
,
icon
:
''
,
noCache
:
true
}
},
...
...
src/views/report/project/components/projectCreate.vue
deleted
100644 → 0
View file @
c60a3d61
<
template
>
<div
class=
"app-content"
style=
"height: 76vh;overflow: auto;"
>
<a-spin
:spinning=
"loading"
style=
"width: 100%;height: 100%;"
>
<div
class=
"page-content"
>
<project-edit
v-model=
"value"
@
close=
"closeWindow"
@
load=
"onLoad"
ref=
"projCreate"
v-if=
"projType"
></project-edit>
<project-edit-key
v-model=
"value"
@
close=
"closeWindow"
@
load=
"onLoad"
ref=
"projCreate"
v-else
></project-edit-key>
</div>
<div
class=
"page-footer"
>
<a-button
@
click=
"save"
>
保存
</a-button>
<a-button
style=
"margin-left: 10px"
type=
"primary"
@
click=
"submit"
>
完成填写
</a-button>
</div>
</a-spin>
</div>
</
template
>
<
script
>
import
{
getType
}
from
'@/views/utils/auth'
import
projectEdit
from
"@/views/report/project/components/projectEdit"
import
projectEditKey
from
"@/views/report/project/components/keyProject/projectEdit"
export
default
{
name
:
"projectCreate"
,
components
:
{
projectEdit
,
projectEditKey
,
},
data
()
{
return
{
loading
:
false
,
projType
:
getType
()
==
"1"
}
},
props
:
{
value
:
{
type
:
String
,
default
:
()
=>
{
return
null
}
}
},
created
()
{
},
methods
:
{
save
()
{
this
.
$refs
.
projCreate
.
save
()
},
submit
()
{
this
.
$refs
.
projCreate
.
submit
()
},
closeWindow
(
value
)
{
this
.
$emit
(
'close'
,
value
)
},
onLoad
(
value
)
{
this
.
loading
=
value
},
},
}
</
script
>
<
style
scoped
lang=
"less"
>
::-webkit-scrollbar {
width: 8px;
height: 6px;
}
::v-deep .ant-spin-container {
width: 100%;
height: 100%;
}
.page-content {
width: 100%;
height: calc(100% - 40px);
overflow: auto;
}
.page-footer {
width: 100%;
height: 40px;
line-height: 40px;
background: rgb(248, 248, 248);
text-align: center;
}
</
style
>
src/views/report/project/components/projectEdit.vue
deleted
100644 → 0
View file @
c60a3d61
<
template
>
<div>
<a-form-model
ref=
"form"
:model=
"formData"
:rules=
"rules"
style=
"border-top: 0px"
class=
"from-table font-line-space"
>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px;text-align: center;"
>
<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>
<a-form-model-item>
<div>
{{
formData
.
appPersonName
}}
</div>
</a-form-model-item>
</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>
<a-form-model-item>
<div>
{{
formData
.
sex
}}
</div>
</a-form-model-item>
</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>
<a-form-model-item>
{{
moment
(
formData
.
birthday
).
format
(
'YYYY-MM-DD'
)
}}
</a-form-model-item>
</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>
<a-form-model-item>
<div>
{{
formData
.
nationName
}}
</div>
</a-form-model-item>
</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>
<a-form-model-item>
<div>
{{
formData
.
degreeName
}}
</div>
</a-form-model-item>
</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>
<a-form-model-item>
{{
formData
.
titleName
}}
</a-form-model-item>
</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>
<a-form-model-item>
<div>
{{
formData
.
mobile
}}
</div>
</a-form-model-item>
</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>
<a-form-model-item>
<div>
{{
formData
.
email
}}
</div>
</a-form-model-item>
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
每年工作时间(月)
</div>
</div>
</a-col>
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item
prop=
"jobTime"
>
<a-input-number
v-model=
"formData.jobTime"
:min=
"0"
:max=
"12"
:step=
"1"
style=
"width: 100px"
/>
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
个人通讯地址
</div>
</div>
</a-col>
<a-col
:span=
"21"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item
prop=
"address"
>
<a-input
v-model=
"formData.address"
placeholder=
"个人通讯地址(限50字)"
:maxLength=
"50"
style=
"width: 80%;"
/>
</a-form-model-item>
</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=
"21"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item>
<div>
{{
formData
.
appUnitName
}}
</div>
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
主要研究领域
</div>
</div>
</a-col>
<a-col
:span=
"21"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item
prop=
"mainResearchAreas"
>
<a-textarea
placeholder=
"主要研究领域(限500字)"
v-model=
"formData.mainResearchAreas"
:maxLength=
"500"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</div>
</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
class=
"special-middle"
>
<div>
<a-form-model-item>
<div>
{{
formData
.
appUnitName
}}
</div>
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
联系人
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item
prop=
"unitLinkName"
>
<a-input
placeholder=
"联系人(限20字)"
v-model=
"formData.unitLinkName"
:maxLength=
"20"
style=
"width:80%"
/>
</a-form-model-item>
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
电话
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item
prop=
"unitLinkMobile"
>
<a-input
placeholder=
"电话(限20字)"
v-model=
"formData.unitLinkMobile"
:maxLength=
"20"
style=
"width:80%"
/>
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
电子信箱
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item
prop=
"unitLinkEmail"
>
<a-input
placeholder=
"电子信箱(限50字)"
v-model=
"formData.unitLinkEmail"
:maxLength=
"50"
style=
"width:80%"
/>
</a-form-model-item>
</div>
</div>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
传真
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item
prop=
"unitLinkFax"
>
<a-input
placeholder=
"传真(限20字)"
v-model=
"formData.unitLinkFax"
:maxLength=
"20"
style=
"width:80%"
/>
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<!-- 项目合作单位 -->
<!--
<cooperative-units-edit
:cooperativeUnits
.
sync=
"formData.cooperativeUnits"
/>
-->
<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
class=
"required"
>
项目名称
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"projName"
>
<a-input
placeholder=
"项目名称(限100字)"
v-model=
"formData.projName"
:maxLength=
"100"
style=
"width: 80%"
@
change=
"projNameChange"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
学科代码
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"knowledgeId"
>
<cascader-select
v-model=
"formData.knowledgeId"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
附注说明
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"remark"
>
<a-input
placeholder=
"附注说明(限300字)"
v-model=
"formData.remark"
:maxLength=
"300"
style=
"width: 80%"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
项日开始时间
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<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"
@
change=
"startDateChange"
style=
"width: 180px"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
项目结束时间
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<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"
@
change=
"endDateChange"
style=
"width: 180px"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
申请经费(万元)
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"govFunding"
>
<!--
<a-input-number
v-model=
"formData.govFunding"
@
change=
"govFundingChange"
:min=
"0"
:step=
"0.01"
style=
"width: 100px"
/>
-->
{{
formData
.
govFunding
}}
<span>
万元
</span>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
项目摘要(400字以内)
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"projAbstract"
>
<a-textarea
placeholder=
"项目摘要(限400字)"
v-model=
"formData.projAbstract"
:maxLength=
"400"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
关键词
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"projKeywords"
>
<a-input
placeholder=
"关键词(限100字)"
v-model=
"formData.projKeywords"
:maxLength=
"100"
style=
"width: 80%"
/>
</a-form-model-item>
</a-col>
</a-row>
<!-- 项目主要参与单位及分工 -->
<participate-units-edit
:participateUnits
.
sync=
"formData.participateUnits"
/>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px"
>
<div
class=
"main-title"
>
<span>
项目人员情况
</span>
</div>
</a-col>
</a-row>
<!-- 项目组成员 -->
<project-member-edit
:dataList
.
sync=
"formData.members"
/>
<a-row
type=
"flex"
>
<a-col
:span=
"24"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
</div>
</a-col>
</a-row>
<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
class=
"required"
>
项目实施目标
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"researchContent"
>
<a-textarea
placeholder=
"项目实施目标(限10000字)"
v-model=
"formData.researchContent"
:maxLength=
"10000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</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
class=
"required"
>
主要技术指标
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"technologyTarget"
>
<a-textarea
placeholder=
"主要技术指标(限10000字)"
v-model=
"formData.technologyTarget"
:maxLength=
"10000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
主要经济指标
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"economyTarget"
>
<a-textarea
placeholder=
"主要经济指标(限10000字)"
v-model=
"formData.economyTarget"
:maxLength=
"10000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
项目实施中形成的示范基地、中试线、生产线及其规模等
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"achievementTarget"
>
<a-textarea
placeholder=
"项目实施中形成的示范基地、中试线、生产线及其规模等(限10000字)"
v-model=
"formData.achievementTarget"
:maxLength=
"10000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
科技报告考核指标
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"technologyReportsTarget"
>
<a-textarea
placeholder=
"科技报告考核指标(限10000字)"
v-model=
"formData.technologyReportsTarget"
:maxLength=
"10000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
其他应考核的指标
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"otherTarget"
>
<a-textarea
placeholder=
"其他应考核的指标(限10000字)"
v-model=
"formData.otherTarget"
:maxLength=
"10000"
style=
"width: 80%; height: 160px; margin-top: 12px"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"24"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
</div>
</a-col>
</a-row>
<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;"
>
<a
:href=
"'/downloadFile/textTemplate.docx'"
download=
"申请书正文.docx"
>
<a-icon
type=
"download"
></a-icon>
<span
style=
"color:green;text-decoration:underline;font-size: 16px;"
>
正文模板下载
</span>
</a>
<span
style=
"color: red;margin-left: 42px;"
>
注:正文部分需要下载模版,填写完成后上传到系统中,格式 .doc,.docx。
</span>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"24"
>
<div
style=
"min-height:34px;line-height: 40px;text-align: center;"
>
<up-load
:isUpload=
"true"
:file
.
sync=
"formData"
:format=
"['doc', 'docx']"
message=
"请上传申请书正文"
/>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"24"
>
<!--
<document-view
:fileUrl=
"formData.downloadUrl"
:fileName=
"formData.fileName"
:imageArray=
"[formData.downloadUrl]"
></document-view>
<preview-file
v-model=
"formData.downloadUrl"
:fileName=
"formData.fileName"
></preview-file>
-->
</a-col>
</a-row>
<!-- 经费预算 -->
<budget-edit
:budget
.
sync=
"formData.budget"
@
save=
"budgetSave"
/>
<a-row
type=
"flex"
>
<a-col
:span=
"24"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
</div>
</a-col>
</a-row>
<!-- 分年度用款计划 -->
<fund-plan-edit
:fundPlan
.
sync=
"formData.fundPlan"
@
save=
"planSave"
/>
<!-- 项目承担单位研究资金支出预算明细表 -->
<unit-payment-edit
:unitPayment
.
sync=
"formData.unitPayment"
/>
<!--
<equipments-edit
:equipments
.
sync=
"formData.equipments"
/>
-->
<!-- 设备费-购置设备预算明细表 -->
<device-edit
:deviceList
.
sync=
"formData.deviceList"
/>
<!-- 设备费-试制设备预算明细表 -->
<manufacture-edit
:manufactureList
.
sync:=
"formData.manufactureList"
/>
<a-row
type=
"flex"
>
<a-col
:span=
"24"
style=
"text-align: center;"
>
<div
class=
"special-middle"
>
</div>
</a-col>
</a-row>
<!-- 项目绩效指标 -->
<project-kpi-edit
:projectKPI
.
sync=
"formData.projectKPI"
/>
<!-- 项目安排及阶段目标 -->
<proj-stage-goals-edit
:stageGoals
.
sync=
"formData.stageGoals"
/>
<!-- 项目课题设置 -->
<project-sub-edit
:projectSubList
.
sync=
"formData.projectSubList"
/>
<!-- 附件 -->
<file-edit
:fileList
.
sync=
"formData.fileList"
/>
</a-form-model>
</div>
</
template
>
<
script
>
import
fundEdit
from
'@/views/report/project/components/fundEdit'
import
documentView
from
'@/views/components/common/documentView'
import
previewFile
from
'@/views/components/common/previewFile'
import
{
getType
}
from
'@/views/utils/auth'
import
projectMemberEdit
from
'@/views/report/project/components/projectMemberEdit'
import
cooperativeUnitsEdit
from
'@/views/report/project/components/cooperativeUnitsEdit'
import
participateUnitsEdit
from
'@/views/report/project/components/participateUnitsEdit'
import
deviceEdit
from
'@/views/report/project/components/deviceEdit'
import
projStageGoalsEdit
from
'@/views/report/project/components/projStageGoalsEdit'
import
budgetEdit
from
'@/views/report/project/components/budgetEdit'
import
fundPlanEdit
from
'@/views/report/project/components/fundPlanEdit'
import
projectKpiEdit
from
'@/views/report/project/components/projectKpiEdit'
import
manufactureEdit
from
'@/views/report/project/components/manufactureEdit'
import
unitPaymentEdit
from
'@/views/report/project/components/unitPaymentEdit'
import
projectSubEdit
from
'@/views/report/project/components/projectSubEdit'
import
fileEdit
from
'@/views/report/project/components/fileEdit'
import
{
isEmptyParams
}
from
"@/views/utils/common"
import
moment
from
'moment'
const
ParticipateUnit
=
{
id
:
null
,
unitName
:
null
,
unitCountry
:
null
,
unitAddress
:
null
,
organizationCode
:
null
,
projectWork
:
null
}
const
ProjResearch
=
{
projNo
:
null
,
projName
:
null
,
approveUnit
:
null
,
leader
:
null
,
startDate
:
null
,
endDate
:
null
,
funds
:
null
}
const
ManagementRule
=
{
policyName
:
null
,
releaseDate
:
null
,
documentNumber
:
null
,
validityPeriod
:
null
,
mainContent
:
null
,
fileId
:
null
,
downloadId
:
null
,
fileName
:
null
,
downloadUrl
:
null
}
const
StageGoals
=
{
startTime
:
null
,
endTime
:
null
,
target
:
null
}
const
ProjectSub
=
{
projName
:
null
,
undertakingUnit
:
null
,
address
:
null
,
director
:
null
,
totalBudget
:
null
,
govBudget
:
null
,
selfBudget
:
null
,
cooperativeUnits
:
null
,
fileId
:
null
,
downloadId
:
null
,
fileName
:
null
,
downloadUrl
:
null
}
const
Cooperative
=
{
id
:
null
,
unitName
:
null
}
const
File
=
{
fileName
:
''
,
downloadUrl
:
''
,
fileExplain
:
''
,
downloadId
:
''
}
const
Equipment
=
{
id
:
""
,
objectId
:
""
,
name
:
""
,
functionTarget
:
""
,
specificationType
:
""
,
quantity
:
1
,
totalBudget
:
0.0
,
useFrom
:
""
,
buyUnit
:
""
,
storageLocation
:
""
,
equipmentType
:
""
,
manufacturer
:
""
,
sharedScope
:
""
,
unitPrice
:
0.0
,
};
const
projectKPI
=
{
reportYear
:
""
,
projName
:
""
,
appUnitName
:
""
,
managerDept
:
""
,
projAttribute
:
""
,
projDeadline
:
""
,
startDate
:
""
,
endData
:
""
,
yearTarget
:
""
,
year1Goal
:
""
,
year2Goal
:
""
,
year3Goal
:
""
,
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
:
[],
kpiList
:
[],
};
import
cascaderSelect
from
'@/views/components/common/cascaderSelect'
export
default
{
name
:
'projectEdit'
,
components
:
{
fundEdit
,
projectMemberEdit
,
cooperativeUnitsEdit
,
budgetEdit
,
fundPlanEdit
,
projectKpiEdit
,
fileEdit
,
previewFile
,
documentView
,
cascaderSelect
,
deviceEdit
,
projStageGoalsEdit
,
manufactureEdit
,
unitPaymentEdit
,
projectSubEdit
,
participateUnitsEdit
},
props
:
{
value
:
{
type
:
String
,
default
:
()
=>
{
return
null
}
},
},
created
()
{
this
.
getProject
()
},
data
()
{
return
{
overseasShow
:
false
,
formData
:
{
id
:
null
,
appPersonName
:
null
,
sex
:
null
,
birthday
:
null
,
nationName
:
null
,
degreeName
:
null
,
titleName
:
null
,
mobile
:
null
,
email
:
null
,
appUnitName
:
null
,
unitLinkName
:
null
,
unitLinkMobile
:
null
,
unitLinkEmail
:
null
,
unitLinkFax
:
null
,
projName
:
null
,
knowledgeId
:
null
,
startDate
:
null
,
endDate
:
null
,
jobTime
:
null
,
mainResearchAreas
:
null
,
address
:
null
,
subjectScope
:
null
,
projClass
:
null
,
projAbstract
:
null
,
projKeywords
:
null
,
totalFunding
:
null
,
govFunding
:
null
,
unitFunding
:
null
,
selfFunding
:
null
,
researchContent
:
null
,
technologyTarget
:
null
,
economyTarget
:
null
,
achievementTarget
:
null
,
otherTarget
:
null
,
remark
:
null
,
yearTarget
:
null
,
year1Goal
:
null
,
year2Goal
:
null
,
year3Goal
:
null
,
projectKPI
:
projectKPI
,
cooperativeUnits
:
[],
participateUnits
:
[],
members
:
[],
budget
:
[],
fundPlan
:
[],
deviceList
:
[],
manufactureList
:
[],
unitPayment
:
[],
stageGoals
:
[],
projectSubList
:
[],
fileList
:
[],
auditList
:
[],
managerDept
:
""
,
},
rules
:
{
jobTime
:
[{
required
:
true
,
message
:
'请填写每年工作时间(月)'
,
trigger
:
'blur'
},],
address
:
[{
required
:
true
,
message
:
'请填写个人通讯地址'
,
trigger
:
'blur'
},],
mainResearchAreas
:
[{
required
:
true
,
message
:
'请填写主要研究领域'
,
trigger
:
'blur'
},],
unitLinkName
:
[{
required
:
true
,
message
:
'请填写单位联系人'
,
trigger
:
'blur'
},],
unitLinkMobile
:
[{
required
:
true
,
message
:
'请填写联系人电话'
,
trigger
:
'blur'
},],
unitLinkEmail
:
[{
required
:
true
,
message
:
'请填写电子邮箱'
,
trigger
:
'blur'
},],
unitLinkFax
:
[{
required
:
true
,
message
:
'请填写传真'
,
trigger
:
'blur'
},],
projName
:
[{
required
:
true
,
message
:
'请填写项目名称'
,
trigger
:
'blur'
},],
knowledgeId
:
{
required
:
true
,
message
:
'请选择学科代码'
,
trigger
:
'change'
},
// subjectScope: [{ required: true, message: '请填写选题范围', trigger: 'blur' },],
// projClass: [{ required: true, message: '请填写项目类别', trigger: 'blur' },],
remark
:
[{
required
:
true
,
message
:
'请填写附注说明'
,
trigger
:
'blur'
},],
startDate
:
{
required
:
true
,
message
:
'请选择项日开始时间'
,
trigger
:
'change'
},
endDate
:
{
required
:
true
,
message
:
'请选择项目结束时间'
,
trigger
:
'change'
},
totalFunding
:
[{
required
:
true
,
message
:
'请填写项目总经费'
,
trigger
:
'blur'
},],
govFunding
:
[{
required
:
true
,
message
:
'请填写申请科技经费'
,
trigger
:
'blur'
},],
projAbstract
:
[{
required
:
true
,
message
:
'请填写项目摘要'
,
trigger
:
'blur'
},],
projKeywords
:
[{
required
:
true
,
message
:
'请填写关键词'
,
trigger
:
'blur'
},],
researchContent
:
{
required
:
true
,
message
:
'请填写项目实施目标'
,
trigger
:
'blur'
},
technologyTarget
:
{
required
:
true
,
message
:
'请填写主要技术指标'
,
trigger
:
'blur'
},
economyTarget
:
{
required
:
true
,
message
:
'请填写主要经济指标'
,
trigger
:
'blur'
},
achievementTarget
:
[{
required
:
true
,
message
:
'请填写项目实施中形成的示范基地、中试线、生产线及其规模等'
,
trigger
:
'blur'
},],
technologyReportsTarget
:
{
required
:
true
,
message
:
'请填写科技报告考核指标'
,
trigger
:
'blur'
},
otherTarget
:
{
required
:
true
,
message
:
'请填写其他应考核的指标'
,
trigger
:
'blur'
},
downloadUrl
:
[{
required
:
true
,
message
:
'请填写关键词'
,
trigger
:
'blur'
},],
},
}
},
computed
:
{
},
mounted
()
{
},
methods
:
{
moment
,
getProject
()
{
this
.
$emit
(
'load'
,
true
)
if
(
!!
this
.
value
)
{
this
.
$api
.
project
.
getProjectInfoById
({
id
:
this
.
value
}).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
formData
=
data
this
.
loadList
()
}
else
this
.
$emit
(
'close'
,
'error'
)
this
.
$emit
(
'load'
,
false
)
}).
catch
(()
=>
{
this
.
$emit
(
'close'
,
'error'
)
this
.
$emit
(
'load'
,
false
)
})
}
else
{
this
.
$api
.
project
.
getNewProject
({
projType
:
getType
()
}).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
formData
=
data
this
.
loadList
()
}
else
this
.
$emit
(
'close'
,
'error'
)
this
.
$emit
(
'load'
,
false
)
}).
catch
(()
=>
{
this
.
$emit
(
'close'
,
'error'
)
this
.
$emit
(
'load'
,
false
)
})
}
},
loadList
()
{
if
(
!!!
this
.
formData
.
cooperativeUnits
||
this
.
formData
.
cooperativeUnits
.
length
==
0
)
this
.
formData
.
cooperativeUnits
=
[{
...
Cooperative
},
{
...
Cooperative
}]
if
(
!!!
this
.
formData
.
participateUnits
||
this
.
formData
.
participateUnits
.
length
==
0
)
this
.
formData
.
participateUnits
=
[{
...
ParticipateUnit
},
{
...
ParticipateUnit
}]
if
(
!!!
this
.
formData
.
members
||
this
.
formData
.
members
.
length
==
0
)
this
.
formData
.
members
=
[]
if
(
!!!
this
.
formData
.
deviceList
||
this
.
formData
.
deviceList
.
length
==
0
)
this
.
formData
.
deviceList
=
[]
if
(
!!!
this
.
formData
.
manufactureList
||
this
.
formData
.
manufactureList
.
length
==
0
)
this
.
formData
.
manufactureList
=
[]
if
(
!!!
this
.
formData
.
unitPayment
||
this
.
formData
.
unitPayment
.
length
==
0
)
this
.
formData
.
unitPayment
=
[]
if
(
!!!
this
.
formData
.
stageGoals
||
this
.
formData
.
stageGoals
.
length
==
0
)
this
.
formData
.
stageGoals
=
[{
...
StageGoals
},
{
...
StageGoals
},
{
...
StageGoals
}]
if
(
!!!
this
.
formData
.
projectSubList
||
this
.
formData
.
projectSubList
.
length
==
0
)
this
.
formData
.
projectSubList
=
[{
...
ProjectSub
}]
if
(
!!!
this
.
formData
.
fileList
||
!
this
.
formData
.
fileList
.
length
||
this
.
formData
.
fileList
.
length
==
0
)
{
this
.
formData
.
fileList
=
[]
}
},
processProjectYearTarget
()
{
this
.
formData
.
yearTarget
=
this
.
formData
.
projectKPI
.
yearTarget
this
.
formData
.
year1Goal
=
this
.
formData
.
projectKPI
.
year1Goal
this
.
formData
.
year2Goal
=
this
.
formData
.
projectKPI
.
year2Goal
this
.
formData
.
year3Goal
=
this
.
formData
.
projectKPI
.
year3Goal
this
.
formData
.
projectKPI
.
kpiList
=
this
.
formData
.
projectKPI
.
threeLevel
this
.
formData
.
managerDept
=
this
.
formData
.
projectKPI
.
managerDept
this
.
formData
.
projAttribute
=
this
.
formData
.
projectKPI
.
projAttribute
},
save
()
{
this
.
processProjectYearTarget
()
if
(
this
.
checkProjName
())
{
this
.
$emit
(
'load'
,
true
)
let
pars
=
isEmptyParams
(
this
.
formData
)
let
par
=
{
...
pars
}
this
.
$api
.
project
.
save
(
par
).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
formData
.
id
=
data
this
.
$message
.
success
(
'保存成功!'
)
this
.
$emit
(
'close'
,
'save'
)
}
this
.
$emit
(
'load'
,
false
)
}).
catch
(()
=>
{
this
.
$emit
(
'load'
,
false
)
})
}
},
submit
()
{
this
.
processProjectYearTarget
()
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
formData
.
members
.
length
==
0
)
{
this
.
$message
.
error
(
'至少添加一位项目组成员!'
)
return
false
}
else
{
this
.
$emit
(
'load'
,
true
)
if
(
this
.
formData
.
projState
<
10
)
this
.
formData
.
projState
=
10
let
pars
=
isEmptyParams
(
this
.
formData
)
let
par
=
{
...
pars
}
this
.
$api
.
project
.
save
(
par
).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
formData
.
id
=
data
this
.
$message
.
success
(
'成功!'
)
this
.
$emit
(
'close'
,
'submit'
)
}
this
.
$emit
(
'load'
,
false
)
}).
catch
(()
=>
{
this
.
$emit
(
'load'
,
false
)
})
}
}
else
{
this
.
$message
.
warn
(
'项目信息未填写完全!'
)
return
false
}
})
},
checkProjName
()
{
if
(
this
.
formData
.
projName
==
""
||
this
.
formData
.
projName
==
null
)
{
alert
(
'项目名称不能为空'
)
return
false
}
else
{
return
true
}
},
projNameChange
(
value
)
{
this
.
formData
.
projectKPI
.
projName
=
this
.
formData
.
projName
},
startDateChange
(
value
,
dateString
)
{
this
.
formData
.
projectKPI
.
startDate
=
this
.
formData
.
startDate
},
endDateChange
(
value
,
dateString
)
{
this
.
formData
.
projectKPI
.
endDate
=
this
.
formData
.
endDate
if
(
this
.
formData
.
projectKPI
.
startDate
&&
this
.
formData
.
projectKPI
.
endDate
)
{
let
projDeadline
=
moment
(
this
.
formData
.
startDate
).
format
(
'YYYY-MM-DD'
)
+
"至"
+
moment
(
this
.
formData
.
endDate
).
format
(
'YYYY-MM-DD'
)
this
.
formData
.
projectKPI
.
projDeadline
=
projDeadline
}
},
planSave
(
e
)
{
if
(
!!
e
&&
e
.
length
==
3
)
{
this
.
formData
.
projectKPI
.
yearTotal
=
e
[
0
]
this
.
formData
.
projectKPI
.
yearApply
=
e
[
1
]
this
.
formData
.
projectKPI
.
yearSelf
=
e
[
2
]
}
},
budgetSave
(
e
)
{
if
(
!!
e
&&
e
.
length
==
3
)
{
this
.
formData
.
totalFunding
=
e
[
0
]
this
.
formData
.
govFunding
=
e
[
1
]
this
.
formData
.
projectKPI
.
totalBudget
=
this
.
formData
.
totalFunding
this
.
formData
.
projectKPI
.
applyFunds
=
this
.
formData
.
govFunding
this
.
formData
.
projectKPI
.
selfFunds
=
e
[
2
]
}
},
}
}
</
script
>
<
style
scoped
lang=
"less"
>
</
style
>
src/views/report/task/Index.vue
View file @
bbdb4eea
...
...
@@ -36,10 +36,10 @@
</
template
>
</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-modal
v-model=
"visibleEdit"
:title=
"'创建/修改'"
:width=
"'
80%'"
:dialog-style=
"{ top: '5%' }"
:maskClosable=
"false"
:footer=
"null"
destroyOnClose
:centered=
"tru
e"
>
<task-
edit
v-model=
"projId"
@
close=
"closeWindow"
/>
<a-modal
v-model=
"visibleEdit"
:title=
"'创建/修改'"
:width=
"'
94%'"
:dialog-style=
"{ top: '8%' }"
:footer=
"null"
destroyOnClose
:maskClosable=
"fals
e"
>
<task-
create
v-model=
"projId"
@
close=
"closeWindow"
/>
</a-modal>
<a-modal
v-model=
"visibleView"
title=
"查看合同书"
:width=
"'
80%'"
:dialog-style=
"{ top: '5%' }"
:maskClosable=
"false"
:footer=
"null"
destroyOnClose
>
<a-modal
v-model=
"visibleView"
title=
"查看合同书"
:width=
"'
94%'"
:dialog-style=
"{ top: '8%' }"
:footer=
"null"
destroyOnClose
:maskClosable=
"false"
>
<task-view
v-model=
"projId"
@
close=
"closeWindow"
/>
</a-modal>
</div>
...
...
@@ -48,13 +48,13 @@
<
script
>
import
{
getType
}
from
'@/views/utils/auth'
import
{
isEmptyParams
,
filterExportExcelData
,
tableColumnsName
}
from
"@/views/utils/common"
;
import
task
Edit
from
"@/views/report/task/components/taskEdit
.vue"
import
task
Create
from
"@/views/report/task/components/taskCreate
.vue"
import
taskView
from
"@/views/report/task/components/taskView.vue"
export
default
{
name
:
'reportTask'
,
components
:
{
task
Edit
,
taskView
task
Create
,
taskView
},
data
()
{
return
{
...
...
src/views/statistic/project/Index.vue
View file @
bbdb4eea
...
...
@@ -62,13 +62,13 @@ import { getType } from '@/views/utils/auth'
import
moment
from
'moment'
import
{
isEmptyParams
,
filterExportExcelData
,
tableColumnsName
}
from
"@/views/utils/common"
;
import
projectView
from
'@/views/report/project/components/projectView'
import
projectEdit
from
'@/views/report/project/components/projectEdit'
import
unitEdit
from
'@/views/statistic/project/components/unitEdit'
import
unitTreeSelect
from
'@/views/components/common/unitTreeSelect'
export
default
{
name
:
'serchProject'
,
components
:
{
project
Edit
,
project
View
,
unitTreeSelect
,
unitEdit
projectView
,
unitTreeSelect
,
unitEdit
},
data
()
{
return
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment