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

优化

parent 505cfdf2
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted, PropType, watchEffect } from 'vue' import { defineComponent, onMounted, PropType, watchEffect } from 'vue'
import { use } from 'echarts/core' import { use } from 'echarts/core'
import { LineChart, BarChart } from 'echarts/charts' import { LineChart, BarChart, PictorialBarChart } from 'echarts/charts'
use([LineChart, BarChart]) use([LineChart, BarChart, PictorialBarChart])
import useChartGenerate from './useChartGenerate' import useChartGenerate from './useChartGenerate'
import { BarOption, DatasetComponentOption } from './types' import { BarOption, DatasetComponentOption } from './types'
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, PropType } from 'vue' import { defineComponent, PropType } from 'vue'
import img from '@/assets/images/no-data.png' import defaultImg from '@/assets/images/no-data.png'
export default defineComponent({ export default defineComponent({
name: 'MyEmpty', name: 'MyEmpty',
...@@ -20,7 +20,7 @@ export default defineComponent({ ...@@ -20,7 +20,7 @@ export default defineComponent({
}, },
img: { img: {
type: String as PropType<string>, type: String as PropType<string>,
default: () => img, default: () => defaultImg,
}, },
hiddenText: { hiddenText: {
type: Boolean as PropType<boolean>, type: Boolean as PropType<boolean>,
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, onMounted, PropType, ref } from 'vue' import { computed, defineComponent, onBeforeUnmount, onMounted, PropType, ref } from 'vue'
import MonitorCount from '../MyCount/my-count.vue' import MonitorCount from '../MyCount/my-count.vue'
export interface ProgressProps { export interface ProgressProps {
...@@ -68,11 +68,16 @@ export default defineComponent({ ...@@ -68,11 +68,16 @@ export default defineComponent({
return { background: props.color } return { background: props.color }
}) })
const percent = ref(0) const percent = ref(0)
const timer = ref<any>(null)
onMounted(() => { onMounted(() => {
setTimeout(() => { timer.value = setTimeout(() => {
percent.value = props.value > 100 ? 100 : props.value percent.value = props.value > 100 ? 100 : props.value
}, 500) }, 500)
}) })
onBeforeUnmount(() => {
clearTimeout(timer.value)
timer.value = null
})
return { return {
barColor, barColor,
bgColor, bgColor,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, nextTick, PropType, ref, watch } from 'vue' import { defineComponent, PropType, ref, watch } from 'vue'
import empty from '@/assets/images/empty.png' import empty from '@/assets/images/empty.png'
import { ajax, api } from '@/ajax' import { ajax, api } from '@/ajax'
import store from '@/store' import store from '@/store'
...@@ -47,18 +47,16 @@ export default defineComponent({ ...@@ -47,18 +47,16 @@ export default defineComponent({
emits: ['select'], emits: ['select'],
setup(props, ctx) { setup(props, ctx) {
const handleClick = (data: unknown) => { const handleClick = (data: unknown) => {
console.log(data)
ctx.emit('select', data) ctx.emit('select', data)
} }
const data = ref<any>([]) const data = ref<any>([])
watch( watch(
() => props.list, () => props.list,
async (content) => { async (content) => {
if (content && content.length > 0) {
store.commit('SET_LOADING', true) store.commit('SET_LOADING', true)
if (content && content.length > 0) {
const res = await Promise.all( const res = await Promise.all(
content.map(async (item: any) => { content.map((item: any) => {
return ajax.get({ return ajax.get({
url: api.GET_PERSON, url: api.GET_PERSON,
params: { pageSize: 100, liveAddr_l: item.addr }, params: { pageSize: 100, liveAddr_l: item.addr },
...@@ -68,16 +66,15 @@ export default defineComponent({ ...@@ -68,16 +66,15 @@ export default defineComponent({
) )
if (res && res.length > 0) { if (res && res.length > 0) {
content.forEach((item: any, index: number) => { content.forEach((item: any, index: number) => {
item.personInfo = item.personInfo = res[index]?.data?.content || []
(res[index] && res[index].data && res[index].data.content) || {}
}) })
data.value = content data.value = content
} }
}
await nextTick()
store.commit('SET_LOADING', false) store.commit('SET_LOADING', false)
}, } else {
{ immediate: true } data.value = []
}
}
) )
const persons = (data: any) => { const persons = (data: any) => {
const { personInfo } = data const { personInfo } = data
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<CommunityList :list="list" select-able @select="handleSelect" /> <CommunityList :list="list" select-able @select="handleSelect" />
</template> </template>
</template> </template>
<m-empty v-else /> <m-empty v-else :img="empty" hidden-text />
</div> </div>
<m-drawer v-model="caseModal"> <m-drawer v-model="caseModal">
<CaseDrawer <CaseDrawer
...@@ -66,6 +66,7 @@ import { ajax, api } from '@/ajax' ...@@ -66,6 +66,7 @@ import { ajax, api } from '@/ajax'
import CaseList from './case-list.vue' import CaseList from './case-list.vue'
import PersonList from './person-list.vue' import PersonList from './person-list.vue'
import CommunityList from './community-list.vue' import CommunityList from './community-list.vue'
import empty from '@/assets/images/empty.png'
export default defineComponent({ export default defineComponent({
name: 'SearchView', name: 'SearchView',
...@@ -335,6 +336,7 @@ export default defineComponent({ ...@@ -335,6 +336,7 @@ export default defineComponent({
caseInfo, caseInfo,
buildingInfo, buildingInfo,
roomInfo, roomInfo,
empty,
} }
}, },
}) })
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</div> </div>
</div> </div>
<div v-else style="height: 30vh"> <div v-else style="height: 30vh">
<m-empty /> <m-empty :img="empty" hidden-text />
</div> </div>
</template> </template>
</template> </template>
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
]" ]"
:data="communityInfo.hocInfo.memberList" :data="communityInfo.hocInfo.memberList"
/> />
<m-empty v-else /> <m-empty v-else :img="empty" hidden-text />
</template> </template>
<template v-else-if="curTab === 'device'"> <template v-else-if="curTab === 'device'">
<div class="select-bar"> <div class="select-bar">
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
:data="deviceList" :data="deviceList"
/> />
</div> </div>
<m-empty v-else /> <m-empty v-else :img="empty" hidden-text />
</template> </template>
<template v-else-if="curTab === 'public'"> <template v-else-if="curTab === 'public'">
<div class="select-bar"> <div class="select-bar">
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
:data="publicList" :data="publicList"
/> --> /> -->
</div> </div>
<m-empty v-else /> <m-empty v-else :img="empty" hidden-text />
</template> </template>
</m-card> </m-card>
</div> </div>
...@@ -196,6 +196,7 @@ import SubTabs from '../components/sub-tabs.vue' ...@@ -196,6 +196,7 @@ import SubTabs from '../components/sub-tabs.vue'
import SubTitle from '../components/sub-title.vue' import SubTitle from '../components/sub-title.vue'
import CaseList from '../components/case-list.vue' import CaseList from '../components/case-list.vue'
import { ajax, api } from '@/ajax' import { ajax, api } from '@/ajax'
import empty from '@/assets/images/empty.png'
export default defineComponent({ export default defineComponent({
name: 'CommunityDrawer', name: 'CommunityDrawer',
...@@ -389,6 +390,7 @@ export default defineComponent({ ...@@ -389,6 +390,7 @@ export default defineComponent({
publicOptions, publicOptions,
curSubtabKey, curSubtabKey,
formatter, formatter,
empty,
} }
}, },
}) })
......
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
</div> </div>
</div> </div>
<div v-else style="height: 30vh"> <div v-else style="height: 30vh">
<m-empty /> <m-empty :img="empty" hidden-text />
</div> </div>
</template> </template>
</template> </template>
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
]" ]"
:data="communityInfo.hocInfo.memberList" :data="communityInfo.hocInfo.memberList"
/> />
<m-empty v-else /> <m-empty v-else :img="empty" hidden-text />
</template> </template>
<template v-else-if="curTab2 === 'device'"> <template v-else-if="curTab2 === 'device'">
<div class="select-bar"> <div class="select-bar">
...@@ -160,7 +160,7 @@ ...@@ -160,7 +160,7 @@
:data="deviceList" :data="deviceList"
/> />
</div> </div>
<m-empty v-else /> <m-empty v-else :img="empty" hidden-text />
</template> </template>
<template v-else-if="curTab2 === 'public'"> <template v-else-if="curTab2 === 'public'">
<div class="select-bar"> <div class="select-bar">
...@@ -215,7 +215,7 @@ ...@@ -215,7 +215,7 @@
:data="publicList" :data="publicList"
/> --> /> -->
</div> </div>
<m-empty v-else /> <m-empty v-else :img="empty" hidden-text />
</template> </template>
</template> </template>
<template v-else> <template v-else>
...@@ -275,6 +275,7 @@ import SubTabs from '../components/sub-tabs.vue' ...@@ -275,6 +275,7 @@ import SubTabs from '../components/sub-tabs.vue'
import SubTitle from '../components/sub-title.vue' import SubTitle from '../components/sub-title.vue'
import CaseList from '../components/case-list.vue' import CaseList from '../components/case-list.vue'
import { ajax, api } from '@/ajax' import { ajax, api } from '@/ajax'
import empty from '@/assets/images/empty.png'
export default defineComponent({ export default defineComponent({
name: 'PopulationDrawer', name: 'PopulationDrawer',
...@@ -526,6 +527,7 @@ export default defineComponent({ ...@@ -526,6 +527,7 @@ export default defineComponent({
publicOptions, publicOptions,
curSubtabKey, curSubtabKey,
formatter, formatter,
empty,
} }
}, },
}) })
......
This diff is collapsed.
...@@ -9,13 +9,13 @@ import { ...@@ -9,13 +9,13 @@ import {
defineComponent, defineComponent,
watch, watch,
computed, computed,
ref, shallowRef,
onMounted, onMounted,
PropType, PropType,
nextTick, nextTick,
onBeforeUnmount, onBeforeUnmount,
} from 'vue' } from 'vue'
import * as echarts from 'echarts' import { init as initChart, ECharts } from 'echarts/core'
import 'echarts-wordcloud' import 'echarts-wordcloud'
export default defineComponent({ export default defineComponent({
...@@ -83,19 +83,12 @@ export default defineComponent({ ...@@ -83,19 +83,12 @@ export default defineComponent({
}, },
}, },
setup(props) { setup(props) {
const cloudRef = ref<HTMLElement | null>(null)
const sizeRate = computed(() => Math.floor((screen.height * 1.6) / 100)) const sizeRate = computed(() => Math.floor((screen.height * 1.6) / 100))
onMounted(() => { const cloudRef = shallowRef<HTMLElement | null>(null)
window.addEventListener('resize', init) const myChart = shallowRef<ECharts | null>(null)
window.addEventListener('orientationchange', init)
})
onBeforeUnmount(() => {
window.removeEventListener('resize', init)
window.removeEventListener('orientationchange', init)
})
const init = () => { const init = () => {
if (!cloudRef.value) return if (!cloudRef.value) return
const myChart = echarts.init(cloudRef.value) myChart.value = initChart(cloudRef.value)
const option = { const option = {
tooltip: { tooltip: {
show: false, show: false,
...@@ -124,10 +117,22 @@ export default defineComponent({ ...@@ -124,10 +117,22 @@ export default defineComponent({
], ],
} }
// 使用刚指定的配置项和数据显示图表。 // 使用刚指定的配置项和数据显示图表。
myChart.setOption(option) myChart.value.setOption(option)
myChart.resize() myChart.value.resize()
} }
onMounted(() => {
window.addEventListener('resize', init)
window.addEventListener('orientationchange', init)
})
onBeforeUnmount(() => {
window.removeEventListener('resize', init)
window.removeEventListener('orientationchange', init)
if (!myChart.value) return
myChart.value.dispose()
myChart.value = null
})
watch( watch(
() => props.show, () => props.show,
async (type) => { async (type) => {
......
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