Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
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
Administrator
dsk-cr20g
Commits
b6d3acd8
Commit
b6d3acd8
authored
Jun 06, 2023
by
caixingbing
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://192.168.60.201/root/dsk-operate-sys
parents
d0b4af02
019654f8
Changes
23
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
3085 additions
and
482 deletions
+3085
-482
BusinessFileController.java
...m/dsk/web/controller/business/BusinessFileController.java
+78
-0
BusinessInfoController.java
...m/dsk/web/controller/business/BusinessInfoController.java
+3
-3
BusinessRelateCompany.java
.../dsk/common/core/domain/entity/BusinessRelateCompany.java
+5
-0
FileUtils.java
...on/src/main/java/com/dsk/common/utils/file/FileUtils.java
+57
-3
project.js
dsk-operate-ui/src/api/project/project.js
+34
-0
public.css
dsk-operate-ui/src/assets/styles/public.css
+1
-1
index.js
dsk-operate-ui/src/router/index.js
+30
-0
index.vue
...iews/enterpriseData/components/SearchEnterprise/index.vue
+1271
-0
index.vue
dsk-operate-ui/src/views/enterpriseData/index.vue
+195
-35
jsnr.vue
...erate-ui/src/views/project/projectList/component/jsnr.vue
+2
-1
lxr.vue
...perate-ui/src/views/project/projectList/component/lxr.vue
+1
-1
xgqy.vue
...erate-ui/src/views/project/projectList/component/xgqy.vue
+30
-26
xmsl.vue
...erate-ui/src/views/project/projectList/component/xmsl.vue
+91
-41
detail.vue
dsk-operate-ui/src/views/project/projectList/detail.vue
+88
-68
index.vue
dsk-operate-ui/src/views/project/projectList/index.vue
+1
-1
details.vue
dsk-operate-ui/src/views/radar/BidRecord/details.vue
+23
-282
details.vue
dsk-operate-ui/src/views/radar/Bidding/details.vue
+325
-0
details.vue
dsk-operate-ui/src/views/radar/Tender/details.vue
+2
-11
index.vue
...operate-ui/src/views/radar/components/BidRecord/index.vue
+3
-3
index.vue
dsk-operate-ui/src/views/radar/components/Bidding/index.vue
+831
-0
index.vue
dsk-operate-ui/src/views/radar/index.vue
+5
-2
BusinessInfoServiceImpl.java
.../com/dsk/system/service/impl/BusinessInfoServiceImpl.java
+2
-3
BusinessRelateCompanyMapper.xml
...resources/mapper/business/BusinessRelateCompanyMapper.xml
+7
-1
No files found.
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessFileController.java
0 → 100644
View file @
b6d3acd8
package
com
.
dsk
.
web
.
controller
.
business
;
import
com.dsk.common.config.RuoYiConfig
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.utils.file.FileUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.io.IOException
;
import
java.util.List
;
/**
* @author lxl
* @Description: 项目文件管理Controller
* @Date 2023/5/30 上午 8:44
**/
@Slf4j
@RestController
@RequestMapping
(
"/business/file"
)
public
class
BusinessFileController
extends
BaseController
{
// 本地资源路径
public
static
final
String
LOCALPATH
=
RuoYiConfig
.
getProfile
();
/**
* 新建文件夹
*/
// @PreAuthorize("@ss.hasPermi('system:file:add')")
// @Log(title = "项目资料文档", businessType = BusinessType.INSERT)
@GetMapping
(
"/new/{filePath}"
)
public
AjaxResult
newFolder
(
@PathVariable
String
filePath
)
{
return
FileUtils
.
newFolder
(
LOCALPATH
+
filePath
)
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
/**
* 删除某个文件或整个文件夹
*/
@GetMapping
(
"/remove/{filePath}"
)
public
AjaxResult
removeFile
(
@PathVariable
String
filePath
)
{
boolean
deleteFile
=
FileUtils
.
deleteFile
(
LOCALPATH
+
filePath
);
return
deleteFile
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
/**
* 获取文件夹中所有文件
*/
@GetMapping
(
"/all/{folderPath}"
)
public
AjaxResult
getAllFiles
(
@PathVariable
String
folderPath
)
{
List
<
String
>
allFiles
=
FileUtils
.
getAllFiles
(
LOCALPATH
+
folderPath
);
return
AjaxResult
.
success
(
allFiles
);
}
/**
* 上传文件及文件夹
* @param url
* @param folderPath
* @return
*/
@GetMapping
(
"/upload/{url}/{folderPath}"
)
public
AjaxResult
uploadFolder
(
@PathVariable
(
"url"
)
String
url
,
@PathVariable
(
"folderPath"
)
String
folderPath
)
throws
IOException
{
return
toAjax
(
FileUtils
.
uploadFolder
(
url
,
LOCALPATH
+
folderPath
));
}
/**
* 下载文件
* @param url
* @param targetFolder
* @return
*/
@GetMapping
(
"/download/{url}/{targetFolder}"
)
public
AjaxResult
downloadFolder
(
@PathVariable
(
"url"
)
String
url
,
@PathVariable
(
"targetFolder"
)
String
targetFolder
)
throws
IOException
{
return
toAjax
(
FileUtils
.
downloadFolder
(
url
,
targetFolder
));
}
}
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessInfoController.java
View file @
b6d3acd8
...
...
@@ -90,7 +90,7 @@ public class BusinessInfoController extends BaseController
* 删除项目列表
*/
// @PreAuthorize("@ss.hasPermi('system:business:remove')")
@Log
(
title
=
"项目管理"
,
businessType
=
BusinessType
.
DELETE
)
//
@Log(title = "项目管理", businessType = BusinessType.DELETE)
@DeleteMapping
(
"/remove/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
(
value
=
"ids"
,
required
=
false
)
Long
[]
ids
)
{
...
...
@@ -101,7 +101,7 @@ public class BusinessInfoController extends BaseController
* 新增项目详情
*/
// @PreAuthorize("@ss.hasPermi('system:business:add')")
@Log
(
title
=
"项目管理"
,
businessType
=
BusinessType
.
INSERT
)
//
@Log(title = "项目管理", businessType = BusinessType.INSERT)
@PostMapping
(
"/add"
)
public
AjaxResult
add
(
@RequestBody
BusinessAddDto
dto
)
{
...
...
@@ -112,7 +112,7 @@ public class BusinessInfoController extends BaseController
* 修改项目详情
*/
// @PreAuthorize("@ss.hasPermi('system:business:edit')")
@Log
(
title
=
"项目管理"
,
businessType
=
BusinessType
.
UPDATE
)
//
@Log(title = "项目管理", businessType = BusinessType.UPDATE)
@PostMapping
(
"/edit"
)
public
AjaxResult
edit
(
@RequestBody
BusinessInfo
businessInfo
)
{
...
...
dsk-common/src/main/java/com/dsk/common/core/domain/entity/BusinessRelateCompany.java
View file @
b6d3acd8
...
...
@@ -53,6 +53,10 @@ public class BusinessRelateCompany extends BaseEntity
@Excel
(
name
=
"对接深度/竞争力度"
)
private
String
depth
;
/** 企业类型 */
@Excel
(
name
=
"企业类型"
)
private
String
companyType
;
@Override
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
...
...
@@ -66,6 +70,7 @@ public class BusinessRelateCompany extends BaseEntity
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"updateTime"
,
getUpdateTime
())
.
append
(
"depth"
,
getDepth
())
.
append
(
"companyType"
,
getCompanyType
())
.
toString
();
}
...
...
dsk-common/src/main/java/com/dsk/common/utils/file/FileUtils.java
View file @
b6d3acd8
...
...
@@ -26,6 +26,14 @@ import org.apache.commons.lang3.ArrayUtils;
import
com.dsk.common.config.RuoYiConfig
;
import
com.dsk.common.utils.uuid.IdUtils
;
import
org.apache.commons.io.FilenameUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.mime.MultipartEntityBuilder
;
import
org.apache.http.entity.mime.content.FileBody
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
/**
* 文件处理工具类
...
...
@@ -292,12 +300,12 @@ public class FileUtils
/**
* 下载文件
*
* @param url 要下载的文件链接
* @param targetFolder 目标文件
* @return
* @throws IOException
*/
public
static
void
downloadFolder
(
String
url
,
String
targetFolder
)
throws
IOException
{
public
static
boolean
downloadFolder
(
String
url
,
String
targetFolder
)
throws
IOException
{
URL
downloadUrl
=
new
URL
(
url
);
HttpURLConnection
connection
=
(
HttpURLConnection
)
downloadUrl
.
openConnection
();
connection
.
setRequestMethod
(
"GET"
);
...
...
@@ -330,6 +338,52 @@ public class FileUtils
}
}
}
return
true
;
}
/**
* 上传文件
* @param url 上传链接
* @param folderPath 文件路径
* @return
* @throws IOException
*/
public
static
boolean
uploadFolder
(
String
url
,
String
folderPath
)
throws
IOException
{
File
folder
=
new
File
(
folderPath
);
if
(!
folder
.
exists
()
||
!
folder
.
isDirectory
())
{
throw
new
IllegalArgumentException
(
"文件夹路径无效: "
+
folderPath
);
}
List
<
File
>
files
=
new
ArrayList
<>();
listFiles
(
folder
,
files
);
try
(
CloseableHttpClient
httpClient
=
HttpClients
.
createDefault
())
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
MultipartEntityBuilder
builder
=
MultipartEntityBuilder
.
create
();
for
(
File
file
:
files
)
{
FileBody
fileBody
=
new
FileBody
(
file
,
ContentType
.
DEFAULT_BINARY
);
builder
.
addPart
(
"file"
,
fileBody
);
}
HttpEntity
multipart
=
builder
.
build
();
httpPost
.
setEntity
(
multipart
);
HttpResponse
response
=
httpClient
.
execute
(
httpPost
);
int
statusCode
=
response
.
getStatusLine
().
getStatusCode
();
if
(
statusCode
!=
200
)
{
throw
new
RuntimeException
(
"上传文件夹失败: "
+
response
.
getStatusLine
().
getReasonPhrase
());
}
}
return
true
;
}
private
static
void
listFiles
(
File
folder
,
List
<
File
>
files
)
{
File
[]
subFiles
=
folder
.
listFiles
();
for
(
File
subFile
:
subFiles
)
{
if
(
subFile
.
isDirectory
())
{
listFiles
(
subFile
,
files
);
}
else
{
files
.
add
(
subFile
);
}
}
}
...
...
dsk-operate-ui/src/api/project/project.js
View file @
b6d3acd8
...
...
@@ -44,6 +44,23 @@ export function editXMNR(param) {
data
:
param
})
}
//项目标签新增
export
function
addLabel
(
param
)
{
return
request
({
url
:
'/business/label/add'
,
method
:
'POST'
,
data
:
param
})
}
//项目标签删除
export
function
removeLabel
(
param
)
{
return
request
({
url
:
'/business/label/remove'
,
method
:
'POST'
,
data
:
param
})
}
//查询项目联系人
export
function
getLXR
(
param
)
{
...
...
@@ -124,3 +141,20 @@ export function editGZDB(param) {
data
:
param
})
}
//查询相关企业
export
function
getXGQY
(
param
)
{
return
request
({
url
:
'/business/company/list'
,
method
:
'GET'
,
params
:
param
})
}
//新增相关企业
export
function
addXGQY
(
param
)
{
return
request
({
url
:
'/business/company/add'
,
method
:
'POST'
,
data
:
param
})
}
dsk-operate-ui/src/assets/styles/public.css
View file @
b6d3acd8
...
...
@@ -318,7 +318,7 @@ select {
.jabph_popper_box
{
position
:
absolute
;
left
:
14
6
px
;
left
:
14
4
px
;
bottom
:
-1px
;
background
:
#ffffff
;
width
:
186px
;
...
...
dsk-operate-ui/src/router/index.js
View file @
b6d3acd8
...
...
@@ -199,6 +199,36 @@ export const constantRoutes = [
}
]
},
{
path
:
'/BidRecord'
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'noredirect'
,
children
:
[
{
path
:
'/radar/BidRecord/details/:id(
\\
d+)'
,
component
:
()
=>
import
(
'@/views/radar/BidRecord/details'
),
name
:
'BidRecordDetails'
,
meta
:
{
title
:
'开标记录详情'
,
icon
:
'radar'
}
}
]
},
{
path
:
'/Bidding'
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'noredirect'
,
children
:
[
{
path
:
'/radar/Bidding/details/:id(
\\
d+)'
,
component
:
()
=>
import
(
'@/views/radar/Bidding/details'
),
name
:
'BiddingDetails'
,
meta
:
{
title
:
'招标计划详情'
,
icon
:
'radar'
}
}
]
},
]
...
...
dsk-operate-ui/src/views/enterpriseData/components/SearchEnterprise/index.vue
0 → 100644
View file @
b6d3acd8
<
template
>
<div>
<div
class=
"content"
>
<div
class=
"content_item"
>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"keyword"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
参投单位
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"jskBidQueryDto.companyName"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"content_right"
>
<div
class=
"select-popper"
>
<span
:class=
"
{color_text:jskBidQueryDto.province.length ||jskBidQueryDto.city.length ||jskBidQueryDto.county.length,}">
行政区划
{{
jskBidQueryDto
.
province
.
length
||
jskBidQueryDto
.
city
.
length
||
jskBidQueryDto
.
county
.
length
?
jskBidQueryDto
.
province
.
length
+
jskBidQueryDto
.
city
.
length
+
jskBidQueryDto
.
county
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-cascader
ref=
"address"
class=
"cascader-region"
v-model=
"addressType"
:options=
"addressList"
:props=
"props"
@
change=
"domicileChange"
collapse-tags
clearable
></el-cascader>
</div>
<el-dropdown
@
command=
"punishDatehandleCommand"
trigger=
"click"
class=
"el-dropdown-land"
ref=
"punishDateShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"punishDateValue ? 'color_text' : ''"
>
发布时间
{{
punishDateValue
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<div>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-for=
"(item, i) in punishDateOptions"
class=
"el-dropdown-land"
:class=
" punishDateValue && punishDateValue == item.value ? 'color_text': '' "
:key=
"i"
:command=
"item.value"
>
<div
@
mouseenter=
"hidePoper"
>
{{
item
.
label
}}
</div>
</el-dropdown-item>
<el-dropdown-item
command=
"自定义"
style=
"padding: 0; text-indent: 20px"
>
<div
@
mouseenter=
"mouseenter"
>
<span
:class=
"punishDateValue == '自定义' ? 'color_text' : ''"
>
自定义
<i
class=
"el-icon-arrow-right"
></i>
</span>
<el-date-picker
v-if=
"punishDateShowPopper"
@
change=
"changepunishDate"
class=
"land_date_picker"
v-model=
"punishDate"
ref=
"datePicker"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
<el-dropdown
@
command=
"tenderDatehandleCommand"
trigger=
"click"
ref=
"tenderDateShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"tenderDateValue ? 'color_text' : ''"
>
开标时间
{{
tenderDateValue
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<div>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-for=
"(item, i) in punishDateOptions"
:class=
" tenderDateValue && tenderDateValue == item.value ? 'color_text' : ''"
:key=
"i"
:command=
"item.value"
>
<div
@
mouseenter=
"hidePoper('bid')"
>
{{
item
.
label
}}
</div>
</el-dropdown-item>
<el-dropdown-item
command=
"自定义"
style=
"padding: 0; text-indent: 20px"
>
<div
@
mouseenter=
"mouseenter('bid')"
>
<span
:class=
"tenderDateValue == '自定义' ? 'color_text' : ''"
>
自定义
<i
class=
"el-icon-arrow-right"
></i></span>
<el-date-picker
v-if=
"tenderDateShowPopper"
@
change=
"changepunishDate('bid')"
class=
"land_date_picker"
v-model=
"tenderDate"
ref=
"tenderDatePicker"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
</div>
</div>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"geduan"
>
</div>
</div>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"search-new"
>
<span
@
click=
"search()"
>
查询
</span>
<span
@
click=
"reset"
>
重置
</span>
</div>
</div>
</div>
<div
class=
"bottomlist"
>
<div
class=
"bottomlist-title"
>
<div></div>
<div
class=
"title-right"
>
<p>
共有
{{
total
}}
条
</p>
<p>
<img
src=
"@/assets/images/EXCEL.png"
alt=
""
>
<span>
导出EXCEL
</span>
</p>
</div>
</div>
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
<router-link
:to=
"'/radar/BidRecord/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</router-link>
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
<span
class=
"list-label"
>
市政工程
</span>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
项目业主:
</span>
<span
class=
"blue"
>
芜湖旭日机械制造有限公司
</span>
</p>
<p
class=
"list-content-text"
>
<span>
审批部门:
</span>
<span>
芜湖旭日
</span>
</p>
<p
class=
"list-content-text"
>
<span>
审批结果:
</span>
<span>
12345.62万
</span>
</p>
<p
class=
"list-content-text"
>
<span>
审批结果:
</span>
<span>
2014-05-12
</span>
</p>
<p
class=
"list-content-text"
>
<span>
总投资:
</span>
<span>
62654
</span>
</p>
<p
class=
"list-content-text"
>
<span>
计划开工日期:
</span>
<span>
62654
</span>
</p>
<p
class=
"list-content-text"
>
<span>
计划完工日期:
</span>
<span>
626
</span>
</p>
<p
class=
"list-content-text"
>
<span>
是否为向民间推介项目:
</span>
<span>
62654
</span>
</p>
</div>
</li>
</ul>
<div
class=
"pagination clearfix"
v-show=
"total>0"
>
<el-pagination
background
:page-size=
"pageSize"
:current-page=
"page"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</div>
</div>
</
template
>
<
script
>
import
jsk_data
from
'../../../../../public/jsk.json'
;
export
default
{
name
:
'SearchEnterprise'
,
data
()
{
return
{
addressList
:
[],
addressType
:
[],
props
:
{
multiple
:
true
,
expandTrigger
:
"hover"
,
value
:
"id"
,
},
keyword
:
""
,
keywordNot
:
""
,
fieldshow
:
false
,
fieldText
:
'默认排序'
,
field
:
''
,
//查询结果排序方式
fieldOptions
:
[
{
key
:
""
,
value
:
"默认排序"
,
status
:
true
,
},
{
key
:
"publishDate"
,
value
:
"发布日期从晚到早"
,
status
:
false
,
},
],
page
:
1
,
limit
:
20
,
punishDateOptions
:
[
{
label
:
"不限"
,
value
:
""
,
},
{
label
:
"今天"
,
value
:
"今天"
,
},
{
label
:
"近3日"
,
value
:
"近3日"
,
},
{
label
:
"近7日"
,
value
:
"近7日"
,
},
{
label
:
"近1个月"
,
value
:
"近1个月"
,
},
{
label
:
"近3个月"
,
value
:
"近3个月"
,
},
{
label
:
"近半年"
,
value
:
"近半年"
,
},
{
label
:
"近1年"
,
value
:
"近1年"
,
},
],
punishDateValue
:
""
,
jskBidQueryDto
:
{
hasMoney
:
""
,
province
:
[],
city
:
[],
county
:
[]
},
domicile
:
[],
provinceText
:[],
provinceList
:[],
punishDate
:
""
,
punishDateShowPopper
:
false
,
tenderDateValue
:
""
,
tenderDate
:
""
,
tenderDateShowPopper
:
false
,
pageFlag
:
true
,
conditionsArr
:
[],
tableData
:[],
total
:
6000
,
page
:
1
,
pageSize
:
20
};
},
computed
:
{
checkJskBidQueryDto
()
{
let
arr
=
[];
let
flag
=
false
;
let
data
=
{};
if
(
this
.
keyword
){
data
=
{
title
:
"项目包含:"
,
keyid
:
"keyword"
,
value
:
this
.
keyword
,
key
:
"keyword"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
keywordNot
){
data
=
{
title
:
"项目排除:"
,
keyid
:
"keywordNot"
,
value
:
this
.
keywordNot
,
key
:
"keywordNot"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
companyName
){
data
=
{
title
:
"参投单位:"
,
keyid
:
"companyName"
,
value
:
this
.
jskBidQueryDto
.
companyName
,
key
:
"companyName"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
startBidMoney
){
data
=
{
title
:
"最低金额:"
,
keyid
:
"startBidMoney"
,
value
:
this
.
jskBidQueryDto
.
startBidMoney
,
key
:
"startBidMoney"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
endBidMoney
){
data
=
{
title
:
"最高金额:"
,
keyid
:
"endBidMoney"
,
value
:
this
.
jskBidQueryDto
.
endBidMoney
,
key
:
"endBidMoney"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
hasMoney
){
data
=
{
title
:
"包含投标报价未公示"
,
keyid
:
"hasMoney"
,
value
:
this
.
jskBidQueryDto
.
hasMoney
,
key
:
"hasMoney"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
domicile
.
length
>
0
)
{
data
=
{
title
:
"行政区划:"
,
keyid
:
"domicile"
,
value
:
this
.
domicile
.
join
(
","
),
key
:
"domicile"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
punishDateValue
==
"自定义"
){
data
=
{
title
:
"发布时间:"
,
keyid
:
"punishDate"
,
value
:
this
.
jskBidQueryDto
.
startPunishDate
+
"~"
+
this
.
jskBidQueryDto
.
endPunishDate
,
key
:
"punishDate"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
punishDateValue
&&
this
.
punishDateValue
!=
"自定义"
){
data
=
{
title
:
"发布时间:"
,
keyid
:
"punishDate"
,
value
:
this
.
punishDateValue
,
key
:
"punishDate"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
tenderDateValue
==
"自定义"
){
data
=
{
title
:
"开标时间:"
,
keyid
:
"tenderDate"
,
value
:
this
.
jskBidQueryDto
.
startTenderTime
+
"~"
+
this
.
jskBidQueryDto
.
endTenderTime
,
key
:
"tenderDate"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
tenderDateValue
&&
this
.
tenderDateValue
!=
"自定义"
){
data
=
{
title
:
"开标时间:"
,
keyid
:
"tenderDate"
,
value
:
this
.
tenderDateValue
,
key
:
"tenderDate"
}
flag
=
true
;
arr
.
push
(
data
)
}
this
.
conditionsArr
=
arr
return
flag
;
},
},
mounted
()
{
if
(
this
.
$route
.
query
.
keyword
)
{
this
.
keyword
=
this
.
$route
.
query
.
keyword
;
}
this
.
addressListfn
();
},
methods
:
{
// 关键词推荐
cliclikeywoder
()
{
this
.
$refs
.
keyword
.
show
();
},
keywordClick
(
val
)
{
this
.
keyword
=
val
},
refresh
(
value
)
{
if
(
value
)
{
this
.
$router
.
go
(
0
)
}
},
search
(
page
,
limit
,
exportFlag
)
{
if
(
!
page
)
{
this
.
page
=
1
;
}
if
(
!
limit
)
{
this
.
limit
=
20
;
}
if
(
!
page
&&
!
limit
)
{
this
.
reloadPage
();
}
var
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
data
.
province
=
data
.
province
.
join
(
","
);
data
.
city
=
data
.
city
.
join
(
","
);
data
.
county
=
data
.
county
.
join
(
","
);
let
params
=
{
page
:
{
page
:
this
.
page
,
limit
:
this
.
limit
,
field
:
this
.
field
,
},
jskBidQueryDto
:
data
,
};
if
(
this
.
keyword
){
params
.
keyword
=
this
.
keyword
}
else
{
delete
params
.
keyword
}
if
(
this
.
keywordNot
){
params
.
keywordNot
=
this
.
keywordNot
}
else
{
delete
params
.
keywordNot
}
this
.
$emit
(
"search"
,
params
)
},
//关闭支付弹窗
resolve
(
value
)
{
if
(
value
)
{
this
.
$router
.
go
(
0
)
}
},
provinceChange
(
arr
){
this
.
provinceText
=
[];
if
(
arr
.
length
>
0
){
arr
.
map
(
item
=>
{
this
.
provinceText
.
push
(
item
.
label
);
})
}
},
changeMoney
(
text
)
{
if
(
this
.
jskBidQueryDto
.
startBidMoney
&&
this
.
jskBidQueryDto
.
endBidMoney
&&
Number
(
this
.
jskBidQueryDto
.
startBidMoney
)
>
Number
(
this
.
jskBidQueryDto
.
endBidMoney
)
)
{
this
.
$message
.
warning
(
"最低金额不能大于最高金额!"
);
text
==
"start"
?
(
this
.
jskBidQueryDto
.
startBidMoney
=
""
)
:
(
this
.
jskBidQueryDto
.
endBidMoney
=
""
);
}
},
reloadPage
()
{
this
.
pageFlag
=
false
;
this
.
$nextTick
(()
=>
{
this
.
pageFlag
=
true
;
});
},
handleCurrentChange
(
page
)
{
this
.
page
=
page
;
this
.
search
(
page
,
this
.
limit
);
},
handleSizeChange
(
limit
)
{
this
.
limit
=
limit
;
this
.
search
(
this
.
page
,
limit
);
},
deleteDomicile
()
{
this
.
$refs
.
address
.
handleClear
();
},
domicileChange
()
{
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
let
province
=
[],
city
=
[],
county
=
[];
this
.
domicile
=
[];
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
arr
[
i
].
hasChildren
&&
city
.
push
(
arr
[
i
].
value
);
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
!
arr
[
i
].
hasChildren
&&
county
.
push
(
arr
[
i
].
value
);
!
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
else
{
province
.
push
(
arr
[
i
].
value
);
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
province
=
province
;
obj
.
city
=
city
;
obj
.
county
=
county
;
this
.
jskBidQueryDto
=
obj
;
},
punishDatehandleCommand
(
command
)
{
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
if
(
command
&&
command
!=
"自定义"
)
{
this
.
punishDateValue
=
command
;
this
.
$refs
.
punishDateShowPopper
.
hide
();
const
datetime
=
new
Date
();
var
startTime
,
endTime
,
Year
,
Month
,
Day
;
Year
=
datetime
.
getFullYear
();
Month
=
datetime
.
getMonth
()
+
1
;
Day
=
datetime
.
getDate
();
switch
(
command
)
{
case
"今天"
:
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
break
;
case
"近3日"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Day
>
3
)
{
startTime
=
Year
+
"-"
+
Month
+
"-"
+
(
Day
-
3
);
}
else
{
let
newTime
=
datetime
.
getTime
()
-
3
*
24
*
60
*
60
*
1000
Year
=
new
Date
(
newTime
).
getFullYear
();
Month
=
new
Date
(
newTime
).
getMonth
()
+
1
;
Day
=
new
Date
(
newTime
).
getDate
();
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
}
break
;
case
"近7日"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Day
>
7
)
{
startTime
=
Year
+
"-"
+
Month
+
"-"
+
(
Day
-
7
);
}
else
{
let
newTime
=
datetime
.
getTime
()
-
7
*
24
*
60
*
60
*
1000
Year
=
new
Date
(
newTime
).
getFullYear
();
Month
=
new
Date
(
newTime
).
getMonth
()
+
1
;
Day
=
new
Date
(
newTime
).
getDate
();
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
}
break
;
case
"近1个月"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
1
)
{
startTime
=
Year
+
"-"
+
(
Month
-
1
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
1
)
+
"-1"
;
}
break
;
case
"近3个月"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
3
)
{
startTime
=
Year
+
"-"
+
(
Month
-
3
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
3
)
+
"-1"
;
}
break
;
case
"近半年"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
6
)
{
startTime
=
Year
+
"-"
+
(
Month
-
6
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
6
)
+
"-1"
;
}
break
;
case
"近1年"
:
startTime
=
Year
-
1
+
"-"
+
Month
+
"-"
+
Day
;
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
break
;
case
"自定义"
:
if
(
!
this
.
punishDate
)
{
this
.
punishDateValue
=
""
;
}
break
;
}
if
(
startTime
){
var
start
=
startTime
.
split
(
'-'
);
startTime
=
start
.
map
((
item
)
=>
{
if
(
item
.
length
==
1
){
return
'0'
+
item
}
else
{
return
item
}
})
startTime
=
startTime
.
join
(
'-'
)
}
if
(
endTime
){
var
end
=
endTime
.
split
(
'-'
);
endTime
=
end
.
map
((
item
)
=>
{
if
(
item
.
length
==
1
){
return
'0'
+
item
}
else
{
return
item
}
})
endTime
=
endTime
.
join
(
'-'
)
}
obj
.
startPunishDate
=
startTime
;
obj
.
endPunishDate
=
endTime
;
}
else
if
(
command
==
"自定义"
)
{
this
.
$refs
.
datePicker
.
pickerVisible
=
true
;
}
else
{
this
.
$refs
.
punishDateShowPopper
.
hide
();
this
.
punishDateValue
=
""
;
this
.
punishDate
=
""
;
obj
.
startPunishDate
=
""
;
obj
.
endPunishDate
=
""
;
}
this
.
jskBidQueryDto
=
obj
;
},
tenderDatehandleCommand
(
command
)
{
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
if
(
command
&&
command
!=
"自定义"
)
{
this
.
tenderDateValue
=
command
;
this
.
$refs
.
tenderDateShowPopper
.
hide
();
const
datetime
=
new
Date
();
var
startTime
,
endTime
,
Year
,
Month
,
Day
;
Year
=
datetime
.
getFullYear
();
Month
=
datetime
.
getMonth
()
+
1
;
Day
=
datetime
.
getDate
();
switch
(
command
)
{
case
"今天"
:
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
break
;
case
"近3日"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Day
>
3
)
{
startTime
=
Year
+
"-"
+
Month
+
"-"
+
(
Day
-
3
);
}
else
{
let
newTime
=
datetime
.
getTime
()
-
3
*
24
*
60
*
60
*
1000
Year
=
new
Date
(
newTime
).
getFullYear
();
Month
=
new
Date
(
newTime
).
getMonth
()
+
1
;
Day
=
new
Date
(
newTime
).
getDate
();
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
}
break
;
case
"近7日"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Day
>
7
)
{
startTime
=
Year
+
"-"
+
Month
+
"-"
+
(
Day
-
7
);
}
else
{
let
newTime
=
datetime
.
getTime
()
-
7
*
24
*
60
*
60
*
1000
Year
=
new
Date
(
newTime
).
getFullYear
();
Month
=
new
Date
(
newTime
).
getMonth
()
+
1
;
Day
=
new
Date
(
newTime
).
getDate
();
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
}
break
;
case
"近1个月"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
1
)
{
startTime
=
Year
+
"-"
+
(
Month
-
1
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
1
)
+
"-1"
;
}
break
;
case
"近3个月"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
3
)
{
startTime
=
Year
+
"-"
+
(
Month
-
3
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
3
)
+
"-1"
;
}
break
;
case
"近半年"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
6
)
{
startTime
=
Year
+
"-"
+
(
Month
-
6
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
6
)
+
"-1"
;
}
break
;
case
"近1年"
:
startTime
=
Year
-
1
+
"-"
+
Month
+
"-"
+
Day
;
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
break
;
case
"自定义"
:
if
(
!
this
.
tenderDate
)
{
this
.
tenderDateValue
=
""
;
}
break
;
}
if
(
startTime
){
var
start
=
startTime
.
split
(
'-'
);
startTime
=
start
.
map
((
item
)
=>
{
if
(
item
.
length
==
1
){
return
'0'
+
item
}
else
{
return
item
}
})
startTime
=
startTime
.
join
(
'-'
)
}
if
(
endTime
){
var
end
=
endTime
.
split
(
'-'
);
endTime
=
end
.
map
((
item
)
=>
{
if
(
item
.
length
==
1
){
return
'0'
+
item
}
else
{
return
item
}
})
endTime
=
endTime
.
join
(
'-'
)
}
obj
.
startTenderTime
=
startTime
;
obj
.
endTenderTime
=
endTime
;
}
else
if
(
command
==
"自定义"
)
{
this
.
$refs
.
tenderDatePicker
.
pickerVisible
=
true
;
}
else
{
this
.
$refs
.
tenderDateShowPopper
.
hide
();
this
.
tenderDateValue
=
""
;
this
.
tenderDate
=
""
;
obj
.
startTenderTime
=
""
;
obj
.
endTenderTime
=
""
;
}
this
.
jskBidQueryDto
=
obj
;
},
changepunishDate
(
type
)
{
if
(
type
==
'bid'
&&
this
.
tenderDate
){
this
.
tenderDateValue
=
"自定义"
;
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
startTenderTime
=
this
.
tenderDate
[
0
];
obj
.
endTenderTime
=
this
.
tenderDate
[
1
];
this
.
jskBidQueryDto
=
obj
;
}
else
if
(
this
.
punishDate
)
{
this
.
punishDateValue
=
"自定义"
;
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
startPunishDate
=
this
.
punishDate
[
0
];
obj
.
endPunishDate
=
this
.
punishDate
[
1
];
this
.
jskBidQueryDto
=
obj
;
}
},
addressListfn
()
{
var
str
=
[];
for
(
let
x
=
0
;
x
<
3
;
x
++
)
{
for
(
let
i
=
0
;
i
<
jsk_data
.
length
;
i
++
)
{
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
1
)
{
str
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
children
:
jsk_data
[
i
].
id
==
900000
?
undefined
:[],
});
}
else
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
2
&&
str
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
id
==
jsk_data
[
i
].
parentId
)
{
str
[
j
].
children
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
children
:
[],
});
}
}
}
else
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
3
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
children
){
for
(
let
k
=
0
;
k
<
str
[
j
].
children
.
length
;
k
++
)
{
if
(
str
[
j
].
children
[
k
].
id
==
jsk_data
[
i
].
parentId
)
{
str
[
j
].
children
[
k
].
children
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
});
}
}
}
}
}
}
}
this
.
addressList
=
str
;
},
hidePoper
(
type
)
{
if
(
type
==
'bid'
&&
this
.
$refs
.
tenderDatePicker
){
this
.
$refs
.
tenderDatePicker
.
pickerVisible
=
false
;
}
else
if
(
this
.
$refs
.
datePicker
){
this
.
$refs
.
datePicker
.
pickerVisible
=
false
;
}
},
mouseenter
(
type
)
{
if
(
type
==
'bid'
){
this
.
tenderDateShowPopper
=
true
;
if
(
this
.
tenderDateValue
==
"自定义"
){
this
.
$nextTick
(()
=>
{
this
.
$refs
.
tenderDatePicker
.
pickerVisible
=
true
;
});
}
}
else
{
this
.
punishDateShowPopper
=
true
;
if
(
this
.
punishDateValue
==
"自定义"
){
this
.
$nextTick
(()
=>
{
this
.
$refs
.
datePicker
.
pickerVisible
=
true
;
});
}
}
},
clearpunishDate
(
type
)
{
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
if
(
type
==
'bid'
){
this
.
tenderDate
=
""
;
this
.
tenderDateValue
=
""
;
obj
.
startTenderTime
=
""
;
obj
.
endTenderTime
=
""
;
}
else
{
this
.
punishDate
=
""
;
this
.
punishDateValue
=
""
;
obj
.
startPunishDate
=
""
;
obj
.
endPunishDate
=
""
;
}
this
.
jskBidQueryDto
=
obj
;
},
reset
()
{
Object
.
assign
(
this
.
$data
,
this
.
$options
.
data
.
call
(
this
));
//重置data
this
.
init
();
this
.
$emit
(
"reset"
);
},
init
(){
this
.
search
();
this
.
addressListfn
();
},
handsequencingList
(
index
)
{
this
.
fieldshow
=
false
;
this
.
field
=
this
.
fieldOptions
[
index
].
key
;
for
(
let
i
=
0
;
i
<
this
.
fieldOptions
.
length
;
i
++
)
{
this
.
fieldOptions
[
i
].
status
=
false
;
}
this
.
fieldText
=
this
.
fieldOptions
[
index
].
value
;
this
.
fieldOptions
[
index
].
status
=
true
;
this
.
search
();
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.content
{
padding
:
0px
16px
;
border-radius
:
4px
4px
4px
4px
;
background
:
#FFFFFF
;
.content_item
{
padding-top
:
12px
;
display
:
flex
;
align-items
:
center
;
.label
{
width
:
84px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
.content_right
{
.ename_input
{
width
:
640px
;
margin-right
:
20px
;
}
.land_ipt_470
{
width
:
640px
;
}
}
.item_ckquery_list
{
display
:
flex
;
}
.item_ckquery_list
.el-input__icon
{
position
:
relative
;
top
:
1px
;
}
.ckquery_list_right
{
width
:
640px
;
}
.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_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
;
border-bottom
:
1px
solid
#EFEFEF
;
.title-right
{
display
:
flex
;
align-items
:
center
;
p
:first-child
{
font-size
:
12px
;
font-weight
:
400
;
color
:
#3D3D3D
;
margin-right
:
10px
;
}
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
;
}
}
}
.bottomlist-content
{
padding-bottom
:
0px
;
}
.bottomlist-list
{
padding
:
16px
;
font-size
:
14px
;
border-bottom
:
1px
solid
#EFEFEF
;
padding-bottom
:
14px
;
.list-titel
{
font-size
:
16px
;
font-weight
:
700
;
color
:
#3D3D3D
;
line-height
:
19px
;
.list-titel-a
{
text-decoration
:
none
;
color
:
#3D3D3D
;
}
a
:hover
,
a
:visited
,
a
:link
,
a
:active
{
color
:
#3D3D3D
;
}
}
.content-label
{
margin-top
:
12px
;
.list-label
{
background
:
#F3F3FF
;
color
:
#8491E8
;
border-radius
:
1px
1px
1px
1px
;
padding
:
3px
7px
;
font-size
:
12px
;
}
}
.list-content
{
margin-top
:
8px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
.list-content-text
{
margin-top
:
7px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
margin-right
:
27px
;
font-size
:
14px
;
span
:first-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
line-height
:
15px
}
span
:last-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
line-height
:
15px
}
.blue
{
color
:
#0081FF
!
important
;
cursor
:
pointer
;
}
}
}
.list-addree
{
width
:
auto
;
background
:
#F3F4F5
;
display
:
inline-flex
;
margin-top
:
7px
;
.list-content-text
{
margin-top
:
0px
;
span
{
line-height
:
30px
!
important
;
}
}
img
{
width
:
14px
;
margin
:
0
8px
;
}
}
}
.bottomlist-list
:hover
{
background
:
#F6F9FC
;
cursor
:
pointer
;
}
.pagination
{
padding
:
14px
;
.el-pagination
{
float
:
right
;
}
}
}
</
style
>
<
style
lang=
"scss"
scoped
>
#bidRecord_wrap
{
padding
:
0
16px
;
font-size
:
14px
;
.land_content_wrap
{
display
:
flex
;
line-height
:
34px
;
.land_content_wrap_label
{
color
:
#666666
;
margin-right
:
4px
;
}
}
.data_list
{
width
:
1184px
;
margin
:
0
auto
;
.data_list_head
{
height
:
50px
;
line-height
:
50px
;
color
:
#666666
;
.data_list_count
{
color
:
#ff2a00
;
font-weight
:
bold
;
}
}
.data_list_item
{
border-top
:
1px
solid
#efefef
;
padding
:
24px
16px
;
padding-left
:
16px
;
margin-left
:
-16px
;
&
:hover
{
background
:
#f5faff
;
}
.data_list_h1
{
width
:
1168px
;
font-size
:
18px
;
font-weight
:
bold
;
color
:
#333333
;
line-height
:
24px
;
margin-bottom
:
10px
;
text-decoration
:none
;
word-break
:
break-all
;
display
:
inline-block
;
}
.data_list_h1_1
{
cursor
:
pointer
;
}
.label_box
{
padding-bottom
:
6px
;
display
:
flex
;
.label_span
{
padding
:
0
8px
;
display
:
inline-block
;
height
:
22px
;
line-height
:
22px
;
border-radius
:
2px
2px
2px
2px
;
margin-right
:
8px
;
font-size
:
12px
;
}
.label_span1
{
background
:
#e4f3fd
;
color
:
#0081ff
;
}
.label_span2
{
background
:
#f3f3ff
;
color
:
#8491e8
;
}
.label_span3
{
background
:
#e3f6f8
;
color
:
#44bcc4
;
}
.label_span4
{
background
:
#e3f6f8
;
color
:
#44bcc4
;
}
}
.label_wrap
{
font-size
:
14px
;
margin-top
:
10px
;
line-height
:
18px
;
display
:
flex
;
.label_item
{
color
:
#999999
;
}
.label_item1
{
position
:
relative
;
top
:
-3px
;
}
.company
{
color
:
#0081ff
;
cursor
:
pointer
;
margin-right
:
20px
;
}
.label_con
{
color
:
#333333
;
margin-right
:
20px
;
max-width
:
900px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.label_con1
{
width
:
1042px
;
display
:
inline-block
;
margin
:
0
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
}
}
}
.content_li
{
padding
:
16px
0
;
display
:
flex
;
align-items
:
center
;
position
:
relative
;
.content_item
{
.include-keywords
{
display
:
flex
;
align-items
:
center
;
position
:
relative
;
.lefttltel
{
display
:
inline-block
;
background
:
#f5f5f5
;
color
:
#333
;
border
:
1px
solid
#efefef
;
border-right
:
none
;
opacity
:
1
;
width
:
71px
;
height
:
40px
;
text-align
:
center
;
line-height
:
40px
;
}
.el-input
{
line-height
:
40px
;
border-radius
:
0
;
::v-deep
.el-input__inner
{
width
:
100%
;
height
:
40px
;
line-height
:
40px
;
border-radius
:
0
;
}
}
.commonly-input
{
::v-deep
.el-input__inner
{
padding-right
:
100px
;
}
}
.commonly
{
position
:
absolute
;
top
:
10px
;
right
:
16px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
#0081ff
;
cursor
:
pointer
;
}
}
}
}
}
</
style
>
dsk-operate-ui/src/views/enterpriseData/index.vue
View file @
b6d3acd8
<
template
>
<div
class=
"app-container"
>
<iframe
ref=
"companyIframe"
marginwidth=
"0"
marginheight=
"0"
frameborder=
"0"
scrolling=
"no"
width=
"100%"
:height=
"iframeHight"
src=
"https://pre.jiansheku.com/enterprise/56546856314e567a69/"
/>
<div
class=
"content"
>
<div
class=
"combined-title"
>
<div
class=
"title-right"
>
<div
class=
"tab"
>
<div
style=
"position:relative"
v-for=
"(itme,i) in personnelList"
:class=
"itme.status==true?'active':'' "
:key=
'i'
@
click=
"personnelListbtn(i)"
>
<p>
{{
itme
.
value
}}
</p>
</div>
</
template
>
</div>
<p
class=
"solid"
></p>
</div>
</div>
</div>
<!-- 企业专项债 -->
<!--
<debtProject
v-if=
"personnelHerf=='debtProject'"
/>
-->
<!-- 查企业 -->
<SearchEnterprise
v-if=
"personnelHerf=='SearchEnterprise'"
/>
</div>
</
template
>
<
script
>
import
SearchEnterprise
from
"./components/SearchEnterprise/index.vue"
;
export
default
{
name
:
'EnterpriseData'
,
components
:
{
},
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'enterpriseData'
,
components
:
{
SearchEnterprise
},
data
()
{
return
{
iframeHight
:
null
,
iframeWin
:
{}
}
// tablist
personnelList
:
[{
key
:
'1'
,
status
:
false
,
value
:
'查业主单位'
,
},
computed
:
{
{
key
:
'SearchEnterprise'
,
status
:
true
,
value
:
'查建筑企业'
,
},
created
()
{
}
,
mounted
()
{
this
.
getInframeHight
()
]
,
personnelHerf
:
'SearchEnterprise'
}
},
created
()
{},
methods
:
{
getInframeHight
()
{
const
_this
=
this
window
.
addEventListener
(
'message'
,
function
(
e
)
{
const
data
=
e
.
data
if
(
data
&&
typeof
data
===
'object'
&&
data
.
height
)
{
_this
.
iframeHight
=
data
.
height
personnelListbtn
(
index
)
{
for
(
var
i
=
0
;
i
<
this
.
personnelList
.
length
;
i
++
)
{
this
.
personnelList
[
i
].
status
=
false
;
}
})
this
.
personnelList
[
index
].
status
=
true
;
this
.
personnelHerf
=
this
.
personnelList
[
index
].
key
;
},
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.app-container
{
margin
:
12px
24px
;
padding
:
0
;
}
.content
{
padding
:
0px
16px
;
background
:
#FFFFFF
;
}
.app-container
.combined-title
{
display
:
flex
;
padding-top
:
16px
;
align-items
:
center
}
.app-container
.combined-title
.title-icon
{
display
:
inline-block
;
width
:
6px
;
height
:
26px
;
background
:
#0081FF
;
border-radius
:
0px
0px
0px
0px
;
opacity
:
1
;
margin-right
:
18px
;
}
.app-container
.combined-title
.title-right
{
display
:
flex
;
width
:
100%
;
position
:
relative
;
height
:
40px
;
}
.app-container
.combined-title
.title-right
.title-text
{
font-size
:
16px
;
font-weight
:
bold
;
color
:
#333333
;
line-height
:
40px
;
}
.app-container
.combined-title
.title-right
.title-add
{
color
:
#0081FF
;
cursor
:
pointer
;
position
:
absolute
;
right
:
0
;
}
.app-container
.combined-title
.title-right
.title-addyj
{
top
:
5px
;
}
.app-container
.combined-title
.title-right
.title-add
.add-img
{
position
:
relative
;
top
:
-1px
;
margin-right
:
6px
;
}
.app-container
.combined-title
.title-right
.solid
{
width
:
100%
;
height
:
1px
;
background-color
:
#EEEEEE
;
position
:
absolute
;
bottom
:
-1px
;
left
:
0
;
z-index
:
1
;
}
.tab
{
display
:
flex
;
z-index
:
2
;
}
.tab_p_32
{
padding-right
:
32px
;
padding-left
:
32px
;
}
.tab
div
{
cursor
:
pointer
;
color
:
#666666
;
font-size
:
16px
;
text-align
:
center
;
margin-right
:
32px
;
line-height
:
40px
;
}
.tab
div
p
{
display
:
inline-block
;
padding
:
0px
;
}
.tab
div
.logo
{
color
:
#fff
;
font-weight
:
400
;
font-size
:
10px
;
position
:
absolute
;
top
:
-6px
;
right
:
-24px
;
display
:
inline-block
;
line-height
:
14px
;
padding
:
1px
2px
;
text-align
:
center
;
background
:
#3663DE
;
border-radius
:
2px
2px
2px
2px
;
}
.tab
div
.triangle
{
display
:
inline-block
;
width
:
0px
;
height
:
0px
;
border-left
:
3px
solid
transparent
;
border-right
:
3px
solid
transparent
;
border-top
:
4px
solid
#3663DE
;
position
:
absolute
;
top
:
9
.5px
;
right
:
-3px
;
}
.tab
.active
{
color
:
#0081FF
;
}
.tab
.active
.triangle
{
border-top
:
4px
solid
#0081FF
;
}
.tab
.active
.logo
{
background
:
#0081FF
;
}
.tab
.active
p
{
border-bottom
:
2px
solid
#0081FF
;
font-weight
:
bold
;
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/project/projectList/component/jsnr.vue
View file @
b6d3acd8
...
...
@@ -251,8 +251,9 @@
param
.
id
=
this
.
id
editXMNR
(
param
).
then
(
result
=>
{
if
(
result
.
code
==
200
)
this
.
$message
.
success
(
'修改成功'
)
this
.
$message
.
success
(
'修改成功
!
'
)
else
{
this
.
$message
.
error
(
res
.
msg
)
this
.
getJSNR
()
}
})
...
...
dsk-operate-ui/src/views/project/projectList/component/lxr.vue
View file @
b6d3acd8
...
...
@@ -61,7 +61,7 @@
</el-table>
<div
class=
"bottems"
>
<div
class=
"btn btn_primary h28"
@
click=
"opennew"
><div
class=
"img img1"
></div>
新增联系人
</div>
<el-pagination
<el-pagination
v-if=
"total>searchParam.pageSize"
background
:page-size=
"searchParam.pageSize"
:current-page=
"searchParam.pageNum"
...
...
dsk-operate-ui/src/views/project/projectList/component/xgqy.vue
View file @
b6d3acd8
...
...
@@ -4,8 +4,10 @@
<el-card
class=
"box-card noborder"
>
<div
class=
"cardtitles"
>
相关企业
</div>
<div
class=
"searchbtns"
>
<el-select
class=
"select"
placeholder=
"企业角色"
>
<option
label=
"111"
value=
"222"
></option>
<el-select
class=
"select"
placeholder=
"企业类型"
>
<el-select
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in companytype"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</el-select>
<div
class=
"searchInput"
>
<el-input
type=
"text"
placeholder=
"输入关键词查询"
></el-input>
...
...
@@ -85,9 +87,7 @@
<span>
新建相关企业
</span>
</div>
<div
class=
"types"
>
<div
:class=
"{'on':types==1}"
@
click=
"types=1"
><i></i>
业主单位
</div>
<div
:class=
"{'on':types==2}"
@
click=
"types=2"
><i></i>
合作伙伴
</div>
<div
:class=
"{'on':types==3}"
@
click=
"types=3"
><i></i>
竞争对手
</div>
<div
v-for=
"(item,index) in companytype"
:class=
"{'on':types==item.dictValue}"
@
click=
"types=item.dictLabel"
><i></i>
{{item.dictLabel}}
</div>
</div>
<div
class=
"popform"
>
<div
class=
"popbot"
style=
"padding-right: 0"
>
...
...
@@ -102,34 +102,24 @@
width=
"464px"
>
<div
class=
"poptitle"
>
<img
src=
"@/assets/images/economies/icon.png"
>
<span>
新建相关企业-{{types
==1?"业主单位":""}}{{types==2?"合作伙伴":""}}{{types==3?"竞争对手":""
}}
</span>
<span>
新建相关企业-{{types}}
</span>
</div>
<el-form
class=
"popform i"
label-width=
"85px"
:rules=
"rules"
ref=
"ruleForm"
>
<el-form-item
label=
"企业名称:"
prop=
"projectName"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == 1"
label=
"对接深度:"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
</el-select>
<el-form-item
v-if=
"types == companytype[0].dictValue"
label=
"对接深度:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == 2"
label=
"合作阶段:"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
</el-select>
<el-form-item
v-if=
"types == companytype[1].dictValue"
label=
"合作阶段:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == 3"
label=
"竞争力度:"
prop=
"projectName"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
</el-select>
<el-form-item
v-if=
"types == companytype[2].dictValue"
label=
"竞争力度:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"企业角色:"
prop=
"projectName"
class=
"row"
>
<el-form-item
label=
"企业角色:"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
<el-option
v-for=
"(item,index) in companyrole"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"负责人:"
class=
"row"
>
...
...
@@ -147,8 +137,10 @@
<
script
>
import
"@/assets/styles/project.scss"
import
{
getXGQY
,
addXGQY
}
from
'@/api/project/project'
import
{
getDictType
}
from
'@/api/main'
export
default
{
name
:
'
zlwd
'
,
name
:
'
xgqy
'
,
data
(){
return
{
types
:
1
,
...
...
@@ -180,10 +172,22 @@
rules
:{
projectName
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
ownerCompany
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
},
companytype
:[],
companyrole
:[],
}
},
created
(){
//企业类型
getDictType
(
'company_type'
).
then
(
result
=>
{
this
.
companytype
=
result
.
code
==
200
?
result
.
data
:[]
this
.
types
=
this
.
companytype
[
0
].
dictValue
})
//企业角色
getDictType
(
'company_role'
).
then
(
result
=>
{
this
.
companyrole
=
result
.
code
==
200
?
result
.
data
:[]
})
},
methods
:{
//翻页
handleCurrentChange
(
val
)
{
...
...
dsk-operate-ui/src/views/project/projectList/component/xmsl.vue
View file @
b6d3acd8
...
...
@@ -9,13 +9,13 @@
<span>
项目级别 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 1"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.projectLevel"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{projectLevel:xmsldata.projectLevel})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 1"
>
{{
datas
.
projectLevel
||
'待添加'
}}
</span>
<span
:class=
"
{txt:!xmsldata.projectLevel}" v-else @click="nowedit = 1">
{{
xmsldata
.
projectLevel
||
'待添加'
}}
</span>
</div>
</div>
<div
class=
"con i"
>
...
...
@@ -26,7 +26,7 @@
{{
xmjd
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"xmjd"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-select
v-model=
"xmjd"
class=
"select-multiple"
placeholder=
"请选择"
@
click=
"editXMSL(
{projectStage:xmjd})"
>
<el-option
v-for=
"(item,index) in projectStage"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</div>
...
...
@@ -36,7 +36,7 @@
<div
class=
"con i"
style=
"width: 100%;"
>
<span
style=
"float: left;margin-top: 2px"
>
项目标签 :
</span>
<div
class=
"flex tipinput"
>
<div
class=
"tips"
v-for=
"(item,index) in tipslit"
>
{{
item
}}
<img
@
click=
"deltip(i
ndex
)"
src=
"@/assets/images/project/del.png"
></div>
<div
class=
"tips"
v-for=
"(item,index) in tipslit"
>
{{
item
}}
<img
@
click=
"deltip(i
tem
)"
src=
"@/assets/images/project/del.png"
></div>
<el-input
placeholder=
"待添加"
v-model=
"tipsvalue"
></el-input>
<div
class=
"addbtn"
@
click=
"addtips"
></div>
</div>
...
...
@@ -52,26 +52,26 @@
<span>
主管单位 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 2"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.supervisorUnit"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{supervisorUnit:xmsldata.supervisorUnit})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 2"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.supervisorUnit}" v-else @click="nowedit = 2">
{{
xmsldata
.
supervisorUnit
||
'待添加'
}}
</span>
</div>
</div>
<div
class=
"con i"
>
<span>
建设单位 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 3"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.constructionUnit"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{constructionUnit:xmsldata.constructionUnit})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 3"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.constructionUnit}" v-else @click="nowedit = 3">
{{
xmsldata
.
constructionUnit
||
'待添加'
}}
</span>
</div>
</div>
</div>
...
...
@@ -80,26 +80,26 @@
<span>
主管单位负责人 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 4"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.supervisorPrincipal"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{supervisorPrincipal:xmsldata.supervisorPrincipal})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 4"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.supervisorPrincipal}" v-else @click="nowedit = 4">
{{
xmsldata
.
supervisorPrincipal
||
'待添加'
}}
</span>
</div>
</div>
<div
class=
"con i"
>
<span>
建设单位负责人 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 5"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.constructionPrincipal"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{constructionPrincipal:xmsldata.constructionPrincipal})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 5"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.constructionPrincipal}" v-else @click="nowedit = 5">
{{
xmsldata
.
constructionPrincipal
||
'待添加'
}}
</span>
</div>
</div>
</div>
...
...
@@ -108,26 +108,26 @@
<span>
主管单位联系电话 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 6"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.supervisorPhone"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone
(1,$event)
"
style=
"width: 56px"
>
确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 6"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.supervisorPhone}" v-else @click="nowedit = 6">
{{
xmsldata
.
supervisorPhone
||
'待添加'
}}
</span>
</div>
</div>
<div
class=
"con i"
>
<span>
建设单位联系电话 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 7"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.constructionPhone"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone
(2,$event)
"
style=
"width: 56px"
>
确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 7"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.constructionPhone}" v-else @click="nowedit = 7">
{{
xmsldata
.
constructionPhone
||
'待添加'
}}
</span>
</div>
</div>
</div>
...
...
@@ -138,27 +138,27 @@
<div
class=
"otherdata"
>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_1.png"
>
<div
class=
"i"
>
{{
datas
.
contactsCount
}}
个
</div>
<div
class=
"i"
>
{{
xmsldata
.
contactsCount
}}
个
</div>
<div
class=
"j"
>
联系人
</div>
</div>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_2.png"
>
<div
class=
"i"
>
{{
datas
.
followRecordCount
}}
条
</div>
<div
class=
"i"
>
{{
xmsldata
.
followRecordCount
}}
条
</div>
<div
class=
"j"
>
跟进记录
</div>
</div>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_3.png"
>
<div
class=
"i"
>
{{
datas
.
backlogCount
}}
条
</div>
<div
class=
"i"
>
{{
xmsldata
.
backlogCount
}}
条
</div>
<div
class=
"j"
>
工作待办
</div>
</div>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_4.png"
>
<div
class=
"i"
>
{{
datas
.
fileCount
}}
个
</div>
<div
class=
"i"
>
{{
xmsldata
.
fileCount
}}
个
</div>
<div
class=
"j"
>
资料文档
</div>
</div>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_5.png"
>
<div
class=
"i"
>
{{
datas
.
relateCompanyCount
}}
家
</div>
<div
class=
"i"
>
{{
xmsldata
.
relateCompanyCount
}}
家
</div>
<div
class=
"j"
>
相关企业
</div>
</div>
</div>
...
...
@@ -167,9 +167,10 @@
</
template
>
<
script
>
import
"@/assets/styles/project.scss"
import
{
getDictType
,}
from
'@/api/main'
import
{}
from
'@/api/project/project'
import
'@/assets/styles/project.scss'
import
{
getDictType
}
from
'@/api/main'
import
{
getXMSL
,
editXMNR
,
addLabel
,
removeLabel
}
from
'@/api/project/project'
export
default
{
name
:
'xmsl'
,
props
:{
...
...
@@ -182,7 +183,8 @@
tipsvalue
:
""
,
//标签填写内容
xmjd
:
'待添加'
,
projectStage
:[],
//项目阶段
sldata
:
this
.
datas
,
id
:
this
.
$route
.
query
.
id
,
xmsldata
:
this
.
datas
,
}
},
created
(){
...
...
@@ -190,33 +192,81 @@
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
this
.
projectStage
=
result
.
code
==
200
?
result
.
data
:[]
})
this
.
xmjd
=
this
.
datas
.
projectStage
this
.
tipslit
=
this
.
datas
.
labelList
this
.
getXMSL
()
},
methods
:{
editXMSL
(
param
){
let
params
=
param
params
.
id
=
this
.
id
editXMNR
(
JSON
.
stringify
(
params
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
}
else
{
this
.
$message
.
error
(
res
.
msg
)
this
.
getXMSL
()
}
})
this
.
nowedit
=
-
1
},
//验证电话号码
isphone
(
value
){
isphone
(
type
,
value
){
var
regPartton
=
/1
[
3-8
]
+
\d{9}
/
;
var
regPartton1
=
/^
(
0
[
0-9
]{2,3}[\-]?[
2-9
][
0-9
]{6,7}[\-]?[
0-9
]?)
$/
;
if
(
!
regPartton
.
test
(
value
)
&&
!
regPartton1
.
test
(
value
))
{
this
.
$message
.
error
(
"请输入正确的电话"
);
}
else
{
if
(
type
==
1
)
{
this
.
editXMSL
({
supervisorPhone
:
this
.
xmsldata
.
supervisorPhone
})
}
if
(
type
==
2
)
{
this
.
editXMSL
({
constructionPhone
:
this
.
xmsldata
.
constructionPhone
})
}
}
},
//标签添加、删除
addtips
(){
if
(
this
.
tipsvalue
==
""
)
return
false
if
(
this
.
tipslit
.
length
>=
30
){
if
(
this
.
tipslit
!=
null
&&
this
.
tipslit
.
length
>=
30
){
this
.
$message
.
error
(
"最多能只能添加30个标签"
)
return
false
}
this
.
tipslit
.
push
(
this
.
tipsvalue
)
let
param
=
{
businessId
:
this
.
id
,
label
:
this
.
tipsvalue
}
addLabel
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
this
.
tipsvalue
=
""
this
.
getXMSL
()
}
else
{
this
.
$message
.
error
(
res
.
msg
)
}
})
// this.tipslit.push(this.tipsvalue)
},
deltip
(
value
){
let
param
=
{
businessId
:
this
.
id
,
label
:
value
}
removeLabel
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
this
.
getXMSL
()
}
else
{
this
.
$message
.
error
(
res
.
msg
)
}
})
},
deltip
(
index
){
this
.
tipslit
.
splice
(
index
,
1
)
getXMSL
(){
getXMSL
(
this
.
id
).
then
(
result
=>
{
this
.
xmjd
=
result
.
data
.
projectStage
this
.
tipslit
=
result
.
data
.
labelList
this
.
xmsldata
=
result
.
data
})
},
}
}
...
...
dsk-operate-ui/src/views/project/projectList/detail.vue
View file @
b6d3acd8
...
...
@@ -12,17 +12,18 @@
<img
src=
"@/assets/images/project/headimg.png"
class=
"headimg"
>
<strong
class=
"text"
>
{{
ProjectData
.
projectName
}}
</strong>
<div
class=
"locks"
>
<div
@
click=
"islock=true"
>
<img
v-if=
"ProjectData.isPrivate == 0"
src=
"@/assets/images/project/lock.png"
>
<img
v-else
src=
"@/assets/images/project/lockopen.png"
>
{{
ProjectData
.
isPrivate
==
0
?
"仅自己可见"
:
"他人可见"
}}
<
!--
<div
class=
"delform"
>
--
>
<
!--
<div
class=
"words"
>
{{
ProjectData
.
isPrivate
==
0
?
"是否将项目权限修改为他人可见?"
:
"是否将项目权限修改为仅自己可见?"
}}
</div>
--
>
<
!--
<div>
--
>
<
!--
<div
class=
"btnsmall btn_primary h28"
>
确定
</div>
--
>
<
!--
<div
class=
"btnsmall btn_cancel h28"
>
取消
</div>
--
>
<
!--
</div>
--
>
<
!--
</div>
--
>
</div>
<
div
class=
"delform"
v-if=
"islock"
>
<
div
class=
"words"
>
{{
ProjectData
.
isPrivate
==
0
?
"是否将项目权限修改为他人可见?"
:
"是否将项目权限修改为仅自己可见?"
}}
</div
>
<
div
>
<
div
class=
"btnsmall btn_primary h28"
@
click=
"locks(ProjectData.isPrivate)"
>
确定
</div
>
<
div
class=
"btnsmall btn_cancel h28"
@
click=
"islock=false"
>
取消
</div
>
<
/div
>
<
/div
>
</div>
</div>
<div
class=
"contets row"
>
...
...
@@ -33,7 +34,7 @@
{{
xmlx
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"xmlx"
class=
"select-multiple"
placeholder=
"请选择"
@
change=
"
{}
">
<el-select
v-model=
"xmlx"
class=
"select-multiple"
placeholder=
"请选择"
@
change=
"
editXMSL(
{projectType:xmlx})
">
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</div>
...
...
@@ -46,7 +47,7 @@
{{
xmlb
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"xmlb"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-select
v-model=
"xmlb"
class=
"select-multiple"
placeholder=
"请选择"
@
change=
"editXMSL(
{projectCategory:xmlb})"
>
<el-option
v-for=
"(item,index) in projectCategory"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</div>
...
...
@@ -58,7 +59,7 @@
<div
class=
"flex"
v-if=
"nowedit == 3"
>
<el-input
v-model=
"ProjectData.investmentAmount"
placeholder=
"待添加"
@
input=
"number"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{investmentAmount:ProjectData.investmentAmount})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
...
...
@@ -69,11 +70,11 @@
<span>
建设地点:
</span>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text:address != '待添加'}">
{{
address
}}
<span
:class=
"
{ color_text:address
txt
!= '待添加'}">
{{
address
txt
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-cascader
class=
"cascader-region select-location"
<el-cascader
class=
"cascader-region select-location"
v-model=
"ProjectData.address"
ref=
"myCascader"
:props=
"props"
:options=
"addressList"
@
change=
"handleChange"
></el-cascader>
...
...
@@ -133,7 +134,7 @@
import
zlwd
from
'./component/zlwd.vue'
import
xgqy
from
'./component/xgqy.vue'
import
prvinceTree
from
'@/assets/json/provinceTree'
import
{
getXMSL
}
from
'@/api/project/project'
import
{
getXMSL
,
editXMNR
}
from
'@/api/project/project'
export
default
{
name
:
'detail'
,
components
:
{
xmsl
,
jsnr
,
lxr
,
gjjl
,
gzdb
,
zlwd
,
xgqy
},
...
...
@@ -153,12 +154,13 @@
thistag
:
'xmsl'
,
xmlx
:
'请选择'
,
//项目类型
xmlb
:
'请选择'
,
//项目类别
islock
:
true
,
//仅自己可见
islock
:
false
,
projectStage
:[],
//项目阶段
projectType
:[],
//项目类型
projectCategory
:[],
//项目类别
nowedit
:
-
1
,
address
:
'待添加'
,
address
:[],
addresstxt
:
'待添加'
,
//项目地区
addressList
:[],
domicile
:[],
...
...
@@ -183,6 +185,10 @@
this
.
projectCategory
=
result
.
code
==
200
?
result
.
data
:[]
})
//获取基本信息
this
.
getXMSL
()
},
methods
:
{
getXMSL
(){
getXMSL
(
this
.
id
).
then
(
result
=>
{
this
.
ProjectData
=
result
.
code
==
200
?
result
.
data
:{}
this
.
$route
.
query
.
projectname
=
result
.
data
.
projectName
...
...
@@ -190,20 +196,42 @@
this
.
xmlb
=
result
.
data
.
projectCategory
==
""
||
result
.
data
.
projectCategory
==
null
?
"请选择"
:
result
.
data
.
projectCategory
this
.
thisindex
=
result
.
data
.
projectStage
let
list
=
[]
if
(
result
.
data
.
provinceName
){
list
.
push
(
result
.
data
.
provinceName
)
let
txt
=
''
if
(
result
.
data
.
provinceId
){
list
.
push
(
result
.
data
.
provinceId
)
txt
+=
result
.
data
.
provinceName
}
if
(
result
.
data
.
cityName
){
list
.
push
(
result
.
data
.
cityName
)
if
(
result
.
data
.
cityId
){
list
.
push
(
result
.
data
.
cityId
)
txt
+=
'/'
+
result
.
data
.
cityName
}
if
(
result
.
data
.
districtName
){
list
.
push
(
result
.
data
.
districtName
)
if
(
result
.
data
.
districtId
){
list
.
push
(
result
.
data
.
districtId
)
txt
+=
'/'
+
result
.
data
.
districtName
}
this
.
address
=
list
console
.
log
(
this
.
ProjectData
.
team
)
this
.
address
=
list
.
length
>
0
?
list
:
"待添加"
this
.
addresstxt
=
txt
==
""
?
"待添加"
:
txt
})
},
locks
(
isPrivate
){
isPrivate
=
isPrivate
==
0
?
1
:
0
this
.
editXMSL
({
isPrivate
:
isPrivate
})
this
.
lock
=
false
},
editXMSL
(
param
){
let
params
=
param
params
.
id
=
this
.
id
editXMNR
(
JSON
.
stringify
(
params
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
}
else
{
this
.
$message
.
error
(
res
.
msg
)
this
.
getXMSL
()
}
})
this
.
nowedit
=
-
1
},
methods
:
{
//地区
async
prvinceTree
()
{
// await axios.post("https://files.jiansheku.com/file/json/common/provinceTree.json", {}, {
...
...
@@ -238,11 +266,10 @@
},
choose
(
value
){
this
.
thisindex
=
value
console
.
log
(
value
)
this
.
editXMSL
({
projectStage
:
value
}
)
},
//内容组件切换
getCom
(
tag
){
console
.
log
(
tag
)
this
.
thistag
=
tag
},
//输入数字
...
...
@@ -251,40 +278,33 @@
},
handleChange
(
value
)
{
console
.
log
(
value
);
let
str
=
''
var
labelString
=
this
.
$refs
.
myCascader
.
getCheckedNodes
()[
0
].
pathLabels
;
let
txt
=
''
labelString
.
forEach
((
item
,
index
)
=>
{
if
(
index
==
0
)
str
+=
item
else
str
+=
'-'
+
item
let
str
=
''
if
(
index
>
0
){
str
=
'/'
}
txt
+=
str
+
item
})
this
.
addresstxt
=
txt
let
param
=
{
provinceId
:
null
,
cityId
:
null
,
districtId
:
null
}
value
.
forEach
((
item
,
index
)
=>
{
if
(
index
==
0
){
param
.
provinceId
=
parseInt
(
item
)
}
if
(
index
==
1
){
param
.
cityId
=
parseInt
(
item
)
}
if
(
index
==
2
){
param
.
districtId
=
parseInt
(
item
)
}
})
this
.
address
=
str
let
arr
=
this
.
$refs
.
myCascader
.
getCheckedNodes
();
// console.log(arr)
let
province
=
[],
city
=
[],
area
=
[];
this
.
domicile
=
[];
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
arr
[
i
].
hasChildren
&&
city
.
push
(
arr
[
i
].
value
);
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
!
arr
[
i
].
hasChildren
&&
area
.
push
(
arr
[
i
].
value
);
!
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
else
{
province
.
push
(
arr
[
i
].
value
);
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
// var obj = JSON.parse(JSON.stringify(this.searchParam));
// obj.province = province;
// obj.city = city;
// obj.area = area;
// this.searchParam = obj;
this
.
editXMSL
(
param
)
},
}
}
...
...
dsk-operate-ui/src/views/project/projectList/index.vue
View file @
b6d3acd8
...
...
@@ -149,7 +149,7 @@
</div>
</div>
<div
class=
"tables"
>
<div
class=
"bottems"
v-if=
"total>
0
"
>
<div
class=
"bottems"
v-if=
"total>
searchParam.pageSize
"
>
<el-pagination
background
:page-size=
"searchParam.pageSize"
...
...
dsk-operate-ui/src/views/radar/BidRecord/details.vue
View file @
b6d3acd8
...
...
@@ -13,17 +13,13 @@
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
办件结果
:
</span>
<span
>
芜湖旭日机械制造有限公司
</span>
<span>
发布时间
:
</span>
<span
>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
总投资
:
</span>
<span>
来源网站
:
</span>
<span>
芜湖旭日
</span>
</p>
<p
class=
"list-content-text"
>
<span>
审批日期:
</span>
<span>
12345.62万
</span>
</p>
</div>
...
...
@@ -32,53 +28,7 @@
</div>
<div
class=
"content main3"
>
<div
class=
"common-title"
>
拟建项目详情
</div>
<div
class=
"main3-box"
>
<p>
<label
class=
"label"
>
项目法人
</label>
<span>
序号
</span>
<label
class=
"label"
>
总投资(万元)
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
项目类型
</label>
<span
class=
"span-one"
>
序号
</span>
</p>
<p>
<label
class=
"label"
>
项目属地
</label>
<span>
序号
</span>
<label
class=
"label"
>
审批类型
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
建设规模
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
计划开工日期
</label>
<span>
序号
</span>
<label
class=
"label"
>
计划完成日期
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
项目联系方式
</label>
<span>
序号
</span>
<label
class=
"label"
>
行业分类
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
项目详情地址
</label>
<span>
序号
</span>
<label
class=
"label"
>
项目代码
</label>
<span>
序号
</span>
</p>
</div>
</div>
<div
class=
"content main5"
>
<div
class=
"common-title"
>
立项审批
</div>
...
...
@@ -90,81 +40,38 @@
fit
highlight-current-row
>
<el-table-column
label=
"
审批事项"
width=
"27
0"
>
<el-table-column
label=
"
序号"
width=
"8
0"
>
<template
slot-scope=
"scope"
>
企业投资项目备案
1
</
template
>
</el-table-column>
<el-table-column
label=
"
审批结果"
width=
"187
"
>
<el-table-column
label=
"
投标单位
"
>
<
template
slot-scope=
"scope"
>
通过
</
template
>
</el-table-column>
<el-table-column
label=
"
审批部门
"
>
<el-table-column
label=
"
投标报价(万)"
width=
"300
"
>
<
template
slot-scope=
"scope"
>
老河口市发展和改革局
</
template
>
</el-table-column>
<el-table-column
label=
"审批问号"
width=
"328"
>
<
template
slot-scope=
"scope"
>
--
</
template
>
</el-table-column>
<el-table-column
prop=
"zj"
label=
"审批日期"
width=
"240"
>
<
template
slot-scope=
"scope"
>
2022-08-28
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"content main3"
>
<div
class=
"common-title"
>
原文信息
</div>
<div
class=
"content main5"
>
<div
class=
"common-title"
>
立项推介
</div>
<div
class=
"table-item"
>
<el-table
:data=
"tableData"
element-loading-text=
"Loading"
border
fit
highlight-current-row
>
<el-table-column
label=
"立项推介"
>
<
template
slot-scope=
"scope"
>
-
</
template
>
</el-table-column>
<el-table-column
label=
"引入资本规模(万元)"
width=
"232"
>
<
template
slot-scope=
"scope"
>
--
</
template
>
</el-table-column>
<el-table-column
label=
"引入资本时间"
width=
"243"
>
<
template
slot-scope=
"scope"
>
2019-12-24
</
template
>
</el-table-column>
<el-table-column
label=
"推介时间"
width=
"243"
>
<
template
slot-scope=
"scope"
>
2019-12-24
</
template
>
<div
class=
"main3-box"
>
</el-table-column>
<el-table-column
prop=
"zj"
label=
"是否完成推介"
width=
"243"
>
<
template
slot-scope=
"scope"
>
否
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</div>
</template>
...
...
@@ -172,7 +79,7 @@
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'
Establishment
Details'
,
name
:
'
BidRecord
Details'
,
data
()
{
return
{
id
:
''
,
...
...
@@ -362,14 +269,6 @@
}
.qyzx-details
{
.tab
{
font-size
:
12px
;
color
:
#A1A1A1
;
span
{
color
:
#232323
;
}
}
.content
{
margin-top
:
16px
;
...
...
@@ -382,170 +281,12 @@
margin-bottom
:
8px
;
}
.main1
{
.title
{
color
:
#232323
;
font-size
:
16px
;
line-height
:
28px
;
font-weight
:
bold
;
margin-bottom
:
8px
;
text-align
:
left
;
img
{
width
:
28px
;
height
:
28px
;
margin-bottom
:
-9px
;
margin-right
:
17px
;
}
}
p
{
color
:
#3D3D3D
;
font-size
:
14px
;
margin
:
0
;
}
}
.main2
{
.list
{
display
:
flex
;
margin
:
16px
0
;
}
.item
{
width
:
24
.5%
;
margin-right
:
16px
;
height
:
100px
;
display
:
flex
;
justify-content
:
space-between
;
border-radius
:
8px
;
.item-left
{
margin-left
:
16px
;
margin-top
:
24px
;
h4
{
color
:
#232323
;
font-size
:
22px
;
line-height
:
22px
;
font-weight
:
bold
;
margin
:
0
;
span
{
font-weight
:
400
;
margin-left
:
4px
;
font-size
:
18px
;
}
}
p
{
margin
:
0
;
color
:
#3D3D3D
;
font-size
:
14px
;
padding-top
:
8px
;
}
}
.img
{
width
:
56px
;
height
:
56px
;
margin-top
:
22px
;
margin-right
:
12px
;
}
}
.color1
{
background
:
rgba
(
246
,
190
,
59
,
0
.08
);
border
:
1px
solid
rgba
(
246
,
190
,
59
,
0
.2
);
}
.color2
{
background
:
rgba
(
148
,
216
,
196
,
0
.102
);
border
:
1px
solid
rgba
(
73
,
187
,
154
,
0
.1
);
}
.color3
{
background
:
rgba
(
57
,
100
,
199
,
0
.06
);
border
:
1px
solid
rgba
(
57
,
100
,
199
,
0
.1
);
}
.color4
{
background
:
rgba
(
0
,
129
,
255
,
0
.04
);
border
:
1px
solid
rgba
(
0
,
129
,
255
,
0
.1
);
}
}
.main3
{
.main3-box
{
margin-top
:
22px
;
border-top
:
1px
solid
#E6E9F0
;
p
{
display
:
flex
;
align-items
:
center
;
margin
:
0
;
border-left
:
1px
solid
#E6E9F0
;
border-bottom
:
1px
solid
#E6E9F0
;
.label
{
width
:
10%
;
font-weight
:
400
;
line-height
:
40px
;
font-size
:
12px
;
height
:
40px
;
background
:
#F0F3FA
;
padding-left
:
12px
;
}
span
{
width
:
40%
;
color
:
#000
;
height
:
40px
;
line-height
:
40px
;
padding-left
:
12px
;
font-size
:
12px
;
}
.span-one
{
width
:
90%
;
}
}
}
}
.main4
{
.main4-box
{
margin-top
:
22px
;
.label
{
width
:
14%
;
background
:
#F0F3FA
;
border
:
1px
solid
#E6E9F0
;
display
:
inline-block
;
height
:
40px
;
line-height
:
40px
;
font-size
:
12px
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
padding-left
:
12px
;
}
span
{
width
:
19%
;
display
:
inline-block
;
height
:
40px
;
line-height
:
40px
;
border-top
:
1px
solid
#E6E9F0
;
border-bottom
:
1px
solid
#E6E9F0
;
padding-left
:
12px
;
font-size
:
12px
;
}
min-height
:
400px
;
border
:
1px
solid
#D8D8D8
;
span
:last-child
{
width
:
20%
;
border-right
:
1px
solid
#E6E9F0
;
}
}
}
...
...
dsk-operate-ui/src/views/radar/Bidding/details.vue
0 → 100644
View file @
b6d3acd8
<
template
>
<div
class=
"app-container qyzx-details"
>
<div
class=
"bottomlist"
>
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
<span
class=
"list-label"
>
市政工程
</span>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
招采单位:
</span>
<span
class=
"blue"
>
江西合胜合招标咨询有限公司
</span>
</p>
<p
class=
"list-content-text"
>
<span>
代理单位:
</span>
<span
class=
"blue"
>
江西合胜合招标咨询有限公司
</span>
</p>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
预算金款:
</span>
<span>
123,456,78万元
</span>
</p>
<p
class=
"list-content-text"
>
<span>
联系方式:
</span>
<span
>
招采单位 张工 123456789
</span>
</p>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
发布时间:
</span>
<span
>
今日
</span>
</p>
<p
class=
"list-content-text"
>
<span>
报名截止日期:
</span>
<span
>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
开标时间:
</span>
<span
>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
来源网站:
</span>
<span
>
赤峰市阿鲁科尔沁旗人民政府
</span>
</p>
</div>
</li>
</ul>
</div>
<div
class=
"content main3"
>
<div
class=
"common-title"
>
原文信息
</div>
<div
class=
"list-content-img"
@
mouseenter=
"showimg=false"
@
mouseleave=
"showimg=true"
>
<img
v-if=
"showimg"
src=
"@/assets/images/bxpro/original1.png"
>
<img
v-else
src=
"@/assets/images/bxpro/original.png"
>
<span>
原文链接
</span>
</div>
<div
class=
"main3-box"
>
</div>
</div>
</div>
</
template
>
<
script
>
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'BiddingDetails'
,
data
()
{
return
{
id
:
''
,
tableData
:
[{
id
:
0
,
name
:
'20重庆债14(2005938)'
,
time
:
'2020-09-18'
,
gm
:
'285.24'
,
zj
:
'否'
,
}],
showimg
:
true
}
},
created
()
{
console
.
log
(
this
.
$route
.
params
)
this
.
id
=
this
.
$route
.
params
.
id
},
methods
:
{
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.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
;
border-bottom
:
1px
solid
#EFEFEF
;
.title-right
{
display
:
flex
;
align-items
:
center
;
p
:first-child
{
font-size
:
12px
;
font-weight
:
400
;
color
:
#3D3D3D
;
margin-right
:
10px
;
}
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
;
}
}
}
.bottomlist-content
{
padding-bottom
:
0px
;
}
.bottomlist-list
{
padding
:
16px
;
font-size
:
14px
;
border-bottom
:
1px
solid
#EFEFEF
;
padding-bottom
:
14px
;
.list-titel
{
font-size
:
16px
;
font-weight
:
700
;
color
:
#3D3D3D
;
line-height
:
19px
;
.list-titel-a
{
text-decoration
:
none
;
color
:
#3D3D3D
;
}
a
:hover
,
a
:visited
,
a
:link
,
a
:active
{
color
:
#3D3D3D
;
}
}
.content-label
{
margin-top
:
12px
;
.list-label
{
background
:
#F3F3FF
;
color
:
#8491E8
;
border-radius
:
1px
1px
1px
1px
;
padding
:
3px
7px
;
font-size
:
12px
;
}
.list-label-zb
{
font-weight
:
400
;
color
:
#5A88F9
;
background
:
#E7EDFC
;
}
.list-label-lx
{
font-weight
:
400
;
color
:
#41A1FD
;
background
:
#E4F3FD
;
}
}
.list-content
{
margin-top
:
6px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
.list-content-text
{
margin-top
:
7px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
margin-right
:
27px
;
font-size
:
14px
;
span
:first-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
line-height
:
15px
}
span
:last-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
line-height
:
15px
}
.blue
{
color
:
#0081FF
!
important
;
cursor
:
pointer
;
}
}
}
.list-addree
{
width
:
auto
;
background
:
#F3F4F5
;
display
:
inline-flex
;
margin-top
:
7px
;
.list-content-text
{
margin-top
:
0px
;
span
{
line-height
:
30px
!
important
;
}
}
img
{
width
:
14px
;
margin
:
0
8px
;
}
}
}
.bottomlist-list
:hover
{
background
:
#F6F9FC
;
cursor
:
pointer
;
}
.pagination
{
padding
:
14px
;
.el-pagination
{
float
:
right
;
}
}
}
.app-container
{
padding
:
0
;
}
.qyzx-details
{
.content
{
margin-top
:
16px
;
background
:
#FFFFFF
;
padding
:
16px
;
border-radius
:
4px
;
}
.common-title
{
margin-bottom
:
8px
;
}
.main3
{
position
:
relative
;
.main3-box
{
margin-top
:
22px
;
min-height
:
400px
;
border
:
1px
solid
#D8D8D8
;
}
.list-content-img
{
position
:
absolute
;
top
:
16px
;
right
:
14px
;
color
:
#0081FF
;
display
:
flex
;
align-items
:
center
;
font-size
:
14px
;
cursor
:
pointer
;
img
{
width
:
14px
;
height
:
14px
;
margin-right
:
4px
;
}
}
.list-content-img
:hover
{
color
:
#0067CC
;
}
}
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/radar/Tender/details.vue
View file @
b6d3acd8
...
...
@@ -176,7 +176,7 @@
}
.content-label
{
margin-top
:
7
px
;
margin-top
:
12
px
;
.list-label
{
background
:
#F3F3FF
;
...
...
@@ -191,7 +191,7 @@
.list-content
{
margin-top
:
3
px
;
margin-top
:
6
px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
...
...
@@ -270,15 +270,6 @@
}
.qyzx-details
{
.tab
{
font-size
:
12px
;
color
:
#A1A1A1
;
span
{
color
:
#232323
;
}
}
.content
{
margin-top
:
16px
;
background
:
#FFFFFF
;
...
...
dsk-operate-ui/src/views/radar/components/BidRecord/index.vue
View file @
b6d3acd8
...
...
@@ -35,7 +35,7 @@
></el-cascader>
</div>
<el-dropdown
@
command=
"punishDatehandleCommand"
trigger=
"click"
ref=
"punishDateShowPopper"
:hide-on-click=
"false"
>
<el-dropdown
@
command=
"punishDatehandleCommand"
trigger=
"click"
class=
"el-dropdown-land"
ref=
"punishDateShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"punishDateValue ? 'color_text' : ''"
>
发布时间
{{
punishDateValue
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
...
...
@@ -132,7 +132,7 @@
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
<router-link
:to=
"'/radar/
Establishment
/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</router-link>
<router-link
:to=
"'/radar/
BidRecord
/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</router-link>
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
...
...
dsk-operate-ui/src/views/radar/components/Bidding/index.vue
0 → 100644
View file @
b6d3acd8
<
template
>
<div>
<div
class=
"content"
>
<div
class=
"content_item"
>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"jskBidQueryDto.projectName"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
招标单位
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"jskBidQueryDto.tenderee"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
工程规模
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"jskBidQueryDto.projectScale"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
更多筛选
</div>
<div
class=
"content_right"
>
<div
class=
"select-popper"
>
<span
:class=
"
{color_text:jskBidQueryDto.province.length ||jskBidQueryDto.city.length ||jskBidQueryDto.county.length,}">
项目属地
{{
jskBidQueryDto
.
province
.
length
||
jskBidQueryDto
.
city
.
length
||
jskBidQueryDto
.
county
.
length
?
jskBidQueryDto
.
province
.
length
+
jskBidQueryDto
.
city
.
length
+
jskBidQueryDto
.
county
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-cascader
ref=
"address"
class=
"cascader-region"
v-model=
"addressType"
:options=
"addressList"
:props=
"props"
@
change=
"domicileChange"
collapse-tags
clearable
></el-cascader>
</div>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.objectType.length }">
标的物类型
{{
jskBidQueryDto
.
objectType
.
length
?
jskBidQueryDto
.
objectType
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"jskBidQueryDto.objectType"
class=
"select-multiple"
multipleplaceholder=
"请选择"
>
<el-option
v-for=
"(item, i) in objectTypeList"
:key=
"i"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.projectType.length }">
项目类型
{{
jskBidQueryDto
.
projectType
.
length
?
jskBidQueryDto
.
projectType
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"jskBidQueryDto.projectType"
class=
"select-multiple"
multipleplaceholder=
"请选择"
>
<el-option
v-for=
"(item, i) in projectTypeList"
:key=
"i"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.tenderWay.length }">
招标方式
{{
jskBidQueryDto
.
tenderWay
.
length
?
jskBidQueryDto
.
tenderWay
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"jskBidQueryDto.tenderWay"
class=
"select-multiple"
multipleplaceholder=
"请选择"
>
<el-option
v-for=
"(item, i) in tenderWayList"
:key=
"i"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
<el-dropdown
@
command=
"planTenderAmounthandleCommand"
class=
"el-dropdown-land"
trigger=
"click"
ref=
"planTenderAmountShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"jskBidQueryDto.startPlanTenderAmount ||jskBidQueryDto.endPlanTenderAmount ? 'color_text': ''"
>
成交金额
{{
jskBidQueryDto
.
startPlanTenderAmount
||
jskBidQueryDto
.
endPlanTenderAmount
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-for=
"(item, i) in planTenderAmount"
:class=
"jskBidQueryDto.startPlanTenderAmount == item.value[0] &&jskBidQueryDto.endPlanTenderAmount == item.value[1] &&
!startPlanTenderAmount &&!endPlanTenderAmount? 'color_text': '' "
:key=
"i"
:command=
"item.value"
>
{{
item
.
label
}}
</el-dropdown-item>
<el-dropdown-item
command=
""
style=
"padding: 0; text-indent: 20px"
>
<div
@
mouseenter=
"planTenderAmountShowPopper = true"
@
mouseleave=
"planTenderAmountShowPopper = false"
>
<span
:class=
"(startPlanTenderAmount || endPlanTenderAmount) &&jskBidQueryDto.startPlanTenderAmount ==startPlanTenderAmount &&
jskBidQueryDto.endPlanTenderAmount == endPlanTenderAmount? 'color_text': '' "
>
自定义
<i
class=
"el-icon-arrow-right"
></i>
</span>
<div
class=
"jabph_popper_box"
style=
"position: absolute"
v-if=
"planTenderAmountShowPopper"
>
<div
class=
"jabph_popper_wrap"
>
从
<el-input
class=
"jabph_popper_input"
v-limit-num
clearable
v-model=
"startPlanTenderAmount"
></el-input>
万
</div>
<div
class=
"jabph_popper_wrap"
>
到
<el-input
class=
"jabph_popper_input"
v-limit-num
clearable
v-model=
"endPlanTenderAmount"
></el-input>
万
</div>
<div
style=
""
>
<el-button
size=
"mini"
@
click=
"planTenderAmountCancel"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"planTenderAmountPopperConfirm"
>
确定
</el-button>
</div>
</div>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.projectCapitalSource.length }">
资金来源
{{
jskBidQueryDto
.
projectCapitalSource
.
length
?
jskBidQueryDto
.
projectCapitalSource
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"jskBidQueryDto.projectCapitalSource"
class=
"select-multiple"
multipleplaceholder=
"请选择"
>
<el-option
v-for=
"(item, i) in projectCapitalSourceList"
:key=
"i"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
</div>
</div>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"geduan"
>
</div>
</div>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"search-new"
>
<span
@
click=
"search()"
>
查询
</span>
<span
@
click=
"reset"
>
重置
</span>
</div>
</div>
</div>
<div
class=
"bottomlist"
>
<div
class=
"bottomlist-title"
>
<div></div>
<div
class=
"title-right"
>
<p>
共有
{{
total
}}
条
</p>
<p>
<img
src=
"@/assets/images/EXCEL.png"
alt=
""
>
<span>
导出EXCEL
</span>
</p>
</div>
</div>
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
<router-link
:to=
"'/radar/Bidding/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</router-link>
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
<span
class=
"list-label"
>
市政工程
</span>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
招采单位:
</span>
<span
class=
"blue"
>
芜湖旭日机械制造有限公司
</span>
</p>
<p
class=
"list-content-text"
>
<span>
合同预估金额(万元):
</span>
<span>
芜湖旭日
</span>
</p>
<p
class=
"list-content-text"
>
<span>
资金来源:
</span>
<span>
12345.62万
</span>
</p>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
发布时间:
</span>
<span
>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
预计招标时间:
</span>
<span>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
来源网站:
</span>
<span
class=
"blue"
>
12345.62万
</span>
</p>
</div>
<div
class=
"list-content list-addree"
>
<p
class=
"list-content-text"
>
<span>
工程规模:
</span>
<span
>
城镇村道路用地
</span>
</p>
</div>
</li>
</ul>
<div
class=
"pagination clearfix"
v-show=
"total>0"
>
<el-pagination
background
:page-size=
"pageSize"
:current-page=
"page"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</div>
</div>
</
template
>
<
script
>
import
jsk_data
from
'../../../../../public/jsk.json'
;
export
default
{
name
:
'Bidding'
,
data
()
{
return
{
addressList
:
[],
addressType
:
[],
props
:
{
multiple
:
true
,
expandTrigger
:
"hover"
,
value
:
"id"
,
},
objectTypeList
:
[
"施工"
,
"勘察设计"
,
"勘察"
,
"设计"
,
"监理"
,
"工程总承包"
,
"测绘"
,
"施工图审查"
,
"造价咨询"
,
"招标代理"
,
"规划编制"
,
"方案编制"
,
"检测"
,
"审计"
,
"项目管理"
,
"全过程工程咨询"
,
"ppp"
,
"其他"
],
//标的物类型
projectTypeList
:
[
"工程总承包"
,
"测绘"
,
"施工图审查"
,
"造价咨询"
,
"招标代理"
,
"规划编制"
,
"方案编制"
,
"检测"
,
"审计"
,
"项目管理"
,
"全过程工程咨询"
,
"ppp"
,
"其他"
],
//项目类型
tenderWayList
:
[
"工程总承包"
,
"测绘"
,
"施工图审查"
,
"造价咨询"
,
"招标代理"
,
"规划编制"
,
"方案编制"
,
"检测"
,
"审计"
,
"项目管理"
,
"全过程工程咨询"
,
"ppp"
,
"其他"
],
//招标方式
projectCapitalSourceList
:
[
"规划编制"
,
"方案编制"
,
"检测"
,
"审计"
,
"项目管理"
,
"全过程工程咨询"
,
"ppp"
,
"其他"
],
//资金来源
planTenderAmount
:
[{
value
:
"不限"
,
label
:
"不限"
,
},
{
value
:
[
0
,
100
],
label
:
"100万元以下"
,
},
{
value
:
[
100
,
1000
],
label
:
"100万-1000万元"
,
},
{
value
:
[
1000
,
5000
],
label
:
"1000万-5000万元"
,
},
{
value
:
[
5000
,
20000
],
label
:
"5000万-2亿元"
,
},
{
value
:
[
20000
,
""
],
label
:
"2亿元以上"
,
},
],
jskBidQueryDto
:
{
projectName
:
''
,
tenderee
:
''
,
projectScale
:
''
,
province
:
[],
city
:
[],
county
:
[],
objectType
:[],
projectType
:[],
tenderWay
:[],
startPlanTenderAmount
:
''
,
endPlanTenderAmount
:
''
,
projectCapitalSource
:[],
},
planTenderAmountShowPopper
:
false
,
startPlanTenderAmount
:
''
,
endPlanTenderAmount
:
''
,
domicile
:
[],
pageFlag
:
true
,
conditionsArr
:
[],
tableData
:[],
total
:
6000
,
page
:
1
,
pageSize
:
20
};
},
computed
:
{
checkJskBidQueryDto
()
{
let
arr
=
[];
let
data
=
{};
if
(
this
.
jskBidQueryDto
.
projectName
){
data
=
{
title
:
"项目名称:"
,
keyid
:
"projectName"
,
value
:
this
.
jskBidQueryDto
.
projectName
,
key
:
"projectName"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
tenderee
){
data
=
{
title
:
"招标单位:"
,
keyid
:
"tenderee"
,
value
:
this
.
jskBidQueryDto
.
tenderee
,
key
:
"tenderee"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
projectScale
){
data
=
{
title
:
"工程规模:"
,
keyid
:
"projectScale"
,
value
:
this
.
jskBidQueryDto
.
projectScale
,
key
:
"projectScale"
}
arr
.
push
(
data
)
}
if
(
this
.
domicile
.
length
>
0
)
{
data
=
{
title
:
"项目属地:"
,
keyid
:
"domicile"
,
value
:
this
.
domicile
.
join
(
","
),
key
:
"domicile"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
objectType
.
length
>
0
)
{
data
=
{
title
:
"标的物类型:"
,
keyid
:
"objectType"
,
value
:
this
.
jskBidQueryDto
.
objectType
,
key
:
"objectType"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
projectType
.
length
>
0
)
{
data
=
{
title
:
"项目类型:"
,
keyid
:
"projectType"
,
value
:
this
.
jskBidQueryDto
.
projectType
,
key
:
"projectType"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
tenderWay
.
length
>
0
)
{
data
=
{
title
:
"招标方式:"
,
keyid
:
"tenderWay"
,
value
:
this
.
jskBidQueryDto
.
tenderWay
,
key
:
"tenderWay"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
projectCapitalSource
.
length
>
0
)
{
data
=
{
title
:
"资金来源:"
,
keyid
:
"projectCapitalSource"
,
value
:
this
.
jskBidQueryDto
.
projectCapitalSource
,
key
:
"projectCapitalSource"
}
arr
.
push
(
data
)
}
this
.
conditionsArr
=
arr
},
},
mounted
()
{
if
(
this
.
$route
.
query
.
projectName
)
{
this
.
projectName
=
this
.
$route
.
query
.
projectName
;
}
this
.
addressListfn
();
},
methods
:
{
keywordClick
(
val
)
{
this
.
projectName
=
val
},
search
(
page
,
limit
,
exportFlag
)
{
if
(
!
page
)
{
this
.
page
=
1
;
}
if
(
!
limit
)
{
this
.
limit
=
20
;
}
if
(
!
page
&&
!
limit
)
{
this
.
reloadPage
();
}
var
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
data
.
province
=
data
.
province
.
join
(
","
);
data
.
city
=
data
.
city
.
join
(
","
);
data
.
county
=
data
.
county
.
join
(
","
);
let
params
=
{
page
:
{
page
:
this
.
page
,
limit
:
this
.
limit
,
field
:
this
.
field
,
},
jskBidQueryDto
:
data
,
};
if
(
this
.
projectName
){
params
.
projectName
=
this
.
projectName
}
else
{
delete
params
.
projectName
}
if
(
this
.
keywordNot
){
params
.
keywordNot
=
this
.
keywordNot
}
else
{
delete
params
.
keywordNot
}
this
.
$emit
(
"search"
,
params
)
},
reloadPage
()
{
this
.
pageFlag
=
false
;
this
.
$nextTick
(()
=>
{
this
.
pageFlag
=
true
;
});
},
handleCurrentChange
(
page
)
{
this
.
page
=
page
;
this
.
search
(
page
,
this
.
limit
);
},
handleSizeChange
(
limit
)
{
this
.
limit
=
limit
;
this
.
search
(
this
.
page
,
limit
);
},
deleteDomicile
()
{
this
.
$refs
.
address
.
handleClear
();
},
domicileChange
()
{
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
let
province
=
[],
city
=
[],
county
=
[];
this
.
domicile
=
[];
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
arr
[
i
].
hasChildren
&&
city
.
push
(
arr
[
i
].
value
);
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
!
arr
[
i
].
hasChildren
&&
county
.
push
(
arr
[
i
].
value
);
!
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
else
{
province
.
push
(
arr
[
i
].
value
);
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
province
=
province
;
obj
.
city
=
city
;
obj
.
county
=
county
;
this
.
jskBidQueryDto
=
obj
;
},
addressListfn
()
{
var
str
=
[];
for
(
let
x
=
0
;
x
<
3
;
x
++
)
{
for
(
let
i
=
0
;
i
<
jsk_data
.
length
;
i
++
)
{
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
1
)
{
str
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
children
:
jsk_data
[
i
].
id
==
900000
?
undefined
:[],
});
}
else
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
2
&&
str
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
id
==
jsk_data
[
i
].
parentId
)
{
str
[
j
].
children
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
children
:
[],
});
}
}
}
else
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
3
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
children
){
for
(
let
k
=
0
;
k
<
str
[
j
].
children
.
length
;
k
++
)
{
if
(
str
[
j
].
children
[
k
].
id
==
jsk_data
[
i
].
parentId
)
{
str
[
j
].
children
[
k
].
children
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
});
}
}
}
}
}
}
}
this
.
addressList
=
str
;
},
planTenderAmountPopperConfirm
()
{
if
(
this
.
startPlanTenderAmount
&&
this
.
endPlanTenderAmount
&&
!
(
Number
(
this
.
endPlanTenderAmount
)
>
Number
(
this
.
startPlanTenderAmount
))
)
{
return
this
.
$message
.
warning
(
"最小值必须小于最大值,请重新输入!"
);
}
this
.
planTenderAmountShowPopper
=
false
;
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
startPlanTenderAmount
=
this
.
startPlanTenderAmount
;
obj
.
endPlanTenderAmount
=
this
.
endPlanTenderAmount
;
this
.
jskBidQueryDto
=
obj
;
this
.
$refs
.
planTenderAmountShowPopper
.
hide
();
},
planTenderAmountCancel
()
{
this
.
planTenderAmountShowPopper
=
false
;
this
.
$refs
.
planTenderAmountShowPopper
.
hide
();
},
planTenderAmounthandleCommand
(
command
)
{
if
(
command
)
{
this
.
$refs
.
planTenderAmountShowPopper
.
hide
();
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
this
.
startPlanTenderAmount
=
""
;
this
.
endPlanTenderAmount
=
""
;
if
(
command
==
"不限"
)
{
obj
.
startPlanTenderAmount
=
""
;
obj
.
endPlanTenderAmount
=
""
;
}
else
{
obj
.
startPlanTenderAmount
=
command
[
0
];
obj
.
endPlanTenderAmount
=
command
[
1
];
}
this
.
jskBidQueryDto
=
obj
;
}
},
reset
()
{
Object
.
assign
(
this
.
$data
,
this
.
$options
.
data
.
call
(
this
));
//重置data
this
.
init
();
this
.
$emit
(
"reset"
);
},
init
(){
this
.
search
();
this
.
addressListfn
();
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.content
{
padding
:
0px
16px
;
border-radius
:
4px
4px
4px
4px
;
background
:
#FFFFFF
;
.content_item
{
padding-top
:
12px
;
display
:
flex
;
align-items
:
center
;
.label
{
width
:
84px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
.content_right
{
.ename_input
{
width
:
640px
;
margin-right
:
20px
;
}
.land_ipt_470
{
width
:
640px
;
}
}
.item_ckquery_list
{
display
:
flex
;
}
.item_ckquery_list
.el-input__icon
{
position
:
relative
;
top
:
1px
;
}
.ckquery_list_right
{
width
:
640px
;
}
.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_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
;
border-bottom
:
1px
solid
#EFEFEF
;
.title-right
{
display
:
flex
;
align-items
:
center
;
p
:first-child
{
font-size
:
12px
;
font-weight
:
400
;
color
:
#3D3D3D
;
margin-right
:
10px
;
}
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
;
}
}
}
.bottomlist-content
{
padding-bottom
:
0px
;
}
.bottomlist-list
{
padding
:
16px
;
font-size
:
14px
;
border-bottom
:
1px
solid
#EFEFEF
;
padding-bottom
:
14px
;
.list-titel
{
font-size
:
16px
;
font-weight
:
700
;
color
:
#3D3D3D
;
line-height
:
19px
;
.list-titel-a
{
text-decoration
:
none
;
color
:
#3D3D3D
;
}
a
:hover
,
a
:visited
,
a
:link
,
a
:active
{
color
:
#3D3D3D
;
}
}
.content-label
{
margin-top
:
12px
;
.list-label
{
background
:
#F3F3FF
;
color
:
#8491E8
;
border-radius
:
1px
1px
1px
1px
;
padding
:
3px
7px
;
font-size
:
12px
;
}
}
.list-content
{
margin-top
:
8px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
.list-content-text
{
margin-top
:
7px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
margin-right
:
27px
;
font-size
:
14px
;
span
:first-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
line-height
:
15px
}
span
:last-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
line-height
:
15px
}
.blue
{
color
:
#0081FF
!
important
;
cursor
:
pointer
;
}
}
}
.list-addree
{
width
:
auto
;
background
:
#F3F4F5
;
display
:
inline-flex
;
margin-top
:
7px
;
.list-content-text
{
margin-top
:
0px
;
span
{
line-height
:
30px
!
important
;
}
}
img
{
width
:
14px
;
margin
:
0
8px
;
}
}
}
.bottomlist-list
:hover
{
background
:
#F6F9FC
;
cursor
:
pointer
;
}
.pagination
{
padding
:
14px
;
.el-pagination
{
float
:
right
;
}
}
}
</
style
>
dsk-operate-ui/src/views/radar/index.vue
View file @
b6d3acd8
...
...
@@ -19,6 +19,8 @@
<Land
v-if=
"personnelHerf=='Land'"
/>
<!-- 拟建项目 -->
<Establishment
v-if=
"personnelHerf=='Establishment'"
/>
<!-- 招标计划 -->
<Bidding
v-if=
"personnelHerf=='Bidding'"
/>
<!-- 标讯pro -->
<bxprozbgg
v-if=
"personnelHerf=='bxprozbgg'"
/>
<!-- 公招标讯 -->
...
...
@@ -37,11 +39,12 @@
import
bxprozbgg
from
"./components/bxprozbgg/index.vue"
;
import
Tender
from
"./components/Tender/index.vue"
;
import
BidRecord
from
"./components/BidRecord/index.vue"
;
import
Bidding
from
"./components/Bidding/index.vue"
;
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'radar'
,
components
:
{
debtProject
,
Land
,
Establishment
,
bxprozbgg
,
Tender
,
BidRecord
},
components
:
{
debtProject
,
Land
,
Establishment
,
bxprozbgg
,
Tender
,
BidRecord
,
Bidding
},
data
()
{
return
{
// tablist
...
...
@@ -64,7 +67,7 @@
},
{
key
:
'
KeyPersonnel
'
,
key
:
'
Bidding
'
,
status
:
false
,
value
:
'招标计划'
,
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/BusinessInfoServiceImpl.java
View file @
b6d3acd8
...
...
@@ -169,6 +169,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
//新增项目主信息
BusinessInfo
businessInfo
=
new
BusinessInfo
();
BeanUtil
.
copyProperties
(
dto
,
businessInfo
);
businessInfo
.
setConstructionUnit
(
dto
.
getOwnerCompany
());
int
addBusiness
=
businessInfoMapper
.
insertBusinessInfo
(
businessInfo
);
if
(
addBusiness
>
0
)
{
//获取登陆用户的部门id
...
...
@@ -176,9 +177,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
// Long deptId = 100l;
//新增用户-项目关系信息
int
addbusinessUser
=
businessUserMapper
.
insertBusinessUser
(
new
BusinessUser
(
businessInfo
.
getId
(),
deptId
.
intValue
(),
dto
.
getUserId
(),
1
));
//新增项目-关联企业信息
int
addRelateCompany
=
businessRelateCompanyMapper
.
insertBusinessRelateCompany
(
new
BusinessRelateCompany
(
businessInfo
.
getId
(),
dto
.
getCompanyId
(),
dto
.
getOwnerCompany
(),
"业主"
));
return
addbusinessUser
>
0
&&
addRelateCompany
>
0
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
return
addbusinessUser
>
0
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
return
AjaxResult
.
error
();
...
...
dsk-system/src/main/resources/mapper/business/BusinessRelateCompanyMapper.xml
View file @
b6d3acd8
...
...
@@ -15,6 +15,7 @@
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"depth"
column=
"depth"
/>
<result
property=
"companyType"
column=
"company_type"
/>
</resultMap>
<sql
id=
"selectBusinessRelateCompanyVo"
>
...
...
@@ -27,7 +28,8 @@
phone,
depth,
create_time,
update_time
update_time,
company_type
from business_relate_company
</sql>
...
...
@@ -46,6 +48,7 @@
#{responsiblePerson}
</if>
<if
test=
"phone != null and phone != ''"
>
and phone = #{phone}
</if>
<if
test=
"companyType != null and companyType != ''"
>
and company_type = #{companyType}
</if>
</where>
</select>
...
...
@@ -67,6 +70,7 @@
<if
test=
"phone != null"
>
phone,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"companyType != null"
>
company_type,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"businessId != null"
>
#{businessId},
</if>
...
...
@@ -78,6 +82,7 @@
<if
test=
"phone != null"
>
#{phone},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
<if
test=
"companyType != null"
>
#{companyType},
</if>
</trim>
</insert>
...
...
@@ -93,6 +98,7 @@
<if
test=
"phone != null"
>
phone = #{phone},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"companyType != null"
>
company_type = #{companyType},
</if>
</trim>
where id = #{id}
</update>
...
...
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