Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
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
fulixin
dsk-operate-sys-cscec
Commits
ead87a57
Commit
ead87a57
authored
Dec 11, 2023
by
yht15023815643
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
评标助手
parent
d8ffcc9d
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1340 additions
and
0 deletions
+1340
-0
download.png
dsk-operate-ui/src/assets/images/download.png
+0
-0
plus.png
dsk-operate-ui/src/assets/images/plus.png
+0
-0
advisoryOrgan.vue
dsk-operate-ui/src/views/bigDataSearch/advisoryOrgan.vue
+13
-0
assistant.vue
dsk-operate-ui/src/views/supplier/assistant.vue
+74
-0
AptitudeStandard.vue
...ate-ui/src/views/supplier/components/AptitudeStandard.vue
+123
-0
BatchImport.vue
dsk-operate-ui/src/views/supplier/components/BatchImport.vue
+293
-0
SearchAptitude.vue
...erate-ui/src/views/supplier/components/SearchAptitude.vue
+772
-0
SearchResult.vue
...operate-ui/src/views/supplier/components/SearchResult.vue
+65
-0
No files found.
dsk-operate-ui/src/assets/images/download.png
0 → 100644
View file @
ead87a57
427 Bytes
dsk-operate-ui/src/assets/images/plus.png
0 → 100644
View file @
ead87a57
222 Bytes
dsk-operate-ui/src/views/bigDataSearch/advisoryOrgan.vue
0 → 100644
View file @
ead87a57
<
template
>
</
template
>
<
script
>
export
default
{
}
</
script
>
<
style
>
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/supplier/assistant.vue
0 → 100644
View file @
ead87a57
<
template
>
<div
class=
"app-container enterprise_contatiner"
>
<div
class=
"header"
>
<el-tabs
v-model=
"activeName"
>
<el-tab-pane
label=
"查资质"
name=
"first"
></el-tab-pane>
<el-tab-pane
label=
"现行资质标准"
name=
"second"
></el-tab-pane>
<el-tab-pane
label=
"历史批量查询结果"
name=
"third"
></el-tab-pane>
</el-tabs>
</div>
<SearchAptitude
v-if=
"activeName === 'first'"
></SearchAptitude>
<AptitudeStandard
v-if=
"activeName === 'second'"
></AptitudeStandard>
<SearchResult
v-if=
"activeName === 'third'"
></SearchResult>
</div>
</
template
>
<
script
>
import
SearchAptitude
from
'./components/SearchAptitude'
import
AptitudeStandard
from
'./components/AptitudeStandard'
import
SearchResult
from
'./components/SearchResult'
export
default
{
name
:
'Assistant'
,
components
:
{
SearchAptitude
,
AptitudeStandard
,
SearchResult
},
data
()
{
return
{
activeName
:
'first'
}
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
.header
{
justify-content
:
space-between
;
height
:
48px
;
background
:
#FFFFFF
;
border-radius
:
4px
4px
0
0
;
border-bottom
:
1px
solid
#EEEEEE
;
color
:
#232323
;
position
:
sticky
;
top
:
54px
;
z-index
:
999
;
::v-deep
.el-tabs
{
height
:
48px
;
line-height
:
48px
;
.
el-tabs__nav-wrap
:
:
after
{
position
:
static
!
important
;
}
.el-tabs__header
{
margin
:
0
;
.el-tabs__item
{
padding
:
0
16px
;
font-size
:
16px
;
}
.is-active
{
font-weight
:
bold
;
}
}
.el-tabs__content
{
width
:
100%
;
}
}
.location
{
font-size
:
14px
;
color
:
#0081FF
;
i
{
margin-right
:
6px
;
font-size
:
16px
;
}
}
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/supplier/components/AptitudeStandard.vue
0 → 100644
View file @
ead87a57
<
template
>
<div>
<div
class=
"apt_stan_header"
>
<span
v-for=
"(item,index) in list"
class=
"apt_stan_header_span"
:class=
"activeIndex==index?'active_span':''"
:key=
"index"
@
click=
"activeIndex=index"
>
{{
item
}}
</span>
</div>
<div
class=
"apt_stan_content"
>
<div
class=
"apt_stan_content_header"
>
<el-select
v-model=
"value"
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
<div
style=
"padding:16px;"
>
<el-table
:data=
"tableData"
:header-cell-style=
"
{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column
label=
"资质名称"
fixed
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
province
}}
</
template
>
</el-table-column>
<el-table-column
label=
"等级"
width=
"274"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
biddingCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"经营范围"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
landInfoCount
||
"--"
}}
</
template
>
</el-table-column>
</el-table>
<div
class=
"apt_stan_content_text_box"
>
·建筑工程是指各类结构形式的民用建筑工程、工业建筑工程、构筑物工程以及相配套的道路、通信、管网管线等设施工程。工程内容包括地基与基础、主体结构、建筑屋面、装修装饰、建筑幕墙、附建人防工程以及给水排水及供暖、通风与空调、电气、消防、智能化、防雷等配套工程;
</div>
</div>
</div>
</div>
</template>
<
script
>
export
default
{
data
(){
return
{
tableData
:[],
activeIndex
:
0
,
list
:[
'建筑业企业资质'
,
'工程监理'
,
'工程设计'
,
'工程勘察'
,
'工程造价咨询'
],
options
:
[
{
value
:
'选项1'
,
label
:
'黄金糕'
},
{
value
:
'选项2'
,
label
:
'双皮奶'
},
{
value
:
'选项3'
,
label
:
'蚵仔煎'
},
{
value
:
'选项4'
,
label
:
'龙须面'
},
{
value
:
'选项5'
,
label
:
'北京烤鸭'
}
],
value
:
''
}
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
.apt_stan_header
{
border-radius
:
0px
0px
4px
4px
;
display
:
flex
;
padding
:
16px
;
background
:
#FFFFFF
;
.apt_stan_header_span
{
cursor
:
pointer
;
font-size
:
14px
;
color
:
#3D3D3D
;
height
:
32px
;
border-radius
:
4px
;
padding
:
5px
12px
;
margin-right
:
12px
;
display
:
inline-block
;
background
:
#F3F4F5
;
}
.active_span
{
background
:
#F6F9FC
;
color
:
#0081FF
;
}
}
.apt_stan_content
{
margin-top
:
16px
;
background
:
#FFFFFF
;
border-radius
:
4px
4px
0px
0px
;
.apt_stan_content_header
{
padding
:
16px
;
border-width
:
0px
0px
1px
0px
;
border-style
:
solid
;
border-color
:
#EEEEEE
;
}
::v-deep
.el-input__inner
{
border
:
none
;
}
.apt_stan_content_text_box
{
border-radius
:
0px
0px
4px
4px
;
padding
:
16px
;
background
:
#FFFFFF
;
border
:
1px
solid
#E6EAF1
;
color
:
#3D3D3D
;
font-size
:
12px
;
margin-top
:
16px
;
}
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/supplier/components/BatchImport.vue
0 → 100644
View file @
ead87a57
<
template
>
<el-dialog
title=
"批量查资质"
custom-class=
"batch_import_dialog"
:visible
.
sync=
"visible"
>
<div
class=
"upload"
v-if=
"addfile==false"
>
<div
class=
"up_title"
>
导入Excel文件,高效查询或导出企业信息;查询成功后可使用筛选项二次筛选
</div>
<div>
<div
class=
"step_box"
v-for=
"(item,index) in list"
:key=
"index"
>
<span
class=
"step"
>
{{
index
+
1
}}
</span><span
class=
"step_text"
>
{{
item
}}
</span><span
class=
"step_line"
v-if=
"index!=3"
></span>
</div>
</div>
<div
class=
"up_box"
>
<el-upload
class=
"batch_import_upload"
:action=
"action"
:multiple=
"false"
accept=
".xls,.xlsx"
drag
ref=
"upload"
:auto-upload=
"false"
:file-list=
"fileList"
:on-change=
"handleFileListChange"
:headers=
"headers"
:on-success=
"onSuccess"
>
<img
class=
"up_img"
src=
"@/assets/images/plus.png"
>
<div
class=
"up_text"
>
点击选择文件或将文件拖拽至此导入企业名录
</div>
<div
class=
"up_tip"
>
· 导入的文件内容必须依照下载模板的要求填写);
</div>
<div
class=
"up_tip"
>
· 上传文件最大为2M,仅支持Excel表格文件(xls,xlsx);
</div>
<div
class=
"up_tip"
>
· 单次查询企业数量限时免费 5000 家。
</div>
</el-upload>
</div>
<div
class=
"bd"
></div>
<div
class=
"btns1 clearfix"
>
<div
class=
"btn btn_default dowload"
@
click=
"downloadClick"
><img
src=
"@/assets/images/download.png"
alt=
""
>
下载模板
</div>
<div
class=
"btn btn_primary btn_disabled fr"
v-if=
"isUpload==false"
>
查询
</div>
<div
class=
"btn btn_primary fr"
@
click=
"importConfirmClick"
v-else
>
查询
</div>
<div
class=
"btn btn_default fr"
@
click=
"importCancel"
>
取消
</div>
</div>
</div>
<div
class=
"success"
v-if=
"addfile==true"
>
<div
v-if=
"addsuccess==false"
>
<img
class=
"img"
src=
"@/assets/images/project/clock.png"
>
<div
class=
"p1"
>
查询客户中...
</div>
<div
class=
"p2"
>
请耐心等待,过程大概30秒
</div>
</div>
<div
v-if=
"addsuccess == true"
>
<div
class=
"p3"
>
<img
src=
"@/assets/images/project/success.png"
>
查询成功
</div>
<div
class=
"p2"
>
{{
messages
}}
</div>
<div
class=
"btns"
>
<div
class=
"btn btn_primary h32"
@
click=
"getmsg"
>
查看
</div>
</div>
</div>
</div>
</el-dialog>
</
template
>
<
script
>
import
{
getToken
}
from
"@/utils/auth"
;
import
"@/assets/styles/project.scss"
import
{
importData
}
from
'@/api/custom/custom'
export
default
{
name
:
'batchImport'
,
props
:{
importtype
:
''
},
data
(){
return
{
list
:[
'下载模版'
,
'按要求在模板内填写企业全称名录'
,
'上传文件'
,
'查询结果'
],
visible
:
false
,
isUpload
:
false
,
//有上传的文件
addfile
:
false
,
//已上传文件
addsuccess
:
false
,
//已成功加入数据
//批量导入
action
:
""
,
fileList
:
[],
headers
:
{
Authorization
:
"Bearer "
+
getToken
(),
},
downloadhref
:
''
,
//样例地址
successCount
:
0
,
//成功条数
messages
:
''
,
}
},
created
(){
if
(
this
.
importtype
==
'project'
){
//项目管理
this
.
downloadhref
=
'/file/projectTemplate.xlsx'
this
.
action
=
process
.
env
.
VUE_APP_BASE_API
+
'/business/info/upload'
}
if
(
this
.
importtype
==
'custom'
){
//客户管理
this
.
downloadhref
=
'/file/Template.xlsx'
this
.
action
=
process
.
env
.
VUE_APP_BASE_API
+
"/customer/importData"
}
},
methods
:{
getmsg
(){
this
.
importCancel
()
this
.
$emit
(
'getdatas'
)
},
handleFileListChange
(
file
,
fileList
)
{
var
testmsg
=
file
.
name
.
substring
(
file
.
name
.
lastIndexOf
(
"."
)
+
1
);
const
extension
=
testmsg
===
"xlsx"
;
const
extension1
=
testmsg
===
"xls"
;
if
(
!
extension
&&
!
extension1
)
{
this
.
$message
({
message
:
"上传文件只能是.xls,.xlsx格式!"
,
type
:
"warning"
,
});
return
false
;
}
const
isLt2M
=
file
.
size
/
1024
/
1024
<
2
if
(
!
isLt2M
)
{
this
.
$refs
.
upload
.
clearFiles
()
this
.
$message
({
message
:
'上传文件大小不能超过 2MB!'
,
type
:
'warning'
})
return
false
}
if
(
fileList
.
length
>
0
)
{
this
.
fileList
=
[
fileList
[
fileList
.
length
-
1
]];
this
.
isUpload
=
true
}
},
onSuccess
(
res
,
file
,
fileList
)
{
if
(
res
.
code
==
200
)
{
this
.
successCount
=
res
.
successCount
if
(
this
.
importtype
==
'project'
){
//项目管理
this
.
messages
=
res
.
msg
}
if
(
this
.
importtype
==
'custom'
){
//客户管理
let
num
=
res
.
data
?
res
.
data
.
length
:
0
let
str
=
'成功导入客户条数'
+
res
.
successCount
+
',客户去重条数'
+
num
this
.
messages
=
str
}
this
.
addsuccess
=
true
}
else
{
this
.
importCancel
()
this
.
$message
.
error
({
message
:
res
.
msg
,
showClose
:
true
})
}
},
downloadClick
()
{
let
a
=
document
.
createElement
(
"a"
);
a
.
setAttribute
(
"href"
,
this
.
downloadhref
);
a
.
setAttribute
(
"download"
,
"批量导入模版.xlsx"
);
document
.
body
.
appendChild
(
a
);
a
.
click
();
a
.
remove
();
},
// 批量导入
importConfirmClick
()
{
if
(
this
.
fileList
.
length
>
0
)
{
this
.
$refs
[
"upload"
].
submit
();
this
.
addfile
=
true
}
else
{
this
.
$message
(
"请先选择文件"
);
}
},
importCancel
(){
this
.
addfile
=
false
this
.
isUpload
=
false
this
.
addsuccess
=
false
this
.
fileList
=
[]
this
.
$emit
(
'cancels'
)
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.batch_import_dialog
{
width
:
656px
;
border-radius
:
4px
;
.el-dialog__header
{
font-size
:
16px
;
color
:
#232323
;
font-weight
:
700
;
}
.el-dialog__body
{
border-top
:
1px
solid
#E5E6EB
;
}
.up_title
{
font-size
:
12px
;
color
:
#666666
;
position
:
absolute
;
top
:
23px
;
left
:
116px
;
}
.upload
{
.step_box
{
display
:
inline-block
;
font-size
:
12px
;
color
:
#3D3D3D
;
.step
{
display
:
inline-block
;
width
:
12px
;
height
:
12px
;
background
:
#0081FF
;
color
:
#ffffff
;
margin-right
:
4px
;
text-align
:
center
;
border-radius
:
50%
;
}
.step_line
{
width
:
27px
;
height
:
1px
;
display
:
inline-block
;
background
:
#D8D8D8
;
position
:
relative
;
top
:
-4px
;
margin
:
0
12px
;
}
}
.up_box
{
margin-top
:
20px
;
.batch_import_upload
{
.el-upload-dragger
{
width
:
616px
;
height
:
224px
;
background
:
#F2F3F5
;
border-radius
:
2px
2px
2px
2px
;
border
:
1px
solid
#E5E6EB
;
.up_img
{
width
:
14px
;
height
:
14px
;
margin-top
:
50px
;
margin-bottom
:
24px
;
}
.up_text
{
font-size
:
14px
;
color
:
#232323
;
margin-bottom
:
4px
;
}
.up_tip
{
color
:
#999999
;
font-size
:
12px
;
height
:
20px
;
line-height
:
20px
;
}
}
}
.el-upload-list__item
{
height
:
36px
;
line-height
:
36px
;
background
:
#F7F8FA
;
border-radius
:
2px
2px
2px
2px
;
a
{
color
:
#1D2129
;
}
.el-icon-close
{
top
:
10px
;
}
}
}
.bd
{
width
:
656px
;
margin-left
:
-20px
;
height
:
1px
;
background
:
#E5E6EB
;
margin-top
:
17px
;
}
.btns1
{
.btn
{
border-radius
:
2px
;
padding
:
0
16px
;
width
:
auto
;
height
:
32px
;
line-height
:
32px
;
margin-top
:
16px
;
}
.btn_default
{
border-color
:
#DCDFE6
;
color
:
#232323
;
margin-left
:
0
;
}
.fr
{
float
:right
;
}
.dowload
{
img
{
width
:
16px
;
height
:
16px
;
}
}
.btn_disabled
{
background
:
#94BFFF
;
color
:
#ffffff
;
}
}
}
}
</
style
>
dsk-operate-ui/src/views/supplier/components/SearchAptitude.vue
0 → 100644
View file @
ead87a57
<
template
>
<div>
<div
class=
"content"
>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"label"
>
企业名称
</div>
<div
class=
"content_right item_ckquery_list"
>
<el-input
class=
"ename_input"
clearable
placeholder=
"多个企业用空格隔开"
v-model=
"ename"
@
input=
"projectNamebtn('ename',ename,'关键字:')"
>
<div
slot=
"append"
class=
"btn-search"
@
click=
"search()"
>
搜索
</div>
</el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label label1"
>
资质条件
</div>
<div
class=
"content_right content_item_ckquery"
>
<div
class=
"item_ckquery_list"
v-for=
"(item,i) in aptitudeDtoList"
:key=
"i"
:class=
"i>0?'item_ckquery_distance':''"
>
<el-cascader
:options=
"optionss"
separator=
'丨'
clearable
:ref=
"i"
class=
"content_item_list"
v-model=
"item.codeStr"
@
change=
'optionsbtn(i)'
filterable
:props=
"
{
checkStrictly:true,
label:'name',
value:'id',
children:'list',
expandTrigger:'hover'
}" popper-class='content_item_zizi'>
</el-cascader>
<div
class=
"ckquery_list_right"
v-show=
"i==aptitudeDtoList.length-1"
style=
"position: relative;"
>
<span
class=
"item_ckquery_btn"
@
click=
"addAptitudeDtoList"
>
<i
class=
"el-icon-plus"
style=
"font-size:14px"
></i>
添加资质
</span>
</div>
</div>
</div>
</div>
<div
class=
"content_item"
style=
"margin-left:68px;"
>
<span
v-for=
" (kitme,k) in queryTypelist"
:key=
"k"
>
<el-radio
v-model=
"queryType"
:label=
"kitme.key"
>
{{
kitme
.
value
}}
</el-radio>
</span>
</div>
<div
class=
"content_item content_item1"
>
<div
class=
"search-new"
>
<span
@
click=
"search()"
>
查询
</span>
<span
style=
"color:#5B5B5B"
@
click=
"reset()"
>
重置
</span>
<span
@
click=
"$refs.batchImport.visible = true"
>
批量查询
</span>
</div>
</div>
</div>
<div
class=
"bottomlist"
>
<div
class=
"bottomlist-title"
>
<div
class=
"bottomlist-title-left"
>
<p
class=
"title-left"
>
<span
style=
"margin-right:4;color:rgba(35, 35, 35, 0.40);font-size: 18px;position: relative;top:2px;"
>
·
</span>
共有
{{
total
}}
条
</p>
</div>
<div
class=
"title-right"
>
<p>
<img
src=
"@/assets/images/EXCEL.png"
alt=
""
>
<span
class=
"excel"
@
click=
"clickDialog"
>
导出EXCEL
</span>
</p>
</div>
</div>
<div
class=
"bd"
></div>
<div
class=
"table-item-jf table-item-jf1"
v-if=
"tableData.length==0&& !isSkeleton"
>
<img
class=
"item-jf-img"
src=
"@/assets/images/kong.png"
alt=
""
>
<div
class=
"item-jf-titel"
>
抱歉,没找到相关数据!
</div>
<div
class=
"item-jf-text"
>
建议调整关键词或筛选条件,重新搜索!
</div>
</div>
<template
v-if=
"!isSkeleton&&tableData.length>0"
>
<div
v-for=
"(item,index) in tableData"
:key=
"index"
style=
"padding-bottom: 16px;"
>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<div
class=
" table-item-jf table-item "
>
<div
class=
"title_box"
>
<img
src=
"@/assets/images/enterprise.png"
>
<span
class=
"name_box"
>
{{
item
.
name
}}
</span>
<span
class=
"float_r"
>
符合条件资质(
{{
item
.
total
}}
)
<span
v-if=
"item.total>5"
class=
"show_more"
@
click=
"showClick(item)"
>
查看所有 >
</span></span></span>
</div>
<el-table
:data=
"item.list"
:header-cell-style=
"
{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column
label=
"证书编号"
width=
"119"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
supplierCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"资质名称"
width=
"273"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
biddingCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"承包工程范围"
width=
"415"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
landInfoCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"发证日期"
width=
"119"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
bratingSubjectLevel
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"有效期至"
width=
"119"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
bondBalance
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"发证机关"
width=
"204"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
bondBalance1
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"经营范围"
width=
"415"
>
<
template
slot-scope=
"scope"
>
<span
class=
"line_2"
>
{{
scope
.
row
.
bondBalance2
||
"--"
}}
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"pagination clearfix"
v-show=
"total>0"
>
<el-pagination
background
:page-size=
"pageSize"
:current-page=
"pageNum"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</template>
</div>
<el-dialog
title=
"所有符合条件资质"
custom-class=
"show_more_dialog"
:visible
.
sync=
"showMore"
>
<div
class=
" table-item-jf table-item "
>
<div
class=
"title_box"
>
<img
src=
"@/assets/images/enterprise.png"
>
<span
class=
"name_box"
>
{{ dialogData.name }}
</span>
<span
class=
"float_r"
>
共有
<span
style=
"color: #0081FF;"
>
{{ dialogData.total }}
</span>
个资质
</span>
</div>
<el-table
:data=
"dialogData.list"
:header-cell-style=
"{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}"
v-horizontal-scroll=
"'hover'"
class=
"table-item1 fixed-table"
border
highlight-current-row
>
<el-table-column
label=
"证书编号"
width=
"119"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
supplierCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"资质名称"
width=
"273"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
biddingCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"承包工程范围"
width=
"415"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
landInfoCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"发证日期"
width=
"119"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
bratingSubjectLevel
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"有效期至"
width=
"119"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
bondBalance
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"发证机关"
width=
"204"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
bondBalance1
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"经营范围"
width=
"415"
>
<
template
slot-scope=
"scope"
>
<span
class=
"line_2"
>
{{
scope
.
row
.
bondBalance2
||
"--"
}}
</span>
</
template
>
</el-table-column>
</el-table>
</div>
<div
class=
"pagination clearfix"
v-show=
"dialogData.total>5"
>
<el-pagination
background
:current-page=
"pageNum1"
:page-size=
"pageSize"
@
current-change=
"handleCurrentChange1"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</el-dialog>
<BatchImport
ref=
"batchImport"
></BatchImport>
<ExportDialog
:data=
"exportData"
v-if=
"exportData.dialogExportVisible"
@
clickEXCEL=
"clickEXCEL"
></ExportDialog>
</div>
</template>
<
script
>
import
"@/assets/styles/public.scss"
;
import
api
from
'@/api/enterpriseData/enterpriseData.js'
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
import
ExportDialog
from
"@/views/component/export-dialog"
import
BatchImport
from
"./BatchImport"
export
default
{
components
:
{
skeleton
,
ExportDialog
,
BatchImport
},
data
(){
return
{
batchImport
:
false
,
ename
:
''
,
aptitudeDtoList
:
[
{
nameStr
:
''
,
codeStr
:
[],
}
],
queryTypelist
:
[
{
key
:
'or'
,
status
:
false
,
value
:
'任意均可'
},
{
key
:
'and'
,
status
:
true
,
value
:
'同时具备'
},
],
queryType
:
'and'
,
optionss
:
[],
dialogData
:{},
tableData
:
[
{
name
:
'中交第二航务工程局有限公司'
,
list
:[
{
biddingCount
:
'工程勘察岩土工程专业(岩土工程勘察)甲级'
,
landInfoCount
:
'可承担一级以下公路,单座桥长 1000 米以下、单跨跨度 150 米以下的桥梁,长度 1000 米以下的隧道工程的施工。'
,
supplierCount
:
'B233000514'
,
bratingSubjectLevel
:
'2021-12-27'
,
bondBalance
:
'2021-12-27'
,
bondBalance1
:
'浙江省住房和城乡建设厅'
,
bondBalance2
:
'经营范围包含许可项目:建设工程设计;建设工程勘察;建设工程监理;建设工程施工;测绘服务;国土空间规划编制;水利工程建设监理(依法...'
,
}
],
total
:
10
},
{
name
:
'中交第二航务工程局有限公司'
,
list
:[
{
biddingCount
:
'工程勘察岩土工程专业(岩土工程勘察)甲级'
,
landInfoCount
:
'可承担一级以下公路,单座桥长 1000 米以下、单跨跨度 150 米以下的桥梁,长度 1000 米以下的隧道工程的施工。'
,
supplierCount
:
'B233000514'
,
bratingSubjectLevel
:
'2021-12-27'
,
bondBalance
:
'2021-12-27'
,
bondBalance1
:
'浙江省住房和城乡建设厅'
,
bondBalance2
:
'经营范围包含许可项目:建设工程设计;建设工程勘察;建设工程监理;建设工程施工;测绘服务;国土空间规划编制;水利工程建设监理(依法...'
,
}
],
total
:
10
},
],
total
:
0
,
pageNum
:
1
,
pageNum1
:
1
,
pageSize
:
5
,
dataEXCEL
:{},
isSkeleton
:
false
,
exportData
:{
title
:
'查城投平台'
,
dialogExportVisible
:
false
,
forData
:
[
{
label
:
'公司名称'
,
prop
:
'companyName'
,
slot
:
true
,
minWidth
:
'140'
},
{
label
:
'区域'
,
prop
:
'province'
,
slot
:
true
,
minWidth
:
'160'
},
{
label
:
'招标数量'
,
prop
:
'biddingCount'
,
slot
:
true
,
minWidth
:
'80'
},
{
label
:
'城投拿地'
,
prop
:
'landInfoCount'
,
slot
:
true
,
minWidth
:
'80'
},
{
label
:
'供应商'
,
prop
:
'supplierCount'
,
slot
:
true
,
minWidth
:
'100'
},
{
label
:
'债券余额(亿元)'
,
prop
:
'bondBalance'
,
minWidth
:
'130'
},
{
label
:
'主体评级'
,
prop
:
'bratingSubjectLevel'
,
minWidth
:
'80'
},
{
label
:
'行政级别'
,
prop
:
'uipExecutiveLevel'
,
minWidth
:
'80'
},
{
label
:
'股东背景'
,
prop
:
'shareholderBg'
,
slot
:
true
,
minWidth
:
'100'
},
{
label
:
'股权关系'
,
prop
:
'equityRelationship'
,
slot
:
true
,
minWidth
:
'100'
},
{
label
:
'平台重要性'
,
prop
:
'platformImportance'
,
slot
:
true
,
minWidth
:
'130'
},
{
label
:
'城投业务类型'
,
prop
:
'uipBusinessType'
,
slot
:
true
,
minWidth
:
'130'
},
{
label
:
'实控人'
,
prop
:
'actualController'
,
slot
:
true
,
minWidth
:
'140'
},
{
label
:
'最新报告期'
,
prop
:
'latestReportPeriod'
,
slot
:
true
,
minWidth
:
'120'
},
{
label
:
'总资产(亿元)'
,
prop
:
'totalAssets'
,
slot
:
true
,
minWidth
:
'120'
},
{
label
:
'归母净资产(亿元)'
,
prop
:
'belongNetAssets'
,
slot
:
true
,
minWidth
:
'140'
},
],
exportTableData
:[],
exportEXCEL
:{}
},
showMore
:
false
,
}
},
created
(){
api
.
aptitudeCode
().
then
(
res
=>
{
if
(
res
)
{
this
.
optionss
=
res
;
}
else
{
this
.
optionss
=
aptitudeCode
;
}
}).
catch
(
error
=>
{
this
.
optionss
=
aptitudeCode
;
});
},
methods
:{
projectNamebtn
(){},
search
(){},
showClick
(
item
){
this
.
showMore
=
true
;
this
.
dialogData
=
item
},
handleCurrentChange
(
pageNum
)
{
this
.
pageNum
=
pageNum
;
this
.
search
(
pageNum
,
this
.
pageSize
);
},
handleCurrentChange1
(
pageNum
)
{
this
.
pageNum1
=
pageNum
;
this
.
search
(
pageNum
,
this
.
pageSize
);
},
handleSizeChange
(
pageSize
)
{
this
.
pageSize
=
pageSize
;
this
.
search
(
this
.
pageNum
,
pageSize
);
},
reloadPage
()
{
this
.
pageFlag
=
false
;
this
.
$nextTick
(()
=>
{
this
.
pageFlag
=
true
;
});
},
optionsbtn
(
i
)
{
if
(
this
.
aptitudeDtoList
.
length
>
1
&&
this
.
aptitudeDtoList
[
i
].
codeStr
.
length
<
1
)
{
this
.
aptitudeDtoList
.
splice
(
i
,
1
);
i
--
;
}
this
.
$refs
[
i
]
&&
this
.
$refs
[
i
][
0
].
toggleDropDownVisible
(
false
);
var
_this
=
this
;
//延迟500毫秒执行
if
(
this
.
$refs
[
i
])
{
setTimeout
(
function
()
{
_this
.
aptitudeDtoList
[
i
].
nameStr
=
_this
.
$refs
[
i
][
0
].
$refs
.
input
.
$options
.
propsData
.
value
;
},
100
);
}
},
addAptitudeDtoList
(){
var
n
=
0
;
for
(
let
i
=
0
;
i
<
this
.
aptitudeDtoList
.
length
;
i
++
)
{
if
(
!
this
.
aptitudeDtoList
[
i
].
nameStr
)
{
n
++
;
}
}
if
(
n
>
0
)
{
this
.
$message
.
warning
(
"请选择资质条件后,增加资质!"
);
}
else
{
this
.
aptitudeDtoList
.
push
({
nameStr
:
''
,
codeStr
:
[],
});
}
},
reset
(){
Object
.
assign
(
this
.
$data
,
this
.
$options
.
data
());
//重置data
api
.
aptitudeCode
().
then
(
res
=>
{
if
(
res
)
{
this
.
optionss
=
res
;
}
else
{
this
.
optionss
=
aptitudeCode
;
}
}).
catch
(
error
=>
{
this
.
optionss
=
aptitudeCode
;
});
},
clickDialog
(){
this
.
exportData
.
dialogExportVisible
=
true
;
},
clickEXCEL
(
value
,
title
)
{
if
(
this
.
tableData
.
length
===
0
){
this
.
$message
.
error
(
'当前信息列表数据为空,请重新筛选数据'
);
return
}
if
(
value
>
2000
){
return
}
this
.
dataEXCEL
.
exportExeclName
=
title
;
if
(
value
){
this
.
dataEXCEL
.
pageSize
=
value
}
else
{
this
.
dataEXCEL
.
pageSize
=
2000
;
}
api
.
uipSerachExport
(
this
.
dataEXCEL
).
then
(
res
=>
{
if
(
res
.
code
===
200
){
this
.
exportData
.
exportEXCEL
=
true
;
}
else
{
this
.
$message
.
error
(
res
.
msg
);
}
})
},
cancel
(){
this
.
exportData
.
dialogExportVisible
=
false
;
this
.
exportData
.
exportEXCEL
=
{}
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.content
{
padding
:
0px
16px
;
padding-top
:
16px
;
border-radius
:
4px
4px
4px
4px
;
background
:
#ffffff
;
::v-deep
.el-input
.el-input__inner
{
height
:
32px
;
line-height
:
32px
;
}
::v-deep
.el-radio__label
{
margin-left
:
0px
;
padding-left
:
4px
;
margin-right
:
24px
;
}
.content_item
{
padding-top
:
20px
;
display
:
flex
;
align-items
:
center
;
.label
{
width
:
68px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
.label1
{
align-self
:
baseline
;
display
:
inline-block
;
height
:
32px
;
line-height
:
32px
;
}
.content_right
{
.ename_input
{
width
:
405px
;
margin-right
:
20px
;
}
.el-input-group
{
display
:
flex
;
align-items
:
center
;
}
::v-deep
.el-input-group__append
{
padding
:
0px
;
line-height
:
32px
;
font-weight
:
400
;
color
:
#0081ff
;
height
:
32px
;
width
:
80px
;
background
:
#f5f5f5
;
border-radius
:
0px
0px
0px
0px
;
text-align
:
center
;
cursor
:
pointer
;
}
}
.item_ckquery_list
{
display
:
flex
;
align-items
:
center
;
.qualifications-tab
{
margin-right
:
4px
;
border
:
1px
solid
#e0e0e0
;
padding
:
2px
3px
;
border-radius
:
2px
;
height
:
32px
;
margin-top
:
1px
;
span
{
background
:
#fff
;
display
:
inline-block
;
cursor
:
pointer
;
float
:
left
;
border-radius
:
2px
;
padding
:
3px
8px
;
margin-top
:
0
.5px
;
}
.action
{
color
:
#ffffff
;
background
:
#0081ff
;
}
}
.content_item_list
{
width
:
280px
;
height
:
32px
;
line-height
:
32px
;
}
.ckquery_list_right
{
width
:
670px
;
}
}
.item_ckquery_list
.el-input__icon
{
position
:
relative
;
top
:
1px
;
}
.ckquery_list_right
{
width
:
405px
;
top
:
1px
;
.item_ckquery_btn
{
height
:
32px
;
line-height
:
32px
;
top
:
1px
;
border-color
:
#DCDFE6
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
&
:hover
{
color
:
#ffffff
;
}
}
}
.register_count_ipt
{
margin-left
:
0px
;
}
.register_count_ipt
.el-input__inner
{
width
:
174px
;
}
::v-deep
.el-input-group__prepend
{
padding
:
0
8px
;
}
.content-projecttype
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
.projecttype
{
font-weight
:
400
;
color
:
#232323
;
padding
:
1px
5px
;
margin-right
:
4px
;
cursor
:
pointer
;
border-radius
:
3px
3px
3px
3px
;
font-size
:
14px
;
}
.projecttype
:first-child
{
padding-left
:
0px
;
}
.projecttype
:hover
{
background
:
#f3f4f5
;
padding
:
1px
5px
;
}
.activetype
{
background
:
#f3f4f5
;
padding
:
1px
5px
!
important
;
}
}
}
.content_item1
{
margin-top
:
16px
;
padding-top
:
16px
;
border-top
:
1px
solid
#EEEEEE
;
padding-left
:
64px
;
.search-new
{
padding-bottom
:
16px
;
span
{
display
:
inline-block
;
width
:
80px
;
text-align
:
center
;
line-height
:
32px
;
cursor
:
pointer
;
border-radius
:
4px
;
border
:
1px
solid
#D4D4D4
;
opacity
:
1
;
margin-right
:
12px
;
}
}
}
.content_item_padding0
{
padding
:
0
;
}
}
.bottomlist
{
width
:
100%
;
background-color
:
#ffffff
;
border-radius
:
4px
4px
4px
4px
;
.bottomlist-title
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
12px
;
padding
:
16px
;
.title-right
{
display
:
flex
;
align-items
:
center
;
p
:last-child
{
display
:
flex
;
align-items
:
center
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
img
{
width
:
18px
;
height
:
18px
;
}
.excel
{
cursor
:
pointer
;
}
}
}
.bd
{
border-top
:
1px
solid
#EEEEEE
;
margin
:
0
16px
16px
;
}
.bottomlist-title-left
{
display
:
inline-flex
;
align-items
:
center
;
.title-left
{
height
:
16px
;
line-height
:
16px
;
font-size
:
12px
;
font-weight
:
400
;
color
:
#3d3d3d
;
}
}
.bottomlist-content
{
padding-bottom
:
0px
;
}
.table-item-jf
{
padding
:
0px
16px
;
.list-titel-a
{
color
:
#0081ff
;
}
::v-deep
.el-table--border
.el-table__cell
:first-child
.cell
{
padding
:
0px
8px
;
padding-left
:
12px
;
font-size
:
12px
;
font-weight
:
400
;
}
::v-deep
.el-table
th
.el-table__cell
>
.cell
{
padding
:
0px
8px
;
padding-left
:
12px
;
font-size
:
12px
;
font-weight
:
400
;
}
::v-deep
.el-table
th
.el-table__cell.is-leaf
,
::v-deep
.el-table
td
.el-table__cell
{
border-bottom
:
1px
solid
#e6eaf1
;
}
::v-deep
.el-table--border
.el-table__cell
{
border-right
:
1px
solid
#e6eaf1
;
}
::v-deep
.el-table__fixed
::before
{
height
:
0
;
}
.el-table
{
th
,
td
{
.cell
{
font-size
:
12px
;
}
}
}
.title_box
{
font-size
:
14px
;
color
:
#232323
;
.name_box
{
font-size
:
16px
;
font-weight
:
700
;
color
:
#232323
;
margin-bottom
:
12px
;
}
img
{
width
:
28px
;
height
:
28px
;
margin-right
:
12px
;
}
.float_r
{
float
:right
;
.show_more
{
cursor
:
pointer
;
color
:
#0081FF
;
margin-left
:
8px
;
}
}
}
}
.table-item1
{
::v-deep
.el-table__body-wrapper
{
color
:
#232323
;
}
}
.fixed-table
{
overflow
:
initial
;
::v-deep
.el-table__header-wrapper
{
position
:
sticky
;
top
:
56px
;
z-index
:
9
;
}
::v-deep
.el-table__fixed-header-wrapper
{
position
:
sticky
;
z-index
:
9
;
top
:
56px
;
}
::v-deep
.el-table__fixed
{
overflow-x
:
clip
;
overflow-y
:
clip
;
}
}
.table-item-jf1
{
border-top
:
1px
solid
#efefef
;
}
.pagination
{
padding
:
14px
;
.el-pagination
{
float
:
right
;
}
}
}
.line_2
{
overflow
:hidden
;
text-overflow
:ellipsis
;
line-clamp
:
2
;
display
:
-
webkit-box
;
text-overflow
:
-
o-ellipsis-lastline
;
-webkit-line-clamp
:
2
;
-webkit-box-orient
:vertical
;
}
::v-deep
.show_more_dialog
{
border-radius
:
4px
;
width
:
900px
;
.el-dialog__header
{
font-size
:
16px
;
color
:
#232323
;
font-weight
:
700
;
}
.el-dialog__body
{
border-top
:
1px
solid
#E5E6EB
;
padding
:
20px
20px
56px
;
}
.title_box
{
font-size
:
14px
;
color
:
#232323
;
margin-bottom
:
20px
;
height
:
28px
;
line-height
:
28px
;
.name_box
{
font-size
:
16px
;
color
:
#232323
;
margin-bottom
:
12px
;
}
img
{
width
:
28px
;
height
:
28px
;
margin-right
:
12px
;
}
.float_r
{
float
:right
;
.show_more
{
cursor
:
pointer
;
color
:
#0081FF
;
margin-left
:
8px
;
}
}
}
.pagination
{
float
:right
;
margin-top
:
12px
;
margin-right
:
-10px
;
}
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/supplier/components/SearchResult.vue
0 → 100644
View file @
ead87a57
<
template
>
<div
class=
"search_result_box"
>
<el-table
:data=
"tableData"
:header-cell-style=
"
{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" v-horizontal-scroll="'hover'"
class="table-item1 fixed-table" border highlight-current-row>
<el-table-column
type=
"index"
label=
"序号"
fixed
width=
"60"
>
<template
slot-scope=
"scope"
>
<span>
{{
(
pageNum
-
1
)
*
pageSize
+
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"表格名称"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
biddingCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"查询时间"
width=
"189"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
landInfoCount
||
"--"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"154"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
bondBalance
||
"--"
}}
</
template
>
</el-table-column>
</el-table>
<el-pagination
background
:current-page=
"pageNum"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</template>
<
script
>
export
default
{
data
(){
return
{
tableData
:[],
total
:
0
,
pageNum
:
1
,
}
},
methods
:{
handleCurrentChange
(
pageNum
)
{
this
.
pageNum
=
pageNum
;
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.search_result_box
{
background
:
#ffffff
;
padding
:
16px
;
.el-pagination
{
display
:
flex
;
justify-content
:
end
;
padding
:
0
;
margin-right
:
-5px
;
margin-top
:
16px
;
}
}
</
style
>
\ No newline at end of file
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