first commit
This commit is contained in:
346
pages/index/index.vue
Normal file
346
pages/index/index.vue
Normal file
@@ -0,0 +1,346 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="flex padding-top-xl padding-bottom-xl text-white " style="background-color:#007aff ;">
|
||||
<view class="cu-avatar xl round margin-left">
|
||||
<image></image>
|
||||
</view>
|
||||
<view class="padding-left">
|
||||
<view class="text-bold">湘西和谐云大数据产业发展有限公司</view>
|
||||
<view class="flex padding-top-xs">
|
||||
<view>手机号:</view>
|
||||
<view>17374339800</view>
|
||||
</view>
|
||||
<view class="flex justify-between">
|
||||
<view></view>
|
||||
<view class="cu-btn text-blue margin-top text-bold">切换</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="padding" style="background: #EBF2FC;">
|
||||
<view class="bg-white padding radius">
|
||||
<view class>
|
||||
<view></view>
|
||||
<view>功能菜单</view>
|
||||
</view>
|
||||
<view class=" grid col-3 grid-list">
|
||||
<view class="list " v-for="(item, index) in infoList" :key="index" @click="handleMenuClick(item)">
|
||||
<image style="width: 102rpx;height: 102rpx;" :src="item.src"></image>
|
||||
<view>{{ item.name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 我的检查计划 -->
|
||||
<view class="padding bg-white margin-top radius">
|
||||
<view class="flex margin-bottom-xl">
|
||||
<view class="border-tite"></view>
|
||||
<view class="text-bold margin-left-xs">我的检查计划</view>
|
||||
</view>
|
||||
<!-- 无数据提示 -->
|
||||
<view v-if="checkPlanData.length === 0" class="text-center text-gray padding">
|
||||
暂无检查计划
|
||||
</view>
|
||||
<!-- 列表渲染 -->
|
||||
<view class="list-list padding margin-bottom" v-for="(item, index) in checkPlanData" :key="item.id">
|
||||
<view class="flex">
|
||||
<image src="/static/蒙版组 273.png" style="width: 40rpx;height: 40rpx;"></image>
|
||||
<view class="text-bold margin-left">{{ item.name }}</view>
|
||||
</view>
|
||||
<view class="flex margin-top">
|
||||
<view class="border-border margin-right-xs">{{ item.runModeName }}完成</view>
|
||||
<view class="border-border">{{ item.cycle }}</view>
|
||||
</view>
|
||||
<view class="flex text-gray margin-top">
|
||||
<view>计划时间:</view>
|
||||
<view>{{ formatDate(item.planStartTime) }}至{{ formatDate(item.planEndTime) }}</view>
|
||||
</view>
|
||||
<view class="flex margin-top align-center">
|
||||
<view>完成进度:</view>
|
||||
<view class="flex align-center margin-left-sm">
|
||||
<view class="cu-progress round">
|
||||
<view class="bg-green" :style="{ width: item.progress + '%' }"></view>
|
||||
</view>
|
||||
<text class="margin-left-sm">{{ item.progress }}%</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="grid col-4 bg-gray margin padding text-center radius">
|
||||
<view>
|
||||
<view class="text-orange">{{ item.totalCount }}</view>
|
||||
<view>总数</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="text-yellow">{{ item.totalCount - item.finishedCount }}</view>
|
||||
<view>待完成</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="text-olive">0</view>
|
||||
<view>待验收</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="text-blue">{{ item.finishedCount }}</view>
|
||||
<view>已完成</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="margin-top margin-bottom flex justify-end">
|
||||
<button class="cu-btn round lg light bg-blue margin-right" @click.stop="ViewDetails(item)">查看详情</button>
|
||||
<button class="cu-btn round lg bg-blue" @click.stop="goDetails(item)">开始检查</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 我的隐患 -->
|
||||
<view class="padding bg-white margin-top radius">
|
||||
<view class="flex margin-bottom-xl ">
|
||||
<view class="border-tite"></view>
|
||||
<view class="text-bold margin-left-xs">我的隐患排查</view>
|
||||
</view>
|
||||
<view class="list-list padding">
|
||||
<view class="flex text-bold">
|
||||
<view>隐患</view>
|
||||
<view class="text-bold margin-left">#15</view>
|
||||
</view>
|
||||
<view class="flex margin-top">
|
||||
<view class="text-gray">标题:</view>
|
||||
<view>有隐患</view>
|
||||
</view>
|
||||
<view class="flex margin-top">
|
||||
<view class="text-gray">隐患来源:</view>
|
||||
<view>企业自查</view>
|
||||
</view>
|
||||
<view class="flex margin-top">
|
||||
<view class="text-gray" style="white-space: nowrap;">隐患位置:</view>
|
||||
<view>湖南省湘西土家族苗族自治州吉首市人民北路105号</view>
|
||||
</view>
|
||||
<view class="flex margin-top">
|
||||
<view class="text-gray">隐患等级:</view>
|
||||
<view>一般隐患</view>
|
||||
</view>
|
||||
<view class="flex margin-top">
|
||||
<view class="text-gray">隐患状态:</view>
|
||||
<view>待验收</view>
|
||||
</view>
|
||||
<view class="flex margin-top">
|
||||
<view class="text-gray">发现时间:</view>
|
||||
<view>2025-11-11 17:08:09</view>
|
||||
</view>
|
||||
<view class="margin-top margin-bottom flex">
|
||||
<button class="cu-btn round lg light bg-blue " style="white-space: nowrap;">查看详情</button>
|
||||
<button class="cu-btn round lg light bg-blue " style="white-space: nowrap;">立即整改</button>
|
||||
<button class="cu-btn round lg bg-blue " style="white-space: nowrap;">立即验收</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="cu-bar tabbar bg-white">
|
||||
<view class="action">
|
||||
<view class="cuIcon-cu-image">
|
||||
<image src="/static/tabbar/组 20264.png"></image>
|
||||
</view>
|
||||
<view class="text-blue">首页</view>
|
||||
</view>
|
||||
<view class="action">
|
||||
<view class="cuIcon-cu-image">
|
||||
<image src="/static/tabbar/组 20261.png"></image>
|
||||
</view>
|
||||
<view class="text-gray">一张图</view>
|
||||
</view>
|
||||
<view class="action" @click="Inspectionwarning()">
|
||||
<view class="cuIcon-cu-image">
|
||||
<image src="/static/tabbar/组 20262.png"></image>
|
||||
</view>
|
||||
<view class="text-gray" >预警</view>
|
||||
</view>
|
||||
<view class="action" @click="my()">
|
||||
<view class="cuIcon-cu-image">
|
||||
<image src="/static/tabbar/组 20263.png"></image>
|
||||
</view>
|
||||
<view class="text-gray">我的</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import {getCheckPlanList} from '@/request/api.js'
|
||||
|
||||
const loading = ref(true);
|
||||
const infoList = ref([{
|
||||
name: '成员管理',
|
||||
src: '../../static/组 19378.png'
|
||||
},
|
||||
{
|
||||
name: '企业信息填报',
|
||||
src: '../../static/组 19387.png'
|
||||
},
|
||||
{
|
||||
name: '区域设置',
|
||||
src: '../../static/组 20253.png'
|
||||
},
|
||||
{
|
||||
name: '检查表',
|
||||
src: '../../static/组 20254.png'
|
||||
},
|
||||
{
|
||||
name: '检查记录',
|
||||
src: '../../static/组 20255.png'
|
||||
},
|
||||
{
|
||||
name: '证照管理',
|
||||
src: '../../static/组 20256.png'
|
||||
},
|
||||
{
|
||||
name: '隐患排查',
|
||||
src: '../../static/组 20257.png'
|
||||
},
|
||||
{
|
||||
name: '隐患销号申请',
|
||||
src: '../../static/组 20258.png'
|
||||
},
|
||||
{
|
||||
name: '设备登记',
|
||||
src: '../../static/组 20259.png'
|
||||
}
|
||||
|
||||
]);
|
||||
const ViewDetails = (item) => {
|
||||
uni.navigateTo({
|
||||
url: `/pages/plandetail/plandetail?id=${item.id}`
|
||||
})
|
||||
}
|
||||
const goDetails = (item) => {
|
||||
uni.navigateTo({
|
||||
url: `/pages/Inspectionresult/Inspectionresult?id=${item.id}`
|
||||
})
|
||||
}
|
||||
// 预警
|
||||
const Inspectionwarning = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/Inspectionwarning/Inspectionwarning'
|
||||
})
|
||||
}
|
||||
// 我的
|
||||
const my = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/personalcenter/my'
|
||||
})
|
||||
}
|
||||
// 菜单点击跳转
|
||||
const handleMenuClick = (item) => {
|
||||
const menuRoutes = {
|
||||
'成员管理': '/pages/membermanagemen/membermanagemen',
|
||||
'企业信息填报': '/pages/corporateInformation/corporateInformation',
|
||||
'区域设置':'/pages/area/management',
|
||||
'检查表' :'/pages/checklist/checklist',
|
||||
'检查记录': '/pages/Inspectionlog/Inspectionlog',
|
||||
'证照管理': '/pages/Idphotomanagement/Idphotomanagement',
|
||||
'隐患排查':'/pages/hiddendanger/Inspection',
|
||||
'隐患销号申请':'/pages/closeout/application',
|
||||
'设备登记':'/pages/equipmentregistration/equipmentregistration',
|
||||
// 可以在这里添加其他菜单的跳转路径
|
||||
};
|
||||
|
||||
const url = menuRoutes[item.name];
|
||||
if (url) {
|
||||
uni.navigateTo({ url });
|
||||
} else {
|
||||
uni.showToast({ title: '功能开发中', icon: 'none' });
|
||||
}
|
||||
}
|
||||
|
||||
//我的检查计划
|
||||
const checkPlanParams = ref({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
name: ''
|
||||
});
|
||||
const checkPlanData = ref([]);
|
||||
|
||||
const getCheckPlanLists = async () => {
|
||||
try {
|
||||
const res = await getCheckPlanList(checkPlanParams.value);
|
||||
console.log(res);
|
||||
if (res.code === 0) {
|
||||
checkPlanData.value = res.data.records;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
// 格式化日期 (2025-12-18 00:00:00 -> 2025-12-18)
|
||||
const formatDate = (dateStr) => {
|
||||
if (!dateStr) return '';
|
||||
return dateStr.split(' ')[0];
|
||||
};
|
||||
|
||||
// 页面加载时调用接口
|
||||
onLoad(() => {
|
||||
getCheckPlanLists();
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {}
|
||||
|
||||
.grid-list {
|
||||
// gap: 5px 5px;
|
||||
}
|
||||
|
||||
.list {
|
||||
background: #F2F6FF;
|
||||
box-shadow: 0rpx 4rpx 8rpx 2rpx #CADDFC;
|
||||
border-radius: 10rpx;
|
||||
text-align: center;
|
||||
padding: 20rpx 0;
|
||||
|
||||
}
|
||||
|
||||
.list-list {
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 2rpx 6rpx 2rpx rgba(0, 0, 0, 0.08);
|
||||
border-left: 5px solid #2667E9;
|
||||
border-radius: 20rpx;
|
||||
padding: 20rpx;
|
||||
}
|
||||
|
||||
.border-tite {
|
||||
width: 10rpx;
|
||||
height: 32rpx;
|
||||
background: #2667E9;
|
||||
border-radius: 10rpx 10rpx 10rpx 10rpx;
|
||||
}
|
||||
|
||||
.cu-progress {
|
||||
width: 300rpx;
|
||||
height: 20rpx;
|
||||
background: #ebeef5;
|
||||
border-radius: 100rpx;
|
||||
overflow: hidden;
|
||||
|
||||
view {
|
||||
height: 100%;
|
||||
border-radius: 100rpx;
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-green {
|
||||
background: #2667E9;
|
||||
}
|
||||
|
||||
.border-border {
|
||||
padding: 10rpx;
|
||||
background: #EEF3FF;
|
||||
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||
border: 2rpx solid #AAC5FC;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-size: 28rpx;
|
||||
color: #2667E9;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user