|
|
@@ -1,51 +1,41 @@
|
|
|
<template>
|
|
|
- <AidopDemoShell :title="pageTitle" subtitle="只读列表">
|
|
|
- <div class="filter-hint">查询条件:未检验;</div>
|
|
|
+ <AidopDemoShell :title="pageTitle" subtitle="基于来料检验单 qms_qcp_inspbill(只读列表)">
|
|
|
<el-form :inline="true" :model="query" class="mb12" @submit.prevent>
|
|
|
- <el-form-item label="单据编号">
|
|
|
+ <el-form-item label="检验单号">
|
|
|
<el-input v-model="query.billNo" clearable style="width: 200px" />
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="来源单号">
|
|
|
+ <el-input v-model="query.sourceBillNo" clearable style="width: 200px" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="物料编码">
|
|
|
<el-input v-model="query.materialCode" clearable style="width: 200px" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="物料名称">
|
|
|
<el-input v-model="query.materialName" clearable style="width: 200px" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="申请时间-始">
|
|
|
- <el-date-picker v-model="query.applyTimeStart" type="date" value-format="YYYY-MM-DD" style="width: 180px" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="申请时间-终">
|
|
|
- <el-date-picker v-model="query.applyTimeEnd" type="date" value-format="YYYY-MM-DD" style="width: 180px" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="检验进度">
|
|
|
- <el-input v-model="query.inspectProgress" clearable style="width: 200px" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="检验优先级">
|
|
|
- <el-select v-model="query.priority" placeholder="请选择" clearable style="width: 200px" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="检验负责人">
|
|
|
- <el-select v-model="query.inspector" placeholder="请选择" clearable style="width: 200px" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="供应商批号">
|
|
|
- <el-input v-model="query.supplierBatchNo" clearable style="width: 200px" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="供应商简称">
|
|
|
- <el-input v-model="query.supplierShortName" clearable style="width: 200px" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="瑞奇批号">
|
|
|
- <el-input v-model="query.rqBatchNo" clearable style="width: 200px" />
|
|
|
+ <el-form-item label="供应商">
|
|
|
+ <el-input v-model="query.supplierName" clearable style="width: 200px" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="检验开始时间-始">
|
|
|
- <el-date-picker v-model="query.inspectStartFrom" type="date" value-format="YYYY-MM-DD" style="width: 180px" />
|
|
|
+ <el-form-item label="批次">
|
|
|
+ <el-input v-model="query.lotNo" clearable style="width: 200px" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="检验开始时间-终">
|
|
|
- <el-date-picker v-model="query.inspectStartTo" type="date" value-format="YYYY-MM-DD" style="width: 180px" />
|
|
|
+ <el-form-item label="检验状态">
|
|
|
+ <el-input v-model="query.billStatus" clearable style="width: 160px" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="检验完成时间-始">
|
|
|
- <el-date-picker v-model="query.inspectFinishFrom" type="date" value-format="YYYY-MM-DD" style="width: 180px" />
|
|
|
+ <el-form-item label="检验员">
|
|
|
+ <el-input v-model="query.inspector" clearable style="width: 160px" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="检验完成时间-终">
|
|
|
- <el-date-picker v-model="query.inspectFinishTo" type="date" value-format="YYYY-MM-DD" style="width: 180px" />
|
|
|
+ <el-form-item label="检验日期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="inspectDateRange"
|
|
|
+ type="daterange"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ range-separator="-"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ unlink-panels
|
|
|
+ style="width: 260px"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="doSearch">查询</el-button>
|
|
|
@@ -54,22 +44,23 @@
|
|
|
</el-form>
|
|
|
|
|
|
<el-table :data="rows" row-key="id" v-loading="loading" border stripe>
|
|
|
- <el-table-column prop="supplierBatchNo" label="供应商批号" min-width="140" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="rqBatchNo" label="瑞奇批号" min-width="140" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="supplierCode" label="供应商编号" min-width="140" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="supplierShortName" label="供应商简称" min-width="140" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="warehouse" label="仓库" min-width="120" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="shelf" label="货架" min-width="120" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="materialCode" label="物料编码" min-width="140" show-overflow-tooltip resizable />
|
|
|
+ <el-table-column prop="billNo" label="检验单号" min-width="170" show-overflow-tooltip resizable />
|
|
|
+ <el-table-column prop="sourceBillNo" label="来源单号" min-width="170" show-overflow-tooltip resizable />
|
|
|
+ <el-table-column prop="materialCode" label="物料编码" min-width="130" show-overflow-tooltip resizable />
|
|
|
<el-table-column prop="materialName" label="物料名称" min-width="160" show-overflow-tooltip resizable />
|
|
|
<el-table-column prop="spec" label="规格型号" min-width="140" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="inspectQty" label="报检数量" min-width="110" resizable />
|
|
|
- <el-table-column prop="unit" label="单位" min-width="90" resizable />
|
|
|
- <el-table-column prop="inspectProgress" label="检验进度" min-width="110" resizable />
|
|
|
- <el-table-column prop="priority" label="检验优先级" min-width="110" resizable />
|
|
|
- <el-table-column prop="inspector" label="检验负责人" min-width="120" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="inspectStartTime" label="检验开始时间" min-width="170" resizable />
|
|
|
- <el-table-column prop="inspectFinishTime" label="检验完成时间" min-width="170" resizable />
|
|
|
+ <el-table-column prop="supplierName" label="供应商" min-width="150" show-overflow-tooltip resizable />
|
|
|
+ <el-table-column prop="lotNo" label="批次" min-width="130" show-overflow-tooltip resizable />
|
|
|
+ <el-table-column prop="reportQty" label="报检数量" min-width="100" align="right" resizable />
|
|
|
+ <el-table-column prop="inspectQty" label="检验数量" min-width="100" align="right" resizable />
|
|
|
+ <el-table-column prop="qualifiedQty" label="合格数量" min-width="100" align="right" resizable />
|
|
|
+ <el-table-column prop="unqualifiedQty" label="不合格数量" min-width="110" align="right" resizable />
|
|
|
+ <el-table-column prop="judgement" label="判定" min-width="90" resizable />
|
|
|
+ <el-table-column prop="processMethod" label="处理方式" min-width="100" resizable />
|
|
|
+ <el-table-column prop="billStatus" label="状态" min-width="90" resizable />
|
|
|
+ <el-table-column prop="inspectStartDate" label="检验开始时间" min-width="150" resizable>
|
|
|
+ <template #default="{ row }">{{ fmtDate(row.inspectStartDate) }}</template>
|
|
|
+ </el-table-column>
|
|
|
<template #empty>
|
|
|
<el-empty description="暂无数据" />
|
|
|
</template>
|
|
|
@@ -82,73 +73,109 @@
|
|
|
:total="total"
|
|
|
:page-sizes="[10, 20, 50]"
|
|
|
layout="total, sizes, prev, pager, next"
|
|
|
+ @current-change="loadList"
|
|
|
+ @size-change="loadList"
|
|
|
/>
|
|
|
</div>
|
|
|
</AidopDemoShell>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts" name="aidopS5IqcTaskList">
|
|
|
-import { computed, reactive, ref } from 'vue';
|
|
|
+import { computed, onActivated, onMounted, reactive, ref } from 'vue';
|
|
|
import { useRoute } from 'vue-router';
|
|
|
+import { ElMessage } from 'element-plus';
|
|
|
import AidopDemoShell from '/@/views/aidop/components/AidopDemoShell.vue';
|
|
|
+import { fetchIqcInspBillList, type IqcInspBillRow } from '../api/iqcInspBill';
|
|
|
|
|
|
const route = useRoute();
|
|
|
const pageTitle = computed(() => (route.meta?.title as string) || '来料检验任务列表');
|
|
|
|
|
|
+// S5 来料检验单只读列表(S5-IQC-INSPBILL-READONLY-LIST-1)。
|
|
|
+// 数据源 aidopdev.qms_qcp_inspbill 单表直读,后端 api/S5IqcInspBill。作后续检验流程主入口。
|
|
|
+// 只读:无认领/调配/检验完成/结果录入/主管审核/SQE处置/仓储通知/入库/详情/新增/编辑/删除/导出。
|
|
|
+// 表无 tenant_id、FORGID 全 NULL:不做租户/组织过滤。pd/clfs/FBILLSTATUS 字典未闭合 → raw 展示。
|
|
|
const query = reactive({
|
|
|
billNo: '',
|
|
|
+ sourceBillNo: '',
|
|
|
materialCode: '',
|
|
|
materialName: '',
|
|
|
- applyTimeStart: '',
|
|
|
- applyTimeEnd: '',
|
|
|
- inspectProgress: '未检验',
|
|
|
- priority: '',
|
|
|
+ supplierName: '',
|
|
|
+ lotNo: '',
|
|
|
+ billStatus: '',
|
|
|
inspector: '',
|
|
|
- supplierBatchNo: '',
|
|
|
- supplierShortName: '',
|
|
|
- rqBatchNo: '',
|
|
|
- inspectStartFrom: '',
|
|
|
- inspectStartTo: '',
|
|
|
- inspectFinishFrom: '',
|
|
|
- inspectFinishTo: '',
|
|
|
+ inspectDateFrom: '',
|
|
|
+ inspectDateTo: '',
|
|
|
page: 1,
|
|
|
- pageSize: 10,
|
|
|
+ pageSize: 20,
|
|
|
});
|
|
|
|
|
|
-// 本批次为只读 UI 骨架,尚无真实检验任务接口:渲染空表,不发请求、不造数据。
|
|
|
+const inspectDateRange = ref<[string, string] | null>(null);
|
|
|
+
|
|
|
const loading = ref(false);
|
|
|
-const rows = ref<Record<string, unknown>[]>([]);
|
|
|
+const rows = ref<IqcInspBillRow[]>([]);
|
|
|
const total = ref(0);
|
|
|
|
|
|
+function fmtDate(v?: string | null) {
|
|
|
+ if (!v) return '';
|
|
|
+ return String(v).slice(0, 10);
|
|
|
+}
|
|
|
+
|
|
|
+async function loadList() {
|
|
|
+ loading.value = true;
|
|
|
+ try {
|
|
|
+ const data = await fetchIqcInspBillList({
|
|
|
+ billNo: query.billNo,
|
|
|
+ sourceBillNo: query.sourceBillNo,
|
|
|
+ materialCode: query.materialCode,
|
|
|
+ materialName: query.materialName,
|
|
|
+ supplierName: query.supplierName,
|
|
|
+ lotNo: query.lotNo,
|
|
|
+ billStatus: query.billStatus,
|
|
|
+ inspector: query.inspector,
|
|
|
+ inspectDateFrom: query.inspectDateFrom,
|
|
|
+ inspectDateTo: query.inspectDateTo,
|
|
|
+ page: query.page,
|
|
|
+ pageSize: query.pageSize,
|
|
|
+ });
|
|
|
+ rows.value = data.list || [];
|
|
|
+ total.value = data.total || 0;
|
|
|
+ } catch (e: any) {
|
|
|
+ rows.value = [];
|
|
|
+ total.value = 0;
|
|
|
+ ElMessage.error(e?.message || '加载来料检验单列表失败');
|
|
|
+ } finally {
|
|
|
+ loading.value = false;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
function doSearch() {
|
|
|
+ query.inspectDateFrom = inspectDateRange.value?.[0] || '';
|
|
|
+ query.inspectDateTo = inspectDateRange.value?.[1] || '';
|
|
|
query.page = 1;
|
|
|
+ loadList();
|
|
|
}
|
|
|
|
|
|
function resetQuery() {
|
|
|
query.billNo = '';
|
|
|
+ query.sourceBillNo = '';
|
|
|
query.materialCode = '';
|
|
|
query.materialName = '';
|
|
|
- query.applyTimeStart = '';
|
|
|
- query.applyTimeEnd = '';
|
|
|
- query.inspectProgress = '未检验';
|
|
|
- query.priority = '';
|
|
|
+ query.supplierName = '';
|
|
|
+ query.lotNo = '';
|
|
|
+ query.billStatus = '';
|
|
|
query.inspector = '';
|
|
|
- query.supplierBatchNo = '';
|
|
|
- query.supplierShortName = '';
|
|
|
- query.rqBatchNo = '';
|
|
|
- query.inspectStartFrom = '';
|
|
|
- query.inspectStartTo = '';
|
|
|
- query.inspectFinishFrom = '';
|
|
|
- query.inspectFinishTo = '';
|
|
|
+ inspectDateRange.value = null;
|
|
|
+ query.inspectDateFrom = '';
|
|
|
+ query.inspectDateTo = '';
|
|
|
query.page = 1;
|
|
|
+ loadList();
|
|
|
}
|
|
|
+
|
|
|
+onMounted(() => loadList());
|
|
|
+onActivated(() => loadList());
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
-.filter-hint {
|
|
|
- font-weight: bold;
|
|
|
- margin-bottom: 10px;
|
|
|
-}
|
|
|
.mb12 {
|
|
|
margin-bottom: 12px;
|
|
|
}
|