From 1ea0d85b0fe2e7e4427fd484a9342d964c831b3d Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 06 八月 2025 15:15:00 +0800
Subject: [PATCH] 修改

---
 src/views/hazardousChemicals/warehouseManage/components/productTable.vue |  169 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 150 insertions(+), 19 deletions(-)

diff --git a/src/views/hazardousChemicals/warehouseManage/components/productTable.vue b/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
index 7668e43..86f3b77 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
@@ -11,10 +11,46 @@
           >新增</el-button>
         </el-form-item>
         <el-form-item label="品名:" >
-          <el-input v-model="data.queryParams.name" placeholder="请输入品名" clearable></el-input>
+          <el-input v-model="data.queryParams.params.name" placeholder="请输入品名" clearable></el-input>
         </el-form-item>
         <el-form-item label="产品编号:" >
-          <el-input v-model="data.queryParams.productSn" placeholder="请输入产品编号" clearable></el-input>
+          <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
+        </el-form-item>
+        <el-form-item label="仓库:" prop="warehouseName" >
+          <el-select
+              clearable
+              v-model="data.queryParams.params.warehouseName"
+              filterable
+              remote
+              reserve-keyword
+              placeholder="请输入所入仓库"
+              remote-show-suffix
+              :remote-method="getWareHouseList"
+              style="width: 100%"
+              @change="selectWareValue"
+          >
+            <el-option
+                v-for="item in data.wareHouseList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="存储柜:" prop="cupboardId" >
+          <el-select
+              clearable
+              v-model="data.queryParams.params.cupboardId"
+              placeholder="请选择存储柜"
+              style="width: 100%"
+          >
+            <el-option
+                v-for="item in data.cupList"
+                :key="item.id"
+                :label="item.cupboardName"
+                :value="item.id"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item >
           <el-button
@@ -34,28 +70,32 @@
       <el-table-column label="序号" type="index" align="center" width="80" />
       <el-table-column label="品名" prop="productBasic.name" align="center"  />
       <el-table-column label="产品编号" prop="productBasic.productSn" align="center" />
-      <el-table-column label="CAS号" prop="productBasic.cas" align="center" />
-      <el-table-column label="厂家" prop="productBasic.manufacturer" align="center" />
-      <el-table-column label="供应商" prop="productBasic.supplier" align="center" />
-      <el-table-column label="危险性质" prop="productBasic.productCharacter" align="center" />
-      <el-table-column label="最小包装" prop="productBasic.productSn" align="center" width="120">
-        <template #default="scope">
-          <span>{{scope.row.productBasic.metering}}{{scope.row.productBasic.unit}} / {{scope.row.productBasic.minPackage == 0 ? '瓶' :scope.row.productBasic.minPackage == 1?'袋':scope.row.productBasic.minPackage == 2?'桶 ':scope.row.productBasic.minPackage == 3?'盒':scope.row.productBasic.minPackage == 4?'箱':'其他'}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="批号" prop="batchNo" align="center" width="120" />
+<!--      <el-table-column label="CAS号" prop="productBasic.cas" align="center" />-->
+<!--      <el-table-column label="厂家" prop="productBasic.manufacturer" align="center" />-->
+<!--      <el-table-column label="供应商" prop="productBasic.supplier" align="center" />-->
+<!--      <el-table-column label="危险性质" prop="productBasic.productCharacter" align="center" />-->
+<!--      <el-table-column label="最小包装" prop="productBasic.productSn" align="center" width="120">-->
+<!--        <template #default="scope">-->
+<!--          <span>{{scope.row.productBasic.metering}}{{scope.row.productBasic.unit}} / {{scope.row.productBasic.minPackage == 0 ? '瓶' :scope.row.productBasic.minPackage == 1?'袋':scope.row.productBasic.minPackage == 2?'桶 ':scope.row.productBasic.minPackage == 3?'盒':scope.row.productBasic.minPackage == 4?'箱':'其他'}}</span>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+      <el-table-column label="数量" prop="num" align="center" width="120" />
       <el-table-column label="所在仓库" prop="warehouseName" align="center" >
         <template #default="scope">
           <span>{{scope.row.warehouse.name}}</span>
         </template>
       </el-table-column>
+      <el-table-column label="存储柜" prop="cupboard.cupboardName" align="center" width="120" />
+      <el-table-column label="批号" prop="batchNo" align="center" width="120" />
       <el-table-column label="状态" prop="state" align="center">
         <template #default="scope">
           <span>{{scope.row.state === 0 ? '未入库' : '已入库'}}</span>
         </template>
       </el-table-column>
+      <el-table-column label="创建时间" prop="createTime" align="center" width="120" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
         <template #default="scope">
+          <el-button link type="primary" v-if="scope.row.state == 1" @click="toDetail(scope.row)">查看详情</el-button>
           <el-button link type="primary" v-if="scope.row.state == 0" @click="doEntry(scope.row)">入库</el-button>
           <el-button link type="primary" v-if="scope.row.state == 1" @click="printCode(scope.row)">打印二维码</el-button>
           <el-button link type="primary" @click="openDialog('edit',scope.row)" v-if="scope.row.state == 0">编辑</el-button>
@@ -72,6 +112,18 @@
     />
     <pro-dialog ref="dialogRef" @getList=getList></pro-dialog>
     <printcode ref="codeRef" @getList=getList></printcode>
+    <printMorecodeDialog ref="codeMoreRef" @getList=getList></printMorecodeDialog>
+    <el-dialog
+        v-model="dialogVisible"
+        title="打印纸张"
+        width="350"
+        :before-close="handlePrintClose"
+    >
+      <div style="display: flex;align-items: center;justify-content: center;height: 60px">
+        <el-button type="primary" @click="openPrint('one')">单张打印</el-button>
+        <el-button type="primary" @click="openPrint('more')">28张打印</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -80,7 +132,8 @@
 import {ElMessage, ElMessageBox} from "element-plus";
 import proDialog from "./addProDialog.vue";
 import printcode from './printCode.vue'
-import {delWarehouse, getWarehouse} from "@/api/hazardousChemicals/warehouse";
+import printMorecodeDialog from './printCodeMore.vue'
+import {delWarehouse, getCupById, getWarehouse} from "@/api/hazardousChemicals/warehouse";
 import {
   delProductRecord,
   doEntryPro,
@@ -88,25 +141,37 @@
   getProWarehouseRecord
 } from "@/api/hazardousChemicals/productRecord";
 import {delRawRecord} from "@/api/hazardousChemicals/rawRecord";
+import {useRoute, useRouter} from "vue-router";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const dialogRef = ref();
 const codeRef = ref();
+const codeMoreRef = ref();
+const router = useRouter()
+const route = useRoute()
+const dialogVisible =ref(false)
 const data = reactive({
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: '',
+      cupboardId: null,
+      warehouseId: null
+    }
   },
   total: 0,
-  dataList: []
+  dataList: [],
+  wareHouseList: [],
+  cupList: []
 });
 
 const { queryParams, total, dataList } = toRefs(data);
 const classHourRef = ref();
 onMounted(()=>{
   getList()
+  getWareHouseList("")
 })
 
 const getList = async () => {
@@ -130,10 +195,16 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: '',
+      cupboardId: null,
+      warehouseId: null
+    }
   }
+  data.cupList = []
   getList()
+  getWareHouseList("")
 }
 const handleDelete = (val) => {
   ElMessageBox.confirm(
@@ -173,11 +244,71 @@
         }
       })
 }
+const entryItem = ref()
 const printCode = (val) => {
   console.log("val",val)
-  codeRef.value.openDialog('pro',val);
+  entryItem.value = val
+  dialogVisible.value = true
+  // codeRef.value.openDialog('pro',val);
+}
+
+const toDetail = (val) => {
+  const obj = {
+    pageNum: data.queryParams.pageNum,
+    pageSize: data.queryParams.pageSize,
+    entryId: val.id,
+  }
+  const v = JSON.stringify(obj)
+  router.push({ path: "/whProDetail", query: { val: v } });
+}
+const getWareHouseList = async (val) => {
+  let param = {}
+  if(val != ""){
+    param = {
+      name: val
+    }
+  }else {
+    param = {
+      pageNum: 1,
+      pageSize: 10
+    }
+  }
+  const res = await getWarehouse(param)
+  if(res.code == 200){
+    data.wareHouseList = res.data.list
+  }else{
+    ElMessage.warning(res.message)
+  }
+}
+const selectWareValue = (val) => {
+  data.queryParams.params.cupboardId = null
+  data.wareHouseList.forEach(item => {
+    if(item.name === val){
+      data.queryParams.params.warehouseId = item.id
+      getCupList(item.id)
+    }
+  })
+}
+const getCupList = async (val) => {
+  const res = await getCupById(val)
+  if(res.code == 200) {
+    data.cupList = res.data
+  }else {
+    ElMessage.warning(res.message)
+  }
+}
+const handlePrintClose = () => {
+  dialogVisible.value = false
+}
+const openPrint = (type) => {
+  if(type === 'one'){
+    codeRef.value.openDialog('pro',entryItem.value);
+  }else {
+    codeMoreRef.value.openDialog('pro',entryItem.value);
+  }
 
 }
+
 defineExpose({
   getList
 });

--
Gitblit v1.9.2