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
17a88754
Commit
17a88754
authored
Oct 26, 2020
by
张冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
861ae640
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1336 additions
and
247 deletions
+1336
-247
bid.js
src/api/purchaser/bid.js
+11
-0
home.js
src/api/supply/home.js
+10
-0
demand.vue
src/pages/purchaser/bid/editProject/demand.vue
+0
-0
editProject.vue
src/pages/purchaser/bid/editProject/editProject.vue
+109
-0
fileUpload.vue
src/pages/purchaser/bid/editProject/fileUpload.vue
+94
-0
message.vue
src/pages/purchaser/bid/editProject/message.vue
+0
-0
timeSet.vue
src/pages/purchaser/bid/editProject/timeSet.vue
+218
-0
demand.vue
src/pages/purchaser/bid/releaseProject/demand.vue
+0
-0
fileUpload.vue
src/pages/purchaser/bid/releaseProject/fileUpload.vue
+40
-50
timeSet.vue
src/pages/purchaser/bid/releaseProject/timeSet.vue
+75
-50
demand.vue
src/pages/purchaser/bid/seeProject/demand.vue
+292
-0
fileUpload.vue
src/pages/purchaser/bid/seeProject/fileUpload.vue
+94
-0
message.vue
src/pages/purchaser/bid/seeProject/message.vue
+0
-0
seeProject.vue
src/pages/purchaser/bid/seeProject/seeProject.vue
+105
-0
timeSet.vue
src/pages/purchaser/bid/seeProject/timeSet.vue
+147
-0
home.vue
src/pages/purchaser/home/home.vue
+69
-86
home.vue
src/pages/supply/home/home.vue
+62
-61
index.js
src/router/index.js
+10
-0
No files found.
src/api/purchaser/bid.js
View file @
17a88754
...
@@ -14,6 +14,17 @@ export function creatProject(data) {
...
@@ -14,6 +14,17 @@ export function creatProject(data) {
})
})
}
}
// 编辑招标项目
export
function
editProject
(
data
)
{
return
request
({
url
:
'/tender-project/edit'
,
method
:
'POST'
,
data
:
data
})
}
// 2.1.2
// 2.1.2
// 发送询价公告
// 发送询价公告
export
function
createEnquiry
(
data
)
{
export
function
createEnquiry
(
data
)
{
...
...
src/api/supply/home.js
0 → 100644
View file @
17a88754
import
request
from
'@/utils/request'
// 首页
export
function
home
()
{
return
request
({
url
:
"bidder-index/detail"
,
method
:
'get'
,
})
}
\ No newline at end of file
src/pages/purchaser/bid/editProject/demand.vue
0 → 100644
View file @
17a88754
This diff is collapsed.
Click to expand it.
src/pages/purchaser/bid/editProject/editProject.vue
0 → 100644
View file @
17a88754
<
template
>
<div>
<div
class=
"content-head"
>
<el-breadcrumb
separator=
"/"
>
<el-breadcrumb-item>
招标管理
</el-breadcrumb-item>
<el-breadcrumb-item>
招标项目管理
</el-breadcrumb-item>
<el-breadcrumb-item>
发布项目
</el-breadcrumb-item>
</el-breadcrumb>
<h3>
编辑项目
</h3>
<h5>
编辑招标项目
</h5>
</div>
<div
class=
"othercontent"
>
<!-- 项目信息 -->
<div
class=
"message1"
>
<messaage
ref=
"message"
:ruleForm=
"detail"
></messaage>
</div>
<!-- 标的需求 -->
<div
class=
"demand"
>
<demand
ref=
"demand"
:ruleForm=
"detail"
></demand>
</div>
<!-- 招标时间设置 -->
<div
class=
"timeSet"
>
<timeSet
ref=
"timeSet"
:ruleForm=
"detail"
></timeSet>
</div>
<!-- 招标文件上传 -->
<div
class=
"fileUpload"
>
<fileUpload
ref=
"fileUpload"
:detail=
"detail"
></fileUpload>
</div>
</div>
<div
class=
"centerButton"
>
<el-button
@
click=
"edit"
>
编辑
</el-button>
</div>
</div>
</
template
>
<
script
>
import
{
getTime1
}
from
'@utils/time'
;
import
{
projectdetail
}
from
'@api/supply/bid'
;
import
messaage
from
'./message.vue'
;
import
demand
from
'./demand.vue'
;
import
timeSet
from
'./timeSet.vue'
;
import
fileUpload
from
'./fileUpload.vue'
;
export
default
{
components
:
{
messaage
,
demand
,
timeSet
,
fileUpload
},
data
()
{
return
{
activeIdx
:
0
,
allForm
:
{},
detail
:
{
projectName
:
'项目1'
}
};
},
created
()
{
this
.
getenquiryProjectId
();
},
methods
:
{
async
edit
()
{
await
this
.
$refs
.
message
.
next
();
await
this
.
$refs
.
timeSet
.
next
();
await
this
.
$refs
.
fileUpload
.
next
();
console
.
log
(
'通过'
);
console
.
log
(
this
.
detail
);
},
// 获取详情
async
getenquiryProjectId
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
data
,
code
}
=
await
projectdetail
(
projectId
);
if
(
code
==
200
)
{
data
.
endTime
=
getTime1
(
data
.
endTime
);
data
.
startTime
=
getTime1
(
data
.
startTime
);
data
.
createTime
=
data
.
createTime
.
substring
(
0
,
10
);
data
.
bidBookInfoPO
=
data
.
bidBookInfoDO
;
data
.
earnestInfoPO
=
data
.
earnestInfoDO
;
this
.
detail
=
data
;
}
}
}
};
</
script
>
<
style
scoped
>
.steps
{
width
:
800px
;
margin
:
0
auto
;
padding
:
30px
0
;
}
.othercontent
>
div
{
background
:
#fff
;
margin-bottom
:
30px
;
}
.bid
{
margin-top
:
-20px
;
}
.button
{
display
:
flex
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
margin-right
:
20px
;
}
</
style
>
src/pages/purchaser/bid/editProject/fileUpload.vue
0 → 100644
View file @
17a88754
<
template
>
<div>
<div
class=
"describe"
>
上传招标文件
</div>
<div
class=
"padding"
>
<div
class=
"details"
>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"上传附件"
prop=
"file"
>
<upload
:limit=
"1"
accept=
".pdf"
tip=
"请上传一个招标文件(pdf),不要超过50M。"
:max=
"50"
@
input=
"getfile"
></upload>
</el-form-item>
<el-form-item
label=
"其他附件"
>
<upload
:limit=
"5"
tip=
"最多上传五个附件,单个不超过100M。"
:type=
"1"
:max=
"100"
@
input=
"getfile1"
>
</upload>
</el-form-item>
</el-form>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
creatProject
}
from
'@api/purchaser/bid'
;
import
upload
from
'@components/Upload/specialUpload.vue'
;
export
default
{
components
:
{
upload
},
props
:
{
allForm
:
{
type
:
Object
,
default
()
{
return
{};
}
}
},
data
()
{
let
checkidentity
=
(
rule
,
value
,
callback
)
=>
{
let
le
;
if
(
this
.
ruleForm
.
bidBookPO
.
length
===
0
)
{
callback
(
new
Error
(
'请上传附件'
));
}
else
{
callback
();
}
};
return
{
ruleForm
:
{
bidBookPO
:
[],
bidBookAccessoryPOList
:
[]
},
fileList
:
[],
rules
:
{
file
:
[
{
required
:
true
,
validator
:
checkidentity
,
trigger
:
'change'
}
]
}
};
},
methods
:
{
getfile
(
val
)
{
this
.
ruleForm
.
bidBookPO
=
val
;
},
getfile1
(
val
)
{
this
.
ruleForm
.
bidBookAccessoryPOList
=
val
;
},
async
next
()
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
}
}
};
</
script
>
<
style
scoped
>
.padding
{
padding
:
0px
20px
30px
20px
;
}
.details
>
div
{
margin-bottom
:
20px
;
}
.correct
{
margin-right
:
20px
;
margin-top
:
5px
;
}
.button
{
display
:
flex
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
margin-right
:
20px
;
}
</
style
>
src/pages/purchaser/bid/editProject/message.vue
0 → 100644
View file @
17a88754
This diff is collapsed.
Click to expand it.
src/pages/purchaser/bid/editProject/timeSet.vue
0 → 100644
View file @
17a88754
<
template
>
<div>
<div
class=
"describe"
>
招标时间设置
</div>
<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-date-picker
v-model=
"ruleForm.releaseTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"releaseTime"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"标书获取开始时间:"
prop=
"startTime"
>
<el-date-picker
v-model=
"ruleForm.startTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"startTime"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"标书获取结束时间:"
prop=
"endTime"
>
<el-date-picker
v-model=
"ruleForm.endTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"endTime"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"投标人澄清答疑截止时间:"
prop=
"answerQuestionEndTime"
>
<el-date-picker
v-model=
"ruleForm.answerQuestionEndTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"answerQuestionEndTime"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"投标文件递交截止时间及开标时间:"
prop=
"openBidStartTime"
>
<el-date-picker
v-model=
"ruleForm.openBidStartTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"openBidStartTime"
>
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div>
</
template
>
<
script
>
import
dataForm
from
'@components/dataForm.vue'
;
export
default
{
name
:
'bidingList'
,
components
:
{
dataForm
},
props
:
{
ruleForm
:
{
type
:
Object
,
default
()
{
return
{};
}
}
},
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
:
''
,
startTime
:
''
,
endTime
:
''
,
answerQuestionEndTime
:
''
,
openBidStartTime
:
''
},
rules
:
{
releaseTime
:
[
{
type
:
'date'
,
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
}
]
}
};
},
methods
:
{
releaseTime
(
val
)
{
this
.
ruleForm
.
releaseTime
=
new
Date
(
val
).
getTime
();
},
startTime
(
val
)
{
this
.
ruleForm
.
startTime
=
new
Date
(
val
).
getTime
();
},
endTime
(
val
)
{
this
.
ruleForm
.
endTime
=
new
Date
(
val
).
getTime
();
},
answerQuestionEndTime
(
val
)
{
this
.
ruleForm
.
answerQuestionEndTime
=
new
Date
(
val
).
getTime
();
},
openBidStartTime
(
val
)
{
this
.
ruleForm
.
openBidStartTime
=
new
Date
(
val
).
getTime
();
},
async
next
()
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
},
upper
()
{
this
.
$parent
.
upper
();
}
}
};
</
script
>
<
style
scoped
>
.form
{
width
:
50%
;
margin
:
0
auto
;
box-sizing
:
border-box
;
padding-bottom
:
30px
;
}
.button
{
display
:
flex
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
margin-right
:
20px
;
}
</
style
>
src/pages/purchaser/bid/releaseProject/demand.vue
View file @
17a88754
This diff is collapsed.
Click to expand it.
src/pages/purchaser/bid/releaseProject/fileUpload.vue
View file @
17a88754
...
@@ -3,7 +3,6 @@
...
@@ -3,7 +3,6 @@
<div
class=
"describe"
>
上传招标文件
</div>
<div
class=
"describe"
>
上传招标文件
</div>
<div
class=
"padding"
>
<div
class=
"padding"
>
<div
class=
"details"
>
<div
class=
"details"
>
<!--
<div
class=
"flex"
>
<!--
<div
class=
"flex"
>
<div
class=
"correct"
>
*文件名称
</div>
<div
class=
"correct"
>
*文件名称
</div>
<el-input
v-model=
"bidBookPO"
style=
"width: 50%;"
placeholder=
"请输入"
clearable
>
<el-input
v-model=
"bidBookPO"
style=
"width: 50%;"
placeholder=
"请输入"
clearable
>
...
@@ -13,9 +12,8 @@
...
@@ -13,9 +12,8 @@
<el-form-item
label=
"上传附件"
prop=
"file"
>
<el-form-item
label=
"上传附件"
prop=
"file"
>
<upload
:limit=
"1"
accept=
".pdf"
tip=
"请上传一个招标文件(pdf),不要超过50M。"
:max=
"50"
@
input=
"getfile"
></upload>
<upload
:limit=
"1"
accept=
".pdf"
tip=
"请上传一个招标文件(pdf),不要超过50M。"
:max=
"50"
@
input=
"getfile"
></upload>
</el-form-item>
</el-form-item>
<el-form-item
label=
"其他附件"
>
<el-form-item
label=
"其他附件"
>
<upload
:limit=
"5"
tip=
"最多上传五个附件,单个不超过100M。"
:type=
"1"
:max=
"100"
@
input=
"getfile1"
>
<upload
:limit=
"5"
tip=
"最多上传五个附件,单个不超过100M。"
:type=
"1"
:max=
"100"
@
input=
"getfile1"
>
</upload>
</upload>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<!--
<div>
<!--
<div>
...
@@ -26,21 +24,18 @@
...
@@ -26,21 +24,18 @@
<div>
*其他附件
</div>
<div>
*其他附件
</div>
<upload
:file-list=
"fileList"
:limit=
"5"
tip=
"最多上传五个附件,单个不超过100M。"
max=
"100"
@
input=
"getfile1"
></upload>
<upload
:file-list=
"fileList"
:limit=
"5"
tip=
"最多上传五个附件,单个不超过100M。"
max=
"100"
@
input=
"getfile1"
></upload>
</div>
-->
</div>
-->
</div>
</div>
<div
class=
"button"
>
<div
class=
"button"
>
<el-button
@
click=
"upper"
>
上一步
</el-button>
<el-button
@
click=
"upper"
>
上一步
</el-button>
<el-button
type=
"primary"
@
click=
"next"
>
发布
</el-button>
<el-button
type=
"primary"
@
click=
"next"
>
发布
</el-button>
</div>
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
import
{
creatProject
}
from
'@api/purchaser/bid'
;
creatProject
}
from
'@api/purchaser/bid'
import
upload
from
'@components/Upload/specialUpload.vue'
import
upload
from
'@components/Upload/specialUpload.vue'
;
export
default
{
export
default
{
components
:
{
components
:
{
upload
upload
...
@@ -49,19 +44,19 @@ export default {
...
@@ -49,19 +44,19 @@ export default {
allForm
:
{
allForm
:
{
type
:
Object
,
type
:
Object
,
default
()
{
default
()
{
return
{}
return
{};
}
}
}
}
},
},
data
()
{
data
()
{
let
checkidentity
=
(
rule
,
value
,
callback
)
=>
{
let
checkidentity
=
(
rule
,
value
,
callback
)
=>
{
let
le
let
le
;
if
(
this
.
ruleForm
.
bidBookPO
.
length
===
0
)
{
if
(
this
.
ruleForm
.
bidBookPO
.
length
===
0
)
{
callback
(
new
Error
(
'请上传附件'
))
callback
(
new
Error
(
'请上传附件'
));
}
else
{
}
else
{
callback
()
callback
();
}
}
}
};
return
{
return
{
ruleForm
:
{
ruleForm
:
{
bidBookPO
:
[],
bidBookPO
:
[],
...
@@ -69,79 +64,74 @@ export default {
...
@@ -69,79 +64,74 @@ export default {
},
},
fileList
:
[],
fileList
:
[],
rules
:
{
rules
:
{
file
:
[{
file
:
[
{
required
:
true
,
required
:
true
,
validator
:
checkidentity
,
validator
:
checkidentity
,
trigger
:
'change'
trigger
:
'change'
}],
}
}
]
}
}
};
},
},
methods
:
{
methods
:
{
getfile
(
val
)
{
getfile
(
val
)
{
this
.
ruleForm
.
bidBookPO
=
val
this
.
ruleForm
.
bidBookPO
=
val
;
},
},
getfile1
(
val
)
{
getfile1
(
val
)
{
this
.
ruleForm
.
bidBookAccessoryPOList
=
val
this
.
ruleForm
.
bidBookAccessoryPOList
=
val
;
},
},
async
next
()
{
async
next
()
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
()
console
.
log
(
valid
);
console
.
log
(
valid
)
if
(
valid
)
{
if
(
valid
)
{
Object
.
assign
(
this
.
allForm
,
this
.
ruleForm
)
Object
.
assign
(
this
.
allForm
,
this
.
ruleForm
);
let
allForm
=
this
.
allForm
;
let
allForm
=
this
.
allForm
;
allForm
.
companyId
=
localStorage
.
getItem
(
"companyId"
)
allForm
.
companyId
=
localStorage
.
getItem
(
'companyId'
);
const
{
const
{
msg
,
code
}
=
await
creatProject
(
this
.
allForm
);
msg
,
code
}
=
await
creatProject
(
this
.
allForm
)
if
(
code
===
200
)
{
if
(
code
===
200
)
{
this
.
$message
({
this
.
$message
({
message
:
msg
,
message
:
msg
,
type
:
'success'
,
type
:
'success'
,
duration
:
1500
duration
:
1500
})
});
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
$router
.
push
(
"/purchaser/bid/administrationList"
)
this
.
$router
.
push
(
'/purchaser/bid/administrationList'
);
},
1500
)
},
1500
);
}
else
{
}
else
{
this
.
$message
.
error
(
msg
)
this
.
$message
.
error
(
msg
);
}
}
}
}
},
},
upper
()
{
upper
()
{
this
.
$parent
.
upper
()
this
.
$parent
.
upper
();
}
}
// changeType(val) {
// changeType(val) {
// }
// }
}
}
};
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.padding
{
.padding
{
padding
:
0px
20px
30px
20px
padding
:
0px
20px
30px
20px
;
}
}
.details
>
div
{
.details
>
div
{
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.correct
{
.correct
{
margin-right
:
20px
;
margin-right
:
20px
;
margin-top
:
5px
;
margin-top
:
5px
;
}
}
.button
{
.button
{
display
:
flex
;
display
:
flex
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
padding-bottom
:
20px
;
margin-right
:
20px
;
margin-right
:
20px
;
}
}
</
style
>
</
style
>
src/pages/purchaser/bid/releaseProject/timeSet.vue
View file @
17a88754
...
@@ -17,15 +17,24 @@
...
@@ -17,15 +17,24 @@
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item
label=
"投标人澄清答疑截止时间:"
prop=
"answerQuestionEndTime"
>
<el-form-item
label=
"投标人澄清答疑截止时间:"
prop=
"answerQuestionEndTime"
>
<el-date-picker
v-model=
"ruleForm.answerQuestionEndTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"answerQuestionEndTime"
>
<el-date-picker
v-model=
"ruleForm.answerQuestionEndTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"answerQuestionEndTime"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item
label=
"投标文件递交截止时间及开标时间:"
prop=
"openBidStartTime"
>
<el-form-item
label=
"投标文件递交截止时间及开标时间:"
prop=
"openBidStartTime"
>
<el-date-picker
v-model=
"ruleForm.openBidStartTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"openBidStartTime"
>
<el-date-picker
v-model=
"ruleForm.openBidStartTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"openBidStartTime"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
<div
class=
"button"
>
<div
class=
"button"
>
<el-button
@
click=
"upper"
>
上一步
</el-button>
<el-button
@
click=
"upper"
>
上一步
</el-button>
...
@@ -35,7 +44,7 @@
...
@@ -35,7 +44,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
dataForm
from
'@components/dataForm.vue'
import
dataForm
from
'@components/dataForm.vue'
;
export
default
{
export
default
{
name
:
'bidingList'
,
name
:
'bidingList'
,
components
:
{
components
:
{
...
@@ -43,47 +52,53 @@ export default {
...
@@ -43,47 +52,53 @@ export default {
},
},
data
()
{
data
()
{
let
checkTime
=
(
rule
,
value
,
callback
)
=>
{
let
checkTime
=
(
rule
,
value
,
callback
)
=>
{
let
nowTime
=
new
Date
().
getTime
()
if
(
nowTime
<
value
)
{
callback
();
}
else
{
return
callback
(
new
Error
(
'请选择大于当前的时间'
));
}
};
let
nowTime
=
new
Date
().
getTime
();
if
(
nowTime
<
value
)
{
callback
();
}
else
{
return
callback
(
new
Error
(
'请选择大于当前的时间'
));
}
};
let
checkTime1
=
(
rule
,
value
,
callback
)
=>
{
let
checkTime1
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
ruleForm
.
releaseTime
){
if
(
!
this
.
ruleForm
.
releaseTime
)
{
return
callback
(
new
Error
(
'请先选择招标公告正式发布时间'
));
return
callback
(
new
Error
(
'请先选择招标公告正式发布时间'
));
}
else
{
}
else
{
if
(
value
>
this
.
ruleForm
.
releaseTime
){
if
(
value
>
this
.
ruleForm
.
releaseTime
)
{
callback
();
callback
();
}
else
{
}
else
{
return
callback
(
new
Error
(
'请选择大于招标公告正式发布时间'
));
return
callback
(
new
Error
(
'请选择大于招标公告正式发布时间'
));
}
}
}
}
};
};
let
checkTime2
=
(
rule
,
value
,
callback
)
=>
{
let
checkTime2
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
ruleForm
.
startTime
){
if
(
!
this
.
ruleForm
.
startTime
)
{
return
callback
(
new
Error
(
'请先选择标书获取开始时间'
));
return
callback
(
new
Error
(
'请先选择标书获取开始时间'
));
}
else
{
}
else
{
if
(
value
>
this
.
ruleForm
.
startTime
){
if
(
value
>
this
.
ruleForm
.
startTime
)
{
callback
();
callback
();
}
else
{
}
else
{
return
callback
(
new
Error
(
'请选择大于标书获取开始时间'
));
return
callback
(
new
Error
(
'请选择大于标书获取开始时间'
));
}
}
}
}
};
};
let
checkTime3
=
(
rule
,
value
,
callback
)
=>
{
let
checkTime3
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
ruleForm
.
endTime
){
if
(
!
this
.
ruleForm
.
endTime
)
{
return
callback
(
new
Error
(
'请先选择标书获取结束时间'
));
return
callback
(
new
Error
(
'请先选择标书获取结束时间'
));
}
else
{
}
else
{
if
(
value
>
this
.
ruleForm
.
endTime
){
if
(
value
>
this
.
ruleForm
.
endTime
)
{
callback
();
callback
();
}
else
{
}
else
{
return
callback
(
new
Error
(
'请选择大于标书获取结束时间'
));
return
callback
(
new
Error
(
'请选择大于标书获取结束时间'
));
}
}
}
}
};
};
let
checkTime4
=
(
rule
,
value
,
callback
)
=>
{
let
checkTime4
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
ruleForm
.
answerQuestionEndTime
){
if
(
!
this
.
ruleForm
.
answerQuestionEndTime
)
{
return
callback
(
new
Error
(
'请先选择投标人澄清答疑截止时间'
));
return
callback
(
new
Error
(
'请先选择投标人澄清答疑截止时间'
));
}
else
{
}
else
{
if
(
value
>
this
.
ruleForm
.
answerQuestionEndTime
){
if
(
value
>
this
.
ruleForm
.
answerQuestionEndTime
)
{
callback
();
callback
();
}
else
{
}
else
{
return
callback
(
new
Error
(
'请选择投标人澄清答疑截止时间'
));
return
callback
(
new
Error
(
'请选择投标人澄清答疑截止时间'
));
}
}
}
}
...
@@ -97,97 +112,107 @@ export default {
...
@@ -97,97 +112,107 @@ export default {
openBidStartTime
:
''
openBidStartTime
:
''
},
},
rules
:
{
rules
:
{
releaseTime
:
[{
releaseTime
:
[
{
type
:
'date'
,
type
:
'date'
,
required
:
true
,
required
:
true
,
message
:
'请选择时间'
,
message
:
'请选择时间'
,
trigger
:
'blur'
trigger
:
'blur'
},
},
{
{
validator
:
checkTime
,
validator
:
checkTime
}],
}
startTime
:
[{
],
startTime
:
[
{
type
:
'date'
,
type
:
'date'
,
required
:
true
,
required
:
true
,
message
:
'请选择时间'
,
message
:
'请选择时间'
,
trigger
:
'blur'
trigger
:
'blur'
},
},
{
{
validator
:
checkTime1
,
validator
:
checkTime1
}],
}
endTime
:
[{
],
endTime
:
[
{
type
:
'date'
,
type
:
'date'
,
required
:
true
,
required
:
true
,
message
:
'请选择时间'
,
message
:
'请选择时间'
,
trigger
:
'blur'
trigger
:
'blur'
},
},
{
{
validator
:
checkTime2
,
validator
:
checkTime2
}],
}
answerQuestionEndTime
:
[{
],
answerQuestionEndTime
:
[
{
type
:
'date'
,
type
:
'date'
,
required
:
true
,
required
:
true
,
message
:
'请选择时间'
,
message
:
'请选择时间'
,
trigger
:
'blur'
trigger
:
'blur'
},
},
{
{
validator
:
checkTime3
,
validator
:
checkTime3
}],
}
openBidStartTime
:
[{
],
openBidStartTime
:
[
{
type
:
'date'
,
type
:
'date'
,
required
:
true
,
required
:
true
,
message
:
'请选择时间'
,
message
:
'请选择时间'
,
trigger
:
'blur'
trigger
:
'blur'
},
},
{
{
validator
:
checkTime4
,
validator
:
checkTime4
}]
}
}
]
}
}
};
},
},
methods
:
{
methods
:
{
releaseTime
(
val
)
{
releaseTime
(
val
)
{
this
.
ruleForm
.
releaseTime
=
new
Date
(
val
).
getTime
()
this
.
ruleForm
.
releaseTime
=
new
Date
(
val
).
getTime
();
},
},
startTime
(
val
)
{
startTime
(
val
)
{
this
.
ruleForm
.
startTime
=
new
Date
(
val
).
getTime
()
this
.
ruleForm
.
startTime
=
new
Date
(
val
).
getTime
();
},
},
endTime
(
val
)
{
endTime
(
val
)
{
this
.
ruleForm
.
endTime
=
new
Date
(
val
).
getTime
()
this
.
ruleForm
.
endTime
=
new
Date
(
val
).
getTime
();
},
},
answerQuestionEndTime
(
val
)
{
answerQuestionEndTime
(
val
)
{
this
.
ruleForm
.
answerQuestionEndTime
=
new
Date
(
val
).
getTime
()
this
.
ruleForm
.
answerQuestionEndTime
=
new
Date
(
val
).
getTime
();
},
},
openBidStartTime
(
val
)
{
openBidStartTime
(
val
)
{
this
.
ruleForm
.
openBidStartTime
=
new
Date
(
val
).
getTime
()
this
.
ruleForm
.
openBidStartTime
=
new
Date
(
val
).
getTime
();
},
},
async
next
()
{
async
next
()
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
if
(
valid
){
if
(
valid
)
{
this
.
$emit
(
'getruleForm'
,
this
.
ruleForm
)
this
.
$emit
(
'getruleForm'
,
this
.
ruleForm
);
this
.
$parent
.
next
()
this
.
$parent
.
next
();
}
}
},
},
upper
()
{
upper
()
{
this
.
$parent
.
upper
()
this
.
$parent
.
upper
();
}
}
}
}
}
}
;
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.form
{
.form
{
width
:
50%
;
width
:
50%
;
margin
:
0
auto
;
margin
:
0
auto
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding-bottom
:
30px
;
padding-bottom
:
30px
;
}
}
.button
{
.button
{
display
:
flex
;
display
:
flex
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
padding-bottom
:
20px
;
margin-right
:
20px
;
margin-right
:
20px
;
}
}
</
style
>
</
style
>
src/pages/purchaser/bid/seeProject/demand.vue
0 → 100644
View file @
17a88754
<
template
>
<div>
<div
class=
"describe"
>
标的需求
</div>
<div
class=
"padding"
>
<dataTable
:table-data=
"ruleForm.commodityVOList"
:columns=
"columns"
:is-pageobj=
"false"
>
</dataTable>
<el-dialog
:visible
.
sync=
"dialogVisible"
title=
"添加标的"
width=
"50%"
>
<el-form
:model=
"searchData"
:rules=
"rules"
ref=
"searchData"
label-width=
"150px"
>
<el-form-item
label=
"标的编码:"
prop=
"encoding"
>
<el-input
v-model
.
trim=
"searchData.encoding"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"标的名称:"
prop=
"bidName"
>
<el-input
v-model
.
trim=
"searchData.bidName"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"数量:"
prop=
"quantity"
>
<el-input
v-model
.
trim=
"searchData.quantity"
onkeyup=
"value=value.replace(/[^\d]/g,'')"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"计量单位:"
prop=
"unit"
>
<el-input
v-model
.
trim=
"searchData.unit"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"品牌:"
prop=
"brand"
>
<el-input
v-model
.
trim=
"searchData.brand"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"规格型号:"
prop=
"specification"
>
<el-input
v-model
.
trim=
"searchData.specification"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"标杆价(元):"
prop=
"price"
>
<el-input-number
v-model=
"searchData.price"
:min=
"0"
:controls=
"false"
:precision=
"2"
placeholder=
"请输入"
></el-input-number>
</el-form-item>
<el-form-item
label=
"备注:"
prop=
"remark"
>
<el-input
v-model
.
trim=
"searchData.remark"
placeholder=
"请输入"
maxlength=
"30"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"sure"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</div>
</
template
>
<
script
>
import
{
generateNumber
}
from
'@api/common/list'
;
import
dataTable
from
'@components/nopageTable.vue'
;
import
dataForm
from
'@components/dataForm.vue'
;
export
default
{
components
:
{
dataTable
,
dataForm
},
props
:
{
ruleForm
:
{
type
:
Object
,
default
()
{
return
{};
}
}
},
data
()
{
return
{
// 表单验证
rules
:
{
encoding
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}
],
bidName
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}
],
quantity
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}
],
unit
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}
],
brand
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}
],
specification
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}
],
price
:
[
{
required
:
true
,
message
:
'请输入'
,
trigger
:
'blur'
}
]
},
multipleSelection
:
[],
dialogVisible
:
false
,
searchData
:
{
encoding
:
''
,
bidName
:
''
,
quantity
:
''
,
unit
:
''
,
brand
:
''
,
specification
:
''
,
price
:
undefined
,
remark
:
''
},
columns
:
[
{
label
:
'标的编码'
,
prop
:
'encoding'
},
{
label
:
'标的名称'
,
prop
:
'bidName'
},
{
label
:
'数量'
,
prop
:
'quantity'
},
{
label
:
'计量单位'
,
prop
:
'unit'
},
{
label
:
'品牌'
,
prop
:
'brand'
},
{
label
:
'规格型号'
,
prop
:
'specification'
},
{
label
:
'标杆价(元)'
,
prop
:
'price'
},
{
label
:
'备注'
,
prop
:
'remark'
},
{
slot
:
'operate'
}
],
// 操作列
pageObj
:
{
size
:
10
,
total
:
1
,
currentPage
:
1
,
sizes
:
[
100
,
200
,
300
],
func
:
(
currentPage
)
=>
{
this
.
pageTurning
(
currentPage
);
}
},
type
:
''
,
idx
:
''
};
},
created
()
{
},
methods
:
{
// 删除操作
handleDelete
(
row
,
index
)
{
// 二次确认删除
this
.
$confirm
(
'确定要删除吗?'
,
'提示'
,
{
type
:
'warning'
})
.
then
(()
=>
{
this
.
$message
.
success
(
'删除成功'
);
this
.
tableData
.
splice
(
index
,
1
);
})
.
catch
(()
=>
{});
},
getSelection
(
val
)
{
console
.
log
(
val
);
this
.
multipleSelection
=
val
;
},
// 删除操作
delAllSelection
()
{
let
val
=
this
.
multipleSelection
;
if
(
val
.
length
>
0
)
{
console
.
log
(
val
);
val
.
forEach
((
va
,
index
)
=>
{
this
.
tableData
.
forEach
((
v
,
i
)
=>
{
if
(
va
.
bidName
===
v
.
bidName
)
{
this
.
tableData
.
splice
(
i
,
1
);
}
});
});
this
.
$message
.
success
(
'删除成功'
);
this
.
multipleSelection
=
[];
}
else
{
this
.
$message
.
error
(
'没有选择删除的项'
);
}
},
// 确认添加需求
async
sure
()
{
const
valid
=
await
this
.
$refs
[
'searchData'
].
validate
();
console
.
log
(
valid
);
if
(
valid
)
{
let
type
=
this
.
type
;
if
(
type
===
0
)
{
this
.
tableData
.
push
(
this
.
searchData
);
}
else
{
this
.
$set
(
this
.
tableData
,
this
.
idx
,
this
.
searchData
);
}
this
.
dialogVisible
=
false
;
}
},
examine
(
row
,
index
)
{
this
.
type
=
1
;
this
.
idx
=
index
;
this
.
searchData
=
Object
.
assign
({},
row
);
this
.
dialogVisible
=
true
;
},
async
add
()
{
try
{
this
.
type
=
0
;
this
.
dialogVisible
=
true
;
const
{
data
,
code
}
=
await
generateNumber
(
2
);
let
searchData
=
{
encoding
:
data
,
bidName
:
''
,
quantity
:
''
,
unit
:
''
,
brand
:
''
,
specification
:
''
,
price
:
''
,
remark
:
''
};
console
.
log
(
searchData
);
this
.
searchData
=
searchData
;
}
catch
(
e
)
{
console
.
log
(
e
);
}
},
next
()
{
let
projectCommodityList
=
this
.
tableData
;
let
ruleForm
=
{};
ruleForm
.
projectCommodityList
=
projectCommodityList
;
this
.
$emit
(
'getruleForm'
,
ruleForm
);
this
.
$parent
.
next
();
}
}
};
</
script
>
<
style
scoped
>
.padding
{
box-sizing
:
border-box
;
padding
:
10px
20px
30px
20px
;
}
.buttons
{
margin-bottom
:
30px
;
}
.button
{
display
:
flex
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
margin-right
:
20px
;
}
</
style
>
src/pages/purchaser/bid/seeProject/fileUpload.vue
0 → 100644
View file @
17a88754
<
template
>
<div>
<div
class=
"describe"
>
上传招标文件
</div>
<div
class=
"padding"
>
<div
class=
"details"
>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"上传附件"
prop=
"file"
>
<upload
:limit=
"1"
accept=
".pdf"
tip=
"请上传一个招标文件(pdf),不要超过50M。"
:max=
"50"
@
input=
"getfile"
></upload>
</el-form-item>
<el-form-item
label=
"其他附件"
>
<upload
:limit=
"5"
tip=
"最多上传五个附件,单个不超过100M。"
:type=
"1"
:max=
"100"
@
input=
"getfile1"
>
</upload>
</el-form-item>
</el-form>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
creatProject
}
from
'@api/purchaser/bid'
;
import
upload
from
'@components/Upload/specialUpload.vue'
;
export
default
{
components
:
{
upload
},
props
:
{
allForm
:
{
type
:
Object
,
default
()
{
return
{};
}
}
},
data
()
{
let
checkidentity
=
(
rule
,
value
,
callback
)
=>
{
let
le
;
if
(
this
.
ruleForm
.
bidBookPO
.
length
===
0
)
{
callback
(
new
Error
(
'请上传附件'
));
}
else
{
callback
();
}
};
return
{
ruleForm
:
{
bidBookPO
:
[],
bidBookAccessoryPOList
:
[]
},
fileList
:
[],
rules
:
{
file
:
[
{
required
:
true
,
validator
:
checkidentity
,
trigger
:
'change'
}
]
}
};
},
methods
:
{
getfile
(
val
)
{
this
.
ruleForm
.
bidBookPO
=
val
;
},
getfile1
(
val
)
{
this
.
ruleForm
.
bidBookAccessoryPOList
=
val
;
},
async
next
()
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
}
}
};
</
script
>
<
style
scoped
>
.padding
{
padding
:
0px
20px
30px
20px
;
}
.details
>
div
{
margin-bottom
:
20px
;
}
.correct
{
margin-right
:
20px
;
margin-top
:
5px
;
}
.button
{
display
:
flex
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
margin-right
:
20px
;
}
</
style
>
src/pages/purchaser/bid/seeProject/message.vue
0 → 100644
View file @
17a88754
This diff is collapsed.
Click to expand it.
src/pages/purchaser/bid/seeProject/seeProject.vue
0 → 100644
View file @
17a88754
<
template
>
<div>
<div
class=
"content-head"
>
<el-breadcrumb
separator=
"/"
>
<el-breadcrumb-item>
招标管理
</el-breadcrumb-item>
<el-breadcrumb-item>
招标项目管理
</el-breadcrumb-item>
<el-breadcrumb-item>
发布项目
</el-breadcrumb-item>
</el-breadcrumb>
<h3>
查看项目
</h3>
<h5>
查看招标项目
</h5>
</div>
<div
class=
"othercontent"
>
<!-- 项目信息 -->
<div
class=
"message1"
>
<messaage
ref=
"message"
:ruleForm=
"detail"
></messaage>
</div>
<!-- 标的需求 -->
<div
class=
"demand"
>
<demand
ref=
"demand"
:ruleForm=
"detail"
></demand>
</div>
<!-- 招标时间设置 -->
<div
class=
"timeSet"
>
<timeSet
ref=
"timeSet"
:ruleForm=
"detail"
></timeSet>
</div>
<!-- 招标文件上传 -->
<div
class=
"fileUpload"
>
<fileUpload
ref=
"fileUpload"
:detail=
"detail"
></fileUpload>
</div>
</div>
<div
class=
"centerButton"
>
<el-button
@
click=
"back"
>
返回
</el-button>
</div>
</div>
</
template
>
<
script
>
import
{
projectdetail
}
from
'@api/supply/bid'
;
import
{
getTime1
}
from
'@utils/time'
;
import
messaage
from
'./message.vue'
;
import
demand
from
'./demand.vue'
;
import
timeSet
from
'./timeSet.vue'
;
import
fileUpload
from
'./fileUpload.vue'
;
export
default
{
components
:
{
messaage
,
demand
,
timeSet
,
fileUpload
},
data
()
{
return
{
activeIdx
:
0
,
allForm
:
{},
detail
:
{
}
};
},
created
()
{
this
.
getenquiryProjectId
();
},
methods
:
{
back
(){
this
.
$router
.
go
(
-
1
)
},
// 获取详情
async
getenquiryProjectId
()
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
data
,
code
}
=
await
projectdetail
(
projectId
);
if
(
code
==
200
)
{
data
.
endTime
=
getTime1
(
data
.
endTime
);
data
.
startTime
=
getTime1
(
data
.
startTime
);
data
.
createTime
=
data
.
createTime
.
substring
(
0
,
10
);
data
.
bidBookInfoPO
=
data
.
bidBookInfoDO
data
.
earnestInfoPO
=
data
.
earnestInfoDO
this
.
detail
=
data
;
}
}
}
};
</
script
>
<
style
scoped
>
.steps
{
width
:
800px
;
margin
:
0
auto
;
padding
:
30px
0
;
}
.othercontent
>
div
{
background
:
#fff
;
margin-bottom
:
30px
;
}
.bid
{
margin-top
:
-20px
;
}
.button
{
display
:
flex
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
margin-right
:
20px
;
}
</
style
>
src/pages/purchaser/bid/seeProject/timeSet.vue
0 → 100644
View file @
17a88754
<
template
>
<div>
<div
class=
"describe"
>
招标时间设置
</div>
<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-date-picker
v-model=
"ruleForm.releaseTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"releaseTime"
disabled
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"标书获取开始时间:"
prop=
"startTime"
>
<el-date-picker
v-model=
"ruleForm.startTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"startTime"
disabled
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"标书获取结束时间:"
prop=
"endTime"
>
<el-date-picker
v-model=
"ruleForm.endTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"endTime "
disabled
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"投标人澄清答疑截止时间:"
prop=
"answerQuestionEndTime"
>
<el-date-picker
v-model=
"ruleForm.answerQuestionEndTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"answerQuestionEndTime"
disabled
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"投标文件递交截止时间及开标时间:"
prop=
"openBidStartTime"
>
<el-date-picker
v-model=
"ruleForm.openBidStartTime"
type=
"datetime"
placeholder=
"选择日期时间"
@
change=
"openBidStartTime"
disabled
>
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div>
</
template
>
<
script
>
import
dataForm
from
'@components/dataForm.vue'
export
default
{
components
:
{
dataForm
},
props
:
{
ruleForm
:
{
type
:
Object
,
default
()
{
return
{};
}
}
},
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
{
rules
:
{
}
}
},
methods
:
{
releaseTime
(
val
)
{
this
.
ruleForm
.
releaseTime
=
new
Date
(
val
).
getTime
()
},
startTime
(
val
)
{
this
.
ruleForm
.
startTime
=
new
Date
(
val
).
getTime
()
},
endTime
(
val
)
{
this
.
ruleForm
.
endTime
=
new
Date
(
val
).
getTime
()
},
answerQuestionEndTime
(
val
)
{
this
.
ruleForm
.
answerQuestionEndTime
=
new
Date
(
val
).
getTime
()
},
openBidStartTime
(
val
)
{
this
.
ruleForm
.
openBidStartTime
=
new
Date
(
val
).
getTime
()
},
async
next
()
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
},
upper
()
{
this
.
$parent
.
upper
()
}
}
}
</
script
>
<
style
scoped
>
.form
{
width
:
50%
;
margin
:
0
auto
;
box-sizing
:
border-box
;
padding-bottom
:
30px
;
}
.button
{
display
:
flex
;
justify-content
:
flex-end
;
padding-bottom
:
20px
;
margin-right
:
20px
;
}
</
style
>
src/pages/purchaser/home/home.vue
View file @
17a88754
...
@@ -3,101 +3,87 @@
...
@@ -3,101 +3,87 @@
<div
class=
"user"
>
<div
class=
"user"
>
<div>
你好 ,MaikoXie , 欢迎开始一天的工作!
</div>
<div>
你好 ,MaikoXie , 欢迎开始一天的工作!
</div>
<ul
class=
"user-list flex-between"
>
<ul
class=
"user-list flex-between"
>
<li
class=
"flex-colunm "
>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/user.png"
alt=
""
>
<img
src=
"@static/images/user.png"
alt=
""
/>
<div>
全部项目
</div>
<div>
今日可报名项目
</div>
<div>
{{
detail
.
projectCount
}}
</div>
<div>
{{
detail
.
applyProjects
}}
</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>
<li
class=
"flex-colunm
"
>
<li
class=
"flex-colunm
"
>
<img
src=
"@static/images/user.png"
alt=
""
>
<img
src=
"@static/images/user.png"
alt=
""
/
>
<div>
已终止
项目
</div>
<div>
中标
项目
</div>
<div>
{{
detail
.
end
}}
</div>
<div>
{{
detail
.
winProjects
}}
</div>
</li>
</li>
</ul>
</ul>
<h1>
项目信息
</h1>
<h1>
项目信息
</h1>
<dataTable
:table-data=
"tableData"
:columns=
"columns"
:is-pageobj=
"false"
>
<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"
>
<el-button
type=
"text"
size=
"small"
@
click=
"handleSee(scope.row)"
>
查看
</el-button>
</
template
>
</el-table-column>
</dataTable>
</dataTable>
<h1>
待办事项
</h1>
<!--
<h1>
待办事项
</h1>
<ul
class=
"flex-between project-list"
>
<ul
class=
"flex-between project-list"
>
<li
class=
"flex-colunm"
>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<img
src=
"@static/images/item.png"
alt=
""
/
>
<div>
待修改项目
</div>
<div>
待修改项目
</div>
<div>
{{
detail
.
projectCount
}}
</div>
<div>
{{
detail
.
projectCount
}}
</div>
</li>
</li>
<li
class=
"flex-colunm"
>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<img
src=
"@static/images/item.png"
alt=
""
/
>
<div>
待修改询价公告
</div>
<div>
待修改询价公告
</div>
<div>
{{
detail
.
inquiryNoticeNeedModify
}}
</div>
<div>
{{
detail
.
inquiryNoticeNeedModify
}}
</div>
</li>
</li>
<li
class=
"flex-colunm"
>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<img
src=
"@static/images/item.png"
alt=
""
/
>
<div>
待修改招标公告
</div>
<div>
待修改招标公告
</div>
<div>
{{
detail
.
biddingNoticeNeedModify
}}
</div>
<div>
{{
detail
.
biddingNoticeNeedModify
}}
</div>
</li>
</li>
<li
class=
"flex-colunm"
>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<img
src=
"@static/images/item.png"
alt=
""
/
>
<div>
待签署应收账款买断合同
</div>
<div>
待签署应收账款买断合同
</div>
<div>
{{
detail
.
payment
}}
</div>
<div>
{{
detail
.
payment
}}
</div>
</li>
</li>
<li
class=
"flex-colunm"
>
<li
class=
"flex-colunm"
>
<img
src=
"@static/images/item.png"
alt=
""
>
<img
src=
"@static/images/item.png"
alt=
""
/
>
<div>
待确认供应商凭证
</div>
<div>
待确认供应商凭证
</div>
<div>
{{
detail
.
credentials
}}
</div>
<div>
{{
detail
.
credentials
}}
</div>
</li>
</li>
</ul
>
</ul>
--
>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
home
}
from
'@api/purchaser/home'
import
{
home
}
from
'@api/purchaser/home'
;
import
{
getSearchString
}
from
'@utils/common'
import
{
getSearchString
}
from
'@utils/common'
;
import
dataTable
from
'@components/nopageTable.vue'
import
dataTable
from
'@components/nopageTable.vue'
;
export
default
{
export
default
{
components
:
{
components
:
{
dataTable
dataTable
},
},
data
()
{
data
()
{
return
{
return
{
detail
:
""
,
detail
:
''
,
tableData
:
[{
tableData
:
[
{
state
:
'审核通过待发布的项目'
,
state
:
'审核通过待发布的项目'
,
number
:
'10'
,
number
:
'10'
,
url
:
''
url
:
''
},
{
},
{
state
:
'处于招投标阶段的项目'
,
state
:
'处于招投标阶段的项目'
,
number
:
'10'
,
number
:
'10'
,
url
:
''
url
:
''
},
{
},
{
state
:
'今日截标(开标)的项目'
,
state
:
'今日截标(开标)的项目'
,
number
:
'10'
,
number
:
'10'
,
url
:
''
url
:
''
},
{
},
{
state
:
'处于开标阶段的项目'
,
state
:
'处于开标阶段的项目'
,
number
:
'10'
,
number
:
'10'
,
url
:
''
url
:
''
}],
}
columns
:
[{
],
columns
:
[
{
label
:
'当前状态'
,
label
:
'当前状态'
,
prop
:
'state'
prop
:
'state'
},
},
...
@@ -109,7 +95,8 @@ export default {
...
@@ -109,7 +95,8 @@ export default {
slot
:
'operate'
slot
:
'operate'
}
}
],
// 操作列
],
// 操作列
projectlist
:
[{
projectlist
:
[
{
id
:
0
,
id
:
0
,
img
:
require
(
'@static/images/item.png'
),
img
:
require
(
'@static/images/item.png'
),
project
:
'待审核项目'
,
project
:
'待审核项目'
,
...
@@ -139,77 +126,73 @@ export default {
...
@@ -139,77 +126,73 @@ export default {
project
:
'待审核项目'
,
project
:
'待审核项目'
,
number
:
'100'
number
:
'100'
}
}
],
]
};
}
},
},
created
()
{
created
()
{
let
token
=
getSearchString
(
"token"
);
let
token
=
getSearchString
(
'token'
);
if
(
token
!==
"undefined"
)
{
if
(
token
!==
'undefined'
)
{
localStorage
.
setItem
(
"token"
,
token
)
localStorage
.
setItem
(
'token'
,
token
);
}
}
this
.
gethome
()
this
.
gethome
();
},
},
methods
:
{
methods
:
{
handleSee
(
row
)
{
handleSee
(
row
)
{
this
.
$router
.
push
(
row
.
url
)
this
.
$router
.
push
(
row
.
url
);
},
},
async
gethome
()
{
async
gethome
()
{
const
{
const
{
data
,
code
}
=
await
home
();
data
,
this
.
detail
=
data
;
code
this
.
tableData
[
0
].
number
=
data
.
sellingBidding
;
}
=
await
home
()
this
.
tableData
[
1
].
number
=
data
.
bidding
;
this
.
detail
=
data
this
.
tableData
[
2
].
number
=
data
.
open
;
this
.
tableData
[
0
].
number
=
data
.
prePublic
this
.
tableData
[
3
].
number
=
data
.
bidOpening
;
this
.
tableData
[
1
].
number
=
data
.
sellingBidding
this
.
tableData
[
4
].
number
=
data
.
bidOevaluating
;
this
.
tableData
[
2
].
number
=
data
.
bidding
this
.
tableData
[
5
].
number
=
data
.
bidDecide
;
this
.
tableData
[
3
].
number
=
data
.
open
this
.
tableData
[
4
].
number
=
data
.
bidOpening
this
.
tableData
[
5
].
number
=
data
.
bidOevaluating
}
}
}
}
}
}
;
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.user
>
h1
{
.user
>
h1
{
font-weight
:
bold
;
font-weight
:
bold
;
margin-top
:
50px
;
margin-top
:
50px
;
margin-bottom
:
30px
;
margin-bottom
:
30px
;
}
}
.home
{
.home
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding
:
30px
padding
:
30px
;
}
}
.home
>
.user
{
.home
>
.user
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding-left
:
30px
;
padding-left
:
30px
;
padding-top
:
30px
;
padding-top
:
30px
;
background
:
#fff
;
background
:
#fff
;
}
}
.user
>
.user-list
{
.user
>
.user-list
{
margin-top
:
50px
;
margin-top
:
50px
;
margin-left
:
30px
;
margin-left
:
30px
;
}
}
.user
>
ul
{
.user
>
ul
{
width
:
80%
width
:
80%
;
}
}
.user
>
.user-list
>
li
>
div
{
.user
>
.user-list
>
li
>
div
{
margin-top
:
10px
;
margin-top
:
10px
;
margin-bottom
:
10px
;
margin-bottom
:
10px
;
}
}
.project-list
{
.project-list
{
margin-left
:
30px
;
margin-left
:
30px
;
}
}
.project-list
>
li
>
div
{
.project-list
>
li
>
div
{
margin-top
:
10px
;
margin-top
:
10px
;
margin-bottom
:
10px
;
margin-bottom
:
10px
;
}
}
</
style
>
</
style
>
src/pages/supply/home/home.vue
View file @
17a88754
...
@@ -4,25 +4,19 @@
...
@@ -4,25 +4,19 @@
<div
class=
"user"
>
<div
class=
"user"
>
<h5>
你好,MaikoXie,欢迎开始一天的工作!
</h5>
<h5>
你好,MaikoXie,欢迎开始一天的工作!
</h5>
<ul
class=
"user-list flex"
>
<ul
class=
"user-list flex"
>
<li
v-for =
"item in imglist"
:key
=
"item.id"
class=
"flex-colunm"
>
<li
v-for=
"item in imglist"
:key
=
"item.id"
class=
"flex-colunm"
>
<img
:src=
"item.src"
alt=
""
>
<img
:src=
"item.src"
alt=
""
/
>
<div
class=
"user-pos"
>
{{
item
.
info
}}
</div>
<div
class=
"user-pos"
>
{{
item
.
info
}}
</div>
<div>
{{
item
.
num
}}
</div>
<div>
{{
item
.
num
}}
</div>
</li>
</li>
</ul>
</ul>
<h2>
项目信息
</h2>
<h2>
项目信息
</h2>
<dataTable
:table-data =
"tabledata"
:columns=
"columns"
>
<dataTable
:table-data=
"tabledata"
:columns=
"columns"
>
<el-table-column
slot=
"opration"
align=
"center"
label=
"快捷操作"
flexd=
"right"
width=
"200px"
>
<template
:slot-scope =
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"handlesee(scope.row)"
>
查看
</el-button>
</
template
>
</el-table-column>
</dataTable>
</dataTable>
<h2
class=
"se-h2"
>
待办事项
</h2>
<h2
class=
"se-h2"
>
待办事项
</h2>
<ul
class=
"project-list flex"
>
<ul
class=
"project-list flex"
>
<li
v-for =
"item in projectlist"
:key =
"item.id"
>
<li
v-for=
"item in projectlist"
:key=
"item.id"
>
<img
:src=
"item.src"
alt=
""
>
<img
:src=
"item.src"
alt=
""
/
>
<div>
{{
item
.
project
}}
</div>
<div>
{{
item
.
project
}}
</div>
<div>
{{
item
.
account
}}
</div>
<div>
{{
item
.
account
}}
</div>
</li>
</li>
...
@@ -32,144 +26,137 @@
...
@@ -32,144 +26,137 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
dataTable
from
'@components/nopageTable.vue'
import
{
home
}
from
'@api/supply/home'
;
import
{
getSearchString
}
from
'@utils/common'
;
import
dataTable
from
'@components/nopageTable.vue'
;
export
default
{
export
default
{
components
:
{
components
:
{
dataTable
dataTable
},
},
data
()
{
data
()
{
return
{
return
{
projectlist
:
[{
projectlist
:
[
{
id
:
0
,
id
:
0
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
1
,
id
:
1
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
2
,
id
:
2
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
3
,
id
:
3
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
4
,
id
:
4
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
5
,
id
:
5
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
6
,
id
:
6
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
7
,
id
:
7
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
8
,
id
:
8
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
9
,
id
:
9
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
10
,
id
:
10
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
11
,
id
:
11
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
12
,
id
:
12
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
13
,
id
:
13
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
},
},
{
{
id
:
14
,
id
:
14
,
src
:
require
(
'@static/images/item.png'
),
src
:
require
(
'@static/images/item.png'
),
project
:
'待处理投标邀请'
,
project
:
'待处理投标邀请'
,
account
:
100
account
:
100
}
}],
],
imglist
:
[{
imglist
:
[
{
id
:
0
,
id
:
0
,
src
:
require
(
'@static/images/user.png'
),
src
:
require
(
'@static/images/user.png'
),
info
:
'今日可报名项目'
,
info
:
'今日可报名项目'
,
num
:
100
num
:
100
},
{
},
{
id
:
1
,
id
:
1
,
src
:
require
(
'@static/images/user.png'
),
src
:
require
(
'@static/images/user.png'
),
info
:
'中标项目'
,
info
:
'中标项目'
,
num
:
100
num
:
100
}],
}
],
//表格第一行
//表格第一行
columns
:
[{
columns
:
[
{
label
:
'当前状态'
,
label
:
'当前状态'
,
prop
:
'state'
prop
:
'state'
},
},
{
{
label
:
'数量'
,
label
:
'数量'
,
prop
:
'number'
prop
:
'number'
},
},
{
{
slot
:
'opration'
slot
:
'opration'
}
}
],
],
tabledata
:
[{
tabledata
:
[
{
state
:
'处于售标&投标阶段的项目'
,
state
:
'处于售标&投标阶段的项目'
,
number
:
10
,
number
:
10
,
url
:
''
url
:
''
...
@@ -198,55 +185,69 @@ export default {
...
@@ -198,55 +185,69 @@ export default {
state
:
'处于定标阶段的项目'
,
state
:
'处于定标阶段的项目'
,
number
:
10
,
number
:
10
,
url
:
''
url
:
''
}]
}
}
]
};
},
},
methods
:
{
methods
:
{
handlesee
()
{
handlesee
()
{},
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
;
}
}
},
created
()
{
let
token
=
getSearchString
(
'token'
);
if
(
token
!==
'undefined'
)
{
localStorage
.
setItem
(
'token'
,
token
);
}
}
}
this
.
gethome
();
},
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.home
{
.home
{
padding
:
30px
;
padding
:
30px
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
}
.home
>
.user
{
.home
>
.user
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding-left
:
20px
;
padding-left
:
20px
;
padding-top
:
20px
;
padding-top
:
20px
;
background
:
#fff
;
background
:
#fff
;
}
}
.user-list
{
.user-list
{
margin-bottom
:
30px
;
margin-bottom
:
30px
;
margin-left
:
10px
;
margin-left
:
10px
;
}
}
.user-list
>
li
{
.user-list
>
li
{
margin-right
:
70px
;
margin-right
:
70px
;
}
}
h5
{
h5
{
margin-top
:
30px
;
margin-top
:
30px
;
margin-bottom
:
30px
;
margin-bottom
:
30px
;
}
}
h2
{
h2
{
margin-bottom
:
50px
;
margin-bottom
:
50px
;
}
}
.se-h2
{
.se-h2
{
margin-top
:
30px
;
margin-top
:
30px
;
}
}
.project-list
{
.project-list
{
margin-left
:
30px
;
margin-left
:
30px
;
flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
text-align
:
center
;
text-align
:
center
;
}
}
.project-list
>
li
{
.project-list
>
li
{
margin-right
:
100px
;
margin-right
:
100px
;
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
</
style
>
</
style
>
src/router/index.js
View file @
17a88754
...
@@ -302,6 +302,16 @@ export default new Router({
...
@@ -302,6 +302,16 @@ export default new Router({
show
:
true
,
show
:
true
,
component
:
()
=>
import
(
'../pages/purchaser/bid/releaseProject/releaseProject.vue'
)
component
:
()
=>
import
(
'../pages/purchaser/bid/releaseProject/releaseProject.vue'
)
},
},
{
path
:
'/purchaser/bid/editProject'
,
show
:
true
,
component
:
()
=>
import
(
'../pages/purchaser/bid/editProject/editProject.vue'
)
},
{
path
:
'/purchaser/bid/seeProject'
,
show
:
true
,
component
:
()
=>
import
(
'../pages/purchaser/bid/seeProject/seeProject.vue'
)
},
{
{
path
:
'/purchaser/bid/reviewed/inquiryAnnouncement'
,
path
:
'/purchaser/bid/reviewed/inquiryAnnouncement'
,
show
:
true
,
show
:
true
,
...
...
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