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
8f38083a
Commit
8f38083a
authored
Oct 23, 2020
by
张冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
询价和Ui小改
parent
765d4028
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
264 additions
and
236 deletions
+264
-236
bondList.vue
src/pages/purchaser/bid/bidStage/bondList/bondList.vue
+1
-1
reply.vue
src/pages/purchaser/bid/bidStage/clearManagement/reply.vue
+4
-3
tenderFeelist.vue
...es/purchaser/bid/bidStage/tenderFeelist/tenderFeelist.vue
+1
-1
determine.vue
src/pages/purchaser/bid/bidSure/determine.vue
+3
-2
notice.vue
src/pages/purchaser/bid/bidSure/notice.vue
+225
-200
publicity.vue
src/pages/purchaser/bid/bidSure/publicity.vue
+3
-2
inquiryAnnouncement.vue
src/pages/purchaser/bid/reviewed/inquiryAnnouncement.vue
+1
-1
workbench.vue
src/pages/purchaser/bid/workbench.vue
+26
-26
No files found.
src/pages/purchaser/bid/bidStage/bondList/bondList.vue
View file @
8f38083a
...
...
@@ -3,7 +3,7 @@
<div>
<div
class=
"content"
>
<dataTable
:columns=
"columns"
:page-obj=
"pageObj"
:breads=
"breads"
url=
"/tender-earnest/list"
>
<el-table-column
slot=
"createTime"
label=
"提交审核时间"
align=
"center"
width=
"100"
>
<el-table-column
slot=
"createTime"
label=
"提交审核时间"
align=
"center"
>
<template
slot-scope=
"scope"
>
<div>
{{
scope
.
row
.
createTime
?
scope
.
row
.
createTime
:
"无"
}}
</div>
</
template
>
...
...
src/pages/purchaser/bid/bidStage/clearManagement/reply.vue
View file @
8f38083a
...
...
@@ -16,14 +16,15 @@
<div><span>
*
</span>
澄清问题内容:
</div>
<div>
{{
detail
.
content
}}
</div>
</div>
<div
v-if=
"detail.accessoryList"
class=
"flex"
>
<div>
<span>
*
</span>
澄清问题附件:
</div>
<ul>
<div
class=
"flex"
>
<div>
澄清问题附件:
</div>
<ul
v-if=
"detail.accessoryList!==undefined&& detail.accessoryList.length>0"
>
<li
v-for=
"(item,index) in detail.accessoryList"
:key=
"index"
>
<span>
{{
item
.
fileName
}}
</span>
<el-button
@
click=
"download(item.accessoryUrl)"
>
下载
</el-button>
</li>
</ul>
<div>
无
</div>
</div>
</div>
<h3
class=
"title"
>
澄清内容
</h3>
...
...
src/pages/purchaser/bid/bidStage/tenderFeelist/tenderFeelist.vue
View file @
8f38083a
...
...
@@ -3,7 +3,7 @@
<div>
<div
class=
"content"
>
<dataTable
:columns=
"columns"
:page-obj=
"pageObj"
:breads=
"breads"
url=
"/tender-bidbook/operation"
>
<el-table-column
slot=
"updateTime"
label=
"提交审核时间"
align=
"center"
width=
"100"
>
<el-table-column
slot=
"updateTime"
label=
"提交审核时间"
align=
"center"
>
<template
slot-scope=
"scope"
>
<div>
{{
scope
.
row
.
updateTime
?
scope
.
row
.
updateTime
:
"无"
}}
</div>
</
template
>
...
...
src/pages/purchaser/bid/bidSure/determine.vue
View file @
8f38083a
...
...
@@ -4,7 +4,7 @@
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<changeNav
:navs=
"navs"
></changeNav>
<div>
<div
class=
"message"
>
<div
class=
"message
form
"
>
<div
class=
"flex-between"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div
style=
"margin-right: 100px;"
>
项目名称:
{{
projectName
}}
</div>
...
...
@@ -163,7 +163,8 @@
<
style
scoped
>
.message
{
width
:
60%
;
width
:
80%
;
margin
:
0
auto
}
.message
>
div
{
...
...
src/pages/purchaser/bid/bidSure/notice.vue
View file @
8f38083a
<
template
>
<div>
<div
class=
"content-head"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<h3>
发布中标公告
</h3>
<h5>
发布中标公告
</h5>
</div>
<div
class=
"content"
>
<div
class=
"message"
>
<div
class=
"flex-between"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:
{{
projectName
}}
</div>
</div>
<div
class=
"flex-between"
>
<div
class=
"flex"
>
<div
class=
"adjustment"
>
上传附件:
</div>
<singleUpload
:limit=
"1"
tip=
"支持上传1个附件,不超过20M"
@
input=
"getfile"
></singleUpload>
</div>
<div>
发布媒体:捷安采官网
</div>
</div>
<div
class=
"flex-item"
>
<div
style=
"width: 50px;"
>
备注:
</div>
<el-input
:rows=
"4"
v-model
.
trim=
"remark"
type=
"remark"
placeholder=
"请输入备注"
maxlength=
"300"
>
</el-input>
</div>
</div>
<div
class=
"form"
>
<h3>
确定中标人
</h3>
<dataTable
:table-data=
"tableData"
:columns=
"columns"
:is-pageobj=
"false"
>
<el-table-column
slot=
"operate"
label=
"操作"
align=
"center"
fixed=
"right"
width=
"200"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"edit(scope.row)"
>
输入中标价
</el-button>
</
template
>
</el-table-column>
</dataTable>
<h3
style=
"margin-top:30px"
>
中标公告内容
</h3>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"公告标题"
prop=
"title"
>
<el-input
v-model
.
trim=
"ruleForm.title"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"公告内容"
prop=
"content"
>
<quill-editor
ref=
"text"
v-model
.
trim=
"ruleForm.content"
:options=
"editorOption"
class=
"myQuillEditor"
/>
</el-form-item>
</el-form>
</div>
<div
class=
"bottomButton flex-center"
>
<el-button
@
click=
"back"
>
返回
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
>
提交审批
</el-button>
</div>
</div>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"收货地址"
width=
"30%"
>
<el-form
:model=
"form"
>
<el-form-item
label-width=
"120px"
label=
"输入中标价"
>
<el-input-number
v-model=
"form.price"
:min=
"0"
:controls=
"false"
:precision=
"2"
placeholder=
"输入"
></el-input-number>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogFormVisible = false"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
<div>
<div
class=
"content-head"
>
<dataBreadcrumb
:breads=
"breads"
></dataBreadcrumb>
<h3>
{{
title
}}
中标公告
</h3>
<h5>
{{
title
}}
中标公告
</h5>
<div
v-if=
"type == 1"
class=
"abs"
>
<div>
拒绝原因:
{{
ruleForm
.
reason
}}
</div>
</div>
</div>
<div
class=
"content"
>
<div
class=
"message form"
>
<div
class=
"flex-between"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:
{{
projectName
}}
</div>
</div>
<div
class=
"flex-between"
>
<div
class=
"flex"
>
<div
class=
"adjustment"
>
上传附件:
</div>
<singleUpload
:limit=
"1"
tip=
"支持上传1个附件,不超过20M"
@
input=
"getfile"
></singleUpload>
</div>
<div>
发布媒体:捷安采官网
</div>
</div>
<div
class=
"flex-item"
>
<div
style=
"width: 50px"
>
备注:
</div>
<el-input
:rows=
"4"
v-model
.
trim=
"remark"
type=
"remark"
placeholder=
"请输入备注"
maxlength=
"300"
>
</el-input>
</div>
</div>
<div
class=
"form"
>
<h3>
确定中标人
</h3>
<dataTable
:table-data=
"tableData"
:columns=
"columns"
:is-pageobj=
"false"
>
<el-table-column
slot=
"operate"
label=
"操作"
align=
"center"
fixed=
"right"
width=
"200"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"edit(scope.row)"
>
输入中标价
</el-button>
</
template
>
</el-table-column>
</dataTable>
<h3
style=
"margin-top: 30px"
>
中标公告内容
</h3>
<el-form
ref=
"ruleForm"
:model=
"ruleForm"
:rules=
"rules"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"公告标题"
prop=
"title"
>
<el-input
v-model
.
trim=
"ruleForm.title"
maxlength=
"30"
></el-input>
</el-form-item>
<el-form-item
label=
"公告内容"
prop=
"content"
>
<quill-editor
ref=
"text"
v-model
.
trim=
"ruleForm.content"
:options=
"editorOption"
class=
"myQuillEditor"
/>
</el-form-item>
</el-form>
</div>
<div
class=
"bottomButton flex-center"
>
<el-button
@
click=
"back"
>
返回
</el-button>
<el-button
type=
"primary"
@
click=
"submitData"
v-if=
"type !== 2"
>
提交审批
</el-button>
</div>
</div>
<el-dialog
:visible
.
sync=
"dialogFormVisible"
title=
"收货地址"
width=
"30%"
>
<el-form
:model=
"form"
>
<el-form-item
label-width=
"120px"
label=
"输入中标价"
>
<el-input-number
v-model=
"form.price"
:min=
"0"
:controls=
"false"
:precision=
"2"
placeholder=
"输入"
></el-input-number>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"dialogFormVisible = false"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
createwin
,
winPersonInfo
}
from
'@api/purchaser/bid'
import
{
quillEditor
}
from
'vue-quill-editor'
import
'quill/dist/quill.core.css'
import
'quill/dist/quill.snow.css'
import
'quill/dist/quill.bubble.css'
import
dataTable
from
'@components/nopageTable.vue'
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
import
singleUpload
from
'@components/Upload/Upload.vue'
export
default
{
components
:
{
dataTable
,
dataBreadcrumb
,
singleUpload
,
quillEditor
},
data
()
{
return
{
projectCode
:
""
,
projectName
:
""
,
editorOption
:
{},
ruleForm
:
{
title
:
''
,
content
:
''
,
accessoryPOList
:[]
},
rules
:
{
title
:
[{
required
:
true
,
message
:
'请填写标题'
,
trigger
:
'blue'
}],
content
:
[{
required
:
true
,
message
:
'请填写内容'
,
trigger
:
'blue'
}]
},
form
:
{
price
:
undefined
},
dialogFormVisible
:
false
,
remark
:
''
,
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
tableData
:
[],
columns
:
[{
label
:
'中标人'
,
prop
:
'companyName'
},
{
label
:
'中标价(元)'
,
prop
:
'price'
},
{
slot
:
'operate'
}
]
//
}
},
methods
:
{
back
(){
this
.
$router
.
go
(
-
1
)
},
getfile
(
val
)
{
this
.
ruleForm
.
accessoryPOList
=
val
},
edit
(
row
)
{
this
.
dialogFormVisible
=
true
this
.
form
=
row
},
// 中标人列表
async
getwinPersonInfo
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
"projectId"
)
const
{
data
,
code
}
=
await
winPersonInfo
(
projectId
)
this
.
tableData
.
push
(
data
)
}
catch
(
e
)
{
console
.
log
(
e
)
}
},
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
()
if
(
valid
)
{
let
ruleForm
=
this
.
ruleForm
;
ruleForm
.
projectId
=
localStorage
.
getItem
(
"projectId"
)
ruleForm
.
price
=
this
.
tableData
[
0
].
price
ruleForm
.
winCompanyId
=
this
.
tableData
[
0
].
companyId
const
{
code
,
msg
}
=
await
createwin
(
ruleForm
)
if
(
code
==
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
})
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
)
},
1500
)
}
else
{
this
.
$message
.
error
(
msg
)
}
}
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
},
created
()
{
this
.
projectCode
=
localStorage
.
getItem
(
"projectCode"
)
this
.
projectName
=
localStorage
.
getItem
(
"projectName"
)
this
.
getwinPersonInfo
();
}
}
import
{
noticeWin
}
from
'@api/supply/bid'
;
import
{
createwin
,
winPersonInfo
,
editwin
}
from
'@api/purchaser/bid'
;
import
{
quillEditor
}
from
'vue-quill-editor'
;
import
'quill/dist/quill.core.css'
;
import
'quill/dist/quill.snow.css'
;
import
'quill/dist/quill.bubble.css'
;
import
dataTable
from
'@components/nopageTable.vue'
;
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
singleUpload
from
'@components/Upload/Upload.vue'
;
export
default
{
components
:
{
dataTable
,
dataBreadcrumb
,
singleUpload
,
quillEditor
},
data
()
{
return
{
type
:
''
,
projectCode
:
''
,
projectName
:
''
,
editorOption
:
{},
ruleForm
:
{
title
:
''
,
content
:
''
,
accessoryPOList
:
[]
},
rules
:
{
title
:
[
{
required
:
true
,
message
:
'请填写标题'
,
trigger
:
'blue'
}
],
content
:
[
{
required
:
true
,
message
:
'请填写内容'
,
trigger
:
'blue'
}
]
},
form
:
{
price
:
undefined
},
dialogFormVisible
:
false
,
remark
:
''
,
breads
:
[
'招标管理'
,
'招标项目管理'
,
'工作台'
],
tableData
:
[],
columns
:
[
{
label
:
'中标人'
,
prop
:
'companyName'
},
{
label
:
'中标价(元)'
,
prop
:
'price'
},
{
slot
:
'operate'
}
]
//
};
},
methods
:
{
back
()
{
this
.
$router
.
go
(
-
1
);
},
getfile
(
val
)
{
this
.
ruleForm
.
accessoryPOList
=
val
;
},
edit
(
row
)
{
this
.
dialogFormVisible
=
true
;
this
.
form
=
row
;
},
// 中标人列表
async
getwinPersonInfo
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
data
,
code
}
=
await
winPersonInfo
(
projectId
);
this
.
tableData
.
push
(
data
);
}
catch
(
e
)
{
console
.
log
(
e
);
}
},
async
submitData
()
{
try
{
const
valid
=
await
this
.
$refs
[
'ruleForm'
].
validate
();
if
(
valid
)
{
let
ruleForm
=
this
.
ruleForm
;
ruleForm
.
projectId
=
localStorage
.
getItem
(
'projectId'
);
ruleForm
.
price
=
this
.
tableData
[
0
].
price
;
ruleForm
.
winCompanyId
=
this
.
tableData
[
0
].
companyId
;
if
(
this
.
type
==
1
)
{
var
{
code
,
msg
}
=
await
editwin
(
ruleForm
);
}
else
{
var
{
code
,
msg
}
=
await
createwin
(
ruleForm
);
}
if
(
code
==
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
});
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
);
},
1500
);
}
else
{
this
.
$message
.
error
(
msg
);
}
}
}
catch
(
e
)
{
console
.
log
(
e
);
}
},
// 获取详情
async
getnoticeWin
()
{
try
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
data
,
code
}
=
await
noticeWin
(
projectId
);
if
(
code
==
200
)
{
this
.
ruleForm
=
data
;
}
}
catch
(
err
)
{
console
.
log
(
err
);
}
}
},
created
()
{
this
.
projectCode
=
localStorage
.
getItem
(
'projectCode'
);
this
.
projectName
=
localStorage
.
getItem
(
'projectName'
);
this
.
getwinPersonInfo
();
let
type
=
this
.
$route
.
query
.
type
;
this
.
type
=
type
;
if
(
type
==
1
)
{
this
.
getnoticeWin
();
this
.
title
=
'编辑'
;
}
else
if
(
type
==
2
)
{
this
.
title
=
'查看'
;
}
else
{
this
.
title
=
'发布'
;
}
}
};
</
script
>
<
style
scoped
>
.message
{
width
:
60%
;
}
.message
{
width
:
80%
;
margin
:
0
auto
;
}
.message
>
div
{
margin-bottom
:
20px
;
}
.message
>
div
{
margin-bottom
:
20px
;
}
.form
>
h3
{
font-weight
:
bold
;
margin-bottom
:
30px
;
}
.form
>
h3
{
font-weight
:
bold
;
margin-bottom
:
30px
;
}
.button
{
width
:
100%
;
height
:
50px
;
margin-top
:
100px
;
}
.button
{
width
:
100%
;
height
:
50px
;
margin-top
:
100px
;
}
</
style
>
src/pages/purchaser/bid/bidSure/publicity.vue
View file @
8f38083a
...
...
@@ -10,7 +10,7 @@
</div>
<candidate
v-if=
"type == 2"
></candidate>
<div
class=
"content"
v-else
>
<div
class=
"message"
>
<div
class=
"message
form
"
>
<div
class=
"flex-between"
>
<div>
项目编号:
{{
projectCode
}}
</div>
<div>
项目名称:
{{
projectName
}}
</div>
...
...
@@ -175,7 +175,8 @@ export default {
<
style
scoped
>
.message
{
width
:
60%
;
width
:
80%
;
margin
:
0
auto
}
.message
>
div
{
...
...
src/pages/purchaser/bid/reviewed/inquiryAnnouncement.vue
View file @
8f38083a
...
...
@@ -171,7 +171,7 @@ import dataTable from '@components/nopageTable.vue';
import
dataBreadcrumb
from
'@components/dataBreadcrumb.vue'
;
import
citySelect
from
'@components/citySelect/citySelect.vue'
;
import
singleUpload
from
'@components/Upload/Upload.vue'
;
import
{
createEnquiry
}
from
'@api/purchaser/bid'
;
import
{
createEnquiry
,
editEnquiry
}
from
'@api/purchaser/bid'
;
import
{
getTime
}
from
'@utils/time'
;
import
{
commoditylist
,
inqueryinfo
}
from
'@api/common/list'
;
...
...
src/pages/purchaser/bid/workbench.vue
View file @
8f38083a
...
...
@@ -149,19 +149,19 @@ export default {
modulars
:
[
{
id
:
14
,
label
:
'中标候选人公示'
,
label
:
'
发布
中标候选人公示'
,
url
:
'/purchaser/bid/bidSure/publicity'
,
bright
:
false
},
{
id
:
15
,
label
:
'
确认中标人
'
,
label
:
'
发布中标人公示
'
,
url
:
'/purchaser/bid/bidSure/determine'
,
bright
:
false
},
{
id
:
16
,
label
:
'中标公告'
,
label
:
'
发布
中标公告'
,
url
:
'/purchaser/bid/bidSure/notice'
,
bright
:
false
},
...
...
@@ -249,30 +249,30 @@ export default {
},
jump
(
mods
)
{
if
(
mods
.
bright
)
{
if
(
mods
.
label
==
'项目终止'
)
{
this
.
$confirm
(
'确定要终止吗?'
,
'提示'
,
{
type
:
'warning'
})
.
then
(
async
()
=>
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
msg
,
code
}
=
await
projectEnd
(
projectId
);
if
(
code
==
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
});
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
);
},
1500
);
}
else
{
this
.
$message
.
error
(
msg
);
}
if
(
mods
.
label
==
'项目终止'
)
{
this
.
$confirm
(
'确定要终止吗?'
,
'提示'
,
{
type
:
'warning'
})
.
catch
(()
=>
{});
}
else
{
this
.
$router
.
push
(
mods
.
url
);
}
.
then
(
async
()
=>
{
let
projectId
=
localStorage
.
getItem
(
'projectId'
);
const
{
msg
,
code
}
=
await
projectEnd
(
projectId
);
if
(
code
==
200
)
{
this
.
$message
({
message
:
msg
,
type
:
'success'
,
duration
:
1500
});
setTimeout
(()
=>
{
this
.
$router
.
go
(
-
1
);
},
1500
);
}
else
{
this
.
$message
.
error
(
msg
);
}
})
.
catch
(()
=>
{});
}
else
{
this
.
$router
.
push
(
mods
.
url
);
}
}
},
async
getprojectConsole
()
{
...
...
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