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

176 lines
3.4 KiB

<template>
<div class="pda-container">
<div class="header-bar">
<div class="header-left" @click="$router.back()">
<i class="el-icon-arrow-left"></i>
<span>MR 发料</span>
</div>
<div class="header-right" @click="$router.push({ path: '/' })">首页</div>
</div>
<!-- 功能菜单 -->
<div class="menu-grid">
<div
class="menu-item"
v-for="(btn, index) in buttons"
:key="index"
:class="{ disabled: btn.disabled }"
@click="handleButtonClick(btn)"
>
<div class="menu-icon" :class="btn.iconClass">
<van-icon :name="btn.icon" size="24" />
</div>
<div class="menu-text">{{ btn.label }}</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
buttons: [
{
icon: "scan",
label: "MR发料",
iconClass: "purchase",
to: "mrPicking",
disabled: false,
},
/* MR没有退料 */
/* {
icon: "records",
label: "MR退料",
iconClass: "qualified",
to: "mrPickingReturn",
disabled: false,
}, */
],
};
},
methods: {
handleButtonClick(btn) {
if (btn.disabled) {
this.$message.warning("正在开发中,敬请期待...");
} else {
this.$router.push(btn.to);
}
},
},
};
</script>
<style>
:root {
--columns: 3;
--button-size: calc(100vw / var(--columns) - 20px);
}
/* 头部栏 */
.header-bar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 8px 16px;
background: #17b3a3;
color: white;
height: 40px;
min-height: 40px;
max-height: 40px;
}
.header-left {
display: flex;
align-items: center;
cursor: pointer;
font-size: 16px;
font-weight: 500;
}
.header-left i {
margin-right: 8px;
font-size: 18px;
}
.header-right {
cursor: pointer;
font-size: 16px;
font-weight: 500;
}
.menu-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 15px;
padding: 20px;
justify-content: center; /* 水平居中 */
align-content: center; /* 垂直居中 */
width: 100%; /* 确保占满容器宽度 */
}
.menu-item {
background: white;
border-radius: 12px;
padding: 12px 6px;
text-align: center;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
transition: transform 0.2s;
cursor: pointer;
}
.menu-item:active {
transform: scale(0.95);
}
.menu-item.disabled {
opacity: 0.6;
position: relative;
}
.menu-item.disabled::after {
content: "开发中";
position: absolute;
top: 8px;
right: 8px;
background: #ff9500;
color: white;
font-size: 8px;
padding: 2px 4px;
border-radius: 8px;
font-weight: bold;
}
.menu-icon {
width: 38px;
height: 38px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 6px;
color: white;
}
.menu-icon.purchase {
background: linear-gradient(135deg, #17b3a3 0%, #1dc5ef 100%);
}
.menu-icon.inspection {
background: linear-gradient(135deg, #17b3a3 0%, #1dc5ef 100%);
}
.menu-icon.qualified {
background: linear-gradient(135deg, #17b3a3 0%, #1dc5ef 100%);
}
.menu-text {
font-size: 10px;
color: #333;
font-weight: bold; /* 加粗字体 */
white-space: nowrap; /* 防止文字换行 */
overflow: hidden;
text-overflow: ellipsis;
margin-top: 2px;
}
</style>