云
4 小时以前 fb4db4ae9b6a7f113ba049f6789e6916c0dcc276
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script setup lang="ts">
import { onMounted,ref } from 'vue';
import type { MesProScanEventApi } from '#/api/mes/pro/scanEvent';
import { myRecords,errorText } from '#/mobile/api';
const now=new Date();
const day=ref(now.getFullYear()+'-'+String(now.getMonth()+1).padStart(2,'0')+'-'+String(now.getDate()).padStart(2,'0'));
const status=ref(''),page=ref(1),total=ref(0),busy=ref(false),error=ref(''),rows=ref<MesProScanEventApi.ScanEvent[]>([]);
let applied={day:day.value,status:status.value};
async function load(reset=false){
if(busy.value)return;busy.value=true;error.value='';const nextPage=reset?1:page.value+1;
const filters=reset?{day:day.value,status:status.value}:applied;
try{const r=await myRecords({pageNo:nextPage,pageSize:20,status:filters.status||undefined,receivedTime:filters.day?[filters.day+' 00:00:00',filters.day+' 23:59:59']:undefined});rows.value=reset?r.list:[...rows.value,...r.list];total.value=r.total;page.value=nextPage;applied=filters;}
catch(e){error.value=errorText(e);}finally{busy.value=false;}
}
onMounted(()=>load(true));
</script>
<template>
<form class="m-panel" @submit.prevent="load(true)"><label class="m-field"><span>作业日期</span><input v-model="day" type="date"/></label><label class="m-field"><span>结果</span><select v-model="status"><option value="">全部结果</option><option value="SUCCESS">已入库</option><option value="FAILED">失败</option></select></label><button class="m-secondary" :disabled="busy">{{busy?'正在查询…':'查询本人记录'}}</button></form>
<p v-if="error" class="m-error" role="alert">{{error}}</p><p v-if="!rows.length&&!busy" class="m-empty">该日期暂无扫码入库记录</p>
<article v-for="r in rows" :key="r.id" class="m-panel"><span :class="['m-status',r.status?.toLowerCase()]">{{r.status==='SUCCESS'?'已入库':'处理失败'}}</span><h2 class="m-title" style="margin-top:8px">{{r.bagCode}}</h2><p class="m-muted">{{r.receivedTime}}</p><p v-if="r.errorMessage" class="m-error">{{r.errorMessage}}</p><details><summary class="m-link">查看本次作业明细</summary><dl><div class="m-row"><dt>操作号</dt><dd>{{r.eventId}}</dd></div><div class="m-row"><dt>批次</dt><dd>{{r.batchCode||'未解析'}}</dd></div><div class="m-row"><dt>扫码类型</dt><dd>{{r.scanType}}</dd></div><div class="m-row"><dt>数量</dt><dd>{{r.quantity}}</dd></div><div class="m-row"><dt>完成时间</dt><dd>{{r.eventTime||'未完成'}}</dd></div></dl></details></article>
<button v-if="rows.length<total" class="m-secondary" :disabled="busy" @click="load()">加载更多</button>
</template>