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
bf408542
Commit
bf408542
authored
Jun 06, 2023
by
dengguangman
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
ea9ac2ac
83de0287
Changes
27
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
2539 additions
and
555 deletions
+2539
-555
CustomerController.java
...a/com/dsk/web/controller/customer/CustomerController.java
+17
-2
EnterpriseUipSearchBody.java
...dsk/common/core/domain/model/EnterpriseUipSearchBody.java
+1
-1
project.js
dsk-operate-ui/src/api/project/project.js
+55
-2
sjx.png
dsk-operate-ui/src/assets/images/index/sjx.png
+0
-0
sjx1.png
dsk-operate-ui/src/assets/images/index/sjx1.png
+0
-0
sjx2.png
dsk-operate-ui/src/assets/images/index/sjx2.png
+0
-0
img.png
dsk-operate-ui/src/assets/images/login/img.png
+0
-0
login_bg.png
dsk-operate-ui/src/assets/images/login_bg.png
+0
-0
logo1.png
dsk-operate-ui/src/assets/images/logo1.png
+0
-0
index.scss
dsk-operate-ui/src/assets/styles/index.scss
+1
-1
project.scss
dsk-operate-ui/src/assets/styles/project.scss
+3
-1
index.js
dsk-operate-ui/src/router/index.js
+15
-0
index.vue
dsk-operate-ui/src/views/index.vue
+635
-87
login.vue
dsk-operate-ui/src/views/login.vue
+83
-55
gjjl.vue
...erate-ui/src/views/project/projectList/component/gjjl.vue
+77
-8
gzdb.vue
...erate-ui/src/views/project/projectList/component/gzdb.vue
+83
-28
jsnr.vue
...erate-ui/src/views/project/projectList/component/jsnr.vue
+2
-2
xmsl.vue
...erate-ui/src/views/project/projectList/component/xmsl.vue
+8
-6
detail.vue
dsk-operate-ui/src/views/project/projectList/detail.vue
+37
-22
details.vue
dsk-operate-ui/src/views/radar/BidRecord/details.vue
+558
-0
details.vue
dsk-operate-ui/src/views/radar/Tender/details.vue
+324
-0
index.vue
...operate-ui/src/views/radar/components/BidRecord/index.vue
+409
-201
index.vue
...ate-ui/src/views/radar/components/Establishment/index.vue
+2
-0
Select.vue
dsk-operate-ui/src/views/radar/components/Tender/Select.vue
+129
-0
index.vue
dsk-operate-ui/src/views/radar/components/Tender/index.vue
+87
-130
index.vue
dsk-operate-ui/src/views/radar/index.vue
+5
-2
CustomerServiceImpl.java
...java/com/dsk/system/service/impl/CustomerServiceImpl.java
+8
-7
No files found.
dsk-admin/src/main/java/com/dsk/web/controller/customer/CustomerController.java
View file @
bf408542
...
@@ -16,7 +16,6 @@ import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
...
@@ -16,7 +16,6 @@ import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import
com.dsk.system.domain.customer.dto.CustomerSearchDto
;
import
com.dsk.system.domain.customer.dto.CustomerSearchDto
;
import
com.dsk.system.service.ICustomerService
;
import
com.dsk.system.service.ICustomerService
;
import
com.dsk.web.controller.search.service.BusinessOpportunityRadarService
;
import
com.dsk.web.controller.search.service.BusinessOpportunityRadarService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
...
@@ -68,6 +67,23 @@ public class CustomerController extends BaseController {
...
@@ -68,6 +67,23 @@ public class CustomerController extends BaseController {
@PostMapping
()
@PostMapping
()
@RepeatSubmit
@RepeatSubmit
public
AjaxResult
add
(
@RequestBody
Customer
customer
)
{
public
AjaxResult
add
(
@RequestBody
Customer
customer
)
{
dealWithcustomerData
(
customer
);
return
AjaxResult
.
success
(
baseService
.
add
(
customer
));
}
/**
* 认领客户
*/
// @PreAuthorize("@ss.hasPermi('customer:claim')")
@PostMapping
(
"/claim"
)
@RepeatSubmit
public
AjaxResult
claim
(
@RequestBody
Customer
customer
)
{
if
(
ObjectUtils
.
isEmpty
(
customer
.
getUipId
()))
throw
new
BeanException
(
"城投uipId不能为空"
);
dealWithcustomerData
(
customer
);
return
AjaxResult
.
success
(
baseService
.
add
(
customer
));
}
private
void
dealWithcustomerData
(
Customer
customer
){
if
(
ObjectUtils
.
isEmpty
(
customer
.
getCompanyName
()))
throw
new
BeanException
(
"企业名称不能为空"
);
if
(
ObjectUtils
.
isEmpty
(
customer
.
getCompanyName
()))
throw
new
BeanException
(
"企业名称不能为空"
);
if
(
ObjectUtils
.
isEmpty
(
customer
.
getCompanyId
()))
{
if
(
ObjectUtils
.
isEmpty
(
customer
.
getCompanyId
()))
{
try
{
try
{
...
@@ -79,7 +95,6 @@ public class CustomerController extends BaseController {
...
@@ -79,7 +95,6 @@ public class CustomerController extends BaseController {
logger
.
debug
(
"获取企业id错误!error:{}"
,
e
.
getMessage
());
logger
.
debug
(
"获取企业id错误!error:{}"
,
e
.
getMessage
());
}
}
}
}
return
AjaxResult
.
success
(
baseService
.
add
(
customer
));
}
}
/**
/**
...
...
dsk-common/src/main/java/com/dsk/common/core/domain/model/EnterpriseUipSearchBody.java
View file @
bf408542
...
@@ -21,7 +21,7 @@ public class EnterpriseUipSearchBody extends BasePage {
...
@@ -21,7 +21,7 @@ public class EnterpriseUipSearchBody extends BasePage {
/*
/*
* 1
金额倒序,2金额正序,3时间倒序,4时间
正序
* 1
供应商倒序,2供应商正序,3拟建项目倒序,4拟建项目正序,5招标公告倒序,6招标公告
正序
*/
*/
@NotNull
(
message
=
"排序条件不能为空"
)
@NotNull
(
message
=
"排序条件不能为空"
)
private
Integer
sort
;
private
Integer
sort
;
...
...
dsk-operate-ui/src/api/project/project.js
View file @
bf408542
...
@@ -36,8 +36,8 @@ export function getXMSL(param) {
...
@@ -36,8 +36,8 @@ export function getXMSL(param) {
method
:
'GET'
,
method
:
'GET'
,
})
})
}
}
//项目
速览
修改
//项目
内容
修改
export
function
editXM
SL
(
param
)
{
export
function
editXM
NR
(
param
)
{
return
request
({
return
request
({
url
:
'/business/info/edit'
,
url
:
'/business/info/edit'
,
method
:
'POST'
,
method
:
'POST'
,
...
@@ -71,3 +71,56 @@ export function addLXR(param) {
...
@@ -71,3 +71,56 @@ export function addLXR(param) {
})
})
}
}
//跟进记录
export
function
getGJJL
(
param
)
{
return
request
({
url
:
'/business/record/list'
,
method
:
'get'
,
params
:
param
})
}
//新增跟进记录
export
function
addGJJL
(
param
)
{
return
request
({
url
:
'/business/record/add'
,
method
:
'POST'
,
data
:
param
})
}
//删除跟进记录
export
function
delGJJL
(
param
)
{
return
request
({
url
:
'/business/record/remove/'
,
method
:
'DELETE'
,
params
:
param
})
}
//工作待办
export
function
getGZDB
(
param
)
{
return
request
({
url
:
'/business/backlog/list'
,
method
:
'GET'
,
params
:
param
})
}
//添加工作待办
export
function
addGZDB
(
param
)
{
return
request
({
url
:
'/business/backlog/add'
,
method
:
'post'
,
data
:
param
})
}
//修改工作待办
export
function
editGZDB
(
param
)
{
return
request
({
url
:
'/business/backlog/edit'
,
method
:
'post'
,
data
:
param
})
}
dsk-operate-ui/src/assets/images/index/sjx.png
0 → 100644
View file @
bf408542
316 Bytes
dsk-operate-ui/src/assets/images/index/sjx1.png
0 → 100644
View file @
bf408542
272 Bytes
dsk-operate-ui/src/assets/images/index/sjx2.png
0 → 100644
View file @
bf408542
274 Bytes
dsk-operate-ui/src/assets/images/login/img.png
0 → 100644
View file @
bf408542
1.46 MB
dsk-operate-ui/src/assets/images/login_bg.png
View replaced file @
ea9ac2ac
View file @
bf408542
883 KB
|
W:
|
H:
1.58 MB
|
W:
|
H:
2-up
Swipe
Onion skin
dsk-operate-ui/src/assets/images/logo1.png
0 → 100644
View file @
bf408542
16.5 KB
dsk-operate-ui/src/assets/styles/index.scss
View file @
bf408542
...
@@ -530,7 +530,7 @@ ul, li {
...
@@ -530,7 +530,7 @@ ul, li {
line-height
:
32px
;
line-height
:
32px
;
}
}
&
:hover
{
&
:hover
{
color
:
#
006AD1
;
color
:
#
f
;
border-color
:
#006AD1
;
border-color
:
#006AD1
;
}
}
}
}
...
...
dsk-operate-ui/src/assets/styles/project.scss
View file @
bf408542
...
@@ -568,6 +568,7 @@
...
@@ -568,6 +568,7 @@
.el-input
{
.el-input
{
display
:
inline-block
;
display
:
inline-block
;
margin-right
:
12px
;
margin-right
:
12px
;
position
:
relative
;
.el-input__inner
{
.el-input__inner
{
height
:
32px
;
height
:
32px
;
padding
:
0
;
padding
:
0
;
...
@@ -580,7 +581,8 @@
...
@@ -580,7 +581,8 @@
.el-input__prefix
{
.el-input__prefix
{
left
:
8px
;
left
:
8px
;
top
:
3px
;
top
:
-2px
;
position
:
absolute
;
}
}
.el-input__suffix
{
.el-input__suffix
{
height
:
32px
;
height
:
32px
;
...
...
dsk-operate-ui/src/router/index.js
View file @
bf408542
...
@@ -185,6 +185,21 @@ export const constantRoutes = [
...
@@ -185,6 +185,21 @@ export const constantRoutes = [
}
}
]
]
},
},
{
path
:
'/Tender'
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'noredirect'
,
children
:
[
{
path
:
'/radar/Tender/details/:id(
\\
d+)'
,
component
:
()
=>
import
(
'@/views/radar/Tender/details'
),
name
:
'TenderDetails'
,
meta
:
{
title
:
'公招标讯详情'
,
icon
:
'radar'
}
}
]
},
]
]
// 动态路由,基于用户权限动态去加载
// 动态路由,基于用户权限动态去加载
...
...
dsk-operate-ui/src/views/index.vue
View file @
bf408542
...
@@ -50,8 +50,18 @@
...
@@ -50,8 +50,18 @@
<span
class=
"common-title"
>
跟进记录
</span>
<span
class=
"common-title"
>
跟进记录
</span>
</div>
</div>
<div
class=
"flex-box query-ability"
>
<div
class=
"flex-box query-ability"
>
<div
class=
"area"
>
西南地区
<i
class=
"el-icon-caret-bottom"
></i></div>
<div
class=
"select-popper"
>
<div
class=
"month"
>
不限
<i
class=
"el-icon-caret-bottom"
></i></div>
<div
class=
"area"
>
{{
area
}}
<i
class=
"sjx"
></i></div>
<el-select
v-model=
"area"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in areaList"
:key=
"index"
:label=
"item.name"
:value=
"item.name"
></el-option>
</el-select>
</div>
<div
class=
"select-popper"
>
<div
class=
"month"
>
{{
date
}}
<i
class=
"sjx"
></i></div>
<el-select
v-model=
"date"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in dateList"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</div>
</div>
</div>
</div>
</div>
<div
class=
"list"
>
<div
class=
"list"
>
...
@@ -73,8 +83,18 @@
...
@@ -73,8 +83,18 @@
<span
class=
"common-title"
>
业绩排名
</span>
<span
class=
"common-title"
>
业绩排名
</span>
</div>
</div>
<div
class=
"flex-box query-ability"
>
<div
class=
"flex-box query-ability"
>
<div
class=
"area"
>
西南地区
<i
class=
"el-icon-caret-bottom"
></i></div>
<div
class=
"select-popper"
>
<div
class=
"month"
>
不限
<i
class=
"el-icon-caret-bottom"
></i></div>
<div
class=
"area"
>
{{
area
}}
<i
class=
"sjx"
></i></div>
<el-select
v-model=
"area"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in areaList"
:key=
"index"
:label=
"item.name"
:value=
"item.name"
></el-option>
</el-select>
</div>
<div
class=
"select-popper"
>
<div
class=
"month"
>
{{
date
}}
<i
class=
"sjx"
></i></div>
<el-select
v-model=
"date"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in dateList"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</div>
</div>
</div>
</div>
</div>
<div
class=
"main"
>
<div
class=
"main"
>
...
@@ -103,9 +123,14 @@
...
@@ -103,9 +123,14 @@
</div>
</div>
<div
class=
"flex-box query-ability"
>
<div
class=
"flex-box query-ability"
>
<div
class=
"tabs"
>
<div
class=
"tabs"
>
<div
class=
"label"
v-for=
"(item,index) in typeList"
:class=
"typeIndex === index ? 'color':''"
@
click=
"handleClick(index)"
>
{{
item
.
name
}}
</div>
<!--
<div
class=
"label"
v-for=
"(item,index) in typeList"
:class=
"typeIndex === index ? 'color':''"
@
click=
"handleClick(index)"
>
{{
item
.
name
}}
</div>
-->
</div>
<div
class=
"select-popper"
>
<div
class=
"area"
>
{{
area
}}
<i
class=
"sjx"
></i></div>
<el-select
v-model=
"area"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,index) in areaList"
:key=
"index"
:label=
"item.name"
:value=
"item.name"
></el-option>
</el-select>
</div>
</div>
<div
class=
"area"
>
西南地区
<i
class=
"el-icon-caret-bottom"
></i></div>
</div>
</div>
</div>
</div>
<div>
<div>
...
@@ -135,24 +160,42 @@
...
@@ -135,24 +160,42 @@
<div
v-if=
"user === 2"
class=
"trends"
>
<div
v-if=
"user === 2"
class=
"trends"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClickTab"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClickTab"
>
<el-tab-pane
label=
"甲方舆情"
name=
"first"
>
<el-tab-pane
label=
"甲方舆情"
name=
"first"
>
<div
class=
"main-box"
>
<el-timeline>
<el-timeline>
<el-timeline-item
<el-timeline-item
v-for=
"(item, index) in trendsList"
v-for=
"(item, index) in trendsList"
:key=
"index"
:key=
"index"
icon=
"el-icon-time"
>
icon=
"el-icon-time"
>
{{
item
.
main
}}
<div
class=
"time"
>
{{
item
.
time
}}
<span
class=
"company"
>
{{
item
.
name
}}
</span></div>
<div
class=
"cont"
>
{{
item
.
main
}}
</div>
</el-timeline-item>
</el-timeline-item>
</el-timeline>
</el-timeline>
</div>
<!--
<div
class=
"check"
>
全部甲方舆情 >
</div>
-->
</el-tab-pane>
<el-tab-pane
label=
"监控动态"
name=
"second"
>
<div
class=
"main-box"
>
<el-timeline>
<el-timeline-item
v-for=
"(item, index) in trendsList"
:key=
"index"
icon=
"el-icon-time"
>
<div
class=
"time"
>
{{
item
.
time
}}
<span
class=
"company"
>
{{
item
.
name
}}
</span></div>
<div
class=
"cont"
>
{{
item
.
main
}}
</div>
</el-timeline-item>
</el-timeline>
</div>
<!--
<div
class=
"check"
>
全部监控动态 >
</div>
-->
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"监控动态"
name=
"second"
>
监控动态
</el-tab-pane>
</el-tabs>
</el-tabs>
</div>
</div>
</div>
</div>
</el-col>
</el-col>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
<div
class=
"content-right"
>
<div
class=
"content-right"
>
<div
class=
"user"
>
<div
class=
"user"
@
click=
"handleChange"
>
<h3>
刘毅
<span>
总经理
</span></h3>
<h3
v-if=
"user === 1"
>
刘毅
<span>
总经理
</span></h3>
<h3
v-if=
"user === 2"
>
李婷婷
<span>
营销员
</span></h3>
<p>
您好,祝您工作顺利每一天
</p>
<p>
您好,祝您工作顺利每一天
</p>
</div>
</div>
<div
class=
"search"
>
<div
class=
"search"
>
...
@@ -160,8 +203,8 @@
...
@@ -160,8 +203,8 @@
<el-input
placeholder=
"找客户/找项目/找甲方"
>
<el-input
placeholder=
"找客户/找项目/找甲方"
>
<i
slot=
"prefix"
class=
"el-icon-search"
></i>
<i
slot=
"prefix"
class=
"el-icon-search"
></i>
</el-input>
</el-input>
<span
class=
"common-title"
style=
"margin-bottom: 10px;"
>
储备项目类
</span>
<span
class=
"common-title"
>
储备项目类
</span>
<div
class=
"list"
>
<div
class=
"list"
style=
"margin-top: 8px;"
>
<div
class=
"item"
>
<div
class=
"item"
>
<img
src=
"@/assets/images/index/cb_icon1.png"
/>
<img
src=
"@/assets/images/index/cb_icon1.png"
/>
<p>
EPC项目
</p>
<p>
EPC项目
</p>
...
@@ -190,8 +233,8 @@
...
@@ -190,8 +233,8 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"zbgg"
>
<div
class=
"zbgg"
v-if=
"user === 1"
>
<span
class=
"common-title"
>
招
标公告
</span>
<span
class=
"common-title"
>
中
标公告
</span>
<div
class=
"list"
>
<div
class=
"list"
>
<div
class=
"item"
>
<div
class=
"item"
>
<h3>
太原市万柏林区2023年兴华街道老旧小区改造项目
</h3>
<h3>
太原市万柏林区2023年兴华街道老旧小区改造项目
</h3>
...
@@ -230,6 +273,41 @@
...
@@ -230,6 +273,41 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
v-if=
"user === 2"
class=
"zbhxr"
>
<span
class=
"common-title"
>
竞争对手中标候选人公告
</span>
<div
class=
"list"
>
<div
class=
"item"
>
<h3>
太原市万柏林区2023年兴华街道老旧小区改造项目
</h3>
<p>
<span>
中标金额:4754.34
</span>
</p>
</div>
<div
class=
"item"
>
<h3>
太原市万柏林区2023年兴华街道老旧小区改造项目
</h3>
<p>
<span>
中标金额:4754.34
</span>
</p>
</div>
<div
class=
"item"
>
<h3>
太原市万柏林区2023年兴华街道老旧小区改造项目
</h3>
<p>
<span>
中标金额:4754.34
</span>
</p>
</div>
<div
class=
"item"
>
<h3>
太原市万柏林区2023年兴华街道老旧小区改造项目
</h3>
<p>
<span>
中标金额:4754.34
</span>
</p>
</div>
<div
class=
"item"
>
<h3>
太原市万柏林区2023年兴华街道老旧小区改造项目
</h3>
<p>
<span>
中标金额:4754.34
</span>
</p>
</div>
</div>
</div>
</div>
</div>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -238,6 +316,7 @@
...
@@ -238,6 +316,7 @@
<
script
>
<
script
>
import
*
as
echarts
from
'echarts'
;
import
*
as
echarts
from
'echarts'
;
import
"@/assets/styles/public.css"
;
export
default
{
export
default
{
name
:
"Index"
,
name
:
"Index"
,
data
()
{
data
()
{
...
@@ -254,7 +333,57 @@ export default {
...
@@ -254,7 +333,57 @@ export default {
],
],
typeIndex
:
0
,
typeIndex
:
0
,
jyfxData
:[
'1月'
,
'2月'
,
'3月'
,
'4月'
,
'5月'
,
'6月'
],
jyfxData
:[
'1月'
,
'2月'
,
'3月'
,
'4月'
,
'5月'
,
'6月'
],
jyfxData1
:[
103
,
256
,
132
,
186
,
210
,
95
],
jyfxData1
:[
{
dcjxm
:
'103'
,
dcjzje
:
'123'
,
cjxmje
:
'153'
,
cjxmzs
:
'113'
,
cbxmzs
:
'93'
,
cbxmzje
:
'193'
,
},
{
dcjxm
:
'256'
,
dcjzje
:
'223'
,
cjxmje
:
'113'
,
cjxmzs
:
'163'
,
cbxmzs
:
'193'
,
cbxmzje
:
'123'
,
},
{
dcjxm
:
'103'
,
dcjzje
:
'123'
,
cjxmje
:
'153'
,
cjxmzs
:
'113'
,
cbxmzs
:
'93'
,
cbxmzje
:
'193'
,
},
{
dcjxm
:
'256'
,
dcjzje
:
'223'
,
cjxmje
:
'113'
,
cjxmzs
:
'163'
,
cbxmzs
:
'193'
,
cbxmzje
:
'123'
,
},
{
dcjxm
:
'103'
,
dcjzje
:
'123'
,
cjxmje
:
'153'
,
cjxmzs
:
'113'
,
cbxmzs
:
'93'
,
cbxmzje
:
'193'
,
},
{
dcjxm
:
'256'
,
dcjzje
:
'223'
,
cjxmje
:
'113'
,
cjxmzs
:
'163'
,
cbxmzs
:
'193'
,
cbxmzje
:
'123'
,
},
],
gjjlData
:[
gjjlData
:[
{
{
title
:
'今天拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。'
,
title
:
'今天拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。'
,
...
@@ -351,7 +480,53 @@ export default {
...
@@ -351,7 +480,53 @@ export default {
name
:
'重庆轨道交通集团有限公司'
,
name
:
'重庆轨道交通集团有限公司'
,
main
:
'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
main
:
'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
},
]
{
time
:
'2018-04-03 10:20'
,
name
:
'重庆轨道交通集团有限公司'
,
main
:
'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time
:
'2018-04-03 10:20'
,
name
:
'重庆轨道交通集团有限公司'
,
main
:
'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time
:
'2018-04-03 10:20'
,
name
:
'重庆轨道交通集团有限公司'
,
main
:
'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time
:
'2018-04-03 10:20'
,
name
:
'重庆轨道交通集团有限公司'
,
main
:
'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
],
area
:
'西南地区'
,
areaList
:[
{
name
:
'西南地区'
},
{
name
:
'华中地区'
},
{
name
:
'华南地区'
},
{
name
:
'华东地区'
},
{
name
:
'华北地区'
},
{
name
:
'东北地区'
},
{
name
:
'西北地区'
},
],
date
:
'不限'
,
dateList
:[
'不限'
,
'今日'
,
'昨日'
,
'近三天'
,
'近七天'
]
};
};
},
},
created
()
{
created
()
{
...
@@ -370,8 +545,18 @@ export default {
...
@@ -370,8 +545,18 @@ export default {
initChart
()
{
initChart
()
{
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"fx-echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"fx-echarts"
))
let
option
=
{
let
option
=
{
legend
:
{
x
:
'right'
,
padding
:[
0
,
120
,
0
,
0
],
},
tooltip
:
{
tooltip
:
{
show
:
false
trigger
:
'axis'
,
axisPointer
:
{
type
:
'line'
,
label
:
{
backgroundColor
:
'#FFFFFF'
}
}
},
},
xAxis
:
{
xAxis
:
{
type
:
'category'
,
type
:
'category'
,
...
@@ -382,14 +567,53 @@ export default {
...
@@ -382,14 +567,53 @@ export default {
type
:
'value'
,
type
:
'value'
,
},
},
grid
:
{
grid
:
{
top
:
20
,
top
:
35
,
left
:
30
,
left
:
30
,
right
:
10
,
right
:
10
,
bottom
:
20
,
bottom
:
20
,
},
},
// dcjxm:'256',
// dcjzje:'223',
// cjxmje:'113',
// cjxmzs:'163',
// cbxmzs:'193',
// cbxmzje:'123',
series
:
[
series
:
[
{
{
data
:
this
.
jyfxData1
,
data
:
this
.
jyfxData1
.
map
(
item
=>
item
.
dcjxm
),
name
:
'待成交项目数'
,
type
:
'line'
,
smooth
:
true
,
emphasis
:
{
disabled
:
true
,
focus
:
'none'
},
//设置折线颜色和粗细
lineStyle
:
{
width
:
2
,
color
:
"#0CBC6D"
,
},
itemStyle
:{
color
:
"#0CBC6D"
,
},
//设置面积区域为渐变效果
areaStyle
:
{
opacity
:
0.8
,
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
offset
:
0.2
,
color
:
"#EFFAF6"
,
},
{
offset
:
1
,
color
:
"#0CBC6D"
,
},
]),
},
},
{
data
:
this
.
jyfxData1
.
map
(
item
=>
item
.
dcjzje
),
name
:
'待成交总金额'
,
type
:
'line'
,
type
:
'line'
,
smooth
:
true
,
smooth
:
true
,
emphasis
:
{
emphasis
:
{
...
@@ -398,7 +622,7 @@ export default {
...
@@ -398,7 +622,7 @@ export default {
},
},
//设置折线颜色和粗细
//设置折线颜色和粗细
lineStyle
:
{
lineStyle
:
{
width
:
1
,
width
:
2
,
color
:
"#0081FF"
,
color
:
"#0081FF"
,
},
},
itemStyle
:{
itemStyle
:{
...
@@ -406,7 +630,8 @@ export default {
...
@@ -406,7 +630,8 @@ export default {
},
},
//设置面积区域为渐变效果
//设置面积区域为渐变效果
areaStyle
:
{
areaStyle
:
{
color
:
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
opacity
:
0.8
,
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
{
offset
:
0.2
,
offset
:
0.2
,
color
:
"#DFEAFF"
,
color
:
"#DFEAFF"
,
...
@@ -417,13 +642,149 @@ export default {
...
@@ -417,13 +642,149 @@ export default {
},
},
]),
]),
},
},
}
},
{
data
:
this
.
jyfxData1
.
map
(
item
=>
item
.
cjxmje
),
name
:
'成交项目金额'
,
type
:
'line'
,
smooth
:
true
,
emphasis
:
{
disabled
:
true
,
focus
:
'none'
},
//设置折线颜色和粗细
lineStyle
:
{
width
:
2
,
color
:
"#8077F2"
,
},
itemStyle
:{
color
:
"#8077F2"
,
},
//设置面积区域为渐变效果
areaStyle
:
{
opacity
:
0.8
,
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
offset
:
0.2
,
color
:
"#ECE8FF"
,
},
{
offset
:
1
,
color
:
"#BCC0FF"
,
},
]),
},
},
{
data
:
this
.
jyfxData1
.
map
(
item
=>
item
.
cjxmzs
),
name
:
'成交项目总数'
,
type
:
'line'
,
smooth
:
true
,
emphasis
:
{
disabled
:
true
,
focus
:
'none'
},
//设置折线颜色和粗细
lineStyle
:
{
width
:
2
,
color
:
"#FA6C6C"
,
},
itemStyle
:{
color
:
"#FA6C6C"
,
},
//设置面积区域为渐变效果
areaStyle
:
{
opacity
:
0.8
,
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
offset
:
0.2
,
color
:
"#FDEAE8"
,
},
{
offset
:
1
,
color
:
"#FDB2AE"
,
},
]),
},
},
{
data
:
this
.
jyfxData1
.
map
(
item
=>
item
.
cbxmzs
),
name
:
'储备项目总数'
,
type
:
'line'
,
smooth
:
true
,
emphasis
:
{
disabled
:
true
,
focus
:
'none'
},
//设置折线颜色和粗细
lineStyle
:
{
width
:
2
,
color
:
"#FA936C"
,
},
itemStyle
:{
color
:
"#FA936C"
,
},
//设置面积区域为渐变效果
areaStyle
:
{
opacity
:
0.8
,
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
offset
:
0.2
,
color
:
"#FCE8E0"
,
},
{
offset
:
1
,
color
:
"#FBC4AF"
,
},
]),
},
},
{
data
:
this
.
jyfxData1
.
map
(
item
=>
item
.
cbxmzje
),
name
:
'储备项目总金额'
,
type
:
'line'
,
smooth
:
true
,
emphasis
:
{
disabled
:
true
,
focus
:
'none'
},
//设置折线颜色和粗细
lineStyle
:
{
width
:
2
,
color
:
"#FDD85E"
,
},
itemStyle
:{
color
:
"#FDD85E"
,
},
//设置面积区域为渐变效果
areaStyle
:
{
opacity
:
0.8
,
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
offset
:
0.2
,
color
:
"#FCF8EF"
,
},
{
offset
:
1
,
color
:
"#FEEBAA"
,
},
]),
},
},
]
]
}
}
myChart
.
setOption
(
option
);
myChart
.
setOption
(
option
);
},
},
initChart1
(){
initChart1
(){
var
rankPic
=
[
require
(
'@/assets/images/index/1.png'
),
require
(
'@/assets/images/index/2.png'
),
require
(
'@/assets/images/index/3.png'
),
require
(
'@/assets/images/index/4.png'
),
require
(
'@/assets/images/index/5.png'
),
]
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"pm-echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"pm-echarts"
))
let
option
=
{
let
option
=
{
legend
:
{
legend
:
{
show
:
true
,
show
:
true
,
...
@@ -448,56 +809,63 @@ export default {
...
@@ -448,56 +809,63 @@ export default {
}
}
},
},
axisLabel
:
{
axisLabel
:
{
color
:
'#232323'
,
margin
:
80
,
margin
:
50
,
// formatter必须,配合rich使用
textStyle
:
{
textStyle
:
{
align
:
'left'
,
align
:
'left'
,
},
formatter
:
function
(
value
,
index
)
{
let
idx
=
index
+
1
;
return
'{'
+
idx
+
'|} {s|'
+
value
+
'}'
},
},
rich
:
{
rich
:
{
a1
:
{
1
:
{
backgroundColor
:
{
image
:
this
.
rankIcons
[
0
]},
height
:
24
,
width
:
this
.
rankIconsSize
,
width
:
24
,
height
:
this
.
rankIconsSize
,
align
:
'center'
,
align
:
"left"
,
backgroundColor
:
{
// padding: [0, 0, 50, 100]
image
:
rankPic
[
0
]
},
a2
:
{
backgroundColor
:
{
image
:
this
.
rankIcons
[
1
]
},
width
:
this
.
rankIconsSize
,
height
:
this
.
rankIconsSize
,
align
:
"center"
,
},
a3
:
{
backgroundColor
:
{
image
:
this
.
rankIcons
[
2
]
},
width
:
this
.
rankIconsSize
,
height
:
this
.
rankIconsSize
,
align
:
"center"
,
},
a4
:
{
backgroundColor
:
{
image
:
this
.
rankIcons
[
3
]
},
width
:
this
.
rankIconsSize
,
height
:
this
.
rankIconsSize
,
align
:
"center"
,
},
a5
:
{
backgroundColor
:
{
image
:
this
.
rankIcons
[
4
]
},
width
:
this
.
rankIconsSize
,
height
:
this
.
rankIconsSize
,
align
:
"center"
,
},
},
formatter
:
(
params
,
index
)
=>
{
return
[
`{a
${
index
+
1
}
|}
${
params
}
`
].
join
(
'
\
n'
)
},
},
},
2
:
{
height
:
24
,
width
:
24
,
align
:
'center'
,
backgroundColor
:
{
image
:
rankPic
[
1
]
}
},
3
:
{
height
:
24
,
width
:
24
,
align
:
'center'
,
backgroundColor
:
{
image
:
rankPic
[
2
]
}
},
4
:
{
height
:
24
,
width
:
24
,
align
:
'center'
,
backgroundColor
:
{
image
:
rankPic
[
3
]
}
},
5
:
{
height
:
24
,
width
:
24
,
align
:
'center'
,
backgroundColor
:
{
image
:
rankPic
[
4
]
}
},
}
},
},
},
},
xAxis
:
{
xAxis
:
{
type
:
'value'
,
type
:
'value'
,
},
},
grid
:
{
grid
:
{
left
:
'
22
%'
,
left
:
'
16
%'
,
top
:
20
,
top
:
20
,
right
:
20
,
right
:
20
,
bottom
:
60
,
bottom
:
60
,
...
@@ -545,6 +913,15 @@ export default {
...
@@ -545,6 +913,15 @@ export default {
},
},
handleClickTab
(){
handleClickTab
(){
},
handleChange
(){
this
.
user
=
this
.
user
===
1
?
2
:
1
;
if
(
this
.
user
===
1
){
this
.
$nextTick
(()
=>
{
this
.
initChart
()
this
.
initChart1
()
})
}
}
}
}
}
};
};
...
@@ -585,6 +962,7 @@ export default {
...
@@ -585,6 +962,7 @@ export default {
margin-top
:
14px
;
margin-top
:
14px
;
margin-bottom
:
14px
;
margin-bottom
:
14px
;
border-right
:
1px
solid
#EFEFEF
;
border-right
:
1px
solid
#EFEFEF
;
cursor
:
pointer
;
.left
{
.left
{
width
:
48px
;
width
:
48px
;
height
:
48px
;
height
:
48px
;
...
@@ -625,6 +1003,16 @@ export default {
...
@@ -625,6 +1003,16 @@ export default {
.item
:last-child
{
.item
:last-child
{
border-right
:
0
;
border-right
:
0
;
}
}
.item
:hover
{
.right
{
.title
{
color
:
#0081FF
;
}
.number
{
color
:
#0081FF
;
}
}
}
.add
{
.add
{
padding-left
:
0
;
padding-left
:
0
;
.yd
{
.yd
{
...
@@ -654,11 +1042,17 @@ export default {
...
@@ -654,11 +1042,17 @@ export default {
margin-right
:
4px
;
margin-right
:
4px
;
}
}
}
}
.btn
:hover
{
background
:
#F6F9FC
;
}
}
}
}
}
.content-wrap
{
.content-wrap
{
margin-bottom
:
12px
;
margin-bottom
:
12px
;
height
:
460px
;
height
:
460px
;
.select-popper
{
margin-right
:
0
;
}
.record
{
.record
{
height
:
460px
;
height
:
460px
;
background
:
#FFFFFF
;
background
:
#FFFFFF
;
...
@@ -749,12 +1143,19 @@ export default {
...
@@ -749,12 +1143,19 @@ export default {
}
}
}
}
.select-popper
{
.area
{
.area
{
font-size
:
14px
;
font-size
:
14px
;
color
:
#232323
;
color
:
#232323
;
cursor
:
pointer
;
cursor
:
pointer
;
i
{
i
{
color
:
#A7A7A7
;
background
:
url("../assets/images/index/sjx.png")
;
background-size
:
100%
100%
;
width
:
10px
;
height
:
6px
;
display
:
inline-block
;
margin-bottom
:
2px
;
margin-left
:
4px
;
}
}
}
}
.month
{
.month
{
...
@@ -763,10 +1164,34 @@ export default {
...
@@ -763,10 +1164,34 @@ export default {
margin-left
:
16px
;
margin-left
:
16px
;
cursor
:
pointer
;
cursor
:
pointer
;
i
{
i
{
color
:
#A7A7A7
;
background
:
url("../assets/images/index/sjx.png")
;
background-size
:
100%
100%
;
width
:
10px
;
height
:
6px
;
display
:
inline-block
;
margin-bottom
:
2px
;
margin-left
:
4px
;
}
}
.color
{
color
:
#0081FF
;
i
{
background
:
url("../assets/images/index/sjx2.png")
;
background-size
:
100%
100%
;
}
}
}
}
}
}
.select-popper
:hover
{
.area
,
.month
{
color
:
#0081FF
;
i
{
background
:
url("../assets/images/index/sjx1.png")
;
background-size
:
100%
100%
;
}
}
}
}
.content-db
{
.content-db
{
height
:
263px
;
height
:
263px
;
background
:
#FFFFFF
;
background
:
#FFFFFF
;
...
@@ -830,6 +1255,7 @@ export default {
...
@@ -830,6 +1255,7 @@ export default {
background
:
#FFFFFF
;
background
:
#FFFFFF
;
border-radius
:
4px
;
border-radius
:
4px
;
padding
:
16px
;
padding
:
16px
;
position
:
relative
;
.tabs
{
.tabs
{
.label
{
.label
{
display
:
inline-block
;
display
:
inline-block
;
...
@@ -855,13 +1281,34 @@ export default {
...
@@ -855,13 +1281,34 @@ export default {
color
:
#FFFFFF
;
color
:
#FFFFFF
;
}
}
}
}
.select-popper
{
position
:
absolute
;
right
:
0
;
top
:
27px
;
z-index
:
99
;
.area
{
.area
{
font-size
:
14px
;
font-size
:
14px
;
color
:
#232323
;
color
:
#232323
;
margin-left
:
16px
;
margin-left
:
16px
;
cursor
:
pointer
;
cursor
:
pointer
;
i
{
i
{
color
:
#A7A7A7
;
background
:
url("../assets/images/index/sjx.png")
;
background-size
:
100%
100%
;
width
:
10px
;
height
:
6px
;
display
:
inline-block
;
margin-bottom
:
2px
;
margin-left
:
4px
;
}
}
}
.select-popper
:hover
{
.area
,
.month
{
color
:
#0081FF
;
i
{
background
:
url("../assets/images/index/sjx1.png")
;
background-size
:
100%
100%
;
}
}
}
}
}
}
}
...
@@ -870,6 +1317,66 @@ export default {
...
@@ -870,6 +1317,66 @@ export default {
border-radius
:
4px
;
border-radius
:
4px
;
padding
:
16px
;
padding
:
16px
;
height
:
440px
;
height
:
440px
;
overflow
:
hidden
;
position
:
relative
;
::v-deep
.el-tabs__header
{
margin
:
0
0
18px
;
}
::v-deep
.el-tabs__content
{
overflow-y
:
auto
;
height
:
368px
;
}
::v-deep
.el-timeline
{
.el-timeline-item
{
padding-bottom
:
18px
;
}
.el-timeline-item__tail
{
left
:
7px
;
border-left
:
2px
dotted
rgba
(
0
,
129
,
255
,
0
.5
);
}
.el-timeline-item__node
{
background-color
:
#ffffff
;
.el-timeline-item__icon
{
color
:
#0081FF
;
font-size
:
14px
;
}
}
.el-timeline-item__node--normal
{
left
:
0px
;
width
:
16px
;
height
:
16px
;
}
}
.time
{
font-size
:
14px
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
.company
{
color
:
#0081FF
;
margin-left
:
16px
;
}
}
.cont
{
background
:
#F6F9FD
;
border-radius
:
6px
;
padding
:
16px
;
margin-top
:
8px
;
font-size
:
14px
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
margin-right
:
16px
;
}
.check
{
height
:
60px
;
background
:
linear-gradient
(
360deg
,
#FFFFFF
0%
,
#FFFFFF
17%
,
rgba
(
255
,
255
,
255
,
0
.6
)
100%
);
font-size
:
16px
;
color
:
#0CBC6D
;
line-height
:
60px
;
text-align
:
center
;
width
:
100%
;
position
:
absolute
;
bottom
:
46px
;
cursor
:
pointer
;
}
}
}
}
}
.content-right
{
.content-right
{
...
@@ -915,8 +1422,8 @@ export default {
...
@@ -915,8 +1422,8 @@ export default {
::v-deep
.el-input
{
::v-deep
.el-input
{
height
:
32px
;
height
:
32px
;
border-radius
:
2px
;
border-radius
:
2px
;
margin-bottom
:
2
2
px
;
margin-bottom
:
2
0
px
;
margin-top
:
1
6
px
;
margin-top
:
1
4
px
;
.el-input__inner
{
.el-input__inner
{
height
:
32px
;
height
:
32px
;
line-height
:
32px
;
line-height
:
32px
;
...
@@ -936,8 +1443,10 @@ export default {
...
@@ -936,8 +1443,10 @@ export default {
justify-content
:
space-between
;
justify-content
:
space-between
;
.item
{
.item
{
margin
:
0
auto
;
margin
:
0
auto
;
width
:
33
.3%
;
height
:
94px
;
height
:
94px
;
text-align
:
center
;
text-align
:
center
;
cursor
:
pointer
;
img
{
img
{
width
:
40px
;
width
:
40px
;
height
:
40px
;
height
:
40px
;
...
@@ -948,6 +1457,9 @@ export default {
...
@@ -948,6 +1457,9 @@ export default {
font-size
:
12px
;
font-size
:
12px
;
}
}
}
}
.item
:hover
{
background
:
#F6F9FC
;
}
}
}
}
}
.zbgg
{
.zbgg
{
...
@@ -986,6 +1498,42 @@ export default {
...
@@ -986,6 +1498,42 @@ export default {
border-bottom
:
0
;
border-bottom
:
0
;
}
}
}
}
.zbhxr
{
height
:
382px
;
background
:
#FFFFFF
;
border-radius
:
4px
;
padding
:
16px
;
.list
{
margin-top
:
16px
;
}
.item
{
border-bottom
:
1px
solid
#EEEEEE
;
padding
:
10px
0
;
h3
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
14px
;
padding-bottom
:
8px
;
margin
:
0
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
p
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
font-size
:
14px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
span
{
margin-right
:
15px
;
}
}
}
.item
:last-child
{
border-bottom
:
0
;
}
}
}
}
}
}
</
style
>
</
style
>
...
...
dsk-operate-ui/src/views/login.vue
View file @
bf408542
<
template
>
<
template
>
<div
class=
"login"
>
<div
class=
"login"
>
<div
class=
"content"
>
<div
class=
"left"
>
<img
class=
"logo"
src=
"../assets/images/logo1.png"
/>
<img
class=
"img"
src=
"../assets/images/login/img.png"
/>
</div>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
>
<h3
class=
"title"
><img
src=
"../assets/images/title_icon.png"
/>
欢迎登录系统
</h3>
<h3
class=
"title"
><img
src=
"../assets/images/title_icon.png"
/>
欢迎登录系统
</h3>
<el-form-item
prop=
"username"
>
<el-form-item
prop=
"username"
>
...
@@ -55,6 +60,7 @@
...
@@ -55,6 +60,7 @@
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -153,12 +159,32 @@ export default {
...
@@ -153,12 +159,32 @@ export default {
<
style
rel=
"stylesheet/scss"
lang=
"scss"
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
>
.login
{
.login
{
display
:
flex
;
/*display: flex;*/
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
height
:
100%
;
height
:
100%
;
background-image
:
url("../assets/images/login_bg.png")
;
background-image
:
url("../assets/images/login_bg.png")
;
background-size
:
cover
;
background-size
:
cover
;
overflow-y
:
hidden
;
.content
{
width
:
1320px
;
margin
:
0
auto
;
padding-top
:
160px
;
}
.left
{
float
:
left
;
width
:
730px
;
margin-right
:
170px
;
}
.logo
{
width
:
317px
;
height
:
69px
;
margin-bottom
:
58px
;
}
.img
{
width
:
730px
;
height
:
624px
;
}
}
}
.title
{
.title
{
padding
:
46px
0
32px
48px
;
padding
:
46px
0
32px
48px
;
...
@@ -177,6 +203,8 @@ export default {
...
@@ -177,6 +203,8 @@ export default {
border-radius
:
6px
;
border-radius
:
6px
;
background
:
#ffffff
;
background
:
#ffffff
;
width
:
420px
;
width
:
420px
;
float
:
right
;
margin-top
:
70px
;
/*padding: 25px 25px 5px 25px;*/
/*padding: 25px 25px 5px 25px;*/
.el-form-item
{
.el-form-item
{
padding
:
0
48px
;
padding
:
0
48px
;
...
...
dsk-operate-ui/src/views/project/projectList/component/gjjl.vue
View file @
bf408542
...
@@ -39,7 +39,7 @@
...
@@ -39,7 +39,7 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"recordlist"
>
<div
class=
"recordlist"
v-if=
"showtype=='gjdt'"
>
<div
class=
"rec_detail"
v-for=
"(item,index) in recordlist.rows"
>
<div
class=
"rec_detail"
v-for=
"(item,index) in recordlist.rows"
>
<div
class=
"rec_time"
>
<div
class=
"rec_time"
>
...
@@ -54,17 +54,39 @@
...
@@ -54,17 +54,39 @@
<div><strong>
{{
item
.
nickName
}}
</strong>
<span
v-if=
"item.visitMode"
>
(
{{
item
.
visitMode
}}
)
</span></div>
<div><strong>
{{
item
.
nickName
}}
</strong>
<span
v-if=
"item.visitMode"
>
(
{{
item
.
visitMode
}}
)
</span></div>
<div><span>
{{
item
.
content
}}
</span></div>
<div><span>
{{
item
.
content
}}
</span></div>
<div
class=
"rec_text"
>
<div
class=
"rec_text"
>
<span>
拜访对象:
{{
item
.
name
||
'--'
}}
</span>
<span
v-if=
"item.name"
>
拜访对象:
{{
item
.
name
||
'--'
}}
</span>
<span
v-if=
"showtype == 'gjdt'
"
>
关联企业:
{{
item
.
companyName
||
'--'
}}
</span>
<span
v-if=
"showtype == 'gjdt'
&& companyName != ''"
>
关联企业:
{{
item
.
companyName
}}
</span>
<span
>
职位:
{{
item
.
position
||
'--'
}}
</span>
<span
v-if=
"item.position"
>
职位:
{{
item
.
position
}}
</span>
<span
>
拜访时间:
{{
item
.
createTime
&&
item
.
createTime
.
slice
(
0
,
10
)
}}
</span>
<span
v-if=
"item.createTime"
>
拜访时间:
{{
item
.
createTime
.
slice
(
0
,
10
)
}}
</span>
<span
>
下次拜访时间:
{{
item
.
nextVisitTime
==
null
?
'--'
:
item
.
createTime
.
slice
(
0
,
10
)
}}
</span>
<span
v-if=
"item.nextVisitTime"
>
下次拜访时间:
{{
item
.
createTime
.
slice
(
0
,
10
)
}}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"recordlist"
v-if=
"showtype=='gjjl' && recordlist.total>0"
>
<div
class=
"rec_detail"
v-for=
"(item,index) in recordlist.rows"
>
<div
class=
"rec_time"
>
<i
class=
"el-icon-time"
></i>
<div>
{{
item
.
creatTime
}}
</div>
<div
class=
"operate"
>
<!--
<img
src=
"@/assets/images/edit.png"
>
第一期不做编辑-->
<img
@
click=
"delRecord(item.id)"
src=
"@/assets/images/delete.png"
>
</div>
</div>
<div
class=
"rec_con"
>
<div><strong>
{{
item
.
nickName
}}
</strong>
<span
v-if=
"item.visitWay"
>
(
{{
item
.
visitWay
}}
)
</span></div>
<div><span>
{{
item
.
recordInfo
}}
</span></div>
<div
class=
"rec_text"
>
<span
v-if=
"item.visitPerson"
>
拜访对象:
{{
item
.
visitPerson
||
'--'
}}
</span>
<span
v-if=
"item.position"
>
职位:
{{
item
.
position
||
'--'
}}
</span>
<span
v-if=
"item.creatTime"
>
拜访时间:
{{
item
.
creatTime
}}
</span>
<span
v-if=
"item.nextVisitTime"
>
下次拜访时间:
{{
item
.
nextVisitTime
||
'--'
}}
</span>
</div>
</div>
<div
class=
"tables"
v-if=
"recordlist.total>0"
>
</div>
</div>
</div>
<div
class=
"tables"
v-if=
"recordlist.total>pageSize"
>
<div
class=
"bottems"
>
<div
class=
"bottems"
>
<el-pagination
<el-pagination
background
background
...
@@ -92,6 +114,7 @@
...
@@ -92,6 +114,7 @@
<
script
>
<
script
>
import
"@/assets/styles/project.scss"
import
"@/assets/styles/project.scss"
import
{
getFollowList
,
addFollowRecord
,
getUserList
,
delFollowRecord
}
from
'@/api/custom/custom'
import
{
getFollowList
,
addFollowRecord
,
getUserList
,
delFollowRecord
}
from
'@/api/custom/custom'
import
{
getGJJL
,
addGJJL
,
delGJJL
}
from
'@/api/project/project'
import
{
getEnterprise
,
getDictType
,}
from
'@/api/main'
import
{
getEnterprise
,
getDictType
,}
from
'@/api/main'
export
default
{
export
default
{
props
:{
props
:{
...
@@ -123,6 +146,7 @@
...
@@ -123,6 +146,7 @@
recordlist
:[],
//列表数据源
recordlist
:[],
//列表数据源
isdel
:
false
,
isdel
:
false
,
delID
:
''
,
//删除记录的ID
delID
:
''
,
//删除记录的ID
projectId
:
parseInt
(
this
.
$route
.
query
.
id
),
//项目详情id
}
}
},
},
computed
:
{
computed
:
{
...
@@ -140,6 +164,10 @@
...
@@ -140,6 +164,10 @@
})
})
this
.
getGJDTlist
()
this
.
getGJDTlist
()
}
}
//项目详情跟进记录
if
(
this
.
showtype
==
'gjjl'
){
this
.
getGJJL
()
}
console
.
log
(
this
.
types
)
console
.
log
(
this
.
types
)
},
},
methods
:{
methods
:{
...
@@ -156,6 +184,26 @@
...
@@ -156,6 +184,26 @@
}
}
})
})
}
}
if
(
this
.
types
==
'gjjl'
){
let
param
=
{
businessId
:
this
.
projectId
,
userId
:
this
.
$store
.
state
.
user
.
userId
,
visitPerson
:
this
.
addParam
.
name
,
position
:
this
.
addParam
.
position
,
nextVisitTime
:
this
.
addParam
.
nextVisitTime
,
recordInfo
:
this
.
addParam
.
content
,
visitWay
:
this
.
addParam
.
visitMode
,
}
addGJJL
(
param
).
then
(
result
=>
{
if
(
result
.
code
==
200
){
this
.
$message
.
success
(
result
.
msg
)
this
.
handleCurrentChange
(
1
)
this
.
isEdit
=
false
}
else
{
this
.
$message
.
error
(
result
.
msg
)
}
})
}
},
},
//删除跟进动态
//删除跟进动态
delRecord
(
id
){
delRecord
(
id
){
...
@@ -172,6 +220,15 @@
...
@@ -172,6 +220,15 @@
}
}
})
})
}
}
if
(
this
.
types
==
'gjjl'
)
{
delGJJL
(
this
.
delID
).
then
(
result
=>
{
if
(
result
.
code
==
200
)
{
this
.
handleCurrentChange
(
1
)
this
.
$message
.
success
(
'删除成功'
)
this
.
isdel
=
false
}
})
}
},
},
//跟进动态列表
//跟进动态列表
getGJDTlist
(){
getGJDTlist
(){
...
@@ -184,15 +241,27 @@
...
@@ -184,15 +241,27 @@
this
.
recordlist
.
rows
.
forEach
(
item
=>
{
this
.
recordlist
.
rows
.
forEach
(
item
=>
{
item
.
createTime
=
this
.
gettime
(
item
.
createTime
)
item
.
createTime
=
this
.
gettime
(
item
.
createTime
)
item
.
nextVisitTime
=
this
.
gettime
(
item
.
nextVisitTime
)
item
.
nextVisitTime
=
this
.
gettime
(
item
.
nextVisitTime
)
console
.
log
(
item
.
nextVisitTime
)
})
})
})
})
},
},
getGJJL
(){
let
param
=
{
pageNum
:
this
.
pageNum
,
//页码
pageSize
:
this
.
pageSize
,
businessId
:
this
.
projectId
}
getGJJL
(
param
).
then
(
result
=>
{
this
.
recordlist
=
result
.
code
==
200
?
result
:[]
})
},
handleCurrentChange
(
val
){
handleCurrentChange
(
val
){
this
.
pageNum
=
val
this
.
pageNum
=
val
if
(
this
.
showtype
==
'gjdt'
){
if
(
this
.
showtype
==
'gjdt'
){
this
.
getGJDTlist
()
this
.
getGJDTlist
()
}
}
if
(
this
.
showtype
==
'gjjl'
){
this
.
getGJJL
()
}
},
},
getEdit
(){
getEdit
(){
this
.
isEdit
=
true
;
this
.
isEdit
=
true
;
...
...
dsk-operate-ui/src/views/project/projectList/component/gzdb.vue
View file @
bf408542
<
template
>
<
template
>
<div>
<div>
<el-card
class=
"box-card noborder"
>
<el-card
class=
"box-card noborder"
>
<div
class=
"cardtitles"
>
跟进记录
</div>
<div
class=
"cardtitles"
>
工作待办
</div>
<div
class=
"records"
>
<div
class=
"records"
>
<div
class=
"writeIn"
>
<div
class=
"writeIn"
>
<div
class=
"default"
v-if=
"isEdit == false"
@
click=
"getEdit"
>
<div
class=
"default"
v-if=
"isEdit == false"
@
click=
"getEdit"
>
...
@@ -11,53 +11,52 @@
...
@@ -11,53 +11,52 @@
<div
class=
"writting"
v-if=
"isEdit == true"
>
<div
class=
"writting"
v-if=
"isEdit == true"
>
<div
class=
"wri_top"
>
<div
class=
"wri_top"
>
<img
src=
"@/assets/images/project/add_3.png"
>
<img
src=
"@/assets/images/project/add_3.png"
>
<el-input
placeholder=
"新建一条跟进记录,如:周五上午预约客户上门拜访"
></el-input>
<el-input
v-model=
"queryParam.task"
placeholder=
"新建一条跟进记录,如:周五上午预约客户上门拜访"
></el-input>
</div>
</div>
<div
class=
"wr_bot"
>
<div
class=
"wr_bot"
>
<div
class=
"times"
><img
src=
"@/assets/images/project/ico_4.png"
>
<div
class=
"times"
><img
src=
"@/assets/images/project/ico_4.png"
>
<el-date-picker
<el-date-picker
v-model=
"
valu
e"
v-model=
"
queryParam.finishTim
e"
type=
"date"
type=
"date"
placeholder=
"
待办
时间"
>
placeholder=
"
完成
时间"
>
</el-date-picker>
</el-date-picker>
</div>
</div>
<el-input
v-model=
"
value
"
placeholder=
"拜访对象"
style=
"width: 100px;"
>
<el-input
v-model=
"
queryParam.target
"
placeholder=
"拜访对象"
style=
"width: 100px;"
>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/ico_2.png"
></i>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/ico_2.png"
></i>
</el-input>
</el-input>
<div
class=
"btn btn_primary h32 wc"
:class=
"
{'btn_disabled':value
== ''}">完成
</div>
<div
class=
"btn btn_primary h32 wc"
@
click=
"add"
:disabled=
"queryParam.task == ''"
:class=
"
{'btn_disabled':queryParam.task
== ''}">完成
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"tasktitle"
><strong>
我的任务
</strong><span>
4条已逾期
</span>
<!--
<span
class=
"on"
>
4条已逾期
</span>
-->
</div>
<div
class=
"tasktitle"
><strong>
我的任务
</strong><span
@
click=
"getYQ"
>
4条已逾期
</span>
<!--
<span
class=
"on"
>
4条已逾期
</span>
-->
</div>
<div
class=
"tasklist"
>
<div
class=
"tasklist"
v-for=
"(item,index) in datalist.rows"
>
<div
class=
"task_name"
>
周二拜访交通局李主任
</div>
<div
class=
"task_name"
>
{{
item
.
task
}}
</div>
<div
class=
"task_con"
><span>
发起时间:
2023-01-24
</span><span>
关联客户:
<font
class=
"wordprimary"
>
重庆市交通局
</font></span><span>
完成时间:2023-0.-03
</span></div>
<div
class=
"task_con"
><span>
发起时间:
{{
item
.
createTime
}}
</span><span
v-if=
"item.target"
>
关联客户:
<font
class=
"wordprimary"
>
{{
item
.
target
}}
</font></span><span
v-if=
"item.finishTime"
>
完成时间:
{{
item
.
finishTime
}}
</span></div>
<div
class=
"select"
:class=
"
{'on':
status == 1
}">
<div
class=
"select"
:class=
"
{'on':
item.state == 2
}">
<div
class=
"select-popper"
>
<div
class=
"select-popper"
>
<span
class=
"color_text"
>
<span
class=
"color_text"
>
{{
status
==
0
?
"未完成"
:
"已
完成"
}}
{{
item
.
state
==
2
?
"已完成"
:
"未
完成"
}}
<i
class=
"el-icon-caret-bottom"
></i>
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</span>
<el-select
placeholder=
"请选择"
v-model=
"
status"
class=
"select-multiple
"
>
<el-select
placeholder=
"请选择"
v-model=
"
item.state"
class=
"select-multiple"
@
change=
"changes(item.id,$event)
"
>
<el-option
label=
"未完成"
value=
"0"
></el-option>
<el-option
label=
"未完成"
value=
"0"
></el-option>
<el-option
label=
"已完成"
value=
"1"
></el-option>
<el-option
label=
"未完成"
value=
"1"
></el-option>
<el-option
label=
"已完成"
value=
"2"
></el-option>
</el-select>
</el-select>
</div></div>
</div></div>
</div>
</div>
<div
class=
"tasklist"
>
<div
class=
"task_name"
>
周二拜访交通局李主任
</div>
<div
class=
"tables"
v-if=
"datalist.total>searchPram.pageSize"
>
<div
class=
"task_con"
><span>
发起时间:2023-01-24
</span><span>
关联客户:
<font
class=
"wordprimary"
>
重庆市交通局
</font></span><span>
完成时间:2023-0.-03
</span></div>
<div
class=
"bottems"
>
<div
class=
"select"
:class=
"
{'on':status == 1}">
<el-pagination
<div
class=
"select-popper"
>
background
<span
class=
"color_text"
>
:page-size=
"searchPram.pageSize"
{{
status
==
0
?
"未完成"
:
"已完成"
}}
:current-page=
"searchPram.pageNum"
<i
class=
"el-icon-caret-bottom"
></i>
@
current-change=
"handleCurrentChange"
</span>
layout=
"prev, pager, next"
<el-select
placeholder=
"请选择"
v-model=
"status"
class=
"select-multiple"
>
:total=
"datalist.total"
>
<el-option
label=
"未完成"
value=
"0"
></el-option>
</el-pagination>
<el-option
label=
"已完成"
value=
"1"
></el-option>
</div>
</el-select>
</div></div>
</div>
</div>
</div>
</div>
</el-card>
</el-card>
...
@@ -67,6 +66,8 @@
...
@@ -67,6 +66,8 @@
<
script
>
<
script
>
import
"@/assets/styles/project.scss"
import
"@/assets/styles/project.scss"
import
"@/assets/styles/public.css"
import
"@/assets/styles/public.css"
import
{
addGZDB
,
getGZDB
,
editGZDB
}
from
'@/api/project/project'
export
default
{
export
default
{
name
:
'gjjl'
,
name
:
'gjjl'
,
data
(){
data
(){
...
@@ -74,13 +75,67 @@
...
@@ -74,13 +75,67 @@
isEdit
:
false
,
isEdit
:
false
,
value
:
''
,
value
:
''
,
status
:
0
,
status
:
0
,
queryParam
:{
businessId
:
parseInt
(
this
.
$route
.
query
.
id
),
//项目详情id
target
:
''
,
task
:
''
,
finishTime
:
''
,
},
searchPram
:{
businessId
:
parseInt
(
this
.
$route
.
query
.
id
),
pageSize
:
10
,
pageNum
:
1
,
state
:
null
,
},
datalist
:[],
}
}
},
},
created
(){
this
.
getList
()
},
methods
:{
methods
:{
getEdit
(){
getEdit
(){
this
.
isEdit
=
true
;
this
.
isEdit
=
true
;
this
.
value
=
""
this
.
value
=
""
},
},
add
(){
addGZDB
(
this
.
queryParam
).
then
(
result
=>
{
if
(
result
.
code
==
200
){
this
.
$message
.
success
(
"添加成功!"
)
this
.
getList
()
}
else
{
this
.
$message
.
error
(
result
.
msg
)
}
})
},
getList
(){
getGZDB
(
this
.
searchPram
).
then
(
result
=>
{
this
.
datalist
=
result
.
code
==
200
?
result
:[]
})
},
handleCurrentChange
(
val
){
this
.
searchPram
.
pageNum
=
val
this
.
getList
()
},
changes
(
id
,
state
){
let
param
=
{
id
:
id
,
state
:
state
}
editGZDB
(
param
).
then
(
result
=>
{
if
(
result
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
this
.
getList
()
}
else
{
this
.
$message
.
error
(
result
.
msg
)
}
})
},
getYQ
(){
let
state
=
this
.
searchPram
.
state
this
.
searchPram
.
state
=
state
==
0
?
null
:
0
this
.
handleCurrentChange
(
1
)
},
}
}
}
}
</
script
>
</
script
>
...
...
dsk-operate-ui/src/views/project/projectList/component/jsnr.vue
View file @
bf408542
...
@@ -200,7 +200,7 @@
...
@@ -200,7 +200,7 @@
<
script
>
<
script
>
import
"@/assets/styles/project.scss"
import
"@/assets/styles/project.scss"
import
{
getJSNR
,
editXM
SL
}
from
'@/api/project/project'
import
{
getJSNR
,
editXM
NR
}
from
'@/api/project/project'
export
default
{
export
default
{
name
:
'jsnr'
,
name
:
'jsnr'
,
data
(){
data
(){
...
@@ -249,7 +249,7 @@
...
@@ -249,7 +249,7 @@
this
.
nowedit
=
-
1
this
.
nowedit
=
-
1
let
param
=
str
let
param
=
str
param
.
id
=
this
.
id
param
.
id
=
this
.
id
editXM
SL
(
param
).
then
(
result
=>
{
editXM
NR
(
param
).
then
(
result
=>
{
if
(
result
.
code
==
200
)
if
(
result
.
code
==
200
)
this
.
$message
.
success
(
'修改成功'
)
this
.
$message
.
success
(
'修改成功'
)
else
{
else
{
...
...
dsk-operate-ui/src/views/project/projectList/component/xmsl.vue
View file @
bf408542
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 1"
>
待添加
</span>
<span
class=
"txt"
v-else
@
click=
"nowedit = 1"
>
{{
datas
.
projectLevel
||
'待添加'
}}
</span>
</div>
</div>
</div>
</div>
<div
class=
"con i"
>
<div
class=
"con i"
>
...
@@ -138,27 +138,27 @@
...
@@ -138,27 +138,27 @@
<div
class=
"otherdata"
>
<div
class=
"otherdata"
>
<div
class=
"det"
>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_1.png"
>
<img
src=
"@/assets/images/project/xgsj_1.png"
>
<div
class=
"i"
>
0
个
</div>
<div
class=
"i"
>
{{
datas
.
contactsCount
}}
个
</div>
<div
class=
"j"
>
联系人
</div>
<div
class=
"j"
>
联系人
</div>
</div>
</div>
<div
class=
"det"
>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_2.png"
>
<img
src=
"@/assets/images/project/xgsj_2.png"
>
<div
class=
"i"
>
0
条
</div>
<div
class=
"i"
>
{{
datas
.
followRecordCount
}}
条
</div>
<div
class=
"j"
>
跟进记录
</div>
<div
class=
"j"
>
跟进记录
</div>
</div>
</div>
<div
class=
"det"
>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_3.png"
>
<img
src=
"@/assets/images/project/xgsj_3.png"
>
<div
class=
"i"
>
0
条
</div>
<div
class=
"i"
>
{{
datas
.
backlogCount
}}
条
</div>
<div
class=
"j"
>
工作待办
</div>
<div
class=
"j"
>
工作待办
</div>
</div>
</div>
<div
class=
"det"
>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_4.png"
>
<img
src=
"@/assets/images/project/xgsj_4.png"
>
<div
class=
"i"
>
0
个
</div>
<div
class=
"i"
>
{{
datas
.
fileCount
}}
个
</div>
<div
class=
"j"
>
资料文档
</div>
<div
class=
"j"
>
资料文档
</div>
</div>
</div>
<div
class=
"det"
>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_5.png"
>
<img
src=
"@/assets/images/project/xgsj_5.png"
>
<div
class=
"i"
>
0
家
</div>
<div
class=
"i"
>
{{
datas
.
relateCompanyCount
}}
家
</div>
<div
class=
"j"
>
相关企业
</div>
<div
class=
"j"
>
相关企业
</div>
</div>
</div>
</div>
</div>
...
@@ -190,6 +190,8 @@
...
@@ -190,6 +190,8 @@
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
this
.
projectStage
=
result
.
code
==
200
?
result
.
data
:[]
this
.
projectStage
=
result
.
code
==
200
?
result
.
data
:[]
})
})
this
.
xmjd
=
this
.
datas
.
projectStage
this
.
tipslit
=
this
.
datas
.
labelList
},
},
methods
:{
methods
:{
//验证电话号码
//验证电话号码
...
...
dsk-operate-ui/src/views/project/projectList/detail.vue
View file @
bf408542
...
@@ -5,18 +5,19 @@
...
@@ -5,18 +5,19 @@
<span>
/ 商机列表
</span>
<span>
/ 商机列表
</span>
<span>
/ 项目详情
</span>
<span>
/ 项目详情
</span>
</div>
</div>
<div
class=
"app-container"
>
<div
class=
"app-container"
v-if=
"ProjectData"
>
<el-card
class=
"box-card noborder pad16 overflows"
>
<el-card
class=
"box-card noborder pad16 overflows"
>
<div
class=
"head baseinfo"
>
<div
class=
"head baseinfo"
>
<div
class=
"titles"
>
<div
class=
"titles"
>
<img
src=
"@/assets/images/project/headimg.png"
class=
"headimg"
>
<img
src=
"@/assets/images/project/headimg.png"
class=
"headimg"
>
<strong
class=
"text"
>
重庆市轨道交通3号线二期工程4标段施工总承包
</strong>
<strong
class=
"text"
>
{{
ProjectData
.
projectName
}}
</strong>
<div
class=
"locks"
>
<div
class=
"locks"
>
<img
v-if=
"
islock == true
"
src=
"@/assets/images/project/lock.png"
>
<img
v-if=
"
ProjectData.isPrivate == 0
"
src=
"@/assets/images/project/lock.png"
>
<img
v-else
src=
"@/assets/images/project/lockopen.png"
>
<img
v-else
src=
"@/assets/images/project/lockopen.png"
>
仅自己可见
{{
ProjectData
.
isPrivate
==
0
?
"仅自己可见"
:
"他人可见"
}}
<!--
<div
class=
"delform"
>
-->
<!--
<div
class=
"delform"
>
-->
<!--
<div
class=
"words"
>
{{
islock
==
true
?
"是否将项目权限修改为他人可见?"
:
"是否将项目权限修改为仅自己可见?"
}}
</div>
-->
<!--
<div
class=
"words"
>
{{
ProjectData
.
isPrivate
==
0
?
"是否将项目权限修改为他人可见?"
:
"是否将项目权限修改为仅自己可见?"
}}
</div>
-->
<!--
<div>
-->
<!--
<div>
-->
<!--
<div
class=
"btnsmall btn_primary h28"
>
确定
</div>
-->
<!--
<div
class=
"btnsmall btn_primary h28"
>
确定
</div>
-->
<!--
<div
class=
"btnsmall btn_cancel h28"
>
取消
</div>
-->
<!--
<div
class=
"btnsmall btn_cancel h28"
>
取消
</div>
-->
...
@@ -32,7 +33,7 @@
...
@@ -32,7 +33,7 @@
{{
xmlx
}}
{{
xmlx
}}
<i
class=
"el-icon-caret-bottom"
></i>
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</span>
<el-select
v-model=
"xmlx"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-select
v-model=
"xmlx"
class=
"select-multiple"
placeholder=
"请选择"
@
change=
"
{}"
>
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</el-select>
</div>
</div>
...
@@ -55,20 +56,20 @@
...
@@ -55,20 +56,20 @@
<span>
投资估算(万元):
</span>
<span>
投资估算(万元):
</span>
<div
class=
"inputxt i"
:class=
"
{'nomar':nowedit != 3}">
<div
class=
"inputxt i"
:class=
"
{'nomar':nowedit != 3}">
<div
class=
"flex"
v-if=
"nowedit == 3"
>
<div
class=
"flex"
v-if=
"nowedit == 3"
>
<el-input
placeholder=
"待添加"
@
input=
"number"
></el-input>
<el-input
v-model=
"ProjectData.investmentAmount"
placeholder=
"待添加"
@
input=
"number"
></el-input>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 3"
>
待添加
</span>
<span
:class=
"
{txt:ProjectData.investmentAmoun==''}" v-else @click="nowedit = 3">
{{
ProjectData
.
investmentAmount
||
'待添加'
}}
</span>
</div>
</div>
</div>
</div>
<div
class=
"det-con"
>
<div
class=
"det-con"
>
<span>
建设地点:
</span>
<span>
建设地点:
</span>
<div
class=
"select-popper"
>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text:address != '
address
'}">
<span
:class=
"
{ color_text:address != '
待添加
'}">
{{
address
}}
{{
address
}}
<i
class=
"el-icon-caret-bottom"
></i>
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</span>
...
@@ -80,15 +81,15 @@
...
@@ -80,15 +81,15 @@
</div>
</div>
<div
class=
"det-con"
>
<div
class=
"det-con"
>
<span>
商务团队:
</span>
<span>
商务团队:
</span>
<span>
李力
</span>
<span>
{{
ProjectData
.
team
}}
</span>
</div>
</div>
</div>
</div>
<div
class=
"schedule"
>
<div
class=
"schedule"
>
<div
class=
"child"
v-for=
"(item,index) in projectStage"
@
mouseover=
"hover(i
ndex)"
@
mouseleave=
"hover(-1)"
@
click=
"choose(index,
item.dictValue)"
>
<div
class=
"child"
v-for=
"(item,index) in projectStage"
@
mouseover=
"hover(i
tem.dictValue)"
@
mouseleave=
"hover(-1)"
@
click=
"choose(
item.dictValue)"
>
<img
v-if=
"i
ndex
== lastindex"
src=
"@/assets/images/project/pro_2.png"
>
<img
v-if=
"i
tem.dictValue
== lastindex"
src=
"@/assets/images/project/pro_2.png"
>
<img
v-else-if=
"i
ndex
== thisindex"
src=
"@/assets/images/project/pro_3.png"
>
<img
v-else-if=
"i
tem.dictValue
== thisindex"
src=
"@/assets/images/project/pro_3.png"
>
<img
v-else
src=
"@/assets/images/project/pro_1.png"
>
<img
v-else
src=
"@/assets/images/project/pro_1.png"
>
<span
:class=
"
{'now':i
ndex
== thisindex}">
{{
item
.
dictLabel
}}
</span>
<span
:class=
"
{'now':i
tem.dictValue
== thisindex}">
{{
item
.
dictLabel
}}
</span>
</div>
</div>
</div>
</div>
...
@@ -163,7 +164,7 @@
...
@@ -163,7 +164,7 @@
domicile
:[],
domicile
:[],
props
:{
checkStrictly
:
true
,
expandTrigger
:
'hover'
},
props
:{
checkStrictly
:
true
,
expandTrigger
:
'hover'
},
id
:
''
,
id
:
''
,
ProjectData
:
null
,
ProjectData
:
{}
,
}
}
},
},
created
(){
created
(){
...
@@ -183,9 +184,23 @@
...
@@ -183,9 +184,23 @@
})
})
//获取基本信息
//获取基本信息
getXMSL
(
this
.
id
).
then
(
result
=>
{
getXMSL
(
this
.
id
).
then
(
result
=>
{
this
.
ProjectData
=
result
.
code
==
200
?
result
.
data
:[]
this
.
ProjectData
=
result
.
code
==
200
?
result
.
data
:{}
this
.
$route
.
query
.
projectname
=
result
.
data
.
projectName
this
.
$route
.
query
.
projectname
=
result
.
data
.
projectName
this
.
xmlx
=
result
.
data
.
projectType
==
""
||
result
.
data
.
projectType
==
null
?
"请选择"
:
result
.
data
.
projectType
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
)
}
if
(
result
.
data
.
cityName
){
list
.
push
(
result
.
data
.
cityName
)
}
if
(
result
.
data
.
districtName
){
list
.
push
(
result
.
data
.
districtName
)
}
this
.
address
=
list
console
.
log
(
this
.
ProjectData
.
team
)
})
})
},
},
methods
:
{
methods
:
{
...
@@ -218,11 +233,11 @@
...
@@ -218,11 +233,11 @@
},
},
//进度条悬浮、点击事件
//进度条悬浮、点击事件
hover
(
index
){
hover
(
value
){
this
.
lastindex
=
index
this
.
lastindex
=
value
},
},
choose
(
index
,
value
){
choose
(
value
){
this
.
thisindex
=
index
this
.
thisindex
=
value
console
.
log
(
value
)
console
.
log
(
value
)
},
},
//内容组件切换
//内容组件切换
...
@@ -236,7 +251,7 @@
...
@@ -236,7 +251,7 @@
},
},
handleChange
(
value
)
{
handleChange
(
value
)
{
//
console.log(value);
console
.
log
(
value
);
let
str
=
''
let
str
=
''
var
labelString
=
this
.
$refs
.
myCascader
.
getCheckedNodes
()[
0
].
pathLabels
;
var
labelString
=
this
.
$refs
.
myCascader
.
getCheckedNodes
()[
0
].
pathLabels
;
labelString
.
forEach
((
item
,
index
)
=>
{
labelString
.
forEach
((
item
,
index
)
=>
{
...
...
dsk-operate-ui/src/views/radar/BidRecord/details.vue
0 → 100644
View file @
bf408542
<
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
>
芜湖旭日机械制造有限公司
</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>
</li>
</ul>
</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>
<div
class=
"table-item"
>
<el-table
:data=
"tableData"
element-loading-text=
"Loading"
border
fit
highlight-current-row
>
<el-table-column
label=
"审批事项"
width=
"270"
>
<template
slot-scope=
"scope"
>
企业投资项目备案
</
template
>
</el-table-column>
<el-table-column
label=
"审批结果"
width=
"187"
>
<
template
slot-scope=
"scope"
>
通过
</
template
>
</el-table-column>
<el-table-column
label=
"审批部门"
>
<
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 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
>
</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>
<
script
>
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'EstablishmentDetails'
,
data
()
{
return
{
id
:
''
,
tableData
:
[{
id
:
0
,
name
:
'20重庆债14(2005938)'
,
time
:
'2020-09-18'
,
gm
:
'285.24'
,
zj
:
'否'
,
}]
}
},
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
:
7px
;
.list-label
{
background
:
#F3F3FF
;
color
:
#8491E8
;
border-radius
:
1px
1px
1px
1px
;
padding
:
3px
7px
;
font-size
:
12px
;
}
}
.list-content
{
margin-top
:
3px
;
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
{
.tab
{
font-size
:
12px
;
color
:
#A1A1A1
;
span
{
color
:
#232323
;
}
}
.content
{
margin-top
:
16px
;
background
:
#FFFFFF
;
padding
:
16px
;
border-radius
:
4px
;
}
.common-title
{
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
;
}
span
:last-child
{
width
:
20%
;
border-right
:
1px
solid
#E6E9F0
;
}
}
}
.main5
{
.table-item
{
margin-top
:
22px
;
}
}
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/radar/Tender/details.vue
0 → 100644
View file @
bf408542
<
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
:
'TenderDetails'
,
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
:
7px
;
.list-label
{
background
:
#F3F3FF
;
color
:
#8491E8
;
border-radius
:
1px
1px
1px
1px
;
padding
:
3px
7px
;
font-size
:
12px
;
}
}
.list-content
{
margin-top
:
3px
;
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
{
.tab
{
font-size
:
12px
;
color
:
#A1A1A1
;
span
{
color
:
#232323
;
}
}
.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/components/BidRecord/index.vue
View file @
bf408542
<
template
>
<
template
>
<div>
<div>
<div
id=
"bidRecord_wrap"
>
<div
class=
"content"
>
<div>
<div
class=
"content_item"
>
<div
class=
"content_li"
>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"content_item content_item_nopadding"
>
<div
class=
"content_right"
>
<div
class=
"include-keywords"
>
<el-input
class=
"ename_input"
<span
class=
"lefttltel"
style=
" border-radius: 1px 0px 0px 1px;"
>
项目包含
</span>
placeholder=
"请输入项目名称关键字"
v-model=
"keyword"
></el-input>
<el-input
class=
"commonly-input"
v-model=
"keyword"
style=
"width: 607px;"
placeholder=
"请输入项目名称、文章关键词,多关键词用空格隔开,如:房建 地基"
></el-input>
</div>
</div>
</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=
"land_content_wrap "
style=
"margin-bottom:8px;"
>
<div
class=
"land_content_wrap_label"
>
投标报价
</div>
<el-input
class=
"other_ipt"
placeholder=
"请输入最低金额"
style=
"margin-left:12px;"
@
change=
"changeMoney('start')"
clearable
v-model=
"jskBidQueryDto.startBidMoney"
></el-input>
<span
style=
"margin:0 8px;"
>
至
</span>
<el-input
style=
"position:relative;top:2px;"
placeholder=
"请输入最高金额"
@
change=
"changeMoney('end')"
v-model=
"jskBidQueryDto.endBidMoney"
clearable
class=
"other_ipt other_ipt1"
>
<el-button
slot=
"append"
type=
"primary"
>
万元
</el-button>
</el-input>
<el-checkbox
style=
"margin-left:24px;"
v-model=
"jskBidQueryDto.hasMoney"
true-label=
"yes"
false-label=
""
>
包含投标报价未公示
</el-checkbox>
</div>
</div>
<div
class=
"land_content_wrap"
>
<div
class=
"content_item"
>
<span
class=
"land_content_wrap_label"
>
相关条件
</span>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"select-popper"
style=
"margin-bottom:8px;"
>
<div
class=
"content_right"
>
<div
class=
"select-popper"
>
<span
:class=
"
{color_text:jskBidQueryDto.province.length ||jskBidQueryDto.city.length ||jskBidQueryDto.county.length,}">
<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
+
"项"
:
""
}}
{{
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>
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</span>
<el-cascader
<el-cascader
...
@@ -45,6 +34,7 @@
...
@@ -45,6 +34,7 @@
clearable
clearable
></el-cascader>
></el-cascader>
</div>
</div>
<el-dropdown
@
command=
"punishDatehandleCommand"
trigger=
"click"
ref=
"punishDateShowPopper"
:hide-on-click=
"false"
>
<el-dropdown
@
command=
"punishDatehandleCommand"
trigger=
"click"
ref=
"punishDateShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"punishDateValue ? 'color_text' : ''"
>
<span
class=
"el-dropdown-link"
:class=
"punishDateValue ? 'color_text' : ''"
>
发布时间
{{
punishDateValue
?
" 1项"
:
""
}}
发布时间
{{
punishDateValue
?
" 1项"
:
""
}}
...
@@ -52,7 +42,7 @@
...
@@ -52,7 +42,7 @@
</span>
</span>
<div>
<div>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-for=
"(item, i) in punishDateOptions"
:class=
" punishDateValue && punishDateValue == item.value ? 'color_text': '' "
:key=
"i"
:command=
"item.value"
>
<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>
<div
@
mouseenter=
"hidePoper"
>
{{
item
.
label
}}
</div>
</el-dropdown-item>
</el-dropdown-item>
<el-dropdown-item
command=
"自定义"
style=
"padding: 0; text-indent: 20px"
>
<el-dropdown-item
command=
"自定义"
style=
"padding: 0; text-indent: 20px"
>
...
@@ -78,6 +68,7 @@
...
@@ -78,6 +68,7 @@
</el-dropdown-menu>
</el-dropdown-menu>
</div>
</div>
</el-dropdown>
</el-dropdown>
<el-dropdown
@
command=
"tenderDatehandleCommand"
trigger=
"click"
ref=
"tenderDateShowPopper"
:hide-on-click=
"false"
>
<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
class=
"el-dropdown-link"
:class=
"tenderDateValue ? 'color_text' : ''"
>
开标时间
{{
tenderDateValue
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
...
@@ -108,85 +99,95 @@
...
@@ -108,85 +99,95 @@
</el-dropdown-menu>
</el-dropdown-menu>
</div>
</div>
</el-dropdown>
</el-dropdown>
</div>
</div>
<div
class=
"land_content_wrap"
>
<span
class=
"land_content_wrap_label"
style=
"line-height:34px;"
>
参投单位
</span>
<el-input
style=
"margin-left:12px;"
v-model=
"jskBidQueryDto.companyName"
clearable
placeholder=
"请输入参投单位名称关键词"
>
</el-input>
</div>
</div>
<div
class=
"search-new"
style=
"padding: 16px 0px 16px 76px"
>
<div
class=
"content_item content_item_padding0"
>
<span
@
click=
"search()"
>
查询
</span>
<div
class=
"geduan"
>
<span
@
click=
"reset"
>
重置
</span>
</div>
<div
class=
"data_list"
v-if=
"showList"
>
<div
style=
"height: 16px;width: 1200px;background: #F7F9FC;margin-left: -16px;"
></div>
<div
class=
"data_list_head"
>
共为您找到
<span
class=
"data_list_count"
>
{{
total
}}
</span>
条相关结果
<div
class=
"bottom-toolbar-right float_right"
style=
"padding-top: 1px;"
>
<el-popover
v-model=
"fieldshow"
placement=
"bottom-end"
trigger=
"click"
popper-class=
"viewlist-el-popover"
>
<ul
class=
"pup_list"
>
<li
v-for=
"(itme,i) in fieldOptions"
:class=
"itme.status?'active':''"
@
click=
"handsequencingList(i)"
:key=
"i"
>
{{
itme
.
value
}}
</li>
</ul>
<span
slot=
"reference"
class=
"toolbar-right-download"
style=
"width: auto;padding: 0px 8px;margin-right:4px;"
>
{{
fieldText
}}
<i
class=
"el-icon-caret-bottom"
:style=
"
{transform:fieldshow?'rotate(180deg)':''}">
</i>
</span>
</el-popover>
<span
size=
"small"
class=
"toolbar-right-download toolbar-right-download1"
@
click=
"search('','','isExport')"
>
导出数据
</span>
</div>
</div>
</div>
</div>
<div
style=
"border-top:1px solid #efefef;padding-bottom:1px;width: 1200px;margin-left: -16px;"
v-if=
"total
<1
"
>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"search_empty_wrap"
>
<ul>
<div
class=
"search-new"
>
<li
class=
"search_empty_wrap_li search_empty_wrap_li1"
>
没有找到相关数据,您可尝试:
</li>
<span
@
click=
"search()"
>
查询
</span>
<li
class=
"search_empty_wrap_li"
><i
class=
"disc"
></i>
输入更准确的关键词,重新搜索
</li>
<span
@
click=
"reset"
>
重置
</span>
<li
class=
"search_empty_wrap_li"
><i
class=
"disc"
></i>
尝试减少输入的关键词,增加搜索范围
</li>
<li
class=
"search_empty_wrap_li"
><i
class=
"disc"
></i>
更换筛选条件,重新搜索
</li>
<li
class=
"search_empty_wrap_li"
><i
class=
"disc"
></i>
联系客服进行反馈
<span>
400-023-5755
</span>
(工作日09:00-18:00)或
<span><nuxt-link
title=
"意见反馈"
:to=
"`/feedback/`"
target=
"_blank"
>
意见反馈
</nuxt-link></span></li>
</ul>
</div>
</div>
</div>
</div>
<div
v-else
>
<div
v-for=
"(item, index) in tableData"
class=
"data_list_item"
:key=
"index"
>
<nuxt-link
class=
"data_list_h1 data_list_h1_1"
:to=
"`/biz/tbjl/$
{item.id}.html`" target="_blank" :title="item.projectName.replace(/
<font
color=
'#FF204E'
>
/g,'').replace(/
<
\/
font
>
/g,'')" v-if="item.id" v-html="item.projectName">
</nuxt-link>
<div
class=
"data_list_h1"
v-else
v-html=
"item.projectName"
></div>
<div
class=
"label_box"
v-if=
"item.domicile"
>
<span
class=
"label_span label_span2"
>
{{
item
.
domicile
}}
</span>
</div>
</div>
<div
class=
"label_wrap"
>
<div
class=
"bottomlist"
>
<template
v-if=
"item.source"
>
<div
class=
"bottomlist-title"
>
<span
class=
"label_item"
>
来源网站:
</span>
<div></div>
<span
class=
"label_con"
v-html=
"item.source"
></span>
<div
class=
"title-right"
>
</
template
>
<p>
共有
{{
total
}}
条
</p>
<
template
v-if=
"item.tenderTime"
>
<p>
<span
class=
"label_item"
>
开标时间:
</span><span
class=
"label_con"
>
{{
item
.
tenderTime
}}
</span>
<img
src=
"@/assets/images/EXCEL.png"
alt=
""
>
</
template
>
<span>
导出EXCEL
</span>
<
template
v-if=
"item.punishDate"
>
</p>
<span
class=
"label_item"
>
发布时间:
</span>
<span
class=
"label_con"
>
{{
item
.
punishDate
}}
</span>
</
template
>
</div>
</div>
</div>
</div>
<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>
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
<span
class=
"list-label"
>
市政工程
</span>
</div>
</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>
</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
class=
"performance_pagination_wrap"
v-if=
"showList&&total>0"
>
<Pagination
v-if=
"pageFlag"
ref=
"page"
:page=
'permissions.page'
@
handle-current-change=
"handleCurrentChange"
@
handle-size-change=
"handleSizeChange"
:total=
"total"
/>
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -276,9 +277,10 @@ export default {
...
@@ -276,9 +277,10 @@ export default {
pageFlag
:
true
,
pageFlag
:
true
,
conditionsArr
:
[],
conditionsArr
:
[],
showList
:
true
,
total
:
0
,
tableData
:[],
tableData
:[],
total
:
6000
,
page
:
1
,
pageSize
:
20
};
};
},
},
computed
:
{
computed
:
{
...
@@ -861,22 +863,228 @@ export default {
...
@@ -861,22 +863,228 @@ export default {
},
},
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
#bidRecord_wrap
{
.other_ipt
{
.content
{
width
:
174px
;
padding
:
0px
16px
;
height
:
34px
;
border-radius
:
4px
4px
4px
4px
;
.el-input__inner
{
background
:
#FFFFFF
;
width
:
174px
;
.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
;
}
}
.other_ipt1
{
}
width
:
187px
;
.el-input-group__append
{
.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
;
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
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
#bidRecord_wrap
{
#bidRecord_wrap
{
...
...
dsk-operate-ui/src/views/radar/components/Establishment/index.vue
View file @
bf408542
...
@@ -1211,7 +1211,9 @@
...
@@ -1211,7 +1211,9 @@
},
},
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.content
{
.content
{
padding
:
0px
16px
;
padding
:
0px
16px
;
border-radius
:
4px
4px
4px
4px
;
border-radius
:
4px
4px
4px
4px
;
...
...
dsk-operate-ui/src/views/radar/components/Tender/Select.vue
0 → 100644
View file @
bf408542
<
template
>
<div>
<el-select
v-model=
"selectValue"
:loading=
"loading"
popper-class=
"performance_other_select"
class=
"select-multiple"
placeholder=
"可多选"
ref=
"select"
collapse-tags
multiple
filterable
:filter-method=
"filterMethod"
v-el-select-loadmore=
"loadMore(rangeNumber)"
@
change=
"selectChange"
@
visible-change=
"visibleChange"
>
<el-input
class=
"performance_source_name_ipt"
clearable
v-model=
"inputValue"
@
input=
"changeIpt"
></el-input>
<el-option
v-for=
"(value,index) in sourceNamelist"
:key=
"index"
:value=
"value"
>
<span
v-html=
"value"
></span>
</el-option>
</el-select>
</div>
</
template
>
<
script
>
// import {_debounce} from "@/static/common.js"
// import URL from "@/api/businessOpportunities/tender";
var
URL
=
{
};
var
debounce
=
function
(
fn
,
delay
=
300
)
{
var
timer
=
null
;
return
function
()
{
var
_this
=
this
;
var
args
=
arguments
;
if
(
timer
)
clearTimeout
(
timer
);
timer
=
setTimeout
(
function
()
{
fn
.
apply
(
_this
,
args
);
},
delay
);
};
}
export
default
{
data
(){
return
{
loading
:
false
,
rangeNumber
:
1
,
selectValue
:[],
inputValue
:
""
,
oldInputValue
:
""
,
sourceNamelist
:[],
}
},
directives
:
{
'el-select-loadmore'
:
(
el
,
binding
)
=>
{
// 获取element-ui定义好的scroll盒子
const
SELECTWRAP_DOM
=
el
.
querySelector
(
".el-select-dropdown .el-select-dropdown__wrap"
);
if
(
SELECTWRAP_DOM
)
{
SELECTWRAP_DOM
.
addEventListener
(
"scroll"
,
function
()
{
/**
* scrollHeight 获取元素内容高度(只读)
* scrollTop 获取或者设置元素的偏移值,
* 常用于:计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0.
* clientHeight 读取元素的可见高度(只读)
* 如果元素滚动到底, 下面等式返回true, 没有则返回false:
* ele.scrollHeight - ele.scrollTop === ele.clientHeight;
*/
const
condition
=
this
.
scrollHeight
-
this
.
scrollTop
<=
this
.
clientHeight
;
if
(
condition
)
binding
.
value
();
});
}
},
},
methods
:{
selectChange
(
arr
){
this
.
$emit
(
"getSelectValue"
,
arr
)
},
loadMore
(
n
)
{
// n是默认初始展示的条数会在渲染的时候就可以获取,具体可以打log查看
// elementui下拉超过7条才会出滚动条,如果初始不出滚动条无法触发loadMore方法
return
()
=>
{
this
.
rangeNumber
+=
1
;
this
.
filterMethod
(
this
.
inputValue
)
};
// 每次滚动到底部可以新增条数 可自定义
},
changeIpt
(){
this
.
sourceNamelist
=
[]
this
.
rangeNumber
=
1
this
.
filterMethod
()
},
// 筛选方法
filterMethod
:
debounce
(
function
(
filterVal
)
{
this
.
loading
=
true
let
params
=
{
page
:{
page
:
this
.
rangeNumber
,
limit
:
10
},
}
if
(
this
.
inputValue
){
params
.
keyword
=
this
.
inputValue
;
}
this
.
$axios
.
post
(
URL
.
sourceSearch
,
params
,{
headers
:
{
"Content-Type"
:
"application/json"
}}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
){
this
.
sourceNamelist
=
this
.
sourceNamelist
.
concat
(
res
.
data
.
data
.
list
);
if
(
this
.
sourceNamelist
.
length
>
0
&&
this
.
sourceNamelist
[
0
]
!=
'不限'
){
this
.
sourceNamelist
.
unshift
(
"不限"
)
}
}
this
.
loading
=
false
}).
catch
(
err
=>
{
this
.
loading
=
false
})
},
500
),
// 下拉框出现时,调用过滤方法
visibleChange
(
flag
)
{
this
.
inputValue
=
""
if
(
flag
)
{
this
.
sourceNamelist
=
[]
this
.
rangeNumber
=
1
this
.
filterMethod
()
}
},
}
}
</
script
>
<
style
>
</
style
>
dsk-operate-ui/src/views/radar/components/Tender/index.vue
View file @
bf408542
...
@@ -106,7 +106,7 @@
...
@@ -106,7 +106,7 @@
</el-option>
</el-option>
</el-select>
</el-select>
</div>
</div>
<el-dropdown
@
command=
"bidMoneyhandleCommand"
trigger=
"click"
ref=
"bidMoneyShowPopper"
:hide-on-click=
"false"
>
<el-dropdown
@
command=
"bidMoneyhandleCommand"
class=
"el-dropdown-land"
trigger=
"click"
ref=
"bidMoneyShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
" jskBidQueryDto.startBidMoney || jskBidQueryDto.endBidMoney? 'color_text' : ''"
>
<span
class=
"el-dropdown-link"
:class=
" jskBidQueryDto.startBidMoney || jskBidQueryDto.endBidMoney? 'color_text' : ''"
>
预算金额
{{
jskBidQueryDto
.
startBidMoney
||
jskBidQueryDto
.
endBidMoney
?
" 1项"
:
""
}}
预算金额
{{
jskBidQueryDto
.
startBidMoney
||
jskBidQueryDto
.
endBidMoney
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
<i
class=
"el-icon-caret-bottom"
></i>
...
@@ -144,10 +144,10 @@
...
@@ -144,10 +144,10 @@
</el-dropdown>
</el-dropdown>
<div
class=
"select-popper"
>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.source.length }">
<span
:class=
"
{ color_text: jskBidQueryDto.source.length }">
源网站
{{
jskBidQueryDto
.
source
.
length
?
jskBidQueryDto
.
source
.
length
+
"项"
:
""
}}
来
源网站
{{
jskBidQueryDto
.
source
.
length
?
jskBidQueryDto
.
source
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
<i
class=
"el-icon-caret-bottom"
></i>
</span>
</span>
<
!--
<Select
ref=
"sourceNameSelect"
@
getSelectValue=
"getSourceName"
/>
--
>
<
Select
ref=
"sourceNameSelect"
@
getSelectValue=
"getSourceName"
/
>
</div>
</div>
<div
class=
"select-popper"
>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.phonePoint.length }">
<span
:class=
"
{ color_text: jskBidQueryDto.phonePoint.length }">
...
@@ -175,146 +175,92 @@
...
@@ -175,146 +175,92 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"bottomlist"
>
<div
id=
"tender_wrap"
>
<div
class=
"bottomlist-title"
>
<div
class=
"data_list"
v-if=
"false"
>
<p>
共有
{{
total
}}
条
</p>
<div
style=
"height: 16px;width: 1200px;background:#F7F9FC;margin-left: -16px;"
></div>
<p>
<div
class=
"data_list_head"
>
<img
src=
"@/assets/images/EXCEL.png"
alt=
""
>
共为您找到
<span
class=
"data_list_count"
>
{{
total
}}
</span>
条相关结果
<span>
导出EXCEL
</span>
<div
class=
"bottom-toolbar-right float_right"
style=
"position:relative;top:1px;"
>
</p>
<el-popover
v-model=
"fieldshow"
placement=
"bottom-end"
trigger=
"click"
popper-class=
"viewlist-el-popover"
>
<ul
class=
"pup_list"
>
<li
v-for=
"(itme,i) in fieldOptions"
:class=
"itme.status?'active':''"
@
click=
"handsequencingList(i)"
:key=
"i"
>
{{
itme
.
value
}}
</li>
</ul>
<span
slot=
"reference"
class=
"toolbar-right-download"
style=
"width: auto;padding: 0px 8px;margin-right:4px;"
>
{{
fieldText
}}
<i
class=
"el-icon-caret-bottom"
:style=
"
{transform:fieldshow?'rotate(180deg)':''}">
</i>
</span>
</el-popover>
<span
size=
"small"
class=
"toolbar-right-download toolbar-right-download1"
@
click=
"search('','','isExport')"
>
导出数据
</span>
</div>
</div>
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
<router-link
:to=
"'/radar/Tender/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
轨道交通13号线扩能提升工程
</router-link>
</p>
<div
class=
"content-label"
>
<span
class=
"list-label"
>
江西省-南昌市
</span>
</div>
</div>
<div
style=
"border-top:1px solid #efefef;padding-bottom:1px;width: 1200px;margin-left: -16px;"
v-if=
"total
<1
"
>
<div
class=
"search_empty_wrap"
>
<ul>
<li
class=
"search_empty_wrap_li search_empty_wrap_li1"
>
没有找到相关数据,您可尝试:
</li>
<li
class=
"search_empty_wrap_li"
><i
class=
"disc"
></i>
输入更准确的关键词,重新搜索
</li>
<li
class=
"search_empty_wrap_li"
><i
class=
"disc"
></i>
尝试减少输入的关键词,增加搜索范围
</li>
<li
class=
"search_empty_wrap_li"
><i
class=
"disc"
></i>
更换筛选条件,重新搜索
</li>
<li
class=
"search_empty_wrap_li"
><i
class=
"disc"
></i>
联系客服进行反馈
<span>
400-023-5755
</span>
(工作日09:00-18:00)或
<span><nuxt-link
title=
"意见反馈"
:to=
"`/feedback/`"
target=
"_blank"
>
意见反馈
</nuxt-link></span></li>
</ul>
</div>
</div>
<div
v-else
>
<div
v-for=
"(item, index) in tableData"
class=
"data_list_item"
:key=
"index"
>
<nuxt-link
class=
"data_list_h1 data_list_h1_1"
:to=
"`/biz/bx/$
{deleteChar(item.id)}.html`"
target="_blank"
:title="item.projectName.replace(/
<font
color=
'#FF204E'
>
/g,'').replace(/
<
\/
font
>
/g,'')"
v-if="item.id
&&
item.projectName" v-html="item.projectName">
</nuxt-link>
<div
class=
"data_list_h1"
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
<div
class=
"label_box"
v-if=
"
item.tenderStage ||
item.domicile ||
item.tenderingManner ||
item.projectType
"
>
<span
class=
"label_span label_span1"
v-if=
"item.tenderStage&&item.tenderStage!='其他'&&item.tenderStage!='空白'"
>
{{
item
.
tenderStage
}}
</span>
<span
class=
"label_span label_span2"
v-if=
"item.domicile"
>
{{
item
.
domicile
}}
</span>
<span
class=
"label_span label_span3"
v-if=
"item.tenderingManner&&item.tenderingManner!='其他'&&item.tenderingManner!='空白'"
>
{{
item
.
tenderingManner
}}
</span>
<span
class=
"label_span label_span3"
v-if=
"item.projectType&&item.projectType!='其他'&&item.projectType!='空白'"
>
{{
item
.
projectType
}}
</span>
</div>
<div
class=
"label_wrap"
v-if=
"item.companyName || item.agency"
>
<template
v-if=
"item.companyName"
>
<span
class=
"label_item"
>
招采单位:
</span>
</
template
>
<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>
<
template
v-if=
"item.agency"
>
<span
class=
"label_item"
>
代理单位:
</span>
</
template
>
</div>
<div
class=
"label_wrap"
v-if=
"item.bidMoney || item.agencyContactTel || item.contactTel"
>
<
template
v-if=
"item.bidMoney"
>
<span
class=
"label_item"
>
预算金额:
</span><span
class=
"label_con"
>
{{
item
.
bidMoney
}}
万元
</span>
</
template
>
<
template
v-if=
"item.contactTel || item.agencyContactTel"
>
<span
class=
"label_item"
>
联系方式:
</span><span
class=
"label_con"
>
<template
v-if=
"item.contactTel"
>
招采单位
{{
item
.
contact
}}
{{
item
.
contactTel
}}{{
item
.
contactTel
&&
item
.
agencyContactTel
?
";"
:
""
}}
</
template
>
<
template
v-if=
"item.agencyContactTel"
>
代理单位
{{
item
.
agencyContact
}}
{{
item
.
agencyContactTel
}}
</
template
>
</span>
</template>
</div>
<div
class=
"label_wrap"
v-if=
"item.contentInfo"
>
<span
class=
"label_item"
style=
"position:relative;top:-4px;"
>
正文内容:
</span><span
class=
"label_con label_con1"
v-html=
"item.contentInfo"
></span>
</div>
<div
class=
"label_wrap"
v-if=
"item.punishDate || item.overTime"
>
<
template
v-if=
"item.punishDate"
>
<span
class=
"label_item"
>
发布时间:
</span><span
class=
"label_con"
>
{{
item
.
punishDate
}}
</span>
</
template
>
<
template
v-if=
"item.overTime"
>
<span
class=
"label_item"
>
报名截止日期:
</span><span
class=
"label_con"
>
{{
item
.
overTime
}}
</span>
</
template
>
<
template
v-if=
"item.source"
>
<span
class=
"label_item"
>
来源网站:
</span>
<span
class=
"label_con"
>
{{
item
.
source
}}
</span>
<!--
<el-popover
placement=
"bottom"
trigger=
"hover"
:content=
"item.otherSourceText"
>
<span
slot=
"reference"
class=
"label_con label_con2"
>
<template
v-for=
"(item1,index) in item.otherSource"
>
{{
item1
.
sourceName
}}{{
index
==
item
.
otherSource
.
length
-
1
?
""
:
"、"
}}
</
template
>
</span>
</el-popover>
-->
</template>
</div>
</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>
<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>
</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>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
// import Select from "@/components/businessOpportunities
/Select.vue";
import
Select
from
".
/Select.vue"
;
import
jsk_data
from
'../../../../../public/jsk.json'
;
import
jsk_data
from
'../../../../../public/jsk.json'
;
export
default
{
export
default
{
name
:
'Tender'
,
name
:
'Tender'
,
components
:
{
components
:
{
//
Select
Select
},
},
data
()
{
data
()
{
...
@@ -1308,7 +1254,8 @@
...
@@ -1308,7 +1254,8 @@
}
}
.content-label
{
.content-label
{
margin-top
:
7px
;
margin-top
:
12px
;
margin-bottom
:
4px
;
.list-label
{
.list-label
{
background
:
#F3F3FF
;
background
:
#F3F3FF
;
...
@@ -1319,6 +1266,16 @@
...
@@ -1319,6 +1266,16 @@
font-size
:
12px
;
font-size
:
12px
;
}
}
.list-label-zb
{
font-weight
:
400
;
color
:
#5A88F9
;
background
:
#E7EDFC
;
}
.list-label-lx
{
font-weight
:
400
;
color
:
#41A1FD
;
background
:
#E4F3FD
;
}
}
}
...
...
dsk-operate-ui/src/views/radar/index.vue
View file @
bf408542
...
@@ -23,6 +23,8 @@
...
@@ -23,6 +23,8 @@
<bxprozbgg
v-if=
"personnelHerf=='bxprozbgg'"
/>
<bxprozbgg
v-if=
"personnelHerf=='bxprozbgg'"
/>
<!-- 公招标讯 -->
<!-- 公招标讯 -->
<Tender
v-if=
"personnelHerf=='Tender'"
/>
<Tender
v-if=
"personnelHerf=='Tender'"
/>
<!-- 开标记录 -->
<BidRecord
v-if=
"personnelHerf=='BidRecord'"
/>
...
@@ -34,11 +36,12 @@
...
@@ -34,11 +36,12 @@
import
Establishment
from
"./components/Establishment/index.vue"
;
import
Establishment
from
"./components/Establishment/index.vue"
;
import
bxprozbgg
from
"./components/bxprozbgg/index.vue"
;
import
bxprozbgg
from
"./components/bxprozbgg/index.vue"
;
import
Tender
from
"./components/Tender/index.vue"
;
import
Tender
from
"./components/Tender/index.vue"
;
import
BidRecord
from
"./components/BidRecord/index.vue"
;
import
"@/assets/styles/public.css"
;
import
"@/assets/styles/public.css"
;
export
default
{
export
default
{
name
:
'radar'
,
name
:
'radar'
,
components
:
{
debtProject
,
Land
,
Establishment
,
bxprozbgg
,
Tender
},
components
:
{
debtProject
,
Land
,
Establishment
,
bxprozbgg
,
Tender
,
BidRecord
},
data
()
{
data
()
{
return
{
return
{
// tablist
// tablist
...
@@ -79,7 +82,7 @@
...
@@ -79,7 +82,7 @@
},
},
{
{
key
:
'
KeyPersonnel
'
,
key
:
'
BidRecord
'
,
status
:
false
,
status
:
false
,
value
:
'开标记录'
,
value
:
'开标记录'
,
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/CustomerServiceImpl.java
View file @
bf408542
...
@@ -76,6 +76,7 @@ public class CustomerServiceImpl implements ICustomerService {
...
@@ -76,6 +76,7 @@ public class CustomerServiceImpl implements ICustomerService {
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
boolean
add
(
Customer
customer
)
{
public
boolean
add
(
Customer
customer
)
{
if
(
ObjectUtils
.
isEmpty
(
customer
.
getUipId
()))
{
try
{
try
{
R
res
=
enterpriseService
.
getUipId
(
customer
.
getCompanyName
());
R
res
=
enterpriseService
.
getUipId
(
customer
.
getCompanyName
());
if
(!
ObjectUtils
.
isEmpty
(
res
.
getData
()))
{
if
(!
ObjectUtils
.
isEmpty
(
res
.
getData
()))
{
...
@@ -84,7 +85,7 @@ public class CustomerServiceImpl implements ICustomerService {
...
@@ -84,7 +85,7 @@ public class CustomerServiceImpl implements ICustomerService {
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"获取城投平台企业id错误!error:{}"
,
e
.
getMessage
());
log
.
error
(
"获取城投平台企业id错误!error:{}"
,
e
.
getMessage
());
}
}
}
Long
userId
=
SecurityUtils
.
getUserId
();
Long
userId
=
SecurityUtils
.
getUserId
();
customer
.
setCreateId
(
userId
);
customer
.
setCreateId
(
userId
);
customer
.
setUpdateId
(
userId
);
customer
.
setUpdateId
(
userId
);
...
...
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