0602
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
<template>
|
||||
<view class="page-container">
|
||||
<view class="page-body">
|
||||
<view class="status-bar"></view>
|
||||
<!-- 顶部蓝色区域 -->
|
||||
<view class="home-header">
|
||||
<view class="home-hospital">
|
||||
<!-- <text class="hospital-icon">🏥</text> -->
|
||||
<text>{{ hospitalName }}</text>
|
||||
</view>
|
||||
<view class="home-welcome">欢迎使用危废管理系统</view>
|
||||
</view>
|
||||
|
||||
<!-- 快速入口 -->
|
||||
<view class="quick-section">
|
||||
|
||||
<view class="quick-grid">
|
||||
<view class="quick-item" @click="navigateTo('/pages/weigh/generate')">
|
||||
<view class="quick-icon" style="background: #e6f7ff;">
|
||||
<uni-icons type="plus" :size="28" color="#1890ff"></uni-icons></view>
|
||||
<text>危废产生</text>
|
||||
</view>
|
||||
<view class="quick-item" @click="navigateTo('/pages/inout/in')">
|
||||
<view class="quick-icon" style="background: #f6ffed;">
|
||||
<uni-icons type="scan" :size="28" color="#52c41a"></uni-icons></view>
|
||||
<text>危废入库</text>
|
||||
</view>
|
||||
<view class="quick-item" @click="navigateTo('/pages/inout/out')">
|
||||
<view class="quick-icon" style="background: #fff1f0;">
|
||||
<uni-icons type="cloud-upload" :size="28" color="#ff4d4f"></uni-icons></view>
|
||||
<text>危废出库</text>
|
||||
</view>
|
||||
<view class="quick-item" @click="navigateTo('/pages/waste/manifest')">
|
||||
<view class="quick-icon" style="background: #fff7e6;">
|
||||
<uni-icons type="paperclip" :size="28" color="#fa8c16"></uni-icons></view>
|
||||
<text>联单填领</text>
|
||||
</view>
|
||||
<view class="quick-item" @click="navigateTo('/pages/waste/reprint')">
|
||||
<view class="quick-icon" style="background: #fff1f0;">
|
||||
<uni-icons type="paperplane" :size="28" color="#ff4d4f"></uni-icons></view>
|
||||
<text>标签补打</text>
|
||||
</view>
|
||||
<view class="quick-item" @click="navigateTo('/pages/waste/adjust')">
|
||||
<view class="quick-icon" style="background: #e6f7ff;">
|
||||
<uni-icons type="tune" :size="28" color="#1890ff"></uni-icons></view>
|
||||
<text>库存调整</text>
|
||||
</view>
|
||||
<view class="quick-item" @click="navigateTo('/pages/waste/undo')">
|
||||
<view class="quick-icon" style="background: #f9f0ff;">
|
||||
<uni-icons type="undo" :size="28" color="#722ed1"></uni-icons></view>
|
||||
<text>数据撤销</text>
|
||||
</view>
|
||||
<view class="quick-item" @click="switchTab('/pages/settings/index')">
|
||||
<view class="quick-icon" style="background: #f6ffed;">
|
||||
<uni-icons type="settings" :size="28" color="#52c41a"></uni-icons></view>
|
||||
<text>系统设置</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { api } from '@/api/index'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'HomePage',
|
||||
computed: {
|
||||
...mapGetters('user', ['enterpriseName', 'enterpriseInfo']),
|
||||
isLogin() {
|
||||
return this.$store.state.user.isLogin
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
hospitalName: '',
|
||||
enterpriseId: ''
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.checkLogin()
|
||||
},
|
||||
onShow() {
|
||||
this.checkLogin()
|
||||
},
|
||||
methods: {
|
||||
checkLogin() {
|
||||
if (!this.isLogin) {
|
||||
uni.reLaunch({ url: '/pages/login/login' })
|
||||
return
|
||||
}
|
||||
this.loadData()
|
||||
},
|
||||
navigateTo(path) { uni.navigateTo({ url: path }) },
|
||||
switchTab(path) { uni.switchTab({ url: path }) },
|
||||
async loadData() {
|
||||
const enterpriseInfo = await this.$store.dispatch('user/getEnterpriseInfo')
|
||||
console.log('企业名称:', enterpriseInfo)
|
||||
this.hospitalName = enterpriseInfo.fullEnterpriseName
|
||||
this.enterpriseId = enterpriseInfo.enterpriseId
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.home-header {
|
||||
background: $primary-color;
|
||||
padding: 16px 16px 20px;
|
||||
color: #ffffff;
|
||||
border-radius: 0 0 20px 20px;
|
||||
}
|
||||
.home-hospital {
|
||||
font-size: 17px;
|
||||
font-weight: 700;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
}
|
||||
.home-welcome {
|
||||
font-size: 12px;
|
||||
opacity: 0.85;
|
||||
margin-top: 4px;
|
||||
}
|
||||
.quick-section { padding: 16px 16px 8px; }
|
||||
.section-title {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: $text-primary;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.quick-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 12px;
|
||||
}
|
||||
.quick-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 20px 12px;
|
||||
background: #ffffff;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
|
||||
&:active { opacity: 0.7; }
|
||||
}
|
||||
.quick-icon {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 14px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.quick-item text {
|
||||
font-size: 13px;
|
||||
color: $text-primary;
|
||||
font-weight: 500;
|
||||
text-align: center;
|
||||
line-height: 1.3;
|
||||
}
|
||||
.recent-section { padding: 0 16px 16px; }
|
||||
.recent-item {
|
||||
background: #ffffff;
|
||||
border-radius: 10px;
|
||||
padding: 12px 14px;
|
||||
margin-bottom: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
.recent-icon {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 18px;
|
||||
background: #f0f0f0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.recent-info { flex: 1; }
|
||||
.recent-info .name { font-size: 13px; color: $text-primary; font-weight: 500; }
|
||||
.recent-info .detail { font-size: 11px; color: $text-placeholder; margin-top: 2px; }
|
||||
.recent-time { font-size: 10px; color: #bbbbbb; }
|
||||
</style>
|
||||
Reference in New Issue
Block a user