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
191bd6fb
Commit
191bd6fb
authored
Dec 04, 2024
by
徐俊
Browse files
Options
Browse Files
Download
Plain Diff
xujun
parents
4227f5aa
70cb94c7
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
433 additions
and
88 deletions
+433
-88
index.js
src/router/index.js
+3
-10
Index.vue
src/views/audit/project/Index.vue
+2
-5
audit.vue
src/views/audit/project/audit.vue
+6
-6
login.vue
src/views/login/login.vue
+1
-1
Index.vue
src/views/report/project/Index.vue
+0
-1
managementRuleInfo.vue
src/views/report/project/components/managementRuleInfo.vue
+1
-1
projectEdit.vue
src/views/report/project/components/projectEdit.vue
+45
-24
projectInfo.vue
src/views/report/project/components/projectInfo.vue
+19
-9
projectResearchEdit.vue
src/views/report/project/components/projectResearchEdit.vue
+170
-0
projectResearchInfo.vue
src/views/report/project/components/projectResearchInfo.vue
+171
-0
projectSubInfo.vue
src/views/report/project/components/projectSubInfo.vue
+1
-1
projectView.vue
src/views/report/project/components/projectView.vue
+9
-8
index.vue
src/views/systemType/index.vue
+5
-5
auth.js
src/views/utils/auth.js
+0
-17
No files found.
src/router/index.js
View file @
191bd6fb
...
...
@@ -320,26 +320,19 @@ router.beforeEach(async (to, from, next) => {
const
hasUser
=
JSON
.
parse
(
window
.
sessionStorage
.
getItem
(
'user'
))
const
hasMenu
=
JSON
.
parse
(
window
.
sessionStorage
.
getItem
(
'menuList'
))
if
(
hasUser
&&
hasMenu
)
{
if
(
hasUser
.
type
===
'3'
&&
!!!
hasUser
.
projType
&&
hasUser
.
roles
!=
'4'
)
{
if
(
to
.
path
===
'/sys'
)
{
if
(
!
hasUser
.
projType
&&
hasUser
.
type
===
'3'
&&
hasUser
.
roles
!=
'4'
)
{
next
()
NProgress
.
done
()
}
else
{
next
({
path
:
'/'
})
NProgress
.
done
()
}
}
else
{
if
(
!
hasUser
.
projType
&&
hasUser
.
type
===
'3'
&&
hasUser
.
roles
!=
'4'
)
{
next
(
`/sys`
)
NProgress
.
done
()
}
}
else
{
// setType(hasUser.type + '')
// await store.dispatch('app/auth', to.path)
await
store
.
dispatch
(
'app/auth'
,
to
.
path
)
next
()
NProgress
.
done
()
}
}
}
else
{
await
store
.
dispatch
(
'user/getUser'
)
next
({
...
to
,
replace
:
true
})
...
...
src/views/audit/project/Index.vue
View file @
191bd6fb
...
...
@@ -60,7 +60,7 @@
</template>
<
script
>
import
{
getType
,
getUnitType
}
from
'@/views/utils/auth'
import
{
getType
}
from
'@/views/utils/auth'
import
moment
from
'moment'
import
{
isEmptyParams
,
filterExportExcelData
,
tableColumnsName
}
from
"@/views/utils/common"
;
import
paraSelect
from
'@/views/components/common/paraSelect'
...
...
@@ -151,19 +151,16 @@ export default {
this
.
getListByPage
()
},
getYear
()
{
let
type
=
getUnitType
()
this
.
$api
.
batch
.
getCurrentYearBatch
({
type
:
type
,
projType
:
getType
()
}).
then
(({
data
=
{}
})
=>
{
this
.
$api
.
batch
.
getCurrentYearBatch
({
type
:
1
,
projType
:
getType
()
}).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
isButten
=
data
.
disabled
this
.
description
=
data
.
description
this
.
searchForm
.
reportYear
=
data
.
year
console
.
log
(
'1'
)
this
.
getListByPage
()
}
}).
catch
(()
=>
{
})
},
getListByPage
()
{
console
.
log
(
'2'
)
this
.
getCount
()
this
.
loading
=
true
;
let
pars
=
isEmptyParams
(
this
.
searchForm
);
...
...
src/views/audit/project/audit.vue
View file @
191bd6fb
...
...
@@ -11,8 +11,8 @@
</div>
<div
style=
"width: 100%;height: calc(100% - 50px);overflow: auto;"
ref=
"main"
>
<div
class=
"x_modal_content"
>
<project-info
v-model=
"
projectInfo"
:tabsData
.
sync=
"tabsData"
v-if=
"projType
"
/>
<project-info-Key
v-model=
"
projectInfo"
:tabsData
.
sync=
"tabsData"
v-else
/>
<project-info
v-model=
"
formData"
:tabsData
.
sync=
"tabsData"
v-if=
"projType=='1'
"
/>
<project-info-Key
v-model=
"
formData"
:tabsData
.
sync=
"tabsData"
v-if=
"projType=='2'"
/>
<a-row>
<a-col
:span=
"24"
>
<div
class=
"tb-title"
>
...
...
@@ -22,7 +22,7 @@
</a-row>
<a-row>
<a-col
:span=
"24"
>
<audit-list
v-model=
"
projectInfo
.auditList"
/>
<audit-list
v-model=
"
formData
.auditList"
/>
</a-col>
</a-row>
<a-form-model
ref=
"form"
:model=
"auditObj"
:rules=
"rules"
class=
"from-table font-line-space"
>
...
...
@@ -66,7 +66,7 @@ export default {
{
title
:
'单位科研项目及资金管理制度'
,
key
:
'10'
,
isShow
:
true
},
// { title: '诚信承诺书', key: '11', isShow: true },
],
projectInfo
:
{
formData
:
{
id
:
null
,
organizationCode
:
null
,
address
:
null
,
...
...
@@ -121,7 +121,7 @@ export default {
auditResult
:
{
required
:
true
,
message
:
'请选择审核结果'
,
trigger
:
'change'
},
},
loading
:
false
,
projType
:
getType
()
==
"1"
projType
:
getType
()
};
},
props
:
{
...
...
@@ -148,7 +148,7 @@ export default {
this
.
loading
=
true
this
.
$api
.
project
.
getProjectInfoById
(
pars
).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
projectInfo
=
data
this
.
formData
=
data
this
.
loading
=
false
}
else
this
.
$emit
(
'close'
,
'error'
)
...
...
src/views/login/login.vue
View file @
191bd6fb
...
...
@@ -133,7 +133,7 @@ export default {
this
.
$message
.
success
(
'登录成功!'
);
setToken
(
data
.
access_token
)
//this.$router.push({ path: this.redirect || '/home', query: this.otherQuery })
this
.
$router
.
push
({
path
:
'/
home
'
})
this
.
$router
.
push
({
path
:
'/'
})
}
else
{
this
.
getCode
()
...
...
src/views/report/project/Index.vue
View file @
191bd6fb
...
...
@@ -150,7 +150,6 @@ export default {
},
data
()
{
return
{
projType
:
getType
()
==
"1"
,
loadState
:
false
,
//判断是否查询信息完整状态
isComplete
:
false
,
formData
:
{
id
:
null
,
nation
:
null
,
title
:
null
,
education
:
null
,
spec
:
null
,
email
:
null
,
sex
:
null
,
birthday
:
null
},
...
...
src/views/report/project/components/managementRuleInfo.vue
View file @
191bd6fb
...
...
@@ -113,7 +113,7 @@ export default {
dataList
:
{
type
:
Array
,
default
:
()
=>
{
return
[
{
...
ManagementRule
}
]
return
[]
}
},
},
...
...
src/views/report/project/components/projectEdit.vue
View file @
191bd6fb
...
...
@@ -167,7 +167,7 @@
</div>
</a-col>
</a-row>
-->
<a-row
type=
"flex"
>
<
!--
<
a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
开户银行
</div>
...
...
@@ -196,7 +196,7 @@
</div>
</div>
</a-col>
</a-row>
</a-row>
-->
<!--
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
...
...
@@ -227,7 +227,7 @@
</div>
</a-col>
</a-row>
-->
<a-row
type=
"flex"
>
<
!--
<
a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
上年度研发经费支出总额(单位:万元)
</div>
...
...
@@ -290,7 +290,7 @@
</div>
</div>
</a-col>
</a-row>
</a-row>
-->
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px"
>
...
...
@@ -330,9 +330,10 @@
</div>
</a-col>
<a-col
:span=
"20"
>
<a-form-model-item
prop=
"recommendUnit"
>
{{
formData
.
appUnitName
}}
<!--
<a-form-model-item
prop=
"recommendUnit"
>
<a-input
placeholder=
"推荐部门"
v-model=
"formData.recommendUnit"
:maxLength=
"100"
style=
"width: 80%"
/>
</a-form-model-item>
</a-form-model-item>
-->
</a-col>
</a-row>
<a-row
type=
"flex"
>
...
...
@@ -357,7 +358,7 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<
!--
<
a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
项目依托的科技创新基地
</div>
...
...
@@ -368,7 +369,7 @@
<a-input
placeholder=
"项目依托的科技创新基地"
v-model=
"formData.technologyInnovationBase"
:maxLength=
"100"
style=
"width: 80%"
/>
</a-form-model-item>
</a-col>
</a-row>
</a-row>
-->
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
...
...
@@ -509,10 +510,21 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px"
>
<div
class=
"tb-title"
>
<span>
3、在研或完成基础研究项目情况
</span>
</div>
</a-col>
</a-row>
<!-- 在研或完成基础研究项目情况 -->
<project-research-edit
:projectResearchList
.
sync=
"formData.projectResearchList"
/>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
3
、与项目相关的国内外技术发展现状(包括知识产权情况)以及本项目主要研究开发内容技术关键(创新点)、可行性评价及项目风险分析与对策
</div>
<div
class=
"required"
>
4
、与项目相关的国内外技术发展现状(包括知识产权情况)以及本项目主要研究开发内容技术关键(创新点)、可行性评价及项目风险分析与对策
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
...
...
@@ -599,9 +611,9 @@
<!-- 经费预算 -->
<budget-edit
:budget
.
sync=
"formData.budget"
/>
<!-- 分年度用款计划 -->
<fund-plan-edit
:fundPlan
.
sync=
"formData.fundPlan"
/>
<fund-plan-edit
:fundPlan
.
sync=
"formData.fundPlan"
/>
<!-- 设备费-购置设备预算明细表 -->
<equipments-edit
:equipments
.
sync=
"formData.equipments"
/>
<equipments-edit
:equipments
.
sync=
"formData.equipments"
/>
<!-- 科技计划项目承担单位研究资金支出预算明细表 -->
<unit-payment-edit
:unitPayment
.
sync=
"formData.unitPayment"
/>
<!-- 项目绩效指标 -->
...
...
@@ -631,12 +643,15 @@ import fundPlanEdit from '@/views/report/project/components/fundPlanEdit'
import
equipmentsEdit
from
'@/views/report/project/components/equipmentsEdit.vue'
import
unitPaymentEdit
from
'@/views/report/project/components/unitPaymentEdit.vue'
import
projectKpiEdit
from
'@/views/report/project/components/projectKpiEdit.vue'
import
projectResearchEdit
from
'@/views/report/project/components/projectResearchEdit'
import
projectSubEdit
from
'@/views/report/project/components/projectSubEdit'
import
managementRuleEdit
from
'@/views/report/project/components/managementRuleEdit'
import
fileEdit
from
'@/views/report/project/components/fileEdit'
import
{
isEmptyParams
}
from
"@/views/utils/common"
import
moment
from
'moment'
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
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
,
unitCountry
:
null
,
unitAddress
:
null
,
organizationCode
:
null
,
projectWork
:
null
}
...
...
@@ -676,8 +691,7 @@ const projectKPI = {
export
default
{
name
:
'projectEdit'
,
components
:
{
paraMultiSelect
,
paraSelect
,
baseSelect
,
projectMemberEdit
,
cooperativeUnitsEdit
,
budgetEdit
,
fundPlanEdit
,
equipmentsEdit
,
unitPaymentEdit
,
projectKpiEdit
,
projectSubEdit
,
managementRuleEdit
,
fileEdit
paraMultiSelect
,
paraSelect
,
baseSelect
,
projectMemberEdit
,
cooperativeUnitsEdit
,
budgetEdit
,
fundPlanEdit
,
equipmentsEdit
,
unitPaymentEdit
,
projectKpiEdit
,
projectResearchEdit
,
projectSubEdit
,
managementRuleEdit
,
fileEdit
},
props
:
{
value
:
{
...
...
@@ -738,12 +752,12 @@ export default {
cooperativeUnits
:
[],
members
:
[],
budget
:
[],
fundPlan
:[],
fundPlan
:
[],
equipments
:
[],
projectResearchList
:
[],
projectSubList
:
[],
managementRuleList
:
[],
fileList
:
[],
projType
:
getType
()
},
rules
:
{
organizationCode
:
[{
required
:
true
,
message
:
'请填写组织机构代码/统一社会信用代码'
,
trigger
:
'blur'
},],
...
...
@@ -754,17 +768,17 @@ export default {
// workforce: [{ required: true, message: '请填写职工总数', trigger: 'blur' },],
// specializedPersonnel: [{ required: true, message: '请填写其中专科以上人员', trigger: 'blur' },],
// researchPersonnel: [{ required: true, message: '请填写研究开发人员', trigger: 'blur' },],
depositBank
:
[{
required
:
true
,
message
:
'请填写开户银行'
,
trigger
:
'blur'
},],
bankAccount
:
[{
required
:
true
,
message
:
'请填写银行账号'
,
trigger
:
'blur'
},],
depositBankAddress
:
[{
required
:
false
,
message
:
'请填写开户银行地址'
,
trigger
:
'blur'
},],
interbankNumber
:
[{
required
:
false
,
message
:
'请填写开户银行地址'
,
trigger
:
'blur'
},],
researchTotal
:
[{
required
:
true
,
message
:
'请填写上年度研发经费支出总额'
,
trigger
:
'blur'
},],
isResearchActive
:
[{
required
:
true
,
message
:
'请选择上年度是否填报了研发活动情况'
,
trigger
:
'change'
},],
researchCount
:
[{
required
:
true
,
message
:
'请填写上一年度填报的研发投入总数'
,
trigger
:
'blur'
},],
researchPersonCount
:
[{
required
:
true
,
message
:
'请填写上一年度填报的研发人员数'
,
trigger
:
'blur'
},],
//
depositBank: [{ required: true, message: '请填写开户银行', trigger: 'blur' },],
//
bankAccount: [{ required: true, message: '请填写银行账号', trigger: 'blur' },],
//
depositBankAddress: [{ required: false, message: '请填写开户银行地址', trigger: 'blur' },],
//
interbankNumber: [{ required: false, message: '请填写开户银行地址', trigger: 'blur' },],
//
researchTotal: [{ required: true, message: '请填写上年度研发经费支出总额', trigger: 'blur' },],
//
isResearchActive: [{ required: true, message: '请选择上年度是否填报了研发活动情况', trigger: 'change' },],
//
researchCount: [{ required: true, message: '请填写上一年度填报的研发投入总数', trigger: 'blur' },],
//
researchPersonCount: [{ required: true, message: '请填写上一年度填报的研发人员数', trigger: 'blur' },],
projName
:
[{
required
:
true
,
message
:
'请填写项目名称'
,
trigger
:
'blur'
},],
leadUnit
:
[{
required
:
true
,
message
:
'请填写项目所属二级学院/部门名称(牵头单位)'
,
trigger
:
'blur'
},],
recommendUnit
:
[{
required
:
tru
e
,
message
:
'请填写推荐部门'
,
trigger
:
'blur'
},],
// recommendUnit: [{ required: fals
e, message: '请填写推荐部门', trigger: 'blur' },],
startDate
:
{
required
:
true
,
message
:
'请选择项日开始时间'
,
trigger
:
'change'
},
endDate
:
{
required
:
true
,
message
:
'请选择项目结束时间'
,
trigger
:
'change'
},
technologyInnovationBase
:
[{
required
:
true
,
message
:
'请填写项目依托的科技创新基地'
,
trigger
:
'blur'
},],
...
...
@@ -799,8 +813,10 @@ export default {
if
(
!!
this
.
value
)
{
this
.
$api
.
project
.
getProjectInfoById
({
id
:
this
.
value
}).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
console
.
log
(
'q'
,
data
)
this
.
formData
=
data
this
.
loadList
()
console
.
log
(
'h'
,
this
.
formData
)
}
else
this
.
$emit
(
'close'
,
'error'
)
this
.
$emit
(
'load'
,
false
)
...
...
@@ -811,8 +827,10 @@ export default {
}
else
{
this
.
$api
.
project
.
getNewProject
({
projType
:
getType
()
}).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
console
.
log
(
'q'
,
data
)
this
.
formData
=
data
this
.
loadList
()
console
.
log
(
'h'
,
this
.
formData
)
}
else
this
.
$emit
(
'close'
,
'error'
)
this
.
$emit
(
'load'
,
false
)
...
...
@@ -823,6 +841,9 @@ export default {
}
},
loadList
()
{
if
(
!!!
this
.
formData
.
projectResearchList
||
this
.
formData
.
projectResearchList
.
length
==
0
)
this
.
formData
.
projectResearchList
=
[{
...
ProjResearch
}]
if
(
!!!
this
.
formData
.
managementRuleList
||
this
.
formData
.
managementRuleList
.
length
==
0
)
this
.
formData
.
managementRuleList
=
[{
...
ManagementRule
}]
if
(
!!!
this
.
formData
.
projectSubList
||
this
.
formData
.
projectSubList
.
length
==
0
)
...
...
src/views/report/project/components/projectInfo.vue
View file @
191bd6fb
...
...
@@ -145,7 +145,7 @@
</div>
</a-col>
</a-row>
-->
<a-row
type=
"flex"
>
<
!--
<
a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
开户银行
</div>
...
...
@@ -196,8 +196,8 @@
</div>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
</a-row>
-->
<
!--
<
a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
上年度研发经费支出总额(单位:万元)
</div>
...
...
@@ -252,7 +252,7 @@
</div>
</div>
</a-col>
</a-row>
</a-row>
-->
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px"
>
...
...
@@ -293,7 +293,7 @@
</a-col>
<a-col
:span=
"20"
>
<div
class=
"special-middle"
>
{{
value
.
recommendUnit
}}
{{
value
.
appUnitName
}}
</div>
</a-col>
</a-row>
...
...
@@ -319,7 +319,7 @@
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<
!--
<
a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
项目依托的科技创新基地
</div>
...
...
@@ -330,7 +330,7 @@
{{
value
.
technologyInnovationBase
}}
</div>
</a-col>
</a-row>
</a-row>
-->
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
...
...
@@ -555,10 +555,19 @@
<div
v-html=
"toTextarea(value.memResume)"
></div>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"24"
style=
"border-top: 0px"
>
<div
class=
"tb-title"
>
<span>
3、在研或完成基础研究项目情况
</span>
</div>
</a-col>
</a-row>
<!-- 在研或完成基础研究项目情况 -->
<project-research-info
:dataList
.
sync=
"value.projectResearchList"
/>
<a-row
type=
"flex"
>
<a-col
:span=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
3
、与项目相关的国内外技术发展现状(包括知识产权情况)以及本项目主要研究开发内容技术关键(创新点)、可行性评价及项目风险分析与对策
</div>
<div>
4
、与项目相关的国内外技术发展现状(包括知识产权情况)以及本项目主要研究开发内容技术关键(创新点)、可行性评价及项目风险分析与对策
</div>
</div>
</a-col>
<a-col
:span=
"20"
>
...
...
@@ -672,6 +681,7 @@ import fundPlanInfo from '@/views/report/project/components/fundPlanInfo'
import
equipmentsInfo
from
'@/views/report/project/components/equipmentsInfo.vue'
import
unitPaymentInfo
from
'@/views/report/project/components/unitPaymentInfo.vue'
import
projectKpiInfo
from
'@/views/report/project/components/projectKpiInfo.vue'
import
projectResearchInfo
from
'@/views/report/project/components/projectResearchInfo'
import
projectSubInfo
from
'@/views/report/project/components/projectSubInfo'
import
managementRuleInfo
from
'@/views/report/project/components/managementRuleInfo'
import
fileInfo
from
"@/views/report/project/components/fileInfo"
;
...
...
@@ -684,7 +694,7 @@ import { toTextarea } from '@/views/utils/common'
export
default
{
components
:
{
projectMemberInfo
,
cooperativeUnitsInfo
,
budgetInfo
,
fundPlanInfo
,
equipmentsInfo
,
unitPaymentInfo
,
projectKpiInfo
,
projectSubInfo
,
managementRuleInfo
,
fileInfo
,
AuditList
,
documentView
projectMemberInfo
,
cooperativeUnitsInfo
,
budgetInfo
,
fundPlanInfo
,
equipmentsInfo
,
unitPaymentInfo
,
projectKpiInfo
,
projectResearchInfo
,
projectSubInfo
,
managementRuleInfo
,
fileInfo
,
AuditList
,
documentView
},
name
:
"ProjectInfo"
,
data
()
{
...
...
src/views/report/project/components/projectResearchEdit.vue
0 → 100644
View file @
191bd6fb
<
template
>
<div>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
项目编号
</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=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
批准单位
</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=
"4"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
开始日期
</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=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
项目经费(万元)
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
操作
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in projectResearchList"
:key=
"'projectResearchList'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"3"
>
<a-form-model-item
:prop=
"'projectResearchList.' + index + '.projNo'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input
v-model=
"item.projNo"
:maxLength=
"50"
placeholder=
"项目编号"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"3"
>
<a-form-model-item
:prop=
"'projectResearchList.' + index + '.projName'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input
v-model=
"item.projName"
:projName=
"50"
placeholder=
"项目名称"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"3"
>
<a-form-model-item
:prop=
"'projectResearchList.' + index + '.approveUnit'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input
v-model=
"item.approveUnit"
:maxLength=
"50"
placeholder=
"批准单位"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"3"
>
<a-form-model-item
:prop=
"'projectResearchList.' + index + '.leader'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input
v-model=
"item.leader"
:maxLength=
"100"
placeholder=
"负责人"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"4"
>
<a-form-model-item
:prop=
"'projectResearchList.' + index + '.startDate'"
:rules=
"
{ required: true, message: '*', trigger: 'change',}">
<a-date-picker
format=
"YYYY-MM-DD"
valueFormat=
"YYYY-MM-DD HH:mm:ss"
placeholder=
"开始日期"
v-model=
"item.startDate"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"4"
>
<a-form-model-item
:prop=
"'projectResearchList.' + index + '.endDate'"
:rules=
"
{ required: true, message: '*', trigger: 'change',}">
<a-date-picker
format=
"YYYY-MM-DD"
valueFormat=
"YYYY-MM-DD HH:mm:ss"
placeholder=
"结束日期"
v-model=
"item.endDate"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"2"
>
<a-form-model-item
:prop=
"'projectResearchList.' + index + '.funds'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input-number
v-model=
"item.funds"
placeholder=
"项目经费"
:min=
"0"
:step=
"0.01"
style=
"width:85%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
<a-popconfirm
title=
"确定要删除吗?"
ok-text=
"确定"
cancel-text=
"取消"
@
confirm=
"deleteArrey(item)"
>
<a-button
type=
"link"
size=
"small"
>
删除
</a-button>
</a-popconfirm>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
>
<a-col
:span=
"24"
style=
"text-align: center"
>
<div
class=
"special-middle"
>
<a-button
type=
"dashed"
style=
"width: 20%"
@
click=
"addArrey()"
>
<a-icon
type=
"plus"
/>
添加
<span
style=
"color:red;margin-left:10px"
></span>
</a-button>
</div>
</a-col>
</a-row>
</div>
</
template
>
<
script
>
const
ProjResearch
=
{
projNo
:
null
,
projName
:
null
,
approveUnit
:
null
,
leader
:
null
,
startDate
:
null
,
endDate
:
null
,
funds
:
null
}
export
default
{
name
:
"projectResearchEdit"
,
components
:
{
},
props
:
{
projectResearchList
:
{
type
:
Array
,
default
:
()
=>
{
return
[{
...
ProjResearch
}]
}
},
},
data
()
{
return
{
};
},
created
()
{
},
computed
:
{
},
methods
:
{
addArrey
()
{
//添加成员
this
.
dataList
.
push
({
...
ProjResearch
})
},
deleteArrey
(
item
)
{
//移除成员
let
index
=
this
.
dataList
.
indexOf
(
item
)
if
(
index
!==
-
1
)
{
this
.
dataList
.
splice
(
index
,
1
)
}
},
},
};
</
script
>
<
style
scoped
lang=
"less"
>
.file-description {
display: block;
width: 100%;
line-height: 22px;
padding: 3px 3px 3px 3px;
color: red;
white-space: normal;
word-wrap: break-word;
// text-indent: 1em;
}
.inner_from {
.ant-row-flex:last-child .ant-col {
border-bottom: 0;
}
.ant-row-flex .ant-col:first-child {
border-left: 0;
}
.ant-row-flex {
border-right: 0;
}
}
.special-middle {
.font_s {
margin: 0 6px;
}
}
</
style
>
src/views/report/project/components/projectResearchInfo.vue
0 → 100644
View file @
191bd6fb
<
template
>
<div>
<a-row
type=
"flex"
class=
"row_center"
>
<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
class=
"required"
>
项目编号
</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=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
批准单位
</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=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
开始日期
</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=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
项目经费(万元)
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
操作
</div>
</div>
</a-col>
</a-row>
<a-row
v-for=
"(item, index) in dataList"
:key=
"'researchListInfo'+index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<div>
{{
index
+
1
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
projNo
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
projName
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
approveUnit
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
leader
}}
</div>
</div>
</a-col>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
<div>
{{
moment
(
item
.
startDate
).
format
(
'YYYY-MM-DD'
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
<div>
{{
moment
(
item
.
endDate
).
format
(
'YYYY-MM-DD'
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"special-middle"
>
<div>
{{
item
.
funds
}}
</div>
</div>
</a-col>
</a-row>
</div>
</
template
>
<
script
>
import
moment
from
'moment'
export
default
{
name
:
"projectResearchInfo"
,
components
:
{
},
props
:
{
dataList
:
{
type
:
Array
,
default
:
()
=>
{
return
[]
}
},
},
data
()
{
return
{
};
},
created
()
{
},
computed
:
{
},
methods
:
{
moment
,
},
};
</
script
>
<
style
scoped
lang=
"less"
>
.file-description {
display: block;
width: 100%;
line-height: 22px;
padding: 3px 3px 3px 3px;
color: red;
white-space: normal;
word-wrap: break-word;
// text-indent: 1em;
}
.inner_from {
.ant-row-flex:last-child .ant-col {
border-bottom: 0;
}
.ant-row-flex .ant-col:first-child {
border-left: 0;
}
.ant-row-flex {
border-right: 0;
}
}
.special-middle {
.font_s {
margin: 0 6px;
}
}
</
style
>
src/views/report/project/components/projectSubInfo.vue
View file @
191bd6fb
...
...
@@ -148,7 +148,7 @@ export default {
dataList
:
{
type
:
Array
,
default
:
()
=>
{
return
[
{
...
ProjectSub
}
]
return
[]
}
},
},
...
...
src/views/report/project/components/projectView.vue
View file @
191bd6fb
...
...
@@ -11,8 +11,8 @@
<div
class=
"page-footer"
>
<!-- 申报项目详情 -->
<!--
<a-button
type=
"primary"
@
click=
"onExport"
>
导出
</a-button>
-->
<project-info
v-model=
"
projectInfo"
:tabsData
.
sync=
"tabsData"
v-if=
"projType
"
/>
<project-info-Key
v-model=
"
projectInfo"
:tabsData
.
sync=
"tabsData"
v-else
/>
<project-info
v-model=
"
formData"
:tabsData
.
sync=
"tabsData"
v-if=
"projType=='1'
"
/>
<project-info-Key
v-model=
"
formData"
:tabsData
.
sync=
"tabsData"
v-if=
"projType=='2'"
/>
</div>
</a-spin>
</div>
...
...
@@ -73,7 +73,7 @@ export default {
{
title
:
'单位科研项目及资金管理制度'
,
key
:
'10'
,
isShow
:
true
},
// { title: '诚信承诺书', key: '11', isShow: true },
],
projectInfo
:
{
formData
:
{
id
:
null
,
organizationCode
:
null
,
address
:
null
,
...
...
@@ -118,13 +118,13 @@ export default {
members
:
[],
budget
:
[],
equipments
:
[],
projectResearchList
:
[],
projectSubList
:
[],
managementRuleList
:
[],
fileList
:
[],
projType
:
getType
()
},
loading
:
false
,
projType
:
getType
()
==
"1"
projType
:
getType
()
};
},
props
:
{
...
...
@@ -133,9 +133,10 @@ export default {
default
:
()
=>
{
return
null
}
}
}
,
},
created
()
{
console
.
log
(
this
.
projType
)
this
.
getProjectInfoById
()
},
methods
:
{
...
...
@@ -144,7 +145,7 @@ export default {
this
.
loading
=
true
this
.
$api
.
project
.
getProjectInfoById
({
id
:
this
.
value
}).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
projectInfo
=
data
this
.
formData
=
data
this
.
loading
=
false
}
else
this
.
$emit
(
'close'
,
'error'
)
...
...
@@ -156,7 +157,7 @@ export default {
let
blob
=
new
Blob
([
res
],
{
type
:
"application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8"
,
});
const
fileName
=
this
.
projectInfo
.
projName
+
'.doc'
;
const
fileName
=
this
.
formData
.
projName
+
'.doc'
;
let
downloadElement
=
document
.
createElement
(
'a'
)
let
href
=
window
.
URL
.
createObjectURL
(
blob
);
//创建下载的链接
downloadElement
.
href
=
href
;
...
...
src/views/systemType/index.vue
View file @
191bd6fb
...
...
@@ -32,22 +32,22 @@
</div>
<div
class=
"content"
>
<div
class=
"content_list"
>
<div
class=
"content_list_item "
@
click=
"on
User
(1)"
>
<div
class=
"content_list_item "
@
click=
"on
ChangeType
(1)"
>
<div
class=
"item_header item_b"
></div>
<div
class=
"item_center"
>
<a-icon
type=
"file-text"
class=
"item_center-icon"
theme=
"twoTone"
two-tone-color=
"#f5b65c"
/>
</div>
<div
class=
"item_title"
>
云南省卫生健康领域
<br/>
科技计划项目
</div>
<div
class=
"item_title"
>
云南省卫生健康领域
<br
/>
科技计划项目
</div>
<div
class=
"item_bottom"
>
<a-icon
type=
"right-circle"
class=
"item_bottom-icon"
/>
</div>
</div>
<div
style=
"margin-left: 70px;"
class=
"content_list_item"
@
click=
"on
User
(2)"
>
<div
style=
"margin-left: 70px;"
class=
"content_list_item"
@
click=
"on
ChangeType
(2)"
>
<div
class=
"item_header item_r"
></div>
<div
class=
"item_center"
>
<a-icon
type=
"book"
class=
"item_center-icon"
theme=
"twoTone"
two-tone-color=
"#ff87a8"
/>
</div>
<div
class=
"item_title"
>
云南省
<br
/>
公立医院高水平临床专科建设
<br
/>
科技项目
</div>
<div
class=
"item_title"
>
云南省
<br
/>
公立医院高水平临床专科建设
<br
/>
科技项目
</div>
<div
class=
"item_bottom"
>
<a-icon
type=
"right-circle"
class=
"item_bottom-icon"
/>
</div>
...
...
@@ -76,7 +76,7 @@ export default {
this
.
userInfo
=
JSON
.
parse
(
window
.
sessionStorage
.
getItem
(
'user'
))
},
methods
:
{
on
User
(
type
)
{
on
ChangeType
(
type
)
{
this
.
loading
=
true
this
.
$changeProjType
(
type
)
this
.
loading
=
false
...
...
src/views/utils/auth.js
View file @
191bd6fb
...
...
@@ -32,21 +32,4 @@ export function setType (type) {
return
type
}
export
function
getUnitType
()
{
let
user
=
JSON
.
parse
(
window
.
sessionStorage
.
getItem
(
"user"
))
let
type
=
0
//最高级行政单位管理员
if
(
user
&&
user
.
roles
&&
(
user
.
roles
.
indexOf
(
"0"
)
!=
-
1
))
{}
else
if
(
user
&&
user
.
roles
&&
(
user
.
roles
.
indexOf
(
"1"
)
!=
-
1
))
{
//行政管理员
type
=
3
}
else
if
(
user
&&
user
.
roles
&&
(
user
.
roles
.
indexOf
(
"2"
)
!=
-
1
))
{
//单位管理员
if
(
user
.
unitCode
.
length
==
(
Vue
.
prototype
.
$defaultLength
*
2
))
type
=
4
//省直单位
else
type
=
2
//州市级及以下单位
}
else
if
(
user
&&
user
.
roles
&&
(
user
.
roles
.
indexOf
(
"5"
)
!=
-
1
))
{
//专家
type
=
5
}
return
type
}
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