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
16aad66b
Commit
16aad66b
authored
Dec 13, 2024
by
wangxl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
3333
parent
ad743c5f
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
254 additions
and
9 deletions
+254
-9
main.js
src/main.js
+1
-1
Index.vue
src/views/audit/project/Index.vue
+17
-2
batchAudit.vue
src/views/audit/project/batchAudit.vue
+230
-0
index.vue
src/views/expert/index.vue
+1
-1
managerSetting.vue
src/views/manager/unit/components/managerSetting.vue
+1
-1
index.vue
src/views/manager/user/index.vue
+1
-1
index.vue
src/views/person/index.vue
+1
-1
index.vue
src/views/report/expert/index.vue
+1
-1
managerSetting.vue
src/views/unit/components/managerSetting.vue
+1
-1
No files found.
src/main.js
View file @
16aad66b
...
@@ -27,7 +27,7 @@ Vue.prototype.$api = api
...
@@ -27,7 +27,7 @@ Vue.prototype.$api = api
Vue
.
prototype
.
$message
=
message
Vue
.
prototype
.
$message
=
message
Vue
.
prototype
.
$confirm
=
confirm
Vue
.
prototype
.
$confirm
=
confirm
Vue
.
prototype
.
$defaultPageSize
=
10
Vue
.
prototype
.
$defaultPageSize
=
10
Vue
.
prototype
.
$defaultPageSizeOptions
=
[
"10"
,
"20"
,
"50"
,
"100"
]
Vue
.
prototype
.
$defaultPageSizeOptions
=
[
"10"
,
"20"
,
"50"
,
"100"
,
"500"
]
//导出Excel
//导出Excel
Vue
.
prototype
.
$ToDoExcel
=
ToDoExcel
;
Vue
.
prototype
.
$ToDoExcel
=
ToDoExcel
;
...
...
src/views/audit/project/Index.vue
View file @
16aad66b
...
@@ -26,12 +26,13 @@
...
@@ -26,12 +26,13 @@
<btn-group
:data=
"tabDate"
:itemCount=
"itemCount"
v-model=
"activekey"
@
change=
"callback"
/>
<btn-group
:data=
"tabDate"
:itemCount=
"itemCount"
v-model=
"activekey"
@
change=
"callback"
/>
</div>
</div>
<div
style=
"display: inline-block;width:50%;text-align: right;"
>
<div
style=
"display: inline-block;width:50%;text-align: right;"
>
<a-button
type=
"primary"
@
click=
"batchAudit"
style=
"margin-right: 8px;"
>
批量审核
</a-button>
<a-button
type=
"primary"
@
click=
"exportData"
icon=
"download"
>
Excel
</a-button>
<a-button
type=
"primary"
@
click=
"exportData"
icon=
"download"
>
Excel
</a-button>
</div>
</div>
</div>
</div>
<a-divider
style=
"height: 1px; background-color: #e8e8e8;"
/>
<a-divider
style=
"height: 1px; background-color: #e8e8e8;"
/>
<span
class=
"form-description"
v-if=
"description"
>
※ 审核时间:
{{
description
}}
</span>
<span
class=
"form-description"
v-if=
"description"
>
※ 审核时间:
{{
description
}}
</span>
<a-table
:dataSource=
"tableData"
:columns=
"columns"
:scroll=
"
{ x: 'max-content' }" rowKey="id" :pagination="false" :loading="loading">
<a-table
:
row-selection=
"
{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :
dataSource="tableData" :columns="columns" :scroll="{ x: 'max-content' }" rowKey="id" :pagination="false" :loading="loading">
<template
slot=
"projName"
slot-scope=
"record"
>
<template
slot=
"projName"
slot-scope=
"record"
>
<a
@
click=
"recordClick(record, 'view')"
>
{{
record
.
projName
}}
</a>
<a
@
click=
"recordClick(record, 'view')"
>
{{
record
.
projName
}}
</a>
</
template
>
</
template
>
...
@@ -50,6 +51,9 @@
...
@@ -50,6 +51,9 @@
<a-modal
v-model=
"visibleAudit"
v-if=
"visibleAudit"
title=
"审核"
:footer=
"null"
width=
"94%"
:dialog-style=
"{ top: '8%' }"
destroyOnClose
:maskClosable=
"false"
>
<a-modal
v-model=
"visibleAudit"
v-if=
"visibleAudit"
title=
"审核"
:footer=
"null"
width=
"94%"
:dialog-style=
"{ top: '8%' }"
destroyOnClose
:maskClosable=
"false"
>
<audit
v-model=
"id"
:objId=
"objectId"
@
close=
"closeWindow"
@
changeScroll=
"() => {this.$refs.s_modal.changeScroll()}"
></audit>
<audit
v-model=
"id"
:objId=
"objectId"
@
close=
"closeWindow"
@
changeScroll=
"() => {this.$refs.s_modal.changeScroll()}"
></audit>
</a-modal>
</a-modal>
<a-modal
v-model=
"visibleBatch"
v-if=
"visibleBatch"
title=
"审核"
:footer=
"null"
width=
"94%"
:dialog-style=
"{ top: '8%' }"
destroyOnClose
:maskClosable=
"false"
>
<batch-audit
v-model=
"id"
:objId=
"objectId"
@
close=
"closeWindow"
/>
</a-modal>
<a-modal
v-model=
"visibleView"
v-if=
"visibleView"
title=
"项目详情"
width=
"94%"
:footer=
"null"
:dialog-style=
"{ top: '8%' }"
destroyOnClose
:maskClosable=
"false"
>
<a-modal
v-model=
"visibleView"
v-if=
"visibleView"
title=
"项目详情"
width=
"94%"
:footer=
"null"
:dialog-style=
"{ top: '8%' }"
destroyOnClose
:maskClosable=
"false"
>
<project-view
v-model=
"objectId"
@
close=
"closeWindow"
></project-view>
<project-view
v-model=
"objectId"
@
close=
"closeWindow"
></project-view>
</a-modal>
</a-modal>
...
@@ -64,16 +68,18 @@ import { getType } from '@/views/utils/auth'
...
@@ -64,16 +68,18 @@ import { getType } from '@/views/utils/auth'
import
moment
from
'moment'
import
moment
from
'moment'
import
{
isEmptyParams
,
filterExportExcelData
,
tableColumnsName
}
from
"@/views/utils/common"
;
import
{
isEmptyParams
,
filterExportExcelData
,
tableColumnsName
}
from
"@/views/utils/common"
;
import
audit
from
'@/views/audit/project/audit'
import
audit
from
'@/views/audit/project/audit'
import
batchAudit
from
'@/views/audit/project/batchAudit'
import
projectView
from
'@/views/report/project/components/projectView'
import
projectView
from
'@/views/report/project/components/projectView'
import
taskFileInfo
from
'@/views/report/task/components/taskFileInfo'
import
taskFileInfo
from
'@/views/report/task/components/taskFileInfo'
export
default
{
export
default
{
name
:
"projectAudit"
,
name
:
"projectAudit"
,
components
:
{
components
:
{
projectView
,
audit
,
taskFileInfo
projectView
,
audit
,
taskFileInfo
,
batchAudit
},
},
data
()
{
data
()
{
return
{
return
{
selectedRowKeys
:
[],
// 选项卡
// 选项卡
panes
:
{
count1
:
0
,
count2
:
0
,
count3
:
0
,
count4
:
0
,
count5
:
0
,
},
panes
:
{
count1
:
0
,
count2
:
0
,
count3
:
0
,
count4
:
0
,
count5
:
0
,
},
form
:
this
.
$form
.
createForm
(
this
,
{
name
:
'advanced_search'
}),
form
:
this
.
$form
.
createForm
(
this
,
{
name
:
'advanced_search'
}),
...
@@ -123,6 +129,7 @@ export default {
...
@@ -123,6 +129,7 @@ export default {
// 弹窗标志
// 弹窗标志
visibleAudit
:
false
,
visibleAudit
:
false
,
visibleView
:
false
,
visibleView
:
false
,
visibleBatch
:
false
,
isButten
:
false
,
isButten
:
false
,
description
:
''
,
description
:
''
,
id
:
null
,
id
:
null
,
...
@@ -135,6 +142,14 @@ export default {
...
@@ -135,6 +142,14 @@ export default {
this
.
getYear
()
this
.
getYear
()
},
},
methods
:
{
methods
:
{
onSelectChange
(
selectedRowKeys
)
{
console
.
log
(
'selectedRowKeys changed: '
,
selectedRowKeys
);
this
.
selectedRowKeys
=
selectedRowKeys
;
},
batchAudit
()
{
console
.
log
(
'selectedRowKeys changed: '
,
this
.
selectedRowKeys
);
this
.
visibleBatch
=
true
},
search
()
{
search
()
{
this
.
pagination
.
pageIndex
=
1
this
.
pagination
.
pageIndex
=
1
this
.
getListByPage
();
this
.
getListByPage
();
...
...
src/views/audit/project/batchAudit.vue
0 → 100644
View file @
16aad66b
<
template
>
<div
class=
"app-content"
style=
"height: 76vh;overflow: auto;"
>
<a-spin
:spinning=
"loading"
style=
"width: 100%;height: 100%;"
>
<div
class=
"page-content"
>
<div
style=
" width: 100%;height: 50px;"
>
<a-tabs
type=
"card"
hideAdd
size=
"small"
@
change=
"callback"
>
<a-tab-pane
:key=
"item.key"
:tab=
"item.title"
v-for=
"(item) in tabsData"
>
</a-tab-pane>
</a-tabs>
</div>
<div
style=
"width: 100%;height: calc(100% - 50px);overflow: auto;"
ref=
"main"
>
<div
class=
"x_modal_content"
>
<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-form-model
ref=
"form"
:model=
"auditObj"
:rules=
"rules"
class=
"from-table font-line-space"
>
<audit-edit
:auditObj
.
sync=
"auditObj"
/>
</a-form-model>
</div>
</div>
</div>
<div
class=
"page-footer"
>
<a-button
type=
"primary"
@
click=
"submit"
style=
"margin-left:16px;"
>
提交
</a-button>
</div>
</a-spin>
</div>
</
template
>
<
script
>
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
{
isEmptyParams
}
from
"@/views/utils/common"
;
import
{
getType
}
from
'@/views/utils/auth'
import
projectInfo
from
'@/views/report/project/components/projectInfo'
import
projectInfoKey
from
"@/views/report/project/components/keyProject/projectInfo"
import
AuditList
from
'@/views/audit/components/auditInfo'
import
AuditEdit
from
'@/views/audit/components/auditEdit'
export
default
{
name
:
"Audit"
,
components
:
{
projectInfo
,
projectInfoKey
,
AuditList
,
AuditEdit
},
data
()
{
return
{
tabsData
:
[
{
title
:
'全部'
,
key
:
'0'
,
isShow
:
true
},
{
title
:
'项目基本信息'
,
key
:
'1'
,
isShow
:
true
},
{
title
:
'项目组主要成员'
,
key
:
'2'
,
isShow
:
true
},
{
title
:
'绩效目标表'
,
key
:
'3'
,
isShow
:
true
},
{
title
:
'项目经费预算表'
,
key
:
'4'
,
isShow
:
true
},
{
title
:
'申请书正文'
,
key
:
'5'
,
isShow
:
true
},
{
title
:
'附件信息'
,
key
:
'6'
,
isShow
:
true
},
{
title
:
'项目审核记录'
,
key
:
'7'
,
isShow
:
true
},
],
formData
:
{
id
:
null
,
appPersonName
:
null
,
sex
:
null
,
birthday
:
null
,
nationName
:
null
,
degreeName
:
null
,
titleName
:
null
,
mobile
:
null
,
email
:
null
,
jobTime
:
null
,
address
:
null
,
appUnitName
:
null
,
mainResearchAreas
:
null
,
unitLinkName
:
null
,
unitLinkMobile
:
null
,
unitLinkEmail
:
null
,
unitLinkFax
:
null
,
projName
:
null
,
knowledgeId
:
null
,
subjectScope
:
null
,
projClass
:
null
,
remark
:
null
,
startDate
:
null
,
endDate
:
null
,
totalFunding
:
null
,
govFunding
:
null
,
projAbstract
:
null
,
projKeywords
:
null
,
yearTarget
:
null
,
year1Goal
:
null
,
year2Goal
:
null
,
year3Goal
:
null
,
projectKPI
:
projectKPI
,
cooperativeUnits
:
[],
members
:
[],
budget
:
[],
fundPlan
:
[],
fileList
:
[],
auditList
:
[],
managerDept
:
""
,
},
auditObj
:
{
id
:
this
.
value
,
auditObjectId
:
this
.
objId
,
auditResult
:
null
,
auditType
:
1
,
auditContent
:
''
},
rules
:
{
auditContent
:
{
required
:
true
,
message
:
'请填写审核意见'
,
trigger
:
'blur'
},
auditResult
:
{
required
:
true
,
message
:
'请选择审核结果'
,
trigger
:
'change'
},
},
loading
:
false
,
projType
:
getType
()
};
},
props
:
{
value
:
{
type
:
String
,
default
:
()
=>
{
return
null
}
},
objId
:
{
type
:
String
,
default
()
{
return
null
}
},
},
created
()
{
this
.
loadProject
()
},
methods
:
{
loadProject
()
{
let
pars
=
{
id
:
this
.
objId
}
if
(
this
.
objId
!=
null
)
{
this
.
loading
=
true
this
.
$api
.
project
.
getProjectInfoById
(
pars
).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
this
.
formData
=
data
this
.
loading
=
false
}
else
this
.
$emit
(
'close'
,
'error'
)
}).
catch
(()
=>
{
this
.
$emit
(
'close'
,
'error'
)
})
}
},
submit
()
{
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
loading
=
true
let
pars
=
isEmptyParams
(
this
.
auditObj
)
let
par
=
{
...
pars
}
this
.
$api
.
auditManager
.
projectAudit
(
par
).
then
(({
data
=
{}
})
=>
{
if
(
data
)
{
if
(
data
===
'项目上报已经到达上限!'
)
{
this
.
$message
.
info
(
'项目上报已经到达上限!'
)
}
else
{
this
.
$message
.
success
(
'审核成功!'
)
this
.
$emit
(
'close'
,
'audit'
)
}
}
this
.
loading
=
false
}).
catch
(()
=>
{
this
.
loading
=
false
})
}
else
{
this
.
changeScroll
()
this
.
$message
.
error
(
'请选择审核结果或填写审核意见!'
)
return
false
}
})
},
changeScroll
()
{
this
.
$refs
.
main
.
scrollTop
=
document
.
getElementsByClassName
(
'x_modal_content'
)[
0
].
offsetHeight
},
callback
(
key
)
{
var
index
=
parseInt
(
key
)
this
.
tabsData
.
forEach
(
e
=>
{
if
(
key
==
'0'
)
e
.
isShow
=
true
else
e
.
isShow
=
false
})
this
.
tabsData
[
0
].
isShow
=
true
;
this
.
tabsData
[
index
].
isShow
=
true
;
},
},
}
</
script
>
<
style
scoped
lang=
"less"
>
::v-deep .ant-spin-container {
width: 100%;
height: 100%;
}
::v-deep .page-content {
width: 100%;
height: calc(100% - 40px);
overflow: auto;
}
::v-deep .page-footer {
width: 100%;
height: 40px;
line-height: 40px;
background: rgb(248, 248, 248);
text-align: center;
}
textarea {
height: 115px;
}
</
style
>
src/views/expert/index.vue
View file @
16aad66b
...
@@ -200,7 +200,7 @@ export default {
...
@@ -200,7 +200,7 @@ export default {
let
self
=
this
let
self
=
this
this
.
$confirm
({
this
.
$confirm
({
title
:
'重置密码'
,
title
:
'重置密码'
,
content
:
'重置后密码为"ky
cz
123456"确定要重置密码?'
,
content
:
'重置后密码为"ky123456"确定要重置密码?'
,
okText
:
'确定'
,
okText
:
'确定'
,
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
...
...
src/views/manager/unit/components/managerSetting.vue
View file @
16aad66b
...
@@ -284,7 +284,7 @@ export default {
...
@@ -284,7 +284,7 @@ export default {
let
self
=
this
let
self
=
this
this
.
$confirm
({
this
.
$confirm
({
title
:
'重置密码'
,
title
:
'重置密码'
,
content
:
'重置后密码为"ky
cz
123456"确定要重置密码?'
,
content
:
'重置后密码为"ky123456"确定要重置密码?'
,
okText
:
'确定'
,
okText
:
'确定'
,
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
...
...
src/views/manager/user/index.vue
View file @
16aad66b
...
@@ -151,7 +151,7 @@ export default {
...
@@ -151,7 +151,7 @@ export default {
let
self
=
this
let
self
=
this
this
.
$confirm
({
this
.
$confirm
({
title
:
'重置密码'
,
title
:
'重置密码'
,
content
:
'重置后密码为"ky
cz
123456"确定要重置密码?'
,
content
:
'重置后密码为"ky123456"确定要重置密码?'
,
okText
:
'确定'
,
okText
:
'确定'
,
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
...
...
src/views/person/index.vue
View file @
16aad66b
...
@@ -146,7 +146,7 @@ export default {
...
@@ -146,7 +146,7 @@ export default {
let
self
=
this
let
self
=
this
this
.
$confirm
({
this
.
$confirm
({
title
:
'重置密码'
,
title
:
'重置密码'
,
content
:
'重置后密码为"ky
cz
123456"确定要重置密码?'
,
content
:
'重置后密码为"ky123456"确定要重置密码?'
,
okText
:
'确定'
,
okText
:
'确定'
,
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
...
...
src/views/report/expert/index.vue
View file @
16aad66b
...
@@ -221,7 +221,7 @@ export default {
...
@@ -221,7 +221,7 @@ export default {
let
self
=
this
let
self
=
this
this
.
$confirm
({
this
.
$confirm
({
title
:
'重置密码'
,
title
:
'重置密码'
,
content
:
'重置后密码为"ky
cz
123456"确定要重置密码?'
,
content
:
'重置后密码为"ky123456"确定要重置密码?'
,
okText
:
'确定'
,
okText
:
'确定'
,
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
...
...
src/views/unit/components/managerSetting.vue
View file @
16aad66b
...
@@ -266,7 +266,7 @@ export default {
...
@@ -266,7 +266,7 @@ export default {
let
self
=
this
let
self
=
this
this
.
$confirm
({
this
.
$confirm
({
title
:
'重置密码'
,
title
:
'重置密码'
,
content
:
'重置后密码为"ky
cz
123456"确定要重置密码?'
,
content
:
'重置后密码为"ky123456"确定要重置密码?'
,
okText
:
'确定'
,
okText
:
'确定'
,
okType
:
'danger'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
cancelText
:
'取消'
,
...
...
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