Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
liyeyun
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
cfld-frontend
liyeyun
Commits
251c9154
Commit
251c9154
authored
Dec 14, 2023
by
shilei
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://101.201.78.203/cfld-front/liyeyun
into dev
parents
6a0faf2f
e6508226
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
192 additions
and
86 deletions
+192
-86
icon-file.png
src/assets/images/icon-file.png
+0
-0
DetailInfo.vue
src/components/detail/DetailInfo.vue
+17
-3
FormModal.vue
src/components/form-modal/FormModal.vue
+31
-19
ParkItem.vue
src/components/list/ParkItem.vue
+3
-2
list-carrier-item.vue
src/components/list/list-carrier-item.vue
+2
-1
list-land-item.vue
src/components/list/list-land-item.vue
+2
-1
useDetail.ts
src/composable/useDetail.ts
+4
-1
useListView.ts
src/composable/useListView.ts
+10
-3
filters.ts
src/utils/filters.ts
+11
-0
tools.ts
src/utils/tools.ts
+10
-0
DevelopZoneDetail.vue
src/views/develop/DevelopZoneDetail.vue
+2
-2
IndustrialParkDetail.vue
src/views/industrial-park/IndustrialParkDetail.vue
+6
-2
LandDetail.vue
src/views/land/LandDetail.vue
+6
-1
MyDevelopDetail.vue
src/views/user/MyDevelopDetail.vue
+52
-31
MyIndustrialDetail.vue
src/views/user/MyIndustrialDetail.vue
+36
-20
No files found.
src/assets/images/icon-file.png
0 → 100644
View file @
251c9154
568 Bytes
src/components/detail/DetailInfo.vue
View file @
251c9154
...
...
@@ -12,7 +12,17 @@
:class=
"getValueClass(col, line)"
class=
"flex flex-1 !px-[30px] py-[10px] leading-5 outline outline-1 outline-[#FAFAFC]"
>
<div
class=
"info-value"
:class=
"getValueClass(col, line)"
>
<div
v-if=
"col.isFile"
class=
"flex cursor-pointer items-center"
>
<img
class=
"mr-1 h-4 w-4"
src=
"@/assets/images/icon-file.png"
/>
<a
:download=
"col.fileName"
:href=
"col.value as string"
class=
"font-yahei text-xs leading-5 text-[#2C68FF]"
>
{{
col
.
fileName
}}
</a>
</div>
<div
v-else
class=
"info-value"
:class=
"getValueClass(col, line)"
>
{{
handleValue
(
col
)
}}
</div>
</div>
...
...
@@ -21,7 +31,7 @@
</div>
</
template
>
<
script
setup
lang=
"ts"
>
import
{
haveValue
}
from
'@/utils/filters.ts'
;
import
{
haveValue
,
formatNumber
}
from
'@/utils/filters.ts'
;
export
interface
Info
{
name
:
string
;
...
...
@@ -31,6 +41,10 @@ export interface Info {
oneline
?:
boolean
;
smallMode
?:
boolean
;
customClass
?:
string
;
/** 是否是文件 */
isFile
?:
boolean
;
/** 文件名 */
fileName
?:
string
;
}
export
type
Infos
=
Info
[][]
|
[];
withDefaults
(
...
...
@@ -44,7 +58,7 @@ withDefaults(
const
handleValue
=
(
col
:
Info
)
=>
{
const
{
value
,
unit
=
''
}
=
col
;
return
haveValue
(
value
)
?
value
.
toString
(
)
+
unit
:
'--'
;
return
haveValue
(
value
)
?
formatNumber
(
value
)
+
unit
:
'--'
;
};
const
getValueClass
=
(
col
:
Info
,
line
:
Info
[])
=>
{
...
...
src/components/form-modal/FormModal.vue
View file @
251c9154
<
template
>
<div
class=
"content w-[258px] px-[29px] py-[30px]"
>
<div
class=
"
form-modal
content w-[258px] px-[29px] py-[30px]"
>
<p
class=
"mb-5 text-base font-bold text-[#1A1A1A]"
>
选址需求
</p>
<ElInput
v-model=
"formData.address"
class=
"w-[200px]"
placeholder=
"*输入选址区域"
></ElInput>
<ElSelect
clearable
v-model=
"formData.needType"
clearable
class=
"mt-3 w-[200px]"
placeholder=
"*请选择您的需求类型"
>
<ElOption
v-for=
"item in options"
:key=
"item.label"
:label=
"item.label"
:value=
"item.value"
/>
</ElSelect>
<ElInput
<ElInput
Number
v-model=
"formData.phone"
class=
"mt-3 w-[200px]"
:controls=
"false"
class=
"form-modal__input-number mt-3 !w-[200px] !px-0"
placeholder=
"*请填写您的联系方式"
></ElInput>
></ElInput
Number
>
<ElInput
v-model=
"formData.remark"
class=
"mt-3 w-[200px]"
...
...
@@ -104,19 +105,30 @@ const commit = debounce(
},
);
</
script
>
<
style
lang=
"scss"
scoped
>
.content
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.08
);
background
:
#ffffff
;
}
.btn-default
{
background
:
#c0322b
;
color
:
#fff
;
line-height
:
30px
;
text-align
:
center
;
border-radius
:
2px
2px
2px
2px
;
font-size
:
12px
;
font-weight
:
500
;
cursor
:
pointer
;
<
style
lang=
"scss"
>
.form-modal
{
.content
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.08
);
background
:
#ffffff
;
}
.btn-default
{
background
:
#c0322b
;
color
:
#fff
;
line-height
:
30px
;
text-align
:
center
;
border-radius
:
2px
2px
2px
2px
;
font-size
:
12px
;
font-weight
:
500
;
cursor
:
pointer
;
}
&
__input-number
{
.el-input__wrapper
{
padding-left
:
11px
!
important
;
padding-right
:
11px
!
important
;
input
{
text-align
:
left
;
}
}
}
}
</
style
>
src/components/list/ParkItem.vue
View file @
251c9154
...
...
@@ -49,7 +49,7 @@
<
script
setup
lang=
"ts"
>
import
{
useItemStatus
}
from
'@/composable/useItemStatus.ts'
;
import
type
{
IndustrialParkItem
}
from
'@/types/api/industrialParkList.ts'
;
import
{
filterAddress
}
from
'@/utils/filters.ts'
;
import
{
filterAddress
,
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
computed
}
from
'vue'
;
import
type
{
DevelopZoneItem
}
from
'@/types/api/developZoneList'
;
import
{
ParkItemType
}
from
'@/types/enum.ts'
;
...
...
@@ -80,7 +80,8 @@ const isDevelop = computed(() => {
const
infos
=
computed
(()
=>
{
const
unit
=
props
.
type
===
ParkItemType
.
develop
?
'平方公里'
:
'亩'
;
const
{
levelName
,
planArea
,
type
,
coverArea
}
=
props
.
item
||
{};
return
[
levelName
,
type
,
planArea
||
coverArea
?
`
${
planArea
||
coverArea
}${
unit
}
`
:
''
];
const
area
=
formatNumber
(
planArea
||
coverArea
);
return
[
levelName
,
type
,
area
?
`
${
area
}${
unit
}
`
:
''
];
});
const
directions
=
computed
(()
=>
{
...
...
src/components/list/list-carrier-item.vue
View file @
251c9154
...
...
@@ -19,7 +19,7 @@
</div>
<div
class=
"mb-[8px] flex items-center"
>
<img
class=
"info-icon"
src=
"@/assets/images/icon-map.png"
alt=
""
/>
<p>
建筑面积:
{{
detail
.
area
||
'--'
}}
㎡
</p>
<p>
建筑面积:
{{
formatNumber
(
detail
.
area
)
||
'--'
}}
㎡
</p>
</div>
<div
class=
"mb-[8px] flex items-center"
>
<img
class=
"info-icon"
src=
"@/assets/images/icon-draw.png"
alt=
""
/>
...
...
@@ -32,6 +32,7 @@
<
script
lang=
"ts"
setup
>
import
type
{
CarrierListItem
}
from
'@/types/api/carrierList'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
{
formatNumber
}
from
'@/utils/filters.ts'
;
withDefaults
(
defineProps
<
{
...
...
src/components/list/list-land-item.vue
View file @
251c9154
...
...
@@ -19,7 +19,7 @@
</div>
<div
class=
"mb-[8px] flex items-center"
>
<img
class=
"info-icon"
src=
"@/assets/images/icon-map.png"
alt=
""
/>
<p>
占地面积:
{{
detail
.
area
||
'--'
}}
亩
</p>
<p>
占地面积:
{{
formatNumber
(
detail
.
area
)
||
'--'
}}
亩
</p>
</div>
<div
class=
"mb-[8px] flex items-center"
>
<img
class=
"info-icon"
src=
"@/assets/images/icon-draw.png"
alt=
""
/>
...
...
@@ -38,6 +38,7 @@
<
script
lang=
"ts"
setup
>
import
type
{
LandListItem
}
from
'@/types/api/landList'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
{
formatNumber
}
from
'@/utils/filters.ts'
;
withDefaults
(
defineProps
<
{
...
...
src/composable/useDetail.ts
View file @
251c9154
...
...
@@ -21,14 +21,17 @@ export function useDetail<T>(url: RequestUrl) {
const
initDetail
=
async
()
=>
{
try
{
const
{
success
,
msg
,
data
}
=
await
requestDetail
();
const
result
=
await
requestDetail
();
const
{
success
,
msg
,
data
}
=
result
;
if
(
success
)
{
detail
.
value
=
data
;
}
else
{
message
.
error
(
msg
||
'请求失败'
);
}
return
result
;
}
catch
(
error
)
{
console
.
log
(
error
);
return
Promise
.
reject
(
error
);
}
};
...
...
src/composable/useListView.ts
View file @
251c9154
...
...
@@ -2,10 +2,11 @@ import { useQueryList } from '@/composable/useQueryList.ts';
import
{
ref
,
type
Ref
,
watchEffect
,
nextTick
,
type
ShallowRef
,
computed
}
from
'vue'
;
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
type
{
CommonListResp
,
CommonListParams
}
from
'@/types/common'
;
import
type
{
RouteName
}
from
'@/router/router.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
useSearchParamsStore
}
from
'@/stores/searchParams.ts'
;
import
{
cloneDeep
,
isEmpty
}
from
'lodash-es'
;
import
{
handleNoAuth
}
from
'@/utils/tools.ts'
;
import
{
useRequest
}
from
'./useRequest.ts'
;
import
{
useJump
}
from
'./useJump.ts'
;
...
...
@@ -74,10 +75,10 @@ export function useListView<
isRequesting
.
value
=
b
;
};
watchEffect
(
async
()
=>
{
const
callQuery
=
async
()
=>
{
try
{
changeIsRequesting
(
true
);
const
{
data
}
=
await
queryList
(
const
{
data
,
code
}
=
await
queryList
(
{
...
searchParams
.
value
,
...
otherParams
.
value
,
...
...
@@ -86,11 +87,16 @@ export function useListView<
);
handleUrlClear
();
datas
.
value
=
data
.
records
;
handleNoAuth
(
code
);
}
catch
(
error
)
{
console
.
log
(
error
);
}
finally
{
changeIsRequesting
(
false
);
}
};
watchEffect
(()
=>
{
callQuery
();
});
/**
...
...
@@ -142,6 +148,7 @@ export function useListView<
isRequesting
,
haveSearchParams
,
queryList
,
callQuery
,
handleDetail
,
initPagination
,
handleFilterChange
,
...
...
src/utils/filters.ts
View file @
251c9154
...
...
@@ -43,3 +43,14 @@ export function filterAddress(item: AddressItem) {
.
filter
(
haveValue
)
.
join
(
'-'
);
}
/**
* 处理数字保留小数
*/
export
function
formatNumber
(
v
:
unknown
,
n
=
2
):
string
{
if
(
typeof
v
===
'number'
)
{
return
v
.
toFixed
(
n
);
}
else
{
return
v
!
.
toString
();
}
}
src/utils/tools.ts
View file @
251c9154
import
router
,
{
RouteName
}
from
'@/router/router.ts'
;
export
const
heightLight
=
(
str
:
string
,
key
:
string
)
=>
{
const
reg
=
new
RegExp
(
key
,
'ig'
);
return
str
.
replace
(
reg
,
(
val
)
=>
{
return
`<span style="color: #C0322B;line-height: 25px;background: rgba(192,50,43,0.06);display: inline-block;">
${
val
}
</span>`
;
});
};
export
const
handleNoAuth
=
(
code
:
number
)
=>
{
if
(
code
===
401
)
{
router
.
replace
({
name
:
RouteName
.
home
,
});
}
};
src/views/develop/DevelopZoneDetail.vue
View file @
251c9154
...
...
@@ -11,7 +11,7 @@
<DetailMainInfo
:value=
"detail.levelName"
name=
"开发区级别"
></DetailMainInfo>
<DetailMainInfo
:value=
"detail.type"
name=
"开发区类型"
></DetailMainInfo>
<DetailMainInfo
:value=
"
detail.planArea
"
:value=
"
formatNumber(detail.planArea)
"
unit=
"平方公里"
name=
"开发区面积"
></DetailMainInfo>
...
...
@@ -113,7 +113,7 @@ import DetailInfoTab from '@/components/detail/DetailInfoTab.vue';
import
{
useInfoTab
}
from
'@/composable/useInfoTab.ts'
;
import
type
{
Enterprise
,
Policy
}
from
'@/types/common'
;
import
{
useJoinRequired
}
from
'@/composable/useJoinRequired.ts'
;
import
{
haveValue
}
from
'@/utils/filters.ts'
;
import
{
haveValue
,
formatNumber
}
from
'@/utils/filters.ts'
;
import
MiniListItem
from
'@/components/detail/MiniListItem.vue'
;
import
{
useJump
}
from
'@/composable/useJump.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
...
...
src/views/industrial-park/IndustrialParkDetail.vue
View file @
251c9154
...
...
@@ -5,7 +5,11 @@
<DetailInfoCell>
<DetailMain
:type=
"DetailType.industrial"
:detail=
"detail"
>
<DetailMainInfo
:value=
"detail.levelName"
name=
"产业园级别"
></DetailMainInfo>
<DetailMainInfo
:value=
"detail.coverArea"
unit=
"亩"
name=
"占地面积"
></DetailMainInfo>
<DetailMainInfo
:value=
"formatNumber(detail.coverArea)"
unit=
"亩"
name=
"占地面积"
></DetailMainInfo>
</DetailMain>
</DetailInfoCell>
<DetailInfoCell
v-if=
"detail.description"
title=
"产业园简介"
>
...
...
@@ -124,7 +128,7 @@ import type { Policy } from '@/types/common';
import
{
computed
}
from
'vue'
;
import
DetailInfoTab
from
'@/components/detail/DetailInfoTab.vue'
;
import
MiniListItem
,
{
type
MiniDetail
}
from
'@/components/detail/MiniListItem.vue'
;
import
{
haveValue
}
from
'@/utils/filters.ts'
;
import
{
haveValue
,
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
useJump
}
from
'@/composable/useJump.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
DetailType
,
ExampleType
}
from
'@/types/enum.ts'
;
...
...
src/views/land/LandDetail.vue
View file @
251c9154
...
...
@@ -16,7 +16,11 @@
>
<DetailMainInfo
:value=
"detail.price"
unit=
"万/亩"
name=
"土地价格"
></DetailMainInfo>
<DetailMainInfo
:value=
"detail.type"
name=
"土地类型"
></DetailMainInfo>
<DetailMainInfo
:value=
"detail.area"
unit=
"亩"
name=
"占地面积"
></DetailMainInfo>
<DetailMainInfo
:value=
"formatNumber(detail.area)"
unit=
"亩"
name=
"占地面积"
></DetailMainInfo>
</DetailMain>
</DetailInfoCell>
<DetailInfoCell
v-if=
"detail.landStatus"
title=
"土地现状"
>
...
...
@@ -61,6 +65,7 @@ import { DetailType, ParkItemType } from '@/types/enum.ts';
import
{
useJump
}
from
'@/composable/useJump.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
DetailMainInfo
from
'@/components/detail/DetailMainInfo.vue'
;
import
{
formatNumber
}
from
'@/utils/filters.ts'
;
const
{
detail
,
initDetail
}
=
useDetail
<
LandDetailResp
>
(
RequestUrl
.
landDetail
);
...
...
src/views/user/MyDevelopDetail.vue
View file @
251c9154
...
...
@@ -76,20 +76,34 @@
</div>
</ElTabPane>
<ElTabPane
label=
"土地信息"
:name=
"DetailType.carrier"
>
<div
class=
"bg-[#F8F8F8]"
>
<ElTable
:data=
"landList"
>
<ElTableColumn
prop=
"name"
label=
"土地名称"
></ElTableColumn>
<ElTableColumn
prop=
"address"
label=
"地块位置"
></ElTableColumn>
<ElTableColumn
prop=
"area"
label=
"地块面积"
>
<div
class=
"overflow-x-auto bg-[#F8F8F8]"
>
<ElTable
scrollbar-always-on
:data=
"landList"
header-cell-class-name=
"bg-[#000000] text-[#000000]/[.85] text-sm"
cell-class-name=
"text-[#4D4D4D] text-sm leading-[22px]"
>
<ElTableColumn
width=
"64"
label=
"编号"
>
<template
#
default=
"
{ $index }">
<div>
{{
$index
}}
</div>
</
template
>
</ElTableColumn>
<ElTableColumn
min-width=
"240"
prop=
"name"
label=
"土地名称"
></ElTableColumn>
<ElTableColumn
min-width=
"150"
prop=
"address"
label=
"地块位置"
></ElTableColumn>
<ElTableColumn
min-width=
"100"
prop=
"area"
label=
"地块面积"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.area"
>
{{
row
.
area
}}
平方公里
</div>
<div
v-if=
"row.area"
>
{{
formatNumber
(
row
.
area
)
}}
平方公里
</div>
</
template
>
</ElTableColumn>
<ElTableColumn
prop=
"type"
label=
"土地类型"
></ElTableColumn>
<ElTableColumn
prop=
"landStatus"
label=
"土地现状"
></ElTableColumn>
<ElTableColumn
prop=
"industryDirection"
label=
"产业方向"
></ElTableColumn>
<ElTableColumn
prop=
"contacterName"
label=
"招商联系人"
></ElTableColumn>
<ElTableColumn
prop=
"contacterPhone"
label=
"联系方式"
></ElTableColumn>
<ElTableColumn
width=
"100"
prop=
"type"
label=
"土地类型"
></ElTableColumn>
<ElTableColumn
width=
"100"
prop=
"landStatus"
label=
"土地现状"
></ElTableColumn>
<ElTableColumn
min-width=
"200"
prop=
"industryDirection"
label=
"产业方向"
></ElTableColumn>
<ElTableColumn
width=
"100"
prop=
"contacterName"
label=
"招商联系人"
></ElTableColumn>
<ElTableColumn
width=
"120"
prop=
"contacterPhone"
label=
"联系方式"
></ElTableColumn>
</ElTable>
<ListPagination
...
...
@@ -118,10 +132,11 @@ import type { MyParkDevelopDetailResp } from '@/types/api/myParkDevelopDetail';
import
{
useInfoTab
}
from
'@/composable/useInfoTab.ts'
;
import
DetailInfoTab
from
'@/components/detail/DetailInfoTab.vue'
;
import
type
{
Enterprise
}
from
'@/types/common'
;
import
{
filterAddress
}
from
'@/utils/filters.ts'
;
import
{
filterAddress
,
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
useJump
}
from
'@/composable/useJump.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
useIndustryBase
}
from
'@/composable/useIndustryBase.ts'
;
import
{
handleNoAuth
}
from
'@/utils/tools.ts'
;
const
{
detail
,
initDetail
}
=
useDetail
<
MyParkDevelopDetailResp
>
(
RequestUrl
.
myParkDevelopDetail
);
const
{
router
}
=
useJump
();
...
...
@@ -223,7 +238,7 @@ const joinRequired = computed(() => {
valueAddedEnergy
,
environmentalEquirements
,
prohibitedDirectory
,
prohibitedDirectoryUrlList
,
prohibitedDirectoryUrlList
=
[]
,
accessOther
,
}
=
detail
.
value
;
const
result
:
Infos
=
[
...
...
@@ -279,16 +294,16 @@ const joinRequired = computed(() => {
value
:
prohibitedDirectory
,
},
],
...
(
prohibitedDirectoryUrlList
?
prohibitedDirectoryUrlList
.
map
((
i
)
=>
{
return
[
{
name
:
'禁限目录附件'
,
value
:
i
,
}
,
];
})
:
[]
),
...
prohibitedDirectoryUrlList
.
map
((
i
,
index
)
=>
{
return
[
{
name
:
index
===
0
?
'禁限目录附件'
:
''
,
value
:
i
,
isFile
:
true
,
fileName
:
i
.
split
(
'/'
)?.
pop
()
,
},
];
}
),
];
return
result
;
...
...
@@ -401,7 +416,7 @@ const otherElement = computed(() => {
/** 产业支持 */
const
industrySupports
=
computed
(()
=>
{
if
(
detail
.
value
)
{
const
{
policyList
,
policyUrlList
}
=
detail
.
value
;
const
{
policyList
,
policyUrlList
=
[]
}
=
detail
.
value
;
return
[
...(
policyList
?.
map
(({
name
,
type
,
content
})
=>
{
...
...
@@ -426,12 +441,16 @@ const industrySupports = computed(() => {
];
})
.
flat
()
||
[]),
[
{
name
:
'政策文件'
,
value
:
policyUrlList
?.
join
(
','
)
||
''
,
},
],
...
policyUrlList
.
map
((
url
:
string
,
index
)
=>
{
return
[
{
name
:
index
===
0
?
'政策文件'
:
''
,
value
:
url
,
fileName
:
url
.
split
(
'/'
)?.
pop
(),
isFile
:
true
,
},
];
}),
];
}
else
{
return
[];
...
...
@@ -518,5 +537,7 @@ const handleBack = () => {
});
};
initDetail
();
initDetail
().
then
(({
code
})
=>
{
handleNoAuth
(
code
);
});
</
script
>
src/views/user/MyIndustrialDetail.vue
View file @
251c9154
...
...
@@ -73,33 +73,42 @@
</ElTabPane>
<ElTabPane
label=
"载体信息"
:name=
"DetailType.carrier"
>
<div
class=
"bg-[#F8F8F8]"
>
<ElTable
:data=
"carrierList"
>
<ElTableColumn
prop=
"buildingNumber"
label=
"楼号"
></ElTableColumn>
<ElTableColumn
prop=
"structure"
label=
"建筑结构"
></ElTableColumn>
<ElTableColumn
prop=
"area"
label=
"建筑面积"
>
<ElTable
scrollbar-always-on
:data=
"carrierList"
header-cell-class-name=
"bg-[#000000] text-[#000000]/[.85] text-sm"
cell-class-name=
"text-[#4D4D4D] text-sm leading-[22px]"
>
<ElTableColumn
width=
"64"
prop=
"buildingNumber"
label=
"楼号"
></ElTableColumn>
<ElTableColumn
min-width=
"150"
prop=
"structure"
label=
"建筑结构"
></ElTableColumn>
<ElTableColumn
width=
"120"
prop=
"area"
label=
"建筑面积"
>
<template
#
default=
"
{ row }">
<div
v-if=
"row.area"
>
{{
row
.
area
}}
㎡
</div>
<div
v-if=
"row.area"
>
{{
formatNumber
(
row
.
area
)
}}
㎡
</div>
</
template
>
</ElTableColumn>
<ElTableColumn
prop=
"floorNumber"
label=
"层数"
></ElTableColumn>
<ElTableColumn
width=
"100"
prop=
"floorNumber"
label=
"层数"
></ElTableColumn>
<ElTableColumn
prop=
"floorHigh"
label=
"层高"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.floorHigh"
>
{{
row
.
floorHigh
}}
m
</div>
</
template
>
</ElTableColumn>
<ElTableColumn
prop=
"singleArea"
label=
"单层面积"
>
<ElTableColumn
width=
"120"
prop=
"singleArea"
label=
"单层面积"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.area"
>
{{
row
.
singleArea
}}
㎡
</div>
<div
v-if=
"row.area"
>
{{
formatNumber
(
row
.
singleArea
)
}}
㎡
</div>
</
template
>
</ElTableColumn>
<ElTableColumn
prop=
"distance"
label=
"柱距"
>
<ElTableColumn
width=
"100"
prop=
"distance"
label=
"柱距"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.distance"
>
{{
row
.
distance
}}
m
</div>
</
template
>
</ElTableColumn>
<ElTableColumn
prop=
"elevatorType"
label=
"电梯类型"
></ElTableColumn>
<ElTableColumn
prop=
"fireProtectionLevel"
label=
"消防等级"
></ElTableColumn>
<ElTableColumn
prop=
"fireResistant"
label=
"耐火等级"
></ElTableColumn>
<ElTableColumn
width=
"120"
prop=
"elevatorType"
label=
"电梯类型"
></ElTableColumn>
<ElTableColumn
width=
"120"
prop=
"fireProtectionLevel"
label=
"消防等级"
></ElTableColumn>
<ElTableColumn
width=
"120"
prop=
"fireResistant"
label=
"耐火等级"
></ElTableColumn>
</ElTable>
<ListPagination
...
...
@@ -125,10 +134,11 @@ import { computed, ref } from 'vue';
import
DetailInfoCell
from
'@/components/detail/DetailInfoCell.vue'
;
import
type
{
Infos
}
from
'@/components/detail/DetailInfo.vue'
;
import
ListPagination
from
'@/components/list/ListPagination.vue'
;
import
{
filterAddress
}
from
'@/utils/filters.ts'
;
import
{
filterAddress
,
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
useJump
}
from
'@/composable/useJump.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
useIndustryBase
}
from
'@/composable/useIndustryBase.ts'
;
import
{
handleNoAuth
}
from
'@/utils/tools.ts'
;
const
{
detail
,
initDetail
}
=
useDetail
<
MyParkIndustrialDetailResp
>
(
RequestUrl
.
myParkIndustrialDetail
,
...
...
@@ -452,12 +462,16 @@ const industrySupports = computed(() => {
];
})
.
flat
()
||
[]),
[
{
name
:
'政策文件'
,
value
:
policyUrlList
?.
join
(
','
)
||
''
,
},
],
...
policyUrlList
.
map
((
url
:
string
,
index
)
=>
{
return
[
{
name
:
index
===
0
?
'政策文件'
:
''
,
value
:
url
,
fileName
:
url
.
split
(
'/'
)?.
pop
(),
isFile
:
true
,
},
];
}),
];
return
result
;
...
...
@@ -491,5 +505,7 @@ const handleBack = () => {
});
};
initDetail
();
initDetail
().
then
(({
code
})
=>
{
handleNoAuth
(
code
);
});
</
script
>
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