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
b402d278
Commit
b402d278
authored
Dec 04, 2023
by
shilei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 开发区、产业园添加筛选
parent
8a5237c3
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
98 additions
and
48 deletions
+98
-48
components.d.ts
components.d.ts
+36
-34
package-lock.json
package-lock.json
+3
-3
filter-view.vue
src/components/filter/filter-view.vue
+4
-5
CarrierList.vue
src/views/carrier/CarrierList.vue
+1
-1
DevelopZoneList.vue
src/views/develop/DevelopZoneList.vue
+27
-1
IndustrialParkList.vue
src/views/industrial-park/IndustrialParkList.vue
+25
-1
LandList.vue
src/views/land/LandList.vue
+2
-3
yarn.lock
yarn.lock
+0
-0
No files found.
components.d.ts
View file @
b402d278
...
@@ -7,39 +7,41 @@ export {}
...
@@ -7,39 +7,41 @@ export {}
declare
module
'vue'
{
declare
module
'vue'
{
export
interface
GlobalComponents
{
export
interface
GlobalComponents
{
CommonHeader
:
(
typeof
import
(
'./src/components/common/CommonHeader.vue'
))[
'default'
];
CommonHeader
:
typeof
import
(
'./src/components/common/CommonHeader.vue'
)[
'default'
]
DetailInfoCell
:
(
typeof
import
(
'./src/components/detail/DetailInfoCell.vue'
))[
'default'
];
DetailInfo
:
typeof
import
(
'./src/components/detail/DetailInfo.vue'
)[
'default'
]
DetailMain
:
(
typeof
import
(
'./src/components/detail/DetailMain.vue'
))[
'default'
];
DetailInfoCell
:
typeof
import
(
'./src/components/detail/DetailInfoCell.vue'
)[
'default'
]
ElButton
:
(
typeof
import
(
'element-plus/es'
))[
'ElButton'
];
DetailInfoTab
:
typeof
import
(
'./src/components/detail/DetailInfoTab.vue'
)[
'default'
]
ElCheckbox
:
(
typeof
import
(
'element-plus/es'
))[
'ElCheckbox'
];
DetailMain
:
typeof
import
(
'./src/components/detail/DetailMain.vue'
)[
'default'
]
ElCheckboxGroup
:
(
typeof
import
(
'element-plus/es'
))[
'ElCheckboxGroup'
];
ElButton
:
(
typeof
import
(
'element-plus/es'
))[
'ElButton'
]
ElCol
:
(
typeof
import
(
'element-plus/es'
))[
'ElCol'
];
ElCheckbox
:
typeof
import
(
'element-plus/es'
)[
'ElCheckbox'
]
ElContainer
:
(
typeof
import
(
'element-plus/es'
))[
'ElContainer'
];
ElCheckboxGroup
:
typeof
import
(
'element-plus/es'
)[
'ElCheckboxGroup'
]
ElDatePicker
:
(
typeof
import
(
'element-plus/es'
))[
'ElDatePicker'
];
ElCol
:
(
typeof
import
(
'element-plus/es'
))[
'ElCol'
]
ElFooter
:
(
typeof
import
(
'element-plus/es'
))[
'ElFooter'
];
ElContainer
:
typeof
import
(
'element-plus/es'
)[
'ElContainer'
]
ElForm
:
(
typeof
import
(
'element-plus/es'
))[
'ElForm'
];
ElDatePicker
:
(
typeof
import
(
'element-plus/es'
))[
'ElDatePicker'
]
ElFormItem
:
(
typeof
import
(
'element-plus/es'
))[
'ElFormItem'
];
ElFooter
:
typeof
import
(
'element-plus/es'
)[
'ElFooter'
]
ElHeader
:
(
typeof
import
(
'element-plus/es'
))[
'ElHeader'
];
ElForm
:
(
typeof
import
(
'element-plus/es'
))[
'ElForm'
]
ElInput
:
(
typeof
import
(
'element-plus/es'
))[
'ElInput'
];
ElFormItem
:
(
typeof
import
(
'element-plus/es'
))[
'ElFormItem'
]
ElMain
:
(
typeof
import
(
'element-plus/es'
))[
'ElMain'
];
ElHeader
:
typeof
import
(
'element-plus/es'
)[
'ElHeader'
]
ElMenu
:
(
typeof
import
(
'element-plus/es'
))[
'ElMenu'
];
ElInput
:
typeof
import
(
'element-plus/es'
)[
'ElInput'
]
ElMenuItem
:
(
typeof
import
(
'element-plus/es'
))[
'ElMenuItem'
];
ElMain
:
typeof
import
(
'element-plus/es'
)[
'ElMain'
]
ElOption
:
(
typeof
import
(
'element-plus/es'
))[
'ElOption'
];
ElMenu
:
typeof
import
(
'element-plus/es'
)[
'ElMenu'
]
ElPagination
:
(
typeof
import
(
'element-plus/es'
))[
'ElPagination'
];
ElMenuItem
:
typeof
import
(
'element-plus/es'
)[
'ElMenuItem'
]
ElRadio
:
(
typeof
import
(
'element-plus/es'
))[
'ElRadio'
];
ElOption
:
(
typeof
import
(
'element-plus/es'
))[
'ElOption'
]
ElRadioGroup
:
(
typeof
import
(
'element-plus/es'
))[
'ElRadioGroup'
];
ElPagination
:
typeof
import
(
'element-plus/es'
)[
'ElPagination'
]
ElSelect
:
(
typeof
import
(
'element-plus/es'
))[
'ElSelect'
];
ElRadio
:
(
typeof
import
(
'element-plus/es'
))[
'ElRadio'
]
ElSubMenu
:
(
typeof
import
(
'element-plus/es'
))[
'ElSubMenu'
];
ElRadioGroup
:
(
typeof
import
(
'element-plus/es'
))[
'ElRadioGroup'
]
ImageList
:
(
typeof
import
(
'./src/components/common/ImageList.vue'
))[
'default'
];
ElSelect
:
(
typeof
import
(
'element-plus/es'
))[
'ElSelect'
]
ListInfo
:
(
typeof
import
(
'./src/components/list/ListInfo.vue'
))[
'default'
];
ElSubMenu
:
typeof
import
(
'element-plus/es'
)[
'ElSubMenu'
]
Filter
:
(
typeof
import
(
'./src/components/filter/filter.vue'
))[
'default'
];
Filter
:
(
typeof
import
(
'./src/components/filter/filter.vue'
))[
'default'
]
FilterView
:
(
typeof
import
(
'./src/components/filter/filter-view.vue'
))[
'default'
];
FilterView
:
typeof
import
(
'./src/components/filter/filter-view.vue'
)[
'default'
]
ListCarrierItem
:
(
typeof
import
(
'./src/components/list/list-carrier-item.vue'
))[
'default'
];
ImageList
:
typeof
import
(
'./src/components/common/ImageList.vue'
)[
'default'
]
ListPagination
:
(
typeof
import
(
'./src/components/list/ListPagination.vue'
))[
'default'
];
ListCarrierItem
:
typeof
import
(
'./src/components/list/list-carrier-item.vue'
)[
'default'
]
MiniListItem
:
(
typeof
import
(
'./src/components/detail/MiniListItem.vue'
))[
'default'
];
ListInfo
:
typeof
import
(
'./src/components/list/ListInfo.vue'
)[
'default'
]
ListLandItem
:
(
typeof
import
(
'./src/components/list/list-land-item.vue'
))[
'default'
];
ListLandItem
:
typeof
import
(
'./src/components/list/list-land-item.vue'
)[
'default'
]
ParkItem
:
(
typeof
import
(
'./src/components/list/ParkItem.vue'
))[
'default'
];
ListPagination
:
typeof
import
(
'./src/components/list/ListPagination.vue'
)[
'default'
]
RouterLink
:
(
typeof
import
(
'vue-router'
))[
'RouterLink'
];
MiniListItem
:
typeof
import
(
'./src/components/detail/MiniListItem.vue'
)[
'default'
]
RouterView
:
(
typeof
import
(
'vue-router'
))[
'RouterView'
];
ParkItem
:
typeof
import
(
'./src/components/list/ParkItem.vue'
)[
'default'
]
RouterLink
:
typeof
import
(
'vue-router'
)[
'RouterLink'
]
RouterView
:
typeof
import
(
'vue-router'
)[
'RouterView'
]
}
}
}
}
package-lock.json
View file @
b402d278
...
@@ -13573,9 +13573,9 @@
...
@@ -13573,9 +13573,9 @@
"integrity"
:
"sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA=="
"integrity"
:
"sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA=="
},
},
"@element-plus/icons-vue"
:
{
"@element-plus/icons-vue"
:
{
"version"
:
"2.
1.0
"
,
"version"
:
"2.
3.1
"
,
"resolved"
:
"https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.
1.0
.tgz"
,
"resolved"
:
"https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.
3.1
.tgz"
,
"integrity"
:
"sha512-
PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA
=="
,
"integrity"
:
"sha512-
XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg
=="
,
"requires"
:
{}
"requires"
:
{}
},
},
"@esbuild/android-arm"
:
{
"@esbuild/android-arm"
:
{
...
...
src/components/filter/filter-view.vue
View file @
b402d278
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
<div
class=
"w-[100px] shrink-0 text-xs leading-9 text-black/[.65]"
>
<div
class=
"w-[100px] shrink-0 text-xs leading-9 text-black/[.65]"
>
<span>
{{
filter
.
label
}}
</span>
<span>
{{
filter
.
label
}}
</span>
</div>
</div>
<div>
<div
class=
"flex-1"
>
<div
v-if=
"!filter.multiple"
class=
"flex pt-1.5 text-xs"
>
<div
v-if=
"!filter.multiple"
class=
"flex pt-1.5 text-xs"
>
<div
<div
class=
"shrink-0"
class=
"shrink-0"
...
@@ -47,10 +47,10 @@
...
@@ -47,10 +47,10 @@
全部
全部
</span>
</span>
</div>
</div>
<div
class=
"flex"
>
<div
class=
"flex
flex-wrap
"
>
<div
v-for=
"(item, idx) in filter.list"
:key=
"idx"
class=
"Filter--keysWrap"
>
<div
v-for=
"(item, idx) in filter.list"
:key=
"idx"
>
<div
<div
class=
"
Filter-ListWrap
cursor-pointer px-2 py-1 text-black/[.45]"
class=
"cursor-pointer px-2 py-1 text-black/[.45]"
:class=
"
{ selected: filter.value === item.dictValue }"
:class=
"
{ selected: filter.value === item.dictValue }"
@click="handleFilterClick(item, filter)"
@click="handleFilterClick(item, filter)"
>
>
...
@@ -88,7 +88,6 @@
...
@@ -88,7 +88,6 @@
</ElCheckboxGroup>
</ElCheckboxGroup>
</div>
</div>
</div>
</div>
<div
class=
"Filter--operateWrap"
style=
"width: 100px"
></div>
</div>
</div>
</div>
</div>
</template>
</template>
...
...
src/views/carrier/CarrierList.vue
View file @
b402d278
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
import
{
useListView
}
from
'@/composable/useListView.ts'
;
import
{
useListView
}
from
'@/composable/useListView.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
ListPagination
from
'@/components/list/
list-p
agination.vue'
;
import
ListPagination
from
'@/components/list/
ListP
agination.vue'
;
import
CarrierListItemView
from
'@/components/list/list-carrier-item.vue'
;
import
CarrierListItemView
from
'@/components/list/list-carrier-item.vue'
;
import
FilterView
from
'@/components/filter/filter-view.vue'
;
import
FilterView
from
'@/components/filter/filter-view.vue'
;
import
type
{
CarrierListCondition
,
CarrierListItem
}
from
'@/types/api/carrierList'
;
import
type
{
CarrierListCondition
,
CarrierListItem
}
from
'@/types/api/carrierList'
;
...
...
src/views/develop/DevelopZoneList.vue
View file @
b402d278
<!-- 开发区列表 -->
<!-- 开发区列表 -->
<
template
>
<
template
>
<div
class=
"main-width mx-auto"
>
<div
class=
"main-width mx-auto"
>
<FilterView
:filter-key-list=
"filterKeyList"
class=
"mb-6"
@
change=
"handleFilterChange"
></FilterView>
<div
class=
"space-y-5"
>
<div
class=
"space-y-5"
>
<ParkItem
<ParkItem
v-for=
"item in datas"
v-for=
"item in datas"
...
@@ -27,9 +32,30 @@ import ListPagination from '@/components/list/ListPagination.vue';
...
@@ -27,9 +32,30 @@ import ListPagination from '@/components/list/ListPagination.vue';
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
type
{
DevelopZoneItem
,
DevelopZoneListCondition
}
from
'@/types/api/developZoneList'
;
import
type
{
DevelopZoneItem
,
DevelopZoneListCondition
}
from
'@/types/api/developZoneList'
;
import
{
ParkItemType
}
from
'@/types/enum.ts'
;
import
{
ParkItemType
}
from
'@/types/enum.ts'
;
import
FilterView
from
'@/components/filter/filter-view.vue'
;
const
{
pageNum
,
pageSize
,
totalCount
,
datas
,
handleDetail
}
=
useListView
<
// 筛选项列表
const
filterKeyList
=
[
'development_level'
,
'development_type'
,
'development_direction'
,
'development_area'
,
'industry_policy'
,
];
const
{
pageNum
,
pageSize
,
totalCount
,
datas
,
handleDetail
,
queryList
}
=
useListView
<
DevelopZoneItem
,
DevelopZoneItem
,
DevelopZoneListCondition
DevelopZoneListCondition
>
(
RequestUrl
.
developZoneList
);
>
(
RequestUrl
.
developZoneList
);
// 处理筛选条件
const
handleFilterChange
=
async
function
(
selectList
)
{
const
temp
:
any
=
{};
for
(
const
item
of
selectList
.
value
)
{
temp
[
item
.
key
]
=
item
.
value
;
}
pageNum
.
value
=
1
;
const
{
data
}
=
await
queryList
(
temp
);
datas
.
value
=
data
.
records
;
};
</
script
>
</
script
>
src/views/industrial-park/IndustrialParkList.vue
View file @
b402d278
<!-- 产业园列表 -->
<!-- 产业园列表 -->
<
template
>
<
template
>
<div
class=
"main-width mx-auto"
>
<div
class=
"main-width mx-auto"
>
<FilterView
class=
"mb-6"
:filter-key-list=
"filterKeyList"
@
change=
"handleFilterChange"
></FilterView>
<div>
<div>
<div
class=
"space-y-5"
>
<div
class=
"space-y-5"
>
<ParkItem
<ParkItem
...
@@ -27,6 +32,7 @@ import { useListView } from '@/composable/useListView.ts';
...
@@ -27,6 +32,7 @@ import { useListView } from '@/composable/useListView.ts';
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
ListPagination
from
'@/components/list/ListPagination.vue'
;
import
ListPagination
from
'@/components/list/ListPagination.vue'
;
import
FilterView
from
'@/components/filter/filter-view.vue'
;
import
ParkItem
from
'@/components/list/ParkItem.vue'
;
import
ParkItem
from
'@/components/list/ParkItem.vue'
;
import
type
{
import
type
{
IndustrialParkItem
,
IndustrialParkItem
,
...
@@ -34,8 +40,26 @@ import type {
...
@@ -34,8 +40,26 @@ import type {
}
from
'@/types/api/industrialParkList.ts'
;
}
from
'@/types/api/industrialParkList.ts'
;
import
{
ParkItemType
}
from
'@/types/enum.ts'
;
import
{
ParkItemType
}
from
'@/types/enum.ts'
;
const
{
pageNum
,
pageSize
,
totalCount
,
datas
,
handleDetail
}
=
useListView
<
const
{
pageNum
,
pageSize
,
totalCount
,
datas
,
handleDetail
,
queryList
}
=
useListView
<
IndustrialParkItem
,
IndustrialParkItem
,
IndustrialParkListCondition
IndustrialParkListCondition
>
(
RequestUrl
.
industrialParkList
);
>
(
RequestUrl
.
industrialParkList
);
// 筛选项
const
filterKeyList
=
[
'park_level'
,
'park_direction'
,
'park_area'
,
'park_resources'
,
'industry_policy'
,
];
// 处理筛选条件
const
handleFilterChange
=
async
function
(
selectList
)
{
const
temp
:
any
=
{};
for
(
const
item
of
selectList
.
value
)
{
temp
[
item
.
key
]
=
item
.
value
;
}
pageNum
.
value
=
1
;
const
{
data
}
=
await
queryList
(
temp
);
datas
.
value
=
data
.
records
;
};
</
script
>
</
script
>
src/views/land/LandList.vue
View file @
b402d278
...
@@ -29,17 +29,16 @@
...
@@ -29,17 +29,16 @@
import
{
useListView
}
from
'@/composable/useListView.ts'
;
import
{
useListView
}
from
'@/composable/useListView.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
RouteName
}
from
'@/router/router.ts'
;
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
{
RequestUrl
}
from
'@/types/api.ts'
;
import
ListPagination
from
'@/components/list/
list-p
agination.vue'
;
import
ListPagination
from
'@/components/list/
ListP
agination.vue'
;
import
LandListItemView
from
'@/components/list/list-land-item.vue'
;
import
LandListItemView
from
'@/components/list/list-land-item.vue'
;
import
FilterView
from
'@/components/filter/filter-view.vue'
;
import
FilterView
from
'@/components/filter/filter-view.vue'
;
import
type
{
LandListCondition
,
LandListItem
}
from
'@/types/api/landList'
;
import
type
{
LandListCondition
,
LandListItem
}
from
'@/types/api/landList'
;
import
{
onMounted
,
ref
}
from
'vue'
;
import
{
ref
}
from
'vue'
;
const
Response
=
useListView
<
LandListItem
,
LandListCondition
>
(
RequestUrl
.
landList
);
const
Response
=
useListView
<
LandListItem
,
LandListCondition
>
(
RequestUrl
.
landList
);
const
{
datas
,
pageNum
,
totalCount
,
pageSize
,
handleDetail
,
queryList
}
=
Response
;
const
{
datas
,
pageNum
,
totalCount
,
pageSize
,
handleDetail
,
queryList
}
=
Response
;
const
filterKeyList
=
ref
([
'land_price'
,
'land_type'
,
'land_area'
]);
const
filterKeyList
=
ref
([
'land_price'
,
'land_type'
,
'land_area'
]);
onMounted
(()
=>
{});
// 处理筛选条件
// 处理筛选条件
const
handleFilterChange
=
async
function
(
selectList
)
{
const
handleFilterChange
=
async
function
(
selectList
)
{
const
temp
:
any
=
{};
const
temp
:
any
=
{};
...
...
yarn.lock
View file @
b402d278
This source diff could not be displayed because it is too large. You can
view the blob
instead.
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