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
13d85ab4
Commit
13d85ab4
authored
Nov 25, 2020
by
zhangdong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
工作台卡片和开标大厅提示
parent
1a56804e
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
301 additions
and
65 deletions
+301
-65
bid.js
src/api/purchaser/bid.js
+8
-0
main.css
src/assets/css/main.css
+2
-1
bidOpenhal.vue
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
+20
-13
workbench.vue
src/pages/purchaser/bid/workbench.vue
+133
-22
workbench.vue
src/pages/supply/bid/joinProject/workbench.vue
+137
-28
arrow.png
src/static/images/arrow.png
+0
-0
request.js
src/utils/request.js
+1
-1
No files found.
src/api/purchaser/bid.js
View file @
13d85ab4
...
...
@@ -266,6 +266,14 @@ export function noticeAbortive(id) {
// 2.1.4
//开标大厅
// 获取参与开标的公司数量
export
function
getTenderPeople
(
projectId
)
{
return
request
({
url
:
`open-bid/getTenderPeoples/
${
projectId
}
`
,
method
:
'get'
,
})
}
// 开标一览表
export
function
openInfo
(
projectId
)
{
return
request
({
...
...
src/assets/css/main.css
View file @
13d85ab4
...
...
@@ -22,7 +22,8 @@ a {
.content-box
{
min-width
:
1000px
;
min-width
:
1200px
;
/* width:1670px; */
position
:
absolute
;
left
:
250px
;
right
:
0
;
...
...
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
View file @
13d85ab4
...
...
@@ -205,7 +205,8 @@ import {
openbidFailed
,
bidFaileddetail
,
bidFinish
,
issueopenInfo
issueopenInfo
,
getTenderPeople
}
from
'@api/purchaser/bid'
;
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
timeDown
from
'@components/timeDown.vue'
;
...
...
@@ -321,6 +322,7 @@ export default {
this
.
userName
=
JSON
.
parse
(
localStorage
.
getItem
(
'userInfo'
)).
name
;
// this.gettimeInfo();
this
.
getsigndetail
();
this
.
tips
()
this
.
myId
=
JSON
.
parse
(
localStorage
.
getItem
(
'userInfo'
)).
userId
;
this
.
pageObj
.
companyId
=
localStorage
.
getItem
(
'companyId'
);
this
.
pageObj
.
projectId
=
localStorage
.
getItem
(
'projectId'
);
...
...
@@ -339,6 +341,19 @@ export default {
},
5000
);
},
methods
:
{
async
tips
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
try
{
const
{
data
}
=
await
getTenderPeople
(
projectId
);
this
.
$alert
(
`参与的开标公司数量:
${
data
}
个`
,
`开标提示`
,
{
confirmButtonText
:
'知道了'
,
callback
:
(
action
)
=>
{
if
(
action
===
'confirm'
)
{
}
}
});
}
catch
{}
},
openInfo
()
{
this
.
isopenInfo
=
true
;
this
.
getopenInfo
();
...
...
@@ -490,20 +505,19 @@ export default {
this
.
issueTable
=
data
.
issueTable
;
let
localTime
=
new
Date
().
getTime
();
// 解密时间
let
comparyTime
=
this
.
storagedecodeTime
-
(
localTime
-
data
.
openBidTime
)
/
1000
;
if
(
data
.
issueTable
)
{
let
comparyTime
=
this
.
storagedecodeTime
-
(
localTime
-
data
.
openBidTime
)
/
1000
;
if
(
data
.
issueTable
)
{
// 签名时间
this
.
signatureTime
=
this
.
storagesignatureTime
-
(
localTime
-
data
.
openBidTime
)
/
1000
+
this
.
storagedecodeTime
;
this
.
signatureTime
=
this
.
storagesignatureTime
-
(
localTime
-
data
.
openBidTime
)
/
1000
+
this
.
storagedecodeTime
;
}
if
(
data
.
openStatus
==
2
)
{
console
.
log
(
this
.
storagedecodeTime
,
'..............'
);
this
.
decodeTime
=
comparyTime
;
this
.
decodeTime
=
comparyTime
;
if
(
comparyTime
>
0
)
{
console
.
log
(
'大于'
);
}
else
{
console
.
log
(
'小于'
);
this
.
endbidButton
=
true
;
}
}
}
...
...
@@ -588,13 +602,6 @@ export default {
},
// 开标提示
confirm
()
{
// this.$alert('请立即开标', '请立即开标', {
// confirmButtonText: '知道了',
// callback: (action) => {
// if (action === 'confirm') {
// }
// }
// });
this
.
isOpenbid
=
true
;
this
.
getstartInfo
();
},
...
...
src/pages/purchaser/bid/workbench.vue
View file @
13d85ab4
...
...
@@ -3,8 +3,15 @@
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<h1>
项目状态:
{{
remark
}}
</h1>
<div
class=
"flex state"
>
<div
class=
"flex-between"
style=
"width:93%"
>
<h1>
项目状态:
{{
remark
}}
</h1>
<div
class=
"view flex"
>
<div
v-for=
"(item,index) in views"
:key=
"index"
:class=
"viewIdx==index?'active':''"
@
click=
"viewChange(index)"
>
{{
item
}}
</div>
</div>
</div>
<div
class=
"flex state"
v-show=
"viewIdx==1"
>
<ul
class=
"flex-left"
>
<li
v-for=
"(item, index) in states"
:key=
"index"
class=
"flex"
>
<div>
{{
item
.
title
}}
</div>
...
...
@@ -15,11 +22,26 @@
</ul>
</li>
</ul>
<!--
<ul
class=
"flex"
>
<li
v-for=
"(item,index) in states"
:key=
"index"
>
<el-button
type=
"primary"
@
click=
"jump(item.button,item.uri)"
>
{{
item
.
button
}}
</el-button>
</li>
</ul>
-->
</div>
<div
class=
"flex state"
v-show=
"viewIdx==0"
>
<ul
class=
"flex-left flex"
>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs1"
>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs2"
>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs3"
>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs4"
>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs5"
>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs6"
>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs7"
>
<li
v-for=
"(item, index) in states1"
:key=
"index"
class=
"card"
style=
"margin-bottom:50px"
>
<div
class=
"card-title"
>
{{
item
.
title
}}
</div>
<ul
class=
"inside flex-between card-item"
>
<li
v-for=
"(mods, index) in item.modulars"
:key=
"index"
class=
"flex-center"
>
<div
:class=
"mods.bright ? 'active' : ''"
@
click=
"jump(mods)"
>
{{
mods
.
label
}}
</div>
</li>
</ul>
</li>
</ul>
</div>
<div
class=
"centerButton"
>
<el-button
type=
"primary"
@
click=
"back"
>
返回
</el-button>
...
...
@@ -40,6 +62,8 @@ export default {
},
data
()
{
return
{
viewIdx
:
0
,
states1
:[],
states
:
[
{
title
:
'公告'
,
...
...
@@ -176,7 +200,7 @@ export default {
label
:
'发布招标结果通知书'
,
url
:
'/purchaser/bid/bidSure/bidResult/list'
,
bright
:
false
}
,
}
// {
// id: 19,
// label: '合同管理',
...
...
@@ -217,10 +241,14 @@ export default {
breads
:
[
'招标管理'
,
'招标项目管理 '
,
'工作台'
],
navs
:
[
'工作台'
],
remark
:
''
,
buttonList
:
[]
buttonList
:
[],
views
:[
"卡片试图"
,
"列表试图"
]
};
},
methods
:
{
viewChange
(
index
){
this
.
viewIdx
=
index
},
geturl
(
url
,
status
)
{
let
newUrl
=
''
;
if
(
status
==
0
)
{
...
...
@@ -282,7 +310,7 @@ export default {
message
.
type
=
1
;
const
{
data
,
msg
,
code
}
=
await
projectConsole
(
message
);
if
(
code
==
200
)
{
let
states
=
this
.
states
let
states
=
this
.
states
;
for
(
let
item
of
states
)
{
for
(
let
item1
of
item
.
modulars
)
{
for
(
let
item2
of
data
)
{
...
...
@@ -303,10 +331,10 @@ export default {
}
else
if
(
item2
.
buttonId
==
12
&&
item2
.
status
==
2
)
{
item1
.
url
=
'/purchaser/bid/bidSure/see'
;
item1
.
label
=
'查看评标'
;
}
else
if
(
item2
.
buttonId
==
15
&&
item2
.
status
==
2
)
{
}
else
if
(
item2
.
buttonId
==
15
&&
item2
.
status
==
2
)
{
item1
.
url
=
'/purchaser/bid/bidSure/determine?type=2'
;
item1
.
label
=
'查看中标人'
;
}
else
{
}
else
{
item1
.
url
=
this
.
geturl
(
item1
.
url
,
item2
.
status
);
item1
.
label
=
this
.
getlabel
(
item1
.
label
,
item2
.
status
);
}
...
...
@@ -314,8 +342,9 @@ export default {
}
}
}
this
.
states
=
states
console
.
log
(
this
.
states
)
this
.
states
=
states
;
[
states
[
3
],
states
[
5
]]
=
[
states
[
5
],
states
[
3
]];
this
.
states1
=
states
this
.
remark
=
data
[
0
].
remark
;
}
else
{
this
.
$message
.
error
(
msg
);
...
...
@@ -340,14 +369,21 @@ export default {
.state
>
ul
{
flex-wrap
:
wrap
;
}
.state
>
ul
>
.card
{
width
:
400px
;
height
:
260px
;
box-sizing
:
border-box
;
padding
:
0
30px
;
margin-bottom
:
100px
;
margin-right
:
100px
;
}
.state
>
ul
>
li
{
margin-right
:
50px
;
border
:
1px
solid
#DADADA
border
:
1px
solid
#dadada
;
}
.flex-left
{
position
:
relative
;
}
.flex-left
>
li
{
font-weight
:
bold
;
font-size
:
20px
;
...
...
@@ -357,8 +393,12 @@ export default {
.flex-left
>
li
>
div
{
margin-right
:
30px
;
padding
:
0
30px
;
border-right
:
1px
solid
#DADADA
;
padding
:
0
30px
;
border-right
:
1px
solid
#dadada
;
}
.flex-left
>
li
>
.ca0rd-title
{
text-align
:
center
;
border-right
:
none
;
}
.inside
>
li
>
div
{
...
...
@@ -370,9 +410,80 @@ export default {
border-radius
:
2px
;
line-height
:
35px
;
height
:
35px
;
cursor
:
pointer
;
cursor
:
pointer
;
}
.inside
>
li
>
.active
{
background
:
#ff5203
;
}
.flex-left
>
li
>
.card-title
{
text-align
:
center
;
border-right
:
none
;
}
.card-item
{
flex-wrap
:
wrap
;
}
.card-item
>
li
{
margin-bottom
:
15px
;
}
.card-item
>
li
>
div
{
margin-right
:
0
}
.arrow
{
width
:
60px
;
height
:
60px
;
}
.abs1
{
position
:
absolute
;
top
:
100px
;
left
:
420px
}
.abs2
{
position
:
absolute
;
top
:
100px
;
left
:
920px
;
}
.abs3
{
position
:
absolute
;
top
:
280px
;
left
:
1170px
;
transform
:
rotate
(
90deg
);
}
.abs4
{
position
:
absolute
;
top
:
450px
;
left
:
420px
;
transform
:
rotate
(
180deg
);
}
.abs5
{
position
:
absolute
;
top
:
450px
;
left
:
920px
;
transform
:
rotate
(
180deg
);
}
.abs6
{
position
:
absolute
;
top
:
640px
;
left
:
170px
;
transform
:
rotate
(
90deg
);
}
.abs7
{
position
:
absolute
;
top
:
820px
;
left
:
420px
;
}
.view
>
div
{
width
:
100px
;
height
:
40px
;
border
:
1px
solid
#000
;
line-height
:
40px
;
font-size
:
16px
;
text-align
:
center
;
}
.view
>
.active
{
background
:
#ccc
;
}
/* 切换 */
</
style
>
src/pages/supply/bid/joinProject/workbench.vue
View file @
13d85ab4
...
...
@@ -3,8 +3,15 @@
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<h1>
项目状态:
{{
remark
}}
</h1>
<div
class=
"flex state"
>
<div
class=
"flex-between"
style=
"width: 93%"
>
<h1>
项目状态:
{{
remark
}}
</h1>
<div
class=
"view flex"
>
<div
v-for=
"(item, index) in views"
:key=
"index"
:class=
"viewIdx == index ? 'active' : ''"
@
click=
"viewChange(index)"
>
{{
item
}}
</div>
</div>
</div>
<div
class=
"flex state"
v-show=
"viewIdx == 1"
>
<ul
class=
"flex-left"
>
<li
v-for=
"(item, index) in states"
:key=
"index"
class=
"flex"
>
<div>
{{
item
.
title
}}
</div>
...
...
@@ -15,11 +22,25 @@
</ul>
</li>
</ul>
<!--
<ul
class=
"flex"
>
<li
v-for=
"(item, index) in states"
:key=
"index"
>
<el-button
type=
"primary"
@
click=
"jump(item.button, item.uri)"
>
{{
item
.
button
}}
</el-button>
</div>
<div
class=
"flex state"
v-show=
"viewIdx == 0"
>
<ul
class=
"flex-left flex"
>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs1"
/>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs2"
/>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs3"
/>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs4"
/>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs5"
/>
<img
src=
"@static/images/arrow.png"
alt=
""
class=
"arrow abs6"
/>
<li
v-for=
"(item, index) in states1"
:key=
"index"
class=
"card"
style=
"margin-bottom:50px"
>
<div
class=
"card-title"
>
{{
item
.
title
}}
</div>
<ul
class=
"inside flex-between card-item"
>
<li
v-for=
"(mods, index) in item.modulars"
:key=
"index"
class=
"flex-center"
>
<div
:class=
"mods.bright ? 'active' : ''"
@
click=
"jump(mods)"
>
{{
mods
.
label
}}
</div>
</li>
</ul>
</li>
</ul>
-->
</ul>
</div>
<div
class=
"centerButton"
>
<el-button
type=
"primary"
@
click=
"back"
>
返回
</el-button>
...
...
@@ -32,7 +53,7 @@
import
{
projectConsole
}
from
'@api/purchaser/bid'
;
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
changeNav
from
'@components/changeNav.vue'
;
import
{
getBidOpening
}
from
'@api/common/list.js'
import
{
getBidOpening
}
from
'@api/common/list.js'
;
export
default
{
components
:
{
dataBreadcrumb
,
...
...
@@ -40,6 +61,7 @@ export default {
},
data
()
{
return
{
states1
:
''
,
breads
:
[
'投标管理'
,
'我参与的项目 '
,
'工作台'
],
navs
:
[
'工作台'
],
states
:
[
...
...
@@ -78,7 +100,7 @@ export default {
{
id
:
54
,
label
:
'查看招标公告'
,
url
:
'/supply/bid/joinProject/seeInvitation'
,
url
:
'/supply/bid/joinProject/seeInvitation'
,
bright
:
false
},
{
...
...
@@ -166,7 +188,7 @@ export default {
label
:
'招标结果通知书查看'
,
url
:
'/supply/bid/joinProject/bidSure/bidresultAdvice'
,
bright
:
false
}
,
}
// {
// id: 65,
// label: '合同管理',
...
...
@@ -193,10 +215,15 @@ export default {
]
}
],
remark
:
''
remark
:
''
,
viewIdx
:
''
,
views
:
[
'卡片试图'
,
'列表试图'
]
};
},
methods
:
{
viewChange
(
index
)
{
this
.
viewIdx
=
index
;
},
back
()
{
this
.
$router
.
go
(
-
1
);
},
...
...
@@ -226,20 +253,19 @@ export default {
async
jump
(
mods
)
{
if
(
mods
.
bright
)
{
/* 参与开标状态 code为200 通行 code为500 返回一个信息 不通行 */
console
.
log
(
JSON
.
stringify
(
mods
)
+
'11111111111111'
+
'2222222222'
)
console
.
log
(
JSON
.
stringify
(
mods
)
+
'11111111111111'
+
'2222222222'
);
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
if
(
mods
.
id
==
58
)
{
const
{
data
,
code
,
msg
}
=
await
getBidOpening
(
projectId
)
if
(
code
==
200
)
{
this
.
$message
.
success
(
msg
)
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
if
(
mods
.
id
==
58
)
{
const
{
data
,
code
,
msg
}
=
await
getBidOpening
(
projectId
);
if
(
code
==
200
)
{
this
.
$message
.
success
(
msg
)
;
this
.
$router
.
push
(
mods
.
url
);
}
else
{
this
.
$message
.
error
(
msg
)
}
else
{
this
.
$message
.
error
(
msg
)
;
}
}
else
{
this
.
$router
.
push
(
mods
.
url
);
}
else
{
this
.
$router
.
push
(
mods
.
url
);
}
}
},
...
...
@@ -265,11 +291,14 @@ export default {
item1
.
url
=
this
.
geturl
(
item1
.
url
,
item2
.
status
);
item1
.
label
=
this
.
getlabel
(
item1
.
label
,
item2
.
status
);
}
}
}
}
}
let
states1
=
this
.
states
;
[
states1
[
3
],
states1
[
5
]]
=
[
states1
[
5
],
states1
[
3
]];
this
.
states1
=
states1
;
console
.
log
(
this
.
states1
);
this
.
remark
=
data
[
0
].
remark
;
}
else
{
this
.
$message
.
error
(
msg
);
...
...
@@ -294,12 +323,21 @@ export default {
.state
>
ul
{
flex-wrap
:
wrap
;
}
.state
>
ul
>
.card
{
width
:
400px
;
height
:
260px
;
box-sizing
:
border-box
;
padding
:
0
30px
;
margin-bottom
:
100px
;
margin-right
:
100px
;
}
.state
>
ul
>
li
{
margin-right
:
50px
;
border
:
1px
solid
#dadada
;
}
.flex-left
{
position
:
relative
;
}
.flex-left
>
li
{
font-weight
:
bold
;
font-size
:
20px
;
...
...
@@ -309,8 +347,12 @@ export default {
.flex-left
>
li
>
div
{
margin-right
:
30px
;
padding
:
0
30px
;
border-right
:
1px
solid
#DADADA
;
padding
:
0
30px
;
border-right
:
1px
solid
#dadada
;
}
.flex-left
>
li
>
.ca0rd-title
{
text-align
:
center
;
border-right
:
none
;
}
.inside
>
li
>
div
{
...
...
@@ -322,9 +364,76 @@ export default {
border-radius
:
2px
;
line-height
:
35px
;
height
:
35px
;
cursor
:
pointer
;
cursor
:
pointer
;
}
.inside
>
li
>
.active
{
background
:
#ff5203
;
}
.flex-left
>
li
>
.card-title
{
text-align
:
center
;
border-right
:
none
;
}
.card-item
{
flex-wrap
:
wrap
;
}
.card-item
>
li
{
margin-bottom
:
15px
;
}
.card-item
>
li
>
div
{
margin-right
:
0
;
}
.arrow
{
width
:
60px
;
height
:
60px
;
}
.abs1
{
position
:
absolute
;
top
:
100px
;
left
:
420px
}
.abs2
{
position
:
absolute
;
top
:
100px
;
left
:
920px
;
}
.abs3
{
position
:
absolute
;
top
:
280px
;
left
:
1170px
;
transform
:
rotate
(
90deg
);
}
.abs4
{
position
:
absolute
;
top
:
450px
;
left
:
420px
;
transform
:
rotate
(
180deg
);
}
.abs5
{
position
:
absolute
;
top
:
450px
;
left
:
920px
;
transform
:
rotate
(
180deg
);
}
.abs6
{
position
:
absolute
;
top
:
640px
;
left
:
170px
;
transform
:
rotate
(
90deg
);
}
.abs7
{
position
:
absolute
;
top
:
820px
;
left
:
28%
;
}
.view
>
div
{
width
:
100px
;
height
:
40px
;
border
:
1px
solid
#000
;
line-height
:
40px
;
font-size
:
16px
;
text-align
:
center
;
}
.view
>
.active
{
background
:
#ccc
;
}
</
style
>
src/static/images/arrow.png
0 → 100644
View file @
13d85ab4
8.35 KB
src/utils/request.js
View file @
13d85ab4
...
...
@@ -43,7 +43,7 @@ service.interceptors.response.use(
Message
.
error
(
"登陆失效,请重新登录!"
)
localStorage
.
removeItem
(
'token'
);
setTimeout
(
function
()
{
location
.
href
=
`
${
homeUrl
}
/
login/user/`
;
location
.
href
=
`
${
homeUrl
}
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