feat:多项功能优化
This commit is contained in:
@@ -1,73 +0,0 @@
|
||||
<template>
|
||||
<el-card>
|
||||
<el-alert type="info" :closable="false" style="margin-bottom:12px"
|
||||
title="数量不符上报:工位收料时发现「实收数量」与备料单「应发数量」不一致,由工位终端或本页上报。系统自动算出差异并落预警,供生产/仓库核实处理。" />
|
||||
|
||||
<el-form inline>
|
||||
<el-form-item label="状态">
|
||||
<el-select v-model="query.status" clearable placeholder="全部" style="width:130px" @change="load">
|
||||
<el-option label="待处理" value="PENDING" />
|
||||
<el-option label="已处理" value="RESOLVED" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单号"><el-input v-model="query.orderNo" clearable style="width:160px" @keyup.enter="load" /></el-form-item>
|
||||
<el-form-item label="图号"><el-input v-model="query.materialCode" clearable style="width:150px" placeholder="不区分大小写" @keyup.enter="load" /></el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="load">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-table :data="list" border size="small">
|
||||
<el-table-column prop="stationNo" label="工位" width="70" align="center" />
|
||||
<el-table-column prop="orderNo" label="工单号" min-width="130" />
|
||||
<el-table-column prop="sn" label="产品序列号" min-width="140" />
|
||||
<el-table-column prop="materialCode" label="图号" min-width="110" />
|
||||
<el-table-column prop="materialName" label="物料名称" min-width="110" />
|
||||
<el-table-column prop="planQty" label="应发" width="70" align="center" />
|
||||
<el-table-column prop="actualQty" label="实收" width="70" align="center" />
|
||||
<el-table-column label="差异" width="80" align="center">
|
||||
<template #default="{row}">
|
||||
<span :style="{ color: row.diffQty === 0 ? '#909399' : (row.diffQty > 0 ? '#67c23a' : '#f56c6c'), fontWeight: 600 }">
|
||||
{{ row.diffQty > 0 ? '+' + row.diffQty : row.diffQty }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cause" label="原因" min-width="140" show-overflow-tooltip />
|
||||
<el-table-column label="状态" width="90" align="center">
|
||||
<template #default="{row}">
|
||||
<el-tag :type="row.status === 'RESOLVED' ? 'success' : 'warning'" size="small">
|
||||
{{ row.status === 'RESOLVED' ? '已处理' : '待处理' }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="operator" label="上报人" width="90" />
|
||||
<el-table-column label="上报时间" width="160">
|
||||
<template #default="{row}">{{ fmtTime(row.createdAt) }}</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
<PageHelp :data="helpQtyReport" page="QtyReport" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, ref, onMounted } from 'vue'
|
||||
import request from '../utils/request'
|
||||
import PageHelp from '../components/PageHelp.vue'
|
||||
import { helpQtyReport } from '../help'
|
||||
|
||||
const query = reactive({ status: '', orderNo: '', materialCode: '' })
|
||||
const list = ref([])
|
||||
|
||||
function fmtTime(t) {
|
||||
if (!t) return '-'
|
||||
const d = new Date(t)
|
||||
if (isNaN(d.getTime())) return t
|
||||
const p = (n) => String(n).padStart(2, '0')
|
||||
return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}`
|
||||
}
|
||||
|
||||
async function load() {
|
||||
list.value = (await request.get('/qty-reports', { params: query })) || []
|
||||
}
|
||||
onMounted(() => { load() })
|
||||
</script>
|
||||
Reference in New Issue
Block a user