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
f6064030
Commit
f6064030
authored
Jun 26, 2024
by
张伯涛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
招标管理导出
parent
691abb8b
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
355 additions
and
31 deletions
+355
-31
biddingManagement.ts
src/api/project/biddingManagement.ts
+4
-0
export.ts
src/api/project/export.ts
+14
-0
data.ts
src/views/project/tabs/data.ts
+1
-1
biddingManagement.vue
src/views/statement/tabs/biddingManagement.vue
+29
-4
biddingPlan.vue
src/views/statement/tabs/biddingPlan.vue
+2
-2
biddingManagementExportModal.vue
...tatement/tabs/components/biddingManagementExportModal.vue
+101
-0
data.ts
src/views/statement/tabs/data.ts
+204
-24
No files found.
src/api/project/biddingManagement.ts
View file @
f6064030
...
@@ -8,6 +8,7 @@ import { defHttp } from '@/utils/http/axios';
...
@@ -8,6 +8,7 @@ import { defHttp } from '@/utils/http/axios';
enum
Api
{
enum
Api
{
GetList
=
'/pro/tenderManager/page'
,
GetList
=
'/pro/tenderManager/page'
,
tendermanageGetList
=
'/pro/reportCenter/tendermanage'
,
AddProject
=
'/pro/tenderManager/add'
,
AddProject
=
'/pro/tenderManager/add'
,
UpdateProject
=
'/pro/tenderManager/update'
,
UpdateProject
=
'/pro/tenderManager/update'
,
DeleteProject
=
'/pro/tenderManager/del'
,
DeleteProject
=
'/pro/tenderManager/del'
,
...
@@ -19,6 +20,9 @@ enum Api {
...
@@ -19,6 +20,9 @@ enum Api {
export
const
getListByPage
=
(
params
?:
ProjectPageParams
)
=>
export
const
getListByPage
=
(
params
?:
ProjectPageParams
)
=>
defHttp
.
post
<
ListGetResultModel
>
({
url
:
Api
.
GetList
,
data
:
params
});
defHttp
.
post
<
ListGetResultModel
>
({
url
:
Api
.
GetList
,
data
:
params
});
export
const
tendermanageGetListByPage
=
(
params
?:
ProjectPageParams
)
=>
defHttp
.
post
<
ListGetResultModel
>
({
url
:
Api
.
tendermanageGetList
,
data
:
params
});
export
const
addItem
=
(
params
?:
any
)
=>
export
const
addItem
=
(
params
?:
any
)
=>
defHttp
.
post
<
ProjectModel
>
({
defHttp
.
post
<
ProjectModel
>
({
url
:
Api
.
AddProject
,
url
:
Api
.
AddProject
,
...
...
src/api/project/export.ts
View file @
f6064030
...
@@ -2,6 +2,7 @@ import { defHttp } from '@/utils/http/axios';
...
@@ -2,6 +2,7 @@ import { defHttp } from '@/utils/http/axios';
enum
Api
{
enum
Api
{
tenderPlan
=
'/pro/export/tenderPlan'
,
tenderPlan
=
'/pro/export/tenderPlan'
,
tenderManage
=
'/pro/export/tenderManage'
,
}
}
export
const
tenderPlanExport
=
(
params
?:
any
)
=>
export
const
tenderPlanExport
=
(
params
?:
any
)
=>
...
@@ -17,6 +18,19 @@ export const tenderPlanExport = (params?: any) =>
...
@@ -17,6 +18,19 @@ export const tenderPlanExport = (params?: any) =>
{
errorMessageMode
:
'none'
,
isTransformResponse
:
false
},
{
errorMessageMode
:
'none'
,
isTransformResponse
:
false
},
);
);
export
const
tenderManageExport
=
(
params
?:
any
)
=>
defHttp
.
post
<
any
>
(
{
url
:
Api
.
tenderManage
,
data
:
params
,
headers
:
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
},
responseType
:
'blob'
,
},
{
errorMessageMode
:
'none'
,
isTransformResponse
:
false
},
);
//结算管理 变更签证管理 报表中心导出专用
//结算管理 变更签证管理 报表中心导出专用
export
const
exportData
=
(
url
:
string
,
params
?:
any
)
=>
export
const
exportData
=
(
url
:
string
,
params
?:
any
)
=>
defHttp
.
post
<
any
>
(
defHttp
.
post
<
any
>
(
...
...
src/views/project/tabs/data.ts
View file @
f6064030
...
@@ -1233,7 +1233,7 @@ export const columns: BasicColumn[] = [
...
@@ -1233,7 +1233,7 @@ export const columns: BasicColumn[] = [
},
},
];
];
// 2-计划完成情况列表
// 2-计划完成情况列表
export
const
performanceColumns
:
BasicColumn
[]
=
[
export
const
performanceColumns
:
BasicColumn
[]
=
[
{
{
title
:
'序号'
,
title
:
'序号'
,
dataIndex
:
'serialNumber'
,
// 这个dataIndex仅作为标识,不对应实际数据字段
dataIndex
:
'serialNumber'
,
// 这个dataIndex仅作为标识,不对应实际数据字段
...
...
src/views/statement/tabs/biddingManagement.vue
View file @
f6064030
<
template
>
<
template
>
<div>
<BasicTable
@
register=
"registerTable"
>
<BasicTable
@
register=
"registerTable"
>
<template
#
toolbar
>
<a-button
type=
"primary"
preIcon=
"mdi:plus"
@
click=
"handleExport"
>
导出筛选结果
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record, index }"
>
<
template
#
bodyCell=
"{ column, record, index }"
>
<template
v-if=
"column.key === 'serialNumber'"
>
<template
v-if=
"column.key === 'serialNumber'"
>
{{
index
+
1
}}
{{
index
+
1
}}
</
template
>
</
template
>
<
template
v-if=
"column.key === '
tenderYear
'"
>
<
template
v-if=
"column.key === '
fillingPeriod
'"
>
{{
record
.
tenderYear
+
'年'
+
record
.
biddingQuarter
+
'季度'
}}
{{
record
.
tenderYear
+
'年'
+
record
.
biddingQuarter
+
'季度'
}}
</
template
>
</
template
>
<
template
v-if=
"column.key === 'action'"
>
<
template
v-if=
"column.key === 'action'"
>
...
@@ -22,19 +26,24 @@
...
@@ -22,19 +26,24 @@
</
template
>
</
template
>
</template>
</template>
</BasicTable>
</BasicTable>
<bidding-management-export-modal
@
register=
"registerModal"
/>
</div>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
biddingManagementColumns
,
searchFormSchema
}
from
'./data'
;
import
{
biddingManagementColumns
,
exportBiddingManagementColumns
,
searchFormSchema
}
from
'./data'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
g
etListByPage
}
from
'@/api/project/biddingManagement'
;
import
{
tendermanageG
etListByPage
}
from
'@/api/project/biddingManagement'
;
import
{
inject
}
from
'vue'
;
import
{
inject
}
from
'vue'
;
import
{
router
}
from
'@/router'
;
import
{
router
}
from
'@/router'
;
import
{
Tag
}
from
'ant-design-vue'
;
import
{
Tag
}
from
'ant-design-vue'
;
import
BiddingManagementExportModal
from
"@/views/statement/tabs/components/biddingManagementExportModal.vue"
;
import
{
useModal
}
from
'@/components/Modal'
;
const
[
registerModal
,
{
openModal
:
openModal
}]
=
useModal
();
let
detailId
=
inject
(
'detailId'
);
let
detailId
=
inject
(
'detailId'
);
console
.
log
(
'detailId'
,
detailId
);
console
.
log
(
'detailId'
,
detailId
);
const
[
registerTable
,
{
reload
}]
=
useTable
({
const
[
registerTable
,
{
reload
}]
=
useTable
({
api
:
g
etListByPage
,
api
:
tendermanageG
etListByPage
,
columns
:
biddingManagementColumns
,
columns
:
biddingManagementColumns
,
formConfig
:
{
formConfig
:
{
labelWidth
:
120
,
labelWidth
:
120
,
...
@@ -64,4 +73,20 @@
...
@@ -64,4 +73,20 @@
},
},
});
});
}
}
function
getExportData
()
{
let
exportData
=
[];
exportBiddingManagementColumns
.
map
((
i
)
=>
{
exportData
.
push
({
label
:
i
.
title
,
value
:
i
.
dataIndex
,
});
});
return
exportData
;
}
function
handleExport
()
{
openModal
(
true
,
{
projectId
:
detailId
,
exportData
:
getExportData
(),
});
}
</
script
>
</
script
>
src/views/statement/tabs/biddingPlan.vue
View file @
f6064030
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
exportModal
from
'./components/exportModal.vue'
;
import
exportModal
from
'./components/exportModal.vue'
;
import
{
biddingPlanColumns
,
searchFormSchema
}
from
'./data'
;
import
{
biddingPlanColumns
,
exportBiddingPlanColumns
,
searchFormSchema
}
from
'./data'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
getListTenderPlanGetList
}
from
'@/api/project/biddingPlan'
;
import
{
getListTenderPlanGetList
}
from
'@/api/project/biddingPlan'
;
import
{
inject
}
from
'vue'
;
import
{
inject
}
from
'vue'
;
...
@@ -75,7 +75,7 @@ import exportModal from './components/exportModal.vue';
...
@@ -75,7 +75,7 @@ import exportModal from './components/exportModal.vue';
}
}
function
getExportData
()
{
function
getExportData
()
{
let
exportData
=
[];
let
exportData
=
[];
b
iddingPlanColumns
.
map
((
i
)
=>
{
exportB
iddingPlanColumns
.
map
((
i
)
=>
{
exportData
.
push
({
exportData
.
push
({
label
:
i
.
title
,
label
:
i
.
title
,
value
:
i
.
dataIndex
,
value
:
i
.
dataIndex
,
...
...
src/views/statement/tabs/components/biddingManagementExportModal.vue
0 → 100644
View file @
f6064030
<
template
>
<BasicModal
v-bind=
"$attrs"
@
register=
"register"
title=
"导出筛选结果"
:minHeight=
"30"
okText=
"导出"
@
ok=
"handleSubmit"
@
visible-change=
"handleVisibleChange"
>
<BasicForm
@
register=
"registerForm"
:model=
"modelRef"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
nextTick
,
defineProps
,
defineEmits
,
unref
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
FormSchema
,
useForm
}
from
'@/components/Form'
;
import
{
uploadApi
}
from
'@/api/sys/upload'
;
import
{
AnnexAdd
}
from
'@/api/project/project'
;
import
{
tenderManageExport
}
from
'@/api/project/export'
;
import
{
reject
}
from
'lodash-es'
;
import
{
downloadByData
}
from
'@/utils/file/download'
;
const
projectId
=
ref
(
0
);
const
schemas
:
FormSchema
[]
=
[
{
field
:
'colums'
,
component
:
'CheckboxGroup'
,
label
:
''
,
required
:
true
,
componentProps
:
{
options
:
[],
},
colProps
:
{
span
:
24
,
},
},
];
const
props
=
defineProps
({
userData
:
{
type
:
Object
},
});
function
handleVisibleChange
(
v
)
{
v
&&
props
.
userData
&&
nextTick
(()
=>
onDataReceive
(
props
.
userData
));
}
const
emit
=
defineEmits
([
'close'
,
'register'
]);
const
modelRef
=
ref
({});
const
[
registerForm
,
{
getFieldsValue
,
validate
,
updateSchema
,
// // setFieldsValue,
// setProps,
},
]
=
useForm
({
labelWidth
:
120
,
schemas
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
24
,
},
});
const
[
register
,
{
closeModal
}]
=
useModalInner
((
data
)
=>
{
console
.
log
(
111
);
data
&&
onDataReceive
(
data
);
});
// function handleVisibleChange(v) {
// v && props.userData && nextTick(() => onDataReceive(props.userData));
// }
function
onDataReceive
(
data
)
{
console
.
log
(
'Data Received'
,
data
.
exportData
);
updateSchema
({
field
:
'colums'
,
componentProps
:
{
options
:
data
.
exportData
,
},
});
// console.log(props.userData);
// projectId.value = data.projectId;
// console.log(projectId.value);
}
function
handleSubmit
()
{
validate
().
then
(
async
()
=>
{
const
value
=
getFieldsValue
();
console
.
log
(
value
);
const
data
=
await
tenderManageExport
({
colums
:
value
.
colums
,
searchField
:
{
biddingType
:
'施工'
},
});
downloadByData
(
data
,
'export.xlsx'
);
emit
(
'close'
);
closeModal
();
});
}
</
script
>
src/views/statement/tabs/data.ts
View file @
f6064030
...
@@ -835,6 +835,73 @@ export const biddingPlanColumns = [
...
@@ -835,6 +835,73 @@ export const biddingPlanColumns = [
width
:
180
,
width
:
180
,
},
},
];
];
export
const
exportBiddingPlanColumns
=
[
{
title
:
'填报周期'
,
dataIndex
:
'fillingPeriod'
,
width
:
200
,
},
{
title
:
'项目名称'
,
sort
:
true
,
dataIndex
:
'projectName'
,
width
:
180
,
},
{
title
:
'立项主体'
,
sort
:
true
,
dataIndex
:
'projectInitiator'
,
width
:
180
,
},
{
title
:
'资金来源'
,
sort
:
true
,
dataIndex
:
'fundingSource'
,
width
:
180
,
},
{
title
:
'立项投资额(万元) '
,
sort
:
true
,
dataIndex
:
'investmentAmount'
,
width
:
180
,
},
{
title
:
'招标类型'
,
dataIndex
:
'biddingType'
,
width
:
180
,
},
{
title
:
'招标内容'
,
sort
:
true
,
dataIndex
:
'tenderContent'
,
width
:
180
,
},
{
title
:
'预计控制价(万元)'
,
dataIndex
:
'controlPrice'
,
width
:
180
,
},
{
title
:
'计划工期'
,
dataIndex
:
'plannedPeriod'
,
width
:
180
,
},
{
title
:
'招标方式'
,
dataIndex
:
'biddingMethod'
,
width
:
180
,
},
{
title
:
'计划招标周期'
,
dataIndex
:
'biddingPeriod'
,
width
:
180
,
},
{
title
:
'备注'
,
dataIndex
:
'remark'
,
width
:
180
,
},
];
export
const
biddingManagementColumns
=
[
export
const
biddingManagementColumns
=
[
{
{
...
@@ -844,68 +911,176 @@ export const biddingManagementColumns = [
...
@@ -844,68 +911,176 @@ export const biddingManagementColumns = [
},
},
{
{
title
:
'填报周期'
,
title
:
'填报周期'
,
dataIndex
:
'
tenderYear
'
,
dataIndex
:
'
fillingPeriod
'
,
width
:
200
,
width
:
200
,
},
},
{
{
title
:
'项目名称 '
,
title
:
'项目名称 '
,
sort
:
true
,
sort
:
true
,
dataIndex
:
'pro
Number
'
,
dataIndex
:
'pro
jectName
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'立项投资额(万元)'
,
title
:
'立项投资额(万元)'
,
dataIndex
:
'
companyName
'
,
dataIndex
:
'
investmentAmount
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'资金来源'
,
title
:
'资金来源'
,
dataIndex
:
'
updateBy
'
,
dataIndex
:
'
fundingSource
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'招标类型'
,
title
:
'招标类型'
,
dataIndex
:
'
revieweUser
'
,
dataIndex
:
'
biddingType
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'招标内容'
,
title
:
'招标内容'
,
dataIndex
:
'
reviewTime
'
,
dataIndex
:
'
tenderContent
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'招标控制(元)'
,
title
:
'招标控制(元)'
,
dataIndex
:
'
reviewTim
e'
,
dataIndex
:
'
controlPric
e'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'建设模式'
,
title
:
'建设模式'
,
dataIndex
:
'
reviewTim
e'
,
dataIndex
:
'
constructionMod
e'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'招标采购方式'
,
title
:
'招标采购方式'
,
dataIndex
:
'
reviewTime
'
,
dataIndex
:
'
procurementMethod
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'招标完成情况'
,
title
:
'招标完成情况'
,
dataIndex
:
'
reviewTime
'
,
dataIndex
:
'
completionStatus
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'开标时间'
,
title
:
'开标时间'
,
dataIndex
:
'
review
Time'
,
dataIndex
:
'
opening
Time'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'中标单位'
,
title
:
'中标单位'
,
dataIndex
:
'reviewTime'
,
dataIndex
:
'winningBidder'
,
width
:
180
,
},
{
title
:
'中标金额(元)'
,
dataIndex
:
'winningAmount'
,
width
:
150
,
},
{
title
:
'中标工期'
,
dataIndex
:
'winningPeriod'
,
width
:
150
,
},
{
title
:
'合同签订日期'
,
dataIndex
:
'signingDate'
,
width
:
180
,
},
{
title
:
'会议纪要'
,
dataIndex
:
'meetingMinute'
,
width
:
150
,
},
{
title
:
'招标信息发布渠道'
,
dataIndex
:
'releaseChannels'
,
width
:
180
,
},
{
title
:
'招标公告发布网址(仅限公开招标项目)'
,
dataIndex
:
'publishWebsite'
,
width
:
180
,
},
{
title
:
'中标结果公示网址(仅限公开招标项目)'
,
dataIndex
:
'publicityWebsite'
,
width
:
180
,
},
{
title
:
'是否存在投诉举报情况'
,
dataIndex
:
'isReportingSituation'
,
width
:
180
,
},
{
title
:
'投诉举报解决处理情况'
,
dataIndex
:
'handSituation'
,
width
:
180
,
},
{
title
:
'备注'
,
dataIndex
:
'remark'
,
width
:
180
,
}
];
export
const
exportBiddingManagementColumns
=
[
{
title
:
'填报周期'
,
dataIndex
:
'fillingPeriod'
,
width
:
200
,
},
{
title
:
'项目名称 '
,
sort
:
true
,
dataIndex
:
'projectName'
,
width
:
180
,
},
{
title
:
'立项投资额(万元)'
,
dataIndex
:
'investmentAmount'
,
width
:
180
,
},
{
title
:
'资金来源'
,
dataIndex
:
'fundingSource'
,
width
:
180
,
},
{
title
:
'招标类型'
,
dataIndex
:
'biddingType'
,
width
:
180
,
},
{
title
:
'招标内容'
,
dataIndex
:
'tenderContent'
,
width
:
180
,
},
{
title
:
'招标控制(元)'
,
dataIndex
:
'controlPrice'
,
width
:
180
,
},
{
title
:
'建设模式'
,
dataIndex
:
'constructionMode'
,
width
:
180
,
},
{
title
:
'招标采购方式'
,
dataIndex
:
'procurementMethod'
,
width
:
180
,
},
{
title
:
'招标完成情况'
,
dataIndex
:
'completionStatus'
,
width
:
180
,
},
{
title
:
'开标时间'
,
dataIndex
:
'openingTime'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'中标单位'
,
title
:
'中标单位'
,
dataIndex
:
'
reviewTime
'
,
dataIndex
:
'
winningBidder
'
,
width
:
180
,
width
:
180
,
},
},
{
{
...
@@ -915,44 +1090,49 @@ export const biddingManagementColumns = [
...
@@ -915,44 +1090,49 @@ export const biddingManagementColumns = [
},
},
{
{
title
:
'中标工期'
,
title
:
'中标工期'
,
dataIndex
:
'winning
Duration
'
,
dataIndex
:
'winning
Period
'
,
width
:
150
,
width
:
150
,
},
},
{
{
title
:
'合同签订日期'
,
title
:
'合同签订日期'
,
dataIndex
:
'
reviewTim
e'
,
dataIndex
:
'
signingDat
e'
,
width
:
180
,
width
:
180
,
},
},
{
title
:
'会议纪要'
,
dataIndex
:
'meetingMinute'
,
width
:
150
,
},
{
{
title
:
'招标信息发布渠道'
,
title
:
'招标信息发布渠道'
,
dataIndex
:
're
viewTime
'
,
dataIndex
:
're
leaseChannels
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'招标公告发布网址'
,
title
:
'招标公告发布网址
(仅限公开招标项目)
'
,
dataIndex
:
'
reviewTim
e'
,
dataIndex
:
'
publishWebsit
e'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'中标结果公示网址'
,
title
:
'中标结果公示网址
(仅限公开招标项目)
'
,
dataIndex
:
'
reviewTim
e'
,
dataIndex
:
'
publicityWebsit
e'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'是否存在投诉举报情况'
,
title
:
'是否存在投诉举报情况'
,
dataIndex
:
'
reviewTime
'
,
dataIndex
:
'
isReportingSituation
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'投诉举报解决处理情况'
,
title
:
'投诉举报解决处理情况'
,
dataIndex
:
'
reviewTime
'
,
dataIndex
:
'
handSituation
'
,
width
:
180
,
width
:
180
,
},
},
{
{
title
:
'备注'
,
title
:
'备注'
,
dataIndex
:
're
viewTime
'
,
dataIndex
:
're
mark
'
,
width
:
180
,
width
:
180
,
}
,
}
];
];
export
const
settlementManagementColumns
=
[
export
const
settlementManagementColumns
=
[
{
{
...
...
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