Commit 13d85ab4 authored by zhangdong's avatar zhangdong

工作台卡片和开标大厅提示

parent 1a56804e
...@@ -266,6 +266,14 @@ export function noticeAbortive(id) { ...@@ -266,6 +266,14 @@ export function noticeAbortive(id) {
// 2.1.4 // 2.1.4
//开标大厅 //开标大厅
// 获取参与开标的公司数量
export function getTenderPeople(projectId) {
return request({
url: `open-bid/getTenderPeoples/${projectId}`,
method: 'get',
})
}
// 开标一览表 // 开标一览表
export function openInfo(projectId) { export function openInfo(projectId) {
return request({ return request({
......
...@@ -22,7 +22,8 @@ a { ...@@ -22,7 +22,8 @@ a {
.content-box { .content-box {
min-width: 1000px; min-width: 1200px;
/* width:1670px; */
position: absolute; position: absolute;
left: 250px; left: 250px;
right: 0; right: 0;
......
...@@ -205,7 +205,8 @@ import { ...@@ -205,7 +205,8 @@ import {
openbidFailed, openbidFailed,
bidFaileddetail, bidFaileddetail,
bidFinish, bidFinish,
issueopenInfo issueopenInfo,
getTenderPeople
} from '@api/purchaser/bid'; } from '@api/purchaser/bid';
import dataBreadcrumb from '@components/dataBreadcrumb.vue'; import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import timeDown from '@components/timeDown.vue'; import timeDown from '@components/timeDown.vue';
...@@ -321,6 +322,7 @@ export default { ...@@ -321,6 +322,7 @@ export default {
this.userName = JSON.parse(localStorage.getItem('userInfo')).name; this.userName = JSON.parse(localStorage.getItem('userInfo')).name;
// this.gettimeInfo(); // this.gettimeInfo();
this.getsigndetail(); this.getsigndetail();
this.tips()
this.myId = JSON.parse(localStorage.getItem('userInfo')).userId; this.myId = JSON.parse(localStorage.getItem('userInfo')).userId;
this.pageObj.companyId = localStorage.getItem('companyId'); this.pageObj.companyId = localStorage.getItem('companyId');
this.pageObj.projectId = localStorage.getItem('projectId'); this.pageObj.projectId = localStorage.getItem('projectId');
...@@ -339,6 +341,19 @@ export default { ...@@ -339,6 +341,19 @@ export default {
}, 5000); }, 5000);
}, },
methods: { methods: {
async tips() {
let projectId = localStorage.getItem('projectId');
try {
const { data } = await getTenderPeople(projectId);
this.$alert(`参与的开标公司数量:${data}个`, `开标提示`, {
confirmButtonText: '知道了',
callback: (action) => {
if (action === 'confirm') {
}
}
});
} catch {}
},
openInfo() { openInfo() {
this.isopenInfo = true; this.isopenInfo = true;
this.getopenInfo(); this.getopenInfo();
...@@ -490,20 +505,19 @@ export default { ...@@ -490,20 +505,19 @@ export default {
this.issueTable = data.issueTable; this.issueTable = data.issueTable;
let localTime = new Date().getTime(); let localTime = new Date().getTime();
// 解密时间 // 解密时间
let comparyTime = this.storagedecodeTime - (localTime - data.openBidTime) / 1000; let comparyTime = this.storagedecodeTime - (localTime - data.openBidTime) / 1000;
if(data.issueTable){ if (data.issueTable) {
// 签名时间 // 签名时间
this.signatureTime = this.storagesignatureTime - (localTime - data.openBidTime) / 1000+this.storagedecodeTime; this.signatureTime = this.storagesignatureTime - (localTime - data.openBidTime) / 1000 + this.storagedecodeTime;
} }
if (data.openStatus == 2) { if (data.openStatus == 2) {
console.log(this.storagedecodeTime, '..............'); console.log(this.storagedecodeTime, '..............');
this.decodeTime = comparyTime; this.decodeTime = comparyTime;
if (comparyTime > 0) { if (comparyTime > 0) {
console.log('大于'); console.log('大于');
} else { } else {
console.log('小于'); console.log('小于');
this.endbidButton = true; this.endbidButton = true;
} }
} }
} }
...@@ -588,13 +602,6 @@ export default { ...@@ -588,13 +602,6 @@ export default {
}, },
// 开标提示 // 开标提示
confirm() { confirm() {
// this.$alert('请立即开标', '请立即开标', {
// confirmButtonText: '知道了',
// callback: (action) => {
// if (action === 'confirm') {
// }
// }
// });
this.isOpenbid = true; this.isOpenbid = true;
this.getstartInfo(); this.getstartInfo();
}, },
......
...@@ -3,8 +3,15 @@ ...@@ -3,8 +3,15 @@
<div class="content"> <div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<changeNav :navs="navs"></changeNav> <changeNav :navs="navs"></changeNav>
<h1>项目状态:{{ remark }}</h1> <div class="flex-between" style="width:93%">
<div class="flex state"> <h1>项目状态:{{ remark }}</h1>
<div class="view flex">
<div v-for="(item,index) in views" :key="index" :class="viewIdx==index?'active':''" @click="viewChange(index)">
{{item}}
</div>
</div>
</div>
<div class="flex state" v-show="viewIdx==1">
<ul class="flex-left"> <ul class="flex-left">
<li v-for="(item, index) in states" :key="index" class="flex"> <li v-for="(item, index) in states" :key="index" class="flex">
<div>{{ item.title }}</div> <div>{{ item.title }}</div>
...@@ -15,11 +22,26 @@ ...@@ -15,11 +22,26 @@
</ul> </ul>
</li> </li>
</ul> </ul>
<!-- <ul class="flex"> </div>
<li v-for="(item,index) in states" :key="index">
<el-button type="primary" @click="jump(item.button,item.uri)">{{ item.button }}</el-button> <div class="flex state" v-show="viewIdx==0">
</li> <ul class="flex-left flex">
</ul> --> <img src="@static/images/arrow.png" alt="" class="arrow abs1">
<img src="@static/images/arrow.png" alt="" class="arrow abs2">
<img src="@static/images/arrow.png" alt="" class="arrow abs3">
<img src="@static/images/arrow.png" alt="" class="arrow abs4">
<img src="@static/images/arrow.png" alt="" class="arrow abs5">
<img src="@static/images/arrow.png" alt="" class="arrow abs6">
<img src="@static/images/arrow.png" alt="" class="arrow abs7">
<li v-for="(item, index) in states1" :key="index" class="card" style="margin-bottom:50px">
<div class="card-title">{{ item.title }}</div>
<ul class="inside flex-between card-item">
<li v-for="(mods, index) in item.modulars" :key="index" class="flex-center">
<div :class="mods.bright ? 'active' : ''" @click="jump(mods)">{{ mods.label }}</div>
</li>
</ul>
</li>
</ul>
</div> </div>
<div class="centerButton"> <div class="centerButton">
<el-button type="primary" @click="back">返回</el-button> <el-button type="primary" @click="back">返回</el-button>
...@@ -40,6 +62,8 @@ export default { ...@@ -40,6 +62,8 @@ export default {
}, },
data() { data() {
return { return {
viewIdx:0,
states1:[],
states: [ states: [
{ {
title: '公告', title: '公告',
...@@ -176,7 +200,7 @@ export default { ...@@ -176,7 +200,7 @@ export default {
label: '发布招标结果通知书', label: '发布招标结果通知书',
url: '/purchaser/bid/bidSure/bidResult/list', url: '/purchaser/bid/bidSure/bidResult/list',
bright: false bright: false
}, }
// { // {
// id: 19, // id: 19,
// label: '合同管理', // label: '合同管理',
...@@ -217,10 +241,14 @@ export default { ...@@ -217,10 +241,14 @@ export default {
breads: ['招标管理', '招标项目管理 ', '工作台'], breads: ['招标管理', '招标项目管理 ', '工作台'],
navs: ['工作台'], navs: ['工作台'],
remark: '', remark: '',
buttonList: [] buttonList: [],
views:["卡片试图","列表试图"]
}; };
}, },
methods: { methods: {
viewChange(index){
this.viewIdx=index
},
geturl(url, status) { geturl(url, status) {
let newUrl = ''; let newUrl = '';
if (status == 0) { if (status == 0) {
...@@ -282,7 +310,7 @@ export default { ...@@ -282,7 +310,7 @@ export default {
message.type = 1; message.type = 1;
const { data, msg, code } = await projectConsole(message); const { data, msg, code } = await projectConsole(message);
if (code == 200) { if (code == 200) {
let states=this.states let states = this.states;
for (let item of states) { for (let item of states) {
for (let item1 of item.modulars) { for (let item1 of item.modulars) {
for (let item2 of data) { for (let item2 of data) {
...@@ -303,10 +331,10 @@ export default { ...@@ -303,10 +331,10 @@ export default {
} else if (item2.buttonId == 12 && item2.status == 2) { } else if (item2.buttonId == 12 && item2.status == 2) {
item1.url = '/purchaser/bid/bidSure/see'; item1.url = '/purchaser/bid/bidSure/see';
item1.label = '查看评标'; item1.label = '查看评标';
} else if (item2.buttonId == 15 && item2.status == 2) { } else if (item2.buttonId == 15 && item2.status == 2) {
item1.url = '/purchaser/bid/bidSure/determine?type=2'; item1.url = '/purchaser/bid/bidSure/determine?type=2';
item1.label = '查看中标人'; item1.label = '查看中标人';
}else { } else {
item1.url = this.geturl(item1.url, item2.status); item1.url = this.geturl(item1.url, item2.status);
item1.label = this.getlabel(item1.label, item2.status); item1.label = this.getlabel(item1.label, item2.status);
} }
...@@ -314,8 +342,9 @@ export default { ...@@ -314,8 +342,9 @@ export default {
} }
} }
} }
this.states=states this.states = states;
console.log(this.states) [ states[3], states[5]] = [ states[5], states[3]];
this.states1=states
this.remark = data[0].remark; this.remark = data[0].remark;
} else { } else {
this.$message.error(msg); this.$message.error(msg);
...@@ -340,14 +369,21 @@ export default { ...@@ -340,14 +369,21 @@ export default {
.state > ul { .state > ul {
flex-wrap: wrap; flex-wrap: wrap;
} }
.state > ul > .card {
width: 400px;
height: 260px;
box-sizing: border-box;
padding:0 30px;
margin-bottom:100px;
margin-right: 100px;
}
.state > ul > li { .state > ul > li {
margin-right: 50px; margin-right: 50px;
border: 1px solid #dadada;
border:1px solid #DADADA }
.flex-left{
position: relative;
} }
.flex-left > li { .flex-left > li {
font-weight: bold; font-weight: bold;
font-size: 20px; font-size: 20px;
...@@ -357,8 +393,12 @@ export default { ...@@ -357,8 +393,12 @@ export default {
.flex-left > li > div { .flex-left > li > div {
margin-right: 30px; margin-right: 30px;
padding:0 30px; padding: 0 30px;
border-right: 1px solid #DADADA; border-right: 1px solid #dadada;
}
.flex-left > li > .ca0rd-title {
text-align: center;
border-right: none;
} }
.inside > li > div { .inside > li > div {
...@@ -370,9 +410,80 @@ export default { ...@@ -370,9 +410,80 @@ export default {
border-radius: 2px; border-radius: 2px;
line-height: 35px; line-height: 35px;
height: 35px; height: 35px;
cursor: pointer; cursor: pointer;
} }
.inside > li > .active { .inside > li > .active {
background: #ff5203; background: #ff5203;
} }
.flex-left > li>.card-title{
text-align: center;
border-right: none;
}
.card-item{
flex-wrap: wrap;
}
.card-item>li{
margin-bottom: 15px;
}
.card-item>li>div{
margin-right:0
}
.arrow{
width:60px;
height:60px;
}
.abs1 {
position: absolute;
top: 100px;
left: 420px
}
.abs2 {
position: absolute;
top: 100px;
left: 920px;
}
.abs3 {
position: absolute;
top: 280px;
left: 1170px;
transform: rotate(90deg);
}
.abs4 {
position: absolute;
top: 450px;
left: 420px;
transform: rotate(180deg);
}
.abs5 {
position: absolute;
top: 450px;
left:920px;
transform: rotate(180deg);
}
.abs6 {
position: absolute;
top: 640px;
left: 170px;
transform: rotate(90deg);
}
.abs7 {
position: absolute;
top: 820px;
left: 420px;
}
.view>div{
width:100px;
height:40px;
border:1px solid #000;
line-height: 40px;
font-size:16px;
text-align: center;
}
.view>.active{
background: #ccc;
}
/* 切换 */
</style> </style>
...@@ -3,8 +3,15 @@ ...@@ -3,8 +3,15 @@
<div class="content"> <div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<changeNav :navs="navs"></changeNav> <changeNav :navs="navs"></changeNav>
<h1>项目状态:{{ remark }}</h1> <div class="flex-between" style="width: 93%">
<div class="flex state"> <h1>项目状态:{{ remark }}</h1>
<div class="view flex">
<div v-for="(item, index) in views" :key="index" :class="viewIdx == index ? 'active' : ''" @click="viewChange(index)">
{{ item }}
</div>
</div>
</div>
<div class="flex state" v-show="viewIdx == 1">
<ul class="flex-left"> <ul class="flex-left">
<li v-for="(item, index) in states" :key="index" class="flex"> <li v-for="(item, index) in states" :key="index" class="flex">
<div>{{ item.title }}</div> <div>{{ item.title }}</div>
...@@ -15,11 +22,25 @@ ...@@ -15,11 +22,25 @@
</ul> </ul>
</li> </li>
</ul> </ul>
<!-- <ul class="flex"> </div>
<li v-for="(item, index) in states" :key="index">
<el-button type="primary" @click="jump(item.button, item.uri)">{{ item.button }}</el-button> <div class="flex state" v-show="viewIdx == 0">
<ul class="flex-left flex">
<img src="@static/images/arrow.png" alt="" class="arrow abs1" />
<img src="@static/images/arrow.png" alt="" class="arrow abs2" />
<img src="@static/images/arrow.png" alt="" class="arrow abs3" />
<img src="@static/images/arrow.png" alt="" class="arrow abs4" />
<img src="@static/images/arrow.png" alt="" class="arrow abs5" />
<img src="@static/images/arrow.png" alt="" class="arrow abs6" />
<li v-for="(item, index) in states1" :key="index" class="card" style="margin-bottom:50px">
<div class="card-title">{{ item.title }}</div>
<ul class="inside flex-between card-item">
<li v-for="(mods, index) in item.modulars" :key="index" class="flex-center">
<div :class="mods.bright ? 'active' : ''" @click="jump(mods)">{{ mods.label }}</div>
</li>
</ul>
</li> </li>
</ul> --> </ul>
</div> </div>
<div class="centerButton"> <div class="centerButton">
<el-button type="primary" @click="back">返回</el-button> <el-button type="primary" @click="back">返回</el-button>
...@@ -32,7 +53,7 @@ ...@@ -32,7 +53,7 @@
import { projectConsole } from '@api/purchaser/bid'; import { projectConsole } from '@api/purchaser/bid';
import dataBreadcrumb from '@components/dataBreadcrumb.vue'; import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import changeNav from '@components/changeNav.vue'; import changeNav from '@components/changeNav.vue';
import {getBidOpening} from '@api/common/list.js' import { getBidOpening } from '@api/common/list.js';
export default { export default {
components: { components: {
dataBreadcrumb, dataBreadcrumb,
...@@ -40,6 +61,7 @@ export default { ...@@ -40,6 +61,7 @@ export default {
}, },
data() { data() {
return { return {
states1: '',
breads: ['投标管理', '我参与的项目 ', '工作台'], breads: ['投标管理', '我参与的项目 ', '工作台'],
navs: ['工作台'], navs: ['工作台'],
states: [ states: [
...@@ -78,7 +100,7 @@ export default { ...@@ -78,7 +100,7 @@ export default {
{ {
id: 54, id: 54,
label: '查看招标公告', label: '查看招标公告',
url: '/supply/bid/joinProject/seeInvitation', url: '/supply/bid/joinProject/seeInvitation',
bright: false bright: false
}, },
{ {
...@@ -166,7 +188,7 @@ export default { ...@@ -166,7 +188,7 @@ export default {
label: '招标结果通知书查看', label: '招标结果通知书查看',
url: '/supply/bid/joinProject/bidSure/bidresultAdvice', url: '/supply/bid/joinProject/bidSure/bidresultAdvice',
bright: false bright: false
}, }
// { // {
// id: 65, // id: 65,
// label: '合同管理', // label: '合同管理',
...@@ -193,10 +215,15 @@ export default { ...@@ -193,10 +215,15 @@ export default {
] ]
} }
], ],
remark: '' remark: '',
viewIdx: '',
views: ['卡片试图', '列表试图']
}; };
}, },
methods: { methods: {
viewChange(index) {
this.viewIdx = index;
},
back() { back() {
this.$router.go(-1); this.$router.go(-1);
}, },
...@@ -226,20 +253,19 @@ export default { ...@@ -226,20 +253,19 @@ export default {
async jump(mods) { async jump(mods) {
if (mods.bright) { if (mods.bright) {
/* 参与开标状态 code为200 通行 code为500 返回一个信息 不通行 */ /* 参与开标状态 code为200 通行 code为500 返回一个信息 不通行 */
console.log(JSON.stringify(mods)+'11111111111111'+'2222222222') console.log(JSON.stringify(mods) + '11111111111111' + '2222222222');
let projectId = localStorage.getItem("projectId") let projectId = localStorage.getItem('projectId');
if(mods.id==58){ if (mods.id == 58) {
const {data,code,msg} = await getBidOpening(projectId) const { data, code, msg } = await getBidOpening(projectId);
if(code==200){ if (code == 200) {
this.$message.success(msg) this.$message.success(msg);
this.$router.push(mods.url); this.$router.push(mods.url);
}else{ } else {
this.$message.error(msg) this.$message.error(msg);
} }
} else {
}else{ this.$router.push(mods.url);
this.$router.push(mods.url);
} }
} }
}, },
...@@ -265,11 +291,14 @@ export default { ...@@ -265,11 +291,14 @@ export default {
item1.url = this.geturl(item1.url, item2.status); item1.url = this.geturl(item1.url, item2.status);
item1.label = this.getlabel(item1.label, item2.status); item1.label = this.getlabel(item1.label, item2.status);
} }
} }
} }
} }
} }
let states1 = this.states;
[states1[3], states1[5]] = [states1[5], states1[3]];
this.states1 = states1;
console.log(this.states1);
this.remark = data[0].remark; this.remark = data[0].remark;
} else { } else {
this.$message.error(msg); this.$message.error(msg);
...@@ -294,12 +323,21 @@ export default { ...@@ -294,12 +323,21 @@ export default {
.state > ul { .state > ul {
flex-wrap: wrap; flex-wrap: wrap;
} }
.state > ul > .card {
width: 400px;
height: 260px;
box-sizing: border-box;
padding: 0 30px;
margin-bottom: 100px;
margin-right: 100px;
}
.state > ul > li { .state > ul > li {
margin-right: 50px; margin-right: 50px;
border: 1px solid #dadada;
}
.flex-left {
position: relative;
} }
.flex-left > li { .flex-left > li {
font-weight: bold; font-weight: bold;
font-size: 20px; font-size: 20px;
...@@ -309,8 +347,12 @@ export default { ...@@ -309,8 +347,12 @@ export default {
.flex-left > li > div { .flex-left > li > div {
margin-right: 30px; margin-right: 30px;
padding:0 30px; padding: 0 30px;
border-right: 1px solid #DADADA; border-right: 1px solid #dadada;
}
.flex-left > li > .ca0rd-title {
text-align: center;
border-right: none;
} }
.inside > li > div { .inside > li > div {
...@@ -322,9 +364,76 @@ export default { ...@@ -322,9 +364,76 @@ export default {
border-radius: 2px; border-radius: 2px;
line-height: 35px; line-height: 35px;
height: 35px; height: 35px;
cursor: pointer; cursor: pointer;
} }
.inside > li > .active { .inside > li > .active {
background: #ff5203; background: #ff5203;
} }
.flex-left > li > .card-title {
text-align: center;
border-right: none;
}
.card-item {
flex-wrap: wrap;
}
.card-item > li {
margin-bottom: 15px;
}
.card-item > li > div {
margin-right: 0;
}
.arrow {
width: 60px;
height: 60px;
}
.abs1 {
position: absolute;
top: 100px;
left: 420px
}
.abs2 {
position: absolute;
top: 100px;
left: 920px;
}
.abs3 {
position: absolute;
top: 280px;
left: 1170px;
transform: rotate(90deg);
}
.abs4 {
position: absolute;
top: 450px;
left: 420px;
transform: rotate(180deg);
}
.abs5 {
position: absolute;
top: 450px;
left:920px;
transform: rotate(180deg);
}
.abs6 {
position: absolute;
top: 640px;
left: 170px;
transform: rotate(90deg);
}
.abs7 {
position: absolute;
top: 820px;
left: 28%;
}
.view > div {
width: 100px;
height: 40px;
border: 1px solid #000;
line-height: 40px;
font-size: 16px;
text-align: center;
}
.view > .active {
background: #ccc;
}
</style> </style>
...@@ -43,7 +43,7 @@ service.interceptors.response.use( ...@@ -43,7 +43,7 @@ service.interceptors.response.use(
Message.error("登陆失效,请重新登录!") Message.error("登陆失效,请重新登录!")
localStorage.removeItem('token'); localStorage.removeItem('token');
setTimeout(function () { setTimeout(function () {
location.href = `${homeUrl}/login/user/`; location.href = `${homeUrl}login/user/`;
}, 2000); }, 2000);
} }
} }
......
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 to comment