Commit edf0c12b authored by 胡笑坤's avatar 胡笑坤

关联查询结果

parent 32a8fc91
...@@ -14,104 +14,93 @@ ...@@ -14,104 +14,93 @@
<div id="centerDiv"> <div id="centerDiv">
<div class="scan-title"> <div class="scan-title">
<p class="title-text">扫描日期范围:</p> <p class="title-text">扫描日期范围:</p>
<p>{{time1}}</p> <p>{{ time1 }}</p>
<p class="range-separator"></p> <p class="range-separator"></p>
<p>{{time2}}</p> <p>{{ time2 }}</p>
</div> </div>
<div>
<van-tabs v-model:active="active">
<van-skeleton v-if="!isLoaded" title row="3" />
<div v-else>
<van-tabs
v-model:active="active"
@change="handleTabChange"
lazy-render
>
<van-tab title="件码列表" name="a"> <van-tab title="件码列表" name="a">
<div class="list-header"> <div class="list-header">
<p> <p><span>件码信息</span></p>
<span>件码信息</span> <p class="total-count">共 {{ (data.piece || []).length }} 条</p>
</p>
<p class="total-count">
{{ this.data.piece.length }}
</p>
</div> </div>
<div class="list-content"> <div class="list-content">
<div <div
v-for="(item, i) in this.data.piece" v-for="(item, i) in (data.piece || [])"
:key="`piece-${i}`"
class="list-item" class="list-item"
> >
<p class="colors item-row item-header-row"> <p class="colors item-row item-header-row">
<span> 件码{{ i + 1 }} </span> <span> 件码{{ i + 1 }} </span>
<span> <span>{{ item.relationTime || '-' }}</span>
{{ item.relationTime }}
</span>
</p> </p>
<p class="item-row item-main-row"> <p class="item-row item-main-row">
<span class="Conts"> {{ item.parentCode }} </span> <span class="Conts"> {{ formatParentCode(item.parentCode) }} </span>
<span class="colors">条码数:50 </span> <span class="colors">条码数:50 </span>
</p> </p>
<p class="item-row item-footer-row"> <p class="item-row item-footer-row">
<span class="colors">机台号:{{ item.barPieceProductLineDeviceCode }} </span> <span class="colors">机台号:{{ item.barPieceProductLineDeviceCode || '-' }} </span>
</p> </p>
</div> </div>
</div> </div>
</van-tab> </van-tab>
<van-tab title="条码列表" name="b"> <van-tab title="条码列表" name="b">
<div class="list-header"> <div class="list-header">
<p> <p><span>条码信息</span></p>
<span>条码信息</span> <p class="total-count">共 {{ (data.bar || []).length }} 条</p>
</p>
<p class="total-count">
{{ this.data.piece.length }}
</p>
</div> </div>
<div class="list-content"> <div class="list-content">
<div <div
v-for="(item, i) in this.data.bar" v-for="(item, i) in (data.bar || [])"
:key="`bar-${i}`"
class="list-item" class="list-item"
> >
<p class="colors item-row item-header-row"> <p class="colors item-row item-header-row">
<span> 条码{{ i + 1 }} </span> <span> 条码{{ i + 1 }} </span>
<span> <span>{{ item.relationTime || '-' }}</span>
{{ item.relationTime }}
</span>
</p> </p>
<p class="item-row item-main-row"> <p class="item-row item-main-row">
<span class="Conts"> {{ item.qrCode }} </span> <!-- 修改:使用formatParentCode处理条码 -->
<span class="Conts"> {{ formatParentCode(item.qrCode) }} </span>
<span class="colors">盒码数:10 </span> <span class="colors">盒码数:10 </span>
</p> </p>
<p class="item-row item-footer-row"> <p class="item-row item-footer-row">
<span class="colors">机台号:{{ item.boxBarProductLineDeviceCode }} </span> <span class="colors">机台号:{{ item.boxBarProductLineDeviceCode || '-' }} </span>
</p> </p>
</div> </div>
</div> </div>
</van-tab> </van-tab>
<van-tab title="盒码列表" name="c"> <van-tab title="盒码列表" name="c">
<div class="list-header"> <div class="list-header">
<p> <p><span>盒码信息</span></p>
<span>盒码信息</span> <p class="total-count">共 {{ (data.box || []).length }} 条</p>
</p>
<p class="total-count">
{{ this.data.box.length }}
</p>
</div> </div>
<div class="list-content"> <div class="list-content">
<div <div
v-for="(item, i) in this.data.box" v-for="(item, i) in (data.box || [])"
:key="`box-${i}`"
class="list-item" class="list-item"
> >
<p class="colors item-row item-header-row"> <p class="colors item-row item-header-row">
<span> 盒码{{ i + 1 }} </span> <span> 盒码{{ i + 1 }} </span>
<span> <span>{{ item.relationTime || '-' }}</span>
{{ item.relationTime }}
</span>
</p> </p>
<p class="item-row item-main-row"> <p class="item-row item-main-row">
<span class="Conts"> {{ item.qrCode }} </span> <!-- 修改:使用formatParentCode处理盒码 -->
<span class="Conts"> {{ formatParentCode(item.qrCode) }} </span>
<span class="colors">盒码数:50 </span> <span class="colors">盒码数:50 </span>
</p> </p>
<p class="item-row item-footer-row"> <p class="item-row item-footer-row">
<span class="colors">机台号:{{ item.boxBarProductLineDeviceCode }} </span> <span class="colors">机台号:{{ item.boxBarProductLineDeviceCode || '-' }} </span>
</p> </p>
</div> </div>
</div> </div>
...@@ -131,79 +120,98 @@ ...@@ -131,79 +120,98 @@
<script> <script>
import { import {
NavBar, NavBar,
CellGroup,
Cell,
List,
Button, Button,
Dialog,
Sticky,
Col,
Row,
Notify,
Icon, Icon,
Tab,
Tabs, Tabs,
Tab,
Skeleton
} from "vant"; } from "vant";
import {qrcodeMap} from "@/api/qrcode/scanCode/scanCode"; import { qrcodeMap } from "@/api/qrcode/scanCode/scanCode";
export default { export default {
name: "", name: "QueryResult",
components: { components: {
[NavBar.name]: NavBar, [NavBar.name]: NavBar,
[CellGroup.name]: CellGroup,
[Cell.name]: Cell,
[List.name]: List,
[Button.name]: Button, [Button.name]: Button,
[Dialog.Component.name]: Dialog.Component,
[Sticky.name]: Sticky,
[Col.name]: Col,
[Row.name]: Row,
[Icon.name]: Icon, [Icon.name]: Icon,
[Notify.Component.name]: Notify.Component,
[Tabs.name]: Tabs, [Tabs.name]: Tabs,
[Tab.name]: Tab, [Tab.name]: Tab,
[Skeleton.name]: Skeleton
}, },
created() { created() {
if (this.$route.query) { // 初始化参数
this.time1 = this.$route.query.time1; const { time1, time2, one, two } = this.$route.query || {};
this.time2 = this.$route.query.time2; this.time1 = time1 || "";
this.queryParams = { this.time2 = time2 || "";
one: this.$route.query.one, this.queryParams = { one, two };
two: this.$route.query.two,
}; // 调用接口
}
this.qrcodeMap(); this.qrcodeMap();
}, },
mounted() { mounted() {
// 延迟执行DOM相关操作,避免渲染未完成
this.$nextTick(() => {
// this.$nativeQRCode.setStatusBarColor("#006953", "white"); // this.$nativeQRCode.setStatusBarColor("#006953", "white");
// ScanOverlay.show('请扫描二维码') });
}, },
data() { data() {
return { return {
data: {}, data: { // 初始化数据结构,避免undefined
piece: [],
bar: [],
box: []
},
active: "a", active: "a",
time1:"", time1: "",
time2:"", time2: "",
queryParams: {}, queryParams: {},
isLoaded: false
}; };
}, },
computed: {},
methods: { methods: {
qrcodeMap() { // 处理件码显示的方法(扩展为通用的码值截取方法)
qrcodeMap(this.queryParams).then(response => { formatParentCode(code) {
if (response.code === 200) { if (!code || typeof code !== 'string') {
this.data = response.data return code || '';
} }
}); if (code.length > 35) {
return '...' + code.slice(-20);
}
return code;
}, },
deleteItem(index) { // 接口请求方法
this.data.splice(index, 1); async qrcodeMap() { // 修改为async/await
try {
const response = await qrcodeMap(this.queryParams);
if (response.code === 200) {
// 确保数据结构完整
this.data = {
piece: response.data.piece || [],
bar: response.data.bar || [],
box: response.data.box || []
};
}
} catch (error) {
console.error("接口请求失败:", error);
// 异常时仍保证数据结构
this.data = { piece: [], bar: [], box: [] };
} finally {
// 无论成功失败,都标记为加载完成
this.isLoaded = true;
}
}, },
gousearch() { // tab切换处理
this.$router.push({ handleTabChange() {
path: "/ScanBarcodes", // 切换tab时触发nextTick,确保DOM渲染完成
this.$nextTick(() => {
// 可以在这里处理tab切换后的DOM操作
}); });
}, },
}, // 跳转扫码页面
gousearch() {
this.$router.push({ path: "/ScanBarcodes" });
}
}
}; };
</script> </script>
...@@ -212,7 +220,11 @@ export default { ...@@ -212,7 +220,11 @@ export default {
font-size: 0.45rem; font-size: 0.45rem;
color: #ffffff; color: #ffffff;
} }
#topDiv {
position: relative;
}
#centerDiv { #centerDiv {
/* min-height: calc(100vh - 44px); */
height: 94%; height: 94%;
background: #ffffff; background: #ffffff;
} }
...@@ -241,12 +253,10 @@ export default { ...@@ -241,12 +253,10 @@ export default {
} }
.scan-title { .scan-title {
width: 100%; width: 100%;
height: 8%;
display: flex; display: flex;
align-items: center; align-items: center;
box-sizing: border-box; box-sizing: border-box;
padding-left: 0.3rem; padding: 0.3rem;
font-size: 0.45rem;
font-size: 0.35rem; font-size: 0.35rem;
color: #979797; color: #979797;
} }
...@@ -257,60 +267,18 @@ export default { ...@@ -257,60 +267,18 @@ export default {
.title-text { .title-text {
margin: 0; margin: 0;
} }
.list-container {
width: 100%;
height: 70%;
display: flex;
justify-content: center;
flex-wrap: wrap;
align-content: flex-start;
overflow: auto;
}
.item-card {
width: 92%;
height: 38%;
border: 5px solid #009688;
border-radius: 3%;
margin-bottom: 0.2rem;
box-sizing: border-box;
padding: 0.35rem 0.3rem;
background: #ffffff;
}
.item-header {
display: flex;
align-items: center;
margin: 0;
}
.index-badge {
color: #ffffff;
background: #0e9b8e;
border-radius: 50%;
box-sizing: border-box;
font-size: 0.4rem;
display: inline-block;
width: 0.55rem;
height: 0.55rem;
text-align: center;
line-height: 0.55rem;
}
.item-num {
font-size: 0.45rem;
margin-left: 7%;
}
.info-row {
margin: 0;
}
.btn-container { .btn-container {
width: 100%; width: 94%;
height: 20%; margin: auto;
margin-top: 0.2rem; margin-top: 0.2rem;
} }
.query-btn { .query-btn {
width: 92%; width: 100%;
margin: auto; margin: auto;
display: block; display: block;
border-radius: 0.1rem; border-radius: 0.1rem;
height: 40%; height: 1.2rem;
font-size: 0.4rem;
} }
:deep(.van-tabs) { :deep(.van-tabs) {
padding: 0 0.4rem; padding: 0 0.4rem;
...@@ -340,47 +308,43 @@ export default { ...@@ -340,47 +308,43 @@ export default {
.colors { .colors {
color: #979797; color: #979797;
} }
.range-separator { .range-separator {
margin: 0 0.15rem; margin: 0 0.15rem;
} }
.list-header { .list-header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
font-size: 0.35rem; font-size: 0.35rem;
margin-top: 0.55rem; margin-top: 0.55rem;
} }
.total-count { .total-count {
color: #979797; color: #979797;
margin: 0;
} }
.list-content { .list-content {
margin-top: 0.3rem; margin-top: 0.3rem;
height: 11rem; max-height: 11rem;
width: 100%; width: 100%;
overflow: auto; overflow-y: auto;
} }
.list-item { .list-item {
font-size: 0.35rem; font-size: 0.35rem;
height: 2.5rem; margin-bottom: 0.5rem;
} }
.item-row { .item-row {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.item-header-row { .item-header-row {
margin-top: 0.2rem; margin-top: 0.2rem;
display: flex;
align-items: center;
} }
.item-main-row { .item-main-row {
margin: 0.2rem 0; margin: 0.2rem 0;
display: flex;
align-items: center;
} }
.qr-code-text { .qr-code-text {
font-size: 0.4rem; font-size: 0.4rem;
} }
......
...@@ -29,12 +29,9 @@ ...@@ -29,12 +29,9 @@
</p> </p>
<p class="info-row"> <p class="info-row">
<span class="Titles">盒码值:</span> <span class="Titles">盒码值:</span>
<span class="Conts">{{ item.qrCode }}</span> <span class="Conts">{{ formatQrCode(item.qrCode) }}</span>
</p> </p>
<!-- <p class="info-row">-->
<!-- <span class="Titles">件码值:</span>-->
<!-- <span class="Conts">{{ item.parentCode }}</span>-->
<!-- </p>-->
<p class="info-row"> <p class="info-row">
<span class="Titles">机台号:</span> <span class="Titles">机台号:</span>
<span class="Conts">{{ item.boxBarProductLineDeviceCode }}</span> <span class="Conts">{{ item.boxBarProductLineDeviceCode }}</span>
...@@ -104,6 +101,19 @@ export default { ...@@ -104,6 +101,19 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
// 新增方法:格式化盒码值
formatQrCode(qrCode) {
// 先判断是否为有效字符串
if (!qrCode || typeof qrCode !== 'string') {
return qrCode || '';
}
// 如果长度超过35位,截取最后10位并拼接...
if (qrCode.length > 35) {
return '...' + qrCode.slice(-25);
}
// 否则返回原字符串
return qrCode;
},
queryQrCode(qrCode) { queryQrCode(qrCode) {
let query = { let query = {
qrCode: qrCode qrCode: qrCode
...@@ -164,12 +174,12 @@ export default { ...@@ -164,12 +174,12 @@ export default {
color: #ffffff; color: #ffffff;
} }
#centerDiv { #centerDiv {
height: 94%; height: 93%;
} }
:deep(.erricon) { :deep(.erricon) {
font-size: 0.35rem; font-size: 0.35rem;
background: #f3f4f6; background: #f3f4f6;
margin-left: 55%; margin-left: 75%;
box-sizing: border-box; box-sizing: border-box;
width: 0.65rem; width: 0.65rem;
height: 0.65rem; height: 0.65rem;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment