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
21085428
Commit
21085428
authored
Sep 28, 2020
by
张冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改问题
parent
3eea3676
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
211 additions
and
83 deletions
+211
-83
list.js
src/api/common/list.js
+8
-0
bid.js
src/api/purchaser/bid.js
+10
-1
home.js
src/api/purchaser/home.js
+10
-0
bidOpenhal.vue
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
+2
-2
message.vue
src/pages/purchaser/bid/releaseProject/message.vue
+5
-5
releaseProject.vue
src/pages/purchaser/bid/releaseProject/releaseProject.vue
+1
-1
timeSet.vue
src/pages/purchaser/bid/releaseProject/timeSet.vue
+62
-1
SeeinquiryAnnouncement.vue
src/pages/purchaser/bid/reviewed/SeeinquiryAnnouncement.vue
+0
-0
inquiryAnnouncement.vue
src/pages/purchaser/bid/reviewed/inquiryAnnouncement.vue
+40
-26
tenderAnnouncement.vue
src/pages/purchaser/bid/reviewed/tenderAnnouncement.vue
+2
-0
home.vue
src/pages/purchaser/home/home.vue
+65
-41
bidOpenhal.vue
src/pages/supply/bid/joinProject/bidOpen/bidOpenhal.vue
+2
-2
request.js
src/utils/request.js
+4
-4
No files found.
src/api/common/list.js
View file @
21085428
...
...
@@ -112,3 +112,11 @@ export function commoditylist(projectId) {
method
:
'get'
})
}
// 获取招标文件截止时间
export
function
inqueryinfo
(
projectId
)
{
return
request
({
url
:
`tender-project/inquery/info/
${
projectId
}
`
,
method
:
'get'
})
}
src/api/purchaser/bid.js
View file @
21085428
import
request
from
'@/utils/request'
// 采购商
// 2.1.1
// 创建招标项目
...
...
@@ -21,6 +23,13 @@ export function createEnquiry(data) {
data
:
data
})
}
// 查看询价公告(通过项目id)
export
function
enquiryProjectId
(
projectId
)
{
return
request
({
url
:
`/notice/enquiry?projectId=
${
projectId
}
`
,
method
:
'get'
})
}
// 发送招标公告
export
function
bidMessage
(
data
)
{
...
...
@@ -30,7 +39,7 @@ export function bidMessage(data) {
data
:
data
})
}
// 查看招标公告(通过项目id)
// 发送邀请公告
export
function
inviteMessage
(
data
)
{
return
request
({
...
...
src/api/purchaser/home.js
0 → 100644
View file @
21085428
import
request
from
'@/utils/request'
export
function
home
()
{
return
request
({
url
:
"tender-project/index"
,
method
:
'get'
,
})
}
\ No newline at end of file
src/pages/purchaser/bid/bidOpen/bidOpenhal.vue
View file @
21085428
...
...
@@ -501,8 +501,8 @@
createWebSocket
()
{
let
token
=
localStorage
.
getItem
(
"token"
)
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
//
this.websocket = new WebSocket('ws://192.168.3.35:8085/webSocket/' + projectId +"/"+token )
this
.
websocket
=
new
WebSocket
(
'ws://192.168.200.201:8082/webSocket/'
+
projectId
+
"/"
+
token
)
this
.
websocket
=
new
WebSocket
(
'ws://192.168.3.35:8085/webSocket/'
+
projectId
+
"/"
+
token
)
//
this.websocket = new WebSocket('ws://192.168.200.201:8082/webSocket/' + projectId +"/"+token )
// 连接成功时
this
.
websocket
.
onopen
=
()
=>
{}
this
.
websocket
.
onmessage
=
event
=>
{
...
...
src/pages/purchaser/bid/releaseProject/message.vue
View file @
21085428
...
...
@@ -39,8 +39,8 @@
</el-form-item>
</div>
<div>
<el-form-item
label=
"项目经理:"
prop=
"
m
anager"
>
<el-select
v-model=
"ruleForm.
m
anager"
placeholder=
"请选择"
>
<el-form-item
label=
"项目经理:"
prop=
"
projectM
anager"
>
<el-select
v-model=
"ruleForm.
projectM
anager"
placeholder=
"请选择"
>
<el-option
v-for=
"item in managers"
:key=
"item.id"
:label=
"item.userName"
:value=
"item.id"
>
</el-option>
</el-select>
...
...
@@ -354,7 +354,7 @@ export default {
}],
phone
:
[{
required
:
true
,
validator
:
checkPhone
,
validator
:
checkPhone
,
trigger
:
'blur'
}],
money
:
[{
...
...
@@ -402,7 +402,7 @@ validator: checkPhone,
validator
:
isMin
,
trigger
:
'blur'
}],
m
anager
:
[{
projectM
anager
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'change'
...
...
@@ -433,7 +433,7 @@ validator: checkPhone,
phone
:
''
},
ruleForm
:
{
m
anager
:
""
,
projectM
anager
:
""
,
projectName
:
''
,
projectCode
:
''
,
classify
:
''
,
...
...
src/pages/purchaser/bid/releaseProject/releaseProject.vue
View file @
21085428
...
...
@@ -56,7 +56,7 @@ export default {
},
data
()
{
return
{
activeIdx
:
0
,
activeIdx
:
2
,
allForm
:
{}
}
},
...
...
src/pages/purchaser/bid/releaseProject/timeSet.vue
View file @
21085428
...
...
@@ -4,7 +4,7 @@
<div
class=
"form"
>
<!--
<dataForm
:search-form=
"searchForm"
:search-data=
"searchData"
:is-handle=
"false"
label-width=
"250px"
></dataForm>
-->
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"250px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"招标公告正式发布时
:"
prop=
"releaseTime"
>
<el-form-item
label=
"招标公告正式发布时
间:"
prop=
"releaseTime"
>
<el-date-picker
v-model=
"ruleForm.releaseTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"releaseTime"
>
</el-date-picker>
</el-form-item>
...
...
@@ -42,6 +42,52 @@ export default {
dataForm
},
data
()
{
let
checkTime
=
(
rule
,
value
,
callback
)
=>
{
let
nowTime
=
new
Date
().
getTime
()
if
(
nowTime
<
value
)
{
callback
();
}
else
{
return
callback
(
new
Error
(
'请选择大于当前的时间'
));
}
};
let
checkTime1
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
ruleForm
.
releaseTime
){
return
callback
(
new
Error
(
'请先选择招标公告正式发布时间'
));
}
else
{
if
(
value
>
this
.
ruleForm
.
releaseTime
){
callback
();
}
else
{
return
callback
(
new
Error
(
'请选择大于招标公告正式发布时间'
));
}
}
};
let
checkTime2
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
ruleForm
.
startTime
){
return
callback
(
new
Error
(
'请先选择标书获取开始时间'
));
}
else
{
if
(
value
>
this
.
ruleForm
.
startTime
){
callback
();
}
else
{
return
callback
(
new
Error
(
'请选择大于标书获取开始时间'
));
}
}
};
let
checkTime3
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
ruleForm
.
endTime
){
return
callback
(
new
Error
(
'请先选择标书获取结束时间'
));
}
else
{
if
(
value
>
this
.
ruleForm
.
endTime
){
callback
();
}
else
{
return
callback
(
new
Error
(
'请选择大于标书获取结束时间'
));
}
}
};
let
checkTime4
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
ruleForm
.
answerQuestionEndTime
){
return
callback
(
new
Error
(
'请先选择投标人澄清答疑截止时间'
));
}
else
{
if
(
value
>
this
.
ruleForm
.
answerQuestionEndTime
){
callback
();
}
else
{
return
callback
(
new
Error
(
'请选择投标人澄清答疑截止时间'
));
}
}
};
return
{
ruleForm
:
{
releaseTime
:
''
,
...
...
@@ -56,30 +102,45 @@ export default {
required
:
true
,
message
:
'请选择时间'
,
trigger
:
'blur'
},
{
validator
:
checkTime
,
}],
startTime
:
[{
type
:
'date'
,
required
:
true
,
message
:
'请选择时间'
,
trigger
:
'blur'
},
{
validator
:
checkTime1
,
}],
endTime
:
[{
type
:
'date'
,
required
:
true
,
message
:
'请选择时间'
,
trigger
:
'blur'
},
{
validator
:
checkTime2
,
}],
answerQuestionEndTime
:
[{
type
:
'date'
,
required
:
true
,
message
:
'请选择时间'
,
trigger
:
'blur'
},
{
validator
:
checkTime3
,
}],
openBidStartTime
:
[{
type
:
'date'
,
required
:
true
,
message
:
'请选择时间'
,
trigger
:
'blur'
},
{
validator
:
checkTime4
,
}]
}
}
...
...
src/pages/purchaser/bid/reviewed/SeeinquiryAnnouncement.vue
View file @
21085428
This diff is collapsed.
Click to expand it.
src/pages/purchaser/bid/reviewed/inquiryAnnouncement.vue
View file @
21085428
...
...
@@ -21,27 +21,27 @@
<el-form-item
label=
"询价所在地"
prop=
"address"
>
<citySelect
@
sendprovinceId=
"getprovinceId"
@
sendcityId=
"getcityId"
@
senddistrictId=
"getdistrictId"
></citySelect>
</el-form-item>
<div
class=
"flex-between"
style=
"width:60%"
>
<el-form-item
label=
"询价单编号"
prop=
"inquiryCode"
>
<el-input
v-model
.
trim=
"ruleForm.inquiryCode"
placeholder=
"请输入"
maxlength=
"30"
style=
"width: 250px;"
></el-input>
</el-form-item>
<el-form-item
label=
"采购目录"
prop=
"catalog"
>
<el-input
v-model
.
trim=
"ruleForm.catalog"
placeholder=
"请输入"
maxlength=
"30"
style=
"width: 250px;"
></el-input>
</el-form-item>
<el-form-item
label=
"项目优先级"
prop=
"priority"
>
<el-radio-group
v-model=
"ruleForm.priority
"
>
<el-radio-group
v-model=
"ruleForm.priority"
class=
"flex
"
>
<el-radio
:label=
"0"
>
普通
</el-radio>
<el-radio
:label=
"1"
>
紧急
</el-radio>
</el-radio-group>
</el-form-item>
<div
class=
"flex-between"
style=
"width:60%"
>
<el-form-item
label=
"询价单编号"
prop=
"inquiryCode"
>
<el-input
v-model
.
trim=
"ruleForm.inquiryCode"
placeholder=
"请输入"
maxlength=
"30"
style=
"width: 250px;"
></el-input>
</el-form-item>
<el-form-item
label=
"采购目录"
prop=
"purchaseCategory"
>
<el-input
v-model
.
trim=
"ruleForm.purchaseCategory"
placeholder=
"请输入"
maxlength=
"30"
style=
"width: 250px;"
></el-input>
</el-form-item>
</div>
<div
class=
"flex-between"
style=
"width:60%"
>
<el-form-item
label=
"报价开始时间"
prop=
"sta
te
Time"
>
<el-date-picker
v-model=
"ruleForm.sta
teTime"
type=
"datetime"
placeholder=
"选择日期时间"
disabled
>
<el-form-item
label=
"报价开始时间"
prop=
"sta
rt
Time"
>
<el-date-picker
v-model=
"ruleForm.sta
rtTime"
type=
"datetime"
placeholder=
"选择日期时间"
disabled
style=
"width: 250px;"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"报价结束时间"
prop=
"endTime"
>
<el-date-picker
v-model=
"ruleForm.endTime"
type=
"datetime"
placeholder=
"选择日期时间"
disabled
>
<el-date-picker
v-model=
"ruleForm.endTime"
type=
"datetime"
placeholder=
"选择日期时间"
disabled
style=
"width: 250px;"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"采购单位"
prop=
"purchaseAgent"
>
...
...
@@ -128,7 +128,7 @@ import {
getTime
}
from
'@utils/time'
import
{
commoditylist
commoditylist
,
inqueryinfo
}
from
'@api/common/list'
export
default
{
...
...
@@ -194,7 +194,7 @@ export default {
districtId
:
''
,
inquiryCode
:
''
,
priority
:
''
,
sta
te
Time
:
''
,
sta
rt
Time
:
''
,
endTime
:
''
,
purchaseAgent
:
'1'
,
contact
:
'1'
,
...
...
@@ -204,7 +204,9 @@ export default {
supplierScale
:
''
,
supplierQualification
:
''
,
supplierRegion
:
''
,
commercialRequirements
:
''
commercialRequirements
:
''
,
accessoryPOList
:[],
purchaseCategory
:
""
},
rules
:
{
...
...
@@ -233,7 +235,7 @@ export default {
message
:
'请输入请输入'
,
trigger
:
'blur'
}],
sta
te
Time
:
[{
sta
rt
Time
:
[{
required
:
true
,
message
:
'请输入'
,
trigger
:
'change'
...
...
@@ -278,24 +280,27 @@ export default {
},
created
()
{
let
userInfo
=
JSON
.
parse
(
localStorage
.
getItem
(
"userInfo"
))
console
.
log
(
userInfo
)
this
.
ruleForm
.
purchaseAgent
=
userInfo
.
companyName
this
.
ruleForm
.
contact
=
userInfo
.
name
this
.
ruleForm
.
contactPhone
=
userInfo
.
phone
let
data
=
getTime
();
console
.
log
(
data
);
this
.
ruleForm
.
stateTime
=
data
;
this
.
ruleForm
.
endTime
=
data
;
this
.
ruleForm
.
endTime
=
data
;
this
.
ruleForm
.
startTime
=
data
;
this
.
projectCode
=
localStorage
.
getItem
(
"projectCode"
)
this
.
projectName
=
localStorage
.
getItem
(
"projectName"
)
this
.
getcommoditylist
()
this
.
getinqueryinfo
()
},
methods
:
{
// 获取上传文件
getfile
(
val
)
{
this
.
ruleForm
.
requirementUrl
=
val
},
getfile
(
val
)
{
for
(
let
item
of
val
)
{
item
.
accessoryUrl
=
item
.
fileUrl
}
this
.
ruleForm
.
accessoryPOList
=
val
},
// 获取市ID
getprovinceId
(
val
)
{
...
...
@@ -322,8 +327,8 @@ export default {
ruleForm
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
code
,
data
}
=
await
createEnquiry
(
this
.
ruleForm
)
msg
}
=
await
createEnquiry
(
ruleForm
)
if
(
code
==
200
)
{
this
.
$message
({
message
:
msg
,
...
...
@@ -333,9 +338,9 @@ export default {
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
else
if
(
code
==
500
){
this
.
$message
.
error
(
msg
)
}
}
else
{
}
}
catch
(
err
)
{
console
.
log
(
err
)
...
...
@@ -349,7 +354,16 @@ export default {
code
}
=
await
commoditylist
(
projectId
)
this
.
tableData
=
data
}
},
// 获取招标截止时间
async
getinqueryinfo
()
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
}
=
await
inqueryinfo
(
projectId
)
this
.
ruleForm
.
endTime
=
data
.
endTime
;
},
}
}
...
...
src/pages/purchaser/bid/reviewed/tenderAnnouncement.vue
View file @
21085428
...
...
@@ -108,6 +108,8 @@ export default {
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
else
if
(
code
==
500
){
this
.
$message
.
error
(
msg
)
}
}
}
catch
(
err
)
{
...
...
src/pages/purchaser/home/home.vue
View file @
21085428
...
...
@@ -3,10 +3,30 @@
<div
class=
"user"
>
<div>
你好 ,MaikoXie , 欢迎开始一天的工作!
</div>
<ul
class=
"user-list flex-between"
>
<li
v-for=
"item in imglist"
:key=
"item.id"
>
<img
:src=
"item.img"
alt=
""
>
<div>
{{
item
.
user
}}
</div>
<div>
{{
item
.
number
}}
</div>
<li
class=
"flex-colunm "
>
<img
src=
"@static/images/user.png"
alt=
""
>
<div>
全部项目
</div>
<div>
{{
detail
.
projectCount
}}
</div>
</li>
<li
class=
"flex-colunm "
>
<img
src=
"@static/images/user.png"
alt=
""
>
<div>
我的供应商
</div>
<div>
{{
detail
.
bidderCount
}}
</div>
</li>
<li
class=
"flex-colunm "
>
<img
src=
"@static/images/user.png"
alt=
""
>
<div>
已定标项目
</div>
<div>
{{
detail
.
calibrated
}}
</div>
</li>
<li
class=
"flex-colunm "
>
<img
src=
"@static/images/user.png"
alt=
""
>
<div>
已流标项目
</div>
<div>
{{
detail
.
bidFailed
}}
</div>
</li>
<li
class=
"flex-colunm "
>
<img
src=
"@static/images/user.png"
alt=
""
>
<div>
已终止项目
</div>
<div>
{{
detail
.
end
}}
</div>
</li>
</ul>
<h1>
项目信息
</h1>
...
...
@@ -19,10 +39,30 @@
</dataTable>
<h1>
待办事项
</h1>
<ul
class=
"flex-between project-list"
>
<li
v-for=
"item in projectlist"
:key=
"item.id"
>
<img
:src=
"item.img"
alt=
""
>
<div>
{{ item. project }}
</div>
<div>
{{ item.number }}
</div>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<div>
待修改项目
</div>
<div>
{{ detail.projectCount }}
</div>
</li>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<div>
待修改询价公告
</div>
<div>
{{ detail.inquiryNoticeNeedModify }}
</div>
</li>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<div>
待修改招标公告
</div>
<div>
{{ detail.biddingNoticeNeedModify }}
</div>
</li>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<div>
待签署应收账款买断合同
</div>
<div>
{{ detail.payment }}
</div>
</li>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<div>
待确认供应商凭证
</div>
<div>
{{ detail.credentials }}
</div>
</li>
</ul>
</div>
...
...
@@ -30,7 +70,7 @@
</template>
<
script
>
import
{
home
}
from
'@api/purchaser/home'
import
{
getSearchString
}
from
'@utils/common'
import
dataTable
from
'@components/nopageTable.vue'
export
default
{
...
...
@@ -39,6 +79,7 @@ export default {
},
data
()
{
return
{
detail
:
""
,
tableData
:
[{
state
:
'审核通过待发布的项目'
,
number
:
'10'
,
...
...
@@ -99,48 +140,31 @@ export default {
number
:
'100'
}
],
imglist
:
[{
id
:
0
,
img
:
require
(
'@static/images/user.png'
),
user
:
'供应商'
,
number
:
'100'
},
{
id
:
1
,
img
:
require
(
'@static/images/user.png'
),
user
:
'采购商'
,
number
:
'100'
},
{
id
:
2
,
img
:
require
(
'@static/images/user.png'
),
user
:
'全部项目'
,
number
:
'100'
},
{
id
:
3
,
img
:
require
(
'@static/images/user.png'
),
user
:
'正在进行的项目'
,
number
:
'100'
},
{
id
:
4
,
img
:
require
(
'@static/images/user.png'
),
user
:
'参与投标总次数'
,
number
:
'100'
}
]
}
},
created
(){
let
token
=
getSearchString
(
"token"
);
console
.
log
(
token
)
localStorage
.
setItem
(
"token"
,
token
)
this
.
gethome
()
},
methods
:
{
handleSee
(
row
)
{
this
.
$router
.
push
(
row
.
url
)
},
async
gethome
()
{
const
{
data
,
code
}
=
await
home
()
this
.
detail
=
data
this
.
tableData
[
0
].
number
=
data
.
prePublic
this
.
tableData
[
1
].
number
=
data
.
sellingBidding
this
.
tableData
[
2
].
number
=
data
.
bidding
this
.
tableData
[
3
].
number
=
data
.
open
this
.
tableData
[
4
].
number
=
data
.
bidOpening
this
.
tableData
[
5
].
number
=
data
.
bidOevaluating
}
}
}
</
script
>
...
...
src/pages/supply/bid/joinProject/bidOpen/bidOpenhal.vue
View file @
21085428
...
...
@@ -218,8 +218,8 @@
createWebSocket
()
{
let
token
=
localStorage
.
getItem
(
"token"
)
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
//
this.websocket = new WebSocket('ws://192.168.3.35:8085/webSocket/' + projectId +"/"+token )
this
.
websocket
=
new
WebSocket
(
'ws://192.168.200.201:8082/webSocket/'
+
projectId
+
"/"
+
token
)
this
.
websocket
=
new
WebSocket
(
'ws://192.168.3.35:8085/webSocket/'
+
projectId
+
"/"
+
token
)
//
this.websocket = new WebSocket('ws://192.168.200.201:8082/webSocket/' + projectId +"/"+token )
// 连接成功时
this
.
websocket
.
onopen
=
()
=>
{}
this
.
websocket
.
onmessage
=
event
=>
{
...
...
src/utils/request.js
View file @
21085428
...
...
@@ -5,8 +5,8 @@ import { Message, MessageBox } from 'element-ui'
// 创建axios实例
const
service
=
axios
.
create
({
baseURL
:
'http://192.168.200.201:8082/apis'
,
//
baseURL: 'http://192.168.3.35:8085/apis',
//
baseURL: 'http://192.168.200.201:8082/apis',
baseURL
:
'http://192.168.3.35:8085/apis'
,
timeout
:
35000
// 请求超时时间
})
...
...
@@ -42,8 +42,8 @@ service.interceptors.response.use(
Message
.
error
(
"登陆失效,请重新登录!"
)
localStorage
.
removeItem
(
'token'
);
setTimeout
(
function
()
{
location
.
href
=
'http://192.168.200.201:8081/login/user/'
;
//
location.href = 'http://localhost:3000/login/user/';
//
location.href = 'http://192.168.200.201:8081/login/user/';
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