You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

358 lines
12 KiB
Vue

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<template>
<view class="page-container">
<view class="header-section">
<text class="header-title">报表中心</text>
<text class="header-subtitle">数据驱动决策 · 智能分析</text>
</view>
<scroll-view scroll-y class="content-scroll">
<!-- 生产报表 -->
<view class="module-section">
<view class="module-header">
<view class="module-icon" style="background: #1a3a5c;">
<text class="icon-text">🏭</text>
</view>
<text class="module-title">生产报表</text>
</view>
<view class="function-grid">
<view class="function-item" @click="handleClick('生产日报')">
<view class="function-icon" style="background: rgba(26, 58, 92, 0.1);">
<text class="icon-inner">📊</text>
</view>
<text class="function-name">生产日报</text>
</view>
<view class="function-item" @click="handleClick('生产周报')">
<view class="function-icon" style="background: rgba(26, 58, 92, 0.1);">
<text class="icon-inner">📈</text>
</view>
<text class="function-name">生产周报</text>
</view>
<view class="function-item" @click="handleClick('生产月报')">
<view class="function-icon" style="background: rgba(26, 58, 92, 0.1);">
<text class="icon-inner">📅</text>
</view>
<text class="function-name">生产月报</text>
</view>
<view class="function-item" @click="handleClick('产能分析')">
<view class="function-icon" style="background: rgba(26, 58, 92, 0.1);">
<text class="icon-inner"></text>
</view>
<text class="function-name">产能分析</text>
</view>
</view>
</view>
<!-- 仓储报表 -->
<view class="module-section">
<view class="module-header">
<view class="module-icon" style="background: #2d5a87;">
<text class="icon-text">📦</text>
</view>
<text class="module-title">仓储报表</text>
</view>
<view class="function-grid">
<view class="function-item" @click="handleClick('库存盘点')">
<view class="function-icon" style="background: rgba(45, 90, 135, 0.1);">
<text class="icon-inner">📋</text>
</view>
<text class="function-name">库存盘点</text>
</view>
<view class="function-item" @click="handleClick('出入库统计')">
<view class="function-icon" style="background: rgba(45, 90, 135, 0.1);">
<text class="icon-inner">🚚</text>
</view>
<text class="function-name">出入库统计</text>
</view>
<view class="function-item" @click="handleClick('库存周转')">
<view class="function-icon" style="background: rgba(45, 90, 135, 0.1);">
<text class="icon-inner">🔄</text>
</view>
<text class="function-name">库存周转</text>
</view>
</view>
</view>
<!-- 质量报表 -->
<view class="module-section">
<view class="module-header">
<view class="module-icon" style="background: #3d7ab5;">
<text class="icon-text"></text>
</view>
<text class="module-title">质量报表</text>
</view>
<view class="function-grid">
<view class="function-item" @click="handleClick('合格率统计')">
<view class="function-icon" style="background: rgba(61, 122, 181, 0.1);">
<text class="icon-inner">📊</text>
</view>
<text class="function-name">合格率统计</text>
</view>
<view class="function-item" @click="handleClick('不良品分析')">
<view class="function-icon" style="background: rgba(61, 122, 181, 0.1);">
<text class="icon-inner"></text>
</view>
<text class="function-name">不良品分析</text>
</view>
<view class="function-item" @click="handleClick('质量趋势')">
<view class="function-icon" style="background: rgba(61, 122, 181, 0.1);">
<text class="icon-inner">📈</text>
</view>
<text class="function-name">质量趋势</text>
</view>
<view class="function-item" @click="handleClick('质检报告')">
<view class="function-icon" style="background: rgba(61, 122, 181, 0.1);">
<text class="icon-inner">📝</text>
</view>
<text class="function-name">质检报告</text>
</view>
</view>
</view>
<!-- 数据采集 -->
<view class="module-section">
<view class="module-header">
<view class="module-icon" style="background: #4a90c2;">
<text class="icon-text">📡</text>
</view>
<text class="module-title">数据采集</text>
</view>
<view class="function-grid">
<view class="function-item" @click="handleClick('实时数据')">
<view class="function-icon" style="background: rgba(74, 144, 194, 0.1);">
<text class="icon-inner"></text>
</view>
<text class="function-name">实时数据</text>
</view>
<view class="function-item" @click="handleClick('历史数据')">
<view class="function-icon" style="background: rgba(74, 144, 194, 0.1);">
<text class="icon-inner">📚</text>
</view>
<text class="function-name">历史数据</text>
</view>
<view class="function-item" @click="handleClick('数据导出')">
<view class="function-icon" style="background: rgba(74, 144, 194, 0.1);">
<text class="icon-inner">📤</text>
</view>
<text class="function-name">数据导出</text>
</view>
</view>
</view>
<!-- 能耗报表 -->
<view class="module-section">
<view class="module-header">
<view class="module-icon" style="background: #ff8c00;">
<text class="icon-text"></text>
</view>
<text class="module-title">能耗报表</text>
</view>
<view class="function-grid">
<view class="function-item" @click="handleClick('用电统计')">
<view class="function-icon" style="background: rgba(255, 140, 0, 0.1);">
<text class="icon-inner">🔌</text>
</view>
<text class="function-name">用电统计</text>
</view>
<view class="function-item" @click="handleClick('能耗分析')">
<view class="function-icon" style="background: rgba(255, 140, 0, 0.1);">
<text class="icon-inner">📊</text>
</view>
<text class="function-name">能耗分析</text>
</view>
<view class="function-item" @click="handleClick('节能报告')">
<view class="function-icon" style="background: rgba(255, 140, 0, 0.1);">
<text class="icon-inner">🌱</text>
</view>
<text class="function-name">节能报告</text>
</view>
</view>
</view>
<!-- 设备报表 -->
<view class="module-section">
<view class="module-header">
<view class="module-icon" style="background: #18bc37;">
<text class="icon-text">🔧</text>
</view>
<text class="module-title">设备报表</text>
</view>
<view class="function-grid">
<view class="function-item" @click="handleClick('设备效率')">
<view class="function-icon" style="background: rgba(24, 188, 55, 0.1);">
<text class="icon-inner"></text>
</view>
<text class="function-name">设备效率</text>
</view>
<view class="function-item" @click="handleClick('故障统计')">
<view class="function-icon" style="background: rgba(24, 188, 55, 0.1);">
<text class="icon-inner">🔩</text>
</view>
<text class="function-name">故障统计</text>
</view>
<view class="function-item" @click="handleClick('维护记录')">
<view class="function-icon" style="background: rgba(24, 188, 55, 0.1);">
<text class="icon-inner">🔨</text>
</view>
<text class="function-name">维护记录</text>
</view>
<view class="function-item" @click="handleClick('开机率')">
<view class="function-icon" style="background: rgba(24, 188, 55, 0.1);">
<text class="icon-inner">📈</text>
</view>
<text class="function-name">开机率</text>
</view>
</view>
</view>
<!-- 模具报表 -->
<view class="module-section">
<view class="module-header">
<view class="module-icon" style="background: #5aa0d2;">
<text class="icon-text">🔩</text>
</view>
<text class="module-title">模具报表</text>
</view>
<view class="function-grid">
<view class="function-item" @click="handleClick('模具寿命')">
<view class="function-icon" style="background: rgba(90, 160, 210, 0.1);">
<text class="icon-inner"></text>
</view>
<text class="function-name">模具寿命</text>
</view>
<view class="function-item" @click="handleClick('使用统计')">
<view class="function-icon" style="background: rgba(90, 160, 210, 0.1);">
<text class="icon-inner">📊</text>
</view>
<text class="function-name">使用统计</text>
</view>
<view class="function-item" @click="handleClick('保养记录')">
<view class="function-icon" style="background: rgba(90, 160, 210, 0.1);">
<text class="icon-inner">🔧</text>
</view>
<text class="function-name">保养记录</text>
</view>
</view>
</view>
</scroll-view>
</view>
</template>
<script setup>
function handleClick(name) {
uni.showToast({
title: `查看${name}`,
icon: 'none'
});
}
</script>
<style lang="scss" scoped>
.page-container {
min-height: 100vh;
background-color: #f0f2f5;
}
.header-section {
background: linear-gradient(135deg, #1a3a5c 0%, #2d5a87 100%);
padding: 60rpx 40rpx;
padding-top: 80rpx;
.header-title {
display: block;
font-size: 44rpx;
font-weight: bold;
color: #ffffff;
margin-bottom: 12rpx;
}
.header-subtitle {
display: block;
font-size: 26rpx;
color: rgba(255, 255, 255, 0.7);
}
}
.content-scroll {
padding: 24rpx;
}
.module-section {
background: #ffffff;
border-radius: 20rpx;
margin-bottom: 24rpx;
overflow: hidden;
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.05);
}
.module-header {
display: flex;
align-items: center;
padding: 28rpx 24rpx;
background: #fafbfc;
border-bottom: 1rpx solid #e8eaed;
.module-icon {
width: 72rpx;
height: 72rpx;
border-radius: 16rpx;
display: flex;
align-items: center;
justify-content: center;
margin-right: 20rpx;
.icon-text {
font-size: 36rpx;
}
}
.module-title {
font-size: 32rpx;
font-weight: 600;
color: #1a3a5c;
}
}
.function-grid {
display: flex;
flex-wrap: wrap;
padding: 24rpx;
gap: 20rpx;
}
.function-item {
width: calc(25% - 15rpx);
background: #f8fafc;
border-radius: 16rpx;
padding: 28rpx 12rpx;
display: flex;
flex-direction: column;
align-items: center;
transition: all 0.3s ease;
&:active {
background: #e8f4ff;
transform: scale(0.98);
}
.function-icon {
width: 80rpx;
height: 80rpx;
border-radius: 18rpx;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16rpx;
.icon-inner {
font-size: 40rpx;
}
}
.function-name {
font-size: 24rpx;
color: #333333;
text-align: center;
}
}
</style>