|
@@ -0,0 +1,157 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="16">
|
|
|
+ <div class="type-title">当前料箱</div>
|
|
|
+
|
|
|
+ <div style="display: flex; margin-bottom: 15px">
|
|
|
+ <ScanCodeInput
|
|
|
+ v-model="currentBox"
|
|
|
+ style="width: 50%"
|
|
|
+ @enterfnc="enterBox"
|
|
|
+ />
|
|
|
+ <div class="current-box">
|
|
|
+ <span class="left">当前料箱</span>
|
|
|
+ <span class="right">{{ currentBox }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="type-title">料箱绑定</div>
|
|
|
+ <ScanCodeInput
|
|
|
+ v-model="scanCodeInput"
|
|
|
+ style="width: 50%"
|
|
|
+ @enterfnc="handleScanCodeInput"
|
|
|
+ />
|
|
|
+ <div style="height: calc(100vh - 450px); margin-top: 15px">
|
|
|
+ <el-scrollbar>
|
|
|
+ <div class="list-container">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in materialList"
|
|
|
+ :key="index"
|
|
|
+ class="list-box"
|
|
|
+ >
|
|
|
+ ddd
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <div class="type-title">流转终点</div>
|
|
|
+ <div class="destination">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in destinationList"
|
|
|
+ :key="index"
|
|
|
+ :class="{ selected: index === currentDestinationIndex }"
|
|
|
+ class="end-box"
|
|
|
+ @click="onEndBoxClick(index)"
|
|
|
+ >
|
|
|
+ ddd
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script lang="ts" setup>
|
|
|
+//料箱
|
|
|
+const currentBox = ref("");
|
|
|
+const enterBox = () => {
|
|
|
+ console.log("enterBox", currentBox);
|
|
|
+};
|
|
|
+
|
|
|
+// 物料
|
|
|
+const scanCodeInput = ref("");
|
|
|
+const handleScanCodeInput = () => {
|
|
|
+ console.log("handleScanCodeInput", scanCodeInput.value);
|
|
|
+};
|
|
|
+
|
|
|
+const materialList = ref([{}, {}, {}, {}, {}, {}, {}, {}, {}]);
|
|
|
+
|
|
|
+// 流转终点
|
|
|
+const destinationList = ref([{}, {}, {}, {}, {}, {}, {}, {}, {}]);
|
|
|
+const currentDestinationIndex = ref(-1);
|
|
|
+const onEndBoxClick = (index: number) => {
|
|
|
+ currentDestinationIndex.value = index;
|
|
|
+ console.log("onEndBoxClick", index);
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.type-title {
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 30px;
|
|
|
+ color: rgba(0, 0, 0, 0.9);
|
|
|
+ text-align: left;
|
|
|
+ margin-bottom: 15px;
|
|
|
+}
|
|
|
+
|
|
|
+.current-box {
|
|
|
+ background: rgba(0, 0, 0, 0.06);
|
|
|
+ border-radius: 16px 16px 16px 16px;
|
|
|
+ font-size: 20px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ width: 50%;
|
|
|
+ height: 49px;
|
|
|
+ padding: 0 20px;
|
|
|
+
|
|
|
+ .left {
|
|
|
+ font-weight: 400;
|
|
|
+ color: rgba(0, 0, 0, 0.6);
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .right {
|
|
|
+ font-weight: 500;
|
|
|
+ color: rgba(0, 0, 0, 0.9);
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.list-container {
|
|
|
+ width: 100%;
|
|
|
+ display: grid;
|
|
|
+ /*行间距*/
|
|
|
+ grid-row-gap: 24px;
|
|
|
+ /*列间距*/
|
|
|
+ grid-column-gap: 24px;
|
|
|
+
|
|
|
+ grid-template-columns: 1fr 1fr;
|
|
|
+
|
|
|
+ .list-box {
|
|
|
+ height: 210px;
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 16px 16px 16px 16px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.destination {
|
|
|
+ height: calc(100vh - 250px);
|
|
|
+ margin-top: 15px;
|
|
|
+ border: 2px solid rgba(0, 0, 0, 0.1);
|
|
|
+
|
|
|
+ .end-box {
|
|
|
+ height: 80px;
|
|
|
+ background: #ffffff;
|
|
|
+ border-radius: 40px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 24px;
|
|
|
+ color: rgba(0, 0, 0, 0.9);
|
|
|
+ }
|
|
|
+
|
|
|
+ .end-box:not(:last-child) {
|
|
|
+ margin-bottom: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .selected {
|
|
|
+ order-radius: 40px;
|
|
|
+ border: 2px solid rgba(10, 89, 247, 1);
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|