Commit a182c341 authored by 郭铭瑶's avatar 郭铭瑶 🤘

工作站加装电梯接口数据

parent 0bf850ff
...@@ -94,7 +94,7 @@ export default { ...@@ -94,7 +94,7 @@ export default {
GET_ECOLOGY_POINTS: '/service-basicdatasync-ddd/nonResidents', // 获取衣食住行撒点 GET_ECOLOGY_POINTS: '/service-basicdatasync-ddd/nonResidents', // 获取衣食住行撒点
GET_ECOLOGY_CONVENIENT: '/service-special-nandong/convenient/ecological', // 生态-便民设施 GET_ECOLOGY_CONVENIENT: '/service-special-nandong/convenient/ecological', // 生态-便民设施
GET_ECOLOGY_PHOTO: '/service-special-nandong/buildingPhotos', // 生态 - 商业综合体、文保、历保照片 GET_ECOLOGY_PHOTO: '/service-special-nandong/buildingPhotos', // 生态 - 商业综合体、文保、历保照片
GET_ELEV_COUNT: '/service-special-nandong/elevatorAdd/statistical', // 美丽家园-电梯加装统计数字 GET_ELEV_COUNT: '/service-special-nandong/elevatorAdd/workstation', // 美丽家园-电梯加装统计数字
GET_ELEV_LIST: '/service-special-nandong/elevatorAdds', // 美丽家园 - 根据名称查询列表 GET_ELEV_LIST: '/service-special-nandong/elevatorAdds', // 美丽家园 - 根据名称查询列表
GET_TOILET: '/service-special-nandong/toilet/renovation', // 马桶改造 GET_TOILET: '/service-special-nandong/toilet/renovation', // 马桶改造
} }
...@@ -53,4 +53,21 @@ $color-main = #5BD5FF ...@@ -53,4 +53,21 @@ $color-main = #5BD5FF
color $color-main color $color-main
background rgba(0,0,0,0.4) background rgba(0,0,0,0.4)
font-size .08rem font-size .08rem
font-weight bold font-weight bold
\ No newline at end of file
.ant-tooltip-inner
max-width 3rem
min-height .2rem
padding .05rem .08rem
background $primary-bg
$blur(.02rem)
.ant-tree-switcher
width .1rem
color #fff
.ant-tree-title
font-size .1rem
color #fff
.ant-tree
li
.ant-tree-node-content-wrapper
background-color transparent !important
\ No newline at end of file
...@@ -156,7 +156,7 @@ export default defineComponent({ ...@@ -156,7 +156,7 @@ export default defineComponent({
display flex display flex
align-items center align-items center
p p
padding 0 .05rem padding .02rem .05rem
box-sizing border-box box-sizing border-box
>.content >.content
flex 1 flex 1
......
...@@ -177,7 +177,7 @@ export default defineComponent({ ...@@ -177,7 +177,7 @@ export default defineComponent({
transform translate(50%, 50%) transform translate(50%, 50%)
.content .content
// min-height 30vh // min-height 30vh
max-height 86vh max-height 82vh
overflow-y auto overflow-y auto
overflow-x hidden overflow-x hidden
font-size 0.1rem font-size 0.1rem
......
<template> <template>
<div class="my-sub"> <div class="my-sub">
<div class="title"> <div
class="title"
:class="{ 'click-able': clickAble }"
@click="handleClick"
>
<span /> <span />
<p><slot /></p> <p><slot /></p>
<div v-if="addition" class="addition"> <div v-if="addition" class="addition">
...@@ -58,9 +62,13 @@ export default defineComponent({ ...@@ -58,9 +62,13 @@ export default defineComponent({
type: Boolean as PropType<boolean>, type: Boolean as PropType<boolean>,
default: false, default: false,
}, },
clickAble: {
type: Boolean as PropType<boolean>,
default: false,
},
}, },
emits: ['search', 'close'], emits: ['search', 'close', 'select'],
setup(_, ctx) { setup(props, ctx) {
const isOpened = ref(false) const isOpened = ref(false)
const inputValue = ref('') const inputValue = ref('')
const handleSearch = () => { const handleSearch = () => {
...@@ -81,12 +89,18 @@ export default defineComponent({ ...@@ -81,12 +89,18 @@ export default defineComponent({
} }
} }
} }
const handleClick = () => {
if (props.clickAble) {
ctx.emit('select')
}
}
return { return {
isOpened, isOpened,
inputValue, inputValue,
handleSearch, handleSearch,
handleClose, handleClose,
handleOpenSearchBar, handleOpenSearchBar,
handleClick,
} }
}, },
}) })
...@@ -106,6 +120,10 @@ export default defineComponent({ ...@@ -106,6 +120,10 @@ export default defineComponent({
// color $secondary-color // color $secondary-color
flex 1 flex 1
font-size .12rem font-size .12rem
&.click-able
cursor pointer
&:hover
color $yellow
.addition .addition
display flex display flex
align-items center align-items center
......
...@@ -177,7 +177,7 @@ export default defineComponent({ ...@@ -177,7 +177,7 @@ export default defineComponent({
background transparent background transparent
$full() $full()
p p
padding 0 .05rem padding 0.04rem .05rem
margin 0 margin 0
flex 1 flex 1
box-sizing border-box box-sizing border-box
......
...@@ -2,7 +2,14 @@ import { createApp } from 'vue' ...@@ -2,7 +2,14 @@ import { createApp } from 'vue'
import App from './App.vue' import App from './App.vue'
import MyComponent from '@/components/MyComponent' import MyComponent from '@/components/MyComponent'
import router from '@/router' import router from '@/router'
import { Progress, Select, Input, Tooltip, Checkbox } from 'ant-design-vue' import {
Progress,
Select,
Input,
Tooltip,
Checkbox,
Tree,
} from 'ant-design-vue'
import 'ant-design-vue/dist/antd.min.css' import 'ant-design-vue/dist/antd.min.css'
import './assets/style/reset.styl' import './assets/style/reset.styl'
...@@ -14,4 +21,5 @@ createApp(App) ...@@ -14,4 +21,5 @@ createApp(App)
.use(Input) .use(Input)
.use(Tooltip) .use(Tooltip)
.use(Checkbox) .use(Checkbox)
.use(Tree)
.mount('#app') .mount('#app')
import { ajax, api } from '@/ajax' import { ajax, api } from '@/ajax'
import { Dispatch, Commit } from 'vuex' import { Dispatch, Commit } from 'vuex'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import yi2 from '@/assets/images/yi2.png'
import xue from '@/assets/images/xue.png'
import shang from '@/assets/images/shang.png'
import zheng from '@/assets/images/zheng.png'
import yi from '@/assets/images/yi.png'
import shi from '@/assets/images/shi.png'
import zhu from '@/assets/images/zhu.png'
import xing from '@/assets/images/xing.png'
import smStar from '@/assets/images/star-sm.png'
import star from '@/assets/images/star.png'
const today = dayjs().format('YYYY-MM-DD') const today = dayjs().format('YYYY-MM-DD')
...@@ -16,7 +26,7 @@ export default { ...@@ -16,7 +26,7 @@ export default {
dispatch('GET_YOUSUBIDA_CLASSIFICATION_RANK', '综合') dispatch('GET_YOUSUBIDA_CLASSIFICATION_RANK', '综合')
dispatch('GET_URGENTCASE', { dispatch('GET_URGENTCASE', {
bxmaintainType: '1', bxmaintainType: '1',
status_in: '待派遣,已派单', // status_in: '待派遣,已派单',
acceptTime_gte: today, acceptTime_gte: today,
pageSize: 100, pageSize: 100,
}) })
...@@ -24,7 +34,7 @@ export default { ...@@ -24,7 +34,7 @@ export default {
dispatch('GET_STAGECASE') dispatch('GET_STAGECASE')
dispatch('GET_WORKSTATION') dispatch('GET_WORKSTATION')
dispatch('GET_TRACKEVENT', { dispatch('GET_TRACKEVENT', {
status_in: '待处置,已签收', // status_in: '待处置,已签收',
acceptTime_gte: today, acceptTime_gte: today,
pageSize: 100, pageSize: 100,
}) })
...@@ -47,6 +57,7 @@ export default { ...@@ -47,6 +57,7 @@ export default {
dispatch('GET_PUBLICSAFE_NEWFIND') dispatch('GET_PUBLICSAFE_NEWFIND')
dispatch('GET_PUBLICSAFE_TRUE_PEOPLE') dispatch('GET_PUBLICSAFE_TRUE_PEOPLE')
dispatch('getEcologyList') dispatch('getEcologyList')
dispatch('getEcologyPoints')
dispatch('getEcologyConvenient') dispatch('getEcologyConvenient')
dispatch('getEcologyPhoto') dispatch('getEcologyPhoto')
dispatch('getElevCount') dispatch('getElevCount')
...@@ -257,11 +268,13 @@ export default { ...@@ -257,11 +268,13 @@ export default {
}, },
// 公共安全 - 重点关注楼宇 // 公共安全 - 重点关注楼宇
async GET_PUBLICSAFE_BUILDINGS({ async GET_PUBLICSAFE_BUILDINGS(
commit, {
}: { commit,
commit: Commit }: {
}): Promise<void> { commit: Commit
},
): Promise<void> {
const { content } = ( const { content } = (
await ajax.get({ await ajax.get({
url: api.GET_PUBLICSAFE_BUILDINGS, url: api.GET_PUBLICSAFE_BUILDINGS,
...@@ -284,17 +297,62 @@ export default { ...@@ -284,17 +297,62 @@ export default {
const { content } = (await ajax.get({ url: api.GET_ECOLOGY_LIST })).data const { content } = (await ajax.get({ url: api.GET_ECOLOGY_LIST })).data
commit('SET_ECOLOGY_LIST', content) commit('SET_ECOLOGY_LIST', content)
}, },
async getEcologyPoints( async getEcologyPoints({ commit }: { commit: Commit }): Promise<void> {
{ commit }: { commit: Commit },
name: string
): Promise<void> {
const { content } = ( const { content } = (
await ajax.get({ await ajax.get({
url: api.GET_ECOLOGY_POINTS, url: api.GET_ECOLOGY_POINTS,
params: { labelName: name, pageSize: 1000 }, params: { pageSize: 1000 },
}) })
).data ).data
commit('SET_ECOLOGY_POINTS', content) const result = [
...(content || []).map((item: any) => {
switch (item.labelName) {
case '医':
item.icon = yi2
item._type = 'other'
break
case '学':
item.icon = xue
item._type = 'other'
break
case '商':
item.icon = shang
item._type = 'other'
break
case '政':
item.icon = zheng
item._type = 'other'
break
case '衣':
item.icon = yi
item._type = 'yi'
break
case '食':
item.icon = shi
item._type = 'shi'
break
case '住':
item.icon = zhu
item._type = 'zhu'
break
case '行':
item.icon = xing
item._type = 'xing'
break
default:
break
}
if (item.stAddr === '大沽路123号') {
item.icon = smStar
}
if (item.stAddr === '人民大道200号') {
item.icon = star
}
item.size = 20
return item
}),
]
commit('SET_ECOLOGY_POINTS', result)
}, },
async getEcologyConvenient({ commit }: { commit: Commit }): Promise<void> { async getEcologyConvenient({ commit }: { commit: Commit }): Promise<void> {
const { content } = ( const { content } = (
......
...@@ -80,6 +80,7 @@ export interface ForOldProp { ...@@ -80,6 +80,7 @@ export interface ForOldProp {
export interface ElevCountProp { export interface ElevCountProp {
cmtName: string cmtName: string
num: number num: number
workstationId?: string
} }
export interface ResponsivityProp { export interface ResponsivityProp {
......
...@@ -13,6 +13,22 @@ ...@@ -13,6 +13,22 @@
</div> </div>
</template> </template>
</a-tooltip> </a-tooltip>
<a-tooltip
v-else-if="btn.key === 'point'"
:key="btn.key"
placement="right"
>
<img :key="btn.key" :src="btn.icon" draggable="false" />
<template #title>
<a-tree
v-model:expandedKeys="expandedKeys"
v-model:checkedKeys="checkedKeys"
:tree-data="treeData"
checkable
@check="handleCheck"
/>
</template>
</a-tooltip>
<a-tooltip v-else :key="btn.key" placement="right"> <a-tooltip v-else :key="btn.key" placement="right">
<img :src="btn.icon" draggable="false" @click="handleClick(btn.key)" /> <img :src="btn.icon" draggable="false" @click="handleClick(btn.key)" />
<template #title>{{ btn.title }}</template> <template #title>{{ btn.title }}</template>
...@@ -43,7 +59,7 @@ import store from '@/store' ...@@ -43,7 +59,7 @@ import store from '@/store'
export default defineComponent({ export default defineComponent({
name: 'MapBtns', name: 'MapBtns',
components: { SearchView }, components: { SearchView },
emits: ['full', 'change', 'zoom'], emits: ['full', 'change', 'zoom', 'point'],
setup(_, ctx) { setup(_, ctx) {
const curViewType = computed(() => store.state.curView.type) const curViewType = computed(() => store.state.curView.type)
const btns = computed(() => { const btns = computed(() => {
...@@ -56,8 +72,8 @@ export default defineComponent({ ...@@ -56,8 +72,8 @@ export default defineComponent({
{ key: 'in', icon: zoomIn, title: '放大地图' }, { key: 'in', icon: zoomIn, title: '放大地图' },
{ key: 'out', icon: zoomOut, title: '缩小地图' }, { key: 'out', icon: zoomOut, title: '缩小地图' },
{ key: 'full', icon: btn2, title: '全屏' }, { key: 'full', icon: btn2, title: '全屏' },
{ key: 'points', icon: btn6, title: '显示/隐藏小区点' }, { key: 'switch-community-point', icon: btn6, title: '显示/隐藏小区点' },
// { key: '', icon: btn4 }, { key: 'point', icon: btn4 },
// { key: '', icon: btn5 }, // { key: '', icon: btn5 },
// { key: '', icon: btn6 }, // { key: '', icon: btn6 },
] ]
...@@ -89,7 +105,7 @@ export default defineComponent({ ...@@ -89,7 +105,7 @@ export default defineComponent({
case 'out': case 'out':
ctx.emit('zoom', key) ctx.emit('zoom', key)
break break
case 'points': case 'switch-community-point':
store.commit( store.commit(
'SET_SHOW_COMMUNITY_POINTS', 'SET_SHOW_COMMUNITY_POINTS',
!store.state.showCommunityPoints !store.state.showCommunityPoints
...@@ -117,6 +133,91 @@ export default defineComponent({ ...@@ -117,6 +133,91 @@ export default defineComponent({
ctx.emit('change', e) ctx.emit('change', e)
checkboxValues.value = e checkboxValues.value = e
} }
const treeData = ref([
{
title: '居住',
key: '居住',
value: '居住',
children: [
{
title: '商品房、二级旧里、直管公房',
key: 'community',
value: 'community',
},
],
},
{
title: '非居',
key: '非居',
value: '非居',
children: [
{
title: '衣、食、住、行',
key: 'life',
tipvalue: 'life',
children: [
{
title: '衣',
key: 'yi',
value: 'yi',
},
{
title: '食',
key: 'shi',
value: 'shi',
},
{
title: '住',
key: 'zhu',
value: 'zhu',
},
{
title: '行',
key: 'xing',
value: 'xing',
},
{
title: '其他',
key: 'other',
value: 'other',
},
],
},
{
title: '为老服务站',
key: 'old',
value: 'old',
},
{
title: '地标性建筑',
key: 'sign',
value: 'sign',
},
{
title: '历史保护建筑',
key: 'history',
value: 'history',
},
],
},
// {
// title: '防寒抗冻',
// key: 'cold',
// value: 'cold',
// },
])
const expandedKeys = ref(['居住', '非居'])
const checkedKeys = ref([
'community',
'life',
// 'cold',
'old',
'sign',
'history',
])
const handleCheck = (data: string[]) => {
ctx.emit('point', data)
}
watch( watch(
[() => curViewType.value, () => store.state.curMapType], [() => curViewType.value, () => store.state.curMapType],
() => (checkboxValues.value = []) () => (checkboxValues.value = [])
...@@ -131,6 +232,10 @@ export default defineComponent({ ...@@ -131,6 +232,10 @@ export default defineComponent({
checkboxValues, checkboxValues,
handleChange, handleChange,
curViewType, curViewType,
treeData,
expandedKeys,
checkedKeys,
handleCheck,
} }
}, },
}) })
......
...@@ -2,7 +2,7 @@ import { ref, watch, computed } from 'vue' ...@@ -2,7 +2,7 @@ import { ref, watch, computed } from 'vue'
import { ajax, api } from '@/ajax' import { ajax, api } from '@/ajax'
import store from '@/store' import store from '@/store'
export default function useSwitchMap(map: any) { export default function useSwitchMap(map: any): any {
const curMapType = computed(() => store.state.curMapType) const curMapType = computed(() => store.state.curMapType)
const curViewType = computed(() => store.state.curView.type) const curViewType = computed(() => store.state.curView.type)
watch( watch(
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
@change="selectArea" @change="selectArea"
@full="fullScreen = $event" @full="fullScreen = $event"
@zoom="handleZoom" @zoom="handleZoom"
@point="handlePoint"
/> />
<m-drawer v-model="showDrawer"> <m-drawer v-model="showDrawer">
<CaseDrawer /> <CaseDrawer />
...@@ -64,6 +65,8 @@ import CaseDrawer from './drawers/case-drawer.vue' ...@@ -64,6 +65,8 @@ import CaseDrawer from './drawers/case-drawer.vue'
import PopulationDrawer from './drawers/population-drawer.vue' import PopulationDrawer from './drawers/population-drawer.vue'
import store from '@/store' import store from '@/store'
import useSwitchMap from './hooks/useSwitchMap' import useSwitchMap from './hooks/useSwitchMap'
import smStar from '@/assets/images/star-sm.png'
import star from '@/assets/images/star.png'
export default defineComponent({ export default defineComponent({
name: 'Main', name: 'Main',
...@@ -111,6 +114,53 @@ export default defineComponent({ ...@@ -111,6 +114,53 @@ export default defineComponent({
} }
}) })
const { handleMapComplete, selectArea, handleZoom } = useSwitchMap(map) const { handleMapComplete, selectArea, handleZoom } = useSwitchMap(map)
const mapPoints = ref<any>(null)
const ecologyPoints = computed(() => store.state.ecologyPoints)
const handlePoint = (keys: string[]) => {
const { showCommunity, hideCommunity, addPoint, remove } = map.value
if (keys.some((key) => key === 'community')) {
showCommunity()
} else {
hideCommunity()
}
const yiPoints = ecologyPoints.value.filter((e) => e.labelName === '衣')
const shiPoints = ecologyPoints.value.filter((e) => e.labelName === '食')
const zhuPoints = ecologyPoints.value.filter((e) => e.labelName === '住')
const xingPoints = ecologyPoints.value.filter((e) => e.labelName === '行')
const otherPoints = ecologyPoints.value.filter((e) => e._type === 'other')
// const oldPoints = []
// const signPoints = []
// const historyPoints = []
remove(mapPoints.value)
mapPoints.value = addPoint({
key: 'map-points',
size: 20,
data: [
...(keys.some((key) => key === 'yi') ? yiPoints : []),
...(keys.some((key) => key === 'shi') ? shiPoints : []),
...(keys.some((key) => key === 'zhu') ? zhuPoints : []),
...(keys.some((key) => key === 'xing') ? xingPoints : []),
...(keys.some((key) => key === 'other') ? otherPoints : []),
{
icon: star,
'479477007408168960': '上海市人民政府',
stAddr: '人民大道200号',
belong: '第一工作站',
x: 130.78,
y: -433.2,
},
{
icon: smStar,
'479477007408168960': '南京东路街道',
stAddr: '大沽路123号',
belong: '第一工作站',
x: 17.95,
y: -788.21,
},
],
})
}
return { return {
map, map,
curViewType, curViewType,
...@@ -121,6 +171,7 @@ export default defineComponent({ ...@@ -121,6 +171,7 @@ export default defineComponent({
handleMapComplete, handleMapComplete,
selectArea, selectArea,
handleZoom, handleZoom,
handlePoint,
} }
}, },
}) })
......
...@@ -14,7 +14,13 @@ ...@@ -14,7 +14,13 @@
<m-bar :dataset="barData" :option="chartOption" /> <m-bar :dataset="barData" :option="chartOption" />
</div> </div>
</div> </div>
<m-sub2 :addition="{ value: 33, unit: '幢' }">电梯加装(排摸)</m-sub2> <m-sub2
click-able
:addition="{ value: elevNum, unit: '幢' }"
@select="handleClick"
>
电梯加装(排摸)
</m-sub2>
<m-sub2>马桶改造</m-sub2> <m-sub2>马桶改造</m-sub2>
<Brief :list="toiletSituation" color="#fff" /> <Brief :list="toiletSituation" color="#fff" />
<m-progress <m-progress
...@@ -24,6 +30,20 @@ ...@@ -24,6 +30,20 @@
/> />
</div> </div>
</m-card> </m-card>
<m-modal
v-model="showElevModal"
title="电梯加装"
width="8vw"
translate-y="4%"
offset="-44%"
>
<div class="elev-modal">
<div v-for="item in elevData" :key="item.id">
<p>{{ item.sectAddr }}</p>
<p>{{ item.cmtName }} | {{ item.sectName }}</p>
</div>
</div>
</m-modal>
</template> </template>
<script lang="ts"> <script lang="ts">
...@@ -36,6 +56,7 @@ import icon33 from '@/assets/images/icon33.png' ...@@ -36,6 +56,7 @@ import icon33 from '@/assets/images/icon33.png'
import icon34 from '@/assets/images/icon34.png' import icon34 from '@/assets/images/icon34.png'
import icon35 from '@/assets/images/icon35.png' import icon35 from '@/assets/images/icon35.png'
import icon36 from '@/assets/images/icon36.png' import icon36 from '@/assets/images/icon36.png'
import { ajax, api } from '@/ajax'
export default defineComponent({ export default defineComponent({
name: 'BeautyHomeInStation', name: 'BeautyHomeInStation',
...@@ -88,6 +109,35 @@ export default defineComponent({ ...@@ -88,6 +109,35 @@ export default defineComponent({
}, },
}, },
} }
const elevNum = computed(() => {
const data = store.state.elevCount
const { id } = store.state.curView
return data
.filter((e) => e.workstationId === id)
.reduce((acc, cur) => acc + cur.num, 0)
})
const showElevModal = ref(false)
const elevData = ref<any>([])
const dic: any = {
'01001': ['振兴', '新昌', '江阴', '顺天村'],
'01002': ['小花园'],
'01003': ['福海', '定兴'],
}
const handleClick = async () => {
const { content } = (
await ajax.get({
url: api.GET_ELEV_LIST,
params: { pageSize: 1000 },
})
).data
const { id } = store.state.curView
elevData.value = content.filter(
(e: any) => id && dic[id].includes(e.cmtName)
)
showElevModal.value = true
}
return { return {
curViewType, curViewType,
summary, summary,
...@@ -95,6 +145,10 @@ export default defineComponent({ ...@@ -95,6 +145,10 @@ export default defineComponent({
toiletSituation, toiletSituation,
barData, barData,
chartOption, chartOption,
elevNum,
showElevModal,
elevData,
handleClick,
} }
}, },
}) })
...@@ -150,4 +204,15 @@ export default defineComponent({ ...@@ -150,4 +204,15 @@ export default defineComponent({
display flex display flex
.chart .chart
flex 1 flex 1
.elev-modal
height 82vh
overflow-y auto
>div
border-bottom .01rem solid rgba(176,216,255,.1)
padding .05rem 0
p
font-size .09rem
&:first-child
font-size .11rem
font-weight bold
</style> </style>
...@@ -184,7 +184,7 @@ export default defineComponent({ ...@@ -184,7 +184,7 @@ export default defineComponent({
font-size .12rem font-size .12rem
font-weight bold font-weight bold
.elev-modal .elev-modal
height 84vh height 82vh
overflow-y auto overflow-y auto
>div >div
border-bottom .01rem solid rgba(176,216,255,.1) border-bottom .01rem solid rgba(176,216,255,.1)
......
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
<p>{{ item.address }}</p> <p>{{ item.address }}</p>
<p>{{ item.acceptTime }}</p> <p>{{ item.acceptTime }}</p>
</div> </div>
<m-step :steps="steps" :current="item.type" /> <m-step :steps="steps" :current="getCurrent(item.status)" />
</div> </div>
</m-scroll> </m-scroll>
</div> </div>
...@@ -243,7 +243,14 @@ export default defineComponent({ ...@@ -243,7 +243,14 @@ export default defineComponent({
] ]
}) })
const steps = ref(['发现', '立案', '派遣', '处置', '核查', '结案']) const steps = ref(['发现', '立案', '派遣', '处置', '核查', '结案'])
const getCurrent = (status: string): number => {
if (!status) return 0
if (status.includes('受理')) return 1
if (status.includes('结')) return 5
if (status.includes('检查')) return 4
const index = steps.value.indexOf(status.split('').slice(1).join(''))
return index < 0 ? 0 : index
}
return { return {
summary, summary,
showChart, showChart,
...@@ -256,6 +263,7 @@ export default defineComponent({ ...@@ -256,6 +263,7 @@ export default defineComponent({
searchKey, searchKey,
trackEvent, trackEvent,
workstationKind, workstationKind,
getCurrent,
} }
}, },
}) })
......
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, computed, nextTick } from 'vue' import { defineComponent, ref, computed } from 'vue'
import img1 from '@/assets/images/img1.png' import img1 from '@/assets/images/img1.png'
import img2 from '@/assets/images/img2.png' import img2 from '@/assets/images/img2.png'
import img3 from '@/assets/images/img3.png' import img3 from '@/assets/images/img3.png'
...@@ -138,11 +138,12 @@ export default defineComponent({ ...@@ -138,11 +138,12 @@ export default defineComponent({
const photos2 = computed(() => const photos2 = computed(() =>
photosList.value.filter((e) => e.buildingType.includes('文保')) photosList.value.filter((e) => e.buildingType.includes('文保'))
) )
const getPoints = async (name: string) => { const getPoints = (name: string) => {
store.dispatch('getEcologyPoints', name)
// TODO 撒点 // TODO 撒点
await nextTick() console.log(
console.log(`生态—${name}点位信息:`, store.state.ecologyPoints) `生态—${name}点位信息:`,
store.state.ecologyPoints.filter((e) => e.labelName === name)
)
} }
return { return {
ecologyList, ecologyList,
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<m-sub2>重点关注楼宇</m-sub2> <m-sub2>重点关注楼宇</m-sub2>
<a class="check-btn" @click="listModal = true">查看清单>></a> <a class="check-btn" @click="listModal = true">查看清单>></a>
<div class="content"> <div class="content">
<div v-for="item in buildings.slice(0, 9)" :key="item.id"> <div v-for="item in buildings" :key="item.id">
<div> <div>
<span>{{ item.projectName }}</span> <span>{{ item.projectName }}</span>
<img src="@/assets/images/location.png" /> <img src="@/assets/images/location.png" />
...@@ -105,7 +105,6 @@ export default defineComponent({ ...@@ -105,7 +105,6 @@ export default defineComponent({
const listModal = ref(false) const listModal = ref(false)
const SOSMaterail = computed(() => store.state.pubulicSafeSOSMaterail) const SOSMaterail = computed(() => store.state.pubulicSafeSOSMaterail)
const pieData = computed(() => store.state.pubulicSafePieData) const pieData = computed(() => store.state.pubulicSafePieData)
const buildings = computed(() => store.state.pubulicSafeBuildings)
const outHouseWall = computed(() => store.state.pubulicSafeOutHouseWall) const outHouseWall = computed(() => store.state.pubulicSafeOutHouseWall)
const year = ref('2020') //年份 const year = ref('2020') //年份
...@@ -116,6 +115,11 @@ export default defineComponent({ ...@@ -116,6 +115,11 @@ export default defineComponent({
{ name: '危险点数', value: 0 }, { name: '危险点数', value: 0 },
]) ])
const buildings = computed(() => {
const data = store.state.pubulicSafeBuildings
return data.filter((e) => e.year === year.value)
})
//切换年份 //切换年份
const changeYear = (value: string) => { const changeYear = (value: string) => {
year.value = value year.value = value
...@@ -158,7 +162,7 @@ export default defineComponent({ ...@@ -158,7 +162,7 @@ export default defineComponent({
]) ])
watch( watch(
// 监听年份切更改检查楼数 隐患点数 危险点数 // 监听年份切更改检查楼数 隐患点数 危险点数
[() => outHouseWall.value, () => year.value], [() => outHouseWall.value, () => year.value],
([data, year]) => { ([data, year]) => {
if (data.length === 0) return if (data.length === 0) return
...@@ -326,12 +330,14 @@ export default defineComponent({ ...@@ -326,12 +330,14 @@ export default defineComponent({
transform translateY(14%) transform translateY(14%)
.content .content
display flex display flex
justify-content space-around
flex-wrap wrap flex-wrap wrap
overflow-y auto
max-height 27vh
>div >div
width 31% width 31%
padding .05rem .08rem padding .05rem .08rem
margin-top .08rem margin-top .08rem
margin-right .06rem
border-radius .03rem border-radius .03rem
background linear-gradient(to right bottom, rgba(124,139,154,.3), rgba(70,83,97,.3)) background linear-gradient(to right bottom, rgba(124,139,154,.3), rgba(70,83,97,.3))
box-shadow 0 0 .4rem 0 rgba(45,51,66,.5) box-shadow 0 0 .4rem 0 rgba(45,51,66,.5)
...@@ -345,6 +351,9 @@ export default defineComponent({ ...@@ -345,6 +351,9 @@ export default defineComponent({
img img
width 0.1rem width 0.1rem
height @width height @width
cursor pointer
&:hover
transform scale(1.2)
.secRow .secRow
>span >span
display flex display flex
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment