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
34a25056
Commit
34a25056
authored
Sep 23, 2020
by
张冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
联调修改
parent
7355e38f
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
718 additions
and
282 deletions
+718
-282
bid.js
src/api/purchaser/bid.js
+134
-10
buyOut.js
src/api/purchaser/buyOut.js
+9
-0
main.css
src/assets/css/main.css
+1
-0
common.css
src/common/common.css
+1
-1
Sidebar.vue
src/components/common/Sidebar.vue
+1
-1
dataTable.vue
src/components/dataTable.vue
+1
-0
timeDown.vue
src/components/timeDown.vue
+12
-7
content.vue
...es/purchaser/bid/bidEvaluation/projectManager/content.vue
+158
-75
fail.vue
...pages/purchaser/bid/bidEvaluation/projectManager/fail.vue
+30
-5
add.vue
src/pages/purchaser/bid/bidEvaluation/review/add.vue
+1
-1
clear.vue
src/pages/purchaser/bid/bidEvaluation/review/clear.vue
+1
-1
review.vue
src/pages/purchaser/bid/bidEvaluation/review/review.vue
+122
-52
bidOpenhal.vue
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
+0
-0
detail.vue
src/pages/purchaser/bid/bidStage/bondList/detail.vue
+9
-2
changeNotice.vue
src/pages/purchaser/bid/bidStage/changeList/changeNotice.vue
+8
-8
determine.vue
src/pages/purchaser/bid/bidSure/determine.vue
+52
-48
notice.vue
src/pages/purchaser/bid/bidSure/notice.vue
+37
-5
publicity.vue
src/pages/purchaser/bid/bidSure/publicity.vue
+50
-35
see.vue
src/pages/purchaser/bid/bidSure/see.vue
+25
-3
edit.vue
src/pages/purchaser/bid/bidSure/winBid/edit.vue
+18
-6
list.vue
src/pages/purchaser/bid/bidSure/winBid/list.vue
+3
-3
inquiryAnnouncement.vue
src/pages/purchaser/bid/reviewed/inquiryAnnouncement.vue
+0
-1
tenderAnnouncement.vue
src/pages/purchaser/bid/reviewed/tenderAnnouncement.vue
+2
-2
buyoutList.vue
src/pages/purchaser/buyOut/buyoutList.vue
+1
-1
contractSign.vue
src/pages/purchaser/buyOut/contractSign.vue
+34
-8
allSupplySee.vue
src/pages/purchaser/supply/allSupply/allSupplySee.vue
+6
-5
request.js
src/utils/request.js
+2
-2
No files found.
src/api/purchaser/bid.js
View file @
34a25056
...
...
@@ -180,16 +180,112 @@ export function noticeAbortive(id) {
// })
// }
// 2.1.4
//开标大厅
// 开标一览表
export
function
openInfo
(
projectId
)
{
return
request
({
url
:
`open-bid/openInfo/
${
projectId
}
`
,
method
:
'get'
,
})
}
//签到解密简略
export
function
signdetail
(
projectId
)
{
return
request
({
url
:
`/open-bid/sign/
${
projectId
}
`
,
method
:
'get'
,
})
}
// 开标按钮上三个信息(投标人数,缴纳保证金人数,签到人数)
export
function
startInfo
(
projectId
)
{
return
request
({
url
:
`open-bid/startInfo/
${
projectId
}
`
,
method
:
'get'
,
})
}
//获取开标大厅的时间信息
export
function
timeInfo
(
projectId
)
{
return
request
({
url
:
`open-bid/timeInfo/
${
projectId
}
`
,
method
:
'get'
,
})
}
// 立即开标
export
function
startbid
(
projectId
)
{
return
request
({
url
:
`open-bid/start/
${
projectId
}
`
,
method
:
'put'
,
})
}
// 流标
export
function
openbidFailed
(
data
)
{
return
request
({
url
:
"open-bid/bidFailed"
,
method
:
'post'
,
data
:
data
})
}
// 查看流标信息
export
function
bidFaileddetail
(
projectId
)
{
return
request
({
url
:
`open-bid/bidFailed/detail/
${
projectId
}
`
,
method
:
'get'
,
})
}
// 2.1.5
// 评标管理:变更公告列表
export
function
accessoryupload
(
data
)
{
return
request
({
url
:
"tender-evaluate/accessory/upload"
,
method
:
'post'
,
data
:
data
})
}
// 评标管理:变更公告列表
export
function
changeNoticelist
(
projectId
)
{
return
request
({
url
:
`tender-evaluate/changeNotice/list/
${
projectId
}
`
,
method
:
'get'
,
})
}
//投标文件
export
function
bidFilelist
(
projectId
)
{
return
request
({
url
:
`tender-evaluate/bidFile/list/
${
projectId
}
`
,
method
:
'get'
,
})
}
// 评标附件
export
function
accessorydownload
(
projectId
)
{
return
request
({
url
:
`tender-evaluate/accessory/download/
${
projectId
}
`
,
method
:
'get'
,
})
}
// 流标
export
function
bidFailed
(
data
)
{
return
request
({
url
:
"tender-evaluate/bidFailed"
,
method
:
'p
u
t'
,
method
:
'p
os
t'
,
data
:
data
})
}
//项目经理中的评标结算按钮
export
function
bidend
(
projectId
)
{
return
request
({
url
:
`/tender-evaluate/end/
${
projectId
}
`
,
method
:
'put'
,
})
}
// 查看投标公司评审信息
export
function
CompanyEvaluatec
(
projectId
)
{
...
...
@@ -325,6 +421,34 @@ export function bidsetting(data) {
data
:
data
})
}
//中标候选人公示提交
export
function
createcadidate
(
data
)
{
return
request
({
url
:
"/tender-notice/create-cadidate"
,
method
:
'post'
,
data
:
data
})
}
//中标公告提交
export
function
createwin
(
data
)
{
return
request
({
url
:
"tender-notice/create-win"
,
method
:
'post'
,
data
:
data
})
}
// 标书费提交
export
function
operationAduit
(
data
)
{
...
...
@@ -336,11 +460,12 @@ export function operationAduit(data) {
}
// 2.1.4
//开标大厅
// export function onlineCount() {
// return request({
// url: "/onlineCount",
// method: 'get',
// })
// }
\ No newline at end of file
// 招标文件下载
export
function
bidBookDownload
(
projectId
)
{
return
request
({
url
:
`tender-evaluate/bidBook-download/
${
projectId
}
`
,
method
:
'get'
,
})
}
src/api/purchaser/buyOut.js
View file @
34a25056
...
...
@@ -23,6 +23,15 @@ export function evidenceDetail(params) {
params
:
params
})
}
// 签署合同
export
function
signContract
(
projectId
)
{
return
request
({
url
:
`tender-payment/sign-contract/
${
projectId
}
`
,
method
:
'put'
,
})
}
src/assets/css/main.css
View file @
34a25056
...
...
@@ -22,6 +22,7 @@ a {
.content-box
{
min-width
:
1000px
;
position
:
absolute
;
left
:
250px
;
right
:
0
;
...
...
src/common/common.css
View file @
34a25056
...
...
@@ -201,7 +201,7 @@ img {
.tips
{
color
:
#FF0000
}
.el-input
{
.message
.el-input
{
width
:
250px
!important
;
...
...
src/components/common/Sidebar.vue
View file @
34a25056
...
...
@@ -81,7 +81,7 @@ export default {
{
icon
:
'el-icon-lx-home'
,
index
:
'/purchaser/buyOut/buyoutList'
,
title
:
'
平台交货
列表'
,
title
:
'
应收账款买断
列表'
,
}
]
},
...
...
src/components/dataTable.vue
View file @
34a25056
...
...
@@ -155,6 +155,7 @@ export default {
}
},
created
()
{
console
.
log
(
"分页"
)
if
(
this
.
checklist
.
length
>
0
)
{
const
obj
=
{}
this
.
checklist
.
forEach
((
item
)
=>
{
...
...
src/components/timeDown.vue
View file @
34a25056
...
...
@@ -6,12 +6,7 @@
<
script
>
export
default
{
props
:
{
remainTime
:
{
type
:
Number
,
default
:
1200000
}
},
props
:
[
"remainTime"
],
data
()
{
return
{
hour
:
''
,
...
...
@@ -31,7 +26,18 @@ export default {
return
this
.
formatNum
(
this
.
second
)
}
},
watch
:{
remainTime
(
newValue
,
oldValue
)
{
console
.
log
(
"监听"
)
this
.
checkTime
()
return
newValue
;
}
},
mounted
()
{
this
.
checkTime
()
},
methods
:
{
checkTime
(){
if
(
this
.
remainTime
>
0
)
{
this
.
hour
=
Math
.
floor
((
this
.
remainTime
/
3600
)
%
24
)
this
.
minute
=
Math
.
floor
((
this
.
remainTime
/
60
)
%
60
)
...
...
@@ -39,7 +45,6 @@ export default {
this
.
countDowm
()
}
},
methods
:
{
countDowm
()
{
var
self
=
this
clearInterval
(
this
.
promiseTimer
)
...
...
src/pages/purchaser/bid/bidEvaluation/projectManager/content.vue
View file @
34a25056
...
...
@@ -4,31 +4,27 @@
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<div
class=
"message"
>
<div
class=
"flex-between"
style=
"width: 50%;"
>
<div>
招标文件:
<span>
下载招标文件
</span></div>
<div>
招标文件:
<span
@
click=
"download(bidDetail.fileUrl)"
>
{{
bidDetail
.
fileName
}}
</span></div>
<div>
开标信息:
<span>
开标一览表
</span></div>
</div>
<div
class=
"flex upload"
>
<div>
变更信息:
</div>
<ul
class=
"title"
>
<li
class=
"flex"
>
<div>
公告标题.pdf
</div>
<button>
下载
</button>
</li>
<li
class=
"flex"
>
<div>
公告标题.pdf
</div>
<button>
下载
</button>
<li
class=
"flex"
v-for=
"(item,index) in changeList"
:key=
"index"
>
<router-link
:to=
"
{path: '/purchaser/bid/bidStage/changeList/see', query: {id: item.noticeId }}">
{{
item
.
title
}}
</router-link>
</li>
</ul>
</div>
<!-- 投标文件 -->
<div>
<div>
投标文件:
</div>
<dataTable
:table-data=
"bids"
:columns=
"bidTitle"
:is-pageobj=
"fals
e"
:is-index=
"true"
>
<dataTable
:table-data=
"bids"
:columns=
"bidTitl
e"
:is-index=
"true"
>
<el-table-column
slot=
"operate"
label=
"文件"
align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<ul
class=
"flex file"
>
<li
v-for=
"(file,index) in scope.row.files"
:key=
"index"
>
{{
file
}}
下载
</li>
</ul>
<div
class=
"flex file"
>
<div
@
click=
"down(scope.row.fileUrl)"
>
{{
scope
.
row
.
fileName
}}
</div>
<div
v-for=
"(file,index) in scope.row.fileList"
:key=
"index"
@
click=
"down(file.fileUrl)"
>
{{
file
.
fileName
}}
</div>
</div>
</
template
>
</el-table-column>
</dataTable>
...
...
@@ -37,9 +33,9 @@
<div
style=
"margin-top:100px"
>
<div
class=
"flex-between"
>
<h5>
评审信息
</h5>
<el-button
type=
"primary"
size=
"small"
>
澄清质询查看
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
'jump'
>
澄清质询查看
</el-button>
</div>
<dataTable
:table-data=
"review"
:columns=
"reviewTitle"
:is-pageobj=
"fals
e"
:is-index=
"true"
>
<dataTable
:table-data=
"review"
:columns=
"reviewTitl
e"
:is-index=
"true"
>
<el-table-column
slot=
"operate"
label=
"资格审查"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<div
v-if=
"scope.row.qualifi==0"
>
通过
</div>
...
...
@@ -69,22 +65,23 @@
<!-- 排名信息 -->
<div>
<h5>
排名信息
</h5>
<dataTable
:table-data=
"rank"
:columns=
"rankTitle"
:is-pageobj=
"fals
e"
:is-index=
"true"
>
<dataTable
:table-data=
"rank"
:columns=
"rankTitl
e"
:is-index=
"true"
>
</dataTable>
</div>
<div
class=
"flex"
>
<div>
评标附件:
</div>
<ul
class=
"upload"
>
<li
class=
"fl
ex"
>
<div>
评价附件.pdf
</div>
<button
>
下载
</button>
<li
class=
"flex"
v-for=
"(item,index) in downloadList"
:key=
"ind
ex"
>
<div>
{{item.fileName}}
</div>
<button
@
click=
"down(item.fileUrl)"
>
下载
</button>
</li>
</ul>
</div>
<div
class=
"button"
>
<el-button
>
返回
</el-button>
<el-button
@
click=
"back"
>
返回
</el-button>
<el-button
@
click=
"fail"
>
流标
</el-button>
<el-button
type=
"primary
"
>
评标结束
</el-button>
<el-button
type=
"primary"
@
click=
"end
"
>
评标结束
</el-button>
</div>
</div>
</div>
...
...
@@ -92,34 +89,46 @@
</template>
<
script
>
import
dataTable
from
'@components/dataTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
export
default
{
import
{
bidend
,
CompanyEvaluatec
,
companyRank
,
bidBookDownload
,
changeNoticelist
,
bidFilelist
,
accessorydownload
}
from
'@api/purchaser/bid'
import
dataTable
from
'@components/nopageTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
export
default
{
components
:
{
dataTable
,
dataBreadcrumb
},
data
()
{
return
{
downloadList
:[],
changeList
:[],
bidDetail
:
""
,
rankTitle
:
[{
label
:
'投标人名称'
,
prop
:
'n
ame'
prop
:
'companyN
ame'
},
{
label
:
'投标价(元)'
,
prop
:
'bidP
rice'
prop
:
'p
rice'
},
{
label
:
'商务评分'
,
prop
:
'businessScor
e'
prop
:
'commercialGrad
e'
},
{
label
:
'技术评分'
,
prop
:
'technicalScor
e'
prop
:
'skillGrad
e'
},
{
label
:
'价格得
分'
,
prop
:
'priceScor
e'
label
:
'价格评
分'
,
prop
:
'priceGrad
e'
},
{
label
:
'评标价(元)'
,
...
...
@@ -132,81 +141,153 @@ export default {
{
label
:
'最终得分'
,
prop
:
'finalScore'
}
],
rank
:
[{
name
:
'上海腾讯'
,
bidPrice
:
'490000'
,
businessScore
:
'30'
,
technicalScore
:
'4.8'
,
priceScore
:
'18.8'
,
evaluationPrice
:
'490000'
,
rank
:
'1'
,
finalScore
:
'53.6'
},
{
slot
:
'operate'
}
],
rank
:
[],
bidTitle
:
[{
label
:
'投标人'
,
prop
:
'n
ame'
prop
:
'companyN
ame'
},
{
slot
:
'operate'
}
],
bids
:
[{
name
:
'上海致远有限公司'
,
files
:
[
'313121.zip'
,
'546465.zip'
]
}],
bids
:
[],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
review
:
[{
name
:
'上海腾讯'
,
qualifi
:
'1'
,
accord
:
'1'
,
fail
:
'1'
,
conclusion
:
'1'
},
{
name
:
'上海腾讯'
,
qualifi
:
'0'
,
accord
:
'0'
,
fail
:
'0'
,
conclusion
:
'0'
}
],
review
:
[],
reviewTitle
:
[{
label
:
'投标人名称'
,
prop
:
'n
ame'
prop
:
'companyN
ame'
},
{
slot
:
'operate'
}
],
// 操作列
}
},
methods
:
{
down
(
url
){
window
.
open
(
url
)
},
jump
()
{
this
.
$router
.
push
(
'/purchaser/bid/bidEvaluation/review/clear'
)
},
// 查看评标附件
async
getaccessorydownload
(){
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
accessorydownload
(
projectId
)
if
(
code
===
200
){
this
.
downloadList
=
data
}
},
pageObj
:
{
size
:
10
,
total
:
1
,
currentPage
:
1
,
sizes
:
[
100
,
200
,
300
],
func
:
(
currentPage
)
=>
{
this
.
pageTurning
(
currentPage
)
// 查看投标文件
async
getbidFilelist
(){
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
bidFilelist
(
projectId
)
if
(
code
===
200
){
this
.
bids
=
data
}
},
// 查看变更信息
async
getchangeNoticelist
(){
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
changeNoticelist
(
projectId
)
if
(
code
===
200
){
this
.
changeList
=
data
;
}
},
// 查投标公司评审信息
async
getCompanyEvaluatec
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
CompanyEvaluatec
(
projectId
)
if
(
code
===
200
)
{
this
.
review
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
methods
:
{
// 查看投标公司排名信息
async
getcompanyRank
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
companyRank
(
projectId
)
if
(
code
===
200
)
{
this
.
rank
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
async
getbidBookDownload
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
}
=
await
bidBookDownload
(
projectId
)
if
(
code
===
200
)
{
this
.
bidDetail
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
async
end
()
{
// 二次确认
this
.
$confirm
(
'确定要流标吗?'
,
'提示'
,
{
type
:
'warning'
})
.
then
(
async
()
=>
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
msg
,
code
}
=
await
bidend
(
projectId
)
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
})
.
catch
(()
=>
{})
},
back
()
{
this
.
$router
.
go
(
-
1
)
},
examine
()
{
this
.
$router
.
push
(
'/admin/bid/bidingDetail'
)
},
fail
()
{
this
.
$router
.
push
(
'/purchaser/bid/bidEvaluation/projectManager/fail'
)
}
},
created
()
{
this
.
getaccessorydownload
();
this
.
getbidFilelist
();
this
.
getchangeNoticelist
();
this
.
getcompanyRank
()
this
.
getCompanyEvaluatec
()
this
.
getbidBookDownload
();
},
}
}
</
script
>
<
style
scoped
>
.file
>
li
{
.file
>
div
{
margin-right
:
10px
;
color
:
#113DEE
}
...
...
@@ -236,12 +317,14 @@ export default {
height
:
20px
;
margin-left
:
10px
;
}
h5
{
font-weight
:
bold
;
margin-bottom
:
20px
;
}
.button
{
width
:
280px
;
margin
:
80px
auto
30px
.button
{
width
:
280px
;
margin
:
80px
auto
30px
}
</
style
>
src/pages/purchaser/bid/bidEvaluation/projectManager/fail.vue
View file @
34a25056
...
...
@@ -13,11 +13,11 @@
</div>
<div
class=
"flex"
>
<div
class=
"adjustment"
>
评价报告
</div>
<Upload
:limit=
"1"
:max=
"100"
tip=
"最多上传一个文件,每个文件不超过100M。"
></Upload>
<Upload
:limit=
"1"
:max=
"100"
tip=
"最多上传一个文件,每个文件不超过100M。"
@
input=
"getfile"
></Upload>
</div>
<div
class=
"flex"
>
<div
class=
"adjustment "
>
评标报告扫描件
</div>
<Upload
:limit=
"1"
:max=
"100"
tip=
"最多上传5个文件,每个文件不超过100M。"
></Upload>
<Upload
:limit=
"1"
:max=
"100"
tip=
"最多上传5个文件,每个文件不超过100M。"
@
input=
"getfile1"
></Upload>
</div>
<div
class=
"flex-center"
style=
"margin:100px 0"
>
<el-button>
取消
</el-button>
...
...
@@ -40,17 +40,38 @@ export default {
},
data
()
{
return
{
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
]
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
file
:[],
file1
:[]
}
},
methods
:
{
//
getfile
(
val
){
this
.
file
=
val
},
getfile1
(
val
){
this
.
file1
=
val
},
// 提交
async
submitData
()
{
try
{
let
message
=
{}
let
filePOList
=
[];
let
file
=
this
.
file
;
let
file1
=
this
.
file1
;
for
(
let
item
of
file
){
item
.
type
=
1
};
for
(
let
item1
of
file1
){
item1
.
type
=
2
};
filePOList
=
file
.
concat
(
file1
)
message
.
filePOList
=
filePOList
;
message
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
code
,
msg
}
=
await
bidFailed
(
message
)
if
(
code
==
200
){
this
.
$message
({
...
...
@@ -80,4 +101,8 @@ export default {
.message
>
div
{
margin-bottom
:
20px
;
}
.adjustment
{
width
:
120px
;
text-align
:
center
;
}
</
style
>
src/pages/purchaser/bid/bidEvaluation/review/add.vue
View file @
34a25056
...
...
@@ -130,7 +130,7 @@
code
}
=
await
bidsupplyList
(
projectId
)
if
(
code
===
200
)
{
//
this.CompanyIds = data
this
.
CompanyIds
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
...
...
src/pages/purchaser/bid/bidEvaluation/review/clear.vue
View file @
34a25056
...
...
@@ -94,7 +94,7 @@ export default {
}
},
back
(){
this
.
$route
.
go
(
-
1
)
this
.
$route
r
.
go
(
-
1
)
},
handleSee
(
row
){
let
id
=
row
.
pid
;
...
...
src/pages/purchaser/bid/bidEvaluation/review/review.vue
View file @
34a25056
...
...
@@ -4,19 +4,14 @@
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<div
class=
"message"
>
<div
class=
"flex-between"
style=
"width: 50%;"
>
<div>
招标文件:
<span>
下载招标文件
</span></div>
<div>
招标文件:
<span
@
click=
"download(bidDetail.fileUrl)"
>
{{
bidDetail
.
fileName
}}
</span></div>
<div>
开标信息:
<span>
开标一览表
</span></div>
</div>
<div
class=
"flex upload"
>
<div>
变更信息:
</div>
<ul
class=
"title"
>
<li
class=
"flex"
>
<div>
公告标题.pdf
</div>
<button>
下载
</button>
</li>
<li
class=
"flex"
>
<div>
公告标题.pdf
</div>
<button>
下载
</button>
<li
class=
"flex"
v-for=
"(item,index) in changeList"
:key=
"index"
>
<router-link
:to=
"
{path: '/purchaser/bid/bidStage/changeList/see', query: {id: item.noticeId }}">
{{
item
.
title
}}
</router-link>
</li>
</ul>
</div>
...
...
@@ -26,9 +21,10 @@
<dataTable
:table-data=
"bids"
:columns=
"bidTitle"
:is-index=
"true"
>
<el-table-column
slot=
"operate"
label=
"文件"
align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<ul
class=
"flex file"
>
<li
v-for=
"(file,index) in scope.row.files"
:key=
"index"
>
{{
file
}}
下载
</li>
</ul>
<div
class=
"flex file"
>
<div
@
click=
"down(scope.row.fileUrl)"
>
{{
scope
.
row
.
fileName
}}
</div>
<div
v-for=
"(file,index) in scope.row.fileList"
:key=
"index"
@
click=
"down(file.fileUrl)"
>
{{
file
.
fileName
}}
</div>
</div>
</
template
>
</el-table-column>
</dataTable>
...
...
@@ -91,17 +87,11 @@
</div>
<div
class=
"flex"
>
<div>
评标附件:
</div>
<ul
class=
"upload"
>
<li
class=
"flex"
>
<div>
评价附件.pdf
</div>
<button>
下载
</button>
</li>
</ul>
<singleUpload
:limit=
"5"
:max=
"100"
tip=
"最多上传5份,每份不超过100M."
@
input=
"getfile"
></singleUpload>
</div>
<div
class=
"button"
>
<el-button>
返回
</el-button>
<el-button
@
click=
"fail"
>
流标
</el-button>
<el-button
type=
"primary"
>
评标结束
</el-button>
<el-button
@
click=
"back"
>
返回
</el-button>
<el-button
type=
"primary"
@
click=
"complete"
>
完成
</el-button>
</div>
</div>
</div>
...
...
@@ -133,22 +123,22 @@
<!-- 编辑公司排名-->
<el-dialog
title=
"编辑"
:visible
.
sync=
"isRank"
>
<el-form
:model=
"rankForm"
>
<el-form-item
label=
"投标价"
>
<el-input
v-model=
"rankForm.price"
></el-input>
<el-form-item
label=
"投标价"
>
<el-input
v-model=
"rankForm.price"
></el-input>
</el-form-item>
<el-form-item
label=
"商务评分"
>
<el-input
v-model=
"rankForm.commercialGrade"
></el-input>
<el-form-item
label=
"商务评分"
>
<el-input
v-model=
"rankForm.commercialGrade"
></el-input>
</el-form-item>
<el-form-item
label=
"技术评分"
>
<el-input
v-model=
"rankForm.skillGrade"
></el-input>
<el-form-item
label=
"技术评分"
>
<el-input
v-model=
"rankForm.skillGrade"
></el-input>
</el-form-item>
<el-form-item
label=
"价格评分"
>
<el-input
v-model=
"rankForm.priceGrade"
></el-input>
<el-input
v-model=
"rankForm.priceGrade"
></el-input>
</el-form-item>
<el-form-item
label=
"评标价 "
>
<el-input
v-model=
"rankForm.evaluationPrice"
></el-input>
<el-form-item
label=
"评标价 "
>
<el-input
v-model=
"rankForm.evaluationPrice"
></el-input>
</el-form-item>
<el-form-item
label=
"是否中标候选人"
>
<el-form-item
label=
"是否中标候选人"
>
<el-radio
v-model=
"rankForm.winPerson"
:label=
"true"
>
是
</el-radio>
<el-radio
v-model=
"rankForm.winPerson"
:label=
"false"
>
否
</el-radio>
</el-form-item>
...
...
@@ -162,21 +152,32 @@
</template>
<
script
>
import
{
import
{
companyRank
,
CompanyEvaluatec
,
saveCompanyEvaluate
,
saveCompanyRank
}
from
'@api/purchaser/bid'
import
dataTable
from
'@components/nopageTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
export
default
{
saveCompanyRank
,
bidBookDownload
,
changeNoticelist
,
bidFilelist
,
accessoryupload
}
from
'@api/purchaser/bid'
import
dataTable
from
'@components/nopageTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
singleUpload
from
'@components/Upload/Upload.vue'
export
default
{
components
:
{
dataTable
,
dataBreadcrumb
dataBreadcrumb
,
singleUpload
},
data
()
{
return
{
file
:
[],
downloadList
:
[],
changeList
:
[],
bidDetail
:
""
,
evaluateForm
:
{
qualification
:
''
,
conformity
:
''
,
...
...
@@ -186,9 +187,9 @@ export default {
evaluateIdx
:
''
,
isEvaluate
:
false
,
rankForm
:
{
price
:
""
,
price
:
""
,
},
rankIdx
:
""
,
rankIdx
:
""
,
isRank
:
false
,
projectId
:
2
,
rankTitle
:
[{
...
...
@@ -230,16 +231,13 @@ export default {
rank
:
[],
bidTitle
:
[{
label
:
'投标人'
,
prop
:
'n
ame'
prop
:
'companyN
ame'
},
{
slot
:
'operate'
}
],
bids
:
[{
name
:
'上海致远有限公司'
,
files
:
[
'313121.zip'
,
'546465.zip'
]
}],
bids
:
[],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
review
:
[],
reviewTitle
:
[{
...
...
@@ -255,8 +253,82 @@ export default {
created
()
{
this
.
getcompanyRank
()
this
.
getCompanyEvaluatec
()
this
.
getbidFilelist
();
this
.
getchangeNoticelist
();
this
.
getbidBookDownload
();
},
methods
:
{
getfile
(
val
)
{
this
.
file
=
val
},
// 完成按钮
async
complete
()
{
try
{
let
message
=
{}
message
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
message
.
fileList
=
this
.
file
const
{
msg
,
code
}
=
await
accessoryupload
(
message
)
if
(
code
===
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
back
()
{
this
.
$router
.
go
(
-
1
)
},
down
(
url
)
{
window
.
open
(
url
)
},
async
getbidBookDownload
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
}
=
await
bidBookDownload
(
projectId
)
if
(
code
===
200
)
{
this
.
bidDetail
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
// 查看投标文件
async
getbidFilelist
()
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
bidFilelist
(
projectId
)
if
(
code
===
200
)
{
this
.
bids
=
data
}
},
// 查看变更信息
async
getchangeNoticelist
()
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
changeNoticelist
(
projectId
)
if
(
code
===
200
)
{
this
.
changeList
=
data
;
}
},
// 排名信息编辑
Edit
(
row
,
index
)
{
this
.
rankForm
=
Object
.
assign
({},
row
)
...
...
@@ -268,7 +340,8 @@ export default {
async
editCompanyRank
()
{
try
{
const
{
code
,
msg
code
,
msg
}
=
await
saveCompanyRank
(
this
.
form
)
if
(
code
===
200
)
{
this
.
$message
.
success
(
msg
)
...
...
@@ -289,7 +362,8 @@ export default {
async
editCompanyEvaluate
()
{
try
{
const
{
code
,
msg
code
,
msg
}
=
await
saveCompanyEvaluate
(
this
.
form
)
if
(
code
===
200
)
{
this
.
$message
.
success
(
msg
)
...
...
@@ -300,10 +374,6 @@ export default {
console
.
log
(
e
)
}
},
fail
()
{
this
.
$router
.
push
(
'/purchaser/bid/bidEvaluation/projectManager/fail'
)
},
// 查投标公司评审信息
async
getCompanyEvaluatec
()
{
try
{
...
...
@@ -322,7 +392,7 @@ export default {
// 查看投标公司排名信息
async
getcompanyRank
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
...
...
@@ -336,7 +406,7 @@ export default {
}
}
}
}
}
</
script
>
<
style
scoped
>
...
...
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
View file @
34a25056
This diff is collapsed.
Click to expand it.
src/pages/purchaser/bid/bidStage/bondList/detail.vue
View file @
34a25056
...
...
@@ -169,8 +169,15 @@
code
,
msg
}
=
await
bidderEarnestpayment
(
message
)
if
(
code
===
2000
)
{
this
.
$success
.
success
(
msg
)
if
(
code
===
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
}
}
catch
(
e
)
{
...
...
src/pages/purchaser/bid/bidStage/changeList/changeNotice.vue
View file @
34a25056
...
...
@@ -111,14 +111,14 @@ export default {
msg
}
=
await
createChange
(
this
.
ruleForm
)
if
(
code
===
200
)
{
//
this.$message({
//
message: msg,
//
type: 'success',
//
duration:1500
//
})
//
setTimeout(()=>{
//
this.$router.go(-1)
//
},1500)
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
}
}
catch
(
err
)
{
...
...
src/pages/purchaser/bid/bidSure/determine.vue
View file @
34a25056
...
...
@@ -13,25 +13,17 @@
<div>
项目分类:货物
</div>
<div
class=
"flex"
>
<div
class=
"adjustment"
>
上传附件:
</div>
<singleUpload
tips=
"支持上传1个附件,不超过20M
"
></singleUpload>
<singleUpload
:limit=
"1"
tip=
"支持上传1个附件,不超过20M"
@
input=
"getfile
"
></singleUpload>
</div>
</div>
</div>
<div
class=
"form"
>
<h3>
确定中标人
</h3>
<dataTable
:table-data=
"tableData"
:columns=
"columns"
:is-pageobj=
"false"
:is-index=
"true"
>
<el-table-column
slot=
"operate"
label=
"是否中标"
align=
"center"
fixed=
"right"
width=
"200"
>
<template
slot-scope=
"scope"
>
<el-checkbox
v-model=
"scope.row.isBid"
@
change=
"check(scope.$index)"
></el-checkbox>
</
template
>
</el-table-column>
</dataTable>
<el-radio-group
v-model=
"companyId"
>
<el-radio
:label=
"item.companyId"
v-for=
"(item,index) in tableData"
:key=
"index"
>
{{
item
.
companyName
}}
</el-radio>
</el-radio-group>
<h3
style=
"margin-top:30px"
>
说明
</h3>
<el-input
:rows=
"3"
v-model=
"content"
type=
"textarea"
placeholder=
"请输入内容"
>
<el-input
:rows=
"3"
v-model=
"content"
type=
"textarea"
placeholder=
"请输入内容"
>
</el-input>
</div>
<div
class=
"button flex-center"
>
...
...
@@ -45,13 +37,16 @@
</
template
>
<
script
>
import
{
candidate
,
winnerSave
}
from
'@api/purchaser/bid'
import
{
candidate
,
winnerSave
}
from
'@api/purchaser/bid'
import
dataTable
from
'@components/nopageTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
changeNav
from
'@components/changeNav.vue'
import
singleUpload
from
'@components/Upload/single
Upload.vue'
export
default
{
import
dataTable
from
'@components/nopageTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
changeNav
from
'@components/changeNav.vue'
import
singleUpload
from
'@components/Upload/
Upload.vue'
export
default
{
components
:
{
dataBreadcrumb
,
changeNav
,
...
...
@@ -60,7 +55,9 @@ export default {
},
data
()
{
return
{
projectId
:
2
,
file
:
""
,
companyId
:
""
,
projectId
:
2
,
content
:
''
,
navs
:
[
'确认中标人'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
...
...
@@ -84,32 +81,35 @@ export default {
]
//
}
},
created
()
{
created
()
{
this
.
getcandidate
()
},
methods
:
{
back
(){
getfile
(
val
){
this
.
file
=
val
},
back
()
{
this
.
$router
.
go
(
-
1
)
},
examine
()
{
this
.
$router
.
push
(
'/admin/bid/bidingDetail'
)
},
check
(
index
)
{
check
(
index
)
{
console
.
log
(
index
);
},
// 获取中标人列表
async
getcandidate
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
candidate
(
projectId
)
if
(
code
===
200
)
{
for
(
let
item
of
data
)
{
item
.
companyName
=
"杭州光海科技有限公司"
item
.
contacts
=
"松江"
item
.
phone
=
"77581633272"
if
(
code
===
200
)
{
for
(
let
item
of
data
)
{
item
.
companyName
=
"杭州光海科技有限公司"
item
.
contacts
=
"松江"
item
.
phone
=
"77581633272"
}
this
.
tableData
=
data
}
...
...
@@ -119,30 +119,32 @@ export default {
},
// 提交中标人
async
submitData
()
{
try
{
let
data
=
{};
data
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
data
.
companyId
=
this
.
companyId
data
.
remark
=
this
.
remark
;
data
.
fileList
=
this
.
file
;
const
{
msg
,
code
}
=
await
winnerSave
(
data
)
if
(
code
===
200
)
{
this
.
$message
({
message
:
"提交完成"
,
type
:
'success'
,
duration
:
1500
duration
:
1500
})
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
// try {
// let data={}
// data.projectId=localStorage.getItem("projectId");
// const {
// msg,
// code
// } = await winnerSave()
// if (code === 200) {
// this.$message.success(msg);
// }
// } catch (e) {
// console.log(e)
// }
},
1500
)
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
}
</
script
>
<
style
scoped
>
...
...
@@ -153,11 +155,13 @@ export default {
.message
>
div
{
margin-bottom
:
20px
;
}
.form
>
h3
{
.form
>
h3
{
font-weight
:
bold
;
margin-bottom
:
30px
;
}
.button
{
.button
{
width
:
100%
;
height
:
50px
;
...
...
src/pages/purchaser/bid/bidSure/notice.vue
View file @
34a25056
...
...
@@ -38,16 +38,14 @@
<el-form-item
label=
"公告标题"
prop=
"title"
>
<el-input
v-model=
"ruleForm.title"
></el-input>
</el-form-item>
</el-form>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"公告内容"
prop=
"content"
>
<quill-editor
ref=
"text"
v-model=
"
form.content"
:options=
"editorOption"
class=
"myQuillEditor"
/>
<quill-editor
ref=
"text"
v-model=
"
ruleForm.content"
:options=
"editorOption"
class=
"myQuillEditor"
/>
</el-form-item>
</el-form>
</div>
<div
class=
"button flex-center"
>
<div
class=
"b
ottomB
utton flex-center"
>
<el-button>
返回
</el-button>
<el-button
type=
"primary"
>
完成
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
提交审批
</el-button>
</div>
</div>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"收货地址"
width=
"30%"
>
...
...
@@ -65,6 +63,9 @@
</template>
<
script
>
import
{
createwin
}
from
'@api/purchaser/bid'
import
{
quillEditor
}
from
'vue-quill-editor'
...
...
@@ -83,6 +84,8 @@
},
data
()
{
return
{
editorOption
:
{},
file
:
[],
ruleForm
:
{
title
:
''
,
content
:
''
...
...
@@ -125,9 +128,38 @@
}
},
methods
:
{
getfile
(
val
)
{
this
.
file
=
val
},
edit
(
row
)
{
this
.
dialogFormVisible
=
true
this
.
form
=
row
},
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
()
if
(
valid
)
{
let
ruleForm
=
this
.
ruleForm
;
ruleForm
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
ruleForm
.
accessoryPOList
=
this
.
file
const
{
code
,
msg
}
=
await
createwin
(
ruleForm
)
if
(
code
===
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
...
...
src/pages/purchaser/bid/bidSure/publicity.vue
View file @
34a25056
...
...
@@ -3,7 +3,9 @@
<div
class=
"content-head"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<h3>
发布中标候选人公示
</h3>
<h5>
发布中标候选人公示
</h5>
</div>
<div
class=
"content"
>
<h5>
发布中标候选人公示
</h5>
</div>
<div
class=
"content"
>
<div
class=
"message"
>
<div
class=
"flex-between"
>
<div>
项目编号:3456789567222
</div>
...
...
@@ -12,60 +14,49 @@
<div
class=
"flex-between"
>
<div
class=
"flex"
>
<div
class=
"adjustment"
>
上传附件:
</div>
<singleUpload
tips=
"支持上传1个附件,不超过20M
"
></singleUpload>
<singleUpload
:limit=
"1"
tip=
"支持上传1个附件,不超过20M"
@
input=
"getfile"
:max=
"20
"
></singleUpload>
</div>
<div>
发布媒体:捷安采官网
</div>
</div>
<div
class=
"flex-item"
>
<div
style=
"width: 50px;"
>
备注:
</div>
<el-input
:rows=
"4"
v-model=
"remark"
type=
"remark
"
placeholder=
"请输入备注"
>
<el-input
:rows=
"4"
v-model=
"remark"
type=
"textarea
"
placeholder=
"请输入备注"
>
</el-input>
</div>
</div>
<div
class=
"form"
>
<h3
style=
"margin-top:30px"
>
中标候选人公示内容
</h3>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"公告标题"
prop=
"title"
>
<el-input
v-model=
"ruleForm.title"
></el-input>
</el-form-item>
</el-form>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"公告内容"
prop=
"content"
>
<quill-editor
ref=
"text"
v-model=
"form.content"
:options=
"editorOption"
class=
"myQuillEditor"
/>
<quill-editor
ref=
"text"
v-model=
"ruleForm.content"
:options=
"editorOption"
class=
"myQuillEditor"
/>
</el-form-item>
</el-form>
</div>
<div
class=
"bottomButton flex-center"
>
<el-button>
返回
</el-button>
<el-button
type=
"primary
"
>
提交审批
</el-button>
<el-button
type=
"primary"
@
click=
"submitData
"
>
提交审批
</el-button>
</div>
</div>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"收货地址"
width=
"30%"
>
<el-form
:model=
"form"
>
<el-form-item
label-width=
"120px"
label=
"输入中标价"
>
<el-input
v-model=
"form.price"
type=
"number"
autocomplete=
"off"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogFormVisible = false"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
import
{
import
{
createcadidate
}
from
'@api/purchaser/bid'
import
{
quillEditor
}
from
'vue-quill-editor'
import
'quill/dist/quill.core.css'
import
'quill/dist/quill.snow.css'
import
'quill/dist/quill.bubble.css'
import
dataTable
from
'@components/dataTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
singleUpload
from
'@components/Upload/single
Upload.vue'
export
default
{
}
from
'vue-quill-editor'
import
'quill/dist/quill.core.css'
import
'quill/dist/quill.snow.css'
import
'quill/dist/quill.bubble.css'
import
dataTable
from
'@components/dataTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
singleUpload
from
'@components/Upload/
Upload.vue'
export
default
{
components
:
{
dataTable
,
dataBreadcrumb
,
...
...
@@ -74,6 +65,8 @@ export default {
},
data
()
{
return
{
editorOption
:
{},
file
:
[],
ruleForm
:
{
title
:
''
,
content
:
''
...
...
@@ -93,21 +86,44 @@ export default {
form
:
{
price
:
''
},
dialogFormVisible
:
false
,
remark
:
''
,
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
]
}
},
methods
:
{
edit
(
row
)
{
this
.
dialogFormVisible
=
true
this
.
form
=
row
getfile
(
val
)
{
this
.
file
=
val
},
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
()
if
(
valid
)
{
let
ruleForm
=
this
.
ruleForm
;
ruleForm
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
ruleForm
.
accessoryPOList
=
this
.
file
const
{
code
,
msg
}
=
await
createcadidate
(
ruleForm
)
if
(
code
===
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
}
</
script
>
...
...
@@ -130,4 +146,3 @@ export default {
margin-top
:
50px
;
}
</
style
>
src/pages/purchaser/bid/bidSure/see.vue
View file @
34a25056
...
...
@@ -4,7 +4,7 @@
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<div
class=
"message"
>
<div
class=
"flex-between"
style=
"width: 50%;"
>
<div>
招标文件:
<span
>
下载招标文件
</span></div>
<div>
招标文件:
<span
@
click=
"download(bidDetail.fileUrl)"
>
{{
bidDetail
.
fileName
}}
</span></div>
<div>
开标信息:
<span>
开标一览表
</span></div>
</div>
<div
class=
"flex upload"
>
...
...
@@ -81,11 +81,11 @@
</li>
</ul>
</div>
<div
class=
"button"
>
<!--
<div class="button">
<el-button @click="back">返回</el-button>
<el-button @click="fail">流标</el-button>
<el-button type="primary">评标结束</el-button>
</div>
</div>
-->
</div>
</div>
</div>
...
...
@@ -95,6 +95,7 @@
import
{
companyRank
,
CompanyEvaluatec
,
bidBookDownload
}
from
'@api/purchaser/bid'
import
dataTable
from
'@components/nopageTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
...
...
@@ -105,6 +106,7 @@ export default {
},
data
()
{
return
{
bidDetail
:
""
,
projectId
:
2
,
rankTitle
:
[{
label
:
'投标人名称'
,
...
...
@@ -170,8 +172,12 @@ export default {
created
()
{
this
.
getcompanyRank
()
this
.
getCompanyEvaluatec
()
this
.
getbidBookDownload
();
},
methods
:
{
download
(
url
){
window
.
open
(
url
)
},
back
(){
this
.
$router
.
go
(
-
1
)
},
...
...
@@ -214,7 +220,23 @@ export default {
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
// 查看招标文件
async
getbidBookDownload
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
}
=
await
bidBookDownload
(
projectId
)
if
(
code
===
200
)
{
this
.
bidDetail
=
data
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
//
}
}
</
script
>
...
...
src/pages/purchaser/bid/bidSure/winBid/edit.vue
View file @
34a25056
...
...
@@ -15,10 +15,10 @@
<div>
日期:
{{
date
}}
</div>
<div>
中标金额:100.00元
</div>
</div>
<div
class=
"flex-between"
>
<div
class=
"flex"
>
<div>
<div
class=
"flex"
style=
"margin-bottom:50px"
>
<div
>
上传附件:
</div>
<singleUpload
:limit=
'1'
tip=
"支持上传一个pdf格式文件,大小不超过100M。"
accept=
'.pdf'
></singleUpload>
<singleUpload
:limit=
'1'
tip=
"支持上传一个pdf格式文件,大小不超过100M。"
accept=
'.pdf'
@
input=
"getfile"
></singleUpload>
</div>
<div>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"120px"
class=
"demo-ruleForm"
>
...
...
@@ -29,7 +29,7 @@
</div>
</div>
<div
class=
"flex-center button"
>
<el-button>
取消
</el-button>
<el-button
@
click=
"back"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
保存
</el-button>
</div>
</div>
...
...
@@ -50,8 +50,9 @@ export default {
},
data
()
{
return
{
resultId
:
""
,
ruleForm
:
{
code
:
''
number
:
''
},
rules
:
{
number
:
[{
...
...
@@ -67,14 +68,25 @@ export default {
created
()
{
let
date
=
getTime
();
this
.
date
=
date
.
substring
(
0
,
9
)
this
.
resultId
=
this
.
$route
.
query
.
id
;
},
methods
:
{
back
(){
this
.
$router
.
go
(
-
1
)
},
getfile
(
val
){
this
.
ruleForm
.
fileList
=
val
},
//提交表单
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
()
if
(
valid
)
{
const
{
code
,
msg
}
=
await
editSentBook
();
let
ruleForm
=
this
.
ruleForm
;
ruleForm
.
resultId
=
this
.
resultId
ruleForm
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
ruleForm
.
companyId
=
localStorage
.
getItem
(
"companyId"
)
const
{
code
,
msg
}
=
await
editSentBook
(
ruleForm
);
if
(
code
===
2000
)
{
this
.
$success
.
success
(
msg
)
}
...
...
src/pages/purchaser/bid/bidSure/winBid/list.vue
View file @
34a25056
...
...
@@ -12,7 +12,7 @@
</el-table-column>
<el-table-column
slot=
"operate"
label=
"操作"
align=
"center"
fixed=
"right"
width=
"150"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"edit(scope.row)"
>
通知书编辑
</el-button>
<el-button
type=
"text"
size=
"small"
@
click=
"edit(scope.row
.id
)"
>
通知书编辑
</el-button>
</
template
>
</el-table-column>
</dataTable>
...
...
@@ -66,8 +66,8 @@ export default {
this
.
getsentBookList
();
},
methods
:
{
edit
()
{
this
.
$router
.
push
(
'/purchaser/bid/bidSure/winBid/edit'
)
edit
(
id
)
{
this
.
$router
.
push
(
`/purchaser/bid/bidSure/winBid/edit?id=
${
id
}
`
)
},
back
()
{
this
.
$router
.
go
(
-
1
)
...
...
src/pages/purchaser/bid/reviewed/inquiryAnnouncement.vue
View file @
34a25056
...
...
@@ -33,7 +33,6 @@
<el-radio
:label=
"0"
>
普通
</el-radio>
<el-radio
:label=
"1"
>
紧急
</el-radio>
</el-radio-group>
</el-form-item>
</div>
<div
class=
"flex-between"
style=
"width:60%"
>
...
...
src/pages/purchaser/bid/reviewed/tenderAnnouncement.vue
View file @
34a25056
...
...
@@ -17,8 +17,8 @@
</el-form-item>
<el-form-item
label=
"公告内容"
prop=
"content"
>
<quill-editor
ref=
"text"
v-model=
"ruleForm.content"
:options=
"editorOption"
class=
"myQuillEditor"
/>
</el-form-item></el-for
m>
</el-form-ite
m>
</el-form>
</div>
</div>
<div
class=
"bottomButton"
>
...
...
src/pages/purchaser/buyOut/buyoutList.vue
View file @
34a25056
...
...
@@ -56,7 +56,7 @@
checklist
:
[{
title
:
'供应商'
,
type
:
'input'
,
model
:
'
tender
CompanyName'
model
:
'
bid
CompanyName'
},
{
title
:
'状态'
,
type
:
'select'
,
...
...
src/pages/purchaser/buyOut/contractSign.vue
View file @
34a25056
...
...
@@ -25,14 +25,14 @@
</div>
<div
class=
"bottomButton"
>
<el-button
@
click=
"back"
>
取消
</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'
export
default
{
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
export
default
{
components
:
{
dataBreadcrumb
},
...
...
@@ -54,25 +54,51 @@ export default {
this
.
$message
.
success
(
'撤销成功'
)
})
.
catch
(()
=>
{})
},
async
submitData
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
msg
,
code
}
=
await
signContract
(
projectId
)
if
(
code
==
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
}
</
script
>
<
style
scoped
>
.contractContent
{
.contractContent
{
width
:
100%
;
height
:
500px
;
border
:
1px
solid
#000000
;
border
:
1px
solid
#000000
;
margin-top
:
30px
;
}
.button
{
.button
{
margin-top
:
30px
;
height
:
50px
;
width
:
100%
;
}
ul
>
li
>
div
{
ul
>
li
>
div
{
margin-right
:
10px
;
}
</
style
>
src/pages/purchaser/supply/allSupply/allSupplySee.vue
View file @
34a25056
...
...
@@ -33,10 +33,7 @@
<div>
单位所在地
</div>
<div>
{{
detail
.
location
}}
</div>
</li>
<li>
<div>
行业类型
</div>
<div>
{{
detail
.
businessScope
}}
</div>
</li>
<li>
<div>
注册资本(万元)
</div>
<div>
{{
detail
.
registeredCapital
}}
</div>
...
...
@@ -59,9 +56,13 @@
</li>
</ul>
<div
class=
"detail-item"
>
<div>
*
经营范围
</div>
<div>
经营范围
</div>
<div>
一般项目:技术服务,技术开发
</div>
</div>
<div
class=
"detail-item"
>
<div>
行业类型
</div>
<div>
{{
detail
.
businessScope
}}
</div>
</div>
</div>
<div
class=
"operation"
>
<el-button
@
click=
"back"
>
返回
</el-button>
...
...
src/utils/request.js
View file @
34a25056
...
...
@@ -37,12 +37,12 @@ service.interceptors.response.use(
}
},
error
=>
{
if
(
error
.
response
.
status
==
500
){
if
(
error
.
response
.
status
==
401
){
Message
.
error
(
"登陆失效,请重新登录!"
)
// localStorage.removeItem('token');
// setTimeout(function () {
// // location.href = 'http://192.168.200.201:8081/';
// location.href = 'http://localhost:3000/';
// location.href = 'http://localhost:3000/
login/user/
';
// }, 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