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({
......
This diff is collapsed.
......@@ -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,12 +164,23 @@ 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">
<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>
<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.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 {
......
......@@ -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