Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
web-project
Project
Project
Details
Activity
Releases
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
紫光云
web-project
Commits
588812b0
Commit
588812b0
authored
Oct 22, 2024
by
ccc2wdd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
变更签证统计页面导出
parent
8062d5fd
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
167 additions
and
161 deletions
+167
-161
changeSignatrue.ts
src/api/changeSignatrue/changeSignatrue.ts
+20
-0
changeSignature.ts
src/router/routes/modules/changeSignature.ts
+3
-3
changeSignatureStatistic.vue
src/views/changeSignature/changeSignatureStatistic.vue
+144
-158
data.tsx
src/views/changeSignature/data.tsx
+0
-0
No files found.
src/api/changeSignatrue/changeSignatrue.ts
View file @
588812b0
...
...
@@ -9,6 +9,10 @@ enum Api {
//分页查询变更记录
GetList
=
'/pro/change-visa/page'
,
changeSignatureGetList
=
'/pro/reportCenter/change-visa/list'
,
// 统计页面获取全部数据
getStatisticListAll
=
'/pro/change-visa/getStatisticList'
,
// 统计页面导出功能
ExportChangeSignature
=
'/pro/export/changeSignature'
,
//根据id查询详情
GetDetail
=
'/pro/change-visa/find-byid'
,
//新增
...
...
@@ -27,11 +31,27 @@ enum Api {
// 判断季度选是否已存在
CheckQuarter
=
'/pro/change-visa/is-change'
,
}
export
const
getSettlementManageList
=
(
params
?:
ProjectParams
)
=>
defHttp
.
post
<
ProjectModel
>
({
url
:
Api
.
GetList
,
data
:
params
});
export
const
getChangeSignatureList
=
(
params
?:
ProjectParams
)
=>
defHttp
.
post
<
ProjectModel
>
({
url
:
Api
.
changeSignatureGetList
,
data
:
params
});
export
const
getStatisticListAll
=
(
params
?:
ProjectParams
)
=>
defHttp
.
post
<
ProjectModel
>
({
url
:
Api
.
getStatisticListAll
,
data
:
params
});
// 导出
export
const
exportChangeSignature
=
(
params
?:
any
)
=>
defHttp
.
post
<
any
>
(
{
url
:
Api
.
ExportChangeSignature
,
data
:
params
,
responseType
:
'blob'
,
},
{
errorMessageMode
:
'none'
,
isTransformResponse
:
false
},
);
// 根据id 查询详情
export
const
getItem
=
(
params
?:
any
)
=>
defHttp
.
get
<
ProjectModel
>
({
...
...
src/router/routes/modules/changeSignature.ts
View file @
588812b0
...
...
@@ -22,17 +22,17 @@ const changeSignature: AppRouteModule = {
meta
:
{
auth
:
'/www/dist/index.html#/changeSignature/index'
,
title
:
'变更签证管理'
,
orderNo
:
5
,
orderNo
:
6
,
},
},
{
path
:
'statistic'
,
name
:
'changeSignatureStatistic'
,
component
:
()
=>
import
(
'@/views/changeSignature/
statistic/index
.vue'
),
component
:
()
=>
import
(
'@/views/changeSignature/
changeSignatureStatistic
.vue'
),
meta
:
{
auth
:
'/www/dist/index.html#/changeSignature/index'
,
title
:
'签证管理统计'
,
orderNo
:
5
,
orderNo
:
7
,
},
},
{
...
...
src/views/changeSignature/
statistic/index
.vue
→
src/views/changeSignature/
changeSignatureStatistic
.vue
View file @
588812b0
...
...
@@ -23,7 +23,7 @@
<
script
lang=
"ts"
setup
>
import
{
onMounted
,
ref
}
from
'vue'
;
import
{
Table
}
from
'ant-design-vue'
;
import
{
get
ListAll
,
exportStatisticList
}
from
'@/api/project/biddingManagement.js
'
;
import
{
get
StatisticListAll
,
exportChangeSignature
}
from
'@/api/changeSignatrue/changeSignatrue
'
;
import
{
BasicForm
,
FormActionType
,
FormSchema
,
useForm
}
from
'@/components/Form'
;
import
StatisticWindow
from
'@/views/monthlyPlan/statisticWindow/statisticWindow.vue'
;
import
{
useModal
}
from
'@/components/Modal'
;
...
...
@@ -77,7 +77,122 @@
colProps
:
{
span
:
4
},
},
]);
// 列表
const
dataSource
=
ref
([]);
// 表头
const
columns
=
[
{
title
:
'公司名称'
,
dataIndex
:
'companyName'
,
fixed
:
'left'
,
width
:
180
,
customCell
:
(
_
,
any
)
=>
({
rowSpan
:
_
.
companyNamerowSpan
,
}),
},
{
title
:
'项目名称'
,
dataIndex
:
'projectName'
,
width
:
180
,
fixed
:
'left'
,
// customCell: (_, any) => ({
// rowSpan: _.projectNamerowSpan,
// }),
},
{
title
:
'合同名称'
,
dataIndex
:
'contractName'
,
width
:
180
,
},
{
title
:
'合同金额(万元)'
,
dataIndex
:
'contractAmount'
,
width
:
180
,
},
{
title
:
'资金来源'
,
dataIndex
:
'fundingSource'
,
width
:
180
,
},
{
title
:
'招标方式'
,
dataIndex
:
'biddingMethod'
,
width
:
180
,
},
{
title
:
'立项投资额(万元)'
,
dataIndex
:
'amountInvested'
,
width
:
180
,
},
{
title
:
'甲方单位名称'
,
dataIndex
:
'firstPartyName'
,
width
:
180
,
},
{
title
:
'乙方单位名称'
,
dataIndex
:
'partyName'
,
width
:
180
,
},
{
title
:
'合同累计签证、变更金额(万元)'
,
dataIndex
:
'changeAmount'
,
width
:
180
,
},
{
title
:
'累计变更签证金额占合同金额比例'
,
dataIndex
:
'amountRatio'
,
width
:
180
,
},
{
title
:
'变更编号'
,
dataIndex
:
'changeNumber'
,
width
:
180
,
},
{
title
:
'变更类型'
,
dataIndex
:
'changeType'
,
width
:
180
,
},
{
title
:
'责任方'
,
dataIndex
:
'responsibleParty'
,
width
:
180
,
},
{
title
:
'变更内容'
,
dataIndex
:
'changeContent'
,
width
:
180
,
},
{
title
:
'预估变更金额(万元)'
,
dataIndex
:
'updateAmount'
,
width
:
180
,
},
{
title
:
'签证编号'
,
dataIndex
:
'visaNumber'
,
width
:
180
,
},
{
title
:
'签证类型'
,
dataIndex
:
'visaType'
,
width
:
180
,
},
{
title
:
'签证内容'
,
dataIndex
:
'visaContent'
,
width
:
180
,
},
{
title
:
'预估签证金额(万元)'
,
dataIndex
:
'visaAmount'
,
width
:
180
,
},
];
const
{
push
}
=
useRouter
();
const
deptId
=
ref
(
''
);
const
params
=
ref
({
givenYear
:
''
,
quarter
:
''
,
deptId
:
''
});
onMounted
(
async
()
=>
{
deptId
.
value
=
useUserStore
().
userInfo
.
deptId
;
getStatisticList
();
...
...
@@ -93,12 +208,14 @@
});
async
function
exportCount
()
{
const
params
=
getFieldsValue
();
const
data
=
await
export
StatisticList
(
params
);
downloadByData
(
data
,
'变更签证管理统计报表'
+
'.xls
x
'
);
//
const params = getFieldsValue();
const
data
=
await
export
ChangeSignature
(
params
.
value
);
downloadByData
(
data
,
'变更签证管理统计报表'
+
'.xls'
);
}
const
loadingRef
=
ref
(
false
);
function
handleSubmit
()
{
let
data
=
getFieldsValue
();
params
.
value
=
data
;
getStatisticList
();
}
function
setRowClassName
(
record
)
{
...
...
@@ -118,19 +235,10 @@
const
month
=
(
now
.
getMonth
()
+
1
).
toString
().
padStart
(
2
,
'0'
);
// 月份从0开始,所以要加1,并且格式化为两位数
return
`
${
year
}
-
${
month
}
`
;
}
async
function
getStatisticList
()
{
const
params
=
getFieldsValue
();
if
(
params
.
tenderYear
===
undefined
||
params
.
tenderYear
===
null
)
{
// 创建一个表示当前日期和时间的 Date 对象
var
currentDate
=
new
Date
();
// 使用 getFullYear() 方法获取当前年份
var
currentYear
=
currentDate
.
getFullYear
();
columns
[
0
].
title
=
currentYear
+
'年变更签证管理'
;
}
else
{
columns
[
0
].
title
=
params
.
tenderYear
+
'年变更签证管理'
;
}
loadingRef
.
value
=
true
;
let
data
=
await
get
ListAll
(
params
);
let
data
=
await
get
StatisticListAll
(
params
.
value
);
// dataSource.value = data;
let
propsList
=
[
'companyName'
,
'projectName'
];
propsList
.
map
((
item
)
=>
{
...
...
@@ -157,151 +265,29 @@
indexCount
++
;
}
}
// if (field == 'projectName') {
// let count = 0; //重复项的第一项
// let indexCount = 1; //下一项
// while (indexCount
<
data
.
length
)
{
// var item = data.slice(count, count + 1)[0]; //获取没有比较的第一个对象
// if (!item[`${field}rowSpan`]) {
// item[`${field}rowSpan`] = 1; //初始化为1
// }
// if (
// item[field] === data[indexCount][field] &&
// item['companyName'] === data[indexCount]['companyName']
// ) {
// //第一个对象与后面的对象相比,有相同项就累加,并且后面相同项设置为0
// item[`${field}rowSpan`]++;
// data[indexCount][`${field}rowSpan`] = 0;
// } else {
// count = indexCount;
// }
//
// indexCount++;
// }
// }
if
(
field
==
'projectName'
)
{
let
count
=
0
;
//重复项的第一项
let
indexCount
=
1
;
//下一项
while
(
indexCount
<
data
.
length
)
{
var
item
=
data
.
slice
(
count
,
count
+
1
)[
0
];
//获取没有比较的第一个对象
if
(
!
item
[
`
${
field
}
rowSpan`
])
{
item
[
`
${
field
}
rowSpan`
]
=
1
;
//初始化为1
}
if
(
item
[
field
]
===
data
[
indexCount
][
field
]
&&
item
[
'companyName'
]
===
data
[
indexCount
][
'companyName'
]
)
{
//第一个对象与后面的对象相比,有相同项就累加,并且后面相同项设置为0
item
[
`
${
field
}
rowSpan`
]
++
;
data
[
indexCount
][
`
${
field
}
rowSpan`
]
=
0
;
}
else
{
count
=
indexCount
;
}
indexCount
++
;
}
}
dataSource
.
value
=
data
;
}
// 列表
const
dataSource
=
ref
([]);
// 表头
const
columns
=
[
{
title
:
'202X年变更签证管理'
,
dataIndex
:
''
,
children
:
[
{
title
:
'公司名称'
,
dataIndex
:
'companyName'
,
fixed
:
'left'
,
width
:
180
,
customCell
:
(
_
,
any
)
=>
({
rowSpan
:
_
.
companyNamerowSpan
,
}),
},
{
title
:
'项目名称'
,
dataIndex
:
'projectName'
,
width
:
180
,
fixed
:
'left'
,
// customCell: (_, any) => ({
// rowSpan: _.projectNamerowSpan,
// }),
},
{
title
:
'合同名称'
,
dataIndex
:
'contractName'
,
width
:
180
,
},
{
title
:
'合同金额(万元)'
,
dataIndex
:
'contractAmount'
,
width
:
180
,
},
{
title
:
'资金来源'
,
dataIndex
:
'fundingSource'
,
width
:
180
,
},
{
title
:
'招标方式'
,
dataIndex
:
'biddingMethod'
,
width
:
180
,
},
{
title
:
'立项投资额(万元)'
,
dataIndex
:
'amountInvested'
,
width
:
180
,
},
{
title
:
'甲方单位名称'
,
dataIndex
:
'firstPartyName'
,
width
:
180
,
},
{
title
:
'乙方单位名称'
,
dataIndex
:
'partyName'
,
width
:
180
,
},
{
title
:
'合同累计签证、变更金额(万元)'
,
dataIndex
:
'changeAmount'
,
width
:
180
,
},
{
title
:
'累计变更签证金额占合同金额比例'
,
dataIndex
:
'amountRatio'
,
width
:
180
,
},
{
title
:
'变更编号'
,
dataIndex
:
'changeNumber'
,
width
:
180
,
},
{
title
:
'变更类型'
,
dataIndex
:
'changeType'
,
width
:
180
,
},
{
title
:
'责任方'
,
dataIndex
:
'responsibleParty'
,
width
:
180
,
},
{
title
:
'变更内容'
,
dataIndex
:
'changeContent'
,
width
:
180
,
},
{
title
:
'预估变更金额(万元)'
,
dataIndex
:
'updateAmount'
,
width
:
180
,
},
{
title
:
'签证编号'
,
dataIndex
:
'visaNumber'
,
width
:
180
,
},
{
title
:
'签证类型'
,
dataIndex
:
'visaType'
,
width
:
180
,
},
{
title
:
'签证内容'
,
dataIndex
:
'visaContent'
,
width
:
180
,
},
{
title
:
'预估签证金额(万元)'
,
dataIndex
:
'visaAmount'
,
width
:
180
,
},
],
},
];
const
{
push
}
=
useRouter
();
</
script
>
<
style
lang=
"less"
scoped
>
::v-deep .ant-table-tbody .ant-table-row {
...
...
src/views/changeSignature/
statistic/
data.tsx
→
src/views/changeSignature/data.tsx
View file @
588812b0
File moved
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