From db42d47f5692ef64e5436c5a6d29dcb537b44596 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 26 一月 2026 16:36:13 +0800
Subject: [PATCH] 浪潮对接单点登录:mis调整

---
 src/views/inventoryManagement/dispatchLog/index.vue |  397 ++++----------------------------------------------------
 1 files changed, 32 insertions(+), 365 deletions(-)

diff --git a/src/views/inventoryManagement/dispatchLog/index.vue b/src/views/inventoryManagement/dispatchLog/index.vue
index c15e73f..88d9984 100644
--- a/src/views/inventoryManagement/dispatchLog/index.vue
+++ b/src/views/inventoryManagement/dispatchLog/index.vue
@@ -1,371 +1,38 @@
+<!-- 鍦ㄤ綘鐨勪富椤甸潰涓� -->
 <template>
-	<div class="app-container">
-		<div class="search_form">
-			<div>
-				<span class="search_title ml10">鍙戞枡鏃ユ湡锛�</span>
-				<el-date-picker
-					v-model="searchForm.timeStr"
-					type="date"
-					placeholder="璇烽�夋嫨鏃ユ湡"
-					value-format="YYYY-MM-DD"
-					format="YYYY-MM-DD"
-					clearable
-					@change="handleQuery"
-				/>
-				<span class="search_title ml10">浜у搧澶х被锛�</span>
-				<el-input
-					v-model="searchForm.productCategory"
-					style="width: 240px"
-					placeholder="璇疯緭鍏�"
-					clearable
-				/>
-				<el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
-			</div>
-			<div>
-				<el-button @click="handleOut">瀵煎嚭</el-button>
-				<el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
-			</div>
-		</div>
-		<div class="table_list">
-			<el-table
-				:data="tableData"
-				border
-				v-loading="tableLoading"
-				@selection-change="handleSelectionChange"
-				:expand-row-keys="expandedRowKeys"
-				:row-key="(row) => row.id"
-				show-summary
-				style="width: 100%"
-				:summary-method="summarizeMainTable"
-				height="calc(100vh - 18.5em)"
-			>
-				<el-table-column align="center" type="selection" width="55" />
-				<el-table-column align="center" label="搴忓彿" type="index" width="60" />
-				<el-table-column label="鍙戞枡鏃ユ湡" prop="createTime" show-overflow-tooltip width="130"/>
-				<el-table-column label="鎵规鍙�" prop="code" width="130" show-overflow-tooltip />
-				<el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip />
-				<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" show-overflow-tooltip />
-				<el-table-column label="鍗曚綅" prop="unit" show-overflow-tooltip />
-				<el-table-column label="鐗╁搧绫诲瀷" prop="itemType" show-overflow-tooltip />
-				<el-table-column label="鍙戞枡鏁伴噺" prop="inboundNum" show-overflow-tooltip />
-				<el-table-column label="鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" width="150"></el-table-column>
-				<el-table-column label="鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" width="150"></el-table-column>
-				<el-table-column label="鍙戞枡浜�" prop="createBy" show-overflow-tooltip />
-			</el-table>
-			<pagination
-				v-show="total > 0"
-				:total="total"
-				layout="total, sizes, prev, pager, next, jumper"
-				:page="page.current"
-				:limit="page.size"
-				@pagination="paginationChange"
-			/>
-		</div>
-	</div>
+  <div class="app-container">
+    <el-tabs v-model="activeTab" @tab-change="handleTabChange">
+      <el-tab-pane v-for="tab in tabs"
+                   :label="tab.label"
+                   :name="tab.name"
+                   :key="tab.name">
+        <record :type="tab.type" v-if="activeTab === tab.name" />
+      </el-tab-pane>
+    </el-tabs>
+  </div>
 </template>
 
 <script setup>
-import pagination from "@/components/PIMTable/Pagination.vue";
-import { ref, reactive, toRefs, onMounted, getCurrentInstance } from "vue";
-import { ElMessageBox } from "element-plus";
-import {
-	delStockOut,
-} from "@/api/inventoryManagement/stockOut.js";
-import {
-	getStockInPageByCustom,
-} from "@/api/inventoryManagement/stockIn.js";
-import { getCurrentDate } from "@/utils/index.js";
-const { proxy } = getCurrentInstance();
-const tableData = ref([]);
-const selectedRows = ref([]);
-const tableLoading = ref(false);
-const page = reactive({
-	current: 1,
-	size: 100,
-});
-const total = ref(0);
+import Record from "@/views/inventoryManagement/dispatchLog/Record.vue";
+const activeTab = ref('qualified')
+const type = ref(0)
+const tabs = computed(() => {
+  return [
+    {
+      label: '鍚堟牸鍑哄簱',
+      name: 'qualified',
+      type: '0'
+    },
+    {
+      label: '涓嶅悎鏍煎嚭搴�',
+      name: 'unqualified',
+      type: '1'
+    }
+  ]
+})
 
-// 鏌ヨ琛ㄥ崟鏁版嵁
-const data = reactive({
-	searchForm: {
-		supplierName: "",
-		customerName: "",
-    	productCategory:'',
-		timeStr: getCurrentDate(),
-	},
-});
-const { searchForm } = toRefs(data);
-
-// 鏌ヨ鍒楄〃
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-const handleQuery = () => {
-	page.current = 1;
-	getList();
-};
-const paginationChange = (obj) => {
-	page.current = obj.page;
-	page.size = obj.limit;
-	getList();
-};
-const getList = () => {
-	tableLoading.value = true;
-	const params = { ...page }
-	params.supplierName = searchForm.value.supplierName
-	params.timeStr = searchForm.value.timeStr
-    params.productCategory = searchForm.value.productCategory
-	
-	// 鏉愭枡鍑哄簱锛氳皟鐢ㄨ嚜瀹氫箟鍑哄簱璁板綍鎺ュ彛
-	const apiCall = getStockInPageByCustom(params)
-	
-	apiCall
-		.then((res) => {
-			tableLoading.value = false;
-			tableData.value = res.data.records;
-			tableData.value.map((item) => {
-				item.children = [];
-				// 鍓嶇璁$畻鎬讳环
-				const inboundNum = Number(item.inboundNum) || 0;
-				// 鏉愭枡鍑哄簱锛氭�讳环 = taxInclusiveUnitPrice 脳 inboundNum
-				const taxInclusiveUnitPrice = Number(item.taxInclusiveUnitPrice) || 0;
-				item.taxInclusiveTotalPrice = (taxInclusiveUnitPrice * inboundNum).toFixed(2);
-			});
-			total.value = res.data.total;
-		})
-		.catch(() => {
-			tableLoading.value = false;
-		});
-};
-
-// 琛ㄦ牸閫夋嫨鏁版嵁
-const handleSelectionChange = (selection) => {
-	// 杩囨护鎺夊瓙鏁版嵁
-	selectedRows.value = selection.filter((item) => item.id);
-	console.log("selection", selectedRows.value);
-};
-const expandedRowKeys = ref([]);
-
-// 涓昏〃鍚堣鏂规硶
-const summarizeMainTable = (param) => {
-	return proxy.summarizeTable(param, [
-		"contractAmount",
-		"taxInclusiveTotalPrice",
-		"taxExclusiveTotalPrice",
-	]);
-};
-
-// 瀵煎嚭
-const handleOut = () => {
-	ElMessageBox.confirm("鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-		confirmButtonText: "纭",
-		cancelButtonText: "鍙栨秷",
-		type: "warning",
-	})
-		.then(() => {
-			// 鏍规嵁涓嶅悓鐨� tab 绫诲瀷璋冪敤涓嶅悓鐨勫鍑烘帴鍙�
-			const exportUrl = "/stockmanagement/exportTwo"
-			proxy.download(exportUrl, {}, "鍑哄簱鍙拌处.xlsx");
-		})
-		.catch(() => {
-			proxy.$modal.msg("宸插彇娑�");
-		});
-};
-
-// 鍒犻櫎
-const handleDelete = () => {
-	let ids = [];
-	if (selectedRows.value.length > 0) {
-		ids = selectedRows.value.map((item) => item.id);
-	} else {
-		proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
-		return;
-	}
-	ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "瀵煎嚭", {
-		confirmButtonText: "纭",
-		cancelButtonText: "鍙栨秷",
-		type: "warning",
-	})
-		.then(() => {
-			delStockOut({ids:ids}).then((res) => {
-				proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-				getList();
-			});
-		})
-		.catch(() => {
-			proxy.$modal.msg("宸插彇娑�");
-		});
-};
-onMounted(() => {
-	getList();
-});
+const handleTabChange = (tabName) => {
+  activeTab.value = tabName;
+  type.value = tabName === 'qualified' ? 0 : 1
+}
 </script>
-
-<style scoped lang="scss">
-.print-preview-dialog {
-	.el-dialog__body {
-		padding: 0;
-		max-height: 80vh;
-		overflow-y: auto;
-	}
-}
-
-.print-preview-container {
-	.print-preview-header {
-		padding: 15px;
-		border-bottom: 1px solid #e4e7ed;
-		text-align: center;
-		
-		.el-button {
-			margin: 0 10px;
-		}
-	}
-	
-	.print-preview-content {
-		padding: 20px;
-		background-color: #f5f5f5;
-		min-height: 400px;
-	}
-}
-
-.print-page {
-	width: 220mm;
-	height: 90mm;
-	padding: 10mm;
-	margin: 0 auto;
-	background: white;
-	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
-	margin-bottom: 10px;
-	box-sizing: border-box;
-}
-
-.delivery-note {
-	width: 100%;
-	height: 100%;
-	font-family: "SimSun", serif;
-	font-size: 10px;
-	line-height: 1.2;
-	display: flex;
-	flex-direction: column;
-}
-
-.header {
-	text-align: center;
-	margin-bottom: 8px;
-	
-	.company-name {
-		font-size: 18px;
-		font-weight: bold;
-		margin-bottom: 4px;
-	}
-	
-	.document-title {
-		font-size: 16px;
-		font-weight: bold;
-	}
-}
-
-.info-section {
-	margin-bottom: 8px;
-	display: flex;
-	justify-content: space-between;
-	align-items: center;
-	
-	.info-row {
-		line-height: 20px;
-		
-		.label {
-			font-weight: bold;
-			width: 60px;
-			font-size: 14px;
-		}
-		
-		.value {
-			margin-right: 20px;
-			min-width: 80px;
-			font-size: 14px;
-		}
-	}
-}
-
-.table-section {
-	margin-bottom: 4px;
-	flex: 1;
-	
-	.product-table {
-		width: 100%;
-		border-collapse: collapse;
-		border: 1px solid #000;
-		
-		th, td {
-			border: 1px solid #000;
-			padding: 6px;
-			text-align: center;
-			font-size: 14px;
-			line-height: 1.4;
-		}
-		
-		th {
-			font-weight: bold;
-		}
-		
-		.total-label {
-			text-align: right;
-			font-weight: bold;
-		}
-		
-		.total-value {
-			font-weight: bold;
-		}
-	}
-}
-
-.footer-section {
-	.footer-row {
-		display: flex;
-		margin-bottom: 3px;
-		line-height: 20px;
-		justify-content: space-between;
-		
-		.footer-item {
-			display: flex;
-			margin-right: 20px;
-			
-			.label {
-				font-weight: bold;
-				width: 80px;
-				font-size: 14px;
-			}
-			
-			.value {
-				min-width: 80px;
-				font-size: 14px;
-			}
-			
-			&.address-item {
-				.address-value {
-					min-width: 200px;
-				}
-			}
-		}
-	}
-}
-
-@media print {
-	.app-container {
-		display: none;
-	}
-	
-	.print-page {
-		box-shadow: none;
-		margin: 0;
-		padding: 10mm;
-		padding-left: 20mm;
-		page-break-inside: avoid;
-		page-break-after: always;
-	}
-	.print-page:last-child {
-		page-break-after: avoid;
-	}
-}
-</style>
-
-

--
Gitblit v1.9.3