Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
W
web-purchase
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张冬
web-purchase
Commits
18cebfd0
Commit
18cebfd0
authored
Sep 15, 2020
by
张冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
9.15
parent
dd7776de
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
662 additions
and
187 deletions
+662
-187
bid.js
src/api/supply/bid.js
+42
-0
Header.vue
src/components/common/Header.vue
+2
-1
home.vue
src/pages/purchaser/home/home.vue
+1
-1
bond.vue
src/pages/supply/bid/joinProject/bidStage/bond.vue
+106
-57
changeList.vue
...supply/bid/joinProject/bidStage/changeList/changeList.vue
+55
-51
see.vue
src/pages/supply/bid/joinProject/bidStage/changeList/see.vue
+90
-2
clearManagement.vue
.../joinProject/bidStage/clearManagement/clearManagement.vue
+31
-21
failList.vue
...ges/supply/bid/joinProject/bidStage/failList/failList.vue
+118
-1
see.vue
src/pages/supply/bid/joinProject/bidStage/failList/see.vue
+119
-2
fileDownload.vue
src/pages/supply/bid/joinProject/bidStage/fileDownload.vue
+23
-26
tenderFee.vue
src/pages/supply/bid/joinProject/bidStage/tenderFee.vue
+0
-0
seePrice.vue
src/pages/supply/bid/signupOnline/seePrice.vue
+17
-3
signUp.vue
src/pages/supply/bid/signupOnline/signUp.vue
+50
-16
request.js
src/utils/request.js
+8
-6
No files found.
src/api/supply/bid.js
View file @
18cebfd0
...
...
@@ -18,4 +18,45 @@ export function projectapply(data) {
})
}
// 查看询价公告
export
function
noticeEnquiry
(
id
)
{
return
request
({
url
:
`notice/enquiry/
${
id
}
`
,
method
:
'get'
,
})
}
// 招标文件下载
export
function
bidBooklist
(
params
)
{
return
request
({
url
:
"bidder/project/bidBook/list"
,
method
:
'get'
,
params
:
params
})
}
// 标书费缴纳
export
function
bidBookpayment
(
data
)
{
return
request
({
url
:
"/bidder/project/bidBook/payment"
,
method
:
'post'
,
data
:
data
})
}
// 保证金缴纳
export
function
bidderEarnestpayment
(
data
)
{
return
request
({
url
:
"/bidder-earnest/payment"
,
method
:
'post'
,
data
:
data
})
}
// 查看某个澄清的 投标方列表
// export function bidClarifies(params) {
// return request({
// url: '/clarifies/bid-clarifies/list',
// method: 'get',
// params: params
// })
// }
\ No newline at end of file
src/components/common/Header.vue
View file @
18cebfd0
...
...
@@ -59,7 +59,8 @@ export default {
},
methods
:
{
join
(){
window
.
location
.
href
=
"http://192.168.200.201:8081/"
// window.location.href="http://192.168.200.201:8081/"
window
.
location
.
href
=
" http://localhost:3000/"
},
// 用户名下拉菜单选择事件
handleCommand
(
command
)
{
...
...
src/pages/purchaser/home/home.vue
View file @
18cebfd0
...
...
@@ -32,7 +32,7 @@
<
script
>
import
{
getSearchString
}
from
'@utils/common'
import
dataTable
from
'@components/
data
Table.vue'
import
dataTable
from
'@components/
nopage
Table.vue'
export
default
{
components
:
{
dataTable
...
...
src/pages/supply/bid/joinProject/bidStage/bond.vue
View file @
18cebfd0
...
...
@@ -12,29 +12,29 @@
<div
class=
"describe"
>
单位信息
</div>
<div
class=
"message-form"
>
<div>
<el-form-item
label=
"单位名称"
prop=
"project
Name"
>
<el-input
v-model=
"ruleForm.project
Name"
disabled
></el-input>
<el-form-item
label=
"单位名称"
prop=
"company
Name"
>
<el-input
v-model=
"ruleForm.company
Name"
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-form-item>
<el-form-item
label=
"固定电话:"
prop=
"classify
"
>
<el-input
v-model=
"ruleForm.classify
"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"固定电话:"
prop=
"companyTel
"
>
<el-input
v-model=
"ruleForm.companyTel
"
placeholder=
"请输入"
></el-input>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"手机:"
prop=
"purchaseAgent
"
>
<el-input
v-model=
"ruleForm.purchaseAgent
"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"手机:"
prop=
"companyPhone
"
>
<el-input
v-model=
"ruleForm.companyPhone
"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"传真:"
prop=
"industry
"
>
<el-input
v-model=
"ruleForm.industry
"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"传真:"
prop=
"companyFacsimile
"
>
<el-input
v-model=
"ruleForm.companyFacsimile
"
placeholder=
"请输入"
></el-input>
</el-form-item>
</div>
<div>
<el-form-item
label=
"邮箱:"
prop=
"industry
"
>
<el-input
v-model=
"ruleForm.industry
"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"邮箱:"
prop=
"companyEmail
"
>
<el-input
v-model=
"ruleForm.companyEmail
"
placeholder=
"请输入"
></el-input>
</el-form-item>
</div>
</div>
...
...
@@ -43,42 +43,40 @@
<div
class=
"describe"
>
邮寄信息
</div>
<div
class=
"message-form"
>
<div
class=
"flex-between"
>
<el-form-item
label=
"收件人名称:"
prop=
"account
"
>
<el-input
v-model=
"ruleForm.account
"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"收件人名称:
"
>
<el-input
v-model=
"ruleForm.recipientsName
"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"收件人单位:"
prop=
"bank
"
>
<el-input
v-model=
"ruleForm.bank
"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"收件人单位:
"
>
<el-input
v-model=
"ruleForm.recipientsCompany
"
placeholder=
"请输入"
></el-input>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"联系方式:"
prop=
"accountName
"
>
<el-input
v-model=
"ruleForm.accountNam
e"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"联系方式:
"
>
<el-input
v-model=
"ruleForm.recipientsPhon
e"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"邮政编码:"
prop=
"phone
"
>
<el-input
v-model=
"ruleForm.phone
"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"邮政编码:
"
>
<el-input
v-model=
"ruleForm.recipientsMail
"
placeholder=
"请输入"
></el-input>
</el-form-item>
</div>
<div>
<el-form-item
label=
"邮寄地址:"
prop=
"phone
"
>
<el-input
v-model=
"ruleForm.phone
"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"邮寄地址:
"
>
<el-input
v-model=
"ruleForm.recipientsAddress
"
placeholder=
"请输入"
></el-input>
</el-form-item>
</div>
</div>
</div>
<div>
<div
class=
"describe"
>
缴费信息
</div>
<div
class=
"message-form"
>
<el-form-item
label=
"付款方式:"
prop=
"content
"
>
<el-input
:rows=
"5"
v-model=
"ruleForm.content"
prop=
"content
"
placeholder=
"请输入"
>
<el-form-item
label=
"付款方式:"
prop=
"feeWay
"
>
<el-input
v-model=
"ruleForm.feeWay
"
placeholder=
"请输入"
>
</el-input>
</el-form-item>
<el-form-item
label=
"备注:"
prop=
"content
"
>
<el-input
:rows=
"5"
v-model=
"ruleForm.content"
type=
"textarea"
prop=
"content
"
placeholder=
"请输入内容"
>
<el-form-item
label=
"备注:"
prop=
"remark
"
>
<el-input
:rows=
"5"
v-model=
"ruleForm.remark"
type=
"textarea
"
placeholder=
"请输入内容"
>
</el-input>
</el-form-item>
<el-form-item
label=
"备注:"
prop=
"content
"
>
<el-form-item
label=
"上传缴费凭证:"
prop=
"voucherUrl
"
>
<Upload
:limit=
"5"
:max=
"5"
tip=
"完成上传5份文件,每份不超过10M"
@
input=
"getfile"
></Upload>
</el-form-item>
</div>
...
...
@@ -88,63 +86,113 @@
</div>
<div
class=
"bottomButton"
>
<el-button>
取消
</el-button>
<el-button
type=
"primary
"
>
提交
</el-button>
<el-button
type=
"primary"
@
click=
"submitData
"
>
提交
</el-button>
</div>
</div>
</
template
>
<
script
>
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
Upload
from
'@components/Upload/Upload.vue'
export
default
{
import
{
bidderEarnestpayment
}
from
'@api/supply/bid'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
Upload
from
'@components/Upload/Upload.vue'
export
default
{
components
:
{
dataBreadcrumb
,
Upload
},
data
()
{
// 测试图片
let
checkimg
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
ruleForm
.
voucherUrl
.
length
===
0
)
{
callback
(
new
Error
(
'请上传凭证'
));
}
else
{
callback
();
}
};
return
{
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
ruleForm
:
{
projectName
:
''
,
projectCode
:
''
,
classify
:
''
,
purchaseAgent
:
''
,
industry
:
''
,
region
:
''
,
minTender
:
''
,
contacts
:
''
,
contactsWay
:
''
,
// 招标方式
bidType
:
0
,
isPublishAd
:
false
,
content
:
''
,
// 标的需求
isNeedEarnest
:
false
,
provinceId
:
''
,
cityId
:
''
,
districtId
:
''
companyName
:
''
,
companyTel
:
''
,
companyPhone
:
''
,
companyFacsimile
:
''
,
recipientsName
:
""
,
recipientsCompany
:
""
,
recipientsPhone
:
""
,
recipientsMail
:
""
,
recipientsAddress
:
""
,
feeWay
:
''
,
remark
:
""
,
companyEmail
:
""
,
voucherUrl
:
[]
},
formrules
:
[]
formrules
:
{
companyName
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}],
companyPhone
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}],
feeWay
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}],
voucherUrl
:
[{
required
:
true
,
validator
:
checkimg
,
trigger
:
'blur'
}]
}
}
},
methods
:
{
getfile
(
val
)
{
this
.
ruleForm
.
voucherUrl
=
val
},
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
()
if
(
valid
)
{
let
message
=
this
.
ruleForm
message
.
companyId
=
1
,
message
.
projectId
=
localstorage
.
getitem
(
"projectId"
)
const
{
code
,
msg
}
=
await
bidderEarnestpayment
(
message
)
if
(
code
===
2000
)
{
this
.
$success
.
success
(
msg
)
}
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
},
}
}
</
script
>
<
style
scoped
>
.message
{}
.message
{}
.message
>
div
{
background
:
#fff
;
margin-bottom
:
20px
;
padding-bottom
:
20px
;
}
.message-form
{
width
:
70%
;
margin
:
0
auto
.message-form
{
width
:
70%
;
margin
:
0
auto
}
</
style
>
\ No newline at end of file
src/pages/supply/bid/joinProject/bidStage/changeList/changeList.vue
View file @
18cebfd0
<
template
>
<div
>
<div>
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<dataTable
:table-data=
"tableData"
:columns=
"columns"
:is-pageobj=
"false"
>
<el-button
class=
"absolute"
type=
"primary"
@
click=
"release"
>
发布变更公告
</el-button>
<dataTable
:table-data=
"tableData"
:columns=
"columns"
:is-pageobj=
"false"
:table-top=
"60"
>
<el-table-column
slot=
"operate"
label=
"操作"
align=
"center"
fixed=
"right"
width=
"100"
>
<template
slot-scope=
"scope"
>
<el-button
v-if=
"scope.row.state=='待修改'"
type=
"text"
size=
"small"
@
click=
"handleModify(scope.row)"
>
修改
</el-button>
...
...
@@ -15,94 +16,97 @@
</template>
<
script
>
import
{
changeList
}
from
'@api/purchaser/bid'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
dataTable
from
'@components/nopageTable.vue'
export
default
{
name
:
'bidingList'
,
components
:
{
dataTable
,
dataBreadcrumb
},
data
()
{
return
{
breads
:
[
'投标管理 '
,
'我参加的项目'
,
'工作台'
],
tableData
:
[{
name
:
'涿州市鼓楼大街(范阳路至永济路段)及周边区域街巷改造工程监理'
,
person
:
'腾讯4'
,
data
:
'2017-10-01 12:00'
,
state
:
'待审核'
,
remark
:
'错别字'
},
{
name
:
'涿州市鼓楼大街(范阳路至永济路段)及周边区域街巷改造工程监理'
,
person
:
'腾讯3'
,
data
:
'2017-10-01 13:00'
,
state
:
'待审核'
,
remark
:
'错别字'
},
{
name
:
'涿州市鼓楼大街(范阳路至永济路段)及周边区域街巷改造工程监理'
,
person
:
'腾讯2'
,
data
:
'2017-10-01 14:00'
,
state
:
'待修改'
,
remark
:
'错别字'
},
{
name
:
'涿州市鼓楼大街(范阳路至永济路段)及周边区域街巷改造工程监理'
,
person
:
'腾讯1'
,
data
:
'2017-10-01 15:00'
,
state
:
'待审核'
,
remark
:
'已发布'
}],
projectId
:
2
,
breads
:
[
'招标管理 '
,
'招标项目管理'
,
'工作台'
],
tableData
:
[],
columns
:
[{
label
:
'公告名称'
,
prop
:
'name'
,
width
:
500
prop
:
'title'
},
{
label
:
'
发布
时间'
,
prop
:
'
data
'
,
label
:
'
创建
时间'
,
prop
:
'
createTime
'
,
sortable
:
true
},
{
label
:
'状态'
,
prop
:
'auditStatus'
},
{
label
:
'备注'
,
prop
:
'remark'
},
{
slot
:
'operate'
}
],
// 操作列
pageObj
:
{
size
:
10
,
total
:
1
,
currentPage
:
1
,
sizes
:
[
100
,
200
,
300
],
func
:
(
currentPage
)
=>
{
this
.
pageTurning
(
currentPage
)
}
}
]
// 操作列
}
},
created
()
{
this
.
getchangeList
()
},
methods
:
{
handleModify
()
{
this
.
$router
.
push
({
path
:
'/purchaser/bid/bidStage/changeList/changeNotice'
,
query
:
{
type
:
'modify'
}
query
:
{
type
:
'modify'
}
)
}
)
},
release
()
{
this
.
$router
.
push
({
path
:
'/purchaser/bid/bidStage/changeList/changeNotice'
,
query
:
{
type
:
'release'
}
query
:
{
type
:
'release'
}
)
}
)
},
handleSee
()
{
this
.
$router
.
push
(
'/purchaser/bid/bidStage/changeList/see'
)
},
async
getchangeList
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
changeList
(
projectId
)
if
(
code
===
200
)
{
for
(
let
item
of
data
)
{
if
(
item
.
auditStatus
===
0
)
{
item
.
auditStatus
=
'未审核'
}
else
if
(
item
.
auditStatus
===
1
)
{
item
.
auditStatus
=
'审核通过'
}
else
{
item
.
auditStatus
=
'未通过'
}
}
this
.
tableData
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
</
script
>
<
style
scoped
>
.absolute
{
.absolute
{
position
:
absolute
;
top
:
65px
top
:
65px
}
</
style
>
src/pages/supply/bid/joinProject/bidStage/changeList/see.vue
View file @
18cebfd0
<
template
>
<
!-- <
template>
<div>
<div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
...
...
@@ -13,7 +13,6 @@
<div>公告标题</div>
</el-form-item>
<el-form-item label="上传附件" prop="file">
<!--
<multiUpload
tips=
"支持扩展名:.rar .zip .doc .docx .pdf .jpg..."
></multiUpload>
-->
</el-form-item>
<el-form-item label="公告内容" prop="content">
<div>公告内容</div>
...
...
@@ -95,4 +94,93 @@ export default {
width: 200px;
margin:150px auto 0
}
</style> -->
<
template
>
<div>
<div
class=
"content-head"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<h3>
查看变更公告
</h3>
<h5>
查看变更公告
</h5>
</div>
<div
class=
"content"
>
<div
class=
"describe"
>
变更公告
</div>
<div
class=
"form"
>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"120px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"公告标题"
prop=
"title"
>
<div>
公告标题
</div>
</el-form-item>
<el-form-item
label=
"上传附件"
prop=
"file"
>
<!--
<multiUpload
tips=
"支持扩展名:.rar .zip .doc .docx .pdf .jpg..."
></multiUpload>
-->
</el-form-item>
<el-form-item
label=
"公告内容"
prop=
"content"
>
<div>
公告内容
</div>
</el-form-item>
</el-form>
<div
class=
"button"
>
<el-button
@
click=
"cancle"
>
返回
</el-button>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
noticeChange
}
from
'@api/purchaser/bid'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
export
default
{
components
:
{
dataBreadcrumb
},
data
()
{
return
{
editorOption
:
{},
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
ruleForm
:
{
title
:
''
,
content
:
''
}
}
},
created
()
{
this
.
changeDetail
(
1
)
},
methods
:
{
cancle
()
{
this
.
$router
.
go
(
-
1
)
},
async
changeDetail
(
id
)
{
try
{
const
{
data
,
code
}
=
await
noticeChange
(
id
)
if
(
code
===
200
)
{
this
.
detail
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
</
script
>
<
style
scoped
>
.content
{
padding
:
0
;
padding-bottom
:
100px
;
}
.button
{
width
:
200px
;
margin
:
150px
auto
0
}
</
style
>
src/pages/supply/bid/joinProject/bidStage/clearManagement/clearManagement.vue
View file @
18cebfd0
...
...
@@ -4,7 +4,7 @@
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<div
class=
"absolute"
>
<el-button
type=
"primary"
@
click=
"
propose"
>
退出问题
</el-button>
<el-button
type=
"primary"
@
click=
"
out"
>
退出澄清
</el-button>
</div>
<dataTable
:columns=
"columns"
:page-obj=
"pageObj"
url=
"/clarifies/list"
>
<el-table-column
slot=
"operate"
label=
"状态"
align=
"center"
fixed=
"right"
>
...
...
@@ -21,13 +21,8 @@
</el-table-column>
<el-table-column
slot=
"operate"
label=
"操作"
align=
"center"
fixed=
"right"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.clarifiesType==0"
>
<el-button
type=
"text"
size=
"small"
@
click=
"handleSee(scope.row)"
>
查看
</el-button>
</div>
<div
v-else
>
<el-button
v-if=
"scope.row.state==1"
type=
"text"
size=
"small"
@
click=
"examine(scope.row)"
>
查看
</el-button>
<el-button
v-else
type=
"text"
size=
"small"
@
click=
"handleReply(scope.row.id)"
>
回复
</el-button>
</div>
<el-button
v-if=
"scope.row.state==1"
type=
"text"
size=
"small"
@
click=
"confirm(scope.row)"
>
确认
</el-button>
<el-button
v-else
type=
"text"
size=
"small"
@
click=
"handleSee(scope.row)"
>
查看
</el-button>
</
template
>
</el-table-column>
</dataTable>
...
...
@@ -50,8 +45,22 @@ export default {
data
()
{
return
{
navs
:
[
'招标文件澄清列表'
],
breads
:
[
'投标管理'
,
'我参与的项目'
,
'工作台'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
checklist
:
[{
title
:
'公告名称'
,
type
:
'input'
},
{
title
:
'状态'
,
type
:
'select'
,
selectlist
:
[{
value
:
'1'
,
label
:
'公开招标'
},
{
value
:
'2'
,
label
:
'邀请招标'
}],
change
:
row
=>
''
}],
tableData
:
[],
columns
:
[{
label
:
'澄清问题标题'
,
...
...
@@ -70,12 +79,9 @@ export default {
slot
:
'operate'
}
],
// 操作列
pageObj
:
{
size
:
10
,
total
:
1
,
currentPage
:
1
,
sizes
:
[
10
,
15
,
20
]
currentPage
:
1
// func: (currentPage) => {
// this.pageTurning(currentPage)
// }
...
...
@@ -83,20 +89,24 @@ export default {
}
},
created
()
{
this
.
pageObj
.
projectId
=
'1'
this
.
pageObj
.
projectId
=
2
this
.
pageObj
.
questionId
=
1
},
methods
:
{
handleSee
(
row
)
{
console
.
log
(
row
)
handleSee
(
id
)
{
this
.
$router
.
push
({
path
:
'/supply/bid/joinProject/bidStage/clearManagement/see'
,
query
:
id
})
},
handleReply
(
id
)
{
confirm
(
id
)
{
this
.
$router
.
push
({
path
:
'/purchaser/bid/bidStage/clearManagement/reply
'
,
path
:
'/supply/bid/joinProject/bidStage/clearManagement/confirm
'
,
query
:
id
})
},
propose
()
{
this
.
$router
.
push
(
"/supply/bid/joinProject/clearManagement/propose"
)
out
()
{
this
.
$router
.
go
(
-
1
)
}
}
...
...
src/pages/supply/bid/joinProject/bidStage/failList/failList.vue
View file @
18cebfd0
<
template
>
<
!-- <
template>
<div >
<div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
...
...
@@ -105,4 +105,120 @@ export default {
position: absolute;
top:65px
}
</style> -->
<
template
>
<div>
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<el-button
class=
"absolute"
type=
"primary"
@
click=
"release"
>
发布流标公告
</el-button>
<dataTable
:table-data=
"tableData"
:columns=
"columns"
:is-pageobj=
"false"
:table-top=
"60"
>
<el-table-column
slot=
"operate"
label=
"操作"
align=
"center"
fixed=
"right"
width=
"100"
>
<template
slot-scope=
"scope"
>
<el-button
v-if=
"scope.row.state=='待修改'"
type=
"text"
size=
"small"
@
click=
"handleModify(scope.row)"
>
修改
</el-button>
<el-button
v-else
type=
"text"
size=
"small"
@
click=
"handleSee(scope.row)"
>
查看
</el-button>
</
template
>
</el-table-column>
</dataTable>
</div>
</div>
</template>
<
script
>
import
{
abortiveList
}
from
'@api/purchaser/bid'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
dataTable
from
'@components/nopageTable.vue'
export
default
{
name
:
'bidingList'
,
components
:
{
dataTable
,
dataBreadcrumb
},
data
()
{
return
{
projectId
:
2
,
breads
:
[
'招标管理 '
,
'招标项目管理'
,
'工作台'
],
tableData
:
[],
columns
:
[{
label
:
'公告名称'
,
prop
:
'name'
,
width
:
500
},
{
label
:
'创建时间'
,
prop
:
'data'
,
sortable
:
true
},
{
label
:
'状态'
,
prop
:
'state'
},
{
label
:
'备注'
,
prop
:
'remark'
},
{
slot
:
'operate'
}
]
// 操作列
}
},
created
()
{
this
.
getabortiveList
()
},
methods
:
{
handleModify
()
{
this
.
$router
.
push
({
path
:
'/purchaser/bid/bidStage/failList/failNotice'
,
query
:
{
type
:
'modify'
}
})
},
release
()
{
this
.
$router
.
push
({
path
:
'/purchaser/bid/bidStage/failList/failNotice'
,
query
:
{
type
:
'release'
}
})
},
handleSee
()
{
this
.
$router
.
push
(
'/purchaser/bid/bidStage/failList/see'
)
},
async
getabortiveList
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
abortiveList
(
projectId
)
if
(
code
===
200
)
{
for
(
let
item
of
data
)
{
if
(
item
.
auditStatus
===
0
)
{
item
.
auditStatus
=
'未审核'
}
else
if
(
item
.
auditStatus
===
1
)
{
item
.
auditStatus
=
'审核通过'
}
else
{
item
.
auditStatus
=
'未通过'
}
}
this
.
tableData
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
</
script
>
<
style
scoped
>
.absolute
{
position
:
absolute
;
top
:
65px
}
</
style
>
\ No newline at end of file
src/pages/supply/bid/joinProject/bidStage/failList/see.vue
View file @
18cebfd0
<
template
>
<
!-- <
template>
<div>
<div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
...
...
@@ -13,7 +13,6 @@
<div>公告标题</div>
</el-form-item>
<el-form-item label="上传附件" prop="file">
<!--
<multiUpload
tips=
"支持扩展名:.rar .zip .doc .docx .pdf .jpg..."
></multiUpload>
-->
</el-form-item>
<el-form-item label="公告内容" prop="content">
<div>公告内容</div>
...
...
@@ -96,3 +95,120 @@ export default {
margin:150px auto 0
}
</style>
-->
<
template
>
<div>
<div
class=
"content-head"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<h3>
查看流标公告
</h3>
<h5>
查看流标公告
</h5>
</div>
<div
class=
"content"
>
<div
class=
"describe"
>
流标公告
</div>
<div
class=
"form"
>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"120px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"公告标题"
prop=
"title"
>
<div>
公告标题
</div>
</el-form-item>
<el-form-item
label=
"上传附件"
prop=
"file"
>
<!--
<multiUpload
tips=
"支持扩展名:.rar .zip .doc .docx .pdf .jpg..."
></multiUpload>
-->
</el-form-item>
<el-form-item
label=
"公告内容"
prop=
"content"
>
<div>
公告内容
</div>
</el-form-item>
</el-form>
<div
class=
"button"
>
<el-button
@
click=
"cancle"
>
返回
</el-button>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
noticeAbortive
}
from
'@api/purchaser/bid'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
multiUpload
from
'@components/Upload/multiUpload.vue'
import
{
quillEditor
}
from
'vue-quill-editor'
import
'quill/dist/quill.core.css'
import
'quill/dist/quill.snow.css'
import
'quill/dist/quill.bubble.css'
export
default
{
components
:
{
dataBreadcrumb
,
multiUpload
,
quillEditor
},
data
()
{
return
{
editorOption
:
{},
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
ruleForm
:
{
title
:
''
,
content
:
''
},
rules
:
{
title
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blue'
}],
release
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blue'
}],
file
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blue'
}],
content
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blue'
}]
}
}
},
created
()
{
this
.
changeDetail
(
1
)
},
methods
:
{
cancle
()
{
this
.
$router
.
go
(
-
1
)
},
async
abortiveDetail
(
id
)
{
try
{
const
{
data
,
code
}
=
await
noticeAbortive
(
id
)
if
(
code
===
200
)
{
this
.
detail
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
</
script
>
<
style
scoped
>
.content
{
padding
:
0
;
padding-bottom
:
100px
;
}
.button
{
width
:
200px
;
margin
:
150px
auto
0
}
</
style
>
\ No newline at end of file
src/pages/supply/bid/joinProject/bidStage/fileDownload.vue
View file @
18cebfd0
...
...
@@ -24,6 +24,7 @@
</template>
<
script
>
import
{
bidBooklist
}
from
'@api/supply/bid'
import
dataTable
from
'@components/nopageTable.vue'
import
changeNav
from
'@components/changeNav.vue'
import
breadCrumb
from
'@components/dataBreadcrumb.vue'
...
...
@@ -36,32 +37,7 @@ export default {
data
()
{
return
{
navs
:
[
'标书费缴纳管理'
],
tabledata
:
[{
name
:
'清河坊铺石板'
,
size
:
'20M'
,
type
:
'招标文件'
,
price
:
'100.00'
},
{
name
:
'清河坊铺石板'
,
size
:
'20M'
,
type
:
'其他文件'
,
price
:
'100.00'
},
{
name
:
'清河坊铺石板'
,
size
:
'20M'
,
type
:
'其他文件'
,
price
:
'100.00'
},
{
name
:
'清河坊铺石板'
,
size
:
'20M'
,
type
:
'其他文件'
,
price
:
'0.00'
},
{
name
:
'清河坊铺石板'
,
size
:
'20M'
,
type
:
'其他文件'
,
price
:
'0.00'
}],
tabledata
:
[],
breads
:
[
'投标管理'
,
'我参与的项目'
,
'工作台'
],
columns
:
[{
label
:
'文件名称'
,
...
...
@@ -82,6 +58,27 @@ export default {
slot
:
'operate'
}]
}
},
created
()
{
this
.
getbidBooklist
()
},
methods
:{
async
getbidBooklist
()
{
try
{
let
message
=
{}
message
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
message
.
companyId
=
1
const
{
data
,
code
}
=
await
bidBooklist
(
message
)
if
(
code
===
200
)
{
this
.
tableData
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
</
script
>
...
...
src/pages/supply/bid/joinProject/bidStage/tenderFee.vue
View file @
18cebfd0
This diff is collapsed.
Click to expand it.
src/pages/supply/bid/signupOnline/seePrice.vue
View file @
18cebfd0
...
...
@@ -98,6 +98,7 @@
</template>
<
script
>
import
{
noticeEnquiry
}
from
'@api/supply/bid'
import
dataTable
from
'@components/nopageTable.vue'
import
breadCrumb
from
'@components/dataBreadcrumb.vue'
export
default
{
...
...
@@ -187,11 +188,24 @@ export default {
methods
:
{
Prev
()
{
this
.
$router
.
push
(
'/supply/Join_items/work_place/all_content'
)
},
async
getNoticeEnquiry
()
{
try
{
const
{
data
,
code
}
=
await
noticeEnquiry
(
1
)
if
(
code
===
200
)
{
this
.
tableData
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
},
created
()
{
this
.
getNoticeEnquiry
();
}
}
</
script
>
...
...
src/pages/supply/bid/signupOnline/signUp.vue
View file @
18cebfd0
...
...
@@ -7,13 +7,14 @@
</div>
<div
class=
"content"
>
<div
class=
"table_pos"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px
"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
:rules=
"rules
"
>
<el-form-item
label=
"单位名称:"
>
<el-input
v-model=
"form.projectId"
class=
"input"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"联系人:"
prop=
"userId"
>
<el-select
v-model=
"form.userId"
placeholder=
"请选择"
style=
"width:300px"
>
<el-option
v-for=
"item in users"
label=
"父亲"
value=
"1100000000
"
></el-option>
<el-option
v-for=
"item in users"
:label=
"item.userName"
:value=
"item.userId
"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"手机号:"
>
...
...
@@ -24,8 +25,8 @@
</el-form-item>
<div
class=
"flex-item"
>
<div>
是否买断账期:
</div>
<el-radio
v-model=
"is_payment_days"
label=
"0
"
>
否
</el-radio>
<el-radio
v-model=
"is_payment_days"
label=
"1
"
>
是
</el-radio>
<el-radio
v-model=
"is_payment_days"
:label=
"false
"
>
否
</el-radio>
<el-radio
v-model=
"is_payment_days"
:label=
"true
"
>
是
</el-radio>
</div>
<div
class=
"flex-center buttom"
>
<el-button
@
click=
"cancel"
>
取消
</el-button>
...
...
@@ -49,28 +50,41 @@
</
template
>
<
script
>
import
{
userList
}
from
'@api/common/list'
import
dataTable
from
'@components/dataTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
{
userList
}
from
'@api/common/list'
import
{
projectapply
}
from
'@api/supply/bid'
import
dataTable
from
'@components/dataTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
export
default
{
export
default
{
components
:
{
dataTable
,
dataBreadcrumb
},
data
()
{
return
{
is_payment_days
:
""
,
users
:
[],
is_payment_days
:
""
,
users
:
[],
dialogFormVisible
:
false
,
breads
:
[
'投标管理'
,
'在线报名'
,
'报名'
],
form
:
{
projectId
:
1
,
userId
:
''
,
phone
:
'
'
,
email
:
'
'
,
is_payment_days
:
""
phone
:
'1
'
,
email
:
'1
'
,
is_payment_days
:
""
},
rules
:
{
userId
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}]
}
}
},
created
()
{
...
...
@@ -80,15 +94,35 @@ export default {
cancel
()
{
this
.
$router
.
go
(
-
1
)
},
sendTo
()
{
async
sendTo
()
{
try
{
let
is_payment_days
=
this
.
is_payment_days
if
(
!
is_payment_days
)
{
this
.
dialogFormVisible
=
true
}
else
{
const
valid
=
await
this
.
$refs
[
'form'
].
validate
()
if
(
valid
)
{
let
form
=
this
.
form
;
form
.
companyId
=
1
,
form
.
projectId
=
1
,
form
.
is_payment_days
=
this
.
is_payment_days
const
{
code
,
msg
}
=
await
projectapply
(
this
.
form
)
console
.
log
(
code
);
if
(
code
===
200
)
{
this
.
$message
.
success
(
msg
)
}
}
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
async
getuserList
()
{
try
{
let
companyId
=
1
let
companyId
=
1
const
{
data
,
code
...
...
@@ -101,7 +135,7 @@ export default {
}
}
}
}
}
</
script
>
<
style
scoped
>
...
...
src/utils/request.js
View file @
18cebfd0
...
...
@@ -5,14 +5,15 @@ import { Message, MessageBox } from 'element-ui'
// 创建axios实例
const
service
=
axios
.
create
({
baseURL
:
'http://192.168.200.201:8082/apis'
,
// api的base_url
// baseURL: 'http://192.168.200.201:8082/apis',
baseURL
:
'http://192.168.3.35:8085/apis'
,
timeout
:
35000
// 请求超时时间
})
// request拦截器
service
.
interceptors
.
request
.
use
(
config
=>
{
let
token
=
localStorage
.
getItem
(
"token"
)
if
(
token
){
if
(
token
||
token
!==
"undefined"
){
config
.
headers
[
'token'
]
=
token
;
}
return
config
...
...
@@ -38,10 +39,11 @@ service.interceptors.response.use(
error
=>
{
if
(
error
.
response
.
status
==
500
){
Message
.
error
(
"登陆失效,请重新登录!"
)
localStorage
.
removeItem
(
'token'
);
setTimeout
(
function
()
{
location
.
href
=
'http://192.168.200.201:8081/'
;
},
2000
);
// localStorage.removeItem('token');
// setTimeout(function () {
// // location.href = 'http://192.168.200.201:8081/';
// location.href = 'http://localhost:3000/';
// }, 2000);
}
}
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment