326 lines
9.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<route lang="json5" type="home">
{
style: {
navigationStyle: 'custom',
navigationBarTitleText: '首页',
disableScroll: true
}
}
</route>
<template>
<view
:style="{ background: `linear-gradient(to bottom, ${color}, #f3f5fa)` }"
class="h-50 pos-absolute w-full z-0 top-0"
></view>
<view v-if="systemInfo" :style="{ marginTop: systemInfo.safeAreaInsets?.top + 'px' }">
<view v-if="$user.loginStatus">
<view class="pos-relative h-12 pt-1 flex flex-items-center mx-4 custom-color-black">
<view @click="teamDialog" class="flex flex-items-center">
<view>19104656的互联</view>
<image class="w-2 h-2 ml-1.5" src="/static/images/icon_triangle.png"></image>
</view>
<image class="w-5 h-5 ml-a" src="/static/images/icon_setting.webp"></image>
<wd-icon class="ml-5" name="add-circle1" size="22px"></wd-icon>
</view>
<view
class="pos-relative h-8 mt-3 flex flex-items-center text-3.5 bg-[#fdefdf] mx-4 px-2 rounded-2 color-[#ea8720] shadow-sm"
>
<view>系统通知未开启报警消息无法通知</view>
<view class="bg-white px-1 text-3 py-0.5 ml-a rounded-1 mr-3">去开启</view>
<wd-icon name="close" size="14px" color="#ea8720" class="pr-2 py-1"></wd-icon>
</view>
<scroll-view
class="mt-2"
:scroll-y="true"
:style="{
height: systemInfo.safeArea?.height - 104 + 'px'
}"
>
<view class="py-3">
<HomeSwiper @colorChange="colorChange"></HomeSwiper>
<HomeBulletin class="my-2"></HomeBulletin>
<HomeTodo class="my-2"></HomeTodo>
<CustomTab :list="featuresList" @clickItem="clickItem"></CustomTab>
<HomeOpenDoor class="my-2"></HomeOpenDoor>
<HomeAttendance class="my-2"></HomeAttendance>
<HomeTeamManager class="my-2"></HomeTeamManager>
<HomeAddDevice class="my-2"></HomeAddDevice>
<HomeAddTeamManager class="my-2"></HomeAddTeamManager>
<HomeSetting class="my-2"></HomeSetting>
<button class="mt-10" @click="$user.logout()">退出登录</button>
</view>
</scroll-view>
</view>
</view>
<TeamPopup ref="teamPopup"></TeamPopup>
</template>
<script lang="ts" setup>
import CustomTab from '@/pages/home/HomeTab.vue'
import { useBasicStore, useUserStore } from '@/store'
import { Result } from '@/constants/result'
import { HomeTab } from '@/typings'
import HomeSwiper from '@/pages/home/HomeSwiper.vue'
import HomeBulletin from '@/pages/home/HomeBulletin.vue'
import HomeTodo from '@/pages/home/HomeTodo.vue'
import HomeOpenDoor from '@/pages/home/HomeOpenDoor.vue'
import HomeAttendance from '@/pages/home/HomeAttendance.vue'
import HomeTeamManager from '@/pages/home/HomeTeamManager.vue'
import HomeSetting from '@/pages/home/HomeSetting.vue'
import HomeAddDevice from '@/pages/home/HomeAddDevice.vue'
import HomeAddTeamManager from '@/pages/home/HomeAddTeamManager.vue'
import TeamPopup from '@/components/TeamPopup/TeamPopup.vue'
const $user = useUserStore()
const $basic = useBasicStore()
const systemInfo = ref(null)
const color = ref<string>('#bfcbef')
const teamPopup = ref(null)
const featuresList = ref<Array<HomeTab>>([
{
name: '视频',
list: [
{
id: 221,
icon: 'https://file.hikmall.com/prod/image/e75144eac8984ee198ef533c2f9d3558.png',
name: '视频中心'
},
{
id: 396,
icon: 'https://file.hikmall.com/prod/image/cf46656ec73b404891e2b46b57ff5fc2.png',
name: '智能巡检'
},
{
id: 6405,
icon: 'https://file.hikmall.com/prod/image/0526d084da4a49579f832dd4588dcb16.png',
name: '录像智搜'
},
{
id: 403,
icon: 'https://file.hikmall.com/prod/image/7ea5f88d404442eeb958fbe0904777d1.png',
name: '智能分析'
},
{
id: 354,
icon: 'https://file.hikmall.com/prod/image/2887bb1c453244a2a872ec98c0360478.png',
name: '人员抓拍'
},
{
id: 357,
icon: 'https://file.hikmall.com/prod/image/e6860e8e5cc64369accadae5347fb0c1.png',
name: '车辆管理'
}
]
},
{
name: '人员通行',
list: [
{
id: 106,
icon: 'https://file.hikmall.com/prod/image/635392a7f5e04e75bb657b6cc6e2abc8.png',
name: '通行权限'
},
{
id: 230,
icon: 'https://file.hikmall.com/prod/image/d1d07b3125f841848c3c3eb94509b2ae.png',
name: '门禁控制'
},
{
id: 302,
icon: 'https://file.hikmall.com/prod/image/885eb6ac104e4a76941e67eb738142ec.png',
name: '一键开门'
},
{
id: 400,
icon: 'https://file.hikmall.com/prod/image/701d5a7031fa4b4290838c4562f99a0b.png',
name: '密码开门'
},
{
id: 299,
icon: 'https://file.hikmall.com/prod/image/771a717eb8d74f5bba71db68c9605a0f.png',
name: '通行记录'
},
{
id: 387,
icon: 'https://file.hikmall.com/prod/image/9752516f054342d3ac310a0fdb32b654.png',
name: '访客管理'
},
{
id: 399,
icon: 'https://file.hikmall.com/prod/image/4dbe971d6fac465cb4fed956defd678c.png',
name: '我的访客'
},
{
id: 388,
icon: 'https://file.hikmall.com/prod/image/624a69276df1480088661e20cbc0e189.png',
name: '访客邀约'
}
]
},
{
name: '考勤',
list: [
{
id: 382,
icon: 'https://file.hikmall.com/prod/image/9e2b6e95c2904540a9a3dc675d25cc13.png',
name: '考勤设置',
url: '/pages/attendance/attendance'
},
{
id: 383,
icon: 'https://file.hikmall.com/prod/image/6cea7ba6b3b34464998bb501a609f3a9.png',
name: '考勤统计'
},
{
id: 381,
icon: 'https://file.hikmall.com/prod/image/60c64c6c80a9429fa8d084506cd2f021.png',
name: '我的考勤'
},
{
id: 384,
icon: 'https://file.hikmall.com/prod/image/116e1ea563474601ac075ac5bb312963.png',
name: '手机打卡'
},
{
id: -249155,
icon: 'https://file.hikmall.com/prod/image/3e56cfb5cfae4bd285d6f55e51e1ce23.png',
name: '请假'
},
{
id: -249156,
icon: 'https://file.hikmall.com/prod/image/7d2d7c5e1e7241eba1bc7848116a75cb.png',
name: '补卡'
},
{
id: -249157,
icon: 'https://file.hikmall.com/prod/image/e007c441df1c4ab19ca6bb31ccad24e8.png',
name: '出差'
},
{
id: -249158,
icon: 'https://file.hikmall.com/prod/image/90faf8728c6846da9d09f3db0739558d.png',
name: '外出'
}
]
},
{
name: '审批',
list: [
{
id: 386,
icon: 'https://file.hikmall.com/prod/image/c5a56acf8efe47d78fc0107552c98bf8.png',
url: '/pages/approval/approval?index=0',
name: '发起审批'
},
{
id: 385,
icon: 'https://file.hikmall.com/prod/image/6b946ba258234cdc8d447631b07939c3.png',
url: '/pages/approval/approval?index=1',
name: '审批记录'
}
]
},
{
name: '可视对讲',
list: [
{
id: 391,
icon: 'https://file.hikmall.com/prod/image/4373b28a83a84c828b0150794ac2e402.png',
name: '对讲设备'
},
{
id: 390,
icon: 'https://file.hikmall.com/prod/image/8efa2ddbc0e94a75b761b0d23097e1d1.png',
name: '呼叫关系'
},
{
id: 389,
icon: 'https://file.hikmall.com/prod/image/fa2073388a54462ba7badb9904b58396.png',
name: '呼叫提醒'
}
]
},
{
name: '信息发布',
list: [
{
id: 374,
icon: 'https://file.hikmall.com/prod/image/e5fa04e5ccdc498dbc4d912074f38e35.png',
name: '广播'
},
{
id: 309,
icon: 'https://file.hikmall.com/prod/image/0706b7ff1e044928872839c61be74d54.png',
name: '公告',
url: '/pages/info-publish/notice-manage'
},
{
id: 6093,
icon: 'https://file.hikmall.com/prod/image/8ed90fc35e3840e782d73676efcc9a30.png',
name: '信息发布',
url: '/pages/info-publish/info-publish'
}
]
},
{
name: '基础应用',
list: [
{
id: 90,
icon: 'https://file.hikmall.com/prod/image/d43b79c5f41543fca44cd21ba84d9c02.png',
name: '人员管理'
},
{
id: 310,
icon: 'https://file.hikmall.com/prod/image/597b0cb3ddf849788b6c5e7727001690.png',
name: '团队二维码'
},
{
id: 293,
icon: 'https://file.hikmall.com/prod/image/6ecf9e7c946945a5a1efd07c5e8db320.png',
name: '设备管理'
}
]
}
])
onMounted(async () => {
systemInfo.value = await $basic.getSystemInfo()
const tokenStorage: string = uni.getStorageSync('token')
if (tokenStorage) {
const result: Result = await $user.getUserInfo()
if (result.code === Result.Success.code) {
console.log('获取用户信息成功')
} else {
await uni.showToast({
title: result.message,
icon: 'none'
})
}
} else {
uni.navigateTo({
url: '/pages/login/login'
})
}
})
const teamDialog = () => {
teamPopup.value.showModal()
}
const colorChange = data => {
color.value = data
}
const clickItem = item => {
console.log(item)
uni.navigateTo({
url: item.url
})
}
</script>