Commit 7b7f1087 by 严立

竞价变更公告

parent b75bec94
......@@ -14566,6 +14566,11 @@
"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": {
"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",
......
......@@ -16,6 +16,7 @@
"element-ui": "^2.13.2",
"miment": "0.0.9",
"vue": "^2.6.11",
"vue-calendar-component": "^2.8.2",
"vue-router": "^3.3.4"
},
"devDependencies": {
......
......@@ -10,9 +10,10 @@ let output = {
// 5 - 中标候选
// 6 - 招标结果
// 9 - 其他公告
// 10 - 竞价变更公告
noticeType: {
raw: ['', 1, 2, 5, 3, 4, 7, 8, 6],
mapping: ['', 2, 3, 4, 5, 6, 0, 1, 9],
raw: ['', 1, 2, 5, 3, 4, 7, 9, 8, 6],
mapping: ['', 2, 3, 4, 5, 6, 0, 10, 1, 9],
}
}
......
let output = {
// 开发路径
// base: 'http://bid-server.meiqicloud.com/',
// resources: 'http://bid-web.meiqicloud.com/',
// agentSignIn: 'http://bid-vue.meiqicloud.com/'
// 测试环境
// base: '/Api/',
// resources: 'http://bid-web.meiqicloud.com',
// agentSignIn: 'http://bid-vue.meiqicloud.com/'
base: 'http://bid-server.meiqicloud.com/', // 开发路径
// base: '/Api/', // 部署路径
resources: 'http://bid-web.meiqicloud.com',
agentSignIn: 'http://bid-vue.meiqicloud.com/'
// 正式环境
base: '/Api/',
resources: 'https://www.fjbidding.com',
agentSignIn: 'https://www.fjbidding.com/admin/'
// base: '/Api/',
// resources: 'https://www.fjbidding.com',
// agentSignIn: 'https://www.fjbidding.com/admin/'
}
output.uploadFile = output.base + 'bid/common/webupload/upload'
......
......@@ -36,6 +36,7 @@
computed: {
componentAgency: function () {
console.log('this.$store.state.componentAgency', this.$store.state.componentAgency)
return this.$store.state.componentAgency
},
},
......
......@@ -74,13 +74,14 @@
<div class="col con-c align-c">
<img v-if="componentProject.noticeType === 0" class="operate-img" src="../assets/notice-bitton.png" alt="">
<div v-if="operateText !== ''" class="operate-button">
<button v-if="progressState === 2" class="global-enable" @click="onOffer()">立即报价</button>
<button v-if="progressState === 3" class="global-disable" disabled>报价已结束</button>
<button v-if="progressState === 4" class="global-disable" disabled>报价已结束</button>
<button v-if="[2].indexOf(componentProgress.state) >= 0" class="global-enable" @click="onOffer()">立即报价</button>
<button v-if="[3, 4].indexOf(componentProgress.state) >= 0" 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 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 === 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>
......@@ -113,6 +114,7 @@
return this.$store.state.componentProject
},
componentProgress: function () {
console.log('this.$store.state.componentProgress', this.$store.state.componentProgress)
return this.$store.state.componentProgress
}
},
......@@ -128,7 +130,6 @@
componentProgress: {
handler: function (funcNewValue, funcOldValue) {
if (JSON.stringify(funcNewValue) !== '{}') {
console.log('mark', funcNewValue)
this.setProgressTime(funcNewValue)
this.setOperate(funcNewValue)
}
......@@ -157,7 +158,7 @@
this.progressNode = [
{
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],
......@@ -230,7 +231,6 @@
* @returns
*/
onDocument: function () {
console.log('onDocument')
// 公告为预览状态禁止操作
if (this.$route.query.preview) return
this.$emit('document')
......
......@@ -318,6 +318,38 @@
<span>{{componentProject.buyPhone}}</span>
</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>
</template>
......
......@@ -17,6 +17,10 @@
<!-- 今日开标 -->
<div class="new-bid row con-c">
<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 class="row align-e">
<span class="title">今日开标</span>
......@@ -214,6 +218,7 @@
<script>
import iMiment from 'miment'
import iCalendar from 'vue-calendar-component';
import iHost from '@/common/js/host.js'
import iRequest from '@/common/js/request/request.js'
import iTime from '@/common/js/time.js'
......@@ -223,6 +228,7 @@
import iFooter from '@/components/currency-footer.vue'
export default {
components: {
calendar: iCalendar,
componentHeader: iHeader,
componentNavigation: iNavigation,
componentFooter: iFooter
......@@ -623,9 +629,119 @@
}
}
.new-bid {
position: relative;
width: 100%;
padding: 50px 0;
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 {
> span:nth-child(1) {
margin-right: 16px;
......@@ -640,7 +756,7 @@
padding-bottom: 4px;
}
.list {
width: 944px;
width: 750px;
span:nth-child(1) {
max-width: 830px;
margin-top: 32px;
......@@ -652,7 +768,7 @@
}
}
.nothing {
width: 994px;
width: 750px;
height: 200px;
img {
height: 100px;
......@@ -660,6 +776,9 @@
}
}
.home-signin {
position: absolute;
top: 60px;
right: 0;
width: 206px;
height: 300px;
padding: 24px 0;
......
......@@ -32,10 +32,12 @@
</div>
<div class="row align-c">
<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 === 3" 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 class="project-record row con-b align-c">
......
......@@ -68,9 +68,12 @@
<div class="bid-item-top col con-b">
<div class="row con-b">
<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 === 3" 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 class="row con-b align-c">
<span class="global-color-grey">{{item.projectNumber}}</span>
......
......@@ -20,7 +20,6 @@ let output = function (thisVue, id, type) {
// 竞价报价公告
if (type === 0) {
console.log('set quoteNotice')
funcMap = [{ text: '工作台首页', redirect: '/supplier' }, { text: '我竞价的项目', redirect: '/supplier/auction' }, { text: '竞价项目详情', redirect: null }]
funcRequestDetail = iRequest.request(iHost.base + 'bid/zBiddingProject/getApiDetail',{ 'id': id } , 'json', 'post')
......@@ -44,6 +43,7 @@ let output = function (thisVue, id, type) {
'filePrice': '', // 文件价格
'state': Number(funcResponse.state),
'timeRelease': iMiment(funcResponse.releaseTime).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'), // 结束时间
......@@ -109,6 +109,9 @@ let output = function (thisVue, id, type) {
}
funcPackage.push(funcItem)
}
console.log(funcPackage)
thisVue.$store.commit('componentContract', funcPackage)
......@@ -124,6 +127,7 @@ let output = function (thisVue, id, type) {
],
isBuy: false,
isSignIn: false,
state: funcProject.state
}
thisVue.$store.commit('componentProgress', funcProgress)
......@@ -167,7 +171,6 @@ let output = function (thisVue, id, type) {
// 招标采购公告
if (type === 2) {
console.log('set bidNotice')
funcMap = [{ text: '工作台首页', redirect: '/supplier' }, { text: '我投标的项目', redirect: '/supplier/bidding' }, { text: '投标项目详情', redirect: null }]
funcRequestDetail = iRequest.request(iHost.base + 'bid/zTenderNotice/getApiDetail', { 'id': id } , 'json', 'post')
......@@ -317,7 +320,6 @@ let output = function (thisVue, id, type) {
// 资格预审公告
if (type === 3) {
console.log('set qualificationNotice')
funcMap = [{ text: '招标公告', redirect: '/bid' }, { text: '资格预审公告', redirect: null }]
funcRequestDetail = iRequest.request(iHost.base + 'bid/zTenderNotice/getApiDetail', { 'id': id } , 'json', 'post')
......
......@@ -14,10 +14,13 @@
<!-- 项目进度 - 竞价 -->
<div v-if="[0].indexOf(noticeType) >= 0" class="info-operation">
<span v-if="projectState === 2">竞价中</span>
<span v-if="projectState === 3">已截止</span>
<span v-if="projectState === 4">已结束</span>
<button v-if="projectState === 2" @click="onQuote()">我要报价</button>
<span v-if="componentProject.state === 1">待竞价</span>
<span v-if="componentProject.state === 2">竞价中</span>
<span v-if="componentProject.state === 3">已截止</span>
<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">
<button>相关公告</button>
<el-dropdown-menu slot="dropdown">
......@@ -74,7 +77,7 @@
<el-table-column align="center">
<template slot-scope="scope">
<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>
</div>
</template>
......@@ -130,7 +133,7 @@
</div>
<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="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="requirement" label="参数要求" min-width="230"></el-table-column>
<el-table-column prop="quantity" label="数量" min-width="120" align="center"></el-table-column>
......@@ -400,7 +403,7 @@
this.componentContract = funcPackage
this.componentNotice = funcOther
console.log(this.componentProject)
console.log('this.componentProject', this.componentProject)
// 公告状态设置
let funcIndex = 0
......
......@@ -26,7 +26,7 @@
</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">
<span>项目信息</span>
</div>
......@@ -93,7 +93,7 @@
</div>
</div>
<!-- 变更信息 -->
<!-- 招标变更信息 -->
<div v-if="[4].indexOf(noticeType) >= 0" class="info-item">
<div class="title title-decorate row align-c">
<span>变更信息</span>
......@@ -118,6 +118,30 @@
</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="title title-decorate row align-c">
......@@ -127,7 +151,7 @@
</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">
<span>招标代理机构</span>
</div>
......@@ -135,7 +159,7 @@
</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>
</div>
......
......@@ -412,7 +412,7 @@
.progress {
position: relative;
width: 100%;
margin-bottom: 40px;
margin: 20px 0 40px 0;
.node {
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