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
fe944733
Commit
fe944733
authored
Nov 05, 2020
by
张冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
11.5联调
parent
34224510
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
920 additions
and
848 deletions
+920
-848
bid.js
src/api/purchaser/bid.js
+9
-0
common.css
src/common/common.css
+103
-98
Upload.vue
src/components/Upload/Upload.vue
+4
-0
candidate.vue
src/components/detail/candidate.vue
+7
-5
companyDetail.vue
src/components/detail/companyDetail.vue
+1
-1
noticeDetail.vue
src/components/detail/noticeDetail.vue
+2
-3
priceDetail.vue
src/components/detail/priceDetail.vue
+290
-302
winBook.vue
src/components/detail/winBook.vue
+34
-25
winNotice.vue
src/components/detail/winNotice.vue
+12
-9
content.vue
...es/purchaser/bid/bidEvaluation/projectManager/content.vue
+3
-1
add.vue
src/pages/purchaser/bid/bidEvaluation/review/add.vue
+1
-1
review.vue
src/pages/purchaser/bid/bidEvaluation/review/review.vue
+3
-0
detail.vue
src/pages/purchaser/bid/bidStage/bondList/detail.vue
+1
-1
detail.vue
src/pages/purchaser/bid/bidStage/tenderFeelist/detail.vue
+1
-1
contract.vue
src/pages/purchaser/bid/bidSure/contract.vue
+216
-185
determine.vue
src/pages/purchaser/bid/bidSure/determine.vue
+180
-176
notice.vue
src/pages/purchaser/bid/bidSure/notice.vue
+11
-7
publicity.vue
src/pages/purchaser/bid/bidSure/publicity.vue
+2
-2
see.vue
src/pages/purchaser/bid/bidSure/see.vue
+4
-0
demand.vue
src/pages/purchaser/bid/editProject/demand.vue
+1
-0
message.vue
src/pages/purchaser/bid/editProject/message.vue
+1
-0
timeSet.vue
src/pages/purchaser/bid/editProject/timeSet.vue
+3
-1
fileUpload.vue
src/pages/purchaser/bid/seeProject/fileUpload.vue
+1
-1
message.vue
src/pages/purchaser/bid/seeProject/message.vue
+1
-1
workbench.vue
src/pages/purchaser/bid/workbench.vue
+10
-7
home.vue
src/pages/purchaser/home/home.vue
+1
-3
bidOpenhal.vue
src/pages/supply/bid/joinProject/bidOpen/bidOpenhal.vue
+1
-1
detail.vue
src/pages/supply/bid/joinProject/bidStage/bond/detail.vue
+1
-1
detail.vue
...ages/supply/bid/joinProject/bidStage/tenderFee/detail.vue
+1
-1
bidresultAdvice.vue
src/pages/supply/bid/joinProject/bidSure/bidresultAdvice.vue
+1
-1
workbench.vue
src/pages/supply/bid/joinProject/workbench.vue
+6
-6
voucherSign.vue
src/pages/supply/buyOut/voucherSign.vue
+2
-2
common.js
src/utils/common.js
+6
-6
No files found.
src/api/purchaser/bid.js
View file @
fe944733
...
...
@@ -496,6 +496,15 @@ export function winnerSave(data) {
data
:
data
})
}
// 中标候选人名单
export
function
winPersionInfoDetail
(
projectId
)
{
return
request
({
url
:
`/tender-decide/winPersionInfoDetail/
${
projectId
}
`
,
method
:
'get'
})
}
// 中标候选人名单
export
function
candidate
(
projectId
)
{
return
request
({
...
...
src/common/common.css
View file @
fe944733
*
{
padding
:
0
;
margin
:
0
;
padding
:
0
;
margin
:
0
;
}
body
,
html
{
min-width
:
1200px
;
min-width
:
1200px
;
}
a
{
color
:
#FF5203
!important
;
color
:
#ff5203
!important
;
text-decoration
:
none
;
text-decoration
:
none
;
}
.link
{
color
:
#ff5203
!important
;
cursor
:
pointer
;
}
.link
:hover
{
color
:
rgb
(
51
,
218
,
193
)
!important
;
}
a
:hover
{
color
:
rgb
(
51
,
218
,
193
)
!important
;
}
a
:hover
{
color
:
rgb
(
51
,
218
,
193
)
!important
}
button
{
border
:
none
border
:
none
;
}
ul
{
list-style
:
none
;
list-style
:
none
;
}
body
,
...
...
@@ -49,175 +60,170 @@ p,
blockquote
,
th
,
td
{
margin
:
0
;
padding
:
0
;
margin
:
0
;
padding
:
0
;
}
fieldset
,
img
{
border
:
0
;
border
:
0
;
}
.flex
{
display
:
flex
;
display
:
flex
;
}
.flex-item
{
display
:
flex
;
align-items
:
center
;
display
:
flex
;
align-items
:
center
;
}
.flex-between
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
.flex-arround
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-around
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-around
;
}
.flex-center
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.flex-colunm
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
}
.t1
{
font-size
:
.14rem
;
color
:
rgba
(
0
,
0
,
0
,
1
);
font-size
:
0
.14rem
;
color
:
rgba
(
0
,
0
,
0
,
1
);
}
.t2
{
font-size
:
.16rem
;
color
:
rgba
(
0
,
0
,
0
,
1
);
font-size
:
0
.16rem
;
color
:
rgba
(
0
,
0
,
0
,
1
);
}
.t3
{
font-size
:
.18rem
;
color
:
rgba
(
0
,
0
,
0
,
1
);
font-size
:
0
.18rem
;
color
:
rgba
(
0
,
0
,
0
,
1
);
}
.t4
{
font-size
:
.25rem
;
color
:
rgba
(
0
,
0
,
0
,
1
);
font-weight
:
bold
;
font-size
:
0
.25rem
;
color
:
rgba
(
0
,
0
,
0
,
1
);
font-weight
:
bold
;
}
.detail
{
background
:
#F0F2F
5
;
background
:
#f0f2f
5
;
}
.content
{
background
:
#fff
;
padding
:
20px
30px
;
position
:
relative
;
background
:
#fff
;
padding
:
20px
30px
;
position
:
relative
;
}
.othercontent
{
background
:
#F0F2F
5
;
background
:
#f0f2f
5
;
}
.pagination
{
margin-top
:
200px
;
margin-bottom
:
100px
margin-top
:
200px
;
margin-bottom
:
100px
;
}
.navs
{
width
:
100%
;
margin-bottom
:
20px
;
margin-left
:
10px
;
border-bottom
:
1px
solid
#ccc
;
width
:
100%
;
margin-bottom
:
20px
;
margin-left
:
10px
;
border-bottom
:
1px
solid
#ccc
;
}
.navs
>
li
{
padding
:
10px
;
margin
:
0
20px
;
.navs
>
li
{
padding
:
10px
;
margin
:
0
20px
;
}
.navs
>
.active
{
border-bottom
:
2px
solid
#2288EE
;
color
:
#2288EE
.navs
>
.active
{
border-bottom
:
2px
solid
#2288ee
;
color
:
#2288ee
;
}
.content-head
{
background
:
#fff
;
margin-bottom
:
20px
;
box-sizing
:
border-box
;
padding
:
10px
;
position
:
relative
;
background
:
#fff
;
margin-bottom
:
20px
;
box-sizing
:
border-box
;
padding
:
10px
;
position
:
relative
;
}
.content-head
>
.abs
{
position
:
absolute
;
right
:
10px
;
bottom
:
10px
;
.content-head
>
.abs
{
position
:
absolute
;
right
:
10px
;
bottom
:
10px
;
}
.content-head
>
h3
{
font-weight
:
bold
;
margin-bottom
:
20px
;
margin-top
:
20px
;
.content-head
>
h3
{
font-weight
:
bold
;
margin-bottom
:
20px
;
margin-top
:
20px
;
}
.describe
{
width
:
100%
;
height
:
50px
;
line-height
:
50px
;
box-sizing
:
border-box
;
padding-left
:
20px
;
border-bottom
:
1px
solid
#F0F2F
5
;
font-weight
:
bold
;
margin-bottom
:
20px
;
font-size
:
18px
;
width
:
100%
;
height
:
50px
;
line-height
:
50px
;
box-sizing
:
border-box
;
padding-left
:
20px
;
border-bottom
:
1px
solid
#f0f2f
5
;
font-weight
:
bold
;
margin-bottom
:
20px
;
font-size
:
18px
;
}
.back-white
{
background
:
#fff
;
background
:
#fff
;
}
.adjustment
{
margin-top
:
5px
;
margin-right
:
10px
;
margin-top
:
5px
;
margin-right
:
10px
;
}
.form
{
padding
:
10px
20px
20px
20px
padding
:
10px
20px
20px
20px
;
}
.bottomButton
{
padding
:
20px
20px
;
display
:
flex
;
justify-content
:
flex-end
;
background
:
#fff
;
padding
:
20px
20px
;
display
:
flex
;
justify-content
:
flex-end
;
background
:
#fff
;
}
.centerButton
{
padding
:
20px
20px
;
display
:
flex
;
justify-content
:
center
;
background
:
#fff
;
padding
:
20px
20px
;
display
:
flex
;
justify-content
:
center
;
background
:
#fff
;
}
.tips
{
color
:
#FF0000
color
:
#ff0000
;
}
.message
.el-input
{
width
:
250px
!important
;
width
:
250px
!important
;
}
.el-icon-circle-close
{
color
:
white
;
}
.el-icon-circle-close
{
color
:
white
;
}
\ No newline at end of file
src/components/Upload/Upload.vue
View file @
fe944733
<
template
>
<div
class=
"hello"
>
<div
v-loading=
"loading"
></div>
<el-upload
v-loading
.
fullscreen
.
lock=
"loading"
:http-request=
"handleUpload"
...
...
@@ -69,6 +70,7 @@ export default {
},
data
()
{
return
{
loading
:
false
}
},
created
(){
...
...
@@ -76,6 +78,7 @@ export default {
},
methods
:
{
emitInput
(
fileList
)
{
this
.
loading
=
false
let
value
=
[]
for
(
let
i
=
0
;
i
<
fileList
.
length
;
i
++
)
{
let
message
=
{}
...
...
@@ -89,6 +92,7 @@ export default {
this
.
$emit
(
'input'
,
value
)
},
beforeUpload
(
file
)
{
this
.
loading
=
true
const
max
=
this
.
max
const
isLt2M
=
file
.
size
/
1024
/
1024
<
max
if
(
!
isLt2M
)
{
...
...
src/components/detail/candidate.vue
View file @
fe944733
...
...
@@ -8,15 +8,15 @@
</div>
<!-- 标题 -->
<div
class=
"title"
>
<
div>
{{
title
}}
</div
>
<
h1>
{{
title
}}
</h1
>
</div>
<div
v-if=
"state"
>
<div
v-html=
"detail.content"
></div>
<div
class=
"enclosure flex-item"
>
<div
style=
"margin-right: 30px"
>
相关附件
</div>
<ul
v-if=
"detail.
fileList !== undefined && detail.file
List.length > 0"
>
<ul
v-if=
"detail.
accessoryVOList !== undefined && detail.accessoryVO
List.length > 0"
>
<li
v-for=
"(item, i) in detail.accessoryVOList"
:key=
"i"
>
<a
href=
"item.accessoryUrl"
>
{{
item
.
fileName
}}
</a>
<a
target=
"_blank"
:
href=
"item.accessoryUrl"
>
{{
item
.
fileName
}}
</a>
</li>
</ul>
<div
v-else
>
空
</div>
...
...
@@ -86,9 +86,10 @@ export default {
.enclosure
{
margin
:
20px
0
;
}
.title
>
div
{
.title
>
h1
{
/* display: flex;
justify-content: center; */
text-align
:
center
text-align
:
center
;
margin-bottom
:
20
rpx
}
</
style
>
\ No newline at end of file
src/components/detail/companyDetail.vue
View file @
fe944733
...
...
@@ -108,7 +108,7 @@
<div
class=
"detail-item"
>
<div>
其他资料
</div>
<div
class=
"pdf"
>
<a
:href=
"item.fileUrl"
v-for=
"(item, index) in elseFile"
:key=
"index"
>
{{
item
.
fileName
}}
</a>
<a
target=
"_blank"
:href=
"item.fileUrl"
v-for=
"(item, index) in elseFile"
:key=
"index"
>
{{
item
.
fileName
}}
</a>
</div>
</div>
</div>
...
...
src/components/detail/noticeDetail.vue
View file @
fe944733
...
...
@@ -11,9 +11,9 @@
<div
class=
"content_list"
>
<div
class=
"flex-item"
>
<div>
附件下载:
</div>
<ul
v-if=
"detail.accessoryVOList"
>
<ul
v-if=
"detail.accessoryVOList
!==undefined &&detail.accessoryVOList.length>0
"
>
<li
v-for=
"item in detail.accessoryVOList"
:key=
"item.id"
>
<a
:href=
"item.accessoryUrl"
>
{{
item
.
fileName
}}
</a>
<a
target=
"_blank"
:href=
"item.accessoryUrl"
>
{{
item
.
fileName
}}
</a>
</li>
</ul>
<ul
v-else
>
...
...
@@ -45,7 +45,6 @@ export default {
const
{
data
,
code
,
msg
}
=
await
biddingProjectId
(
projectId
);
if
(
code
==
200
)
{
this
.
detail
=
data
;
this
.
$emit
(
"getstate"
,
data
.
auditStatus
)
}
else
if
(
code
==
500
)
{
this
.
state
=
false
;
this
.
msg
=
msg
;
...
...
src/components/detail/priceDetail.vue
View file @
fe944733
<
template
>
<div>
<h1>
{{
detail
.
title
}}
</h1>
<div
class=
"flex-center"
v-if=
"state"
>
<h6
style=
"margin-right:60px;margin-top:30px"
v-if=
"detail.area"
>
询价所在地:
{{
detail
.
area
}}
</h6>
<h6
style=
"margin-buttom:60px;margin-top:30px"
>
日期:
{{
detail
.
createTime
}}
</h6>
</div>
<div
class=
"form"
v-if=
"state"
>
<h3
style=
"margin-buttom:
30px"
>
基本信息
</h3>
<table
border=
"0"
width=
"100%"
height=
"120px"
>
<tr>
<td>
询价单编号
</td>
<td>
{{
detail
.
inquiryCode
}}
</td>
<td>
采购目录
</td>
<td>
{{
detail
.
purchaseCategory
}}
</td>
<td>
项目优先级
</td>
<td>
{{
detail
.
priority
==
0
?
"普通"
:
"紧急"
}}
</td>
</tr>
<tr>
<td>
报价开始时间
</td>
<td>
{{
detail
.
startTime
}}
</td>
<td>
报价截止时间
</td>
<td>
{{
detail
.
endTime
}}
</td>
<td>
采购单位
</td>
<td>
{{
detail
.
purchaseAgent
}}
</td>
</tr>
<tr>
<td>
采购单位联系人
</td>
<td>
{{
detail
.
contact
}}
</td>
<td>
联系方式
</td>
<td>
{{
detail
.
contactPhone
}}
</td>
<td>
传真号码
</td>
<td>
{{
detail
.
facsimile
}}
</td>
</tr>
</table>
<div
class=
"appendix
"
>
<div>
预算金额(元)
</div>
<div>
{{
detail
.
budget
}}
</div>
</div>
<h3>
供应商要求
</h3>
<div
class=
"appendix
"
>
<div>
供应商规模要求
</div>
<div>
{{
detail
.
supplierScale
}}
</div>
</div>
<div
class=
"appendix
"
>
<div>
供应商资格要求
</div>
<div>
{{
detail
.
supplierQualification
}}
</div>
</div>
<div
class=
"appendix
"
>
<div>
供应商区域范围要求
</div>
<div>
{{
detail
.
supplierRegion
}}
</div>
</div>
<h3>
询价商品清单
</h3>
<dataTable
:table-data=
"detail.commodityVOList"
:columns=
"columns"
></dataTable>
<div
class=
"appendix list pos"
>
<div>
附件
</div>
<ul
v-if=
"detail.accessoryVOList!==undefined && detail.accessoryVOList.length>
0"
class=
"filelist"
>
<li
v-for=
"(item,
index) in detail.accessoryVOList"
:key=
"index"
>
<a
:href=
"item.accessoryUrl"
>
{{
item
.
fileName
}}
</a
>
</li>
</ul>
<div
v-else
>
无附件
</div>
</div>
<h3>
商务要求
</h3>
<div
class=
"appendix bus-require pos"
>
<div
class=
"flex-center"
>
<p>
商务要求
</p>
</div>
<div
v-html=
"detail.commercialRequirements"
></div>
</div>
<slot></slot>
</div>
<div
v-if=
"!state"
class=
"no-notice"
>
<div>
{{
msg
}}
</div>
</div>
</div>
<div>
<h1>
{{
detail
.
title
}}
</h1>
<div
class=
"flex-center"
v-if=
"state"
>
<h6
style=
"margin-right: 60px; margin-top: 30px"
v-if=
"detail.area"
>
询价所在地:
{{
detail
.
area
}}
</h6>
<h6
style=
"margin-buttom: 60px; margin-top: 30px"
>
日期:
{{
detail
.
createTime
}}
</h6>
</div>
<div
class=
"form"
v-if=
"state"
>
<h3
style=
"margin-buttom:
30px"
>
基本信息
</h3>
<table
border=
"0"
width=
"100%"
height=
"120px"
>
<tr>
<td>
询价单编号
</td>
<td>
{{
detail
.
inquiryCode
}}
</td>
<td>
采购目录
</td>
<td>
{{
detail
.
purchaseCategory
}}
</td>
<td>
项目优先级
</td>
<td>
{{
detail
.
priority
==
0
?
'普通'
:
'紧急'
}}
</td>
</tr>
<tr>
<td>
报价开始时间
</td>
<td>
{{
detail
.
startTime
}}
</td>
<td>
报价截止时间
</td>
<td>
{{
detail
.
endTime
}}
</td>
<td>
采购单位
</td>
<td>
{{
detail
.
purchaseAgent
}}
</td>
</tr>
<tr>
<td>
采购单位联系人
</td>
<td>
{{
detail
.
contact
}}
</td>
<td>
联系方式
</td>
<td>
{{
detail
.
contactPhone
}}
</td>
<td>
传真号码
</td>
<td>
{{
detail
.
facsimile
}}
</td>
</tr>
</table>
<div
class=
"appendix
"
>
<div>
预算金额(元)
</div>
<div>
{{
detail
.
budget
}}
</div>
</div>
<h3>
供应商要求
</h3>
<div
class=
"appendix
"
>
<div>
供应商规模要求
</div>
<div>
{{
detail
.
supplierScale
}}
</div>
</div>
<div
class=
"appendix
"
>
<div>
供应商资格要求
</div>
<div>
{{
detail
.
supplierQualification
}}
</div>
</div>
<div
class=
"appendix
"
>
<div>
供应商区域范围要求
</div>
<div>
{{
detail
.
supplierRegion
}}
</div>
</div>
<h3>
询价商品清单
</h3>
<dataTable
:table-data=
"detail.commodityVOList"
:columns=
"columns"
></dataTable>
<div
class=
"appendix list pos"
>
<div>
附件
</div>
<ul
v-if=
"detail.accessoryVOList !== undefined && detail.accessoryVOList.length >
0"
class=
"filelist"
>
<li
v-for=
"(item,
index) in detail.accessoryVOList"
:key=
"index"
>
<div
@
click=
"open(item.accessoryUrl)"
class=
"link"
>
{{
item
.
fileName
}}
</div
>
</li>
</ul>
<div
v-else
>
无附件
</div>
</div>
<h3>
商务要求
</h3>
<div
class=
"appendix bus-require pos"
>
<div
class=
"flex-center"
>
<p>
商务要求
</p>
</div>
<div
v-html=
"detail.commercialRequirements"
></div>
</div>
<slot></slot>
</div>
<div
v-if=
"!state"
class=
"no-notice"
>
<div>
{{
msg
}}
</div>
</div>
</div>
</
template
>
<
script
>
import
{
getTime1
}
from
'@utils/time'
import
{
enquiryProjectId
}
from
'@api/common/list'
import
dataTable
from
'@components/nopageTable.vue'
export
default
{
components
:
{
dataTable
,
},
data
()
{
return
{
msg
:
""
,
state
:
true
,
tableData
:[],
projectName
:
""
,
detail
:
""
,
breads
:
[
'投标管理 '
,
'在线报名'
,
'询价公告'
],
columns
:
[
{
label
:
'标的名称'
,
prop
:
'bidName'
},
{
label
:
'数量'
,
prop
:
'quantity'
},
{
label
:
'计量单位'
,
prop
:
'unit'
},
{
label
:
'品牌'
,
prop
:
'brand'
},
{
label
:
'规格型号'
,
prop
:
'specification'
},
{
label
:
'标杆价(元)'
,
prop
:
'price'
},
{
label
:
'备注'
,
prop
:
'remark'
},
],
}
},
methods
:
{
back
()
{
this
.
$router
.
go
(
-
1
)
},
// 获取详情
async
getenquiryProjectId
()
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
,
msg
}
=
await
enquiryProjectId
(
projectId
)
if
(
code
==
200
){
data
.
endTime
=
getTime1
(
data
.
endTime
)
data
.
startTime
=
getTime1
(
data
.
startTime
)
data
.
createTime
=
data
.
createTime
.
substring
(
0
,
10
)
this
.
detail
=
data
this
.
$emit
(
"getstate"
,
data
.
auditStatus
)
}
else
if
(
code
==
500
){
this
.
state
=
false
this
.
msg
=
msg
}
},
},
created
()
{
this
.
projectName
=
localStorage
.
getItem
(
"projectName"
)
this
.
getenquiryProjectId
()
}
}
import
{
getTime1
}
from
'@utils/time'
;
import
{
enquiryProjectId
}
from
'@api/common/list'
;
import
dataTable
from
'@components/nopageTable.vue'
;
export
default
{
components
:
{
dataTable
},
data
()
{
return
{
msg
:
''
,
state
:
true
,
tableData
:
[],
projectName
:
''
,
detail
:
''
,
breads
:
[
'投标管理 '
,
'在线报名'
,
'询价公告'
],
columns
:
[
{
label
:
'标的名称'
,
prop
:
'bidName'
},
{
label
:
'数量'
,
prop
:
'quantity'
},
{
label
:
'计量单位'
,
prop
:
'unit'
},
{
label
:
'品牌'
,
prop
:
'brand'
},
{
label
:
'规格型号'
,
prop
:
'specification'
},
{
label
:
'标杆价(元)'
,
prop
:
'price'
},
{
label
:
'备注'
,
prop
:
'remark'
}
]
};
},
methods
:
{
open
(
url
)
{
window
.
open
(
url
);
},
back
()
{
this
.
$router
.
go
(
-
1
);
},
// 获取详情
async
getenquiryProjectId
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
data
,
code
,
msg
}
=
await
enquiryProjectId
(
projectId
);
if
(
code
==
200
)
{
data
.
endTime
=
getTime1
(
data
.
endTime
);
data
.
startTime
=
getTime1
(
data
.
startTime
);
data
.
createTime
=
data
.
createTime
.
substring
(
0
,
10
);
this
.
detail
=
data
;
}
else
if
(
code
==
500
)
{
this
.
state
=
false
;
this
.
msg
=
msg
;
}
}
},
created
()
{
this
.
projectName
=
localStorage
.
getItem
(
'projectName'
);
this
.
getenquiryProjectId
();
}
};
</
script
>
<
style
scoped
>
.no-notice
{
margin-top
:
30px
;
text-align
:
center
;
margin-bottom
:
30px
;
}
.filelist
{
box-sizing
:
border-box
;
padding
:
20px
}
.home
{
padding
:
30px
;
background
:
#fff
;
box-sizing
:
border-box
;
/* margin-left:20px; */
}
.Tips
{
color
:
#409EFF
}
.notice
>
h4
{
font-size
:
16px
;
font-weight
:
bold
;
margin-right
:
30px
;
}
.notice
{
margin
:
20px
0
;
border-bottom
:
1px
solid
#ccc
;
}
h2
{
/* margin-top:; */
margin-bottom
:
10px
;
}
h6
{
margin-bottom
:
10px
;
}
h1
{
display
:
flex
;
justify-content
:
center
;
}
.form
{
padding
:
20px
;
box-sizing
:
border-box
;
}
.form
h3
{
margin-top
:
20px
;
margin-bottom
:
20px
;
font-weight
:
bold
;
}
/* table>tr{
.no-notice
{
margin-top
:
30px
;
text-align
:
center
;
margin-bottom
:
30px
;
}
.filelist
{
box-sizing
:
border-box
;
padding
:
20px
;
}
.home
{
padding
:
30px
;
background
:
#fff
;
box-sizing
:
border-box
;
/* margin-left:20px; */
}
.Tips
{
color
:
#409eff
;
}
.notice
>
h4
{
font-size
:
16px
;
font-weight
:
bold
;
margin-right
:
30px
;
}
.notice
{
margin
:
20px
0
;
border-bottom
:
1px
solid
#ccc
;
}
h2
{
/* margin-top:; */
margin-bottom
:
10px
;
}
h6
{
margin-bottom
:
10px
;
}
h1
{
display
:
flex
;
justify-content
:
center
;
}
.form
{
padding
:
20px
;
box-sizing
:
border-box
;
}
.form
h3
{
margin-top
:
20px
;
margin-bottom
:
20px
;
font-weight
:
bold
;
}
/* table>tr{
text-align: center;
} */
table
{
border-collapse
:
collapse
;
}
table
>
tr
>
td
{
font-size
:
16px
;
border
:
1px
solid
#ccc
;
padding-left
:
10px
;
}
table
>
tr
>
td
:nth-child
(
odd
)
{
background
:
#F0F0F0
;
width
:
160px
;
}
.right-s
{
padding-right
:
200px
;
}
.appendix
{
display
:
flex
;
border
:
1px
solid
#ccc
;
}
.appendix
>
div
:first-child
{
width
:
172px
;
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
;
line-height
:
40px
;
}
.list
>
:first-child
{
height
:
120px
;
line-height
:
120px
;
}
.list
{
margin-top
:
20px
;
}
.bus-require
>
div
:first-child
{
width
:
400px
;
}
.bus-require
>
div
:last-child
{
font-size
:
10px
;
}
.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
;
}
.home
>
h1
{
font-weight
:
bold
;
}
table
{
border-collapse
:
collapse
;
}
table
>
tr
>
td
{
font-size
:
16px
;
border
:
1px
solid
#ccc
;
padding-left
:
10px
;
}
table
>
tr
>
td
:nth-child
(
odd
)
{
background
:
#f0f0f0
;
width
:
160px
;
}
.right-s
{
padding-right
:
200px
;
}
.appendix
{
display
:
flex
;
border
:
1px
solid
#ccc
;
}
.appendix
>
div
:first-child
{
width
:
172px
;
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
;
line-height
:
40px
;
}
.list
>
:first-child
{
height
:
120px
;
line-height
:
120px
;
}
.list
{
margin-top
:
20px
;
}
.bus-require
>
div
:first-child
{
width
:
400px
;
}
.bus-require
>
div
:last-child
{
font-size
:
10px
;
}
.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
;
}
.home
>
h1
{
font-weight
:
bold
;
}
</
style
>
src/components/detail/winBook.vue
View file @
fe944733
...
...
@@ -3,30 +3,28 @@
<div
class=
"content"
>
<changeNav
:navs=
"navs"
></changeNav>
<div
class=
"message"
>
<div>
<div
class=
"div1"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:
{{
projectName
}}
</div>
</div>
<div>
<div>
日期:
{{
date
}}
</div>
<div
class=
"div1"
>
<div>
日期:
{{
date
}}
</div>
<div>
中标金额:
{{
detail
.
money
}}
元
</div>
</div>
<div>
<div
class=
"flex-item"
>
<div
style=
"margin-right: 20px"
>
附件:
</div>
<ul
v-if=
"detail.fileList"
>
<li
v-for=
"(item, i) in detail.fileList"
:key=
"i"
>
<a
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
</li>
</ul>
<div
v-else
>
无
</div>
</div>
<div>
中标通知书编号:
{{
detail
.
number
}}
</div>
<div
class=
"div1"
>
中标通知书编号:
{{
detail
.
number
}}
</div>
<div
class=
"flex-item"
>
<div
style=
"margin-right: 20px"
>
附件:
</div>
<ul
v-if=
"detail.fileList!==undefined &&detail.fileList.length>0"
>
<li
v-for=
"(item, i) in detail.fileList"
:key=
"i"
>
<div
@
click=
"open(item.fileUrl)"
class=
"link"
>
{{
item
.
fileName
}}
</div>
</li>
</ul>
<div
v-else
>
无
</div>
</div>
<div
class=
"flex-colunm notice"
>
<h1>
您已中标,
请及时与平台签署应收账款买断
合同。
</h1>
<h3>
咨询电话:
400-4567457
</h3>
<el-button
type=
"primary"
>
查看详情
</el-button>
<h1>
您已中标,
若您选择了应收账款买断服务,请及时与平台签署相关
合同。
</h1>
<h3>
咨询电话:
{{
phone
}}
</h3>
<el-button
type=
"primary"
@
click=
"jump"
>
查看详情
</el-button>
</div>
<div
class=
"centerButton"
>
<el-button
@
click=
"back"
>
返回
</el-button>
...
...
@@ -37,11 +35,11 @@
</
template
>
<
script
>
import
{
getMessagephone
}
from
'@api/common/list'
import
{
winBookdetail
}
from
'@api/supply/bid'
;
import
changeNav
from
'@components/changeNav.vue'
;
export
default
{
components
:
{
changeNav
},
data
()
{
...
...
@@ -52,7 +50,9 @@ export default {
navs
:
[
'中标通知书'
],
projectCode
:
''
,
projectName
:
''
,
detail
:
''
detail
:
''
,
date
:
""
,
phone
:
""
};
},
methods
:
{
...
...
@@ -67,15 +67,24 @@ export default {
const
{
data
,
code
}
=
await
winBookdetail
(
projectId
);
if
(
code
==
200
)
{
this
.
detail
=
data
;
this
.
date
=
data
.
winDate
.
substring
(
0
,
10
)
this
.
date
=
data
.
winDate
.
substring
(
0
,
10
);
}
},
jump
()
{
this
.
$router
.
push
(
'/supply/buyOut/buyoutList'
);
},
/* 获取客服电话 */
async
getMessagephone
(){
const
{
data
}
=
await
getMessagephone
()
console
.
log
(
data
)
this
.
phone
=
data
.
phone
}
},
created
()
{
this
.
projectCode
=
localStorage
.
getItem
(
'projectCode'
);
this
.
projectName
=
localStorage
.
getItem
(
'projectName'
);
this
.
getwinBookdetail
();
this
.
getMessagephone
()
}
};
</
script
>
...
...
@@ -99,10 +108,10 @@ export default {
width
:
60%
;
margin
:
0
auto
;
}
.message
>
.centerButton
{
justify-content
:
center
;
.message
>
.centerButton
{
justify-content
:
center
;
}
.message
>
div
{
.message
>
.div1
{
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
30px
;
...
...
@@ -116,7 +125,7 @@ export default {
}
.notice
{
margin
:
200px
auto
30px
;
padding
:
20px
0
;
padding
:
20px
;
}
.notice
>
h3
{
margin
:
20px
0
;
...
...
src/components/detail/winNotice.vue
View file @
fe944733
...
...
@@ -8,15 +8,15 @@
</div>
<!-- 标题 -->
<div
class=
"title"
>
<
div
class=
"flex-center"
>
{{
title
}}
</div
>
<
h1
class=
"flex-center"
>
{{
title
}}
</h1
>
</div>
<div
class=
"detail1"
v-if=
"state"
>
<div
v-html=
"detail.content"
></div>
<div
class=
"enclosure flex-item"
>
<div
style=
"margin-right: 30px"
>
相关附件
</div>
<ul
v-if=
"detail.accessory
DOList.length>
0"
>
<ul
v-if=
"detail.accessory
VOList !== undefined && detail.accessoryDOList.length >
0"
>
<li
v-for=
"(item, i) in detail.accessoryDOList"
:key=
"i"
>
<
a
href=
"item.accessoryUrl"
>
{{
item
.
fileName
}}
</a
>
<
div
@
click=
"open(item.accessoryUrl)"
class=
"link"
>
{{
item
.
fileName
}}
</div
>
</li>
</ul>
<div
v-else
>
空
</div>
...
...
@@ -33,18 +33,20 @@
<
script
>
import
{
noticeWin
}
from
'@api/supply/bid'
;
export
default
{
components
:
{
},
components
:
{},
data
()
{
return
{
projectCode
:
''
,
projectName
:
''
,
state
:
true
,
detail
:
''
,
title
:
''
title
:
''
};
},
methods
:
{
open
(
url
)
{
window
.
open
(
url
);
},
back
()
{
this
.
$router
.
go
(
-
1
);
},
...
...
@@ -55,7 +57,7 @@ export default {
if
(
code
==
200
)
{
console
.
log
(
data
);
this
.
detail
=
data
;
this
.
title
=
data
.
title
this
.
title
=
data
.
title
;
}
else
{
this
.
state
=
false
;
}
...
...
@@ -95,7 +97,7 @@ export default {
.enclosure
{
margin
:
50px
0
;
}
.title
{
margin-top
:
50px
;
.title
{
margin-top
:
50px
;
}
</
style
>
\ No newline at end of file
src/pages/purchaser/bid/bidEvaluation/projectManager/content.vue
View file @
fe944733
...
...
@@ -355,7 +355,9 @@ export default {
.bond
span
{
cursor
:
pointer
;
}
.file
{
flex-wrap
:
wrap
;
}
.file
>
div
{
margin-right
:
10px
;
color
:
#113dee
;
...
...
src/pages/purchaser/bid/bidEvaluation/review/add.vue
View file @
fe944733
...
...
@@ -11,7 +11,7 @@
<div>
项目名称:
{{
projectName
}}
</div>
</div>
<div
class=
"form"
>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"1
6
0px"
class=
"demo-ruleForm"
>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"1
7
0px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"澄清质询标题"
prop=
"title"
>
<el-input
v-model
.
trim=
"ruleForm.title"
maxlength=
"30"
></el-input>
</el-form-item>
...
...
src/pages/purchaser/bid/bidEvaluation/review/review.vue
View file @
fe944733
...
...
@@ -619,6 +619,9 @@ export default {
.bond
span
{
cursor
:
pointer
;
}
.file
{
flex-wrap
:
wrap
;
}
.file
>
div
{
margin-right
:
10px
;
color
:
#113dee
;
...
...
src/pages/purchaser/bid/bidStage/bondList/detail.vue
View file @
fe944733
...
...
@@ -81,7 +81,7 @@
<el-form-item
label=
"上传缴费凭证:"
>
<ul
>
<li
v-for=
"(item, index) in ruleForm.voucherList"
:key=
"index"
>
<a
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
<a
target=
"_blank"
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
</li>
</ul>
</el-form-item>
...
...
src/pages/purchaser/bid/bidStage/tenderFeelist/detail.vue
View file @
fe944733
...
...
@@ -113,7 +113,7 @@
<el-form-item
label=
"上传缴费凭证:"
>
<ul>
<li
v-for=
"(item, index) in ruleForm.voucherList"
:key=
"index"
>
<a
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
<a
target=
"_blank"
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
</li>
</ul>
</el-form-item>
...
...
src/pages/purchaser/bid/bidSure/contract.vue
View file @
fe944733
<
template
>
<div>
<div
class=
"content"
>
<dataBreadcrumb
:breads=
" breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<div
class=
"message"
>
<div
class=
"flex-between"
style=
"margin-bottom: 20px;"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:
{{
projectName
}}
</div>
</div>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"180px"
class=
"demo-ruleForm"
>
<div
class=
"flex-between"
>
<el-form-item
label=
"合同名称:"
prop=
"contractName"
>
<el-input
v-model
.
trim=
"ruleForm.contractName"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"合同类型:"
prop=
"contractType"
>
<el-radio
v-model=
"ruleForm.contractType"
label=
"1"
>
项目合同
</el-radio>
<el-radio
v-model=
"ruleForm.contractType"
label=
"2"
>
应收账款合同
</el-radio>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"工期:"
prop=
"timeLimit"
>
<el-input
v-model
.
trim=
"ruleForm.timeLimit"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"合同类型总负责人名称:"
prop=
"principalName"
class=
"titlename"
>
<el-input
v-model
.
trim=
"ruleForm.principalName"
placeholder=
"请输入"
maxlength=
"30"
style=
"titleinput"
></el-input>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"总负责人身份证号:"
prop=
"principalIdNumber"
>
<el-input
v-model
.
trim=
"ruleForm.principalIdNumber"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"承包单位名称:"
prop=
"companyName"
>
<el-input
v-model
.
trim=
"ruleForm.companyName"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"是否联合体投标:"
prop=
"isAlliance"
>
<el-radio
v-model=
"ruleForm.isAlliance"
:label=
"true"
>
是
</el-radio>
<el-radio
v-model=
"ruleForm.isAlliance"
:label=
"false"
>
否
</el-radio>
</el-form-item>
<el-form-item
label=
"合同总价(元):"
prop=
"contractPrice"
>
<el-input
v-model
.
trim=
"ruleForm.contractPrice"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"合同有效期起止日期:"
prop=
"validityTime"
>
<el-date-picker
v-model=
"ruleForm.validityTime"
type=
"datetimerange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"合同期限(天):"
prop=
"deadline"
>
<el-input
v-model
.
trim=
"ruleForm.deadline"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
</div>
<el-form-item
label=
"合同文件:"
>
<singleUpload
:limit=
"1"
:max=
"100"
tip=
"支持上传一个pdf格式文件,大小不超过100M"
@
input=
"getfile"
:fileList=
"ruleForm.contractFileName"
></singleUpload>
</el-form-item>
<el-form-item
label=
"其他附件:"
>
<singleUpload
:limit=
"3"
:max=
"100"
tip=
"支持上传三份附件,大小不超过100M"
@
input=
"getfile1"
:fileList=
"ruleForm.fileList"
></singleUpload>
</el-form-item>
<el-form-item
label=
"合同范围:"
prop=
"remark"
>
<el-input
v-model
.
trim=
"ruleForm.remark"
placeholder=
"请输入"
type=
"textarea"
:rows=
"2"
maxlength=
"300"
></el-input>
</el-form-item>
</el-form>
<div
class=
"button flex-center"
>
<el-button
@
click=
"out"
>
返回
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
保存
</el-button>
</div>
</div>
</div>
</div>
<div>
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<div
class=
"message"
>
<div
class=
"flex-between"
style=
"margin-bottom: 20px"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:
{{
projectName
}}
</div>
</div>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"180px"
class=
"demo-ruleForm"
>
<div
class=
"flex-between"
>
<el-form-item
label=
"合同名称:"
prop=
"contractName"
>
<el-input
v-model
.
trim=
"ruleForm.contractName"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<!--
<el-form-item
label=
"合同类型:"
prop=
"contractType"
>
<el-radio
v-model=
"ruleForm.contractType"
label=
"1"
>
项目合同
</el-radio>
<el-radio
v-model=
"ruleForm.contractType"
label=
"2"
>
应收账款合同
</el-radio>
</el-form-item>
-->
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"工期:"
prop=
"timeLimit"
>
<el-input
v-model
.
trim=
"ruleForm.timeLimit"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"总负责人名称:"
prop=
"principalName"
class=
"titlename"
>
<el-input
v-model
.
trim=
"ruleForm.principalName"
placeholder=
"请输入"
maxlength=
"30"
style=
"titleinput"
></el-input>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"总负责人身份证号:"
prop=
"principalIdNumber"
>
<el-input
v-model
.
trim=
"ruleForm.principalIdNumber"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"承包单位名称:"
prop=
"companyName"
>
<el-input
v-model
.
trim=
"ruleForm.companyName"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"是否联合体投标:"
prop=
"isAlliance"
>
<el-radio
v-model=
"ruleForm.isAlliance"
:label=
"true"
>
是
</el-radio>
<el-radio
v-model=
"ruleForm.isAlliance"
:label=
"false"
>
否
</el-radio>
</el-form-item>
<el-form-item
label=
"合同总价(元):"
prop=
"contractPrice"
>
<el-input-number
v-model=
"ruleForm.contractPrice"
:min=
"0"
:controls=
"false"
:precision=
"2"
placeholder=
"请输入"
maxlength=
"30"
></el-input-number>
</el-form-item>
</div>
<div
class=
"flex-between"
>
<el-form-item
label=
"合同有效期起止日期:"
prop=
"validityTime"
>
<el-date-picker
v-model=
"ruleForm.validityTime"
type=
"datetimerange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"合同期限(天):"
prop=
"deadline"
>
<el-input
onkeyup=
"value=value.replace(/[^\d]/g,'')"
v-model
.
trim=
"ruleForm.deadline"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
</div>
<el-form-item
label=
"合同文件:"
>
<singleUpload
:limit=
"1"
:max=
"100"
tip=
"支持上传一个pdf格式文件,大小不超过100M"
@
input=
"getfile"
:fileList=
"ruleForm.contractFileName"
></singleUpload>
</el-form-item>
<el-form-item
label=
"其他附件:"
>
<singleUpload
:limit=
"3"
:max=
"100"
tip=
"支持上传三份附件,大小不超过100M"
@
input=
"getfile1"
:fileList=
"ruleForm.fileList"
></singleUpload>
</el-form-item>
<el-form-item
label=
"合同范围:"
prop=
"remark"
>
<el-input
v-model
.
trim=
"ruleForm.remark"
placeholder=
"请输入"
type=
"textarea"
:rows=
"2"
maxlength=
"300"
></el-input>
</el-form-item>
</el-form>
<div
class=
"button flex-center"
>
<el-button
@
click=
"out"
>
返回
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
保存
</el-button>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
contract
,
contractDetails
}
from
'@api/purchaser/bid'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
changeNav
from
'@components/changeNav.vue'
import
singleUpload
from
'@components/Upload/Upload.vue'
import
multiUpload
from
'@components/Upload/multiUpload.vue'
export
default
{
components
:
{
dataBreadcrumb
,
changeNav
,
singleUpload
,
multiUpload
},
data
()
{
return
{
projectCode
:
""
,
projectName
:
""
,
navs
:
[
'合同管理'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
ruleForm
:
{
contractName
:
""
,
contractType
:
""
,
timeLimit
:
""
,
principalName
:
""
,
principalIdNumber
:
""
,
companyName
:
''
,
isAlliance
:
""
,
contractPrice
:
""
,
validityTime
:
""
,
deadline
:
""
,
/* FilePO: [], */
remark
:
""
,
fileList
:[],
contractFileName
:[]
},
rules
:
{
validityTime
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}],
contractName
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}],
}
}
},
methods
:
{
/* 返回 */
out
(){
this
.
$router
.
go
(
-
1
)
import
{
contract
,
contractDetails
}
from
'@api/purchaser/bid'
;
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
changeNav
from
'@components/changeNav.vue'
;
import
singleUpload
from
'@components/Upload/Upload.vue'
;
import
multiUpload
from
'@components/Upload/multiUpload.vue'
;
export
default
{
components
:
{
dataBreadcrumb
,
changeNav
,
singleUpload
,
multiUpload
},
data
()
{
return
{
projectCode
:
''
,
projectName
:
''
,
navs
:
[
'合同管理'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
ruleForm
:
{
contractName
:
''
,
contractType
:
''
,
timeLimit
:
''
,
principalName
:
''
,
principalIdNumber
:
''
,
companyName
:
''
,
isAlliance
:
''
,
contractPrice
:
undefined
,
validityTime
:
''
,
deadline
:
''
,
/* FilePO: [], */
remark
:
''
,
fileList
:
[],
contractFileName
:
[]
},
examine
()
{
this
.
$router
.
push
(
'/admin/bid/bidingDetail'
)
},
getfile
(
val
)
{
this
.
ruleForm
.
contractFileName
=
val
},
getfile1
(
val
)
{
this
.
ruleForm
.
fileList
=
val
},
// 提交表单
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
()
if
(
valid
)
{
const
{
code
,
msg
}
=
await
contract
(
this
.
ruleForm
);
if
(
code
===
200
)
{
this
.
$message
({
message
:
"成功"
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
else
{
this
.
$message
.
error
(
msg
)
}
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
async
contractDetails
(){
const
{
data
,
code
}
=
await
contractDetails
()
if
(
code
==
200
){
this
.
ruleForm
=
data
for
(
let
item
in
data
.
contractFileName
){
this
.
ruleForm
.
contractName
=
item
rules
:
{
validityTime
:
[
{
required
:
true
,
message
:
'请选择'
,
trigger
:
'blur'
}
],
contractName
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}
for
(
let
item1
in
data
.
fileList
){
this
.
ruleForm
.
fileList
=
item1
]
}
};
},
methods
:
{
/* 返回 */
out
()
{
this
.
$router
.
go
(
-
1
);
},
examine
()
{
this
.
$router
.
push
(
'/admin/bid/bidingDetail'
);
},
getfile
(
val
)
{
this
.
ruleForm
.
contractFileName
=
val
;
},
getfile1
(
val
)
{
this
.
ruleForm
.
fileList
=
val
;
},
// 提交表单
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
if
(
valid
)
{
const
{
code
,
msg
}
=
await
contract
(
this
.
ruleForm
);
if
(
code
===
200
)
{
this
.
$message
({
message
:
'成功'
,
type
:
'success'
,
duration
:
1500
});
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
);
},
1500
);
}
else
{
this
.
$message
.
error
(
msg
);
}
}
}
catch
(
e
)
{
console
.
log
(
e
);
}
},
created
()
{
/* let type = this.$router.params.type
},
async
contractDetails
()
{
const
{
data
,
code
}
=
await
contractDetails
();
if
(
code
==
200
)
{
this
.
ruleForm
=
data
;
for
(
let
item
in
data
.
contractFileName
)
{
this
.
ruleForm
.
contractName
=
item
;
}
for
(
let
item1
in
data
.
fileList
)
{
this
.
ruleForm
.
fileList
=
item1
;
}
}
}
},
created
()
{
/* let type = this.$router.params.type
if(type=='2'){
this.contractDetails()
} */
this
.
projectCode
=
localStorage
.
getItem
(
"projectCode"
);
this
.
projectName
=
localStorage
.
getItem
(
"projectName"
);
}
}
this
.
projectCode
=
localStorage
.
getItem
(
'projectCode'
);
this
.
projectName
=
localStorage
.
getItem
(
'projectName'
);
}
};
</
script
>
<
style
scoped
>
.message
{
width
:
80%
;
margin
:
0
auto
}
.message
{
width
:
80%
;
margin
:
0
auto
;
}
.button
{
width
:
100%
;
height
:
100px
;
}
.button
{
width
:
100%
;
height
:
100px
;
}
</
style
>
src/pages/purchaser/bid/bidSure/determine.vue
View file @
fe944733
<
template
>
<div>
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<div>
<div
class=
"message form"
>
<div
class=
"flex-between"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div
style=
"margin-right: 100px;"
>
项目名称:
{{
projectName
}}
</div>
</div>
<div
class=
"flex-between"
>
<div>
项目分类:
{{
classify
}}
</div>
<div
class=
"flex"
>
<div
class=
"adjustment"
>
上传附件:
</div>
<singleUpload
:limit=
"1"
tip=
"支持上传1个附件,不超过20M"
@
input=
"getfile"
></singleUpload>
</div>
</div>
</div>
<div
class=
"form"
>
<h3><span>
*
</span>
确定中标人
</h3>
<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
.
trim=
"content"
type=
"textarea"
placeholder=
"请输入内容"
maxlength=
"300"
>
</el-input>
</div>
<div
class=
"button flex-center"
>
<el-button
@
click=
"back"
>
返回
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
完成
</el-button>
</div>
</div>
</div>
</div>
<div>
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<div>
<div
class=
"message form"
>
<div
class=
"flex-between"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div
style=
"margin-right: 100px"
>
项目名称:
{{
projectName
}}
</div>
</div>
<div
class=
"flex-between"
>
<div>
项目分类:
{{
classify
}}
</div>
<div
class=
"flex-item"
v-if=
"type == 2"
>
<div
class=
"adjustment"
>
上传附件:
</div>
<ul
v-if=
"file !== undefined && file.length > 0"
>
<li
v-for=
"(item, i) in file"
:key=
"i"
@
click=
"open(item.fileUrl)"
class=
"link"
>
{{
item
.
fileName
}}
</li>
</ul>
<div
v-else
>
无
</div>
</div>
<div
class=
"flex"
v-else
>
<div
class=
"adjustment"
>
上传附件:
</div>
<singleUpload
:limit=
"1"
tip=
"支持上传1个附件,不超过20M"
@
input=
"getfile"
></singleUpload>
</div>
</div>
</div>
<div
class=
"form"
>
<h3><span>
*
</span>
确定中标人
</h3>
<el-radio-group
v-model=
"companyId"
:disabled=
"type == 2 ? true : false"
>
<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
.
trim=
"content"
type=
"textarea"
placeholder=
"请输入内容"
maxlength=
"300"
:disabled=
"type == 2 ? true : false"
>
</el-input>
</div>
<div
class=
"button flex-center"
v-if=
"type == 2"
>
<el-button
@
click=
"back"
>
返回
</el-button>
</div>
<div
class=
"button flex-center"
v-else
>
<el-button
@
click=
"back"
>
返回
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
完成
</el-button>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
candidate
,
winnerSave
}
from
'@api/purchaser/bid'
import
{
projectClassify
}
from
'@api/common/list'
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
,
singleUpload
,
dataTable
},
data
()
{
return
{
classify
:
""
,
projectCode
:
""
,
projectName
:
""
,
file
:
[],
companyId
:
""
,
projectId
:
""
,
content
:
''
,
navs
:
[
'确认中标人'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
tableData
:
[],
columns
:
[{
label
:
'中标候选人'
,
prop
:
'companyName'
},
{
label
:
'联系人'
,
prop
:
'contacts'
},
{
label
:
'手机号'
,
prop
:
'phone'
},
{
slot
:
'operate'
}
]
//
}
},
created
()
{
this
.
getcandidate
();
this
.
getprojectClassify
();
this
.
projectCode
=
localStorage
.
getItem
(
"projectCode"
)
this
.
projectName
=
localStorage
.
getItem
(
"projectName"
)
},
methods
:
{
getfile
(
val
)
{
this
.
file
=
val
},
back
()
{
this
.
$router
.
go
(
-
1
)
},
examine
()
{
this
.
$router
.
push
(
'/admin/bid/bidingDetail'
)
},
check
(
index
)
{
console
.
log
(
index
);
},
// 获取中标人列表
async
getcandidate
()
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
const
{
data
,
code
}
=
await
candidate
(
projectId
)
if
(
code
===
200
)
{
this
.
tableData
=
data
}
},
// 获取项目分类
async
getprojectClassify
()
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
);
try
{
const
{
data
,
code
}
=
await
projectClassify
(
projectId
)
this
.
classify
=
data
;
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
// 提交中标人
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
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
else
{
this
.
$message
.
error
(
msg
);
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
import
{
candidate
,
winnerSave
,
winPersionInfoDetail
}
from
'@api/purchaser/bid'
;
import
{
projectClassify
}
from
'@api/common/list'
;
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
,
singleUpload
,
dataTable
},
data
()
{
return
{
classify
:
''
,
projectCode
:
''
,
projectName
:
''
,
file
:
[],
companyId
:
''
,
projectId
:
''
,
content
:
''
,
navs
:
[
'确认中标人'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
tableData
:
[],
type
:
0
,
columns
:
[],
detail
:
''
//,
};
},
created
()
{
this
.
projectCode
=
localStorage
.
getItem
(
'projectCode'
);
this
.
projectName
=
localStorage
.
getItem
(
'projectName'
);
let
type
=
this
.
$route
.
query
.
type
;
this
.
type
=
type
;
if
(
type
==
2
)
{
this
.
navs
[
0
]
=
'查看中标人'
;
this
.
get
();
}
else
{
this
.
getprojectClassify
()
this
.
getcandidate
()
}
},
methods
:
{
open
(
url
)
{
window
.
open
(
url
);
},
getfile
(
val
)
{
this
.
file
=
val
;
},
back
()
{
this
.
$router
.
go
(
-
1
);
},
examine
()
{
this
.
$router
.
push
(
'/admin/bid/bidingDetail'
);
},
check
(
index
)
{
console
.
log
(
index
);
},
async
get
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
var
{
data
,
code
}
=
await
candidate
(
projectId
);
if
(
code
===
200
)
{
this
.
tableData
=
data
;
}
var
{
data
,
code
}
=
await
projectClassify
(
projectId
);
this
.
classify
=
data
;
var
{
data
,
code
}
=
await
winPersionInfoDetail
(
projectId
);
this
.
companyId
=
data
.
companyId
;
this
.
remark
=
data
.
remark
;
this
.
file
=
data
.
fileList
;
},
async
getprojectClassify
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
var
{
data
,
code
}
=
await
projectClassify
(
projectId
);
this
.
classify
=
data
;
},
async
getcandidate
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
var
{
data
,
code
}
=
await
candidate
(
projectId
);
if
(
code
===
200
)
{
this
.
tableData
=
data
;
}
},
// 提交中标人
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
});
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
);
},
1500
);
}
else
{
this
.
$message
.
error
(
msg
);
}
}
catch
(
e
)
{
console
.
log
(
e
);
}
}
}
};
</
script
>
<
style
scoped
>
.message
{
width
:
80%
;
margin
:
0
auto
}
.message
>
div
{
margin-bottom
:
20px
;
}
.message
{
width
:
80%
;
margin
:
0
auto
;
}
.form
>
h3
{
font-weight
:
bold
;
margin-bottom
:
30px
;
}
.message
>
div
{
margin-bottom
:
20px
;
}
.button
{
width
:
100%
;
height
:
50px
;
.form
>
h3
{
font-weight
:
bold
;
margin-bottom
:
30px
;
}
}
.button
{
width
:
100%
;
height
:
50px
;
}
span
{
color
:
#B21F2D
}
span
{
color
:
#b21f2d
;
}
</
style
>
src/pages/purchaser/bid/bidSure/notice.vue
View file @
fe944733
...
...
@@ -18,18 +18,17 @@
<div
class=
"flex-between"
>
<div
class=
"flex"
>
<div
class=
"adjustment"
>
上传附件:
</div>
<singleUpload
:limit=
"1"
tip=
"支持上传1个附件,不超过20M"
@
input=
"getfile"
></singleUpload>
<singleUpload
:limit=
"1"
tip=
"支持上传1个附件,不超过20M"
@
input=
"getfile"
:fileList=
"ruleForm.accessoryPOList"
></singleUpload>
</div>
<div>
发布媒体:捷安采官网
</div>
</div>
<div
class=
"flex-item"
>
<div
style=
"width: 50px"
>
备注:
</div>
<
!--
<
div
class=
"flex-item"
>
<div
style=
"width: 50px"
>
备注:
{{
remark
}}
</div>
<el-input
:rows=
"4"
v-model
.
trim=
"remark"
type=
"remark"
placeholder=
"请输入备注"
maxlength=
"300"
>
</el-input>
</div>
</div>
-->
</div>
<div
class=
"form"
>
<h3>
确定中标人
</h3>
<h3>
中标人列表
</h3>
<dataTable
:table-data=
"tableData"
:columns=
"columns"
:is-pageobj=
"false"
>
<el-table-column
slot=
"operate"
label=
"操作"
align=
"center"
fixed=
"right"
width=
"200"
>
<template
slot-scope=
"scope"
>
...
...
@@ -52,7 +51,7 @@
<el-button
type=
"primary"
@
click=
"submitData"
v-if=
"type!== 2"
>
提交审批
</el-button>
</div>
</div>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"
收货地址
"
width=
"30%"
>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"
中标价格
"
width=
"30%"
>
<el-form
:model=
"form"
>
<el-form-item
label-width=
"120px"
label=
"输入中标价"
>
<el-input-number
v-model=
"form.price"
:min=
"0"
:controls=
"false"
:precision=
"2"
placeholder=
"输入"
></el-input-number>
...
...
@@ -193,7 +192,12 @@ export default {
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
data
,
code
}
=
await
noticeWin
(
projectId
);
if
(
code
==
200
)
{
for
(
let
item
of
data
.
accessoryVOList
)
{
item
.
name
=
item
.
fileName
;
item
.
url
=
item
.
accessoryUrl
;
}
this
.
ruleForm
=
data
;
}
}
catch
(
err
)
{
console
.
log
(
err
);
...
...
src/pages/purchaser/bid/bidSure/publicity.vue
View file @
fe944733
...
...
@@ -28,10 +28,10 @@
</div>
<div>
发布媒体:捷安采官网
</div>
</div>
<div
class=
"flex-item"
>
<
!--
<
div
class=
"flex-item"
>
<div
style=
"width: 50px"
>
备注:
</div>
<el-input
:rows=
"4"
v-model
.
trim=
"remark"
type=
"textarea"
placeholder=
"请输入备注"
maxlength=
"300"
>
</el-input>
</div>
</div>
-->
</div>
<div
class=
"form"
>
<h3
style=
"margin-top: 30px"
>
中标候选人公示内容
</h3>
...
...
src/pages/purchaser/bid/bidSure/see.vue
View file @
fe944733
...
...
@@ -338,6 +338,10 @@ export default {
.bond
span
{
cursor
:
pointer
;
}
.file
{
flex-wrap
:
wrap
;
}
.file
>
div
{
margin-right
:
10px
;
color
:
#113dee
;
...
...
src/pages/purchaser/bid/editProject/demand.vue
View file @
fe944733
...
...
@@ -199,6 +199,7 @@ export default {
idx
:
''
};
},
methods
:
{
// 删除操作
handleDelete
(
row
,
index
)
{
...
...
src/pages/purchaser/bid/editProject/message.vue
View file @
fe944733
...
...
@@ -514,6 +514,7 @@ export default {
this
.
industryList
();
this
.
projectClassifyList
();
this
.
getGenerateNumber
();
this
.
$refs
.
ruleForm
.
clearValidate
()
},
methods
:
{
// 删除操作
...
...
src/pages/purchaser/bid/editProject/timeSet.vue
View file @
fe944733
...
...
@@ -163,7 +163,9 @@ export default {
}
};
},
created
(){
this
.
$refs
.
ruleForm
.
clearValidate
()
},
methods
:
{
releaseTime
(
val
)
{
this
.
ruleForm
.
releaseTime
=
new
Date
(
val
).
getTime
();
...
...
src/pages/purchaser/bid/seeProject/fileUpload.vue
View file @
fe944733
...
...
@@ -13,7 +13,7 @@
</el-table-column>
<el-table-column
slot=
"operate"
label=
"价格"
align=
"center"
fixed=
"right"
width=
"300"
>
<
template
slot-scope=
"scope"
>
<div>
{{
scope
.
row
.
free
?
scope
.
row
.
price
:
'无'
}}
</div>
<div>
{{
!
scope
.
row
.
free
?
scope
.
row
.
price
:
'无'
}}
</div>
</
template
>
</el-table-column>
</dataTable>
...
...
src/pages/purchaser/bid/seeProject/message.vue
View file @
fe944733
...
...
@@ -197,7 +197,7 @@
<el-form-item
label=
"附件:"
prop=
"file"
>
<ul
v-if=
'ruleForm.accessoryDOList!==undefined && ruleForm.accessoryDOList.length>0'
>
<li
v-for=
"(item,i) in ruleForm.accessoryDOList"
:key=
"i"
>
<a
:href=
"item.accessoryUrl"
>
{{
item
.
fileName
}}
</a>
<a
target=
"_blank"
:href=
"item.accessoryUrl"
>
{{
item
.
fileName
}}
</a>
</li>
</ul>
<div
v-else
>
无
</div>
...
...
src/pages/purchaser/bid/workbench.vue
View file @
fe944733
...
...
@@ -177,12 +177,12 @@ export default {
url
:
'/purchaser/bid/bidSure/bidResult/list'
,
bright
:
false
},
{
id
:
19
,
label
:
'合同管理'
,
url
:
'/purchaser/bid/bidSure/contract'
,
bright
:
false
}
//
{
//
id: 19,
//
label: '合同管理',
//
url: '/purchaser/bid/bidSure/contract',
//
bright: false
//
}
]
},
{
...
...
@@ -303,7 +303,10 @@ export default {
}
else
if
(
item2
.
buttonId
==
12
&&
item2
.
status
==
2
)
{
item1
.
url
=
'/purchaser/bid/bidSure/see'
;
item1
.
label
=
'查看评标'
;
}
else
{
}
else
if
(
item2
.
buttonId
==
15
&&
item2
.
status
==
2
)
{
item1
.
url
=
'/purchaser/bid/bidSure/determine?type=2'
;
item1
.
label
=
'查看中标人'
;
}
else
{
item1
.
url
=
this
.
geturl
(
item1
.
url
,
item2
.
status
);
item1
.
label
=
this
.
getlabel
(
item1
.
label
,
item2
.
status
);
}
...
...
src/pages/purchaser/home/home.vue
View file @
fe944733
...
...
@@ -161,9 +161,7 @@ export default {
},
created
()
{
let
token
=
getSearchString
(
'token'
);
if
(
token
!==
'undefined'
)
{
localStorage
.
setItem
(
'token'
,
token
);
}
localStorage
.
setItem
(
'token'
,
token
);
this
.
gethome
();
},
methods
:
{
...
...
src/pages/supply/bid/joinProject/bidOpen/bidOpenhal.vue
View file @
fe944733
...
...
@@ -5,7 +5,7 @@
<div>
中国标准时间:
{{
currentTime
}}
</div>
<div
class=
"hal"
>
<h3
style=
"text-align: center"
>
{{
projectName
}}
项目开标大厅
</h3>
<div
class=
"time-message flex-
center"
style=
"border-top:1px solid gray;width:100%
"
>
<div
class=
"time-message flex-
between
"
>
<div
class=
"flex"
>
<p>
截标倒计时:
</p>
<timeDown
:remain-time=
"remaintime"
@
countDowmEnd=
"remaintimeEnd"
></timeDown>
...
...
src/pages/supply/bid/joinProject/bidStage/bond/detail.vue
View file @
fe944733
...
...
@@ -78,7 +78,7 @@
<el-form-item
label=
"上传缴费凭证:"
prop=
"voucherList"
>
<ul>
<li
v-for=
"(item, index) in ruleForm.voucherList"
:key=
"index"
>
<a
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
<a
target=
"_blank"
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
</li>
</ul>
</el-form-item>
...
...
src/pages/supply/bid/joinProject/bidStage/tenderFee/detail.vue
View file @
fe944733
...
...
@@ -109,7 +109,7 @@
<el-form-item
label=
"上传缴费凭证:"
prop=
"voucherList"
>
<ul>
<li
v-for=
"(item, index) in ruleForm.voucherList"
:key=
"index"
>
<a
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
<a
target=
"_blank"
:href=
"item.fileUrl"
>
{{
item
.
fileName
}}
</a>
</li>
</ul>
</el-form-item>
...
...
src/pages/supply/bid/joinProject/bidSure/bidresultAdvice.vue
View file @
fe944733
...
...
@@ -17,7 +17,7 @@
<div
style=
"margin-right: 20px;"
>
附件:
</div>
<ul>
<!--
<li
v-for=
"(item, i) in detail"
:key=
"i"
>
-->
<a
:href=
detail.resultBookUrl
>
{{
detail
.
resultBookName
}}
</a>
<a
target=
"_blank"
:href=
detail.resultBookUrl
>
{{
detail
.
resultBookName
}}
</a>
</ul>
<!--
<div
style=
"margin-right: 20px;"
>
附件:中标通知书.pdf
</div>
<el-button
size=
"mini"
>
下载
</el-button>
-->
...
...
src/pages/supply/bid/joinProject/workbench.vue
View file @
fe944733
...
...
@@ -167,12 +167,12 @@ export default {
url
:
'/supply/bid/joinProject/bidSure/bidresultAdvice'
,
bright
:
false
},
{
id
:
65
,
label
:
'合同管理'
,
url
:
'/supply/bid/joinProject/bidSure/contractManagement'
,
bright
:
false
}
//
{
//
id: 65,
//
label: '合同管理',
//
url: '/supply/bid/joinProject/bidSure/contractManagement',
//
bright: false
//
}
]
},
{
...
...
src/pages/supply/buyOut/voucherSign.vue
View file @
fe944733
...
...
@@ -10,9 +10,9 @@
<div>
下载合同:
</div>
<ul>
<li
class=
"flex-item"
>
<div>
{{
detail
.
fileName
}}
f
</div>
<div>
{{
detail
.
fileName
}}
</div>
<!--
<el-button
size=
"mini"
>
下载
</el-button>
-->
<a
:href=
"detail.fileUrl"
>
下载
</a>
<a
target=
"_blank"
:href=
"detail.fileUrl"
>
下载
</a>
</li>
</ul>
</div>
...
...
src/utils/common.js
View file @
fe944733
...
...
@@ -18,12 +18,12 @@ export function getSearchString(key) {
export
function
down
(
url
)
{
window
.
open
(
url
)
}
export
let
requestUrl
=
'http://192.168.43.117:8085'
;
//
export let requestUrl = 'http://60.205.251.80:8082';
//
export let requestUrl = 'http://192.168.43.117:8085';
export
let
requestUrl
=
'http://60.205.251.80:8082'
;
export
let
homeUrl
=
'http://localhost:3000'
;
//
export let homeUrl = 'http://60.205.251.80:8081';
//
export let homeUrl = 'http://localhost:3000';
export
let
homeUrl
=
'http://60.205.251.80:8081'
;
export
let
openUrl
=
'//192.168.43.117:8085'
;
//
export let openUrl = '//60.205.251.80:8085';
//
export let openUrl = '//192.168.43.117:8085';
export
let
openUrl
=
'//60.205.251.80:8085'
;
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