Browse Source

task 45021 终止、异常公告

rongxin_dev
庞东旭 2 days ago
parent
commit
d56a1a5087
8 changed files with 371 additions and 1 deletions
  1. +34
    -0
      src/api/notice/index.js
  2. +2
    -0
      src/permission.js
  3. +18
    -0
      src/router/index.js
  4. +120
    -0
      src/views/notice/abnormalDetail.vue
  5. +103
    -1
      src/views/notice/index.vue
  6. +94
    -0
      src/views/notice/stopDetail.vue
  7. BIN
      static/images/transaction_new/notic/notic_icon_07.png
  8. BIN
      static/images/transaction_new/notic/notic_icon_08.png

+ 34
- 0
src/api/notice/index.js View File

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


+ 2
- 0
src/permission.js View File

@@ -39,6 +39,8 @@ const whiteList = [
'/policyPDF',
'/attestationDetail',
'/noticeDetail',
'/stopDetail',
'/abnormalDetail',
'/homestead/login',
'/applicationForm',
'/applicationList',


+ 18
- 0
src/router/index.js View File

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


+ 120
- 0
src/views/notice/abnormalDetail.vue View File

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

+ 103
- 1
src/views/notice/index.vue View File

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


+ 94
- 0
src/views/notice/stopDetail.vue View File

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

BIN
static/images/transaction_new/notic/notic_icon_07.png View File

Before After
Width: 16  |  Height: 16  |  Size: 477 B

BIN
static/images/transaction_new/notic/notic_icon_08.png View File

Before After
Width: 16  |  Height: 16  |  Size: 497 B

Loading…
Cancel
Save