@@ -27,6 +27,40 @@ export function Attestation(query) { | |||||
}) | }) | ||||
} | } | ||||
//终止公告 | |||||
export function outProjectTerminate(query) { | |||||
return request({ | |||||
url: '/transaction/website/outproject/terminate', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
//终止公告 | |||||
export function outProjectDetail(id) { | |||||
return request({ | |||||
url: '/transaction/website/outproject/terminate/id/'+id, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
//终止公告 | |||||
export function outProjectException(query) { | |||||
return request({ | |||||
url: '/transaction/website/outproject/exception', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
//终止公告 | |||||
export function outProjectExceptionDetail(id) { | |||||
return request({ | |||||
url: '/transaction/website/outproject/exception/id/'+id, | |||||
method: 'get' | |||||
}) | |||||
} | |||||
//成交公告 | //成交公告 | ||||
export function noticeDetails(id) { | export function noticeDetails(id) { | ||||
return request({ | return request({ | ||||
@@ -39,6 +39,8 @@ const whiteList = [ | |||||
'/policyPDF', | '/policyPDF', | ||||
'/attestationDetail', | '/attestationDetail', | ||||
'/noticeDetail', | '/noticeDetail', | ||||
'/stopDetail', | |||||
'/abnormalDetail', | |||||
'/homestead/login', | '/homestead/login', | ||||
'/applicationForm', | '/applicationForm', | ||||
'/applicationList', | '/applicationList', | ||||
@@ -389,6 +389,24 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/notice/noticeDetail'], resolve) | component: (resolve) => require(['@/views/notice/noticeDetail'], resolve) | ||||
}, | }, | ||||
{ | |||||
path: '/stopDetail', | |||||
name: 'stopDetail', | |||||
meta: { | |||||
title: '公告详情', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/notice/stopDetail'], resolve) | |||||
}, | |||||
{ | |||||
path: '/abnormalDetail', | |||||
name: 'abnormalDetail', | |||||
meta: { | |||||
title: '公告详情', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/notice/abnormalDetail'], resolve) | |||||
}, | |||||
{ | { | ||||
path: '/attestationDetail', | path: '/attestationDetail', | ||||
name: 'attestationDetailCJ', | name: 'attestationDetailCJ', | ||||
@@ -0,0 +1,120 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<navBar title="异常公告" background="0" positionType="fixed"></navBar> | |||||
<div class="block_box"> | |||||
<div class="block_tt"><i></i>项目信息</div> | |||||
<van-cell title="项目编号" :value="noticeDetail.projectCode" /> | |||||
<van-cell title="项目名称" :value="noticeDetail.projectName" /> | |||||
<van-cell title="公告日期" :value="noticeDetail.terminateAt" /> | |||||
<van-cell title="公告说明" type="textarea" :value="noticeDetail.terminateRemark" /> | |||||
<van-cell title="交易中心公告" :border="false"/> | |||||
<van-uploader | |||||
v-model="noticeDetail.jyzxImgArray" | |||||
style="padding: 0 15px;" | |||||
:show-upload="false" | |||||
:deletable="false" | |||||
/> | |||||
<van-cell title="技术单位公告" :border="false" /> | |||||
<van-uploader | |||||
v-model="noticeDetail.jsdwImgArray" | |||||
style="padding: 0 15px;" | |||||
:show-upload="false" | |||||
:deletable="false" | |||||
/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {attachmentQuery, outProjectExceptionDetail} from "@/api/notice/index"; | |||||
import navBar from "@/components/common/nav_bar.vue"; | |||||
export default { | |||||
name: "noticeDetail", | |||||
components: { navBar }, | |||||
data() { | |||||
return { | |||||
noticeDetail:'', | |||||
attachmentQueryList:[] | |||||
}; | |||||
}, | |||||
created() { | |||||
this.getDetail(); | |||||
}, | |||||
methods: { | |||||
//成交公告集合 | |||||
getDetail(){ | |||||
console.log(this.$route.query.id) | |||||
outProjectExceptionDetail(this.$route.query.id).then(response => { | |||||
console.log(response) | |||||
response.data.jyzxImgArray = []; | |||||
response.data.jsdwImgArray = []; | |||||
if (response.data.jyzxImg){ | |||||
response.data.jyzxImg.split(',').map(res=>{ | |||||
response.data.jyzxImgArray.push({ | |||||
url:'/api'+res, | |||||
}) | |||||
}) | |||||
} | |||||
if (response.data.jsdwImg){ | |||||
response.data.jsdwImg.split(',').map(res=>{ | |||||
response.data.jsdwImgArray.push({ | |||||
url:'/api'+res, | |||||
}) | |||||
}) | |||||
} | |||||
this.noticeDetail = response.data; | |||||
}); | |||||
}, | |||||
}, | |||||
}; | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
padding: 0 0 0.5rem; | |||||
background-color: #F4F8FB; | |||||
height: calc(100vh - 50px); | |||||
} | |||||
.block_box{ | |||||
width: 94%; | |||||
margin: 3vw auto; | |||||
background: #ffffff; | |||||
padding: 3vw 0; | |||||
border-radius: 15Px; | |||||
overflow: hidden; | |||||
.block_tt{ | |||||
font-size: 20Px; | |||||
display: flex; | |||||
align-items: center; | |||||
padding: 1.6vh 3vw; | |||||
line-height: 1; | |||||
font-weight: bold; | |||||
i{ | |||||
display: block; | |||||
width: 4Px; | |||||
height: 16Px; | |||||
background: #0CBEA6; | |||||
margin-right: 5PX; | |||||
border-radius: 5PX; | |||||
} | |||||
/*border-left: 3Px solid #0CBEA6;*/ | |||||
} | |||||
} | |||||
.title{ | |||||
font-size: 0.5rem; | |||||
margin-bottom: 0.5rem; | |||||
} | |||||
.van-row{ | |||||
margin-bottom: 0.4rem; | |||||
} | |||||
.van-col{ | |||||
font-size: 0.4rem; | |||||
color: #666666; | |||||
} | |||||
</style> |
@@ -49,6 +49,52 @@ | |||||
</van-list> | </van-list> | ||||
</van-tab> | </van-tab> | ||||
<van-tab title="终止公告"> | |||||
<!-- <template #title><van-icon name="records" size="18" style="top: 4px"/>鉴证公告</template>--> | |||||
<van-list | |||||
v-model="stopLoading" | |||||
:finished="stopFinished" | |||||
finished-text="没有更多了" | |||||
style="margin-top: 10px;" | |||||
@load="getStopList" | |||||
> | |||||
<van-cell v-for="(item,index) in stopList" :key="index" :to="{name:'stopDetail', query: {id:item.id}}" style="margin-bottom: 1vh;"> | |||||
<template #title> | |||||
<div style="display: flex;align-items: center;justify-content: space-between;"> | |||||
<p style="display: flex;align-items: center;color: #E6AA0B;"><img src="../../../static/images/transaction_new/notic/notic_icon_07.png" alt="" style="margin-right: 5px;"/>{{item.projectCode}}</p> | |||||
<p style="color: #AAB1B5;font-size: 14px;"><img src="../../../static/images/icon/news_icon_clock.png" alt="" style="margin-right: 5px;" />{{item.dealTime.substr(0,10)}}</p> | |||||
</div> | |||||
</template> | |||||
<template #label> | |||||
<p style="color: #333333;">{{item.projectName}}</p> | |||||
</template> | |||||
</van-cell> | |||||
</van-list> | |||||
</van-tab> | |||||
<van-tab title="异常公告"> | |||||
<!-- <template #title><van-icon name="records" size="18" style="top: 4px"/>鉴证公告</template>--> | |||||
<van-list | |||||
v-model="abnormalLoading" | |||||
:finished="abnormalFinished" | |||||
finished-text="没有更多了" | |||||
style="margin-top: 10px;" | |||||
@load="getAbnormalList" | |||||
> | |||||
<van-cell v-for="(item,index) in abnormalList" :key="index" :to="{name:'abnormalDetail', query: {id:item.id}}" style="margin-bottom: 1vh;"> | |||||
<template #title> | |||||
<div style="display: flex;align-items: center;justify-content: space-between;"> | |||||
<p style="display: flex;align-items: center;color: #FF2D2D;"><img src="../../../static/images/transaction_new/notic/notic_icon_08.png" alt="" style="margin-right: 5px;"/>{{item.projectCode}}</p> | |||||
<p style="color: #AAB1B5;font-size: 14px;"><img src="../../../static/images/icon/news_icon_clock.png" alt="" style="margin-right: 5px;" />{{item.terminateAt}}</p> | |||||
</div> | |||||
</template> | |||||
<template #label> | |||||
<p style="color: #333333;">{{item.projectName}}</p> | |||||
</template> | |||||
</van-cell> | |||||
</van-list> | |||||
</van-tab> | |||||
<van-tab title="招标公告"> | <van-tab title="招标公告"> | ||||
<!-- <template #title><van-icon name="description" size="18" style="top: 4px"/>招标公告</template>--> | <!-- <template #title><van-icon name="description" size="18" style="top: 4px"/>招标公告</template>--> | ||||
<van-list | <van-list | ||||
@@ -106,7 +152,7 @@ | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import { noticeList , Attestation , tenderList , winList } from "@/api/notice/index"; | |||||
import { noticeList , Attestation , tenderList , winList, outProjectTerminate, outProjectException } from "@/api/notice/index"; | |||||
import navBar from "@/components/common/nav_bar.vue"; | import navBar from "@/components/common/nav_bar.vue"; | ||||
export default { | export default { | ||||
name: "notice", | name: "notice", | ||||
@@ -129,6 +175,14 @@ export default { | |||||
winTheBiddingLoading: false, | winTheBiddingLoading: false, | ||||
//是否滚动到底部 | //是否滚动到底部 | ||||
winTheBiddingFinished: false, | winTheBiddingFinished: false, | ||||
//是否显示加载 | |||||
stopLoading: false, | |||||
//是否滚动到底部 | |||||
stopFinished: false, | |||||
//是否显示加载 | |||||
abnormalLoading: false, | |||||
//是否滚动到底部 | |||||
abnormalFinished: false, | |||||
//成交公告集合 | //成交公告集合 | ||||
noticeList:[], | noticeList:[], | ||||
//招标公告集合 | //招标公告集合 | ||||
@@ -137,6 +191,10 @@ export default { | |||||
winTheBiddingList:[], | winTheBiddingList:[], | ||||
//鉴证公告集合 | //鉴证公告集合 | ||||
attestationList:[], | attestationList:[], | ||||
//终止公告集合 | |||||
stopList:[], | |||||
//异常公告集合 | |||||
abnormalList:[], | |||||
//成交公告查询参数 | //成交公告查询参数 | ||||
queryParams: { | queryParams: { | ||||
deptId:100, | deptId:100, | ||||
@@ -161,6 +219,18 @@ export default { | |||||
pageNum:1, | pageNum:1, | ||||
pageSize:10 | pageSize:10 | ||||
}, | }, | ||||
//终止公告查询参数 | |||||
stopQueryParams: { | |||||
deptId:100, | |||||
pageNum:1, | |||||
pageSize:10 | |||||
}, | |||||
//异常公告查询参数 | |||||
abnormalQueryParams: { | |||||
deptId:100, | |||||
pageNum:1, | |||||
pageSize:10 | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
@@ -208,6 +278,38 @@ export default { | |||||
} | } | ||||
}); | }); | ||||
}, | }, | ||||
//终止公告集合 | |||||
getStopList(){ | |||||
this.stopLoading = true; | |||||
outProjectTerminate(this.stopQueryParams).then(response => { | |||||
response.rows.forEach(res=>{ | |||||
this.stopList.push(res); | |||||
}) | |||||
if(this.stopList.length >= response.total){ | |||||
this.stopFinished = true; | |||||
return; | |||||
}else{ | |||||
this.stopLoading = false; | |||||
this.stopQueryParams.pageNum += 1 ; | |||||
} | |||||
}); | |||||
}, | |||||
//异常公告集合 | |||||
getAbnormalList(){ | |||||
this.abnormalLoading = true; | |||||
outProjectException(this.abnormalQueryParams).then(response => { | |||||
response.rows.forEach(res=>{ | |||||
this.abnormalList.push(res); | |||||
}) | |||||
if(this.abnormalList.length >= response.total){ | |||||
this.abnormalFinished = true; | |||||
return; | |||||
}else{ | |||||
this.abnormalLoading = false; | |||||
this.abnormalQueryParams.pageNum += 1 ; | |||||
} | |||||
}); | |||||
}, | |||||
//招标公告集合 | //招标公告集合 | ||||
getinviteTendersList(){ | getinviteTendersList(){ | ||||
this.inviteTendersLoading = true; | this.inviteTendersLoading = true; | ||||
@@ -0,0 +1,94 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<navBar title="终止公告" background="0" positionType="fixed"></navBar> | |||||
<div class="block_box"> | |||||
<div class="block_tt"><i></i>项目信息</div> | |||||
<van-cell title="项目编号" :value="noticeDetail.projectCode" /> | |||||
<van-cell title="项目名称" :value="noticeDetail.projectName" /> | |||||
<van-cell title="终止原因" type="textarea" :value="noticeDetail.terminateReason" /> | |||||
<van-cell title="终止日期" :value="noticeDetail.dealTime.substr(0,10)" /> | |||||
<van-divider>附件</van-divider> | |||||
<van-cell :title="item.fileName" :url="'/api'+item.fileUrl" is-link v-for="(item,index) in noticeDetail.attachmentList"> | |||||
<!-- 使用 right-icon 插槽来自定义右侧图标 --> | |||||
<template #icon> | |||||
<img src="../../assets/images/file_icon.png" style="display: block;width: 24px;margin-right: 5px;" alt=""> | |||||
</template> | |||||
</van-cell> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {attachmentQuery, outProjectDetail} from "@/api/notice/index"; | |||||
import navBar from "@/components/common/nav_bar.vue"; | |||||
export default { | |||||
name: "noticeDetail", | |||||
components: { navBar }, | |||||
data() { | |||||
return { | |||||
noticeDetail:'', | |||||
attachmentQueryList:[] | |||||
}; | |||||
}, | |||||
created() { | |||||
this.getDetail(); | |||||
}, | |||||
methods: { | |||||
//成交公告集合 | |||||
getDetail(){ | |||||
console.log(this.$route.query.id) | |||||
outProjectDetail(this.$route.query.id).then(response => { | |||||
console.log(response) | |||||
this.noticeDetail = response.data; | |||||
}); | |||||
}, | |||||
}, | |||||
}; | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
padding: 0 0 0.5rem; | |||||
background-color: #F4F8FB; | |||||
height: calc(100vh - 50px); | |||||
} | |||||
.block_box{ | |||||
width: 94%; | |||||
margin: 3vw auto; | |||||
background: #ffffff; | |||||
padding: 3vw 0; | |||||
border-radius: 15Px; | |||||
overflow: hidden; | |||||
.block_tt{ | |||||
font-size: 20Px; | |||||
display: flex; | |||||
align-items: center; | |||||
padding: 1.6vh 3vw; | |||||
line-height: 1; | |||||
font-weight: bold; | |||||
i{ | |||||
display: block; | |||||
width: 4Px; | |||||
height: 16Px; | |||||
background: #0CBEA6; | |||||
margin-right: 5PX; | |||||
border-radius: 5PX; | |||||
} | |||||
/*border-left: 3Px solid #0CBEA6;*/ | |||||
} | |||||
} | |||||
.title{ | |||||
font-size: 0.5rem; | |||||
margin-bottom: 0.5rem; | |||||
} | |||||
.van-row{ | |||||
margin-bottom: 0.4rem; | |||||
} | |||||
.van-col{ | |||||
font-size: 0.4rem; | |||||
color: #666666; | |||||
} | |||||
</style> |