Commit 21085428 authored by 张冬's avatar 张冬

修改问题

parent 3eea3676
...@@ -112,3 +112,11 @@ export function commoditylist(projectId) { ...@@ -112,3 +112,11 @@ export function commoditylist(projectId) {
method: 'get' method: 'get'
}) })
} }
// 获取招标文件截止时间
export function inqueryinfo(projectId) {
return request({
url:`tender-project/inquery/info/${projectId}`,
method: 'get'
})
}
import request from '@/utils/request' import request from '@/utils/request'
// 采购商 // 采购商
// 2.1.1 // 2.1.1
// 创建招标项目 // 创建招标项目
...@@ -21,6 +23,13 @@ export function createEnquiry(data) { ...@@ -21,6 +23,13 @@ export function createEnquiry(data) {
data: data data: data
}) })
} }
// 查看询价公告(通过项目id)
export function enquiryProjectId(projectId) {
return request({
url: `/notice/enquiry?projectId=${projectId}`,
method: 'get'
})
}
// 发送招标公告 // 发送招标公告
export function bidMessage(data) { export function bidMessage(data) {
...@@ -30,7 +39,7 @@ export function bidMessage(data) { ...@@ -30,7 +39,7 @@ export function bidMessage(data) {
data: data data: data
}) })
} }
// 查看招标公告(通过项目id)
// 发送邀请公告 // 发送邀请公告
export function inviteMessage(data) { export function inviteMessage(data) {
return request({ return request({
......
import request from '@/utils/request'
export function home() {
return request({
url: "tender-project/index",
method: 'get',
})
}
\ No newline at end of file
...@@ -501,8 +501,8 @@ ...@@ -501,8 +501,8 @@
createWebSocket() { createWebSocket() {
let token=localStorage.getItem("token") let token=localStorage.getItem("token")
let projectId = localStorage.getItem("projectId") let projectId = localStorage.getItem("projectId")
// this.websocket = new WebSocket('ws://192.168.3.35:8085/webSocket/' + projectId +"/"+token ) this.websocket = new WebSocket('ws://192.168.3.35:8085/webSocket/' + projectId +"/"+token )
this.websocket = new WebSocket('ws://192.168.200.201:8082/webSocket/' + projectId +"/"+token ) // this.websocket = new WebSocket('ws://192.168.200.201:8082/webSocket/' + projectId +"/"+token )
// 连接成功时 // 连接成功时
this.websocket.onopen = () => {} this.websocket.onopen = () => {}
this.websocket.onmessage = event => { this.websocket.onmessage = event => {
......
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item label="项目经理:" prop="manager"> <el-form-item label="项目经理:" prop="projectManager">
<el-select v-model="ruleForm.manager" placeholder="请选择"> <el-select v-model="ruleForm.projectManager" placeholder="请选择">
<el-option v-for="item in managers" :key="item.id" :label="item.userName" :value="item.id"> <el-option v-for="item in managers" :key="item.id" :label="item.userName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
...@@ -354,7 +354,7 @@ export default { ...@@ -354,7 +354,7 @@ export default {
}], }],
phone: [{ phone: [{
required: true, required: true,
validator: checkPhone, validator: checkPhone,
trigger: 'blur' trigger: 'blur'
}], }],
money: [{ money: [{
...@@ -402,7 +402,7 @@ validator: checkPhone, ...@@ -402,7 +402,7 @@ validator: checkPhone,
validator: isMin, validator: isMin,
trigger: 'blur' trigger: 'blur'
}], }],
manager: [{ projectManager: [{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
...@@ -433,7 +433,7 @@ validator: checkPhone, ...@@ -433,7 +433,7 @@ validator: checkPhone,
phone: '' phone: ''
}, },
ruleForm: { ruleForm: {
manager:"", projectManager:"",
projectName: '', projectName: '',
projectCode: '', projectCode: '',
classify: '', classify: '',
......
...@@ -56,7 +56,7 @@ export default { ...@@ -56,7 +56,7 @@ export default {
}, },
data() { data() {
return { return {
activeIdx: 0, activeIdx: 2,
allForm: {} allForm: {}
} }
}, },
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="form"> <div class="form">
<!-- <dataForm :search-form="searchForm" :search-data="searchData" :is-handle="false" label-width="250px"></dataForm> --> <!-- <dataForm :search-form="searchForm" :search-data="searchData" :is-handle="false" label-width="250px"></dataForm> -->
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="250px" class="demo-ruleForm"> <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="250px" class="demo-ruleForm">
<el-form-item label="招标公告正式发布时:" prop="releaseTime"> <el-form-item label="招标公告正式发布时间:" prop="releaseTime">
<el-date-picker v-model="ruleForm.releaseTime" type="datetime" placeholder="选择日期时间" @change="releaseTime"> <el-date-picker v-model="ruleForm.releaseTime" type="datetime" placeholder="选择日期时间" @change="releaseTime">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
...@@ -42,6 +42,52 @@ export default { ...@@ -42,6 +42,52 @@ export default {
dataForm dataForm
}, },
data() { data() {
let checkTime = (rule, value, callback) => {
let nowTime= new Date().getTime() if (nowTime<value) { callback(); } else { return callback(new Error('请选择大于当前的时间')); } };
let checkTime1 = (rule, value, callback) => {
if(!this.ruleForm.releaseTime){
return callback(new Error('请先选择招标公告正式发布时间'));
}else{
if(value>this.ruleForm.releaseTime){
callback();
}else{
return callback(new Error('请选择大于招标公告正式发布时间'));
}
}
};
let checkTime2 = (rule, value, callback) => {
if(!this.ruleForm.startTime){
return callback(new Error('请先选择标书获取开始时间'));
}else{
if(value>this.ruleForm.startTime){
callback();
}else{
return callback(new Error('请选择大于标书获取开始时间'));
}
}
};
let checkTime3 = (rule, value, callback) => {
if(!this.ruleForm.endTime){
return callback(new Error('请先选择标书获取结束时间'));
}else{
if(value>this.ruleForm.endTime){
callback();
}else{
return callback(new Error('请选择大于标书获取结束时间'));
}
}
};
let checkTime4 = (rule, value, callback) => {
if(!this.ruleForm.answerQuestionEndTime){
return callback(new Error('请先选择投标人澄清答疑截止时间'));
}else{
if(value>this.ruleForm.answerQuestionEndTime){
callback();
}else{
return callback(new Error('请选择投标人澄清答疑截止时间'));
}
}
};
return { return {
ruleForm: { ruleForm: {
releaseTime: '', releaseTime: '',
...@@ -56,30 +102,45 @@ export default { ...@@ -56,30 +102,45 @@ export default {
required: true, required: true,
message: '请选择时间', message: '请选择时间',
trigger: 'blur' trigger: 'blur'
},
{
validator:checkTime,
}], }],
startTime: [{ startTime: [{
type: 'date', type: 'date',
required: true, required: true,
message: '请选择时间', message: '请选择时间',
trigger: 'blur' trigger: 'blur'
},
{
validator:checkTime1,
}], }],
endTime: [{ endTime: [{
type: 'date', type: 'date',
required: true, required: true,
message: '请选择时间', message: '请选择时间',
trigger: 'blur' trigger: 'blur'
},
{
validator:checkTime2,
}], }],
answerQuestionEndTime: [{ answerQuestionEndTime: [{
type: 'date', type: 'date',
required: true, required: true,
message: '请选择时间', message: '请选择时间',
trigger: 'blur' trigger: 'blur'
},
{
validator:checkTime3,
}], }],
openBidStartTime: [{ openBidStartTime: [{
type: 'date', type: 'date',
required: true, required: true,
message: '请选择时间', message: '请选择时间',
trigger: 'blur' trigger: 'blur'
},
{
validator:checkTime4,
}] }]
} }
} }
......
<template> <template>
<div > <div>
<div class="content-head"> <div class="content-head">
<breadCrumb :breads = "breads"></breadCrumb> <breadCrumb :breads="breads"></breadCrumb>
<h3>查看询价公告</h3> <h3>查看询价公告</h3>
<h5>查看询价公告</h5> <h5>查看询价公告</h5>
</div> </div>
<div class="home"> <div class="home">
<h1>苍南县公安局关于督查视频服务器5台在线询价公告</h1> <h1>{{projectName}}在线询价公告</h1>
<div class="flex-center"> <div class="flex-center">
<h6 style="margin-right:60px;margin-top:30px">询价所在地:苍南县</h6> <h6 style="margin-right:60px;margin-top:30px">询价所在地:苍南县</h6>
<h6 style="margin-buttom:60px;margin-top:30px">日期:2020-08-03</h6> <h6 style="margin-buttom:60px;margin-top:30px">日期:{{detail.createTime.substring(0,10)}}</h6>
</div> </div>
<div class="form"> <div class="form">
<h3 style="margin-buttom:30px">基本信息</h3> <h3 style="margin-buttom:30px">基本信息</h3>
<table border="0" width="100%" height="120px"> <table border="0" width="100%" height="120px">
<tr> <tr>
<td>询价单编号</td> <td>询价单编号</td>
<td>32020080349638311</td> <td>{{detail.inquiryCode}}</td>
<td>采购记</td> <td>采购目</td>
<td>服务器*</td> <td>{{detail.purchaseCategory}}</td>
<td>项目优先级</td> <td>项目优先级</td>
<td>非紧急</td> <td>{{detail.priority==0?"普通":"紧急"}}</td>
</tr> </tr>
<tr> <tr>
<td>报价开始时间</td> <td>报价开始时间</td>
<td>2020-08-03 10:28:39</td> <td>{{detail.startTime}}</td>
<td>报价截止时间</td> <td>报价截止时间</td>
<td>2020-08-06 15:00:00</td> <td>{{detail.endTime}}</td>
<td>采购单位</td> <td>采购单位</td>
<td>苍南县公安局</td> <td>{{detail.purchaseAgent}}</td>
</tr> </tr>
<tr> <tr>
<td>采购单位联系人</td> <td>采购单位联系人</td>
<td>王荔荣</td> <td>{{detail.contact}}</td>
<td>联系方式</td> <td>联系方式</td>
<td>13706628929</td> <td>1{{detail.contactPhone}}</td>
<td>传真号码</td> <td>传真号码</td>
<td>0577-68710076</td> <td>{{detail.facsimile}}</td>
</tr> </tr>
</table> </table>
<div class="appendix "> <div class="appendix ">
<div>预算金额(元)</div> <div>预算金额(元)</div>
<div>435000.00</div> <div>{{detail.budget}}</div>
</div> </div>
<div class="appendix "> <div class="appendix ">
<div>成交规则及确认方式</div> <div>成交规则及确认方式</div>
<div>自动成交</div> <div>自动成交</div>
</div> </div>
<h3 >供应商要求 </h3> <h3>供应商要求 </h3>
<div class="appendix "> <div class="appendix ">
<div>供应商规模要求</div> <div>供应商规模要求</div>
<div>阿里巴巴</div> <div>{{detail.supplierScale}}</div>
</div> </div>
<div class="appendix "> <div class="appendix ">
<div>供应商资格要求</div> <div>供应商资格要求</div>
<div>自动成交</div> <div>{{detail.supplierQualification}}</div>
</div> </div>
<div class="appendix "> <div class="appendix ">
<div>供应商区域范围要求</div> <div>供应商区域范围要求</div>
<div>浙江省</div> <div>{{detail.supplierRegion}}</div>
</div> </div>
<h3>询价商品清单</h3> <h3>询价商品清单</h3>
<dataTable :table-data="tabledata" :columns = "columns"></dataTable> <dataTable :table-data="detail.commodityVOList" :columns="columns"></dataTable>
<div class="appendix list pos"> <div class="appendix list pos">
<div >附件</div> <div>附件</div>
<div>IMG_0208.jpg</div><!-- 此处放文件 --> <ul v-if="detail.accessoryVOList">
<li v-for="(item,index) in detail.accessoryVOList" :key="index">
<div @click="down(item.accessoryUrl)">{{item.fileName}}</div>
</li>
</ul>
<div v-else>无附件</div>
</div> </div>
<h3>商务要求</h3> <h3>商务要求</h3>
<div class="appendix bus-require pos"> <div class="appendix bus-require pos">
<div class="flex-center"> <div class="flex-center">
<p>商务要求</p> <p>商务要求</p>
</div> </div>
<div>1、 本次招标内容为开平碉楼与村落保护规划服务(具体详见技术要求)。投标人不得将本项目中的内容拆散来投标。 2、 投标人资格要求: (1)投标人应当是具有文物保护工程勘探设计甲级资质的法人,其中其业务范围必须包含文物保护规划编制; (2)投标人应当具有世界文化遗产保护规划设计的工作经验。 3、 投标人应当在投标文件中详细列出并提供相关证明文件证明本项目的管理负责人和技术负责人的学历、职称、从事相关工作的时间,承担过类似项目名称、责任内容、完成日期以及其它业绩证明材料。 4、 投标人应当具有完整的质量保证体系。 5、 投标人应当在投标文件中提供具有文物保护工程勘探设计资格证明等文件。</div> <div v-html="detail.commercialRequirements"></div>
</div> </div>
<div class="button"> <div class="button">
<el-button type="primary" @click="back">返回</el-button> <el-button type="primary" @click="back">返回</el-button>
</div> </div>
<h3>参与报价供应商情况</h3>
<dataTable :table-data="Bidderlist" :columns="offerBiddercolumns" :is-index="true">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="200">
<template slot-scope="scope">
<el-button type="text" size="small" @click="see(scope.row)">查看中标公告</el-button>
</template>
</el-table-column>
</dataTable>
</div> </div>
</div> </div>
...@@ -84,214 +97,259 @@ ...@@ -84,214 +97,259 @@
</template> </template>
<script> <script>
import dataTable from '@components/nopageTable.vue' import {
import breadCrumb from '@components/dataBreadcrumb.vue' offerBidderlist,
export default { } from '@api/supply/bid'
import {
getTime1
} from '@utils/time'
import {
enquiryProjectId
} from '@api/purchaser/bid'
import dataTable from '@components/nopageTable.vue'
import breadCrumb from '@components/dataBreadcrumb.vue'
export default {
components: { components: {
dataTable, dataTable,
breadCrumb breadCrumb
}, },
data() { data() {
return { return {
projectName:"",
Bidderlist: [],
detail: "",
dialogFormVisible: false, dialogFormVisible: false,
breads: ['投标管理 ', '在线报名', '询价公告'], breads: ['投标管理 ', '在线报名', '询价公告'],
tabledata: [{ columns: [
name: '大白菜',
acount: '100',
unit: '斤',
brand: '天然',
size: '周杰伦',
price: '100',
remarks: '无',
quote: '100.00'
},
{ {
name: '大白菜',
acount: '100',
unit: '斤',
brand: '天然',
size: '周杰伦',
price: '100',
remarks: '无',
quote: '100.00'
}, {
name: '大白菜',
acount: '100',
unit: '斤',
brand: '天然',
size: '周杰伦',
price: '100',
remarks: '无',
quote: '100.00'
}, {
name: '大白菜',
acount: '100',
unit: '斤',
brand: '天然',
size: '周杰伦',
price: '100',
remarks: '无',
quote: '100.00'
}, {
name: '大白菜',
acount: '100',
unit: '斤',
brand: '天然',
size: '周杰伦',
price: '100',
remarks: '无',
quote: '100.00'
}],
columns: [{
label: '标的名称', label: '标的名称',
prop: 'name' prop: 'bidName'
}, },
{ {
label: '数量', label: '数量',
prop: 'acount' prop: 'quantity'
}, { },
{
label: '计量单位', label: '计量单位',
prop: 'unit' prop: 'unit'
}, { },
{
label: '品牌', label: '品牌',
prop: 'brand' prop: 'brand'
}, { },
{
label: '规格型号', label: '规格型号',
prop: 'size' prop: 'specification'
}, { },
label: '标杆价', {
label: '标杆价(元)',
prop: 'price' prop: 'price'
}, { },
{
label: '备注', label: '备注',
prop: 'remarks' prop: 'remark'
}, { },
label: '我的报价(元)', ],
prop: 'quote' offerBiddercolumns: [{
}] label: '供应商名称',
prop: 'companyName'
},
{
label: '报价时间',
prop: 'updateTime'
},
{
label: '报价',
prop: 'price',
sortable: true
},
{
slot: 'operate'
}
]
} }
}, },
methods: { methods: {
Prev() { time(data) {
this.$router.push('/supply/Join_items/work_place/all_content') getTime1(data)
},
back() {
this.$router.go(-1)
},
// 获取详情
async getenquiryProjectId() {
let projectId = localStorage.getItem("projectId")
const {
data,
code
} = await enquiryProjectId(projectId)
data.endTime=getTime1(data.endTime)
data.startTime=getTime1(data.startTime)
this.detail = data
},
// 参与报价的供应商的情况
async getofferBidderlist() {
let projectId = localStorage.getItem("projectId")
const {
data
} = await offerBidderlist(projectId)
this.Bidderlist = data
},
see() {
}
},
created() {
this.projectName=localStorage.getItem("projectName")
this.getenquiryProjectId()
this.getofferBidderlist()
} }
} }
}
</script> </script>
<style scoped> <style scoped>
.Tips{ .Tips {
color:#409EFF color: #409EFF
} }
.notice>h4{
.notice>h4 {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
margin-right: 30px; margin-right: 30px;
} }
.notice{
margin:20px 0; .notice {
margin: 20px 0;
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
} }
h2{
h2 {
/* margin-top:; */ /* margin-top:; */
margin-bottom:10px; margin-bottom: 10px;
} }
h6{
margin-bottom:10px; h6 {
margin-bottom: 10px;
}
.home{ }
padding:30px;
.home {
padding: 30px;
background: #fff; background: #fff;
box-sizing: border-box; box-sizing: border-box;
/* margin-left:20px; */ /* margin-left:20px; */
} }
h1{
h1 {
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
.form{
padding:20px; .form {
padding: 20px;
box-sizing: border-box; box-sizing: border-box;
} }
.form h3{
margin-top:20px; .form h3 {
margin-bottom:20px; margin-top: 20px;
margin-bottom: 20px;
font-weight: bold; font-weight: bold;
} }
/* table>tr{
/* table>tr{
text-align: center; text-align: center;
} */ } */
table{ table {
border-collapse: collapse; border-collapse: collapse;
} }
table>tr>td{
table>tr>td {
font-size: 16px; font-size: 16px;
border: 1px solid #ccc; border: 1px solid #ccc;
padding-left: 10px; padding-left: 10px;
} }
table>tr>td:nth-child(odd){
background: #F0F0F0 table>tr>td:nth-child(odd) {
} background: #F0F0F0;
.right-s{ width: 160px;
padding-right:200px; }
}
.appendix{ .right-s {
padding-right: 200px;
}
.appendix {
display: flex; display: flex;
border: 1px solid #ccc; border: 1px solid #ccc;
} }
.appendix>div:first-child{
width:159px; .appendix>div:first-child {
width: 172px;
border-right: 1px solid #ccc;
box-sizing: border-box; border-right: 1px solid #ccc;
padding-left: 10px; box-sizing: border-box;
} padding-left: 10px;
.appendix>div:last-child{ }
padding-left: 10px;
} .appendix>div:last-child {
.appendix>div:nth-child(odd){ padding-left: 10px;
}
.appendix>div:nth-child(odd) {
background: #F0F0F0 background: #F0F0F0
} }
.appendix>div{
font-size:16px; .appendix>div {
font-size: 16px;
line-height: 40px; line-height: 40px;
} }
.list>:first-child{
height:120px; .list>:first-child {
height: 120px;
line-height: 120px; line-height: 120px;
} }
.list{
.list {
margin-top: 20px; margin-top: 20px;
} }
.bus-require>div:first-child{
width:400px; .bus-require>div:first-child {
} width: 400px;
.bus-require>div:last-child{ }
.bus-require>div:last-child {
font-size: 10px; font-size: 10px;
} }
.pos>div:first-child{
.pos>div:first-child {
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
.last-pos{ .last-pos {
margin-left:40px; margin-left: 40px;
margin-top:20px; margin-top: 20px;
} }
.last-pos>div:first-child{
width:65px; .last-pos>div:first-child {
} width: 65px;
input{ }
width:100%;
height:70px; input {
} width: 100%;
.button{ height: 70px;
width:100px; }
margin:50px auto
} .button {
.home>h1{ width: 100px;
margin: 50px auto
}
.home>h1 {
font-weight: bold; font-weight: bold;
} }
</style> </style>
...@@ -21,27 +21,27 @@ ...@@ -21,27 +21,27 @@
<el-form-item label="询价所在地" prop="address"> <el-form-item label="询价所在地" prop="address">
<citySelect @sendprovinceId="getprovinceId" @sendcityId="getcityId" @senddistrictId="getdistrictId"></citySelect> <citySelect @sendprovinceId="getprovinceId" @sendcityId="getcityId" @senddistrictId="getdistrictId"></citySelect>
</el-form-item> </el-form-item>
<div class="flex-between" style="width:60%">
<el-form-item label="询价单编号" prop="inquiryCode">
<el-input v-model.trim="ruleForm.inquiryCode" placeholder="请输入" maxlength="30" style="width: 250px;"></el-input>
</el-form-item>
<el-form-item label="采购目录" prop="catalog">
<el-input v-model.trim="ruleForm.catalog" placeholder="请输入" maxlength="30" style="width: 250px;"></el-input>
</el-form-item>
<el-form-item label="项目优先级" prop="priority"> <el-form-item label="项目优先级" prop="priority">
<el-radio-group v-model="ruleForm.priority"> <el-radio-group v-model="ruleForm.priority" class="flex">
<el-radio :label="0">普通</el-radio> <el-radio :label="0">普通</el-radio>
<el-radio :label="1">紧急</el-radio> <el-radio :label="1">紧急</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<div class="flex-between" style="width:60%">
<el-form-item label="询价单编号" prop="inquiryCode">
<el-input v-model.trim="ruleForm.inquiryCode" placeholder="请输入" maxlength="30" style="width: 250px;"></el-input>
</el-form-item>
<el-form-item label="采购目录" prop="purchaseCategory">
<el-input v-model.trim="ruleForm.purchaseCategory" placeholder="请输入" maxlength="30" style="width: 250px;"></el-input>
</el-form-item>
</div> </div>
<div class="flex-between" style="width:60%"> <div class="flex-between" style="width:60%">
<el-form-item label="报价开始时间" prop="stateTime"> <el-form-item label="报价开始时间" prop="startTime">
<el-date-picker v-model="ruleForm.stateTime" type="datetime" placeholder="选择日期时间" disabled> <el-date-picker v-model="ruleForm.startTime" type="datetime" placeholder="选择日期时间" disabled style="width: 250px;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="报价结束时间" prop="endTime"> <el-form-item label="报价结束时间" prop="endTime">
<el-date-picker v-model="ruleForm.endTime" type="datetime" placeholder="选择日期时间" disabled> <el-date-picker v-model="ruleForm.endTime" type="datetime" placeholder="选择日期时间" disabled style="width: 250px;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="采购单位" prop="purchaseAgent"> <el-form-item label="采购单位" prop="purchaseAgent">
...@@ -128,7 +128,7 @@ import { ...@@ -128,7 +128,7 @@ import {
getTime getTime
} from '@utils/time' } from '@utils/time'
import { import {
commoditylist commoditylist,inqueryinfo
} from '@api/common/list' } from '@api/common/list'
export default { export default {
...@@ -194,7 +194,7 @@ export default { ...@@ -194,7 +194,7 @@ export default {
districtId: '', districtId: '',
inquiryCode: '', inquiryCode: '',
priority: '', priority: '',
stateTime: '', startTime: '',
endTime: '', endTime: '',
purchaseAgent: '1', purchaseAgent: '1',
contact: '1', contact: '1',
...@@ -204,7 +204,9 @@ export default { ...@@ -204,7 +204,9 @@ export default {
supplierScale: '', supplierScale: '',
supplierQualification: '', supplierQualification: '',
supplierRegion: '', supplierRegion: '',
commercialRequirements: '' commercialRequirements: '',
accessoryPOList:[],
purchaseCategory:""
}, },
rules: { rules: {
...@@ -233,7 +235,7 @@ export default { ...@@ -233,7 +235,7 @@ export default {
message: '请输入请输入', message: '请输入请输入',
trigger: 'blur' trigger: 'blur'
}], }],
stateTime: [{ startTime: [{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'change' trigger: 'change'
...@@ -278,24 +280,27 @@ export default { ...@@ -278,24 +280,27 @@ export default {
}, },
created() { created() {
let userInfo=JSON.parse(localStorage.getItem("userInfo")) let userInfo=JSON.parse(localStorage.getItem("userInfo"))
console.log(userInfo)
this.ruleForm.purchaseAgent=userInfo.companyName this.ruleForm.purchaseAgent=userInfo.companyName
this.ruleForm.contact=userInfo.name this.ruleForm.contact=userInfo.name
this.ruleForm.contactPhone=userInfo.phone this.ruleForm.contactPhone=userInfo.phone
let data=getTime(); let data=getTime();
console.log(data); this.ruleForm.startTime=data;
this.ruleForm.stateTime=data;
this.ruleForm.endTime=data;
this.ruleForm.endTime=data;
this.projectCode=localStorage.getItem("projectCode") this.projectCode=localStorage.getItem("projectCode")
this.projectName=localStorage.getItem("projectName") this.projectName=localStorage.getItem("projectName")
this.getcommoditylist() this.getcommoditylist()
this.getinqueryinfo()
}, },
methods: { methods: {
// 获取上传文件 // 获取上传文件
getfile(val) { getfile(val) {
this.ruleForm.requirementUrl = val
},
getfile(val) {
for (let item of val) {
item.accessoryUrl = item.fileUrl
}
this.ruleForm.accessoryPOList = val
}, },
// 获取市ID // 获取市ID
getprovinceId(val) { getprovinceId(val) {
...@@ -322,8 +327,8 @@ export default { ...@@ -322,8 +327,8 @@ export default {
ruleForm.projectId=localStorage.getItem("projectId") ruleForm.projectId=localStorage.getItem("projectId")
const { const {
code, code,
data msg
} = await createEnquiry(this.ruleForm) } = await createEnquiry(ruleForm)
if (code == 200) { if (code == 200) {
this.$message({ this.$message({
message: msg, message: msg,
...@@ -333,9 +338,9 @@ export default { ...@@ -333,9 +338,9 @@ export default {
setTimeout(()=>{ setTimeout(()=>{
this.$router.go(-1) this.$router.go(-1)
},1500) },1500)
}else if(code == 500){
this.$message.error(msg)
} }
} else {
} }
} catch (err) { } catch (err) {
console.log(err) console.log(err)
...@@ -349,7 +354,16 @@ export default { ...@@ -349,7 +354,16 @@ export default {
code code
} = await commoditylist(projectId) } = await commoditylist(projectId)
this.tableData=data this.tableData=data
} },
// 获取招标截止时间
async getinqueryinfo() {
let projectId=localStorage.getItem("projectId")
const {
data,
code
} = await inqueryinfo(projectId)
this.ruleForm.endTime=data.endTime;
},
} }
} }
......
...@@ -108,6 +108,8 @@ export default { ...@@ -108,6 +108,8 @@ export default {
setTimeout(()=>{ setTimeout(()=>{
this.$router.go(-1) this.$router.go(-1)
},1500) },1500)
}else if(code == 500){
this.$message.error(msg)
} }
} }
} catch (err) { } catch (err) {
......
...@@ -3,10 +3,30 @@ ...@@ -3,10 +3,30 @@
<div class="user"> <div class="user">
<div>你好 ,MaikoXie , 欢迎开始一天的工作!</div> <div>你好 ,MaikoXie , 欢迎开始一天的工作!</div>
<ul class="user-list flex-between"> <ul class="user-list flex-between">
<li v-for="item in imglist" :key="item.id"> <li class="flex-colunm ">
<img :src="item.img" alt=""> <img src="@static/images/user.png" alt="">
<div>{{ item.user }}</div> <div>全部项目</div>
<div>{{ item.number }}</div> <div>{{detail.projectCount}}</div>
</li>
<li class="flex-colunm ">
<img src="@static/images/user.png" alt="">
<div>我的供应商</div>
<div>{{detail.bidderCount}}</div>
</li>
<li class="flex-colunm ">
<img src="@static/images/user.png" alt="">
<div>已定标项目</div>
<div>{{detail.calibrated}}</div>
</li>
<li class="flex-colunm ">
<img src="@static/images/user.png" alt="">
<div>已流标项目</div>
<div>{{detail.bidFailed}}</div>
</li>
<li class="flex-colunm ">
<img src="@static/images/user.png" alt="">
<div>已终止项目</div>
<div>{{detail.end}}</div>
</li> </li>
</ul> </ul>
<h1>项目信息</h1> <h1>项目信息</h1>
...@@ -19,10 +39,30 @@ ...@@ -19,10 +39,30 @@
</dataTable> </dataTable>
<h1>待办事项</h1> <h1>待办事项</h1>
<ul class="flex-between project-list"> <ul class="flex-between project-list">
<li v-for="item in projectlist" :key="item.id"> <li class="flex-colunm">
<img :src="item.img" alt=""> <img src="@static/images/item.png" alt="">
<div>{{ item. project }}</div> <div>待修改项目</div>
<div>{{ item.number }}</div> <div>{{ detail.projectCount }}</div>
</li>
<li class="flex-colunm">
<img src="@static/images/item.png" alt="">
<div>待修改询价公告</div>
<div>{{ detail.inquiryNoticeNeedModify }}</div>
</li>
<li class="flex-colunm">
<img src="@static/images/item.png" alt="">
<div>待修改招标公告</div>
<div>{{ detail.biddingNoticeNeedModify }}</div>
</li>
<li class="flex-colunm">
<img src="@static/images/item.png" alt="">
<div>待签署应收账款买断合同</div>
<div>{{ detail.payment }}</div>
</li>
<li class="flex-colunm">
<img src="@static/images/item.png" alt="">
<div>待确认供应商凭证</div>
<div>{{ detail.credentials }}</div>
</li> </li>
</ul> </ul>
</div> </div>
...@@ -30,7 +70,7 @@ ...@@ -30,7 +70,7 @@
</template> </template>
<script> <script>
import {home} from '@api/purchaser/home'
import {getSearchString} from '@utils/common' import {getSearchString} from '@utils/common'
import dataTable from '@components/nopageTable.vue' import dataTable from '@components/nopageTable.vue'
export default { export default {
...@@ -39,6 +79,7 @@ export default { ...@@ -39,6 +79,7 @@ export default {
}, },
data() { data() {
return { return {
detail:"",
tableData: [{ tableData: [{
state: '审核通过待发布的项目', state: '审核通过待发布的项目',
number: '10', number: '10',
...@@ -99,48 +140,31 @@ export default { ...@@ -99,48 +140,31 @@ export default {
number: '100' number: '100'
} }
], ],
imglist: [{
id: 0,
img: require('@static/images/user.png'),
user: '供应商',
number: '100'
},
{
id: 1,
img: require('@static/images/user.png'),
user: '采购商',
number: '100'
},
{
id: 2,
img: require('@static/images/user.png'),
user: '全部项目',
number: '100'
},
{
id: 3,
img: require('@static/images/user.png'),
user: '正在进行的项目',
number: '100'
},
{
id: 4,
img: require('@static/images/user.png'),
user: '参与投标总次数',
number: '100'
}
]
} }
}, },
created(){ created(){
let token=getSearchString("token"); let token=getSearchString("token");
console.log(token)
localStorage.setItem("token",token) localStorage.setItem("token",token)
this.gethome()
}, },
methods: { methods: {
handleSee(row) { handleSee(row) {
this.$router.push(row.url) this.$router.push(row.url)
}, },
async gethome() {
const {
data,
code
} = await home()
this.detail=data
this.tableData[0].number=data.prePublic
this.tableData[1].number=data.sellingBidding
this.tableData[2].number=data.bidding
this.tableData[3].number=data.open
this.tableData[4].number=data.bidOpening
this.tableData[5].number=data.bidOevaluating
}
} }
} }
</script> </script>
......
...@@ -218,8 +218,8 @@ ...@@ -218,8 +218,8 @@
createWebSocket() { createWebSocket() {
let token=localStorage.getItem("token") let token=localStorage.getItem("token")
let projectId = localStorage.getItem("projectId") let projectId = localStorage.getItem("projectId")
// this.websocket = new WebSocket('ws://192.168.3.35:8085/webSocket/' + projectId +"/"+token ) this.websocket = new WebSocket('ws://192.168.3.35:8085/webSocket/' + projectId +"/"+token )
this.websocket = new WebSocket('ws://192.168.200.201:8082/webSocket/' + projectId +"/"+token ) // this.websocket = new WebSocket('ws://192.168.200.201:8082/webSocket/' + projectId +"/"+token )
// 连接成功时 // 连接成功时
this.websocket.onopen = () => {} this.websocket.onopen = () => {}
this.websocket.onmessage = event => { this.websocket.onmessage = event => {
......
...@@ -5,8 +5,8 @@ import { Message, MessageBox } from 'element-ui' ...@@ -5,8 +5,8 @@ import { Message, MessageBox } from 'element-ui'
// 创建axios实例 // 创建axios实例
const service = axios.create({ const service = axios.create({
baseURL: 'http://192.168.200.201:8082/apis', // baseURL: 'http://192.168.200.201:8082/apis',
// baseURL: 'http://192.168.3.35:8085/apis', baseURL: 'http://192.168.3.35:8085/apis',
timeout: 35000 // 请求超时时间 timeout: 35000 // 请求超时时间
}) })
...@@ -42,8 +42,8 @@ service.interceptors.response.use( ...@@ -42,8 +42,8 @@ service.interceptors.response.use(
Message.error("登陆失效,请重新登录!") Message.error("登陆失效,请重新登录!")
localStorage.removeItem('token'); localStorage.removeItem('token');
setTimeout(function () { setTimeout(function () {
location.href = 'http://192.168.200.201:8081/login/user/'; // location.href = 'http://192.168.200.201:8081/login/user/';
// location.href = 'http://localhost:3000/login/user/'; location.href = 'http://localhost:3000/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