Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
H
huamu
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
郭铭瑶
huamu
Commits
e0f535d9
Commit
e0f535d9
authored
Sep 13, 2021
by
郭铭瑶
🤘
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
组织机构对接数据
parent
9572cf86
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
313 additions
and
267 deletions
+313
-267
axios.ts
src/ajax/axios.ts
+1
-1
tags.ts
src/util/tags.ts
+3
-4
filter-drawer.vue
src/view/components/filter-drawer.vue
+1
-1
info-modal.vue
src/view/components/info-modal.vue
+1
-3
member-info.vue
src/view/components/member-info.vue
+0
-1
struct-modal.vue
src/view/components/struct-modal.vue
+307
-257
No files found.
src/ajax/axios.ts
View file @
e0f535d9
...
@@ -5,7 +5,7 @@ import store from '@/store'
...
@@ -5,7 +5,7 @@ import store from '@/store'
const
Axios
=
axios
.
create
({
const
Axios
=
axios
.
create
({
baseURL
:
api
.
BASE_URL
,
baseURL
:
api
.
BASE_URL
,
timeout
:
15
000
,
timeout
:
20
000
,
})
})
Axios
.
interceptors
.
request
.
use
(
Axios
.
interceptors
.
request
.
use
(
(
config
)
=>
{
(
config
)
=>
{
...
...
src/util/tags.ts
View file @
e0f535d9
...
@@ -6,10 +6,9 @@ export const member = [
...
@@ -6,10 +6,9 @@ export const member = [
]
]
export
const
organization
=
[
export
const
organization
=
[
{
name
:
'荣获区级奖项党组织'
,
type
:
'primary'
},
{
name
:
'荣获区级奖项'
,
type
:
'primary'
},
{
name
:
'荣获市级及以上奖项党组织'
,
type
:
'info'
},
{
name
:
'荣获市级及以上奖项'
,
type
:
'info'
},
{
name
:
'光荣在当党50年'
,
type
:
'success'
},
{
name
:
'党建服务站'
,
type
:
'success'
},
{
name
:
'党心暖我心'
,
type
:
'warning'
},
]
]
export
const
activity
=
[
export
const
activity
=
[
{
name
:
'支部党员大会'
,
type
:
'primary'
},
{
name
:
'支部党员大会'
,
type
:
'primary'
},
...
...
src/view/components/filter-drawer.vue
View file @
e0f535d9
...
@@ -281,7 +281,7 @@ const getDetail = async (type: string, name: string) => {
...
@@ -281,7 +281,7 @@ const getDetail = async (type: string, name: string) => {
})
})
}
else
{
}
else
{
res
=
await
useFetchMember
({
res
=
await
useFetchMember
({
q
:
`paths @ "标签" && string
==
"
${
name
}
"`
,
q
:
`paths @ "标签" && string
@
"
${
name
}
"`
,
})
})
}
}
break
break
...
...
src/view/components/info-modal.vue
View file @
e0f535d9
...
@@ -35,9 +35,7 @@
...
@@ -35,9 +35,7 @@
</div>
</div>
</
template
>
</
template
>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
></
script
>
import
{
organization
}
from
'@/util/tags'
</
script
>
<
style
lang=
"stylus"
scoped
>
<
style
lang=
"stylus"
scoped
>
@import '../../components/MyComponent/main.styl'
@import '../../components/MyComponent/main.styl'
...
...
src/view/components/member-info.vue
View file @
e0f535d9
...
@@ -47,7 +47,6 @@
...
@@ -47,7 +47,6 @@
</
template
>
</
template
>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
organization
}
from
'@/util/tags'
import
dayjs
from
'@/util/dayjs'
import
dayjs
from
'@/util/dayjs'
import
{
computed
,
PropType
}
from
'@vue/runtime-core'
import
{
computed
,
PropType
}
from
'@vue/runtime-core'
import
{
member
}
from
'@/util/tags'
import
{
member
}
from
'@/util/tags'
...
...
src/view/components/struct-modal.vue
View file @
e0f535d9
...
@@ -6,13 +6,14 @@
...
@@ -6,13 +6,14 @@
>
>
<div
id=
"struct-modal"
>
<div
id=
"struct-modal"
>
<n-layout
class=
"layout"
has-sider
>
<n-layout
class=
"layout"
has-sider
>
<n-layout-sider
width=
"2
3
%"
class=
"side-menu"
>
<n-layout-sider
width=
"2
5
%"
class=
"side-menu"
>
<h2
<h2
:class=
"
{ on: curKey === 'default' }"
:class=
"
{ on: curKey === 'default' }"
@click.prevent="
@click.prevent="
() => {
() => {
setCurKey('default', {
setCurKey('default', {
label: '中共浦东新区花木街道工作委员会',
key: 'default',
label: '中共上海市浦东新区花木街道工作委员会',
})
})
handleExpand([])
handleExpand([])
}
}
...
@@ -42,6 +43,7 @@
...
@@ -42,6 +43,7 @@
v-for=
"item in subList"
v-for=
"item in subList"
:key=
"item.key"
:key=
"item.key"
:class=
"
{ on: subKey === item.key }"
:class=
"
{ on: subKey === item.key }"
:title="item.label"
@click.prevent="setSub(item)"
@click.prevent="setSub(item)"
>
>
{{
item
.
label
}}
{{
item
.
label
}}
...
@@ -51,9 +53,16 @@
...
@@ -51,9 +53,16 @@
<n-layout-header
class=
"head"
>
<n-layout-header
class=
"head"
>
<n-space>
<n-space>
<p>
{{
curMenu
.
label
}}
</p>
<p>
{{
curMenu
.
label
}}
</p>
<n-tag
type=
"primary"
size=
"small"
>
标签
</n-tag>
<template
v-if=
"curMenu['标签']"
>
<n-tag
type=
"info"
size=
"small"
>
标签
</n-tag>
<n-tag
<n-tag
type=
"success"
size=
"small"
>
标签
</n-tag>
v-for=
"tag in curMenu['标签'].split(',')"
:key=
"tag"
:type=
"organization.find((e) => e.name === tag)?.type"
size=
"small"
>
{{
tag
}}
</n-tag>
</
template
>
</n-space>
</n-space>
<n-icon
class=
"close-btn"
size=
".2rem"
@
click
.
prevent=
"close"
>
<n-icon
class=
"close-btn"
size=
".2rem"
@
click
.
prevent=
"close"
>
<CloseOutline
/>
<CloseOutline
/>
...
@@ -63,35 +72,35 @@
...
@@ -63,35 +72,35 @@
<div
v-if=
"curKey === 'default'"
class=
"card"
>
<div
v-if=
"curKey === 'default'"
class=
"card"
>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党工委书记
</span>
<span>
党工委书记
</span>
<p>
内容
</p>
<p>
{{ defaultData['书记'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党工委副书记
</span>
<span>
党工委副书记
</span>
<p>
内容
</p>
<p>
{{ defaultData['副书记'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织地址
</span>
<span>
党组织地址
</span>
<p>
内容
</p>
<p>
{{ defaultData['党组织地址'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党
组织内党
员数量
</span>
<span>
党员数量
</span>
<p>
内容
</p>
<p>
{{ store.state.basicInfo.sum[1].value }} 位
</p>
</div>
</div>
</div>
</div>
<div
v-else-if=
"curKey === '1'"
class=
"card"
>
<div
v-else-if=
"curKey === '1'"
class=
"card"
>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
书记
</span>
<span>
书记
</span>
<p>
李嘉宁
</p>
<p>
{{ administration['书记'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
成员(按姓氏笔画排序)
</span>
<span>
成员(按姓氏笔画排序)
</span>
<p>
<p>
马建勇、王波、朱凤洲、孙建华、李卫鑫、吴惠萍、张佳锋、张晓山、陈斐轶、尚清、钱英、蒋国兴
{{ administration['委员'] }}
</p>
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织地址
</span>
<span>
党组织地址
</span>
<p>
内容
</p>
<p>
{{ administration['党组织地址'] }}
</p>
</div>
</div>
</div>
</div>
<div
v-else-if=
"curKey === '2'"
class=
"card"
>
<div
v-else-if=
"curKey === '2'"
class=
"card"
>
...
@@ -99,69 +108,120 @@
...
@@ -99,69 +108,120 @@
<div
class=
"col"
>
<div
class=
"col"
>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党总支书记
</span>
<span>
党总支书记
</span>
<p>
内容
</p>
<p>
{{ institution['书记'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织地址
</span>
<span>
党组织地址
</span>
<p>
内容
</p>
<p>
{{ institution['党组织地址'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党
组织内党
员数量
</span>
<span>
党员数量
</span>
<p>
内容
</p>
<p>
{{ institution['党员数量'] }} 位
</p>
</div>
</div>
</div>
</div>
<div
class=
"col"
>
<div
class=
"col"
>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党总支委员
</span>
<span>
党总支委员
</span>
<p>
内容
</p>
<p>
{{ institution['委员'] || '无' }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织联系方式
</span>
<span>
党组织联系方式
</span>
<p>
内容
</p>
<p>
{{
institution['联系方式_座机'] ||
institution['联系方式_手机'] ||
'无'
}}
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
<div
v-else-if=
"curKey === '3'"
class=
"card"
>
v-else-if=
"
curKey === '3' ||
(curKey.split('-').length === 3 && curMenu._hasSub)
"
class=
"card"
>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"col"
>
<div
class=
"col"
>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党委书记
</span>
<span>
党委书记
</span>
<p>
陈倩倩
</p>
<p>
{{ communityParty['书记'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党委副书记
</span>
<span>
党委副书记
</span>
<p>
杨燕华
</p>
<p>
{{ communityParty['党委副书记-专职'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织联系方式
</span>
<span>
党组织联系方式
</span>
<p>
内容
</p>
<p>
{{
communityParty['联系方式_座机'] ||
communityParty['联系方式_手机'] ||
'无'
}}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党
组织成
员数量
</span>
<span>
党员数量
</span>
<p>
内容
</p>
<p>
{{ communityParty['党员数量'] }} 位
</p>
</div>
</div>
</div>
</div>
<div
class=
"col"
>
<div
class=
"col"
>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党委成员
</span>
<span>
党委成员
</span>
<p>
<p>
徐学红、李华、蒋冬梅、戴萍、唐晔君、杨培君、曹静、袁若稼
{{ communityParty['委员'] }}
</p>
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党委副书记(兼职)
</span>
<span>
党委副书记(兼职)
</span>
<p>
吴惠萍、张晓山
</p>
<p>
{{ communityParty['党委副书记-兼职'] }}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织地址
</span>
<span>
党组织地址
</span>
<p>
内容
</p>
<p>
{{ communityParty['党组织地址'] }}
</p>
</div>
</div>
</div>
</div>
<div
v-else-if=
"
curKey.split('-').length === 3 && curMenu && curMenu._hasSub
"
class=
"card"
>
<div
class=
"flex"
>
<div
class=
"col"
>
<div
class=
"row"
>
<span>
党委书记
</span>
<p>
{{ curSubMenu['书记'] }}
</p>
</div>
<div
class=
"row"
>
<span>
党组织地址
</span>
<p>
{{ curSubMenu['党组织地址'] }}
</p>
</div>
<div
class=
"row"
>
<span>
党员数量
</span>
<p>
{{
curSubMenu['党员数量']
? curSubMenu['党员数量'] + ' 位'
: '无'
}}
</p>
</div>
</div>
<div
class=
"col"
>
<div
class=
"row"
>
<span>
党委成员
</span>
<p>
{{ curSubMenu['委员'] }}
</p>
</div>
<div
class=
"row"
>
<span>
党组织联系方式
</span>
<p>
{{
curSubMenu['联系方式_座机'] ||
curSubMenu['联系方式_手机'] ||
'无'
}}
</p>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -170,33 +230,54 @@
...
@@ -170,33 +230,54 @@
v-else-if=
"
v-else-if=
"
((curKey.startsWith('2') || curKey.startsWith('3')) &&
((curKey.startsWith('2') || curKey.startsWith('3')) &&
curKey.split('-').length === 2) ||
curKey.split('-').length === 2) ||
(curKey.split('-').length === 3 && !curMenu._hasSub)
(curKey.split('-').length === 3 &&
(!curMenu || !curMenu._hasSub))
"
"
>
>
<div
class=
"card"
>
<div
class=
"card"
>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"col"
>
<div
class=
"col"
>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党总支书记
</span>
<span>
{{
<p>
内容
</p>
curMenu
[
'等级'
]
===
'党总支'
?
'党总支书记'
:
'党支部书记'
}}
</span>
<p>
{{
curMenu
[
'书记'
]
}}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织地址
</span>
<span>
党组织地址
</span>
<p>
内容
</p>
<p>
{{
curMenu
[
'党组织地址'
]
}}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织内党员数量
</span>
<span>
党员数量
</span>
<p>
内容
</p>
<p>
{{
curMenu
[
'党员数量'
]
?
curMenu
[
'党员数量'
]
+
' 位'
:
'无'
}}
</p>
</div>
</div>
</div>
</div>
<div
class=
"col"
>
<div
class=
"col"
>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党总支委员
</span>
<span>
{{
<p>
内容
</p>
curMenu
[
'等级'
]
===
'党总支'
?
'党总支委员'
:
'支委会成员'
}}
</span>
<p>
{{
curMenu
[
'委员'
]
||
'无'
}}
</p>
</div>
</div>
<div
class=
"row"
>
<div
class=
"row"
>
<span>
党组织联系方式
</span>
<span>
党组织联系方式
</span>
<p>
内容
</p>
<p>
{{
curMenu
[
'联系方式_座机'
]
||
curMenu
[
'联系方式_手机'
]
||
'无'
}}
</p>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -206,7 +287,7 @@
...
@@ -206,7 +287,7 @@
<p>
党员详表
</p>
<p>
党员详表
</p>
<n-button
type=
"primary"
size=
"tiny"
@
click=
"exportList"
>
<n-button
type=
"primary"
size=
"tiny"
@
click=
"exportList"
>
<template
#
icon
>
<template
#
icon
>
<n-icon
size=
".1
2
rem"
>
<n-icon
size=
".1rem"
>
<svg-icon
:data=
"exportIcon"
original
/>
<svg-icon
:data=
"exportIcon"
original
/>
</n-icon>
</n-icon>
</
template
>
</
template
>
...
@@ -232,10 +313,14 @@
...
@@ -232,10 +313,14 @@
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
store
from
'@/store'
import
store
from
'@/store'
import
{
computed
,
h
,
ref
}
from
'vue'
import
{
computed
,
h
,
onMounted
,
ref
,
watch
}
from
'vue'
import
PartyIcon
from
'./party-icon.vue'
import
PartyIcon
from
'./party-icon.vue'
import
exportIcon
from
'@images/export.svg'
import
exportIcon
from
'@images/export.svg'
import
{
CloseOutline
}
from
'@vicons/ionicons5'
import
{
CloseOutline
}
from
'@vicons/ionicons5'
import
{
useFetchOrg
,
useFetchMember
}
from
'@/hooks/useFetch'
import
{
organization
}
from
'@/util/tags'
import
useExportFile
from
'@/hooks/useExportFile'
const
show
=
computed
(()
=>
store
.
state
.
showStructModal
)
const
show
=
computed
(()
=>
store
.
state
.
showStructModal
)
const
close
=
()
=>
{
const
close
=
()
=>
{
store
.
commit
(
'SET_STRUCT_MODAL'
,
false
)
store
.
commit
(
'SET_STRUCT_MODAL'
,
false
)
...
@@ -245,144 +330,148 @@ const close = () => {
...
@@ -245,144 +330,148 @@ const close = () => {
function
renderIcon
()
{
function
renderIcon
()
{
return
()
=>
h
(
PartyIcon
)
return
()
=>
h
(
PartyIcon
)
}
}
const
menus
=
[
const
defaultData
=
ref
({})
// 中共上海市浦东新区花木街道工作委员会
const
administration
=
ref
({})
// 行政党组
const
institution
=
ref
({})
// 机关事业单位党总支
const
communityParty
=
ref
({})
// 社区党委
const
belongToInstitution
=
ref
<
any
[]
>
([])
const
belongToCommunityParty
=
ref
<
any
[]
>
([])
onMounted
(
async
()
=>
{
defaultData
.
value
=
(
await
useFetchOrg
({
q
:
'paths @ "党组织名称" && string == "中共上海市浦东新区花木街道工作委员会"'
,
})
)?.[
0
]?.
extra
administration
.
value
=
(
await
useFetchOrg
({
q
:
'paths @ "党组织名称" && string == "行政党组"'
,
})
)?.[
0
]?.
extra
institution
.
value
=
(
await
useFetchOrg
({
q
:
'paths @ "党组织名称" && string == "中共花木街道机关事业单位总支部委员会"'
,
})
)?.[
0
]?.
extra
communityParty
.
value
=
(
await
useFetchOrg
({
q
:
'paths @ "党组织名称" && string == "社区党委"'
,
})
)?.[
0
]?.
extra
belongToInstitution
.
value
=
(
await
useFetchOrg
({
q
:
'paths @ "上级党组织名称" && string == "中共花木街道机关事业单位总支部委员会"'
,
})
)?.
map
((
item
:
any
,
i
:
number
)
=>
{
const
data
=
item
.
extra
return
{
...
data
,
label
:
data
[
'党组织名称'
].
replace
(
'中共浦东新区花木街道'
,
''
),
key
:
'2-'
+
(
i
+
1
),
}
})
belongToCommunityParty
.
value
=
(
await
useFetchOrg
({
q
:
'paths @ "上级党组织名称" && string == "社区党委"'
,
})
)?.
map
((
item
:
any
,
i
:
number
)
=>
{
const
data
=
item
.
extra
return
{
...
data
,
label
:
data
[
'党组织名称'
].
replace
(
'中共花木街道'
,
''
).
replace
(
'中共'
,
''
),
key
:
'3-'
+
(
i
+
1
),
}
})
const
data
=
belongToCommunityParty
.
value
const
bigSixChildren
:
any
[]
=
[]
const
twoNewChildren
:
any
[]
=
[]
const
datasource
=
data
.
filter
((
item
:
any
)
=>
item
[
'是否虚拟组织'
])
||
[]
data
.
forEach
((
item
:
any
)
=>
{
if
(
item
[
'是否虚拟组织'
])
return
if
(
item
[
'类别'
]
===
'居民区'
)
{
bigSixChildren
.
push
(
item
)
}
else
if
(
item
[
'类别'
]
===
'两新'
)
{
twoNewChildren
.
push
(
item
)
}
else
{
datasource
.
push
(
item
)
}
})
const
bigSix
=
datasource
.
find
((
e
:
any
)
=>
e
[
'党组织名称'
]?.
includes
(
'六大社区党委'
),
)
const
twoNew
=
datasource
.
find
((
e
:
any
)
=>
e
[
'党组织名称'
]?.
includes
(
'两新'
))
bigSix
.
children
=
await
Promise
.
all
(
bigSixChildren
.
map
(
async
(
e
:
any
,
i
:
number
)
=>
{
const
children
=
await
checkHasChildren
(
e
)
const
result
=
{
...
e
,
label
:
e
[
'党组织名称'
].
replace
(
'中共花木街道'
,
''
).
replace
(
'中共'
,
''
),
key
:
bigSix
.
key
+
'-'
+
(
i
+
1
),
}
if
(
children
&&
children
.
length
>
0
)
{
result
.
_hasSub
=
true
result
.
subList
=
children
.
map
((
child
:
any
,
index
:
number
)
=>
({
...
child
,
label
:
child
[
'党组织名称'
]
.
replace
(
'浦东新区花木街道'
,
''
)
.
replace
(
'中共'
,
''
),
key
:
result
.
key
+
'-'
+
(
index
+
1
),
}))
}
return
result
}),
)
twoNew
.
children
=
await
Promise
.
all
(
twoNewChildren
.
map
(
async
(
e
:
any
,
i
:
number
)
=>
{
const
children
=
await
checkHasChildren
(
e
)
const
result
=
{
...
e
,
label
:
e
[
'党组织名称'
].
replace
(
'中共花木街道'
,
''
).
replace
(
'中共'
,
''
),
key
:
twoNew
.
key
+
'-'
+
(
i
+
1
),
}
if
(
children
&&
children
.
length
>
0
)
{
result
.
_hasSub
=
true
result
.
subList
=
children
.
map
((
child
:
any
,
index
:
number
)
=>
({
...
child
,
label
:
child
[
'党组织名称'
]
.
replace
(
'浦东新区花木街道'
,
''
)
.
replace
(
'中共'
,
''
),
key
:
result
.
key
+
'-'
+
(
index
+
1
),
}))
}
return
result
}),
)
belongToCommunityParty
.
value
=
datasource
})
async
function
checkHasChildren
(
data
:
any
)
{
return
(
await
useFetchOrg
({
q
:
`paths @ "上级党组织名称" && string == "
${
data
[
'党组织名称'
]}
"`
,
})
)?.
map
((
e
:
any
)
=>
e
.
extra
)
}
const
menus
=
computed
(()
=>
[
{
label
:
'行政党组'
,
key
:
'1'
,
icon
:
renderIcon
()
},
{
label
:
'行政党组'
,
key
:
'1'
,
icon
:
renderIcon
()
},
{
{
label
:
'机关事业单位党总支'
,
label
:
'机关事业单位党总支'
,
key
:
'2'
,
key
:
'2'
,
icon
:
renderIcon
(),
icon
:
renderIcon
(),
children
:
[
children
:
belongToInstitution
.
value
,
{
label
:
'机关第一党支部'
,
key
:
'2-1'
,
},
{
label
:
'机关第二党支部'
,
key
:
'2-2'
,
},
{
label
:
'机关第三党支部'
,
key
:
'2-3'
,
},
{
label
:
'机关第四党支部'
,
key
:
'2-4'
,
},
{
label
:
'社区事务受理中心党总支'
,
key
:
'2-5'
,
},
{
label
:
'社区党建服务中心党支部'
,
key
:
'2-6'
,
},
{
label
:
'社区文化活动中心党支部'
,
key
:
'2-7'
,
},
{
label
:
'城市网格化综合管理中心党支部'
,
key
:
'2-8'
,
},
{
label
:
'社区综治中心党支部'
,
key
:
'2-9'
,
},
{
label
:
'保安协管大队党支部'
,
key
:
'2-10'
,
},
{
label
:
'城市管理执法支队花木中队党支部'
,
key
:
'2-11'
,
},
{
label
:
'城市建设管理事务中心党支部'
,
key
:
'2-12'
,
},
{
label
:
'花木街道机关退休干部党支部'
,
key
:
'2-13'
,
},
{
label
:
'花木街道机关离休干部党支部'
,
key
:
'2-14'
,
},
],
},
},
{
{
label
:
'社区党委'
,
label
:
'社区党委'
,
key
:
'3'
,
key
:
'3'
,
icon
:
renderIcon
(),
icon
:
renderIcon
(),
children
:
[
children
:
belongToCommunityParty
.
value
,
{
label
:
'六大社区党委'
,
key
:
'3-1'
,
children
:
[
{
label
:
'牡丹社区党委'
,
key
:
'3-1-1'
,
_hasSub
:
true
,
},
{
label
:
'自由社区党委'
,
key
:
'3-1-2'
,
},
{
label
:
'培花社区党委'
,
key
:
'3-1-3'
,
},
{
label
:
'东城社区党委'
,
key
:
'3-1-4'
,
},
{
label
:
'联洋社区党委'
,
key
:
'3-1-5'
,
},
{
label
:
'钦阳社区党委'
,
key
:
'3-1-6'
,
},
],
},
{
label
:
'“两新”党组织'
,
key
:
'3-2'
,
},
{
label
:
'花木经济发展总公司党支部'
,
key
:
'3-3'
,
},
{
label
:
'花木房地产开发经营公司党支部'
,
key
:
'3-4'
,
},
{
label
:
'花木街道鑫荣联力联合党支部'
,
key
:
'3-5'
,
},
{
label
:
'上海钦洋投资管理中心党总支'
,
key
:
'3-6'
,
},
},
],
])
},
]
const
subList
=
[
const
subList
=
ref
<
any
[]
>
([])
{
label
:
'牡丹社区直属党支部'
,
key
:
'3-1-1-1'
},
{
label
:
'牡丹第一居民区党总支'
,
key
:
'3-1-1-2'
},
{
label
:
'牡丹第二居民区党总支'
,
key
:
'3-1-1-3'
},
{
label
:
'牡丹第三居民区党总支'
,
key
:
'3-1-1-4'
},
{
label
:
'牡丹第四居民区党总支'
,
key
:
'3-1-1-5'
},
{
label
:
'牡丹第五居民区党总支'
,
key
:
'3-1-1-6'
},
{
label
:
'牡丹第六居民区党总支'
,
key
:
'3-1-1-7'
},
{
label
:
'牡丹第七居民区党总支'
,
key
:
'3-1-1-8'
},
{
label
:
'牡丹第八居民区党总支'
,
key
:
'3-1-1-9'
},
{
label
:
'牡丹第九居民区党总支'
,
key
:
'3-1-1-10'
},
{
label
:
'牡丹兰庭居民区党支部'
,
key
:
'3-1-1-11'
},
]
const
expandedKeys
=
ref
<
string
[]
>
([])
const
expandedKeys
=
ref
<
string
[]
>
([])
const
handleExpand
=
(
val
:
string
[])
=>
{
const
handleExpand
=
(
val
:
string
[])
=>
{
...
@@ -393,10 +482,21 @@ const handleExpand = (val: string[]) => {
...
@@ -393,10 +482,21 @@ const handleExpand = (val: string[]) => {
}
else
{
}
else
{
expandedKeys
.
value
=
[
val
[
val
.
length
-
1
]]
expandedKeys
.
value
=
[
val
[
val
.
length
-
1
]]
}
}
console
.
log
(
expandedKeys
.
value
)
console
.
log
(
'expandedKeys'
,
expandedKeys
.
value
)
if
(
expandedKeys
.
value
.
length
===
1
&&
expandedKeys
.
value
[
0
].
includes
(
'-'
))
{
expandedKeys
.
value
=
[]
subKey
.
value
=
null
curMenu
.
value
=
{
label
:
'中共浦东新区花木街道工作委员会'
,
key
:
'default'
}
curKey
.
value
=
'default'
return
}
if
(
expandedKeys
.
value
.
length
===
0
)
return
if
(
expandedKeys
.
value
.
length
===
0
)
return
curKey
.
value
=
expandedKeys
.
value
[
0
]
curKey
.
value
=
expandedKeys
.
value
[
0
]
curMenu
.
value
=
menus
.
find
((
e
)
=>
e
.
key
===
curKey
.
value
)
!
const
cur
=
menus
.
value
.
find
((
e
)
=>
e
.
key
===
curKey
.
value
)
subKey
.
value
=
null
if
(
cur
)
{
curMenu
.
value
=
cur
}
}
}
const
curKey
=
ref
(
'default'
)
const
curKey
=
ref
(
'default'
)
...
@@ -405,103 +505,50 @@ const curMenu = ref<any>({
...
@@ -405,103 +505,50 @@ const curMenu = ref<any>({
label
:
'中共浦东新区花木街道工作委员会'
,
label
:
'中共浦东新区花木街道工作委员会'
,
key
:
'default'
,
key
:
'default'
,
})
})
const
curSubMenu
=
ref
<
any
>
({})
const
setCurKey
=
(
val
:
string
,
item
:
any
)
=>
{
const
setCurKey
=
(
val
:
string
,
item
:
any
)
=>
{
curKey
.
value
=
val
curKey
.
value
=
val
curMenu
.
value
=
item
curMenu
.
value
=
item
subKey
.
value
=
null
subKey
.
value
=
null
if
(
val
===
'default'
||
val
===
'1'
)
handleExpand
([])
if
(
val
===
'default'
||
val
===
'1'
)
handleExpand
([])
}
}
watch
(
()
=>
curMenu
.
value
,
async
(
data
)
=>
{
console
.
log
(
'cur-menu: '
,
data
,
menus
.
value
)
if
(
data
&&
data
.
_hasSub
)
{
subList
.
value
=
data
.
subList
curSubMenu
.
value
=
data
}
tableList
.
value
=
(
await
useFetchMember
({
q
:
`paths @ "所属党组织名称" && string == "
${
data
[
'党组织名称'
]}
"`
,
})
)?.
map
((
item
:
any
)
=>
item
.
extra
)
||
[]
},
)
const
showSubordinates
=
computed
(()
=>
curMenu
.
value
.
_hasSub
||
!!
subKey
.
value
)
const
showSubordinates
=
computed
(()
=>
curMenu
.
value
.
_hasSub
||
!!
subKey
.
value
)
const
setSub
=
(
data
:
any
)
=>
{
function
setSub
(
data
:
any
)
{
subKey
.
value
=
data
.
key
subKey
.
value
=
data
&&
data
.
key
curMenu
.
value
=
data
curMenu
.
value
=
data
}
}
const
columns
=
[
const
columns
=
[
{
title
:
'姓名'
,
key
:
'name'
},
{
title
:
'姓名'
,
key
:
'姓名'
},
{
title
:
'性别'
,
key
:
'gender'
},
{
title
:
'性别'
,
key
:
'性别'
},
{
title
:
'民族'
,
key
:
'ethic'
},
{
title
:
'民族'
,
key
:
'民族'
},
{
title
:
'所属党组织'
,
key
:
'org'
},
{
title
:
'所属党组织'
,
key
:
'所属党组织名称'
},
]
const
tableList
=
[
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
{
name
:
'内容'
,
gender
:
'内容'
,
ethic
:
'内容'
,
org
:
'内容'
,
},
]
]
const
tableList
=
ref
<
any
[]
>
([])
const
pagination
=
{
const
pagination
=
{
pageSize
:
10
,
pageSize
:
10
,
}
}
const
exportList
=
()
=>
{}
const
exportList
=
()
=>
{
useExportFile
(
tableList
.
value
,
'姓名'
,
`
${
curMenu
.
value
.
label
}
党员详表`
)
}
</
script
>
</
script
>
<
style
lang=
"stylus"
scoped
>
<
style
lang=
"stylus"
scoped
>
...
@@ -570,6 +617,8 @@ const exportList = () => {}
...
@@ -570,6 +617,8 @@ const exportList = () => {}
.row
.row
margin-bottom .1rem
margin-bottom .1rem
padding-left .05rem
padding-left .05rem
p
font-family $font-ping-medium
span
span
color $font
color $font
.sub
.sub
...
@@ -581,10 +630,11 @@ const exportList = () => {}
...
@@ -581,10 +630,11 @@ const exportList = () => {}
box-sizing border-box
box-sizing border-box
padding .1rem 0
padding .1rem 0
p
p
padding .1rem
.2rem
padding .1rem
font-size .09rem
font-size .09rem
color $font
color $font
cursor pointer
cursor pointer
$text-overflow()
&:hover
&:hover
&.on
&.on
color $red
color $red
...
@@ -604,10 +654,10 @@ const exportList = () => {}
...
@@ -604,10 +654,10 @@ const exportList = () => {}
>.n-submenu
>.n-submenu
>.n-submenu-children
>.n-submenu-children
.n-menu-item-content-header
.n-menu-item-content-header
font-size .1
2
rem
font-size .1
1
rem
.n-submenu-children
.n-submenu-children
.n-menu-item-content-header
.n-menu-item-content-header
font-size .
1
rem
font-size .
09
rem
.n-menu-item-content--child-active
.n-menu-item-content--child-active
&:before
&:before
content ""
content ""
...
...
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