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
4ddb242d
Commit
4ddb242d
authored
Dec 22, 2023
by
tianhongyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
merge
parent
dfb0e203
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1013 additions
and
215 deletions
+1013
-215
index.js
dsk-operate-ui/src/api/consultingTransaction/index.js
+11
-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
+3
-3
index.vue
.../consultingOrgManagement/components/ProjectList/index.vue
+7
-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
Tables.vue
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
+46
-8
cooperativeConstructionUnit.vue
...y-a/consultingTransaction/cooperativeConstructionUnit.vue
+402
-0
cooperativeOwnerUnits.vue
...l/party-a/consultingTransaction/cooperativeOwnerUnits.vue
+18
-4
index.vue
dsk-operate-ui/src/views/detail/party-a/index.vue
+6
-1
No files found.
dsk-operate-ui/src/api/consultingTransaction/index.js
View file @
4ddb242d
...
...
@@ -31,4 +31,15 @@ export const getCooperativeOwnerUnitsOptionsApi = (data) => request({
url
:
"/consultancy/pageSelect"
,
method
:
"post"
,
data
});
/**
* 当前页列表 amount 总数
* @param {*} data
* @returns
*/
export
const
getCooperativeOwnerUnitsCountAmountApi
=
(
data
)
=>
request
({
url
:
"/consultancy/pageSelect"
,
method
:
"post"
,
data
});
\ No newline at end of file
dsk-operate-ui/src/assets/styles/index.scss
View file @
4ddb242d
...
...
@@ -453,8 +453,6 @@ li {
// 封装组件样式
.table-list-com-ins
{
.table-item
{
width
:
100%
;
max-height
:
100%
;
.el-table
{
width
:
100%
;
height
:
auto
;
...
...
dsk-operate-ui/src/components/TableListCom/index.vue
View file @
4ddb242d
<
template
>
<div
class=
"table-list-com-ins"
>
<div
class=
"table-list-com-ins"
:class=
"
{'is-empty-table' : !tableDataTotal}"
>
<div
class=
"table-item"
>
<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:
{}"
...
...
@@ -188,7 +188,7 @@ export default {
/**
* @type {HTMLDivElement}
*/
const
container
=
document
.
querySelector
(
".table-list-com-ins
.table-item"
);
const
container
=
this
.
$el
.
querySelector
(
"
.table-item"
);
if
(
container
)
{
this
.
comMaxHeight
=
`
${
container
.
offsetHeight
}
px`
;
}
...
...
@@ -230,7 +230,15 @@ export default {
<
style
lang=
"scss"
scoped
>
.table-list-com-ins
{
&
.is-empty-table
{
.table-item
{
max-height
:
unset
;
height
:
100%
;
}
}
::v-deep
.table-item
{
width
:
100%
;
max-height
:
calc
(
100%
-
40px
);
.no-line-feed
{
display
:
block
;
color
:
#0081ff
;
...
...
@@ -270,11 +278,15 @@ export default {
.table-empty-container
{
width
:
100%
;
height
:
100%
;
padding
:
30px
0
;
min-height
:
360px
;
box-sizing
:
border-box
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
.no-data
{
min-height
:
unset
;
}
}
.el-table
{
...
...
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/detail/basicEngineeringInformation.vue
View file @
4ddb242d
...
...
@@ -25,6 +25,266 @@
</tr>
</table>
</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
>
<
/template
>
...
...
@@ -89,7 +349,6 @@ export default {
.
basic
-
engineering
-
information
-
inner
{
width
:
100
%
;
height
:
100%
;
.
info
-
module
-
title
{
line
-
height
:
24
px
;
color
:
#
232323
;
...
...
@@ -145,6 +404,17 @@ export default {
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
>
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/detail/consultingAgency.vue
0 → 100644
View file @
4ddb242d
<
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 @
4ddb242d
...
...
@@ -56,7 +56,19 @@
v-else-if=
"!tableLoading"
:maxHeight=
"true"
@
handle-current-change=
"handleCurrentChange"
>
<!-- 项目列表 -->
<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>
</
template
>
</table-list-com>
...
...
@@ -102,9 +114,9 @@ export default {
{
label
:
'项目承接类型'
,
prop
:
'isinvestproject'
,
minWidth
:
"102px"
,
uid
:
v4
()
},
{
label
:
'工程基础大类'
,
prop
:
'projectType1'
,
width
:
"98px"
,
uid
:
v4
()
},
{
label
:
'工程类别明细'
,
prop
:
'projectType'
,
width
:
"98px"
,
uid
:
v4
()
},
{
label
:
'项目负责人姓名'
,
prop
:
'projectLeader'
,
width
:
"110px"
,
uid
:
v4
()
},
{
label
:
'项目负责人专业'
,
prop
:
'projectLeaderMajor'
,
width
:
"110px"
,
uid
:
v4
()
},
{
label
:
'项目负责人联系电话'
,
prop
:
'projectLeaderPhone'
,
width
:
"134px"
,
uid
:
v4
()
},
{
label
:
'项目负责人姓名'
,
prop
:
'projectLeader'
,
width
:
"110px"
,
slot
:
true
,
uid
:
v4
()
},
{
label
:
'项目负责人专业'
,
prop
:
'projectLeaderMajor'
,
width
:
"110px"
,
slot
:
true
,
uid
:
v4
()
},
{
label
:
'项目负责人联系电话'
,
prop
:
'projectLeaderPhone'
,
width
:
"134px"
,
slot
:
true
,
uid
:
v4
()
},
],
queryParams
:
{
pageSize
:
20
,
...
...
@@ -197,7 +209,7 @@ export default {
resetForm
()
{
const
defaultValue
=
this
.
$options
.
data
.
call
(
this
);
this
.
form
=
defaultValue
.
form
;
this
.
queryParams
=
defaultValue
.
queryParams
;
this
.
queryParams
=
{
...
defaultValue
.
queryParams
,
advisoryBodyCid
:
this
.
queryParams
.
advisoryBodyCid
}
;
this
.
getList
(
this
.
queryParams
);
},
async
getList
(
params
)
{
...
...
@@ -326,7 +338,7 @@ export default {
@import
"@/assets/styles/search-result-list-public.scss"
;
::v-deep
.table-list-com-ins
{
height
:
calc
(
100%
-
8
0px
);
height
:
calc
(
100%
-
4
0px
);
margin-top
:
16px
;
.pagination-box
{
...
...
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/detail/projectDetail.vue
View file @
4ddb242d
...
...
@@ -24,6 +24,7 @@
<!-- 工程基本信息 -->
<basic-engineering-information
v-if=
"currentList === 'project'"
:projectDetailInfo=
"projectDetailInfo"
></basic-engineering-information>
<!-- 咨询机构结算信息 -->
<consulting-agency
v-if=
"currentList === 'consultingAgency'"
:projectDetailInfo=
"projectDetailInfo"
></consulting-agency>
</div>
</div>
...
...
@@ -36,11 +37,13 @@ import DskTabToggle from "@/components/DskTabToggle";
import
{
getgetConsultingOrgProjectDetailApi
}
from
"@/api/consultingOrgManagement/index"
;
import
{
v4
}
from
'uuid'
;
import
BasicEngineeringInformation
from
"@/views/consultingOrgManagement/components/EnterpriseList/detail/basicEngineeringInformation"
;
import
consultingAgency
from
"@/views/consultingOrgManagement/components/EnterpriseList/detail/consultingAgency"
;
export
default
{
name
:
"projectDetail"
,
components
:
{
DskTabToggle
,
BasicEngineeringInformation
BasicEngineeringInformation
,
consultingAgency
},
data
()
{
return
{
...
...
dsk-operate-ui/src/views/consultingOrgManagement/components/EnterpriseList/index.vue
View file @
4ddb242d
...
...
@@ -147,8 +147,8 @@ export default {
const
_form
=
queryConditionFiltering
(
this
.
form
);
// 处理时间
if
(
_form
?.
cooperationTime
?.
length
)
{
_form
.
projectStartTime
=
_form
?.
projectCreate
Time
[
0
];
_form
.
projectEndTime
=
_form
?.
projectCreate
Time
[
1
];
_form
.
projectStartTime
=
_form
?.
cooperation
Time
[
0
];
_form
.
projectEndTime
=
_form
?.
cooperation
Time
[
1
];
}
delete
_form
.
cooperationTime
;
...
...
@@ -277,7 +277,7 @@ export default {
@import
"@/assets/styles/search-result-list-public.scss"
;
::v-deep
.table-list-com-ins
{
height
:
calc
(
100%
-
8
0px
);
height
:
calc
(
100%
-
4
0px
);
margin-top
:
16px
;
.pagination-box
{
...
...
dsk-operate-ui/src/views/consultingOrgManagement/components/ProjectList/index.vue
View file @
4ddb242d
...
...
@@ -78,18 +78,18 @@
<span
v-else
>
-
</span>
</
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>
<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>
<span v-else>-</span>
</
template
>
</template>
-->
<!-- 咨询机构名称 -->
<
template
slot=
"advisoryBodyName"
slot-scope=
"{data,row}"
>
<div
v-if=
"row.advisoryBody
Name"
class=
"no-line-feed"
>
{{
row
.
advisoryBodyName
}}
</div>
<div
v-if=
"row.advisoryBody
&& row.advisoryBody.advisoryBodyName"
class=
"no-line-feed"
>
{{
row
.
advisoryBody
.
advisoryBodyName
}}
</div>
<span
v-else
>
-
</span>
</
template
>
</table-list-com>
...
...
@@ -318,7 +318,7 @@ export default {
},
// 查看项目详情
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
}
`);
}
},
}
...
...
@@ -371,7 +371,7 @@ export default {
@import
"@/assets/styles/search-result-list-public.scss"
;
::v-deep
.table-list-com-ins
{
height
:
calc
(
100%
-
8
0px
);
height
:
calc
(
100%
-
4
0px
);
margin-top
:
16px
;
.pagination-box
{
...
...
dsk-operate-ui/src/views/detail/party-a/component/CustomTimeSelect.vue
View file @
4ddb242d
...
...
@@ -14,18 +14,9 @@
<
template
v-if=
"option == '自定义'"
>
<div
style=
"position: relative"
>
自定义
<el-date-picker
ref=
"picker"
:default-value=
"defaultValue"
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
ref=
"picker"
:default-value=
"defaultValue"
style=
"position: absolute;opacity: 0;"
popper-class=
"custom-el-date-picker"
v-model=
"pickerValue"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
value-format=
"yyyy-MM-dd"
:picker-options=
"pickerOptions"
@
change=
"changePicker"
>
</el-date-picker>
</div>
</
template
>
...
...
@@ -65,31 +56,31 @@ export default {
},
computed
:
{
isClear
()
{
if
(
!
this
.
isSelectOption
&&
this
.
value
)
{
return
true
}
else
{
return
false
if
(
!
this
.
isSelectOption
&&
this
.
value
)
{
return
true
;
}
else
{
return
false
;
}
},
pickerOptions
()
{
// 用计算属性
let
_this
=
this
let
_this
=
this
;
// 此时 this指向的就是vue实例
return
{
disabledDate
(
time
)
{
if
(
_this
.
dateFrom
)
{
if
(
_this
.
dateFrom
)
{
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就是不可以选择今天的
}
}
}
}
;
},
},
watch
:
{
refStr
(
refStr
)
{
return
refStr
return
refStr
;
}
},
data
()
{
...
...
@@ -99,250 +90,253 @@ export default {
isSelectOption
:
false
,
isHover
:
false
,
pickerValue
:
[],
defaultValue
:
new
Date
()
}
defaultValue
:
new
Date
()
}
;
},
mounted
()
{
if
(
this
.
dateTo
)
{
this
.
defaultValue
=
new
Date
(
this
.
dateTo
)
if
(
this
.
dateTo
)
{
this
.
defaultValue
=
new
Date
(
this
.
dateTo
)
;
}
this
.
handleAppClick
()
if
(
this
.
timeList
&&
this
.
timeList
.
length
>
0
)
{
this
.
options
=
this
.
timeList
this
.
handleAppClick
()
;
if
(
this
.
timeList
&&
this
.
timeList
.
length
>
0
)
{
this
.
options
=
this
.
timeList
;
}
},
methods
:
{
// 时间格式化
formatDate
(
timeStr
)
{
let
date
=
new
Date
(
Number
(
timeStr
))
let
year
=
date
.
getFullYear
()
let
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
0
)
let
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
0
)
return
`
${
year
}
-
${
month
}
-
${
day
}
`
let
date
=
new
Date
(
Number
(
timeStr
))
;
let
year
=
date
.
getFullYear
()
;
let
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
0
)
;
let
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
0
)
;
return
`
${
year
}
-
${
month
}
-
${
day
}
`
;
},
// 判断是否点击的为组件内部
handleAppClick
()
{
const
app
=
document
.
getElementById
(
'app'
)
const
app
=
document
.
getElementById
(
'app'
)
;
app
.
addEventListener
(
'click'
,
(
e
)
=>
{
const
dom
=
this
.
$refs
[
this
.
refStr
]
const
flag
=
dom
&&
dom
.
contains
(
e
.
target
)
const
dom
=
this
.
$refs
[
this
.
refStr
]
;
const
flag
=
dom
&&
dom
.
contains
(
e
.
target
)
;
// const flag = document.getElementById('custom-time-select').contains(e.target)
!
flag
?
this
.
isSelectOption
=
false
:
''
if
(
this
.
value
==
'自定义'
&&
(
!
this
.
pickerValue
||
!
this
.
pickerValue
.
length
))
{
this
.
value
=
''
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'handle-search'
)
!
flag
?
this
.
isSelectOption
=
false
:
''
;
if
(
this
.
value
==
'自定义'
&&
(
!
this
.
pickerValue
||
!
this
.
pickerValue
.
length
))
{
this
.
value
=
''
;
this
.
$emit
(
'input'
,
''
)
;
this
.
$emit
(
'handle-search'
)
;
}
},
true
)
},
true
)
;
},
handleMouseenter
()
{
this
.
isHover
=
true
this
.
isHover
=
true
;
},
handleMouseleave
()
{
this
.
isHover
=
false
this
.
isHover
=
false
;
},
handleClear
()
{
if
(
this
.
isClear
&&
this
.
isHover
)
{
this
.
value
=
''
this
.
pickerValue
=
[]
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'handle-search'
)
}
else
{
this
.
isSelectOption
=
true
if
(
this
.
isClear
&&
this
.
isHover
)
{
this
.
value
=
''
;
this
.
pickerValue
=
[]
;
this
.
$emit
(
'input'
,
''
)
;
this
.
$emit
(
'handle-search'
)
;
}
else
{
this
.
isSelectOption
=
true
;
}
},
handleClick
(
value
)
{
this
.
value
=
value
if
(
value
==
'自定义'
)
{
this
.
value
=
'自定义'
this
.
$refs
.
picker
&&
this
.
$refs
.
picker
.
length
&&
this
.
$refs
.
picker
[
0
].
focus
()
this
.
value
=
value
;
if
(
value
==
'自定义'
)
{
this
.
value
=
'自定义'
;
this
.
$refs
.
picker
&&
this
.
$refs
.
picker
.
length
&&
this
.
$refs
.
picker
[
0
].
focus
()
;
this
.
$nextTick
(()
=>
{
this
.
$refs
[
'picker-block'
].
appendChild
(
this
.
$refs
.
picker
[
0
].
popperElm
)
})
}
else
{
this
.
pickerValue
=
[]
this
.
isSelectOption
=
false
let
timeStr
=
[]
let
startTime
=
''
let
endTime
=
new
Date
()
this
.
$refs
[
'picker-block'
].
appendChild
(
this
.
$refs
.
picker
[
0
].
popperElm
)
;
})
;
}
else
{
this
.
pickerValue
=
[]
;
this
.
isSelectOption
=
false
;
let
timeStr
=
[]
;
let
startTime
=
''
;
let
endTime
=
new
Date
()
;
switch
(
value
)
{
case
'近三天'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
3
)
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
3
)
;
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
case
'近七天'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
7
)
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
7
)
;
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
case
'近半月'
:
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
15
)
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
startTime
=
new
Date
(
endTime
.
getTime
()
-
3600
*
1000
*
24
*
15
)
;
timeStr
=
[
this
.
formatDate
(
startTime
),
this
.
formatDate
(
endTime
)]
;
break
;
case
'近1年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
1
)
if
(
this
.
dateTo
)
{
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
1
)
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
1
)
;
if
(
this
.
dateTo
)
{
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
;
case
'近2年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
2
)
if
(
this
.
dateTo
)
{
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
2
)
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
2
)
;
if
(
this
.
dateTo
)
{
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
;
case
'近3年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
3
)
if
(
this
.
dateTo
)
{
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
3
)
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
3
)
;
if
(
this
.
dateTo
)
{
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
;
case
'近5年'
:
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
5
)
if
(
this
.
dateTo
)
{
startTime
=
new
Date
(
this
.
dateTo
).
setFullYear
(
new
Date
(
this
.
dateTo
).
getFullYear
()
-
5
)
startTime
=
new
Date
().
setFullYear
(
new
Date
().
getFullYear
()
-
5
)
;
if
(
this
.
dateTo
)
{
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
;
default
:
if
(
this
.
pickerValue
&&
this
.
pickerValue
.
length
)
{
timeStr
=
this
.
pickerValue
}
else
{
timeStr
=
[]
this
.
value
=
''
if
(
this
.
pickerValue
&&
this
.
pickerValue
.
length
)
{
timeStr
=
this
.
pickerValue
;
}
else
{
timeStr
=
[]
;
this
.
value
=
''
;
}
break
;
}
this
.
$emit
(
'input'
,
timeStr
)
this
.
$emit
(
'handle-search'
)
this
.
$emit
(
'input'
,
timeStr
)
;
this
.
$emit
(
'handle-search'
)
;
}
},
// 时间选择改变后的回调
changePicker
(
value
)
{
this
.
isSelectOption
=
false
if
(
value
&&
value
.
length
)
{
this
.
isSelectOption
=
false
;
if
(
value
&&
value
.
length
)
{
// this.value = '自定义'
this
.
value
=
String
(
this
.
pickerValue
)
this
.
$emit
(
'input'
,
this
.
pickerValue
)
}
else
{
this
.
value
=
''
this
.
$emit
(
'input'
,
''
)
this
.
value
=
String
(
this
.
pickerValue
)
;
this
.
$emit
(
'input'
,
this
.
pickerValue
)
;
}
else
{
this
.
value
=
''
;
this
.
$emit
(
'input'
,
''
)
;
}
this
.
$emit
(
'handle-search'
)
this
.
$emit
(
'handle-search'
)
;
}
}
}
</
script
>
<
style
lang=
"scss"
>
.custom-time-select
{
/*width: 120px;*/
width
:
auto
;
height
:
34px
;
.custom-time-select
{
/*width: 120px;*/
width
:
auto
;
height
:
34px
;
.rote
{
.el-input__inner
{
background
:
#F4F6F9
;
}
.rote
{
.el-input__inner
{
background
:
#f4f6f9
;
}
.input-block
{
}
.input-block
{
width
:
100%
;
height
:
100%
;
margin
:
0
;
cursor
:
pointer
;
.block
{
width
:
100%
;
height
:
100%
;
margin
:
0
;
cursor
:
pointer
;
.block
{
>
.custom-time-input.el-input
{
width
:
100%
;
height
:
100%
;
>
.custom-time-input.el-input
{
.el-input__inner
{
border
:
0
;
}
>
input
{
width
:
100%
;
height
:
100%
;
.el-input__inner
{
border
:
0
;
}
>
input
{
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
border-radius
:
4px
;
}
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
border-radius
:
4px
;
}
}
}
.el-input__suffix
{
transform
:
rotateZ
(
0
);
width
:
25px
;
height
:
100%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.el-input__suffix
{
transform
:
rotateZ
(
0
);
width
:
25px
;
height
:
100%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
&
.rote
{
.el-input__suffix
{
transform
:
rotateZ
(
180deg
);
}
&
.rote
{
.el-input__suffix
{
transform
:
rotateZ
(
180deg
);
}
}
}
.options-block
{
position
:
absolute
;
margin-top
:
6px
;
min-width
:
120px
;
font-size
:
14px
;
color
:
#666666
;
background-color
:
#fff
;
border-radius
:
4px
;
z-index
:
10
;
overflow
:
hidden
;
box-shadow
:
0px
0px
4px
0px
rgba
(
0
,
0
,
0
,
0
.08
);
.options-block
{
position
:
absolute
;
margin-top
:
6px
;
min-width
:
120px
;
font-size
:
14px
;
color
:
#666666
;
background-color
:
#fff
;
border-radius
:
4px
;
z-index
:
10
;
overflow
:
hidden
;
box-shadow
:
0px
0px
4px
0px
rgba
(
0
,
0
,
0
,
0
.08
);
.option
{
padding
:
0
24px
0
16px
;
box-sizing
:
border-box
;
height
:
36px
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.option
{
padding
:
0
24px
0
16px
;
box-sizing
:
border-box
;
height
:
36px
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
>
span
{
display
:
inline-block
;
}
>
span
{
display
:
inline-block
;
}
&
.active
{
background-color
:
#F2F7FF
;
color
:
#0381FA
;
}
&
.active
{
background-color
:
#f2f7ff
;
color
:
#0381fa
;
}
&
:hover
{
background-color
:
#F5F7FA
;
}
&
:hover
{
background-color
:
#f5f7fa
;
}
}
}
.picker-block
{
position
:
relative
;
.picker-block
{
position
:
relative
;
&
:
:
after
{
content
:
""
;
display
:
block
;
visibility
:
hidden
;
clear
:
both
;
}
&
:
:
after
{
content
:
""
;
display
:
block
;
visibility
:
hidden
;
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
;
/*top: 205px !important;*/
top
:
190px
!
important
;
}
}
.popper__arrow
{
left
:
30px
!
important
;
}
.popper__arrow
{
left
:
30px
!
important
;
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/component/HeadFormNew.vue
View file @
4ddb242d
...
...
@@ -27,7 +27,7 @@
<transition
name=
"fade-position"
appear
mode=
"out-in"
>
<span
v-if=
"!form.hover && !form.value"
>
搜索
</span>
<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"
>
<template
slot=
"suffix"
>
<transition
mode=
"out-in"
appear
name=
"fade"
>
...
...
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
View file @
4ddb242d
<
template
>
<div
class=
"Tables"
>
<div
class=
"Tables"
:class=
"
{'is-empty-table' : !tableDataTotal}"
>
<div
class=
"table-item"
>
<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
:default-sort=
"defaultSort?defaultSort:
{}" @sort-change="sortChange">
element-loading-text=
"Loading"
ref=
"tableRef"
v-horizontal-scroll=
"'hover'"
border
fit
highlight-current-row
:height=
"height"
:
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"
>
<template
slot-scope=
"scope"
>
{{
queryParams
.
pageNum
*
queryParams
.
pageSize
-
queryParams
.
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
...
...
@@ -56,6 +56,12 @@ import NoData from '../component/noData';
export
default
{
name
:
"Tables"
,
props
:
{
height
:
{
type
:
[
String
,
Number
]
},
maxHeight
:
{
type
:
Boolean
},
isIndex
:
{
type
:
Boolean
,
default
:
true
...
...
@@ -107,7 +113,8 @@ export default {
data
()
{
return
{
current_page
:
this
.
queryParams
.
pageNum
,
show_page
:
this
.
paging
show_page
:
this
.
paging
,
comMaxHeight
:
null
};
},
watch
:
{
...
...
@@ -116,9 +123,24 @@ export default {
}
},
created
()
{
this
.
maxHeight
?
this
.
maxHeightInit
()
:
null
;
},
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
)
{
if
(
this
.
MaxPage
<
e
)
{
this
.
show_page
=
false
;
...
...
@@ -173,18 +195,29 @@ export default {
}
}
}
&
.is-empty-table
{
.table-item
{
max-height
:
unset
;
height
:
100%
;
}
}
::v-deep
.table-item
{
position
:
relative
;
/* 留高度给骨架屏 */
min-height
:
360px
;
max-height
:
calc
(
100%
-
56px
);
.table-empty-container
{
position
:
absolute
;
min-height
:
360px
;
display
:
flex
;
height
:
100%
;
width
:
100%
;
align-items
:
center
;
justify-content
:
center
;
box-sizing
:
border-box
;
.no-data
{
min-height
:
unset
;
}
}
.el-table
td
.el-table__cell
{
border-bottom
:
0
;
...
...
@@ -194,6 +227,11 @@ export default {
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
td
.el-table__cell
{
...
...
dsk-operate-ui/src/views/detail/party-a/consultingTransaction/cooperativeConstructionUnit.vue
0 → 100644
View file @
4ddb242d
<
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=
"companyName"
slot-scope=
"scope"
>
<span
v-if=
"scope.row.companyName"
style=
"color: #0081FF;cursor: pointer;"
@
click=
"viewEnterprise(scope.row)"
v-html=
"scope.row.companyName"
>
{{
scope
.
row
.
companyName
}}
</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
:
'companyName'
,
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
:
[],
}
;
}
,
//可访问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
;
}
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
;
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
,
dialogCurrentChange
(
page
)
{
this
.
dialogQueryParams
.
pageNum
=
page
;
const
params
=
this
.
createQueryCondition
(
this
.
dialogQueryParams
);
this
.
dialogHandleQurey
(
params
);
}
,
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
:
85
%
;
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/cooperativeOwnerUnits.vue
View file @
4ddb242d
...
...
@@ -19,7 +19,7 @@
</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"
>
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"
/>
...
...
@@ -29,7 +29,7 @@
<!-- 列表 -->
<dialog-tables
v-if=
"!dialogIsSkeleton"
:indexFixed=
"true"
:tableData=
"dialogTableData"
:forData=
"dialogForData"
:tableDataTotal=
"dialogtableDataTotal"
:queryParams=
"dialogQueryParams"
@
handle-current-change=
"dialogCurrentChange"
@
sort-change=
"dialogSortChange"
>
@
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>
...
...
@@ -48,7 +48,7 @@
<
script
>
import
skeleton
from
'../component/skeleton'
;
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
DialogTables
from
"../component/Tables"
;
export
default
{
...
...
@@ -289,7 +289,9 @@ export default {
}
}
,
dialogCurrentChange
(
page
)
{
this
.
dialogQueryParams
.
pageNum
=
page
;
const
params
=
this
.
createQueryCondition
(
this
.
dialogQueryParams
);
this
.
dialogHandleQurey
(
params
);
}
,
async
dialogOPen
()
{
await
this
.
setOptions
();
...
...
@@ -344,12 +346,15 @@ export default {
::
v
-
deep
.
cooperation
-
record
-
dialog
-
container
{
.
cooperation
-
record
-
dialog
{
height
:
85
%
;
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
;
...
...
@@ -374,14 +379,23 @@ export default {
}
.
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
;
}
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/index.vue
View file @
4ddb242d
...
...
@@ -35,6 +35,9 @@
<!-- 咨询业务往来 -->
<!-- 1.常合作业主单位 -->
<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>
<!-- 投诚分析 -->
<RegionalEconomies
v-if=
"currentPath.pathName=='regionalEconomies'"
:company-id=
"companyId"
:companyInfo=
"companyInfo"
/>
<LandAcquisition
v-if=
"currentPath.pathName=='landAcquisition'"
:company-id=
"companyId"
/>
...
...
@@ -111,6 +114,7 @@ import Bidagency from "./dealings/bidagency"; //业务往来-招标代理
import
Hiscontract
from
"./dealings/hiscontract"
;
//业务往来-历史发包
import
Bidrecords
from
"./dealings/bidrecords"
;
//业务往来-开标记录
import
CooperativeOwnerUnits
from
"@/views/detail/party-a/consultingTransaction/cooperativeOwnerUnits"
;
//咨询业务往来 常合作业主单位
import
CooperativeConstructionUnit
from
"@/views/detail/party-a/consultingTransaction/cooperativeConstructionUnit"
;
//咨询业务往来 常合作施工单位
import
LandAcquisition
from
"./urbanLnvestment/landAcquisition"
;
//投诚分析-城投拿地
import
RegionalEconomies
from
"./urbanLnvestment/regionalEconomies"
;
//投诚分析-区域经济
import
SameRegion
from
"./urbanLnvestment/sameRegion"
;
//投诚分析-同地区城投
...
...
@@ -180,7 +184,8 @@ export default {
CooperativeOwnerUnits
,
ConsultingAgencyCooperation
,
AccessCondition
,
CooperationRecord
CooperationRecord
,
CooperativeConstructionUnit
},
data
()
{
return
{
...
...
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