From 2291b7406cdc184abfa1b1986baeb55499771343 Mon Sep 17 00:00:00 2001
From: ZN <zhang_12370@163.com>
Date: 星期一, 16 三月 2026 17:07:15 +0800
Subject: [PATCH] fix(设备管理): 修正添加维护接口的URL路径

---
 src/pages/consumablesLogistics/dispatchLog/Record.vue |  197 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 197 insertions(+), 0 deletions(-)

diff --git a/src/pages/consumablesLogistics/dispatchLog/Record.vue b/src/pages/consumablesLogistics/dispatchLog/Record.vue
new file mode 100644
index 0000000..a4afc5e
--- /dev/null
+++ b/src/pages/consumablesLogistics/dispatchLog/Record.vue
@@ -0,0 +1,197 @@
+<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.productName"
+          style="width: 240px"
+          placeholder="璇疯緭鍏�"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+        <span class="search_title ml10">鏉ユ簮锛�</span>
+        <el-select
+          v-model="searchForm.recordType"
+          style="width: 240px"
+          placeholder="璇烽�夋嫨"
+          clearable
+        >
+          <el-option
+            v-for="item in stockRecordTypeOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
+      </div>
+      <div>
+        <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"
+        style="width: 100%"
+        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" width="160" show-overflow-tooltip />
+        <el-table-column label="浜у搧鍚嶇О" prop="productName" min-width="160" show-overflow-tooltip />
+        <el-table-column label="瑙勬牸鍨嬪彿" prop="model" min-width="160" show-overflow-tooltip />
+        <el-table-column label="鍗曚綅" prop="unit" width="100" show-overflow-tooltip />
+        <el-table-column label="鍑哄簱鏁伴噺" prop="stockOutNum" width="110" show-overflow-tooltip />
+        <el-table-column label="鍑哄簱浜�" prop="createBy" width="120" show-overflow-tooltip />
+        <el-table-column label="鏉ユ簮" prop="recordType" width="140" show-overflow-tooltip>
+          <template #default="scope">
+            {{ getRecordType(scope.row.recordType) }}
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <Pagination
+        v-show="total > 0"
+        :total="total"
+        :page="page.current"
+        :limit="page.size"
+        @pagination="paginationChange"
+      />
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { onMounted, reactive, ref, toRefs, watch } from "vue";
+import { ElMessage, ElMessageBox } from "element-plus";
+import Pagination from "@/components/PIMTable/Pagination.vue";
+import {
+  delConsumablesOutRecord,
+  getConsumablesOutRecordPage,
+} from "@/api/consumablesLogistics/consumablesOutRecord.js";
+import {
+  findAllQualifiedStockOutRecordTypeOptions,
+  findAllUnQualifiedStockOutRecordTypeOptions,
+} from "@/api/basicData/enum.js";
+
+const props = defineProps({
+  type: {
+    type: String,
+    required: true,
+    default: "0",
+  },
+});
+
+const tableData = ref([]);
+const selectedRows = ref([]);
+const tableLoading = ref(false);
+const stockRecordTypeOptions = ref([]);
+
+const page = reactive({
+  current: 1,
+  size: 100,
+});
+const total = ref(0);
+
+const data = reactive({
+  searchForm: {
+    timeStr: "",
+    productName: "",
+    recordType: "",
+  },
+});
+const { searchForm } = toRefs(data);
+
+const getRecordType = (recordType) => {
+  return stockRecordTypeOptions.value.find((item) => item.value === recordType)?.label || "";
+};
+
+const fetchStockRecordTypeOptions = () => {
+  const api =
+    props.type === "1"
+      ? findAllUnQualifiedStockOutRecordTypeOptions
+      : findAllQualifiedStockOutRecordTypeOptions;
+  api()
+    .then((res) => {
+      stockRecordTypeOptions.value = res.data || [];
+    })
+    .catch(() => {
+      stockRecordTypeOptions.value = [];
+    });
+};
+
+const handleQuery = () => {
+  page.current = 1;
+  getList();
+};
+
+const paginationChange = obj => {
+  page.current = obj.page;
+  page.size = obj.limit;
+  getList();
+};
+
+const getList = () => {
+  tableLoading.value = true;
+  getConsumablesOutRecordPage({ ...searchForm.value, ...page, type: props.type })
+    .then(res => {
+      tableData.value = res?.data?.records || [];
+      total.value = res?.data?.total || 0;
+    })
+    .finally(() => {
+      tableLoading.value = false;
+    });
+};
+
+const handleSelectionChange = selection => {
+  selectedRows.value = Array.isArray(selection) ? selection : [];
+};
+
+const handleDelete = () => {
+  const ids = selectedRows.value.map(i => i.id).filter(Boolean);
+  if (ids.length === 0) {
+    ElMessage.warning("璇烽�夋嫨鏁版嵁");
+    return;
+  }
+  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚垹闄わ紝鏄惁纭鍒犻櫎锛�", "鍒犻櫎", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => delConsumablesOutRecord(ids))
+    .then(() => {
+      ElMessage.success("鍒犻櫎鎴愬姛");
+      getList();
+    })
+    .catch(() => {});
+};
+
+watch(
+  () => props.type,
+  () => {
+    searchForm.value.recordType = "";
+    fetchStockRecordTypeOptions();
+    handleQuery();
+  }
+);
+
+onMounted(() => {
+  fetchStockRecordTypeOptions();
+  getList();
+});
+</script>

--
Gitblit v1.9.3