Commit 38668a85 authored by 张冬's avatar 张冬

联调

parent 3e794727
......@@ -4,7 +4,7 @@ import request from '@/utils/request'
// 2.1在线报名
// 2.1.1
// 查看招标公告
export function biddingDetail(id) {
return request({
......@@ -12,6 +12,8 @@ export function biddingDetail(id) {
method: 'get',
})
}
// 2.1.2
//供应商报名
export function projectapply(data) {
return request({
......@@ -21,10 +23,37 @@ export function projectapply(data) {
})
}
// 2.1.3
// 查看询价公告里的商品报价列表
export function commoditylist(projectId) {
return request({
url: `/bidder-apply/commodity/list/${projectId}`,
method: 'get',
})
}
//供应商对询价公告的标的进行报价
export function offerPrice(data) {
return request({
url: "bidder-apply/offer-price",
method: 'post',
data:data
})
}
// 参与报价的供应商的情况
export function offerBidderlist(projectId) {
return request({
url: `bidder-apply/offerBidder/list/${projectId}`,
method: 'get',
})
}
//2.2.1
// 查看询价公告
export function noticeEnquiry(id) {
return request({
url: `notice/enquiry/${id}`,
......@@ -34,21 +63,41 @@ export function noticeEnquiry(id) {
// 招标文件下载
export function bidBooklist(params) {
return request({
url: "bidder/project/bidBook/list",
url: "bidder-bidbook/bidBook/list",
method: 'get',
params:params
})
}
// 检测是否能下载
export function downLoad(projectId) {
return request({
url: `bidder-bidbook/bidBook/downLoad/${projectId}`,
method: 'get',
})
}
//项目完整详情查看
export function projectdetail(id) {
return request({
url: `project/detail/${id}`,
method: 'get',
})
}
//流程进度
export function timeInfo(projectId) {
return request({
url: `project/timeInfo/${projectId}`,
method: 'get',
})
}
// 标书费缴纳
export function bidBookpayment(data) {
return request({
url: "/bidder/project/bidBook/payment",
url: "/bidder-bidbook/bidBook/payment",
method: 'post',
data:data
})
}
// 保证金缴纳
export function bidderEarnestpayment(data) {
return request({
......
......@@ -55,103 +55,10 @@ export default {
data() {
return {
collapse: false,
items: [
{
icon: 'el-icon-lx-home',
index: '/purchaser/Home',
title: '首页'
},
{
icon: 'el-icon-lx-home',
index:"2",
title: '招标管理',
subs:[
{
icon: 'el-icon-lx-home',
index: '/purchaser/bid/administrationList',
title: '招标项目管理',
}
]
},
{
icon: 'el-icon-lx-cascades',
title: '应收账款买断管理',
index:'3',
subs:[
{
icon: 'el-icon-lx-home',
index: '/purchaser/buyOut/buyoutList',
title: '应收账款买断列表',
}
]
},
{
icon: 'el-icon-lx-cascades',
title: '供应商管理',
index:'4',
subs:[
{
icon: 'el-icon-lx-home',
index: '/purchaser/supply/allSupplyList',
title: '供应商列表',
},
{
icon: 'el-icon-lx-home',
index: '/purchaser/supply/mySupplyList',
title: '我的供应商',
}
]
},
{
icon: 'el-icon-lx-copy',
title: '组织管理',
index:'5',
subs:[
{
icon: 'el-icon-lx-home',
index: '/purchaser/organization/informationSee',
title: '单位信息',
},
{
icon: 'el-icon-lx-home',
index: '/purchaser/organization/memberManagement',
title: '成员管理',
},
{
icon: 'el-icon-lx-home',
index: '/purchaser/organization/jurisdictionList',
title: '角色管理',
}
]
},
{
icon: 'el-icon-lx-redpacket_fill',
title: '系统管理',
index:'6',
subs:[
{
icon: 'el-icon-lx-home',
index: '/purchaser/organization/jurisdictionList',
title: 'CA绑定与解除',
},
{
icon: 'el-icon-lx-home',
index: '/purchaser/system/logList',
title: '日志列表',
},
]
}
],
// 供应商
// items: [
// {
// icon: 'el-icon-lx-home',
// index: '/supply/Home',
// index: '/purchaser/Home',
// title: '首页'
// },
// {
......@@ -161,13 +68,8 @@ export default {
// subs:[
// {
// icon: 'el-icon-lx-home',
// index: '/supply/bid/signupOnline',
// title: '在线报名',
// },
// {
// icon: 'el-icon-lx-home',
// index: '/supply/bid/joinProject/projectList',
// title: '我参与的项目',
// index: '/purchaser/bid/administrationList',
// title: '招标项目管理',
// }
// ]
// },
......@@ -178,11 +80,29 @@ export default {
// subs:[
// {
// icon: 'el-icon-lx-home',
// index: '/supply/buyOut/buyoutList',
// index: '/purchaser/buyOut/buyoutList',
// title: '应收账款买断列表',
// }
// ]
// },
// {
// icon: 'el-icon-lx-cascades',
// title: '供应商管理',
// index:'4',
// subs:[
// {
// icon: 'el-icon-lx-home',
// index: '/purchaser/supply/allSupplyList',
// title: '供应商列表',
// },
// {
// icon: 'el-icon-lx-home',
// index: '/purchaser/supply/mySupplyList',
// title: '我的供应商',
// }
// ]
// },
// {
// icon: 'el-icon-lx-copy',
// title: '组织管理',
......@@ -190,17 +110,17 @@ export default {
// subs:[
// {
// icon: 'el-icon-lx-home',
// index: '/supply/organization/informationSee',
// index: '/purchaser/organization/informationSee',
// title: '单位信息',
// },
// {
// icon: 'el-icon-lx-home',
// index: '/supply/organization/memberManagement',
// index: '/purchaser/organization/memberManagement',
// title: '成员管理',
// },
// {
// icon: 'el-icon-lx-home',
// index: '/supply/organization/jurisdictionList',
// index: '/purchaser/organization/jurisdictionList',
// title: '角色管理',
// }
// ]
......@@ -212,30 +132,109 @@ export default {
// subs:[
// {
// icon: 'el-icon-lx-home',
// index: '/supply/organization/jurisdictionList',
// index: '/purchaser/organization/jurisdictionList',
// title: 'CA绑定与解除',
// },
// {
// icon: 'el-icon-lx-home',
// index: '/supply/system/logList',
// index: '/purchaser/system/logList',
// title: '日志列表',
// },
// ]
// },
// {
// icon: 'el-icon-lx-cascades',
// title: '制作投标文件',
// index:'3',
// subs:[
// {
// icon: 'el-icon-lx-home',
// index: '/supply/markBid/markBid',
// title: '制作投标文件',
// }
// ]
// },
// ]
// ],
// 供应商
items: [
{
icon: 'el-icon-lx-home',
index: '/supply/Home',
title: '首页'
},
{
icon: 'el-icon-lx-home',
index:"2",
title: '招标管理',
subs:[
{
icon: 'el-icon-lx-home',
index: '/supply/bid/signupOnline',
title: '在线报名',
},
{
icon: 'el-icon-lx-home',
index: '/supply/bid/joinProject/projectList',
title: '我参与的项目',
}
]
},
{
icon: 'el-icon-lx-cascades',
title: '应收账款买断管理',
index:'3',
subs:[
{
icon: 'el-icon-lx-home',
index: '/supply/buyOut/buyoutList',
title: '应收账款买断列表',
}
]
},
{
icon: 'el-icon-lx-copy',
title: '组织管理',
index:'5',
subs:[
{
icon: 'el-icon-lx-home',
index: '/supply/organization/informationSee',
title: '单位信息',
},
{
icon: 'el-icon-lx-home',
index: '/supply/organization/memberManagement',
title: '成员管理',
},
{
icon: 'el-icon-lx-home',
index: '/supply/organization/jurisdictionList',
title: '角色管理',
}
]
},
{
icon: 'el-icon-lx-redpacket_fill',
title: '系统管理',
index:'6',
subs:[
{
icon: 'el-icon-lx-home',
index: '/supply/organization/jurisdictionList',
title: 'CA绑定与解除',
},
{
icon: 'el-icon-lx-home',
index: '/supply/system/logList',
title: '日志列表',
},
]
},
{
icon: 'el-icon-lx-cascades',
title: '制作投标文件',
index:'4',
subs:[
{
icon: 'el-icon-lx-home',
index: '/supply/markBid/markBid',
title: '制作投标文件',
}
]
},
]
};
},
computed: {
......
......@@ -612,7 +612,7 @@ validator: checkPhone,
// }
}
}
}e
</script>
<style scoped>
......
......@@ -8,14 +8,15 @@
<div>若已购标请联系平台方审核,若未购标请及时购买,客服电话:400-6666-6666.</div>
</div>
<div class="flex-arround info">
<div>项目标号:ZBXM444444444</div>
<div>项目名称:大楼翻新</div>
<div>项目标号:{{projectCode}}</div>
<div>项目名称:{{projectName}}</div>
<div>标书获取结束时间:2018-08-08 18:23</div>
</div>
<dataTable :table-data = "tabledata" :columns = "columns" :is-pageobj="false" style="marginBottom:100px">
<dataTable :table-data="files" :columns = "columns" :is-pageobj="false" style="marginBottom:100px">
<el-table-column slot="operate" label="操作" fixed="right" width="100">
<template :slot-scope = "scope">
<el-button type="text" align="center">下载</el-button>
<template slot-scope = "scope">
<el-button type="text" align="center" v-if="scope.row.operation=='无权限'">无权限</el-button>
<el-button type="text" align="center" @click="isDown(scope.row.fileUrl)" v-else>下载</el-button>
</template>
</el-table-column>
</dataTable>
......@@ -24,7 +25,7 @@
</template>
<script>
import {bidBooklist} from '@api/supply/bid'
import {bidBooklist,downLoad} from '@api/supply/bid'
import dataTable from '@components/nopageTable.vue'
import changeNav from '@components/changeNav.vue'
import breadCrumb from '@components/dataBreadcrumb.vue'
......@@ -37,15 +38,15 @@ export default {
data() {
return {
navs: ['标书费缴纳管理'],
tabledata: [],
files: [],
breads: ['投标管理', '我参与的项目', '工作台'],
columns: [{
label: '文件名称',
prop: 'name'
prop: 'fileName'
},
{
label: '文件大小',
prop: 'size'
prop: 'fileSize'
},
{
label: '文件类型',
......@@ -56,13 +57,35 @@ export default {
prop: 'price'
}, {
slot: 'operate'
}]
}],
projectName:"",
projectCode:""
}
},
created() {
this.getbidBooklist()
this.projectName=localStorage.getItem("projectName")
this.projectCode=localStorage.getItem("projectCode")
},
methods:{
// 检测是否能下载
async isDown(url){
try {
let projectId=localStorage.getItem("projectId")
const {
msg,
code
} = await downLoad(projectId)
if (code === 200) {
window.open(url)
}else{
this.$message.error(msg)
}
} catch (e) {
console.log(e)
}
},
// 获取列表
async getbidBooklist() {
try {
let message={}
......@@ -73,7 +96,8 @@ export default {
code
} = await bidBooklist(message)
if (code === 200) {
this.tableData = data
console.log(data)
this.files = data
}
} catch (e) {
console.log(e)
......
......@@ -11,22 +11,22 @@
<div>
<div class="describe">基本信息</div>
<div class="message-form">
<div>项目名称:projectName</div>
<div>项目名称:{{projectdetail.projectName}} </div>
<div class="flex-between">
<div>项目编号:projectCode</div>
<div>项目分类:classify</div>
<div>项目编号:{{projectdetail.projectCode}}</div>
<div>项目分类:{{projectdetail.classify}}</div>
</div>
<div class="flex-between">
<div>采购单位:purchaseAgent</div>
<div>项目归属行业:industry</div>
<div>采购单位:{{projectdetail.purchaseAgent}}</div>
<div>项目归属行业:{{projectdetail.industry}}</div>
</div>
<div class="flex-between">
<div>项目归属地区:local</div>
<div>最小投标单位数:minTender</div>
<div>项目归属地区:{{projectdetail.local}}</div>
<div>最小投标单位数:{{projectdetail.minTender}}</div>
</div>
<div class="flex-between">
<div>招标联系人:contacts</div>
<div>联系方式:contactsWay</div>
<div>招标联系人:{{projectdetail.contacts}}</div>
<div>联系方式:{{projectdetail.contactsWay}}</div>
</div>
</div>
</div>
......@@ -35,12 +35,12 @@
<div class="describe">标书费用信息</div>
<div class="message-form">
<div class="flex-between">
<div>标书费结算账号:account</div>
<div>标书费结算开户行:bank</div>
<div>标书费结算账号:{{projectdetail.account}}</div>
<div>标书费结算开户行:{{projectdetail.bank}}</div>
</div>
<div class="flex-between">
<div>标书费结算账户名:accountName</div>
<div>标书费结算联系电话:phone </div>
<div>标书费结算账户名:{{projectdetail.accountName}}</div>
<div>标书费结算联系电话:{{projectdetail.phone}} </div>
</div>
</div>
</div>
......@@ -48,15 +48,15 @@
<div>
<div class="describe">保证金费用信息</div>
<div class="message-form">
<div>是否需要投标保证金:isNeedEarnest</div>
<div>投标保证金金额:money</div>
<div>是否需要投标保证金:{{projectdetail.isNeedEarnest}}</div>
<div>投标保证金金额:{{projectdetail.money}}</div>
<div class="flex-between">
<div>投标保证金结算账号:account</div>
<div>投标保证金结算开户行:bank</div>
<div>投标保证金结算账号:{{projectdetail.account}}</div>
<div>投标保证金结算开户行:{{projectdetail.bank}}</div>
</div>
<div class="flex-between">
<div>投标保证金结算账户名:accountName</div>
<div>投标保证金结算联系电话:phone </div>
<div>投标保证金结算账户名:{{projectdetail.accountName}}</div>
<div>投标保证金结算联系电话:{{projectdetail.phone}} </div>
</div>
</div>
</div>
......@@ -80,6 +80,7 @@
</template>
<script>
import { projectdetail,timeInfo} from '@api/supply/bid'
import dataTable from '@components/nopageTable.vue'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
......@@ -90,6 +91,7 @@ export default {
},
data() {
return {
projectdetail:"",
breads: ['投标管理', '我参与的项目', '工作台 '],
nav: ['供应商'],
dialogFormVisible: false,
......@@ -162,11 +164,22 @@ export default {
},
created() {
this.getprojectdetail()
this.gettimeInfo()
},
methods: {
back() {
async getprojectdetail() {
let projectId=localStorage.getItem("projectId")
const {data} = await projectdetail(projectId)
this.projectdetail=data
},
async gettimeInfo() {
let projectId=localStorage.getItem("projectId")
const {data} = await timeInfo(projectId)
this.timeInfo=data
},
back(){
this.$router.go(-1)
}
}
......
......@@ -13,28 +13,28 @@
<div class="message-form">
<div>
<el-form-item label="单位名称" prop="companyName">
<el-input v-model="ruleForm.companyName" disabled></el-input>
<el-input v-model.trim="ruleForm.companyName" disabled></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="联系人:" prop="projectCode">
<el-input v-model="ruleForm.projectCode" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.projectCode" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="固定电话:" prop="companyTel">
<el-input v-model="ruleForm.companyTel" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.companyTel" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="手机:" prop="companyPhone">
<el-input v-model="ruleForm.companyPhone" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.companyPhone" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="传真:" prop="companyFacsimile">
<el-input v-model="ruleForm.companyFacsimile" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.companyFacsimile" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="邮箱:" prop="companyEmail">
<el-input v-model="ruleForm.companyEmail" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.companyEmail" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
</div>
......@@ -44,23 +44,23 @@
<div class="message-form">
<div class="flex-between">
<el-form-item label="收件人名称:">
<el-input v-model="ruleForm.recipientsName" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.recipientsName" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="收件人单位:">
<el-input v-model="ruleForm.recipientsCompany" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.recipientsCompany" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="联系方式:">
<el-input v-model="ruleForm.recipientsPhone" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.recipientsPhone" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="邮政编码:">
<el-input v-model="ruleForm.recipientsMail" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.recipientsMail" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="邮寄地址:">
<el-input v-model="ruleForm.recipientsAddress " placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.recipientsAddress " placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
......@@ -78,23 +78,23 @@
</el-radio-group>
</el-form-item>
<el-form-item label="发票抬头:" prop="invoiceHead">
<el-input v-model="ruleForm.invoiceHead" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.invoiceHead" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="纳税人识别号:" prop="invoiceTaxNumber ">
<el-input v-model="ruleForm.invoiceTaxNumber " placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.invoiceTaxNumber " placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="地址:" prop="invoiceAddress">
<el-input v-model="ruleForm.invoiceAddress" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.invoiceAddress" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="电话:" prop="invoiceTel">
<el-input v-model="ruleForm.invoiceTel" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.invoiceTel" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="开户行及账号:" prop="invoiceAccount">
<el-input v-model="ruleForm.invoiceAccount" placeholder="请输入"></el-input>
<el-input v-model.trim="ruleForm.invoiceAccount" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</div>
</div>
......@@ -107,7 +107,7 @@
</el-input>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input :rows="5" v-model="ruleForm.remark" type="textarea" placeholder="请输入内容">
<el-input :rows="5" v-model.trim="ruleForm.remark" type="textarea" placeholder="请输入内容" maxlength="300">
</el-input>
</el-form-item>
<el-form-item label="上传缴费凭证:" prop="voucherUrl">
......@@ -227,8 +227,8 @@
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
let message = this.ruleForm
message.companyId = localStorage.getItem("companyId"),
message.projectId = localstorage.getitem("projectId")
message.companyId = window.localStorage.getItem("companyId"),
message.projectId = window.localstorage.getitem("projectId")
const {
code,
msg
......@@ -242,6 +242,9 @@
}
}
},
created() {
this.ruleForm.companyName=JSON.parse(localStorage.getItem("userInfo")).companyName
}
}
</script>
......
<template>
<div>
<div class="content">
<dataTable :columns = "columns" :breads = "breads" :checklist = "checklist" :page-obj = "pageobj" :margin-top="100" url="/bidder/project/list">
<dataTable :columns = "columns" :breads = "breads" :checklist = "checklist" :page-obj = "pageobj" :margin-top="100" url="/bidder/project/takePart/list">
<el-table-column slot="operate" label = "项目类型" fixed="right" width="100">
<template slot-scope="scope">
<div>{{scope.row.type==1?"公开招标":"邀请招标"}}</div>
</template>
</el-table-column>
<el-table-column slot="operate" align="center" label="项目状态" flexd="right" width="200px">
<template slot-scope="scope">
<div>{{totalMarks(scope.row.status)}}</div>
</template>
</el-table-column>
<el-table-column slot="operate" label = "操作" fixed="right" width="100">
<template :slot-scope = "scope">
<el-button type ="text" size = "small " @click = "send(scope.row)">工作台</el-button>
<template slot-scope="scope">
<el-button type ="text" size = "small " @click="send(scope.row.projectId)">工作台</el-button>
</template>
</el-table-column>
</dataTable>
......@@ -13,6 +23,7 @@
</template>
<script>
import {projectStatusList} from '@api/common/list'
import dataTable from '@components/dataTable.vue'
export default {
components: {
......@@ -29,56 +40,43 @@ export default {
}
},
//表格第一行
columns: [{
columns: [
{
label: '项目编号',
prop: 'code'
prop: 'projectCode'
},
{
label: '项目名称',
prop: 'name'
prop: 'projectName'
},
{
label: '采购商',
prop: 'purchaser'
},
{
label: '项目类型',
prop: 'type'
prop: 'companyName'
},
{
label: '投标截止时间',
prop: 'date'
prop: 'endTime'
},
{
label: '项目状态',
prop: 'state'
}, {
slot: 'operate'
}],
checklist: [{
title: '采购商:',
type: 'input',
model: 'purchaser'
model: 'companyName'
},
{
title: '项目名称:',
type: 'input',
model: 'name'
model: 'projectName'
},
{
title: '状态',
type: 'select',
selectlist: [{
value: '1',
label: '售标&投标阶段'
},
{
value: '2',
label: '投标阶段'
}
],
selectlist: [],
change: row => '',
model: 'state'
model: 'status'
},
{
title: '项目类型',
......@@ -100,9 +98,28 @@ export default {
}
},
methods: {
send() {
console.log(row.url)
totalMarks: function (status) {
let value=this.map.get(status)
return value
},
send(projectId) {
this.$router.push("/supply/bid/joinProject/workbench")
localStorage.setItem("projectId",projectId)
},
async getprojectStatusList(){
const data = await projectStatusList()
this.map = new Map();
for(let item of data){
item.value=item.id;
item.label=item.name
this.map.set(item.id,item.name)
}
this.checklist[2].selectlist=data
},
},
created(){
this.getprojectStatusList();
this.pageobj.companyId=localStorage.getItem("companyId")
}
}
</script>
......
<template>
<div>
<div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<changeNav :navs="navs"></changeNav>
<h1>项目状态:项目待审核</h1>
<div class="flex state">
<ul class="flex-left">
<li v-for="(item,index) in states" :key="index" class="flex">
<div>{{ item.title }}</div>
<ul class="inside flex">
<li v-for="(mods,index) in item.modulars" :key="index" class="flex-center">
<!-- <div :class="[mods=='项目信息'||mods=='项目终止'?'active':'']">{{ mods }}</div> -->
<div class="active" @click="jump(mods.label,mods.url)">{{ mods.label }}</div>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import changeNav from '@components/changeNav.vue'
export default {
components: {
dataBreadcrumb,
changeNav
},
data() {
return {
breads: ['投标管理', '我参与的项目 ', '工作台'],
navs: ['工作台'],
states: [{
title: '公告',
modulars:[{
label:"变更公告管理",
url:"/supply/bid/joinProject/bidStage/changeList"
},
{
label:"流标公告管理",
url:"/supply/bid/joinProject/bidStage/failList"
}]
},
{
title: '招标',
modulars:[
{
label:"查看询价公告",
url:"/supply/bid/signupOnline/seePrice"
},
{
label:"查看招标公告",
url:"/supply/bid/signupOnline/seeAnnouncement"
},
{
label:"招标文件下载",
url:"/supply/bid/joinProject/bidStage/fileDownload"
},
{
label:"招标文件澄清管理",
url:"/supply/bid/joinProject/bidStage/clearManagement"
}]
},
// 下面的没配置
{
title: '投标',
modulars: [{
label:"递交投标文件",
url:"/supply/bid/bidStage/tenderInformationlist"
}]
},
{
title: '开标',
modulars: [
{
label:"参与开标",
url:"/supply/bid/bidOpen/bidOpenhal"
}]
},
{
title: '评标',
modulars: [{
label:"评标问题澄清",
url:"/supply/bid/bidSure/see"
}]
},
{
title: '定标',
modulars: [{
label:"确定中标人",
url:"/supply/bid/bidSure/determine"
},
{
label:"重新确定中标人",
url:"/supply/bid/bidSure/determine"
},
{
label:"中标候选人公示",
url:"/supply/bid/bidSure/publicity"
},
{
label:"中标公告",
url:"/supply/bid/bidSure/notice"
},
{
label:"中标通知书处理",
url:"/supply/bid/bidSure/winBid/list"
},
{
label:"合同管理",
url:"/supply/bid/bidSure/contract"
}]
},
{
title: '费用',
modulars: [{
label:"标书费缴纳管理",
url:"/supply/bid/bidStage/tenderFeelist"
},
{
label:"保证金缴纳管理",
url:"/supply/bid/bidStage/bondList"
}]
},
]
}
},
methods: {
async jump(label,url){
console.log(label,url)
if(label=="项目终止"){
this.$confirm('确定要终止吗?', '提示', {
type: 'warning'
})
.then(() => {
this.$message.success('终止成功')
})
.catch(() => {})
}else{
this.$router.push(url)
}
}
}
}
</script>
<style scoped>
.state {
margin-top: 30px;
margin-left: 50px;
}
.flex-left>li {
font-weight: bold;
font-size: 20px;
height: 50px;
line-height: 50px;
}
.flex-left>li>div {
margin-right: 50px;
padding-right: 30px;
border-right: 1px solid #000;
}
.inside>li>div {
padding: 0 10px;
background: #ccc;
color: #ffff;
font-size: 14px;
margin-right: 30px;
border-radius: 2px;
line-height: 30px;
height: 30px;
}
.inside>li>.active{
background: #2288EE
}
</style>
......@@ -129,7 +129,7 @@
<el-button>
<a href="/Online_registration">返回</a>
</el-button>
<el-button type="primary">报名</el-button>
<el-button type="primary" @click="signup">报名</el-button>
</el-row>
</div>
</div>
......@@ -145,13 +145,19 @@ export default {
},
data() {
return {
breads: ['投标管理', '在线报名', '招标公告']
breads: ['投标管理', '在线报名', '招标公告'],
id:""
}
},
created() {
this.getBiddingDetail();
this.id=this.$route.query.id
},
methods:{
signup(){
let id=this.id
this.$router.push(`/supply/bid/signupOnline/SignUp?id=${id}`)
},
async getBiddingDetail() {
try {
const {
......
<template>
<div >
<div>
<div class="home">
<breadCrumb :breads = "breads"></breadCrumb>
<breadCrumb :breads="breads"></breadCrumb>
<h1>苍南县公安局关于督查视频服务器5台在线询价公告</h1>
<div class="flex-center">
<h6 style="margin-right:60px;margin-top:30px">询价所在地:苍南县</h6>
......@@ -43,7 +43,7 @@
<div>成交规则及确认方式</div>
<div>自动成交</div>
</div>
<h3 >供应商要求 </h3>
<h3>供应商要求 </h3>
<div class="appendix ">
<div>供应商规模要求</div>
<div>阿里巴巴</div>
......@@ -57,9 +57,9 @@
<div>浙江省</div>
</div>
<h3>询价商品清单</h3>
<dataTable :table-data="tabledata" :columns = "columns"></dataTable>
<dataTable :table-data="tabledata" :columns="columns"></dataTable>
<div class="appendix list pos">
<div >附件</div>
<div>附件</div>
<div>IMG_0208.jpg</div><!-- 此处放文件 -->
</div>
<h3>商务要求</h3>
......@@ -81,89 +81,61 @@
</div>
</div>
</div>
<el-dialog :visible.sync="dialogFormVisible" title="报价">
<dataTable :table-data="tabledata" :columns = "columns" >
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="200">
<!-- 报价弹窗 -->
<el-dialog :visible.sync="dialogFormVisible" title="报价" width="60%">
<dataTable :table-data="commoditylist" :columns="commoditycolumns">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope">
<el-button type="text" size="small" @click="see(scope.row)">查看中标公告</el-button>
<el-input-number v-model="scope.row.cost" :min="0" :controls="false" :precision="2" style="width:100px"></el-input-number>
</template>
</el-table-column>
</dataTable>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogFormVisible = false">提交报价</el-button>
<el-button type="primary" @click="submitData">提交报价</el-button>
</div>
</el-dialog>
<!-- 报价供应商情况 -->
<el-dialog :visible.sync="offerBidder" title="报价供应商情况">
<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>
</div>
</template>
<script>
import {noticeEnquiry} from '@api/supply/bid'
import dataTable from '@components/nopageTable.vue'
import breadCrumb from '@components/dataBreadcrumb.vue'
export default {
import {
noticeEnquiry,
commoditylist,
offerBidderlist,
offerPrice
} from '@api/supply/bid'
import dataTable from '@components/nopageTable.vue'
import breadCrumb from '@components/dataBreadcrumb.vue'
export default {
components: {
dataTable,
breadCrumb
},
data() {
return {
offerBidderlist:[],
offerBidder: false,
columns: [],
tabledata: [],
dialogFormVisible: false,
breads: ['投标管理 ', '在线报名', '询价公告'],
tabledata: [{
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: [{
commoditylist: [],
commoditycolumns: [{
label: '标的名称',
prop: 'name'
prop: 'bidName'
},
{
label: '数量',
prop: 'acount'
prop: 'quantity'
}, {
label: '计量单位',
prop: 'unit'
......@@ -172,154 +144,237 @@ export default {
prop: 'brand'
}, {
label: '规格型号',
prop: 'size'
prop: 'specification'
}, {
label: '标杆价',
prop: 'price'
}, {
label: '备注',
prop: 'remarks'
prop: 'remark'
}, {
label: '我的报价(元)',
prop: 'quote'
}]
slot: 'operate'
}
],
offerBiddercolumns: [{
label: '供应商名称',
prop: 'companyName'
},
{
label: '报价时间',
prop: 'updateTime'
}
]
}
},
methods: {
Prev() {
this.$router.push('/supply/Join_items/work_place/all_content')
},
async getNoticeEnquiry() {
try {
let projectId = localStorage.getItem("projectId")
const {
data,
code
} = await noticeEnquiry(1)
} = await noticeEnquiry(projectId)
if (code === 200) {
this.tableData = data
}
} catch (e) {
console.log(e)
}
},
// 查看询价公告里的商品报价列表
async getcommoditylist() {
let projectId = localStorage.getItem("projectId")
const {
data
} = await commoditylist(projectId)
for (let item of data) {
item.cost = 0
}
this.commoditylist = data
},
// 参与报价的供应商的情况
async getofferBidderlist() {
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 commodityList = this.commoditylist.map((item, index) => {
return {
id: item.id,
cost: item.cost
}
})
message.commodityList = commodityList
const {
msg,
code
} = await offerPrice(message)
if(code==200){
this.$message.success(msg)
this.dialogFormVisible=false
this.offerBidder=true
}
} catch (e) {
console.log(e)
}
}
},
created() {
this.getNoticeEnquiry();
this.getcommoditylist();
this.getofferBidderlist();
}
}
}
</script>
<style scoped>
.Tips{
color:#409EFF
.Tips {
color: #409EFF
}
.notice>h4{
.notice>h4 {
font-size: 16px;
font-weight: bold;
margin-right: 30px;
}
.notice{
margin:20px 0;
.notice {
margin: 20px 0;
border-bottom: 1px solid #ccc;
}
h2{
h2 {
/* margin-top:; */
margin-bottom:10px;
}
h6{
margin-bottom:10px;
}
.home{
padding:30px;
margin-bottom: 10px;
}
h6 {
margin-bottom: 10px;
}
.home {
padding: 30px;
background: #fff;
box-sizing: border-box;
/* margin-left:20px; */
}
h1{
}
h1 {
display: flex;
justify-content: center;
}
.form{
padding:20px;
}
.form {
padding: 20px;
box-sizing: border-box;
}
.form h3{
margin-top:20px;
margin-bottom:20px;
}
.form h3 {
margin-top: 20px;
margin-bottom: 20px;
font-weight: bold;
}
/* table>tr{
}
/* table>tr{
text-align: center;
} */
table{
table {
border-collapse: collapse;
}
table>tr>td{
table>tr>td {
font-size: 16px;
border: 1px solid #ccc;
padding-left: 10px;
}
table>tr>td:nth-child(odd){
}
table>tr>td:nth-child(odd) {
background: #F0F0F0
}
.right-s{
padding-right:200px;
}
.appendix{
}
.right-s {
padding-right: 200px;
}
.appendix {
display: flex;
border: 1px solid #ccc;
}
.appendix>div:first-child{
width:159px;
border-right: 1px solid #ccc;
box-sizing: border-box;
padding-left: 10px;
}
.appendix>div:last-child{
padding-left: 10px;
}
.appendix>div:nth-child(odd){
}
.appendix>div:first-child {
width: 159px;
border-right: 1px solid #ccc;
box-sizing: border-box;
padding-left: 10px;
}
.appendix>div:last-child {
padding-left: 10px;
}
.appendix>div:nth-child(odd) {
background: #F0F0F0
}
.appendix>div{
font-size:16px;
}
.appendix>div {
font-size: 16px;
line-height: 40px;
}
.list>:first-child{
height:120px;
}
.list>:first-child {
height: 120px;
line-height: 120px;
}
.list{
}
.list {
margin-top: 20px;
}
.bus-require>div:first-child{
width:400px;
}
.bus-require>div:last-child{
}
.bus-require>div:first-child {
width: 400px;
}
.bus-require>div:last-child {
font-size: 10px;
}
.pos>div:first-child{
}
.pos>div:first-child {
display: flex;
justify-content: center;
}
.last-pos{
margin-left:40px;
margin-top:20px;
}
.last-pos>div:first-child{
width:65px;
}
input{
width:100%;
height:70px;
}
.button{
width:100px;
margin:50px auto
}
}
.last-pos {
margin-left: 40px;
margin-top: 20px;
}
.last-pos>div:first-child {
width: 65px;
}
input {
width: 100%;
height: 70px;
}
.button {
width: 100px;
margin: 50px auto
}
</style>
......@@ -97,7 +97,7 @@
},
methods: {
cancel() {
this.$router.go(-1)
this.$router.push("/supply/bid/joinProject/projectList")
},
// 提交
async sendTo() {
......
......@@ -71,13 +71,13 @@ export default {
let value=this.map.get(status)
return value
},
// 获取状态
async getprojectStatusList(){
const data = await projectStatusList()
this.map = new Map();
for(let item of data){
this.map.set(item.id,item.name)
}
console.log(this.map.get("PROJECT_AUDIT_NEED_MODIFY"))
},
handlesee(row) {
this.$router.push(`/supply/bid/signupOnline/seeAnnouncement?id=${row.projectId}`)
......
......@@ -603,6 +603,11 @@ export default new Router({
show: true,
component: () => import('../pages/supply/bid/joinProject/seeInvitation.vue')
},
{
path: '/supply/bid/joinProject/workbench',
show: true,
component: () => import('../pages/supply/bid/joinProject/workbench.vue')
},
{
path: '/supply/bid/joinProject/bidStage/seePrice',
show: true,
......
......@@ -5,8 +5,8 @@ import { Message, MessageBox } from 'element-ui'
// 创建axios实例
const service = axios.create({
baseURL: 'http://192.168.200.201:8082/apis',
// baseURL: 'http://192.168.3.35:8085/apis',
// baseURL: 'http://192.168.200.201:8082/apis',
baseURL: 'http://192.168.3.35:8085/apis',
timeout: 35000 // 请求超时时间
})
......
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