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
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>
|