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
5ff83e43
Commit
5ff83e43
authored
Mar 25, 2025
by
徐俊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
xujun
parent
09402094
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
352 additions
and
9 deletions
+352
-9
Index.vue
src/views/report/talent/Index.vue
+1
-1
budgetEdit.vue
src/views/report/talent/components/budgetEdit.vue
+289
-0
budgetInfo.vue
src/views/report/talent/components/budgetInfo.vue
+0
-0
scientificGainInfo.vue
src/views/report/talent/components/scientificGainInfo.vue
+0
-0
talentEdit.vue
src/views/report/talent/components/talentEdit.vue
+59
-7
talentInfo.vue
src/views/report/talent/components/talentInfo.vue
+3
-1
No files found.
src/views/report/talent/Index.vue
View file @
5ff83e43
...
...
@@ -30,7 +30,7 @@
<
template
slot=
"option"
slot-scope=
"record"
>
<a-button
type=
"link"
size=
"small"
@
click=
"recordClick(record,'view')"
>
查看
</a-button>
<a-button
type=
"link"
size=
"small"
@
click=
"recordClick(record,'edit')"
>
修改
</a-button>
<a-button
type=
"link"
size=
"small"
@
click=
"recordClick(record,'re
set')"
>
重置密码
</a-button>
<a-button
type=
"link"
size=
"small"
@
click=
"recordClick(record,'re
port')"
>
上报
</a-button>
</
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} 条`"
/>
...
...
src/views/report/talent/components/budgetEdit.vue
0 → 100644
View file @
5ff83e43
<
template
>
<div>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"5"
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=
"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 budgetList"
:key=
"index"
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"5"
style=
"text-align: left;"
>
<div
class=
"special-middle"
v-if=
"item.isRequired"
>
{{
item
.
budgetName
}}
</div>
<div
class=
"special-middle"
v-else
>
<a-form-model-item
:prop=
"'budgetList.' + index + '.budgetName'"
:rules=
"
{ required: true, message: '*', trigger: 'blur',}">
<a-input
v-model=
"item.budgetName"
:maxLength=
"50"
style=
"width:85%"
/>
</a-form-model-item>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<a-form-model-item
v-if=
"!invisibleYearValue1.includes(index)"
:prop=
"'budgetList.' + index + '.yearValue1'"
:rules=
"
{required: true, message: '*', trigger: 'blur',}">
<a-input-number
v-model=
"item.yearValue1"
@
change=
"YearValue1Change(index)"
:min=
"0"
:step=
"0.01"
style=
"width: 80%"
/>
</a-form-model-item>
<div
v-else
>
{{
parseFloat
(
item
.
yearValue1
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<a-form-model-item
v-if=
"!invisibleYearValue2.includes(index)"
:prop=
"'budgetList.' + index + '.yearValue2'"
:rules=
"
{required: true, message: '*', trigger: 'blur',}">
<a-input-number
v-model=
"item.yearValue2"
@
change=
"YearValue2Change(index)"
:min=
"0"
:step=
"0.01"
style=
"width: 80%"
/>
</a-form-model-item>
<div
v-else
>
{{
parseFloat
(
item
.
yearValue2
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<a-form-model-item
v-if=
"!invisibleYearValue3.includes(index)"
:prop=
"'budgetList.' + index + '.yearValue3'"
:rules=
"
{required: true, message: '*', trigger: 'blur',}">
<a-input-number
v-model=
"item.yearValue3"
@
change=
"YearValue3Change(index)"
:min=
"0"
:step=
"0.01"
style=
"width: 80%"
/>
</a-form-model-item>
<div
v-else
>
{{
parseFloat
(
item
.
yearValue3
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<a-form-model-item
v-if=
"!invisibleYearValue4.includes(index)"
:prop=
"'budgetList.' + index + '.yearValue4'"
:rules=
"
{required: true, message: '*', trigger: 'blur',}">
<a-input-number
v-model=
"item.yearValue4"
@
change=
"YearValue4Change(index)"
:min=
"0"
:step=
"0.01"
style=
"width: 80%"
/>
</a-form-model-item>
<div
v-else
>
{{
parseFloat
(
item
.
yearValue4
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
class=
"special-middle"
>
<a-form-model-item
v-if=
"!invisibleYearValue5.includes(index)"
:prop=
"'budgetList.' + index + '.yearValue5'"
:rules=
"
{required: true, message: '*', trigger: 'blur',}">
<a-input-number
v-model=
"item.yearValue5"
@
change=
"YearValue5Change(index)"
:min=
"0"
:step=
"0.01"
style=
"width: 80%"
/>
</a-form-model-item>
<div
v-else
>
{{
parseFloat
(
item
.
yearValue5
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
item
.
amountFee
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"2"
>
<div
class=
"special-middle"
v-if=
"!item.isRequired"
>
<a-popconfirm
title=
"确定要删除吗?"
ok-text=
"确定"
cancel-text=
"取消"
@
confirm=
"deleteBudgetArray(item)"
>
<a-button
type=
"link"
size=
"small"
>
删除
</a-button>
</a-popconfirm>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"5"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
合计
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue1
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue2
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue3
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue4
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"3"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalYearValue5
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div>
{{
parseFloat
(
totalFee
).
toFixed
(
2
)
}}
</div>
</div>
</a-col>
<a-col
:span=
"2"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div></div>
</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=
"addBudgetArray()"
>
<a-icon
type=
"plus"
/>
添加
<span
style=
"color:red;margin-left:10px"
></span>
</a-button>
</div>
</a-col>
</a-row>
</div>
</
template
>
<
script
>
const
Budget
=
{
id
:
null
,
talentId
:
null
,
budgetId
:
null
,
yearValue1
:
0.00
,
yearValue2
:
0.00
,
yearValue3
:
0.00
,
yearValue4
:
0.00
,
yearValue5
:
0.00
,
amountFee
:
0.00
,
showIndex
:
null
,
isRequired
:
false
}
export
default
{
name
:
"budgetEdit"
,
props
:
{
budgetList
:
{
type
:
Array
,
default
:
()
=>
{
return
[{
...
Budget
}];
},
}
},
data
()
{
return
{
totalYearValue1
:
0.00
,
totalYearValue2
:
0.00
,
totalYearValue3
:
0.00
,
totalYearValue4
:
0.00
,
totalYearValue5
:
0.00
,
totalFee
:
0.00
,
invisibleYearValue1
:
[
2
,
8
],
invisibleYearValue2
:
[
2
,
8
],
invisibleYearValue3
:
[
2
,
8
],
invisibleYearValue4
:
[
2
,
8
],
invisibleYearValue5
:
[
2
,
8
],
}
},
created
()
{
},
methods
:
{
FeeChange
(
index
)
{
if
(
index
==
0
)
this
.
educationFee
()
else
if
(
index
==
1
)
this
.
scienceFee
()
else
if
(
index
>
2
&&
index
<
8
)
this
.
researchFee
(
index
)
else
if
(
this
.
budgetList
.
length
>
8
)
this
.
otherFee
(
index
)
this
.
calTotalFee
()
},
YearValue1Change
(
index
)
{
this
.
FeeChange
(
index
)
},
YearValue2Change
(
index
)
{
this
.
FeeChange
(
index
)
},
YearValue3Change
(
index
)
{
this
.
FeeChange
(
index
)
},
YearValue4Change
(
index
)
{
this
.
FeeChange
(
index
)
},
YearValue5Change
(
index
)
{
this
.
FeeChange
(
index
)
},
calTotalFee
()
{
this
.
totalYearValue1
=
this
.
budgetList
[
0
].
yearValue1
+
this
.
budgetList
[
1
].
yearValue1
+
this
.
budgetList
[
2
].
yearValue1
+
this
.
budgetList
[
8
].
yearValue1
this
.
totalYearValue2
=
this
.
budgetList
[
0
].
yearValue2
+
this
.
budgetList
[
1
].
yearValue2
+
this
.
budgetList
[
2
].
yearValue2
+
this
.
budgetList
[
8
].
yearValue2
this
.
totalYearValue3
=
this
.
budgetList
[
0
].
yearValue3
+
this
.
budgetList
[
1
].
yearValue3
+
this
.
budgetList
[
2
].
yearValue3
+
this
.
budgetList
[
8
].
yearValue3
this
.
totalYearValue4
=
this
.
budgetList
[
0
].
yearValue4
+
this
.
budgetList
[
1
].
yearValue4
+
this
.
budgetList
[
2
].
yearValue4
+
this
.
budgetList
[
8
].
yearValue4
this
.
totalYearValue5
=
this
.
budgetList
[
0
].
yearValue5
+
this
.
budgetList
[
1
].
yearValue5
+
this
.
budgetList
[
2
].
yearValue5
+
this
.
budgetList
[
8
].
yearValue5
this
.
totalFee
=
this
.
totalYearValue1
+
this
.
totalYearValue2
+
this
.
totalYearValue3
+
+
this
.
totalYearValue4
+
this
.
totalYearValue5
},
//一、国内外进修费用
educationFee
()
{
this
.
budgetList
[
0
].
amountFee
=
this
.
budgetList
[
0
].
yearValue1
+
this
.
budgetList
[
0
].
yearValue2
+
this
.
budgetList
[
0
].
yearValue3
+
this
.
budgetList
[
0
].
yearValue4
+
this
.
budgetList
[
0
].
yearValue5
},
//二、学术交流费用
scienceFee
()
{
this
.
budgetList
[
1
].
amountFee
=
this
.
budgetList
[
1
].
yearValue1
+
this
.
budgetList
[
1
].
yearValue2
+
this
.
budgetList
[
1
].
yearValue3
+
this
.
budgetList
[
1
].
yearValue4
+
this
.
budgetList
[
1
].
yearValue5
},
//三、研究费用
researchFee
(
index
)
{
this
.
budgetList
[
index
].
amountFee
=
this
.
budgetList
[
index
].
yearValue1
+
this
.
budgetList
[
index
].
yearValue2
+
this
.
budgetList
[
index
].
yearValue3
+
this
.
budgetList
[
index
].
yearValue4
+
this
.
budgetList
[
index
].
yearValue5
this
.
budgetList
[
2
].
yearValue1
=
0.00
this
.
budgetList
[
2
].
yearValue2
=
0.00
this
.
budgetList
[
2
].
yearValue3
=
0.00
this
.
budgetList
[
2
].
yearValue4
=
0.00
this
.
budgetList
[
2
].
yearValue5
=
0.00
for
(
let
i
=
3
;
i
<=
7
;
i
++
)
{
this
.
budgetList
[
2
].
yearValue1
+=
this
.
budgetList
[
i
].
yearValue1
this
.
budgetList
[
2
].
yearValue2
+=
this
.
budgetList
[
i
].
yearValue2
this
.
budgetList
[
2
].
yearValue3
+=
this
.
budgetList
[
i
].
yearValue3
this
.
budgetList
[
2
].
yearValue4
+=
this
.
budgetList
[
i
].
yearValue4
this
.
budgetList
[
2
].
yearValue5
+=
this
.
budgetList
[
i
].
yearValue5
}
this
.
budgetList
[
2
].
amountFee
=
this
.
budgetList
[
2
].
yearValue1
+
this
.
budgetList
[
2
].
yearValue2
+
this
.
budgetList
[
2
].
yearValue3
+
this
.
budgetList
[
2
].
yearValue4
+
this
.
budgetList
[
2
].
yearValue5
},
//四、其他费用
otherFee
(
index
)
{
this
.
budgetList
[
index
].
amountFee
=
this
.
budgetList
[
index
].
yearValue1
+
this
.
budgetList
[
index
].
yearValue2
+
this
.
budgetList
[
index
].
yearValue3
+
this
.
budgetList
[
index
].
yearValue4
+
this
.
budgetList
[
index
].
yearValue5
this
.
budgetList
[
8
].
yearValue1
=
0.00
this
.
budgetList
[
8
].
yearValue2
=
0.00
this
.
budgetList
[
8
].
yearValue3
=
0.00
this
.
budgetList
[
8
].
yearValue4
=
0.00
this
.
budgetList
[
8
].
yearValue5
=
0.00
for
(
let
i
=
9
;
i
<
this
.
budgetList
.
length
;
i
++
)
{
this
.
budgetList
[
8
].
yearValue1
+=
this
.
budgetList
[
i
].
yearValue1
this
.
budgetList
[
8
].
yearValue2
+=
this
.
budgetList
[
i
].
yearValue2
this
.
budgetList
[
8
].
yearValue3
+=
this
.
budgetList
[
i
].
yearValue3
this
.
budgetList
[
8
].
yearValue4
+=
this
.
budgetList
[
i
].
yearValue4
this
.
budgetList
[
8
].
yearValue5
+=
this
.
budgetList
[
i
].
yearValue5
}
this
.
budgetList
[
8
].
amountFee
=
this
.
budgetList
[
8
].
yearValue1
+
this
.
budgetList
[
8
].
yearValue2
+
this
.
budgetList
[
8
].
yearValue3
+
this
.
budgetList
[
8
].
yearValue4
+
this
.
budgetList
[
8
].
yearValue5
},
addBudgetArray
()
{
const
newItem
=
{
...
Budget
,
showIndex
:
this
.
budgetList
.
length
+
1
}
this
.
budgetList
.
push
(
newItem
)
},
deleteBudgetArray
(
item
)
{
let
index
=
this
.
budgetList
.
indexOf
(
item
)
if
(
index
!==
-
1
)
{
this
.
budgetList
.
splice
(
index
,
1
)
}
}
}
}
</
script
>
src/views/report/talent/components/budgetInfo.vue
0 → 100644
View file @
5ff83e43
src/views/report/talent/components/scientificGainInfo.vue
View file @
5ff83e43
src/views/report/talent/components/talentEdit.vue
View file @
5ff83e43
...
...
@@ -18,7 +18,7 @@
<a-col
:span=
"5"
>
<div
class=
"special-middle"
>
<div>
<a-form-model-item
prop=
"
address
"
>
<a-form-model-item
prop=
"
certId
"
>
<a-input
v-model=
"formData.certId"
@
change=
"onCertIdChange"
:maxLength=
"18"
style=
"width: 200px;"
/>
</a-form-model-item>
</div>
...
...
@@ -419,6 +419,54 @@
<members-edit
:membersList
.
sync=
"formData.membersList"
/>
</div>
<div
v-if=
"stepsArray[4].showStatus"
>
<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
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"7"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
申请资助金额
</div>
</div>
</a-col>
<a-col
:span=
"17"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<a-form-model-item
prop=
"applyFund"
>
<a-input-number
v-model=
"formData.applyFund"
@
change=
"FundChange"
:min=
"0"
:step=
"0.01"
style=
"width:120px"
/>
(万元)
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"7"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
其他经费来源
</div>
</div>
</a-col>
<a-col
:span=
"17"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<a-form-model-item
prop=
"otherFund"
>
<a-input-number
v-model=
"formData.otherFund"
@
change=
"FundChange"
:min=
"0"
:step=
"0.01"
style=
"width:120px"
/>
(万元)
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row
type=
"flex"
class=
"row_center"
>
<a-col
:span=
"7"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
<div
class=
"required"
>
合计
</div>
</div>
</a-col>
<a-col
:span=
"17"
class=
"bg-gray"
>
<div
class=
"special-middle"
>
{{
parseFloat
(
formData
.
totalFund
).
toFixed
(
2
)
}}
(万元)
</div>
</a-col>
</a-row>
<budget-edit
:budgetList
.
sync=
"formData.budgetList"
/>
</div>
<div
v-if=
"stepsArray[5].showStatus"
>
</div>
...
...
@@ -435,11 +483,12 @@ import cascaderSelect from '@/views/components/common/cascaderSelect'
import
resumeEdit
from
'@/views/report/talent/components/resumeEdit'
import
scientificGainEdit
from
'@/views/report/talent/components/scientificGainEdit'
import
membersEdit
from
'@/views/report/talent/components/membersEdit'
import
budgetEdit
from
'@/views/report/talent/components/budgetEdit'
export
default
{
name
:
"talentEdit"
,
components
:
{
paraRadio
,
paraCheck
,
cascaderSelect
,
resumeEdit
,
scientificGainEdit
,
membersEdit
paraRadio
,
paraCheck
,
cascaderSelect
,
resumeEdit
,
scientificGainEdit
,
membersEdit
,
budgetEdit
},
props
:
{
value
:
{
...
...
@@ -493,6 +542,9 @@ export default {
researchCondition
:
null
,
researchProgress
:
null
,
email
:
null
,
applyFund
:
null
,
otherFund
:
null
,
totalFund
:
null
,
resumeList
:
[],
membersList
:
[],
budgetList
:
[],
...
...
@@ -522,6 +574,8 @@ export default {
mobile
:
[{
required
:
true
,
message
:
'*'
,
trigger
:
'blur'
}],
fax
:
[{
required
:
true
,
message
:
'*'
,
trigger
:
'blur'
}],
email
:
[{
required
:
true
,
message
:
'*'
,
trigger
:
'blur'
}],
applyFund
:
[{
required
:
true
,
message
:
'*'
,
trigger
:
'change'
}],
otherFund
:
[{
required
:
true
,
message
:
'*'
,
trigger
:
'change'
}],
},
};
},
...
...
@@ -559,7 +613,6 @@ export default {
if
(
typeof
data
.
graduateTeacher
===
'string'
&&
data
.
graduateTeacher
)
{
data
.
graduateTeacher
=
data
.
graduateTeacher
.
split
(
','
)
}
this
.
formData
=
data
this
.
$emit
(
'onStepChange'
,
{
step
:
0
,
state
:
data
.
completeStatus
})
this
.
loadList
()
...
...
@@ -637,7 +690,6 @@ export default {
}
},
submit
(
step
,
next
)
{
console
.
log
(
step
)
if
(
this
.
checkInfo
(
step
))
{
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
...
...
@@ -788,9 +840,9 @@ export default {
break
;
}
},
loadList
()
{
}
,
FundChange
()
{
this
.
formData
.
totalFund
=
this
.
formData
.
applyFund
+
this
.
formData
.
otherFund
}
}
};
</
script
>
src/views/report/talent/components/talentInfo.vue
View file @
5ff83e43
<
template
>
<div></div>
<div>
</div>
</
template
>
<
script
>
...
...
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