|
@@ -31,10 +31,12 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
|
|
|
|
|
- <el-table :data="rows" row-key="id" v-loading="loading" border stripe>
|
|
|
|
|
|
|
+ <el-table :data="rows" v-loading="loading" border stripe>
|
|
|
<el-table-column prop="inboundNo" label="入库单号" min-width="150" show-overflow-tooltip resizable />
|
|
<el-table-column prop="inboundNo" label="入库单号" min-width="150" show-overflow-tooltip resizable />
|
|
|
<el-table-column prop="lineNo" label="项次" min-width="90" resizable />
|
|
<el-table-column prop="lineNo" label="项次" min-width="90" resizable />
|
|
|
- <el-table-column prop="inboundDate" label="入库日期" min-width="150" resizable />
|
|
|
|
|
|
|
+ <el-table-column prop="inboundDate" label="入库日期" min-width="150" resizable>
|
|
|
|
|
+ <template #default="{ row }">{{ fmtDate(row.inboundDate) }}</template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="status" label="状态" min-width="100" resizable />
|
|
<el-table-column prop="status" label="状态" min-width="100" resizable />
|
|
|
<el-table-column prop="inboundType" label="入库类型" min-width="120" resizable />
|
|
<el-table-column prop="inboundType" label="入库类型" min-width="120" resizable />
|
|
|
<el-table-column prop="productionLine" label="生产线" min-width="120" show-overflow-tooltip resizable />
|
|
<el-table-column prop="productionLine" label="生产线" min-width="120" show-overflow-tooltip resizable />
|
|
@@ -48,7 +50,9 @@
|
|
|
<el-table-column prop="qty" label="数量" min-width="100" resizable />
|
|
<el-table-column prop="qty" label="数量" min-width="100" resizable />
|
|
|
<el-table-column prop="unit" label="单位" min-width="90" resizable />
|
|
<el-table-column prop="unit" label="单位" min-width="90" resizable />
|
|
|
<el-table-column prop="relatedBillNo" label="相关单号" min-width="150" show-overflow-tooltip resizable />
|
|
<el-table-column prop="relatedBillNo" label="相关单号" min-width="150" show-overflow-tooltip resizable />
|
|
|
- <el-table-column prop="createTime" label="创建时间" min-width="170" resizable />
|
|
|
|
|
|
|
+ <el-table-column prop="createTime" label="创建时间" min-width="170" resizable>
|
|
|
|
|
+ <template #default="{ row }">{{ fmtDateTime(row.createTime) }}</template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<template #empty>
|
|
<template #empty>
|
|
|
<el-empty description="暂无数据" />
|
|
<el-empty description="暂无数据" />
|
|
|
</template>
|
|
</template>
|
|
@@ -61,15 +65,19 @@
|
|
|
:total="total"
|
|
:total="total"
|
|
|
:page-sizes="[10, 20, 50]"
|
|
:page-sizes="[10, 20, 50]"
|
|
|
layout="total, sizes, prev, pager, next"
|
|
layout="total, sizes, prev, pager, next"
|
|
|
|
|
+ @current-change="loadList"
|
|
|
|
|
+ @size-change="loadList"
|
|
|
/>
|
|
/>
|
|
|
</div>
|
|
</div>
|
|
|
</AidopDemoShell>
|
|
</AidopDemoShell>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts" name="aidopS7ProductionReceiptOrderList">
|
|
<script setup lang="ts" name="aidopS7ProductionReceiptOrderList">
|
|
|
-import { computed, reactive, ref } from 'vue';
|
|
|
|
|
|
|
+import { computed, onActivated, onMounted, reactive, ref } from 'vue';
|
|
|
import { useRoute } from 'vue-router';
|
|
import { useRoute } from 'vue-router';
|
|
|
|
|
+import { ElMessage } from 'element-plus';
|
|
|
import AidopDemoShell from '/@/views/aidop/components/AidopDemoShell.vue';
|
|
import AidopDemoShell from '/@/views/aidop/components/AidopDemoShell.vue';
|
|
|
|
|
+import { fetchProductionInboundList, type ProductionInboundRow } from '../api/productionInbound';
|
|
|
|
|
|
|
|
const route = useRoute();
|
|
const route = useRoute();
|
|
|
const pageTitle = computed(() => (route.meta?.title as string) || '生产入库单列表');
|
|
const pageTitle = computed(() => (route.meta?.title as string) || '生产入库单列表');
|
|
@@ -87,15 +95,49 @@ const query = reactive({
|
|
|
|
|
|
|
|
const inboundDateRange = ref<[string, string] | null>(null);
|
|
const inboundDateRange = ref<[string, string] | null>(null);
|
|
|
|
|
|
|
|
-// 本批次为只读 UI 骨架,尚无真实生产入库单接口:渲染空表,不发请求、不造数据。
|
|
|
|
|
const loading = ref(false);
|
|
const loading = ref(false);
|
|
|
-const rows = ref<Record<string, unknown>[]>([]);
|
|
|
|
|
|
|
+const rows = ref<ProductionInboundRow[]>([]);
|
|
|
const total = ref(0);
|
|
const total = ref(0);
|
|
|
|
|
|
|
|
|
|
+function fmtDate(v?: string | null) {
|
|
|
|
|
+ if (!v) return '';
|
|
|
|
|
+ return String(v).slice(0, 10);
|
|
|
|
|
+}
|
|
|
|
|
+function fmtDateTime(v?: string | null) {
|
|
|
|
|
+ if (!v) return '';
|
|
|
|
|
+ const s = String(v);
|
|
|
|
|
+ return s.length > 19 ? s.slice(0, 19).replace('T', ' ') : s.replace('T', ' ');
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+async function loadList() {
|
|
|
|
|
+ loading.value = true;
|
|
|
|
|
+ try {
|
|
|
|
|
+ query.inboundDateStart = inboundDateRange.value?.[0] || '';
|
|
|
|
|
+ query.inboundDateEnd = inboundDateRange.value?.[1] || '';
|
|
|
|
|
+ const data = await fetchProductionInboundList({
|
|
|
|
|
+ inboundNo: query.inboundNo,
|
|
|
|
|
+ workOrderNo: query.workOrderNo,
|
|
|
|
|
+ erpWorkOrderNo: query.erpWorkOrderNo,
|
|
|
|
|
+ batch: query.batch,
|
|
|
|
|
+ inboundDateStart: query.inboundDateStart,
|
|
|
|
|
+ inboundDateEnd: query.inboundDateEnd,
|
|
|
|
|
+ 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() {
|
|
function doSearch() {
|
|
|
- query.inboundDateStart = inboundDateRange.value?.[0] || '';
|
|
|
|
|
- query.inboundDateEnd = inboundDateRange.value?.[1] || '';
|
|
|
|
|
query.page = 1;
|
|
query.page = 1;
|
|
|
|
|
+ loadList();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function resetQuery() {
|
|
function resetQuery() {
|
|
@@ -107,7 +149,11 @@ function resetQuery() {
|
|
|
query.inboundDateStart = '';
|
|
query.inboundDateStart = '';
|
|
|
query.inboundDateEnd = '';
|
|
query.inboundDateEnd = '';
|
|
|
query.page = 1;
|
|
query.page = 1;
|
|
|
|
|
+ loadList();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+onMounted(() => loadList());
|
|
|
|
|
+onActivated(() => loadList());
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|