1. 通用优化: - 统一系统标题为"库房客户端"/"MES产线控制",移除北自所前缀 - 调整内置账号密码为统一123456,优化密码校验逻辑 - 新增数据库自动创建逻辑,简化部署流程 - 修复日志时间格式配置,优化日志输出 - 新增纯数字密码安全提示 2. MES系统优化: - 新增日排产管理功能,支持增删改查与自动算料生成备料单 - 重构BOM模块,改为按产品编码维护而非工单维度 - 新增工艺参数模板配置与手动报工页面 - 新增产品类型自动编码功能 - 优化菜单结构,调整工单管理、扫码报工等页面名称与路由 - 新增删除日排产接口与权限保护 - 修复物料清单查询逻辑,适配新BOM结构 - 新增refreshToken支持,优化登录会话管理 3. WMS系统优化: - 新增基础数据维护页面,支持区域与物料档案管理 - 新增工单列表下拉接口,对接MES获取未完成工单优先展示 - 优化入库管理提示文案,替换英文提示为中文 - 修复精密件入库校验逻辑,优化错误提示 - 优化Excel导入功能,新增备注字段支持 - 优化登录页面与菜单文案,统一备料台账名称 - 新增自动打开浏览器功能,优化客户端启动体验 - 修复备料出库页面查询提示文案 - 新增WMS与MES对接配置,完善内部API调用逻辑 4. 其他优化: - 删除冗余的旧版静态资源文件,更新资源引用路径 - 新增帮助文档,完善基础数据模块说明 - 修复多处文案不统一、英文残留问题
91 lines
3.1 KiB
Vue
91 lines
3.1 KiB
Vue
<script setup>
|
||
import { reactive, ref } from 'vue'
|
||
import request from '../utils/request'
|
||
import PageHelp from '../components/PageHelp.vue'
|
||
import { helpLedger } from '../help'
|
||
|
||
const orderNo = ref('')
|
||
const loading = ref(false)
|
||
const queried = ref(false)
|
||
const rows = ref([])
|
||
const total = ref(0)
|
||
const page = reactive({ current: 1, size: 20 })
|
||
|
||
function gapOf(row) {
|
||
return Math.max((row.totalQty || 0) - (row.outQty || 0), 0)
|
||
}
|
||
|
||
async function load() {
|
||
if (!orderNo.value.trim()) return
|
||
loading.value = true
|
||
try {
|
||
const data = await request.get('/ledger/query', {
|
||
params: { orderNo: orderNo.value.trim(), page: page.current, pageSize: page.size }
|
||
})
|
||
rows.value = data?.list || []
|
||
total.value = data?.total || 0
|
||
queried.value = true
|
||
} finally {
|
||
loading.value = false
|
||
}
|
||
}
|
||
|
||
function search() {
|
||
page.current = 1
|
||
load()
|
||
}
|
||
|
||
function statusTag(s) {
|
||
return s === '领料完结' ? 'success' : s === '进行中' ? 'primary' : 'info'
|
||
}
|
||
</script>
|
||
|
||
<template>
|
||
<div>
|
||
<el-card shadow="never" class="mb12">
|
||
<el-form inline @submit.prevent="search">
|
||
<el-form-item label="工单号">
|
||
<el-input v-model="orderNo" placeholder="输入工单号查询物料台账" clearable autofocus
|
||
style="width:280px" @keyup.enter="search" />
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" :loading="loading" @click="search">查询</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-card>
|
||
|
||
<el-card v-if="queried" shadow="never">
|
||
<template #header>工单 {{ orderNo }} 备料台账(共 {{ total }} 条)</template>
|
||
<el-table :data="rows" border v-loading="loading" empty-text="暂无台账数据">
|
||
<el-table-column prop="orderNo" label="工单号" min-width="140" />
|
||
<el-table-column prop="materialCode" label="物料编码" min-width="150" />
|
||
<el-table-column prop="materialName" label="物料名称" min-width="150">
|
||
<template #default="{ row }">{{ row.materialName || '-' }}</template>
|
||
</el-table-column>
|
||
<el-table-column prop="totalQty" label="需求总量" width="100" align="center" />
|
||
<el-table-column prop="outQty" label="已出库" width="90" align="center" />
|
||
<el-table-column label="缺口" width="90" align="center">
|
||
<template #default="{ row }">{{ gapOf(row) }}</template>
|
||
</el-table-column>
|
||
<el-table-column label="状态" width="110" align="center">
|
||
<template #default="{ row }">
|
||
<el-tag :type="statusTag(row.status)" size="small">{{ row.status }}</el-tag>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="pager">
|
||
<el-pagination background layout="total, prev, pager, next" :total="total"
|
||
:current-page="page.current" :page-size="page.size"
|
||
@current-change="(p) => { page.current = p; load() }" />
|
||
</div>
|
||
</el-card>
|
||
|
||
<el-empty v-else description="请输入工单号查询" />
|
||
</div>
|
||
<PageHelp :data="helpLedger" />
|
||
</template>
|
||
|
||
<style scoped>
|
||
.mb12 { margin-bottom: 12px; }
|
||
.pager { display: flex; justify-content: flex-end; margin-top: 10px; }
|
||
</style> |