Commit f1134b55 authored by 吴冠's avatar 吴冠

更改

parent 9fc8c2a6
...@@ -645,4 +645,11 @@ export function projectConsole(params) { ...@@ -645,4 +645,11 @@ export function projectConsole(params) {
}) })
} }
//采购商详情
export function contractDetails(projectId) {
return request({
url: `/tender-decide/contract/detail/${projectId}`,
method: 'get',
})
}
...@@ -283,7 +283,7 @@ export function bidResultBook(params) { ...@@ -283,7 +283,7 @@ export function bidResultBook(params) {
// 查看合同 // 查看合同
export function contractdetail(projectId) { export function contractdetail(projectId) {
return request({ return request({
url: `bidder-decide/contract/detail/${projectId}`, url: `tender-decide/contract/detail/${projectId}`,
method: 'get', method: 'get',
}) })
} }
......
...@@ -40,7 +40,8 @@ export default { ...@@ -40,7 +40,8 @@ export default {
projectCode: '', projectCode: '',
projectName: '', projectName: '',
state: true, state: true,
detail: '' detail: '',
title:''
}; };
}, },
methods: { methods: {
...@@ -54,6 +55,7 @@ export default { ...@@ -54,6 +55,7 @@ export default {
if (code == 200) { if (code == 200) {
console.log(data); console.log(data);
this.detail = data; this.detail = data;
this.title = data.title
} else { } else {
this.state = false; this.state = false;
} }
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="选择投标人" prop="CompanyId"> <el-form-item label="选择投标人" prop="CompanyId">
<el-radio v-model="ruleForm.CompanyId" v-for="(item,index) in CompanyIds" :label="item.companyId" :key="item.companyId">{{item.companyName}}</el-radio> <el-radio v-model="ruleForm.CompanyId" v-for="item in CompanyIds" :label="item.companyId" :key="item.companyId">{{item.companyName}}</el-radio>
</el-form-item> </el-form-item>
<el-form-item label="澄清质询问题内容" prop="content"> <el-form-item label="澄清质询问题内容" prop="content">
<el-input v-model.trim="ruleForm.content" :rows="2" type="textarea" maxlength="300"></el-input> <el-input v-model.trim="ruleForm.content" :rows="2" type="textarea" maxlength="300"></el-input>
......
...@@ -74,7 +74,8 @@ ...@@ -74,7 +74,8 @@
<script> <script>
import { import {
contract contract,
contractDetails
} from '@api/purchaser/bid' } 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'
...@@ -167,9 +168,27 @@ ...@@ -167,9 +168,27 @@
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} },
async contractDetails(){
const {data,code} = await contractDetails()
if(code==200){
this.ruleForm = data
for(let item in data.contractFileName){
this.ruleForm.contractName = item
}
for(let item1 in data.fileList){
this.ruleForm.fileList = item1
}
}
}
}, },
created() { created() {
let type = this.$router.query.type
/* type为1 查看详情*/
if(type=='2'){
this.contractDetails()
}
this.projectCode = localStorage.getItem("projectCode"); this.projectCode = localStorage.getItem("projectCode");
this.projectName = localStorage.getItem("projectName"); this.projectName = localStorage.getItem("projectName");
} }
......
...@@ -12,6 +12,14 @@ ...@@ -12,6 +12,14 @@
<div>澄清问题标题:</div> <div>澄清问题标题:</div>
<div>{{ detail.title }}</div> <div>{{ detail.title }}</div>
</div> </div>
<div class="flex clear-item">
<div>问题发布时间:</div>
<div>{{ detail.startTime }}</div>
</div>
<div class="flex clear-item">
<div>澄清回复截止时间:</div>
<div>{{ detail.endTime }}</div>
</div>
<div class="flex clear-item"> <div class="flex clear-item">
<div>澄清问题内容:</div> <div>澄清问题内容:</div>
<div v-html="detail.content"></div> <div v-html="detail.content"></div>
......
...@@ -2,34 +2,47 @@ ...@@ -2,34 +2,47 @@
<div> <div>
<div class="content"> <div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<div>中国标准时间:{{ currentTime }}</div> <!-- <div>中国标准时间:{{ currentTime }}</div> -->
<div class="hal"> <div class="hal">
<h2 style="text-align: center">{{ projectName }}项目开标大厅</h2> <h3 style="text-align: center">{{ projectName }}项目开标大厅</h3>
<div class="time-message flex-between"> <div class="time-message flex-center" style="border-top:1px solid #bfa;width:100%;margin-top:10px;margin-bottom:10px;">
<div class="flex"> <div class="flex" style="margin-left:0px;margin-top:10px">
<p>截标倒计时:</p> <p>截标倒计时:</p>
<timeDown :remain-time="remaintime" @countDowmEnd="remaintimeEnd"></timeDown> <timeDown :remain-time="remaintime" @countDowmEnd="remaintimeEnd"></timeDown>
</div> </div>
<div class="flex" v-show="openStatus == 2"> <div class="flex" style="margin-left:40px;margin-top:10px">
<p>解密倒计时:</p> <p>解密倒计时:</p>
<timeDown :remain-time="decodeTime" @countDowmEnd="decodeTimeEnd"></timeDown> <timeDown :remain-time="decodeTime" @countDowmEnd="decodeTimeEnd"></timeDown>
</div> </div>
<div class="flex" v-show="openStatus == 2"> <div class="flex" style="margin-left:40px;margin-top:10px">
<p>签名倒计时:</p> <p>签名倒计时:</p>
<timeDown :remain-time="signatureTime" @countDowmEnd="signatureTimeEnd"></timeDown> <timeDown :remain-time="signatureTime" @countDowmEnd="signatureTimeEnd"></timeDown>
</div> </div>
</div> </div>
<div class="flex"> <div class="flex">
<div class="hal-left"> <div class="hal-left">
<div> <div class="hal-item">
<h1>签到 {{ !leftmessage.signIn ? '否' : '是' }}</h1> <div class="flex">
<h1>解密 {{ !leftmessage.decode ? '否' : '是' }}</h1> <div style="font-weight:bold">签到</div>
<h1>签名 {{ !leftmessage.signature ? '否' : '是' }}</h1> <div style="color:blue;font-size:20px;margin-left:10px;margin-right:10px">1</div>
<div style="font-weight:bold"></div>
</div>
<div class="flex">
<div style="font-weight:bold">解密</div>
<div style="color:blue;font-size:20px;margin-left:10px;margin-right:10px">1</div>
<div style="font-weight:bold"></div>
</div>
<div class="flex">
<div style="font-weight:bold">签名</div>
<div style="color:blue;font-size:20px;margin-left:10px;margin-right:10px">1</div>
<div style="font-weight:bold"></div>
</div>
<div class="texta">签到解密签名情况</div>
</div> </div>
</div> </div>
<div class="hal-center" v-chat-scroll> <div class="hal-center" v-chat-scroll>
<ul> <ul>
<li v-for="(item, index) in halList" :key="index" class="flex-item"> <li v-for="(item, index) in halList" :key="index" class="flex-item sty">
<div>{{ item.time }}</div> <div>{{ item.time }}</div>
<div>{{ item.role }}</div> <div>{{ item.role }}</div>
<div>{{ item.name }}</div> <div>{{ item.name }}</div>
...@@ -38,8 +51,11 @@ ...@@ -38,8 +51,11 @@
</ul> </ul>
</div> </div>
<div class="hal-right"> <div class="hal-right">
<el-button @click="dialogFormVisible = true" style="margin-left: 10px">开标规则说明</el-button> <!-- <el-button @click="dialogFormVisible = true" style="margin-left: 10px">开标规则说明</el-button> -->
<el-button @click="isdialogue">在线对话<i class="el-icon-chat-dot-round"></i></el-button> <div @click="isdialogue" style="margin-top:0px">在线对话<i class="el-icon-chat-dot-round"></i></div>
<div icon="el-icon-refresh" @click="refrsh">刷新</div>
<div >下发开标一览表</div>
<div @click="openInfo" :disabled="!issueTable">查看开标一览表</div>
<el-button <el-button
:disabled="!isDecode" :disabled="!isDecode"
v-show="openStatus == 2 && !leftmessage.decode" v-show="openStatus == 2 && !leftmessage.decode"
...@@ -73,9 +89,8 @@ ...@@ -73,9 +89,8 @@
</div> </div>
<div class="flex-center buttons"> <div class="flex-center buttons">
<div> <div>
<el-button icon="el-icon-refresh" @click="refrsh">刷新</el-button>
<el-button @click="openInfo" :disabled="!issueTable">查看开标一览表</el-button>
<el-button @click="back">退出大厅<i class="el-icon-right"></i></el-button> <el-button @click="back">退出大厅<i class="el-icon-right"></i></el-button>
<el-button type="primary">立即开标</el-button>
</div> </div>
</div> </div>
</div> </div>
...@@ -85,14 +100,14 @@ ...@@ -85,14 +100,14 @@
<div class="explain"> <div class="explain">
<h1>开标说明</h1> <h1>开标说明</h1>
<div>1、网上开标共有解密、签名两个环节,投标人根据开标大厅中间滚动提示进行相应操作。</div> <div>1、网上开标共有解密、签名两个环节,投标人根据开标大厅中间滚动提示进行相应操作。</div>
<div>2、截标前当天大厅开放,已上传投标文件的投标人可在解密倒计时结東前进入开标大厅。</div> <div>2、截标前当天大厅开放,已上传投标文件的投标人可在解密倒计时结東前进入开标大厅。</div>
<div>3、截标后主持人宣布开标,所有投标人进行解密操作,解密时间共计30分钟投标人须在解密倒计时结束前 <div>3、截标后主持人宣布开标,所有投标人进行解密操作,解密时间共计30分钟投标人须在解密倒计时结束前
完成解密。解密倒计时结東后,因投标人原因造成投标文件未解密的根据《电子招标投标办法其投标文件》视 完成解密。解密倒计时结東后,因投标人原因造成投标文件未解密的根据《电子招标投标办法其投标文件》视
为撤销。</div> 为撤销。</div>
<div>4、解密倒计时结東或所有投标文件均已解密,投标人可查询所有投标人的开标情况并进行签名,签名时间 <div>4、解密倒计时结東或所有投标文件均已解密,投标人可查询所有投标人的开标情况并进行签名,签名时间
共计10分钟。</div> 共计10分钟。</div>
<div>5.、所有投标人完成签名操作或签名倒计时结束后,项目经理开标结束,投标人可离开开标大厅。开标过程 <div>5.、所有投标人完成签名操作或签名倒计时结束后,项目经理开标结束,投标人可离开开标大厅。开标过程
中,投标人可点击开标大厅右上角在线聊天与主持人沟通。开标结束后视为开标过程无异议。</div> 中,投标人可点击开标大厅右上角在线聊天与主持人沟通。开标结束后视为开标过程无异议。</div>
</div> </div>
<div class="flex-center"> <div class="flex-center">
<el-button type="primary" @click="dialogFormVisible = false">关闭</el-button> <el-button type="primary" @click="dialogFormVisible = false">关闭</el-button>
...@@ -213,7 +228,7 @@ export default { ...@@ -213,7 +228,7 @@ export default {
], ],
minutes: '6', minutes: '6',
seconds: '60', seconds: '60',
currentTime: '', /* currentTime: '', */
breads: ['招标管理', '招标项目管理', '工作台'], breads: ['招标管理', '招标项目管理', '工作台'],
leftmessage: '', leftmessage: '',
websocket: '', websocket: '',
...@@ -228,12 +243,12 @@ export default { ...@@ -228,12 +243,12 @@ export default {
}, },
created() { created() {
// 中国标准时间 // 中国标准时间
let currentTime = getTime(); /* let currentTime = getTime();
this.currentTime = currentTime; this.currentTime = currentTime;
this.timer1 = setInterval(() => { this.timer1 = setInterval(() => {
let currentTime = getTime(); let currentTime = getTime();
this.currentTime = currentTime; this.currentTime = currentTime;
}, 1000); }, 1000); */
this.projectName = localStorage.getItem('projectName'); this.projectName = localStorage.getItem('projectName');
this.getsigndetail(); this.getsigndetail();
this.openBidsign(); this.openBidsign();
...@@ -393,9 +408,9 @@ export default { ...@@ -393,9 +408,9 @@ export default {
type: 'error', type: 'error',
duration: 3000 duration: 3000
}) })
setTimeout(() => { /* setTimeout(() => {
this.$router.go(-1) this.$router.go(-1)
}, 3000) }, 3000) */
} }
var { data, code } = await signdetail(projectId); var { data, code } = await signdetail(projectId);
if (code == 200) { if (code == 200) {
...@@ -461,6 +476,9 @@ export default { ...@@ -461,6 +476,9 @@ export default {
</script> </script>
<style scoped> <style scoped>
.content{
background: #bfa;
}
.abs { .abs {
position: absolute; position: absolute;
right: 100px; right: 100px;
...@@ -482,8 +500,8 @@ export default { ...@@ -482,8 +500,8 @@ export default {
.dialogue { .dialogue {
position: absolute; position: absolute;
top: 10%; top: 0;
right: 10%; right: 25%;
border: 1px solid #cccccc; border: 1px solid #cccccc;
padding: 10px; padding: 10px;
} }
...@@ -511,24 +529,36 @@ export default { ...@@ -511,24 +529,36 @@ export default {
} }
.hal-left { .hal-left {
width: 200px; width: 150px;
height:200px;
background: white;
} }
.hal-left > div { .hal-left > div {
width: 100%; width: 100%;
height: 300px; height: 200px;
border: 1px solid #000; border: 1px solid #000;
box-sizing: border-box; box-sizing: border-box;
padding: 40px 20px; text-align: center;
margin: 0 auto;
} }
.hal-right { .hal-right {
width: 200px; width: 150px;
height: 500px; height: 200px;
/* background: white; */
} }
.hal-right > button { .hal-right > div {
margin-bottom: 20px; width:150px;
margin-top:20px;
height:40px;
text-align: center;
border:2px solid blue;
font-size:12px;
line-height:40px;
cursor: pointer;
} }
.hal-center { .hal-center {
...@@ -564,6 +594,10 @@ export default { ...@@ -564,6 +594,10 @@ export default {
margin-bottom: 50px; margin-bottom: 50px;
/* letter-spacing:5px */ /* letter-spacing:5px */
} }
.hal-item>div{
margin-left:32px;
margin-top:20px;
}
.bid-message { .bid-message {
flex-wrap: wrap; flex-wrap: wrap;
...@@ -574,4 +608,19 @@ export default { ...@@ -574,4 +608,19 @@ export default {
margin-right: 50px; margin-right: 50px;
margin-bottom: 30px; margin-bottom: 30px;
} }
.texta{
font-size:10px;
margin-left:-20px;
}
.hal-item>div:last-child{
margin-left:0
}
.sty{
line-height:20.8px;
display: flex;
justify-content: center;
}
.sty>div{
line-height:20.8px;
}
</style> </style>
...@@ -244,8 +244,6 @@ export default { ...@@ -244,8 +244,6 @@ export default {
<style scoped> <style scoped>
.message {
}
.message > div { .message > div {
background: #fff; background: #fff;
......
...@@ -21,8 +21,9 @@ ...@@ -21,8 +21,9 @@
<div>澄清问题附件:</div> <div>澄清问题附件:</div>
<ul> <ul>
<li v-for="item in clarifies.clarifieslist" :key="item.id"> <li v-for="item in clarifies.clarifieslist" :key="item.id">
<span>{{item.fileName}}</span> <a :href="item.accessoryUrl">{{ item.fileName }}</a>
<el-button @click="down(item.accessoryUrl)">下载</el-button> <!-- <span>{{item.fileName}}</span>
<el-button @click="down(item.accessoryUrl)">下载</el-button> -->
</li> </li>
</ul> </ul>
</div> </div>
...@@ -90,9 +91,9 @@ export default { ...@@ -90,9 +91,9 @@ export default {
} }
}, },
methods: { methods: {
down(url){ /* down(url){
window.open(url) window.open(url)
}, }, */
cancle() { cancle() {
this.$router.go(-1) this.$router.go(-1)
}, },
......
...@@ -160,7 +160,7 @@ export default { ...@@ -160,7 +160,7 @@ export default {
isdisabled: true, isdisabled: true,
title: '查看', title: '查看',
state: '', state: '',
breads: ['投标管理', '招标项目管理', '工作台'], breads: ['投标管理', '我参与的项目', '工作台'],
ruleForm: {}, ruleForm: {},
formrules: { formrules: {
companyName: [ companyName: [
......
...@@ -10,56 +10,56 @@ ...@@ -10,56 +10,56 @@
<div>项目名称:{{projectName}}</div> <div>项目名称:{{projectName}}</div>
</div> </div>
<div class="flex-between"> <div class="flex-between">
<el-form-item label="合同名称:" prop="name"> <el-form-item label="合同名称:" prop="contractName">
<el-input v-model="form.name" placeholder="请输入"></el-input> <el-input v-model="form.contractName" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="合同类型:" prop="name"> <el-form-item label="合同类型:" prop="contractType">
<el-input v-model="form.type" placeholder="请输入"></el-input> <el-input v-model="form.contractType" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="flex-between"> <div class="flex-between">
<el-form-item label="工期:" prop="name"> <el-form-item label="工期:" prop="timeLimit">
<el-input v-model="form.name" placeholder="请输入"></el-input> <el-input v-model="form.timeLimit" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="总负责人名称:" prop="name"> <el-form-item label="总负责人名称:" prop="principalName">
<el-input v-model="form.type" placeholder="请输入"></el-input> <el-input v-model="form.principalName" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="flex-between"> <div class="flex-between">
<el-form-item label="总负责人身份证号:" prop="name"> <el-form-item label="总负责人身份证号:" prop="principalIdNumber">
<el-input v-model="form.name" placeholder="请输入"></el-input> <el-input v-model="form.principalIdNumber" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="采购商名称:" prop="name"> <el-form-item label="采购商名称:" prop="companyName">
<el-input v-model="form.type" placeholder="请输入"></el-input> <el-input v-model="form.companyName" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="flex-between"> <div class="flex-between">
<el-form-item label="是否联合体投标:" prop="name"> <el-form-item label="是否联合体投标:" prop="isAlliance">
<el-radio v-model="form.type" label="1"></el-radio> <el-radio v-model="form.isAlliance" :label="true"></el-radio>
<el-radio v-model="form.type" label="2"></el-radio> <el-radio v-model="form.isAlliance" :label="false"></el-radio>
</el-form-item> </el-form-item>
<el-form-item label="合同总价(元):" prop="name"> <el-form-item label="合同总价(元):" prop="contractPrice">
<el-input v-model="form.type" placeholder="请输入"></el-input> <el-input v-model="form.contractPrice" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="flex-between"> <div class="flex-between">
<el-form-item label="合同有效期起止日期:" prop="data"> <el-form-item label="合同有效期起止日期:" prop="validityTime">
<el-date-picker v-model="form.data" type="datetimerange" range-separator="至" start-placeholder="开始日期" <el-date-picker v-model="form.validityTime" type="datetimerange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期"> end-placeholder="结束日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="合同期限(天):" prop="name"> <el-form-item label="合同期限(天):" prop="deadline">
<el-input v-model="form.type" placeholder="请输入"></el-input> <el-input v-model="form.deadline" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="合同文件:" prop="name"> <el-form-item label="合同文件:" prop="file">
<el-input v-model="form.type" placeholder="请输入"></el-input> <singleUpload :limit="1" :max="100" accept=".pdf" tip="支持上传一个pdf格式文件,大小不超过100M" @input="getfile" :fileList="ruleForm.contractFileName"></singleUpload>
</el-form-item> </el-form-item>
<el-form-item label="其它附件:" prop="name"> <el-form-item label="其它附件:">
<el-input v-model="form.type" placeholder="请输入"></el-input> <singleUpload :limit="3" :max="100" tip="支持上传三份附件,大小不超过100M" @input="getfile1" :fileList="ruleForm.fileList"></singleUpload>
</el-form-item> </el-form-item>
<el-form-item label="合同范围:" prop="name"> <el-form-item label="合同范围:" prop="remark">
<el-input v-model="form.type" :rows="4" placeholder="请输入" type="textarea"></el-input> <el-input v-model="form.remark" :rows="4" placeholder="请输入" type="textarea"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -72,6 +72,7 @@ ...@@ -72,6 +72,7 @@
</template> </template>
<script> <script>
import singleUpload from '@components/Upload/Upload.vue'
import { import {
contractdetail contractdetail
} from '@api/supply/bid' } from '@api/supply/bid'
...@@ -80,7 +81,8 @@ ...@@ -80,7 +81,8 @@
export default { export default {
components: { components: {
dataBreadcrumb, dataBreadcrumb,
changeNav changeNav,
singleUpload
}, },
data() { data() {
return { return {
...@@ -89,16 +91,37 @@ ...@@ -89,16 +91,37 @@
breads: ['投标管理 ', '我参加的项目', '工作台'], breads: ['投标管理 ', '我参加的项目', '工作台'],
navs: ['合同管理'], navs: ['合同管理'],
form: { form: {
name: '', contractName: "",
data: '', contractType: "",
type: '' timeLimit: "",
principalName: "",
principalIdNumber: "",
companyName: '',
isAlliance: "",
contractPrice: "",
validityTime: "",
deadline: "",
/* FilePO: [], */
remark: "",
fileList:[],
contractFileName:[]
}, },
rules: { rules: {
name: [{ validityTime: [{
required: true, required: true,
message: '请选择时间', message: '请选择',
trigger: 'blur' trigger: 'blur'
}] }],
contractName: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
file: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
}, },
projectCode: "", projectCode: "",
projectName: "" projectName: ""
...@@ -114,8 +137,22 @@ ...@@ -114,8 +137,22 @@
data, data,
code code
} = await contractdetail(projectId) } = await contractdetail(projectId)
this.form=data if(code==200){
} this.ruleForm = data
for(let item in data.contractFileName){
this.form.contractName = item
}
for(let item1 in data.fileList){
this.form.fileList = item1
}
}
},
getfile(val) {
this.form.contractFileName = val
},
getfile1(val) {
this.form.fileList = val
},
}, },
created() { created() {
this.projectCode = localStorage.getItem("projectCode"); this.projectCode = localStorage.getItem("projectCode");
......
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