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
9fd654c2
Commit
9fd654c2
authored
Dec 25, 2023
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/V20231129-中建一局二公司' into V20231129-中建一局二公司
parents
9dc2e729
8375f351
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1599 additions
and
259 deletions
+1599
-259
AdvisoryBodyProject.java
...c/main/java/com/dsk/cscec/domain/AdvisoryBodyProject.java
+2
-1
CustomerApproveVo.java
.../main/java/com/dsk/cscec/domain/vo/CustomerApproveVo.java
+8
-4
DCustomerListVo.java
...rc/main/java/com/dsk/cscec/domain/vo/DCustomerListVo.java
+27
-28
IDProjectServiceImpl.java
...java/com/dsk/cscec/service/impl/IDProjectServiceImpl.java
+7
-4
AdvisoryBodyProjectMapper.xml
...main/resources/mapper/cscec/AdvisoryBodyProjectMapper.xml
+4
-1
index.js
dsk-operate-ui/src/api/consultingTransaction/index.js
+23
-0
index.scss
dsk-operate-ui/src/assets/styles/index.scss
+0
-2
index.vue
dsk-operate-ui/src/components/TableListCom/index.vue
+15
-3
basicEngineeringInformation.vue
...nts/EnterpriseList/detail/basicEngineeringInformation.vue
+271
-1
consultingAgency.vue
...ent/components/EnterpriseList/detail/consultingAgency.vue
+39
-0
detailsOfCooperation.vue
...components/EnterpriseList/detail/detailsOfCooperation.vue
+18
-6
projectDetail.vue
...gement/components/EnterpriseList/detail/projectDetail.vue
+4
-1
index.vue
...nsultingOrgManagement/components/EnterpriseList/index.vue
+9
-4
index.vue
.../consultingOrgManagement/components/ProjectList/index.vue
+13
-7
CustomTimeSelect.vue
...i/src/views/detail/party-a/component/CustomTimeSelect.vue
+172
-178
HeadFormNew.vue
...ate-ui/src/views/detail/party-a/component/HeadFormNew.vue
+1
-1
Sidebar.vue
...operate-ui/src/views/detail/party-a/component/Sidebar.vue
+2
-2
Tables.vue
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
+46
-8
cooperativeConstructionUnit.vue
...y-a/consultingTransaction/cooperativeConstructionUnit.vue
+412
-0
cooperativeGroup.vue
...detail/party-a/consultingTransaction/cooperativeGroup.vue
+475
-0
cooperativeOwnerUnits.vue
...l/party-a/consultingTransaction/cooperativeOwnerUnits.vue
+28
-4
index.vue
dsk-operate-ui/src/views/detail/party-a/index.vue
+11
-2
EnterpriseMonitoring.vue
dsk-operate-ui/src/views/monitoring/EnterpriseMonitoring.vue
+12
-2
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/AdvisoryBodyProject.java
View file @
9fd654c2
...
@@ -6,6 +6,7 @@ import lombok.Data;
...
@@ -6,6 +6,7 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
/**
/**
...
@@ -51,7 +52,7 @@ public class AdvisoryBodyProject extends BaseEntity implements Serializable {
...
@@ -51,7 +52,7 @@ public class AdvisoryBodyProject extends BaseEntity implements Serializable {
/**
/**
* 结算金额(万元)
* 结算金额(万元)
*/
*/
private
Double
settleAmount
;
private
BigDecimal
settleAmount
;
/**
/**
* 结算开始时间
* 结算开始时间
*/
*/
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/CustomerApproveVo.java
View file @
9fd654c2
...
@@ -79,6 +79,10 @@ public class CustomerApproveVo {
...
@@ -79,6 +79,10 @@ public class CustomerApproveVo {
* 业主性质
* 业主性质
*/
*/
private
String
ownerKind
;
private
String
ownerKind
;
/**
* 企业性质
*/
private
String
customerProperty
;
/**
/**
* 资质等级
* 资质等级
*/
*/
...
@@ -132,10 +136,6 @@ public class CustomerApproveVo {
...
@@ -132,10 +136,6 @@ public class CustomerApproveVo {
* 税号
* 税号
*/
*/
private
String
taxNumber
;
private
String
taxNumber
;
/**
* 企业性质
*/
private
String
customerProperty
;
//证书信息
//证书信息
/**
/**
...
@@ -167,6 +167,10 @@ public class CustomerApproveVo {
...
@@ -167,6 +167,10 @@ public class CustomerApproveVo {
*/
*/
private
String
expireDate7
;
private
String
expireDate7
;
//审批意见
//审批意见
/**
* 是否同意准入/准入情况
*/
private
String
isagree
;
/**
/**
* 经办人
* 经办人
*/
*/
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/domain/vo/DCustomerListVo.java
View file @
9fd654c2
...
@@ -17,7 +17,7 @@ public class DCustomerListVo implements Serializable {
...
@@ -17,7 +17,7 @@ public class DCustomerListVo implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@Excel
(
name
=
"序号"
,
width
=
6
)
@Excel
(
name
=
"序号"
,
width
=
6
)
private
Integer
num
;
private
Integer
num
;
/**
/**
* jsk企业id
* jsk企业id
...
@@ -38,136 +38,135 @@ public class DCustomerListVo implements Serializable {
...
@@ -38,136 +38,135 @@ public class DCustomerListVo implements Serializable {
/**
/**
* 供应商名称
* 供应商名称
*/
*/
@Excel
(
name
=
"供应商名称"
,
width
=
30
)
@Excel
(
name
=
"供应商名称"
,
width
=
30
)
private
String
customerName
;
private
String
customerName
;
/**
/**
* 供应商编号
* 供应商编号
*/
*/
@Excel
(
name
=
"供应商编号"
,
width
=
15
)
@Excel
(
name
=
"供应商编号"
,
width
=
15
)
private
String
customerCode
;
private
String
customerCode
;
/**
/**
* 推荐公司
* 推荐公司
*/
*/
@Excel
(
name
=
"推荐单位"
,
width
=
30
)
@Excel
(
name
=
"推荐单位"
,
width
=
30
)
private
String
recommendOrg
;
private
String
recommendOrg
;
/**
/**
* 注册地区域
* 注册地区域
*/
*/
@Excel
(
name
=
"公司注册区域"
,
width
=
10
)
@Excel
(
name
=
"公司注册区域"
,
width
=
10
)
private
String
registerRegion
;
private
String
registerRegion
;
/**
/**
* 省份
* 省份
*/
*/
@Excel
(
name
=
"公司注册省"
,
width
=
10
)
@Excel
(
name
=
"公司注册省"
,
width
=
10
)
private
String
registerProvince
;
private
String
registerProvince
;
/**
/**
* 城市
* 城市
*/
*/
@Excel
(
name
=
"公司注册市"
,
width
=
10
)
@Excel
(
name
=
"公司注册市"
,
width
=
10
)
private
String
registerCity
;
private
String
registerCity
;
/**
/**
* 供应商类别
* 供应商类别
*/
*/
@Excel
(
name
=
"供应商类别"
,
width
=
10
)
@Excel
(
name
=
"供应商类别"
,
width
=
10
)
private
String
customerClass
;
private
String
customerClass
;
/**
/**
* 集团专业类别
* 集团专业类别
*/
*/
@Excel
(
name
=
"专业类别"
,
width
=
20
)
@Excel
(
name
=
"专业类别"
,
width
=
20
)
private
String
groupSpecialty
;
private
String
groupSpecialty
;
/**
/**
* 纳税人身份
* 纳税人身份
*/
*/
@Excel
(
name
=
"纳税人身份"
,
width
=
10
)
@Excel
(
name
=
"纳税人身份"
,
width
=
10
)
private
String
paytaxType
;
private
String
paytaxType
;
/**
/**
* 纳税人税率
* 纳税人税率
*/
*/
@Excel
(
name
=
"纳税人税率"
,
width
=
10
)
@Excel
(
name
=
"纳税人税率"
,
width
=
10
)
private
String
taxRate
;
private
String
taxRate
;
/**
/**
* 供应商状态
* 供应商状态
*/
*/
@Excel
(
name
=
"状态"
,
width
=
10
)
@Excel
(
name
=
"状态"
,
width
=
10
)
private
String
customerState
;
private
String
customerState
;
/**
/**
* 限用/禁用状态
* 限用/禁用状态
*/
*/
@Excel
(
name
=
"限用/禁用状态"
,
width
=
10
)
@Excel
(
name
=
"限用/禁用状态"
,
width
=
10
)
private
String
badnessState
;
private
String
badnessState
;
/**
/**
* 队长名称
* 队长名称
*/
*/
@Excel
(
name
=
"劳务队长"
,
width
=
10
)
@Excel
(
name
=
"劳务队长"
,
width
=
10
)
private
String
leaderName
;
private
String
leaderName
;
/**
/**
* 劳务队长联系电话
* 劳务队长联系电话
*/
*/
@Excel
(
name
=
"队长联系电话"
,
width
=
10
)
@Excel
(
name
=
"队长联系电话"
,
width
=
10
)
private
String
laborCaptainPhone
;
private
String
laborCaptainPhone
;
/**
/**
* 劳务队长身份证号
* 劳务队长身份证号
*/
*/
@Excel
(
name
=
"队长身份证号"
,
width
=
10
)
@Excel
(
name
=
"队长身份证号"
,
width
=
10
)
private
String
laborCaptainIdcard
;
private
String
laborCaptainIdcard
;
/**
/**
* 队伍规模人数
* 队伍规模人数
*/
*/
@Excel
(
name
=
"队伍规模"
,
width
=
10
)
@Excel
(
name
=
"队伍规模"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
,
width
=
10
)
private
Double
serviceTeamPersonnum
;
private
Double
serviceTeamPersonnum
;
/**
/**
* 专业特长
* 专业特长
*/
*/
@Excel
(
name
=
"专业特长"
,
width
=
10
)
@Excel
(
name
=
"专业特长"
,
width
=
10
)
private
String
serviceTeamSpeciality
;
private
String
serviceTeamSpeciality
;
/**
/**
* 施工承包范围
* 施工承包范围
*/
*/
@Excel
(
name
=
"施工承包范围"
,
width
=
25
)
@Excel
(
name
=
"施工承包范围"
,
width
=
25
)
private
String
constructJobScope
;
private
String
constructJobScope
;
/**
/**
* 资质等级
* 资质等级
*/
*/
@Excel
(
name
=
"资质等级"
,
width
=
10
)
@Excel
(
name
=
"资质等级"
,
width
=
10
)
private
String
credential
;
private
String
credential
;
/**
/**
* 注册资金
* 注册资金
*/
*/
@Excel
(
name
=
"注册资金(万元)"
,
width
=
10
)
@Excel
(
name
=
"注册资金(万元)"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
,
width
=
10
)
private
Double
registerCapital
;
private
Double
registerCapital
;
/**
/**
* 联系人
* 联系人
*/
*/
@Excel
(
name
=
"公司联系人"
,
width
=
10
)
@Excel
(
name
=
"公司联系人"
,
width
=
10
)
private
String
contactPerson
;
private
String
contactPerson
;
/**
/**
* 电话
* 电话
*/
*/
@Excel
(
name
=
"联系人电话"
,
width
=
10
)
@Excel
(
name
=
"联系人电话"
,
width
=
10
)
private
String
contactPhone
;
private
String
contactPhone
;
/**
/**
* 准入时间
* 准入时间
*/
*/
@Excel
(
name
=
"准入时间"
,
width
=
10
,
dateFormat
=
"yyyy-MM-dd"
)
@Excel
(
name
=
"准入时间"
,
width
=
10
,
dateFormat
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
approveDate2
;
private
Date
approveDate2
;
/**
/**
* 企业合作数量
* 企业合作数量
*/
*/
@Excel
(
name
=
"公司合作数量"
,
width
=
10
)
@Excel
(
name
=
"公司合作数量"
,
width
=
10
)
private
Integer
enterpriseCooperationCount
;
private
Integer
enterpriseCooperationCount
;
/**
/**
* 项目合作数量
* 项目合作数量
*/
*/
@Excel
(
name
=
"合作项目数量"
,
width
=
10
)
@Excel
(
name
=
"合作项目数量"
,
width
=
10
)
private
Integer
projectCooperationCount
;
private
Integer
projectCooperationCount
;
/**
/**
* 考评等级
* 考评等级
*/
*/
@Excel
(
name
=
"分包商等级"
,
width
=
10
)
@Excel
(
name
=
"分包商等级"
,
width
=
10
)
private
String
creditLevel
;
private
String
creditLevel
;
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/cscec/service/impl/IDProjectServiceImpl.java
View file @
9fd654c2
...
@@ -42,7 +42,7 @@ import java.util.Map;
...
@@ -42,7 +42,7 @@ import java.util.Map;
/**
/**
* 咨询机构管理
* 咨询机构管理
*
*
* @author
makejava
* @author
sxk
* @since 2023-12-10 15:34:51
* @since 2023-12-10 15:34:51
*/
*/
@Slf4j
@Slf4j
...
@@ -148,11 +148,14 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
...
@@ -148,11 +148,14 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
public
TableDataInfo
<
CooperateProjectDetailSearchVo
>
queryCooperateProjectDetailList
(
CooperateProjectDetailSearchBo
cooperateProjectDetailSearchBo
,
PageQuery
pageQuery
)
{
public
TableDataInfo
<
CooperateProjectDetailSearchVo
>
queryCooperateProjectDetailList
(
CooperateProjectDetailSearchBo
cooperateProjectDetailSearchBo
,
PageQuery
pageQuery
)
{
//先根据咨询机构CID查出所有该咨询机构下的项目主键keys
//先根据咨询机构CID查出所有该咨询机构下的项目主键keys
List
<
Long
>
projectKeys
=
advisoryBodyProjectMapper
.
selectProjectKeysByAdvisoryBodyCids
(
Collections
.
singletonList
(
cooperateProjectDetailSearchBo
.
getAdvisoryBodyCid
()));
List
<
Long
>
projectKeys
=
advisoryBodyProjectMapper
.
selectProjectKeysByAdvisoryBodyCids
(
Collections
.
singletonList
(
cooperateProjectDetailSearchBo
.
getAdvisoryBodyCid
()));
if
(
projectKeys
.
isEmpty
())
{
return
TableDataInfo
.
build
();
}
//再根据记录终改的项目主键查询项目详情
//再根据记录终改的项目主键查询项目详情
QueryWrapper
<
DProject
>
wrapper
=
Wrappers
.
query
();
QueryWrapper
<
DProject
>
wrapper
=
Wrappers
.
query
();
wrapper
wrapper
//项目主键
//项目主键
.
in
(
!
projectKeys
.
isEmpty
(),
"project_key"
,
projectKeys
)
.
in
(
"project_key"
,
projectKeys
)
//项目名称
//项目名称
.
like
(
StringUtils
.
isNotBlank
(
cooperateProjectDetailSearchBo
.
getProjectName
()),
"project_name"
,
cooperateProjectDetailSearchBo
.
getProjectName
())
.
like
(
StringUtils
.
isNotBlank
(
cooperateProjectDetailSearchBo
.
getProjectName
()),
"project_name"
,
cooperateProjectDetailSearchBo
.
getProjectName
())
//项目承接类型
//项目承接类型
...
@@ -175,9 +178,9 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
...
@@ -175,9 +178,9 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
if
(
ObjectUtil
.
isNotNull
(
advisoryBodyProject
))
{
if
(
ObjectUtil
.
isNotNull
(
advisoryBodyProject
))
{
Date
settleStartTime
=
advisoryBodyProject
.
getSettleStartTime
();
Date
settleStartTime
=
advisoryBodyProject
.
getSettleStartTime
();
Date
settleFinishTime
=
advisoryBodyProject
.
getSettleFinishTime
();
Date
settleFinishTime
=
advisoryBodyProject
.
getSettleFinishTime
();
if
(
ObjectUtil
.
isNotNull
(
settleStartTime
)&&
ObjectUtil
.
isNotNull
(
settleFinishTime
))
{
if
(
ObjectUtil
.
isNotNull
(
settleStartTime
)
&&
ObjectUtil
.
isNotNull
(
settleFinishTime
))
{
cooperateProjectDetailSearchVo
.
setSettlementDays
(
DateUtil
.
between
(
settleStartTime
,
settleFinishTime
,
DateUnit
.
DAY
));
cooperateProjectDetailSearchVo
.
setSettlementDays
(
DateUtil
.
between
(
settleStartTime
,
settleFinishTime
,
DateUnit
.
DAY
));
}
else
{
}
else
{
cooperateProjectDetailSearchVo
.
setSettlementDays
(
0L
);
cooperateProjectDetailSearchVo
.
setSettlementDays
(
0L
);
}
}
}
}
...
...
dsk-module/dsk-biz-api/src/main/resources/mapper/cscec/AdvisoryBodyProjectMapper.xml
View file @
9fd654c2
...
@@ -9,7 +9,10 @@
...
@@ -9,7 +9,10 @@
from advisory_body_project abp
from advisory_body_project abp
<where>
<where>
<if
test=
"advisoryBodyCids != null"
>
<if
test=
"advisoryBodyCids != null"
>
abp.advisory_body_cid = #{advisoryBodyCids}
abp.advisory_body_cid in
<foreach
collection=
"advisoryBodyCids"
item=
"advisoryBodyCids"
open=
"("
close=
")"
separator=
","
>
#{advisoryBodyCids}
</foreach>
</if>
</if>
</where>
</where>
</select>
</select>
...
...
dsk-operate-ui/src/api/consultingTransaction/index.js
View file @
9fd654c2
...
@@ -31,4 +31,27 @@ export const getCooperativeOwnerUnitsOptionsApi = (data) => request({
...
@@ -31,4 +31,27 @@ export const getCooperativeOwnerUnitsOptionsApi = (data) => request({
url
:
"/consultancy/pageSelect"
,
url
:
"/consultancy/pageSelect"
,
method
:
"post"
,
method
:
"post"
,
data
data
});
/**
* 当前页列表 amount 总数
* @param {*} data
* @returns
*/
export
const
getCooperativeOwnerUnitsCountAmountApi
=
(
data
)
=>
request
({
url
:
"/consultancy/statistics"
,
method
:
"post"
,
data
});
/**
* 常合作集团详情 合作成员列表
* @param {*} data
* @returns
*/
export
const
getCooperativeGroupMemberApi
=
(
data
)
=>
request
({
url
:
"/consultancy/combinePage"
,
method
:
"post"
,
data
});
});
\ No newline at end of file
dsk-operate-ui/src/assets/styles/index.scss
View file @
9fd654c2
...
@@ -453,8 +453,6 @@ li {
...
@@ -453,8 +453,6 @@ li {
// 封装组件样式
// 封装组件样式
.table-list-com-ins
{
.table-list-com-ins
{
.table-item
{
.table-item
{
width
:
100%
;
max-height
:
100%
;
.el-table
{
.el-table
{
width
:
100%
;
width
:
100%
;
height
:
auto
;
height
:
auto
;
...
...
dsk-operate-ui/src/components/TableListCom/index.vue
View file @
9fd654c2
<
template
>
<
template
>
<div
class=
"table-list-com-ins"
>
<div
class=
"table-list-com-ins"
:class=
"
{'is-empty-table' : !tableDataTotal}"
>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
v-if=
"tableDataTotal>0"
class=
"fixed-table"
:class=
"headerFixed ? 'headerFixed':''"
v-loading=
"tableLoading"
:data=
"tableData"
<el-table
v-if=
"tableDataTotal>0"
class=
"fixed-table"
:class=
"headerFixed ? 'headerFixed':''"
v-loading=
"tableLoading"
:data=
"tableData"
element-loading-text=
"Loading"
ref=
"tableRef"
border
fit
highlight-current-row
:default-sort=
"defaultSort?defaultSort:
{}"
element-loading-text=
"Loading"
ref=
"tableRef"
border
fit
highlight-current-row
:default-sort=
"defaultSort?defaultSort:
{}"
...
@@ -188,7 +188,7 @@ export default {
...
@@ -188,7 +188,7 @@ export default {
/**
/**
* @type {HTMLDivElement}
* @type {HTMLDivElement}
*/
*/
const
container
=
document
.
querySelector
(
".table-list-com-ins
.table-item"
);
const
container
=
this
.
$el
.
querySelector
(
"
.table-item"
);
if
(
container
)
{
if
(
container
)
{
this
.
comMaxHeight
=
`
${
container
.
offsetHeight
}
px`
;
this
.
comMaxHeight
=
`
${
container
.
offsetHeight
}
px`
;
}
}
...
@@ -230,7 +230,15 @@ export default {
...
@@ -230,7 +230,15 @@ export default {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.table-list-com-ins
{
.table-list-com-ins
{
&
.is-empty-table
{
.table-item
{
max-height
:
unset
;
height
:
100%
;
}
}
::v-deep
.table-item
{
::v-deep
.table-item
{
width
:
100%
;
max-height
:
calc
(
100%
-
40px
);
.no-line-feed
{
.no-line-feed
{
display
:
block
;
display
:
block
;
color
:
#0081ff
;
color
:
#0081ff
;
...
@@ -270,11 +278,15 @@ export default {
...
@@ -270,11 +278,15 @@ export default {
.table-empty-container
{
.table-empty-container
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
padding
:
30px
0
;
min-height
:
360px
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
.no-data
{
min-height
:
unset
;
}
}
}
.el-table
{
.el-table
{
...
...
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/detail/basicEngineeringInformation.vue
View file @
9fd654c2
...
@@ -25,6 +25,266 @@
...
@@ -25,6 +25,266 @@
</tr>
</tr>
</table>
</table>
</div>
</div>
<!-- 工程概况 -->
<div
class=
"project-overview"
>
<div
class=
"info-module-title"
><span>
工程概况
</span></div>
<table>
<colgroup>
<col>
<col
:style=
"
{width : tableKeyWidth}">
<col>
<col
:style=
"
{width : tableKeyWidth}">
</colgroup>
<tr>
<td
class=
"table-key"
>
国内外
</td>
<td>
{{
"-"
}}
</td>
<td
class=
"table-key"
>
省市
</td>
<td>
{{
"-"
}}
</td>
</tr>
<tr>
<td
class=
"table-key"
>
投资来源
</td>
<td>
{{
"-"
}}
</td>
<td
class=
"table-key"
>
项目承接类型
</td>
<td>
{{
"-"
}}
</td>
</tr>
<tr>
<td
class=
"table-key"
>
投资来源
</td>
<td>
{{
"-"
}}
</td>
<td
class=
"table-key"
>
项目承接类型
</td>
<td>
{{
"-"
}}
</td>
</tr>
<tr>
<td
class=
"table-key"
>
合同签订日期
</td>
<td>
{{
"-"
}}
</td>
<td
class=
"table-key"
>
合同总工期
</td>
<td>
{{
comProjectDetailInfo
.
contractWorkDays
?
`${comProjectDetailInfo.contractWorkDays
}
天`
:
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
开工日期方式
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
开工具体时间
<
/td
>
<
td
>
{{
comProjectDetailInfo
.
actualStartDate
?
comProjectDetailInfo
.
actualStartDate
:
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
竣工具体方式
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
竣工具体时间
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
工程类型大类
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
工程类型明细
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
建筑高度
<
/td
>
<
td
>
{{
comProjectDetailInfo
.
constructHeight
?
`${comProjectDetailInfo.constructHeight
}
m`
:
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
建筑面积
<
/td
>
<
td
>
{{
comProjectDetailInfo
.
buildingArea
?
`${comProjectDetailInfo.buildingArea
}
㎡`
:
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
地上层数
<
/td
>
<
td
>
{{
comProjectDetailInfo
.
noOfOverfloor
?
`${comProjectDetailInfo.noOfOverfloor
}
层`
:
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
地下层数
<
/td
>
<
td
>
{{
comProjectDetailInfo
.
noOfUnderfloor
?
`${comProjectDetailInfo.noOfUnderfloor
}
层`
:
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<!--
目标责任书
-->
<
div
class
=
"target-responsibility-letter"
>
<
div
class
=
"info-module-title"
><
span
>
目标责任书
<
/span></
div
>
<
table
>
<
colgroup
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
/colgroup
>
<
tr
>
<
td
class
=
"table-key"
>
预收益率
<
/td
>
<
td
>
{{
comProjectDetailInfo
.
estiProfitRate
?
`${comProjectDetailInfo.estiProfitRate
}
%`
:
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
预收益额
<
/td
>
<
td
>
{{
comProjectDetailInfo
.
estiTtlProfit
?
`${comProjectDetailInfo.estiTtlProfit
}
元`
:
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<!--
条款内容
-->
<
div
class
=
"clause-content"
>
<
div
class
=
"info-module-title"
><
span
>
条款内容
<
/span></
div
>
<
table
>
<
colgroup
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
/colgroup
>
<
tr
>
<
td
class
=
"table-key"
>
合同金额
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
自施部分
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
计价依据
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
预收益率
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
业主批量申报日期
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
批量时限
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
付款时限
<
/td
>
<
td
colspan
=
"3"
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<!--
工程预付款
-->
<
div
class
=
"advance-payment-for-construction"
>
<
div
class
=
"info-module-title"
><
span
>
工程预付款
<
/span></
div
>
<
table
>
<
colgroup
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
/colgroup
>
<
tr
>
<
td
class
=
"table-key"
>
工程预付款
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
支付比例
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<!--
工程款项
-->
<
div
class
=
"advance-payment-for-construction"
>
<
div
class
=
"info-module-title"
><
span
>
工程款项
<
/span></
div
>
<
table
>
<
colgroup
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
/colgroup
>
<
tr
>
<
td
class
=
"table-key"
>
支付方式
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
按节点支付比例
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
按月度支付比例
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
审核期限
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
支付期限
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
竣工累计支付
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
工程结算后累计支付
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
保修金预留比例
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key lot"
>
工程结算后累计支付
<
/td
>
<
td
colspan
=
"3"
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<!--
履约担保
-->
<
div
class
=
"performance-guarantee"
>
<
div
class
=
"info-module-title"
><
span
>
履约担保
<
/span></
div
>
<
table
>
<
colgroup
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
/colgroup
>
<
tr
>
<
td
class
=
"table-key"
>
担保形式
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
担保额度
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<!--
竣工结算
-->
<
div
class
=
"completion-settlement"
>
<
div
class
=
"info-module-title"
><
span
>
竣工结算
<
/span></
div
>
<
table
>
<
colgroup
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
/colgroup
>
<
tr
>
<
td
class
=
"table-key"
>
竣工结算审核期限
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
是否承诺放弃工程价款优先受偿权
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
是否以行为事实放弃工程价款优先受偿权
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
工程拖期违约金比例
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<!--
工期拖期违约金上线
-->
<
div
class
=
"delay-period"
>
<
div
class
=
"info-module-title"
><
span
>
工期拖期违约金上线
<
/span></
div
>
<
table
>
<
colgroup
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
/colgroup
>
<
tr
>
<
td
class
=
"table-key"
>
有
/
无
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
上线比例
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<!--
其它信息
-->
<
div
class
=
"other-information"
>
<
div
class
=
"info-module-title"
><
span
>
其它信息
<
/span></
div
>
<
table
>
<
colgroup
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
col
>
<
col
:
style
=
"{width : tableKeyWidth
}
"
>
<
/colgroup
>
<
tr
>
<
td
class
=
"table-key"
>
是否分别签订执行和备案合同
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
承包单位
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
tr
>
<
td
class
=
"table-key"
>
评审级别
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
td
class
=
"table-key"
>
创建日期
<
/td
>
<
td
>
{{
"-"
}}
<
/td
>
<
/tr
>
<
/table
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/template
>
<
/template
>
...
@@ -89,7 +349,6 @@ export default {
...
@@ -89,7 +349,6 @@ export default {
.
basic
-
engineering
-
information
-
inner
{
.
basic
-
engineering
-
information
-
inner
{
width
:
100
%
;
width
:
100
%
;
height
:
100%
;
.
info
-
module
-
title
{
.
info
-
module
-
title
{
line
-
height
:
24
px
;
line
-
height
:
24
px
;
color
:
#
232323
;
color
:
#
232323
;
...
@@ -145,6 +404,17 @@ export default {
...
@@ -145,6 +404,17 @@ export default {
width
:
calc
(
100
%
-
140
px
);
width
:
calc
(
100
%
-
140
px
);
}
}
}
}
.
project
-
overview
,
.
target
-
responsibility
-
letter
,
.
clause
-
content
,
.
advance
-
payment
-
for
-
construction
,
.
performance
-
guarantee
,
.
completion
-
settlement
,
.
delay
-
period
,
.
other
-
information
{
margin
-
top
:
24
px
;
}
}
}
}
}
<
/style
>
<
/style
>
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/detail/consultingAgency.vue
0 → 100644
View file @
9fd654c2
<
template
>
<div
class=
"consulting-agency-container"
>
</div>
</
template
>
<
script
>
export
default
{
name
:
"consultingAgency"
,
data
()
{
return
{
};
},
//可访问data属性
created
()
{
},
//计算集
computed
:
{
},
//方法集
methods
:
{
},
}
</
script
>
<
style
lang=
"scss"
scoped
>
.consulting-agency-container
{
width
:
100%
;
height
:
100%
;
background
:
#fff
;
border-bottom-left-radius
:
4px
;
border-bottom-right-radius
:
4px
;
padding
:
16px
;
box-sizing
:
border-box
;
overflow
:
auto
;
}
</
style
>
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/detail/detailsOfCooperation.vue
View file @
9fd654c2
...
@@ -56,7 +56,19 @@
...
@@ -56,7 +56,19 @@
v-else-if=
"!tableLoading"
:maxHeight=
"true"
@
handle-current-change=
"handleCurrentChange"
>
v-else-if=
"!tableLoading"
:maxHeight=
"true"
@
handle-current-change=
"handleCurrentChange"
>
<!-- 项目列表 -->
<!-- 项目列表 -->
<template
slot=
"projectName"
slot-scope=
"
{data,row}">
<template
slot=
"projectName"
slot-scope=
"
{data,row}">
<div
v-if=
"row.projectName"
class=
"no-line-feed "
>
{{
row
.
projectName
}}
</div>
<div
v-if=
"row.projectName"
class=
"no-line-feed"
>
{{
row
.
projectName
}}
</div>
<span
v-else
>
-
</span>
</
template
>
<
template
slot=
"projectLeader"
slot-scope=
"{data,row}"
>
<div
v-if=
"row.advisoryBodyProject && row.advisoryBodyProject.projectLeader"
>
{{
row
.
advisoryBodyProject
.
projectLeader
}}
</div>
<span
v-else
>
-
</span>
</
template
>
<
template
slot=
"projectLeaderMajor"
slot-scope=
"{data,row}"
>
<div
v-if=
"row.advisoryBodyProject && row.advisoryBodyProject.projectLeaderMajor"
>
{{
row
.
advisoryBodyProject
.
projectLeaderMajor
}}
</div>
<span
v-else
>
-
</span>
</
template
>
<
template
slot=
"projectLeaderPhone"
slot-scope=
"{data,row}"
>
<div
v-if=
"row.advisoryBodyProject && row.advisoryBodyProject.projectLeaderPhone"
>
{{
row
.
advisoryBodyProject
.
projectLeaderPhone
}}
</div>
<span
v-else
>
-
</span>
<span
v-else
>
-
</span>
</
template
>
</
template
>
</table-list-com>
</table-list-com>
...
@@ -102,9 +114,9 @@ export default {
...
@@ -102,9 +114,9 @@ export default {
{
label
:
'项目承接类型'
,
prop
:
'isinvestproject'
,
minWidth
:
"102px"
,
uid
:
v4
()
},
{
label
:
'项目承接类型'
,
prop
:
'isinvestproject'
,
minWidth
:
"102px"
,
uid
:
v4
()
},
{
label
:
'工程基础大类'
,
prop
:
'projectType1'
,
width
:
"98px"
,
uid
:
v4
()
},
{
label
:
'工程基础大类'
,
prop
:
'projectType1'
,
width
:
"98px"
,
uid
:
v4
()
},
{
label
:
'工程类别明细'
,
prop
:
'projectType'
,
width
:
"98px"
,
uid
:
v4
()
},
{
label
:
'工程类别明细'
,
prop
:
'projectType'
,
width
:
"98px"
,
uid
:
v4
()
},
{
label
:
'项目负责人姓名'
,
prop
:
'projectLeader'
,
width
:
"110px"
,
uid
:
v4
()
},
{
label
:
'项目负责人姓名'
,
prop
:
'projectLeader'
,
width
:
"110px"
,
slot
:
true
,
uid
:
v4
()
},
{
label
:
'项目负责人专业'
,
prop
:
'projectLeaderMajor'
,
width
:
"110px"
,
uid
:
v4
()
},
{
label
:
'项目负责人专业'
,
prop
:
'projectLeaderMajor'
,
width
:
"110px"
,
slot
:
true
,
uid
:
v4
()
},
{
label
:
'项目负责人联系电话'
,
prop
:
'projectLeaderPhone'
,
width
:
"134px"
,
uid
:
v4
()
},
{
label
:
'项目负责人联系电话'
,
prop
:
'projectLeaderPhone'
,
width
:
"134px"
,
slot
:
true
,
uid
:
v4
()
},
],
],
queryParams
:
{
queryParams
:
{
pageSize
:
20
,
pageSize
:
20
,
...
@@ -197,7 +209,7 @@ export default {
...
@@ -197,7 +209,7 @@ export default {
resetForm
()
{
resetForm
()
{
const
defaultValue
=
this
.
$options
.
data
.
call
(
this
);
const
defaultValue
=
this
.
$options
.
data
.
call
(
this
);
this
.
form
=
defaultValue
.
form
;
this
.
form
=
defaultValue
.
form
;
this
.
queryParams
=
defaultValue
.
queryParams
;
this
.
queryParams
=
{
...
defaultValue
.
queryParams
,
advisoryBodyCid
:
this
.
queryParams
.
advisoryBodyCid
}
;
this
.
getList
(
this
.
queryParams
);
this
.
getList
(
this
.
queryParams
);
},
},
async
getList
(
params
)
{
async
getList
(
params
)
{
...
@@ -326,7 +338,7 @@ export default {
...
@@ -326,7 +338,7 @@ export default {
@import
"@/assets/styles/search-result-list-public.scss"
;
@import
"@/assets/styles/search-result-list-public.scss"
;
::v-deep
.table-list-com-ins
{
::v-deep
.table-list-com-ins
{
height
:
calc
(
100%
-
8
0px
);
height
:
calc
(
100%
-
4
0px
);
margin-top
:
16px
;
margin-top
:
16px
;
.pagination-box
{
.pagination-box
{
...
...
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/detail/projectDetail.vue
View file @
9fd654c2
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
<!-- 工程基本信息 -->
<!-- 工程基本信息 -->
<basic-engineering-information
v-if=
"currentList === 'project'"
:projectDetailInfo=
"projectDetailInfo"
></basic-engineering-information>
<basic-engineering-information
v-if=
"currentList === 'project'"
:projectDetailInfo=
"projectDetailInfo"
></basic-engineering-information>
<!-- 咨询机构结算信息 -->
<!-- 咨询机构结算信息 -->
<consulting-agency
v-if=
"currentList === 'consultingAgency'"
:projectDetailInfo=
"projectDetailInfo"
></consulting-agency>
</div>
</div>
</div>
</div>
...
@@ -36,11 +37,13 @@ import DskTabToggle from "@/components/DskTabToggle";
...
@@ -36,11 +37,13 @@ import DskTabToggle from "@/components/DskTabToggle";
import
{
getgetConsultingOrgProjectDetailApi
}
from
"@/api/consultingOrgManagement/index"
;
import
{
getgetConsultingOrgProjectDetailApi
}
from
"@/api/consultingOrgManagement/index"
;
import
{
v4
}
from
'uuid'
;
import
{
v4
}
from
'uuid'
;
import
BasicEngineeringInformation
from
"@/views/consultingOrgManagement/components/EnterpriseList/detail/basicEngineeringInformation"
;
import
BasicEngineeringInformation
from
"@/views/consultingOrgManagement/components/EnterpriseList/detail/basicEngineeringInformation"
;
import
consultingAgency
from
"@/views/consultingOrgManagement/components/EnterpriseList/detail/consultingAgency"
;
export
default
{
export
default
{
name
:
"projectDetail"
,
name
:
"projectDetail"
,
components
:
{
components
:
{
DskTabToggle
,
DskTabToggle
,
BasicEngineeringInformation
BasicEngineeringInformation
,
consultingAgency
},
},
data
()
{
data
()
{
return
{
return
{
...
...
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/index.vue
View file @
9fd654c2
...
@@ -39,7 +39,7 @@
...
@@ -39,7 +39,7 @@
v-else-if=
"!tableLoading"
:maxHeight=
"true"
@
handle-current-change=
"handleCurrentChange"
>
v-else-if=
"!tableLoading"
:maxHeight=
"true"
@
handle-current-change=
"handleCurrentChange"
>
<!-- 咨询机构名称 -->
<!-- 咨询机构名称 -->
<template
slot=
"advisoryBodyName"
slot-scope=
"
{data,row}">
<template
slot=
"advisoryBodyName"
slot-scope=
"
{data,row}">
<div
v-if=
"row.advisoryBodyName"
class=
"no-line-feed
"
>
{{
row
.
advisoryBodyName
}}
</div>
<div
v-if=
"row.advisoryBodyName"
class=
"no-line-feed
"
@
click=
"viewEnterprise(row)
"
>
{{
row
.
advisoryBodyName
}}
</div>
<span
v-else
>
-
</span>
<span
v-else
>
-
</span>
</
template
>
</
template
>
<!-- 合作项目数量 -->
<!-- 合作项目数量 -->
...
@@ -70,6 +70,7 @@ import Skeleton from "@/components/Skeleton";
...
@@ -70,6 +70,7 @@ import Skeleton from "@/components/Skeleton";
import
{
getConsultingOrgEenterpriseListWithSearchApi
}
from
"@/api/consultingOrgManagement"
;
import
{
getConsultingOrgEenterpriseListWithSearchApi
}
from
"@/api/consultingOrgManagement"
;
import
{
queryConditionFiltering
}
from
"@/utils"
;
import
{
queryConditionFiltering
}
from
"@/utils"
;
import
{
v4
}
from
'uuid'
;
import
{
v4
}
from
'uuid'
;
import
{
encodeStr
}
from
"@/assets/js/common"
;
export
default
{
export
default
{
name
:
"cooperationDeskAccountEnterprise"
,
name
:
"cooperationDeskAccountEnterprise"
,
components
:
{
components
:
{
...
@@ -140,6 +141,10 @@ export default {
...
@@ -140,6 +141,10 @@ export default {
if
(
!
row
.
advisoryBodyCid
)
return
this
.
$message
.
warning
(
"缺少咨询机构id"
);
if
(
!
row
.
advisoryBodyCid
)
return
this
.
$message
.
warning
(
"缺少咨询机构id"
);
this
.
$tab
.
openPage
(
`
${
row
.
advisoryBodyName
}
合作明细`
,
`/consultingOrgManagement/detailsOfCooperation/
${
row
.
advisoryBodyCid
}
`
);
this
.
$tab
.
openPage
(
`
${
row
.
advisoryBodyName
}
合作明细`
,
`/consultingOrgManagement/detailsOfCooperation/
${
row
.
advisoryBodyCid
}
`
);
},
},
// 跳转到企业详情
viewEnterprise
(
row
)
{
this
.
$tab
.
openPage
(
row
.
advisoryBodyName
?
row
.
advisoryBodyName
:
"咨询机构详情"
,
`/enterprise/
${
encodeStr
(
row
.
advisoryBodyCid
)}
`
);
},
// 创建最终查询条件
// 创建最终查询条件
mergeCondition
()
{
mergeCondition
()
{
const
_queryParams
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
queryParams
));
const
_queryParams
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
queryParams
));
...
@@ -147,8 +152,8 @@ export default {
...
@@ -147,8 +152,8 @@ export default {
const
_form
=
queryConditionFiltering
(
this
.
form
);
const
_form
=
queryConditionFiltering
(
this
.
form
);
// 处理时间
// 处理时间
if
(
_form
?.
cooperationTime
?.
length
)
{
if
(
_form
?.
cooperationTime
?.
length
)
{
_form
.
projectStartTime
=
_form
?.
projectCreate
Time
[
0
];
_form
.
projectStartTime
=
_form
?.
cooperation
Time
[
0
];
_form
.
projectEndTime
=
_form
?.
projectCreate
Time
[
1
];
_form
.
projectEndTime
=
_form
?.
cooperation
Time
[
1
];
}
}
delete
_form
.
cooperationTime
;
delete
_form
.
cooperationTime
;
...
@@ -277,7 +282,7 @@ export default {
...
@@ -277,7 +282,7 @@ export default {
@import
"@/assets/styles/search-result-list-public.scss"
;
@import
"@/assets/styles/search-result-list-public.scss"
;
::v-deep
.table-list-com-ins
{
::v-deep
.table-list-com-ins
{
height
:
calc
(
100%
-
8
0px
);
height
:
calc
(
100%
-
4
0px
);
margin-top
:
16px
;
margin-top
:
16px
;
.pagination-box
{
.pagination-box
{
...
...
dsk-operate-ui/src/views/consultingOrgManagement/components/ProjectList/index.vue
View file @
9fd654c2
...
@@ -78,18 +78,19 @@
...
@@ -78,18 +78,19 @@
<span
v-else
>
-
</span>
<span
v-else
>
-
</span>
</
template
>
</
template
>
<!-- 业主单位 -->
<!-- 业主单位 -->
<
template
slot=
"ownerName"
slot-scope=
"{data,row}"
>
<
!-- <
template slot="ownerName" slot-scope="{data,row}">
<div v-if="row.ownerName" class="no-line-feed">{{row.ownerName}}</div>
<div v-if="row.ownerName" class="no-line-feed">{{row.ownerName}}</div>
<span v-else>-</span>
<span v-else>-</span>
</
template
>
</template>
-->
<!-- 项目承接单位 -->
<!-- 项目承接单位 -->
<
template
slot=
"contractOrgName"
slot-scope=
"{data,row}"
>
<
!-- <
template slot="contractOrgName" slot-scope="{data,row}">
<div v-if="row.contractOrgName" class="no-line-feed">{{row.contractOrgName}}</div>
<div v-if="row.contractOrgName" class="no-line-feed">{{row.contractOrgName}}</div>
<span v-else>-</span>
<span v-else>-</span>
</
template
>
</template>
-->
<!-- 咨询机构名称 -->
<!-- 咨询机构名称 -->
<
template
slot=
"advisoryBodyName"
slot-scope=
"{data,row}"
>
<
template
slot=
"advisoryBodyName"
slot-scope=
"{data,row}"
>
<div
v-if=
"row.advisoryBodyName"
class=
"no-line-feed"
>
{{
row
.
advisoryBodyName
}}
</div>
<div
v-if=
"row.advisoryBody && row.advisoryBody.advisoryBodyName"
class=
"no-line-feed"
@
click=
"viewEnterprise(row)"
>
{{
row
.
advisoryBody
.
advisoryBodyName
}}
</div>
<span
v-else
>
-
</span>
<span
v-else
>
-
</span>
</
template
>
</
template
>
</table-list-com>
</table-list-com>
...
@@ -105,6 +106,7 @@ import Skeleton from "@/components/Skeleton";
...
@@ -105,6 +106,7 @@ import Skeleton from "@/components/Skeleton";
import
{
getConsultingOrgProjectListWithSearchApi
}
from
"@/api/consultingOrgManagement"
;
import
{
getConsultingOrgProjectListWithSearchApi
}
from
"@/api/consultingOrgManagement"
;
import
{
queryConditionFiltering
}
from
"@/utils"
;
import
{
queryConditionFiltering
}
from
"@/utils"
;
import
{
v4
}
from
'uuid'
;
import
{
v4
}
from
'uuid'
;
import
{
encodeStr
}
from
"@/assets/js/common.js"
;
export
default
{
export
default
{
name
:
"cooperationDeskAccountProject"
,
name
:
"cooperationDeskAccountProject"
,
components
:
{
components
:
{
...
@@ -318,7 +320,11 @@ export default {
...
@@ -318,7 +320,11 @@ export default {
},
},
// 查看项目详情
// 查看项目详情
viewProjectDetail
(
row
)
{
viewProjectDetail
(
row
)
{
// this.$tab.openPage(row.projectName,`/consultingOrgManagement/projectDetail/${row.advisoryBodyCid}?projectKey=${row.projectKey}`)
this
.
$tab
.
openPage
(
row
.
projectName
,
`/consultingOrgManagement/projectDetail/
${
row
.
advisoryBody
?.
advisoryBodyCid
}?
projectKey
=
$
{
row
.
projectKey
}
`);
},
// 跳转到企业详情
viewEnterprise(row) {
this.$tab.openPage(row.advisoryBody.advisoryBodyName ? row.advisoryBody.advisoryBodyName : "咨询机构详情", `
/
enterprise
/
$
{
encodeStr
(
row
.
advisoryBody
.
advisoryBodyCid
)}
`);
}
}
},
},
}
}
...
@@ -371,7 +377,7 @@ export default {
...
@@ -371,7 +377,7 @@ export default {
@import
"@/assets/styles/search-result-list-public.scss"
;
@import
"@/assets/styles/search-result-list-public.scss"
;
::v-deep
.table-list-com-ins
{
::v-deep
.table-list-com-ins
{
height
:
calc
(
100%
-
8
0px
);
height
:
calc
(
100%
-
4
0px
);
margin-top
:
16px
;
margin-top
:
16px
;
.pagination-box
{
.pagination-box
{
...
...
dsk-operate-ui/src/views/detail/party-a/component/CustomTimeSelect.vue
View file @
9fd654c2
...
@@ -14,18 +14,9 @@
...
@@ -14,18 +14,9 @@
<
template
v-if=
"option == '自定义'"
>
<
template
v-if=
"option == '自定义'"
>
<div
style=
"position: relative"
>
<div
style=
"position: relative"
>
自定义
自定义
<el-date-picker
<el-date-picker
ref=
"picker"
:default-value=
"defaultValue"
style=
"position: absolute;opacity: 0;"
popper-class=
"custom-el-date-picker"
ref=
"picker"
v-model=
"pickerValue"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
value-format=
"yyyy-MM-dd"
:default-value=
"defaultValue"
:picker-options=
"pickerOptions"
@
change=
"changePicker"
>
style=
"position: absolute;opacity: 0;"
v-model=
"pickerValue"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
value-format=
"yyyy-MM-dd"
:picker-options=
"pickerOptions"
@
change=
"changePicker"
>
</el-date-picker>
</el-date-picker>
</div>
</div>
</
template
>
</
template
>
...
@@ -65,31 +56,31 @@ export default {
...
@@ -65,31 +56,31 @@ export default {
},
},
computed
:
{
computed
:
{
isClear
()
{
isClear
()
{
if
(
!
this
.
isSelectOption
&&
this
.
value
)
{
if
(
!
this
.
isSelectOption
&&
this
.
value
)
{
return
true
return
true
;
}
else
{
}
else
{
return
false
return
false
;
}
}
},
},
pickerOptions
()
{
pickerOptions
()
{
// 用计算属性
// 用计算属性
let
_this
=
this
let
_this
=
this
;
// 此时 this指向的就是vue实例
// 此时 this指向的就是vue实例
return
{
return
{
disabledDate
(
time
)
{
disabledDate
(
time
)
{
if
(
_this
.
dateFrom
)
{
if
(
_this
.
dateFrom
)
{
return
time
.
getTime
()
<
new
Date
(
_this
.
dateFrom
.
replace
(
/-/g
,
'/'
)).
getTime
()
-
8.64e6
;
//如果没有后面的-8.64e6就是不可以选择今天的
return
time
.
getTime
()
<
new
Date
(
_this
.
dateFrom
.
replace
(
/-/g
,
'/'
)).
getTime
()
-
8.64e6
;
//如果没有后面的-8.64e6就是不可以选择今天的
}
}
if
(
_this
.
dateTo
)
{
if
(
_this
.
dateTo
)
{
return
time
.
getTime
()
>
new
Date
(
_this
.
dateTo
.
replace
(
/-/g
,
'/'
)).
getTime
();
//如果没有后面的-8.64e7就是不可以选择今天的
return
time
.
getTime
()
>
new
Date
(
_this
.
dateTo
.
replace
(
/-/g
,
'/'
)).
getTime
();
//如果没有后面的-8.64e7就是不可以选择今天的
}
}
}
}
}
}
;
},
},
},
},
watch
:
{
watch
:
{
refStr
(
refStr
)
{
refStr
(
refStr
)
{
return
refStr
return
refStr
;
}
}
},
},
data
()
{
data
()
{
...
@@ -99,250 +90,253 @@ export default {
...
@@ -99,250 +90,253 @@ export default {
isSelectOption
:
false
,
isSelectOption
:
false
,
isHover
:
false
,
isHover
:
false
,
pickerValue
:
[],
pickerValue
:
[],
defaultValue
:
new
Date
()
defaultValue
:
new
Date
()
}
}
;
},
},
mounted
()
{
mounted
()
{
if
(
this
.
dateTo
)
{
if
(
this
.
dateTo
)
{
this
.
defaultValue
=
new
Date
(
this
.
dateTo
)
this
.
defaultValue
=
new
Date
(
this
.
dateTo
)
;
}
}
this
.
handleAppClick
()
this
.
handleAppClick
()
;
if
(
this
.
timeList
&&
this
.
timeList
.
length
>
0
)
{
if
(
this
.
timeList
&&
this
.
timeList
.
length
>
0
)
{
this
.
options
=
this
.
timeList
this
.
options
=
this
.
timeList
;
}
}
},
},
methods
:
{
methods
:
{
// 时间格式化
// 时间格式化
formatDate
(
timeStr
)
{
formatDate
(
timeStr
)
{
let
date
=
new
Date
(
Number
(
timeStr
))
let
date
=
new
Date
(
Number
(
timeStr
))
;
let
year
=
date
.
getFullYear
()
let
year
=
date
.
getFullYear
()
;
let
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
0
)
let
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
0
)
;
let
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
0
)
let
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
0
)
;
return
`
${
year
}
-
${
month
}
-
${
day
}
`
return
`
${
year
}
-
${
month
}
-
${
day
}
`
;
},
},
// 判断是否点击的为组件内部
// 判断是否点击的为组件内部
handleAppClick
()
{
handleAppClick
()
{
const
app
=
document
.
getElementById
(
'app'
)
const
app
=
document
.
getElementById
(
'app'
)
;
app
.
addEventListener
(
'click'
,
(
e
)
=>
{
app
.
addEventListener
(
'click'
,
(
e
)
=>
{
const
dom
=
this
.
$refs
[
this
.
refStr
]
const
dom
=
this
.
$refs
[
this
.
refStr
]
;
const
flag
=
dom
&&
dom
.
contains
(
e
.
target
)
const
flag
=
dom
&&
dom
.
contains
(
e
.
target
)
;
// const flag = document.getElementById('custom-time-select').contains(e.target)
// const flag = document.getElementById('custom-time-select').contains(e.target)
!
flag
?
this
.
isSelectOption
=
false
:
''
!
flag
?
this
.
isSelectOption
=
false
:
''
;
if
(
this
.
value
==
'自定义'
&&
(
!
this
.
pickerValue
||
!
this
.
pickerValue
.
length
))
{
if
(
this
.
value
==
'自定义'
&&
(
!
this
.
pickerValue
||
!
this
.
pickerValue
.
length
))
{
this
.
value
=
''
this
.
value
=
''
;
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'input'
,
''
)
;
this
.
$emit
(
'handle-search'
)
this
.
$emit
(
'handle-search'
)
;
}
}
},
true
)
},
true
)
;
},
},
handleMouseenter
()
{
handleMouseenter
()
{
this
.
isHover
=
true
this
.
isHover
=
true
;
},
},
handleMouseleave
()
{
handleMouseleave
()
{
this
.
isHover
=
false
this
.
isHover
=
false
;
},
},
handleClear
()
{
handleClear
()
{
if
(
this
.
isClear
&&
this
.
isHover
)
{
if
(
this
.
isClear
&&
this
.
isHover
)
{
this
.
value
=
''
this
.
value
=
''
;
this
.
pickerValue
=
[]
this
.
pickerValue
=
[]
;
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'input'
,
''
)
;
this
.
$emit
(
'handle-search'
)
this
.
$emit
(
'handle-search'
)
;
}
else
{
}
else
{
this
.
isSelectOption
=
true
this
.
isSelectOption
=
true
;
}
}
},
},
handleClick
(
value
)
{
handleClick
(
value
)
{
this
.
value
=
value
this
.
value
=
value
;
if
(
value
==
'自定义'
)
{
if
(
value
==
'自定义'
)
{
this
.
value
=
'自定义'
this
.
value
=
'自定义'
;
this
.
$refs
.
picker
&&
this
.
$refs
.
picker
.
length
&&
this
.
$refs
.
picker
[
0
].
focus
()
this
.
$refs
.
picker
&&
this
.
$refs
.
picker
.
length
&&
this
.
$refs
.
picker
[
0
].
focus
()
;
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
[
'picker-block'
].
appendChild
(
this
.
$refs
.
picker
[
0
].
popperElm
)
this
.
$refs
[
'picker-block'
].
appendChild
(
this
.
$refs
.
picker
[
0
].
popperElm
)
;
})
})
;
}
else
{
}
else
{
this
.
pickerValue
=
[]
this
.
pickerValue
=
[]
;
this
.
isSelectOption
=
false
this
.
isSelectOption
=
false
;
let
timeStr
=
[]
let
timeStr
=
[]
;
let
startTime
=
''
let
startTime
=
''
;
let
endTime
=
new
Date
()
let
endTime
=
new
Date
()
;
switch
(
value
)
{
switch
(
value
)
{
case
'近三天'
:
case
'近三天'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
3
)
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
3
)
;
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
break
;
case
'近七天'
:
case
'近七天'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
7
)
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
7
)
;
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
break
;
case
'近半月'
:
case
'近半月'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
15
)
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
15
)
;
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
break
;
case
'近1年'
:
case
'近1年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
1
)
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
1
)
;
if
(
this
.
dateTo
)
{
if
(
this
.
dateTo
)
{
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
1
)
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
1
)
;
}
}
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
break
;
case
'近2年'
:
case
'近2年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
2
)
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
2
)
;
if
(
this
.
dateTo
)
{
if
(
this
.
dateTo
)
{
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
2
)
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
2
)
;
}
}
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
break
;
case
'近3年'
:
case
'近3年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
3
)
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
3
)
;
if
(
this
.
dateTo
)
{
if
(
this
.
dateTo
)
{
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
3
)
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
3
)
;
}
}
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
break
;
case
'近5年'
:
case
'近5年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
5
)
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
5
)
;
if
(
this
.
dateTo
)
{
if
(
this
.
dateTo
)
{
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
5
)
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
5
)
;
}
}
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
break
;
default
:
default
:
if
(
this
.
pickerValue
&&
this
.
pickerValue
.
length
)
{
if
(
this
.
pickerValue
&&
this
.
pickerValue
.
length
)
{
timeStr
=
this
.
pickerValue
timeStr
=
this
.
pickerValue
;
}
else
{
}
else
{
timeStr
=
[]
timeStr
=
[]
;
this
.
value
=
''
this
.
value
=
''
;
}
}
break
;
break
;
}
}
this
.
$emit
(
'input'
,
timeStr
)
this
.
$emit
(
'input'
,
timeStr
)
;
this
.
$emit
(
'handle-search'
)
this
.
$emit
(
'handle-search'
)
;
}
}
},
},
// 时间选择改变后的回调
// 时间选择改变后的回调
changePicker
(
value
)
{
changePicker
(
value
)
{
this
.
isSelectOption
=
false
this
.
isSelectOption
=
false
;
if
(
value
&&
value
.
length
)
{
if
(
value
&&
value
.
length
)
{
// this.value = '自定义'
// this.value = '自定义'
this
.
value
=
String
(
this
.
pickerValue
)
this
.
value
=
String
(
this
.
pickerValue
)
;
this
.
$emit
(
'input'
,
this
.
pickerValue
)
this
.
$emit
(
'input'
,
this
.
pickerValue
)
;
}
else
{
}
else
{
this
.
value
=
''
this
.
value
=
''
;
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'input'
,
''
)
;
}
}
this
.
$emit
(
'handle-search'
)
this
.
$emit
(
'handle-search'
)
;
}
}
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.custom-time-select
{
.custom-time-select
{
/*width: 120px;*/
/*width: 120px;*/
width
:
auto
;
width
:
auto
;
height
:
34px
;
height
:
34px
;
.rote
{
.rote
{
.el-input__inner
{
.el-input__inner
{
background
:
#F4F6F9
;
background
:
#f4f6f9
;
}
}
}
.input-block
{
}
.input-block
{
width
:
100%
;
height
:
100%
;
margin
:
0
;
cursor
:
pointer
;
.block
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
margin
:
0
;
cursor
:
pointer
;
.block
{
>
.custom-time-input.el-input
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
.el-input__inner
{
>
.custom-time-input.el-input
{
border
:
0
;
}
>
input
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
.el-input__inner
{
overflow
:
hidden
;
border
:
0
;
white-space
:
nowrap
;
}
text-overflow
:
ellipsis
;
>
input
{
border-radius
:
4px
;
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
border-radius
:
4px
;
}
}
}
}
}
}
.el-input__suffix
{
.el-input__suffix
{
transform
:
rotateZ
(
0
);
transform
:
rotateZ
(
0
);
width
:
25px
;
width
:
25px
;
height
:
100%
;
height
:
100%
;
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
}
}
&
.rote
{
&
.rote
{
.el-input__suffix
{
.el-input__suffix
{
transform
:
rotateZ
(
180deg
);
transform
:
rotateZ
(
180deg
);
}
}
}
}
}
}
.options-block
{
.options-block
{
position
:
absolute
;
position
:
absolute
;
margin-top
:
6px
;
margin-top
:
6px
;
min-width
:
120px
;
min-width
:
120px
;
font-size
:
14px
;
font-size
:
14px
;
color
:
#666666
;
color
:
#666666
;
background-color
:
#fff
;
background-color
:
#fff
;
border-radius
:
4px
;
border-radius
:
4px
;
z-index
:
10
;
z-index
:
10
;
overflow
:
hidden
;
overflow
:
hidden
;
box-shadow
:
0px
0px
4px
0px
rgba
(
0
,
0
,
0
,
0
.08
);
box-shadow
:
0px
0px
4px
0px
rgba
(
0
,
0
,
0
,
0
.08
);
.option
{
.option
{
padding
:
0
24px
0
16px
;
padding
:
0
24px
0
16px
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
height
:
36px
;
height
:
36px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
>
span
{
>
span
{
display
:
inline-block
;
display
:
inline-block
;
}
}
&
.active
{
&
.active
{
background-color
:
#F2F7FF
;
background-color
:
#f2f7ff
;
color
:
#0381FA
;
color
:
#0381fa
;
}
}
&
:hover
{
&
:hover
{
background-color
:
#F5F7FA
;
background-color
:
#f5f7fa
;
}
}
}
}
}
}
.picker-block
{
.picker-block
{
position
:
relative
;
position
:
relative
;
&
:
:
after
{
&
:
:
after
{
content
:
""
;
content
:
""
;
display
:
block
;
display
:
block
;
visibility
:
hidden
;
visibility
:
hidden
;
clear
:
both
;
clear
:
both
;
}
}
.el-picker-panel.el-date-range-picker.el-popper
{
.el-picker-panel.el-date-range-picker.el-popper
{
&
.custom-el-date-picker
{
position
:
absolute
!
important
;
left
:
0
!
important
;
left
:
0
!
important
;
/*top: 205px !important;*/
top
:
190px
!
important
;
}
}
}
.popper__arrow
{
.popper__arrow
{
left
:
30px
!
important
;
left
:
30px
!
important
;
}
}
}
}
}
}
</
style
>
</
style
>
dsk-operate-ui/src/views/detail/party-a/component/HeadFormNew.vue
View file @
9fd654c2
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
<transition
name=
"fade-position"
appear
mode=
"out-in"
>
<transition
name=
"fade-position"
appear
mode=
"out-in"
>
<span
v-if=
"!form.hover && !form.value"
>
搜索
</span>
<span
v-if=
"!form.hover && !form.value"
>
搜索
</span>
<el-input
v-model=
"form.value"
:placeholder=
"form.placeholder ? form.placeholder : '输入关键词查询'"
<el-input
v-model=
"form.value"
:placeholder=
"form.placeholder ? form.placeholder : '输入关键词查询'"
:style=
"form.width?'width:'+form.width+'px':'width:238px'"
@
focus
.
stop=
"searchFocus($event,form)"
@
blur=
"searchBlur($event,form)"
:style=
"form.width?'width:'+form.width+'px':'width:238px'"
@
focus
.
stop=
"searchFocus($event,form)"
@
input=
"value => searchInput(value,form)"
v-else
@
keydown
.
native
.
enter=
"changeSelect"
>
@
input=
"value => searchInput(value,form)"
v-else
@
keydown
.
native
.
enter=
"changeSelect"
>
<template
slot=
"suffix"
>
<template
slot=
"suffix"
>
<transition
mode=
"out-in"
appear
name=
"fade"
>
<transition
mode=
"out-in"
appear
name=
"fade"
>
...
...
dsk-operate-ui/src/views/detail/party-a/component/Sidebar.vue
View file @
9fd654c2
...
@@ -333,8 +333,8 @@ export default {
...
@@ -333,8 +333,8 @@ export default {
getFinancial
(
id
)
{
getFinancial
(
id
)
{
financial
({
cid
:
String
(
id
)
}).
then
(
res
=>
{
financial
({
cid
:
String
(
id
)
}).
then
(
res
=>
{
if
((
res
.
code
==
200
&&
!
res
.
data
)
||
!
res
.
data
?.
totalAssets
)
{
if
((
res
.
code
==
200
&&
!
res
.
data
)
||
!
res
.
data
?.
totalAssets
)
{
this
.
$set
(
this
.
sideRoute
[
0
],
"disabled"
,
true
);
// 禁用商务信息
this
.
$set
(
this
.
sideRoute
[
1
]
,
"disabled"
,
true
);
this
.
$set
(
this
.
findNodeIndex
(
this
.
sideRoute
,
"business"
)
,
"disabled"
,
true
);
this
.
defaultRoute
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
sideRoute
));
this
.
defaultRoute
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
sideRoute
));
}
}
});
});
...
...
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
View file @
9fd654c2
<
template
>
<
template
>
<div
class=
"Tables"
>
<div
class=
"Tables"
:class=
"
{'is-empty-table' : !tableDataTotal}"
>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
v-if=
"tableDataTotal>0"
class=
"fixed-table"
:class=
"headerFixed ? 'headerFixed':''"
v-loading=
"tableLoading"
:data=
"tableData"
<el-table
v-if=
"tableDataTotal>0"
class=
"fixed-table"
:class=
"headerFixed ? 'headerFixed':''"
v-loading=
"tableLoading"
:data=
"tableData"
element-loading-text=
"Loading"
ref=
"tableRef"
v-horizontal-scroll=
"'hover'"
border
fit
highlight-current-row
element-loading-text=
"Loading"
ref=
"tableRef"
v-horizontal-scroll=
"'hover'"
border
fit
highlight-current-row
:height=
"height"
:default-sort=
"defaultSort?defaultSort:
{}" @sort-change="sortChange">
:
maxHeight=
"comMaxHeight"
:
default-sort=
"defaultSort?defaultSort:
{}" @sort-change="sortChange">
<el-table-column
v-if=
"isIndex"
label=
"序号"
:width=
"flexWidth(tableData)"
align=
"left"
:fixed=
"indexFixed"
:resizable=
"false"
>
<el-table-column
v-if=
"isIndex"
label=
"序号"
:width=
"flexWidth(tableData)"
align=
"left"
:fixed=
"indexFixed"
:resizable=
"false"
>
<template
slot-scope=
"scope"
>
{{
queryParams
.
pageNum
*
queryParams
.
pageSize
-
queryParams
.
pageSize
+
scope
.
$index
+
1
}}
</
template
>
<template
slot-scope=
"scope"
>
{{
queryParams
.
pageNum
*
queryParams
.
pageSize
-
queryParams
.
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
</el-table-column>
...
@@ -56,6 +56,12 @@ import NoData from '../component/noData';
...
@@ -56,6 +56,12 @@ import NoData from '../component/noData';
export
default
{
export
default
{
name
:
"Tables"
,
name
:
"Tables"
,
props
:
{
props
:
{
height
:
{
type
:
[
String
,
Number
]
},
maxHeight
:
{
type
:
Boolean
},
isIndex
:
{
isIndex
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
...
@@ -107,7 +113,8 @@ export default {
...
@@ -107,7 +113,8 @@ export default {
data
()
{
data
()
{
return
{
return
{
current_page
:
this
.
queryParams
.
pageNum
,
current_page
:
this
.
queryParams
.
pageNum
,
show_page
:
this
.
paging
show_page
:
this
.
paging
,
comMaxHeight
:
null
};
};
},
},
watch
:
{
watch
:
{
...
@@ -116,9 +123,24 @@ export default {
...
@@ -116,9 +123,24 @@ export default {
}
}
},
},
created
()
{
created
()
{
this
.
maxHeight
?
this
.
maxHeightInit
()
:
null
;
},
},
methods
:
{
methods
:
{
// 自适应当前容器
async
maxHeightInit
()
{
try
{
await
this
.
$nextTick
();
/**
* @type {HTMLDivElement}
*/
const
container
=
this
.
$el
.
querySelector
(
".table-item"
);
if
(
container
)
{
this
.
comMaxHeight
=
`
${
container
.
offsetHeight
}
px`
;
}
}
catch
(
error
)
{
}
},
handleCurrentChange
(
e
)
{
handleCurrentChange
(
e
)
{
if
(
this
.
MaxPage
<
e
)
{
if
(
this
.
MaxPage
<
e
)
{
this
.
show_page
=
false
;
this
.
show_page
=
false
;
...
@@ -173,18 +195,29 @@ export default {
...
@@ -173,18 +195,29 @@ export default {
}
}
}
}
}
}
&
.is-empty-table
{
.table-item
{
max-height
:
unset
;
height
:
100%
;
}
}
::v-deep
.table-item
{
::v-deep
.table-item
{
position
:
relative
;
position
:
relative
;
/* 留高度给骨架屏 */
max-height
:
calc
(
100%
-
56px
);
min-height
:
360px
;
.table-empty-container
{
.table-empty-container
{
position
:
absolute
;
min-height
:
360px
;
display
:
flex
;
display
:
flex
;
height
:
100%
;
height
:
100%
;
width
:
100%
;
width
:
100%
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
.no-data
{
min-height
:
unset
;
}
}
}
.el-table
td
.el-table__cell
{
.el-table
td
.el-table__cell
{
border-bottom
:
0
;
border-bottom
:
0
;
...
@@ -194,6 +227,11 @@ export default {
...
@@ -194,6 +227,11 @@ export default {
font-size
:
12px
;
font-size
:
12px
;
}
}
}
}
.el-table--border
th
.gutter
:last-of-type
{
display
:
block
!
important
;
padding-right
:
16px
;
height
:
55px
;
}
}
}
::v-deep
.el-table
th
.el-table__cell.is-leaf
,
::v-deep
.el-table
th
.el-table__cell.is-leaf
,
::v-deep
.el-table
td
.el-table__cell
{
::v-deep
.el-table
td
.el-table__cell
{
...
...
dsk-operate-ui/src/views/detail/party-a/consultingTransaction/cooperativeConstructionUnit.vue
0 → 100644
View file @
9fd654c2
<
template
>
<div
class=
"cooperative-construction-unit"
>
<head-form-new
title=
"常合作施工单位"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:indexFixed=
"true"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<!-- 业主名称 -->
<template
slot=
"counterpartCompanyName"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.counterpartCompanyName"
style=
"color: #0081FF;cursor: pointer;"
@
click=
"viewEnterprise(scope.row)"
v-html=
"scope.row.counterpartCompanyName"
>
{{
scope
.
row
.
counterpartCompanyName
}}
</span>
<span
v-else
>
-
</span>
</
template
>
<!-- 合作项目数量 -->
<
template
slot=
"count"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.count"
style=
"color: #0081FF;cursor: pointer;"
@
click=
"viewProject(scope.row)"
>
{{
scope
.
row
.
count
}}
</span>
<span
v-else
>
-
</span>
</
template
>
</tables>
<el-dialog
title=
"合作项目/工程明细"
:visible
.
sync=
"cooperationRecordDialog"
width=
"1100px"
@
close=
"dialogClose"
@
open=
"dialogOPen"
class=
"cooperation-record-dialog-container"
custom-class=
"cooperation-record-dialog"
:destroy-on-close=
"true"
:close-on-click-modal=
"false"
>
<div
class=
"cooperation-record-dialog-innner"
>
<dialog-head-form-new
title=
""
:form-data=
"dialogFormData"
:query-params=
"dialogQueryParams"
:total=
"dialogtableDataTotal"
:isExcel=
"false"
@
handle-search=
"dialogHandleSearch"
ref=
"dialogSearchFormNew"
/>
<skeleton
v-if=
"dialogIsSkeleton"
style=
"padding: 16px"
></skeleton>
<!-- 列表 -->
<dialog-tables
v-if=
"!dialogIsSkeleton"
:indexFixed=
"true"
:tableData=
"dialogTableData"
:forData=
"dialogForData"
:tableDataTotal=
"dialogtableDataTotal"
:queryParams=
"dialogQueryParams"
@
handle-current-change=
"dialogCurrentChange"
@
sort-change=
"dialogSortChange"
:maxHeight=
"true"
>
<!-- 合作项目/工程名称-->
<
template
slot=
"projectName"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.projectName"
style=
"color: #0081FF;cursor: pointer;"
v-html=
"scope.row.projectName"
>
{{
scope
.
row
.
projectName
}}
</span>
<span
v-else
>
-
</span>
</
template
>
<!-- 省市区 -->
<
template
slot=
"area"
slot-scope=
"scope"
>
<span>
{{
`${scope.row.province ? scope.row.province : ""
}
${scope.row.province && scope.row.city ? " - " : ""
}
${scope.row.city ? scope.row.city : ""
}
${scope.row.city && scope.row.area ? " - " : ""
}
${scope.row.area ? scope.row.area : ""
}
`
}}
<
/span
>
<
/template
>
<
/dialog-tables
>
<
/div
>
<
/el-dialog
>
<
/div
>
<
/template
>
<
script
>
import
skeleton
from
'../component/skeleton'
;
import
mixin
from
'@/views/detail/party-a/mixins/mixin'
;
import
{
getCooperativeOwnerUnitsListApi
,
getCooperativeOwnerUnitsDetailApi
,
getCooperativeOwnerUnitsOptionsApi
,
getCooperativeOwnerUnitsCountAmountApi
}
from
"@/api/consultingTransaction"
;
import
DialogHeadFormNew
from
"../component/HeadFormNew"
;
import
DialogTables
from
"../component/Tables"
;
export
default
{
name
:
"cooperativeConstructionUnit"
,
mixins
:
[
mixin
],
components
:
{
skeleton
,
DialogHeadFormNew
,
DialogTables
}
,
props
:
[
'companyId'
],
data
()
{
return
{
queryParams
:
{
companyId
:
this
.
companyId
,
pageNum
:
1
,
pageSize
:
10
,
companyType
:
2
,
sort
:
""
}
,
selectOptions
:
{
}
,
forData
:
[
{
label
:
'施工单位名称'
,
prop
:
'counterpartCompanyName'
,
width
:
'295'
,
slot
:
true
,
showOverflowTooltip
:
true
}
,
{
label
:
'合作项目数量'
,
prop
:
'count'
,
minWidth
:
'190'
,
align
:
"right"
,
slot
:
true
,
sortable
:
"custom"
}
,
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'214'
,
sortable
:
"custom"
}
,
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'226'
,
align
:
"right"
,
sortable
:
"custom"
}
,
],
formData
:
[
{
type
:
4
,
fieldName
:
'businessTypes'
,
value
:
''
,
placeholder
:
'咨询机构业务'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'counterpartCompanyRoles'
,
value
:
''
,
placeholder
:
'合作项目类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'合作工程类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'合作频率'
,
startTime
:
'beginTime'
,
endTime
:
'endTime'
,
uid
:
this
.
getUid
()
}
,
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'合作金额'
,
uid
:
this
.
getUid
()
}
,
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'请输入'
,
uid
:
this
.
getUid
()
}
,
],
//列表
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
,
// 合作项目详情弹窗
cooperationRecordDialog
:
false
,
dialogQueryParams
:
{
companyId
:
""
,
pageNum
:
1
,
pageSize
:
10
,
companyType
:
2
,
sort
:
""
}
,
dialogForData
:
[
{
label
:
'合作项目/工程名称'
,
prop
:
'projectName'
,
width
:
'182'
,
slot
:
true
,
showOverflowTooltip
:
true
}
,
{
label
:
'合作时间'
,
prop
:
'time'
,
width
:
'93'
,
sortable
:
"custom"
}
,
{
label
:
'咨询机构承担角色'
,
prop
:
'agencyBusinessType'
,
width
:
'122'
}
,
{
label
:
'项目类型'
,
prop
:
'counterpartRole'
,
minWidth
:
'74'
}
,
{
label
:
'工程类型'
,
prop
:
'projectType'
,
minWidth
:
'74'
}
,
{
label
:
'项目/工程金额(万元)'
,
prop
:
'amount'
,
width
:
'164'
,
sortable
:
"custom"
,
align
:
"right"
,
}
,
{
label
:
'项目地区'
,
prop
:
'area'
,
width
:
'245'
,
slot
:
true
}
,
{
label
:
'数据来源'
,
prop
:
'dataSource'
,
width
:
'74'
}
,
],
dialogFormData
:
[
{
type
:
4
,
fieldName
:
'businessTypes'
,
value
:
''
,
placeholder
:
'咨询机构业务'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'counterpartCompanyRoles'
,
value
:
''
,
placeholder
:
'合作项目类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'合作工程类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'合作频率'
,
startTime
:
'beginTime'
,
endTime
:
'endTime'
,
uid
:
this
.
getUid
()
}
,
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'请输入'
,
uid
:
this
.
getUid
()
}
,
],
dialogIsSkeleton
:
true
,
dialogtableDataTotal
:
0
,
dialogTableData
:
[],
statisticsData
:
{
}
,
}
;
}
,
//可访问data属性
created
()
{
this
.
initDetail
();
}
,
//计算集
computed
:
{
}
,
//方法集
methods
:
{
async
initDetail
()
{
try
{
await
this
.
setOptions
(
true
);
await
this
.
handleQuery
();
}
catch
(
error
)
{
}
}
,
async
setOptions
(
flag
)
{
try
{
const
options
=
await
getCooperativeOwnerUnitsOptionsApi
({
companyId
:
this
.
queryParams
.
companyId
}
);
if
(
options
.
code
==
200
&&
options
.
data
)
{
for
(
const
key
in
options
.
data
)
{
options
.
data
[
key
]
=
options
.
data
[
key
].
map
(
item
=>
({
name
:
item
,
value
:
item
}
));
}
this
.
selectOptions
=
options
.
data
;
const
optionsKey
=
[[
"businessType"
,
"businessTypes"
],
[
"counterpartCompanyRole"
,
"counterpartCompanyRoles"
],
[
"projectType"
,
"projectTypes"
]];
optionsKey
.
forEach
(([
key
,
value
])
=>
{
flag
?
this
.
$set
(
this
.
formData
.
find
(
formItem
=>
value
==
formItem
.
fieldName
),
"options"
,
this
.
selectOptions
[
key
])
:
null
;
this
.
$set
(
this
.
dialogFormData
.
find
(
formItem
=>
value
==
formItem
.
fieldName
),
"options"
,
this
.
selectOptions
[
key
]);
}
);
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
,
// 创建列表查询条件
createQueryCondition
(
form
)
{
/**
* @type {Array<{
* fieldName : string;
* value : any
*
}
>
}
*/
const
paramsArray
=
JSON
.
parse
(
JSON
.
stringify
(
form
));
const
params
=
{
}
;
// 处理查询参数
paramsArray
.
forEach
(
item
=>
{
// 有效参数
if
((
item
.
value
&&
item
.
value
!=
"0"
&&
!
Array
.
isArray
(
item
.
value
))
||
item
?.
value
?.
length
)
{
// 多选
if
([
"businessTypes"
,
"counterpartCompanyRoles"
,
"projectTypes"
].
includes
(
item
.
fieldName
))
{
params
[
item
.
fieldName
]
=
item
.
value
;
}
// 时间处理
if
(
item
.
fieldName
==
"time"
)
{
params
[
"beginTime"
]
=
item
.
value
[
0
];
params
[
"endTime"
]
=
item
.
value
[
1
];
}
// 金额处理
if
(
item
.
fieldName
==
"money"
)
{
params
[
"minAmount"
]
=
item
.
value
[
0
]
?
item
.
value
[
0
]
:
""
;
params
[
"maxAmount"
]
=
item
.
value
[
1
]
?
item
.
value
[
1
]
:
""
;
}
// 搜索关键词处理
if
(
item
.
fieldName
==
"keyword"
&&
item
?.
value
.
trim
())
{
params
[
"keyword"
]
=
item
.
value
;
}
}
}
);
return
params
;
}
,
// 查询
async
handleSearch
()
{
const
params
=
this
.
createQueryCondition
(
this
.
formData
);
this
.
queryParams
.
pageNum
=
1
;
const
searchParams
=
JSON
.
parse
(
JSON
.
stringify
({
...
params
,
...
this
.
queryParams
}
));
this
.
handleQuery
(
searchParams
);
}
,
async
handleQuery
(
params
)
{
try
{
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
const
res
=
await
getCooperativeOwnerUnitsListApi
(
data
);
this
.
tableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
tableDataTotal
=
res
.
total
?
res
.
total
:
0
;
}
catch
(
error
)
{
console
.
log
(
error
);
}
finally
{
this
.
isSkeleton
=
false
;
}
}
,
viewEnterprise
(
row
)
{
}
,
async
sortChange
({
column
,
order
,
prop
}
)
{
let
sort
=
null
;
switch
(
prop
)
{
case
"time"
:
order
==
"ascending"
?
sort
=
4
:
sort
=
3
;
break
;
case
"amount"
:
order
==
"ascending"
?
sort
=
2
:
sort
=
1
;
break
;
default
:
break
;
}
if
(
!
order
)
sort
=
""
;
this
.
queryParams
.
sort
=
sort
;
try
{
let
data
=
this
.
queryParams
;
const
res
=
await
getCooperativeOwnerUnitsListApi
(
data
);
this
.
tableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
tableDataTotal
=
res
.
total
?
res
.
total
:
0
;
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
,
viewProject
(
row
)
{
this
.
dialogQueryParams
.
companyId
=
row
.
companyId
;
this
.
cooperationRecordDialog
=
true
;
}
,
async
dialogHandleQurey
(
params
)
{
try
{
let
data
=
params
?
params
:
this
.
dialogQueryParams
;
this
.
dialogIsSkeleton
=
true
;
const
res
=
await
getCooperativeOwnerUnitsDetailApi
(
data
);
this
.
dialogTableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
dialogtableDataTotal
=
res
.
total
?
res
.
total
:
0
;
const
count
=
await
getCooperativeOwnerUnitsCountAmountApi
(
data
);
if
(
count
.
code
==
200
&&
count
.
data
)
{
this
.
statisticsData
=
count
.
data
;
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
finally
{
this
.
dialogIsSkeleton
=
false
;
}
}
,
dialogHandleSearch
(
v
)
{
const
params
=
this
.
createQueryCondition
(
this
.
dialogFormData
);
this
.
dialogQueryParams
.
pageNum
=
1
;
const
searchParams
=
JSON
.
parse
(
JSON
.
stringify
({
...
params
,
...
this
.
dialogQueryParams
}
));
this
.
dialogHandleQurey
(
searchParams
);
}
,
async
dialogSortChange
({
column
,
order
,
prop
}
)
{
let
sort
=
null
;
switch
(
prop
)
{
case
"count"
:
order
==
"ascending"
?
sort
=
6
:
sort
=
5
;
break
;
case
"time"
:
order
==
"ascending"
?
sort
=
4
:
sort
=
3
;
break
;
case
"amount"
:
order
==
"ascending"
?
sort
=
2
:
sort
=
1
;
break
;
default
:
break
;
}
if
(
!
order
)
sort
=
""
;
this
.
dialogQueryParams
.
sort
=
sort
;
try
{
let
data
=
this
.
dialogQueryParams
;
const
res
=
await
getCooperativeOwnerUnitsDetailApi
(
data
);
this
.
dialogTableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
dialogtableDataTotal
=
res
.
total
?
res
.
total
:
0
;
const
count
=
await
getCooperativeOwnerUnitsCountAmountApi
(
data
);
if
(
count
.
code
==
200
&&
count
.
data
)
{
this
.
statisticsData
=
count
.
data
;
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
,
dialogCurrentChange
(
page
)
{
this
.
dialogQueryParams
.
pageNum
=
page
;
const
params
=
this
.
createQueryCondition
(
this
.
dialogFormData
);
const
searchParams
=
JSON
.
parse
(
JSON
.
stringify
({
...
params
,
...
this
.
dialogQueryParams
}
));
this
.
dialogHandleQurey
(
searchParams
);
}
,
async
dialogOPen
()
{
await
this
.
setOptions
();
await
this
.
dialogHandleQurey
();
}
,
dialogClose
()
{
const
data
=
this
.
$options
.
data
.
call
(
this
);
this
.
dialogQueryParams
=
data
.
dialogQueryParams
;
this
.
dialogFormData
=
data
.
dialogFormData
;
this
.
dialogtableDataTotal
=
data
.
dialogtableDataTotal
;
this
.
dialogTableData
=
data
.
dialogTableData
;
}
}
,
}
<
/script
>
<
style
lang
=
"scss"
scoped
>
.
cooperative
-
construction
-
unit
{
background
:
#
ffffff
;
border
-
radius
:
4
px
;
padding
:
16
px
;
input
{
border
:
1
px
solid
#
efefef
;
}
::
v
-
deep
.
el
-
form
-
item
{
margin
-
right
:
8
px
!
important
;
}
.
query
-
box
{
margin
:
10
px
0
20
px
;
}
.
cell
-
span
{
display
:
inline
-
block
;
position
:
relative
;
overflow
:
hidden
;
text
-
overflow
:
ellipsis
;
display
:
-
webkit
-
box
;
-
webkit
-
box
-
orient
:
vertical
;
-
webkit
-
line
-
clamp
:
4
;
cursor
:
pointer
;
>
span
{
display
:
inline
-
block
;
width
:
37
px
;
position
:
absolute
;
right
:
0
;
bottom
:
0
;
background
-
color
:
#
fff
;
z
-
index
:
1
;
}
}
@
import
"@/assets/styles/search-common.scss"
;
::
v
-
deep
.
cooperation
-
record
-
dialog
-
container
{
.
cooperation
-
record
-
dialog
{
height
:
60
%
;
position
:
absolute
;
left
:
50
%
;
top
:
50
%
;
transform
:
translate
(
-
50
%
,
-
50
%
);
border
-
radius
:
4
px
;
margin
:
0
px
!
important
;
display
:
flex
;
flex
-
direction
:
column
;
.
el
-
dialog__header
{
padding
:
20
px
;
height
:
56
px
;
display
:
flex
;
align
-
items
:
center
;
justify
-
content
:
space
-
between
;
box
-
sizing
:
border
-
box
;
border
-
bottom
:
1
px
solid
#
eeeeee
;
.
el
-
dialog__title
{
color
:
#
232323
;
font
-
weight
:
bold
;
line
-
height
:
16
px
;
}
.
el
-
dialog__headerbtn
{
position
:
static
;
width
:
16
px
;
height
:
16
px
;
}
}
.
el
-
dialog__body
{
height
:
calc
(
100
%
-
56
px
);
padding
:
24
px
20
px
;
box
-
sizing
:
border
-
box
;
.
cooperation
-
record
-
dialog
-
innner
{
width
:
100
%
;
height
:
100
%
;
.
Tables
{
height
:
calc
(
100
%
-
40
px
);
}
}
}
.
el
-
table
-
horizontal
-
scrollbar
{
display
:
none
!
important
;
}
}
}
}
<
/style
>
dsk-operate-ui/src/views/detail/party-a/consultingTransaction/cooperativeGroup.vue
0 → 100644
View file @
9fd654c2
<
template
>
<div
class=
"cooperative-group-container"
>
<head-form-new
title=
"常合作集团"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:indexFixed=
"true"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<!-- 业主名称 -->
<template
slot=
"combineName"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.combineName"
style=
"color: #0081FF;cursor: pointer;"
@
click=
"viewEnterprise(scope.row)"
v-html=
"scope.row.combineName"
>
{{
scope
.
row
.
combineName
}}
</span>
<span
v-else
>
-
</span>
</
template
>
<!-- 合作项目数量 -->
<
template
slot=
"count"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.count"
style=
"color: #0081FF;cursor: pointer;"
@
click=
"viewProject(scope.row)"
>
{{
scope
.
row
.
count
}}
</span>
<span
v-else
>
-
</span>
</
template
>
</tables>
<el-dialog
title=
"合作项目/工程明细"
:visible
.
sync=
"cooperationRecordDialog"
width=
"1100px"
@
close=
"dialogClose"
@
open=
"dialogOPen"
class=
"cooperation-record-dialog-container"
custom-class=
"cooperation-record-dialog"
:destroy-on-close=
"true"
:close-on-click-modal=
"false"
>
<!-- tab切换栏 -->
<dsk-tab-toggle
v-model=
"currentList"
:tabs=
"toggleTabs"
@
tabToggle=
"tabToggle"
></dsk-tab-toggle>
<div
class=
"cooperation-record-dialog-innner"
>
<!-- 成员列表 -->
<
template
v-if=
"currentList == 'cooperativeMember'"
>
<dialog-head-form-new
title=
""
:form-data=
"dialogFormData"
:query-params=
"dialogQueryParams"
:total=
"dialogtableDataTotal"
:isExcel=
"false"
@
handle-search=
"dialogHandleSearch"
ref=
"dialogSearchFormNew"
/>
<skeleton
v-if=
"dialogIsSkeleton"
style=
"padding: 16px"
></skeleton>
<!-- 列表 -->
<dialog-tables
v-if=
"!dialogIsSkeleton"
:indexFixed=
"true"
:tableData=
"dialogTableData"
:forData=
"memberForData"
:tableDataTotal=
"dialogtableDataTotal"
:queryParams=
"dialogQueryParams"
@
handle-current-change=
"dialogCurrentChange"
@
sort-change=
"dialogSortChange"
:maxHeight=
"true"
>
<!-- 合作成员-->
<template
slot=
"companyName"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.companyName"
style=
"color: #0081FF;cursor: pointer;"
v-html=
"scope.row.companyName"
>
{{
scope
.
row
.
companyName
}}
</span>
<span
v-else
>
-
</span>
</
template
>
</dialog-tables>
</template>
<!-- 项目列表 -->
<
template
v-if=
"currentList == 'cooperativeProject'"
>
<dialog-head-form-new
title=
""
:form-data=
"dialogFormData"
:query-params=
"dialogQueryParams"
:total=
"dialogtableDataTotal"
:isExcel=
"false"
@
handle-search=
"dialogHandleSearch"
ref=
"dialogSearchFormNew"
/>
<skeleton
v-if=
"dialogIsSkeleton"
style=
"padding: 16px"
></skeleton>
<!-- 列表 -->
<dialog-tables
v-if=
"!dialogIsSkeleton"
:indexFixed=
"true"
:tableData=
"dialogTableData"
:forData=
"dialogForData"
:tableDataTotal=
"dialogtableDataTotal"
:queryParams=
"dialogQueryParams"
@
handle-current-change=
"dialogCurrentChange"
@
sort-change=
"dialogSortChange"
:maxHeight=
"true"
>
<!-- 合作项目/工程名称-->
<template
slot=
"projectName"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.projectName"
style=
"color: #0081FF;cursor: pointer;"
v-html=
"scope.row.projectName"
>
{{
scope
.
row
.
projectName
}}
</span>
<span
v-else
>
-
</span>
</
template
>
<!-- 合作成员 -->
<
template
slot=
"companyName"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.companyName"
style=
"color: #0081FF;cursor: pointer;"
v-html=
"scope.row.companyName"
>
{{
scope
.
row
.
companyName
}}
</span>
<span
v-else
>
-
</span>
</
template
>
<!-- 省市区 -->
<
template
slot=
"area"
slot-scope=
"scope"
>
<span>
{{
`${scope.row.province ? scope.row.province : ""
}
${scope.row.province && scope.row.city ? " - " : ""
}
${scope.row.city ? scope.row.city : ""
}
${scope.row.city && scope.row.area ? " - " : ""
}
${scope.row.area ? scope.row.area : ""
}
`
}}
<
/span
>
<
/template
>
<
/dialog-tables
>
<
/template
>
<
/div
>
<
/el-dialog
>
<
/div
>
<
/template
>
<
script
>
import
skeleton
from
'../component/skeleton'
;
import
mixin
from
'@/views/detail/party-a/mixins/mixin'
;
import
{
getCooperativeOwnerUnitsListApi
,
getCooperativeOwnerUnitsDetailApi
,
getCooperativeOwnerUnitsOptionsApi
,
getCooperativeOwnerUnitsCountAmountApi
,
getCooperativeGroupMemberApi
}
from
"@/api/consultingTransaction"
;
import
DialogHeadFormNew
from
"../component/HeadFormNew"
;
import
DialogTables
from
"../component/Tables"
;
import
DskTabToggle
from
"@/components/DskTabToggle"
;
export
default
{
name
:
"cooperativeGroup"
,
mixins
:
[
mixin
],
components
:
{
skeleton
,
DialogHeadFormNew
,
DialogTables
,
DskTabToggle
}
,
props
:
[
'companyId'
],
data
()
{
return
{
currentList
:
"cooperativeMember"
,
toggleTabs
:
[
{
value
:
"cooperativeMember"
,
name
:
"成员列表"
,
id
:
this
.
getUid
()
}
,
{
value
:
"cooperativeProject"
,
name
:
"项目列表"
,
id
:
this
.
getUid
()
}
],
queryParams
:
{
companyId
:
this
.
companyId
,
pageNum
:
1
,
pageSize
:
10
,
companyType
:
3
,
sort
:
""
}
,
selectOptions
:
{
}
,
forData
:
[
{
label
:
'集团名称'
,
prop
:
'combineName'
,
width
:
'295'
,
slot
:
true
,
showOverflowTooltip
:
true
}
,
{
label
:
'合作项目数量'
,
prop
:
'count'
,
minWidth
:
'190'
,
align
:
"right"
,
slot
:
true
,
sortable
:
"custom"
}
,
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'214'
,
sortable
:
"custom"
}
,
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'226'
,
align
:
"right"
,
sortable
:
"custom"
}
,
],
formData
:
[
{
type
:
4
,
fieldName
:
'businessTypes'
,
value
:
''
,
placeholder
:
'咨询机构业务'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'counterpartCompanyRoles'
,
value
:
''
,
placeholder
:
'合作项目类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'合作工程类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'合作频率'
,
startTime
:
'beginTime'
,
endTime
:
'endTime'
,
uid
:
this
.
getUid
()
}
,
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'合作金额'
,
uid
:
this
.
getUid
()
}
,
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'请输入'
,
uid
:
this
.
getUid
()
}
,
],
//列表
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
,
// 合作项目详情弹窗
cooperationRecordDialog
:
false
,
dialogQueryParams
:
{
companyId
:
""
,
pageNum
:
1
,
pageSize
:
10
,
companyType
:
3
,
sort
:
""
}
,
memberForData
:
[
{
label
:
'合作成员'
,
prop
:
'companyName'
,
width
:
'351'
,
slot
:
true
,
showOverflowTooltip
:
true
}
,
{
label
:
'合作次数'
,
prop
:
'count '
,
minWidth
:
'223'
,
align
:
"right"
,
slot
:
true
,
sortable
:
"custom"
}
,
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'214'
,
sortable
:
"custom"
}
,
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'226'
,
align
:
"right"
,
sortable
:
"custom"
}
,
],
dialogForData
:
[
{
label
:
'合作项目/工程名称'
,
prop
:
'projectName'
,
width
:
'182'
,
slot
:
true
,
showOverflowTooltip
:
true
}
,
{
label
:
'合作成员'
,
prop
:
'companyName'
,
width
:
'110'
,
slot
:
true
,
showOverflowTooltip
:
true
}
,
{
label
:
'合作时间'
,
prop
:
'time'
,
width
:
'93'
,
sortable
:
"custom"
}
,
{
label
:
'集团成员身份'
,
prop
:
'role'
,
width
:
'122'
}
,
{
label
:
'咨询机构承担角色'
,
prop
:
'agencyBusinessType'
,
width
:
'122'
}
,
{
label
:
'项目类型'
,
prop
:
'counterpartRole'
,
minWidth
:
'74'
}
,
{
label
:
'工程类型'
,
prop
:
'projectType'
,
minWidth
:
'74'
}
,
{
label
:
'项目/工程金额(万元)'
,
prop
:
'amount'
,
width
:
'164'
,
sortable
:
"custom"
,
align
:
"right"
,
}
,
{
label
:
'项目地区'
,
prop
:
'area'
,
width
:
'245'
,
slot
:
true
}
,
],
dialogFormData
:
[
{
type
:
4
,
fieldName
:
'businessTypes'
,
value
:
''
,
placeholder
:
'咨询机构业务'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'counterpartCompanyRoles'
,
value
:
''
,
placeholder
:
'合作项目类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'合作工程类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'合作频率'
,
startTime
:
'beginTime'
,
endTime
:
'endTime'
,
uid
:
this
.
getUid
()
}
,
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'请输入'
,
uid
:
this
.
getUid
()
}
,
],
dialogIsSkeleton
:
true
,
dialogtableDataTotal
:
0
,
dialogTableData
:
[],
statisticsData
:
{
}
,
}
;
}
,
//可访问data属性
created
()
{
this
.
initDetail
();
}
,
//计算集
computed
:
{
}
,
//方法集
methods
:
{
async
initDetail
()
{
try
{
await
this
.
setOptions
(
true
);
await
this
.
handleQuery
();
}
catch
(
error
)
{
}
}
,
async
setOptions
(
flag
)
{
try
{
const
options
=
await
getCooperativeOwnerUnitsOptionsApi
({
companyId
:
this
.
queryParams
.
companyId
}
);
if
(
options
.
code
==
200
&&
options
.
data
)
{
for
(
const
key
in
options
.
data
)
{
options
.
data
[
key
]
=
options
.
data
[
key
].
map
(
item
=>
({
name
:
item
,
value
:
item
}
));
}
this
.
selectOptions
=
options
.
data
;
const
optionsKey
=
[[
"businessType"
,
"businessTypes"
],
[
"counterpartCompanyRole"
,
"counterpartCompanyRoles"
],
[
"projectType"
,
"projectTypes"
]];
optionsKey
.
forEach
(([
key
,
value
])
=>
{
flag
?
this
.
$set
(
this
.
formData
.
find
(
formItem
=>
value
==
formItem
.
fieldName
),
"options"
,
this
.
selectOptions
[
key
])
:
null
;
this
.
$set
(
this
.
dialogFormData
.
find
(
formItem
=>
value
==
formItem
.
fieldName
),
"options"
,
this
.
selectOptions
[
key
]);
}
);
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
,
// 创建列表查询条件
createQueryCondition
(
form
)
{
/**
* @type {Array<{
* fieldName : string;
* value : any
*
}
>
}
*/
const
paramsArray
=
JSON
.
parse
(
JSON
.
stringify
(
form
));
const
params
=
{
}
;
// 处理查询参数
paramsArray
.
forEach
(
item
=>
{
// 有效参数
if
((
item
.
value
&&
item
.
value
!=
"0"
&&
!
Array
.
isArray
(
item
.
value
))
||
item
?.
value
?.
length
)
{
// 多选
if
([
"businessTypes"
,
"counterpartCompanyRoles"
,
"projectTypes"
].
includes
(
item
.
fieldName
))
{
params
[
item
.
fieldName
]
=
item
.
value
;
}
// 时间处理
if
(
item
.
fieldName
==
"time"
)
{
params
[
"beginTime"
]
=
item
.
value
[
0
];
params
[
"endTime"
]
=
item
.
value
[
1
];
}
// 金额处理
if
(
item
.
fieldName
==
"money"
)
{
params
[
"minAmount"
]
=
item
.
value
[
0
]
?
item
.
value
[
0
]
:
""
;
params
[
"maxAmount"
]
=
item
.
value
[
1
]
?
item
.
value
[
1
]
:
""
;
}
// 搜索关键词处理
if
(
item
.
fieldName
==
"keyword"
&&
item
?.
value
.
trim
())
{
params
[
"keyword"
]
=
item
.
value
;
}
}
}
);
return
params
;
}
,
// 查询
async
handleSearch
()
{
const
params
=
this
.
createQueryCondition
(
this
.
formData
);
this
.
queryParams
.
pageNum
=
1
;
const
searchParams
=
JSON
.
parse
(
JSON
.
stringify
({
...
params
,
...
this
.
queryParams
}
));
this
.
handleQuery
(
searchParams
);
}
,
async
handleQuery
(
params
)
{
try
{
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
const
res
=
await
getCooperativeOwnerUnitsListApi
(
data
);
this
.
tableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
tableDataTotal
=
res
.
total
?
res
.
total
:
0
;
}
catch
(
error
)
{
console
.
log
(
error
);
}
finally
{
this
.
isSkeleton
=
false
;
}
}
,
viewEnterprise
(
row
)
{
}
,
async
sortChange
({
column
,
order
,
prop
}
)
{
let
sort
=
null
;
switch
(
prop
)
{
case
"time"
:
order
==
"ascending"
?
sort
=
4
:
sort
=
3
;
break
;
case
"amount"
:
order
==
"ascending"
?
sort
=
2
:
sort
=
1
;
break
;
default
:
break
;
}
if
(
!
order
)
sort
=
""
;
this
.
queryParams
.
sort
=
sort
;
try
{
let
data
=
this
.
queryParams
;
const
res
=
await
getCooperativeOwnerUnitsListApi
(
data
);
this
.
tableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
tableDataTotal
=
res
.
total
?
res
.
total
:
0
;
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
,
viewProject
(
row
)
{
this
.
dialogQueryParams
.
companyId
=
row
.
companyId
;
this
.
cooperationRecordDialog
=
true
;
}
,
async
dialogHandleQurey
(
params
)
{
try
{
let
data
=
params
?
params
:
this
.
dialogQueryParams
;
this
.
dialogIsSkeleton
=
true
;
const
res
=
currentList
==
"cooperativeMember"
?
await
getCooperativeGroupMemberApi
(
data
)
:
await
getCooperativeOwnerUnitsDetailApi
(
data
);
this
.
dialogTableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
dialogtableDataTotal
=
res
.
total
?
res
.
total
:
0
;
const
count
=
await
getCooperativeOwnerUnitsCountAmountApi
(
data
);
if
(
count
.
code
==
200
&&
count
.
data
)
{
this
.
statisticsData
=
count
.
data
;
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
finally
{
this
.
dialogIsSkeleton
=
false
;
}
}
,
dialogHandleSearch
(
v
)
{
const
params
=
this
.
createQueryCondition
(
this
.
dialogFormData
);
this
.
dialogQueryParams
.
pageNum
=
1
;
const
searchParams
=
JSON
.
parse
(
JSON
.
stringify
({
...
params
,
...
this
.
dialogQueryParams
}
));
this
.
dialogHandleQurey
(
searchParams
);
}
,
async
dialogSortChange
({
column
,
order
,
prop
}
)
{
let
sort
=
null
;
switch
(
prop
)
{
case
"count"
:
order
==
"ascending"
?
sort
=
6
:
sort
=
5
;
break
;
case
"time"
:
order
==
"ascending"
?
sort
=
4
:
sort
=
3
;
break
;
case
"amount"
:
order
==
"ascending"
?
sort
=
2
:
sort
=
1
;
break
;
default
:
break
;
}
if
(
!
order
)
sort
=
""
;
this
.
dialogQueryParams
.
sort
=
sort
;
try
{
let
data
=
this
.
dialogQueryParams
;
const
res
=
currentList
==
"cooperativeMember"
?
await
getCooperativeGroupMemberApi
(
data
)
:
await
getCooperativeOwnerUnitsDetailApi
(
data
);
this
.
dialogTableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
dialogtableDataTotal
=
res
.
total
?
res
.
total
:
0
;
const
count
=
await
getCooperativeOwnerUnitsCountAmountApi
(
data
);
if
(
count
.
code
==
200
&&
count
.
data
)
{
this
.
statisticsData
=
count
.
data
;
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
,
dialogCurrentChange
(
page
)
{
this
.
dialogQueryParams
.
pageNum
=
page
;
const
params
=
this
.
createQueryCondition
(
this
.
dialogFormData
);
const
searchParams
=
JSON
.
parse
(
JSON
.
stringify
({
...
params
,
...
this
.
dialogQueryParams
}
));
this
.
dialogHandleQurey
(
searchParams
);
}
,
async
dialogOPen
()
{
await
this
.
setOptions
();
await
this
.
dialogHandleQurey
();
}
,
dialogClose
()
{
const
data
=
this
.
$options
.
data
.
call
(
this
);
this
.
dialogQueryParams
=
data
.
dialogQueryParams
;
this
.
dialogFormData
=
data
.
dialogFormData
;
this
.
dialogtableDataTotal
=
data
.
dialogtableDataTotal
;
this
.
dialogTableData
=
data
.
dialogTableData
;
}
,
// 切换tab
tabToggle
()
{
}
}
,
}
<
/script
>
<
style
lang
=
"scss"
scoped
>
.
cooperative
-
group
-
container
{
background
:
#
ffffff
;
border
-
radius
:
4
px
;
padding
:
16
px
;
input
{
border
:
1
px
solid
#
efefef
;
}
::
v
-
deep
.
el
-
form
-
item
{
margin
-
right
:
8
px
!
important
;
}
.
query
-
box
{
margin
:
10
px
0
20
px
;
}
.
cell
-
span
{
display
:
inline
-
block
;
position
:
relative
;
overflow
:
hidden
;
text
-
overflow
:
ellipsis
;
display
:
-
webkit
-
box
;
-
webkit
-
box
-
orient
:
vertical
;
-
webkit
-
line
-
clamp
:
4
;
cursor
:
pointer
;
>
span
{
display
:
inline
-
block
;
width
:
37
px
;
position
:
absolute
;
right
:
0
;
bottom
:
0
;
background
-
color
:
#
fff
;
z
-
index
:
1
;
}
}
@
import
"@/assets/styles/search-common.scss"
;
::
v
-
deep
.
cooperation
-
record
-
dialog
-
container
{
.
cooperation
-
record
-
dialog
{
height
:
60
%
;
position
:
absolute
;
left
:
50
%
;
top
:
50
%
;
transform
:
translate
(
-
50
%
,
-
50
%
);
border
-
radius
:
4
px
;
margin
:
0
px
!
important
;
display
:
flex
;
flex
-
direction
:
column
;
.
el
-
dialog__header
{
padding
:
20
px
;
height
:
56
px
;
display
:
flex
;
align
-
items
:
center
;
justify
-
content
:
space
-
between
;
box
-
sizing
:
border
-
box
;
border
-
bottom
:
1
px
solid
#
eeeeee
;
.
el
-
dialog__title
{
color
:
#
232323
;
font
-
weight
:
bold
;
line
-
height
:
16
px
;
}
.
el
-
dialog__headerbtn
{
position
:
static
;
width
:
16
px
;
height
:
16
px
;
}
}
.
el
-
dialog__body
{
height
:
calc
(
100
%
-
56
px
);
padding
:
0
px
;
.
cooperation
-
record
-
dialog
-
innner
{
width
:
100
%
;
height
:
calc
(
100
%
-
48
px
);
padding
:
24
px
20
px
;
box
-
sizing
:
border
-
box
;
.
Tables
{
height
:
calc
(
100
%
-
40
px
);
}
}
}
.
el
-
table
-
horizontal
-
scrollbar
{
display
:
none
!
important
;
}
}
}
}
<
/style
>
dsk-operate-ui/src/views/detail/party-a/consultingTransaction/cooperativeOwnerUnits.vue
View file @
9fd654c2
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
</tables>
</tables>
<el-dialog
title=
"合作项目/工程明细"
:visible
.
sync=
"cooperationRecordDialog"
width=
"1100px"
@
close=
"dialogClose"
@
open=
"dialogOPen"
<el-dialog
title=
"合作项目/工程明细"
:visible
.
sync=
"cooperationRecordDialog"
width=
"1100px"
@
close=
"dialogClose"
@
open=
"dialogOPen"
class=
"cooperation-record-dialog-container"
custom-class=
"cooperation-record-dialog"
:destroy-on-close=
"true"
>
class=
"cooperation-record-dialog-container"
custom-class=
"cooperation-record-dialog"
:destroy-on-close=
"true"
:close-on-click-modal=
"false"
>
<div
class=
"cooperation-record-dialog-innner"
>
<div
class=
"cooperation-record-dialog-innner"
>
<dialog-head-form-new
title=
""
:form-data=
"dialogFormData"
:query-params=
"dialogQueryParams"
:total=
"dialogtableDataTotal"
:isExcel=
"false"
<dialog-head-form-new
title=
""
:form-data=
"dialogFormData"
:query-params=
"dialogQueryParams"
:total=
"dialogtableDataTotal"
:isExcel=
"false"
@
handle-search=
"dialogHandleSearch"
ref=
"dialogSearchFormNew"
/>
@
handle-search=
"dialogHandleSearch"
ref=
"dialogSearchFormNew"
/>
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
<!-- 列表 -->
<!-- 列表 -->
<dialog-tables
v-if=
"!dialogIsSkeleton"
:indexFixed=
"true"
:tableData=
"dialogTableData"
:forData=
"dialogForData"
<dialog-tables
v-if=
"!dialogIsSkeleton"
:indexFixed=
"true"
:tableData=
"dialogTableData"
:forData=
"dialogForData"
:tableDataTotal=
"dialogtableDataTotal"
:queryParams=
"dialogQueryParams"
@
handle-current-change=
"dialogCurrentChange"
:tableDataTotal=
"dialogtableDataTotal"
:queryParams=
"dialogQueryParams"
@
handle-current-change=
"dialogCurrentChange"
@
sort-change=
"dialogSortChange"
>
@
sort-change=
"dialogSortChange"
:maxHeight=
"true"
>
<!-- 合作项目/工程名称-->
<!-- 合作项目/工程名称-->
<
template
slot=
"projectName"
slot-scope=
"scope"
>
<
template
slot=
"projectName"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.projectName"
style=
"color: #0081FF;cursor: pointer;"
v-html=
"scope.row.projectName"
>
{{
scope
.
row
.
projectName
}}
</span>
<span
v-if=
"scope.row.projectName"
style=
"color: #0081FF;cursor: pointer;"
v-html=
"scope.row.projectName"
>
{{
scope
.
row
.
projectName
}}
</span>
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
<
script
>
<
script
>
import
skeleton
from
'../component/skeleton'
;
import
skeleton
from
'../component/skeleton'
;
import
mixin
from
'@/views/detail/party-a/mixins/mixin'
;
import
mixin
from
'@/views/detail/party-a/mixins/mixin'
;
import
{
getCooperativeOwnerUnitsListApi
,
getCooperativeOwnerUnitsDetailApi
,
getCooperativeOwnerUnitsOptionsApi
}
from
"@/api/consultingTransaction"
;
import
{
getCooperativeOwnerUnitsListApi
,
getCooperativeOwnerUnitsDetailApi
,
getCooperativeOwnerUnitsOptionsApi
,
getCooperativeOwnerUnitsCountAmountApi
}
from
"@/api/consultingTransaction"
;
import
DialogHeadFormNew
from
"../component/HeadFormNew"
;
import
DialogHeadFormNew
from
"../component/HeadFormNew"
;
import
DialogTables
from
"../component/Tables"
;
import
DialogTables
from
"../component/Tables"
;
export
default
{
export
default
{
...
@@ -118,6 +118,7 @@ export default {
...
@@ -118,6 +118,7 @@ export default {
dialogIsSkeleton
:
true
,
dialogIsSkeleton
:
true
,
dialogtableDataTotal
:
0
,
dialogtableDataTotal
:
0
,
dialogTableData
:
[],
dialogTableData
:
[],
statisticsData
:
{
}
}
;
}
;
}
,
}
,
//可访问data属性
//可访问data属性
...
@@ -250,6 +251,10 @@ export default {
...
@@ -250,6 +251,10 @@ export default {
const
res
=
await
getCooperativeOwnerUnitsDetailApi
(
data
);
const
res
=
await
getCooperativeOwnerUnitsDetailApi
(
data
);
this
.
dialogTableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
dialogTableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
dialogtableDataTotal
=
res
.
total
?
res
.
total
:
0
;
this
.
dialogtableDataTotal
=
res
.
total
?
res
.
total
:
0
;
const
count
=
await
getCooperativeOwnerUnitsCountAmountApi
(
data
);
if
(
count
.
code
==
200
&&
count
.
data
)
{
this
.
statisticsData
=
count
.
data
;
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
log
(
error
);
console
.
log
(
error
);
}
finally
{
}
finally
{
...
@@ -284,12 +289,19 @@ export default {
...
@@ -284,12 +289,19 @@ export default {
const
res
=
await
getCooperativeOwnerUnitsDetailApi
(
data
);
const
res
=
await
getCooperativeOwnerUnitsDetailApi
(
data
);
this
.
dialogTableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
dialogTableData
=
res
.
rows
?
res
.
rows
:
[];
this
.
dialogtableDataTotal
=
res
.
total
?
res
.
total
:
0
;
this
.
dialogtableDataTotal
=
res
.
total
?
res
.
total
:
0
;
const
count
=
await
getCooperativeOwnerUnitsCountAmountApi
(
data
);
if
(
count
.
code
==
200
&&
count
.
data
)
{
this
.
statisticsData
=
count
.
data
;
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
log
(
error
);
console
.
log
(
error
);
}
}
}
,
}
,
dialogCurrentChange
(
page
)
{
dialogCurrentChange
(
page
)
{
this
.
dialogQueryParams
.
pageNum
=
page
;
const
params
=
this
.
createQueryCondition
(
this
.
dialogFormData
);
const
searchParams
=
JSON
.
parse
(
JSON
.
stringify
({
...
params
,
...
this
.
dialogQueryParams
}
));
this
.
dialogHandleQurey
(
searchParams
);
}
,
}
,
async
dialogOPen
()
{
async
dialogOPen
()
{
await
this
.
setOptions
();
await
this
.
setOptions
();
...
@@ -344,12 +356,15 @@ export default {
...
@@ -344,12 +356,15 @@ export default {
::
v
-
deep
.
cooperation
-
record
-
dialog
-
container
{
::
v
-
deep
.
cooperation
-
record
-
dialog
-
container
{
.
cooperation
-
record
-
dialog
{
.
cooperation
-
record
-
dialog
{
height
:
60
%
;
position
:
absolute
;
position
:
absolute
;
left
:
50
%
;
left
:
50
%
;
top
:
50
%
;
top
:
50
%
;
transform
:
translate
(
-
50
%
,
-
50
%
);
transform
:
translate
(
-
50
%
,
-
50
%
);
border
-
radius
:
4
px
;
border
-
radius
:
4
px
;
margin
:
0
px
!
important
;
margin
:
0
px
!
important
;
display
:
flex
;
flex
-
direction
:
column
;
.
el
-
dialog__header
{
.
el
-
dialog__header
{
padding
:
20
px
;
padding
:
20
px
;
...
@@ -374,14 +389,23 @@ export default {
...
@@ -374,14 +389,23 @@ export default {
}
}
.
el
-
dialog__body
{
.
el
-
dialog__body
{
height
:
calc
(
100
%
-
56
px
);
padding
:
24
px
20
px
;
padding
:
24
px
20
px
;
box
-
sizing
:
border
-
box
;
box
-
sizing
:
border
-
box
;
.
cooperation
-
record
-
dialog
-
innner
{
.
cooperation
-
record
-
dialog
-
innner
{
width
:
100
%
;
width
:
100
%
;
height
:
100
%
;
height
:
100
%
;
.
Tables
{
height
:
calc
(
100
%
-
40
px
);
}
}
}
}
}
.
el
-
table
-
horizontal
-
scrollbar
{
display
:
none
!
important
;
}
}
}
}
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/index.vue
View file @
9fd654c2
...
@@ -35,6 +35,11 @@
...
@@ -35,6 +35,11 @@
<!-- 咨询业务往来 -->
<!-- 咨询业务往来 -->
<!-- 1.常合作业主单位 -->
<!-- 1.常合作业主单位 -->
<cooperative-owner-units
v-if=
"currentPath.pathName=='cooperativeOwnerUnits'"
:company-id=
"companyId"
></cooperative-owner-units>
<cooperative-owner-units
v-if=
"currentPath.pathName=='cooperativeOwnerUnits'"
:company-id=
"companyId"
></cooperative-owner-units>
<!-- 2、常合作施工单位 -->
<cooperative-construction-unit
v-if=
"currentPath.pathName=='cooperativeConstructionUnit'"
:company-id=
"companyId"
></cooperative-construction-unit>
<!-- 3、常合作集团 -->
<cooperative-group
v-if=
"currentPath.pathName=='cooperativeGroup'"
:company-id=
"companyId"
></cooperative-group>
<!-- 投诚分析 -->
<!-- 投诚分析 -->
<RegionalEconomies
v-if=
"currentPath.pathName=='regionalEconomies'"
:company-id=
"companyId"
:companyInfo=
"companyInfo"
/>
<RegionalEconomies
v-if=
"currentPath.pathName=='regionalEconomies'"
:company-id=
"companyId"
:companyInfo=
"companyInfo"
/>
<LandAcquisition
v-if=
"currentPath.pathName=='landAcquisition'"
:company-id=
"companyId"
/>
<LandAcquisition
v-if=
"currentPath.pathName=='landAcquisition'"
:company-id=
"companyId"
/>
...
@@ -111,6 +116,8 @@ import Bidagency from "./dealings/bidagency"; //业务往来-招标代理
...
@@ -111,6 +116,8 @@ import Bidagency from "./dealings/bidagency"; //业务往来-招标代理
import
Hiscontract
from
"./dealings/hiscontract"
;
//业务往来-历史发包
import
Hiscontract
from
"./dealings/hiscontract"
;
//业务往来-历史发包
import
Bidrecords
from
"./dealings/bidrecords"
;
//业务往来-开标记录
import
Bidrecords
from
"./dealings/bidrecords"
;
//业务往来-开标记录
import
CooperativeOwnerUnits
from
"@/views/detail/party-a/consultingTransaction/cooperativeOwnerUnits"
;
//咨询业务往来 常合作业主单位
import
CooperativeOwnerUnits
from
"@/views/detail/party-a/consultingTransaction/cooperativeOwnerUnits"
;
//咨询业务往来 常合作业主单位
import
CooperativeConstructionUnit
from
"@/views/detail/party-a/consultingTransaction/cooperativeConstructionUnit"
;
//咨询业务往来 常合作施工单位
import
CooperativeGroup
from
"@/views/detail/party-a/consultingTransaction/cooperativeGroup"
;
//咨询业务往来 常合作集团
import
LandAcquisition
from
"./urbanLnvestment/landAcquisition"
;
//投诚分析-城投拿地
import
LandAcquisition
from
"./urbanLnvestment/landAcquisition"
;
//投诚分析-城投拿地
import
RegionalEconomies
from
"./urbanLnvestment/regionalEconomies"
;
//投诚分析-区域经济
import
RegionalEconomies
from
"./urbanLnvestment/regionalEconomies"
;
//投诚分析-区域经济
import
SameRegion
from
"./urbanLnvestment/sameRegion"
;
//投诚分析-同地区城投
import
SameRegion
from
"./urbanLnvestment/sameRegion"
;
//投诚分析-同地区城投
...
@@ -180,7 +187,9 @@ export default {
...
@@ -180,7 +187,9 @@ export default {
CooperativeOwnerUnits
,
CooperativeOwnerUnits
,
ConsultingAgencyCooperation
,
ConsultingAgencyCooperation
,
AccessCondition
,
AccessCondition
,
CooperationRecord
CooperationRecord
,
CooperativeConstructionUnit
,
CooperativeGroup
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -281,7 +290,7 @@ export default {
...
@@ -281,7 +290,7 @@ export default {
this
.
companyId
=
data
;
this
.
companyId
=
data
;
await
this
.
$nextTick
();
await
this
.
$nextTick
();
this
.
listenSider
();
this
.
listenSider
();
//
await this.getStatistic();
await
this
.
getStatistic
();
await
this
.
handleQuery
();
await
this
.
handleQuery
();
await
this
.
association
(
this
.
$route
.
query
.
customerId
);
await
this
.
association
(
this
.
$route
.
query
.
customerId
);
this
.
$refs
.
sidebar
.
getFinancial
(
data
);
this
.
$refs
.
sidebar
.
getFinancial
(
data
);
...
...
dsk-operate-ui/src/views/monitoring/EnterpriseMonitoring.vue
View file @
9fd654c2
...
@@ -136,7 +136,7 @@
...
@@ -136,7 +136,7 @@
</el-upload>
</el-upload>
</div>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
class=
"download"
icon=
"el-icon-download"
>
下载模版
</el-button>
<el-button
class=
"download"
icon=
"el-icon-download"
@
click=
"downloadClick"
>
下载模版
</el-button>
<el-button
@
click=
"handleUploadCancel1"
>
取消
</el-button>
<el-button
@
click=
"handleUploadCancel1"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitUpload"
>
确定
</el-button>
<el-button
type=
"primary"
@
click=
"submitUpload"
>
确定
</el-button>
</div>
</div>
...
@@ -207,10 +207,12 @@
...
@@ -207,10 +207,12 @@
headers
:
{
headers
:
{
Authorization
:
"Bearer "
+
getToken
(),
Authorization
:
"Bearer "
+
getToken
(),
},
},
companyId
:
''
companyId
:
''
,
downloadhref
:
''
,
//样例地址
}
}
},
},
created
()
{
created
()
{
this
.
downloadhref
=
'/file/Template.xlsx'
;
this
.
querySubmit
()
this
.
querySubmit
()
},
},
methods
:
{
methods
:
{
...
@@ -369,6 +371,14 @@
...
@@ -369,6 +371,14 @@
this
.
fileList
=
[]
this
.
fileList
=
[]
this
.
pldrVisible
=
false
;
this
.
pldrVisible
=
false
;
},
},
downloadClick
()
{
let
a
=
document
.
createElement
(
"a"
);
a
.
setAttribute
(
"href"
,
this
.
downloadhref
);
a
.
setAttribute
(
"download"
,
"批量导入模版.xlsx"
);
document
.
body
.
appendChild
(
a
);
a
.
click
();
a
.
remove
();
},
submitUpload
()
{
submitUpload
()
{
this
.
$refs
.
upload
.
submit
();
this
.
$refs
.
upload
.
submit
();
},
},
...
...
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