306 lines
7.9 KiB
Vue

<template>
<view class="safeIndex">
<view class="fixedheader">
<headers :themeType="true" :showBack="true">
<view class="headerName">
安全管理系统
</view>
<div class="header-btn" v-if="COMPANY != 'longguang'">
<uni-icons2 type="scan" color="#fff" size="20" @click="qrCode"></uni-icons2>
</div>
</headers>
</view>
<scroll-view class="smallHeight" :style="{ 'padding-top': ((statusBarHeight * 2) + 45) * 1.5 + 'rpx' }" scroll-y>
<view class="safe-statistics">
<view class="statistics-list flex">
<view class="statistics-item b-right">
<text>{{overdueNotCloseNum}}</text>
超期未销项重大隐患
</view>
<view class="statistics-item">
<text>{{notCloseNum}}</text>
未销项重大隐患
</view>
</view>
</view>
<view class="moudle-box">
<view class="moudle-title">我的待办</view>
<view class="moudle-list flex">
<!-- <view class="moudle-item flex" :class="{'m-right': (index+1)%3 != 0}" v-for="(item,index) in 4" :key="index">
<uni-icons2 class="moudle-icon" type="image" size="30"></uni-icons2>
<text>隐患排查{{index}}</text>
</view> -->
<view class="moudle-item flex m-right" @click="jumpPage(1)">
<image class="moudle-icon" src="/static/safeMange/danger_examine.png"></image>
<text>隐患排查</text>
</view>
<view class="moudle-item flex m-right" @click="jumpPage(2)">
<image class="moudle-icon" src="/static/safeMange/danger_library2.png"></image>
<text>待整改</text>
</view>
<view class="moudle-item flex" @click="jumpPage(3)">
<image class="moudle-icon" src="/static/safeMange/danger_review.png"></image>
<text>待复核</text>
</view>
</view>
</view>
<view class="moudle-box moudle-box2">
<view class="moudle-title">常用模块</view>
<!-- <view class="moudle-list flex">
<view class="moudle-item flex" :class="{'m-right': (index+1)%3 != 0}" v-for="(item,index) in 4" :key="index">
<uni-icons2 class="moudle-icon" type="image" size="30"></uni-icons2>
<text>隐患排查{{index}}</text>
</view>
</view> -->
<view class="moudle-list flex">
<!-- <view class="moudle-item flex m-right"> -->
<!-- <uni-icons2 class="moudle-icon" type="image" size="30"></uni-icons2> -->
<!-- <image class="moudle-icon" src="../../../static/safeMange/danger_library.png"></image>
<text>隐患库</text>
</view> -->
<view class="moudle-item flex m-right" @click="jumpPage(4)" v-if="COMPANY != 'sanjiang'">
<image class="moudle-icon" src="/static/safeMange/project_examine.png"></image>
<text>项目自检</text>
</view>
<view class="moudle-item flex m-right" @click="jumpPage(5)">
<image class="moudle-icon" src="/static/safeMange/danger_list.png"></image>
<text>检查台账</text>
</view>
<view class="moudle-item flex" @click="jumpPage(8)" v-if="COMPANY != 'sanjiang'">
<image class="moudle-icon" src="/static/safeMange/danger_project.png"></image>
<text>危大工程</text>
</view>
<!-- <view class="moudle-item flex" @click="jumpPage(7)" v-if="COMPANY != 'sanjiang'">
<image class="moudle-icon" src="/static/safeMange/danger_check.png"></image>
<text>危大验收</text>
</view> -->
<!-- <view class="moudle-item flex" @click="jumpPage(6)">
<image class="moudle-icon" src="/static/safeMange/enterprise_examine.png"></image>
<text>企业检查</text>
</view> -->
</view>
</view>
</scroll-view>
<levitatedsphere :x="100" :y="80"></levitatedsphere>
</view>
</template>
<script>
import levitatedsphere from "@/components/levitatedsphere/levitatedsphere.vue"
import headers from '../../../components/headers/headers.vue'
export default{
data(){
return{
statusBarHeight: 0,
userId: "",
overdueNotCloseNum: "",
notCloseNum: "",
styleType:'',
}
},
onShow(){
this.statusBarHeight = uni.getStorageSync('systemInfo').statusBarHeight;
this.userId = JSON.parse(uni.getStorageSync('userInfo')).userId;
this.styleType=JSON.parse(uni.getStorageSync('userInfo')).styleType
this.queryStatisticsNum()
},
methods:{
jumpPage(val){
if(val == 1){
if(uni.getStorageSync('dangerData')){
uni.removeStorageSync('dangerData');
}
if(uni.getStorageSync('detailData')){
uni.removeStorageSync('detailData');
}
uni.navigateTo({
url: "./addExamine?type=1"
})
} else if(val == 2){
uni.navigateTo({
url: "./dangerList?type=1"
})
} else if(val == 3){
uni.navigateTo({
url: "./dangerList?type=2"
})
} else if(val == 4){
uni.navigateTo({
url: "./projectList"
})
} else if(val == 5){
uni.navigateTo({
url: "./dangerList?type=3"
})
} else if(val == 7){
// uni.navigateTo({
// url:'../dangerBigProject/dangerBigCheckList'
// })
uni.navigateTo({
url:'../dangerBigProject/backlogList'
})
} else if(val == 8){
uni.navigateTo({
url:'../dangerBigProject/index'
})
}
},
queryStatisticsNum(){
let data = {
userId: this.userId
}
let _this = this
this.sendRequest({
url: 'xmgl/hiddenDangerInspectRecord/selectUserInspectRecordCount',
method: 'post',
data: data,
success: (res) => {
this.overdueNotCloseNum = res.result.overdueNotCloseNum
this.notCloseNum = res.result.notCloseNum
console.log(res.result)
}
})
},
qrCode(){
console.log(1)
uni.scanCode({
onlyFromCamera: true,
success: function (res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
if(res.result){
if(JSON.parse(res.result).type == 'wdgc'){
uni.navigateTo({
url: '../dangerBigProject/details?id=' + JSON.parse(res.result).id
})
}
console.log(JSON.parse(res.result).id)
}
}
});
}
}
}
</script>
<style lang="scss" scoped>
.safeIndex{
height: 100%;
font-size: 28rpx;
.fixedheader{
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 2;
.headerName{
z-index: 1;
}
}
.header-btn{
position: absolute;
top: 0;
right: 20rpx;
font-size: 24rpx;
line-height: 88rpx;
z-index: 2;
}
.smallHeight{
// height: calc(100% - 45px);
height: 100%;
box-sizing: border-box;
background: #F6F6F6;
}
.flex{
display: flex;
}
.safe-statistics{
padding: 26rpx;
.statistics-list{
background: #fff;
background: #fff;
height: 144rpx;
align-items: center;
box-shadow: 0 16rpx 20rpx #E3E3E3;
background: url("../../../static/safeMange/safe_bg.png") no-repeat center;
background-size: 100% 100%;
.statistics-item{
flex: 1;
text-align: center;
uni-text{
display: block;
color: #E26C0E;
font-weight: 600;
margin-bottom: 6rpx;
}
}
.b-right{
border-right: 1px solid rgba(244,150,0,0.1);
}
}
}
.moudle-box{
margin: 0 26rpx;
margin-bottom: 20rpx;
border-radius: 12rpx;
background: #fff;
padding: 0 20rpx;
padding-top: 20rpx;
.moudle-title{
margin-bottom: 20rpx;
font-weight: bold;
display: inline-block;
position: relative;
}
.moudle-title::after{
content: "";
width: 100%;
height: 10rpx;
background: rgba(#127FEC, 0.2);
position: absolute;
bottom: 0;
left: 0;
}
.moudle-list{
flex-wrap: wrap;
.moudle-item{
width: 30%;
height: 206rpx;
background: #fff;
border-radius: 10rpx;
margin-bottom: 40rpx;
flex-direction: column;
align-items: center;
justify-content: center;
// box-shadow: 4rpx 16rpx 20rpx #E9E9E9;
.moudle-icon{
width: 100rpx;
height: 100rpx;
line-height: 100rpx;
margin-bottom: 10rpx;
}
}
.m-right{
margin-right: 30rpx;
}
}
}
.moudle-box2{
padding-bottom: 60rpx;
.moudle-list{
.moudle-item{
font-size: 28rpx;
margin-bottom: 20rpx;
.moudle-icon{
width: 64rpx;
height: 68rpx;
}
}
}
}
}
</style>