From c1bf5ebfe65ee67c64da6e9e4e6f7c7dbb3e992e Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 17 三月 2026 14:28:26 +0800
Subject: [PATCH] fix: 新增不合格原料库存时,没有皮重、毛重、净重、过磅日期、车牌号、过磅员输入框(不会存在不合格入库,把按钮屏蔽掉)

---
 src/views/equipmentManagement/repair/index.vue |  241 +++++++++++++++++++++++++++++-------------------
 1 files changed, 146 insertions(+), 95 deletions(-)

diff --git a/src/views/equipmentManagement/repair/index.vue b/src/views/equipmentManagement/repair/index.vue
index 477e880..a278a5c 100644
--- a/src/views/equipmentManagement/repair/index.vue
+++ b/src/views/equipmentManagement/repair/index.vue
@@ -85,17 +85,17 @@
         </div>
       </div>
       <PIMTable
-        rowKey="id"
-        isSelection
-        :column="columns"
-        :tableData="dataList"
-        :page="{
+          rowKey="id"
+          isSelection
+          :column="columns"
+          :tableData="dataList"
+          :page="{
           current: pagination.currentPage,
           size: pagination.pageSize,
           total: pagination.total,
         }"
-        @selection-change="handleSelectionChange"
-        @pagination="changePage"
+          @selection-change="handleSelectionChange"
+          @pagination="changePage"
       >
         <template #statusRef="{ row }">
           <el-tag v-if="row.status === 2" type="danger">澶辫触</el-tag>
@@ -110,6 +110,13 @@
             @click="editRepair(row.id)"
           >
             缂栬緫
+          </el-button>
+          <el-button
+            type="info"
+            link
+            @click="viewAttachments(row)"
+          >
+            鏌ョ湅闄勪欢
           </el-button>
           <el-button
             type="success"
@@ -130,29 +137,72 @@
         </template>
       </PIMTable>
     </div>
-    <RepairModal ref="repairModalRef" @ok="getTableData" />
-    <MaintainModal ref="maintainModalRef" @ok="getTableData" />
+    <RepairModal ref="repairModalRef" @ok="getTableData"/>
+    <MaintainModal ref="maintainModalRef" @ok="getTableData"/>
+    <FileListDialog
+      ref="fileListDialogRef"
+      v-model="fileDialogVisible"
+      title="鏌ョ湅闄勪欢"
+      :show-upload-button="false"
+      :show-delete-button="false"
+      name-column-label="闄勪欢鍚嶇О"
+    />
   </div>
 </template>
 
 <script setup>
-import { usePaginationApi } from "@/hooks/usePaginationApi";
-import { getRepairPage, delRepair } from "@/api/equipmentManagement/repair";
 import { onMounted, getCurrentInstance, computed } from "vue";
+import {usePaginationApi} from "@/hooks/usePaginationApi";
+import {getRepairPage, delRepair, getRepairById} from "@/api/equipmentManagement/repair";
 import RepairModal from "./Modal/RepairModal.vue";
-import { ElMessageBox, ElMessage } from "element-plus";
+import {ElMessageBox, ElMessage} from "element-plus";
 import dayjs from "dayjs";
 import MaintainModal from "./Modal/MaintainModal.vue";
+import FileListDialog from "@/components/Dialog/FileListDialog.vue";
 
 defineOptions({
   name: "璁惧鎶ヤ慨",
 });
 
-const { proxy } = getCurrentInstance();
+const {proxy} = getCurrentInstance();
 
 // 妯℃�佹瀹炰緥
 const repairModalRef = ref();
 const maintainModalRef = ref();
+const fileListDialogRef = ref();
+const fileDialogVisible = ref(false);
+
+const baseApi = import.meta.env.VITE_APP_BASE_API || "";
+const formatFileUrl = (url) => {
+  if (!url) return "";
+  if (url.startsWith("http://") || url.startsWith("https://")) return url;
+  if (url.includes(":") || url.startsWith("/")) {
+    return url;
+  }
+  const path = String(url).replace(/^\/+/, "");
+  return path ? baseApi + "/" + path : baseApi;
+};
+
+// 鏌ョ湅闄勪欢锛堜笌 APP 瀛楁涓�鑷达細fileList / commonFileList锛�
+const viewAttachments = async (row) => {
+  try {
+    const { code, data } = await getRepairById(row.id);
+    if (code === 200 && data) {
+      const list = data.fileList || data.commonFileList || [];
+      const mapped = (Array.isArray(list) ? list : []).map((f) => ({
+        id: f.id,
+        name: f.originalFilename || f.bucketFilename || f.name || "闄勪欢",
+        url: formatFileUrl(f.url || f.downloadUrl),
+        raw: f,
+      }));
+      fileListDialogRef.value?.open(mapped);
+    } else {
+      ElMessage.warning("鑾峰彇闄勪欢澶辫触");
+    }
+  } catch (e) {
+    ElMessage.error("鑾峰彇闄勪欢澶辫触");
+  }
+};
 
 // 琛ㄦ牸澶氶�夋閫変腑椤�
 const multipleList = ref([]);
@@ -167,85 +217,85 @@
   resetFilters,
   onCurrentChange,
 } = usePaginationApi(
-  getRepairPage,
-  {
-    deviceName: undefined,
-    deviceModel: undefined,
-    remark: undefined,
-    maintenanceName: undefined,
-    repairTimeStr: undefined,
-    maintenanceTimeStr: undefined,
-  },
-  [
+    getRepairPage,
     {
-      label: "璁惧鍚嶇О",
-      align: "center",
-      prop: "deviceName",
+      deviceName: undefined,
+      deviceModel: undefined,
+      remark: undefined,
+      maintenanceName: undefined,
+      repairTimeStr: undefined,
+      maintenanceTimeStr: undefined,
     },
-    {
-      label: "瑙勬牸鍨嬪彿",
-      align: "center",
-      prop: "deviceModel",
-    },
-    {
-      label: "鎶ヤ慨鏃ユ湡",
-      align: "center",
-      prop: "repairTime",
-      formatData: (cell) => dayjs(cell).format("YYYY-MM-DD"),
-    },
-    {
-      label: "鎶ヤ慨浜�",
-      align: "center",
-      prop: "repairName",
-    },
-    {
-      label: "鏁呴殰鐜拌薄",
-      align: "center",
-      prop: "remark",
-    },
-    {
-      label: "缁翠慨浜�",
-      align: "center",
-      prop: "maintenanceName",
-    },
-    {
-      label: "缁翠慨缁撴灉",
-      align: "center",
-      prop: "maintenanceResult",
-    },
-    {
-      label: "缁翠慨鏃ユ湡",
-      align: "center",
-      prop: "maintenanceTime",
-      formatData: (cell) => (cell ? dayjs(cell).format("YYYY-MM-DD") : ""),
-    },
-    {
-      label: "鐘舵��",
-      align: "center",
-      prop: "status",
-      dataType: "slot",
-      slot: "statusRef",
-    },
-    {
-      fixed: "right",
-      label: "鎿嶄綔",
-      dataType: "slot",
-      slot: "operation",
-      align: "center",
-      width: "200px",
-    },
-  ]
+    [
+      {
+        label: "璁惧鍚嶇О",
+        align: "center",
+        prop: "deviceName",
+      },
+      {
+        label: "瑙勬牸鍨嬪彿",
+        align: "center",
+        prop: "deviceModel",
+      },
+      {
+        label: "鎶ヤ慨鏃ユ湡",
+        align: "center",
+        prop: "repairTime",
+        formatData: (cell) => dayjs(cell).format("YYYY-MM-DD"),
+      },
+      {
+        label: "鎶ヤ慨浜�",
+        align: "center",
+        prop: "repairName",
+      },
+      {
+        label: "鏁呴殰鐜拌薄",
+        align: "center",
+        prop: "remark",
+      },
+      {
+        label: "缁翠慨浜�",
+        align: "center",
+        prop: "maintenanceName",
+      },
+      {
+        label: "缁翠慨缁撴灉",
+        align: "center",
+        prop: "maintenanceResult",
+      },
+      {
+        label: "缁翠慨鏃ユ湡",
+        align: "center",
+        prop: "maintenanceTime",
+        formatData: (cell) => (cell ? dayjs(cell).format("YYYY-MM-DD") : ""),
+      },
+      {
+        label: "鐘舵��",
+        align: "center",
+        prop: "status",
+        dataType: "slot",
+        slot: "statusRef",
+      },
+      {
+        fixed: "right",
+        label: "鎿嶄綔",
+        dataType: "slot",
+        slot: "operation",
+        align: "center",
+        width: "360px",
+      },
+    ]
 );
 
 // type === 1 缁翠慨 2鎶ヤ慨闂�
-const handleDateChange = (value,type) => {
+const handleDateChange = (value, type) => {
   filters.maintenanceTimeStr = null
   filters.c = null
-  if(type === 1){
+  if (type === 1) {
     if (value) {
       filters.maintenanceTimeStr = dayjs(value).format("YYYY-MM-DD");
     }
-  }else{
+  } else {
     if (value) {
       filters.repairTimeStr = dayjs(value).format("YYYY-MM-DD");
     }
@@ -278,10 +328,10 @@
   maintainModalRef.value.open(row.id, row);
 };
 
-const changePage = ({ page, limit }) => {
-	pagination.currentPage = page;
-	pagination.pageSize = limit;
-	onCurrentChange(page);
+const changePage = ({page, limit}) => {
+  pagination.currentPage = page;
+  pagination.pageSize = limit;
+  onCurrentChange(page);
 };
 
 // 鍗曡鍒犻櫎
@@ -292,18 +342,18 @@
     const record = dataList.value.find(item => item.id === id);
     return record && record.status === 1;
   });
-  
+
   if (hasFinished) {
     ElMessage.warning('涓嶈兘鍒犻櫎鐘舵�佷负瀹岀粨鐨勮褰�');
     return;
   }
-  
+
   ElMessageBox.confirm("纭鍒犻櫎鎶ヤ慨鏁版嵁, 姝ゆ搷浣滀笉鍙��?", "璀﹀憡", {
     confirmButtonText: "纭畾",
     cancelButtonText: "鍙栨秷",
     type: "warning",
   }).then(async () => {
-    const { code } = await delRepair(ids);
+    const {code} = await delRepair(ids);
     if (code === 200) {
       ElMessage.success("鍒犻櫎鎴愬姛");
       getTableData();
@@ -318,12 +368,12 @@
     cancelButtonText: "鍙栨秷",
     type: "warning",
   })
-    .then(() => {
-      proxy.download("/device/repair/export", {}, "璁惧鎶ヤ慨.xlsx");
-    })
-    .catch(() => {
-      ElMessage.info("宸插彇娑�");
-    });
+      .then(() => {
+        proxy.download("/device/repair/export", {}, "璁惧鎶ヤ慨.xlsx");
+      })
+      .catch(() => {
+        ElMessage.info("宸插彇娑�");
+      });
 };
 
 onMounted(() => {
@@ -335,6 +385,7 @@
 .table_list {
   margin-top: unset;
 }
+
 .actions {
   display: flex;
   justify-content: space-between;

--
Gitblit v1.9.3