From 3ea1ff641e1c680a5a1727fb4034797bfe65d93e Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 18 三月 2026 15:29:17 +0800
Subject: [PATCH] fix: 质量、耗材物流

---
 src/pages/qualityManagement/rawMaterial/index.vue |   50 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/src/pages/qualityManagement/rawMaterial/index.vue b/src/pages/qualityManagement/rawMaterial/index.vue
index 8f2d009..99abfeb 100644
--- a/src/pages/qualityManagement/rawMaterial/index.vue
+++ b/src/pages/qualityManagement/rawMaterial/index.vue
@@ -31,7 +31,11 @@
       <view v-for="(item, index) in tableData" :key="index" class="list-item">
         <view class="item-header">
           <text class="product-name">{{ item.productName }}</text>
-          <up-tag :text="item.inspectState ? '宸叉彁浜�' : '鏈彁浜�'" :type="item.inspectState ? 'success' : 'warning'" size="mini"></up-tag>
+          <up-tag
+            :text="item.inspectState == 1 ? '宸叉彁浜�' : '鏈彁浜�'"
+            :type="item.inspectState == 1 ? 'success' : 'warning'"
+            size="mini"
+          ></up-tag>
         </view>
         <view class="item-content">
           <view class="item-row">
@@ -56,8 +60,9 @@
           </view>
         </view>
         <view class="item-actions">
-          <up-button v-if="!item.inspectState" type="primary" size="mini" @click.stop="openForm('edit', item)">缂栬緫</up-button>
-          <up-button v-if="!item.inspectState" type="success" size="mini" @click.stop="handleConfirmSubmit(item)">鎻愪氦</up-button>
+          <up-button v-if="item.inspectState != 1" type="primary" size="mini" @click.stop="openForm('edit', item)">缂栬緫</up-button>
+          <up-button type="info" size="mini" @click.stop="openFiles(item)">闄勪欢</up-button>
+          <up-button v-if="item.inspectState != 1" type="success" size="mini" @click.stop="handleConfirmSubmit(item)">鎻愪氦</up-button>
           <up-button type="error" size="mini" @click.stop="handleDelete(item)">鍒犻櫎</up-button>
         </view>
       </view>
@@ -96,7 +101,8 @@
 </template>
 
 <script setup>
-import { ref, reactive, onMounted, computed } from 'vue';
+import { ref, reactive, computed } from 'vue';
+import { onShow } from '@dcloudio/uni-app';
 import {
   findRawMaterialListPage,
   submitRawMaterial,
@@ -195,9 +201,10 @@
 };
 
 const openForm = (type, item) => {
-  // Mobile usually navigates to a new page for add/edit if complex
-  // Here we'll just show a toast for now as the actual form components are many
-  toast('鍔熻兘寮�鍙戜腑锛岃鍦≒C绔搷浣�');
+  const id = item?.id
+  uni.navigateTo({
+    url: `/pages/qualityManagement/rawMaterial/form?type=${type}${id ? `&id=${id}` : ''}`
+  })
 };
 
 const handleConfirmSubmit = (row) => {
@@ -214,7 +221,8 @@
 const handleDelete = (row) => {
   showConfirm('纭鍒犻櫎璇ヨ褰曞悧锛�').then(res => {
     if (res.confirm) {
-      deleteRawMaterial({ id: row.id }).then(() => {
+      // 瀵归綈 PC 绔細鍒犻櫎鎺ュ彛鎺ユ敹 id 鏁扮粍
+      deleteRawMaterial([row.id]).then(() => {
         toast('鍒犻櫎鎴愬姛');
         handleQuery();
       });
@@ -222,11 +230,24 @@
   });
 };
 
+const openFiles = (row) => {
+  if (!row?.id) {
+    toast('璇峰厛淇濆瓨鍚庡啀涓婁紶闄勪欢')
+    return
+  }
+  try {
+    uni.setStorageSync('rawMaterialFilesCtx', JSON.stringify({ id: row.id }))
+  } catch (e) {}
+  uni.navigateTo({
+    url: `/pages/qualityManagement/rawMaterial/files?id=${row.id}`
+  })
+}
+
 const goBack = () => {
   uni.navigateBack();
 };
 
-onMounted(() => {
+onShow(() => {
   handleQuery();
 });
 </script>
@@ -309,10 +330,19 @@
 .item-actions {
   display: flex;
   justify-content: flex-end;
-  gap: 20rpx;
+  gap: 16rpx;
   border-top: 1rpx solid #ebeef5;
   padding-top: 20rpx;
 }
+.item-actions :deep(.u-button),
+.item-actions :deep(.up-button) {
+  min-width: 140rpx;
+  height: 64rpx;
+  line-height: 64rpx;
+  font-size: 26rpx;
+  border-radius: 999rpx;
+  padding: 0 24rpx;
+}
 
 .no-data {
   padding-top: 200rpx;

--
Gitblit v1.9.3