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
c28e92e0
Commit
c28e92e0
authored
Nov 16, 2020
by
zhangdong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
开吧大厅时间错开,设置开标时间状态,取消开标大厅弹窗
parent
a6e51e9e
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
247 additions
and
212 deletions
+247
-212
dataTable.vue
src/components/dataTable.vue
+5
-0
bidOpenhal.vue
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
+33
-31
bidSet.vue
src/pages/purchaser/bid/bidStage/bidSet.vue
+167
-155
failNotice.vue
src/pages/purchaser/bid/bidStage/failList/failNotice.vue
+1
-1
seeBidSet.vue
src/pages/purchaser/bid/bidStage/seeBidSet.vue
+20
-12
bidOpenhal.vue
src/pages/supply/bid/joinProject/bidOpen/bidOpenhal.vue
+19
-11
signupList.vue
src/pages/supply/bid/signupOnline/signupList.vue
+1
-1
request.js
src/utils/request.js
+1
-1
No files found.
src/components/dataTable.vue
View file @
c28e92e0
...
...
@@ -172,6 +172,11 @@ export default {
let
url
=
this
.
url
const
{
code
,
data
,
total
}
=
await
getList
(
pageObj
,
url
)
if
(
code
===
200
)
{
for
(
let
item
of
data
){
if
(
item
.
endTime
){
item
.
end
=
getTime1
(
item
.
endTime
)
}
}
this
.
tableData
=
data
this
.
total
=
total
}
...
...
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
View file @
c28e92e0
...
...
@@ -17,7 +17,7 @@
<timeDown
:remain-time=
"decodeTime"
@
countDowmEnd=
"decodeTimeEnd"
></timeDown>
</div>
<!--
<div
class=
"flex"
v-show=
"signatureTime"
>
-->
<div
class=
"flex"
v-show=
"openStatus == 2"
>
<div
class=
"flex"
v-show=
"openStatus == 2
&&endbidButton
"
>
<p>
签名倒计时:
</p>
<timeDown
:remain-time=
"signatureTime"
@
countDowmEnd=
"signatureTimeEnd"
></timeDown>
</div>
...
...
@@ -41,7 +41,9 @@
</ul>
</div>
<div
class=
"hal-right"
>
<el-button
type=
"primary"
@
click=
"isdialogue"
><i
class=
"el-icon-chat-dot-round"
></i>
在线对话
</el-button>
<el-button
type=
"primary"
style=
"margin-left: 10px"
@
click=
"isdialogue"
><i
class=
"el-icon-chat-dot-round"
></i>
在线对话
</el-button
>
<el-button
type=
"primary"
@
click=
"openInfo1"
:disabled=
"!endbidButton"
v-if=
"!issueTable"
>
下发开标一览表
</el-button>
<el-button
type=
"primary"
@
click=
"openInfo"
:disabled=
"!issueTable"
>
查看开标一览表
</el-button>
</div>
...
...
@@ -79,17 +81,8 @@
</div>
<div>
<!--
<el-button
icon=
"el-icon-refresh"
@
click=
"refrsh"
>
刷新
</el-button>
-->
<el-button
v-if=
"openStatus == 1"
type=
"primary"
@
click=
"confirm"
style=
"margin-left: 10px"
:disabled=
"!openbidButton"
>
立即开标
</el-button
>
<el-button
v-if=
"openStatus == 2"
type=
"primary"
@
click=
"end"
:disabled=
"!endbidButton"
>
结束开标
</el-button
>
<el-button
v-if=
"openStatus == 1"
type=
"primary"
@
click=
"confirm"
:disabled=
"!openbidButton"
>
立即开标
</el-button>
<el-button
v-if=
"openStatus == 2"
type=
"primary"
@
click=
"end"
:disabled=
"!endbidButton"
>
结束开标
</el-button>
</div>
</div>
</div>
...
...
@@ -415,9 +408,16 @@ export default {
form
.
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
code
,
msg
}
=
await
openbidFailed
(
form
);
if
(
code
===
200
)
{
this
.
$message
.
success
(
msg
);
this
.
isfailInfo
=
false
;
this
.
isFailed
=
false
;
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
});
setTimeout
(()
=>
{
this
.
$router
.
push
(
"/purchaser/bid/workbench"
)
},
1500
);
// this.isfailInfo = false;
// this.isFailed = false;
}
else
if
(
code
===
500
)
{
this
.
$message
.
error
(
msg
);
this
.
isfailInfo
=
false
;
...
...
@@ -467,7 +467,9 @@ export default {
}
else
{
this
.
remaintime
=
remaintime
;
}
// 解密时间
this
.
storagedecodeTime
=
Number
(
data
.
decodeTime
);
// 签名时间
this
.
storagesignatureTime
=
Number
(
data
.
signatureTime
);
}
else
{
this
.
$message
({
...
...
@@ -492,11 +494,11 @@ export default {
console
.
log
(
comparyTime
);
if
(
comparyTime
>
0
)
{
this
.
decodeTime
=
comparyTime
;
this
.
signatureTime
=
this
.
storagesignatureTime
-
(
localTime
-
data
.
openBidTime
)
/
1000
;
console
.
log
(
'大于'
);
}
else
{
console
.
log
(
'小于'
);
this
.
endbidButton
=
true
;
this
.
signatureTime
=
this
.
storagesignatureTime
-
(
localTime
-
data
.
openBidTime
)
/
1000
;
}
}
}
...
...
@@ -581,15 +583,15 @@ export default {
},
// 开标提示
confirm
()
{
this
.
$alert
(
'请立即开标'
,
'请立即开标'
,
{
confirmButtonText
:
'知道了'
,
callback
:
(
action
)
=>
{
if
(
action
===
'confirm'
)
{
this
.
isOpenbid
=
true
;
this
.
getstartInfo
();
}
}
}
);
//
this.$alert('请立即开标', '请立即开标', {
//
confirmButtonText: '知道了',
//
callback: (action) => {
//
if (action === 'confirm') {
// }
// }
// });
this
.
isOpenbid
=
true
;
this
.
getstartInfo
(
);
},
// websocket
createWebSocket
()
{
...
...
@@ -656,7 +658,7 @@ export default {
<
style
scoped
>
ul
{
list-style-type
:
decimal
!important
;
list-style-type
:
decimal
!important
;
}
.time
{
height
:
48px
;
...
...
@@ -702,8 +704,8 @@ ul {
.buttons
{
margin
:
100px
0
;
}
.buttons
>
div
{
margin-right
:
20px
.buttons
>
div
{
margin-right
:
20px
;
}
.hal-left
{
width
:
198px
;
...
...
@@ -733,8 +735,8 @@ ul {
width
:
150px
;
height
:
500px
;
}
.hal-right
>
button
{
margin-bottom
:
16px
.hal-right
>
button
{
margin-bottom
:
16px
;
}
.hal-center
{
...
...
src/pages/purchaser/bid/bidStage/bidSet.vue
View file @
c28e92e0
<
template
>
<div>
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<div
class=
"set"
>
<div
class=
"flex-between"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:
{{
projectName
}}
</div>
</div>
<div
class=
"flex-between"
>
<div>
开标时间:
{{
openBidTime
}}
</div>
<div>
项目状态:
{{
projectStatus
}}
</div>
</div>
<div>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<div
class=
"flex-between"
>
<el-form-item
label=
"解密时限"
prop=
"decodeTime"
>
<el-input
v-model=
"ruleForm.decodeTime"
style=
"width: 250px;"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
placeholder=
"请输入分钟数"
></el-input>
</el-form-item>
<el-form-item
label=
"签名时限"
prop=
"signatureTime"
>
<el-input
v-model=
"ruleForm.signatureTime"
style=
"width: 250px;"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
placeholder=
"请输入分钟数"
></el-input>
</el-form-item>
</div>
<!--
<div>
<div>
<div
class=
"content"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<div
class=
"set"
>
<div
class=
"flex-between"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:
{{
projectName
}}
</div>
</div>
<div
class=
"flex-between"
>
<div>
开标时间:
{{
openBidTime
}}
</div>
<div>
项目状态:
{{
projectStatus
}}
</div>
</div>
<div>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<div
class=
"flex-between"
>
<el-form-item
label=
"解密时限"
prop=
"decodeTime"
>
<el-input
v-model=
"ruleForm.decodeTime"
style=
"width: 250px"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
placeholder=
"请输入分钟数"
></el-input>
</el-form-item>
<el-form-item
label=
"签名时限"
prop=
"signatureTime"
>
<el-input
v-model=
"ruleForm.signatureTime"
style=
"width: 250px"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
placeholder=
"请输入分钟数"
></el-input>
</el-form-item>
</div>
<!--
<div>
<el-form-item
label=
"开标人"
prop=
"bidOpener"
>
<el-select
v-model=
"ruleForm.bidOpener"
placeholder=
"请选择"
style=
"width: 250px;"
>
<el-option
v-for=
"item in options"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
...
...
@@ -44,145 +54,147 @@
</el-select>
</el-form-item>
</div>
-->
</el-form>
<div
style=
"width:200px;margin:100px auto"
>
<el-button
@
click=
"cancle"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
保存
</el-button>
</div>
</el-form>
<div
style=
"width: 200px; margin: 100px auto"
>
<el-button
@
click=
"cancle"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
保存
</el-button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
bidsetting
}
from
'@api/purchaser/bid'
import
{
timeInfo
}
from
'@api/supply/bid'
import
{
opener
,
mamager
}
from
'@api/common/list'
import
dataTable
from
'@components/dataTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
changeNav
from
'@components/changeNav.vue'
import
{
bidsetting
,
projectConsole
}
from
'@api/purchaser/bid'
;
import
{
timeInfo
}
from
'@api/supply/bid'
;
import
{
opener
,
mamager
}
from
'@api/common/list'
;
import
dataTable
from
'@components/dataTable.vue'
;
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
changeNav
from
'@components/changeNav.vue'
;
export
default
{
components
:
{
dataTable
,
changeNav
,
dataBreadcrumb
},
data
()
{
return
{
projectStatus
:
""
,
options
:
[],
bidOpeners
:[],
ruleForm
:
{
decodeTime
:
''
,
signatureTime
:
''
,
pereson
:
'选项2'
,
bidOpener
:
''
,
supervisionerList
:
''
,
delegaterList
:
''
},
rules
:
{
signatureTime
:
[{
required
:
true
,
message
:
'请输入时间'
,
trigger
:
'blue'
}],
decodeTime
:
[{
required
:
true
,
message
:
'请输入时间'
,
trigger
:
'blue'
}],
bidOpener
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'change'
}]
},
navs
:
[
'开标设置'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
projectCode
:
""
,
projectName
:
""
,
openBidTime
:
""
}
},
created
()
{
this
.
projectCode
=
localStorage
.
getItem
(
"projectCode"
)
this
.
projectName
=
localStorage
.
getItem
(
"projectName"
)
this
.
projectStatus
=
localStorage
.
getItem
(
"projectStatus"
)
this
.
getopener
()
this
.
getmamager
()
this
.
gettimeInfo
()
},
methods
:
{
cancle
()
{
this
.
$router
.
go
(
-
1
)
components
:
{
dataTable
,
changeNav
,
dataBreadcrumb
},
async
gettimeInfo
()
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
}
=
await
timeInfo
(
projectId
)
this
.
openBidTime
=
data
.
openBidTime
},
// 获取公司人员列表
async
getopener
()
{
let
companyId
=
localStorage
.
getItem
(
"companyId"
)
const
{
data
,
code
}
=
await
opener
(
companyId
)
if
(
code
===
200
)
{
this
.
options
=
data
}
},
// 获取该项目下的项目经理
async
getmamager
()
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
}
=
await
mamager
(
projectId
)
if
(
code
===
200
)
{
this
.
ruleForm
.
bidOpener
=
data
}
},
//提交表单
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
()
if
(
valid
)
{
let
message
=
this
.
ruleForm
message
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
code
,
msg
}
=
await
bidsetting
(
message
)
if
(
code
===
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
}
}
data
()
{
return
{
projectStatus
:
''
,
options
:
[],
bidOpeners
:
[],
ruleForm
:
{
decodeTime
:
''
,
signatureTime
:
''
,
pereson
:
'选项2'
,
bidOpener
:
''
,
supervisionerList
:
''
,
delegaterList
:
''
},
rules
:
{
signatureTime
:
[
{
required
:
true
,
message
:
'请输入时间'
,
trigger
:
'blue'
}
],
decodeTime
:
[
{
required
:
true
,
message
:
'请输入时间'
,
trigger
:
'blue'
}
],
bidOpener
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'change'
}
]
},
navs
:
[
'开标设置'
],
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
projectCode
:
''
,
projectName
:
''
,
openBidTime
:
''
};
},
created
()
{
this
.
projectCode
=
localStorage
.
getItem
(
'projectCode'
);
this
.
projectName
=
localStorage
.
getItem
(
'projectName'
);
// this.projectStatus=localStorage.getItem("projectStatus")
this
.
getopener
();
this
.
getmamager
();
this
.
gettimeInfo
();
this
.
getStatus
();
},
methods
:
{
async
getStatus
()
{
let
message
=
{};
message
.
projectId
=
localStorage
.
getItem
(
'projectId'
);
message
.
type
=
1
;
const
{
data
,
msg
,
code
}
=
await
projectConsole
(
message
);
this
.
projectStatus
=
data
[
0
].
remark
;
},
cancle
()
{
this
.
$router
.
go
(
-
1
);
},
async
gettimeInfo
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
data
,
code
}
=
await
timeInfo
(
projectId
);
this
.
openBidTime
=
data
.
openBidTime
;
},
// 获取公司人员列表
async
getopener
()
{
let
companyId
=
localStorage
.
getItem
(
'companyId'
);
const
{
data
,
code
}
=
await
opener
(
companyId
);
if
(
code
===
200
)
{
this
.
options
=
data
;
}
},
// 获取该项目下的项目经理
async
getmamager
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
data
,
code
}
=
await
mamager
(
projectId
);
if
(
code
===
200
)
{
this
.
ruleForm
.
bidOpener
=
data
;
}
},
//提交表单
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
if
(
valid
)
{
let
message
=
this
.
ruleForm
;
message
.
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
code
,
msg
}
=
await
bidsetting
(
message
);
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
>
.set
{
width
:
50%
;
margin
:
50px
auto
;
}
.set
>
div
{
margin-bottom
:
50px
;
}
.set
{
width
:
50%
;
margin
:
50px
auto
;
}
.set
>
div
{
margin-bottom
:
50px
;
}
</
style
>
src/pages/purchaser/bid/bidStage/failList/failNotice.vue
View file @
c28e92e0
...
...
@@ -116,7 +116,7 @@ export default {
duration
:
1500
});
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
);
this
.
$router
.
push
(
"/purchaser/bid/workbench"
)
},
1500
);
}
else
{
this
.
$message
.
error
(
msg
);
...
...
src/pages/purchaser/bid/bidStage/seeBidSet.vue
View file @
c28e92e0
...
...
@@ -63,7 +63,7 @@
</div>
</
template
>
<
script
>
import
{
bidsettingInfo
}
from
'@api/purchaser/bid'
;
import
{
bidsettingInfo
,
projectConsole
}
from
'@api/purchaser/bid'
;
import
{
timeInfo
}
from
'@api/supply/bid'
;
import
{
opener
,
mamager
}
from
'@api/common/list'
;
import
dataTable
from
'@components/dataTable.vue'
;
...
...
@@ -99,13 +99,21 @@ export default {
created
()
{
this
.
projectCode
=
localStorage
.
getItem
(
'projectCode'
);
this
.
projectName
=
localStorage
.
getItem
(
'projectName'
);
this
.
projectStatus
=
localStorage
.
getItem
(
'projectStatus'
);
//
this.projectStatus = localStorage.getItem('projectStatus');
this
.
getopener
();
this
.
getmamager
();
this
.
getbidsettingInfo
();
this
.
gettimeInfo
();
this
.
getStatus
()
},
methods
:
{
async
getStatus
(){
let
message
=
{};
message
.
projectId
=
localStorage
.
getItem
(
'projectId'
);
message
.
type
=
1
;
const
{
data
,
msg
,
code
}
=
await
projectConsole
(
message
);
this
.
projectStatus
=
data
[
0
].
remark
},
cancle
()
{
this
.
$router
.
go
(
-
1
);
},
...
...
@@ -141,16 +149,16 @@ export default {
data
.
decodeTime
=
data
.
decodeTime
+
'分钟'
;
data
.
signatureTime
=
data
.
signatureTime
+
'分钟'
;
this
.
ruleForm
=
data
;
let
list
=
[];
let
list1
=
[];
for
(
let
item
of
data
.
supervisionerList
)
{
list
.
push
(
item
.
name
);
}
for
(
let
item
of
data
.
delegaterList
)
{
list1
.
push
(
item
.
name
);
}
data
.
supervisionerList
=
list
;
data
.
delegaterList
=
list1
;
//
let list = [];
//
let list1 = [];
//
for (let item of data.supervisionerList) {
//
list.push(item.name);
//
}
//
for (let item of data.delegaterList) {
//
list1.push(item.name);
//
}
//
data.supervisionerList = list;
//
data.delegaterList = list1;
}
}
}
...
...
src/pages/supply/bid/joinProject/bidOpen/bidOpenhal.vue
View file @
c28e92e0
...
...
@@ -15,7 +15,7 @@
<p>
解密倒计时:
</p>
<timeDown
:remain-time=
"decodeTime"
@
countDowmEnd=
"decodeTimeEnd"
></timeDown>
</div>
<div
class=
"flex"
v-show=
"openStatus == 2"
>
<div
class=
"flex"
v-show=
"openStatus == 2
&& isDecode
"
>
<p>
签名倒计时:
</p>
<timeDown
:remain-time=
"signatureTime"
@
countDowmEnd=
"signatureTimeEnd"
></timeDown>
</div>
...
...
@@ -413,15 +413,23 @@ export default {
}
else
{
console
.
log
(
'小于'
);
this
.
isDecode
=
true
;
let
comparyTime1
=
this
.
storagesignatureTime
-
(
localTime
-
data
.
openBidTime
)
/
1000
;
if
(
comparyTime
>
0
)
{
this
.
signatureTime
=
comparyTime1
;
console
.
log
(
'大于'
);
}
else
{
console
.
log
(
'小于'
);
this
.
isSignature
=
true
;
}
}
let
comparyTime1
=
this
.
storagesignatureTime
-
(
localTime
-
data
.
openBidTime
)
/
1000
;
if
(
comparyTime
>
0
)
{
this
.
signatureTime
=
comparyTime1
;
console
.
log
(
'大于'
);
}
else
{
console
.
log
(
'小于'
);
this
.
isSignature
=
true
;
}
//
let comparyTime1 = this.storagesignatureTime - (localTime - data.openBidTime) / 1000;
//
if (comparyTime > 0) {
//
this.signatureTime = comparyTime1;
//
console.log('大于');
//
} else {
//
console.log('小于');
//
this.isSignature = true;
//
}
}
}
catch
(
e
)
{
console
.
log
(
e
);
...
...
@@ -523,9 +531,9 @@ ul {
.explain
>
h1
{
text-align
:
center
;
}
.explain
>
div
{
.explain
>
div
{
line-height
:
30px
;
margin
:
30px
0
;
margin
:
30px
0
;
}
.buttons
{
...
...
src/pages/supply/bid/signupOnline/signupList.vue
View file @
c28e92e0
...
...
@@ -54,7 +54,7 @@ export default {
},
{
label
:
'标书结束时间'
,
prop
:
'end
Time
'
prop
:
'end'
},
{
slot
:
'opration'
...
...
src/utils/request.js
View file @
c28e92e0
...
...
@@ -6,7 +6,7 @@ import {requestUrl,homeUrl} from "./common.js"
// 创建axios实例
const
service
=
axios
.
create
({
baseURL
:
`apis`
,
baseURL
:
`
/
apis`
,
timeout
:
35000
// 请求超时时间
})
...
...
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