Commit 861ae640 authored by 张冬's avatar 张冬

编辑

parent a64b6047
......@@ -212,10 +212,11 @@ export function makeFile(data) {
})
}
// 撤回投标文件
export function revocationBidbFile(bidFileId) {
export function revocationBidbFile(params) {
return request({
url: `tender/revocation/bidbFile/${bidFileId}`,
url: "tender/revocation/bidbFile",
method: 'put',
params:params
})
}
......
......@@ -8,20 +8,20 @@
<div class="content">
<div class="message">
<div class="flex-between">
<div>项目编号:ZBXM3456789456789</div>
<div>项目名称:大楼翻新</div>
<div>项目编号:{{projectCode}}</div>
<div>项目名称:{{projectName}}</div>
</div>
<div class="flex">
<div class="adjustment"> 评价报告</div>
<div class="adjustment">评价报告</div>
<Upload :limit="1" :max="100" tip="最多上传一个文件,每个文件不超过100M。" @input="getfile"></Upload>
</div>
<div class="flex">
<div class="adjustment ">评标报告扫描件</div>
<div class="adjustment">评标报告扫描件</div>
<Upload :limit="1" :max="100" tip="最多上传5个文件,每个文件不超过100M。" @input="getfile1"></Upload>
</div>
<div class="flex-center" style="margin:100px 0">
<div class="flex-center" style="margin: 100px 0">
<el-button>取消</el-button>
<el-button type="primary" style="margin-left: 20px;" @click="submitData">提交</el-button>
<el-button type="primary" style="margin-left: 20px" @click="submitData">提交</el-button>
</div>
</div>
</div>
......@@ -29,10 +29,9 @@
</template>
<script>
import {bidFailed} from '@api/purchaser/bid'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import Upload from '@components/Upload/Upload.vue'
import { bidFailed } from '@api/purchaser/bid';
import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import Upload from '@components/Upload/Upload.vue';
export default {
components: {
dataBreadcrumb,
......@@ -41,67 +40,69 @@ export default {
data() {
return {
breads: ['招标管理', '招标项目管理', '工作台'],
file:[],
file1:[]
}
file: [],
file1: [],
projectName: '',
projectCode: ''
};
},
created() {
this.projectCode = localStorage.getItem('projectCode');
this.projectName = localStorage.getItem('projectName');
},
methods: {
//
getfile(val){
this.file=val
getfile(val) {
this.file = val;
},
getfile1(val){
this.file1=val
getfile1(val) {
this.file1 = val;
},
// 提交
async submitData() {
try {
let message={}
let filePOList=[];
let file=this.file;
let file1=this.file1;
for(let item of file){
item.type=1
};
for(let item1 of file1){
item1.type=2
};
filePOList=file.concat(file1)
message.filePOList=filePOList;
message.projectId=localStorage.getItem("projectId")
const {
code,
msg
} = await bidFailed(message)
if(code==200){
let message = {};
let filePOList = [];
let file = this.file;
let file1 = this.file1;
for (let item of file) {
item.type = 1;
}
for (let item1 of file1) {
item1.type = 2;
}
filePOList = file.concat(file1);
message.filePOList = filePOList;
message.projectId = localStorage.getItem('projectId');
const { code, msg } = await bidFailed(message);
if (code == 200) {
this.$message({
message: msg,
type: 'success',
duration:1500
})
setTimeout(()=>{
this.$router.go(-1)
},1500)
duration: 1500
});
setTimeout(() => {
this.$router.go(-1);
}, 1500);
}
} catch (e) {
console.log(e)
console.log(e);
}
}
}
}
};
</script>
<style scoped>
.message{
width:50%;
margin:50px auto
.message {
width: 50%;
margin: 50px auto;
}
.message>div{
.message > div {
margin-bottom: 20px;
}
.adjustment{
.adjustment {
width: 120px;
text-align: center;
}
......
......@@ -651,6 +651,7 @@
// })
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
window.onbeforeunload = function() {
console.log("窗口关闭")
this.websocket.close()
}
},
......@@ -660,22 +661,12 @@
this.websocket.send(content)
}
},
// watch: {
// chatlog() {
// console.log("chatlog change");
// this.$nextTick(() => {
// var container = this.$el.querySelector("#chatContainer");
// console.log(container);
// container.scrollTop = container.scrollHeight;
// })
// // document.getElementById('chatContainer').scrollTop = document.getElementById('chatContainer').scrollHeight+150;
// }
// },
destroyed() {
//清除定时器
clearInterval(this.timer);
clearInterval(this.timer1);
console.log("定时器关闭")
this.websocket.close()
}
}
......
......@@ -38,6 +38,10 @@ export default {
{
label: '单位名称',
prop: 'companyName'
},
{
label: '联系人',
prop: 'contactsName'
},
{
label: '手机',
......
......@@ -11,15 +11,18 @@
</template>
</el-table-column>
</dataTable>
<div class="centerButton">
<el-button @click="back">返回</el-button>
</div>
</div>
</div>
</template>
<script>
import { clarifyInquirylist} from '@api/supply/bid'
import dataTable from '@components/nopageTable.vue'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import changeNav from '@components/changeNav.vue'
import { clarifyInquirylist } from '@api/supply/bid';
import dataTable from '@components/nopageTable.vue';
import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import changeNav from '@components/changeNav.vue';
export default {
name: 'bidingList',
components: {
......@@ -29,10 +32,11 @@ export default {
},
data() {
return {
navs:["评标问题澄清"],
navs: ['评标问题澄清'],
breads: ['投标管理', '我参与的项目', '工作台 '],
tableData: [],
columns: [{
columns: [
{
label: '澄清标题',
prop: 'title'
},
......@@ -52,49 +56,47 @@ export default {
{
slot: 'operate'
}
], // 操作列
}
] // 操作列
};
},
methods: {
back() {
this.$router.go(-1);
},
reply(questionId) {
this.$router.push(`/supply/bid/joinProject/bidEvaluation/reply?questionId=${questionId}`)
this.$router.push(`/supply/bid/joinProject/bidEvaluation/reply?questionId=${questionId}`);
},
see(row){
see(row) {
this.$router.push({
path:"/supply/bid/joinProject/bidEvaluation/see",
query:{
questionId:row.questionId,
replyId:row.replyId
path: '/supply/bid/joinProject/bidEvaluation/see',
query: {
questionId: row.questionId,
replyId: row.replyId
}
})
});
},
async getclarifyInquirylist() {
let message={}
message.companyId=localStorage.getItem("companyId")
message.projectId=localStorage.getItem("projectId")
const {
data,
code
} = await clarifyInquirylist(message)
if(code==200){
for (let item of data){
if(item.replyId){
item.state="已回复"
}else{
item.state="未回复"
let message = {};
message.companyId = localStorage.getItem('companyId');
message.projectId = localStorage.getItem('projectId');
const { data, code } = await clarifyInquirylist(message);
if (code == 200) {
for (let item of data) {
if (item.replyId) {
item.state = '已回复';
} else {
item.state = '未回复';
}
}
this.tableData=data
this.tableData = data;
}
}
},
created() {
this.getclarifyInquirylist();
}
}
};
</script>
<style scoped>
</style>
......@@ -279,46 +279,49 @@ export default {
},
// websocket
createWebSocket() {
let token = localStorage.getItem('token');
let projectId = localStorage.getItem('projectId');
this.websocket = new WebSocket(`ws:${openUrl}/webSocket/${projectId}/${token}`);
let token = localStorage.getItem("token")
let projectId = localStorage.getItem("projectId")
this.websocket = new WebSocket(`ws:${openUrl}/webSocket/${projectId}/${token}`)
// this.websocket = new WebSocket('ws://192.168.3.35:8085/webSocket/' + projectId + "/" + token)
// this.websocket = new WebSocket('ws://60.205.251.80:8085/webSocket/' + projectId +"/"+token )
// 连接成功时
this.websocket.onopen = () => {};
this.websocket.onmessage = (event) => {
this.websocket.onopen = () => {}
this.websocket.onmessage = event => {
// 后端发送的消息在event.data中
let data = JSON.parse(event.data);
console.log(data);
console.log(data)
if (data.type == 1) {
if (data.userId == this.myId) {
data.mine = true;
} else {
data.mine = false;
if(data.userId==this.myId){
data.mine=true
}else{
data.mine=false
}
const msgObj = {
date: data.time,
text: {
text: data.chatContent
"date":data.time ,
"text": {
"text": data.chatContent
},
mine: data.mine,
name: data.name,
img: 'http://hsz1997.oss-cn-beijing.aliyuncs.com/img/1603292025286_67c099c6tou.jpg'
};
this.dialogueList.push(msgObj);
"mine": data.mine,
"name": data.name,
"img": "http://hsz1997.oss-cn-beijing.aliyuncs.com/img/1603292025286_67c099c6tou.jpg"
}
this.dialogueList.push(msgObj)
} else {
this.halList.push(data);
this.halList.push(data)
}
}
this.websocket.onclose = function() {
console.log('关闭了')
}
};
this.websocket.onclose = function () {
console.log('关闭了');
};
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
(window.onbeforeunload = function () {
this.websocket.close();
}),
// 路由跳转时结束websocket链接
this.$router.afterEach(function () {
this.websocket.close();
});
// this.$router.afterEach(function() {
// this.websocket.close()
// })
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
window.onbeforeunload = function() {
console.log("窗口关闭")
this.websocket.close()
}
},
bindEnter() {
const content = this.content;
......@@ -377,7 +380,14 @@ export default {
this.storagedecodeTime = Number(data.decodeTime);
this.storagesignatureTime = Number(data.signatureTime);
} else {
this.$message.error(msg);
this.$message({
message: msg,
type: 'error',
duration: 3000
})
setTimeout(() => {
this.$router.go(-1)
}, 3000)
}
var { data, code } = await signdetail(projectId);
if (code == 200) {
......@@ -435,6 +445,7 @@ export default {
// },
destroyed() {
//清除定时器
clearInterval(this.timer);
clearInterval(this.timer1);
this.websocket.close();
}
......
......@@ -198,10 +198,13 @@
// 撤回
async withdraw() {
try {
let message={}
message.projectId=localStorage.getItem("projectId")
message.bidFileId=this.form.bidbookId
const {
msg,
code
} = await revocationBidbFile(this.form.bidbookId)
} = await revocationBidbFile(message)
if (code == 200) {
this.$message({
message: msg,
......
......@@ -216,9 +216,9 @@ export default {
newlabel = label;
} else if (status == 1) {
newlabel = label;
newlabel = label.replace('发布', '编辑');
newlabel = label.replace('递交', '编辑');
} else {
newlabel = label.replace('发布', '查看');
newlabel = label.replace('递交', '查看');
}
return newlabel;
},
......@@ -239,23 +239,12 @@ export default {
for (let item2 of data) {
if (item1.id == item2.buttonId) {
item1.bright = true;
if (item2.buttonId == 4 && item2.status == 2) {
item1.url = '/purchaser/bid/reviewed/SeeinquiryAnnouncement';
item1.label = '查看询价公告';
} else if (item2.buttonId == 5 && item2.status == 2) {
item1.url = '/purchaser/bid/reviewed/SeetenderAnnouncement';
item1.label = '查看招标公告';
} else if (item2.buttonId == 9 && item2.status == 2) {
item1.url = '/purchaser/bid/bidStage/seeBidSet';
item1.label = '开标设置查看';
} else {
item1.url = this.geturl(item1.url, item2.status);
item1.label = this.getlabel(item1.label, item2.status);
}
}
}
}
}
this.remark = data[0].remark;
} else {
this.$message.error(msg);
......
......@@ -16,7 +16,7 @@
</slot>
</priceDetail>
<!-- 报价弹窗 -->
<el-dialog :visible.sync="dialogFormVisible" title="报价" width="50%">
<el-dialog :visible.sync="dialogFormVisible" title="报价" width="1000px">
<dataTable :table-data="commoditylist" :columns="commoditycolumns">
<el-table-column slot="operate" label="报价" align="center" fixed="right" width="150">
<template slot-scope="scope">
......@@ -230,4 +230,14 @@ export default {
</script>
<style scoped>
.el-table::before {
z-index: inherit;
}
.table-fixed>.el-table__fixed-right {
height: 100% !important;
}
</style>
......@@ -5,299 +5,34 @@
<h3>查看</h3>
<div>查看基本信息、企业资质文件</div>
</div>
<div class="detail-list">
<div>
<h5>基本信息</h5>
<ul class="flex">
<li>
<div>单位名称</div>
<div>{{detail.companyName}}</div>
</li>
<li>
<div>注册角色</div>
<div>11</div>
</li>
<li>
<div>法人姓名</div>
<div>{{detail.legalPersonName}}</div>
</li>
<li>
<div>法人电话</div>
<div>11</div>
</li>
<li>
<div>统一社会信用代码</div>
<div>{{detail.socialCode}}</div>
</li>
<li>
<div>行政区域 </div>
<div>{{detail.companyName}}</div>
</li>
<li>
<div>单位性质</div>
<div>{{detail.companyNature}}</div>
</li>
<li>
<div>单位所在地</div>
<div>{{detail.location}}</div>
</li>
<li>
<div>行业类型</div>
<div>222</div>
</li>
<li>
<div>开户银行名称</div>
<div>222</div>
</li>
<li>
<div>结算账户</div>
<div>222</div>
</li>
<li>
<div>结算账户名</div>
<div>222</div>
</li>
<li>
<div>注册资本(万元)</div>
<div>{{detail.registeredCapital}}</div>
</li>
<li>
<div>联系地址</div>
<div>{{detail.contactAddress}}</div>
</li>
<li>
<div>管理员姓名</div>
<div>{{detail.companyName}}</div>
</li>
<li>
<div> 手机号 </div>
<div>{{detail.legalPersonPhone}}</div>
</li>
<li>
<div> 身份证 </div>
<div>222</div>
</li>
<li>
<div>电子邮箱 </div>
<div>{{detail.companyName}}</div>
</li>
</ul>
<div class="detail-item">
<div>经营范围</div>
<div>一般项目:技术服务,技术开发</div>
</div>
<div class="detail-item">
<div>法人身份证正反面</div>
<el-image v-for="(item,index) in imglist" :src="item.src" :key="index" style="margin-right:20px"></el-image>
</div>
<div class="detail-item">
<div>三证合一扫描件</div>
<el-image v-for="(item,index) in imglist" :src="item.src" :key="index" style="margin-right:20px"></el-image>
</div>
<div class="detail-item">
<div>其他资料</div>
<div class="flex-between pdf">
<div>pdf文件</div>
<div>预览</div>
<div>下载</div>
</div>
</div>
</div>
</div>
<div class="operation">
<button @click="edit">编辑</button>
<companyDetail></companyDetail>
<div class="bottomButton">
<el-button @click="edit">编辑</el-button>
</div>
</div>
</template>
<script>
import {
companyDetail
} from '@api/common/list'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
export default {
import companyDetail from '@components/detail/companyDetail.vue';
import dataBreadcrumb from '@components/dataBreadcrumb.vue';
export default {
components: {
dataBreadcrumb
dataBreadcrumb,
companyDetail
},
data() {
return {
detail: "",
breads: ['查看基本信息', '企业资质文件'],
informationList: [{
title: '单位名称',
message: '腾讯'
}, {
title: '注册角色',
message: '采购商'
}, {
title: '法人姓名',
message: '谢墩满'
}, {
title: '法人电话',
message: '1784574567'
}, {
title: '统一社会信用代码',
message: '91330104MA27YU1X0K'
}, {
title: '行政区域',
message: '浙江省 杭州市 滨江区'
}, {
title: '单位性质',
message: '有限责任公司'
}, {
title: '单位所在地',
message: '浙江 温州'
}, {
title: '行业类型',
message: '娱乐业'
}, {
title: '开户银行名称',
message: '农行'
}, {
title: '结算账号',
message: '34567567856789'
}, {
title: '结算账户名',
message: '谢天'
}, {
title: '注册资本(万元)',
message: '100'
}, {
title: '联系地址',
message: '浙江温州'
}, {
title: '管理员姓名',
message: '谢'
}, {
title: '手机号',
message: '18957015590'
}, {
title: '身份证',
message: '456789056789078'
}, {
title: '电子邮箱',
message: '34567890@qq.com'
}],
imglist: [{
src: require('@static/images/img.png')
}, {
src: require('@static/images/img.png')
}]
}
breads: ['查看基本信息', '企业资质文件']
};
},
methods: {
edit() {
this.$router.push('/purchaser/organization/informationEdit')
},
async getcompanyDetail() {
try {
let companyId = localStorage.getItem("companyId")
const {
data,
code
} = await companyDetail(companyId)
if (code === 200) {
this.detail = data
}
} catch (e) {
console.log(e)
}
this.$router.push('/purchaser/organization/informationEdit');
}
},
created() {
this.getcompanyDetail()
}
}
created() {}
};
</script>
<style scoped>
.detail-list>div>ul>li {
margin-right: 150px;
margin-bottom: 50px;
width: 180px
}
.detail-list>div>ul {
flex-wrap: wrap;
margin-left: 30px;
margin-top: 20px;
}
.detail-head {
margin-left: 30px;
padding-top: 10px;
}
.detail-head>h3 {
font-weight: bold;
margin-top: 10px;
margin-bottom: 10px;
}
.detail-list {
box-sizing: border-box;
padding-top: 20px;
background-color: #F0F2F5;
margin-top: 10px;
}
.detail-list>div {
background-color: #FFFF;
padding-bottom: 20px;
}
.detail-list h5 {
font-weight: bold;
height: 50px;
line-height: 50px;
border-bottom: 1px solid #F0F2F5;
box-sizing: border-box;
padding-left: 30px;
}
.detail-item {
margin-left: 30px;
margin-bottom: 30px;
}
.detail-item>div:first-child {
margin-bottom: 10px;
}
.pdf {
width: 170px
}
.pdf>div:nth-child(2),
.pdf>div:last-child {
width: 50px;
height: 30px;
text-align: center;
line-height: 30px;
border-radius: 10px;
border: 1px solid #000
}
.operation {
margin-bottom: 10px;
display: flex;
justify-content: flex-end;
}
.operation>button {
width: 50px;
height: 30px;
border-radius: 2px;
background: #fff;
border: 1px solid #999;
}
.flex-button>button {
margin-left: 10px;
}
.flex-button>button:last-child {
background: #28e;
color: #fff
}
</style>
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