From cd84a28754fc1b3fadb7027245333d6d3ff330a3 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期一, 19 八月 2024 17:22:53 +0800
Subject: [PATCH] bug修改

---
 src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue |   85 ++++
 src/views/hazardousChemicals/warehouseManage/components/productTable.vue          |   52 +
 src/views/hazardousChemicals/accessRecords/index.vue                              |   13 
 src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue         |    2 
 src/assets/logo/warning1.png                                                      |    0 
 src/api/hazardousChemicals/count.js                                               |    8 
 src/views/hazardousChemicals/systemManage/user/components/userDialog.vue          |    1 
 src/assets/logo/warning.png                                                       |    0 
 src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue      |   29 
 src/views/hazardousChemicals/systemManage/user/index.vue                          |    5 
 src/views/hazardousChemicals/homePage/index.vue                                   |  206 +++++----
 src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue          |   17 
 src/views/hazardousChemicals/warehouseManage/components/proDetail.vue             |  176 ++++++++
 src/views/hazardousChemicals/warehouseManage/components/printCode.vue             |   24 +
 src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue          |   18 
 src/views/hazardousChemicals/warehouseManage/components/rawDetail.vue             |  183 +++++++++
 src/api/hazardousChemicals/productRecord.js                                       |    8 
 src/views/hazardousChemicals/basicInfon/components/basicDialog.vue                |   87 ++++
 src/api/hazardousChemicals/rawRecord.js                                           |    8 
 src/views/hazardousChemicals/accessRecords/components/productTable.vue            |   16 
 src/views/hazardousChemicals/overdueWarning/index.vue                             |   23 +
 src/views/hazardousChemicals/warehouseManage/components/rawTable.vue              |   57 +
 src/assets/logo/hazmat.png                                                        |    0 
 src/assets/logo/warehouse.png                                                     |    0 
 src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue          |   31 
 src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue         |    6 
 src/views/hazardousChemicals/finishedBasicInfo/index.vue                          |   12 
 src/views/hazardousChemicals/warehouseManage/index.vue                            |   22 
 src/router/index.js                                                               |   26 +
 src/views/components/flowDetail.vue                                               |    8 
 src/views/hazardousChemicals/basicInfon/index.vue                                 |   14 
 src/views/hazardousChemicals/accessRecords/components/rawTable.vue                |   16 
 src/assets/logo/used.png                                                          |    0 
 src/views/hazardousChemicals/electronicWarehouse/index.vue                        |   12 
 34 files changed, 936 insertions(+), 229 deletions(-)

diff --git a/src/api/hazardousChemicals/count.js b/src/api/hazardousChemicals/count.js
index cb84b3d..3c5e491 100644
--- a/src/api/hazardousChemicals/count.js
+++ b/src/api/hazardousChemicals/count.js
@@ -36,3 +36,11 @@
         data: params
     })
 }
+
+export function unWarningCount() {
+    return request({
+        url: '/warning/warningCount',
+        method: 'get',
+    })
+}
+
diff --git a/src/api/hazardousChemicals/productRecord.js b/src/api/hazardousChemicals/productRecord.js
index 6b264d6..8d26aaa 100644
--- a/src/api/hazardousChemicals/productRecord.js
+++ b/src/api/hazardousChemicals/productRecord.js
@@ -93,3 +93,11 @@
         params: params
     })
 }
+
+export function getWhProDetail(params) {
+    return request({
+        url: '/product-entry-record/productlist',
+        method: 'get',
+        params: params
+    })
+}
diff --git a/src/api/hazardousChemicals/rawRecord.js b/src/api/hazardousChemicals/rawRecord.js
index 593b58d..171b1b6 100644
--- a/src/api/hazardousChemicals/rawRecord.js
+++ b/src/api/hazardousChemicals/rawRecord.js
@@ -95,3 +95,11 @@
 }
 
 
+
+export function getWhRawDetail(params) {
+    return request({
+        url: '/entry-record/hazmatlist',
+        method: 'get',
+        params: params
+    })
+}
diff --git a/src/assets/logo/hazmat.png b/src/assets/logo/hazmat.png
new file mode 100644
index 0000000..485c9d3
--- /dev/null
+++ b/src/assets/logo/hazmat.png
Binary files differ
diff --git a/src/assets/logo/used.png b/src/assets/logo/used.png
new file mode 100644
index 0000000..a72404c
--- /dev/null
+++ b/src/assets/logo/used.png
Binary files differ
diff --git a/src/assets/logo/warehouse.png b/src/assets/logo/warehouse.png
new file mode 100644
index 0000000..3807a1d
--- /dev/null
+++ b/src/assets/logo/warehouse.png
Binary files differ
diff --git a/src/assets/logo/warning.png b/src/assets/logo/warning.png
new file mode 100644
index 0000000..637e49c
--- /dev/null
+++ b/src/assets/logo/warning.png
Binary files differ
diff --git a/src/assets/logo/warning1.png b/src/assets/logo/warning1.png
new file mode 100644
index 0000000..8b3eb40
--- /dev/null
+++ b/src/assets/logo/warning1.png
Binary files differ
diff --git a/src/router/index.js b/src/router/index.js
index f215420..ba0aad7 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -118,6 +118,32 @@
     ]
   },
   {
+    path: '/whRawDetail',
+    component: Layout,
+    redirect: '/whRawDetail',
+    children: [
+      {
+        path: '/whRawDetail',
+        component: () => import('@/views/hazardousChemicals/warehouseManage/components/rawDetail.vue'),
+        name: 'whRawDetail',
+        meta: { title: '危化品详情',icon: 'form',  affix: true }
+      }
+    ]
+  },
+  {
+    path: '/whProDetail',
+    component: Layout,
+    redirect: '/whProDetail',
+    children: [
+      {
+        path: '/whProDetail',
+        component: () => import('@/views/hazardousChemicals/warehouseManage/components/proDetail.vue'),
+        name: 'whProDetail',
+        meta: { title: '成品详情',icon: 'form',  affix: true }
+      }
+    ]
+  },
+  {
     path: '/accessRecords',
     component: Layout,
     redirect: '/accessRecords',
diff --git a/src/views/components/flowDetail.vue b/src/views/components/flowDetail.vue
index a49ca9d..6ddfec2 100644
--- a/src/views/components/flowDetail.vue
+++ b/src/views/components/flowDetail.vue
@@ -79,7 +79,7 @@
           return {
             ...item,
             unit: item.productBasic.unit,
-            description: `${item.updateTime} ${item.user.departName}部门   ${item.user.name}  进行了  ${item.state == 0 ? '批量导入' : item.state == 3 ? '标签作废' : '销售'}`,
+            description: `${item.updateTime}   ${item.user.departName ? item.user.departName +'部门'  : ''}   ${item.user.name}  进行了  ${item.state == 0 ? '批量导入' : item.state == 3 ? '标签作废' : '销售'}`,
             size: 'large',
             type: 'primary',
             icon: MoreFilled,
@@ -113,7 +113,7 @@
           return {
             ...item,
             unit:item.hazmatBasic.unit,
-            description: `${item.updateTime} ${item.user.departName}部门   ${item.user.name}  进行了  ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''}`,
+            description: `${item.updateTime}  ${item.user.departName ? item.user.departName +'部门'  : ''}   ${item.user.name}  进行了  ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''}`,
             size: 'large',
             type: 'primary',
             icon: MoreFilled,
@@ -141,7 +141,7 @@
             return {
               ...item,
               unit:item.hazmatBasic.unit,
-              description: `${item.updateTime} ${item.user.departName}部门   ${item.user.name}  进行了  ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''}`,
+              description: `${item.updateTime}  ${item.user.departName ? item.user.departName +'部门'  : ''}   ${item.user.name}  进行了  ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''}`,
               size: 'large',
               type: 'primary',
               icon: MoreFilled,
@@ -156,7 +156,7 @@
             return {
               ...item,
               unit:item.productBasic.unit,
-              description: `${item.updateTime} ${item.user.departName}部门   ${item.user.name}  进行了  ${item.state == 0 ? '批量导入' : item.state == 3 ? '标签作废' : '销售'}`,
+              description: `${item.updateTime}  ${item.user.departName? item.user.departName  +'部门'  : ''}   ${item.user.name}  进行了  ${item.state == 0 ? '批量导入' : item.state == 3 ? '标签作废' : '销售'}`,
               size: 'large',
               type: 'primary',
               icon: MoreFilled,
diff --git a/src/views/hazardousChemicals/accessRecords/components/productTable.vue b/src/views/hazardousChemicals/accessRecords/components/productTable.vue
index 82179ae..4e28a68 100644
--- a/src/views/hazardousChemicals/accessRecords/components/productTable.vue
+++ b/src/views/hazardousChemicals/accessRecords/components/productTable.vue
@@ -3,10 +3,10 @@
     <div style="display: flex;justify-content: space-between">
       <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
         <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 >
           <el-button
@@ -88,8 +88,10 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   },
   total: 0,
   dataList: []
@@ -122,8 +124,10 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   }
   getList()
 }
diff --git a/src/views/hazardousChemicals/accessRecords/components/rawTable.vue b/src/views/hazardousChemicals/accessRecords/components/rawTable.vue
index e067075..8ecba7f 100644
--- a/src/views/hazardousChemicals/accessRecords/components/rawTable.vue
+++ b/src/views/hazardousChemicals/accessRecords/components/rawTable.vue
@@ -3,10 +3,10 @@
     <div style="display: flex;justify-content: space-between">
       <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
         <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 >
           <el-button
@@ -91,8 +91,10 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   },
   total: 0,
   dataList: []
@@ -132,8 +134,10 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   }
   getList()
 }
diff --git a/src/views/hazardousChemicals/accessRecords/index.vue b/src/views/hazardousChemicals/accessRecords/index.vue
index 114e99c..107d30d 100644
--- a/src/views/hazardousChemicals/accessRecords/index.vue
+++ b/src/views/hazardousChemicals/accessRecords/index.vue
@@ -1,11 +1,11 @@
 <template>
   <div>
-    <el-tabs v-model="data.activeName" class="demo-tabs" @click="clickTab" style="margin: 10px 10px">
+    <el-tabs v-model="data.activeName" class="demo-tabs" @tab-click="clickTab" style="margin: 10px 10px">
+      <el-tab-pane label="危化品" name="rawMaterial">
+        <raw-table ref="rawRef"></raw-table>
+      </el-tab-pane>
       <el-tab-pane label="成品" name="finishPro" v-if="showFinishPro">
         <pro-table ref="proRef"></pro-table>
-      </el-tab-pane>
-      <el-tab-pane label="原材料" name="rawMaterial">
-        <raw-table ref="rawRef"></raw-table>
       </el-tab-pane>
     </el-tabs>
   </div>
@@ -22,15 +22,16 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
+
   },
   total: 0,
   dataList: [],
-  activeName: 'finishPro'
+  activeName: 'rawMaterial'
 })
 
 onMounted(()=>{
   showFinishPro.value = true;
-  data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
+  // data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
 })
 const clickTab = (tab,event) =>{
   console.log('tab',data.activeName)
diff --git a/src/views/hazardousChemicals/basicInfon/components/basicDialog.vue b/src/views/hazardousChemicals/basicInfon/components/basicDialog.vue
index 4aed9ba..713f83d 100644
--- a/src/views/hazardousChemicals/basicInfon/components/basicDialog.vue
+++ b/src/views/hazardousChemicals/basicInfon/components/basicDialog.vue
@@ -34,10 +34,35 @@
           <el-input v-model.trim="state.form.cas" placeholder="请输入CAS"></el-input>
         </el-form-item>
         <el-form-item label="试剂类型:" prop="hazmatType">
-          <el-input v-model.trim="state.form.hazmatType" placeholder="请输入试剂类型"></el-input>
+          <el-select
+              v-model="state.form.hazmatType"
+              placeholder="请选择试剂类型"
+              clearable
+              style="width: 100%"
+          >
+            <el-option
+                v-for="dict in state.hazmatTypeList"
+                :key="dict.id"
+                :label="dict.name"
+                :value="dict.name"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="危险性质:" prop="hazmatCharacter">
-          <el-input v-model.trim="state.form.hazmatCharacter" placeholder="请输入危险性质"></el-input>
+          <el-select
+              v-model="state.characterList"
+              placeholder="请选择危险性质"
+              clearable
+              multiple
+              style="width: 100%"
+          >
+            <el-option
+                v-for="dict in state.hazmatCharacterList"
+                :key="dict.id"
+                :label="dict.name"
+                :value="dict.name"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="供应商:" prop="supplier">
           <el-input v-model.trim="state.form.supplier" placeholder="请输入供应商"></el-input>
@@ -94,7 +119,7 @@
           <el-input v-model.trim="state.form.safeNum" placeholder="请输入安全库存" oninput="value=value.replace(/^\.+|[^\d]/g,'')"></el-input>
         </el-form-item>
         <el-form-item label="超期阈值(小时):" prop="threshold">
-          <el-input v-model.trim="state.form.threshold" placeholder="请输入超期阈值"></el-input>
+          <el-input v-model.trim="state.form.threshold" placeholder="请输入超期阈值" oninput="value=value.replace(/^\.+|[^\d]/g,'')"></el-input>
         </el-form-item>
       </el-form>
       <template #footer>
@@ -166,6 +191,7 @@
     threshold: null,
     kind: ''
   },
+  characterList: [],
   formRules:{
     name: [{ required: true, trigger: "blur", message: '请输入危化品名称', }],
     cas: [{ required: true, message: '请输入cas', trigger: 'blur' }],
@@ -207,6 +233,28 @@
       name: '其他'
     },
   ],
+  hazmatTypeList: [
+    {
+      id: 0,
+      name: '耗材'
+    },
+    {
+      id: 1,
+      name: '液态'
+    },
+    {
+      id: 2,
+      name: '液体'
+    },
+    {
+      id: 3,
+      name: '气态'
+    },
+    {
+      id: 4,
+      name: '固态'
+    },
+  ],
   unitList:[
     {
       id: 0,
@@ -233,14 +281,44 @@
       name: '其他'
     },
   ],
+  hazmatCharacterList: [
+    {
+      id: 0,
+      name: '腐蚀品'
+    },
+    {
+      id: 1,
+      name: '氧化品'
+    },
+    {
+      id: 2,
+      name: '有毒品'
+    },
+    {
+      id: 3,
+      name: '易燃品'
+    },
+    {
+      id: 4,
+      name: '非易燃品'
+    },
+  ],
   unitOptions: [
     {
       value: 'g',
       label: 'g',
     },
     {
+      value: 'mg',
+      label: 'mg',
+    },
+    {
       value: 'ml',
       label: 'ml',
+    },
+    {
+      value: 'l',
+      label: 'l',
     },
   ]
 })
@@ -251,12 +329,14 @@
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '' ;
   if(type === 'edit' || type === 'distribute') {
     state.form = value;
+    state.characterList = state.form.hazmatCharacter.split(',')
     startUsername.value = value.productSn
   }
   dialogVisible.value = true;
 }
 
 const onSubmit = async () => {
+  state.form.hazmatCharacter = state.characterList.join(",")
   const valid = await busRef.value.validate();
   if(valid){
     if(title.value === '新增'){
@@ -318,6 +398,7 @@
     threshold: null,
     kind: ''
   }
+  state.characterList = []
 }
 defineExpose({
   openDialog
diff --git a/src/views/hazardousChemicals/basicInfon/index.vue b/src/views/hazardousChemicals/basicInfon/index.vue
index b62ddef..0be329d 100644
--- a/src/views/hazardousChemicals/basicInfon/index.vue
+++ b/src/views/hazardousChemicals/basicInfon/index.vue
@@ -61,10 +61,10 @@
       <el-table-column label="产品编号" prop="productSn" align="center"  />
       <el-table-column label="CAS" prop="cas" align="center"/>
       <el-table-column label="试剂类型" prop="hazmatType" align="center"/>
-      <el-table-column label="危险性质" prop="hazmatCharacter" align="center"/>
+      <el-table-column label="危险性质" prop="hazmatCharacter" align="center" width="140"/>
       <el-table-column label="供应商" prop="supplier" align="center"/>
       <el-table-column label="厂家" prop="manufacturer" align="center"/>
-      <el-table-column label="规格" prop="hazmatCharacter" align="center"/>
+      <el-table-column label="规格" prop="hazmatFormat" align="center"/>
       <el-table-column label="包装" prop="metering" align="center">
         <template #default="scope">
           <span>{{scope.row.metering}}{{scope.row.unit}}</span>
@@ -122,23 +122,23 @@
   dataList: [],
   typeList: [
     {
-      id: 1,
+      id: 0,
       name: '试剂'
     },
     {
-      id: 2,
+      id: 1,
       name: '原料'
     },
     {
-      id: 3,
+      id: 2,
       name: '半成品'
     },
     {
-      id: 4,
+      id: 3,
       name: '成品'
     },
     {
-      id: 5,
+      id:4,
       name: '其他'
     },
   ]
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue b/src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue
index aa3c01c..640a3f6 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue
@@ -44,7 +44,7 @@
       <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="batchNo" align="center" width="120" />
+      <el-table-column label="二维码编号" prop="code" align="center" width="120" />
       <el-table-column label="危险性质" prop="productBasic.productCharacter" align="center" />
       <el-table-column label="最小包装" prop="productBasic.productSn" align="center" width="120">
         <template #default="scope">
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue b/src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue
index 084c11c..3c51d8f 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue
@@ -3,10 +3,10 @@
     <div style="display: flex;justify-content: space-between">
       <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
         <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 >
           <el-button
@@ -35,15 +35,16 @@
           <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="批号" prop="batchNo" align="center" width="120" />-->
       <el-table-column label="当前库存" prop="stock" align="center" width="120" />
       <el-table-column label="所在仓库" prop="warehouseName" align="center" >
       </el-table-column>
-      <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="productBasic.createTime" 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="操作" align="center" class-name="small-padding fixed-width" width="180" >
         <template #default="scope">
           <el-button link type="primary" @click="getProRecord(scope.row)" >动库记录</el-button>
@@ -85,8 +86,10 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   },
   total: 0,
   dataList: []
@@ -126,8 +129,10 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   }
   getList()
 }
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue b/src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue
index ade8b00..a970615 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue
@@ -44,7 +44,7 @@
       <el-table-column label="CAS号" prop="hazmatBasic.cas" align="center" />
       <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center" />
       <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" />
-      <el-table-column label="批号" prop="batchNo" align="center" width="120" />
+      <el-table-column label="二维码编号" prop="code" align="center" width="120" />
       <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />
       <el-table-column label="最小包装" prop="hazmatBasic.productSn" align="center" width="120">
         <template #default="scope">
@@ -54,12 +54,12 @@
       <el-table-column label="入库时间" prop="updateTime" align="center" />
       <el-table-column label="当前状态" prop="state" align="center">
         <template #default="scope">
-          <span>{{scope.row.state ===0 ? '在库' : scope.row.state === 1 ? '领用归还在库' :scope.row.state === 2? '领用中': scope.row.state === 3 ? '已用完' : scope.row.state === 4 ? '标签作废' : ''}}</span>
+          <span>{{scope.row.state ===0 || scope.row.state === 1 ? '在库' : scope.row.state === 2 ? '领用中': scope.row.state === 3 ? '已用完' : scope.row.state === 4 ? '标签作废' : ''}}</span>
         </template>
       </el-table-column>
       <el-table-column label="在库余量" prop="remaining" align="center" >
         <template #default="scope">
-          <span v-if="scope.row.state === 0">{{scope.row.remaining}}{{scope.row.hazmatBasic.unit}}</span>
+          <span v-if="scope.row.state === 0 || scope.row.state === 1">{{scope.row.remaining}}{{scope.row.hazmatBasic.unit}}</span>
           <span v-else>—</span>
         </template>
       </el-table-column>
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue b/src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue
index 6b2befb..0be5cc3 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue
@@ -3,10 +3,10 @@
     <div style="display: flex;justify-content: space-between">
       <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
         <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 >
           <el-button
@@ -35,17 +35,18 @@
           <span>{{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}} / {{scope.row.hazmatBasic.minPackage == 0 ? '瓶' :scope.row.hazmatBasic.minPackage == 1?'袋':scope.row.hazmatBasic.minPackage == 2?'桶 ':scope.row.hazmatBasic.minPackage == 3?'盒':scope.row.hazmatBasic.minPackage == 4?'箱':'其他'}}</span>
         </template>
       </el-table-column>
-      <el-table-column label="批号" prop="batchNo" align="center" width="120" />
+<!--      <el-table-column label="批号" prop="batchNo" align="center" width="120" />-->
       <el-table-column label="当前库存" prop="stock" align="center" width="120" />
       <el-table-column label="不完整归还" prop="missStock" align="center" width="120" />
       <el-table-column label="安全库存" prop="hazmatBasic.safeNum" align="center" width="120" />
       <el-table-column label="所在仓库" prop="warehouseName" align="center" >
       </el-table-column>
-      <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="hazmatBasic.createTime" 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="操作" align="center" class-name="small-padding fixed-width" width="200" >
         <template #default="scope">
           <el-button link type="primary"  @click="getProRecord(scope.row)" >动库记录</el-button>
@@ -88,8 +89,10 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   },
   total: 0,
   dataList: []
@@ -135,8 +138,10 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   }
   getList()
 }
@@ -184,7 +189,7 @@
   }
   for (var i = 0; i <= arr.length; i++) {
     if (arr[i] == row.basicId) {
-      if (columnIndex === 9 || columnIndex === 10 || columnIndex === 11){
+      if (columnIndex === 8 || columnIndex === 9 || columnIndex === 10){
         return { backgroundColor: '#FFD7CC !important',color:' red' }
       }
 
diff --git a/src/views/hazardousChemicals/electronicWarehouse/index.vue b/src/views/hazardousChemicals/electronicWarehouse/index.vue
index afd3f77..a83ed85 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/index.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/index.vue
@@ -1,11 +1,11 @@
 <template>
   <div>
-    <el-tabs v-model="data.activeName" class="demo-tabs" @click="clickTab" style="margin: 10px 10px">
+    <el-tabs v-model="data.activeName" class="demo-tabs" @tab-click="clickTab" style="margin: 10px 10px">
+      <el-tab-pane label="危化品" name="rawMaterial">
+        <raw-table ref="rawRef"></raw-table>
+      </el-tab-pane>
       <el-tab-pane label="成品" name="finishPro" v-if="showFinishPro">
         <pro-table ref="proRef"></pro-table>
-      </el-tab-pane>
-      <el-tab-pane label="原材料" name="rawMaterial">
-        <raw-table ref="rawRef"></raw-table>
       </el-tab-pane>
     </el-tabs>
   </div>
@@ -26,7 +26,7 @@
   },
   total: 0,
   dataList: [],
-  activeName: 'finishPro'
+  activeName: 'rawMaterial'
 })
 
 onMounted(()=>{
@@ -34,7 +34,7 @@
   if(Cookies.get('type')){
     data.activeName = showFinishPro.value && Cookies.get('type') ==='pro' ? 'finishPro' : 'rawMaterial'
   }else{
-    data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
+    // data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
   }
 
 })
diff --git a/src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue b/src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue
index 4536556..d91469c 100644
--- a/src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue
+++ b/src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue
@@ -34,10 +34,35 @@
           <el-input v-model.trim="state.form.cas" placeholder="请输入CAS"></el-input>
         </el-form-item>
         <el-form-item label="试剂类型:" prop="productType">
-          <el-input v-model.trim="state.form.productType" placeholder="请输入试剂类型"></el-input>
+          <el-select
+              v-model="state.form.productType"
+              placeholder="请选择试剂类型"
+              clearable
+              style="width: 100%"
+          >
+            <el-option
+                v-for="dict in state.hazmatTypeList"
+                :key="dict.id"
+                :label="dict.name"
+                :value="dict.name"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="危险性质:" prop="productCharacter">
-          <el-input v-model.trim="state.form.productCharacter" placeholder="请输入危险性质"></el-input>
+          <el-select
+              v-model="state.characterList"
+              placeholder="请选择危险性质"
+              clearable
+              multiple
+              style="width: 100%"
+          >
+            <el-option
+                v-for="dict in state.hazmatCharacterList"
+                :key="dict.id"
+                :label="dict.name"
+                :value="dict.name"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="供应商:" prop="supplier">
           <el-input v-model.trim="state.form.supplier" placeholder="请输入供应商"></el-input>
@@ -167,6 +192,7 @@
     threshold: null,
     kind: ''
   },
+  characterList: [],
   formRules:{
     name: [{ required: true, trigger: "blur", message: '请输入危化品名称', }],
     cas: [{ required: true, message: '请输入cas', trigger: 'blur' }],
@@ -234,14 +260,66 @@
       name: '其他'
     },
   ],
+  hazmatTypeList: [
+    {
+      id: 0,
+      name: '耗材'
+    },
+    {
+      id: 1,
+      name: '液态'
+    },
+    {
+      id: 2,
+      name: '液体'
+    },
+    {
+      id: 3,
+      name: '气态'
+    },
+    {
+      id: 4,
+      name: '固态'
+    },
+  ],
+  hazmatCharacterList: [
+    {
+      id: 0,
+      name: '腐蚀品'
+    },
+    {
+      id: 1,
+      name: '氧化品'
+    },
+    {
+      id: 2,
+      name: '有毒品'
+    },
+    {
+      id: 3,
+      name: '易燃品'
+    },
+    {
+      id: 4,
+      name: '非易燃品'
+    },
+  ],
   unitOptions: [
     {
       value: 'g',
       label: 'g',
     },
     {
+      value: 'mg',
+      label: 'mg',
+    },
+    {
       value: 'ml',
       label: 'ml',
+    },
+    {
+      value: 'l',
+      label: 'l',
     },
   ]
 })
@@ -252,12 +330,14 @@
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '' ;
   if(type === 'edit' || type === 'distribute') {
     state.form = value;
+    state.characterList = state.form.productCharacter.split(',')
     startUsername.value = value.productSn
   }
   dialogVisible.value = true;
 }
 
 const onSubmit = async () => {
+  state.form.productCharacter = state.characterList.join(",")
   const valid = await busRef.value.validate();
   if(valid){
     if(title.value === '新增'){
@@ -319,6 +399,7 @@
     threshold: null,
     kind: ''
   }
+  state.characterList = []
 }
 defineExpose({
   openDialog
diff --git a/src/views/hazardousChemicals/finishedBasicInfo/index.vue b/src/views/hazardousChemicals/finishedBasicInfo/index.vue
index 3612080..dc13a2e 100644
--- a/src/views/hazardousChemicals/finishedBasicInfo/index.vue
+++ b/src/views/hazardousChemicals/finishedBasicInfo/index.vue
@@ -64,7 +64,7 @@
       <el-table-column label="危险性质" prop="productCharacter" align="center"/>
       <el-table-column label="供应商" prop="supplier" align="center"/>
       <el-table-column label="厂家" prop="manufacturer" align="center"/>
-      <el-table-column label="规格" prop="productCharacter" align="center"/>
+      <el-table-column label="规格" prop="productFormat" align="center"/>
       <el-table-column label="包装" prop="metering" align="center">
         <template #default="scope">
           <span>{{scope.row.metering}}{{scope.row.unit}}</span>
@@ -123,23 +123,23 @@
   dataList: [],
   typeList: [
     {
-      id: 1,
+      id: 0,
       name: '试剂'
     },
     {
-      id: 2,
+      id: 1,
       name: '原料'
     },
     {
-      id: 3,
+      id: 2,
       name: '半成品'
     },
     {
-      id: 4,
+      id: 3,
       name: '成品'
     },
     {
-      id: 5,
+      id: 4,
       name: '其他'
     },
   ]
diff --git a/src/views/hazardousChemicals/homePage/index.vue b/src/views/hazardousChemicals/homePage/index.vue
index ea7e813..b2975db 100644
--- a/src/views/hazardousChemicals/homePage/index.vue
+++ b/src/views/hazardousChemicals/homePage/index.vue
@@ -43,65 +43,51 @@
       </el-row>
     </div>
     <div>
-      <el-row :gutter="20" justify="space-between" style="margin-bottom: 15px">
-        <el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24">
-          <el-card>
-            <span style="font-size: 18px;font-weight: 600;margin-left: 45%">超期预警</span>
-            <el-table height="320" v-loading="data.wloading" :data="data.warningData" style="margin-top: 15px">
-              <el-table-column label="序号" type="index" align="center" width="80" />
-              <el-table-column label="生成时间" prop="createTime" align="center"  />
-              <el-table-column label="领用人" prop="createName" align="center" />
-              <el-table-column label="领用时间" prop="useTime" align="center" />
-              <el-table-column label="最后流转时间" prop="updateTime" align="center" width="180"  />
-              <el-table-column label="处理时间" prop="handleTime" align="center" />
-              <el-table-column label="状态" prop="name" align="center" >
-                <template #default="scope">
-                  <span>{{scope.row.state === 0 ? '未处理':'已处理'}}</span>
-                </template>
-              </el-table-column>
-            </el-table>
-            <pagination
-                :total="data.wTotal"
-                v-model:page="data.warningQueryParams.pageNum"
-                v-model:limit="data.warningQueryParams.pageSize"
-                @pagination="getWarningData"
-            />
+      <el-row :gutter="20" justify="space-between" >
+        <el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24" style="margin-bottom: 15px">
+          <el-card style="height: 500px;overflow: auto">
+              <span style="font-size: 18px;font-weight: 600;margin-bottom: -5px">危化品动态</span>
+              <el-divider style="margin: 15px 0"></el-divider>
+              <div style="padding: 10px;" v-if="data.hazmatData && data.hazmatData.length >0">
+                <div v-for="(item,index) in data.hazmatData" :key="index" style="display: flex;flex-direction: column">
+                  <div style="display: flex">
+                    <img :src="avator" style="width: 25px;height: 25px" />
+                    <div style="display: flex;flex-direction: column;margin-left: 20px">
+                      <span style="font-size: 16px;font-weight: 600">{{item.description}}&nbsp;
+                        <span style="color: #03752e" v-if="item.num > 0">{{item.num >0 ? '+' + item.num: item.num}}{{item.unit}}</span>
+                        <span style="color: #f6828e" v-else>{{item.num}}{{item.unit}}</span>
+                      </span>
+                      <span style="font-size: 14px;color: #8a8f97;margin-top: 5px">{{item.updateTime}}</span>
+                    </div>
+                  </div>
+                  <el-divider style="margin: 15px 0" v-if="index != data.hazmatData.length-1"></el-divider>
+                </div>
+              </div>
+            <div v-else>
+              <el-empty description="暂无数据" style="margin-top: 10%"></el-empty>
+            </div>
           </el-card>
-
         </el-col>
         <el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24">
-          <el-card>
-            <span style="font-size: 18px;font-weight: 600;margin-left: 45%">危化品使用</span>
-            <el-table height="320" v-loading="data.hloading" :data="data.hazmatData" style="margin-top: 15px">
-              <el-table-column label="名称" prop="name" align="center" />
-              <el-table-column label="产品编号" prop="hazmatBasic.productSn" align="center"  />
-              <el-table-column label="CAS" prop="hazmatBasic.cas" align="center"/>
-              <el-table-column label="试剂类型" prop="hazmatBasic.hazmatType" align="center"/>
-              <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center"/>
-              <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center"/>
-              <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center"/>
-              <el-table-column label="规格" prop="hazmatBasic.hazmatCharacter" align="center"/>
-              <el-table-column label="包装" prop="hazmatBasic.metering" align="center">
-                <template #default="scope">
-                  <span>{{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="含税售价" prop="hazmatBasic.price" align="center"/>
-              <el-table-column label="每箱数量" prop="hazmatBasic.perBox" align="center"/>
-              <el-table-column label="最小包装类型" prop="minPackage" align="center" width="220">
-                <template #default="scope">
-                  <span>{{scope.row.hazmatBasic.minPackage == 0 ? '瓶' :scope.row.hazmatBasic.minPackage == 1?'袋':scope.row.hazmatBasic.minPackage == 2?'桶 ':scope.row.hazmatBasic.minPackage == 3?'盒':scope.row.hazmatBasic.minPackage == 4?'箱':'其他'}}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="安全库存" prop="hazmatBasic.safeNum" align="center"/>
-              <el-table-column label="超期阈值(小时)" prop="hazmatBasic.threshold" align="center" width="220"/>
-            </el-table>
-            <pagination
-                :total="data.hTotal"
-                v-model:page="data.hazmatQueryParams.pageNum"
-                v-model:limit="data.hazmatQueryParams.pageSize"
-                @pagination="getHazmatUseData"
-            />
+          <el-card style="height: 500px;overflow: auto">
+            <span style="font-size: 18px;font-weight: 600;margin-bottom: -5px">超期预警</span>
+            <el-divider style="margin: 15px 0"></el-divider>
+            <div style="padding: 10px;" v-if="data.warningData && data.warningData.length >0">
+              <div v-for="(item,index) in data.warningData" :key="index" style="display: flex;flex-direction: column">
+                <div style="display: flex">
+                  <img :src="avator" style="width: 25px;height: 25px" />
+                  <div style="display: flex;flex-direction: column;margin-left: 20px">
+                      <span style="font-size: 16px;font-weight: 600">{{item.description}}
+                      </span>
+                    <span style="font-size: 14px;color: #8a8f97;margin-top: 5px">{{item.useTime}}</span>
+                  </div>
+                </div>
+                <el-divider style="margin: 15px 0" v-if="index != data.hazmatData.length-1"></el-divider>
+              </div>
+            </div>
+            <div v-else>
+              <el-empty description="暂无数据" style="margin-top: 10%"></el-empty>
+            </div>
           </el-card>
         </el-col>
       </el-row>
@@ -110,7 +96,7 @@
 </template>
 <script setup>
 import { CountTo } from 'vue3-count-to'
-import img1 from '@/assets/images/file.png'
+import avator from '@/assets/images/avator.png'
 import hazmat from '@/assets/logo/hazmat.png'
 import warehouse from '@/assets/logo/warehouse.png'
 import warning from '@/assets/logo/warning1.png'
@@ -121,6 +107,7 @@
 import {ElMessage} from "element-plus";
 import {getEntryData, getHazmatUseList, getHoData, getMaxUseData, getUseData} from "@/api/hazardousChemicals/count";
 import {getWarning} from "@/api/hazardousChemicals/warning";
+import {getRawFlow} from "@/api/hazardousChemicals/rawRecord";
 const data = reactive({
   cardList: [
     {
@@ -153,6 +140,7 @@
     },
   ],
   maxUseList: [],
+  maxUseName: [],
   useXData: [],
   useYData: [],
   entryXData: [],
@@ -160,7 +148,7 @@
   warningData: [],
   warningQueryParams: {
     pageNum: 1,
-    pageSize: 5
+    pageSize: 10
   },
   wTotal: 0,
   wloading: false,
@@ -170,7 +158,7 @@
     pageNum: 1,
     pageSize: 10
   },
-  hazmatData: []
+  hazmatData: [],
 
 });
 const myChart = shallowRef(null)
@@ -186,25 +174,35 @@
   await useData()
   await maxUseData()
   await getWarningData()
-  await getHazmatUseData()
+  await getHazmatFlowData()
 });
 const getWarningData = async () => {
   data.wloading = true
   const res = await getWarning(data.warningQueryParams)
   if(res.code == 200){
-    data.warningData =res.data.list
-    data.wTotal = res.data.total
+    data.warningData =res.data.list.map(item => {
+      return {
+        ...item,
+        description: `${item.createName} 领用了 ${item.hazmatBasic.name} 状态:${item.state ==0?'未处理':'已处理' }`
+      }
+    })
   }else{
     ElMessage.warning(res.message)
   }
   data.wloading = false
 }
-const getHazmatUseData = async () => {
+const getHazmatFlowData = async () => {
   data.hloading = true
-  const res = await getHazmatUseList(data.hazmatQueryParams)
+  const res = await getRawFlow(data.hazmatQueryParams)
   if(res.code == 200){
-    data.hazmatData =res.data.list
-    data.hTotal = res.data.total
+    data.hazmatData =res.data.list.map(item => {
+      return {
+        ...item,
+        unit:item.hazmatBasic.unit,
+        description: `${item.user.departName ? item.user.departName +'部门' : ''}   ${item.user.name}  进行了  ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''} ${item.hazmatBasic.name}`
+      }
+    })
+    console.log('data.hazmatData',data.hazmatData)
   }else{
     ElMessage.warning(res.message)
   }
@@ -250,6 +248,7 @@
         name: item.name
       }
     })
+    data.maxUseName = res.data.map(item => item.name)
     await getPieChart()
   }else{
     ElMessage.warning(res.message)
@@ -260,34 +259,39 @@
     myChart.value.dispose();
   }
   myChart.value = echarts.init(document.getElementById(pieChart.value));
-  const option = {
-    title: {
-      text: '近一周频繁使用的危化品量',
-      left: 'center'
-    },
-    tooltip: {
-      trigger: 'item'
-    },
-    legend: {
-      orient: 'vertical',
-      left: 'left'
-    },
-    series: [
-      {
-        name: 'Access From',
-        type: 'pie',
-        radius: '50%',
-        data: data.maxUseList,
-        emphasis: {
-          itemStyle: {
-            shadowBlur: 10,
-            shadowOffsetX: 0,
-            shadowColor: 'rgba(0, 0, 0, 0.5)'
-          }
+  let option;
+    option = {
+      title: {
+        text: '近一周频繁使用的危化品量',
+        left: 'center'
+      },
+      tooltip: {
+        trigger: 'item'
+      },
+      legend: {
+        orient: 'vertical',
+        left: 'left'
+      },
+      series: [
+        {
+          name: '',
+          type: 'pie',
+          radius: '50%',
+          data: data.maxUseList,
+          emphasis: {
+            itemStyle: {
+              shadowBlur: 10,
+              shadowOffsetX: 0,
+              shadowColor: 'rgba(0, 0, 0, 0.5)'
+            }
+          },
+          // showEmptyCircle: false,
         }
-      }
-    ]
-  };
+      ]
+    };
+
+
+
   // 使用刚指定的配置项和数据显示图表。
   myChart.value.setOption(option,true);
   //自适应宽度
@@ -422,7 +426,21 @@
     }
 
   }
-
+  ::-webkit-scrollbar {
+    width: 5px;
+    height: 5px;
+    background-color: #ffffff;
+    opacity: 0;
+  }
+  ::-webkit-scrollbar-track {
+    border-radius: 10px;
+    background-color: #ffffff;
+  }
+  ::-webkit-scrollbar-thumb {
+    border-radius: 10px;
+    /*-webkit-box-shadow: inset 0 0 6px rgba(154,154,154,.3);*/
+    background-color: #ffffff;
+  }
 }
 
 </style>
diff --git a/src/views/hazardousChemicals/overdueWarning/index.vue b/src/views/hazardousChemicals/overdueWarning/index.vue
index 4b06f26..18e9967 100644
--- a/src/views/hazardousChemicals/overdueWarning/index.vue
+++ b/src/views/hazardousChemicals/overdueWarning/index.vue
@@ -72,6 +72,7 @@
 import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue";
 import {ElMessage, ElMessageBox} from "element-plus";
 import {delWarning, getWarning, handleWarning} from "@/api/hazardousChemicals/warning";
+import {unWarningCount} from "@/api/hazardousChemicals/count";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const dialogRef = ref();
@@ -90,6 +91,7 @@
 const classHourRef = ref();
 onMounted(()=>{
   getList()
+  getUnCount()
 })
 
 onUnmounted(()=>{
@@ -102,10 +104,20 @@
   if(res.code == 200){
     data.dataList = res.data.list
     data.total = res.data.total
+
   }else{
     ElMessage.warning(res.message)
   }
   loading.value = false
+}
+const getUnCount = async () => {
+  const res = await unWarningCount()
+  if(res.code == 200){
+    data.untreatedTotal = res.data
+  }else{
+    ElMessage.warning(res.message)
+  }
+
 }
 
 const openDialog = (type, value) => {
@@ -120,6 +132,7 @@
     state: null
   }
   getList()
+  getUnCount()
 }
 const handleDelete = (val) => {
   ElMessageBox.confirm(
@@ -135,6 +148,7 @@
         if(res.code == 200){
           ElMessage.success('数据删除成功')
           await getList()
+          await getUnCount()
         }else{
           ElMessage.warning(res.message)
         }
@@ -151,10 +165,17 @@
         type: 'warning',
       })
       .then( async() => {
-        const res = await handleWarning(val.id)
+        console.log("val",val)
+        const param = {
+          id: val.id,
+          state: 1,
+          companyId: val.companyId,
+        }
+        const res = await handleWarning(param)
         if(res.code == 200){
           ElMessage.success('处理成功')
           await getList()
+          await getUnCount()
         }else{
           ElMessage.warning(res.message)
         }
diff --git a/src/views/hazardousChemicals/systemManage/user/components/userDialog.vue b/src/views/hazardousChemicals/systemManage/user/components/userDialog.vue
index 50def4c..fe4088d 100644
--- a/src/views/hazardousChemicals/systemManage/user/components/userDialog.vue
+++ b/src/views/hazardousChemicals/systemManage/user/components/userDialog.vue
@@ -387,6 +387,7 @@
   superRef.value.clearValidate();
   superRef.value.resetFields()
   dialogVisible.value = false;
+  emit('getList')
 }
 
 const selectValue =  (val) => {
diff --git a/src/views/hazardousChemicals/systemManage/user/index.vue b/src/views/hazardousChemicals/systemManage/user/index.vue
index 6908c8a..f845f60 100644
--- a/src/views/hazardousChemicals/systemManage/user/index.vue
+++ b/src/views/hazardousChemicals/systemManage/user/index.vue
@@ -46,7 +46,7 @@
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
         <template #default="scope">
           <el-button link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
-          <el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button>
+          <el-button link type="danger" v-if="!isAdmin" @click="handleDelete(scope.row)">删除</el-button>
           <el-button link type="primary" @click="openDialog('pwd',scope.row)">修改密码</el-button>
         </template>
       </el-table-column>
@@ -109,10 +109,13 @@
 
 });
 
+const isAdmin = ref(false)
 const { queryParams, total, dataList } = toRefs(data);
 const userInfo = ref()
 onMounted(()=>{
   userInfo.value = JSON.parse(Cookies.get('userInfo'))
+  isAdmin.value = userInfo.value.userType === 0;
+
   getList()
 })
 
diff --git a/src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue b/src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue
index db362a7..2ef85b4 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue
@@ -51,7 +51,7 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="最小包装数量:" prop="num" >
+        <el-form-item label="数量:" prop="num" >
           <el-input v-model.trim="state.form.num" oninput="value=value.replace(/^\.+|[^\d]/g,'')" placeholder="请输入最小包装数量" @input="changeNum"></el-input>
         </el-form-item>
         <el-form-item label="批号:" prop="batchNo" >
@@ -97,7 +97,7 @@
 
   },
   formRules:{
-    num: [{ required: true, trigger: "blur", message: '请输入最小包装数量' }],
+    num: [{ required: true, trigger: "blur", message: '请输入数量' }],
     warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }],
     basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }],
     // batchNo: [{ required: true, trigger: "blur", message: '请输入批号' }]
@@ -111,7 +111,7 @@
 const openDialog = async (type, value) => {
   await getProBasic("")
   await getWareHouseList("")
-
+  state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑':'' ;
   if(type === 'edit' ) {
     state.form = value;
@@ -165,9 +165,9 @@
   const valid = await busRef.value.validate();
   if(valid){
     if(title.value === '新增'){
-      if(state.form.batchNo == ''){
-        state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
-      }
+      // if(state.form.batchNo == ''){
+      //   state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
+      // }
       const {id, ...data} = JSON.parse(JSON.stringify(state.form))
       const res = await addProductRecord(data)
       if(res.code === 200){
@@ -183,9 +183,9 @@
       reset();
       dialogVisible.value = false;
     }else if(title.value === '编辑'){
-      if(state.form.batchNo == ''){
-        state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
-      }
+      // if(state.form.batchNo == ''){
+      //   state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
+      // }
       const {...data} = JSON.parse(JSON.stringify(state.form))
       const res = await editProductRecord(data)
       if(res.code === 200){
diff --git a/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue b/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue
index 2bc3776..42daf42 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue
@@ -51,7 +51,7 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="最小包装数量:" prop="num" >
+        <el-form-item label="数量:" prop="num" >
           <el-input v-model.trim="state.form.num" oninput="value=value.replace(/^\.+|[^\d]/g,'')" placeholder="请输入最小包装数量" @input="changeNum"></el-input>
         </el-form-item>
         <el-form-item label="批号:" prop="batchNo" >
@@ -103,7 +103,7 @@
 
   },
   formRules:{
-    num: [{ required: true, trigger: "blur", message: '请输入最小包装数量' }],
+    num: [{ required: true, trigger: "blur", message: '请输入数量' }],
     warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }],
     basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }],
     // batchNo: [{ required: true, trigger: "blur", message: '请输入批号' }]
@@ -117,6 +117,7 @@
 const openDialog = async (type, value) => {
   await getRawBasicList("")
   await getWareHouseList("")
+  state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
   title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑':'' ;
   if(type === 'edit' ) {
     state.form = value;
@@ -170,9 +171,9 @@
   const valid = await busRef.value.validate();
   if(valid){
     if(title.value === '新增'){
-      if(state.form.batchNo == ''){
-        state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
-      }
+      // if(state.form.batchNo == ''){
+      //   state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
+      // }
       const {id, ...data} = JSON.parse(JSON.stringify(state.form))
       const res = await addRawRecord(data)
       if(res.code === 200){
@@ -188,9 +189,9 @@
       reset();
       dialogVisible.value = false;
     }else if(title.value === '编辑'){
-      if(state.form.batchNo == ''){
-        state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
-      }
+      // if(state.form.batchNo == ''){
+      //   state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
+      // }
       const {...data} = JSON.parse(JSON.stringify(state.form))
       const res = await editRawRecord(data)
       if(res.code === 200){
diff --git a/src/views/hazardousChemicals/warehouseManage/components/printCode.vue b/src/views/hazardousChemicals/warehouseManage/components/printCode.vue
index b3ed378..cfb3a63 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/printCode.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/printCode.vue
@@ -8,6 +8,24 @@
         :close-on-press-escape="false"
         :close-on-click-modal="false"
     >
+      <div style="display: flex;justify-content: space-between">
+        <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
+          <el-form-item label="条码编号:" >
+            <el-input v-model="state.queryParams.code" placeholder="请输入条码编号" ></el-input>
+          </el-form-item>
+          <el-form-item >
+            <el-button
+                type="primary"
+                @click="getList"
+            >查询</el-button>
+            <el-button
+                type="primary"
+                plain
+                @click="reset"
+            >重置</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
       <el-table v-loading="state.loading" :data="state.dataList" :border="true" :show-header="false" height="550"  @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55"  align="center" />
         <el-table-column align="center" >
@@ -63,6 +81,7 @@
     pageSize: 5,
     warehouseId: null,
     basicId: null,
+    code: ''
   },
   chooseList: []
 
@@ -103,6 +122,7 @@
     pageSize: 5,
     warehouseId: null,
     basicId: null,
+    code: ''
   }
   state.total = 0
   state.chooseList = []
@@ -200,6 +220,10 @@
   :deep(.el-form .el-form-item__label) {
     font-size: 15px;
   }
+  :deep(.el-dialog__body) {
+    padding: 10px 20px 0 20px;
+  }
+
   .file {
     display: flex;
     flex-direction: column;
diff --git a/src/views/hazardousChemicals/warehouseManage/components/proDetail.vue b/src/views/hazardousChemicals/warehouseManage/components/proDetail.vue
new file mode 100644
index 0000000..ebc966e
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManage/components/proDetail.vue
@@ -0,0 +1,176 @@
+<template>
+  <div class="app-container">
+    <div style="display: flex;justify-content: space-between">
+      <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
+        <el-form-item label="状态:" >
+          <el-select
+              v-model="data.queryParams.state"
+              placeholder="请选择状态"
+              style="width: 240px"
+          >
+            <el-option
+                v-for="item in data.typeList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item >
+          <el-button
+              type="primary"
+              @click="getList"
+          >查询</el-button>
+          <el-button
+              type="primary"
+              plain
+              @click="reset"
+          >重置</el-button>
+        </el-form-item>
+      </el-form>
+      <div>
+        <el-button
+            type="primary"
+            plain
+            @click="back"
+        >返回</el-button>
+      </div>
+    </div>
+    <!-- 表格数据 -->
+    <el-table v-loading="loading" :data="data.dataList" :border="true">
+      <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="code" align="center" width="120" />
+      <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="updateTime" align="center" />
+      <el-table-column label="当前状态" prop="state" align="center">
+        <template #default="scope">
+          <span>{{scope.row.state ===0 ? '在库' : scope.row.state ===4 ? '标签作废' : scope.row.state ===5 ? '销售' : ''}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="在库余量" prop="remaining" align="center" >
+        <template #default="scope">
+          <span v-if="scope.row.state === 0">{{scope.row.remaining}}{{scope.row.productBasic.unit}}</span>
+          <span v-else>—</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="所在仓库" prop="warehouseName" align="center" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
+        <template #default="scope">
+          <el-button link type="primary" @click="viewQR(scope.row)">查看二维码</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <pagination
+        v-show="data.total > 0"
+        :total="data.total"
+        v-model:page="data.queryParams.pageNum"
+        v-model:limit="data.queryParams.pageSize"
+        @pagination="getList"
+    />
+    <viewQRcode ref="dialogRef" @getList="getList"></viewQRcode>
+  </div>
+</template>
+
+<script setup>
+import {nextTick, onMounted, reactive, ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import {
+  getWhProDetail
+} from "@/api/hazardousChemicals/productRecord";
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue'
+import {ElMessage, ElMessageBox} from "element-plus";
+import Cookies from "js-cookie";
+const route = useRoute()
+const router = useRouter();
+const dialogRef = ref();
+const flowRef = ref();
+
+const dialogVisible = ref(false)
+const data = reactive({
+  queryParams: {
+    entryId: null,
+    state: null,
+    pageNum: 1,
+    pageSize: 10,
+  },
+  total: 0,
+  dataList: [],
+  isAdmin: false,
+  typeList: [
+    {
+      id: 0,
+      name: '在库'
+    },
+    {
+      id: 5,
+      name: '已销售'
+    },
+    {
+      id: 4,
+      name: '标签作废'
+    },
+
+  ]
+});
+const loading = ref(false);
+const backValue = ref({})
+onMounted(async ()=>{
+  if(route.query.val){
+    const val = JSON.parse(route.query.val)
+    backValue.value.pageNum =val.pageNum;
+    backValue.value.pageSize =val.pageSize;
+    data.queryParams.entryId =val.entryId
+  }
+  await getList()
+})
+const getList = async () => {
+  loading.value = true
+  const res = await getWhProDetail(data.queryParams)
+  if(res.code == 200){
+    data.dataList = res.data.list
+    data.total = res.data.total
+  }else{
+    ElMessage.warning(res.message)
+  }
+  loading.value = false
+}
+const reset = () => {
+  data.queryParams = {
+    entryId: null,
+    state: null,
+    pageNum: 1,
+    pageSize: 10,
+  }
+  getList()
+}
+
+const back = () =>{
+  const obj = {
+    pageNum: backValue.value.pageNum,
+    pageSize: backValue.value.pageSize,
+  }
+  const v = JSON.stringify(obj)
+  Cookies.set('typeWh','pro')
+  router.push({ path: "/warehouseManage", query: { val: v } });
+}
+const viewQR = (val) => {
+  dialogRef.value.openDialog('pro',val)
+}
+const handleClose = () => {
+  dialogVisible.value = false
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManage/components/productTable.vue b/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
index 7668e43..8efee46 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
@@ -11,10 +11,10 @@
           >新增</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 >
           <el-button
@@ -34,28 +34,31 @@
       <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="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>
@@ -88,16 +91,21 @@
   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 router = useRouter()
+const route = useRoute()
 const data = reactive({
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   },
   total: 0,
   dataList: []
@@ -130,8 +138,10 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   }
   getList()
 }
@@ -178,6 +188,16 @@
   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 } });
+}
+
 defineExpose({
   getList
 });
diff --git a/src/views/hazardousChemicals/warehouseManage/components/rawDetail.vue b/src/views/hazardousChemicals/warehouseManage/components/rawDetail.vue
new file mode 100644
index 0000000..251aea3
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManage/components/rawDetail.vue
@@ -0,0 +1,183 @@
+<template>
+  <div class="app-container">
+    <div style="display: flex;justify-content: space-between">
+      <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
+        <el-form-item label="状态:" >
+          <el-select
+              v-model="data.queryParams.state"
+              placeholder="请选择状态"
+              style="width: 240px"
+          >
+            <el-option
+                v-for="item in data.typeList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item >
+          <el-button
+              type="primary"
+              @click="getList"
+          >查询</el-button>
+          <el-button
+              type="primary"
+              plain
+              @click="reset"
+          >重置</el-button>
+        </el-form-item>
+      </el-form>
+      <div>
+        <el-button
+            type="primary"
+            plain
+            @click="back"
+        >返回</el-button>
+      </div>
+    </div>
+    <!-- 表格数据 -->
+    <el-table v-loading="loading" :data="data.dataList" :border="true">
+      <el-table-column label="序号" type="index" align="center" width="80" />
+      <el-table-column label="品名" prop="hazmatBasic.name" align="center"  />
+      <el-table-column label="产品编号" prop="hazmatBasic.productSn" align="center" />
+      <el-table-column label="CAS号" prop="hazmatBasic.cas" align="center" />
+      <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center" />
+      <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" />
+      <el-table-column label="二维码编号" prop="code" align="center" width="120" />
+      <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />
+      <el-table-column label="最小包装" prop="hazmatBasic.productSn" align="center" width="120">
+        <template #default="scope">
+          <span>{{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}} / {{scope.row.hazmatBasic.minPackage == 0 ? '瓶' :scope.row.hazmatBasic.minPackage == 1?'袋':scope.row.hazmatBasic.minPackage == 2?'桶 ':scope.row.hazmatBasic.minPackage == 3?'盒':scope.row.hazmatBasic.minPackage == 4?'箱':'其他'}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="入库时间" prop="updateTime" align="center" />
+      <el-table-column label="当前状态" prop="state" align="center">
+        <template #default="scope">
+          <span>{{scope.row.state ===0 || scope.row.state === 1 ? '在库' :scope.row.state === 2? '领用中': scope.row.state === 3 ? '已用完' : scope.row.state === 4 ? '标签作废' : ''}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="在库余量" prop="remaining" align="center" >
+        <template #default="scope">
+          <span v-if="scope.row.state === 0 || scope.row.state === 1">{{scope.row.remaining}}{{scope.row.hazmatBasic.unit}}</span>
+          <span v-else>—</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="所在仓库" prop="warehouseName" align="center" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
+        <template #default="scope">
+          <el-button link type="primary" @click="viewQR(scope.row)">查看二维码</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <pagination
+        v-show="data.total > 0"
+        :total="data.total"
+        v-model:page="data.queryParams.pageNum"
+        v-model:limit="data.queryParams.pageSize"
+        @pagination="getList"
+    />
+    <viewQRcode ref="dialogRef" @getList="getList"></viewQRcode>
+  </div>
+</template>
+
+<script setup>
+import {nextTick, onMounted, reactive, ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import {ElMessage, ElMessageBox} from "element-plus";
+import {disCardRaw, getRawDetail, getWhRawDetail} from "@/api/hazardousChemicals/rawRecord";
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue'
+import Cookies from "js-cookie";
+const route = useRoute()
+const router = useRouter();
+const dialogRef = ref();
+const dialogVisible = ref(false)
+const flowRef = ref();
+const data = reactive({
+  queryParams: {
+    entryId: null,
+    state: null,
+    pageNum: 1,
+    pageSize: 10,
+  },
+  total: 0,
+  dataList: [],
+  isAdmin: false,
+  typeList: [
+    {
+      id: 0,
+      name: '在库'
+    },
+    {
+      id: 1,
+      name: '领用归还在库'
+    },
+    {
+      id: 2,
+      name: '领用中'
+    },
+    {
+      id: 3,
+      name: '已用完'
+    },
+    {
+      id: 4,
+      name: '标签作废'
+    },
+
+  ]
+});
+const loading = ref(false);
+const backValue = ref({})
+onMounted(async ()=>{
+  if(route.query.val){
+    const val = JSON.parse(route.query.val)
+    backValue.value.pageNum =val.pageNum;
+    backValue.value.pageSize =val.pageSize;
+    data.queryParams.entryId =val.entryId
+  }
+  await getList()
+})
+const getList = async () => {
+  loading.value = true
+  const res = await getWhRawDetail(data.queryParams)
+  if(res.code == 200){
+    data.dataList = res.data.list
+    data.total = res.data.total
+  }else{
+    ElMessage.warning(res.message)
+  }
+  loading.value = false
+}
+const reset = () => {
+  data.queryParams = {
+    entryId: null,
+    state: null,
+    pageNum: 1,
+    pageSize: 10,
+  }
+  getList()
+}
+
+const back = () =>{
+  const obj = {
+    pageNum: backValue.value.pageNum,
+    pageSize: backValue.value.pageSize,
+    type: 'raw'
+  }
+  const v = JSON.stringify(obj)
+  Cookies.set('typeWh','raw')
+  router.push({ path: "/warehouseManage", query: { val: v } });
+}
+const viewQR = (val) => {
+  dialogRef.value.openDialog('raw',val)
+}
+const handleClose = () => {
+  dialogVisible.value = false
+}
+
+</script>
+
+<style scoped lang="scss">
+
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue b/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
index c2a47f9..e5f89b4 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
@@ -11,10 +11,10 @@
           >新增</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 >
           <el-button
@@ -34,33 +34,36 @@
       <el-table-column label="序号" type="index" align="center" width="80" />
       <el-table-column label="品名" prop="hazmatBasic.name" align="center"  />
       <el-table-column label="产品编号" prop="hazmatBasic.productSn" align="center" />
-      <el-table-column label="CAS号" prop="hazmatBasic.cas" align="center" />
-      <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center" />
-      <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" />
-      <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />
-      <el-table-column label="最小包装" align="center" width="120">
-        <template #default="scope">
-          <span>
-            {{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}} / {{scope.row.hazmatBasic.minPackage == 0 ? '瓶' :scope.row.hazmatBasic.minPackage == 1?'袋':scope.row.hazmatBasic.minPackage == 2?'桶 ':scope.row.hazmatBasic.minPackage == 3?'盒':scope.row.hazmatBasic.minPackage == 4?'箱':'其他'}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="批号" prop="batchNo" align="center" width="120" />
+<!--      <el-table-column label="CAS号" prop="hazmatBasic.cas" align="center" />-->
+<!--      <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center" />-->
+<!--      <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" />-->
+<!--      <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />-->
+<!--      <el-table-column label="最小包装" align="center" width="120">-->
+<!--        <template #default="scope">-->
+<!--          <span>-->
+<!--            {{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}} / {{scope.row.hazmatBasic.minPackage == 0 ? '瓶' :scope.row.hazmatBasic.minPackage == 1?'袋':scope.row.hazmatBasic.minPackage == 2?'桶 ':scope.row.hazmatBasic.minPackage == 3?'盒':scope.row.hazmatBasic.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="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>
-          <el-button link type="danger" @click="handleDelete(scope.row)" v-if="scope.row.state == 0">删除</el-button>
+          <el-button link type="danger"  @click="handleDelete(scope.row)" v-if="scope.row.state == 0">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -84,16 +87,21 @@
 import rawDialog from "./addRawDialog.vue";
 import printcode from './printCode.vue'
 import {delRawRecord, doEntryRaw, getRawRecord, getRawWarehouseRecord} from "@/api/hazardousChemicals/rawRecord";
+import {useRoute, useRouter} from "vue-router";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const dialogRef = ref();
 const codeRef = ref();
+const router = useRouter()
+const route = useRoute()
 const data = reactive({
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   },
   total: 0,
   dataList: []
@@ -126,8 +134,10 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: '',
-    productSn: ''
+    params :{
+      name: '',
+      productSn: ''
+    }
   }
   getList()
 }
@@ -176,6 +186,17 @@
   codeRef.value.openDialog('raw',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: "/whRawDetail", query: { val: v } });
+}
+
+
 defineExpose({
   getList
 });
diff --git a/src/views/hazardousChemicals/warehouseManage/index.vue b/src/views/hazardousChemicals/warehouseManage/index.vue
index 114e99c..a6514b9 100644
--- a/src/views/hazardousChemicals/warehouseManage/index.vue
+++ b/src/views/hazardousChemicals/warehouseManage/index.vue
@@ -1,20 +1,21 @@
 <template>
   <div>
-    <el-tabs v-model="data.activeName" class="demo-tabs" @click="clickTab" style="margin: 10px 10px">
+    <el-tabs v-model="data.activeName" class="demo-tabs" @tab-click="clickTab" style="margin: 10px 10px">
+      <el-tab-pane label="危化品" name="rawMaterial">
+        <raw-table ref="rawRef"></raw-table>
+      </el-tab-pane>
       <el-tab-pane label="成品" name="finishPro" v-if="showFinishPro">
         <pro-table ref="proRef"></pro-table>
-      </el-tab-pane>
-      <el-tab-pane label="原材料" name="rawMaterial">
-        <raw-table ref="rawRef"></raw-table>
       </el-tab-pane>
     </el-tabs>
   </div>
 
 </template>
 <script setup>
-import {onMounted, reactive, ref} from "vue";
+import {onMounted, onUnmounted, reactive, ref} from "vue";
 import proTable from './components/productTable.vue'
 import rawTable from './components/rawTable.vue'
+import Cookies from "js-cookie";
 const showFinishPro = ref(false)
 const proRef = ref()
 const rawRef = ref()
@@ -25,12 +26,19 @@
   },
   total: 0,
   dataList: [],
-  activeName: 'finishPro'
+  activeName: 'rawMaterial'
 })
 
 onMounted(()=>{
   showFinishPro.value = true;
-  data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
+  if(Cookies.get('typeWh')){
+    data.activeName = showFinishPro.value && Cookies.get('typeWh') ==='pro' ? 'finishPro' : 'rawMaterial'
+  }else{
+    // data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
+  }
+})
+onUnmounted(()=>{
+  Cookies.remove('typeWh')
 })
 const clickTab = (tab,event) =>{
   console.log('tab',data.activeName)

--
Gitblit v1.9.2