chore: 批量完成项目多模块迭代优化

1. 废弃半成品库存表并统一库存主表
2. 修复列表排序与搜索大小写不敏感问题
3. 新增用户最近登录时间、工单BOM名称字段
4. 完善角色管理、工位选择器功能
5. 增加拧紧数据补录、成品自动回流WMS能力
6. 统一导出时间范围校验规则
7. 丰富物料/备料单筛选条件
8. 调整菜单与权限命名适配产品型号业务
This commit is contained in:
SunYF
2026-09-08 11:44:04 +08:00
parent 06689970e2
commit e852c7cd37
96 changed files with 4528 additions and 542 deletions
+18 -4
View File
@@ -1,5 +1,7 @@
<template>
<el-card>
<el-tabs v-model="tab" @tab-change="onTab">
<el-tab-pane label="报工录入" name="entry">
<el-form inline>
<el-form-item label="工位">
<el-select v-model="form.stationNo" placeholder="请选择工位" style="width:120px" @change="loadSteps">
@@ -7,7 +9,7 @@
</el-select>
</el-form-item>
<el-form-item label="工件SN"><el-input v-model="form.sn" placeholder="扫码或手输" style="width:190px" @change="loadSteps" /></el-form-item>
<el-form-item><el-button type="primary" @click="loadSteps">载入工序步骤</el-button></el-form-item>
<el-form-item><el-tag v-if="steps.length" type="success" size="small">已自动载入当前工位应做步骤</el-tag></el-form-item>
</el-form>
<!-- 参数采集区:按该工位启用工艺流程的工序步骤动态渲染 -->
@@ -85,7 +87,8 @@
</el-card>
<el-alert v-if="!steps.length && !bindPanel" type="info" :closable="false" title="请选择工位、输入SN后点【载入工序步骤】;若提示未配置工序步骤,请到「工艺流程」为该工位启用流程并维护工序步骤" />
<el-divider content-position="left">报工记录</el-divider>
</el-tab-pane>
<el-tab-pane label="报工记录" name="records" lazy>
<el-form inline>
<el-form-item label="SN"><el-input v-model="query.sn" clearable style="width:160px" /></el-form-item>
<el-form-item label="工单号"><el-input v-model="query.orderNo" clearable style="width:160px" /></el-form-item>
@@ -100,6 +103,10 @@
<el-table-column prop="operator" label="操作人" width="90" />
<el-table-column prop="time" label="时间" min-width="170" />
</el-table>
<el-pagination style="margin-top:12px;justify-content:flex-end" background layout="total, prev, pager, next"
:total="recordsTotal" :page-size="recordsSize" v-model:current-page="recordsPage" @current-change="load" />
</el-tab-pane>
</el-tabs>
</el-card>
<PageHelp :data="helpScan" page="Scan" />
</template>
@@ -112,6 +119,10 @@ import { can } from '../utils/perm'
import PageHelp from '../components/PageHelp.vue'
import { helpScan } from '../help'
const tab = ref('entry')
const recordsPage = ref(1)
const recordsSize = ref(20)
const recordsTotal = ref(0)
const form = reactive({ stationNo: 1, sn: '' })
const steps = ref([])
const flowName = ref('')
@@ -211,7 +222,10 @@ async function submit() {
}
async function load() {
list.value = (await request.get('/scan/records', { params: query })) || []
const data = await request.get('/scan/records', { params: { ...query, page: recordsPage.value, pageSize: recordsSize.value } })
list.value = data?.list || []
recordsTotal.value = data?.total || 0
}
onMounted(load)
function onTab(name) { if (name === 'records' && !list.value.length) load() }
onMounted(() => { if (form.stationNo) loadSteps() })
</script>