Commit 03af227d authored by 张冬's avatar 张冬

报价状态和查看和列表查询报价

parent 4d606b1c
......@@ -369,3 +369,12 @@ export function earnestEdit(data) {
data:data
})
}
// 新增接口
export function isOffer(projectId) {
return request({
url: `bidder-apply/isOffer/${projectId}`,
method: 'get',
})
}
\ No newline at end of file
......@@ -2,24 +2,18 @@
<div class="noticeDetail">
<div v-if="state">
<div class="info_mes">
<p>
项目名称:{{projectdetail.projectName}}
</p>
<p>
项目 项目编号:{{projectdetail.projectCode}}
</p>
<p >
发布日期:{{detail.createTime}}
</p>
<p>项目名称:{{ projectdetail.projectName }}</p>
<p>项目 项目编号:{{ projectdetail.projectCode }}</p>
<p>发布日期:{{ detail.createTime }}</p>
</div>
<h1>{{detail.title}}</h1>
<h1>{{ detail.title }}</h1>
<div v-html="detail.content"></div>
<div class="content_list">
<div class="flex-item">
<div>附件下载:</div>
<ul v-if="detail.accessoryVOList">
<li v-for="item in detail.accessoryVOList" :key="item.id">
<a :href="item.accessoryUrl">{{item.fileName}}</a>
<a :href="item.accessoryUrl">{{ item.fileName }}</a>
</li>
</ul>
<ul v-else>
......@@ -29,73 +23,64 @@
</div>
<slot></slot>
</div>
<div v-else class="no-notice">
未找到该公告详情
</div>
<div v-else class="no-notice">{{msg}}</div>
</div>
</template>
<script>
import {
biddingProjectId,projectDetail
} from '@api/common/list'
export default {
import { biddingProjectId, projectDetail } from '@api/common/list';
export default {
data() {
return {
projectdetail:"",
detail: "",
state:true
}
msg: '',
projectdetail: '',
detail: '',
state: true
};
},
methods: {
// 获取详情
async getbiddingProjectId() {
let projectId = localStorage.getItem("projectId")
const {
data,
code
} = await biddingProjectId(projectId)
if(code==200){
this.detail = data
}else if(code==500){
this.state=false
let projectId = localStorage.getItem('projectId');
const { data, code } = await biddingProjectId(projectId);
if (code == 200) {
this.detail = data;
} else if (code == 500) {
this.state = false;
this.msg = msg;
}
},
async getprojectDetail() {
let projectId = localStorage.getItem("projectId")
const {
data,
code
} = await projectDetail(projectId)
if(code==200){
this.projectdetail = data
let projectId = localStorage.getItem('projectId');
const { data, code } = await projectDetail(projectId);
if (code == 200) {
this.projectdetail = data;
}
}
},
},
created() {
this.getbiddingProjectId()
this.getbiddingProjectId();
this.getprojectDetail();
}
}
};
</script>
<style scoped>
.no-notice{
.no-notice {
margin-top: 30px;
text-align: center;
margin-bottom: 30px;
}
.info_mes {
}
.info_mes {
margin-bottom: 40px;
display: flex;
justify-content: space-between;
}
.noticeDetail h1 {
}
.noticeDetail h1 {
text-align: center;
margin-bottom: 30px;
}
.content_list{
margin-top:30px
}
}
.content_list {
margin-top: 30px;
}
</style>
......@@ -71,7 +71,7 @@
<slot></slot>
</div>
<div v-if="!state" class="no-notice">
未找到该公告详情
{{msg}}
</div>
</div>
</template>
......@@ -90,6 +90,7 @@
},
data() {
return {
msg:"",
state:true,
tableData:[],
projectName:"",
......@@ -137,7 +138,8 @@
let projectId = localStorage.getItem("projectId")
const {
data,
code
code,
msg
} = await enquiryProjectId(projectId)
if(code==200){
data.endTime=getTime1(data.endTime)
......@@ -146,6 +148,7 @@
this.detail = data
}else if(code==500){
this.state=false
this.msg=msg
}
},
},
......
......@@ -2,8 +2,8 @@
<div>
<div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<h3>招标结果通知书辑</h3>
<h5>招标结果通知书辑</h5>
<h3>招标结果通知书</h3>
<h5>招标结果通知书</h5>
</div>
<div class="content ">
<div class="message flex-colunm">
......@@ -138,7 +138,7 @@
.message>div {
margin-bottom: 30px;
width: 50%;
width: 60%;
}
.message>.button {
......
......@@ -18,7 +18,7 @@
</dataTable>
<div class="button flex-center">
<el-button @click="back">返回</el-button>
<el-button type="primary" @click="submitData">提交审核</el-button>
<el-button type="primary" @click="submitData">提交</el-button>
</div>
</div>
</div>
......
......@@ -140,7 +140,18 @@ export default {
singleUpload
},
data() {
// 测试省份
let islocal = (rule, value, callback) => {
if (!this.ruleForm.provinceId) {
callback(new Error('请选择省份'))
} else if (!this.ruleForm.cityId) {
callback(new Error('请选择市'))
} else if (!this.ruleForm.districtId) {
callback(new Error('请选择区'))
} else {
callback()
}
}
let checkfacsimile = async (rule, value, callback) => {
const reg = /^(?:\d{3,4}-)?\d{7,8}(?:-\d{1,6})?$/
if (reg.test(value)) {
......@@ -207,6 +218,11 @@ export default {
},
rules: {
address: [{
required: true,
validator: islocal,
trigger: 'change'
}],
budget: [{
required: true,
message: '请输入',
......
......@@ -13,7 +13,7 @@
<div>招标结果通知书编号:11111</div>
</div>
<div v-if="state">
<div class="flex-between">
<div class="flex">
<div style="margin-right: 20px;">附件:中标通知书.pdf</div>
<el-button size="mini">下载</el-button>
</div>
......
......@@ -4,9 +4,9 @@
<div>
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<noticeDetail>
<slot>
<!-- <slot>
<div @click="jump" class="jump">项目报价</div>
</slot>
</slot> -->
</noticeDetail>
</div>
<div class="centerButton" v-if='bidType==0'>
......@@ -48,9 +48,7 @@
}
},
methods: {
jump() {
this.$router.push("/supply/bid/signupOnline/seePrice")
},
signup(row) {
this.$router.push("/supply/bid/signupOnline/SignUp")
},
......
......@@ -8,7 +8,8 @@
<p>只有报价后才能参与投标报名</p>
</div>
<div class="centerButton">
<el-button type="primary" @click="dialogFormVisible = true">我要报价</el-button>
<el-button type="primary" @click="dialogFormVisible = true" v-if="!isOffer">我要报价</el-button>
<el-button type="primary" @click="offerBidder1 = true" v-else>查看报价</el-button>
<el-button type="primary" @click="see">查看其它供应商报价</el-button>
</div>
</slot>
......@@ -18,7 +19,14 @@
<dataTable :table-data="commoditylist" :columns="commoditycolumns">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="150">
<template slot-scope="scope">
<el-input-number v-model="scope.row.cost" :min="0" :controls="false" :precision="2" style="width:100px" placeholder="请输入"></el-input-number>
<el-input-number
v-model="scope.row.cost"
:min="0"
:controls="false"
:precision="2"
style="width: 100px"
placeholder="请输入"
></el-input-number>
</template>
</el-table-column>
</dataTable>
......@@ -29,26 +37,26 @@
</el-dialog>
<!-- 报价供应商情况 -->
<el-dialog :visible.sync="offerBidder" title="查看其它供应商报价">
<dataTable :table-data="offerBidderlist" :columns="offerBiddercolumns" :is-index="true">
</dataTable>
<dataTable :table-data="offerBidderlist" :columns="offerBiddercolumns" :is-index="true"> </dataTable>
<div slot="footer" class="dialog-footer">
<el-button @click="offerBidder = false">取 消</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="offerBidder1" title="查看报价情况">
<dataTable :table-data="offerBidderlist1" :columns=" columns" :is-index="true"> </dataTable>
<div slot="footer" class="dialog-footer">
<el-button @click="offerBidder1 = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
noticeEnquiry,
commoditylist,
offerBidderlist,
offerPrice
} from '@api/supply/bid'
import priceDetail from '@components/detail/priceDetail.vue'
import dataTable from '@components/nopageTable.vue'
import breadCrumb from '@components/dataBreadcrumb.vue'
export default {
import { noticeEnquiry, commoditylist, offerBidderlist, offerPrice, isOffer } from '@api/supply/bid';
import priceDetail from '@components/detail/priceDetail.vue';
import dataTable from '@components/nopageTable.vue';
import breadCrumb from '@components/dataBreadcrumb.vue';
export default {
components: {
dataTable,
breadCrumb,
......@@ -56,40 +64,51 @@
},
data() {
return {
isOffer: '',
offerBidderlist: [],
offerBidderlist1: [],
offerBidder: false,
offerBidder1: false,
columns: [],
tabledata: [],
dialogFormVisible: false,
breads: ['投标管理 ', '在线报名', '询价公告'],
commoditylist: [],
commoditycolumns: [{
commoditycolumns: [
{
label: '标的名称',
prop: 'bidName'
},
{
label: '数量',
prop: 'quantity'
}, {
},
{
label: '计量单位',
prop: 'unit'
}, {
},
{
label: '品牌',
prop: 'brand'
}, {
},
{
label: '规格型号',
prop: 'specification'
}, {
},
{
label: '标杆价',
prop: 'price'
}, {
},
{
label: '备注',
prop: 'remark'
}, {
},
{
slot: 'operate'
}
],
offerBiddercolumns: [{
offerBiddercolumns: [
{
label: '供应商名称',
prop: 'companyName'
},
......@@ -97,72 +116,111 @@
label: '报价时间',
prop: 'updateTime'
}
],
columns: [
{
label: '标的名称',
prop: 'bidName'
},
{
label: '数量',
prop: 'quantity'
},
{
label: '计量单位',
prop: 'unit'
},
{
label: '品牌',
prop: 'brand'
},
{
label: '规格型号',
prop: 'specification'
},
{
label: '标杆价(元)',
prop: 'sightPrice'
},
{
label: '备注',
prop: 'remark'
},
{
label: '价格',
prop: 'offerPrice'
},
]
}
};
},
methods: {
see() {
this.offerBidder = true
this.getofferBidderlist()
this.offerBidder = true;
this.getofferBidderlist();
},
Prev() {
this.$router.push('/supply/Join_items/work_place/all_content')
this.$router.push('/supply/Join_items/work_place/all_content');
},
// 查看询价公告里的商品报价列表
async getcommoditylist() {
let projectId = localStorage.getItem("projectId")
const {
data
} = await commoditylist(projectId)
let projectId = localStorage.getItem('projectId');
const { data } = await commoditylist(projectId);
for (let item of data) {
item.cost = undefined
item.cost = undefined;
}
this.commoditylist = data
this.commoditylist = data;
},
// 参与报价的供应商的情况
async getofferBidderlist() {
let projectId = localStorage.getItem("projectId")
const {
data
} = await offerBidderlist(projectId)
this.offerBidderlist = data
let projectId = localStorage.getItem('projectId');
const { data } = await offerBidderlist(projectId);
this.offerBidderlist = data;
},
//报价
async submitData() {
try {
let message = {}
message.companyId = localStorage.getItem("companyId")
message.projectId = localStorage.getItem("projectId")
let message = {};
message.companyId = localStorage.getItem('companyId');
message.projectId = localStorage.getItem('projectId');
let commodityList = this.commoditylist.map((item, index) => {
return {
id: item.id,
cost: item.cost
}
})
message.commodityList = commodityList
const {
msg,
code
} = await offerPrice(message)
};
});
message.commodityList = commodityList;
const { msg, code } = await offerPrice(message);
if (code == 200) {
this.$message.success(msg)
this.dialogFormVisible = false
this.$message.success(msg);
this.dialogFormVisible = false;
this.getIsOffer();
} else {
this.$message.error(msg)
this.$message.error(msg);
}
} catch (e) {
console.log(e)
console.log(e);
}
},
// 获取是否报价
async getIsOffer() {
let projectId = localStorage.getItem('projectId');
const { data } = await isOffer(projectId);
if (!data) {
this.isOffer = data;
} else {
this.offerBidderlist1 = data;
this.isOffer = true;
}
}
},
created() {
this.getcommoditylist();
this.getIsOffer();
}
}
};
</script>
<style scoped>
</style>
......@@ -36,11 +36,11 @@
</div>
</div>
<el-dialog :visible.sync="dialogFormVisible">
<div class="flex">
<div class="flex-item">
<i class="el-icon-warning"></i>
<h3>请勾选是否买断账期</h3>
</div>
<p>买断账期服务是平台提供的优化供应商现金流的服务,选择此服务的供应商仅需支付服务费即可凭借应收账款凭证及在平台的中标数据获得金融公司提供的资产抵押服务,不中标,该服务不生效。详情咨询客服:400-123-123</p>
<p>买断账期服务是平台提供的优化供应商现金流的服务,选择此服务的供应商仅需支付服务费即可凭借应收账款凭证及在平台的中标数据获得金融公司提供的资产抵押服务,不中标,该服务不生效。详情咨询客服:13810057696</p>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
</div>
......@@ -157,10 +157,10 @@
</script>
<style scoped>
h3 {
/* h3 {
margin-top: 20px;
margin-left: 20px;
}
} */
h5 {
margin-top: 20px;
......
......@@ -4,15 +4,14 @@
<dataTable :columns="columns" :page-obj="pageObj" :breads="breads" :checklist="checklist" url="/bidder/project/list">
<el-table-column slot="opration" align="center" label="状态" flexd="right" width="200px">
<template slot-scope="scope">
<div>{{totalMarks(scope.row.status)}}</div>
<div>{{ totalMarks(scope.row.status) }}</div>
</template>
</el-table-column>
<el-table-column slot="opration" align="center" label="快捷操作" flexd="right" width="200px">
<el-table-column slot="opration" align="center" label="快捷操作" flexd="right" width="300px">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handlesee(scope.row)">查看招标公告
</el-button>
<el-button type="text" size="small" @click="signup(scope.row)">报名
</el-button>
<el-button type="text" size="small" @click="handlesee(scope.row)">查看招标公告 </el-button>
<el-button type="text" size="small" @click="jump(scope.row)">查看询价公告 </el-button>
<el-button type="text" size="small" @click="signup(scope.row)">报名 </el-button>
</template>
</el-table-column>
</dataTable>
......@@ -21,8 +20,8 @@
</template>
<script>
import {projectStatusList} from '@api/common/list'
import dataTable from '@components/dataTable.vue'
import { projectStatusList } from '@api/common/list';
import dataTable from '@components/dataTable.vue';
export default {
components: {
dataTable
......@@ -33,79 +32,79 @@ export default {
size: 10,
currentPage: 1,
func: (currentPage) => {
this.pageTurning(currentPage)
this.pageTurning(currentPage);
}
},
checklist: [{
checklist: [
{
title: '项目名称',
type: 'input',
model: 'projectName'
}
],
breads: ['招标管理', '在线报名'],
columns: [{
columns: [
{
label: '项目编号',
prop: 'code'
},
{
label: '项目名称',
prop: 'name'
},
{
label: '标书结束时间',
prop: 'endTime'
},
{
slot: 'opration'
}],
}
]
};
},
created() {
this.getprojectStatusList();
},
methods: {
jump(row) {
this.$router.push('/supply/bid/signupOnline/seePrice');
localStorage.setItem('projectId', row.projectId);
},
totalMarks: function (status) {
let value=this.map.get(status)
return value
let value = this.map.get(status);
return value;
},
// 获取状态
async getprojectStatusList(){
const data = await projectStatusList()
async getprojectStatusList() {
const data = await projectStatusList();
this.map = new Map();
for(let item of data){
this.map.set(item.id,item.name)
for (let item of data) {
this.map.set(item.id, item.name);
}
},
handlesee(row) {
this.$router.push("/supply/bid/signupOnline/seeAnnouncement")
this.$router.push('/supply/bid/signupOnline/seeAnnouncement');
// this.$router.push(`/supply/bid/signupOnline/seeAnnouncement?id=${row.projectId}`)
localStorage.setItem("projectId",row.projectId)
localStorage.setItem('projectId', row.projectId);
},
signup(row){
this.$router.push("/supply/bid/signupOnline/SignUp")
signup(row) {
this.$router.push('/supply/bid/signupOnline/SignUp');
// this.$router.push(`/supply/bid/signupOnline/SignUp?id=${row.projectId}`)
localStorage.setItem("projectId",row.projectId)
localStorage.setItem('projectId', row.projectId);
}
}
}
};
</script>
<style scoped>
.home>.user{
.home > .user {
box-sizing: border-box;
padding-top: 20px;
padding-left: 20px;
background: #fff;
}
.name{
.name {
font-size: 20px;
margin-left:20px;
margin-left: 20px;
}
</style>
\ No newline at end of file
......@@ -290,7 +290,7 @@ export default new Router({
{
path: '/purchaser/bid/administrationList',
component: () => import('../pages/purchaser/bid/administrationList.vue'),
meta: { title: '招标项目管理' },
meta: { title: '招标项目管理' }
},
{
path: '/purchaser/bid/workbench',
......@@ -514,13 +514,13 @@ export default new Router({
},
{
path: '/purchaser/buyOut/contractSign',
name:"/purchaser/buyOut/contractSign",
name: '/purchaser/buyOut/contractSign',
show: true,
component: () => import('../pages/purchaser/buyOut/contractSign.vue')
},
{
path: '/purchaser/buyOut/contractSee',
name:"/purchaser/buyOut/contractSee",
name: '/purchaser/buyOut/contractSee',
show: true,
component: () => import('../pages/purchaser/buyOut/contractSee.vue')
},
......@@ -706,7 +706,6 @@ export default new Router({
component: () => import('../pages/supply/bid/joinProject/bidStage/failList/see.vue')
},
{
path: '/supply/bid/joinProject/bidSubmit/bidSubmit',
show: true,
......@@ -769,13 +768,13 @@ export default new Router({
},
{
path: '/supply/buyOut/contractSign',
name:"/supply/buyOut/contractSign",
name: '/supply/buyOut/contractSign',
show: true,
component: () => import('../pages/supply/buyOut/contractSign.vue')
},
{
path: '/supply/buyOut/contractSee',
name:"/supply/buyOut/contractSee",
name: '/supply/buyOut/contractSee',
show: true,
component: () => import('../pages/supply/buyOut/contractSee.vue')
},
......@@ -837,6 +836,5 @@ export default new Router({
}
]
}
],
]
});
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