| @@ -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> | |||||