Commit 7b7f1087 by 严立

竞价变更公告

parent b75bec94
...@@ -14566,6 +14566,11 @@ ...@@ -14566,6 +14566,11 @@
"markdown-it": "^8.4.0" "markdown-it": "^8.4.0"
} }
}, },
"vue-calendar-component": {
"version": "2.8.2",
"resolved": "https://registry.npm.taobao.org/vue-calendar-component/download/vue-calendar-component-2.8.2.tgz",
"integrity": "sha1-j2DAWnLIqsvdIkAW9OGpZmSr2Ko="
},
"vue-cli-plugin-style-resources-loader": { "vue-cli-plugin-style-resources-loader": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/vue-cli-plugin-style-resources-loader/-/vue-cli-plugin-style-resources-loader-0.1.4.tgz", "resolved": "https://registry.npmjs.org/vue-cli-plugin-style-resources-loader/-/vue-cli-plugin-style-resources-loader-0.1.4.tgz",
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
"element-ui": "^2.13.2", "element-ui": "^2.13.2",
"miment": "0.0.9", "miment": "0.0.9",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-calendar-component": "^2.8.2",
"vue-router": "^3.3.4" "vue-router": "^3.3.4"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -10,9 +10,10 @@ let output = { ...@@ -10,9 +10,10 @@ let output = {
// 5 - 中标候选 // 5 - 中标候选
// 6 - 招标结果 // 6 - 招标结果
// 9 - 其他公告 // 9 - 其他公告
// 10 - 竞价变更公告
noticeType: { noticeType: {
raw: ['', 1, 2, 5, 3, 4, 7, 8, 6], raw: ['', 1, 2, 5, 3, 4, 7, 9, 8, 6],
mapping: ['', 2, 3, 4, 5, 6, 0, 1, 9], mapping: ['', 2, 3, 4, 5, 6, 0, 10, 1, 9],
} }
} }
......
let output = { let output = {
// 开发路径
// base: 'http://bid-server.meiqicloud.com/',
// resources: 'http://bid-web.meiqicloud.com/',
// agentSignIn: 'http://bid-vue.meiqicloud.com/'
// 测试环境 // 测试环境
// base: '/Api/', base: 'http://bid-server.meiqicloud.com/', // 开发路径
// resources: 'http://bid-web.meiqicloud.com', // base: '/Api/', // 部署路径
// agentSignIn: 'http://bid-vue.meiqicloud.com/' resources: 'http://bid-web.meiqicloud.com',
agentSignIn: 'http://bid-vue.meiqicloud.com/'
// 正式环境 // 正式环境
base: '/Api/', // base: '/Api/',
resources: 'https://www.fjbidding.com', // resources: 'https://www.fjbidding.com',
agentSignIn: 'https://www.fjbidding.com/admin/' // agentSignIn: 'https://www.fjbidding.com/admin/'
} }
output.uploadFile = output.base + 'bid/common/webupload/upload' output.uploadFile = output.base + 'bid/common/webupload/upload'
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
computed: { computed: {
componentAgency: function () { componentAgency: function () {
console.log('this.$store.state.componentAgency', this.$store.state.componentAgency)
return this.$store.state.componentAgency return this.$store.state.componentAgency
}, },
}, },
......
...@@ -74,13 +74,14 @@ ...@@ -74,13 +74,14 @@
<div class="col con-c align-c"> <div class="col con-c align-c">
<img v-if="componentProject.noticeType === 0" class="operate-img" src="../assets/notice-bitton.png" alt=""> <img v-if="componentProject.noticeType === 0" class="operate-img" src="../assets/notice-bitton.png" alt="">
<div v-if="operateText !== ''" class="operate-button"> <div v-if="operateText !== ''" class="operate-button">
<button v-if="progressState === 2" class="global-enable" @click="onOffer()">立即报价</button> <button v-if="[2].indexOf(componentProgress.state) >= 0" class="global-enable" @click="onOffer()">立即报价</button>
<button v-if="progressState === 3" class="global-disable" disabled>报价已结束</button> <button v-if="[3, 4].indexOf(componentProgress.state) >= 0" class="global-disable" disabled>报价已结束</button>
<button v-if="progressState === 4" class="global-disable" disabled>报价已结束</button> <button v-if="[5].indexOf(componentProgress.state) >= 0" class="global-disable" disabled>报价已暂停</button>
<button v-if="[6].indexOf(componentProgress.state) >= 0" class="global-disable" disabled>报价已终止</button>
</div> </div>
<div class="operate-tip"> <div class="operate-tip">
<span v-if="progressState === 1">距离报价开始仅剩 <span class="global-color-red">{{operateDay}}</span><span class="global-color-red">{{operateHour}}</span> 小时</span> <span v-if="progressState === 1">距离报价开始仅剩 <span class="global-color-red">{{operateDay}}</span><span class="global-color-red">{{operateHour}}</span> 小时</span>
<span v-if="progressState === 2 && !operateIsBuy">报价仅剩 <span class="global-color-red">{{operateDay}}</span><span class="global-color-red">{{operateHour}}</span> 小时</span> <span v-if="[2].indexOf(componentProgress.state) >= 0 && !operateIsBuy">报价仅剩 <span class="global-color-red">{{operateDay}}</span><span class="global-color-red">{{operateHour}}</span> 小时</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -113,6 +114,7 @@ ...@@ -113,6 +114,7 @@
return this.$store.state.componentProject return this.$store.state.componentProject
}, },
componentProgress: function () { componentProgress: function () {
console.log('this.$store.state.componentProgress', this.$store.state.componentProgress)
return this.$store.state.componentProgress return this.$store.state.componentProgress
} }
}, },
...@@ -128,7 +130,6 @@ ...@@ -128,7 +130,6 @@
componentProgress: { componentProgress: {
handler: function (funcNewValue, funcOldValue) { handler: function (funcNewValue, funcOldValue) {
if (JSON.stringify(funcNewValue) !== '{}') { if (JSON.stringify(funcNewValue) !== '{}') {
console.log('mark', funcNewValue)
this.setProgressTime(funcNewValue) this.setProgressTime(funcNewValue)
this.setOperate(funcNewValue) this.setOperate(funcNewValue)
} }
...@@ -157,7 +158,7 @@ ...@@ -157,7 +158,7 @@
this.progressNode = [ this.progressNode = [
{ {
text: funcProgressData.text[0], text: funcProgressData.text[0],
time: iMiment(funcProgressData.timestamp[0]).format('YYYY-MM-DD hh:mm') time: iMiment(funcProgressData.timestamp[0]).format('YYYY-MM-DD')
}, },
{ {
text: funcProgressData.text[1], text: funcProgressData.text[1],
...@@ -230,7 +231,6 @@ ...@@ -230,7 +231,6 @@
* @returns * @returns
*/ */
onDocument: function () { onDocument: function () {
console.log('onDocument')
// 公告为预览状态禁止操作 // 公告为预览状态禁止操作
if (this.$route.query.preview) return if (this.$route.query.preview) return
this.$emit('document') this.$emit('document')
......
...@@ -318,6 +318,38 @@ ...@@ -318,6 +318,38 @@
<span>{{componentProject.buyPhone}}</span> <span>{{componentProject.buyPhone}}</span>
</div> </div>
</div> </div>
<!-- 竞价变更澄清公告 -->
<div v-if="noticeType === 10" class="info">
<div class="item-text row align-c">
<span>竞价项目编号:</span>
<span>{{componentProject.projectIdentity}}</span>
</div>
<div class="item-text row align-c">
<span>竞价项目名称:</span>
<span>{{componentProject.projectName}}</span>
</div>
<div class="item-text row align-c">
<span>采购单位:</span>
<span>{{componentProject.buyCompany}}</span>
</div>
<div class="item-text row align-c">
<span>采购单位性质:</span>
<span>{{componentProject.buyCompanyType}}</span>
</div>
<div class="item-text row align-c">
<span>采购单位联系人:</span>
<span>{{componentProject.buyLiaison}}</span>
</div>
<div class="item-text row align-c">
<span>联系电话:</span>
<span>{{componentProject.buyPhone}}</span>
</div>
<div class="item-text row align-c">
<span>竞价时间:</span>
<span>{{componentProject.timeBegin + ' - ' + componentProject.timeEnd}}</span>
</div>
</div>
</div> </div>
</template> </template>
......
...@@ -17,6 +17,10 @@ ...@@ -17,6 +17,10 @@
<!-- 今日开标 --> <!-- 今日开标 -->
<div class="new-bid row con-c"> <div class="new-bid row con-c">
<div class="global-maxwidth row con-b"> <div class="global-maxwidth row con-b">
<div class="calendar">
<span class="calendar-title">开标日历</span>
<calendar :markDate="['2020/10/13','2020/10/14']"></calendar>
</div>
<div> <div>
<div class="row align-e"> <div class="row align-e">
<span class="title">今日开标</span> <span class="title">今日开标</span>
...@@ -214,6 +218,7 @@ ...@@ -214,6 +218,7 @@
<script> <script>
import iMiment from 'miment' import iMiment from 'miment'
import iCalendar from 'vue-calendar-component';
import iHost from '@/common/js/host.js' import iHost from '@/common/js/host.js'
import iRequest from '@/common/js/request/request.js' import iRequest from '@/common/js/request/request.js'
import iTime from '@/common/js/time.js' import iTime from '@/common/js/time.js'
...@@ -223,6 +228,7 @@ ...@@ -223,6 +228,7 @@
import iFooter from '@/components/currency-footer.vue' import iFooter from '@/components/currency-footer.vue'
export default { export default {
components: { components: {
calendar: iCalendar,
componentHeader: iHeader, componentHeader: iHeader,
componentNavigation: iNavigation, componentNavigation: iNavigation,
componentFooter: iFooter componentFooter: iFooter
...@@ -623,9 +629,119 @@ ...@@ -623,9 +629,119 @@
} }
} }
.new-bid { .new-bid {
position: relative;
width: 100%; width: 100%;
padding: 50px 0; padding: 50px 0;
background: #FFFFFF; background: #FFFFFF;
.calendar {
position: relative;
width: 410px;
height: 386px;
margin-right: 40px;
box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
border-radius: 25px;
background: #F8F8F8;
overflow: hidden;
.calendar-title {
position: absolute;
top: 10px;
left: 100px;
font-size: 20px;
font-weight: bold;
color: #2575FA;
}
.wh_content_all {
width: 410px;
margin: 0;
padding: 0 0 20px 0;
background: #f8f8f8;
.wh_top_changge {
.wh_content_li {
position: relative;
left: 50px;
font-size: 20px;
font-weight: bold;
color: #000000;
}
.wh_jiantou1,
.wh_jiantou2 {
border-color: #858585;
}
}
// 日历天数
.wh_content {
width: 372px;
margin: 0 20px;
padding: 0;
.wh_content_item {
width: 50px;
height: 50px;
margin: 0 3px 3px 0;
padding: 0;
.wh_top_tag {
width: 50px;
height: 50px;
color: #666666;
}
.wh_item_date,
.wh_chose_day {
width: 50px;
height: 50px;
border-radius: 0;
background: #FFFFFF;
font-size: 20px;
font-weight: bold;
color: #000000;
}
.wh_other_dayhide {
color: #CCCCCC;
}
.wh_isMark {
position: relative;
}
.wh_isMark::after {
position: absolute;
bottom: 4px;
content: '';
width: 10px;
height: 10px;
border-radius: 50%;
background: #D02F1E;
}
.wh_isToday {
width: 50px;
height: 50px;
border-radius: 0;
background: #2575fa;
color: #FFFFFF;
}
}
.wh_content_item:nth-child(6),
.wh_content_item:nth-child(7) {
.wh_top_tag {
color: #D02F1E;
}
}
}
}
}
.title { .title {
> span:nth-child(1) { > span:nth-child(1) {
margin-right: 16px; margin-right: 16px;
...@@ -640,7 +756,7 @@ ...@@ -640,7 +756,7 @@
padding-bottom: 4px; padding-bottom: 4px;
} }
.list { .list {
width: 944px; width: 750px;
span:nth-child(1) { span:nth-child(1) {
max-width: 830px; max-width: 830px;
margin-top: 32px; margin-top: 32px;
...@@ -652,7 +768,7 @@ ...@@ -652,7 +768,7 @@
} }
} }
.nothing { .nothing {
width: 994px; width: 750px;
height: 200px; height: 200px;
img { img {
height: 100px; height: 100px;
...@@ -660,6 +776,9 @@ ...@@ -660,6 +776,9 @@
} }
} }
.home-signin { .home-signin {
position: absolute;
top: 60px;
right: 0;
width: 206px; width: 206px;
height: 300px; height: 300px;
padding: 24px 0; padding: 24px 0;
......
...@@ -32,10 +32,12 @@ ...@@ -32,10 +32,12 @@
</div> </div>
<div class="row align-c"> <div class="row align-c">
<span class="global-color-green">{{item.isWin ? '成交' : ''}}</span> <span class="global-color-green">{{item.isWin ? '成交' : ''}}</span>
<span v-if="item.projectState === 1" class="project-state">竞标中</span> <span v-if="item.projectState === 1" class="project-state">待竞价</span>
<span v-if="item.projectState === 2" class="project-state">竞标中</span> <span v-if="item.projectState === 2" class="project-state">竞标中</span>
<span v-if="item.projectState === 3" class="project-state">已截止</span> <span v-if="item.projectState === 3" class="project-state">已截止</span>
<span v-if="item.projectState === 4" class="project-state">已结束</span> <span v-if="item.projectState === 4" class="project-state">已结束</span>
<span v-if="item.projectState === 5" class="project-state">已暂停</span>
<span v-if="item.projectState === 6" class="project-state">已终止</span>
</div> </div>
</div> </div>
<div class="project-record row con-b align-c"> <div class="project-record row con-b align-c">
......
...@@ -68,9 +68,12 @@ ...@@ -68,9 +68,12 @@
<div class="bid-item-top col con-b"> <div class="bid-item-top col con-b">
<div class="row con-b"> <div class="row con-b">
<span class="global-cursor" @click="onDetail(item)">{{item.projectName}}</span> <span class="global-cursor" @click="onDetail(item)">{{item.projectName}}</span>
<span v-if="item.projectState === 1" class="global-color-yellow">待竞价</span>
<span v-if="item.projectState === 2" class="global-color-yellow">竞价中</span> <span v-if="item.projectState === 2" class="global-color-yellow">竞价中</span>
<span v-if="item.projectState === 3" class="global-color-grey">已截止</span> <span v-if="item.projectState === 3" class="global-color-grey">已截止</span>
<span v-if="item.projectState === 4" class="global-color-grey">已结束</span> <span v-if="item.projectState === 4" class="global-color-grey">已结束</span>
<span v-if="item.projectState === 5" class="global-color-grey">已暂停</span>
<span v-if="item.projectState === 6" class="global-color-grey">已终止</span>
</div> </div>
<div class="row con-b align-c"> <div class="row con-b align-c">
<span class="global-color-grey">{{item.projectNumber}}</span> <span class="global-color-grey">{{item.projectNumber}}</span>
......
...@@ -20,7 +20,6 @@ let output = function (thisVue, id, type) { ...@@ -20,7 +20,6 @@ let output = function (thisVue, id, type) {
// 竞价报价公告 // 竞价报价公告
if (type === 0) { if (type === 0) {
console.log('set quoteNotice')
funcMap = [{ text: '工作台首页', redirect: '/supplier' }, { text: '我竞价的项目', redirect: '/supplier/auction' }, { text: '竞价项目详情', redirect: null }] funcMap = [{ text: '工作台首页', redirect: '/supplier' }, { text: '我竞价的项目', redirect: '/supplier/auction' }, { text: '竞价项目详情', redirect: null }]
funcRequestDetail = iRequest.request(iHost.base + 'bid/zBiddingProject/getApiDetail',{ 'id': id } , 'json', 'post') funcRequestDetail = iRequest.request(iHost.base + 'bid/zBiddingProject/getApiDetail',{ 'id': id } , 'json', 'post')
...@@ -44,6 +43,7 @@ let output = function (thisVue, id, type) { ...@@ -44,6 +43,7 @@ let output = function (thisVue, id, type) {
'filePrice': '', // 文件价格 'filePrice': '', // 文件价格
'state': Number(funcResponse.state),
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间
'timeBegin': iMiment(funcResponse.biddingBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间 'timeBegin': iMiment(funcResponse.biddingBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间
'timeEnd': iMiment(funcResponse.biddingEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间 'timeEnd': iMiment(funcResponse.biddingEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间
...@@ -109,6 +109,9 @@ let output = function (thisVue, id, type) { ...@@ -109,6 +109,9 @@ let output = function (thisVue, id, type) {
} }
funcPackage.push(funcItem) funcPackage.push(funcItem)
} }
console.log(funcPackage)
thisVue.$store.commit('componentContract', funcPackage) thisVue.$store.commit('componentContract', funcPackage)
...@@ -124,6 +127,7 @@ let output = function (thisVue, id, type) { ...@@ -124,6 +127,7 @@ let output = function (thisVue, id, type) {
], ],
isBuy: false, isBuy: false,
isSignIn: false, isSignIn: false,
state: funcProject.state
} }
thisVue.$store.commit('componentProgress', funcProgress) thisVue.$store.commit('componentProgress', funcProgress)
...@@ -167,7 +171,6 @@ let output = function (thisVue, id, type) { ...@@ -167,7 +171,6 @@ let output = function (thisVue, id, type) {
// 招标采购公告 // 招标采购公告
if (type === 2) { if (type === 2) {
console.log('set bidNotice')
funcMap = [{ text: '工作台首页', redirect: '/supplier' }, { text: '我投标的项目', redirect: '/supplier/bidding' }, { text: '投标项目详情', redirect: null }] funcMap = [{ text: '工作台首页', redirect: '/supplier' }, { text: '我投标的项目', redirect: '/supplier/bidding' }, { text: '投标项目详情', redirect: null }]
funcRequestDetail = iRequest.request(iHost.base + 'bid/zTenderNotice/getApiDetail', { 'id': id } , 'json', 'post') funcRequestDetail = iRequest.request(iHost.base + 'bid/zTenderNotice/getApiDetail', { 'id': id } , 'json', 'post')
...@@ -317,7 +320,6 @@ let output = function (thisVue, id, type) { ...@@ -317,7 +320,6 @@ let output = function (thisVue, id, type) {
// 资格预审公告 // 资格预审公告
if (type === 3) { if (type === 3) {
console.log('set qualificationNotice')
funcMap = [{ text: '招标公告', redirect: '/bid' }, { text: '资格预审公告', redirect: null }] funcMap = [{ text: '招标公告', redirect: '/bid' }, { text: '资格预审公告', redirect: null }]
funcRequestDetail = iRequest.request(iHost.base + 'bid/zTenderNotice/getApiDetail', { 'id': id } , 'json', 'post') funcRequestDetail = iRequest.request(iHost.base + 'bid/zTenderNotice/getApiDetail', { 'id': id } , 'json', 'post')
......
...@@ -14,10 +14,13 @@ ...@@ -14,10 +14,13 @@
<!-- 项目进度 - 竞价 --> <!-- 项目进度 - 竞价 -->
<div v-if="[0].indexOf(noticeType) >= 0" class="info-operation"> <div v-if="[0].indexOf(noticeType) >= 0" class="info-operation">
<span v-if="projectState === 2">竞价中</span> <span v-if="componentProject.state === 1">待竞价</span>
<span v-if="projectState === 3">已截止</span> <span v-if="componentProject.state === 2">竞价中</span>
<span v-if="projectState === 4">已结束</span> <span v-if="componentProject.state === 3">已截止</span>
<button v-if="projectState === 2" @click="onQuote()">我要报价</button> <span v-if="componentProject.state === 4">已结束</span>
<span v-if="componentProject.state === 5">已暂停</span>
<span v-if="componentProject.state === 6">已终止</span>
<button v-if="componentProject.state === 2" @click="onQuote()">我要报价</button>
<el-dropdown placement="bottom-start"> <el-dropdown placement="bottom-start">
<button>相关公告</button> <button>相关公告</button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
...@@ -74,7 +77,7 @@ ...@@ -74,7 +77,7 @@
<el-table-column align="center"> <el-table-column align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="global-cursor row"> <div class="global-cursor row">
<span v-if="!scope.row.isChild" class="global-color-blue" @click="onQueryQuoteRecord(scope.row, scope.$index)">报价记录</span> <span v-if="!scope.row.isChild && !([5, 6].indexOf(componentProject.state) >= 0)" class="global-color-blue" @click="onQueryQuoteRecord(scope.row, scope.$index)">报价记录</span>
<span v-if="scope.row.isWin" class="is-win global-color-green">成交</span> <span v-if="scope.row.isWin" class="is-win global-color-green">成交</span>
</div> </div>
</template> </template>
...@@ -130,7 +133,7 @@ ...@@ -130,7 +133,7 @@
</div> </div>
<el-table :data="componentContract" key="select" stripe :header-cell-style="tableHeaderStyle" :row-class-name="setChildHide" @selection-change="selectionQuote"> <el-table :data="componentContract" key="select" stripe :header-cell-style="tableHeaderStyle" :row-class-name="setChildHide" @selection-change="selectionQuote">
<el-table-column type="selection" width="60" align="center" :selectable="onTableUnableSelection"></el-table-column> <el-table-column type="selection" width="60" align="center" :selectable="onTableUnableSelection"></el-table-column>
<el-table-column type="index" label="合同包" width="120" align="center"></el-table-column> <el-table-column prop="index" label="合同包" width="120" align="center"></el-table-column>
<el-table-column prop="object" label="标的" min-width="100"></el-table-column> <el-table-column prop="object" label="标的" min-width="100"></el-table-column>
<el-table-column prop="requirement" label="参数要求" min-width="230"></el-table-column> <el-table-column prop="requirement" label="参数要求" min-width="230"></el-table-column>
<el-table-column prop="quantity" label="数量" min-width="120" align="center"></el-table-column> <el-table-column prop="quantity" label="数量" min-width="120" align="center"></el-table-column>
...@@ -400,7 +403,7 @@ ...@@ -400,7 +403,7 @@
this.componentContract = funcPackage this.componentContract = funcPackage
this.componentNotice = funcOther this.componentNotice = funcOther
console.log(this.componentProject) console.log('this.componentProject', this.componentProject)
// 公告状态设置 // 公告状态设置
let funcIndex = 0 let funcIndex = 0
......
...@@ -19,7 +19,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -19,7 +19,6 @@ let output = function (thisVue, id, type, isPreview) {
// 竞价报价公告 // 竞价报价公告
if (type === 0) { if (type === 0) {
console.log('set quoteNotice')
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '竞价公告', redirect: null }] funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '竞价公告', redirect: null }]
let funcParam = { let funcParam = {
...@@ -49,7 +48,8 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -49,7 +48,8 @@ let output = function (thisVue, id, type, isPreview) {
'filePrice': '', // 文件价格 'filePrice': '', // 文件价格
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'state': Number(funcResponse.state),
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': iMiment(funcResponse.biddingBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间 'timeBegin': iMiment(funcResponse.biddingBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间
'timeEnd': iMiment(funcResponse.biddingEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间 'timeEnd': iMiment(funcResponse.biddingEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间
'timeClose': '', // 截止时间 'timeClose': '', // 截止时间
...@@ -129,6 +129,7 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -129,6 +129,7 @@ let output = function (thisVue, id, type, isPreview) {
], ],
isBuy: false, isBuy: false,
isSignIn: false, isSignIn: false,
state: funcProject.state
} }
thisVue.$store.commit('componentProgress', funcProgress) thisVue.$store.commit('componentProgress', funcProgress)
...@@ -194,7 +195,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -194,7 +195,6 @@ let output = function (thisVue, id, type, isPreview) {
// 竞价结果公告 // 竞价结果公告
if (type === 1) { if (type === 1) {
console.log('set quoteResult')
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '竞价结果公告', redirect: null }] funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '竞价结果公告', redirect: null }]
let funcParam = { let funcParam = {
...@@ -224,7 +224,7 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -224,7 +224,7 @@ let output = function (thisVue, id, type, isPreview) {
'filePrice': '', // 文件价格 'filePrice': '', // 文件价格
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': iMiment(funcResponse.biddingBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间 'timeBegin': iMiment(funcResponse.biddingBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间
'timeEnd': iMiment(funcResponse.biddingEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间 'timeEnd': iMiment(funcResponse.biddingEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间
'timeClose': '', // 截止时间 'timeClose': '', // 截止时间
...@@ -340,7 +340,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -340,7 +340,6 @@ let output = function (thisVue, id, type, isPreview) {
// 招标采购公告 // 招标采购公告
if (type === 2) { if (type === 2) {
console.log('set bidNotice')
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '招标采购公告', redirect: null }] funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '招标采购公告', redirect: null }]
let funcParam = { let funcParam = {
...@@ -367,7 +366,7 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -367,7 +366,7 @@ let output = function (thisVue, id, type, isPreview) {
'buyPhone': funcResponse.phone, // 采购电话 'buyPhone': funcResponse.phone, // 采购电话
'address': funcResponse.area.replace(/\//g, '') + funcResponse.address, // 开标地点 'address': funcResponse.area.replace(/\//g, '') + funcResponse.address, // 开标地点
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': iMiment(funcResponse.receiveBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间 'timeBegin': iMiment(funcResponse.receiveBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间
'timeEnd': iMiment(funcResponse.receiveEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间 'timeEnd': iMiment(funcResponse.receiveEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间
'timeClose': iMiment(funcResponse.applyEndTime).format('YYYY年MM月DD日 hh:mm'), // 截止时间 'timeClose': iMiment(funcResponse.applyEndTime).format('YYYY年MM月DD日 hh:mm'), // 截止时间
...@@ -501,7 +500,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -501,7 +500,6 @@ let output = function (thisVue, id, type, isPreview) {
// 资格预审公告 // 资格预审公告
if (type === 3) { if (type === 3) {
console.log('set qualificationNotice')
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '资格预审公告', redirect: null }] funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '资格预审公告', redirect: null }]
let funcParam = { let funcParam = {
...@@ -528,7 +526,7 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -528,7 +526,7 @@ let output = function (thisVue, id, type, isPreview) {
'buyPhone': funcResponse.phone, // 采购电话 'buyPhone': funcResponse.phone, // 采购电话
'address': funcResponse.area.replace(/\//g, '') + funcResponse.address, // 开标地点 'address': funcResponse.area.replace(/\//g, '') + funcResponse.address, // 开标地点
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': iMiment(funcResponse.receiveBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间 'timeBegin': iMiment(funcResponse.receiveBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间
'timeEnd': iMiment(funcResponse.receiveEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间 'timeEnd': iMiment(funcResponse.receiveEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间
'timeClose': iMiment(funcResponse.applyEndTime).format('YYYY年MM月DD日 hh:mm'), // 截止时间 'timeClose': iMiment(funcResponse.applyEndTime).format('YYYY年MM月DD日 hh:mm'), // 截止时间
...@@ -544,8 +542,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -544,8 +542,6 @@ let output = function (thisVue, id, type, isPreview) {
} }
thisVue.$store.commit('componentProject', funcProject) thisVue.$store.commit('componentProject', funcProject)
let funcRawData let funcRawData
if (funcProject.isPackage) { if (funcProject.isPackage) {
// 多个合同 // 多个合同
...@@ -663,7 +659,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -663,7 +659,6 @@ let output = function (thisVue, id, type, isPreview) {
// 变更澄清公告 // 变更澄清公告
if (type === 4) { if (type === 4) {
console.log('set changeNotice')
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '变更澄清公告', redirect: null }] funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '变更澄清公告', redirect: null }]
let funcParam = { let funcParam = {
...@@ -690,7 +685,7 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -690,7 +685,7 @@ let output = function (thisVue, id, type, isPreview) {
'buyPhone': funcResponse.phone, // 采购电话 'buyPhone': funcResponse.phone, // 采购电话
'address': '', // 开标地点 'address': '', // 开标地点
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': '', // 开始时间 'timeBegin': '', // 开始时间
'timeEnd': '', // 结束时间 'timeEnd': '', // 结束时间
'timeClose': '', // 截止时间 'timeClose': '', // 截止时间
...@@ -817,7 +812,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -817,7 +812,6 @@ let output = function (thisVue, id, type, isPreview) {
// 中标候选公告 // 中标候选公告
if (type === 5) { if (type === 5) {
console.log('set winningNotice')
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '中标候选公告', redirect: null }] funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '中标候选公告', redirect: null }]
let funcParam = { let funcParam = {
...@@ -844,7 +838,7 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -844,7 +838,7 @@ let output = function (thisVue, id, type, isPreview) {
'buyPhone': funcResponse.phone, // 采购电话 'buyPhone': funcResponse.phone, // 采购电话
'address': '', // 开标地点 'address': '', // 开标地点
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': '', // 开始时间 'timeBegin': '', // 开始时间
'timeEnd': '', // 结束时间 'timeEnd': '', // 结束时间
'timeClose': '', // 截止时间 'timeClose': '', // 截止时间
...@@ -928,7 +922,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -928,7 +922,6 @@ let output = function (thisVue, id, type, isPreview) {
// 结果公告 // 结果公告
if (type === 6) { if (type === 6) {
console.log('set resultNotice')
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '结果公告', redirect: null }] funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '结果公告', redirect: null }]
let funcParam = { let funcParam = {
...@@ -955,7 +948,7 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -955,7 +948,7 @@ let output = function (thisVue, id, type, isPreview) {
'buyPhone': funcResponse.phone, // 采购电话 'buyPhone': funcResponse.phone, // 采购电话
'address': '', // 开标地点 'address': '', // 开标地点
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': '', // 开始时间 'timeBegin': '', // 开始时间
'timeEnd': '', // 结束时间 'timeEnd': '', // 结束时间
'timeClose': '', // 截止时间 'timeClose': '', // 截止时间
...@@ -1105,7 +1098,6 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -1105,7 +1098,6 @@ let output = function (thisVue, id, type, isPreview) {
// 其他公告 // 其他公告
if (type === 9) { if (type === 9) {
console.log('set resultNotice')
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '其他公告', redirect: null }] funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '其他公告', redirect: null }]
let funcParam = { let funcParam = {
...@@ -1132,7 +1124,7 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -1132,7 +1124,7 @@ let output = function (thisVue, id, type, isPreview) {
'buyPhone': funcResponse.phone, // 采购电话 'buyPhone': funcResponse.phone, // 采购电话
'address': '', // 开标地点 'address': '', // 开标地点
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日 hh:mm'), // 发布时间 'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': '', // 开始时间 'timeBegin': '', // 开始时间
'timeEnd': '', // 结束时间 'timeEnd': '', // 结束时间
'timeClose': '', // 截止时间 'timeClose': '', // 截止时间
...@@ -1204,6 +1196,200 @@ let output = function (thisVue, id, type, isPreview) { ...@@ -1204,6 +1196,200 @@ let output = function (thisVue, id, type, isPreview) {
console.log(funcError) console.log(funcError)
}) })
} }
// 竞价变更澄清公告
if (type === 10) {
funcMap = [ { text: '招标公告', redirect: '/bid' }, { text: '竞价变更澄清公告', redirect: null }]
let funcParam = {
'id': id
}
// 预览公告独有字段
if (isPreview) funcParam.preview = 1
funcRequestDetail = iRequest.request(iHost.base + 'bid/zBiddingChangeNotice/getApiDetail', funcParam , 'json', 'post')
.then((funcResponse) => {
// 项目信息
funcProject = {
'noticeId': id,
'noticeType': type,
'noticeTitle': funcResponse.title, // 公告标题
'projectId': funcResponse.biddingProjectId, // 项目标识
'projectName': funcResponse.projectName, // 项目名称
'projectIdentity': funcResponse.projectNo, // 项目编号
'buyWay': '', // 采购方式
'buyCompany': funcResponse.company, // 采购公司
'buyCompanyType': funcResponse.companyType, // 采购公司类型
'buyLiaison': funcResponse.companyContactor, // 采购联系人
'buyPhone': funcResponse.companyContact, // 采购电话
'address': '', // 开标地点
'filePrice': '', // 文件价格
'timeRelease': iMiment(funcResponse.releaseTime).format('YYYY年MM月DD日'), // 发布时间
'timeBegin': iMiment(funcResponse.biddingBeginTime).format('YYYY年MM月DD日 hh:mm'), // 开始时间
'timeEnd': iMiment(funcResponse.biddingEndTime).format('YYYY年MM月DD日 hh:mm'), // 结束时间
'timeClose': '', // 截止时间
'timeTimestampRelease': iMiment(funcResponse.releaseTime).stamp(),
'timeTimestampBegin': iMiment(funcResponse.biddingBeginTime).stamp(),
'timeTimestampEnd': iMiment(funcResponse.biddingEndTime).stamp(),
'timeTimestampClose': 1577808000000,
'contentTitle': '公告内容',
'contentHtml': funcResponse.content,
'isOnline': false,
'isPackage': false,
'isOnline': false,
// 此处尝试性获取字段,如果字段不存在,默认为 false
'isPause': funcResponse.isPause ? funcResponse.isPause : false, // 是否暂停
'isRecover': funcResponse.isRecover ? funcResponse.isRecover : false, // 是否恢复
'isTermination': funcResponse.isTermination ? funcResponse.isTermination : false, // 是否终止
'isChangeTime': funcResponse.isChangeTime ? funcResponse.isChangeTime : false, // 是否变更竞价时间
'isChangePackage': funcResponse.isChangePackage ? funcResponse.isChangePackage : false, // 是否变更竞价标的
}
// 暂停状态
if (Object.prototype.toString.call(funcProject.isPause) !== '[object Boolean]') {
funcProject.isPause = Number(funcProject.isPause) === 0 ? false : true
}
// 恢复状态
if (Object.prototype.toString.call(funcProject.isRecover) !== '[object Boolean]') {
funcProject.isRecover = Number(funcProject.isRecover) === 0 ? false : true
}
// 终止状态
if (Object.prototype.toString.call(funcProject.isTermination) !== '[object Boolean]') {
funcProject.isTermination = Number(funcProject.isTermination) === 0 ? false : true
}
// 竞价时间
if (Object.prototype.toString.call(funcProject.isChangeTime) !== '[object Boolean]') {
funcProject.isChangeTime = Number(funcProject.isChangeTime) === 0 ? false : true
if (funcProject.isChangeTime) {
funcProject.timeBegin = iMiment(funcResponse.changeBiddingBeginTime).format('YYYY年MM月DD日 hh:mm')
funcProject.timeEnd = iMiment(funcResponse.changeBiddingEndTime).format('YYYY年MM月DD日 hh:mm')
funcProject.timeTimestampBegin = iMiment(funcResponse.changeBiddingBeginTime).stamp()
funcProject.timeTimestampEnd = iMiment(funcResponse.changeBiddingEndTime).stamp()
}
}
// 竞价内容
if (Object.prototype.toString.call(funcProject.isChangePackage) !== '[object Boolean]') {
funcProject.isChangePackage = Number(funcProject.isChangePackage) === 0 ? false : true
if (funcProject.isChangePackage) {
funcProject.isPackage = true
}
}
console.log('funcProject')
console.log(funcProject)
thisVue.$store.commit('componentProject', funcProject)
let funcRawData
if (funcProject.isPackage) {
funcRawData = funcResponse.packages
for (let i = 0, len = funcRawData.length; i < len; i++) {
let funcItem = {
'index': i + 1, // 序号
'id': funcRawData[i].biddingPackageId, // 标识
'object': funcRawData[i].name, // 标的
'budget': funcRawData[i].fixedPrice, // 预算金额
'quantity': funcRawData[i].num, // 标的数量
'requirement': funcRawData[i].requirement, // 竞价参数要求
}
if (funcRawData[i].company) {
funcItem.resultName = funcRawData[i].company
} else {
funcItem.resultName = '流标'
}
if (funcRawData[i].price && funcRawData[i].price !== 0) {
funcItem.resultPrice = funcRawData[i].price
} else {
funcItem.resultPrice = 0
}
funcPackage.push(funcItem)
}
thisVue.$store.commit('componentContract', funcPackage)
}
/*
funcProgress = {
text: ['发布时间', '竞价时间', '公布结果'],
timestamp: [
funcProject.timeTimestampRelease,
funcProject.timeTimestampBegin,
funcProject.timeTimestampEnd,
funcProject.timeTimestampClose,
],
isBuy: false,
isSignIn: false,
}
thisVue.$store.commit('componentProgress', funcProgress)
*/
if (funcResponse.agencyInfo) {
funcRawData = funcResponse.agencyInfo
funcAgency = {
'id': funcRawData.agencyInfoId,
'name': funcRawData.companyName,
'address': funcRawData.area.replace(/\//g, '') + funcRawData.address,
'phone': funcRawData.phone,
'liaison': funcRawData.contactor,
'email': funcRawData.email
}
thisVue.$store.commit('componentAgency', funcAgency)
}
funcRawData = funcResponse.file
for (let i = 0, len = funcRawData.length; i < len; i++) {
let funcItem = {
'name': funcRawData[i].name,
'url': funcRawData[i].url
}
funcFile.push(funcItem)
}
thisVue.$store.commit('componentFile', funcFile)
})
.catch((funcError) => {})
// 预览公告不查询相关公告
if (!isPreview) {
funcRequestOther = iRequest.request(iHost.base + 'bid/zBiddingNotice/getApiBiddingRelevantNotices', { 'noticeId': id, 'noticeType': 9, 'isProject': 1 }, 'json', 'post')
.then((funcResponse) => {
let funcRawData = funcResponse.list
for (let i = 0, len = funcRawData.length; i < len; i++) {
let funcItem = {
'id': funcRawData[i].id,
'type': iDictionary.noticeType.mapping[iDictionary.noticeType.raw.indexOf(Number(funcRawData[i].noticeType))],
'title': funcRawData[i].title,
}
funcOther.push(funcItem)
}
thisVue.$store.commit('componentNotice', funcOther)
})
.catch((funcError) => {})
} else {
funcRequestOther = null
}
Promise.all([ funcRequestDetail, funcRequestOther ])
.then(() => {
thisVue.noticeData(funcMap, funcProgress, funcProject, funcPackage, funcAgency, funcFile, funcOther)
})
.catch((funcError) => {
console.log(funcError)
})
}
} }
export default output export default output
\ No newline at end of file
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</div> </div>
<!-- 项目信息 --> <!-- 项目信息 -->
<div v-if="[0, 1, 2, 3, 4, 5, 6, 7, 9].indexOf(noticeType) >= 0" class="info-item"> <div v-if="[0, 1, 2, 3, 4, 5, 6, 7, 9, 10].indexOf(noticeType) >= 0" class="info-item">
<div class="title title-decorate row align-c"> <div class="title title-decorate row align-c">
<span>项目信息</span> <span>项目信息</span>
</div> </div>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</div> </div>
</div> </div>
<!-- 变更信息 --> <!-- 招标变更信息 -->
<div v-if="[4].indexOf(noticeType) >= 0" class="info-item"> <div v-if="[4].indexOf(noticeType) >= 0" class="info-item">
<div class="title title-decorate row align-c"> <div class="title title-decorate row align-c">
<span>变更信息</span> <span>变更信息</span>
...@@ -118,6 +118,30 @@ ...@@ -118,6 +118,30 @@
</div> </div>
</div> </div>
<!-- 竞价变更信息 -->
<div v-if="[10].indexOf(noticeType) >= 0 && (componentProject.isChangeTime || componentProject.isChangePackage)" class="info-item">
<div class="title title-decorate row align-c">
<span>变更信息</span>
</div>
<div v-if="componentProject.isChangeTime" class="change col">
<span>{{'更改竞价时间:' + componentProject.timeBegin + ' - ' + componentProject.timeEnd}}</span>
</div>
<div v-if="componentProject.isPackage" class="change col">
<div v-if="componentContract.length > 0" class="row align-s">
<span>更改竞价标的:</span>
<el-table :data="componentContract" stripe :header-cell-style="tableHeaderStyle">
<el-table-column prop="index" label="合同包" width="160" align="center"></el-table-column>
<el-table-column prop="object" label="标的" min-width="290"></el-table-column>
<el-table-column prop="requirement" label="参数要求" min-width="180"></el-table-column>
<el-table-column prop="quantity" label="数量" min-width="180"></el-table-column>
<el-table-column prop="budget" label="限价" min-width="180"></el-table-column>
</el-table>
</div>
</div>
</div>
<!-- 具体内容 --> <!-- 具体内容 -->
<div class="info-item"> <div class="info-item">
<div class="title title-decorate row align-c"> <div class="title title-decorate row align-c">
...@@ -127,7 +151,7 @@ ...@@ -127,7 +151,7 @@
</div> </div>
<!-- 代理机构 --> <!-- 代理机构 -->
<div v-if="[0, 1, 2, 3, 4, 5, 6, 9].indexOf(noticeType) >= 0 && JSON.stringify(componentAgency) !== '{}'" class="info-item"> <div v-if="[0, 1, 2, 3, 4, 5, 6, 9, 10].indexOf(noticeType) >= 0 && JSON.stringify(componentAgency) !== '{}'" class="info-item">
<div class="title title-decorate row align-c"> <div class="title title-decorate row align-c">
<span>招标代理机构</span> <span>招标代理机构</span>
</div> </div>
...@@ -135,7 +159,7 @@ ...@@ -135,7 +159,7 @@
</div> </div>
<!-- 附件下载 --> <!-- 附件下载 -->
<div v-if="[0, 1, 2, 3, 4, 5, 6, 7, 9].indexOf(noticeType) >= 0" class="info-item"> <div v-if="[0, 1, 2, 3, 4, 5, 6, 7, 9, 10].indexOf(noticeType) >= 0" class="info-item">
<noticeFile></noticeFile> <noticeFile></noticeFile>
</div> </div>
......
...@@ -412,7 +412,7 @@ ...@@ -412,7 +412,7 @@
.progress { .progress {
position: relative; position: relative;
width: 100%; width: 100%;
margin-bottom: 40px; margin: 20px 0 40px 0;
.node { .node {
flex-grow: 1; flex-grow: 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment