@@ -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) { | |||
return request({ | |||
@@ -39,6 +39,8 @@ const whiteList = [ | |||
'/policyPDF', | |||
'/attestationDetail', | |||
'/noticeDetail', | |||
'/stopDetail', | |||
'/abnormalDetail', | |||
'/homestead/login', | |||
'/applicationForm', | |||
'/applicationList', | |||
@@ -389,6 +389,24 @@ export const constantRoutes = [ | |||
}, | |||
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', | |||
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-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="招标公告"> | |||
<!-- <template #title><van-icon name="description" size="18" style="top: 4px"/>招标公告</template>--> | |||
<van-list | |||
@@ -106,7 +152,7 @@ | |||
</template> | |||
<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"; | |||
export default { | |||
name: "notice", | |||
@@ -129,6 +175,14 @@ export default { | |||
winTheBiddingLoading: false, | |||
//是否滚动到底部 | |||
winTheBiddingFinished: false, | |||
//是否显示加载 | |||
stopLoading: false, | |||
//是否滚动到底部 | |||
stopFinished: false, | |||
//是否显示加载 | |||
abnormalLoading: false, | |||
//是否滚动到底部 | |||
abnormalFinished: false, | |||
//成交公告集合 | |||
noticeList:[], | |||
//招标公告集合 | |||
@@ -137,6 +191,10 @@ export default { | |||
winTheBiddingList:[], | |||
//鉴证公告集合 | |||
attestationList:[], | |||
//终止公告集合 | |||
stopList:[], | |||
//异常公告集合 | |||
abnormalList:[], | |||
//成交公告查询参数 | |||
queryParams: { | |||
deptId:100, | |||
@@ -161,6 +219,18 @@ export default { | |||
pageNum:1, | |||
pageSize:10 | |||
}, | |||
//终止公告查询参数 | |||
stopQueryParams: { | |||
deptId:100, | |||
pageNum:1, | |||
pageSize:10 | |||
}, | |||
//异常公告查询参数 | |||
abnormalQueryParams: { | |||
deptId:100, | |||
pageNum:1, | |||
pageSize:10 | |||
}, | |||
}; | |||
}, | |||
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(){ | |||
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> |