From fa4ea8dd99638f58da60ac283186113619cc7e6e Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 23 一月 2026 16:11:57 +0800
Subject: [PATCH] Merge branch 'dev_New' of http://114.132.189.42:9002/r/product-inventory-management into dev_New

---
 src/views/inventoryManagement/dispatchLog/index.vue |  339 ++++---------------------------------------------------
 1 files changed, 29 insertions(+), 310 deletions(-)

diff --git a/src/views/inventoryManagement/dispatchLog/index.vue b/src/views/inventoryManagement/dispatchLog/index.vue
index 1e56a3d..88d9984 100644
--- a/src/views/inventoryManagement/dispatchLog/index.vue
+++ b/src/views/inventoryManagement/dispatchLog/index.vue
@@ -1,319 +1,38 @@
+<!-- 鍦ㄤ綘鐨勪富椤甸潰涓� -->
 <template>
   <div class="app-container">
-    <div class="search_form">
-      <div>
-        <span class="search_title">渚涘簲鍟嗗悕绉帮細</span>
-        <el-input
-          v-model="searchForm.supplierName"
-          style="width: 240px"
-          placeholder="璇疯緭鍏�"
-          @change="handleQuery"
-          clearable
-          prefix-icon="Search"
-        />
-        <el-button type="primary" @click="handleQuery" style="margin-left: 10px"
-          >鎼滅储</el-button
-        >
-      </div>
-      <div>
-        <!-- <el-button type="primary" @click="openForm('add')">鏂板</el-button> -->
-        <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="inboundTime"
-          width="100"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="渚涘簲鍟嗗悕绉�"
-          prop="supplierName"
-          width="160"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="浜у搧澶х被"
-          prop="productCategory"
-          width="100"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="瑙勬牸鍨嬪彿"
-          prop="specificationModel"
-          width="100"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="鍗曚綅"
-          prop="unit"
-          width="80"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="鍑哄簱鏁伴噺"
-          prop="inboundQuantity"
-          width="100"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="鍚◣鍗曚环"
-          prop="taxInclusiveUnitPrice"
-          label="鍚◣鍗曚环(鍏�)"
-          prop="entryDate"
-          width="100"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="鍚◣鎬讳环"
-          prop="taxInclusiveTotalPrice"
-          label="鍚◣鎬讳环(鍏�)"
-          prop="executionDate"
-          width="100"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="绋庣巼"
-          prop="taxRate"
-          label="绋庣巼(%)"
-          prop="executionDate"
-          width="100"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="涓嶅惈绋庢�讳环"
-          prop="taxExclusiveTotalPrice"
-          width="100"
-          label="涓嶅惈绋庢�讳环(鍏�)"
-          prop="executionDate"
-          width="180"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="鍑哄簱浜�"
-          prop="nickname"
-          width="80"
-          show-overflow-tooltip
-        />
-        <!-- <el-table-column
-          fixed="right"
-          label="鎿嶄綔"
-          min-width="60"
-          align="center"
-        >
-          <template #default="scope">
-            <el-button
-              link
-              type="primary"
-              size="small"
-              @click="openForm('edit', scope.row)"
-              >缂栬緫</el-button
-            >
-          </template>
-        </el-table-column> -->
-      </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>
+    <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 } from "vue";
-import { ElMessageBox } from "element-plus";
-import useUserStore from "@/store/modules/user";
-import { userListNoPage } from "@/api/system/user.js";
-import {
-  getStockOutPage,
-  addStockOut,
-  updateStockOut,
-  delStockOut,
-  exportStockOut,
-  getStockManageById
-} from "@/api/inventoryManagement/stockOut.js";
+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 userStore = useUserStore();
-const { proxy } = getCurrentInstance();
-const tableData = ref([]);
-// const productData = ref([]);
-const selectedRows = ref([]);
-const userList = ref([]);
-// const customerOption = ref([]);
-const tableLoading = ref(false);
-const supplierList = ref([])
-const productList = ref([])
-const productModelList = ref([])
-const page = reactive({
-  current: 1,
-  size: 100,
-});
-const total = ref(0);
-const fileList = ref([]);
-
-// 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
-const operationType = ref("");
-const dialogFormVisible = ref(false);
-const data = reactive({
-  searchForm: {
-    supplierName: "",
-  },
-  form: {
-    supplierId: null,
-    supplierName: '',
-    productId: null,
-    productName: '',
-    userId: userStore.userId,
-    nickname: '',
-    model: '',
-    productModelId: null,
-    unit: '',
-    productrecordId: null,
-    taxInclusiveUnitPrice: '',
-    taxInclusiveTotalPrice: '',
-    taxRate: '',
-    taxExclusiveTotalPrice: '',
-    inboundTime: '',
-    inboundBatch: '',
-    inboundQuantity: ''
-  },
-  rules: {
-    supplierId: [{ required: true, message: '璇烽�夋嫨渚涘簲鍟�', trigger: 'change' }],
-    productRecordid: [{ required: true, message: '璇烽�夋嫨浜у搧', trigger: 'change' }],
-    inboundTime: [{ required: true, message: '璇烽�夋嫨鍏ュ簱鏃堕棿', trigger: 'change' }],
-    inboundQuantity: [{ required: true, message: '璇疯緭鍏ュ叆搴撴暟閲�', trigger: 'blur' }]
-  },
-});
-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;
-  getStockOutPage({ ...searchForm.value, ...page })
-    .then((res) => {
-      tableLoading.value = false;
-      tableData.value = res.data.records;
-      tableData.value.map((item) => {
-        item.children = [];
-      });
-      total.value = res.total;
-    })
-    .catch(() => {
-      tableLoading.value = false;
-    });
-};
-// const findNodeById = (nodes, productId) => {
-//   for (let i = 0; i < nodes.length; i++) {
-//     if (nodes[i].value === productId) {
-//       return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
-//     }
-//     if (nodes[i].children && nodes[i].children.length > 0) {
-//       const foundNode = findNodeById(nodes[i].children, productId);
-//       if (foundNode) {
-//         return foundNode.label; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
-//       }
-//     }
-//   }
-//   return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
-// };
-// 琛ㄦ牸閫夋嫨鏁版嵁
-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(() => {
-      proxy.download("/stockmanagement/export", {}, "鍑哄簱鍙拌处.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).then((res) => {
-        proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-        getList();
-      });
-    })
-    .catch(() => {
-      proxy.$modal.msg("宸插彇娑�");
-    });
-};
-// 鑾峰彇褰撳墠鏃ユ湡骞舵牸寮忓寲涓� YYYY-MM-DD
-function getCurrentDate() {
-  const today = new Date();
-  const year = today.getFullYear();
-  const month = String(today.getMonth() + 1).padStart(2, "0"); // 鏈堜唤浠�0寮�濮�
-  const day = String(today.getDate()).padStart(2, "0");
-  return `${year}-${month}-${day}`;
+const handleTabChange = (tabName) => {
+  activeTab.value = tabName;
+  type.value = tabName === 'qualified' ? 0 : 1
 }
-onMounted(() => {
-  getList();
-});
 </script>
-
-<style scoped lang="scss"></style>

--
Gitblit v1.9.3