Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fulixin
dsk-operate-sys-cscec
Commits
e6c7ae26
Commit
e6c7ae26
authored
Aug 15, 2023
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev20230707' into dev20230707
parents
dcd5f9d0
14b738fe
Changes
53
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
53 changed files
with
19778 additions
and
18705 deletions
+19778
-18705
BusinessContactsController.java
...k/web/controller/business/BusinessContactsController.java
+0
-93
BusinessOverviewController.java
...k/web/controller/business/BusinessOverviewController.java
+34
-0
CustomerDecisionChainController.java
.../controller/customer/CustomerDecisionChainController.java
+0
-66
JskCombineInfoController.java
.../com/dsk/web/controller/dsk/JskCombineInfoController.java
+20
-12
application-test.yml
dsk-admin/src/main/resources/application-test.yml
+4
-0
BusinessContacts.java
...a/com/dsk/common/core/domain/entity/BusinessContacts.java
+0
-180
groupAccount.js
dsk-operate-ui/src/api/detail/groupAccount/groupAccount.js
+52
-0
macro.js
dsk-operate-ui/src/api/macro/macro.js
+41
-1
dataRegion.json
dsk-operate-ui/src/assets/json/dataRegion.json
+16870
-16959
SidebarItem.vue
dsk-operate-ui/src/layout/components/Sidebar/SidebarItem.vue
+5
-3
index.js
dsk-operate-ui/src/router/index.js
+15
-0
Sidebar.vue
...te-ui/src/views/detail/groupAccount/component/Sidebar.vue
+208
-0
members.vue
...te-ui/src/views/detail/groupAccount/component/members.vue
+466
-0
performance.vue
...i/src/views/detail/groupAccount/component/performance.vue
+233
-0
qualifications.vue
...rc/views/detail/groupAccount/component/qualifications.vue
+117
-0
qualificationsDetail.vue
...ws/detail/groupAccount/component/qualificationsDetail.vue
+106
-0
skeleton.vue
...e-ui/src/views/detail/groupAccount/component/skeleton.vue
+29
-0
index.vue
dsk-operate-ui/src/views/detail/groupAccount/index.vue
+102
-0
CustomMoneySelect.vue
.../src/views/detail/party-a/component/CustomMoneySelect.vue
+92
-17
CustomTimeSelect.vue
...i/src/views/detail/party-a/component/CustomTimeSelect.vue
+20
-1
HeadForm.vue
...perate-ui/src/views/detail/party-a/component/HeadForm.vue
+11
-8
Sidebar.vue
...operate-ui/src/views/detail/party-a/component/Sidebar.vue
+0
-1
sameRegion.vue
...i/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
+0
-1
localEconomy.vue
...e-ui/src/views/macro/economies/component/localEconomy.vue
+2
-2
regionalEconomy.vue
...i/src/views/macro/economies/component/regionalEconomy.vue
+3
-0
index.vue
dsk-operate-ui/src/views/macro/enterprises/index.vue
+1
-1
jzqyfx.vue
...ui/src/views/macro/nationalEconomies/component/jzqyfx.vue
+7
-0
qgjjdq.vue
...ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
+2
-2
zhongbiao.vue
...src/views/macro/nationalEconomies/component/zhongbiao.vue
+1093
-742
index.vue
dsk-operate-ui/src/views/macro/nationalEconomies/index.vue
+3
-3
index.vue
dsk-operate-ui/src/views/macro/urban/index.vue
+7
-3
gzdb.vue
...erate-ui/src/views/project/projectList/component/gzdb.vue
+3
-3
xgqy.vue
...erate-ui/src/views/project/projectList/component/xgqy.vue
+2
-2
xmsl.vue
...erate-ui/src/views/project/projectList/component/xmsl.vue
+14
-1
vue.config.js
dsk-operate-ui/vue.config.js
+1
-1
BusinessSearchDto.java
...com/dsk/system/domain/business/dto/BusinessSearchDto.java
+43
-0
CustomerDecisionChain.java
...com/dsk/system/domain/customer/CustomerDecisionChain.java
+0
-68
JskCombineSearchDto.java
...va/com/dsk/system/domain/dsk/dto/JskCombineSearchDto.java
+13
-2
JskCombineInfoService.java
...java/com/dsk/system/dskService/JskCombineInfoService.java
+5
-0
BusinessContactsMapper.java
...in/java/com/dsk/system/mapper/BusinessContactsMapper.java
+62
-62
BusinessInfoMapper.java
...c/main/java/com/dsk/system/mapper/BusinessInfoMapper.java
+4
-0
BusinessRelateCompanyMapper.java
...va/com/dsk/system/mapper/BusinessRelateCompanyMapper.java
+0
-1
CustomerDecisionChainMapper.java
...va/com/dsk/system/mapper/CustomerDecisionChainMapper.java
+18
-18
IBusinessContactsService.java
...java/com/dsk/system/service/IBusinessContactsService.java
+0
-61
IBusinessOverviewService.java
...java/com/dsk/system/service/IBusinessOverviewService.java
+15
-0
ICustomerDecisionChainService.java
...com/dsk/system/service/ICustomerDecisionChainService.java
+0
-53
BusinessContactsServiceImpl.java
.../dsk/system/service/impl/BusinessContactsServiceImpl.java
+0
-110
BusinessOverviewServiceImpl.java
.../dsk/system/service/impl/BusinessOverviewServiceImpl.java
+42
-0
CustomerDecisionChainServiceImpl.java
...system/service/impl/CustomerDecisionChainServiceImpl.java
+0
-93
BusinessContactsMapper.xml
...main/resources/mapper/business/BusinessContactsMapper.xml
+0
-114
BusinessInfoMapper.xml
...src/main/resources/mapper/business/BusinessInfoMapper.xml
+12
-0
SysUserMapper.xml
...system/src/main/resources/mapper/system/SysUserMapper.xml
+1
-0
CustomerDecisionChainMapper.xml
...es/mapper/system/customer/CustomerDecisionChainMapper.xml
+0
-21
No files found.
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessContactsController.java
deleted
100644 → 0
View file @
dcd5f9d0
package
com
.
dsk
.
web
.
controller
.
business
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.entity.BusinessContacts
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.system.service.IBusinessContactsService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 项目联系人Controller
*
* @author lxl
* @date 2023-05-17
*/
@RestController
@RequestMapping
(
"/business/contacts"
)
public
class
BusinessContactsController
extends
BaseController
{
@Autowired
private
IBusinessContactsService
businessContactsService
;
/**
* 分页查询项目联系人列表
*/
// @PreAuthorize("@ss.hasPermi('system:contacts:list')")
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
BusinessContacts
businessContacts
)
{
startPage
();
List
<
BusinessContacts
>
list
=
businessContactsService
.
selectBusinessContactsList
(
businessContacts
);
return
getDataTable
(
list
);
}
/**
* 新增项目联系人
*/
// @PreAuthorize("@ss.hasPermi('system:contacts:add')")
// @Log(title = "项目联系人", businessType = BusinessType.INSERT)
@PostMapping
(
"/add"
)
public
AjaxResult
add
(
@RequestBody
BusinessContacts
businessContacts
)
{
return
toAjax
(
businessContactsService
.
insertBusinessContacts
(
businessContacts
));
}
/**
* 修改项目联系人
*/
// @PreAuthorize("@ss.hasPermi('system:contacts:edit')")
// @Log(title = "项目联系人", businessType = BusinessType.UPDATE)
@PostMapping
(
"/edit"
)
public
AjaxResult
edit
(
@RequestBody
BusinessContacts
businessContacts
)
{
return
toAjax
(
businessContactsService
.
updateBusinessContacts
(
businessContacts
));
}
// /**
// * 导出项目联系人列表
// */
// @PreAuthorize("@ss.hasPermi('system:contacts:export')")
// @Log(title = "项目联系人", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// public void export(HttpServletResponse response, BusinessContacts businessContacts)
// {
// List<BusinessContacts> list = businessContactsService.selectBusinessContactsList(businessContacts);
// ExcelUtil<BusinessContacts> util = new ExcelUtil<BusinessContacts>(BusinessContacts.class);
// util.exportExcel(response, list, "项目联系人数据");
// }
// /**
// * 获取项目联系人详细信息
// */
// @PreAuthorize("@ss.hasPermi('system:contacts:query')")
// @GetMapping(value = "/{id}")
// public AjaxResult getInfo(@PathVariable("id") Long id)
// {
// return success(businessContactsService.selectBusinessContactsById(id));
// }
// /**
// * 删除项目联系人
// */
// @PreAuthorize("@ss.hasPermi('system:contacts:remove')")
// @Log(title = "项目联系人", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids)
// {
// return toAjax(businessContactsService.deleteBusinessContactsByIds(ids));
// }
}
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessOverviewController.java
0 → 100644
View file @
e6c7ae26
package
com
.
dsk
.
web
.
controller
.
business
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.utils.SecurityUtils
;
import
com.dsk.system.domain.business.dto.BusinessSearchDto
;
import
com.dsk.system.service.IBusinessOverviewService
;
import
io.swagger.annotations.Api
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 项目概览
* @author lcl
* @create 2023/8/14
*/
@Api
(
"项目概览"
)
@RestController
@RequestMapping
(
"/business/overview"
)
public
class
BusinessOverviewController
extends
BaseController
{
@Autowired
private
IBusinessOverviewService
baseService
;
/**
* 项目统计
*/
@GetMapping
(
"/statistics"
)
public
AjaxResult
statistics
(){
return
AjaxResult
.
success
(
baseService
.
statistics
(
new
BusinessSearchDto
(
SecurityUtils
.
getUserId
())));
}
}
dsk-admin/src/main/java/com/dsk/web/controller/customer/CustomerDecisionChainController.java
deleted
100644 → 0
View file @
dcd5f9d0
package
com
.
dsk
.
web
.
controller
.
customer
;
import
com.dsk.common.annotation.RepeatSubmit
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.system.domain.customer.CustomerDecisionChain
;
import
com.dsk.system.domain.customer.dto.CustomerDecisionChainSearchDto
;
import
com.dsk.system.service.ICustomerDecisionChainService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.*
;
/**
* 客户决策链条
* @author lcl
* @create 2023/5/16
*/
@RestController
@RequestMapping
(
"/customer/decision/chain"
)
public
class
CustomerDecisionChainController
extends
BaseController
{
@Autowired
private
ICustomerDecisionChainService
baseService
;
/**
* 获取客户决策链条列表
*/
// @PreAuthorize("@ss.hasPermi('customer:decision:chain:list')")
@GetMapping
(
"/list"
)
public
TableDataInfo
selectPageList
(
CustomerDecisionChainSearchDto
dto
){
startPage
();
return
getDataTable
(
baseService
.
selectList
(
dto
));
}
/**
* 添加客户决策链条
*/
// @PreAuthorize("@ss.hasPermi('customer:decision:chain:add')")
@PostMapping
()
@RepeatSubmit
()
public
AjaxResult
add
(
@RequestBody
CustomerDecisionChain
customerDecisionChain
){
return
AjaxResult
.
success
(
baseService
.
insert
(
customerDecisionChain
));
}
/**
* 编辑客户决策链条
*/
// @PreAuthorize("@ss.hasPermi('customer:decision:chain:edit')")
@PutMapping
()
@RepeatSubmit
()
public
AjaxResult
edit
(
@RequestBody
CustomerDecisionChain
customerDecisionChain
){
return
AjaxResult
.
success
(
baseService
.
update
(
customerDecisionChain
));
}
/**
* 删除客户决策链条
*/
// @PreAuthorize("@ss.hasPermi('customer:decision:chain:del')")
@DeleteMapping
(
"/{id}"
)
@RepeatSubmit
()
public
AjaxResult
del
(
@PathVariable
(
"id"
)
Long
id
){
return
AjaxResult
.
success
(
baseService
.
deleteById
(
id
));
}
}
dsk-admin/src/main/java/com/dsk/web/controller/dsk/JskCombineInfoController.java
View file @
e6c7ae26
package
com
.
dsk
.
web
.
controller
.
dsk
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.system.domain.dsk.dto.JskCombineCertificateDto
;
...
...
@@ -9,7 +8,8 @@ import com.dsk.system.domain.dsk.dto.JskCombineSearchDto;
import
com.dsk.system.dskService.JskCombineInfoService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -29,39 +29,47 @@ public class JskCombineInfoController extends BaseController {
/**
* 集团成员列表
*/
@
Ge
tMapping
(
"/memberList"
)
public
TableDataInfo
memberList
(
JskCombineSearchDto
dto
)
throws
Exception
{
@
Pos
tMapping
(
"/memberList"
)
public
TableDataInfo
memberList
(
@RequestBody
JskCombineSearchDto
dto
)
throws
Exception
{
return
baseService
.
memberList
(
dto
);
}
/**
* 分组成员数量
*/
@
Ge
tMapping
(
"/group/memberCount"
)
public
R
groupMemberCount
(
JskCombineSearchDto
dto
)
{
@
Pos
tMapping
(
"/group/memberCount"
)
public
R
groupMemberCount
(
@RequestBody
JskCombineSearchDto
dto
)
{
return
baseService
.
groupMemberCount
(
dto
);
}
/**
* 集团业绩列表
*/
@
Ge
tMapping
(
"/businessList"
)
public
TableDataInfo
businessList
(
JskCombineSearchDto
dto
)
throws
Exception
{
@
Pos
tMapping
(
"/businessList"
)
public
TableDataInfo
businessList
(
@RequestBody
JskCombineSearchDto
dto
)
throws
Exception
{
return
baseService
.
businessList
(
dto
);
}
/**
* 集团资质列表
*/
@
Ge
tMapping
(
"/certificateList"
)
public
TableDataInfo
certificateList
(
JskCombineSearchDto
dto
)
throws
Exception
{
@
Pos
tMapping
(
"/certificateList"
)
public
TableDataInfo
certificateList
(
@RequestBody
JskCombineSearchDto
dto
)
throws
Exception
{
return
baseService
.
certificateList
(
dto
);
}
/**
* 集团成员资质列表
*/
@
GetMapping
(
"/men
ber/certificateList"
)
public
TableDataInfo
menberCertificateList
(
JskCombineCertificateDto
dto
)
throws
Exception
{
@
PostMapping
(
"/mem
ber/certificateList"
)
public
TableDataInfo
menberCertificateList
(
@RequestBody
JskCombineCertificateDto
dto
)
throws
Exception
{
return
baseService
.
menberCertificateList
(
dto
);
}
/**
* 集团资质分组统计
*/
@PostMapping
(
"/group/certificateCount"
)
public
R
groupCertificateCount
(
@RequestBody
JskCombineSearchDto
dto
)
throws
Exception
{
return
baseService
.
groupCertificateCount
(
dto
);
}
}
dsk-admin/src/main/resources/application-test.yml
View file @
e6c7ae26
...
...
@@ -202,3 +202,7 @@ dsk:
# accessKeyId: aec7b3ff2y2q8x6t49a7e2c463ce21912
# accessKeySecret: ee8a53c7ea04eb3ac311406c8f56f95b
# protocol: https
# endPoint: localhost:8767
# accessKeyId: aec7b3ff2y2q8x6t49a7e2c463ce21912
# accessKeySecret: ee8a53c7ea04eb3ac311406c8f56f95b
# protocol: http
dsk-common/src/main/java/com/dsk/common/core/domain/entity/BusinessContacts.java
deleted
100644 → 0
View file @
dcd5f9d0
package
com
.
dsk
.
common
.
core
.
domain
.
entity
;
import
com.dsk.common.annotation.Excel
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
java.util.Date
;
/**
* 项目联系人对象 business_contacts
*
* @author lxl
* @date 2023-05-17
*/
public
class
BusinessContacts
{
private
static
final
long
serialVersionUID
=
1L
;
/** $column.columnComment */
private
Integer
id
;
/** 项目id */
@Excel
(
name
=
"项目id"
)
private
Integer
businessId
;
/** 姓名 */
@Excel
(
name
=
"姓名"
)
private
String
name
;
/** 角色 */
@Excel
(
name
=
"角色"
)
private
String
role
;
/** 公司/机关 */
@Excel
(
name
=
"公司/机关"
)
private
String
office
;
/** 职位 */
@Excel
(
name
=
"职位"
)
private
String
position
;
/** 联系电话 */
@Excel
(
name
=
"联系电话"
)
private
String
phone
;
/** 维护人员 */
@Excel
(
name
=
"维护人员"
)
private
String
accendant
;
/** 性别(1.男 2.女 0.未知) */
@Excel
(
name
=
"性别"
)
private
Integer
sex
;
/** 创建时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@Excel
(
name
=
"创建时间"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
/** 修改时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@Excel
(
name
=
"修改时间"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
}
public
Integer
getId
()
{
return
id
;
}
public
void
setBusinessId
(
Integer
businessId
)
{
this
.
businessId
=
businessId
;
}
public
Integer
getBusinessId
()
{
return
businessId
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getName
()
{
return
name
;
}
public
void
setRole
(
String
role
)
{
this
.
role
=
role
;
}
public
String
getRole
()
{
return
role
;
}
public
void
setOffice
(
String
office
)
{
this
.
office
=
office
;
}
public
String
getOffice
()
{
return
office
;
}
public
void
setPosition
(
String
position
)
{
this
.
position
=
position
;
}
public
String
getPosition
()
{
return
position
;
}
public
void
setPhone
(
String
phone
)
{
this
.
phone
=
phone
;
}
public
String
getPhone
()
{
return
phone
;
}
public
void
setAccendant
(
String
accendant
)
{
this
.
accendant
=
accendant
;
}
public
String
getAccendant
()
{
return
accendant
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
Integer
getSex
()
{
return
sex
;
}
public
void
setSex
(
Integer
sex
)
{
this
.
sex
=
sex
;
}
@Override
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
.
append
(
"id"
,
getId
())
.
append
(
"businessId"
,
getBusinessId
())
.
append
(
"name"
,
getName
())
.
append
(
"role"
,
getRole
())
.
append
(
"office"
,
getOffice
())
.
append
(
"position"
,
getPosition
())
.
append
(
"phone"
,
getPhone
())
.
append
(
"accendant"
,
getAccendant
())
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"updateTime"
,
getUpdateTime
())
.
append
(
"sex"
,
getSex
())
.
toString
();
}
}
dsk-operate-ui/src/api/detail/groupAccount/groupAccount.js
0 → 100644
View file @
e6c7ae26
import
request
from
"@/utils/request"
;
// 集团成员列表
export
function
memberList
(
data
)
{
return
request
({
url
:
'/combine/info/memberList'
,
method
:
'post'
,
data
:
data
})
}
// 集团成员-主营业务
export
function
memberCount
(
data
)
{
return
request
({
url
:
'/combine/info/group/memberCount'
,
method
:
'post'
,
data
:
data
})
}
// 集团资质列表
export
function
certificateList
(
data
)
{
return
request
({
url
:
'/combine/info/certificateList'
,
method
:
'post'
,
data
:
data
})
}
// 集团资质列表-详情
export
function
memberCertificateList
(
data
)
{
return
request
({
url
:
'/combine/info/member/certificateList'
,
method
:
'post'
,
data
:
data
})
}
// 集团资质分组统计
export
function
certificateCount
(
data
)
{
return
request
({
url
:
'/combine/info/group/certificateCount'
,
method
:
'post'
,
data
:
data
})
}
// 集团业绩列表
export
function
businessList
(
data
)
{
return
request
({
url
:
'/combine/info/businessList'
,
method
:
'post'
,
data
:
data
})
}
dsk-operate-ui/src/api/macro/macro.js
View file @
e6c7ae26
...
...
@@ -100,7 +100,16 @@ export function countNewsBidByMonth(param) {
data
:
param
})
}
//全国商机项目分析-全国土地交易项目年份统计
//全国中标市场分析-全国中标项目统计
export
function
countBidByType
(
param
)
{
return
request
({
url
:
'/marketAnalysis/countBidByType'
,
method
:
'POST'
,
data
:
param
})
}
//全国中标市场分析-全国各地区中标统计TOP10
export
function
countBidGroupByProvince
(
param
)
{
return
request
({
url
:
'/marketAnalysis/countBidGroupByProvince'
,
...
...
@@ -108,6 +117,37 @@ export function countBidGroupByProvince(param) {
data
:
param
})
}
//全国中标市场分析-全国中标金额分析
export
function
rangeBidMoney
(
param
)
{
return
request
({
url
:
'/marketAnalysis/rangeBidMoney'
,
method
:
'POST'
,
data
:
param
})
}
//全国中标市场分析-全国中标趋势分析
export
function
rangeBidFiveYears
()
{
return
request
({
url
:
'/marketAnalysis/rangeBidFiveYears'
,
method
:
'POST'
,
})
}
//全国中标市场分析-全国中标下浮率分析
export
function
lowerRateByYear
(
param
)
{
return
request
({
url
:
'/marketAnalysis/lowerRateByYear'
,
method
:
'POST'
,
data
:
param
})
}
//全国中标市场分析-全国中标业绩项目类型下浮率
export
function
lowerRangeTenderType
(
param
)
{
return
request
({
url
:
'/marketAnalysis/lowerRangeTenderType'
,
method
:
'POST'
,
data
:
param
})
}
...
...
dsk-operate-ui/src/assets/json/dataRegion.json
View file @
e6c7ae26
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/layout/components/Sidebar/SidebarItem.vue
View file @
e6c7ae26
...
...
@@ -36,9 +36,11 @@
>
<div
class=
"side-container"
>
<div
class=
"side-title"
>
<app-link
v-if=
"onlyOneChild.meta || item.meta"
:to=
"resolvePath(onlyOneChild.path || item.path)"
>
<!--
<app-link
v-if=
"onlyOneChild.meta || item.meta"
:to=
"resolvePath(onlyOneChild.path || item.path)"
>
-->
<app-link
:to=
"resolvePath(onlyOneChild.path || item.path)"
>
{{
onlyOneChild
.
meta
.
title
||
item
.
meta
.
title
}}
</app-link>
</div>
</div>
<item
v-if=
"onlyOneChild.meta"
slot=
"reference"
:icon=
"sideIcon(item, onlyOneChild)"
/>
...
...
dsk-operate-ui/src/router/index.js
View file @
e6c7ae26
...
...
@@ -77,6 +77,7 @@ export const constantRoutes = [
{
path
:
''
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'urban'
,
children
:
[
{
...
...
@@ -101,6 +102,20 @@ export const constantRoutes = [
}
]
},
{
path
:
'/groupAccount'
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'noredirect'
,
children
:
[
{
path
:
'/groupAccount/:id'
,
component
:
()
=>
import
(
'@/views/detail/groupAccount/index'
),
name
:
'GroupAccount'
,
meta
:
{
title
:
'集团户详情'
,
icon
:
'enterprise'
,
noCache
:
false
},
}
]
},
{
path
:
'/enterprise'
,
component
:
Layout
,
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/Sidebar.vue
0 → 100644
View file @
e6c7ae26
<
template
>
<div
id=
"detailPart"
class=
"sides-container"
:style=
"sideHeight?'height:'+sideHeight+'px':''"
>
<el-input
placeholder=
"搜索"
class=
"side-input"
v-model=
"searchText"
clearable
@
input=
"handleSearch(true)"
@
keyup
.
enter
.
native=
"handleSearch()"
>
<i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
@
click=
"handleSearch()"
></i>
</el-input>
<el-menu
ref=
"sideMenu"
:unique-opened=
"true"
:default-active=
"searchIndex?searchIndex:routeIndex"
class=
"detail-menu"
@
open=
"handleOpen"
>
<template
v-for=
"(item, index) in sideRoute"
>
<template>
<el-menu-item
:index=
"index.toString()"
@
click=
"handleItem(item)"
>
{{
item
.
title
}}
</el-menu-item>
</
template
>
</template>
</el-menu>
</div>
</template>
<
script
>
export
default
{
name
:
'Sidebar'
,
props
:
{
partBoxHeight
:
{
type
:
Number
,
default
:
null
},
pathName
:
{
type
:
String
,
default
:
null
},
customerId
:
{
type
:
String
,
default
:
''
},
isCompany
:
{
type
:
Boolean
,
default
:
true
},
},
data
()
{
return
{
searchText
:
''
,
sideRoute
:
[
{
title
:
'集团成员'
,
pathName
:
'members'
},
{
title
:
'集团资质'
,
pathName
:
'qualifications'
},
{
title
:
'集团业绩'
,
pathName
:
'performance'
},
],
defaultRoute
:
[],
customer
:[
'members'
,
'qualifications'
,
'performance'
,
],
uniqueOpened
:
false
,
searchIndex
:
''
}
},
computed
:
{
sideHeight
()
{
let
sideHeight
=
document
.
getElementById
(
"detailPart"
)?
document
.
getElementById
(
"detailPart"
).
offsetHeight
:
null
,
bowerHeight
=
document
.
body
.
clientHeight
-
170
||
null
if
(
this
.
partBoxHeight
<
bowerHeight
)
{
sideHeight
=
bowerHeight
}
else
{
sideHeight
=
'1222'
/*this.partBoxHeight*/
}
return
sideHeight
},
routeIndex
(){
let
idx
=
this
.
getRouteIdx
(
''
,
this
.
pathName
)
||
'0'
return
idx
}
},
created
()
{
this
.
defaultRoute
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
sideRoute
))
},
watch
:{
},
methods
:
{
handleOpen
(
key
,
keyPath
)
{
},
handleItem
(
item
){
this
.
$emit
(
"currentPath"
,
item
)
},
handleSearch
(
flag
){
if
((
this
.
searchText
&&!
flag
)
||
(
!
this
.
searchText
&&
flag
)){
let
idx
=
this
.
getRouteIdx
(
this
.
searchText
)
if
(
idx
){
if
(
idx
.
includes
(
'-'
)){
let
openIdx
=
idx
.
slice
(
0
,
1
)
this
.
sideRoute
=
[
this
.
defaultRoute
[
openIdx
]]
this
.
$refs
.
sideMenu
.
open
(
openIdx
)
}
else
{
this
.
sideRoute
=
[
this
.
defaultRoute
[
idx
]]
}
this
.
searchIndex
=
'-1'
}
else
{
this
.
sideRoute
=
this
.
defaultRoute
this
.
searchIndex
=
''
}
}
},
getRouteIdx
(
pathTitle
,
pathName
){
let
idx
=
''
,
sideArr
=
this
.
sideRoute
==
this
.
defaultRoute
?
this
.
sideRoute
:
this
.
defaultRoute
for
(
let
i
=
0
;
i
<
sideArr
.
length
;
i
++
){
if
(
sideArr
[
i
].
title
==
pathTitle
||
sideArr
[
i
].
pathName
==
pathName
){
idx
=
i
.
toString
()
break
}
else
if
(
sideArr
[
i
].
children
){
for
(
let
j
=
0
;
j
<
sideArr
[
i
].
children
.
length
;
j
++
){
if
(
sideArr
[
i
].
children
[
j
].
title
==
pathTitle
||
sideArr
[
i
].
children
[
j
].
pathName
==
pathName
){
idx
=
i
+
'-'
+
j
break
}
}
}
}
return
idx
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
#app
{
.sides-container
{
width
:
144px
;
min-height
:
calc
(
100vh
-
170px
);
padding-bottom
:
20px
;
background
:
#FFFFFF
;
border-radius
:
4px
;
.side-input
{
width
:
128px
;
margin-top
:
16px
;
margin-left
:
8px
;
border
:
0
;
::v-deep
.el-input__inner
{
height
:
32px
;
background
:
#F3F3F4
;
border-radius
:
20px
;
border
:
0
;
&
:
:
placeholder
{
color
:
#3D3D3D
;
}
}
.el-icon-search
{
line-height
:
34px
;
color
:
#0081FF
;
cursor
:
pointer
;
}
}
.detail-menu
{
margin-top
:
20px
;
border-right
:
0
;
::v-deep
.el-menu-item
,
::v-deep
.el-submenu__title
{
height
:
30px
;
line-height
:
30px
;
font-size
:
14px
;
color
:
#232323
;
padding
:
0
0
0
16px
!
important
;
text-align
:
initial
!
important
;
&
:hover
,
&
:focus
,
&
.is-active
{
color
:
#0081FF
!
important
;
background
:
linear-gradient
(
91deg
,
rgba
(
0
,
129
,
255
,
0
.1
)
0%
,
rgba
(
0
,
129
,
255
,
0
)
100%
);;
}
.el-submenu__icon-arrow
{
color
:
#232323
;
right
:
48px
;
margin-top
:
-5px
;
}
}
.is-disabled
:hover
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
)
!
important
;
&
:before
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
)
!
important
;
}
}
::v-deep
.el-submenu
.el-menu-item
{
font-size
:
12px
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
padding
:
0
0
0
27px
!
important
;
min-width
:
144px
!
important
;
position
:
relative
;
&
:before
{
content
:
""
;
position
:
absolute
;
top
:
14px
;
left
:
21px
;
width
:
2px
;
height
:
2px
;
background
:
#0081FF
;
border-radius
:
50%
;
}
}
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/members.vue
0 → 100644
View file @
e6c7ae26
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/detail/groupAccount/component/performance.vue
0 → 100644
View file @
e6c7ae26
<
template
>
<div
class=
"performance"
>
<head-form
title=
"集团业绩"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
>
<template
slot=
"slot"
>
</
template
>
</head-form>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-if=
"!isSkeleton"
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<
template
slot=
"bidTime"
slot-scope=
"scope"
>
<div>
{{
formatDate
(
scope
.
row
.
bidTime
)
}}
</div>
</
template
>
<
template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName" v-html="scope.row.companyName">
</router-link>
<div
v-else
v-html=
"scope.row.companyName || '--'"
></div>
</
template
>
<
template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/biddetail/$
{scope.row.projectId}`" tag="a" class="a-link" v-if="scope.row.projectId" v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
<
template
slot=
"projectUnit"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.projectUnitUipId?`/enterprise/$
{encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId
&&
scope.row.projectUnit" v-html="scope.row.projectUnit">
</router-link>
<div
v-else
v-html=
"scope.row.projectUnit || '--'"
></div>
</
template
>
</tables>
</div>
</template>
<
script
>
import
mixin
from
'../../party-a/mixins/mixin'
import
{
businessList
}
from
'@/api/detail/groupAccount/groupAccount'
import
dataRegion
from
'@/assets/json/dataRegion'
import
{
getDictType
}
from
'@/api/main'
export
default
{
name
:
'qualifications'
,
props
:
[
'companyId'
],
mixins
:
[
mixin
],
components
:{},
data
(){
return
{
isSkeleton
:
true
,
tableLoading
:
false
,
isDetails
:
false
,
defaultSort
:
{
prop
:
'time'
,
order
:
'descending'
},
queryParams
:
{
combineId
:
'81de7ca2a967d91c2afad9cb5fc30e6d'
,
pageNum
:
1
,
pageSize
:
20
},
forData
:
[
{
label
:
'中标时间'
,
prop
:
'bidTime'
,
slot
:
true
,
minWidth
:
'100'
},
{
label
:
'中标成员'
,
prop
:
'companyName'
,
slot
:
true
,
minWidth
:
'150'
},
{
label
:
'持股比例(%)'
,
prop
:
'stockPercent'
,
minWidth
:
'150'
},
{
label
:
'项目名称'
,
prop
:
'projectName'
,
slot
:
true
,
minWidth
:
'200'
},
{
label
:
'中标金额(万元)'
,
prop
:
'bidAmount'
,
minWidth
:
'150'
},
{
label
:
'中标地区'
,
prop
:
'address'
,
minWidth
:
'100'
},
{
label
:
'业绩类型'
,
prop
:
'boundType'
,
minWidth
:
'100'
},
{
label
:
'项目类型'
,
prop
:
'projectType'
,
minWidth
:
'100'
},
{
label
:
'业主单位'
,
prop
:
'projectUnit'
,
slot
:
true
,
minWidth
:
'200'
},
],
formData
:
[
{
type
:
7
,
fieldName
:
'combineMemberLevel'
,
value
:
''
,
props
:
{
multiple
:
true
},
placeholder
:
'项目地区'
,
options
:[]},
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'中标时间'
,
startTime
:
'startBidTime'
,
endTime
:
'endBidTime'
,
timeList
:[]
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'中标金额'
,
startMoney
:
'minAmount'
,
endMoney
:
'maxAmount'
,
moneyList
:[]
},
{
type
:
4
,
fieldName
:
'boundTypes'
,
value
:
''
,
placeholder
:
'业绩类型'
,
options
:
[]},
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[]},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'searchValue'
,
value
:
''
,
placeholder
:
'搜索中标成员名称/项目名称'
},
],
tableData
:[],
tableDataTotal
:
0
,
addressList
:
[],
cgblList
:
[
{
name
:
'100%'
,
value
:
'100%'
},
{
name
:
'50%以上'
,
value
:
'50%以上'
},
{
name
:
'20%以上'
,
value
:
'20%以上'
},
{
name
:
'5%以上'
,
value
:
'5%以上'
},
{
name
:
'1%-5%'
,
value
:
'1%-5%'
},
],
timeList
:
[
'近三天'
,
'近七天'
,
'近半月'
,
'自定义'
],
moneyList
:
[
'5000万以下'
,
'5000万-1亿'
,
'1亿-5亿'
,
'5亿-10亿'
,
'10亿以上'
,
'自定义'
],
}
},
created
()
{
this
.
dataRegion
()
this
.
handleQuery
()
this
.
formData
[
1
].
timeList
=
this
.
timeList
;
this
.
formData
[
2
].
moneyList
=
this
.
moneyList
;
this
.
formData
[
5
].
options
=
this
.
cgblList
;
//业绩类型
getDictType
(
'bound_type'
).
then
(
result
=>
{
let
data
=
result
.
code
==
200
?
result
.
data
:[];
if
(
data
.
length
>
0
){
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
){
this
.
formData
[
3
].
options
.
push
({
name
:
data
[
i
].
dictLabel
,
value
:
data
[
i
].
dictValue
,
})
}
}
})
//项目类型
getDictType
(
'project_type_new'
).
then
(
result
=>
{
let
data
=
result
.
code
==
200
?
result
.
data
:[];
if
(
data
.
length
>
0
){
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
){
this
.
formData
[
4
].
options
.
push
({
name
:
data
[
i
].
dictLabel
,
value
:
data
[
i
].
dictValue
,
})
}
}
})
},
methods
:
{
handleQuery
(
params
){
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
;
if
(
data
.
cgbl
){
if
(
data
.
cgbl
===
'100%'
){
data
.
minStockPercent
=
1
}
if
(
data
.
cgbl
===
'50%以上'
){
data
.
minStockPercent
=
0.5
}
if
(
data
.
cgbl
===
'20%以上'
){
data
.
minStockPercent
=
0.2
}
if
(
data
.
cgbl
===
'5%以上'
){
data
.
minStockPercent
=
0.05
}
if
(
data
.
cgbl
===
'1%-5%'
){
data
.
minStockPercent
=
0.01
data
.
maxStockPercent
=
0.05
}
delete
data
.
cgbl
}
businessList
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
code
==
200
?
res
.
rows
:[]
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
},
formatDate
(
timestamp
)
{
var
time
=
new
Date
(
timestamp
)
let
year
=
time
.
getFullYear
();
let
month
=
time
.
getMonth
()
+
1
>=
10
?
parseInt
(
time
.
getMonth
()
+
1
)
:
"0"
+
parseInt
(
time
.
getMonth
()
+
1
);
let
day
=
time
.
getDate
()
>=
10
?
time
.
getDate
()
:
"0"
+
time
.
getDate
();
return
year
+
'-'
+
month
+
'-'
+
day
},
//地区
async
dataRegion
()
{
var
str
=
[];
for
(
let
x
=
0
;
x
<
3
;
x
++
)
{
for
(
let
i
=
0
;
i
<
dataRegion
.
length
;
i
++
)
{
if
(
dataRegion
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
1
)
{
str
.
push
({
'id'
:
dataRegion
[
i
].
id
,
"label"
:
dataRegion
[
i
].
regionName
,
"short"
:
dataRegion
[
i
].
short
,
"value"
:
dataRegion
[
i
].
parentId
,
"children"
:
[]
});
}
else
if
(
dataRegion
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
2
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
id
==
dataRegion
[
i
].
parentId
)
{
str
[
j
].
children
.
push
({
'id'
:
dataRegion
[
i
].
id
,
"label"
:
dataRegion
[
i
].
regionName
,
"short"
:
dataRegion
[
i
].
short
,
"value"
:
dataRegion
[
i
].
parentId
,
"children"
:
[]
});
}
}
}
else
if
(
dataRegion
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
3
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
for
(
let
k
=
0
;
k
<
str
[
j
].
children
.
length
;
k
++
)
{
if
(
str
[
j
].
children
[
k
].
id
==
dataRegion
[
i
].
parentId
)
{
str
[
j
].
children
[
k
].
children
.
push
({
'id'
:
dataRegion
[
i
].
id
,
"label"
:
dataRegion
[
i
].
regionName
,
"short"
:
dataRegion
[
i
].
short
,
"value"
:
dataRegion
[
i
].
parentId
// "children":[]
});
}
}
}
}
}
}
this
.
addressList
=
str
;
this
.
formData
[
0
].
options
=
str
;
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.performance
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.headForm
{
margin-bottom
:
14px
;
.common-title
{
margin-right
:
24px
;
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/qualifications.vue
0 → 100644
View file @
e6c7ae26
<
template
>
<div
class=
"qualifications"
>
<head-form
title=
"集团资质"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-if=
"!isSkeleton"
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"companyCount"
slot-scope=
"scope"
>
<div
style=
"cursor: pointer;color: #0081FF;"
@
click=
"handleClick($event, scope.row)"
v-html=
"scope.row.companyCount || '--'"
></div>
</
template
>
</tables>
<qualifications-detail
v-if=
"isDetails"
:data=
"rowData"
:title=
"title"
@
cancel=
"isDetails=false"
/>
</div>
</template>
<
script
>
import
mixin
from
'../../party-a/mixins/mixin'
import
{
certificateList
,
certificateCount
}
from
'@/api/detail/groupAccount/groupAccount'
import
QualificationsDetail
from
'./qualificationsDetail'
export
default
{
name
:
'qualifications'
,
props
:
[
'companyId'
,
'companyInfo'
],
mixins
:
[
mixin
],
components
:{
QualificationsDetail
},
data
(){
return
{
isSkeleton
:
true
,
tableLoading
:
false
,
isDetails
:
false
,
defaultSort
:
{
prop
:
'time'
,
order
:
'descending'
},
queryParams
:
{
combineId
:
'54355f88a5b16d3e52f74931f5567853'
,
pageNum
:
1
,
pageSize
:
10
},
forData
:
[
{
label
:
'资质名称'
,
prop
:
'qualificationName'
},
{
label
:
'拥有该资质成员'
,
prop
:
'companyCount'
,
slot
:
true
},
],
formData
:
[
{
type
:
4
,
fieldName
:
'combineMemberLevel'
,
value
:
''
,
placeholder
:
'筛选'
,
options
:[]},
],
tableData
:[],
tableDataTotal
:
0
,
title
:
''
,
rowData
:
''
}
},
created
()
{
this
.
handleQuery
()
this
.
getCertificateList
()
},
methods
:
{
handleQuery
(
params
){
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
certificateList
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
},
getCertificateList
(){
certificateCount
({
combineId
:
this
.
queryParams
.
combineId
}).
then
(
res
=>
{
let
data
=
res
.
data
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
){
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
].
qualificationName
+
'('
+
data
[
i
].
companyCount
+
')'
,
value
:
data
[
i
].
qualificationType
,
})
}
})
},
handleClick
(
e
,
data
)
{
this
.
title
=
this
.
companyInfo
.
companyName
+
data
.
qualificationName
+
'('
+
data
.
companyCount
+
')'
this
.
rowData
=
data
this
.
isDetails
=
true
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.qualifications
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.headForm
{
margin-bottom
:
14px
;
.common-title
{
margin-right
:
24px
;
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/qualificationsDetail.vue
0 → 100644
View file @
e6c7ae26
<
template
>
<div
class=
"client-details"
>
<el-drawer
:visible
.
sync=
"drawer"
size=
"40%"
custom-class=
"client-drawer"
:with-header=
"false"
@
closed=
"cancel"
>
<tables
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
style=
"margin: 12px;"
>
<template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName" v-html="scope.row.companyName">
</router-link>
<div
v-else
v-html=
"scope.row.companyName || '--'"
></div>
</
template
>
</tables>
</el-drawer>
</div>
</template>
<
script
>
import
mixin
from
'../../party-a/mixins/mixin'
import
{
memberCertificateList
}
from
'@/api/detail/groupAccount/groupAccount'
export
default
{
props
:
[
'data'
,
'title'
],
components
:
{
},
mixins
:
[
mixin
],
data
()
{
return
{
drawer
:
false
,
queryParams
:
{
id
:
this
.
data
.
id
,
pageNum
:
1
,
pageSize
:
10
},
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目/工程名称查询'
,
options
:
[]},
],
forData
:
[
{
label
:
'拥有该资质成员'
,
prop
:
'companyName'
,
slot
:
true
},
{
label
:
'成员共有资质(个)'
,
prop
:
'certificateCount'
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
amountTotal
:
0
}
},
created
()
{
this
.
drawer
=
true
this
.
handleQuery
()
},
methods
:
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
memberCertificateList
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
){
this
.
tableData
=
res
.
rows
}
this
.
tableDataTotal
=
res
.
total
// this.amountTotal = res.totalAmount
},
handlePic
(
url
,
isPic
){
isPic
?
url
=
'https://imgs.jiansheku.com/'
+
url
:
''
if
(
url
){
window
.
open
(
url
,
"_blank"
)
}
},
linkTo
(
scope
){
this
.
drawer
=
false
this
.
$router
.
push
(
`/biddetail/
${
scope
.
row
.
id
}
`
)
},
cancel
()
{
this
.
$emit
(
'cancel'
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.client-details
{
::v-deep
.client-drawer
{
background
:
#FFFFFF
;
}
.tip-img
{
width
:
14px
;
height
:
14px
;
margin-right
:
4px
;
cursor
:
pointer
;
}
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/skeleton.vue
0 → 100644
View file @
e6c7ae26
<
template
>
<el-skeleton
animated
>
<template
slot=
"template"
>
<el-skeleton-item
variant=
"text"
style=
"width: 60%;"
/>
<el-skeleton-item
variant=
"text"
style=
"width: 100%;"
/>
<el-skeleton-item
variant=
"text"
style=
"width: 100%;"
/>
<el-skeleton-item
variant=
"text"
style=
"width: 100%;"
/>
<el-skeleton-item
variant=
"text"
style=
"width: 60%;"
/>
<el-skeleton-item
variant=
"text"
style=
"width: 100%;"
/>
<el-skeleton-item
variant=
"text"
style=
"width: 100%;"
/>
<el-skeleton-item
variant=
"text"
style=
"width: 100%;"
/>
</
template
>
</el-skeleton>
</template>
<
script
>
export
default
{
name
:
'skeleton'
}
</
script
>
<
style
lang=
"scss"
scoped
>
.el-skeleton__item
{
height
:
20px
;
border-radius
:
0
;
margin
:
9px
0
;
background
:
#f0f0f0
;
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/index.vue
0 → 100644
View file @
e6c7ae26
<
template
>
<div
class=
"app-container group-container"
>
<div
class=
"header-container"
>
<div
class=
"flex-box part-header"
>
<img
class=
"header-logo"
:src=
"require('@/assets/images/detail/company_logo.png')"
>
{{
name
||
'--'
}}
</div>
</div>
<div
class=
"flex-box group-main"
>
<div
class=
"group-left"
>
<side-bar
ref=
"sidebar"
@
currentPath=
"showPartPage"
:pathName=
"currentPath.pathName"
:customerId=
"customerId"
/>
</div>
<div
class=
"group-right"
>
<div
id=
"groupBox"
v-if=
"customerId"
>
<Members
v-if=
"currentPath.pathName=='members'"
:company-id=
"companyId"
:isSkeleton=
"isSkeleton"
:companyInfo=
"companyInfo"
/>
<Qualifications
v-if=
"currentPath.pathName=='qualifications'"
:company-id=
"companyId"
:isSkeleton=
"isSkeleton"
:companyInfo=
"companyInfo"
/>
<Performance
v-if=
"currentPath.pathName=='performance'"
:company-id=
"companyId"
:isSkeleton=
"isSkeleton"
:companyInfo=
"companyInfo"
/>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
idRemark
}
from
'@/api/common'
import
SideBar
from
"./component/Sidebar"
import
Members
from
"./component/members"
import
Qualifications
from
"./component/qualifications"
import
Performance
from
"./component/performance"
import
{
infoHeader
}
from
'@/api/detail/party-a/index'
import
elementResizeDetectorMaker
from
"element-resize-detector"
export
default
{
name
:
'GroupAccount'
,
components
:{
SideBar
,
Members
,
Qualifications
,
Performance
},
data
(){
return
{
companyId
:
'3068'
,
//企业Id(测试默认3068)
customerId
:
''
,
//企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
companyInfo
:
{},
cooDetail
:
{},
currentPath
:
{
pathName
:
'members'
//默认展示页
},
isCompany
:
false
,
isSkeleton
:
false
,
name
:
''
}
},
created
()
{
if
(
this
.
$route
.
params
.
id
)
{
// customerId
this
.
customerId
=
this
.
$route
.
params
.
id
}
// if (this.$route.query.path) { // 获取跳转对应板块
// this.currentPath.pathName = this.$route.query.path
// }
// this.$route.query.name=''
this
.
name
=
this
.
$route
.
query
.
name
?
this
.
$route
.
query
.
name
:
'中建集团'
},
mounted
(){
},
methods
:
{
showPartPage
(
e
){
this
.
currentPath
=
e
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.group-container
{
padding
:
0
;
}
.group-main
{
margin-top
:
12px
;
align-items
:
initial
;
}
.group-left
{
margin-right
:
16px
;
}
.group-right
{
min-width
:
1088px
;
width
:
100%
;
background
:
#FFFFFF
;
border-radius
:
4px
;
}
.part-header
{
font-size
:
16px
;
font-weight
:
bold
;
color
:
#232323
;
background
:
#FFFFFF
;
padding
:
14px
16px
;
margin-top
:
12px
;
border-radius
:
4px
;
.header-logo
{
width
:
28px
;
height
:
28px
;
margin-right
:
16px
;
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/component/CustomMoneySelect.vue
View file @
e6c7ae26
...
...
@@ -12,8 +12,27 @@
<div
class=
"arrow"
></div>
<div
@
click=
"handleClick(option)"
:class=
"['option', value==option?'active':'']"
:key=
"i"
v-for=
"(option, i) in options"
>
<
template
v-if=
"option == '自定义'"
>
<div
class=
"number-box"
>
<input
type=
"number"
v-model=
"startMoney"
class=
"number-input"
clearable
>
至
<input
v-model=
"endMoney"
class=
"number-input"
type=
"text"
clearable
>
万元
<el-button
@
click
.
stop=
"handleConfirm"
class=
"number-button"
type=
"primary"
>
确定
</el-button>
<!--
<div
class=
"number-box"
>
-->
<!--
<input
type=
"number"
v-model=
"startMoney"
class=
"number-input"
clearable
>
至
<input
v-model=
"endMoney"
class=
"number-input"
type=
"text"
clearable
>
万元
<el-button
@
click
.
stop=
"handleConfirm"
class=
"number-button"
type=
"primary"
>
确定
</el-button>
-->
<!--
</div>
-->
<div
style=
"position: relative"
>
自定义
<div
class=
"popper_box"
style=
"position: absolute"
v-if=
"value === '自定义'"
>
<div
class=
"popper_wrap"
>
从
<el-input
class=
"popper_input"
type=
"number"
clearable
v-model=
"startMoney"
></el-input>
万
</div>
<div
class=
"popper_wrap"
>
到
<el-input
class=
"popper_input"
type=
"number"
clearable
v-model=
"endMoney"
></el-input>
万
</div>
<div
style=
""
>
<el-button
size=
"mini"
@
click
.
stop=
"cancellation"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click
.
stop=
"handleConfirm"
>
确定
</el-button>
</div>
</div>
</div>
</
template
>
<
template
v-else
>
...
...
@@ -88,11 +107,11 @@ export default {
// const flag = document.getElementById('custom-money-select').contains(e.target)
!
flag
?
this
.
isSelectOption
=
false
:
''
if
(
this
.
value
==
'自定义'
&&
!
this
.
startMoney
&&
!
this
.
endMoney
)
{
this
.
value
=
''
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'handle-search'
)
}
//
if(this.value == '自定义' && !this.startMoney && !this.endMoney) {
//
this.value = ''
//
this.$emit('input', '')
//
this.$emit('handle-search')
//
}
},
true
)
},
// 清除
...
...
@@ -120,33 +139,42 @@ export default {
this
.
value
=
value
let
moneyStr
=
''
if
(
value
==
'自定义'
)
{
this
.
value
=
'自定义'
this
.
value
=
'自定义'
;
}
else
{
this
.
startMoney
=
''
this
.
endMoney
=
''
this
.
isSelectOption
=
false
switch
(
value
)
{
case
'10亿以上'
:
moneyStr
=
[
100000
]
break
;
case
'一亿以上'
:
moneyStr
=
[
10000
]
break
;
case
'1亿-10亿'
:
moneyStr
=
[
10000
,
100000
]
break
;
case
'1亿-5亿'
:
moneyStr
=
[
10000
,
50000
]
break
;
case
'5000万-1亿'
:
moneyStr
=
[
5000
,
10000
]
break
;
case
'1000万-5000万'
:
moneyStr
=
[
1000
,
5000
]
break
;
case
'10亿以上'
:
moneyStr
=
[
100000
]
break
;
case
'1亿-10亿'
:
moneyStr
=
[
10000
,
100000
]
break
;
case
'2000万-1亿'
:
moneyStr
=
[
2000
,
10000
]
break
;
case
'400万-2000万'
:
moneyStr
=
[
400
,
2000
]
break
;
case
'5000万以下'
:
moneyStr
=
[,
5000
]
break
;
case
'1000万以下'
:
moneyStr
=
[,
1000
]
break
;
case
'400万以下'
:
moneyStr
=
[,
400
]
break
;
...
...
@@ -158,6 +186,13 @@ export default {
this
.
$emit
(
'handle-search'
)
}
},
// 自定义取消
cancellation
(){
this
.
isSelectOption
=
false
this
.
value
=
''
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'handle-search'
)
},
// 自定义确认点击后的回调
handleConfirm
()
{
this
.
isSelectOption
=
false
...
...
@@ -271,7 +306,7 @@ export default {
.option
{
padding
:
0
24px
0
16px
;
box-sizing
:
border-box
;
width
:
40
0px
;
width
:
14
0px
;
height
:
36px
;
display
:
flex
;
justify-content
:
space-between
;
...
...
@@ -294,8 +329,6 @@ export default {
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
width
:
206px
;
border
:
1px
solid
#DCDCDC
;
border-radius
:
2px
;
&
:
:-
webkit-outer-spin-button
,
...
...
@@ -360,5 +393,47 @@ export default {
line-height
:
30px
;
margin-left
:
10px
;
}
.popper_box
{
position
:
absolute
;
left
:
128px
;
bottom
:
-15px
;
background
:
#ffffff
;
width
:
186px
;
color
:
#606266
;
text-indent
:
0
;
padding
:
16px
;
padding-top
:
0px
;
border
:
1px
solid
#e0e0e0
;
.popper_wrap
{
margin-top
:
16px
;
display
:
inline-block
;
.popper_input
{
width
:
100px
;
display
:
inline-block
;
margin
:
0px
8px
;
line-height
:
34px
;
}
.el-input__inner
{
width
:
100px
;
}
}
input
:
:-
webkit-outer-spin-button
,
input
::-
webkit-inner-spin-button
{
-webkit-appearance
:
none
!
important
;
}
input
[
type
=
'number'
]
{
-moz-appearance
:
textfield
;
}
}
.popper_box
div
:last-child
{
display
:
flex
;
justify-content
:
center
;
margin-top
:
16px
;
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/component/CustomTimeSelect.vue
View file @
e6c7ae26
...
...
@@ -57,6 +57,10 @@ export default {
dateTo
:
{
type
:
String
,
default
:
''
},
timeList
:
{
type
:
Array
,
default
:
()
=>
[],
}
},
computed
:
{
...
...
@@ -103,6 +107,9 @@ export default {
this
.
defaultValue
=
new
Date
(
this
.
dateTo
)
}
this
.
handleAppClick
()
if
(
this
.
timeList
&&
this
.
timeList
.
length
>
0
){
this
.
options
=
this
.
timeList
}
},
methods
:
{
// 时间格式化
...
...
@@ -159,6 +166,18 @@ export default {
let
startTime
=
''
let
endTime
=
new
Date
()
switch
(
value
)
{
case
'近三天'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
3
)
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
break
;
case
'近七天'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
7
)
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
break
;
case
'近半月'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
15
)
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
break
;
case
'近1年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
1
)
if
(
this
.
dateTo
){
...
...
@@ -309,7 +328,7 @@ export default {
.el-picker-panel.el-date-range-picker.el-popper
{
left
:
0
!
important
;
top
:
205px
!
important
;
/*top: 205px !important;*/
}
.popper__arrow
{
...
...
dsk-operate-ui/src/views/detail/party-a/component/HeadForm.vue
View file @
e6c7ae26
...
...
@@ -51,12 +51,13 @@
style=
"max-width: 170px"
:placeholder=
"form.placeholder"
@
change=
"changeSelect"
>
<el-option
v-for=
"(item, index) in form.options"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
<el-option
v-for=
"(item, index) in form.options"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
:disabled=
"item.disabled"
/>
</el-select>
</
template
>
<!-- 时间、自定义 -->
<
template
v-else-if=
"form.type==5"
>
<custom-time-select
:timeList=
"form.timeList"
v-model=
"form.value"
:placeholder=
"form.placeholder"
:dateFrom=
"form.dateFrom ? form.dateFrom : ''"
...
...
@@ -81,7 +82,6 @@
@
change=
"changeSelect"
:placeholder=
"form.placeholder"
collapse-tags
style=
"margin-top: -1px;"
clearable
></el-cascader>
</
template
>
<!-- 自定义 -->
...
...
@@ -143,6 +143,9 @@ export default {
return
{
}
},
created
()
{
},
components
:
{
CustomTimeSelect
,
...
...
@@ -173,22 +176,22 @@ export default {
}
::v-deep
.el-input__inner
{
border
:
1px
solid
#D9D9D9
;
height
:
3
2
px
;
line-height
:
3
2
px
;
height
:
3
4
px
;
line-height
:
3
4
px
;
padding-right
:
27px
;
}
::v-deep
.el-form-item
{
margin-right
:
8px
!
important
;
}
::v-deep
.el-input--medium
.el-input__icon
{
line-height
:
3
2
px
;
line-height
:
3
4
px
;
}
::v-deep
.el-cascader
{
height
:
3
2
px
;
line-height
:
3
2
px
;
height
:
3
4
px
;
line-height
:
3
4
px
;
.el-input
{
input
{
height
:
3
2
px
!
important
;
height
:
3
4
px
!
important
;
}
}
.el-cascader__tags
{
...
...
dsk-operate-ui/src/views/detail/party-a/component/Sidebar.vue
View file @
e6c7ae26
...
...
@@ -147,7 +147,6 @@ export default {
},
created
()
{
this
.
defaultRoute
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
sideRoute
))
},
watch
:{
statisticObj
:{
...
...
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
View file @
e6c7ae26
...
...
@@ -288,7 +288,6 @@ export default {
this
.
uipGroupDatalist
=
res
.
data
})
},
changeXZDJ
(
index
)
{
this
.
queryParams
.
uipExecutiveLevel
=
index
;
this
.
changes
()
...
...
dsk-operate-ui/src/views/macro/economies/component/localEconomy.vue
View file @
e6c7ae26
...
...
@@ -36,7 +36,7 @@
</el-table-column>
<el-table-column
prop=
"gdp"
label=
"GDP(亿元)"
sortable
width=
"120"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gdpGrowth"
label=
"GDP增速(%)"
sortable
width=
"1
0
0"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gdpGrowth"
label=
"GDP增速(%)"
sortable
width=
"1
2
0"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gdpPerCapita"
label=
"人均GDP(元)"
sortable
width=
"130"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"population"
label=
"人口(万人)"
sortable
width=
"120"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"fixedInvestment"
label=
"固定资产投资 (亿元) "
sortable
width=
"200"
:formatter=
"formatStatus"
/>
...
...
@@ -100,7 +100,6 @@ export default {
},
methods
:
{
getData
(){
this
.
isSkeleton
=
true
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
,
year
:
this
.
queryParams
.
year
,
type
:
2
}
if
(
this
.
queryParams
.
field
){
params
.
field
=
this
.
queryParams
.
field
...
...
@@ -118,6 +117,7 @@ export default {
params
.
areaId
=
[
this
.
provinceId
[
2
]]
}
// params.provinceIds=[this.dataQuery.provinceId]
// this.isSkeleton = true
nationalPage
(
params
).
then
(
res
=>
{
this
.
isSkeleton
=
false
this
.
tableData
=
res
.
data
.
list
...
...
dsk-operate-ui/src/views/macro/economies/component/regionalEconomy.vue
View file @
e6c7ae26
...
...
@@ -717,6 +717,9 @@ export default {
// province:this.dataQuery.province,
// }
// })
console
.
log
(
this
.
dataQuery
.
provinceId
)
console
.
log
(
this
.
dataQuery
.
province
)
// return
this
.
$router
.
push
({
name
:
'Urban'
,
params
:
{
provinceId
:
this
.
dataQuery
.
provinceId
,
...
...
dsk-operate-ui/src/views/macro/enterprises/index.vue
View file @
e6c7ae26
...
...
@@ -31,7 +31,7 @@
element-loading-text=
"Loading"
border
fit
height=
"640"
max-
height=
"640"
@
sort-change=
"sortChange"
highlight-current-row
v-if=
"tableDataTotal > 0 && !isSkeleton"
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/jzqyfx.vue
View file @
e6c7ae26
...
...
@@ -587,6 +587,13 @@
},
itemStyle
:{
color
:
"#FFAB44"
,
normal
:
{
label
:
{
show
:
true
},
color
:
"#FFAB44"
,
lineStyle
:
{
color
:
"#FFAB44"
}
}
},
//设置面积区域为渐变效果
areaStyle
:
{
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
View file @
e6c7ae26
...
...
@@ -36,7 +36,7 @@
element-loading-text=
"Loading"
@
sort-change=
"sortChange"
border
height=
"640"
max-
height=
"640"
highlight-current-row
v-if=
"tableDataTotal > 0 && !isSkeleton"
:default-sort =
"
{prop: 'gdp', order: 'descending'}"
...
...
@@ -220,7 +220,7 @@
},
// 查询提交
async
querySubmit
()
{
this
.
isSkeleton
=
true
//
this.isSkeleton = true
const
params
=
{
pageNum
:
this
.
pageIndex
,
pageSize
:
this
.
pageSize
,
year
:
this
.
queryParams
.
year
,
type
:
1
}
if
(
this
.
queryParams
.
address
){
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/zhongbiao.vue
View file @
e6c7ae26
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/macro/nationalEconomies/index.vue
View file @
e6c7ae26
...
...
@@ -4,14 +4,14 @@
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"全国经济大全"
name=
"first"
></el-tab-pane>
<el-tab-pane
label=
"全国商机项目分析"
name=
"second"
></el-tab-pane>
<
!--
<el-tab-pane
label=
"全国中标市场分析"
name=
"third"
></el-tab-pane>
--
>
<el-tab-pane
label=
"全国
中标市场
分析"
name=
"fourth"
></el-tab-pane>
<
el-tab-pane
label=
"全国中标市场分析"
name=
"third"
></el-tab-pane
>
<el-tab-pane
label=
"全国
建筑企业
分析"
name=
"fourth"
></el-tab-pane>
</el-tabs>
</div>
<Economic
v-if=
"activeName === 'first'"
></Economic>
<Sjxmfx
v-if=
"activeName === 'second'"
></Sjxmfx>
<
!--
<Zhongbiao
v-if=
"activeName === 'third'"
></Zhongbiao>
--
>
<
Zhongbiao
v-if=
"activeName === 'third'"
></Zhongbiao
>
<Jzqyfx
v-if=
"activeName === 'fourth'"
></Jzqyfx>
</div>
</
template
>
...
...
dsk-operate-ui/src/views/macro/urban/index.vue
View file @
e6c7ae26
...
...
@@ -153,7 +153,7 @@
element-loading-text=
"Loading"
@
sort-change=
"sortChange"
border
height=
"640"
max-
height=
"640"
fit
highlight-current-row
>
...
...
@@ -162,6 +162,7 @@
</el-table-column>
<el-table-column
prop=
"companyName"
label=
"公司名称"
width=
"300"
fixed
>
<
template
slot-scope=
"scope"
>
<!--
<router-link
:to=
"`/groupAccount/$
{encodeStr(scope.row.companyId)}`" tag="a" class="a-link companyName" v-html="scope.row.companyName" >
</router-link>
-->
<router-link
:to=
"`/enterprise/$
{encodeStr(scope.row.companyId)}`" tag="a" class="a-link companyName" v-html="scope.row.companyName" >
</router-link>
<span
@
click=
"handleClick(scope.row)"
class=
"table-span"
style=
"color: #3D3D3D;cursor: pointer;"
v-if=
"scope.row.claimStatus === null || scope.row.claimStatus === 1"
><img
src=
"@/assets/images/urban/rl_icon1.png"
/>
认领
</span>
<span
@
click=
"cancelClaim(scope.row.companyName)"
class=
"table-span"
style=
"color: rgba(35,35,35,0.4);cursor: pointer;"
v-if=
"scope.row.claimStatus === 0"
><img
src=
"@/assets/images/urban/rl_icon2.png"
/>
已认领
</span>
...
...
@@ -249,7 +250,7 @@
<el-dialog
:visible
.
sync=
"claimVisible"
width=
"244"
custom-class=
'dialog-claim'
:show-close=
"false"
>
<div>
认领成功,是否完善客户信息?
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"
innerVisible = tru
e"
>
<el-button
@
click=
"
claimVisible = fals
e"
>
<router-link
:to=
"`/enterprise/${encodeStr(companyId)}?customerId=${customerId}&path=business`"
tag=
"a"
>
立即完善
</router-link>
...
...
@@ -364,7 +365,10 @@ export default {
created
()
{
this
.
dataRegion
()
this
.
getType
()
this
.
dataQuery
=
this
.
$route
.
query
;
this
.
dataQuery
=
this
.
$route
.
params
;
// console.log(this.dataQuery)
// console.log(this.$route.query)
// console.log(this.$route.params)
if
(
this
.
dataQuery
.
provinceId
){
if
(
Array
.
isArray
(
this
.
dataQuery
.
province
)){
this
.
province
=
this
.
dataQuery
.
province
[
0
];
...
...
dsk-operate-ui/src/views/project/projectList/component/gzdb.vue
View file @
e6c7ae26
...
...
@@ -130,9 +130,9 @@
state
:
2
,
}
getGZDB
(
params
).
then
(
result
=>
{
this
.
datalist
=
result
.
code
==
200
?
result
:[]
if
(
this
.
datalist
){
this
.
yqnum
=
`已逾期
${
this
.
datalist
.
rows
.
length
}
条`
;
let
datalist
=
result
.
code
==
200
?
result
:[]
if
(
datalist
){
this
.
yqnum
=
`已逾期
${
datalist
.
rows
.
length
}
条`
;
}
})
},
...
...
dsk-operate-ui/src/views/project/projectList/component/xgqy.vue
View file @
e6c7ae26
...
...
@@ -32,7 +32,7 @@
label=
"企业名称"
>
<template
slot-scope=
"scope"
>
<div
class=
"wordprimary"
>
{{
scope
.
row
.
companyName
}}
</div>
<div>
{{
scope
.
row
.
companyName
}}
</div>
</
template
>
</el-table-column>
<el-table-column
...
...
@@ -73,7 +73,7 @@
label=
"备注"
width=
""
>
<
template
slot-scope=
"scope"
>
<div
class=
"showremark"
v-if=
"scope.row.remark"
>
<div
v-if=
"scope.row.remark"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"scope.row.remark"
placement=
"top"
><span>
{{
scope
.
row
.
remark
}}
</span></el-tooltip>
</div>
<div
v-else
>
--
</div>
...
...
dsk-operate-ui/src/views/project/projectList/component/xmsl.vue
View file @
e6c7ae26
...
...
@@ -38,7 +38,7 @@
<div
class=
"flex tipinput"
>
<div
class=
"tips"
v-for=
"(item,index) in tipslit"
>
{{
item
.
label
}}
<img
v-if=
"isDisabled == false"
@
click=
"deltip(item)"
src=
"@/assets/images/project/del.png"
></div>
<div
style=
"position: relative"
>
<el-input
placeholder=
"待添加"
:disabled=
"isDisabled"
v-model=
"tipsvalue"
@
input=
"getValue"
:style=
"spanWidth"
></el-input><span
class=
"spanText"
>
{{
tipsvalue
}}
</span>
<el-input
placeholder=
"待添加"
id=
"biaoqian"
:disabled=
"isDisabled"
v-model=
"tipsvalue"
@
input=
"getValue"
:style=
"spanWidth"
></el-input><span
class=
"spanText"
>
{{
tipsvalue
}}
</span>
</div>
<div
class=
"addbtn"
v-if=
"isDisabled == false"
@
click=
"addtips"
></div>
</div>
...
...
@@ -196,6 +196,15 @@
isDisabled
:
false
,
}
},
watch
:{
nowedit
:{
handler
(
newVal
,
olVal
)
{
if
(
newVal
==
-
1
){
this
.
getXMSL
()
}
}
}
},
created
(){
//项目阶段
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
...
...
@@ -207,6 +216,10 @@
document
.
getElementById
(
'xmsl'
).
addEventListener
(
'mouseup'
,(
e
)
=>
{
if
(
this
.
isDisabled
==
true
)
return
false
let
bq
=
document
.
getElementById
(
'biaoqian'
).
contains
(
event
.
target
)
if
(
!
bq
){
this
.
addtips
()
}
let
j
=
0
for
(
var
i
=
1
;
i
<=
7
;
i
++
){
let
isSelf
=
document
.
getElementById
(
'inputxt'
+
i
).
contains
(
event
.
target
)
// 这个是自己的区域
...
...
dsk-operate-ui/vue.config.js
View file @
e6c7ae26
...
...
@@ -37,7 +37,7 @@ module.exports = {
target
:
`http://47.104.91.229:9099/prod-api`
,
// target: `http://122.9.160.122:9011`,
// target: `http://192.168.60.126:9011`,
// target: `http://192.168.60.
27:8766
`,
// target: `http://192.168.60.
126:9098
`,
changeOrigin
:
true
,
pathRewrite
:
{
[
'^'
+
process
.
env
.
VUE_APP_BASE_API
]:
''
...
...
dsk-system/src/main/java/com/dsk/system/domain/business/dto/BusinessSearchDto.java
0 → 100644
View file @
e6c7ae26
package
com
.
dsk
.
system
.
domain
.
business
.
dto
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author lcl
* @create 2023/8/14
*/
@Data
@NoArgsConstructor
public
class
BusinessSearchDto
implements
Serializable
{
/**
* 状态
*/
private
Integer
status
;
/**
* 用户id
*/
private
Long
userId
;
/**
* 数据权限
*/
private
Map
<
String
,
Object
>
params
;
public
Map
<
String
,
Object
>
getParams
()
{
if
(
params
==
null
)
{
params
=
new
HashMap
<>();
}
return
params
;
}
public
BusinessSearchDto
(
Long
userId
){
this
.
userId
=
userId
;
}
}
dsk-system/src/main/java/com/dsk/system/domain/customer/CustomerDecisionChain.java
deleted
100644 → 0
View file @
dcd5f9d0
package
com
.
dsk
.
system
.
domain
.
customer
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 客户决策链条(CustomerDecisionChain)实体类
*
* @author makejava
* @since 2023-05-16 15:33:45
*/
@Data
@NoArgsConstructor
@Accessors
(
chain
=
true
)
@TableName
(
"customer_decision_chain"
)
public
class
CustomerDecisionChain
implements
Serializable
{
private
static
final
long
serialVersionUID
=
990085082282249053L
;
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 客户id
*/
private
String
customerId
;
/**
* 姓名
*/
private
String
name
;
/**
* 角色
*/
private
String
role
;
/**
* 公司/机关(工作单位)
*/
private
String
workUnit
;
/**
* 职位
*/
private
String
position
;
/**
* 联系方式
*/
private
String
contactInformation
;
/**
* 备注
*/
private
String
remark
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Date
createTime
;
/**
* 更新人
*/
private
String
updateBy
;
private
Long
updateId
;
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
Date
updateTime
;
}
dsk-system/src/main/java/com/dsk/system/domain/dsk/dto/JskCombineSearchDto.java
View file @
e6c7ae26
...
...
@@ -27,7 +27,7 @@ public class JskCombineSearchDto implements Serializable {
/**
* 集团层级
*/
private
String
combineMemberLevel
;
private
List
<
String
>
combineMemberLevels
;
/**
* 省id
*/
...
...
@@ -84,6 +84,10 @@ public class JskCombineSearchDto implements Serializable {
* 项目类型
*/
private
List
<
String
>
projectTypes
;
/**
* 资质类型
*/
private
Integer
qualificationType
;
/**
* 页码
...
...
@@ -93,6 +97,13 @@ public class JskCombineSearchDto implements Serializable {
* 每页条数
*/
private
Integer
pageSize
;
/**
* 排序字段
*/
private
String
orderName
;
/**
* 排序类型 ASC DESC
*/
private
String
orderType
;
}
dsk-system/src/main/java/com/dsk/system/dskService/JskCombineInfoService.java
View file @
e6c7ae26
...
...
@@ -83,4 +83,9 @@ public class JskCombineInfoService {
}
return
dskOpenApiUtil
.
responsePage
(
map
);
}
public
R
groupCertificateCount
(
JskCombineSearchDto
dto
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/combine/group/certificateCount"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
return
BeanUtil
.
toBean
(
map
,
R
.
class
);
}
}
dsk-system/src/main/java/com/dsk/system/mapper/BusinessContactsMapper.java
View file @
e6c7ae26
package
com
.
dsk
.
system
.
mapper
;
import
com.dsk.common.core.domain.entity.BusinessContacts
;
import
java.util.List
;
/**
* 项目联系人Mapper接口
*
* @author lxl
* @date 2023-05-17
*/
public
interface
BusinessContactsMapper
{
/**
* 查询项目联系人
*
* @param id 项目联系人主键
* @return 项目联系人
*/
public
BusinessContacts
selectBusinessContactsById
(
Long
id
);
/**
* 查询项目联系人列表
*
* @param businessContacts 项目联系人
* @return 项目联系人集合
*/
public
List
<
BusinessContacts
>
selectBusinessContactsList
(
BusinessContacts
businessContacts
);
/**
* 新增项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
public
int
insertBusinessContacts
(
BusinessContacts
businessContacts
);
/**
* 修改项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
public
int
updateBusinessContacts
(
BusinessContacts
businessContacts
);
/**
* 删除项目联系人
*
* @param id 项目联系人主键
* @return 结果
*/
public
int
deleteBusinessContactsById
(
Long
id
);
/**
* 批量删除项目联系人
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public
int
deleteBusinessContactsByIds
(
Long
[]
ids
);
}
//
package com.dsk.system.mapper;
//
//
import com.dsk.common.core.domain.entity.BusinessContacts;
//
//
import java.util.List;
//
/
//
**
//
* 项目联系人Mapper接口
// *
//
* @author lxl
//
* @date 2023-05-17
//
*/
//public interface BusinessContactsMapper
//
{
//
/**
//
* 查询项目联系人
// *
//
* @param id 项目联系人主键
//
* @return 项目联系人
//
*/
//
public BusinessContacts selectBusinessContactsById(Long id);
//
//
/**
//
* 查询项目联系人列表
// *
//
* @param businessContacts 项目联系人
//
* @return 项目联系人集合
//
*/
//
public List<BusinessContacts> selectBusinessContactsList(BusinessContacts businessContacts);
//
//
/**
//
* 新增项目联系人
// *
//
* @param businessContacts 项目联系人
//
* @return 结果
//
*/
//
public int insertBusinessContacts(BusinessContacts businessContacts);
//
//
/**
//
* 修改项目联系人
// *
//
* @param businessContacts 项目联系人
//
* @return 结果
//
*/
//
public int updateBusinessContacts(BusinessContacts businessContacts);
//
//
/**
//
* 删除项目联系人
// *
//
* @param id 项目联系人主键
//
* @return 结果
//
*/
//
public int deleteBusinessContactsById(Long id);
//
//
/**
//
* 批量删除项目联系人
// *
//
* @param ids 需要删除的数据主键集合
//
* @return 结果
//
*/
//
public int deleteBusinessContactsByIds(Long[] ids);
//
}
dsk-system/src/main/java/com/dsk/system/mapper/BusinessInfoMapper.java
View file @
e6c7ae26
package
com
.
dsk
.
system
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.dsk.common.annotation.DataScope
;
import
com.dsk.common.core.domain.entity.BusinessInfo
;
import
com.dsk.system.domain.business.dto.BusinessListDto
;
import
com.dsk.system.domain.business.dto.BusinessSearchDto
;
import
com.dsk.system.domain.business.vo.BusinessLikeProjectNameListVo
;
import
com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto
;
import
com.dsk.system.domain.customer.vo.CustomerBusinessListVo
;
...
...
@@ -108,4 +110,6 @@ public interface BusinessInfoMapper extends BaseMapper<BusinessInfo> {
List
<
CustomerBusinessListVo
>
selectCustomerBusinessList
(
CustomerBusinessSearchDto
dto
);
int
selectCountByStatus
(
BusinessSearchDto
dto
);
}
dsk-system/src/main/java/com/dsk/system/mapper/BusinessRelateCompanyMapper.java
View file @
e6c7ae26
...
...
@@ -2,7 +2,6 @@ package com.dsk.system.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.dsk.common.core.domain.entity.BusinessRelateCompany
;
import
com.dsk.system.domain.customer.CustomerDecisionChain
;
import
java.util.List
;
...
...
dsk-system/src/main/java/com/dsk/system/mapper/CustomerDecisionChainMapper.java
View file @
e6c7ae26
package
com
.
dsk
.
system
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.dsk.system.domain.customer.CustomerDecisionChain
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* 客户决策链条(CustomerDecisionChain)表数据库访问层
*
* @author makejava
* @since 2023-05-16 15:33:46
*/
@Mapper
public
interface
CustomerDecisionChainMapper
extends
BaseMapper
<
CustomerDecisionChain
>
{
}
//
package com.dsk.system.mapper;
//
//
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
//
import com.dsk.system.domain.customer.CustomerDecisionChain;
//
import org.apache.ibatis.annotations.Mapper;
//
//
/
//
**
//
* 客户决策链条(CustomerDecisionChain)表数据库访问层
//
*
//
* @author makejava
//
* @since 2023-05-16 15:33:46
//
*/
//
@Mapper
//
public interface CustomerDecisionChainMapper extends BaseMapper<CustomerDecisionChain> {
//
//
}
//
dsk-system/src/main/java/com/dsk/system/service/IBusinessContactsService.java
deleted
100644 → 0
View file @
dcd5f9d0
package
com
.
dsk
.
system
.
service
;
import
com.dsk.common.core.domain.entity.BusinessContacts
;
import
java.util.List
;
/**
* 项目联系人Service接口
*
* @date 2023-05-17
*/
public
interface
IBusinessContactsService
{
/**
* 查询项目联系人
*
* @param id 项目联系人主键
* @return 项目联系人
*/
public
BusinessContacts
selectBusinessContactsById
(
Long
id
);
/**
* 查询项目联系人列表
*
* @param businessContacts 项目联系人
* @return 项目联系人集合
*/
public
List
<
BusinessContacts
>
selectBusinessContactsList
(
BusinessContacts
businessContacts
);
/**
* 新增项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
public
int
insertBusinessContacts
(
BusinessContacts
businessContacts
);
/**
* 修改项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
public
int
updateBusinessContacts
(
BusinessContacts
businessContacts
);
/**
* 批量删除项目联系人
*
* @param ids 需要删除的项目联系人主键集合
* @return 结果
*/
public
int
deleteBusinessContactsByIds
(
Long
[]
ids
);
/**
* 删除项目联系人信息
*
* @param id 项目联系人主键
* @return 结果
*/
public
int
deleteBusinessContactsById
(
Long
id
);
}
dsk-system/src/main/java/com/dsk/system/service/IBusinessOverviewService.java
0 → 100644
View file @
e6c7ae26
package
com
.
dsk
.
system
.
service
;
import
com.dsk.system.domain.business.dto.BusinessSearchDto
;
import
java.util.Map
;
/**
* @author lcl
* @create 2023/8/14
*/
public
interface
IBusinessOverviewService
{
Map
<
String
,
Object
>
statistics
(
BusinessSearchDto
dto
);
}
dsk-system/src/main/java/com/dsk/system/service/ICustomerDecisionChainService.java
deleted
100644 → 0
View file @
dcd5f9d0
package
com
.
dsk
.
system
.
service
;
import
com.dsk.system.domain.customer.CustomerDecisionChain
;
import
com.dsk.system.domain.customer.dto.CustomerDecisionChainSearchDto
;
import
java.util.List
;
/**
* 客户决策链条(CustomerDecisionChain)表服务接口
*
* @author makejava
* @since 2023-05-16 15:33:45
*/
public
interface
ICustomerDecisionChainService
{
/**
* 查询数据列表
*/
List
<
CustomerDecisionChain
>
selectList
(
CustomerDecisionChainSearchDto
dto
);
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
CustomerDecisionChain
selectById
(
Long
id
);
/**
* 新增数据
*
* @param customerDecisionChain 实例对象
* @return 实例对象
*/
boolean
insert
(
CustomerDecisionChain
customerDecisionChain
);
/**
* 修改数据
*
* @param customerDecisionChain 实例对象
* @return 实例对象
*/
boolean
update
(
CustomerDecisionChain
customerDecisionChain
);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean
deleteById
(
Long
id
);
}
dsk-system/src/main/java/com/dsk/system/service/impl/BusinessContactsServiceImpl.java
deleted
100644 → 0
View file @
dcd5f9d0
package
com
.
dsk
.
system
.
service
.
impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.dsk.common.core.domain.entity.BusinessContacts
;
import
com.dsk.common.core.domain.model.LoginUser
;
import
com.dsk.common.exception.base.BaseException
;
import
com.dsk.common.utils.CheckUtils
;
import
com.dsk.common.utils.DateUtils
;
import
com.dsk.common.utils.SecurityUtils
;
import
com.dsk.system.mapper.BusinessContactsMapper
;
import
com.dsk.system.service.IBusinessContactsService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* 项目联系人Service业务层处理
*
* @author lxl
* @date 2023-05-17
*/
@Service
public
class
BusinessContactsServiceImpl
implements
IBusinessContactsService
{
@Autowired
private
BusinessContactsMapper
businessContactsMapper
;
/**
* 查询项目联系人
*
* @param id 项目联系人主键
* @return 项目联系人
*/
@Override
public
BusinessContacts
selectBusinessContactsById
(
Long
id
)
{
return
businessContactsMapper
.
selectBusinessContactsById
(
id
);
}
/**
* 查询项目联系人列表
*
* @param businessContacts 项目联系人
* @return 项目联系人
*/
@Override
public
List
<
BusinessContacts
>
selectBusinessContactsList
(
BusinessContacts
businessContacts
)
{
return
businessContactsMapper
.
selectBusinessContactsList
(
businessContacts
);
}
/**
* 新增项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
@Override
@Transactional
public
int
insertBusinessContacts
(
BusinessContacts
businessContacts
)
{
if
(!
CheckUtils
.
isPhone
(
businessContacts
.
getPhone
()))
throw
new
BaseException
(
"500"
,
"请输入正确的电话号码"
);
LoginUser
loginUser
=
SecurityUtils
.
getLoginUser
();
if
(
ObjectUtil
.
isEmpty
(
loginUser
))
throw
new
BaseException
(
"请登录"
);
//维护人员为当前登录用户
businessContacts
.
setAccendant
(
loginUser
.
getUser
().
getNickName
());
return
businessContactsMapper
.
insertBusinessContacts
(
businessContacts
);
}
/**
* 修改项目联系人
*
* @param businessContacts 项目联系人
* @return 结果
*/
@Override
@Transactional
public
int
updateBusinessContacts
(
BusinessContacts
businessContacts
)
{
if
(!
CheckUtils
.
isPhone
(
businessContacts
.
getPhone
()))
throw
new
BaseException
(
"500"
,
"请输入正确的电话号码"
);
businessContacts
.
setUpdateTime
(
DateUtils
.
getNowDate
());
return
businessContactsMapper
.
updateBusinessContacts
(
businessContacts
);
}
/**
* 批量删除项目联系人
*
* @param ids 需要删除的项目联系人主键
* @return 结果
*/
@Override
public
int
deleteBusinessContactsByIds
(
Long
[]
ids
)
{
return
businessContactsMapper
.
deleteBusinessContactsByIds
(
ids
);
}
/**
* 删除项目联系人信息
*
* @param id 项目联系人主键
* @return 结果
*/
@Override
public
int
deleteBusinessContactsById
(
Long
id
)
{
return
businessContactsMapper
.
deleteBusinessContactsById
(
id
);
}
}
dsk-system/src/main/java/com/dsk/system/service/impl/BusinessOverviewServiceImpl.java
0 → 100644
View file @
e6c7ae26
package
com
.
dsk
.
system
.
service
.
impl
;
import
com.dsk.common.annotation.DataScope
;
import
com.dsk.common.core.domain.BaseEntity
;
import
com.dsk.common.utils.SecurityUtils
;
import
com.dsk.system.domain.business.dto.BusinessSearchDto
;
import
com.dsk.system.mapper.BusinessInfoMapper
;
import
com.dsk.system.service.IBusinessOverviewService
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author lcl
* @create 2023/8/14
*/
@Service
public
class
BusinessOverviewServiceImpl
implements
IBusinessOverviewService
{
@Resource
private
BusinessInfoMapper
businessInfoMapper
;
@Override
@DataScope
(
userAlias
=
"u"
,
deptAlias
=
"d"
)
public
Map
<
String
,
Object
>
statistics
(
BusinessSearchDto
dto
)
{
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
//总
resultMap
.
put
(
"totalCount"
,
businessInfoMapper
.
selectCountByStatus
(
dto
));
//储备
dto
.
setStatus
(
0
);
resultMap
.
put
(
"reserveCount"
,
businessInfoMapper
.
selectCountByStatus
(
dto
));
//跟进
dto
.
setStatus
(
1
);
resultMap
.
put
(
"followUpCount"
,
businessInfoMapper
.
selectCountByStatus
(
dto
));
//中标(已合作)
dto
.
setStatus
(
2
);
resultMap
.
put
(
"bidCount"
,
businessInfoMapper
.
selectCountByStatus
(
dto
));
return
resultMap
;
}
}
dsk-system/src/main/java/com/dsk/system/service/impl/CustomerDecisionChainServiceImpl.java
deleted
100644 → 0
View file @
dcd5f9d0
package
com
.
dsk
.
system
.
service
.
impl
;
import
cn.hutool.core.bean.BeanException
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.dsk.common.utils.SecurityUtils
;
import
com.dsk.system.domain.customer.CustomerDecisionChain
;
import
com.dsk.system.domain.customer.dto.CustomerDecisionChainSearchDto
;
import
com.dsk.system.mapper.CustomerDecisionChainMapper
;
import
com.dsk.system.service.ICustomerDecisionChainService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* 客户决策链条(CustomerDecisionChain)表服务实现类
*
* @author makejava
* @since 2023-05-16 15:33:45
*/
@Slf4j
@Service
public
class
CustomerDecisionChainServiceImpl
implements
ICustomerDecisionChainService
{
@Resource
private
CustomerDecisionChainMapper
baseMapper
;
@Override
public
List
<
CustomerDecisionChain
>
selectList
(
CustomerDecisionChainSearchDto
dto
)
{
return
baseMapper
.
selectList
(
Wrappers
.<
CustomerDecisionChain
>
lambdaQuery
()
.
eq
(
CustomerDecisionChain:
:
getCustomerId
,
dto
.
getCustomerId
())
.
orderByDesc
(
CustomerDecisionChain:
:
getCreateTime
));
}
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public
CustomerDecisionChain
selectById
(
Long
id
)
{
return
baseMapper
.
selectById
(
id
);
}
/**
* 新增数据
*
* @param customerDecisionChain 实例对象
* @return 实例对象
*/
@Override
public
boolean
insert
(
CustomerDecisionChain
customerDecisionChain
)
{
verifyParameter
(
customerDecisionChain
);
return
baseMapper
.
insert
(
customerDecisionChain
)
>
0
;
}
/**
* 修改数据
*
* @param customerDecisionChain 实例对象
* @return 实例对象
*/
@Override
public
boolean
update
(
CustomerDecisionChain
customerDecisionChain
)
{
if
(
ObjectUtils
.
isEmpty
(
customerDecisionChain
.
getId
()))
throw
new
BeanException
(
"id不能为空!"
);
verifyParameter
(
customerDecisionChain
);
return
baseMapper
.
updateById
(
customerDecisionChain
)
>
0
;
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public
boolean
deleteById
(
Long
id
)
{
return
baseMapper
.
deleteById
(
id
)
>
0
;
}
/**
* 参数验证
*
* @param customerDecisionChain
*/
private
void
verifyParameter
(
CustomerDecisionChain
customerDecisionChain
)
{
if
(
ObjectUtils
.
isEmpty
(
customerDecisionChain
.
getCustomerId
()))
throw
new
BeanException
(
"客户id不能为空!"
);
customerDecisionChain
.
setUpdateId
(
SecurityUtils
.
getUserId
());
customerDecisionChain
.
setUpdateBy
(
SecurityUtils
.
getLoginUser
().
getUser
().
getNickName
());
}
}
dsk-system/src/main/resources/mapper/business/BusinessContactsMapper.xml
deleted
100644 → 0
View file @
dcd5f9d0
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.dsk.system.mapper.BusinessContactsMapper"
>
<resultMap
type=
"com.dsk.common.core.domain.entity.BusinessContacts"
id=
"BusinessContactsResult"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"businessId"
column=
"business_id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"role"
column=
"role"
/>
<result
property=
"office"
column=
"office"
/>
<result
property=
"position"
column=
"position"
/>
<result
property=
"phone"
column=
"phone"
/>
<result
property=
"sex"
column=
"sex"
/>
<result
property=
"accendant"
column=
"accendant"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
<sql
id=
"selectBusinessContactsVo"
>
select id,
business_id,
name,
role,
office,
position,
phone,
accendant,
sex,
create_time,
update_time
from business_contacts
</sql>
<select
id=
"selectBusinessContactsList"
parameterType=
"com.dsk.common.core.domain.entity.BusinessContacts"
resultMap=
"BusinessContactsResult"
>
<include
refid=
"selectBusinessContactsVo"
/>
<where>
<if
test=
"businessId != null "
>
and business_id = #{businessId}
</if>
<if
test=
"name != null and name != ''"
>
and name like concat('%', #{name}, '%')
</if>
<if
test=
"role != null and role != ''"
>
and role = #{role}
</if>
<if
test=
"office != null and office != ''"
>
and office = #{office}
</if>
<if
test=
"position != null and position != ''"
>
and position = #{position}
</if>
<if
test=
"phone != null and phone != ''"
>
and phone = #{phone}
</if>
<if
test=
"accendant != null and accendant != ''"
>
and accendant = #{accendant}
</if>
<if
test=
"createTime != null "
>
and create_time = #{createTime}
</if>
<if
test=
"sex != null "
>
and sex = #{sex}
</if>
</where>
order by update_time desc,id desc
</select>
<select
id=
"selectBusinessContactsById"
parameterType=
"Long"
resultMap=
"BusinessContactsResult"
>
<include
refid=
"selectBusinessContactsVo"
/>
where id = #{id}
</select>
<insert
id=
"insertBusinessContacts"
parameterType=
"com.dsk.common.core.domain.entity.BusinessContacts"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into business_contacts
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"businessId != null"
>
business_id,
</if>
<if
test=
"name != null"
>
name,
</if>
<if
test=
"role != null"
>
role,
</if>
<if
test=
"office != null"
>
office,
</if>
<if
test=
"position != null"
>
position,
</if>
<if
test=
"phone != null"
>
phone,
</if>
<if
test=
"accendant != null"
>
accendant,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"sex != null"
>
sex,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"businessId != null"
>
#{businessId},
</if>
<if
test=
"name != null"
>
#{name},
</if>
<if
test=
"role != null"
>
#{role},
</if>
<if
test=
"office != null"
>
#{office},
</if>
<if
test=
"position != null"
>
#{position},
</if>
<if
test=
"phone != null"
>
#{phone},
</if>
<if
test=
"accendant != null"
>
#{accendant},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
<if
test=
"sex != null"
>
#{sex},
</if>
</trim>
</insert>
<update
id=
"updateBusinessContacts"
parameterType=
"com.dsk.common.core.domain.entity.BusinessContacts"
>
update business_contacts
<trim
prefix=
"SET"
suffixOverrides=
","
>
<if
test=
"businessId != null"
>
business_id = #{businessId},
</if>
<if
test=
"name != null"
>
name = #{name},
</if>
<if
test=
"role != null"
>
role = #{role},
</if>
<if
test=
"office != null"
>
office = #{office},
</if>
<if
test=
"position != null"
>
position = #{position},
</if>
<if
test=
"phone != null"
>
phone = #{phone},
</if>
<if
test=
"accendant != null"
>
accendant = #{accendant},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"sex != null"
>
sex = #{sex},
</if>
</trim>
where id = #{id}
</update>
<delete
id=
"deleteBusinessContactsById"
parameterType=
"Long"
>
delete
from business_contacts
where id = #{id}
</delete>
<delete
id=
"deleteBusinessContactsByIds"
parameterType=
"String"
>
delete from business_contacts where id in
<foreach
item=
"id"
collection=
"array"
open=
"("
separator=
","
close=
")"
>
#{id}
</foreach>
</delete>
</mapper>
\ No newline at end of file
dsk-system/src/main/resources/mapper/business/BusinessInfoMapper.xml
View file @
e6c7ae26
...
...
@@ -373,4 +373,16 @@
and u.user_id = #{userId}
<if
test=
"companyName != null and companyName != '' "
>
and ct.company_name =#{companyName}
</if>
</select>
<select
id=
"selectCountByStatus"
resultType=
"java.lang.Integer"
>
select
count(bi.id)
from business_info bi
join business_user bu on bu.business_id = bi.id
left join sys_user u on bu.user_id = u.user_id
left join sys_dept d on u.dept_id = d.dept_id
where (bu.user_id = #{userId} or bi.is_private = 1)
<if
test=
"status != null"
>
and bi.status = #{status}
</if>
${params.dataScope}
</select>
</mapper>
dsk-system/src/main/resources/mapper/system/SysUserMapper.xml
View file @
e6c7ae26
...
...
@@ -86,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
order by u.create_time desc
</select>
<select
id=
"selectAllocatedList"
parameterType=
"SysUser"
resultMap=
"SysUserResult"
>
...
...
dsk-system/src/main/resources/mapper/system/customer/CustomerDecisionChainMapper.xml
deleted
100644 → 0
View file @
dcd5f9d0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.dsk.system.mapper.CustomerDecisionChainMapper"
>
<resultMap
type=
"com.dsk.system.domain.customer.CustomerDecisionChain"
id=
"CustomerDecisionChainMap"
>
<result
property=
"id"
column=
"id"
jdbcType=
"INTEGER"
/>
<result
property=
"customerId"
column=
"customer_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"name"
column=
"name"
jdbcType=
"VARCHAR"
/>
<result
property=
"role"
column=
"role"
jdbcType=
"VARCHAR"
/>
<result
property=
"workUnit"
column=
"work_unit"
jdbcType=
"VARCHAR"
/>
<result
property=
"position"
column=
"position"
jdbcType=
"VARCHAR"
/>
<result
property=
"contactInformation"
column=
"contact_information"
jdbcType=
"VARCHAR"
/>
<result
property=
"remark"
column=
"remark"
jdbcType=
"VARCHAR"
/>
<result
property=
"createTime"
column=
"create_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"updateId"
column=
"update_id"
jdbcType=
"INTEGER"
/>
<result
property=
"updateTime"
column=
"update_time"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
</mapper>
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