<template>
    <Cn-page :loading="loading" noPadding>
        <view slot="body">
            <view class="index">
                <!-- 运维 -->
                <YunWei v-if="userInfo.role == 1" :store="store" :projectList="projectList" :projectType="projectType" />
                <!-- 专职 -->
                <ZhuanZhi v-if="userInfo.role == 2" :store="store" :projectList="projectList" :projectType="projectType" />
                <!-- 工程 -->
                <GongCheng
                    v-if="userInfo.role == 3"
                    :store="store"
                    :gcList="gcList"
                    :projectList="projectList"
                    :projectType="projectType"
                />
                <!-- 主用户 -->
                <ZhuYongHu v-if="userInfo.role == 4" :store="store" :projectList="projectList" :projectType="projectType" />
                <!-- 子用户 -->
                <ZiYongHu v-if="userInfo.role == 5" :store="store" :projectList="projectList" :projectType="projectType" />
                <YouKe v-if="userInfo.role == 6"> </YouKe>
                <uni-fab ref="fab" direction="vertical" horizontal="right" vertical="bottom" :content="content" @trigger="trigger" />
            </view>
        </view>
    </Cn-page>
</template>
<script>
import YunWei from './comp/indexYunWei.vue'
import GongCheng from './comp/indexGongCheng.vue'
import ZhuYongHu from './comp/indexZhuYongHu.vue'
import ZiYongHu from './comp/indexZiYongHu.vue'
import ZhuanZhi from './comp/indexZhuanZhi.vue'
import YouKe from './comp/indexYouKe.vue'
import list from '../../common/js/list'
import { getProjectList } from '../../common/api/project'
import { queryDictData } from '../../common/api/dictionary'
import { queryEngineering } from '@/common/api/gc.js'

export default {
    mixins: [list],
    components: {
        YunWei,
        GongCheng,
        ZhuYongHu,
        ZiYongHu,
        ZhuanZhi,
        YouKe,
    },
    data() {
        return {
            loading: true,
            userInfo: {
                role: 4,
            },
            projectList: [],
            gcList: [],
            projectType: [
                {
                    text: '全部类型',
                    value: 0,
                },
                {
                    text: '监测',
                    value: 1,
                },
                {
                    text: '用能',
                    value: 2,
                },
                {
                    text: '环境',
                    value: 3,
                },
                {
                    text: '安防',
                    value: 4,
                },
                {
                    text: '其他',
                    value: 5,
                },
            ],
        }
    },
    computed: {
        content() {
            let arr = [1, 3, 4]
            let content = [
                {
                    iconPath: '/static/mine3.png',
                    text: '运维管理',
                },
                {
                    iconPath: '/static/mine3.png',
                    text: '专职管理',
                },
                {
                    iconPath: '/static/mine3.png',
                    text: '工程',
                },
                {
                    iconPath: '/static/mine3.png',
                    text: '主用户',
                },
                {
                    iconPath: '/static/mine3.png',
                    text: '子用户',
                },
                {
                    iconPath: '/static/mine3.png',
                    text: '游客',
                },
            ]
            return content
        },
    },
    methods: {
        send() {
            uni.createPushMessage({
                title: '灿能',
                content: '灿能推送',
                success: function (res) {
                    console.log('推送成功')
                },
                fail: function (res) {
                    console.log('推送失败')
                },
            })
        },

        trigger(e) {
            if (e.index === 500) {
                uni.navigateTo({
                    url: '/pages/device/new',
                })
            } else {
                this.userInfo.role = e.index + 1
                uni.setStorageSync('userInfo', {
                    role: e.index + 1,
                })
                let roleName = ''
                switch (e.index + 1) {
                    case 1:
                        roleName = '运维管理'
                        uni.removeTabBarBadge({
                            index: 1,
                        })
                        break
                    case 2:
                        roleName = '专职管理'
                        uni.removeTabBarBadge({
                            index: 1,
                        })
                        break
                    case 3:
                        roleName = '工程'
                        uni.removeTabBarBadge({
                            index: 1,
                        })
                        break
                    case 4:
                        roleName = '主用户'
                        uni.setTabBarBadge({
                            index: 1,
                            text: '6',
                        })
                        break
                    case 5:
                        roleName = '子用户'
                        uni.setTabBarBadge({
                            index: 1,
                            text: '6',
                        })
                        break
                    case 6:
                        roleName = '游客'
                        uni.setTabBarBadge({
                            index: 1,
                            text: '6',
                        })
                        break
                }
                this.$util.toast(roleName + '角色切换成功')
            }
            this.$refs.fab.close()
        },
        init() {
            this.store = this.DataSource('/EquipmentDelivery/queryEquipmentByProject')
            this.store.reload()
            this.store.firstCallBack = () => {
                this.loading = false
                console.log(this.store)
            }
        },
        getProjectList() {
            getProjectList({
                currentPage: 1,
                pageSize: 9999,
            }).then((res) => {
                console.log(res)
                let arr = [
                    {
                        text: '全部项目',
                        value: '-1',
                    },
                    ...res.data.records.map((item) => {
                        return {
                            text: item.name,
                            value: item.id,
                        }
                    }),
                ]
                arr.forEach((item) => {
                    if (this.projectList.findIndex((item2) => item2.value == item.value) === -1) {
                        this.projectList.push(item)
                    }
                })
            })
        },
        getGcList() {
            queryEngineering().then((res) => {
                this.gcList = res.data
            })
        },
        queryDictData() {
            queryDictData('项目类型').then((res) => {
                this.projectType = [
                    {
                        text: '全部类型',
                        value: '',
                    },
                    ...res.data.map((item) => {
                        return {
                            text: item.anotherName,
                            value: item.id,
                        }
                    }),
                ]
            })
        },
    },
    onLoad() {
        this.init()
    },
    onShow() {
        this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
        if (!this.userInfo) {
            this.userInfo = {
                role: 4,
            }
            uni.setStorageSync('userInfo', {
                role: 4,
                id: 1,
            })
        }
        if (this.userInfo.role == 4 || this.userInfo.role == 5 || this.userInfo.role == 6) {
            uni.setTabBarBadge({
                index: 1,
                text: '6',
            })
        }
        this.getProjectList()
        if (this.userInfo.role == 3) {
            this.getGcList()
        }
    },
}
</script>
<style lang="scss">
.index {
    padding: 34rpx 0 0;
}

/deep/ .uni-card {
    background: $uni-theme-white;
}
</style>
